diff --git a/.github/workflows/validate-n-build-api.yml b/.github/workflows/validate-n-build-api.yml index fff37d420..63d5bbfb4 100644 --- a/.github/workflows/validate-n-build-api.yml +++ b/.github/workflows/validate-n-build-api.yml @@ -25,7 +25,7 @@ jobs: filters: | api: - 'apps/api/**' - - 'packages/shared/**' + - 'packages/database/**' - name: Setup Node.js if: steps.filter.outputs.api == 'true' diff --git a/.gitignore b/.gitignore index 259a6bc36..1f5362c04 100644 --- a/.gitignore +++ b/.gitignore @@ -102,4 +102,4 @@ dist build.ps1 # Data Folder -data +data \ No newline at end of file diff --git a/BUILD.md b/BUILD.md index e436e591d..d736a5a45 100644 --- a/BUILD.md +++ b/BUILD.md @@ -2,9 +2,12 @@ ## Projects -- [Explorer](/explorer/README.md) - Website API + NextJS frontend -- [Indexer](/indexer/) - The main indexer process -- [Shared](/shared/) - Shared project +- [Deploy](/apps/deploy-web/README.md) - NextJS frontend for Console +- [Stats](/apps/stats-web/README.md) - NextJS frontend for Stats +- [Api](/apps/api/README.md) - The main Console API +- [Indexer](/apps/indexer/README.md) - The main indexer process +- [Database](/packages/database/) - Database shared package +- [UI](/packages/ui/) - UI components shared ## Create docker images diff --git a/apps/api/package.json b/apps/api/package.json index dd4abc410..ac1296cf3 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -26,7 +26,7 @@ }, "dependencies": { "@akashnetwork/akash-api": "^1.3.0", - "@akashnetwork/cloudmos-shared": "*", + "@akashnetwork/database": "*", "@chain-registry/assets": "^0.7.1", "@cosmjs/crypto": "^0.28.11", "@cosmjs/encoding": "^0.28.11", diff --git a/apps/api/src/db/dbConnection.ts b/apps/api/src/db/dbConnection.ts index f68949e74..92a7f3b2a 100644 --- a/apps/api/src/db/dbConnection.ts +++ b/apps/api/src/db/dbConnection.ts @@ -1,6 +1,6 @@ -import { chainDefinitions } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { chainModels, getChainModels, userModels } from "@akashnetwork/cloudmos-shared/dbSchemas"; -import { Template, TemplateFavorite, UserAddressName, UserSetting } from "@akashnetwork/cloudmos-shared/dbSchemas/user"; +import { chainDefinitions } from "@akashnetwork/database/chainDefinitions"; +import { chainModels, getChainModels, userModels } from "@akashnetwork/database/dbSchemas"; +import { Template, TemplateFavorite, UserAddressName, UserSetting } from "@akashnetwork/database/dbSchemas/user"; import pg from "pg"; import { Transaction as DbTransaction } from "sequelize"; import { Sequelize } from "sequelize-typescript"; diff --git a/apps/api/src/routers/dashboardRouter.ts b/apps/api/src/routers/dashboardRouter.ts index ab7d2290b..c3fb81d39 100644 --- a/apps/api/src/routers/dashboardRouter.ts +++ b/apps/api/src/routers/dashboardRouter.ts @@ -1,4 +1,4 @@ -import { Template, UserSetting } from "@akashnetwork/cloudmos-shared/dbSchemas/user"; +import { Template, UserSetting } from "@akashnetwork/database/dbSchemas/user"; import { Hono } from "hono"; import { privateMiddleware } from "@src/middlewares/privateMiddleware"; diff --git a/apps/api/src/routes/internal/gpuPrices.ts b/apps/api/src/routes/internal/gpuPrices.ts index 0cd17dec5..74eb8eb6b 100644 --- a/apps/api/src/routes/internal/gpuPrices.ts +++ b/apps/api/src/routes/internal/gpuPrices.ts @@ -1,7 +1,7 @@ import { MsgCreateBid } from "@akashnetwork/akash-api/akash/market/v1beta4"; -import { Block } from "@akashnetwork/cloudmos-shared/dbSchemas"; -import { AkashMessage, Deployment, DeploymentGroup, DeploymentGroupResource } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { Day, Transaction } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { Block } from "@akashnetwork/database/dbSchemas"; +import { AkashMessage, Deployment, DeploymentGroup, DeploymentGroupResource } from "@akashnetwork/database/dbSchemas/akash"; +import { Day, Transaction } from "@akashnetwork/database/dbSchemas/base"; import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; import { addDays, sub } from "date-fns"; import { Op, QueryTypes } from "sequelize"; diff --git a/apps/api/src/routes/internal/leasesDuration.ts b/apps/api/src/routes/internal/leasesDuration.ts index bb0af8076..a3e433de6 100644 --- a/apps/api/src/routes/internal/leasesDuration.ts +++ b/apps/api/src/routes/internal/leasesDuration.ts @@ -1,5 +1,5 @@ -import { Block } from "@akashnetwork/cloudmos-shared/dbSchemas"; -import { Lease } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +import { Block } from "@akashnetwork/database/dbSchemas"; +import { Lease } from "@akashnetwork/database/dbSchemas/akash"; import { createRoute, OpenAPIHono, z } from "@hono/zod-openapi"; import { differenceInSeconds } from "date-fns"; import { Op } from "sequelize"; diff --git a/apps/api/src/services/db/blocksService.ts b/apps/api/src/services/db/blocksService.ts index db7b9ede1..912f5f4ef 100644 --- a/apps/api/src/services/db/blocksService.ts +++ b/apps/api/src/services/db/blocksService.ts @@ -1,5 +1,5 @@ -import { AkashBlock as Block, AkashMessage as Message } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { Transaction, Validator } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { AkashBlock as Block, AkashMessage as Message } from "@akashnetwork/database/dbSchemas/akash"; +import { Transaction, Validator } from "@akashnetwork/database/dbSchemas/base"; import { addSeconds, differenceInSeconds } from "date-fns"; export async function getBlocks(limit: number) { diff --git a/apps/api/src/services/db/deploymentService.ts b/apps/api/src/services/db/deploymentService.ts index 57d79cbac..d2964b6a0 100644 --- a/apps/api/src/services/db/deploymentService.ts +++ b/apps/api/src/services/db/deploymentService.ts @@ -1,8 +1,8 @@ import * as v2beta2 from "@akashnetwork/akash-api/akash/market/v1beta2"; import * as v1beta1 from "@akashnetwork/akash-api/deprecated/akash/market/v1beta1"; -import { Block, Message } from "@akashnetwork/cloudmos-shared/dbSchemas"; -import { Deployment, Lease } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { Transaction } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { Block, Message } from "@akashnetwork/database/dbSchemas"; +import { Deployment, Lease } from "@akashnetwork/database/dbSchemas/akash"; +import { Transaction } from "@akashnetwork/database/dbSchemas/base"; import { Op, WhereOptions } from "sequelize"; import { decodeMsg } from "@src/utils/protobuf"; diff --git a/apps/api/src/services/db/networkRevenueService.ts b/apps/api/src/services/db/networkRevenueService.ts index a4df9069a..bb40d6304 100644 --- a/apps/api/src/services/db/networkRevenueService.ts +++ b/apps/api/src/services/db/networkRevenueService.ts @@ -1,5 +1,5 @@ -import { AkashBlock as Block } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { Day } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { AkashBlock as Block } from "@akashnetwork/database/dbSchemas/akash"; +import { Day } from "@akashnetwork/database/dbSchemas/base"; import { add } from "date-fns"; import { Op } from "sequelize"; diff --git a/apps/api/src/services/db/providerDataService.ts b/apps/api/src/services/db/providerDataService.ts index ad509f6b2..eb5a8d720 100644 --- a/apps/api/src/services/db/providerDataService.ts +++ b/apps/api/src/services/db/providerDataService.ts @@ -1,4 +1,4 @@ -import { Provider, ProviderAttribute } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +import { Provider, ProviderAttribute } from "@akashnetwork/database/dbSchemas/akash"; import { getProviderAttributesSchema } from "@src/services/external/githubService"; diff --git a/apps/api/src/services/db/providerStatusService.ts b/apps/api/src/services/db/providerStatusService.ts index 27d6799fb..8475229b5 100644 --- a/apps/api/src/services/db/providerStatusService.ts +++ b/apps/api/src/services/db/providerStatusService.ts @@ -4,8 +4,8 @@ import { ProviderAttributeSignature, ProviderSnapshotNode, ProviderSnapshotNodeGPU -} from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { ProviderSnapshot } from "@akashnetwork/cloudmos-shared/dbSchemas/akash/providerSnapshot"; +} from "@akashnetwork/database/dbSchemas/akash"; +import { ProviderSnapshot } from "@akashnetwork/database/dbSchemas/akash/providerSnapshot"; import { add, sub } from "date-fns"; import { Op } from "sequelize"; diff --git a/apps/api/src/services/db/statsService.ts b/apps/api/src/services/db/statsService.ts index b6aaad40b..9f868f629 100644 --- a/apps/api/src/services/db/statsService.ts +++ b/apps/api/src/services/db/statsService.ts @@ -1,5 +1,5 @@ -import { AkashBlock as Block } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { Day } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { AkashBlock as Block } from "@akashnetwork/database/dbSchemas/akash"; +import { Day } from "@akashnetwork/database/dbSchemas/base"; import { subHours } from "date-fns"; import { Op, QueryTypes } from "sequelize"; diff --git a/apps/api/src/services/db/templateService.ts b/apps/api/src/services/db/templateService.ts index 9a919b489..187630172 100644 --- a/apps/api/src/services/db/templateService.ts +++ b/apps/api/src/services/db/templateService.ts @@ -1,4 +1,4 @@ -import { Template, TemplateFavorite, UserSetting } from "@akashnetwork/cloudmos-shared/dbSchemas/user"; +import { Template, TemplateFavorite, UserSetting } from "@akashnetwork/database/dbSchemas/user"; import { Op } from "sequelize"; import * as uuid from "uuid"; diff --git a/apps/api/src/services/db/transactionsService.ts b/apps/api/src/services/db/transactionsService.ts index e8958a4bb..30a64070e 100644 --- a/apps/api/src/services/db/transactionsService.ts +++ b/apps/api/src/services/db/transactionsService.ts @@ -1,5 +1,5 @@ -import { AkashBlock as Block, AkashMessage as Message } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { AddressReference, Transaction } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { AkashBlock as Block, AkashMessage as Message } from "@akashnetwork/database/dbSchemas/akash"; +import { AddressReference, Transaction } from "@akashnetwork/database/dbSchemas/base"; import { QueryTypes } from "sequelize"; import { chainDb } from "@src/db/dbConnection"; diff --git a/apps/api/src/services/db/userDataService.ts b/apps/api/src/services/db/userDataService.ts index 31c5234e4..acf56d359 100644 --- a/apps/api/src/services/db/userDataService.ts +++ b/apps/api/src/services/db/userDataService.ts @@ -1,4 +1,4 @@ -import { UserAddressName, UserSetting } from "@akashnetwork/cloudmos-shared/dbSchemas/user"; +import { UserAddressName, UserSetting } from "@akashnetwork/database/dbSchemas/user"; import { Transaction } from "sequelize"; import { getUserPlan } from "../external/stripeService"; diff --git a/apps/api/src/services/external/apiNodeService.ts b/apps/api/src/services/external/apiNodeService.ts index 7d6bc9a21..2b43adc51 100644 --- a/apps/api/src/services/external/apiNodeService.ts +++ b/apps/api/src/services/external/apiNodeService.ts @@ -1,6 +1,6 @@ -import { Block } from "@akashnetwork/cloudmos-shared/dbSchemas"; -import { Deployment, Lease, Provider, ProviderAttribute } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { Validator } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { Block } from "@akashnetwork/database/dbSchemas"; +import { Deployment, Lease, Provider, ProviderAttribute } from "@akashnetwork/database/dbSchemas/akash"; +import { Validator } from "@akashnetwork/database/dbSchemas/base"; import axios from "axios"; import fetch from "node-fetch"; import { Op } from "sequelize"; diff --git a/apps/api/src/services/external/stripeService.ts b/apps/api/src/services/external/stripeService.ts index 2b3014730..5cc55ff4d 100644 --- a/apps/api/src/services/external/stripeService.ts +++ b/apps/api/src/services/external/stripeService.ts @@ -1,5 +1,5 @@ -import { UserSetting } from "@akashnetwork/cloudmos-shared/dbSchemas/user"; -import { PlanCode } from "@akashnetwork/cloudmos-shared/plans"; +import { UserSetting } from "@akashnetwork/database/dbSchemas/user"; +import { PlanCode } from "@akashnetwork/database/plans"; import Stripe from "stripe"; import { env } from "@src/utils/env"; diff --git a/apps/api/src/utils/map/provider.ts b/apps/api/src/utils/map/provider.ts index 7019bd386..af02d9930 100644 --- a/apps/api/src/utils/map/provider.ts +++ b/apps/api/src/utils/map/provider.ts @@ -1,4 +1,4 @@ -import { Provider, ProviderSnapshot, ProviderSnapshotNode } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +import { Provider, ProviderSnapshot, ProviderSnapshotNode } from "@akashnetwork/database/dbSchemas/akash"; import semver from "semver"; import { Auditor, ProviderAttributesSchema, ProviderList } from "@src/types/provider"; diff --git a/apps/deploy-web/next.config.js b/apps/deploy-web/next.config.js index dbfccd2fd..fabc0ef08 100644 --- a/apps/deploy-web/next.config.js +++ b/apps/deploy-web/next.config.js @@ -28,7 +28,7 @@ const moduleExports = { eslint: { ignoreDuringBuilds: true }, - transpilePackages: ["geist"], + transpilePackages: ["geist", "@akashnetwork/ui"], // experimental: { // // outputStandalone: true, // externalDir: true // to make the import from shared parent folder work https://github.com/vercel/next.js/issues/9474#issuecomment-810212174 diff --git a/apps/deploy-web/package.json b/apps/deploy-web/package.json index 08699d090..dede84f25 100644 --- a/apps/deploy-web/package.json +++ b/apps/deploy-web/package.json @@ -17,6 +17,7 @@ "dependencies": { "@akashnetwork/akash-api": "^1.3.0", "@akashnetwork/akashjs": "^0.10.0", + "@akashnetwork/ui": "*", "@auth0/nextjs-auth0": "^3.5.0", "@chain-registry/types": "^0.41.3", "@cosmjs/encoding": "^0.32.3", @@ -116,8 +117,6 @@ "sharp": "^0.30.3", "stripe": "^10.14.0", "tailwind-merge": "^2.0.0", - "tailwind-scrollbar": "^3.0.5", - "tailwindcss-animate": "^1.0.7", "tss-react": "^4.8.5", "use-state-with-callback": "^3.0.2", "usehooks-ts": "^2.9.1", @@ -130,7 +129,6 @@ "@akashnetwork/dev-config": "*", "@keplr-wallet/types": "^0.10.15", "@next/bundle-analyzer": "^14.0.1", - "@tailwindcss/typography": "^0.5.12", "@types/auth0": "^2.35.3", "@types/file-saver": "^2.0.5", "@types/js-yaml": "^4.0.5", diff --git a/apps/deploy-web/postcss.config.js b/apps/deploy-web/postcss.config.js index 1a3cd81d9..cefb51f3b 100644 --- a/apps/deploy-web/postcss.config.js +++ b/apps/deploy-web/postcss.config.js @@ -1,8 +1 @@ -module.exports = { - plugins: { - "postcss-import": {}, - "tailwindcss/nesting": "postcss-nesting", - tailwindcss: {}, - autoprefixer: {} - } -}; +module.exports = require("@akashnetwork/ui/postcss"); diff --git a/apps/deploy-web/public/sw.js b/apps/deploy-web/public/sw.js index 4c5ea8239..cdf2e59ec 100644 --- a/apps/deploy-web/public/sw.js +++ b/apps/deploy-web/public/sw.js @@ -1,2 +1,2 @@ -if(!self.define){let e,a={};const s=(s,c)=>(s=new URL(s+".js",c).href,a[s]||new Promise((a=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=a,document.head.appendChild(e)}else e=s,importScripts(s),a()})).then((()=>{let e=a[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(c,i)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(a[n])return;let t={};const d=e=>s(e,n),f={module:{uri:n},exports:t,require:d};a[n]=Promise.all(c.map((e=>f[e]||d(e)))).then((e=>(i(...e),t)))}}define(["./workbox-19663cdd"],(function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/chunks/097d1023.8d18ae9142f1c2a8.js",revision:"8d18ae9142f1c2a8"},{url:"/_next/static/chunks/1032-22f71b5bb1a7c70b.js",revision:"22f71b5bb1a7c70b"},{url:"/_next/static/chunks/1032-22f71b5bb1a7c70b.js.map",revision:"da368290e1b239700d191ea57a8ddb68"},{url:"/_next/static/chunks/1088.04d87f92e05f23c7.js",revision:"04d87f92e05f23c7"},{url:"/_next/static/chunks/1088.04d87f92e05f23c7.js.map",revision:"ca3a805017cba26bac9a7c02743db9d8"},{url:"/_next/static/chunks/1391.fe4f4c9587361038.js",revision:"fe4f4c9587361038"},{url:"/_next/static/chunks/1391.fe4f4c9587361038.js.map",revision:"11bdc977f8c3c9e0199e862b5a6507b9"},{url:"/_next/static/chunks/1509.1e70975a7a7349d6.js",revision:"1e70975a7a7349d6"},{url:"/_next/static/chunks/1509.1e70975a7a7349d6.js.map",revision:"c66d65843d3880437285cd813d8f52b3"},{url:"/_next/static/chunks/1604-f65e1c37c1c1dbbd.js",revision:"f65e1c37c1c1dbbd"},{url:"/_next/static/chunks/1604-f65e1c37c1c1dbbd.js.map",revision:"19fb4fb1b0dcbe891e0a699e3a921245"},{url:"/_next/static/chunks/1608.ec04f07937386922.js",revision:"ec04f07937386922"},{url:"/_next/static/chunks/1608.ec04f07937386922.js.map",revision:"26951cea811c07e036ab5219e433933d"},{url:"/_next/static/chunks/1711.ae2b84d9f5645069.js",revision:"ae2b84d9f5645069"},{url:"/_next/static/chunks/1711.ae2b84d9f5645069.js.map",revision:"f51131bf2df4917ff4b3da102cb57369"},{url:"/_next/static/chunks/1727.af62bd633f21ee69.js",revision:"af62bd633f21ee69"},{url:"/_next/static/chunks/1727.af62bd633f21ee69.js.map",revision:"215576c3220637351aca671aab12c05f"},{url:"/_next/static/chunks/1748.f63b451fd93f590b.js",revision:"f63b451fd93f590b"},{url:"/_next/static/chunks/1748.f63b451fd93f590b.js.map",revision:"a217a6b6a27632b27623a8e003efcc3d"},{url:"/_next/static/chunks/1778-a61fce85b167d2e2.js",revision:"a61fce85b167d2e2"},{url:"/_next/static/chunks/1778-a61fce85b167d2e2.js.map",revision:"eacd1d87f6ac1b28c330fc49dc229081"},{url:"/_next/static/chunks/1937-8dd4f9bce6f52e85.js",revision:"8dd4f9bce6f52e85"},{url:"/_next/static/chunks/1937-8dd4f9bce6f52e85.js.map",revision:"d3deb2d1d62bb823136de3545bfeb6a6"},{url:"/_next/static/chunks/1950.c8039f3dc9bb92f5.js",revision:"c8039f3dc9bb92f5"},{url:"/_next/static/chunks/1950.c8039f3dc9bb92f5.js.map",revision:"d5e1291e5837c229f09b881d4009c5e1"},{url:"/_next/static/chunks/1979.29a6071d1f882a30.js",revision:"29a6071d1f882a30"},{url:"/_next/static/chunks/1979.29a6071d1f882a30.js.map",revision:"1339d7bee688ae99bd04379aa3be4111"},{url:"/_next/static/chunks/2094.28e08f24027e196d.js",revision:"28e08f24027e196d"},{url:"/_next/static/chunks/2094.28e08f24027e196d.js.map",revision:"69787021115a1a040ac0b5a8eb6c8ad7"},{url:"/_next/static/chunks/225-67dfc6990819b6e4.js",revision:"67dfc6990819b6e4"},{url:"/_next/static/chunks/225-67dfc6990819b6e4.js.map",revision:"9fe94e7c532c8d2aa7871ed823575039"},{url:"/_next/static/chunks/2315-991fbd91ec03d8a1.js",revision:"991fbd91ec03d8a1"},{url:"/_next/static/chunks/2315-991fbd91ec03d8a1.js.map",revision:"b612cc02d7282afc90f1a0b066570373"},{url:"/_next/static/chunks/2453-d6c0da31bb0d0ee3.js",revision:"d6c0da31bb0d0ee3"},{url:"/_next/static/chunks/2453-d6c0da31bb0d0ee3.js.map",revision:"2b5570926930d1d4000f5922a1acb7dd"},{url:"/_next/static/chunks/2592.113087294050e17f.js",revision:"113087294050e17f"},{url:"/_next/static/chunks/2592.113087294050e17f.js.map",revision:"d2a2a7544101e2fccf91ae230c19f62a"},{url:"/_next/static/chunks/2604.250be1a3b8354750.js",revision:"250be1a3b8354750"},{url:"/_next/static/chunks/2604.250be1a3b8354750.js.map",revision:"0c9e2ea89157c15d7a4a89eaa78d10c4"},{url:"/_next/static/chunks/2746.0a838d09eabc5b43.js",revision:"0a838d09eabc5b43"},{url:"/_next/static/chunks/2746.0a838d09eabc5b43.js.map",revision:"7f3729e5106f008c40a3224c9b789988"},{url:"/_next/static/chunks/2830.ee1abe44ed91f1e3.js",revision:"ee1abe44ed91f1e3"},{url:"/_next/static/chunks/2830.ee1abe44ed91f1e3.js.map",revision:"05c55fe023ade088a4a5485c29f5a1a2"},{url:"/_next/static/chunks/2898.f370a64b5af02f0b.js",revision:"f370a64b5af02f0b"},{url:"/_next/static/chunks/2898.f370a64b5af02f0b.js.map",revision:"d94f7982afe1e589f5cba33ee67e23a7"},{url:"/_next/static/chunks/2902-6cdbc67017cf7866.js",revision:"6cdbc67017cf7866"},{url:"/_next/static/chunks/2902-6cdbc67017cf7866.js.map",revision:"070f26560a355eea3a066c57846cc4af"},{url:"/_next/static/chunks/2949-dd3cdef2c4f45c69.js",revision:"dd3cdef2c4f45c69"},{url:"/_next/static/chunks/2949-dd3cdef2c4f45c69.js.map",revision:"a3ebfdf0dde9eb612b4ac18143090bbd"},{url:"/_next/static/chunks/2db20c0c.3d07d47ff817f656.js",revision:"3d07d47ff817f656"},{url:"/_next/static/chunks/2db20c0c.3d07d47ff817f656.js.map",revision:"20c7ada821e4e5ddfbaed0c7c1b93f96"},{url:"/_next/static/chunks/3064-5e75a1704bfca83d.js",revision:"5e75a1704bfca83d"},{url:"/_next/static/chunks/3064-5e75a1704bfca83d.js.map",revision:"4775a64fb04fbb9556053d8d1f34fee2"},{url:"/_next/static/chunks/3157.077df2c934109593.js",revision:"077df2c934109593"},{url:"/_next/static/chunks/3157.077df2c934109593.js.map",revision:"eba0eddd7b64e49942c882b4654fc463"},{url:"/_next/static/chunks/3200.07a96119d145f2e1.js",revision:"07a96119d145f2e1"},{url:"/_next/static/chunks/3200.07a96119d145f2e1.js.map",revision:"ec42df6ba2cd468c82257b5026606081"},{url:"/_next/static/chunks/3318-31d0c0f58c771057.js",revision:"31d0c0f58c771057"},{url:"/_next/static/chunks/3318-31d0c0f58c771057.js.map",revision:"d58c04afed6aadd682ac1ceff20208af"},{url:"/_next/static/chunks/3525.53072abba3ca74b8.js",revision:"53072abba3ca74b8"},{url:"/_next/static/chunks/3525.53072abba3ca74b8.js.map",revision:"dc3fd2debe616654f7c28638256d5cad"},{url:"/_next/static/chunks/3725-7619378e8ba1a8fa.js",revision:"7619378e8ba1a8fa"},{url:"/_next/static/chunks/3725-7619378e8ba1a8fa.js.map",revision:"57bfda19fa09c397d22a8871338bf305"},{url:"/_next/static/chunks/3764-05f3b893fd57daf5.js",revision:"05f3b893fd57daf5"},{url:"/_next/static/chunks/3764-05f3b893fd57daf5.js.map",revision:"814555941f6be5078c7055a5ff4c1ec2"},{url:"/_next/static/chunks/3829-bd20568befc9c0c3.js",revision:"bd20568befc9c0c3"},{url:"/_next/static/chunks/3829-bd20568befc9c0c3.js.map",revision:"1b568f7338bfe1e2fa777f6318d72df2"},{url:"/_next/static/chunks/3875-3736b1856337a10c.js",revision:"3736b1856337a10c"},{url:"/_next/static/chunks/3875-3736b1856337a10c.js.map",revision:"c5f86d643377ec379be2106008e57fa4"},{url:"/_next/static/chunks/3952-632e2638ee5bfe85.js",revision:"632e2638ee5bfe85"},{url:"/_next/static/chunks/3952-632e2638ee5bfe85.js.map",revision:"fa65c96c5a814dfc17280223ec51671f"},{url:"/_next/static/chunks/3966.cf34d789db8a41ec.js",revision:"cf34d789db8a41ec"},{url:"/_next/static/chunks/3966.cf34d789db8a41ec.js.map",revision:"6d4eff51d085aaf9ce98c907a8c92d34"},{url:"/_next/static/chunks/4053-bdbee820a06be88c.js",revision:"bdbee820a06be88c"},{url:"/_next/static/chunks/4053-bdbee820a06be88c.js.map",revision:"741aec410d4c182c7504c836130c68df"},{url:"/_next/static/chunks/41c057a7.8122a34cc586689f.js",revision:"8122a34cc586689f"},{url:"/_next/static/chunks/41c057a7.8122a34cc586689f.js.map",revision:"2dc70751ea09532bf1b63bfe7e6941bf"},{url:"/_next/static/chunks/422.9225da49a5498aad.js",revision:"9225da49a5498aad"},{url:"/_next/static/chunks/422.9225da49a5498aad.js.map",revision:"b09bdea3cf60bfbaf7575f00457bb1e7"},{url:"/_next/static/chunks/4253.6be69df622e36e45.js",revision:"6be69df622e36e45"},{url:"/_next/static/chunks/4253.6be69df622e36e45.js.map",revision:"d8d847ec6159e0fe6de39b8332ff5d6b"},{url:"/_next/static/chunks/4370-ba233111972fb586.js",revision:"ba233111972fb586"},{url:"/_next/static/chunks/4370-ba233111972fb586.js.map",revision:"7b265c6da2ff6f570115672b2096c171"},{url:"/_next/static/chunks/4419.c4f2007bfe36ec14.js",revision:"c4f2007bfe36ec14"},{url:"/_next/static/chunks/4419.c4f2007bfe36ec14.js.map",revision:"d8ab9a0fb0f6df891a3c4620dc539412"},{url:"/_next/static/chunks/4583.205bbdd6677d7c00.js",revision:"205bbdd6677d7c00"},{url:"/_next/static/chunks/4583.205bbdd6677d7c00.js.map",revision:"344af3f27248c525f911f4fbbe6fa186"},{url:"/_next/static/chunks/4758-48ee14a7b6642f0c.js",revision:"48ee14a7b6642f0c"},{url:"/_next/static/chunks/4758-48ee14a7b6642f0c.js.map",revision:"89d0c05e64c429eaa4cebe55623ea66f"},{url:"/_next/static/chunks/5102-e8988ba46fac1b5c.js",revision:"e8988ba46fac1b5c"},{url:"/_next/static/chunks/5102-e8988ba46fac1b5c.js.map",revision:"d3eacacc74593b0f16ed69e50bb3b211"},{url:"/_next/static/chunks/5119.33e08a0525159056.js",revision:"33e08a0525159056"},{url:"/_next/static/chunks/5119.33e08a0525159056.js.map",revision:"6292da2e2c73c71632d49ba7636cdb2f"},{url:"/_next/static/chunks/514.d2f047fea62adf58.js",revision:"d2f047fea62adf58"},{url:"/_next/static/chunks/514.d2f047fea62adf58.js.map",revision:"b8e24e2a75330449b66ef16130dbb8c8"},{url:"/_next/static/chunks/5198.f05f39874e490159.js",revision:"f05f39874e490159"},{url:"/_next/static/chunks/5198.f05f39874e490159.js.map",revision:"4a81b86e327e6a000004045e0fb1c401"},{url:"/_next/static/chunks/5488.ea86c6ce443ba3bd.js",revision:"ea86c6ce443ba3bd"},{url:"/_next/static/chunks/5488.ea86c6ce443ba3bd.js.map",revision:"b733c8634c782998d6480a7136e41224"},{url:"/_next/static/chunks/55620dd8.0741a37252fa2f53.js",revision:"0741a37252fa2f53"},{url:"/_next/static/chunks/55620dd8.0741a37252fa2f53.js.map",revision:"0776e73b6064985449bfe91f25909789"},{url:"/_next/static/chunks/5659-717ea88b9853915c.js",revision:"717ea88b9853915c"},{url:"/_next/static/chunks/5659-717ea88b9853915c.js.map",revision:"5bd229b0e22859ea263ad2bdee55806d"},{url:"/_next/static/chunks/5710.5bdbdbf21f1c3db3.js",revision:"5bdbdbf21f1c3db3"},{url:"/_next/static/chunks/5710.5bdbdbf21f1c3db3.js.map",revision:"1099bff09271fbdb16655e8e1c59751a"},{url:"/_next/static/chunks/5720-eac5717482dbb961.js",revision:"eac5717482dbb961"},{url:"/_next/static/chunks/5720-eac5717482dbb961.js.map",revision:"fc8eacafa9ad01a79e213e4a05612177"},{url:"/_next/static/chunks/5789-fcc25d4239c5a36c.js",revision:"fcc25d4239c5a36c"},{url:"/_next/static/chunks/5789-fcc25d4239c5a36c.js.map",revision:"93af74706961cb3ff635056d70c147d8"},{url:"/_next/static/chunks/5806.7abe5840ceba140e.js",revision:"7abe5840ceba140e"},{url:"/_next/static/chunks/5806.7abe5840ceba140e.js.map",revision:"af125939cecd435139e392f8bd56370f"},{url:"/_next/static/chunks/5811.c57c2ce8e34cef01.js",revision:"c57c2ce8e34cef01"},{url:"/_next/static/chunks/5811.c57c2ce8e34cef01.js.map",revision:"012e24e23a09da9a778fbdd9822aca21"},{url:"/_next/static/chunks/5939.0a433dc6f963fc41.js",revision:"0a433dc6f963fc41"},{url:"/_next/static/chunks/5939.0a433dc6f963fc41.js.map",revision:"1bbdb067870f00a00178e4d957674ff3"},{url:"/_next/static/chunks/6030-e83e68cc2f8463a2.js",revision:"e83e68cc2f8463a2"},{url:"/_next/static/chunks/6030-e83e68cc2f8463a2.js.map",revision:"8ed3059b29709f0220d408c94f7f3f41"},{url:"/_next/static/chunks/6237.f7b1d24c812922e4.js",revision:"f7b1d24c812922e4"},{url:"/_next/static/chunks/6237.f7b1d24c812922e4.js.map",revision:"6cc4d38f59df19f8bafb8008cea0e488"},{url:"/_next/static/chunks/6253.dcdff54f0dceda1f.js",revision:"dcdff54f0dceda1f"},{url:"/_next/static/chunks/6253.dcdff54f0dceda1f.js.map",revision:"fd34194cf6e7dcf3a341d71be81cf081"},{url:"/_next/static/chunks/6328.ea13afa99496d818.js",revision:"ea13afa99496d818"},{url:"/_next/static/chunks/6328.ea13afa99496d818.js.map",revision:"dde091d41c2e039efeddcb6701a8fff0"},{url:"/_next/static/chunks/6512.977ebe92578592ef.js",revision:"977ebe92578592ef"},{url:"/_next/static/chunks/6512.977ebe92578592ef.js.map",revision:"6606809cc81420379be21938281aabb9"},{url:"/_next/static/chunks/6550-01e44e3f39a0d2ec.js",revision:"01e44e3f39a0d2ec"},{url:"/_next/static/chunks/6550-01e44e3f39a0d2ec.js.map",revision:"1e15af60961ffa13c8827671f01ac5d5"},{url:"/_next/static/chunks/6551.432f96462db0d036.js",revision:"432f96462db0d036"},{url:"/_next/static/chunks/6551.432f96462db0d036.js.map",revision:"bbafc98b0f89d865028b5b13b0a8a0aa"},{url:"/_next/static/chunks/6641.ffb505c77ca0be88.js",revision:"ffb505c77ca0be88"},{url:"/_next/static/chunks/6641.ffb505c77ca0be88.js.map",revision:"cfd24f0648f62c4b9fdd7ad66f4a38a2"},{url:"/_next/static/chunks/6721-d608df68a2c1aaa1.js",revision:"d608df68a2c1aaa1"},{url:"/_next/static/chunks/6721-d608df68a2c1aaa1.js.map",revision:"5a10b634136c35aa474694e3d87e5657"},{url:"/_next/static/chunks/6847.a575059dbc72db1a.js",revision:"a575059dbc72db1a"},{url:"/_next/static/chunks/6847.a575059dbc72db1a.js.map",revision:"474743eec3f96f8b5da6225edcc55781"},{url:"/_next/static/chunks/6935-df371e1f052ceb4b.js",revision:"df371e1f052ceb4b"},{url:"/_next/static/chunks/6935-df371e1f052ceb4b.js.map",revision:"39bb17464e7f018277d3e61a3b765e29"},{url:"/_next/static/chunks/704.484bcd9e0a7f5626.js",revision:"484bcd9e0a7f5626"},{url:"/_next/static/chunks/704.484bcd9e0a7f5626.js.map",revision:"6ef4c87648d589362f885ceeaf75cf19"},{url:"/_next/static/chunks/7469.b38ac6cad727c3cb.js",revision:"b38ac6cad727c3cb"},{url:"/_next/static/chunks/7469.b38ac6cad727c3cb.js.map",revision:"550128ac3b4a289e771fff24c4e3c0c1"},{url:"/_next/static/chunks/7619.8cb70b87bca51587.js",revision:"8cb70b87bca51587"},{url:"/_next/static/chunks/7619.8cb70b87bca51587.js.map",revision:"dbc52dd1f7f272bfb9a76373bc722eba"},{url:"/_next/static/chunks/7682.b0a3567fac8e0052.js",revision:"b0a3567fac8e0052"},{url:"/_next/static/chunks/7682.b0a3567fac8e0052.js.map",revision:"fa3bd1a16aabfc8ad19427c8d4a21c8a"},{url:"/_next/static/chunks/7793-99899d84aad8670b.js",revision:"99899d84aad8670b"},{url:"/_next/static/chunks/7793-99899d84aad8670b.js.map",revision:"c2295ca7a14748fa08d44616149a1ceb"},{url:"/_next/static/chunks/7805-b2a136512d78c374.js",revision:"b2a136512d78c374"},{url:"/_next/static/chunks/7805-b2a136512d78c374.js.map",revision:"73cca0f9c7efe68a38ce9951bc7094bb"},{url:"/_next/static/chunks/794.1e2bed8991cb7232.js",revision:"1e2bed8991cb7232"},{url:"/_next/static/chunks/794.1e2bed8991cb7232.js.map",revision:"8102c2e3c02eb841e04a8ec88f69e287"},{url:"/_next/static/chunks/8137.d6c500ddcf42e542.js",revision:"d6c500ddcf42e542"},{url:"/_next/static/chunks/8137.d6c500ddcf42e542.js.map",revision:"80d8dd2aa7e3e3b96733eabb3b58400c"},{url:"/_next/static/chunks/8366.656bbd943f76fa86.js",revision:"656bbd943f76fa86"},{url:"/_next/static/chunks/8366.656bbd943f76fa86.js.map",revision:"e1d048e368adbffc6cf0e3a4c22ffb1d"},{url:"/_next/static/chunks/8408-01e4bf0a708112c7.js",revision:"01e4bf0a708112c7"},{url:"/_next/static/chunks/8408-01e4bf0a708112c7.js.map",revision:"106852e27bdf5c7bd7cdceb5fe9578fc"},{url:"/_next/static/chunks/8693-137e57cb1fb7cc46.js",revision:"137e57cb1fb7cc46"},{url:"/_next/static/chunks/8693-137e57cb1fb7cc46.js.map",revision:"f64d210823596733ca804fdf09f4d850"},{url:"/_next/static/chunks/8881.8c985300b37d631a.js",revision:"8c985300b37d631a"},{url:"/_next/static/chunks/8881.8c985300b37d631a.js.map",revision:"f1ea2eff344cca229ef10ae8325ffb19"},{url:"/_next/static/chunks/8906.7becb64cf75ab6af.js",revision:"7becb64cf75ab6af"},{url:"/_next/static/chunks/8906.7becb64cf75ab6af.js.map",revision:"0ccb2e89a5c7a0e384b29938364e10dd"},{url:"/_next/static/chunks/89cecdcb.af2bee64d05fadc8.js",revision:"af2bee64d05fadc8"},{url:"/_next/static/chunks/89cecdcb.af2bee64d05fadc8.js.map",revision:"3741b225a6b68f036fe3a6a9b47dc2d3"},{url:"/_next/static/chunks/9223.882cd6b61a640a13.js",revision:"882cd6b61a640a13"},{url:"/_next/static/chunks/9223.882cd6b61a640a13.js.map",revision:"5d9c2c74c46cb60b31a9089ab10bdc18"},{url:"/_next/static/chunks/9288-8045c1dc8a5ea60e.js",revision:"8045c1dc8a5ea60e"},{url:"/_next/static/chunks/9288-8045c1dc8a5ea60e.js.map",revision:"4ba9704c134cc99d59768ebc5559a61b"},{url:"/_next/static/chunks/9293-8af17d728be5ce1f.js",revision:"8af17d728be5ce1f"},{url:"/_next/static/chunks/9293-8af17d728be5ce1f.js.map",revision:"ff8f5fb3da277c43f4cb1c45fae19b33"},{url:"/_next/static/chunks/934.405a73de74b58e27.js",revision:"405a73de74b58e27"},{url:"/_next/static/chunks/934.405a73de74b58e27.js.map",revision:"7d759f3e5db88b36c68a0e8c62d0a234"},{url:"/_next/static/chunks/9343.b6a5aebbe4138a78.js",revision:"b6a5aebbe4138a78"},{url:"/_next/static/chunks/9343.b6a5aebbe4138a78.js.map",revision:"945e322edcb947ae8f9719289656bc1f"},{url:"/_next/static/chunks/9467-8fed1718f255373e.js",revision:"8fed1718f255373e"},{url:"/_next/static/chunks/9467-8fed1718f255373e.js.map",revision:"646526681542df5ecdefd74d83ed9785"},{url:"/_next/static/chunks/9600.5accbcbb008d261e.js",revision:"5accbcbb008d261e"},{url:"/_next/static/chunks/9600.5accbcbb008d261e.js.map",revision:"bab15f38652f79dd4b7da337c1ee35ec"},{url:"/_next/static/chunks/9606-8673ee73819c462d.js",revision:"8673ee73819c462d"},{url:"/_next/static/chunks/9606-8673ee73819c462d.js.map",revision:"c13fa2e14289e79e516cf984f2b65eaf"},{url:"/_next/static/chunks/9669.1e5a604c16a88b07.js",revision:"1e5a604c16a88b07"},{url:"/_next/static/chunks/9669.1e5a604c16a88b07.js.map",revision:"c6e8a3dc1f542a959bbe38d046ec7dd0"},{url:"/_next/static/chunks/9838-0719826ac73c1710.js",revision:"0719826ac73c1710"},{url:"/_next/static/chunks/9838-0719826ac73c1710.js.map",revision:"68c21023a1861181d696c313c5ae415a"},{url:"/_next/static/chunks/9851-e4e60b87fb1f8280.js",revision:"e4e60b87fb1f8280"},{url:"/_next/static/chunks/9851-e4e60b87fb1f8280.js.map",revision:"2765ab59cdf3fe62bdf769d2d35322b7"},{url:"/_next/static/chunks/9941.44044767831d9eb0.js",revision:"44044767831d9eb0"},{url:"/_next/static/chunks/9941.44044767831d9eb0.js.map",revision:"2e33919a0042a766fce130a084d47bd8"},{url:"/_next/static/chunks/9990.ae4db9e0602dce90.js",revision:"ae4db9e0602dce90"},{url:"/_next/static/chunks/ed150ef9.c7018f6bfeada485.js",revision:"c7018f6bfeada485"},{url:"/_next/static/chunks/ed150ef9.c7018f6bfeada485.js.map",revision:"e9e74546bc3f5da6d1f4ac859021e2b8"},{url:"/_next/static/chunks/fea29d9f-e92e3ec209fdc760.js",revision:"e92e3ec209fdc760"},{url:"/_next/static/chunks/framework-56eb74ff06128874.js",revision:"56eb74ff06128874"},{url:"/_next/static/chunks/framework-56eb74ff06128874.js.map",revision:"d3eee39c6c60d345201a4dc3b21ccae6"},{url:"/_next/static/chunks/main-ac75a04fa308a7bb.js",revision:"ac75a04fa308a7bb"},{url:"/_next/static/chunks/main-ac75a04fa308a7bb.js.map",revision:"d48eba03d247e8469da28a02766d7d6b"},{url:"/_next/static/chunks/pages/404-a342ea018b92a866.js",revision:"a342ea018b92a866"},{url:"/_next/static/chunks/pages/404-a342ea018b92a866.js.map",revision:"b59e941845ce2c1c06bc1f5fd7ff6141"},{url:"/_next/static/chunks/pages/500-0765a8671560c3f3.js",revision:"0765a8671560c3f3"},{url:"/_next/static/chunks/pages/500-0765a8671560c3f3.js.map",revision:"bec7c215bc7093fdefefb9355b8c6cc9"},{url:"/_next/static/chunks/pages/_error-1b8072c13f00bf3a.js",revision:"1b8072c13f00bf3a"},{url:"/_next/static/chunks/pages/_error-1b8072c13f00bf3a.js.map",revision:"d16189168d8c1c8ef3437770c01b9658"},{url:"/_next/static/chunks/pages/contact-1a40297e145e651d.js",revision:"1a40297e145e651d"},{url:"/_next/static/chunks/pages/contact-1a40297e145e651d.js.map",revision:"1556a74418c6aace0476c9bc1e81bc8c"},{url:"/_next/static/chunks/pages/deployments-66ea5335eb30c576.js",revision:"66ea5335eb30c576"},{url:"/_next/static/chunks/pages/deployments-66ea5335eb30c576.js.map",revision:"4325469bec593b03301ae39571eef7a2"},{url:"/_next/static/chunks/pages/deployments/%5Bdseq%5D-12badc2813065e3b.js",revision:"12badc2813065e3b"},{url:"/_next/static/chunks/pages/deployments/%5Bdseq%5D-12badc2813065e3b.js.map",revision:"769bfe2b6854280094feac4166106d5f"},{url:"/_next/static/chunks/pages/faq-f64e58fd87bdc0d0.js",revision:"f64e58fd87bdc0d0"},{url:"/_next/static/chunks/pages/faq-f64e58fd87bdc0d0.js.map",revision:"fccd46385805b457f0f7d403ec6babae"},{url:"/_next/static/chunks/pages/get-started-bb447dd80692a210.js",revision:"bb447dd80692a210"},{url:"/_next/static/chunks/pages/get-started-bb447dd80692a210.js.map",revision:"9509bfedf23003ede69276856b762b77"},{url:"/_next/static/chunks/pages/get-started/wallet-3129b05aa40933e5.js",revision:"3129b05aa40933e5"},{url:"/_next/static/chunks/pages/get-started/wallet-3129b05aa40933e5.js.map",revision:"7d776ffcd5ccb07cf9ab278c825dcaba"},{url:"/_next/static/chunks/pages/index-0fc4f92c61ad92bb.js",revision:"0fc4f92c61ad92bb"},{url:"/_next/static/chunks/pages/index-0fc4f92c61ad92bb.js.map",revision:"e4032adfb4aa42661f1dfaa783306a2e"},{url:"/_next/static/chunks/pages/maintenance-d096f6338526f8f4.js",revision:"d096f6338526f8f4"},{url:"/_next/static/chunks/pages/maintenance-d096f6338526f8f4.js.map",revision:"25e281c9e1c571ad5122c70a5c462bab"},{url:"/_next/static/chunks/pages/new-deployment-2eef013b4376fec6.js",revision:"2eef013b4376fec6"},{url:"/_next/static/chunks/pages/new-deployment-2eef013b4376fec6.js.map",revision:"2937de76a3b13c42bd4333976cb333a6"},{url:"/_next/static/chunks/pages/privacy-policy-8f8976000b214e00.js",revision:"8f8976000b214e00"},{url:"/_next/static/chunks/pages/privacy-policy-8f8976000b214e00.js.map",revision:"ca2907cd54be5455668571544fd89bb6"},{url:"/_next/static/chunks/pages/profile/%5Busername%5D-e6bc64b7c3c86b8e.js",revision:"e6bc64b7c3c86b8e"},{url:"/_next/static/chunks/pages/profile/%5Busername%5D-e6bc64b7c3c86b8e.js.map",revision:"d79be69db74e2382eebabae035b72d68"},{url:"/_next/static/chunks/pages/providers-b5c05137aab3afd5.js",revision:"b5c05137aab3afd5"},{url:"/_next/static/chunks/pages/providers-b5c05137aab3afd5.js.map",revision:"8dd377fde5597b6f310711a1320637af"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D-7adc1ae9a3726d18.js",revision:"7adc1ae9a3726d18"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D-7adc1ae9a3726d18.js.map",revision:"7c6c91bcae3c4de64a07224568aebbe2"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/edit-18d5a3291273800b.js",revision:"18d5a3291273800b"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/edit-18d5a3291273800b.js.map",revision:"7aa6ba53180927590d2b84970401d349"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/leases-f9f62560a3482a30.js",revision:"f9f62560a3482a30"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/leases-f9f62560a3482a30.js.map",revision:"b13550468172caa32f8044259b63c888"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/raw-95dedc46f5601d89.js",revision:"95dedc46f5601d89"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/raw-95dedc46f5601d89.js.map",revision:"807fae7e972e30106e00ea8c56dc0bc9"},{url:"/_next/static/chunks/pages/rent-gpu-499027ecd6204acf.js",revision:"499027ecd6204acf"},{url:"/_next/static/chunks/pages/rent-gpu-499027ecd6204acf.js.map",revision:"279bb2c5797bbf8242c2e06c03fb019b"},{url:"/_next/static/chunks/pages/sdl-builder-09e01f85cfbd4f8c.js",revision:"09e01f85cfbd4f8c"},{url:"/_next/static/chunks/pages/sdl-builder-09e01f85cfbd4f8c.js.map",revision:"d028b9e69f3005d11e76f4f79cf7337b"},{url:"/_next/static/chunks/pages/settings-2b381f20bb05f116.js",revision:"2b381f20bb05f116"},{url:"/_next/static/chunks/pages/settings-2b381f20bb05f116.js.map",revision:"0f233d8d99acb6c3a90c761043eed22d"},{url:"/_next/static/chunks/pages/settings/authorizations-046f7f6bcab6c6fd.js",revision:"046f7f6bcab6c6fd"},{url:"/_next/static/chunks/pages/settings/authorizations-046f7f6bcab6c6fd.js.map",revision:"ac786cc725de6f0d57a2bcf561ff15e1"},{url:"/_next/static/chunks/pages/template/%5Bid%5D-b634d34848a77522.js",revision:"b634d34848a77522"},{url:"/_next/static/chunks/pages/template/%5Bid%5D-b634d34848a77522.js.map",revision:"986c8dd296a0dc741dd753e6eab40bf6"},{url:"/_next/static/chunks/pages/templates-198b3f3f58d00378.js",revision:"198b3f3f58d00378"},{url:"/_next/static/chunks/pages/templates-198b3f3f58d00378.js.map",revision:"0db03a02146fd498144128d4e0c1efc2"},{url:"/_next/static/chunks/pages/templates/%5BtemplateId%5D-428650d6d40402a4.js",revision:"428650d6d40402a4"},{url:"/_next/static/chunks/pages/templates/%5BtemplateId%5D-428650d6d40402a4.js.map",revision:"ea969945d88570f48c81e7e13e6b8fd6"},{url:"/_next/static/chunks/pages/terms-of-service-d353c91fc4e429ed.js",revision:"d353c91fc4e429ed"},{url:"/_next/static/chunks/pages/terms-of-service-d353c91fc4e429ed.js.map",revision:"662258f3fdd377d2ef57d4ee214640b0"},{url:"/_next/static/chunks/pages/user/settings-d71e3f956adfab0d.js",revision:"d71e3f956adfab0d"},{url:"/_next/static/chunks/pages/user/settings-d71e3f956adfab0d.js.map",revision:"727237dd0aad09bb1a61338d5b96f8db"},{url:"/_next/static/chunks/pages/user/settings/address-book-6e92883850aa0575.js",revision:"6e92883850aa0575"},{url:"/_next/static/chunks/pages/user/settings/address-book-6e92883850aa0575.js.map",revision:"60be3cbb18023c34b0e5d22f3c0244ed"},{url:"/_next/static/chunks/pages/user/settings/favorites-022f9475ea95279a.js",revision:"022f9475ea95279a"},{url:"/_next/static/chunks/pages/user/settings/favorites-022f9475ea95279a.js.map",revision:"09f10f120d1392eea9640bfce2fc23f4"},{url:"/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js",revision:"79330112775102f91e1010318bae2bd3"},{url:"/_next/static/chunks/webpack-38914863536cfda9.js",revision:"38914863536cfda9"},{url:"/_next/static/chunks/webpack-38914863536cfda9.js.map",revision:"7f2c8e577a5ad491881b8c481b82af16"},{url:"/_next/static/css/60da0364ed65e94f.css",revision:"60da0364ed65e94f"},{url:"/_next/static/css/60da0364ed65e94f.css.map",revision:"cb19ae85aa968d5f6d3933a56327e540"},{url:"/_next/static/css/85fa6dafca566008.css",revision:"85fa6dafca566008"},{url:"/_next/static/css/85fa6dafca566008.css.map",revision:"9c59b75c9f453e0da5cebf39ede2dd6f"},{url:"/_next/static/css/bb0d70a56ccaf79b.css",revision:"bb0d70a56ccaf79b"},{url:"/_next/static/css/bb0d70a56ccaf79b.css.map",revision:"9f1ff67358552fcad1bde5207dd8d6ac"},{url:"/_next/static/hxqGKJIHos-N-k5RJTdg6/_buildManifest.js",revision:"59417b6aadfcc2293cd1a54f8a710189"},{url:"/_next/static/hxqGKJIHos-N-k5RJTdg6/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/media/e11418ac562b8ac1-s.p.woff2",revision:"0e46e732cced180e3a2c7285100f27d4"},{url:"/akash-console.png",revision:"4ab11b341159b007fc63d28631e0a8d8"},{url:"/android-chrome-192x192.png",revision:"a2eeed7b0d4a8c9bd9fa014378ac733e"},{url:"/android-chrome-256x256.png",revision:"b0dc3017fadbf0f4c323636535f582b7"},{url:"/android-chrome-384x384.png",revision:"3fae18e8537ff0745221e5aec66c247b"},{url:"/apple-touch-icon.png",revision:"43451e961475b8323dcfb705fb6eb480"},{url:"/browserconfig.xml",revision:"e41ebb6b49206a59d8eafce8220ebeac"},{url:"/favicon-16x16.png",revision:"8cf7a2775f6f6d6db07b95197538b11b"},{url:"/favicon-32x32.png",revision:"bef7d8e9aaed7fb3ef49cbffa31b5339"},{url:"/favicon.ico",revision:"cfebc107c597696c596a277239546a86"},{url:"/images/akash-logo-dark.png",revision:"b1623e407dad710a4c0c73461bbb8bb3"},{url:"/images/akash-logo-flat-dark.png",revision:"50b4ad6438e791047d97da0af65b96f5"},{url:"/images/akash-logo-flat-light.png",revision:"2befec2d17a2b6a32b1a0517ca1baf01"},{url:"/images/akash-logo-light.png",revision:"0ea30905c72eda674ad74c65d0c062bf"},{url:"/images/akash-logo.svg",revision:"4a5f3eaf31bf0f88ff3baec6281c8de3"},{url:"/images/chains/akash.png",revision:"d0b3f8ccaa3b0d18ef4039f86edf4436"},{url:"/images/chains/atom.png",revision:"6e4d88ad2c295e811fee29cc89edfcb1"},{url:"/images/chains/evmos.png",revision:"487a456e9091dec9ddf18892531401f8"},{url:"/images/chains/huahua.png",revision:"f0ba8427522833bba44962e87e982412"},{url:"/images/chains/juno.png",revision:"933b7d992dc67fd2f0d0f35e182b3361"},{url:"/images/chains/kuji.png",revision:"9c31e679007e5ae16fc28e067d907f79"},{url:"/images/chains/osmo.png",revision:"6940c69c28e5d85d99ba498fc7e95a26"},{url:"/images/chains/scrt.png",revision:"0dd98be17447cf7c47d27153f534ca60"},{url:"/images/chains/stars.png",revision:"56d0bd40e52f010c7267eb78c53138f2"},{url:"/images/chains/strd.png",revision:"eebdfb53ba0bc9bba88b0bede7a44f6d"},{url:"/images/cloudmos-logo-light.png",revision:"a7423327e4280225e176da92c6176c28"},{url:"/images/cloudmos-logo-small.jpg",revision:"4b339b83e7dc396894537b83d794726d"},{url:"/images/cloudmos-logo.png",revision:"56d87e0230a0ad5dd745efd486a33a58"},{url:"/images/docker.png",revision:"fde0ed6a2add0ffabfbc5a7749fdfff2"},{url:"/images/faq/change-node.png",revision:"9421f6443f6c4397887035e50d8c9b24"},{url:"/images/faq/update-deployment-btn.png",revision:"ebc7f6907a08fdf6a6cd5a87043456fd"},{url:"/images/keplr-logo.png",revision:"50397e4902a33a6045c0f23dfe5cb1bd"},{url:"/images/leap-cosmos-logo.png",revision:"a54ced7748b33565e6dc1ea1c5b1ef52"},{url:"/images/powered-by-akash-dark.svg",revision:"3ea920f030ede7926a02c2dc17e332c4"},{url:"/images/powered-by-akash.svg",revision:"24b2566094fafded6c325246fe84c2a9"},{url:"/images/ubuntu.png",revision:"c631b8fae270a618c1fe1c9d43097189"},{url:"/images/wallet-connect-logo.png",revision:"8379e4d4e7267b47a0b5b89807a4d8f8"},{url:"/manifest.json",revision:"a030fca8a5c7b8e2e1b5d7614a8b74fa"},{url:"/mstile-150x150.png",revision:"17614fed638be1d5e2225b9d5419336a"},{url:"/robots.txt",revision:"c2bb774b8071c957d2b835beaa28a58b"},{url:"/safari-pinned-tab.svg",revision:"86b02210e078cb763098dfec594f4f04"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:a,event:s,state:c})=>a&&"opaqueredirect"===a.type?new Response(a.body,{status:200,statusText:"OK",headers:a.headers}):a}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const a=e.pathname;return!a.startsWith("/api/auth/")&&!!a.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")})); +if(!self.define){let e,a={};const s=(s,c)=>(s=new URL(s+".js",c).href,a[s]||new Promise((a=>{if("document"in self){const e=document.createElement("script");e.src=s,e.onload=a,document.head.appendChild(e)}else e=s,importScripts(s),a()})).then((()=>{let e=a[s];if(!e)throw new Error(`Module ${s} didn’t register its module`);return e})));self.define=(c,i)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(a[n])return;let t={};const d=e=>s(e,n),r={module:{uri:n},exports:t,require:d};a[n]=Promise.all(c.map((e=>r[e]||d(e)))).then((e=>(i(...e),t)))}}define(["./workbox-495fd258"],(function(e){"use strict";importScripts(),self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"/_next/static/chunks/1764-5929715db6e89b4a.js",revision:"5929715db6e89b4a"},{url:"/_next/static/chunks/1764-5929715db6e89b4a.js.map",revision:"82b0e4028a97d2e3056b9cfe489d33d6"},{url:"/_next/static/chunks/1864-a108b3603800e036.js",revision:"a108b3603800e036"},{url:"/_next/static/chunks/1864-a108b3603800e036.js.map",revision:"d14040aca9a418d935a63df93187fb0c"},{url:"/_next/static/chunks/1907-33778801caad980d.js",revision:"33778801caad980d"},{url:"/_next/static/chunks/1907-33778801caad980d.js.map",revision:"4bdd072130e8fdc91d153ebda43bd942"},{url:"/_next/static/chunks/195-91d7714432a7def6.js",revision:"91d7714432a7def6"},{url:"/_next/static/chunks/195-91d7714432a7def6.js.map",revision:"e9ac1790e206fc604634c1176817e54e"},{url:"/_next/static/chunks/2362-9a05bc13c785e197.js",revision:"9a05bc13c785e197"},{url:"/_next/static/chunks/2362-9a05bc13c785e197.js.map",revision:"5789233abea3e8fa90eb1c51ce0d4a47"},{url:"/_next/static/chunks/2418-e2b363c2a581bdd0.js",revision:"e2b363c2a581bdd0"},{url:"/_next/static/chunks/2418-e2b363c2a581bdd0.js.map",revision:"5ff01043622b778a01a45232f77ac26a"},{url:"/_next/static/chunks/2674-72d9141ee61fa622.js",revision:"72d9141ee61fa622"},{url:"/_next/static/chunks/2674-72d9141ee61fa622.js.map",revision:"3c32c5ad19bb626530fb893892bd5a9e"},{url:"/_next/static/chunks/2813-040c9a900dbfbecc.js",revision:"040c9a900dbfbecc"},{url:"/_next/static/chunks/2813-040c9a900dbfbecc.js.map",revision:"5117d0cf1ec649db4d84bd54d59572a6"},{url:"/_next/static/chunks/3070-cacd7592b1fb0e8e.js",revision:"cacd7592b1fb0e8e"},{url:"/_next/static/chunks/3070-cacd7592b1fb0e8e.js.map",revision:"01673688329400d2da3210abd347303d"},{url:"/_next/static/chunks/3399.541dcdc90f680900.js",revision:"541dcdc90f680900"},{url:"/_next/static/chunks/3399.541dcdc90f680900.js.map",revision:"966041ddc7a6a9d344f2ba0b4a651245"},{url:"/_next/static/chunks/3475.95d3b6f40f79be74.js",revision:"95d3b6f40f79be74"},{url:"/_next/static/chunks/3475.95d3b6f40f79be74.js.map",revision:"fd1f7199cf202792cd4f421ce19e31d9"},{url:"/_next/static/chunks/3497-40a53cb2d32f79c3.js",revision:"40a53cb2d32f79c3"},{url:"/_next/static/chunks/3497-40a53cb2d32f79c3.js.map",revision:"61594bee11acdc4aa7dfbe882dc114b7"},{url:"/_next/static/chunks/3537-b72cec1d0ac099cf.js",revision:"b72cec1d0ac099cf"},{url:"/_next/static/chunks/3537-b72cec1d0ac099cf.js.map",revision:"8323692bcea0f725611fe404ab94eb73"},{url:"/_next/static/chunks/3623-7f114fb663ebbdbd.js",revision:"7f114fb663ebbdbd"},{url:"/_next/static/chunks/3623-7f114fb663ebbdbd.js.map",revision:"1ba3c814fac4133399e0e0f869d04489"},{url:"/_next/static/chunks/3701-12e89590833ddacb.js",revision:"12e89590833ddacb"},{url:"/_next/static/chunks/3701-12e89590833ddacb.js.map",revision:"ee1935082e9f4b0f89929cabf2e75b6e"},{url:"/_next/static/chunks/3892-3d1c7a0c77bc235f.js",revision:"3d1c7a0c77bc235f"},{url:"/_next/static/chunks/3892-3d1c7a0c77bc235f.js.map",revision:"244d1bd6af72988378f9e9633ea61b4f"},{url:"/_next/static/chunks/3987-d37a1a8f8d82bf01.js",revision:"d37a1a8f8d82bf01"},{url:"/_next/static/chunks/3987-d37a1a8f8d82bf01.js.map",revision:"7ddcafae62ad17a109ebf983246fde0b"},{url:"/_next/static/chunks/4115.e3fa222662e344e4.js",revision:"e3fa222662e344e4"},{url:"/_next/static/chunks/4280-1bc4472a7f622fc1.js",revision:"1bc4472a7f622fc1"},{url:"/_next/static/chunks/4280-1bc4472a7f622fc1.js.map",revision:"679aae551161ad8cdb7a55ce13367b68"},{url:"/_next/static/chunks/4349-863ad02b8356257d.js",revision:"863ad02b8356257d"},{url:"/_next/static/chunks/4349-863ad02b8356257d.js.map",revision:"79c647fb84de63551c31f1621125f097"},{url:"/_next/static/chunks/4575.0759eddd319efbb0.js",revision:"0759eddd319efbb0"},{url:"/_next/static/chunks/4608.35d8215770873418.js",revision:"35d8215770873418"},{url:"/_next/static/chunks/4608.35d8215770873418.js.map",revision:"b8a1e2b664b0a57c2ffa4a3fa7c8defe"},{url:"/_next/static/chunks/4618-120bef75a638d862.js",revision:"120bef75a638d862"},{url:"/_next/static/chunks/4618-120bef75a638d862.js.map",revision:"7349a44603af045ed11a5cb5ea0aa426"},{url:"/_next/static/chunks/498aad35.e9a5b9b930d03a1f.js",revision:"e9a5b9b930d03a1f"},{url:"/_next/static/chunks/498aad35.e9a5b9b930d03a1f.js.map",revision:"5c8292c65a92157738a00427599d5b15"},{url:"/_next/static/chunks/5211-9aca90a643bbfa0c.js",revision:"9aca90a643bbfa0c"},{url:"/_next/static/chunks/5211-9aca90a643bbfa0c.js.map",revision:"5ff7ff6c304692ccabc7d66ad9751504"},{url:"/_next/static/chunks/5543-aa0c49af12223779.js",revision:"aa0c49af12223779"},{url:"/_next/static/chunks/5543-aa0c49af12223779.js.map",revision:"f98bb2136be35fc5f9b4646b8c760524"},{url:"/_next/static/chunks/5552-27eea6ebe31d3f9b.js",revision:"27eea6ebe31d3f9b"},{url:"/_next/static/chunks/5552-27eea6ebe31d3f9b.js.map",revision:"9f7a9838ab7bf04a909075762690d285"},{url:"/_next/static/chunks/5850-01472e4e92d2e0cb.js",revision:"01472e4e92d2e0cb"},{url:"/_next/static/chunks/5850-01472e4e92d2e0cb.js.map",revision:"7d0e44974af42bfc02e97e8eb155498f"},{url:"/_next/static/chunks/6215-666e60bcd6603838.js",revision:"666e60bcd6603838"},{url:"/_next/static/chunks/6215-666e60bcd6603838.js.map",revision:"d3056a0204aeacb2e749db6ebdeee185"},{url:"/_next/static/chunks/6309-dcb2edbe0122c0b1.js",revision:"dcb2edbe0122c0b1"},{url:"/_next/static/chunks/6309-dcb2edbe0122c0b1.js.map",revision:"65997a4072fa811160c92340b04bfaa3"},{url:"/_next/static/chunks/6424.afd408d2a0a8aa78.js",revision:"afd408d2a0a8aa78"},{url:"/_next/static/chunks/6424.afd408d2a0a8aa78.js.map",revision:"06a1e277ef6809ad36ed4fde2d391baf"},{url:"/_next/static/chunks/6778.3bba413adb7edeb2.js",revision:"3bba413adb7edeb2"},{url:"/_next/static/chunks/6778.3bba413adb7edeb2.js.map",revision:"2f78b019643ba4feb0072b1b2e8a3ef6"},{url:"/_next/static/chunks/681-53ca12e2b7e07d1a.js",revision:"53ca12e2b7e07d1a"},{url:"/_next/static/chunks/681-53ca12e2b7e07d1a.js.map",revision:"73621e9193c84173c5662f96b0b8aa91"},{url:"/_next/static/chunks/6dd150ba.ec75e8e489a567a9.js",revision:"ec75e8e489a567a9"},{url:"/_next/static/chunks/6dd150ba.ec75e8e489a567a9.js.map",revision:"0958db114513904932a656bdf3630b27"},{url:"/_next/static/chunks/7058-0d58f19ec0b44002.js",revision:"0d58f19ec0b44002"},{url:"/_next/static/chunks/7058-0d58f19ec0b44002.js.map",revision:"0f525e45ef4198b9acdf78133a2fef67"},{url:"/_next/static/chunks/728-15d517bd1ac27f06.js",revision:"15d517bd1ac27f06"},{url:"/_next/static/chunks/728-15d517bd1ac27f06.js.map",revision:"71e79aae3a8d1c85c20eb06e0dd70575"},{url:"/_next/static/chunks/73df1075.2e70a9c12ac853f9.js",revision:"2e70a9c12ac853f9"},{url:"/_next/static/chunks/73df1075.2e70a9c12ac853f9.js.map",revision:"a3e37b7394b10774c7f81fb29e80d4de"},{url:"/_next/static/chunks/757-8d1ccb796f1a4a77.js",revision:"8d1ccb796f1a4a77"},{url:"/_next/static/chunks/757-8d1ccb796f1a4a77.js.map",revision:"3c8abc844d2934b5b06e6a3e367f4515"},{url:"/_next/static/chunks/7725.25f5b617aeedffb1.js",revision:"25f5b617aeedffb1"},{url:"/_next/static/chunks/7725.25f5b617aeedffb1.js.map",revision:"9fa49c8830e324f0702b631ca76ea28d"},{url:"/_next/static/chunks/7758-703334f7e3ccdd06.js",revision:"703334f7e3ccdd06"},{url:"/_next/static/chunks/7758-703334f7e3ccdd06.js.map",revision:"65cb50195f8fb75760189b2265e7249c"},{url:"/_next/static/chunks/7879-7ea4a95d1b25743b.js",revision:"7ea4a95d1b25743b"},{url:"/_next/static/chunks/7879-7ea4a95d1b25743b.js.map",revision:"51153394a2f2f96ba5156547f277ebbd"},{url:"/_next/static/chunks/7886-b894cd4bce364aa0.js",revision:"b894cd4bce364aa0"},{url:"/_next/static/chunks/7886-b894cd4bce364aa0.js.map",revision:"4642b816331c12a70e70a3c3c181a639"},{url:"/_next/static/chunks/7938-66cfbc6d08e3628a.js",revision:"66cfbc6d08e3628a"},{url:"/_next/static/chunks/7938-66cfbc6d08e3628a.js.map",revision:"f488969ea5576c3b763edbe8d56598b0"},{url:"/_next/static/chunks/8132-3ef09b0cbd451717.js",revision:"3ef09b0cbd451717"},{url:"/_next/static/chunks/8132-3ef09b0cbd451717.js.map",revision:"9eac85381a4a2e55d36c5a950015d39e"},{url:"/_next/static/chunks/8508-6d9a154d40c0c819.js",revision:"6d9a154d40c0c819"},{url:"/_next/static/chunks/8508-6d9a154d40c0c819.js.map",revision:"315126af57aad25b421b21afda89a268"},{url:"/_next/static/chunks/87d427d2-4b3f96f2a3f4b743.js",revision:"4b3f96f2a3f4b743"},{url:"/_next/static/chunks/8871-7154bfb95f8bedf0.js",revision:"7154bfb95f8bedf0"},{url:"/_next/static/chunks/8871-7154bfb95f8bedf0.js.map",revision:"1a7f132fef6ba7b17faec9f9bc9588bf"},{url:"/_next/static/chunks/9040-118a78ba95d54199.js",revision:"118a78ba95d54199"},{url:"/_next/static/chunks/9040-118a78ba95d54199.js.map",revision:"8a7a819b869e9ecfd1c2cdcb6ac5f06e"},{url:"/_next/static/chunks/9435.dca062938e5271af.js",revision:"dca062938e5271af"},{url:"/_next/static/chunks/9435.dca062938e5271af.js.map",revision:"72e0f5eaa204a8ec239976c95df9ecf5"},{url:"/_next/static/chunks/9441-2e06032724e252e1.js",revision:"2e06032724e252e1"},{url:"/_next/static/chunks/9441-2e06032724e252e1.js.map",revision:"6e29417e1d230103d9fe9ef1c1c0ab85"},{url:"/_next/static/chunks/9534-13d530c02b55e7fa.js",revision:"13d530c02b55e7fa"},{url:"/_next/static/chunks/9534-13d530c02b55e7fa.js.map",revision:"db50baa394f1781bfc6039d937009824"},{url:"/_next/static/chunks/9537.60d4517640e9053b.js",revision:"60d4517640e9053b"},{url:"/_next/static/chunks/9537.60d4517640e9053b.js.map",revision:"fc3f8329015248f9e72e2a07271453fe"},{url:"/_next/static/chunks/9785-1dd6421ec13ce705.js",revision:"1dd6421ec13ce705"},{url:"/_next/static/chunks/9785-1dd6421ec13ce705.js.map",revision:"e33908b4dd953c6f6cc2711e6f020ead"},{url:"/_next/static/chunks/framework-8383bf789d61bcef.js",revision:"8383bf789d61bcef"},{url:"/_next/static/chunks/framework-8383bf789d61bcef.js.map",revision:"a115d423eec304cd979739160b33710b"},{url:"/_next/static/chunks/main-eb002066e9283b80.js",revision:"eb002066e9283b80"},{url:"/_next/static/chunks/main-eb002066e9283b80.js.map",revision:"4f0a6f355fd43e903da9a9de760b59b1"},{url:"/_next/static/chunks/pages/404-3cd2ee657b4aacad.js",revision:"3cd2ee657b4aacad"},{url:"/_next/static/chunks/pages/404-3cd2ee657b4aacad.js.map",revision:"8a6bdd28e6894d1df94bb56575d879bb"},{url:"/_next/static/chunks/pages/500-82695811d16d1c63.js",revision:"82695811d16d1c63"},{url:"/_next/static/chunks/pages/500-82695811d16d1c63.js.map",revision:"9a9aef58c581ee7babbb9d80f9217e73"},{url:"/_next/static/chunks/pages/_error-03ddde95c658f466.js",revision:"03ddde95c658f466"},{url:"/_next/static/chunks/pages/_error-03ddde95c658f466.js.map",revision:"030a8136cb59aeaf303367b9bbb4a045"},{url:"/_next/static/chunks/pages/contact-8a55926f978ca91d.js",revision:"8a55926f978ca91d"},{url:"/_next/static/chunks/pages/contact-8a55926f978ca91d.js.map",revision:"13dfef43b03b7d1c45f75aa7fc41fe78"},{url:"/_next/static/chunks/pages/deployments-d40e0c344679d510.js",revision:"d40e0c344679d510"},{url:"/_next/static/chunks/pages/deployments-d40e0c344679d510.js.map",revision:"0e587e194e1f091ef5addeae475a8b67"},{url:"/_next/static/chunks/pages/deployments/%5Bdseq%5D-f746361c25134439.js",revision:"f746361c25134439"},{url:"/_next/static/chunks/pages/deployments/%5Bdseq%5D-f746361c25134439.js.map",revision:"97239b40168664c3f1731ab5a9d418e9"},{url:"/_next/static/chunks/pages/faq-66d0374acacc6d29.js",revision:"66d0374acacc6d29"},{url:"/_next/static/chunks/pages/faq-66d0374acacc6d29.js.map",revision:"7bdbaac3eb4023c289b7e4dc6b7e3ead"},{url:"/_next/static/chunks/pages/get-started-6f39d57c3bb9d11c.js",revision:"6f39d57c3bb9d11c"},{url:"/_next/static/chunks/pages/get-started-6f39d57c3bb9d11c.js.map",revision:"f3dd437f10a20322609faf7caf4c42f9"},{url:"/_next/static/chunks/pages/get-started/wallet-f12a1603a8edbe20.js",revision:"f12a1603a8edbe20"},{url:"/_next/static/chunks/pages/get-started/wallet-f12a1603a8edbe20.js.map",revision:"892e1c88447d248bd8a205856a24a2ee"},{url:"/_next/static/chunks/pages/index-7b5a98d7dd6fb2ea.js",revision:"7b5a98d7dd6fb2ea"},{url:"/_next/static/chunks/pages/index-7b5a98d7dd6fb2ea.js.map",revision:"868ad3111084d460edb360da24e09c7c"},{url:"/_next/static/chunks/pages/maintenance-b749112dd60f53ab.js",revision:"b749112dd60f53ab"},{url:"/_next/static/chunks/pages/maintenance-b749112dd60f53ab.js.map",revision:"d53f643065c0c0413436353be2604c2d"},{url:"/_next/static/chunks/pages/new-deployment-a3a3b718ba4e5889.js",revision:"a3a3b718ba4e5889"},{url:"/_next/static/chunks/pages/new-deployment-a3a3b718ba4e5889.js.map",revision:"fa3bdee6a7e3ba87210478122f0e5b8e"},{url:"/_next/static/chunks/pages/privacy-policy-c67e6af7104d0bc4.js",revision:"c67e6af7104d0bc4"},{url:"/_next/static/chunks/pages/privacy-policy-c67e6af7104d0bc4.js.map",revision:"158a650f83fce2498b8d4dceb11cd977"},{url:"/_next/static/chunks/pages/profile/%5Busername%5D-13c50f9d6915259e.js",revision:"13c50f9d6915259e"},{url:"/_next/static/chunks/pages/profile/%5Busername%5D-13c50f9d6915259e.js.map",revision:"c29fcf83449a956dea25285893f9714e"},{url:"/_next/static/chunks/pages/providers-173f533dfed36e78.js",revision:"173f533dfed36e78"},{url:"/_next/static/chunks/pages/providers-173f533dfed36e78.js.map",revision:"d3ee2ed2cdd3973a030e2e3c6a103f2f"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D-e468784c360feba6.js",revision:"e468784c360feba6"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D-e468784c360feba6.js.map",revision:"075e3f19397975e4817879fdc7bfce69"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/edit-34ab7e6c18834d28.js",revision:"34ab7e6c18834d28"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/edit-34ab7e6c18834d28.js.map",revision:"570cae76f23af1962b9be7867e9506c8"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/leases-7760606082541645.js",revision:"7760606082541645"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/leases-7760606082541645.js.map",revision:"dcc12d062df6f9d889a91144b063358a"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/raw-bd139bd074b9976e.js",revision:"bd139bd074b9976e"},{url:"/_next/static/chunks/pages/providers/%5Bowner%5D/raw-bd139bd074b9976e.js.map",revision:"e83fa8d139ad31fc8f13df855c5cd724"},{url:"/_next/static/chunks/pages/rent-gpu-14d30b4d446464df.js",revision:"14d30b4d446464df"},{url:"/_next/static/chunks/pages/rent-gpu-14d30b4d446464df.js.map",revision:"85f54ff602c955ab1ca77a6afa721cde"},{url:"/_next/static/chunks/pages/sdl-builder-eb7ba74849b251d1.js",revision:"eb7ba74849b251d1"},{url:"/_next/static/chunks/pages/sdl-builder-eb7ba74849b251d1.js.map",revision:"468192eaff0116a53eb7e1cd2b2c0c8b"},{url:"/_next/static/chunks/pages/settings-33a722b8598492d4.js",revision:"33a722b8598492d4"},{url:"/_next/static/chunks/pages/settings-33a722b8598492d4.js.map",revision:"d18ad2e6de1926ef6291159f642902db"},{url:"/_next/static/chunks/pages/settings/authorizations-d79535d2dd0f550e.js",revision:"d79535d2dd0f550e"},{url:"/_next/static/chunks/pages/settings/authorizations-d79535d2dd0f550e.js.map",revision:"1a8b351b14c3f98e6dd7f28b866462e0"},{url:"/_next/static/chunks/pages/template/%5Bid%5D-01e2253199725893.js",revision:"01e2253199725893"},{url:"/_next/static/chunks/pages/template/%5Bid%5D-01e2253199725893.js.map",revision:"1786104074c6ce4811b834274d8429d2"},{url:"/_next/static/chunks/pages/templates-a1e7ac98c78a01d3.js",revision:"a1e7ac98c78a01d3"},{url:"/_next/static/chunks/pages/templates-a1e7ac98c78a01d3.js.map",revision:"b38044ecedb3b3f4fdf70b1eb2d353d5"},{url:"/_next/static/chunks/pages/templates/%5BtemplateId%5D-a54b35031d1fa471.js",revision:"a54b35031d1fa471"},{url:"/_next/static/chunks/pages/templates/%5BtemplateId%5D-a54b35031d1fa471.js.map",revision:"f459ac00241418edd3052296664b4402"},{url:"/_next/static/chunks/pages/terms-of-service-0e503b8cd3eb241f.js",revision:"0e503b8cd3eb241f"},{url:"/_next/static/chunks/pages/terms-of-service-0e503b8cd3eb241f.js.map",revision:"440c15c3fe6ae840af27cf6820142d41"},{url:"/_next/static/chunks/pages/user/settings-1bae44f27eff9c2a.js",revision:"1bae44f27eff9c2a"},{url:"/_next/static/chunks/pages/user/settings-1bae44f27eff9c2a.js.map",revision:"20c4b24bcdc171d16a93144ef1a23aa4"},{url:"/_next/static/chunks/pages/user/settings/address-book-29bf15966c16ae0c.js",revision:"29bf15966c16ae0c"},{url:"/_next/static/chunks/pages/user/settings/address-book-29bf15966c16ae0c.js.map",revision:"5380561f9fb299fbd5a362365bdacf69"},{url:"/_next/static/chunks/pages/user/settings/favorites-20ea99cc5e385f6f.js",revision:"20ea99cc5e385f6f"},{url:"/_next/static/chunks/pages/user/settings/favorites-20ea99cc5e385f6f.js.map",revision:"0e51f87c6c8c951e20d558bb99d04bf7"},{url:"/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js",revision:"79330112775102f91e1010318bae2bd3"},{url:"/_next/static/chunks/webpack-82b8ed3e5846a77a.js",revision:"82b8ed3e5846a77a"},{url:"/_next/static/chunks/webpack-82b8ed3e5846a77a.js.map",revision:"38871633e18198e309c6b7d705f0c703"},{url:"/_next/static/css/60da0364ed65e94f.css",revision:"60da0364ed65e94f"},{url:"/_next/static/css/60da0364ed65e94f.css.map",revision:"7ebdaca80e1b94a3afdc509e9729e2f4"},{url:"/_next/static/css/85fa6dafca566008.css",revision:"85fa6dafca566008"},{url:"/_next/static/css/85fa6dafca566008.css.map",revision:"e1c00d68c2a092625defb4c86bdb56ae"},{url:"/_next/static/css/a3acd91adaba1724.css",revision:"a3acd91adaba1724"},{url:"/_next/static/mBApz-m1_mixfP7xASgV7/_buildManifest.js",revision:"15e55772d49b4a6514f9c01fdab5c7b7"},{url:"/_next/static/mBApz-m1_mixfP7xASgV7/_ssgManifest.js",revision:"b6652df95db52feb4daf4eca35380933"},{url:"/_next/static/media/e11418ac562b8ac1-s.p.woff2",revision:"0e46e732cced180e3a2c7285100f27d4"},{url:"/akash-console.png",revision:"4ab11b341159b007fc63d28631e0a8d8"},{url:"/android-chrome-192x192.png",revision:"a2eeed7b0d4a8c9bd9fa014378ac733e"},{url:"/android-chrome-256x256.png",revision:"b0dc3017fadbf0f4c323636535f582b7"},{url:"/android-chrome-384x384.png",revision:"3fae18e8537ff0745221e5aec66c247b"},{url:"/apple-touch-icon.png",revision:"43451e961475b8323dcfb705fb6eb480"},{url:"/browserconfig.xml",revision:"e41ebb6b49206a59d8eafce8220ebeac"},{url:"/favicon-16x16.png",revision:"8cf7a2775f6f6d6db07b95197538b11b"},{url:"/favicon-32x32.png",revision:"bef7d8e9aaed7fb3ef49cbffa31b5339"},{url:"/favicon.ico",revision:"cfebc107c597696c596a277239546a86"},{url:"/images/akash-logo-dark.png",revision:"b1623e407dad710a4c0c73461bbb8bb3"},{url:"/images/akash-logo-flat-dark.png",revision:"50b4ad6438e791047d97da0af65b96f5"},{url:"/images/akash-logo-flat-light.png",revision:"2befec2d17a2b6a32b1a0517ca1baf01"},{url:"/images/akash-logo-light.png",revision:"0ea30905c72eda674ad74c65d0c062bf"},{url:"/images/akash-logo.svg",revision:"4a5f3eaf31bf0f88ff3baec6281c8de3"},{url:"/images/chains/akash.png",revision:"d0b3f8ccaa3b0d18ef4039f86edf4436"},{url:"/images/chains/atom.png",revision:"6e4d88ad2c295e811fee29cc89edfcb1"},{url:"/images/chains/evmos.png",revision:"487a456e9091dec9ddf18892531401f8"},{url:"/images/chains/huahua.png",revision:"f0ba8427522833bba44962e87e982412"},{url:"/images/chains/juno.png",revision:"933b7d992dc67fd2f0d0f35e182b3361"},{url:"/images/chains/kuji.png",revision:"9c31e679007e5ae16fc28e067d907f79"},{url:"/images/chains/osmo.png",revision:"6940c69c28e5d85d99ba498fc7e95a26"},{url:"/images/chains/scrt.png",revision:"0dd98be17447cf7c47d27153f534ca60"},{url:"/images/chains/stars.png",revision:"56d0bd40e52f010c7267eb78c53138f2"},{url:"/images/chains/strd.png",revision:"eebdfb53ba0bc9bba88b0bede7a44f6d"},{url:"/images/cloudmos-logo-light.png",revision:"a7423327e4280225e176da92c6176c28"},{url:"/images/cloudmos-logo-small.jpg",revision:"4b339b83e7dc396894537b83d794726d"},{url:"/images/cloudmos-logo.png",revision:"56d87e0230a0ad5dd745efd486a33a58"},{url:"/images/docker.png",revision:"fde0ed6a2add0ffabfbc5a7749fdfff2"},{url:"/images/faq/change-node.png",revision:"9421f6443f6c4397887035e50d8c9b24"},{url:"/images/faq/update-deployment-btn.png",revision:"ebc7f6907a08fdf6a6cd5a87043456fd"},{url:"/images/keplr-logo.png",revision:"50397e4902a33a6045c0f23dfe5cb1bd"},{url:"/images/leap-cosmos-logo.png",revision:"a54ced7748b33565e6dc1ea1c5b1ef52"},{url:"/images/powered-by-akash-dark.svg",revision:"3ea920f030ede7926a02c2dc17e332c4"},{url:"/images/powered-by-akash.svg",revision:"24b2566094fafded6c325246fe84c2a9"},{url:"/images/ubuntu.png",revision:"c631b8fae270a618c1fe1c9d43097189"},{url:"/images/wallet-connect-logo.png",revision:"8379e4d4e7267b47a0b5b89807a4d8f8"},{url:"/manifest.json",revision:"a030fca8a5c7b8e2e1b5d7614a8b74fa"},{url:"/mstile-150x150.png",revision:"17614fed638be1d5e2225b9d5419336a"},{url:"/robots.txt",revision:"c2bb774b8071c957d2b835beaa28a58b"},{url:"/safari-pinned-tab.svg",revision:"86b02210e078cb763098dfec594f4f04"}],{ignoreURLParametersMatching:[]}),e.cleanupOutdatedCaches(),e.registerRoute("/",new e.NetworkFirst({cacheName:"start-url",plugins:[{cacheWillUpdate:async({request:e,response:a,event:s,state:c})=>a&&"opaqueredirect"===a.type?new Response(a.body,{status:200,statusText:"OK",headers:a.headers}):a}]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:gstatic)\.com\/.*/i,new e.CacheFirst({cacheName:"google-fonts-webfonts",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:31536e3})]}),"GET"),e.registerRoute(/^https:\/\/fonts\.(?:googleapis)\.com\/.*/i,new e.StaleWhileRevalidate({cacheName:"google-fonts-stylesheets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i,new e.StaleWhileRevalidate({cacheName:"static-font-assets",plugins:[new e.ExpirationPlugin({maxEntries:4,maxAgeSeconds:604800})]}),"GET"),e.registerRoute(/\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i,new e.StaleWhileRevalidate({cacheName:"static-image-assets",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/image\?url=.+$/i,new e.StaleWhileRevalidate({cacheName:"next-image",plugins:[new e.ExpirationPlugin({maxEntries:64,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp3|wav|ogg)$/i,new e.CacheFirst({cacheName:"static-audio-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:mp4)$/i,new e.CacheFirst({cacheName:"static-video-assets",plugins:[new e.RangeRequestsPlugin,new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:js)$/i,new e.StaleWhileRevalidate({cacheName:"static-js-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:css|less)$/i,new e.StaleWhileRevalidate({cacheName:"static-style-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\/_next\/data\/.+\/.+\.json$/i,new e.StaleWhileRevalidate({cacheName:"next-data",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute(/\.(?:json|xml|csv)$/i,new e.NetworkFirst({cacheName:"static-data-assets",plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;const a=e.pathname;return!a.startsWith("/api/auth/")&&!!a.startsWith("/api/")}),new e.NetworkFirst({cacheName:"apis",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:16,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>{if(!(self.origin===e.origin))return!1;return!e.pathname.startsWith("/api/")}),new e.NetworkFirst({cacheName:"others",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:86400})]}),"GET"),e.registerRoute((({url:e})=>!(self.origin===e.origin)),new e.NetworkFirst({cacheName:"cross-origin",networkTimeoutSeconds:10,plugins:[new e.ExpirationPlugin({maxEntries:32,maxAgeSeconds:3600})]}),"GET")})); //# sourceMappingURL=sw.js.map diff --git a/apps/deploy-web/public/sw.js.map b/apps/deploy-web/public/sw.js.map index 92125bae6..acb2d39d8 100644 --- a/apps/deploy-web/public/sw.js.map +++ b/apps/deploy-web/public/sw.js.map @@ -1 +1 @@ -{"version":3,"file":"sw.js","sources":["../../../../Users/maxim/AppData/Local/Temp/5c30cba486fd3bdd04298ddbbff0d094/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {ExpirationPlugin as workbox_expiration_ExpirationPlugin} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-expiration/ExpirationPlugin.mjs';\nimport {CacheFirst as workbox_strategies_CacheFirst} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-strategies/CacheFirst.mjs';\nimport {StaleWhileRevalidate as workbox_strategies_StaleWhileRevalidate} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-strategies/StaleWhileRevalidate.mjs';\nimport {RangeRequestsPlugin as workbox_range_requests_RangeRequestsPlugin} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-range-requests/RangeRequestsPlugin.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from 'C:/repos/ovrclk-org/cloudmos/deploy-web/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\nimportScripts(\n \n);\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/_next/static/chunks/097d1023.8d18ae9142f1c2a8.js\",\n \"revision\": \"8d18ae9142f1c2a8\"\n },\n {\n \"url\": \"/_next/static/chunks/1032-22f71b5bb1a7c70b.js\",\n \"revision\": \"22f71b5bb1a7c70b\"\n },\n {\n \"url\": \"/_next/static/chunks/1032-22f71b5bb1a7c70b.js.map\",\n \"revision\": \"da368290e1b239700d191ea57a8ddb68\"\n },\n {\n \"url\": \"/_next/static/chunks/1088.04d87f92e05f23c7.js\",\n \"revision\": \"04d87f92e05f23c7\"\n },\n {\n \"url\": \"/_next/static/chunks/1088.04d87f92e05f23c7.js.map\",\n \"revision\": \"ca3a805017cba26bac9a7c02743db9d8\"\n },\n {\n \"url\": \"/_next/static/chunks/1391.fe4f4c9587361038.js\",\n \"revision\": \"fe4f4c9587361038\"\n },\n {\n \"url\": \"/_next/static/chunks/1391.fe4f4c9587361038.js.map\",\n \"revision\": \"11bdc977f8c3c9e0199e862b5a6507b9\"\n },\n {\n \"url\": \"/_next/static/chunks/1509.1e70975a7a7349d6.js\",\n \"revision\": \"1e70975a7a7349d6\"\n },\n {\n \"url\": \"/_next/static/chunks/1509.1e70975a7a7349d6.js.map\",\n \"revision\": \"c66d65843d3880437285cd813d8f52b3\"\n },\n {\n \"url\": \"/_next/static/chunks/1604-f65e1c37c1c1dbbd.js\",\n \"revision\": \"f65e1c37c1c1dbbd\"\n },\n {\n \"url\": \"/_next/static/chunks/1604-f65e1c37c1c1dbbd.js.map\",\n \"revision\": \"19fb4fb1b0dcbe891e0a699e3a921245\"\n },\n {\n \"url\": \"/_next/static/chunks/1608.ec04f07937386922.js\",\n \"revision\": \"ec04f07937386922\"\n },\n {\n \"url\": \"/_next/static/chunks/1608.ec04f07937386922.js.map\",\n \"revision\": \"26951cea811c07e036ab5219e433933d\"\n },\n {\n \"url\": \"/_next/static/chunks/1711.ae2b84d9f5645069.js\",\n \"revision\": \"ae2b84d9f5645069\"\n },\n {\n \"url\": \"/_next/static/chunks/1711.ae2b84d9f5645069.js.map\",\n \"revision\": \"f51131bf2df4917ff4b3da102cb57369\"\n },\n {\n \"url\": \"/_next/static/chunks/1727.af62bd633f21ee69.js\",\n \"revision\": \"af62bd633f21ee69\"\n },\n {\n \"url\": \"/_next/static/chunks/1727.af62bd633f21ee69.js.map\",\n \"revision\": \"215576c3220637351aca671aab12c05f\"\n },\n {\n \"url\": \"/_next/static/chunks/1748.f63b451fd93f590b.js\",\n \"revision\": \"f63b451fd93f590b\"\n },\n {\n \"url\": \"/_next/static/chunks/1748.f63b451fd93f590b.js.map\",\n \"revision\": \"a217a6b6a27632b27623a8e003efcc3d\"\n },\n {\n \"url\": \"/_next/static/chunks/1778-a61fce85b167d2e2.js\",\n \"revision\": \"a61fce85b167d2e2\"\n },\n {\n \"url\": \"/_next/static/chunks/1778-a61fce85b167d2e2.js.map\",\n \"revision\": \"eacd1d87f6ac1b28c330fc49dc229081\"\n },\n {\n \"url\": \"/_next/static/chunks/1937-8dd4f9bce6f52e85.js\",\n \"revision\": \"8dd4f9bce6f52e85\"\n },\n {\n \"url\": \"/_next/static/chunks/1937-8dd4f9bce6f52e85.js.map\",\n \"revision\": \"d3deb2d1d62bb823136de3545bfeb6a6\"\n },\n {\n \"url\": \"/_next/static/chunks/1950.c8039f3dc9bb92f5.js\",\n \"revision\": \"c8039f3dc9bb92f5\"\n },\n {\n \"url\": \"/_next/static/chunks/1950.c8039f3dc9bb92f5.js.map\",\n \"revision\": \"d5e1291e5837c229f09b881d4009c5e1\"\n },\n {\n \"url\": \"/_next/static/chunks/1979.29a6071d1f882a30.js\",\n \"revision\": \"29a6071d1f882a30\"\n },\n {\n \"url\": \"/_next/static/chunks/1979.29a6071d1f882a30.js.map\",\n \"revision\": \"1339d7bee688ae99bd04379aa3be4111\"\n },\n {\n \"url\": \"/_next/static/chunks/2094.28e08f24027e196d.js\",\n \"revision\": \"28e08f24027e196d\"\n },\n {\n \"url\": \"/_next/static/chunks/2094.28e08f24027e196d.js.map\",\n \"revision\": \"69787021115a1a040ac0b5a8eb6c8ad7\"\n },\n {\n \"url\": \"/_next/static/chunks/225-67dfc6990819b6e4.js\",\n \"revision\": \"67dfc6990819b6e4\"\n },\n {\n \"url\": \"/_next/static/chunks/225-67dfc6990819b6e4.js.map\",\n \"revision\": \"9fe94e7c532c8d2aa7871ed823575039\"\n },\n {\n \"url\": \"/_next/static/chunks/2315-991fbd91ec03d8a1.js\",\n \"revision\": \"991fbd91ec03d8a1\"\n },\n {\n \"url\": \"/_next/static/chunks/2315-991fbd91ec03d8a1.js.map\",\n \"revision\": \"b612cc02d7282afc90f1a0b066570373\"\n },\n {\n \"url\": \"/_next/static/chunks/2453-d6c0da31bb0d0ee3.js\",\n \"revision\": \"d6c0da31bb0d0ee3\"\n },\n {\n \"url\": \"/_next/static/chunks/2453-d6c0da31bb0d0ee3.js.map\",\n \"revision\": \"2b5570926930d1d4000f5922a1acb7dd\"\n },\n {\n \"url\": \"/_next/static/chunks/2592.113087294050e17f.js\",\n \"revision\": \"113087294050e17f\"\n },\n {\n \"url\": \"/_next/static/chunks/2592.113087294050e17f.js.map\",\n \"revision\": \"d2a2a7544101e2fccf91ae230c19f62a\"\n },\n {\n \"url\": \"/_next/static/chunks/2604.250be1a3b8354750.js\",\n \"revision\": \"250be1a3b8354750\"\n },\n {\n \"url\": \"/_next/static/chunks/2604.250be1a3b8354750.js.map\",\n \"revision\": \"0c9e2ea89157c15d7a4a89eaa78d10c4\"\n },\n {\n \"url\": \"/_next/static/chunks/2746.0a838d09eabc5b43.js\",\n \"revision\": \"0a838d09eabc5b43\"\n },\n {\n \"url\": \"/_next/static/chunks/2746.0a838d09eabc5b43.js.map\",\n \"revision\": \"7f3729e5106f008c40a3224c9b789988\"\n },\n {\n \"url\": \"/_next/static/chunks/2830.ee1abe44ed91f1e3.js\",\n \"revision\": \"ee1abe44ed91f1e3\"\n },\n {\n \"url\": \"/_next/static/chunks/2830.ee1abe44ed91f1e3.js.map\",\n \"revision\": \"05c55fe023ade088a4a5485c29f5a1a2\"\n },\n {\n \"url\": \"/_next/static/chunks/2898.f370a64b5af02f0b.js\",\n \"revision\": \"f370a64b5af02f0b\"\n },\n {\n \"url\": \"/_next/static/chunks/2898.f370a64b5af02f0b.js.map\",\n \"revision\": \"d94f7982afe1e589f5cba33ee67e23a7\"\n },\n {\n \"url\": \"/_next/static/chunks/2902-6cdbc67017cf7866.js\",\n \"revision\": \"6cdbc67017cf7866\"\n },\n {\n \"url\": \"/_next/static/chunks/2902-6cdbc67017cf7866.js.map\",\n \"revision\": \"070f26560a355eea3a066c57846cc4af\"\n },\n {\n \"url\": \"/_next/static/chunks/2949-dd3cdef2c4f45c69.js\",\n \"revision\": \"dd3cdef2c4f45c69\"\n },\n {\n \"url\": \"/_next/static/chunks/2949-dd3cdef2c4f45c69.js.map\",\n \"revision\": \"a3ebfdf0dde9eb612b4ac18143090bbd\"\n },\n {\n \"url\": \"/_next/static/chunks/2db20c0c.3d07d47ff817f656.js\",\n \"revision\": \"3d07d47ff817f656\"\n },\n {\n \"url\": \"/_next/static/chunks/2db20c0c.3d07d47ff817f656.js.map\",\n \"revision\": \"20c7ada821e4e5ddfbaed0c7c1b93f96\"\n },\n {\n \"url\": \"/_next/static/chunks/3064-5e75a1704bfca83d.js\",\n \"revision\": \"5e75a1704bfca83d\"\n },\n {\n \"url\": \"/_next/static/chunks/3064-5e75a1704bfca83d.js.map\",\n \"revision\": \"4775a64fb04fbb9556053d8d1f34fee2\"\n },\n {\n \"url\": \"/_next/static/chunks/3157.077df2c934109593.js\",\n \"revision\": \"077df2c934109593\"\n },\n {\n \"url\": \"/_next/static/chunks/3157.077df2c934109593.js.map\",\n \"revision\": \"eba0eddd7b64e49942c882b4654fc463\"\n },\n {\n \"url\": \"/_next/static/chunks/3200.07a96119d145f2e1.js\",\n \"revision\": \"07a96119d145f2e1\"\n },\n {\n \"url\": \"/_next/static/chunks/3200.07a96119d145f2e1.js.map\",\n \"revision\": \"ec42df6ba2cd468c82257b5026606081\"\n },\n {\n \"url\": \"/_next/static/chunks/3318-31d0c0f58c771057.js\",\n \"revision\": \"31d0c0f58c771057\"\n },\n {\n \"url\": \"/_next/static/chunks/3318-31d0c0f58c771057.js.map\",\n \"revision\": \"d58c04afed6aadd682ac1ceff20208af\"\n },\n {\n \"url\": \"/_next/static/chunks/3525.53072abba3ca74b8.js\",\n \"revision\": \"53072abba3ca74b8\"\n },\n {\n \"url\": \"/_next/static/chunks/3525.53072abba3ca74b8.js.map\",\n \"revision\": \"dc3fd2debe616654f7c28638256d5cad\"\n },\n {\n \"url\": \"/_next/static/chunks/3725-7619378e8ba1a8fa.js\",\n \"revision\": \"7619378e8ba1a8fa\"\n },\n {\n \"url\": \"/_next/static/chunks/3725-7619378e8ba1a8fa.js.map\",\n \"revision\": \"57bfda19fa09c397d22a8871338bf305\"\n },\n {\n \"url\": \"/_next/static/chunks/3764-05f3b893fd57daf5.js\",\n \"revision\": \"05f3b893fd57daf5\"\n },\n {\n \"url\": \"/_next/static/chunks/3764-05f3b893fd57daf5.js.map\",\n \"revision\": \"814555941f6be5078c7055a5ff4c1ec2\"\n },\n {\n \"url\": \"/_next/static/chunks/3829-bd20568befc9c0c3.js\",\n \"revision\": \"bd20568befc9c0c3\"\n },\n {\n \"url\": \"/_next/static/chunks/3829-bd20568befc9c0c3.js.map\",\n \"revision\": \"1b568f7338bfe1e2fa777f6318d72df2\"\n },\n {\n \"url\": \"/_next/static/chunks/3875-3736b1856337a10c.js\",\n \"revision\": \"3736b1856337a10c\"\n },\n {\n \"url\": \"/_next/static/chunks/3875-3736b1856337a10c.js.map\",\n \"revision\": \"c5f86d643377ec379be2106008e57fa4\"\n },\n {\n \"url\": \"/_next/static/chunks/3952-632e2638ee5bfe85.js\",\n \"revision\": \"632e2638ee5bfe85\"\n },\n {\n \"url\": \"/_next/static/chunks/3952-632e2638ee5bfe85.js.map\",\n \"revision\": \"fa65c96c5a814dfc17280223ec51671f\"\n },\n {\n \"url\": \"/_next/static/chunks/3966.cf34d789db8a41ec.js\",\n \"revision\": \"cf34d789db8a41ec\"\n },\n {\n \"url\": \"/_next/static/chunks/3966.cf34d789db8a41ec.js.map\",\n \"revision\": \"6d4eff51d085aaf9ce98c907a8c92d34\"\n },\n {\n \"url\": \"/_next/static/chunks/4053-bdbee820a06be88c.js\",\n \"revision\": \"bdbee820a06be88c\"\n },\n {\n \"url\": \"/_next/static/chunks/4053-bdbee820a06be88c.js.map\",\n \"revision\": \"741aec410d4c182c7504c836130c68df\"\n },\n {\n \"url\": \"/_next/static/chunks/41c057a7.8122a34cc586689f.js\",\n \"revision\": \"8122a34cc586689f\"\n },\n {\n \"url\": \"/_next/static/chunks/41c057a7.8122a34cc586689f.js.map\",\n \"revision\": \"2dc70751ea09532bf1b63bfe7e6941bf\"\n },\n {\n \"url\": \"/_next/static/chunks/422.9225da49a5498aad.js\",\n \"revision\": \"9225da49a5498aad\"\n },\n {\n \"url\": \"/_next/static/chunks/422.9225da49a5498aad.js.map\",\n \"revision\": \"b09bdea3cf60bfbaf7575f00457bb1e7\"\n },\n {\n \"url\": \"/_next/static/chunks/4253.6be69df622e36e45.js\",\n \"revision\": \"6be69df622e36e45\"\n },\n {\n \"url\": \"/_next/static/chunks/4253.6be69df622e36e45.js.map\",\n \"revision\": \"d8d847ec6159e0fe6de39b8332ff5d6b\"\n },\n {\n \"url\": \"/_next/static/chunks/4370-ba233111972fb586.js\",\n \"revision\": \"ba233111972fb586\"\n },\n {\n \"url\": \"/_next/static/chunks/4370-ba233111972fb586.js.map\",\n \"revision\": \"7b265c6da2ff6f570115672b2096c171\"\n },\n {\n \"url\": \"/_next/static/chunks/4419.c4f2007bfe36ec14.js\",\n \"revision\": \"c4f2007bfe36ec14\"\n },\n {\n \"url\": \"/_next/static/chunks/4419.c4f2007bfe36ec14.js.map\",\n \"revision\": \"d8ab9a0fb0f6df891a3c4620dc539412\"\n },\n {\n \"url\": \"/_next/static/chunks/4583.205bbdd6677d7c00.js\",\n \"revision\": \"205bbdd6677d7c00\"\n },\n {\n \"url\": \"/_next/static/chunks/4583.205bbdd6677d7c00.js.map\",\n \"revision\": \"344af3f27248c525f911f4fbbe6fa186\"\n },\n {\n \"url\": \"/_next/static/chunks/4758-48ee14a7b6642f0c.js\",\n \"revision\": \"48ee14a7b6642f0c\"\n },\n {\n \"url\": \"/_next/static/chunks/4758-48ee14a7b6642f0c.js.map\",\n \"revision\": \"89d0c05e64c429eaa4cebe55623ea66f\"\n },\n {\n \"url\": \"/_next/static/chunks/5102-e8988ba46fac1b5c.js\",\n \"revision\": \"e8988ba46fac1b5c\"\n },\n {\n \"url\": \"/_next/static/chunks/5102-e8988ba46fac1b5c.js.map\",\n \"revision\": \"d3eacacc74593b0f16ed69e50bb3b211\"\n },\n {\n \"url\": \"/_next/static/chunks/5119.33e08a0525159056.js\",\n \"revision\": \"33e08a0525159056\"\n },\n {\n \"url\": \"/_next/static/chunks/5119.33e08a0525159056.js.map\",\n \"revision\": \"6292da2e2c73c71632d49ba7636cdb2f\"\n },\n {\n \"url\": \"/_next/static/chunks/514.d2f047fea62adf58.js\",\n \"revision\": \"d2f047fea62adf58\"\n },\n {\n \"url\": \"/_next/static/chunks/514.d2f047fea62adf58.js.map\",\n \"revision\": \"b8e24e2a75330449b66ef16130dbb8c8\"\n },\n {\n \"url\": \"/_next/static/chunks/5198.f05f39874e490159.js\",\n \"revision\": \"f05f39874e490159\"\n },\n {\n \"url\": \"/_next/static/chunks/5198.f05f39874e490159.js.map\",\n \"revision\": \"4a81b86e327e6a000004045e0fb1c401\"\n },\n {\n \"url\": \"/_next/static/chunks/5488.ea86c6ce443ba3bd.js\",\n \"revision\": \"ea86c6ce443ba3bd\"\n },\n {\n \"url\": \"/_next/static/chunks/5488.ea86c6ce443ba3bd.js.map\",\n \"revision\": \"b733c8634c782998d6480a7136e41224\"\n },\n {\n \"url\": \"/_next/static/chunks/55620dd8.0741a37252fa2f53.js\",\n \"revision\": \"0741a37252fa2f53\"\n },\n {\n \"url\": \"/_next/static/chunks/55620dd8.0741a37252fa2f53.js.map\",\n \"revision\": \"0776e73b6064985449bfe91f25909789\"\n },\n {\n \"url\": \"/_next/static/chunks/5659-717ea88b9853915c.js\",\n \"revision\": \"717ea88b9853915c\"\n },\n {\n \"url\": \"/_next/static/chunks/5659-717ea88b9853915c.js.map\",\n \"revision\": \"5bd229b0e22859ea263ad2bdee55806d\"\n },\n {\n \"url\": \"/_next/static/chunks/5710.5bdbdbf21f1c3db3.js\",\n \"revision\": \"5bdbdbf21f1c3db3\"\n },\n {\n \"url\": \"/_next/static/chunks/5710.5bdbdbf21f1c3db3.js.map\",\n \"revision\": \"1099bff09271fbdb16655e8e1c59751a\"\n },\n {\n \"url\": \"/_next/static/chunks/5720-eac5717482dbb961.js\",\n \"revision\": \"eac5717482dbb961\"\n },\n {\n \"url\": \"/_next/static/chunks/5720-eac5717482dbb961.js.map\",\n \"revision\": \"fc8eacafa9ad01a79e213e4a05612177\"\n },\n {\n \"url\": \"/_next/static/chunks/5789-fcc25d4239c5a36c.js\",\n \"revision\": \"fcc25d4239c5a36c\"\n },\n {\n \"url\": \"/_next/static/chunks/5789-fcc25d4239c5a36c.js.map\",\n \"revision\": \"93af74706961cb3ff635056d70c147d8\"\n },\n {\n \"url\": \"/_next/static/chunks/5806.7abe5840ceba140e.js\",\n \"revision\": \"7abe5840ceba140e\"\n },\n {\n \"url\": \"/_next/static/chunks/5806.7abe5840ceba140e.js.map\",\n \"revision\": \"af125939cecd435139e392f8bd56370f\"\n },\n {\n \"url\": \"/_next/static/chunks/5811.c57c2ce8e34cef01.js\",\n \"revision\": \"c57c2ce8e34cef01\"\n },\n {\n \"url\": \"/_next/static/chunks/5811.c57c2ce8e34cef01.js.map\",\n \"revision\": \"012e24e23a09da9a778fbdd9822aca21\"\n },\n {\n \"url\": \"/_next/static/chunks/5939.0a433dc6f963fc41.js\",\n \"revision\": \"0a433dc6f963fc41\"\n },\n {\n \"url\": \"/_next/static/chunks/5939.0a433dc6f963fc41.js.map\",\n \"revision\": \"1bbdb067870f00a00178e4d957674ff3\"\n },\n {\n \"url\": \"/_next/static/chunks/6030-e83e68cc2f8463a2.js\",\n \"revision\": \"e83e68cc2f8463a2\"\n },\n {\n \"url\": \"/_next/static/chunks/6030-e83e68cc2f8463a2.js.map\",\n \"revision\": \"8ed3059b29709f0220d408c94f7f3f41\"\n },\n {\n \"url\": \"/_next/static/chunks/6237.f7b1d24c812922e4.js\",\n \"revision\": \"f7b1d24c812922e4\"\n },\n {\n \"url\": \"/_next/static/chunks/6237.f7b1d24c812922e4.js.map\",\n \"revision\": \"6cc4d38f59df19f8bafb8008cea0e488\"\n },\n {\n \"url\": \"/_next/static/chunks/6253.dcdff54f0dceda1f.js\",\n \"revision\": \"dcdff54f0dceda1f\"\n },\n {\n \"url\": \"/_next/static/chunks/6253.dcdff54f0dceda1f.js.map\",\n \"revision\": \"fd34194cf6e7dcf3a341d71be81cf081\"\n },\n {\n \"url\": \"/_next/static/chunks/6328.ea13afa99496d818.js\",\n \"revision\": \"ea13afa99496d818\"\n },\n {\n \"url\": \"/_next/static/chunks/6328.ea13afa99496d818.js.map\",\n \"revision\": \"dde091d41c2e039efeddcb6701a8fff0\"\n },\n {\n \"url\": \"/_next/static/chunks/6512.977ebe92578592ef.js\",\n \"revision\": \"977ebe92578592ef\"\n },\n {\n \"url\": \"/_next/static/chunks/6512.977ebe92578592ef.js.map\",\n \"revision\": \"6606809cc81420379be21938281aabb9\"\n },\n {\n \"url\": \"/_next/static/chunks/6550-01e44e3f39a0d2ec.js\",\n \"revision\": \"01e44e3f39a0d2ec\"\n },\n {\n \"url\": \"/_next/static/chunks/6550-01e44e3f39a0d2ec.js.map\",\n \"revision\": \"1e15af60961ffa13c8827671f01ac5d5\"\n },\n {\n \"url\": \"/_next/static/chunks/6551.432f96462db0d036.js\",\n \"revision\": \"432f96462db0d036\"\n },\n {\n \"url\": \"/_next/static/chunks/6551.432f96462db0d036.js.map\",\n \"revision\": \"bbafc98b0f89d865028b5b13b0a8a0aa\"\n },\n {\n \"url\": \"/_next/static/chunks/6641.ffb505c77ca0be88.js\",\n \"revision\": \"ffb505c77ca0be88\"\n },\n {\n \"url\": \"/_next/static/chunks/6641.ffb505c77ca0be88.js.map\",\n \"revision\": \"cfd24f0648f62c4b9fdd7ad66f4a38a2\"\n },\n {\n \"url\": \"/_next/static/chunks/6721-d608df68a2c1aaa1.js\",\n \"revision\": \"d608df68a2c1aaa1\"\n },\n {\n \"url\": \"/_next/static/chunks/6721-d608df68a2c1aaa1.js.map\",\n \"revision\": \"5a10b634136c35aa474694e3d87e5657\"\n },\n {\n \"url\": \"/_next/static/chunks/6847.a575059dbc72db1a.js\",\n \"revision\": \"a575059dbc72db1a\"\n },\n {\n \"url\": \"/_next/static/chunks/6847.a575059dbc72db1a.js.map\",\n \"revision\": \"474743eec3f96f8b5da6225edcc55781\"\n },\n {\n \"url\": \"/_next/static/chunks/6935-df371e1f052ceb4b.js\",\n \"revision\": \"df371e1f052ceb4b\"\n },\n {\n \"url\": \"/_next/static/chunks/6935-df371e1f052ceb4b.js.map\",\n \"revision\": \"39bb17464e7f018277d3e61a3b765e29\"\n },\n {\n \"url\": \"/_next/static/chunks/704.484bcd9e0a7f5626.js\",\n \"revision\": \"484bcd9e0a7f5626\"\n },\n {\n \"url\": \"/_next/static/chunks/704.484bcd9e0a7f5626.js.map\",\n \"revision\": \"6ef4c87648d589362f885ceeaf75cf19\"\n },\n {\n \"url\": \"/_next/static/chunks/7469.b38ac6cad727c3cb.js\",\n \"revision\": \"b38ac6cad727c3cb\"\n },\n {\n \"url\": \"/_next/static/chunks/7469.b38ac6cad727c3cb.js.map\",\n \"revision\": \"550128ac3b4a289e771fff24c4e3c0c1\"\n },\n {\n \"url\": \"/_next/static/chunks/7619.8cb70b87bca51587.js\",\n \"revision\": \"8cb70b87bca51587\"\n },\n {\n \"url\": \"/_next/static/chunks/7619.8cb70b87bca51587.js.map\",\n \"revision\": \"dbc52dd1f7f272bfb9a76373bc722eba\"\n },\n {\n \"url\": \"/_next/static/chunks/7682.b0a3567fac8e0052.js\",\n \"revision\": \"b0a3567fac8e0052\"\n },\n {\n \"url\": \"/_next/static/chunks/7682.b0a3567fac8e0052.js.map\",\n \"revision\": \"fa3bd1a16aabfc8ad19427c8d4a21c8a\"\n },\n {\n \"url\": \"/_next/static/chunks/7793-99899d84aad8670b.js\",\n \"revision\": \"99899d84aad8670b\"\n },\n {\n \"url\": \"/_next/static/chunks/7793-99899d84aad8670b.js.map\",\n \"revision\": \"c2295ca7a14748fa08d44616149a1ceb\"\n },\n {\n \"url\": \"/_next/static/chunks/7805-b2a136512d78c374.js\",\n \"revision\": \"b2a136512d78c374\"\n },\n {\n \"url\": \"/_next/static/chunks/7805-b2a136512d78c374.js.map\",\n \"revision\": \"73cca0f9c7efe68a38ce9951bc7094bb\"\n },\n {\n \"url\": \"/_next/static/chunks/794.1e2bed8991cb7232.js\",\n \"revision\": \"1e2bed8991cb7232\"\n },\n {\n \"url\": \"/_next/static/chunks/794.1e2bed8991cb7232.js.map\",\n \"revision\": \"8102c2e3c02eb841e04a8ec88f69e287\"\n },\n {\n \"url\": \"/_next/static/chunks/8137.d6c500ddcf42e542.js\",\n \"revision\": \"d6c500ddcf42e542\"\n },\n {\n \"url\": \"/_next/static/chunks/8137.d6c500ddcf42e542.js.map\",\n \"revision\": \"80d8dd2aa7e3e3b96733eabb3b58400c\"\n },\n {\n \"url\": \"/_next/static/chunks/8366.656bbd943f76fa86.js\",\n \"revision\": \"656bbd943f76fa86\"\n },\n {\n \"url\": \"/_next/static/chunks/8366.656bbd943f76fa86.js.map\",\n \"revision\": \"e1d048e368adbffc6cf0e3a4c22ffb1d\"\n },\n {\n \"url\": \"/_next/static/chunks/8408-01e4bf0a708112c7.js\",\n \"revision\": \"01e4bf0a708112c7\"\n },\n {\n \"url\": \"/_next/static/chunks/8408-01e4bf0a708112c7.js.map\",\n \"revision\": \"106852e27bdf5c7bd7cdceb5fe9578fc\"\n },\n {\n \"url\": \"/_next/static/chunks/8693-137e57cb1fb7cc46.js\",\n \"revision\": \"137e57cb1fb7cc46\"\n },\n {\n \"url\": \"/_next/static/chunks/8693-137e57cb1fb7cc46.js.map\",\n \"revision\": \"f64d210823596733ca804fdf09f4d850\"\n },\n {\n \"url\": \"/_next/static/chunks/8881.8c985300b37d631a.js\",\n \"revision\": \"8c985300b37d631a\"\n },\n {\n \"url\": \"/_next/static/chunks/8881.8c985300b37d631a.js.map\",\n \"revision\": \"f1ea2eff344cca229ef10ae8325ffb19\"\n },\n {\n \"url\": \"/_next/static/chunks/8906.7becb64cf75ab6af.js\",\n \"revision\": \"7becb64cf75ab6af\"\n },\n {\n \"url\": \"/_next/static/chunks/8906.7becb64cf75ab6af.js.map\",\n \"revision\": \"0ccb2e89a5c7a0e384b29938364e10dd\"\n },\n {\n \"url\": \"/_next/static/chunks/89cecdcb.af2bee64d05fadc8.js\",\n \"revision\": \"af2bee64d05fadc8\"\n },\n {\n \"url\": \"/_next/static/chunks/89cecdcb.af2bee64d05fadc8.js.map\",\n \"revision\": \"3741b225a6b68f036fe3a6a9b47dc2d3\"\n },\n {\n \"url\": \"/_next/static/chunks/9223.882cd6b61a640a13.js\",\n \"revision\": \"882cd6b61a640a13\"\n },\n {\n \"url\": \"/_next/static/chunks/9223.882cd6b61a640a13.js.map\",\n \"revision\": \"5d9c2c74c46cb60b31a9089ab10bdc18\"\n },\n {\n \"url\": \"/_next/static/chunks/9288-8045c1dc8a5ea60e.js\",\n \"revision\": \"8045c1dc8a5ea60e\"\n },\n {\n \"url\": \"/_next/static/chunks/9288-8045c1dc8a5ea60e.js.map\",\n \"revision\": \"4ba9704c134cc99d59768ebc5559a61b\"\n },\n {\n \"url\": \"/_next/static/chunks/9293-8af17d728be5ce1f.js\",\n \"revision\": \"8af17d728be5ce1f\"\n },\n {\n \"url\": \"/_next/static/chunks/9293-8af17d728be5ce1f.js.map\",\n \"revision\": \"ff8f5fb3da277c43f4cb1c45fae19b33\"\n },\n {\n \"url\": \"/_next/static/chunks/934.405a73de74b58e27.js\",\n \"revision\": \"405a73de74b58e27\"\n },\n {\n \"url\": \"/_next/static/chunks/934.405a73de74b58e27.js.map\",\n \"revision\": \"7d759f3e5db88b36c68a0e8c62d0a234\"\n },\n {\n \"url\": \"/_next/static/chunks/9343.b6a5aebbe4138a78.js\",\n \"revision\": \"b6a5aebbe4138a78\"\n },\n {\n \"url\": \"/_next/static/chunks/9343.b6a5aebbe4138a78.js.map\",\n \"revision\": \"945e322edcb947ae8f9719289656bc1f\"\n },\n {\n \"url\": \"/_next/static/chunks/9467-8fed1718f255373e.js\",\n \"revision\": \"8fed1718f255373e\"\n },\n {\n \"url\": \"/_next/static/chunks/9467-8fed1718f255373e.js.map\",\n \"revision\": \"646526681542df5ecdefd74d83ed9785\"\n },\n {\n \"url\": \"/_next/static/chunks/9600.5accbcbb008d261e.js\",\n \"revision\": \"5accbcbb008d261e\"\n },\n {\n \"url\": \"/_next/static/chunks/9600.5accbcbb008d261e.js.map\",\n \"revision\": \"bab15f38652f79dd4b7da337c1ee35ec\"\n },\n {\n \"url\": \"/_next/static/chunks/9606-8673ee73819c462d.js\",\n \"revision\": \"8673ee73819c462d\"\n },\n {\n \"url\": \"/_next/static/chunks/9606-8673ee73819c462d.js.map\",\n \"revision\": \"c13fa2e14289e79e516cf984f2b65eaf\"\n },\n {\n \"url\": \"/_next/static/chunks/9669.1e5a604c16a88b07.js\",\n \"revision\": \"1e5a604c16a88b07\"\n },\n {\n \"url\": \"/_next/static/chunks/9669.1e5a604c16a88b07.js.map\",\n \"revision\": \"c6e8a3dc1f542a959bbe38d046ec7dd0\"\n },\n {\n \"url\": \"/_next/static/chunks/9838-0719826ac73c1710.js\",\n \"revision\": \"0719826ac73c1710\"\n },\n {\n \"url\": \"/_next/static/chunks/9838-0719826ac73c1710.js.map\",\n \"revision\": \"68c21023a1861181d696c313c5ae415a\"\n },\n {\n \"url\": \"/_next/static/chunks/9851-e4e60b87fb1f8280.js\",\n \"revision\": \"e4e60b87fb1f8280\"\n },\n {\n \"url\": \"/_next/static/chunks/9851-e4e60b87fb1f8280.js.map\",\n \"revision\": \"2765ab59cdf3fe62bdf769d2d35322b7\"\n },\n {\n \"url\": \"/_next/static/chunks/9941.44044767831d9eb0.js\",\n \"revision\": \"44044767831d9eb0\"\n },\n {\n \"url\": \"/_next/static/chunks/9941.44044767831d9eb0.js.map\",\n \"revision\": \"2e33919a0042a766fce130a084d47bd8\"\n },\n {\n \"url\": \"/_next/static/chunks/9990.ae4db9e0602dce90.js\",\n \"revision\": \"ae4db9e0602dce90\"\n },\n {\n \"url\": \"/_next/static/chunks/ed150ef9.c7018f6bfeada485.js\",\n \"revision\": \"c7018f6bfeada485\"\n },\n {\n \"url\": \"/_next/static/chunks/ed150ef9.c7018f6bfeada485.js.map\",\n \"revision\": \"e9e74546bc3f5da6d1f4ac859021e2b8\"\n },\n {\n \"url\": \"/_next/static/chunks/fea29d9f-e92e3ec209fdc760.js\",\n \"revision\": \"e92e3ec209fdc760\"\n },\n {\n \"url\": \"/_next/static/chunks/framework-56eb74ff06128874.js\",\n \"revision\": \"56eb74ff06128874\"\n },\n {\n \"url\": \"/_next/static/chunks/framework-56eb74ff06128874.js.map\",\n \"revision\": \"d3eee39c6c60d345201a4dc3b21ccae6\"\n },\n {\n \"url\": \"/_next/static/chunks/main-ac75a04fa308a7bb.js\",\n \"revision\": \"ac75a04fa308a7bb\"\n },\n {\n \"url\": \"/_next/static/chunks/main-ac75a04fa308a7bb.js.map\",\n \"revision\": \"d48eba03d247e8469da28a02766d7d6b\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/404-a342ea018b92a866.js\",\n \"revision\": \"a342ea018b92a866\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/404-a342ea018b92a866.js.map\",\n \"revision\": \"b59e941845ce2c1c06bc1f5fd7ff6141\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/500-0765a8671560c3f3.js\",\n \"revision\": \"0765a8671560c3f3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/500-0765a8671560c3f3.js.map\",\n \"revision\": \"bec7c215bc7093fdefefb9355b8c6cc9\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_error-1b8072c13f00bf3a.js\",\n \"revision\": \"1b8072c13f00bf3a\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_error-1b8072c13f00bf3a.js.map\",\n \"revision\": \"d16189168d8c1c8ef3437770c01b9658\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/contact-1a40297e145e651d.js\",\n \"revision\": \"1a40297e145e651d\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/contact-1a40297e145e651d.js.map\",\n \"revision\": \"1556a74418c6aace0476c9bc1e81bc8c\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/deployments-66ea5335eb30c576.js\",\n \"revision\": \"66ea5335eb30c576\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/deployments-66ea5335eb30c576.js.map\",\n \"revision\": \"4325469bec593b03301ae39571eef7a2\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/deployments/%5Bdseq%5D-12badc2813065e3b.js\",\n \"revision\": \"12badc2813065e3b\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/deployments/%5Bdseq%5D-12badc2813065e3b.js.map\",\n \"revision\": \"769bfe2b6854280094feac4166106d5f\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/faq-f64e58fd87bdc0d0.js\",\n \"revision\": \"f64e58fd87bdc0d0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/faq-f64e58fd87bdc0d0.js.map\",\n \"revision\": \"fccd46385805b457f0f7d403ec6babae\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/get-started-bb447dd80692a210.js\",\n \"revision\": \"bb447dd80692a210\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/get-started-bb447dd80692a210.js.map\",\n \"revision\": \"9509bfedf23003ede69276856b762b77\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/get-started/wallet-3129b05aa40933e5.js\",\n \"revision\": \"3129b05aa40933e5\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/get-started/wallet-3129b05aa40933e5.js.map\",\n \"revision\": \"7d776ffcd5ccb07cf9ab278c825dcaba\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/index-0fc4f92c61ad92bb.js\",\n \"revision\": \"0fc4f92c61ad92bb\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/index-0fc4f92c61ad92bb.js.map\",\n \"revision\": \"e4032adfb4aa42661f1dfaa783306a2e\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/maintenance-d096f6338526f8f4.js\",\n \"revision\": \"d096f6338526f8f4\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/maintenance-d096f6338526f8f4.js.map\",\n \"revision\": \"25e281c9e1c571ad5122c70a5c462bab\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/new-deployment-2eef013b4376fec6.js\",\n \"revision\": \"2eef013b4376fec6\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/new-deployment-2eef013b4376fec6.js.map\",\n \"revision\": \"2937de76a3b13c42bd4333976cb333a6\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/privacy-policy-8f8976000b214e00.js\",\n \"revision\": \"8f8976000b214e00\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/privacy-policy-8f8976000b214e00.js.map\",\n \"revision\": \"ca2907cd54be5455668571544fd89bb6\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/profile/%5Busername%5D-e6bc64b7c3c86b8e.js\",\n \"revision\": \"e6bc64b7c3c86b8e\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/profile/%5Busername%5D-e6bc64b7c3c86b8e.js.map\",\n \"revision\": \"d79be69db74e2382eebabae035b72d68\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers-b5c05137aab3afd5.js\",\n \"revision\": \"b5c05137aab3afd5\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers-b5c05137aab3afd5.js.map\",\n \"revision\": \"8dd377fde5597b6f310711a1320637af\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D-7adc1ae9a3726d18.js\",\n \"revision\": \"7adc1ae9a3726d18\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D-7adc1ae9a3726d18.js.map\",\n \"revision\": \"7c6c91bcae3c4de64a07224568aebbe2\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/edit-18d5a3291273800b.js\",\n \"revision\": \"18d5a3291273800b\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/edit-18d5a3291273800b.js.map\",\n \"revision\": \"7aa6ba53180927590d2b84970401d349\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/leases-f9f62560a3482a30.js\",\n \"revision\": \"f9f62560a3482a30\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/leases-f9f62560a3482a30.js.map\",\n \"revision\": \"b13550468172caa32f8044259b63c888\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/raw-95dedc46f5601d89.js\",\n \"revision\": \"95dedc46f5601d89\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/raw-95dedc46f5601d89.js.map\",\n \"revision\": \"807fae7e972e30106e00ea8c56dc0bc9\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/rent-gpu-499027ecd6204acf.js\",\n \"revision\": \"499027ecd6204acf\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/rent-gpu-499027ecd6204acf.js.map\",\n \"revision\": \"279bb2c5797bbf8242c2e06c03fb019b\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/sdl-builder-09e01f85cfbd4f8c.js\",\n \"revision\": \"09e01f85cfbd4f8c\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/sdl-builder-09e01f85cfbd4f8c.js.map\",\n \"revision\": \"d028b9e69f3005d11e76f4f79cf7337b\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/settings-2b381f20bb05f116.js\",\n \"revision\": \"2b381f20bb05f116\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/settings-2b381f20bb05f116.js.map\",\n \"revision\": \"0f233d8d99acb6c3a90c761043eed22d\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/settings/authorizations-046f7f6bcab6c6fd.js\",\n \"revision\": \"046f7f6bcab6c6fd\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/settings/authorizations-046f7f6bcab6c6fd.js.map\",\n \"revision\": \"ac786cc725de6f0d57a2bcf561ff15e1\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/template/%5Bid%5D-b634d34848a77522.js\",\n \"revision\": \"b634d34848a77522\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/template/%5Bid%5D-b634d34848a77522.js.map\",\n \"revision\": \"986c8dd296a0dc741dd753e6eab40bf6\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/templates-198b3f3f58d00378.js\",\n \"revision\": \"198b3f3f58d00378\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/templates-198b3f3f58d00378.js.map\",\n \"revision\": \"0db03a02146fd498144128d4e0c1efc2\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/templates/%5BtemplateId%5D-428650d6d40402a4.js\",\n \"revision\": \"428650d6d40402a4\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/templates/%5BtemplateId%5D-428650d6d40402a4.js.map\",\n \"revision\": \"ea969945d88570f48c81e7e13e6b8fd6\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/terms-of-service-d353c91fc4e429ed.js\",\n \"revision\": \"d353c91fc4e429ed\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/terms-of-service-d353c91fc4e429ed.js.map\",\n \"revision\": \"662258f3fdd377d2ef57d4ee214640b0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings-d71e3f956adfab0d.js\",\n \"revision\": \"d71e3f956adfab0d\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings-d71e3f956adfab0d.js.map\",\n \"revision\": \"727237dd0aad09bb1a61338d5b96f8db\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings/address-book-6e92883850aa0575.js\",\n \"revision\": \"6e92883850aa0575\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings/address-book-6e92883850aa0575.js.map\",\n \"revision\": \"60be3cbb18023c34b0e5d22f3c0244ed\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings/favorites-022f9475ea95279a.js\",\n \"revision\": \"022f9475ea95279a\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings/favorites-022f9475ea95279a.js.map\",\n \"revision\": \"09f10f120d1392eea9640bfce2fc23f4\"\n },\n {\n \"url\": \"/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js\",\n \"revision\": \"79330112775102f91e1010318bae2bd3\"\n },\n {\n \"url\": \"/_next/static/chunks/webpack-38914863536cfda9.js\",\n \"revision\": \"38914863536cfda9\"\n },\n {\n \"url\": \"/_next/static/chunks/webpack-38914863536cfda9.js.map\",\n \"revision\": \"7f2c8e577a5ad491881b8c481b82af16\"\n },\n {\n \"url\": \"/_next/static/css/60da0364ed65e94f.css\",\n \"revision\": \"60da0364ed65e94f\"\n },\n {\n \"url\": \"/_next/static/css/60da0364ed65e94f.css.map\",\n \"revision\": \"cb19ae85aa968d5f6d3933a56327e540\"\n },\n {\n \"url\": \"/_next/static/css/85fa6dafca566008.css\",\n \"revision\": \"85fa6dafca566008\"\n },\n {\n \"url\": \"/_next/static/css/85fa6dafca566008.css.map\",\n \"revision\": \"9c59b75c9f453e0da5cebf39ede2dd6f\"\n },\n {\n \"url\": \"/_next/static/css/bb0d70a56ccaf79b.css\",\n \"revision\": \"bb0d70a56ccaf79b\"\n },\n {\n \"url\": \"/_next/static/css/bb0d70a56ccaf79b.css.map\",\n \"revision\": \"9f1ff67358552fcad1bde5207dd8d6ac\"\n },\n {\n \"url\": \"/_next/static/hxqGKJIHos-N-k5RJTdg6/_buildManifest.js\",\n \"revision\": \"59417b6aadfcc2293cd1a54f8a710189\"\n },\n {\n \"url\": \"/_next/static/hxqGKJIHos-N-k5RJTdg6/_ssgManifest.js\",\n \"revision\": \"b6652df95db52feb4daf4eca35380933\"\n },\n {\n \"url\": \"/_next/static/media/e11418ac562b8ac1-s.p.woff2\",\n \"revision\": \"0e46e732cced180e3a2c7285100f27d4\"\n },\n {\n \"url\": \"/akash-console.png\",\n \"revision\": \"4ab11b341159b007fc63d28631e0a8d8\"\n },\n {\n \"url\": \"/android-chrome-192x192.png\",\n \"revision\": \"a2eeed7b0d4a8c9bd9fa014378ac733e\"\n },\n {\n \"url\": \"/android-chrome-256x256.png\",\n \"revision\": \"b0dc3017fadbf0f4c323636535f582b7\"\n },\n {\n \"url\": \"/android-chrome-384x384.png\",\n \"revision\": \"3fae18e8537ff0745221e5aec66c247b\"\n },\n {\n \"url\": \"/apple-touch-icon.png\",\n \"revision\": \"43451e961475b8323dcfb705fb6eb480\"\n },\n {\n \"url\": \"/browserconfig.xml\",\n \"revision\": \"e41ebb6b49206a59d8eafce8220ebeac\"\n },\n {\n \"url\": \"/favicon-16x16.png\",\n \"revision\": \"8cf7a2775f6f6d6db07b95197538b11b\"\n },\n {\n \"url\": \"/favicon-32x32.png\",\n \"revision\": \"bef7d8e9aaed7fb3ef49cbffa31b5339\"\n },\n {\n \"url\": \"/favicon.ico\",\n \"revision\": \"cfebc107c597696c596a277239546a86\"\n },\n {\n \"url\": \"/images/akash-logo-dark.png\",\n \"revision\": \"b1623e407dad710a4c0c73461bbb8bb3\"\n },\n {\n \"url\": \"/images/akash-logo-flat-dark.png\",\n \"revision\": \"50b4ad6438e791047d97da0af65b96f5\"\n },\n {\n \"url\": \"/images/akash-logo-flat-light.png\",\n \"revision\": \"2befec2d17a2b6a32b1a0517ca1baf01\"\n },\n {\n \"url\": \"/images/akash-logo-light.png\",\n \"revision\": \"0ea30905c72eda674ad74c65d0c062bf\"\n },\n {\n \"url\": \"/images/akash-logo.svg\",\n \"revision\": \"4a5f3eaf31bf0f88ff3baec6281c8de3\"\n },\n {\n \"url\": \"/images/chains/akash.png\",\n \"revision\": \"d0b3f8ccaa3b0d18ef4039f86edf4436\"\n },\n {\n \"url\": \"/images/chains/atom.png\",\n \"revision\": \"6e4d88ad2c295e811fee29cc89edfcb1\"\n },\n {\n \"url\": \"/images/chains/evmos.png\",\n \"revision\": \"487a456e9091dec9ddf18892531401f8\"\n },\n {\n \"url\": \"/images/chains/huahua.png\",\n \"revision\": \"f0ba8427522833bba44962e87e982412\"\n },\n {\n \"url\": \"/images/chains/juno.png\",\n \"revision\": \"933b7d992dc67fd2f0d0f35e182b3361\"\n },\n {\n \"url\": \"/images/chains/kuji.png\",\n \"revision\": \"9c31e679007e5ae16fc28e067d907f79\"\n },\n {\n \"url\": \"/images/chains/osmo.png\",\n \"revision\": \"6940c69c28e5d85d99ba498fc7e95a26\"\n },\n {\n \"url\": \"/images/chains/scrt.png\",\n \"revision\": \"0dd98be17447cf7c47d27153f534ca60\"\n },\n {\n \"url\": \"/images/chains/stars.png\",\n \"revision\": \"56d0bd40e52f010c7267eb78c53138f2\"\n },\n {\n \"url\": \"/images/chains/strd.png\",\n \"revision\": \"eebdfb53ba0bc9bba88b0bede7a44f6d\"\n },\n {\n \"url\": \"/images/cloudmos-logo-light.png\",\n \"revision\": \"a7423327e4280225e176da92c6176c28\"\n },\n {\n \"url\": \"/images/cloudmos-logo-small.jpg\",\n \"revision\": \"4b339b83e7dc396894537b83d794726d\"\n },\n {\n \"url\": \"/images/cloudmos-logo.png\",\n \"revision\": \"56d87e0230a0ad5dd745efd486a33a58\"\n },\n {\n \"url\": \"/images/docker.png\",\n \"revision\": \"fde0ed6a2add0ffabfbc5a7749fdfff2\"\n },\n {\n \"url\": \"/images/faq/change-node.png\",\n \"revision\": \"9421f6443f6c4397887035e50d8c9b24\"\n },\n {\n \"url\": \"/images/faq/update-deployment-btn.png\",\n \"revision\": \"ebc7f6907a08fdf6a6cd5a87043456fd\"\n },\n {\n \"url\": \"/images/keplr-logo.png\",\n \"revision\": \"50397e4902a33a6045c0f23dfe5cb1bd\"\n },\n {\n \"url\": \"/images/leap-cosmos-logo.png\",\n \"revision\": \"a54ced7748b33565e6dc1ea1c5b1ef52\"\n },\n {\n \"url\": \"/images/powered-by-akash-dark.svg\",\n \"revision\": \"3ea920f030ede7926a02c2dc17e332c4\"\n },\n {\n \"url\": \"/images/powered-by-akash.svg\",\n \"revision\": \"24b2566094fafded6c325246fe84c2a9\"\n },\n {\n \"url\": \"/images/ubuntu.png\",\n \"revision\": \"c631b8fae270a618c1fe1c9d43097189\"\n },\n {\n \"url\": \"/images/wallet-connect-logo.png\",\n \"revision\": \"8379e4d4e7267b47a0b5b89807a4d8f8\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"a030fca8a5c7b8e2e1b5d7614a8b74fa\"\n },\n {\n \"url\": \"/mstile-150x150.png\",\n \"revision\": \"17614fed638be1d5e2225b9d5419336a\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"c2bb774b8071c957d2b835beaa28a58b\"\n },\n {\n \"url\": \"/safari-pinned-tab.svg\",\n \"revision\": \"86b02210e078cb763098dfec594f4f04\"\n }\n], {\n \"ignoreURLParametersMatching\": []\n});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\nworkbox_routing_registerRoute(\"/\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"start-url\", plugins: [{ cacheWillUpdate: async ({ request, response, event, state }) => { if (response && response.type === 'opaqueredirect') { return new Response(response.body, { status: 200, statusText: 'OK', headers: response.headers }) } return response } }] }), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.(?:gstatic)\\.com\\/.*/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"google-fonts-webfonts\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 31536000 })] }), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.(?:googleapis)\\.com\\/.*/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"google-fonts-stylesheets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-font-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-image-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\/_next\\/image\\?url=.+$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"next-image\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:mp3|wav|ogg)$/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"static-audio-assets\", plugins: [new workbox_range_requests_RangeRequestsPlugin(), new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:mp4)$/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"static-video-assets\", plugins: [new workbox_range_requests_RangeRequestsPlugin(), new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:js)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-js-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:css|less)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-style-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\/_next\\/data\\/.+\\/.+\\.json$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"next-data\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:json|xml|csv)$/i, new workbox_strategies_NetworkFirst({ \"cacheName\":\"static-data-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({ url }) => {\n const isSameOrigin = self.origin === url.origin\n if (!isSameOrigin) return false\n const pathname = url.pathname\n // Exclude /api/auth/callback/* to fix OAuth workflow in Safari without impact other environment\n // Above route is default for next-auth, you may need to change it if your OAuth workflow has a different callback route\n // Issue: https://github.com/shadowwalker/next-pwa/issues/131#issuecomment-821894809\n if (pathname.startsWith('/api/auth/')) return false\n if (pathname.startsWith('/api/')) return true\n return false\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"apis\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 16, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({ url }) => {\n const isSameOrigin = self.origin === url.origin\n if (!isSameOrigin) return false\n const pathname = url.pathname\n if (pathname.startsWith('/api/')) return false\n return true\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"others\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({ url }) => {\n const isSameOrigin = self.origin === url.origin\n return !isSameOrigin\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"cross-origin\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 3600 })] }), 'GET');\n\n\n\n\n"],"names":["importScripts","self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching","workbox_precaching_cleanupOutdatedCaches","workbox_routing_registerRoute","workbox_strategies_NetworkFirst","cacheName","plugins","cacheWillUpdate","async","request","response","event","state","type","Response","body","status","statusText","headers","workbox_strategies_CacheFirst","workbox_expiration_ExpirationPlugin","maxEntries","maxAgeSeconds","workbox_strategies_StaleWhileRevalidate","workbox_range_requests_RangeRequestsPlugin","origin","pathname","startsWith","networkTimeoutSeconds"],"mappings":"0nBAqBAA,gBAUAC,KAAKC,cAELC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,qDACPC,SAAY,oBAEd,CACED,IAAO,yDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oBAEd,CACED,IAAO,yDACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oBAEd,CACED,IAAO,yDACPC,SAAY,oCAEd,CACED,IAAO,wDACPC,SAAY,oBAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,yDACPC,SAAY,oBAEd,CACED,IAAO,6DACPC,SAAY,oCAEd,CACED,IAAO,6DACPC,SAAY,oBAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,wEACPC,SAAY,oBAEd,CACED,IAAO,4EACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oBAEd,CACED,IAAO,yDACPC,SAAY,oCAEd,CACED,IAAO,6DACPC,SAAY,oBAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,oEACPC,SAAY,oBAEd,CACED,IAAO,wEACPC,SAAY,oCAEd,CACED,IAAO,uDACPC,SAAY,oBAEd,CACED,IAAO,2DACPC,SAAY,oCAEd,CACED,IAAO,6DACPC,SAAY,oBAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,gEACPC,SAAY,oBAEd,CACED,IAAO,oEACPC,SAAY,oCAEd,CACED,IAAO,gEACPC,SAAY,oBAEd,CACED,IAAO,oEACPC,SAAY,oCAEd,CACED,IAAO,wEACPC,SAAY,oBAEd,CACED,IAAO,4EACPC,SAAY,oCAEd,CACED,IAAO,2DACPC,SAAY,oBAEd,CACED,IAAO,+DACPC,SAAY,oCAEd,CACED,IAAO,uEACPC,SAAY,oBAEd,CACED,IAAO,2EACPC,SAAY,oCAEd,CACED,IAAO,4EACPC,SAAY,oBAEd,CACED,IAAO,gFACPC,SAAY,oCAEd,CACED,IAAO,8EACPC,SAAY,oBAEd,CACED,IAAO,kFACPC,SAAY,oCAEd,CACED,IAAO,2EACPC,SAAY,oBAEd,CACED,IAAO,+EACPC,SAAY,oCAEd,CACED,IAAO,0DACPC,SAAY,oBAEd,CACED,IAAO,8DACPC,SAAY,oCAEd,CACED,IAAO,6DACPC,SAAY,oBAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,0DACPC,SAAY,oBAEd,CACED,IAAO,8DACPC,SAAY,oCAEd,CACED,IAAO,yEACPC,SAAY,oBAEd,CACED,IAAO,6EACPC,SAAY,oCAEd,CACED,IAAO,mEACPC,SAAY,oBAEd,CACED,IAAO,uEACPC,SAAY,oCAEd,CACED,IAAO,2DACPC,SAAY,oBAEd,CACED,IAAO,+DACPC,SAAY,oCAEd,CACED,IAAO,4EACPC,SAAY,oBAEd,CACED,IAAO,gFACPC,SAAY,oCAEd,CACED,IAAO,kEACPC,SAAY,oBAEd,CACED,IAAO,sEACPC,SAAY,oCAEd,CACED,IAAO,+DACPC,SAAY,oBAEd,CACED,IAAO,mEACPC,SAAY,oCAEd,CACED,IAAO,4EACPC,SAAY,oBAEd,CACED,IAAO,gFACPC,SAAY,oCAEd,CACED,IAAO,yEACPC,SAAY,oBAEd,CACED,IAAO,6EACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oCAEd,CACED,IAAO,mDACPC,SAAY,oBAEd,CACED,IAAO,uDACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oBAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oBAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oBAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,sDACPC,SAAY,oCAEd,CACED,IAAO,iDACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,eACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,S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"} \ No newline at end of file +{"version":3,"file":"sw.js","sources":["../../../../../Users/maxim/AppData/Local/Temp/cec7df335f768de7e8c34f2f9606ca0c/sw.js"],"sourcesContent":["import {registerRoute as workbox_routing_registerRoute} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-routing/registerRoute.mjs';\nimport {NetworkFirst as workbox_strategies_NetworkFirst} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-strategies/NetworkFirst.mjs';\nimport {ExpirationPlugin as workbox_expiration_ExpirationPlugin} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-expiration/ExpirationPlugin.mjs';\nimport {CacheFirst as workbox_strategies_CacheFirst} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-strategies/CacheFirst.mjs';\nimport {StaleWhileRevalidate as workbox_strategies_StaleWhileRevalidate} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-strategies/StaleWhileRevalidate.mjs';\nimport {RangeRequestsPlugin as workbox_range_requests_RangeRequestsPlugin} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-range-requests/RangeRequestsPlugin.mjs';\nimport {clientsClaim as workbox_core_clientsClaim} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from 'C:/repos/ovrclk-org/cloudmos/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\nimportScripts(\n \n);\n\n\n\n\n\n\n\nself.skipWaiting();\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/_next/static/chunks/1764-5929715db6e89b4a.js\",\n \"revision\": \"5929715db6e89b4a\"\n },\n {\n \"url\": \"/_next/static/chunks/1764-5929715db6e89b4a.js.map\",\n \"revision\": \"82b0e4028a97d2e3056b9cfe489d33d6\"\n },\n {\n \"url\": \"/_next/static/chunks/1864-a108b3603800e036.js\",\n \"revision\": \"a108b3603800e036\"\n },\n {\n \"url\": \"/_next/static/chunks/1864-a108b3603800e036.js.map\",\n \"revision\": \"d14040aca9a418d935a63df93187fb0c\"\n },\n {\n \"url\": \"/_next/static/chunks/1907-33778801caad980d.js\",\n \"revision\": \"33778801caad980d\"\n },\n {\n \"url\": \"/_next/static/chunks/1907-33778801caad980d.js.map\",\n \"revision\": \"4bdd072130e8fdc91d153ebda43bd942\"\n },\n {\n \"url\": \"/_next/static/chunks/195-91d7714432a7def6.js\",\n \"revision\": \"91d7714432a7def6\"\n },\n {\n \"url\": \"/_next/static/chunks/195-91d7714432a7def6.js.map\",\n \"revision\": \"e9ac1790e206fc604634c1176817e54e\"\n },\n {\n \"url\": \"/_next/static/chunks/2362-9a05bc13c785e197.js\",\n \"revision\": \"9a05bc13c785e197\"\n },\n {\n \"url\": \"/_next/static/chunks/2362-9a05bc13c785e197.js.map\",\n \"revision\": \"5789233abea3e8fa90eb1c51ce0d4a47\"\n },\n {\n \"url\": \"/_next/static/chunks/2418-e2b363c2a581bdd0.js\",\n \"revision\": \"e2b363c2a581bdd0\"\n },\n {\n \"url\": \"/_next/static/chunks/2418-e2b363c2a581bdd0.js.map\",\n \"revision\": \"5ff01043622b778a01a45232f77ac26a\"\n },\n {\n \"url\": \"/_next/static/chunks/2674-72d9141ee61fa622.js\",\n \"revision\": \"72d9141ee61fa622\"\n },\n {\n \"url\": \"/_next/static/chunks/2674-72d9141ee61fa622.js.map\",\n \"revision\": \"3c32c5ad19bb626530fb893892bd5a9e\"\n },\n {\n \"url\": \"/_next/static/chunks/2813-040c9a900dbfbecc.js\",\n \"revision\": \"040c9a900dbfbecc\"\n },\n {\n \"url\": \"/_next/static/chunks/2813-040c9a900dbfbecc.js.map\",\n \"revision\": \"5117d0cf1ec649db4d84bd54d59572a6\"\n },\n {\n \"url\": \"/_next/static/chunks/3070-cacd7592b1fb0e8e.js\",\n \"revision\": \"cacd7592b1fb0e8e\"\n },\n {\n \"url\": \"/_next/static/chunks/3070-cacd7592b1fb0e8e.js.map\",\n \"revision\": \"01673688329400d2da3210abd347303d\"\n },\n {\n \"url\": \"/_next/static/chunks/3399.541dcdc90f680900.js\",\n \"revision\": \"541dcdc90f680900\"\n },\n {\n \"url\": \"/_next/static/chunks/3399.541dcdc90f680900.js.map\",\n \"revision\": \"966041ddc7a6a9d344f2ba0b4a651245\"\n },\n {\n \"url\": \"/_next/static/chunks/3475.95d3b6f40f79be74.js\",\n \"revision\": \"95d3b6f40f79be74\"\n },\n {\n \"url\": \"/_next/static/chunks/3475.95d3b6f40f79be74.js.map\",\n \"revision\": \"fd1f7199cf202792cd4f421ce19e31d9\"\n },\n {\n \"url\": \"/_next/static/chunks/3497-40a53cb2d32f79c3.js\",\n \"revision\": \"40a53cb2d32f79c3\"\n },\n {\n \"url\": \"/_next/static/chunks/3497-40a53cb2d32f79c3.js.map\",\n \"revision\": \"61594bee11acdc4aa7dfbe882dc114b7\"\n },\n {\n \"url\": \"/_next/static/chunks/3537-b72cec1d0ac099cf.js\",\n \"revision\": \"b72cec1d0ac099cf\"\n },\n {\n \"url\": \"/_next/static/chunks/3537-b72cec1d0ac099cf.js.map\",\n \"revision\": \"8323692bcea0f725611fe404ab94eb73\"\n },\n {\n \"url\": \"/_next/static/chunks/3623-7f114fb663ebbdbd.js\",\n \"revision\": \"7f114fb663ebbdbd\"\n },\n {\n \"url\": \"/_next/static/chunks/3623-7f114fb663ebbdbd.js.map\",\n \"revision\": \"1ba3c814fac4133399e0e0f869d04489\"\n },\n {\n \"url\": \"/_next/static/chunks/3701-12e89590833ddacb.js\",\n \"revision\": \"12e89590833ddacb\"\n },\n {\n \"url\": \"/_next/static/chunks/3701-12e89590833ddacb.js.map\",\n \"revision\": \"ee1935082e9f4b0f89929cabf2e75b6e\"\n },\n {\n \"url\": \"/_next/static/chunks/3892-3d1c7a0c77bc235f.js\",\n \"revision\": \"3d1c7a0c77bc235f\"\n },\n {\n \"url\": \"/_next/static/chunks/3892-3d1c7a0c77bc235f.js.map\",\n \"revision\": \"244d1bd6af72988378f9e9633ea61b4f\"\n },\n {\n \"url\": \"/_next/static/chunks/3987-d37a1a8f8d82bf01.js\",\n \"revision\": \"d37a1a8f8d82bf01\"\n },\n {\n \"url\": \"/_next/static/chunks/3987-d37a1a8f8d82bf01.js.map\",\n \"revision\": \"7ddcafae62ad17a109ebf983246fde0b\"\n },\n {\n \"url\": \"/_next/static/chunks/4115.e3fa222662e344e4.js\",\n \"revision\": \"e3fa222662e344e4\"\n },\n {\n \"url\": \"/_next/static/chunks/4280-1bc4472a7f622fc1.js\",\n \"revision\": \"1bc4472a7f622fc1\"\n },\n {\n \"url\": \"/_next/static/chunks/4280-1bc4472a7f622fc1.js.map\",\n \"revision\": \"679aae551161ad8cdb7a55ce13367b68\"\n },\n {\n \"url\": \"/_next/static/chunks/4349-863ad02b8356257d.js\",\n \"revision\": \"863ad02b8356257d\"\n },\n {\n \"url\": \"/_next/static/chunks/4349-863ad02b8356257d.js.map\",\n \"revision\": \"79c647fb84de63551c31f1621125f097\"\n },\n {\n \"url\": \"/_next/static/chunks/4575.0759eddd319efbb0.js\",\n \"revision\": \"0759eddd319efbb0\"\n },\n {\n \"url\": \"/_next/static/chunks/4608.35d8215770873418.js\",\n \"revision\": \"35d8215770873418\"\n },\n {\n \"url\": \"/_next/static/chunks/4608.35d8215770873418.js.map\",\n \"revision\": \"b8a1e2b664b0a57c2ffa4a3fa7c8defe\"\n },\n {\n \"url\": \"/_next/static/chunks/4618-120bef75a638d862.js\",\n \"revision\": \"120bef75a638d862\"\n },\n {\n \"url\": \"/_next/static/chunks/4618-120bef75a638d862.js.map\",\n \"revision\": \"7349a44603af045ed11a5cb5ea0aa426\"\n },\n {\n \"url\": \"/_next/static/chunks/498aad35.e9a5b9b930d03a1f.js\",\n \"revision\": \"e9a5b9b930d03a1f\"\n },\n {\n \"url\": \"/_next/static/chunks/498aad35.e9a5b9b930d03a1f.js.map\",\n \"revision\": \"5c8292c65a92157738a00427599d5b15\"\n },\n {\n \"url\": \"/_next/static/chunks/5211-9aca90a643bbfa0c.js\",\n \"revision\": \"9aca90a643bbfa0c\"\n },\n {\n \"url\": \"/_next/static/chunks/5211-9aca90a643bbfa0c.js.map\",\n \"revision\": \"5ff7ff6c304692ccabc7d66ad9751504\"\n },\n {\n \"url\": \"/_next/static/chunks/5543-aa0c49af12223779.js\",\n \"revision\": \"aa0c49af12223779\"\n },\n {\n \"url\": \"/_next/static/chunks/5543-aa0c49af12223779.js.map\",\n \"revision\": \"f98bb2136be35fc5f9b4646b8c760524\"\n },\n {\n \"url\": \"/_next/static/chunks/5552-27eea6ebe31d3f9b.js\",\n \"revision\": \"27eea6ebe31d3f9b\"\n },\n {\n \"url\": \"/_next/static/chunks/5552-27eea6ebe31d3f9b.js.map\",\n \"revision\": \"9f7a9838ab7bf04a909075762690d285\"\n },\n {\n \"url\": \"/_next/static/chunks/5850-01472e4e92d2e0cb.js\",\n \"revision\": \"01472e4e92d2e0cb\"\n },\n {\n \"url\": \"/_next/static/chunks/5850-01472e4e92d2e0cb.js.map\",\n \"revision\": \"7d0e44974af42bfc02e97e8eb155498f\"\n },\n {\n \"url\": \"/_next/static/chunks/6215-666e60bcd6603838.js\",\n \"revision\": \"666e60bcd6603838\"\n },\n {\n \"url\": \"/_next/static/chunks/6215-666e60bcd6603838.js.map\",\n \"revision\": \"d3056a0204aeacb2e749db6ebdeee185\"\n },\n {\n \"url\": \"/_next/static/chunks/6309-dcb2edbe0122c0b1.js\",\n \"revision\": \"dcb2edbe0122c0b1\"\n },\n {\n \"url\": \"/_next/static/chunks/6309-dcb2edbe0122c0b1.js.map\",\n \"revision\": \"65997a4072fa811160c92340b04bfaa3\"\n },\n {\n \"url\": \"/_next/static/chunks/6424.afd408d2a0a8aa78.js\",\n \"revision\": \"afd408d2a0a8aa78\"\n },\n {\n \"url\": \"/_next/static/chunks/6424.afd408d2a0a8aa78.js.map\",\n \"revision\": \"06a1e277ef6809ad36ed4fde2d391baf\"\n },\n {\n \"url\": \"/_next/static/chunks/6778.3bba413adb7edeb2.js\",\n \"revision\": \"3bba413adb7edeb2\"\n },\n {\n \"url\": \"/_next/static/chunks/6778.3bba413adb7edeb2.js.map\",\n \"revision\": \"2f78b019643ba4feb0072b1b2e8a3ef6\"\n },\n {\n \"url\": \"/_next/static/chunks/681-53ca12e2b7e07d1a.js\",\n \"revision\": \"53ca12e2b7e07d1a\"\n },\n {\n \"url\": \"/_next/static/chunks/681-53ca12e2b7e07d1a.js.map\",\n \"revision\": \"73621e9193c84173c5662f96b0b8aa91\"\n },\n {\n \"url\": \"/_next/static/chunks/6dd150ba.ec75e8e489a567a9.js\",\n \"revision\": \"ec75e8e489a567a9\"\n },\n {\n \"url\": \"/_next/static/chunks/6dd150ba.ec75e8e489a567a9.js.map\",\n \"revision\": \"0958db114513904932a656bdf3630b27\"\n },\n {\n \"url\": \"/_next/static/chunks/7058-0d58f19ec0b44002.js\",\n \"revision\": \"0d58f19ec0b44002\"\n },\n {\n \"url\": \"/_next/static/chunks/7058-0d58f19ec0b44002.js.map\",\n \"revision\": \"0f525e45ef4198b9acdf78133a2fef67\"\n },\n {\n \"url\": \"/_next/static/chunks/728-15d517bd1ac27f06.js\",\n \"revision\": \"15d517bd1ac27f06\"\n },\n {\n \"url\": \"/_next/static/chunks/728-15d517bd1ac27f06.js.map\",\n \"revision\": \"71e79aae3a8d1c85c20eb06e0dd70575\"\n },\n {\n \"url\": \"/_next/static/chunks/73df1075.2e70a9c12ac853f9.js\",\n \"revision\": \"2e70a9c12ac853f9\"\n },\n {\n \"url\": \"/_next/static/chunks/73df1075.2e70a9c12ac853f9.js.map\",\n \"revision\": \"a3e37b7394b10774c7f81fb29e80d4de\"\n },\n {\n \"url\": \"/_next/static/chunks/757-8d1ccb796f1a4a77.js\",\n \"revision\": \"8d1ccb796f1a4a77\"\n },\n {\n \"url\": \"/_next/static/chunks/757-8d1ccb796f1a4a77.js.map\",\n \"revision\": \"3c8abc844d2934b5b06e6a3e367f4515\"\n },\n {\n \"url\": \"/_next/static/chunks/7725.25f5b617aeedffb1.js\",\n \"revision\": \"25f5b617aeedffb1\"\n },\n {\n \"url\": \"/_next/static/chunks/7725.25f5b617aeedffb1.js.map\",\n \"revision\": \"9fa49c8830e324f0702b631ca76ea28d\"\n },\n {\n \"url\": \"/_next/static/chunks/7758-703334f7e3ccdd06.js\",\n \"revision\": \"703334f7e3ccdd06\"\n },\n {\n \"url\": \"/_next/static/chunks/7758-703334f7e3ccdd06.js.map\",\n \"revision\": \"65cb50195f8fb75760189b2265e7249c\"\n },\n {\n \"url\": \"/_next/static/chunks/7879-7ea4a95d1b25743b.js\",\n \"revision\": \"7ea4a95d1b25743b\"\n },\n {\n \"url\": \"/_next/static/chunks/7879-7ea4a95d1b25743b.js.map\",\n \"revision\": \"51153394a2f2f96ba5156547f277ebbd\"\n },\n {\n \"url\": \"/_next/static/chunks/7886-b894cd4bce364aa0.js\",\n \"revision\": \"b894cd4bce364aa0\"\n },\n {\n \"url\": \"/_next/static/chunks/7886-b894cd4bce364aa0.js.map\",\n \"revision\": \"4642b816331c12a70e70a3c3c181a639\"\n },\n {\n \"url\": \"/_next/static/chunks/7938-66cfbc6d08e3628a.js\",\n \"revision\": \"66cfbc6d08e3628a\"\n },\n {\n \"url\": \"/_next/static/chunks/7938-66cfbc6d08e3628a.js.map\",\n \"revision\": \"f488969ea5576c3b763edbe8d56598b0\"\n },\n {\n \"url\": \"/_next/static/chunks/8132-3ef09b0cbd451717.js\",\n \"revision\": \"3ef09b0cbd451717\"\n },\n {\n \"url\": \"/_next/static/chunks/8132-3ef09b0cbd451717.js.map\",\n \"revision\": \"9eac85381a4a2e55d36c5a950015d39e\"\n },\n {\n \"url\": \"/_next/static/chunks/8508-6d9a154d40c0c819.js\",\n \"revision\": \"6d9a154d40c0c819\"\n },\n {\n \"url\": \"/_next/static/chunks/8508-6d9a154d40c0c819.js.map\",\n \"revision\": \"315126af57aad25b421b21afda89a268\"\n },\n {\n \"url\": \"/_next/static/chunks/87d427d2-4b3f96f2a3f4b743.js\",\n \"revision\": \"4b3f96f2a3f4b743\"\n },\n {\n \"url\": \"/_next/static/chunks/8871-7154bfb95f8bedf0.js\",\n \"revision\": \"7154bfb95f8bedf0\"\n },\n {\n \"url\": \"/_next/static/chunks/8871-7154bfb95f8bedf0.js.map\",\n \"revision\": \"1a7f132fef6ba7b17faec9f9bc9588bf\"\n },\n {\n \"url\": \"/_next/static/chunks/9040-118a78ba95d54199.js\",\n \"revision\": \"118a78ba95d54199\"\n },\n {\n \"url\": \"/_next/static/chunks/9040-118a78ba95d54199.js.map\",\n \"revision\": \"8a7a819b869e9ecfd1c2cdcb6ac5f06e\"\n },\n {\n \"url\": \"/_next/static/chunks/9435.dca062938e5271af.js\",\n \"revision\": \"dca062938e5271af\"\n },\n {\n \"url\": \"/_next/static/chunks/9435.dca062938e5271af.js.map\",\n \"revision\": \"72e0f5eaa204a8ec239976c95df9ecf5\"\n },\n {\n \"url\": \"/_next/static/chunks/9441-2e06032724e252e1.js\",\n \"revision\": \"2e06032724e252e1\"\n },\n {\n \"url\": \"/_next/static/chunks/9441-2e06032724e252e1.js.map\",\n \"revision\": \"6e29417e1d230103d9fe9ef1c1c0ab85\"\n },\n {\n \"url\": \"/_next/static/chunks/9534-13d530c02b55e7fa.js\",\n \"revision\": \"13d530c02b55e7fa\"\n },\n {\n \"url\": \"/_next/static/chunks/9534-13d530c02b55e7fa.js.map\",\n \"revision\": \"db50baa394f1781bfc6039d937009824\"\n },\n {\n \"url\": \"/_next/static/chunks/9537.60d4517640e9053b.js\",\n \"revision\": \"60d4517640e9053b\"\n },\n {\n \"url\": \"/_next/static/chunks/9537.60d4517640e9053b.js.map\",\n \"revision\": \"fc3f8329015248f9e72e2a07271453fe\"\n },\n {\n \"url\": \"/_next/static/chunks/9785-1dd6421ec13ce705.js\",\n \"revision\": \"1dd6421ec13ce705\"\n },\n {\n \"url\": \"/_next/static/chunks/9785-1dd6421ec13ce705.js.map\",\n \"revision\": \"e33908b4dd953c6f6cc2711e6f020ead\"\n },\n {\n \"url\": \"/_next/static/chunks/framework-8383bf789d61bcef.js\",\n \"revision\": \"8383bf789d61bcef\"\n },\n {\n \"url\": \"/_next/static/chunks/framework-8383bf789d61bcef.js.map\",\n \"revision\": \"a115d423eec304cd979739160b33710b\"\n },\n {\n \"url\": \"/_next/static/chunks/main-eb002066e9283b80.js\",\n \"revision\": \"eb002066e9283b80\"\n },\n {\n \"url\": \"/_next/static/chunks/main-eb002066e9283b80.js.map\",\n \"revision\": \"4f0a6f355fd43e903da9a9de760b59b1\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/404-3cd2ee657b4aacad.js\",\n \"revision\": \"3cd2ee657b4aacad\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/404-3cd2ee657b4aacad.js.map\",\n \"revision\": \"8a6bdd28e6894d1df94bb56575d879bb\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/500-82695811d16d1c63.js\",\n \"revision\": \"82695811d16d1c63\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/500-82695811d16d1c63.js.map\",\n \"revision\": \"9a9aef58c581ee7babbb9d80f9217e73\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_error-03ddde95c658f466.js\",\n \"revision\": \"03ddde95c658f466\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/_error-03ddde95c658f466.js.map\",\n \"revision\": \"030a8136cb59aeaf303367b9bbb4a045\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/contact-8a55926f978ca91d.js\",\n \"revision\": \"8a55926f978ca91d\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/contact-8a55926f978ca91d.js.map\",\n \"revision\": \"13dfef43b03b7d1c45f75aa7fc41fe78\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/deployments-d40e0c344679d510.js\",\n \"revision\": \"d40e0c344679d510\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/deployments-d40e0c344679d510.js.map\",\n \"revision\": \"0e587e194e1f091ef5addeae475a8b67\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/deployments/%5Bdseq%5D-f746361c25134439.js\",\n \"revision\": \"f746361c25134439\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/deployments/%5Bdseq%5D-f746361c25134439.js.map\",\n \"revision\": \"97239b40168664c3f1731ab5a9d418e9\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/faq-66d0374acacc6d29.js\",\n \"revision\": \"66d0374acacc6d29\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/faq-66d0374acacc6d29.js.map\",\n \"revision\": \"7bdbaac3eb4023c289b7e4dc6b7e3ead\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/get-started-6f39d57c3bb9d11c.js\",\n \"revision\": \"6f39d57c3bb9d11c\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/get-started-6f39d57c3bb9d11c.js.map\",\n \"revision\": \"f3dd437f10a20322609faf7caf4c42f9\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/get-started/wallet-f12a1603a8edbe20.js\",\n \"revision\": \"f12a1603a8edbe20\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/get-started/wallet-f12a1603a8edbe20.js.map\",\n \"revision\": \"892e1c88447d248bd8a205856a24a2ee\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/index-7b5a98d7dd6fb2ea.js\",\n \"revision\": \"7b5a98d7dd6fb2ea\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/index-7b5a98d7dd6fb2ea.js.map\",\n \"revision\": \"868ad3111084d460edb360da24e09c7c\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/maintenance-b749112dd60f53ab.js\",\n \"revision\": \"b749112dd60f53ab\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/maintenance-b749112dd60f53ab.js.map\",\n \"revision\": \"d53f643065c0c0413436353be2604c2d\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/new-deployment-a3a3b718ba4e5889.js\",\n \"revision\": \"a3a3b718ba4e5889\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/new-deployment-a3a3b718ba4e5889.js.map\",\n \"revision\": \"fa3bdee6a7e3ba87210478122f0e5b8e\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/privacy-policy-c67e6af7104d0bc4.js\",\n \"revision\": \"c67e6af7104d0bc4\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/privacy-policy-c67e6af7104d0bc4.js.map\",\n \"revision\": \"158a650f83fce2498b8d4dceb11cd977\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/profile/%5Busername%5D-13c50f9d6915259e.js\",\n \"revision\": \"13c50f9d6915259e\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/profile/%5Busername%5D-13c50f9d6915259e.js.map\",\n \"revision\": \"c29fcf83449a956dea25285893f9714e\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers-173f533dfed36e78.js\",\n \"revision\": \"173f533dfed36e78\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers-173f533dfed36e78.js.map\",\n \"revision\": \"d3ee2ed2cdd3973a030e2e3c6a103f2f\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D-e468784c360feba6.js\",\n \"revision\": \"e468784c360feba6\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D-e468784c360feba6.js.map\",\n \"revision\": \"075e3f19397975e4817879fdc7bfce69\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/edit-34ab7e6c18834d28.js\",\n \"revision\": \"34ab7e6c18834d28\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/edit-34ab7e6c18834d28.js.map\",\n \"revision\": \"570cae76f23af1962b9be7867e9506c8\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/leases-7760606082541645.js\",\n \"revision\": \"7760606082541645\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/leases-7760606082541645.js.map\",\n \"revision\": \"dcc12d062df6f9d889a91144b063358a\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/raw-bd139bd074b9976e.js\",\n \"revision\": \"bd139bd074b9976e\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/providers/%5Bowner%5D/raw-bd139bd074b9976e.js.map\",\n \"revision\": \"e83fa8d139ad31fc8f13df855c5cd724\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/rent-gpu-14d30b4d446464df.js\",\n \"revision\": \"14d30b4d446464df\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/rent-gpu-14d30b4d446464df.js.map\",\n \"revision\": \"85f54ff602c955ab1ca77a6afa721cde\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/sdl-builder-eb7ba74849b251d1.js\",\n \"revision\": \"eb7ba74849b251d1\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/sdl-builder-eb7ba74849b251d1.js.map\",\n \"revision\": \"468192eaff0116a53eb7e1cd2b2c0c8b\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/settings-33a722b8598492d4.js\",\n \"revision\": \"33a722b8598492d4\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/settings-33a722b8598492d4.js.map\",\n \"revision\": \"d18ad2e6de1926ef6291159f642902db\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/settings/authorizations-d79535d2dd0f550e.js\",\n \"revision\": \"d79535d2dd0f550e\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/settings/authorizations-d79535d2dd0f550e.js.map\",\n \"revision\": \"1a8b351b14c3f98e6dd7f28b866462e0\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/template/%5Bid%5D-01e2253199725893.js\",\n \"revision\": \"01e2253199725893\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/template/%5Bid%5D-01e2253199725893.js.map\",\n \"revision\": \"1786104074c6ce4811b834274d8429d2\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/templates-a1e7ac98c78a01d3.js\",\n \"revision\": \"a1e7ac98c78a01d3\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/templates-a1e7ac98c78a01d3.js.map\",\n \"revision\": \"b38044ecedb3b3f4fdf70b1eb2d353d5\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/templates/%5BtemplateId%5D-a54b35031d1fa471.js\",\n \"revision\": \"a54b35031d1fa471\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/templates/%5BtemplateId%5D-a54b35031d1fa471.js.map\",\n \"revision\": \"f459ac00241418edd3052296664b4402\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/terms-of-service-0e503b8cd3eb241f.js\",\n \"revision\": \"0e503b8cd3eb241f\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/terms-of-service-0e503b8cd3eb241f.js.map\",\n \"revision\": \"440c15c3fe6ae840af27cf6820142d41\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings-1bae44f27eff9c2a.js\",\n \"revision\": \"1bae44f27eff9c2a\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings-1bae44f27eff9c2a.js.map\",\n \"revision\": \"20c4b24bcdc171d16a93144ef1a23aa4\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings/address-book-29bf15966c16ae0c.js\",\n \"revision\": \"29bf15966c16ae0c\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings/address-book-29bf15966c16ae0c.js.map\",\n \"revision\": \"5380561f9fb299fbd5a362365bdacf69\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings/favorites-20ea99cc5e385f6f.js\",\n \"revision\": \"20ea99cc5e385f6f\"\n },\n {\n \"url\": \"/_next/static/chunks/pages/user/settings/favorites-20ea99cc5e385f6f.js.map\",\n \"revision\": \"0e51f87c6c8c951e20d558bb99d04bf7\"\n },\n {\n \"url\": \"/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js\",\n \"revision\": \"79330112775102f91e1010318bae2bd3\"\n },\n {\n \"url\": \"/_next/static/chunks/webpack-82b8ed3e5846a77a.js\",\n \"revision\": \"82b8ed3e5846a77a\"\n },\n {\n \"url\": \"/_next/static/chunks/webpack-82b8ed3e5846a77a.js.map\",\n \"revision\": \"38871633e18198e309c6b7d705f0c703\"\n },\n {\n \"url\": \"/_next/static/css/60da0364ed65e94f.css\",\n \"revision\": \"60da0364ed65e94f\"\n },\n {\n \"url\": \"/_next/static/css/60da0364ed65e94f.css.map\",\n \"revision\": \"7ebdaca80e1b94a3afdc509e9729e2f4\"\n },\n {\n \"url\": \"/_next/static/css/85fa6dafca566008.css\",\n \"revision\": \"85fa6dafca566008\"\n },\n {\n \"url\": \"/_next/static/css/85fa6dafca566008.css.map\",\n \"revision\": \"e1c00d68c2a092625defb4c86bdb56ae\"\n },\n {\n \"url\": \"/_next/static/css/a3acd91adaba1724.css\",\n \"revision\": \"a3acd91adaba1724\"\n },\n {\n \"url\": \"/_next/static/mBApz-m1_mixfP7xASgV7/_buildManifest.js\",\n \"revision\": \"15e55772d49b4a6514f9c01fdab5c7b7\"\n },\n {\n \"url\": \"/_next/static/mBApz-m1_mixfP7xASgV7/_ssgManifest.js\",\n \"revision\": \"b6652df95db52feb4daf4eca35380933\"\n },\n {\n \"url\": \"/_next/static/media/e11418ac562b8ac1-s.p.woff2\",\n \"revision\": \"0e46e732cced180e3a2c7285100f27d4\"\n },\n {\n \"url\": \"/akash-console.png\",\n \"revision\": \"4ab11b341159b007fc63d28631e0a8d8\"\n },\n {\n \"url\": \"/android-chrome-192x192.png\",\n \"revision\": \"a2eeed7b0d4a8c9bd9fa014378ac733e\"\n },\n {\n \"url\": \"/android-chrome-256x256.png\",\n \"revision\": \"b0dc3017fadbf0f4c323636535f582b7\"\n },\n {\n \"url\": \"/android-chrome-384x384.png\",\n \"revision\": \"3fae18e8537ff0745221e5aec66c247b\"\n },\n {\n \"url\": \"/apple-touch-icon.png\",\n \"revision\": \"43451e961475b8323dcfb705fb6eb480\"\n },\n {\n \"url\": \"/browserconfig.xml\",\n \"revision\": \"e41ebb6b49206a59d8eafce8220ebeac\"\n },\n {\n \"url\": \"/favicon-16x16.png\",\n \"revision\": \"8cf7a2775f6f6d6db07b95197538b11b\"\n },\n {\n \"url\": \"/favicon-32x32.png\",\n \"revision\": \"bef7d8e9aaed7fb3ef49cbffa31b5339\"\n },\n {\n \"url\": \"/favicon.ico\",\n \"revision\": \"cfebc107c597696c596a277239546a86\"\n },\n {\n \"url\": \"/images/akash-logo-dark.png\",\n \"revision\": \"b1623e407dad710a4c0c73461bbb8bb3\"\n },\n {\n \"url\": \"/images/akash-logo-flat-dark.png\",\n \"revision\": \"50b4ad6438e791047d97da0af65b96f5\"\n },\n {\n \"url\": \"/images/akash-logo-flat-light.png\",\n \"revision\": \"2befec2d17a2b6a32b1a0517ca1baf01\"\n },\n {\n \"url\": \"/images/akash-logo-light.png\",\n \"revision\": \"0ea30905c72eda674ad74c65d0c062bf\"\n },\n {\n \"url\": \"/images/akash-logo.svg\",\n \"revision\": \"4a5f3eaf31bf0f88ff3baec6281c8de3\"\n },\n {\n \"url\": \"/images/chains/akash.png\",\n \"revision\": \"d0b3f8ccaa3b0d18ef4039f86edf4436\"\n },\n {\n \"url\": \"/images/chains/atom.png\",\n \"revision\": \"6e4d88ad2c295e811fee29cc89edfcb1\"\n },\n {\n \"url\": \"/images/chains/evmos.png\",\n \"revision\": \"487a456e9091dec9ddf18892531401f8\"\n },\n {\n \"url\": \"/images/chains/huahua.png\",\n \"revision\": \"f0ba8427522833bba44962e87e982412\"\n },\n {\n \"url\": \"/images/chains/juno.png\",\n \"revision\": \"933b7d992dc67fd2f0d0f35e182b3361\"\n },\n {\n \"url\": \"/images/chains/kuji.png\",\n \"revision\": \"9c31e679007e5ae16fc28e067d907f79\"\n },\n {\n \"url\": \"/images/chains/osmo.png\",\n \"revision\": \"6940c69c28e5d85d99ba498fc7e95a26\"\n },\n {\n \"url\": \"/images/chains/scrt.png\",\n \"revision\": \"0dd98be17447cf7c47d27153f534ca60\"\n },\n {\n \"url\": \"/images/chains/stars.png\",\n \"revision\": \"56d0bd40e52f010c7267eb78c53138f2\"\n },\n {\n \"url\": \"/images/chains/strd.png\",\n \"revision\": \"eebdfb53ba0bc9bba88b0bede7a44f6d\"\n },\n {\n \"url\": \"/images/cloudmos-logo-light.png\",\n \"revision\": \"a7423327e4280225e176da92c6176c28\"\n },\n {\n \"url\": \"/images/cloudmos-logo-small.jpg\",\n \"revision\": \"4b339b83e7dc396894537b83d794726d\"\n },\n {\n \"url\": \"/images/cloudmos-logo.png\",\n \"revision\": \"56d87e0230a0ad5dd745efd486a33a58\"\n },\n {\n \"url\": \"/images/docker.png\",\n \"revision\": \"fde0ed6a2add0ffabfbc5a7749fdfff2\"\n },\n {\n \"url\": \"/images/faq/change-node.png\",\n \"revision\": \"9421f6443f6c4397887035e50d8c9b24\"\n },\n {\n \"url\": \"/images/faq/update-deployment-btn.png\",\n \"revision\": \"ebc7f6907a08fdf6a6cd5a87043456fd\"\n },\n {\n \"url\": \"/images/keplr-logo.png\",\n \"revision\": \"50397e4902a33a6045c0f23dfe5cb1bd\"\n },\n {\n \"url\": \"/images/leap-cosmos-logo.png\",\n \"revision\": \"a54ced7748b33565e6dc1ea1c5b1ef52\"\n },\n {\n \"url\": \"/images/powered-by-akash-dark.svg\",\n \"revision\": \"3ea920f030ede7926a02c2dc17e332c4\"\n },\n {\n \"url\": \"/images/powered-by-akash.svg\",\n \"revision\": \"24b2566094fafded6c325246fe84c2a9\"\n },\n {\n \"url\": \"/images/ubuntu.png\",\n \"revision\": \"c631b8fae270a618c1fe1c9d43097189\"\n },\n {\n \"url\": \"/images/wallet-connect-logo.png\",\n \"revision\": \"8379e4d4e7267b47a0b5b89807a4d8f8\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"a030fca8a5c7b8e2e1b5d7614a8b74fa\"\n },\n {\n \"url\": \"/mstile-150x150.png\",\n \"revision\": \"17614fed638be1d5e2225b9d5419336a\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"c2bb774b8071c957d2b835beaa28a58b\"\n },\n {\n \"url\": \"/safari-pinned-tab.svg\",\n \"revision\": \"86b02210e078cb763098dfec594f4f04\"\n }\n], {\n \"ignoreURLParametersMatching\": []\n});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\nworkbox_routing_registerRoute(\"/\", new workbox_strategies_NetworkFirst({ \"cacheName\":\"start-url\", plugins: [{ cacheWillUpdate: async ({ request, response, event, state }) => { if (response && response.type === 'opaqueredirect') { return new Response(response.body, { status: 200, statusText: 'OK', headers: response.headers }) } return response } }] }), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.(?:gstatic)\\.com\\/.*/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"google-fonts-webfonts\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 31536000 })] }), 'GET');\nworkbox_routing_registerRoute(/^https:\\/\\/fonts\\.(?:googleapis)\\.com\\/.*/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"google-fonts-stylesheets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:eot|otf|ttc|ttf|woff|woff2|font.css)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-font-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 4, maxAgeSeconds: 604800 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:jpg|jpeg|gif|png|svg|ico|webp)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-image-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\/_next\\/image\\?url=.+$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"next-image\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 64, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:mp3|wav|ogg)$/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"static-audio-assets\", plugins: [new workbox_range_requests_RangeRequestsPlugin(), new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:mp4)$/i, new workbox_strategies_CacheFirst({ \"cacheName\":\"static-video-assets\", plugins: [new workbox_range_requests_RangeRequestsPlugin(), new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:js)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-js-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:css|less)$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"static-style-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\/_next\\/data\\/.+\\/.+\\.json$/i, new workbox_strategies_StaleWhileRevalidate({ \"cacheName\":\"next-data\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(/\\.(?:json|xml|csv)$/i, new workbox_strategies_NetworkFirst({ \"cacheName\":\"static-data-assets\", plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({ url }) => {\n const isSameOrigin = self.origin === url.origin\n if (!isSameOrigin) return false\n const pathname = url.pathname\n // Exclude /api/auth/callback/* to fix OAuth workflow in Safari without impact other environment\n // Above route is default for next-auth, you may need to change it if your OAuth workflow has a different callback route\n // Issue: https://github.com/shadowwalker/next-pwa/issues/131#issuecomment-821894809\n if (pathname.startsWith('/api/auth/')) return false\n if (pathname.startsWith('/api/')) return true\n return false\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"apis\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 16, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({ url }) => {\n const isSameOrigin = self.origin === url.origin\n if (!isSameOrigin) return false\n const pathname = url.pathname\n if (pathname.startsWith('/api/')) return false\n return true\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"others\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 86400 })] }), 'GET');\nworkbox_routing_registerRoute(({ url }) => {\n const isSameOrigin = self.origin === url.origin\n return !isSameOrigin\n }, new workbox_strategies_NetworkFirst({ \"cacheName\":\"cross-origin\",\"networkTimeoutSeconds\":10, plugins: [new workbox_expiration_ExpirationPlugin({ maxEntries: 32, maxAgeSeconds: 3600 })] }), 'GET');\n\n\n\n\n"],"names":["importScripts","self","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","ignoreURLParametersMatching","workbox_precaching_cleanupOutdatedCaches","workbox_routing_registerRoute","workbox_strategies_NetworkFirst","cacheName","plugins","cacheWillUpdate","async","request","response","event","state","type","Response","body","status","statusText","headers","workbox_strategies_CacheFirst","workbox_expiration_ExpirationPlugin","maxEntries","maxAgeSeconds","workbox_strategies_StaleWhileRevalidate","workbox_range_requests_RangeRequestsPlugin","origin","pathname","startsWith","networkTimeoutSeconds"],"mappings":"0nBAqBAA,gBAUAC,KAAKC,cAELC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,+CACPC,SAAY,oBAEd,CACED,IAAO,mDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,oDACPC,SAAY,oBAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oBAEd,CACED,IAAO,yDACPC,SAAY,oCAEd,CACED,IAAO,gDACPC,SAAY,oBAEd,CACED,IAAO,oDACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oBAEd,CACED,IAAO,yDACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oBAEd,CACED,IAAO,yDACPC,SAAY,oCAEd,CACED,IAAO,wDACPC,SAAY,oBAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,yDACPC,SAAY,oBAEd,CACED,IAAO,6DACPC,SAAY,oCAEd,CACED,IAAO,6DACPC,SAAY,oBAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,wEACPC,SAAY,oBAEd,CACED,IAAO,4EACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oBAEd,CACED,IAAO,yDACPC,SAAY,oCAEd,CACED,IAAO,6DACPC,SAAY,oBAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,oEACPC,SAAY,oBAEd,CACED,IAAO,wEACPC,SAAY,oCAEd,CACED,IAAO,uDACPC,SAAY,oBAEd,CACED,IAAO,2DACPC,SAAY,oCAEd,CACED,IAAO,6DACPC,SAAY,oBAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,gEACPC,SAAY,oBAEd,CACED,IAAO,oEACPC,SAAY,oCAEd,CACED,IAAO,gEACPC,SAAY,oBAEd,CACED,IAAO,oEACPC,SAAY,oCAEd,CACED,IAAO,wEACPC,SAAY,oBAEd,CACED,IAAO,4EACPC,SAAY,oCAEd,CACED,IAAO,2DACPC,SAAY,oBAEd,CACED,IAAO,+DACPC,SAAY,oCAEd,CACED,IAAO,uEACPC,SAAY,oBAEd,CACED,IAAO,2EACPC,SAAY,oCAEd,CACED,IAAO,4EACPC,SAAY,oBAEd,CACED,IAAO,gFACPC,SAAY,oCAEd,CACED,IAAO,8EACPC,SAAY,oBAEd,CACED,IAAO,kFACPC,SAAY,oCAEd,CACED,IAAO,2EACPC,SAAY,oBAEd,CACED,IAAO,+EACPC,SAAY,oCAEd,CACED,IAAO,0DACPC,SAAY,oBAEd,CACED,IAAO,8DACPC,SAAY,oCAEd,CACED,IAAO,6DACPC,SAAY,oBAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,0DACPC,SAAY,oBAEd,CACED,IAAO,8DACPC,SAAY,oCAEd,CACED,IAAO,yEACPC,SAAY,oBAEd,CACED,IAAO,6EACPC,SAAY,oCAEd,CACED,IAAO,mEACPC,SAAY,oBAEd,CACED,IAAO,uEACPC,SAAY,oCAEd,CACED,IAAO,2DACPC,SAAY,oBAEd,CACED,IAAO,+DACPC,SAAY,oCAEd,CACED,IAAO,4EACPC,SAAY,oBAEd,CACED,IAAO,gFACPC,SAAY,oCAEd,CACED,IAAO,kEACPC,SAAY,oBAEd,CACED,IAAO,sEACPC,SAAY,oCAEd,CACED,IAAO,+DACPC,SAAY,oBAEd,CACED,IAAO,mEACPC,SAAY,oCAEd,CACED,IAAO,4EACPC,SAAY,oBAEd,CACED,IAAO,gFACPC,SAAY,oCAEd,CACED,IAAO,yEACPC,SAAY,oBAEd,CACED,IAAO,6EACPC,SAAY,oCAEd,CACED,IAAO,qDACPC,SAAY,oCAEd,CACED,IAAO,mDACPC,SAAY,oBAEd,CACED,IAAO,uDACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oBAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oBAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oBAEd,CACED,IAAO,wDACPC,SAAY,oCAEd,CACED,IAAO,sDACPC,SAAY,oCAEd,CACED,IAAO,iDACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,qBACPC,SAAY,oCAEd,CACED,IAAO,eACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCA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"} \ No newline at end of file diff --git a/apps/deploy-web/public/workbox-19663cdd.js b/apps/deploy-web/public/workbox-19663cdd.js deleted file mode 100644 index b3da74fa0..000000000 --- a/apps/deploy-web/public/workbox-19663cdd.js +++ /dev/null @@ -1,2 +0,0 @@ -define(["exports"],(function(t){"use strict";try{self["workbox:core:6.5.4"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:6.5.4"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class r{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class i extends r{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class a{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let a=i&&i.handler;const o=t.method;if(!a&&this.i.has(o)&&(a=this.i.get(o)),!a)return;let c;try{c=a.handle({url:s,request:t,event:e,params:r})}catch(t){c=Promise.reject(t)}const h=i&&i.catchHandler;return c instanceof Promise&&(this.o||h)&&(c=c.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:r})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),c}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const r=this.t.get(s.method)||[];for(const i of r){let r;const a=i.match({url:t,sameOrigin:e,request:s,event:n});if(a)return r=a,(Array.isArray(r)&&0===r.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(r=void 0),{route:i,params:r}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let o;const c=()=>(o||(o=new a,o.addFetchListener(),o.addCacheListener()),o);function h(t,e,n){let a;if("string"==typeof t){const s=new URL(t,location.href);a=new r((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)a=new i(t,e,n);else if("function"==typeof t)a=new r(t,e,n);else{if(!(t instanceof r))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=t}return c().registerRoute(a),a}try{self["workbox:strategies:6.5.4"]&&_()}catch(t){}const u={cacheWillUpdate:async({response:t})=>200===t.status||0===t.status?t:null},l={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},f=t=>[l.prefix,t,l.suffix].filter((t=>t&&t.length>0)).join("-"),w=t=>t||f(l.precache),d=t=>t||f(l.runtime);function p(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class y{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const g=new Set;function m(t){return"string"==typeof t?new Request(t):t}class R{constructor(t,e){this.h={},Object.assign(this,e),this.event=e.event,this.u=t,this.l=new y,this.p=[],this.g=[...t.plugins],this.m=new Map;for(const t of this.g)this.m.set(t,{});this.event.waitUntil(this.l.promise)}async fetch(t){const{event:e}=this;let n=m(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const r=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const i=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.u.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:i,response:t});return t}catch(t){throw r&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:r.clone(),request:i.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=m(t);let s;const{cacheName:n,matchOptions:r}=this.u,i=await this.getCacheKey(e,"read"),a=Object.assign(Object.assign({},r),{cacheName:n});s=await caches.match(i,a);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:r,cachedResponse:s,request:i,event:this.event})||void 0;return s}async cachePut(t,e){const n=m(t);var r;await(r=0,new Promise((t=>setTimeout(t,r))));const i=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(a=i.url,new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var a;const o=await this.R(e);if(!o)return!1;const{cacheName:c,matchOptions:h}=this.u,u=await self.caches.open(c),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const r=p(e.url,s);if(e.url===r)return t.match(e,n);const i=Object.assign(Object.assign({},n),{ignoreSearch:!0}),a=await t.keys(e,i);for(const e of a)if(r===p(e.url,s))return t.match(e,n)}(u,i.clone(),["__WB_REVISION__"],h):null;try{await u.put(i,l?o.clone():o)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of g)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:c,oldResponse:f,newResponse:o.clone(),request:i,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.h[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=m(await t({mode:e,request:n,event:this.event,params:this.params}));this.h[s]=n}return this.h[s]}hasCallback(t){for(const e of this.u.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.u.plugins)if("function"==typeof e[t]){const s=this.m.get(e),n=n=>{const r=Object.assign(Object.assign({},n),{state:s});return e[t](r)};yield n}}waitUntil(t){return this.p.push(t),t}async doneWaiting(){let t;for(;t=this.p.shift();)await t}destroy(){this.l.resolve(null)}async R(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class v{constructor(t={}){this.cacheName=d(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,r=new R(this,{event:e,request:s,params:n}),i=this.v(r,s,e);return[i,this.q(i,r,s,e)]}async v(t,e,n){let r;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(r=await this.D(e,t),!r||"error"===r.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const i of t.iterateCallbacks("handlerDidError"))if(r=await i({error:s,event:n,request:e}),r)break;if(!r)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))r=await s({event:n,request:e,response:r});return r}async q(t,e,s,n){let r,i;try{r=await t}catch(i){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:r}),await e.doneWaiting()}catch(t){t instanceof Error&&(i=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:r,error:i}),e.destroy(),i)throw i}}function b(t){t.then((()=>{}))}function q(){return q=Object.assign?Object.assign.bind():function(t){for(var e=1;ee.some((e=>t instanceof e));let U,x;const L=new WeakMap,I=new WeakMap,C=new WeakMap,E=new WeakMap,N=new WeakMap;let O={get(t,e,s){if(t instanceof IDBTransaction){if("done"===e)return I.get(t);if("objectStoreNames"===e)return t.objectStoreNames||C.get(t);if("store"===e)return s.objectStoreNames[1]?void 0:s.objectStore(s.objectStoreNames[0])}return B(t[e])},set:(t,e,s)=>(t[e]=s,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function T(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(x||(x=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(P(this),e),B(L.get(this))}:function(...e){return B(t.apply(P(this),e))}:function(e,...s){const n=t.call(P(this),e,...s);return C.set(n,e.sort?e.sort():[e]),B(n)}}function k(t){return"function"==typeof t?T(t):(t instanceof IDBTransaction&&function(t){if(I.has(t))return;const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("complete",r),t.removeEventListener("error",i),t.removeEventListener("abort",i)},r=()=>{e(),n()},i=()=>{s(t.error||new DOMException("AbortError","AbortError")),n()};t.addEventListener("complete",r),t.addEventListener("error",i),t.addEventListener("abort",i)}));I.set(t,e)}(t),D(t,U||(U=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,O):t)}function B(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("success",r),t.removeEventListener("error",i)},r=()=>{e(B(t.result)),n()},i=()=>{s(t.error),n()};t.addEventListener("success",r),t.addEventListener("error",i)}));return e.then((e=>{e instanceof IDBCursor&&L.set(e,t)})).catch((()=>{})),N.set(e,t),e}(t);if(E.has(t))return E.get(t);const e=k(t);return e!==t&&(E.set(t,e),N.set(e,t)),e}const P=t=>N.get(t);const M=["get","getKey","getAll","getAllKeys","count"],W=["put","add","delete","clear"],j=new Map;function S(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(j.get(e))return j.get(e);const s=e.replace(/FromIndex$/,""),n=e!==s,r=W.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!r&&!M.includes(s))return;const i=async function(t,...e){const i=this.transaction(t,r?"readwrite":"readonly");let a=i.store;return n&&(a=a.index(e.shift())),(await Promise.all([a[s](...e),r&&i.done]))[0]};return j.set(e,i),i}O=(t=>q({},t,{get:(e,s,n)=>S(e,s)||t.get(e,s,n),has:(e,s)=>!!S(e,s)||t.has(e,s)}))(O);try{self["workbox:expiration:6.5.4"]&&_()}catch(t){}const K="cache-entries",A=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class F{constructor(t){this.U=null,this._=t}L(t){const e=t.createObjectStore(K,{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1})}I(t){this.L(t),this._&&function(t,{blocked:e}={}){const s=indexedDB.deleteDatabase(t);e&&s.addEventListener("blocked",(t=>e(t.oldVersion,t))),B(s).then((()=>{}))}(this._)}async setTimestamp(t,e){const s={url:t=A(t),timestamp:e,cacheName:this._,id:this.C(t)},n=(await this.getDb()).transaction(K,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(t){const e=await this.getDb(),s=await e.get(K,this.C(t));return null==s?void 0:s.timestamp}async expireEntries(t,e){const s=await this.getDb();let n=await s.transaction(K).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;n;){const s=n.value;s.cacheName===this._&&(t&&s.timestamp=e?r.push(n.value):i++),n=await n.continue()}const a=[];for(const t of r)await s.delete(K,t.id),a.push(t.url);return a}C(t){return this._+"|"+A(t)}async getDb(){return this.U||(this.U=await function(t,e,{blocked:s,upgrade:n,blocking:r,terminated:i}={}){const a=indexedDB.open(t,e),o=B(a);return n&&a.addEventListener("upgradeneeded",(t=>{n(B(a.result),t.oldVersion,t.newVersion,B(a.transaction),t)})),s&&a.addEventListener("blocked",(t=>s(t.oldVersion,t.newVersion,t))),o.then((t=>{i&&t.addEventListener("close",(()=>i())),r&&t.addEventListener("versionchange",(t=>r(t.oldVersion,t.newVersion,t)))})).catch((()=>{})),o}("workbox-expiration",1,{upgrade:this.I.bind(this)})),this.U}}class H{constructor(t,e={}){this.N=!1,this.O=!1,this.T=e.maxEntries,this.k=e.maxAgeSeconds,this.B=e.matchOptions,this._=t,this.P=new F(t)}async expireEntries(){if(this.N)return void(this.O=!0);this.N=!0;const t=this.k?Date.now()-1e3*this.k:0,e=await this.P.expireEntries(t,this.T),s=await self.caches.open(this._);for(const t of e)await s.delete(t,this.B);this.N=!1,this.O&&(this.O=!1,b(this.expireEntries()))}async updateTimestamp(t){await this.P.setTimestamp(t,Date.now())}async isURLExpired(t){if(this.k){const e=await this.P.getTimestamp(t),s=Date.now()-1e3*this.k;return void 0===e||er||e&&e<0)throw new s("range-not-satisfiable",{size:r,end:n,start:e});let i,a;return void 0!==e&&void 0!==n?(i=e,a=n+1):void 0!==e&&void 0===n?(i=e,a=r):void 0!==n&&void 0===e&&(i=r-n,a=r),{start:i,end:a}}(i,r.start,r.end),o=i.slice(a.start,a.end),c=o.size,h=new Response(o,{status:206,statusText:"Partial Content",headers:e.headers});return h.headers.set("Content-Length",String(c)),h.headers.set("Content-Range",`bytes ${a.start}-${a.end-1}/${i.size}`),h}catch(t){return new Response("",{status:416,statusText:"Range Not Satisfiable"})}}function z(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:6.5.4"]&&_()}catch(t){}function G(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const r=new URL(n,location.href),i=new URL(n,location.href);return r.searchParams.set("__WB_REVISION__",e),{cacheKey:r.href,url:i.href}}class V{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class J{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.M.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.M=t}}let Q,X;async function Y(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const r=t.clone(),i={headers:new Headers(r.headers),status:r.status,statusText:r.statusText},a=e?e(i):i,o=function(){if(void 0===Q){const t=new Response("");if("body"in t)try{new Response(t.body),Q=!0}catch(t){Q=!1}Q=!1}return Q}()?r.body:await r.blob();return new Response(o,a)}class Z extends v{constructor(t={}){t.cacheName=w(t.cacheName),super(t),this.W=!1!==t.fallbackToNetwork,this.plugins.push(Z.copyRedirectedCacheableResponsesPlugin)}async D(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.j(t,e):await this.S(t,e))}async S(t,e){let n;const r=e.params||{};if(!this.W)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=r.integrity,i=t.integrity,a=!i||i===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?i||s:void 0})),s&&a&&"no-cors"!==t.mode&&(this.K(),await e.cachePut(t,n.clone()))}return n}async j(t,e){this.K();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}K(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==Z.copyRedirectedCacheableResponsesPlugin&&(n===Z.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(Z.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}Z.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},Z.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await Y(t):t};class tt{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.A=new Map,this.F=new Map,this.H=new Map,this.u=new Z({cacheName:w(t),plugins:[...e,new J({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.u}precache(t){this.addToCacheList(t),this.$||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.$=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:r}=G(n),i="string"!=typeof n&&n.revision?"reload":"default";if(this.A.has(r)&&this.A.get(r)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.A.get(r),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.H.has(t)&&this.H.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:r});this.H.set(t,n.integrity)}if(this.A.set(r,t),this.F.set(r,i),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return z(t,(async()=>{const e=new V;this.strategy.plugins.push(e);for(const[e,s]of this.A){const n=this.H.get(s),r=this.F.get(e),i=new Request(e,{integrity:n,cache:r,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:i,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return z(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.A.values()),n=[];for(const r of e)s.has(r.url)||(await t.delete(r),n.push(r.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.A}getCachedURLs(){return[...this.A.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.A.get(e.href)}getIntegrityForCacheKey(t){return this.H.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}const et=()=>(X||(X=new tt),X);class st extends r{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const r of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:r}={}){const i=new URL(t,location.href);i.hash="",yield i.href;const a=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(i,e);if(yield a.href,s&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=s,yield t.href}if(n){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(r){const t=r({url:i});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(r);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.CacheFirst=class extends v{async D(t,e){let n,r=await e.cacheMatch(t);if(!r)try{r=await e.fetchAndCachePut(t)}catch(t){t instanceof Error&&(n=t)}if(!r)throw new s("no-response",{url:t.url,error:n});return r}},t.ExpirationPlugin=class{constructor(t={}){this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:s,cachedResponse:n})=>{if(!n)return null;const r=this.G(n),i=this.V(s);b(i.expireEntries());const a=i.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(t){}return r?n:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const s=this.V(t);await s.updateTimestamp(e.url),await s.expireEntries()},this.J=t,this.k=t.maxAgeSeconds,this.X=new Map,t.purgeOnQuotaError&&function(t){g.add(t)}((()=>this.deleteCacheAndMetadata()))}V(t){if(t===d())throw new s("expire-custom-caches-only");let e=this.X.get(t);return e||(e=new H(t,this.J),this.X.set(t,e)),e}G(t){if(!this.k)return!0;const e=this.Y(t);if(null===e)return!0;return e>=Date.now()-1e3*this.k}Y(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),s=new Date(e).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[t,e]of this.X)await self.caches.delete(t),await e.delete();this.X=new Map}},t.NetworkFirst=class extends v{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(u),this.Z=t.networkTimeoutSeconds||0}async D(t,e){const n=[],r=[];let i;if(this.Z){const{id:s,promise:a}=this.tt({request:t,logs:n,handler:e});i=s,r.push(a)}const a=this.et({timeoutId:i,request:t,logs:n,handler:e});r.push(a);const o=await e.waitUntil((async()=>await e.waitUntil(Promise.race(r))||await a)());if(!o)throw new s("no-response",{url:t.url});return o}tt({request:t,logs:e,handler:s}){let n;return{promise:new Promise((e=>{n=setTimeout((async()=>{e(await s.cacheMatch(t))}),1e3*this.Z)})),id:n}}async et({timeoutId:t,request:e,logs:s,handler:n}){let r,i;try{i=await n.fetchAndCachePut(e)}catch(t){t instanceof Error&&(r=t)}return t&&clearTimeout(t),!r&&i||(i=await n.cacheMatch(e)),i}},t.RangeRequestsPlugin=class{constructor(){this.cachedResponseWillBeUsed=async({request:t,cachedResponse:e})=>e&&t.headers.has("range")?await $(t,e):e}},t.StaleWhileRevalidate=class extends v{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(u)}async D(t,e){const n=e.fetchAndCachePut(t).catch((()=>{}));e.waitUntil(n);let r,i=await e.cacheMatch(t);if(i);else try{i=await n}catch(t){t instanceof Error&&(r=t)}if(!i)throw new s("no-response",{url:t.url,error:r});return i}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=w();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.clientsClaim=function(){self.addEventListener("activate",(()=>self.clients.claim()))},t.precacheAndRoute=function(t,e){!function(t){et().precache(t)}(t),function(t){const e=et();h(new st(e,t))}(e)},t.registerRoute=h})); -//# sourceMappingURL=workbox-19663cdd.js.map diff --git a/apps/deploy-web/public/workbox-19663cdd.js.map b/apps/deploy-web/public/workbox-19663cdd.js.map deleted file mode 100644 index 03aaba359..000000000 --- a/apps/deploy-web/public/workbox-19663cdd.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"workbox-19663cdd.js","sources":["node_modules/workbox-core/_version.js","node_modules/workbox-core/_private/logger.js","node_modules/workbox-core/models/messages/messageGenerator.js","node_modules/workbox-core/_private/WorkboxError.js","node_modules/workbox-routing/_version.js","node_modules/workbox-routing/utils/constants.js","node_modules/workbox-routing/utils/normalizeHandler.js","node_modules/workbox-routing/Route.js","node_modules/workbox-routing/RegExpRoute.js","node_modules/workbox-routing/Router.js","node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js","node_modules/workbox-routing/registerRoute.js","node_modules/workbox-strategies/_version.js","node_modules/workbox-strategies/plugins/cacheOkAndOpaquePlugin.js","node_modules/workbox-core/_private/cacheNames.js","node_modules/workbox-core/_private/cacheMatchIgnoreParams.js","node_modules/workbox-core/_private/Deferred.js","node_modules/workbox-core/models/quotaErrorCallbacks.js","node_modules/workbox-strategies/StrategyHandler.js","node_modules/workbox-core/_private/timeout.js","node_modules/workbox-core/_private/getFriendlyURL.js","node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js","node_modules/workbox-strategies/Strategy.js","node_modules/workbox-core/_private/dontWaitFor.js","node_modules/idb/build/wrap-idb-value.js","node_modules/idb/build/index.js","node_modules/workbox-expiration/_version.js","node_modules/workbox-expiration/models/CacheTimestampsModel.js","node_modules/workbox-expiration/CacheExpiration.js","node_modules/workbox-range-requests/_version.js","node_modules/workbox-range-requests/createPartialResponse.js","node_modules/workbox-range-requests/utils/parseRangeHeader.js","node_modules/workbox-range-requests/utils/calculateEffectiveBoundaries.js","node_modules/workbox-core/_private/waitUntil.js","node_modules/workbox-precaching/_version.js","node_modules/workbox-precaching/utils/createCacheKey.js","node_modules/workbox-precaching/utils/PrecacheInstallReportPlugin.js","node_modules/workbox-precaching/utils/PrecacheCacheKeyPlugin.js","node_modules/workbox-core/_private/canConstructResponseFromBodyStream.js","node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js","node_modules/workbox-core/copyResponse.js","node_modules/workbox-precaching/PrecacheStrategy.js","node_modules/workbox-precaching/PrecacheController.js","node_modules/workbox-precaching/PrecacheRoute.js","node_modules/workbox-precaching/utils/generateURLVariations.js","node_modules/workbox-precaching/utils/removeIgnoredSearchParams.js","node_modules/workbox-strategies/CacheFirst.js","node_modules/workbox-expiration/ExpirationPlugin.js","node_modules/workbox-core/registerQuotaErrorCallback.js","node_modules/workbox-strategies/NetworkFirst.js","node_modules/workbox-range-requests/RangeRequestsPlugin.js","node_modules/workbox-strategies/StaleWhileRevalidate.js","node_modules/workbox-precaching/cleanupOutdatedCaches.js","node_modules/workbox-precaching/utils/deleteOutdatedCaches.js","node_modules/workbox-core/clientsClaim.js","node_modules/workbox-precaching/precacheAndRoute.js","node_modules/workbox-precaching/precache.js","node_modules/workbox-precaching/addRoute.js"],"sourcesContent":["\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:core:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst logger = (process.env.NODE_ENV === 'production'\n ? null\n : (() => {\n // Don't overwrite this value if it's already set.\n // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923\n if (!('__WB_DISABLE_DEV_LOGS' in globalThis)) {\n self.__WB_DISABLE_DEV_LOGS = false;\n }\n let inGroup = false;\n const methodToColorMap = {\n debug: `#7f8c8d`,\n log: `#2ecc71`,\n warn: `#f39c12`,\n error: `#c0392b`,\n groupCollapsed: `#3498db`,\n groupEnd: null, // No colored prefix on groupEnd\n };\n const print = function (method, args) {\n if (self.__WB_DISABLE_DEV_LOGS) {\n return;\n }\n if (method === 'groupCollapsed') {\n // Safari doesn't print all console.groupCollapsed() arguments:\n // https://bugs.webkit.org/show_bug.cgi?id=182754\n if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n console[method](...args);\n return;\n }\n }\n const styles = [\n `background: ${methodToColorMap[method]}`,\n `border-radius: 0.5em`,\n `color: white`,\n `font-weight: bold`,\n `padding: 2px 0.5em`,\n ];\n // When in a group, the workbox prefix is not displayed.\n const logPrefix = inGroup ? [] : ['%cworkbox', styles.join(';')];\n console[method](...logPrefix, ...args);\n if (method === 'groupCollapsed') {\n inGroup = true;\n }\n if (method === 'groupEnd') {\n inGroup = false;\n }\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n const api = {};\n const loggerMethods = Object.keys(methodToColorMap);\n for (const key of loggerMethods) {\n const method = key;\n api[method] = (...args) => {\n print(method, args);\n };\n }\n return api;\n })());\nexport { logger };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messages } from './messages.js';\nimport '../../_version.js';\nconst fallback = (code, ...args) => {\n let msg = code;\n if (args.length > 0) {\n msg += ` :: ${JSON.stringify(args)}`;\n }\n return msg;\n};\nconst generatorFunction = (code, details = {}) => {\n const message = messages[code];\n if (!message) {\n throw new Error(`Unable to find message for code '${code}'.`);\n }\n return message(details);\n};\nexport const messageGenerator = process.env.NODE_ENV === 'production' ? fallback : generatorFunction;\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messageGenerator } from '../models/messages/messageGenerator.js';\nimport '../_version.js';\n/**\n * Workbox errors should be thrown with this class.\n * This allows use to ensure the type easily in tests,\n * helps developers identify errors from workbox\n * easily and allows use to optimise error\n * messages correctly.\n *\n * @private\n */\nclass WorkboxError extends Error {\n /**\n *\n * @param {string} errorCode The error code that\n * identifies this particular error.\n * @param {Object=} details Any relevant arguments\n * that will help developers identify issues should\n * be added as a key on the context object.\n */\n constructor(errorCode, details) {\n const message = messageGenerator(errorCode, details);\n super(message);\n this.name = errorCode;\n this.details = details;\n }\n}\nexport { WorkboxError };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:routing:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The default HTTP method, 'GET', used when there's no specific method\n * configured for a route.\n *\n * @type {string}\n *\n * @private\n */\nexport const defaultMethod = 'GET';\n/**\n * The list of valid HTTP methods associated with requests that could be routed.\n *\n * @type {Array}\n *\n * @private\n */\nexport const validMethods = [\n 'DELETE',\n 'GET',\n 'HEAD',\n 'PATCH',\n 'POST',\n 'PUT',\n];\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {function()|Object} handler Either a function, or an object with a\n * 'handle' method.\n * @return {Object} An object with a handle method.\n *\n * @private\n */\nexport const normalizeHandler = (handler) => {\n if (handler && typeof handler === 'object') {\n if (process.env.NODE_ENV !== 'production') {\n assert.hasMethod(handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return handler;\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(handler, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return { handle: handler };\n }\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { defaultMethod, validMethods } from './utils/constants.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport './_version.js';\n/**\n * A `Route` consists of a pair of callback functions, \"match\" and \"handler\".\n * The \"match\" callback determine if a route should be used to \"handle\" a\n * request by returning a non-falsy value if it can. The \"handler\" callback\n * is called when there is a match and should return a Promise that resolves\n * to a `Response`.\n *\n * @memberof workbox-routing\n */\nclass Route {\n /**\n * Constructor for Route class.\n *\n * @param {workbox-routing~matchCallback} match\n * A callback function that determines whether the route matches a given\n * `fetch` event by returning a non-falsy value.\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(match, handler, method = defaultMethod) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(match, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'match',\n });\n if (method) {\n assert.isOneOf(method, validMethods, { paramName: 'method' });\n }\n }\n // These values are referenced directly by Router so cannot be\n // altered by minificaton.\n this.handler = normalizeHandler(handler);\n this.match = match;\n this.method = method;\n }\n /**\n *\n * @param {workbox-routing-handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response\n */\n setCatchHandler(handler) {\n this.catchHandler = normalizeHandler(handler);\n }\n}\nexport { Route };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { Route } from './Route.js';\nimport './_version.js';\n/**\n * RegExpRoute makes it easy to create a regular expression based\n * {@link workbox-routing.Route}.\n *\n * For same-origin requests the RegExp only needs to match part of the URL. For\n * requests against third-party servers, you must define a RegExp that matches\n * the start of the URL.\n *\n * @memberof workbox-routing\n * @extends workbox-routing.Route\n */\nclass RegExpRoute extends Route {\n /**\n * If the regular expression contains\n * [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},\n * the captured values will be passed to the\n * {@link workbox-routing~handlerCallback} `params`\n * argument.\n *\n * @param {RegExp} regExp The regular expression to match against URLs.\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(regExp, handler, method) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(regExp, RegExp, {\n moduleName: 'workbox-routing',\n className: 'RegExpRoute',\n funcName: 'constructor',\n paramName: 'pattern',\n });\n }\n const match = ({ url }) => {\n const result = regExp.exec(url.href);\n // Return immediately if there's no match.\n if (!result) {\n return;\n }\n // Require that the match start at the first character in the URL string\n // if it's a cross-origin request.\n // See https://github.com/GoogleChrome/workbox/issues/281 for the context\n // behind this behavior.\n if (url.origin !== location.origin && result.index !== 0) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`The regular expression '${regExp.toString()}' only partially matched ` +\n `against the cross-origin URL '${url.toString()}'. RegExpRoute's will only ` +\n `handle cross-origin requests if they match the entire URL.`);\n }\n return;\n }\n // If the route matches, but there aren't any capture groups defined, then\n // this will return [], which is truthy and therefore sufficient to\n // indicate a match.\n // If there are capture groups, then it will return their values.\n return result.slice(1);\n };\n super(match, handler, method);\n }\n}\nexport { RegExpRoute };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { defaultMethod } from './utils/constants.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\n/**\n * The Router can be used to process a `FetchEvent` using one or more\n * {@link workbox-routing.Route}, responding with a `Response` if\n * a matching route exists.\n *\n * If no route matches a given a request, the Router will use a \"default\"\n * handler if one is defined.\n *\n * Should the matching Route throw an error, the Router will use a \"catch\"\n * handler if one is defined to gracefully deal with issues and respond with a\n * Request.\n *\n * If a request matches multiple routes, the **earliest** registered route will\n * be used to respond to the request.\n *\n * @memberof workbox-routing\n */\nclass Router {\n /**\n * Initializes a new Router.\n */\n constructor() {\n this._routes = new Map();\n this._defaultHandlerMap = new Map();\n }\n /**\n * @return {Map>} routes A `Map` of HTTP\n * method name ('GET', etc.) to an array of all the corresponding `Route`\n * instances that are registered.\n */\n get routes() {\n return this._routes;\n }\n /**\n * Adds a fetch event listener to respond to events when a route matches\n * the event's request.\n */\n addFetchListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('fetch', ((event) => {\n const { request } = event;\n const responsePromise = this.handleRequest({ request, event });\n if (responsePromise) {\n event.respondWith(responsePromise);\n }\n }));\n }\n /**\n * Adds a message event listener for URLs to cache from the window.\n * This is useful to cache resources loaded on the page prior to when the\n * service worker started controlling it.\n *\n * The format of the message data sent from the window should be as follows.\n * Where the `urlsToCache` array may consist of URL strings or an array of\n * URL string + `requestInit` object (the same as you'd pass to `fetch()`).\n *\n * ```\n * {\n * type: 'CACHE_URLS',\n * payload: {\n * urlsToCache: [\n * './script1.js',\n * './script2.js',\n * ['./script3.js', {mode: 'no-cors'}],\n * ],\n * },\n * }\n * ```\n */\n addCacheListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('message', ((event) => {\n // event.data is type 'any'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (event.data && event.data.type === 'CACHE_URLS') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const { payload } = event.data;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Caching URLs from the window`, payload.urlsToCache);\n }\n const requestPromises = Promise.all(payload.urlsToCache.map((entry) => {\n if (typeof entry === 'string') {\n entry = [entry];\n }\n const request = new Request(...entry);\n return this.handleRequest({ request, event });\n // TODO(philipwalton): TypeScript errors without this typecast for\n // some reason (probably a bug). The real type here should work but\n // doesn't: `Array | undefined>`.\n })); // TypeScript\n event.waitUntil(requestPromises);\n // If a MessageChannel was used, reply to the message on success.\n if (event.ports && event.ports[0]) {\n void requestPromises.then(() => event.ports[0].postMessage(true));\n }\n }\n }));\n }\n /**\n * Apply the routing rules to a FetchEvent object to get a Response from an\n * appropriate Route's handler.\n *\n * @param {Object} options\n * @param {Request} options.request The request to handle.\n * @param {ExtendableEvent} options.event The event that triggered the\n * request.\n * @return {Promise|undefined} A promise is returned if a\n * registered route can handle the request. If there is no matching\n * route and there's no `defaultHandler`, `undefined` is returned.\n */\n handleRequest({ request, event, }) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'handleRequest',\n paramName: 'options.request',\n });\n }\n const url = new URL(request.url, location.href);\n if (!url.protocol.startsWith('http')) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Workbox Router only supports URLs that start with 'http'.`);\n }\n return;\n }\n const sameOrigin = url.origin === location.origin;\n const { params, route } = this.findMatchingRoute({\n event,\n request,\n sameOrigin,\n url,\n });\n let handler = route && route.handler;\n const debugMessages = [];\n if (process.env.NODE_ENV !== 'production') {\n if (handler) {\n debugMessages.push([`Found a route to handle this request:`, route]);\n if (params) {\n debugMessages.push([\n `Passing the following params to the route's handler:`,\n params,\n ]);\n }\n }\n }\n // If we don't have a handler because there was no matching route, then\n // fall back to defaultHandler if that's defined.\n const method = request.method;\n if (!handler && this._defaultHandlerMap.has(method)) {\n if (process.env.NODE_ENV !== 'production') {\n debugMessages.push(`Failed to find a matching route. Falling ` +\n `back to the default handler for ${method}.`);\n }\n handler = this._defaultHandlerMap.get(method);\n }\n if (!handler) {\n if (process.env.NODE_ENV !== 'production') {\n // No handler so Workbox will do nothing. If logs is set of debug\n // i.e. verbose, we should print out this information.\n logger.debug(`No route found for: ${getFriendlyURL(url)}`);\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // We have a handler, meaning Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`);\n debugMessages.forEach((msg) => {\n if (Array.isArray(msg)) {\n logger.log(...msg);\n }\n else {\n logger.log(msg);\n }\n });\n logger.groupEnd();\n }\n // Wrap in try and catch in case the handle method throws a synchronous\n // error. It should still callback to the catch handler.\n let responsePromise;\n try {\n responsePromise = handler.handle({ url, request, event, params });\n }\n catch (err) {\n responsePromise = Promise.reject(err);\n }\n // Get route's catch handler, if it exists\n const catchHandler = route && route.catchHandler;\n if (responsePromise instanceof Promise &&\n (this._catchHandler || catchHandler)) {\n responsePromise = responsePromise.catch(async (err) => {\n // If there's a route catch handler, process that first\n if (catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n try {\n return await catchHandler.handle({ url, request, event, params });\n }\n catch (catchErr) {\n if (catchErr instanceof Error) {\n err = catchErr;\n }\n }\n }\n if (this._catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to global Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n return this._catchHandler.handle({ url, request, event });\n }\n throw err;\n });\n }\n return responsePromise;\n }\n /**\n * Checks a request and URL (and optionally an event) against the list of\n * registered routes, and if there's a match, returns the corresponding\n * route along with any params generated by the match.\n *\n * @param {Object} options\n * @param {URL} options.url\n * @param {boolean} options.sameOrigin The result of comparing `url.origin`\n * against the current origin.\n * @param {Request} options.request The request to match.\n * @param {Event} options.event The corresponding event.\n * @return {Object} An object with `route` and `params` properties.\n * They are populated if a matching route was found or `undefined`\n * otherwise.\n */\n findMatchingRoute({ url, sameOrigin, request, event, }) {\n const routes = this._routes.get(request.method) || [];\n for (const route of routes) {\n let params;\n // route.match returns type any, not possible to change right now.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const matchResult = route.match({ url, sameOrigin, request, event });\n if (matchResult) {\n if (process.env.NODE_ENV !== 'production') {\n // Warn developers that using an async matchCallback is almost always\n // not the right thing to do.\n if (matchResult instanceof Promise) {\n logger.warn(`While routing ${getFriendlyURL(url)}, an async ` +\n `matchCallback function was used. Please convert the ` +\n `following route to use a synchronous matchCallback function:`, route);\n }\n }\n // See https://github.com/GoogleChrome/workbox/issues/2079\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n params = matchResult;\n if (Array.isArray(params) && params.length === 0) {\n // Instead of passing an empty array in as params, use undefined.\n params = undefined;\n }\n else if (matchResult.constructor === Object && // eslint-disable-line\n Object.keys(matchResult).length === 0) {\n // Instead of passing an empty object in as params, use undefined.\n params = undefined;\n }\n else if (typeof matchResult === 'boolean') {\n // For the boolean value true (rather than just something truth-y),\n // don't set params.\n // See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353\n params = undefined;\n }\n // Return early if have a match.\n return { route, params };\n }\n }\n // If no match was found above, return and empty object.\n return {};\n }\n /**\n * Define a default `handler` that's called when no routes explicitly\n * match the incoming request.\n *\n * Each HTTP method ('GET', 'POST', etc.) gets its own default handler.\n *\n * Without a default handler, unmatched requests will go against the\n * network as if there were no service worker present.\n *\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to associate with this\n * default handler. Each method has its own default.\n */\n setDefaultHandler(handler, method = defaultMethod) {\n this._defaultHandlerMap.set(method, normalizeHandler(handler));\n }\n /**\n * If a Route throws an error while handling a request, this `handler`\n * will be called and given a chance to provide a response.\n *\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n */\n setCatchHandler(handler) {\n this._catchHandler = normalizeHandler(handler);\n }\n /**\n * Registers a route with the router.\n *\n * @param {workbox-routing.Route} route The route to register.\n */\n registerRoute(route) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(route, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route, 'match', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.isType(route.handler, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route.handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.handler',\n });\n assert.isType(route.method, 'string', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.method',\n });\n }\n if (!this._routes.has(route.method)) {\n this._routes.set(route.method, []);\n }\n // Give precedence to all of the earlier routes by adding this additional\n // route to the end of the array.\n this._routes.get(route.method).push(route);\n }\n /**\n * Unregisters a route with the router.\n *\n * @param {workbox-routing.Route} route The route to unregister.\n */\n unregisterRoute(route) {\n if (!this._routes.has(route.method)) {\n throw new WorkboxError('unregister-route-but-not-found-with-method', {\n method: route.method,\n });\n }\n const routeIndex = this._routes.get(route.method).indexOf(route);\n if (routeIndex > -1) {\n this._routes.get(route.method).splice(routeIndex, 1);\n }\n else {\n throw new WorkboxError('unregister-route-route-not-registered');\n }\n }\n}\nexport { Router };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { Router } from '../Router.js';\nimport '../_version.js';\nlet defaultRouter;\n/**\n * Creates a new, singleton Router instance if one does not exist. If one\n * does already exist, that instance is returned.\n *\n * @private\n * @return {Router}\n */\nexport const getOrCreateDefaultRouter = () => {\n if (!defaultRouter) {\n defaultRouter = new Router();\n // The helpers that use the default Router assume these listeners exist.\n defaultRouter.addFetchListener();\n defaultRouter.addCacheListener();\n }\n return defaultRouter;\n};\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Route } from './Route.js';\nimport { RegExpRoute } from './RegExpRoute.js';\nimport { getOrCreateDefaultRouter } from './utils/getOrCreateDefaultRouter.js';\nimport './_version.js';\n/**\n * Easily register a RegExp, string, or function with a caching\n * strategy to a singleton Router instance.\n *\n * This method will generate a Route for you if needed and\n * call {@link workbox-routing.Router#registerRoute}.\n *\n * @param {RegExp|string|workbox-routing.Route~matchCallback|workbox-routing.Route} capture\n * If the capture param is a `Route`, all other arguments will be ignored.\n * @param {workbox-routing~handlerCallback} [handler] A callback\n * function that returns a Promise resulting in a Response. This parameter\n * is required if `capture` is not a `Route` object.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n * @return {workbox-routing.Route} The generated `Route`.\n *\n * @memberof workbox-routing\n */\nfunction registerRoute(capture, handler, method) {\n let route;\n if (typeof capture === 'string') {\n const captureUrl = new URL(capture, location.href);\n if (process.env.NODE_ENV !== 'production') {\n if (!(capture.startsWith('/') || capture.startsWith('http'))) {\n throw new WorkboxError('invalid-string', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n // We want to check if Express-style wildcards are in the pathname only.\n // TODO: Remove this log message in v4.\n const valueToCheck = capture.startsWith('http')\n ? captureUrl.pathname\n : capture;\n // See https://github.com/pillarjs/path-to-regexp#parameters\n const wildcards = '[*:?+]';\n if (new RegExp(`${wildcards}`).exec(valueToCheck)) {\n logger.debug(`The '$capture' parameter contains an Express-style wildcard ` +\n `character (${wildcards}). Strings are now always interpreted as ` +\n `exact matches; use a RegExp for partial or wildcard matches.`);\n }\n }\n const matchCallback = ({ url }) => {\n if (process.env.NODE_ENV !== 'production') {\n if (url.pathname === captureUrl.pathname &&\n url.origin !== captureUrl.origin) {\n logger.debug(`${capture} only partially matches the cross-origin URL ` +\n `${url.toString()}. This route will only handle cross-origin requests ` +\n `if they match the entire URL.`);\n }\n }\n return url.href === captureUrl.href;\n };\n // If `capture` is a string then `handler` and `method` must be present.\n route = new Route(matchCallback, handler, method);\n }\n else if (capture instanceof RegExp) {\n // If `capture` is a `RegExp` then `handler` and `method` must be present.\n route = new RegExpRoute(capture, handler, method);\n }\n else if (typeof capture === 'function') {\n // If `capture` is a function then `handler` and `method` must be present.\n route = new Route(capture, handler, method);\n }\n else if (capture instanceof Route) {\n route = capture;\n }\n else {\n throw new WorkboxError('unsupported-route-type', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n const defaultRouter = getOrCreateDefaultRouter();\n defaultRouter.registerRoute(route);\n return route;\n}\nexport { registerRoute };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:strategies:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nexport const cacheOkAndOpaquePlugin = {\n /**\n * Returns a valid response (to allow caching) if the status is 200 (OK) or\n * 0 (opaque).\n *\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n *\n * @private\n */\n cacheWillUpdate: async ({ response }) => {\n if (response.status === 200 || response.status === 0) {\n return response;\n }\n return null;\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst _cacheNameDetails = {\n googleAnalytics: 'googleAnalytics',\n precache: 'precache-v2',\n prefix: 'workbox',\n runtime: 'runtime',\n suffix: typeof registration !== 'undefined' ? registration.scope : '',\n};\nconst _createCacheName = (cacheName) => {\n return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix]\n .filter((value) => value && value.length > 0)\n .join('-');\n};\nconst eachCacheNameDetail = (fn) => {\n for (const key of Object.keys(_cacheNameDetails)) {\n fn(key);\n }\n};\nexport const cacheNames = {\n updateDetails: (details) => {\n eachCacheNameDetail((key) => {\n if (typeof details[key] === 'string') {\n _cacheNameDetails[key] = details[key];\n }\n });\n },\n getGoogleAnalyticsName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics);\n },\n getPrecacheName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.precache);\n },\n getPrefix: () => {\n return _cacheNameDetails.prefix;\n },\n getRuntimeName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.runtime);\n },\n getSuffix: () => {\n return _cacheNameDetails.suffix;\n },\n};\n","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nfunction stripParams(fullURL, ignoreParams) {\n const strippedURL = new URL(fullURL);\n for (const param of ignoreParams) {\n strippedURL.searchParams.delete(param);\n }\n return strippedURL.href;\n}\n/**\n * Matches an item in the cache, ignoring specific URL params. This is similar\n * to the `ignoreSearch` option, but it allows you to ignore just specific\n * params (while continuing to match on the others).\n *\n * @private\n * @param {Cache} cache\n * @param {Request} request\n * @param {Object} matchOptions\n * @param {Array} ignoreParams\n * @return {Promise}\n */\nasync function cacheMatchIgnoreParams(cache, request, ignoreParams, matchOptions) {\n const strippedRequestURL = stripParams(request.url, ignoreParams);\n // If the request doesn't include any ignored params, match as normal.\n if (request.url === strippedRequestURL) {\n return cache.match(request, matchOptions);\n }\n // Otherwise, match by comparing keys\n const keysOptions = Object.assign(Object.assign({}, matchOptions), { ignoreSearch: true });\n const cacheKeys = await cache.keys(request, keysOptions);\n for (const cacheKey of cacheKeys) {\n const strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams);\n if (strippedRequestURL === strippedCacheKeyURL) {\n return cache.match(cacheKey, matchOptions);\n }\n }\n return;\n}\nexport { cacheMatchIgnoreParams };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The Deferred class composes Promises in a way that allows for them to be\n * resolved or rejected from outside the constructor. In most cases promises\n * should be used directly, but Deferreds can be necessary when the logic to\n * resolve a promise must be separate.\n *\n * @private\n */\nclass Deferred {\n /**\n * Creates a promise and exposes its resolve and reject functions as methods.\n */\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\nexport { Deferred };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n// Callbacks to be executed whenever there's a quota error.\n// Can't change Function type right now.\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst quotaErrorCallbacks = new Set();\nexport { quotaErrorCallbacks };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheMatchIgnoreParams } from 'workbox-core/_private/cacheMatchIgnoreParams.js';\nimport { Deferred } from 'workbox-core/_private/Deferred.js';\nimport { executeQuotaErrorCallbacks } from 'workbox-core/_private/executeQuotaErrorCallbacks.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { timeout } from 'workbox-core/_private/timeout.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\nfunction toRequest(input) {\n return typeof input === 'string' ? new Request(input) : input;\n}\n/**\n * A class created every time a Strategy instance instance calls\n * {@link workbox-strategies.Strategy~handle} or\n * {@link workbox-strategies.Strategy~handleAll} that wraps all fetch and\n * cache actions around plugin callbacks and keeps track of when the strategy\n * is \"done\" (i.e. all added `event.waitUntil()` promises have resolved).\n *\n * @memberof workbox-strategies\n */\nclass StrategyHandler {\n /**\n * Creates a new instance associated with the passed strategy and event\n * that's handling the request.\n *\n * The constructor also initializes the state that will be passed to each of\n * the plugins handling this request.\n *\n * @param {workbox-strategies.Strategy} strategy\n * @param {Object} options\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params] The return value from the\n * {@link workbox-routing~matchCallback} (if applicable).\n */\n constructor(strategy, options) {\n this._cacheKeys = {};\n /**\n * The request the strategy is performing (passed to the strategy's\n * `handle()` or `handleAll()` method).\n * @name request\n * @instance\n * @type {Request}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * The event associated with this request.\n * @name event\n * @instance\n * @type {ExtendableEvent}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * A `URL` instance of `request.url` (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `url` param will be present if the strategy was invoked\n * from a workbox `Route` object.\n * @name url\n * @instance\n * @type {URL|undefined}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * A `param` value (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `param` param will be present if the strategy was invoked\n * from a workbox `Route` object and the\n * {@link workbox-routing~matchCallback} returned\n * a truthy value (it will be that value).\n * @name params\n * @instance\n * @type {*|undefined}\n * @memberof workbox-strategies.StrategyHandler\n */\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(options.event, ExtendableEvent, {\n moduleName: 'workbox-strategies',\n className: 'StrategyHandler',\n funcName: 'constructor',\n paramName: 'options.event',\n });\n }\n Object.assign(this, options);\n this.event = options.event;\n this._strategy = strategy;\n this._handlerDeferred = new Deferred();\n this._extendLifetimePromises = [];\n // Copy the plugins list (since it's mutable on the strategy),\n // so any mutations don't affect this handler instance.\n this._plugins = [...strategy.plugins];\n this._pluginStateMap = new Map();\n for (const plugin of this._plugins) {\n this._pluginStateMap.set(plugin, {});\n }\n this.event.waitUntil(this._handlerDeferred.promise);\n }\n /**\n * Fetches a given request (and invokes any applicable plugin callback\n * methods) using the `fetchOptions` (for non-navigation requests) and\n * `plugins` defined on the `Strategy` object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - `requestWillFetch()`\n * - `fetchDidSucceed()`\n * - `fetchDidFail()`\n *\n * @param {Request|string} input The URL or request to fetch.\n * @return {Promise}\n */\n async fetch(input) {\n const { event } = this;\n let request = toRequest(input);\n if (request.mode === 'navigate' &&\n event instanceof FetchEvent &&\n event.preloadResponse) {\n const possiblePreloadResponse = (await event.preloadResponse);\n if (possiblePreloadResponse) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Using a preloaded navigation response for ` +\n `'${getFriendlyURL(request.url)}'`);\n }\n return possiblePreloadResponse;\n }\n }\n // If there is a fetchDidFail plugin, we need to save a clone of the\n // original request before it's either modified by a requestWillFetch\n // plugin or before the original request's body is consumed via fetch().\n const originalRequest = this.hasCallback('fetchDidFail')\n ? request.clone()\n : null;\n try {\n for (const cb of this.iterateCallbacks('requestWillFetch')) {\n request = await cb({ request: request.clone(), event });\n }\n }\n catch (err) {\n if (err instanceof Error) {\n throw new WorkboxError('plugin-error-request-will-fetch', {\n thrownErrorMessage: err.message,\n });\n }\n }\n // The request can be altered by plugins with `requestWillFetch` making\n // the original request (most likely from a `fetch` event) different\n // from the Request we make. Pass both to `fetchDidFail` to aid debugging.\n const pluginFilteredRequest = request.clone();\n try {\n let fetchResponse;\n // See https://github.com/GoogleChrome/workbox/issues/1796\n fetchResponse = await fetch(request, request.mode === 'navigate' ? undefined : this._strategy.fetchOptions);\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Network request for ` +\n `'${getFriendlyURL(request.url)}' returned a response with ` +\n `status '${fetchResponse.status}'.`);\n }\n for (const callback of this.iterateCallbacks('fetchDidSucceed')) {\n fetchResponse = await callback({\n event,\n request: pluginFilteredRequest,\n response: fetchResponse,\n });\n }\n return fetchResponse;\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Network request for ` +\n `'${getFriendlyURL(request.url)}' threw an error.`, error);\n }\n // `originalRequest` will only exist if a `fetchDidFail` callback\n // is being used (see above).\n if (originalRequest) {\n await this.runCallbacks('fetchDidFail', {\n error: error,\n event,\n originalRequest: originalRequest.clone(),\n request: pluginFilteredRequest.clone(),\n });\n }\n throw error;\n }\n }\n /**\n * Calls `this.fetch()` and (in the background) runs `this.cachePut()` on\n * the response generated by `this.fetch()`.\n *\n * The call to `this.cachePut()` automatically invokes `this.waitUntil()`,\n * so you do not have to manually call `waitUntil()` on the event.\n *\n * @param {Request|string} input The request or URL to fetch and cache.\n * @return {Promise}\n */\n async fetchAndCachePut(input) {\n const response = await this.fetch(input);\n const responseClone = response.clone();\n void this.waitUntil(this.cachePut(input, responseClone));\n return response;\n }\n /**\n * Matches a request from the cache (and invokes any applicable plugin\n * callback methods) using the `cacheName`, `matchOptions`, and `plugins`\n * defined on the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cachedResponseWillByUsed()\n *\n * @param {Request|string} key The Request or URL to use as the cache key.\n * @return {Promise} A matching response, if found.\n */\n async cacheMatch(key) {\n const request = toRequest(key);\n let cachedResponse;\n const { cacheName, matchOptions } = this._strategy;\n const effectiveRequest = await this.getCacheKey(request, 'read');\n const multiMatchOptions = Object.assign(Object.assign({}, matchOptions), { cacheName });\n cachedResponse = await caches.match(effectiveRequest, multiMatchOptions);\n if (process.env.NODE_ENV !== 'production') {\n if (cachedResponse) {\n logger.debug(`Found a cached response in '${cacheName}'.`);\n }\n else {\n logger.debug(`No cached response found in '${cacheName}'.`);\n }\n }\n for (const callback of this.iterateCallbacks('cachedResponseWillBeUsed')) {\n cachedResponse =\n (await callback({\n cacheName,\n matchOptions,\n cachedResponse,\n request: effectiveRequest,\n event: this.event,\n })) || undefined;\n }\n return cachedResponse;\n }\n /**\n * Puts a request/response pair in the cache (and invokes any applicable\n * plugin callback methods) using the `cacheName` and `plugins` defined on\n * the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cacheWillUpdate()\n * - cacheDidUpdate()\n *\n * @param {Request|string} key The request or URL to use as the cache key.\n * @param {Response} response The response to cache.\n * @return {Promise} `false` if a cacheWillUpdate caused the response\n * not be cached, and `true` otherwise.\n */\n async cachePut(key, response) {\n const request = toRequest(key);\n // Run in the next task to avoid blocking other cache reads.\n // https://github.com/w3c/ServiceWorker/issues/1397\n await timeout(0);\n const effectiveRequest = await this.getCacheKey(request, 'write');\n if (process.env.NODE_ENV !== 'production') {\n if (effectiveRequest.method && effectiveRequest.method !== 'GET') {\n throw new WorkboxError('attempt-to-cache-non-get-request', {\n url: getFriendlyURL(effectiveRequest.url),\n method: effectiveRequest.method,\n });\n }\n // See https://github.com/GoogleChrome/workbox/issues/2818\n const vary = response.headers.get('Vary');\n if (vary) {\n logger.debug(`The response for ${getFriendlyURL(effectiveRequest.url)} ` +\n `has a 'Vary: ${vary}' header. ` +\n `Consider setting the {ignoreVary: true} option on your strategy ` +\n `to ensure cache matching and deletion works as expected.`);\n }\n }\n if (!response) {\n if (process.env.NODE_ENV !== 'production') {\n logger.error(`Cannot cache non-existent response for ` +\n `'${getFriendlyURL(effectiveRequest.url)}'.`);\n }\n throw new WorkboxError('cache-put-with-no-response', {\n url: getFriendlyURL(effectiveRequest.url),\n });\n }\n const responseToCache = await this._ensureResponseSafeToCache(response);\n if (!responseToCache) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Response '${getFriendlyURL(effectiveRequest.url)}' ` +\n `will not be cached.`, responseToCache);\n }\n return false;\n }\n const { cacheName, matchOptions } = this._strategy;\n const cache = await self.caches.open(cacheName);\n const hasCacheUpdateCallback = this.hasCallback('cacheDidUpdate');\n const oldResponse = hasCacheUpdateCallback\n ? await cacheMatchIgnoreParams(\n // TODO(philipwalton): the `__WB_REVISION__` param is a precaching\n // feature. Consider into ways to only add this behavior if using\n // precaching.\n cache, effectiveRequest.clone(), ['__WB_REVISION__'], matchOptions)\n : null;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Updating the '${cacheName}' cache with a new Response ` +\n `for ${getFriendlyURL(effectiveRequest.url)}.`);\n }\n try {\n await cache.put(effectiveRequest, hasCacheUpdateCallback ? responseToCache.clone() : responseToCache);\n }\n catch (error) {\n if (error instanceof Error) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/DOMException#exception-QuotaExceededError\n if (error.name === 'QuotaExceededError') {\n await executeQuotaErrorCallbacks();\n }\n throw error;\n }\n }\n for (const callback of this.iterateCallbacks('cacheDidUpdate')) {\n await callback({\n cacheName,\n oldResponse,\n newResponse: responseToCache.clone(),\n request: effectiveRequest,\n event: this.event,\n });\n }\n return true;\n }\n /**\n * Checks the list of plugins for the `cacheKeyWillBeUsed` callback, and\n * executes any of those callbacks found in sequence. The final `Request`\n * object returned by the last plugin is treated as the cache key for cache\n * reads and/or writes. If no `cacheKeyWillBeUsed` plugin callbacks have\n * been registered, the passed request is returned unmodified\n *\n * @param {Request} request\n * @param {string} mode\n * @return {Promise}\n */\n async getCacheKey(request, mode) {\n const key = `${request.url} | ${mode}`;\n if (!this._cacheKeys[key]) {\n let effectiveRequest = request;\n for (const callback of this.iterateCallbacks('cacheKeyWillBeUsed')) {\n effectiveRequest = toRequest(await callback({\n mode,\n request: effectiveRequest,\n event: this.event,\n // params has a type any can't change right now.\n params: this.params, // eslint-disable-line\n }));\n }\n this._cacheKeys[key] = effectiveRequest;\n }\n return this._cacheKeys[key];\n }\n /**\n * Returns true if the strategy has at least one plugin with the given\n * callback.\n *\n * @param {string} name The name of the callback to check for.\n * @return {boolean}\n */\n hasCallback(name) {\n for (const plugin of this._strategy.plugins) {\n if (name in plugin) {\n return true;\n }\n }\n return false;\n }\n /**\n * Runs all plugin callbacks matching the given name, in order, passing the\n * given param object (merged ith the current plugin state) as the only\n * argument.\n *\n * Note: since this method runs all plugins, it's not suitable for cases\n * where the return value of a callback needs to be applied prior to calling\n * the next callback. See\n * {@link workbox-strategies.StrategyHandler#iterateCallbacks}\n * below for how to handle that case.\n *\n * @param {string} name The name of the callback to run within each plugin.\n * @param {Object} param The object to pass as the first (and only) param\n * when executing each callback. This object will be merged with the\n * current plugin state prior to callback execution.\n */\n async runCallbacks(name, param) {\n for (const callback of this.iterateCallbacks(name)) {\n // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n await callback(param);\n }\n }\n /**\n * Accepts a callback and returns an iterable of matching plugin callbacks,\n * where each callback is wrapped with the current handler state (i.e. when\n * you call each callback, whatever object parameter you pass it will\n * be merged with the plugin's current state).\n *\n * @param {string} name The name fo the callback to run\n * @return {Array}\n */\n *iterateCallbacks(name) {\n for (const plugin of this._strategy.plugins) {\n if (typeof plugin[name] === 'function') {\n const state = this._pluginStateMap.get(plugin);\n const statefulCallback = (param) => {\n const statefulParam = Object.assign(Object.assign({}, param), { state });\n // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n return plugin[name](statefulParam);\n };\n yield statefulCallback;\n }\n }\n }\n /**\n * Adds a promise to the\n * [extend lifetime promises]{@link https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises}\n * of the event event associated with the request being handled (usually a\n * `FetchEvent`).\n *\n * Note: you can await\n * {@link workbox-strategies.StrategyHandler~doneWaiting}\n * to know when all added promises have settled.\n *\n * @param {Promise} promise A promise to add to the extend lifetime promises\n * of the event that triggered the request.\n */\n waitUntil(promise) {\n this._extendLifetimePromises.push(promise);\n return promise;\n }\n /**\n * Returns a promise that resolves once all promises passed to\n * {@link workbox-strategies.StrategyHandler~waitUntil}\n * have settled.\n *\n * Note: any work done after `doneWaiting()` settles should be manually\n * passed to an event's `waitUntil()` method (not this handler's\n * `waitUntil()` method), otherwise the service worker thread my be killed\n * prior to your work completing.\n */\n async doneWaiting() {\n let promise;\n while ((promise = this._extendLifetimePromises.shift())) {\n await promise;\n }\n }\n /**\n * Stops running the strategy and immediately resolves any pending\n * `waitUntil()` promises.\n */\n destroy() {\n this._handlerDeferred.resolve(null);\n }\n /**\n * This method will call cacheWillUpdate on the available plugins (or use\n * status === 200) to determine if the Response is safe and valid to cache.\n *\n * @param {Request} options.request\n * @param {Response} options.response\n * @return {Promise}\n *\n * @private\n */\n async _ensureResponseSafeToCache(response) {\n let responseToCache = response;\n let pluginsUsed = false;\n for (const callback of this.iterateCallbacks('cacheWillUpdate')) {\n responseToCache =\n (await callback({\n request: this.request,\n response: responseToCache,\n event: this.event,\n })) || undefined;\n pluginsUsed = true;\n if (!responseToCache) {\n break;\n }\n }\n if (!pluginsUsed) {\n if (responseToCache && responseToCache.status !== 200) {\n responseToCache = undefined;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (responseToCache) {\n if (responseToCache.status !== 200) {\n if (responseToCache.status === 0) {\n logger.warn(`The response for '${this.request.url}' ` +\n `is an opaque response. The caching strategy that you're ` +\n `using will not cache opaque responses by default.`);\n }\n else {\n logger.debug(`The response for '${this.request.url}' ` +\n `returned a status code of '${response.status}' and won't ` +\n `be cached as a result.`);\n }\n }\n }\n }\n }\n return responseToCache;\n }\n}\nexport { StrategyHandler };\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Returns a promise that resolves and the passed number of milliseconds.\n * This utility is an async/await-friendly version of `setTimeout`.\n *\n * @param {number} ms\n * @return {Promise}\n * @private\n */\nexport function timeout(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst getFriendlyURL = (url) => {\n const urlObj = new URL(String(url), location.href);\n // See https://github.com/GoogleChrome/workbox/issues/2323\n // We want to include everything, except for the origin if it's same-origin.\n return urlObj.href.replace(new RegExp(`^${location.origin}`), '');\n};\nexport { getFriendlyURL };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from '../_private/logger.js';\nimport { quotaErrorCallbacks } from '../models/quotaErrorCallbacks.js';\nimport '../_version.js';\n/**\n * Runs all of the callback functions, one at a time sequentially, in the order\n * in which they were registered.\n *\n * @memberof workbox-core\n * @private\n */\nasync function executeQuotaErrorCallbacks() {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`About to run ${quotaErrorCallbacks.size} ` +\n `callbacks to clean up caches.`);\n }\n for (const callback of quotaErrorCallbacks) {\n await callback();\n if (process.env.NODE_ENV !== 'production') {\n logger.log(callback, 'is complete.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Finished running callbacks.');\n }\n}\nexport { executeQuotaErrorCallbacks };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { StrategyHandler } from './StrategyHandler.js';\nimport './_version.js';\n/**\n * An abstract base class that all other strategy classes must extend from:\n *\n * @memberof workbox-strategies\n */\nclass Strategy {\n /**\n * Creates a new instance of the strategy and sets all documented option\n * properties as public instance properties.\n *\n * Note: if a custom strategy class extends the base Strategy class and does\n * not need more than these properties, it does not need to define its own\n * constructor.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n */\n constructor(options = {}) {\n /**\n * Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n *\n * @type {string}\n */\n this.cacheName = cacheNames.getRuntimeName(options.cacheName);\n /**\n * The list\n * [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * used by this strategy.\n *\n * @type {Array}\n */\n this.plugins = options.plugins || [];\n /**\n * Values passed along to the\n * [`init`]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters}\n * of all fetch() requests made by this strategy.\n *\n * @type {Object}\n */\n this.fetchOptions = options.fetchOptions;\n /**\n * The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n *\n * @type {Object}\n */\n this.matchOptions = options.matchOptions;\n }\n /**\n * Perform a request strategy and returns a `Promise` that will resolve with\n * a `Response`, invoking all relevant plugin callbacks.\n *\n * When a strategy instance is registered with a Workbox\n * {@link workbox-routing.Route}, this method is automatically\n * called when the route matches.\n *\n * Alternatively, this method can be used in a standalone `FetchEvent`\n * listener by passing it to `event.respondWith()`.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n */\n handle(options) {\n const [responseDone] = this.handleAll(options);\n return responseDone;\n }\n /**\n * Similar to {@link workbox-strategies.Strategy~handle}, but\n * instead of just returning a `Promise` that resolves to a `Response` it\n * it will return an tuple of `[response, done]` promises, where the former\n * (`response`) is equivalent to what `handle()` returns, and the latter is a\n * Promise that will resolve once any promises that were added to\n * `event.waitUntil()` as part of performing the strategy have completed.\n *\n * You can await the `done` promise to ensure any extra work performed by\n * the strategy (usually caching responses) completes successfully.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n * @return {Array} A tuple of [response, done]\n * promises that can be used to determine when the response resolves as\n * well as when the handler has completed all its work.\n */\n handleAll(options) {\n // Allow for flexible options to be passed.\n if (options instanceof FetchEvent) {\n options = {\n event: options,\n request: options.request,\n };\n }\n const event = options.event;\n const request = typeof options.request === 'string'\n ? new Request(options.request)\n : options.request;\n const params = 'params' in options ? options.params : undefined;\n const handler = new StrategyHandler(this, { event, request, params });\n const responseDone = this._getResponse(handler, request, event);\n const handlerDone = this._awaitComplete(responseDone, handler, request, event);\n // Return an array of promises, suitable for use with Promise.all().\n return [responseDone, handlerDone];\n }\n async _getResponse(handler, request, event) {\n await handler.runCallbacks('handlerWillStart', { event, request });\n let response = undefined;\n try {\n response = await this._handle(request, handler);\n // The \"official\" Strategy subclasses all throw this error automatically,\n // but in case a third-party Strategy doesn't, ensure that we have a\n // consistent failure when there's no response or an error response.\n if (!response || response.type === 'error') {\n throw new WorkboxError('no-response', { url: request.url });\n }\n }\n catch (error) {\n if (error instanceof Error) {\n for (const callback of handler.iterateCallbacks('handlerDidError')) {\n response = await callback({ error, event, request });\n if (response) {\n break;\n }\n }\n }\n if (!response) {\n throw error;\n }\n else if (process.env.NODE_ENV !== 'production') {\n logger.log(`While responding to '${getFriendlyURL(request.url)}', ` +\n `an ${error instanceof Error ? error.toString() : ''} error occurred. Using a fallback response provided by ` +\n `a handlerDidError plugin.`);\n }\n }\n for (const callback of handler.iterateCallbacks('handlerWillRespond')) {\n response = await callback({ event, request, response });\n }\n return response;\n }\n async _awaitComplete(responseDone, handler, request, event) {\n let response;\n let error;\n try {\n response = await responseDone;\n }\n catch (error) {\n // Ignore errors, as response errors should be caught via the `response`\n // promise above. The `done` promise will only throw for errors in\n // promises passed to `handler.waitUntil()`.\n }\n try {\n await handler.runCallbacks('handlerDidRespond', {\n event,\n request,\n response,\n });\n await handler.doneWaiting();\n }\n catch (waitUntilError) {\n if (waitUntilError instanceof Error) {\n error = waitUntilError;\n }\n }\n await handler.runCallbacks('handlerDidComplete', {\n event,\n request,\n response,\n error: error,\n });\n handler.destroy();\n if (error) {\n throw error;\n }\n }\n}\nexport { Strategy };\n/**\n * Classes extending the `Strategy` based class should implement this method,\n * and leverage the {@link workbox-strategies.StrategyHandler}\n * arg to perform all fetching and cache logic, which will ensure all relevant\n * cache, cache options, fetch options and plugins are used (per the current\n * strategy instance).\n *\n * @name _handle\n * @instance\n * @abstract\n * @function\n * @param {Request} request\n * @param {workbox-strategies.StrategyHandler} handler\n * @return {Promise}\n *\n * @memberof workbox-strategies.Strategy\n */\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A helper function that prevents a promise from being flagged as unused.\n *\n * @private\n **/\nexport function dontWaitFor(promise) {\n // Effective no-op.\n void promise.then(() => { });\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:expiration:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { openDB, deleteDB } from 'idb';\nimport '../_version.js';\nconst DB_NAME = 'workbox-expiration';\nconst CACHE_OBJECT_STORE = 'cache-entries';\nconst normalizeURL = (unNormalizedUrl) => {\n const url = new URL(unNormalizedUrl, location.href);\n url.hash = '';\n return url.href;\n};\n/**\n * Returns the timestamp model.\n *\n * @private\n */\nclass CacheTimestampsModel {\n /**\n *\n * @param {string} cacheName\n *\n * @private\n */\n constructor(cacheName) {\n this._db = null;\n this._cacheName = cacheName;\n }\n /**\n * Performs an upgrade of indexedDB.\n *\n * @param {IDBPDatabase} db\n *\n * @private\n */\n _upgradeDb(db) {\n // TODO(philipwalton): EdgeHTML doesn't support arrays as a keyPath, so we\n // have to use the `id` keyPath here and create our own values (a\n // concatenation of `url + cacheName`) instead of simply using\n // `keyPath: ['url', 'cacheName']`, which is supported in other browsers.\n const objStore = db.createObjectStore(CACHE_OBJECT_STORE, { keyPath: 'id' });\n // TODO(philipwalton): once we don't have to support EdgeHTML, we can\n // create a single index with the keyPath `['cacheName', 'timestamp']`\n // instead of doing both these indexes.\n objStore.createIndex('cacheName', 'cacheName', { unique: false });\n objStore.createIndex('timestamp', 'timestamp', { unique: false });\n }\n /**\n * Performs an upgrade of indexedDB and deletes deprecated DBs.\n *\n * @param {IDBPDatabase} db\n *\n * @private\n */\n _upgradeDbAndDeleteOldDbs(db) {\n this._upgradeDb(db);\n if (this._cacheName) {\n void deleteDB(this._cacheName);\n }\n }\n /**\n * @param {string} url\n * @param {number} timestamp\n *\n * @private\n */\n async setTimestamp(url, timestamp) {\n url = normalizeURL(url);\n const entry = {\n url,\n timestamp,\n cacheName: this._cacheName,\n // Creating an ID from the URL and cache name won't be necessary once\n // Edge switches to Chromium and all browsers we support work with\n // array keyPaths.\n id: this._getId(url),\n };\n const db = await this.getDb();\n const tx = db.transaction(CACHE_OBJECT_STORE, 'readwrite', {\n durability: 'relaxed',\n });\n await tx.store.put(entry);\n await tx.done;\n }\n /**\n * Returns the timestamp stored for a given URL.\n *\n * @param {string} url\n * @return {number | undefined}\n *\n * @private\n */\n async getTimestamp(url) {\n const db = await this.getDb();\n const entry = await db.get(CACHE_OBJECT_STORE, this._getId(url));\n return entry === null || entry === void 0 ? void 0 : entry.timestamp;\n }\n /**\n * Iterates through all the entries in the object store (from newest to\n * oldest) and removes entries once either `maxCount` is reached or the\n * entry's timestamp is less than `minTimestamp`.\n *\n * @param {number} minTimestamp\n * @param {number} maxCount\n * @return {Array}\n *\n * @private\n */\n async expireEntries(minTimestamp, maxCount) {\n const db = await this.getDb();\n let cursor = await db\n .transaction(CACHE_OBJECT_STORE)\n .store.index('timestamp')\n .openCursor(null, 'prev');\n const entriesToDelete = [];\n let entriesNotDeletedCount = 0;\n while (cursor) {\n const result = cursor.value;\n // TODO(philipwalton): once we can use a multi-key index, we\n // won't have to check `cacheName` here.\n if (result.cacheName === this._cacheName) {\n // Delete an entry if it's older than the max age or\n // if we already have the max number allowed.\n if ((minTimestamp && result.timestamp < minTimestamp) ||\n (maxCount && entriesNotDeletedCount >= maxCount)) {\n // TODO(philipwalton): we should be able to delete the\n // entry right here, but doing so causes an iteration\n // bug in Safari stable (fixed in TP). Instead we can\n // store the keys of the entries to delete, and then\n // delete the separate transactions.\n // https://github.com/GoogleChrome/workbox/issues/1978\n // cursor.delete();\n // We only need to return the URL, not the whole entry.\n entriesToDelete.push(cursor.value);\n }\n else {\n entriesNotDeletedCount++;\n }\n }\n cursor = await cursor.continue();\n }\n // TODO(philipwalton): once the Safari bug in the following issue is fixed,\n // we should be able to remove this loop and do the entry deletion in the\n // cursor loop above:\n // https://github.com/GoogleChrome/workbox/issues/1978\n const urlsDeleted = [];\n for (const entry of entriesToDelete) {\n await db.delete(CACHE_OBJECT_STORE, entry.id);\n urlsDeleted.push(entry.url);\n }\n return urlsDeleted;\n }\n /**\n * Takes a URL and returns an ID that will be unique in the object store.\n *\n * @param {string} url\n * @return {string}\n *\n * @private\n */\n _getId(url) {\n // Creating an ID from the URL and cache name won't be necessary once\n // Edge switches to Chromium and all browsers we support work with\n // array keyPaths.\n return this._cacheName + '|' + normalizeURL(url);\n }\n /**\n * Returns an open connection to the database.\n *\n * @private\n */\n async getDb() {\n if (!this._db) {\n this._db = await openDB(DB_NAME, 1, {\n upgrade: this._upgradeDbAndDeleteOldDbs.bind(this),\n });\n }\n return this._db;\n }\n}\nexport { CacheTimestampsModel };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { dontWaitFor } from 'workbox-core/_private/dontWaitFor.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { CacheTimestampsModel } from './models/CacheTimestampsModel.js';\nimport './_version.js';\n/**\n * The `CacheExpiration` class allows you define an expiration and / or\n * limit on the number of responses stored in a\n * [`Cache`](https://developer.mozilla.org/en-US/docs/Web/API/Cache).\n *\n * @memberof workbox-expiration\n */\nclass CacheExpiration {\n /**\n * To construct a new CacheExpiration instance you must provide at least\n * one of the `config` properties.\n *\n * @param {string} cacheName Name of the cache to apply restrictions to.\n * @param {Object} config\n * @param {number} [config.maxEntries] The maximum number of entries to cache.\n * Entries used the least will be removed as the maximum is reached.\n * @param {number} [config.maxAgeSeconds] The maximum age of an entry before\n * it's treated as stale and removed.\n * @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)\n * that will be used when calling `delete()` on the cache.\n */\n constructor(cacheName, config = {}) {\n this._isRunning = false;\n this._rerunRequested = false;\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(cacheName, 'string', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'cacheName',\n });\n if (!(config.maxEntries || config.maxAgeSeconds)) {\n throw new WorkboxError('max-entries-or-age-required', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n });\n }\n if (config.maxEntries) {\n assert.isType(config.maxEntries, 'number', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'config.maxEntries',\n });\n }\n if (config.maxAgeSeconds) {\n assert.isType(config.maxAgeSeconds, 'number', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'config.maxAgeSeconds',\n });\n }\n }\n this._maxEntries = config.maxEntries;\n this._maxAgeSeconds = config.maxAgeSeconds;\n this._matchOptions = config.matchOptions;\n this._cacheName = cacheName;\n this._timestampModel = new CacheTimestampsModel(cacheName);\n }\n /**\n * Expires entries for the given cache and given criteria.\n */\n async expireEntries() {\n if (this._isRunning) {\n this._rerunRequested = true;\n return;\n }\n this._isRunning = true;\n const minTimestamp = this._maxAgeSeconds\n ? Date.now() - this._maxAgeSeconds * 1000\n : 0;\n const urlsExpired = await this._timestampModel.expireEntries(minTimestamp, this._maxEntries);\n // Delete URLs from the cache\n const cache = await self.caches.open(this._cacheName);\n for (const url of urlsExpired) {\n await cache.delete(url, this._matchOptions);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (urlsExpired.length > 0) {\n logger.groupCollapsed(`Expired ${urlsExpired.length} ` +\n `${urlsExpired.length === 1 ? 'entry' : 'entries'} and removed ` +\n `${urlsExpired.length === 1 ? 'it' : 'them'} from the ` +\n `'${this._cacheName}' cache.`);\n logger.log(`Expired the following ${urlsExpired.length === 1 ? 'URL' : 'URLs'}:`);\n urlsExpired.forEach((url) => logger.log(` ${url}`));\n logger.groupEnd();\n }\n else {\n logger.debug(`Cache expiration ran and found no entries to remove.`);\n }\n }\n this._isRunning = false;\n if (this._rerunRequested) {\n this._rerunRequested = false;\n dontWaitFor(this.expireEntries());\n }\n }\n /**\n * Update the timestamp for the given URL. This ensures the when\n * removing entries based on maximum entries, most recently used\n * is accurate or when expiring, the timestamp is up-to-date.\n *\n * @param {string} url\n */\n async updateTimestamp(url) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(url, 'string', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'updateTimestamp',\n paramName: 'url',\n });\n }\n await this._timestampModel.setTimestamp(url, Date.now());\n }\n /**\n * Can be used to check if a URL has expired or not before it's used.\n *\n * This requires a look up from IndexedDB, so can be slow.\n *\n * Note: This method will not remove the cached entry, call\n * `expireEntries()` to remove indexedDB and Cache entries.\n *\n * @param {string} url\n * @return {boolean}\n */\n async isURLExpired(url) {\n if (!this._maxAgeSeconds) {\n if (process.env.NODE_ENV !== 'production') {\n throw new WorkboxError(`expired-test-without-max-age`, {\n methodName: 'isURLExpired',\n paramName: 'maxAgeSeconds',\n });\n }\n return false;\n }\n else {\n const timestamp = await this._timestampModel.getTimestamp(url);\n const expireOlderThan = Date.now() - this._maxAgeSeconds * 1000;\n return timestamp !== undefined ? timestamp < expireOlderThan : true;\n }\n }\n /**\n * Removes the IndexedDB object store used to keep track of cache expiration\n * metadata.\n */\n async delete() {\n // Make sure we don't attempt another rerun if we're called in the middle of\n // a cache expiration.\n this._rerunRequested = false;\n await this._timestampModel.expireEntries(Infinity); // Expires all.\n }\n}\nexport { CacheExpiration };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:range-requests:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { calculateEffectiveBoundaries } from './utils/calculateEffectiveBoundaries.js';\nimport { parseRangeHeader } from './utils/parseRangeHeader.js';\nimport './_version.js';\n/**\n * Given a `Request` and `Response` objects as input, this will return a\n * promise for a new `Response`.\n *\n * If the original `Response` already contains partial content (i.e. it has\n * a status of 206), then this assumes it already fulfills the `Range:`\n * requirements, and will return it as-is.\n *\n * @param {Request} request A request, which should contain a Range:\n * header.\n * @param {Response} originalResponse A response.\n * @return {Promise} Either a `206 Partial Content` response, with\n * the response body set to the slice of content specified by the request's\n * `Range:` header, or a `416 Range Not Satisfiable` response if the\n * conditions of the `Range:` header can't be met.\n *\n * @memberof workbox-range-requests\n */\nasync function createPartialResponse(request, originalResponse) {\n try {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-range-requests',\n funcName: 'createPartialResponse',\n paramName: 'request',\n });\n assert.isInstance(originalResponse, Response, {\n moduleName: 'workbox-range-requests',\n funcName: 'createPartialResponse',\n paramName: 'originalResponse',\n });\n }\n if (originalResponse.status === 206) {\n // If we already have a 206, then just pass it through as-is;\n // see https://github.com/GoogleChrome/workbox/issues/1720\n return originalResponse;\n }\n const rangeHeader = request.headers.get('range');\n if (!rangeHeader) {\n throw new WorkboxError('no-range-header');\n }\n const boundaries = parseRangeHeader(rangeHeader);\n const originalBlob = await originalResponse.blob();\n const effectiveBoundaries = calculateEffectiveBoundaries(originalBlob, boundaries.start, boundaries.end);\n const slicedBlob = originalBlob.slice(effectiveBoundaries.start, effectiveBoundaries.end);\n const slicedBlobSize = slicedBlob.size;\n const slicedResponse = new Response(slicedBlob, {\n // Status code 206 is for a Partial Content response.\n // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/206\n status: 206,\n statusText: 'Partial Content',\n headers: originalResponse.headers,\n });\n slicedResponse.headers.set('Content-Length', String(slicedBlobSize));\n slicedResponse.headers.set('Content-Range', `bytes ${effectiveBoundaries.start}-${effectiveBoundaries.end - 1}/` +\n `${originalBlob.size}`);\n return slicedResponse;\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(`Unable to construct a partial response; returning a ` +\n `416 Range Not Satisfiable response instead.`);\n logger.groupCollapsed(`View details here.`);\n logger.log(error);\n logger.log(request);\n logger.log(originalResponse);\n logger.groupEnd();\n }\n return new Response('', {\n status: 416,\n statusText: 'Range Not Satisfiable',\n });\n }\n}\nexport { createPartialResponse };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {string} rangeHeader A Range: header value.\n * @return {Object} An object with `start` and `end` properties, reflecting\n * the parsed value of the Range: header. If either the `start` or `end` are\n * omitted, then `null` will be returned.\n *\n * @private\n */\nfunction parseRangeHeader(rangeHeader) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(rangeHeader, 'string', {\n moduleName: 'workbox-range-requests',\n funcName: 'parseRangeHeader',\n paramName: 'rangeHeader',\n });\n }\n const normalizedRangeHeader = rangeHeader.trim().toLowerCase();\n if (!normalizedRangeHeader.startsWith('bytes=')) {\n throw new WorkboxError('unit-must-be-bytes', { normalizedRangeHeader });\n }\n // Specifying multiple ranges separate by commas is valid syntax, but this\n // library only attempts to handle a single, contiguous sequence of bytes.\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range#Syntax\n if (normalizedRangeHeader.includes(',')) {\n throw new WorkboxError('single-range-only', { normalizedRangeHeader });\n }\n const rangeParts = /(\\d*)-(\\d*)/.exec(normalizedRangeHeader);\n // We need either at least one of the start or end values.\n if (!rangeParts || !(rangeParts[1] || rangeParts[2])) {\n throw new WorkboxError('invalid-range-values', { normalizedRangeHeader });\n }\n return {\n start: rangeParts[1] === '' ? undefined : Number(rangeParts[1]),\n end: rangeParts[2] === '' ? undefined : Number(rangeParts[2]),\n };\n}\nexport { parseRangeHeader };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {Blob} blob A source blob.\n * @param {number} [start] The offset to use as the start of the\n * slice.\n * @param {number} [end] The offset to use as the end of the slice.\n * @return {Object} An object with `start` and `end` properties, reflecting\n * the effective boundaries to use given the size of the blob.\n *\n * @private\n */\nfunction calculateEffectiveBoundaries(blob, start, end) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(blob, Blob, {\n moduleName: 'workbox-range-requests',\n funcName: 'calculateEffectiveBoundaries',\n paramName: 'blob',\n });\n }\n const blobSize = blob.size;\n if ((end && end > blobSize) || (start && start < 0)) {\n throw new WorkboxError('range-not-satisfiable', {\n size: blobSize,\n end,\n start,\n });\n }\n let effectiveStart;\n let effectiveEnd;\n if (start !== undefined && end !== undefined) {\n effectiveStart = start;\n // Range values are inclusive, so add 1 to the value.\n effectiveEnd = end + 1;\n }\n else if (start !== undefined && end === undefined) {\n effectiveStart = start;\n effectiveEnd = blobSize;\n }\n else if (end !== undefined && start === undefined) {\n effectiveStart = blobSize - end;\n effectiveEnd = blobSize;\n }\n return {\n start: effectiveStart,\n end: effectiveEnd,\n };\n}\nexport { calculateEffectiveBoundaries };\n","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A utility method that makes it easier to use `event.waitUntil` with\n * async functions and return the result.\n *\n * @param {ExtendableEvent} event\n * @param {Function} asyncFn\n * @return {Function}\n * @private\n */\nfunction waitUntil(event, asyncFn) {\n const returnPromise = asyncFn();\n event.waitUntil(returnPromise);\n return returnPromise;\n}\nexport { waitUntil };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:precaching:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport '../_version.js';\n// Name of the search parameter used to store revision info.\nconst REVISION_SEARCH_PARAM = '__WB_REVISION__';\n/**\n * Converts a manifest entry into a versioned URL suitable for precaching.\n *\n * @param {Object|string} entry\n * @return {string} A URL with versioning info.\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function createCacheKey(entry) {\n if (!entry) {\n throw new WorkboxError('add-to-cache-list-unexpected-type', { entry });\n }\n // If a precache manifest entry is a string, it's assumed to be a versioned\n // URL, like '/app.abcd1234.js'. Return as-is.\n if (typeof entry === 'string') {\n const urlObject = new URL(entry, location.href);\n return {\n cacheKey: urlObject.href,\n url: urlObject.href,\n };\n }\n const { revision, url } = entry;\n if (!url) {\n throw new WorkboxError('add-to-cache-list-unexpected-type', { entry });\n }\n // If there's just a URL and no revision, then it's also assumed to be a\n // versioned URL.\n if (!revision) {\n const urlObject = new URL(url, location.href);\n return {\n cacheKey: urlObject.href,\n url: urlObject.href,\n };\n }\n // Otherwise, construct a properly versioned URL using the custom Workbox\n // search parameter along with the revision info.\n const cacheKeyURL = new URL(url, location.href);\n const originalURL = new URL(url, location.href);\n cacheKeyURL.searchParams.set(REVISION_SEARCH_PARAM, revision);\n return {\n cacheKey: cacheKeyURL.href,\n url: originalURL.href,\n };\n}\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A plugin, designed to be used with PrecacheController, to determine the\n * of assets that were updated (or not updated) during the install event.\n *\n * @private\n */\nclass PrecacheInstallReportPlugin {\n constructor() {\n this.updatedURLs = [];\n this.notUpdatedURLs = [];\n this.handlerWillStart = async ({ request, state, }) => {\n // TODO: `state` should never be undefined...\n if (state) {\n state.originalRequest = request;\n }\n };\n this.cachedResponseWillBeUsed = async ({ event, state, cachedResponse, }) => {\n if (event.type === 'install') {\n if (state &&\n state.originalRequest &&\n state.originalRequest instanceof Request) {\n // TODO: `state` should never be undefined...\n const url = state.originalRequest.url;\n if (cachedResponse) {\n this.notUpdatedURLs.push(url);\n }\n else {\n this.updatedURLs.push(url);\n }\n }\n }\n return cachedResponse;\n };\n }\n}\nexport { PrecacheInstallReportPlugin };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A plugin, designed to be used with PrecacheController, to translate URLs into\n * the corresponding cache key, based on the current revision info.\n *\n * @private\n */\nclass PrecacheCacheKeyPlugin {\n constructor({ precacheController }) {\n this.cacheKeyWillBeUsed = async ({ request, params, }) => {\n // Params is type any, can't change right now.\n /* eslint-disable */\n const cacheKey = (params === null || params === void 0 ? void 0 : params.cacheKey) ||\n this._precacheController.getCacheKeyForURL(request.url);\n /* eslint-enable */\n return cacheKey\n ? new Request(cacheKey, { headers: request.headers })\n : request;\n };\n this._precacheController = precacheController;\n }\n}\nexport { PrecacheCacheKeyPlugin };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nlet supportStatus;\n/**\n * A utility function that determines whether the current browser supports\n * constructing a new `Response` from a `response.body` stream.\n *\n * @return {boolean} `true`, if the current browser can successfully\n * construct a `Response` from a `response.body` stream, `false` otherwise.\n *\n * @private\n */\nfunction canConstructResponseFromBodyStream() {\n if (supportStatus === undefined) {\n const testResponse = new Response('');\n if ('body' in testResponse) {\n try {\n new Response(testResponse.body);\n supportStatus = true;\n }\n catch (error) {\n supportStatus = false;\n }\n }\n supportStatus = false;\n }\n return supportStatus;\n}\nexport { canConstructResponseFromBodyStream };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { PrecacheController } from '../PrecacheController.js';\nimport '../_version.js';\nlet precacheController;\n/**\n * @return {PrecacheController}\n * @private\n */\nexport const getOrCreatePrecacheController = () => {\n if (!precacheController) {\n precacheController = new PrecacheController();\n }\n return precacheController;\n};\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { canConstructResponseFromBodyStream } from './_private/canConstructResponseFromBodyStream.js';\nimport { WorkboxError } from './_private/WorkboxError.js';\nimport './_version.js';\n/**\n * Allows developers to copy a response and modify its `headers`, `status`,\n * or `statusText` values (the values settable via a\n * [`ResponseInit`]{@link https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#Syntax}\n * object in the constructor).\n * To modify these values, pass a function as the second argument. That\n * function will be invoked with a single object with the response properties\n * `{headers, status, statusText}`. The return value of this function will\n * be used as the `ResponseInit` for the new `Response`. To change the values\n * either modify the passed parameter(s) and return it, or return a totally\n * new object.\n *\n * This method is intentionally limited to same-origin responses, regardless of\n * whether CORS was used or not.\n *\n * @param {Response} response\n * @param {Function} modifier\n * @memberof workbox-core\n */\nasync function copyResponse(response, modifier) {\n let origin = null;\n // If response.url isn't set, assume it's cross-origin and keep origin null.\n if (response.url) {\n const responseURL = new URL(response.url);\n origin = responseURL.origin;\n }\n if (origin !== self.location.origin) {\n throw new WorkboxError('cross-origin-copy-response', { origin });\n }\n const clonedResponse = response.clone();\n // Create a fresh `ResponseInit` object by cloning the headers.\n const responseInit = {\n headers: new Headers(clonedResponse.headers),\n status: clonedResponse.status,\n statusText: clonedResponse.statusText,\n };\n // Apply any user modifications.\n const modifiedResponseInit = modifier ? modifier(responseInit) : responseInit;\n // Create the new response from the body stream and `ResponseInit`\n // modifications. Note: not all browsers support the Response.body stream,\n // so fall back to reading the entire body into memory as a blob.\n const body = canConstructResponseFromBodyStream()\n ? clonedResponse.body\n : await clonedResponse.blob();\n return new Response(body, modifiedResponseInit);\n}\nexport { copyResponse };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { copyResponse } from 'workbox-core/copyResponse.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Strategy } from 'workbox-strategies/Strategy.js';\nimport './_version.js';\n/**\n * A {@link workbox-strategies.Strategy} implementation\n * specifically designed to work with\n * {@link workbox-precaching.PrecacheController}\n * to both cache and fetch precached assets.\n *\n * Note: an instance of this class is created automatically when creating a\n * `PrecacheController`; it's generally not necessary to create this yourself.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-precaching\n */\nclass PrecacheStrategy extends Strategy {\n /**\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] {@link https://developers.google.com/web/tools/workbox/guides/using-plugins|Plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters|init}\n * of all fetch() requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * {@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions|CacheQueryOptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n * @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to\n * get the response from the network if there's a precache miss.\n */\n constructor(options = {}) {\n options.cacheName = cacheNames.getPrecacheName(options.cacheName);\n super(options);\n this._fallbackToNetwork =\n options.fallbackToNetwork === false ? false : true;\n // Redirected responses cannot be used to satisfy a navigation request, so\n // any redirected response must be \"copied\" rather than cloned, so the new\n // response doesn't contain the `redirected` flag. See:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=669363&desc=2#c1\n this.plugins.push(PrecacheStrategy.copyRedirectedCacheableResponsesPlugin);\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const response = await handler.cacheMatch(request);\n if (response) {\n return response;\n }\n // If this is an `install` event for an entry that isn't already cached,\n // then populate the cache.\n if (handler.event && handler.event.type === 'install') {\n return await this._handleInstall(request, handler);\n }\n // Getting here means something went wrong. An entry that should have been\n // precached wasn't found in the cache.\n return await this._handleFetch(request, handler);\n }\n async _handleFetch(request, handler) {\n let response;\n const params = (handler.params || {});\n // Fall back to the network if we're configured to do so.\n if (this._fallbackToNetwork) {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(`The precached response for ` +\n `${getFriendlyURL(request.url)} in ${this.cacheName} was not ` +\n `found. Falling back to the network.`);\n }\n const integrityInManifest = params.integrity;\n const integrityInRequest = request.integrity;\n const noIntegrityConflict = !integrityInRequest || integrityInRequest === integrityInManifest;\n // Do not add integrity if the original request is no-cors\n // See https://github.com/GoogleChrome/workbox/issues/3096\n response = await handler.fetch(new Request(request, {\n integrity: request.mode !== 'no-cors'\n ? integrityInRequest || integrityInManifest\n : undefined,\n }));\n // It's only \"safe\" to repair the cache if we're using SRI to guarantee\n // that the response matches the precache manifest's expectations,\n // and there's either a) no integrity property in the incoming request\n // or b) there is an integrity, and it matches the precache manifest.\n // See https://github.com/GoogleChrome/workbox/issues/2858\n // Also if the original request users no-cors we don't use integrity.\n // See https://github.com/GoogleChrome/workbox/issues/3096\n if (integrityInManifest &&\n noIntegrityConflict &&\n request.mode !== 'no-cors') {\n this._useDefaultCacheabilityPluginIfNeeded();\n const wasCached = await handler.cachePut(request, response.clone());\n if (process.env.NODE_ENV !== 'production') {\n if (wasCached) {\n logger.log(`A response for ${getFriendlyURL(request.url)} ` +\n `was used to \"repair\" the precache.`);\n }\n }\n }\n }\n else {\n // This shouldn't normally happen, but there are edge cases:\n // https://github.com/GoogleChrome/workbox/issues/1441\n throw new WorkboxError('missing-precache-entry', {\n cacheName: this.cacheName,\n url: request.url,\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n const cacheKey = params.cacheKey || (await handler.getCacheKey(request, 'read'));\n // Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Precaching is responding to: ` + getFriendlyURL(request.url));\n logger.log(`Serving the precached url: ${getFriendlyURL(cacheKey instanceof Request ? cacheKey.url : cacheKey)}`);\n logger.groupCollapsed(`View request details here.`);\n logger.log(request);\n logger.groupEnd();\n logger.groupCollapsed(`View response details here.`);\n logger.log(response);\n logger.groupEnd();\n logger.groupEnd();\n }\n return response;\n }\n async _handleInstall(request, handler) {\n this._useDefaultCacheabilityPluginIfNeeded();\n const response = await handler.fetch(request);\n // Make sure we defer cachePut() until after we know the response\n // should be cached; see https://github.com/GoogleChrome/workbox/issues/2737\n const wasCached = await handler.cachePut(request, response.clone());\n if (!wasCached) {\n // Throwing here will lead to the `install` handler failing, which\n // we want to do if *any* of the responses aren't safe to cache.\n throw new WorkboxError('bad-precaching-response', {\n url: request.url,\n status: response.status,\n });\n }\n return response;\n }\n /**\n * This method is complex, as there a number of things to account for:\n *\n * The `plugins` array can be set at construction, and/or it might be added to\n * to at any time before the strategy is used.\n *\n * At the time the strategy is used (i.e. during an `install` event), there\n * needs to be at least one plugin that implements `cacheWillUpdate` in the\n * array, other than `copyRedirectedCacheableResponsesPlugin`.\n *\n * - If this method is called and there are no suitable `cacheWillUpdate`\n * plugins, we need to add `defaultPrecacheCacheabilityPlugin`.\n *\n * - If this method is called and there is exactly one `cacheWillUpdate`, then\n * we don't have to do anything (this might be a previously added\n * `defaultPrecacheCacheabilityPlugin`, or it might be a custom plugin).\n *\n * - If this method is called and there is more than one `cacheWillUpdate`,\n * then we need to check if one is `defaultPrecacheCacheabilityPlugin`. If so,\n * we need to remove it. (This situation is unlikely, but it could happen if\n * the strategy is used multiple times, the first without a `cacheWillUpdate`,\n * and then later on after manually adding a custom `cacheWillUpdate`.)\n *\n * See https://github.com/GoogleChrome/workbox/issues/2737 for more context.\n *\n * @private\n */\n _useDefaultCacheabilityPluginIfNeeded() {\n let defaultPluginIndex = null;\n let cacheWillUpdatePluginCount = 0;\n for (const [index, plugin] of this.plugins.entries()) {\n // Ignore the copy redirected plugin when determining what to do.\n if (plugin === PrecacheStrategy.copyRedirectedCacheableResponsesPlugin) {\n continue;\n }\n // Save the default plugin's index, in case it needs to be removed.\n if (plugin === PrecacheStrategy.defaultPrecacheCacheabilityPlugin) {\n defaultPluginIndex = index;\n }\n if (plugin.cacheWillUpdate) {\n cacheWillUpdatePluginCount++;\n }\n }\n if (cacheWillUpdatePluginCount === 0) {\n this.plugins.push(PrecacheStrategy.defaultPrecacheCacheabilityPlugin);\n }\n else if (cacheWillUpdatePluginCount > 1 && defaultPluginIndex !== null) {\n // Only remove the default plugin; multiple custom plugins are allowed.\n this.plugins.splice(defaultPluginIndex, 1);\n }\n // Nothing needs to be done if cacheWillUpdatePluginCount is 1\n }\n}\nPrecacheStrategy.defaultPrecacheCacheabilityPlugin = {\n async cacheWillUpdate({ response }) {\n if (!response || response.status >= 400) {\n return null;\n }\n return response;\n },\n};\nPrecacheStrategy.copyRedirectedCacheableResponsesPlugin = {\n async cacheWillUpdate({ response }) {\n return response.redirected ? await copyResponse(response) : response;\n },\n};\nexport { PrecacheStrategy };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { waitUntil } from 'workbox-core/_private/waitUntil.js';\nimport { createCacheKey } from './utils/createCacheKey.js';\nimport { PrecacheInstallReportPlugin } from './utils/PrecacheInstallReportPlugin.js';\nimport { PrecacheCacheKeyPlugin } from './utils/PrecacheCacheKeyPlugin.js';\nimport { printCleanupDetails } from './utils/printCleanupDetails.js';\nimport { printInstallDetails } from './utils/printInstallDetails.js';\nimport { PrecacheStrategy } from './PrecacheStrategy.js';\nimport './_version.js';\n/**\n * Performs efficient precaching of assets.\n *\n * @memberof workbox-precaching\n */\nclass PrecacheController {\n /**\n * Create a new PrecacheController.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] The cache to use for precaching.\n * @param {string} [options.plugins] Plugins to use when precaching as well\n * as responding to fetch events for precached assets.\n * @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to\n * get the response from the network if there's a precache miss.\n */\n constructor({ cacheName, plugins = [], fallbackToNetwork = true, } = {}) {\n this._urlsToCacheKeys = new Map();\n this._urlsToCacheModes = new Map();\n this._cacheKeysToIntegrities = new Map();\n this._strategy = new PrecacheStrategy({\n cacheName: cacheNames.getPrecacheName(cacheName),\n plugins: [\n ...plugins,\n new PrecacheCacheKeyPlugin({ precacheController: this }),\n ],\n fallbackToNetwork,\n });\n // Bind the install and activate methods to the instance.\n this.install = this.install.bind(this);\n this.activate = this.activate.bind(this);\n }\n /**\n * @type {workbox-precaching.PrecacheStrategy} The strategy created by this controller and\n * used to cache assets and respond to fetch events.\n */\n get strategy() {\n return this._strategy;\n }\n /**\n * Adds items to the precache list, removing any duplicates and\n * stores the files in the\n * {@link workbox-core.cacheNames|\"precache cache\"} when the service\n * worker installs.\n *\n * This method can be called multiple times.\n *\n * @param {Array} [entries=[]] Array of entries to precache.\n */\n precache(entries) {\n this.addToCacheList(entries);\n if (!this._installAndActiveListenersAdded) {\n self.addEventListener('install', this.install);\n self.addEventListener('activate', this.activate);\n this._installAndActiveListenersAdded = true;\n }\n }\n /**\n * This method will add items to the precache list, removing duplicates\n * and ensuring the information is valid.\n *\n * @param {Array} entries\n * Array of entries to precache.\n */\n addToCacheList(entries) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isArray(entries, {\n moduleName: 'workbox-precaching',\n className: 'PrecacheController',\n funcName: 'addToCacheList',\n paramName: 'entries',\n });\n }\n const urlsToWarnAbout = [];\n for (const entry of entries) {\n // See https://github.com/GoogleChrome/workbox/issues/2259\n if (typeof entry === 'string') {\n urlsToWarnAbout.push(entry);\n }\n else if (entry && entry.revision === undefined) {\n urlsToWarnAbout.push(entry.url);\n }\n const { cacheKey, url } = createCacheKey(entry);\n const cacheMode = typeof entry !== 'string' && entry.revision ? 'reload' : 'default';\n if (this._urlsToCacheKeys.has(url) &&\n this._urlsToCacheKeys.get(url) !== cacheKey) {\n throw new WorkboxError('add-to-cache-list-conflicting-entries', {\n firstEntry: this._urlsToCacheKeys.get(url),\n secondEntry: cacheKey,\n });\n }\n if (typeof entry !== 'string' && entry.integrity) {\n if (this._cacheKeysToIntegrities.has(cacheKey) &&\n this._cacheKeysToIntegrities.get(cacheKey) !== entry.integrity) {\n throw new WorkboxError('add-to-cache-list-conflicting-integrities', {\n url,\n });\n }\n this._cacheKeysToIntegrities.set(cacheKey, entry.integrity);\n }\n this._urlsToCacheKeys.set(url, cacheKey);\n this._urlsToCacheModes.set(url, cacheMode);\n if (urlsToWarnAbout.length > 0) {\n const warningMessage = `Workbox is precaching URLs without revision ` +\n `info: ${urlsToWarnAbout.join(', ')}\\nThis is generally NOT safe. ` +\n `Learn more at https://bit.ly/wb-precache`;\n if (process.env.NODE_ENV === 'production') {\n // Use console directly to display this warning without bloating\n // bundle sizes by pulling in all of the logger codebase in prod.\n console.warn(warningMessage);\n }\n else {\n logger.warn(warningMessage);\n }\n }\n }\n }\n /**\n * Precaches new and updated assets. Call this method from the service worker\n * install event.\n *\n * Note: this method calls `event.waitUntil()` for you, so you do not need\n * to call it yourself in your event handlers.\n *\n * @param {ExtendableEvent} event\n * @return {Promise}\n */\n install(event) {\n // waitUntil returns Promise\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return waitUntil(event, async () => {\n const installReportPlugin = new PrecacheInstallReportPlugin();\n this.strategy.plugins.push(installReportPlugin);\n // Cache entries one at a time.\n // See https://github.com/GoogleChrome/workbox/issues/2528\n for (const [url, cacheKey] of this._urlsToCacheKeys) {\n const integrity = this._cacheKeysToIntegrities.get(cacheKey);\n const cacheMode = this._urlsToCacheModes.get(url);\n const request = new Request(url, {\n integrity,\n cache: cacheMode,\n credentials: 'same-origin',\n });\n await Promise.all(this.strategy.handleAll({\n params: { cacheKey },\n request,\n event,\n }));\n }\n const { updatedURLs, notUpdatedURLs } = installReportPlugin;\n if (process.env.NODE_ENV !== 'production') {\n printInstallDetails(updatedURLs, notUpdatedURLs);\n }\n return { updatedURLs, notUpdatedURLs };\n });\n }\n /**\n * Deletes assets that are no longer present in the current precache manifest.\n * Call this method from the service worker activate event.\n *\n * Note: this method calls `event.waitUntil()` for you, so you do not need\n * to call it yourself in your event handlers.\n *\n * @param {ExtendableEvent} event\n * @return {Promise}\n */\n activate(event) {\n // waitUntil returns Promise\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return waitUntil(event, async () => {\n const cache = await self.caches.open(this.strategy.cacheName);\n const currentlyCachedRequests = await cache.keys();\n const expectedCacheKeys = new Set(this._urlsToCacheKeys.values());\n const deletedURLs = [];\n for (const request of currentlyCachedRequests) {\n if (!expectedCacheKeys.has(request.url)) {\n await cache.delete(request);\n deletedURLs.push(request.url);\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n printCleanupDetails(deletedURLs);\n }\n return { deletedURLs };\n });\n }\n /**\n * Returns a mapping of a precached URL to the corresponding cache key, taking\n * into account the revision information for the URL.\n *\n * @return {Map} A URL to cache key mapping.\n */\n getURLsToCacheKeys() {\n return this._urlsToCacheKeys;\n }\n /**\n * Returns a list of all the URLs that have been precached by the current\n * service worker.\n *\n * @return {Array} The precached URLs.\n */\n getCachedURLs() {\n return [...this._urlsToCacheKeys.keys()];\n }\n /**\n * Returns the cache key used for storing a given URL. If that URL is\n * unversioned, like `/index.html', then the cache key will be the original\n * URL with a search parameter appended to it.\n *\n * @param {string} url A URL whose cache key you want to look up.\n * @return {string} The versioned URL that corresponds to a cache key\n * for the original URL, or undefined if that URL isn't precached.\n */\n getCacheKeyForURL(url) {\n const urlObject = new URL(url, location.href);\n return this._urlsToCacheKeys.get(urlObject.href);\n }\n /**\n * @param {string} url A cache key whose SRI you want to look up.\n * @return {string} The subresource integrity associated with the cache key,\n * or undefined if it's not set.\n */\n getIntegrityForCacheKey(cacheKey) {\n return this._cacheKeysToIntegrities.get(cacheKey);\n }\n /**\n * This acts as a drop-in replacement for\n * [`cache.match()`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match)\n * with the following differences:\n *\n * - It knows what the name of the precache is, and only checks in that cache.\n * - It allows you to pass in an \"original\" URL without versioning parameters,\n * and it will automatically look up the correct cache key for the currently\n * active revision of that URL.\n *\n * E.g., `matchPrecache('index.html')` will find the correct precached\n * response for the currently active service worker, even if the actual cache\n * key is `'/index.html?__WB_REVISION__=1234abcd'`.\n *\n * @param {string|Request} request The key (without revisioning parameters)\n * to look up in the precache.\n * @return {Promise}\n */\n async matchPrecache(request) {\n const url = request instanceof Request ? request.url : request;\n const cacheKey = this.getCacheKeyForURL(url);\n if (cacheKey) {\n const cache = await self.caches.open(this.strategy.cacheName);\n return cache.match(cacheKey);\n }\n return undefined;\n }\n /**\n * Returns a function that looks up `url` in the precache (taking into\n * account revision information), and returns the corresponding `Response`.\n *\n * @param {string} url The precached URL which will be used to lookup the\n * `Response`.\n * @return {workbox-routing~handlerCallback}\n */\n createHandlerBoundToURL(url) {\n const cacheKey = this.getCacheKeyForURL(url);\n if (!cacheKey) {\n throw new WorkboxError('non-precached-url', { url });\n }\n return (options) => {\n options.request = new Request(url);\n options.params = Object.assign({ cacheKey }, options.params);\n return this.strategy.handle(options);\n };\n }\n}\nexport { PrecacheController };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { Route } from 'workbox-routing/Route.js';\nimport { generateURLVariations } from './utils/generateURLVariations.js';\nimport './_version.js';\n/**\n * A subclass of {@link workbox-routing.Route} that takes a\n * {@link workbox-precaching.PrecacheController}\n * instance and uses it to match incoming requests and handle fetching\n * responses from the precache.\n *\n * @memberof workbox-precaching\n * @extends workbox-routing.Route\n */\nclass PrecacheRoute extends Route {\n /**\n * @param {PrecacheController} precacheController A `PrecacheController`\n * instance used to both match requests and respond to fetch events.\n * @param {Object} [options] Options to control how requests are matched\n * against the list of precached URLs.\n * @param {string} [options.directoryIndex=index.html] The `directoryIndex` will\n * check cache entries for a URLs ending with '/' to see if there is a hit when\n * appending the `directoryIndex` value.\n * @param {Array} [options.ignoreURLParametersMatching=[/^utm_/, /^fbclid$/]] An\n * array of regex's to remove search params when looking for a cache match.\n * @param {boolean} [options.cleanURLs=true] The `cleanURLs` option will\n * check the cache for the URL with a `.html` added to the end of the end.\n * @param {workbox-precaching~urlManipulation} [options.urlManipulation]\n * This is a function that should take a URL and return an array of\n * alternative URLs that should be checked for precache matches.\n */\n constructor(precacheController, options) {\n const match = ({ request, }) => {\n const urlsToCacheKeys = precacheController.getURLsToCacheKeys();\n for (const possibleURL of generateURLVariations(request.url, options)) {\n const cacheKey = urlsToCacheKeys.get(possibleURL);\n if (cacheKey) {\n const integrity = precacheController.getIntegrityForCacheKey(cacheKey);\n return { cacheKey, integrity };\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Precaching did not find a match for ` + getFriendlyURL(request.url));\n }\n return;\n };\n super(match, precacheController.strategy);\n }\n}\nexport { PrecacheRoute };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { removeIgnoredSearchParams } from './removeIgnoredSearchParams.js';\nimport '../_version.js';\n/**\n * Generator function that yields possible variations on the original URL to\n * check, one at a time.\n *\n * @param {string} url\n * @param {Object} options\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function* generateURLVariations(url, { ignoreURLParametersMatching = [/^utm_/, /^fbclid$/], directoryIndex = 'index.html', cleanURLs = true, urlManipulation, } = {}) {\n const urlObject = new URL(url, location.href);\n urlObject.hash = '';\n yield urlObject.href;\n const urlWithoutIgnoredParams = removeIgnoredSearchParams(urlObject, ignoreURLParametersMatching);\n yield urlWithoutIgnoredParams.href;\n if (directoryIndex && urlWithoutIgnoredParams.pathname.endsWith('/')) {\n const directoryURL = new URL(urlWithoutIgnoredParams.href);\n directoryURL.pathname += directoryIndex;\n yield directoryURL.href;\n }\n if (cleanURLs) {\n const cleanURL = new URL(urlWithoutIgnoredParams.href);\n cleanURL.pathname += '.html';\n yield cleanURL.href;\n }\n if (urlManipulation) {\n const additionalURLs = urlManipulation({ url: urlObject });\n for (const urlToAttempt of additionalURLs) {\n yield urlToAttempt.href;\n }\n }\n}\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Removes any URL search parameters that should be ignored.\n *\n * @param {URL} urlObject The original URL.\n * @param {Array} ignoreURLParametersMatching RegExps to test against\n * each search parameter name. Matches mean that the search parameter should be\n * ignored.\n * @return {URL} The URL with any ignored search parameters removed.\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function removeIgnoredSearchParams(urlObject, ignoreURLParametersMatching = []) {\n // Convert the iterable into an array at the start of the loop to make sure\n // deletion doesn't mess up iteration.\n for (const paramName of [...urlObject.searchParams.keys()]) {\n if (ignoreURLParametersMatching.some((regExp) => regExp.test(paramName))) {\n urlObject.searchParams.delete(paramName);\n }\n }\n return urlObject;\n}\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a [cache-first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#cache-first-falling-back-to-network)\n * request strategy.\n *\n * A cache first strategy is useful for assets that have been revisioned,\n * such as URLs like `/styles/example.a8f5f1.css`, since they\n * can be cached for long periods of time.\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass CacheFirst extends Strategy {\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'makeRequest',\n paramName: 'request',\n });\n }\n let response = await handler.cacheMatch(request);\n let error = undefined;\n if (!response) {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`No response found in the '${this.cacheName}' cache. ` +\n `Will respond with a network request.`);\n }\n try {\n response = await handler.fetchAndCachePut(request);\n }\n catch (err) {\n if (err instanceof Error) {\n error = err;\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Got response from network.`);\n }\n else {\n logs.push(`Unable to get a response from the network.`);\n }\n }\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Found a cached response in the '${this.cacheName}' cache.`);\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url, error });\n }\n return response;\n }\n}\nexport { CacheFirst };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { dontWaitFor } from 'workbox-core/_private/dontWaitFor.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { registerQuotaErrorCallback } from 'workbox-core/registerQuotaErrorCallback.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { CacheExpiration } from './CacheExpiration.js';\nimport './_version.js';\n/**\n * This plugin can be used in a `workbox-strategy` to regularly enforce a\n * limit on the age and / or the number of cached requests.\n *\n * It can only be used with `workbox-strategy` instances that have a\n * [custom `cacheName` property set](/web/tools/workbox/guides/configure-workbox#custom_cache_names_in_strategies).\n * In other words, it can't be used to expire entries in strategy that uses the\n * default runtime cache name.\n *\n * Whenever a cached response is used or updated, this plugin will look\n * at the associated cache and remove any old or extra responses.\n *\n * When using `maxAgeSeconds`, responses may be used *once* after expiring\n * because the expiration clean up will not have occurred until *after* the\n * cached response has been used. If the response has a \"Date\" header, then\n * a light weight expiration check is performed and the response will not be\n * used immediately.\n *\n * When using `maxEntries`, the entry least-recently requested will be removed\n * from the cache first.\n *\n * @memberof workbox-expiration\n */\nclass ExpirationPlugin {\n /**\n * @param {ExpirationPluginOptions} config\n * @param {number} [config.maxEntries] The maximum number of entries to cache.\n * Entries used the least will be removed as the maximum is reached.\n * @param {number} [config.maxAgeSeconds] The maximum age of an entry before\n * it's treated as stale and removed.\n * @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)\n * that will be used when calling `delete()` on the cache.\n * @param {boolean} [config.purgeOnQuotaError] Whether to opt this cache in to\n * automatic deletion if the available storage quota has been exceeded.\n */\n constructor(config = {}) {\n /**\n * A \"lifecycle\" callback that will be triggered automatically by the\n * `workbox-strategies` handlers when a `Response` is about to be returned\n * from a [Cache](https://developer.mozilla.org/en-US/docs/Web/API/Cache) to\n * the handler. It allows the `Response` to be inspected for freshness and\n * prevents it from being used if the `Response`'s `Date` header value is\n * older than the configured `maxAgeSeconds`.\n *\n * @param {Object} options\n * @param {string} options.cacheName Name of the cache the response is in.\n * @param {Response} options.cachedResponse The `Response` object that's been\n * read from a cache and whose freshness should be checked.\n * @return {Response} Either the `cachedResponse`, if it's\n * fresh, or `null` if the `Response` is older than `maxAgeSeconds`.\n *\n * @private\n */\n this.cachedResponseWillBeUsed = async ({ event, request, cacheName, cachedResponse, }) => {\n if (!cachedResponse) {\n return null;\n }\n const isFresh = this._isResponseDateFresh(cachedResponse);\n // Expire entries to ensure that even if the expiration date has\n // expired, it'll only be used once.\n const cacheExpiration = this._getCacheExpiration(cacheName);\n dontWaitFor(cacheExpiration.expireEntries());\n // Update the metadata for the request URL to the current timestamp,\n // but don't `await` it as we don't want to block the response.\n const updateTimestampDone = cacheExpiration.updateTimestamp(request.url);\n if (event) {\n try {\n event.waitUntil(updateTimestampDone);\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n // The event may not be a fetch event; only log the URL if it is.\n if ('request' in event) {\n logger.warn(`Unable to ensure service worker stays alive when ` +\n `updating cache entry for ` +\n `'${getFriendlyURL(event.request.url)}'.`);\n }\n }\n }\n }\n return isFresh ? cachedResponse : null;\n };\n /**\n * A \"lifecycle\" callback that will be triggered automatically by the\n * `workbox-strategies` handlers when an entry is added to a cache.\n *\n * @param {Object} options\n * @param {string} options.cacheName Name of the cache that was updated.\n * @param {string} options.request The Request for the cached entry.\n *\n * @private\n */\n this.cacheDidUpdate = async ({ cacheName, request, }) => {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(cacheName, 'string', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'cacheDidUpdate',\n paramName: 'cacheName',\n });\n assert.isInstance(request, Request, {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'cacheDidUpdate',\n paramName: 'request',\n });\n }\n const cacheExpiration = this._getCacheExpiration(cacheName);\n await cacheExpiration.updateTimestamp(request.url);\n await cacheExpiration.expireEntries();\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!(config.maxEntries || config.maxAgeSeconds)) {\n throw new WorkboxError('max-entries-or-age-required', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n });\n }\n if (config.maxEntries) {\n assert.isType(config.maxEntries, 'number', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n paramName: 'config.maxEntries',\n });\n }\n if (config.maxAgeSeconds) {\n assert.isType(config.maxAgeSeconds, 'number', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n paramName: 'config.maxAgeSeconds',\n });\n }\n }\n this._config = config;\n this._maxAgeSeconds = config.maxAgeSeconds;\n this._cacheExpirations = new Map();\n if (config.purgeOnQuotaError) {\n registerQuotaErrorCallback(() => this.deleteCacheAndMetadata());\n }\n }\n /**\n * A simple helper method to return a CacheExpiration instance for a given\n * cache name.\n *\n * @param {string} cacheName\n * @return {CacheExpiration}\n *\n * @private\n */\n _getCacheExpiration(cacheName) {\n if (cacheName === cacheNames.getRuntimeName()) {\n throw new WorkboxError('expire-custom-caches-only');\n }\n let cacheExpiration = this._cacheExpirations.get(cacheName);\n if (!cacheExpiration) {\n cacheExpiration = new CacheExpiration(cacheName, this._config);\n this._cacheExpirations.set(cacheName, cacheExpiration);\n }\n return cacheExpiration;\n }\n /**\n * @param {Response} cachedResponse\n * @return {boolean}\n *\n * @private\n */\n _isResponseDateFresh(cachedResponse) {\n if (!this._maxAgeSeconds) {\n // We aren't expiring by age, so return true, it's fresh\n return true;\n }\n // Check if the 'date' header will suffice a quick expiration check.\n // See https://github.com/GoogleChromeLabs/sw-toolbox/issues/164 for\n // discussion.\n const dateHeaderTimestamp = this._getDateHeaderTimestamp(cachedResponse);\n if (dateHeaderTimestamp === null) {\n // Unable to parse date, so assume it's fresh.\n return true;\n }\n // If we have a valid headerTime, then our response is fresh iff the\n // headerTime plus maxAgeSeconds is greater than the current time.\n const now = Date.now();\n return dateHeaderTimestamp >= now - this._maxAgeSeconds * 1000;\n }\n /**\n * This method will extract the data header and parse it into a useful\n * value.\n *\n * @param {Response} cachedResponse\n * @return {number|null}\n *\n * @private\n */\n _getDateHeaderTimestamp(cachedResponse) {\n if (!cachedResponse.headers.has('date')) {\n return null;\n }\n const dateHeader = cachedResponse.headers.get('date');\n const parsedDate = new Date(dateHeader);\n const headerTime = parsedDate.getTime();\n // If the Date header was invalid for some reason, parsedDate.getTime()\n // will return NaN.\n if (isNaN(headerTime)) {\n return null;\n }\n return headerTime;\n }\n /**\n * This is a helper method that performs two operations:\n *\n * - Deletes *all* the underlying Cache instances associated with this plugin\n * instance, by calling caches.delete() on your behalf.\n * - Deletes the metadata from IndexedDB used to keep track of expiration\n * details for each Cache instance.\n *\n * When using cache expiration, calling this method is preferable to calling\n * `caches.delete()` directly, since this will ensure that the IndexedDB\n * metadata is also cleanly removed and open IndexedDB instances are deleted.\n *\n * Note that if you're *not* using cache expiration for a given cache, calling\n * `caches.delete()` and passing in the cache's name should be sufficient.\n * There is no Workbox-specific method needed for cleanup in that case.\n */\n async deleteCacheAndMetadata() {\n // Do this one at a time instead of all at once via `Promise.all()` to\n // reduce the chance of inconsistency if a promise rejects.\n for (const [cacheName, cacheExpiration] of this._cacheExpirations) {\n await self.caches.delete(cacheName);\n await cacheExpiration.delete();\n }\n // Reset this._cacheExpirations to its initial state.\n this._cacheExpirations = new Map();\n }\n}\nexport { ExpirationPlugin };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from './_private/logger.js';\nimport { assert } from './_private/assert.js';\nimport { quotaErrorCallbacks } from './models/quotaErrorCallbacks.js';\nimport './_version.js';\n/**\n * Adds a function to the set of quotaErrorCallbacks that will be executed if\n * there's a quota error.\n *\n * @param {Function} callback\n * @memberof workbox-core\n */\n// Can't change Function type\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction registerQuotaErrorCallback(callback) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(callback, 'function', {\n moduleName: 'workbox-core',\n funcName: 'register',\n paramName: 'callback',\n });\n }\n quotaErrorCallbacks.add(callback);\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Registered a callback to respond to quota errors.', callback);\n }\n}\nexport { registerQuotaErrorCallback };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { cacheOkAndOpaquePlugin } from './plugins/cacheOkAndOpaquePlugin.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [network first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-first-falling-back-to-cache)\n * request strategy.\n *\n * By default, this strategy will cache responses with a 200 status code as\n * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).\n * Opaque responses are are cross-origin requests where the response doesn't\n * support [CORS](https://enable-cors.org/).\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass NetworkFirst extends Strategy {\n /**\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)\n * @param {number} [options.networkTimeoutSeconds] If set, any network requests\n * that fail to respond within the timeout will fallback to the cache.\n *\n * This option can be used to combat\n * \"[lie-fi]{@link https://developers.google.com/web/fundamentals/performance/poor-connectivity/#lie-fi}\"\n * scenarios.\n */\n constructor(options = {}) {\n super(options);\n // If this instance contains no plugins with a 'cacheWillUpdate' callback,\n // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list.\n if (!this.plugins.some((p) => 'cacheWillUpdate' in p)) {\n this.plugins.unshift(cacheOkAndOpaquePlugin);\n }\n this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0;\n if (process.env.NODE_ENV !== 'production') {\n if (this._networkTimeoutSeconds) {\n assert.isType(this._networkTimeoutSeconds, 'number', {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'constructor',\n paramName: 'networkTimeoutSeconds',\n });\n }\n }\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'handle',\n paramName: 'makeRequest',\n });\n }\n const promises = [];\n let timeoutId;\n if (this._networkTimeoutSeconds) {\n const { id, promise } = this._getTimeoutPromise({ request, logs, handler });\n timeoutId = id;\n promises.push(promise);\n }\n const networkPromise = this._getNetworkPromise({\n timeoutId,\n request,\n logs,\n handler,\n });\n promises.push(networkPromise);\n const response = await handler.waitUntil((async () => {\n // Promise.race() will resolve as soon as the first promise resolves.\n return ((await handler.waitUntil(Promise.race(promises))) ||\n // If Promise.race() resolved with null, it might be due to a network\n // timeout + a cache miss. If that were to happen, we'd rather wait until\n // the networkPromise resolves instead of returning null.\n // Note that it's fine to await an already-resolved promise, so we don't\n // have to check to see if it's still \"in flight\".\n (await networkPromise));\n })());\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url });\n }\n return response;\n }\n /**\n * @param {Object} options\n * @param {Request} options.request\n * @param {Array} options.logs A reference to the logs array\n * @param {Event} options.event\n * @return {Promise}\n *\n * @private\n */\n _getTimeoutPromise({ request, logs, handler, }) {\n let timeoutId;\n const timeoutPromise = new Promise((resolve) => {\n const onNetworkTimeout = async () => {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Timing out the network response at ` +\n `${this._networkTimeoutSeconds} seconds.`);\n }\n resolve(await handler.cacheMatch(request));\n };\n timeoutId = setTimeout(onNetworkTimeout, this._networkTimeoutSeconds * 1000);\n });\n return {\n promise: timeoutPromise,\n id: timeoutId,\n };\n }\n /**\n * @param {Object} options\n * @param {number|undefined} options.timeoutId\n * @param {Request} options.request\n * @param {Array} options.logs A reference to the logs Array.\n * @param {Event} options.event\n * @return {Promise}\n *\n * @private\n */\n async _getNetworkPromise({ timeoutId, request, logs, handler, }) {\n let error;\n let response;\n try {\n response = await handler.fetchAndCachePut(request);\n }\n catch (fetchError) {\n if (fetchError instanceof Error) {\n error = fetchError;\n }\n }\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Got response from network.`);\n }\n else {\n logs.push(`Unable to get a response from the network. Will respond ` +\n `with a cached response.`);\n }\n }\n if (error || !response) {\n response = await handler.cacheMatch(request);\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Found a cached response in the '${this.cacheName}'` + ` cache.`);\n }\n else {\n logs.push(`No response found in the '${this.cacheName}' cache.`);\n }\n }\n }\n return response;\n }\n}\nexport { NetworkFirst };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { createPartialResponse } from './createPartialResponse.js';\nimport './_version.js';\n/**\n * The range request plugin makes it easy for a request with a 'Range' header to\n * be fulfilled by a cached response.\n *\n * It does this by intercepting the `cachedResponseWillBeUsed` plugin callback\n * and returning the appropriate subset of the cached response body.\n *\n * @memberof workbox-range-requests\n */\nclass RangeRequestsPlugin {\n constructor() {\n /**\n * @param {Object} options\n * @param {Request} options.request The original request, which may or may not\n * contain a Range: header.\n * @param {Response} options.cachedResponse The complete cached response.\n * @return {Promise} If request contains a 'Range' header, then a\n * new response with status 206 whose body is a subset of `cachedResponse` is\n * returned. Otherwise, `cachedResponse` is returned as-is.\n *\n * @private\n */\n this.cachedResponseWillBeUsed = async ({ request, cachedResponse, }) => {\n // Only return a sliced response if there's something valid in the cache,\n // and there's a Range: header in the request.\n if (cachedResponse && request.headers.has('range')) {\n return await createPartialResponse(request, cachedResponse);\n }\n // If there was no Range: header, or if cachedResponse wasn't valid, just\n // pass it through as-is.\n return cachedResponse;\n };\n }\n}\nexport { RangeRequestsPlugin };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { cacheOkAndOpaquePlugin } from './plugins/cacheOkAndOpaquePlugin.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [stale-while-revalidate](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#stale-while-revalidate)\n * request strategy.\n *\n * Resources are requested from both the cache and the network in parallel.\n * The strategy will respond with the cached version if available, otherwise\n * wait for the network response. The cache is updated with the network response\n * with each successful request.\n *\n * By default, this strategy will cache responses with a 200 status code as\n * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).\n * Opaque responses are cross-origin requests where the response doesn't\n * support [CORS](https://enable-cors.org/).\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass StaleWhileRevalidate extends Strategy {\n /**\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)\n */\n constructor(options = {}) {\n super(options);\n // If this instance contains no plugins with a 'cacheWillUpdate' callback,\n // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list.\n if (!this.plugins.some((p) => 'cacheWillUpdate' in p)) {\n this.plugins.unshift(cacheOkAndOpaquePlugin);\n }\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'handle',\n paramName: 'request',\n });\n }\n const fetchAndCachePromise = handler.fetchAndCachePut(request).catch(() => {\n // Swallow this error because a 'no-response' error will be thrown in\n // main handler return flow. This will be in the `waitUntil()` flow.\n });\n void handler.waitUntil(fetchAndCachePromise);\n let response = await handler.cacheMatch(request);\n let error;\n if (response) {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Found a cached response in the '${this.cacheName}'` +\n ` cache. Will update with the network response in the background.`);\n }\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`No response found in the '${this.cacheName}' cache. ` +\n `Will wait for the network response.`);\n }\n try {\n // NOTE(philipwalton): Really annoying that we have to type cast here.\n // https://github.com/microsoft/TypeScript/issues/20006\n response = (await fetchAndCachePromise);\n }\n catch (err) {\n if (err instanceof Error) {\n error = err;\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url, error });\n }\n return response;\n }\n}\nexport { StaleWhileRevalidate };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { deleteOutdatedCaches } from './utils/deleteOutdatedCaches.js';\nimport './_version.js';\n/**\n * Adds an `activate` event listener which will clean up incompatible\n * precaches that were created by older versions of Workbox.\n *\n * @memberof workbox-precaching\n */\nfunction cleanupOutdatedCaches() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('activate', ((event) => {\n const cacheName = cacheNames.getPrecacheName();\n event.waitUntil(deleteOutdatedCaches(cacheName).then((cachesDeleted) => {\n if (process.env.NODE_ENV !== 'production') {\n if (cachesDeleted.length > 0) {\n logger.log(`The following out-of-date precaches were cleaned up ` +\n `automatically:`, cachesDeleted);\n }\n }\n }));\n }));\n}\nexport { cleanupOutdatedCaches };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst SUBSTRING_TO_FIND = '-precache-';\n/**\n * Cleans up incompatible precaches that were created by older versions of\n * Workbox, by a service worker registered under the current scope.\n *\n * This is meant to be called as part of the `activate` event.\n *\n * This should be safe to use as long as you don't include `substringToFind`\n * (defaulting to `-precache-`) in your non-precache cache names.\n *\n * @param {string} currentPrecacheName The cache name currently in use for\n * precaching. This cache won't be deleted.\n * @param {string} [substringToFind='-precache-'] Cache names which include this\n * substring will be deleted (excluding `currentPrecacheName`).\n * @return {Array} A list of all the cache names that were deleted.\n *\n * @private\n * @memberof workbox-precaching\n */\nconst deleteOutdatedCaches = async (currentPrecacheName, substringToFind = SUBSTRING_TO_FIND) => {\n const cacheNames = await self.caches.keys();\n const cacheNamesToDelete = cacheNames.filter((cacheName) => {\n return (cacheName.includes(substringToFind) &&\n cacheName.includes(self.registration.scope) &&\n cacheName !== currentPrecacheName);\n });\n await Promise.all(cacheNamesToDelete.map((cacheName) => self.caches.delete(cacheName)));\n return cacheNamesToDelete;\n};\nexport { deleteOutdatedCaches };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport './_version.js';\n/**\n * Claim any currently available clients once the service worker\n * becomes active. This is normally used in conjunction with `skipWaiting()`.\n *\n * @memberof workbox-core\n */\nfunction clientsClaim() {\n self.addEventListener('activate', () => self.clients.claim());\n}\nexport { clientsClaim };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { addRoute } from './addRoute.js';\nimport { precache } from './precache.js';\nimport './_version.js';\n/**\n * This method will add entries to the precache list and add a route to\n * respond to fetch events.\n *\n * This is a convenience method that will call\n * {@link workbox-precaching.precache} and\n * {@link workbox-precaching.addRoute} in a single call.\n *\n * @param {Array} entries Array of entries to precache.\n * @param {Object} [options] See the\n * {@link workbox-precaching.PrecacheRoute} options.\n *\n * @memberof workbox-precaching\n */\nfunction precacheAndRoute(entries, options) {\n precache(entries);\n addRoute(options);\n}\nexport { precacheAndRoute };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport './_version.js';\n/**\n * Adds items to the precache list, removing any duplicates and\n * stores the files in the\n * {@link workbox-core.cacheNames|\"precache cache\"} when the service\n * worker installs.\n *\n * This method can be called multiple times.\n *\n * Please note: This method **will not** serve any of the cached files for you.\n * It only precaches files. To respond to a network request you call\n * {@link workbox-precaching.addRoute}.\n *\n * If you have a single array of files to precache, you can just call\n * {@link workbox-precaching.precacheAndRoute}.\n *\n * @param {Array} [entries=[]] Array of entries to precache.\n *\n * @memberof workbox-precaching\n */\nfunction precache(entries) {\n const precacheController = getOrCreatePrecacheController();\n precacheController.precache(entries);\n}\nexport { precache };\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { registerRoute } from 'workbox-routing/registerRoute.js';\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport { PrecacheRoute } from './PrecacheRoute.js';\nimport './_version.js';\n/**\n * Add a `fetch` listener to the service worker that will\n * respond to\n * [network requests]{@link https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Custom_responses_to_requests}\n * with precached assets.\n *\n * Requests for assets that aren't precached, the `FetchEvent` will not be\n * responded to, allowing the event to fall through to other `fetch` event\n * listeners.\n *\n * @param {Object} [options] See the {@link workbox-precaching.PrecacheRoute}\n * options.\n *\n * @memberof workbox-precaching\n */\nfunction addRoute(options) {\n const precacheController = getOrCreatePrecacheController();\n const precacheRoute = new PrecacheRoute(precacheController, options);\n registerRoute(precacheRoute);\n}\nexport { addRoute };\n"],"names":["self","_","e","messageGenerator","code","args","msg","length","JSON","stringify","WorkboxError","Error","constructor","errorCode","details","super","this","name","normalizeHandler","handler","handle","Route","match","method","setCatchHandler","catchHandler","RegExpRoute","regExp","url","result","exec","href","origin","location","index","slice","Router","_routes","Map","_defaultHandlerMap","routes","addFetchListener","addEventListener","event","request","responsePromise","handleRequest","respondWith","addCacheListener","data","type","payload","requestPromises","Promise","all","urlsToCache","map","entry","Request","waitUntil","ports","then","postMessage","URL","protocol","startsWith","sameOrigin","params","route","findMatchingRoute","has","get","err","reject","_catchHandler","catch","async","catchErr","matchResult","Array","isArray","Object","keys","undefined","setDefaultHandler","set","registerRoute","push","unregisterRoute","routeIndex","indexOf","splice","defaultRouter","getOrCreateDefaultRouter","capture","captureUrl","RegExp","moduleName","funcName","paramName","cacheOkAndOpaquePlugin","cacheWillUpdate","response","status","_cacheNameDetails","googleAnalytics","precache","prefix","runtime","suffix","registration","scope","_createCacheName","cacheName","filter","value","join","cacheNames","userCacheName","stripParams","fullURL","ignoreParams","strippedURL","param","searchParams","delete","Deferred","promise","resolve","quotaErrorCallbacks","Set","toRequest","input","StrategyHandler","strategy","options","_cacheKeys","assign","_strategy","_handlerDeferred","_extendLifetimePromises","_plugins","plugins","_pluginStateMap","plugin","mode","FetchEvent","preloadResponse","possiblePreloadResponse","originalRequest","hasCallback","clone","cb","iterateCallbacks","thrownErrorMessage","message","pluginFilteredRequest","fetchResponse","fetch","fetchOptions","callback","error","runCallbacks","responseClone","cachePut","key","cachedResponse","matchOptions","effectiveRequest","getCacheKey","multiMatchOptions","caches","ms","setTimeout","String","replace","responseToCache","_ensureResponseSafeToCache","cache","open","hasCacheUpdateCallback","oldResponse","strippedRequestURL","keysOptions","ignoreSearch","cacheKeys","cacheKey","cacheMatchIgnoreParams","put","executeQuotaErrorCallbacks","newResponse","state","statefulCallback","statefulParam","shift","destroy","pluginsUsed","Strategy","responseDone","handleAll","_getResponse","_awaitComplete","_handle","doneWaiting","waitUntilError","dontWaitFor","instanceOfAny","object","constructors","some","c","idbProxyableTypes","cursorAdvanceMethods","cursorRequestMap","WeakMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","idbProxyTraps","target","prop","receiver","IDBTransaction","objectStoreNames","objectStore","wrap","wrapFunction","func","IDBDatabase","prototype","transaction","IDBCursor","advance","continue","continuePrimaryKey","includes","apply","unwrap","storeNames","tx","call","sort","transformCachableValue","done","unlisten","removeEventListener","complete","DOMException","cacheDonePromiseForTransaction","IDBObjectStore","IDBIndex","Proxy","IDBRequest","success","promisifyRequest","newValue","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","store","oldTraps","_extends","CACHE_OBJECT_STORE","normalizeURL","unNormalizedUrl","hash","CacheTimestampsModel","_db","_cacheName","_upgradeDb","db","objStore","createObjectStore","keyPath","createIndex","unique","_upgradeDbAndDeleteOldDbs","blocked","indexedDB","deleteDatabase","oldVersion","deleteDB","timestamp","id","_getId","getDb","durability","minTimestamp","maxCount","cursor","openCursor","entriesToDelete","entriesNotDeletedCount","urlsDeleted","version","upgrade","blocking","terminated","openPromise","newVersion","openDB","bind","CacheExpiration","config","_isRunning","_rerunRequested","_maxEntries","maxEntries","_maxAgeSeconds","maxAgeSeconds","_matchOptions","_timestampModel","Date","now","urlsExpired","expireEntries","setTimestamp","getTimestamp","expireOlderThan","Infinity","createPartialResponse","originalResponse","rangeHeader","headers","boundaries","normalizedRangeHeader","trim","toLowerCase","rangeParts","start","Number","end","parseRangeHeader","originalBlob","blob","effectiveBoundaries","blobSize","size","effectiveStart","effectiveEnd","calculateEffectiveBoundaries","slicedBlob","slicedBlobSize","slicedResponse","Response","statusText","asyncFn","returnPromise","createCacheKey","urlObject","revision","cacheKeyURL","originalURL","PrecacheInstallReportPlugin","updatedURLs","notUpdatedURLs","handlerWillStart","cachedResponseWillBeUsed","PrecacheCacheKeyPlugin","precacheController","cacheKeyWillBeUsed","_precacheController","getCacheKeyForURL","supportStatus","copyResponse","modifier","clonedResponse","responseInit","Headers","modifiedResponseInit","body","testResponse","canConstructResponseFromBodyStream","PrecacheStrategy","_fallbackToNetwork","fallbackToNetwork","copyRedirectedCacheableResponsesPlugin","cacheMatch","_handleInstall","_handleFetch","integrityInManifest","integrity","integrityInRequest","noIntegrityConflict","_useDefaultCacheabilityPluginIfNeeded","defaultPluginIndex","cacheWillUpdatePluginCount","entries","defaultPrecacheCacheabilityPlugin","redirected","PrecacheController","_urlsToCacheKeys","_urlsToCacheModes","_cacheKeysToIntegrities","install","activate","addToCacheList","_installAndActiveListenersAdded","urlsToWarnAbout","cacheMode","firstEntry","secondEntry","warningMessage","console","warn","installReportPlugin","credentials","currentlyCachedRequests","expectedCacheKeys","values","deletedURLs","getURLsToCacheKeys","getCachedURLs","getIntegrityForCacheKey","createHandlerBoundToURL","getOrCreatePrecacheController","PrecacheRoute","urlsToCacheKeys","possibleURL","ignoreURLParametersMatching","directoryIndex","cleanURLs","urlManipulation","urlWithoutIgnoredParams","test","removeIgnoredSearchParams","pathname","endsWith","directoryURL","cleanURL","additionalURLs","urlToAttempt","generateURLVariations","fetchAndCachePut","isFresh","_isResponseDateFresh","cacheExpiration","_getCacheExpiration","updateTimestampDone","updateTimestamp","cacheDidUpdate","_config","_cacheExpirations","purgeOnQuotaError","add","registerQuotaErrorCallback","deleteCacheAndMetadata","dateHeaderTimestamp","_getDateHeaderTimestamp","dateHeader","headerTime","getTime","isNaN","p","unshift","_networkTimeoutSeconds","networkTimeoutSeconds","logs","promises","timeoutId","_getTimeoutPromise","networkPromise","_getNetworkPromise","race","fetchError","clearTimeout","fetchAndCachePromise","currentPrecacheName","substringToFind","cacheNamesToDelete","deleteOutdatedCaches","cachesDeleted","clients","claim","addRoute"],"mappings":"6CAEA,IACIA,KAAK,uBAAyBC,GACjC,CACD,MAAOC,GAAG,CCEV,MCgBaC,EAdI,CAACC,KAASC,KACvB,IAAIC,EAAMF,EAIV,OAHIC,EAAKE,OAAS,IACdD,GAAQ,OAAME,KAAKC,UAAUJ,MAE1BC,CAAP,ECIJ,MAAMI,UAAqBC,MASvBC,YAAYC,EAAWC,GAEnBC,MADgBZ,EAAiBU,EAAWC,IAE5CE,KAAKC,KAAOJ,EACZG,KAAKF,QAAUA,CAClB,EC9BL,IACId,KAAK,0BAA4BC,GACpC,CACD,MAAOC,GAAG,CCWH,MCAMgB,EAAoBC,GACzBA,GAA8B,iBAAZA,EASXA,EAWA,CAAEC,OAAQD,GCjBzB,MAAME,EAYFT,YAAYU,EAAOH,EAASI,EFhBH,OE8BrBP,KAAKG,QAAUD,EAAiBC,GAChCH,KAAKM,MAAQA,EACbN,KAAKO,OAASA,CACjB,CAMDC,gBAAgBL,GACZH,KAAKS,aAAeP,EAAiBC,EACxC,ECnCL,MAAMO,UAAoBL,EActBT,YAAYe,EAAQR,EAASI,GAiCzBR,OAxBc,EAAGa,UACb,MAAMC,EAASF,EAAOG,KAAKF,EAAIG,MAE/B,GAAKF,IAODD,EAAII,SAAWC,SAASD,QAA2B,IAAjBH,EAAOK,OAY7C,OAAOL,EAAOM,MAAM,EAApB,GAEShB,EAASI,EACzB,ECvCL,MAAMa,EAIFxB,cACII,KAAKqB,EAAU,IAAIC,IACnBtB,KAAKuB,EAAqB,IAAID,GACjC,CAMGE,aACA,OAAOxB,KAAKqB,CACf,CAKDI,mBAEIzC,KAAK0C,iBAAiB,SAAWC,IAC7B,MAAMC,QAAEA,GAAYD,EACdE,EAAkB7B,KAAK8B,cAAc,CAAEF,UAASD,UAClDE,GACAF,EAAMI,YAAYF,EACrB,GAER,CAuBDG,mBAEIhD,KAAK0C,iBAAiB,WAAaC,IAG/B,GAAIA,EAAMM,MAA4B,eAApBN,EAAMM,KAAKC,KAAuB,CAEhD,MAAMC,QAAEA,GAAYR,EAAMM,KAIpBG,EAAkBC,QAAQC,IAAIH,EAAQI,YAAYC,KAAKC,IACpC,iBAAVA,IACPA,EAAQ,CAACA,IAEb,MAAMb,EAAU,IAAIc,WAAWD,GAC/B,OAAOzC,KAAK8B,cAAc,CAAEF,UAASD,SAArC,KAKJA,EAAMgB,UAAUP,GAEZT,EAAMiB,OAASjB,EAAMiB,MAAM,IACtBR,EAAgBS,MAAK,IAAMlB,EAAMiB,MAAM,GAAGE,aAAY,IAElE,IAER,CAaDhB,eAAcF,QAAEA,EAAFD,MAAWA,IASrB,MAAMf,EAAM,IAAImC,IAAInB,EAAQhB,IAAKK,SAASF,MAC1C,IAAKH,EAAIoC,SAASC,WAAW,QAIzB,OAEJ,MAAMC,EAAatC,EAAII,SAAWC,SAASD,QACrCmC,OAAEA,EAAFC,MAAUA,GAAUpD,KAAKqD,kBAAkB,CAC7C1B,QACAC,UACAsB,aACAtC,QAEJ,IAAIT,EAAUiD,GAASA,EAAMjD,QAe7B,MAAMI,EAASqB,EAAQrB,OAQvB,IAPKJ,GAAWH,KAAKuB,EAAmB+B,IAAI/C,KAKxCJ,EAAUH,KAAKuB,EAAmBgC,IAAIhD,KAErCJ,EAMD,OAkBJ,IAAI0B,EACJ,IACIA,EAAkB1B,EAAQC,OAAO,CAAEQ,MAAKgB,UAASD,QAAOwB,UAD5D,CAGA,MAAOK,GACH3B,EAAkBQ,QAAQoB,OAAOD,EA3EN,CA8E/B,MAAM/C,EAAe2C,GAASA,EAAM3C,aAuCpC,OAtCIoB,aAA2BQ,UAC1BrC,KAAK0D,GAAiBjD,KACvBoB,EAAkBA,EAAgB8B,OAAMC,UAEpC,GAAInD,EAUA,IACI,aAAaA,EAAaL,OAAO,CAAEQ,MAAKgB,UAASD,QAAOwB,UAD5D,CAGA,MAAOU,GACCA,aAAoBlE,QACpB6D,EAAMK,EAEb,CAEL,GAAI7D,KAAK0D,EAUL,OAAO1D,KAAK0D,EAActD,OAAO,CAAEQ,MAAKgB,UAASD,UAErD,MAAM6B,CAAN,KAGD3B,CACV,CAgBDwB,mBAAkBzC,IAAEA,EAAFsC,WAAOA,EAAPtB,QAAmBA,EAAnBD,MAA4BA,IAC1C,MAAMH,EAASxB,KAAKqB,EAAQkC,IAAI3B,EAAQrB,SAAW,GACnD,IAAK,MAAM6C,KAAS5B,EAAQ,CACxB,IAAI2B,EAGJ,MAAMW,EAAcV,EAAM9C,MAAM,CAAEM,MAAKsC,aAAYtB,UAASD,UAC5D,GAAImC,EA6BA,OAjBAX,EAASW,GACLC,MAAMC,QAAQb,IAA6B,IAAlBA,EAAO5D,QAI3BuE,EAAYlE,cAAgBqE,QACG,IAApCA,OAAOC,KAAKJ,GAAavE,QAIG,kBAAhBuE,KAPZX,OAASgB,GAcN,CAAEf,QAAOD,SApC4B,CAwCpD,MAAO,EACV,CAeDiB,kBAAkBjE,EAASI,EJ1SF,OI2SrBP,KAAKuB,EAAmB8C,IAAI9D,EAAQL,EAAiBC,GACxD,CAQDK,gBAAgBL,GACZH,KAAK0D,EAAgBxD,EAAiBC,EACzC,CAMDmE,cAAclB,GAiCLpD,KAAKqB,EAAQiC,IAAIF,EAAM7C,SACxBP,KAAKqB,EAAQgD,IAAIjB,EAAM7C,OAAQ,IAInCP,KAAKqB,EAAQkC,IAAIH,EAAM7C,QAAQgE,KAAKnB,EACvC,CAMDoB,gBAAgBpB,GACZ,IAAKpD,KAAKqB,EAAQiC,IAAIF,EAAM7C,QACxB,MAAM,IAAIb,EAAa,6CAA8C,CACjEa,OAAQ6C,EAAM7C,SAGtB,MAAMkE,EAAazE,KAAKqB,EAAQkC,IAAIH,EAAM7C,QAAQmE,QAAQtB,GAC1D,KAAIqB,GAAc,GAId,MAAM,IAAI/E,EAAa,yCAHvBM,KAAKqB,EAAQkC,IAAIH,EAAM7C,QAAQoE,OAAOF,EAAY,EAKzD,EC7XL,IAAIG,EAQG,MAAMC,EAA2B,KAC/BD,IACDA,EAAgB,IAAIxD,EAEpBwD,EAAcnD,mBACdmD,EAAc5C,oBAEX4C,GCOX,SAASN,EAAcQ,EAAS3E,EAASI,GACrC,IAAI6C,EACJ,GAAuB,iBAAZ0B,EAAsB,CAC7B,MAAMC,EAAa,IAAIhC,IAAI+B,EAAS7D,SAASF,MAkC7CqC,EAAQ,IAAI/C,GAZU,EAAGO,SASdA,EAAIG,OAASgE,EAAWhE,MAGFZ,EAASI,EAC7C,MACI,GAAIuE,aAAmBE,OAExB5B,EAAQ,IAAI1C,EAAYoE,EAAS3E,EAASI,QAEzC,GAAuB,mBAAZuE,EAEZ1B,EAAQ,IAAI/C,EAAMyE,EAAS3E,EAASI,OAEnC,MAAIuE,aAAmBzE,GAIxB,MAAM,IAAIX,EAAa,yBAA0B,CAC7CuF,WAAY,kBACZC,SAAU,gBACVC,UAAW,YANf/B,EAAQ0B,CAQX,CAGD,OAFsBD,IACRP,cAAclB,GACrBA,CACV,CCzFD,IACIpE,KAAK,6BAA+BC,GACvC,CACD,MAAOC,GAAG,CCGH,MAAMkG,EAAyB,CAWlCC,gBAAiBzB,OAAS0B,cACE,MAApBA,EAASC,QAAsC,IAApBD,EAASC,OAC7BD,EAEJ,MCfTE,EAAoB,CACtBC,gBAAiB,kBACjBC,SAAU,cACVC,OAAQ,UACRC,QAAS,UACTC,OAAgC,oBAAjBC,aAA+BA,aAAaC,MAAQ,IAEjEC,EAAoBC,GACf,CAACT,EAAkBG,OAAQM,EAAWT,EAAkBK,QAC1DK,QAAQC,GAAUA,GAASA,EAAM5G,OAAS,IAC1C6G,KAAK,KAODC,EAWSC,GACPA,GAAiBN,EAAiBR,EAAkBE,UAZtDW,EAiBQC,GACNA,GAAiBN,EAAiBR,EAAkBI,SCpCnE,SAASW,EAAYC,EAASC,GAC1B,MAAMC,EAAc,IAAI3D,IAAIyD,GAC5B,IAAK,MAAMG,KAASF,EAChBC,EAAYE,aAAaC,OAAOF,GAEpC,OAAOD,EAAY3F,IACtB,CCGD,MAAM+F,EAIFlH,cACII,KAAK+G,QAAU,IAAI1E,SAAQ,CAAC2E,EAASvD,KACjCzD,KAAKgH,QAAUA,EACfhH,KAAKyD,OAASA,CAAd,GAEP,ECdL,MAAMwD,EAAsB,IAAIC,ICKhC,SAASC,EAAUC,GACf,MAAwB,iBAAVA,EAAqB,IAAI1E,QAAQ0E,GAASA,CAC3D,CAUD,MAAMC,EAiBFzH,YAAY0H,EAAUC,GAClBvH,KAAKwH,EAAa,GA8ClBvD,OAAOwD,OAAOzH,KAAMuH,GACpBvH,KAAK2B,MAAQ4F,EAAQ5F,MACrB3B,KAAK0H,EAAYJ,EACjBtH,KAAK2H,EAAmB,IAAIb,EAC5B9G,KAAK4H,EAA0B,GAG/B5H,KAAK6H,EAAW,IAAIP,EAASQ,SAC7B9H,KAAK+H,EAAkB,IAAIzG,IAC3B,IAAK,MAAM0G,KAAUhI,KAAK6H,EACtB7H,KAAK+H,EAAgB1D,IAAI2D,EAAQ,CAAjC,GAEJhI,KAAK2B,MAAMgB,UAAU3C,KAAK2H,EAAiBZ,QAC9C,CAcUnD,YAACwD,GACR,MAAMzF,MAAEA,GAAU3B,KAClB,IAAI4B,EAAUuF,EAAUC,GACxB,GAAqB,aAAjBxF,EAAQqG,MACRtG,aAAiBuG,YACjBvG,EAAMwG,gBAAiB,CACvB,MAAMC,QAAiCzG,EAAMwG,gBAC7C,GAAIC,EAKA,OAAOA,CAZA,CAkBf,MAAMC,EAAkBrI,KAAKsI,YAAY,gBACnC1G,EAAQ2G,QACR,KACN,IACI,IAAK,MAAMC,KAAMxI,KAAKyI,iBAAiB,oBACnC7G,QAAgB4G,EAAG,CAAE5G,QAASA,EAAQ2G,QAAS5G,SAFvD,CAKA,MAAO6B,GACH,GAAIA,aAAe7D,MACf,MAAM,IAAID,EAAa,kCAAmC,CACtDgJ,mBAAoBlF,EAAImF,SA7BrB,CAoCf,MAAMC,EAAwBhH,EAAQ2G,QACtC,IACI,IAAIM,EAEJA,QAAsBC,MAAMlH,EAA0B,aAAjBA,EAAQqG,UAAsB9D,EAAYnE,KAAK0H,EAAUqB,cAM9F,IAAK,MAAMC,KAAYhJ,KAAKyI,iBAAiB,mBACzCI,QAAsBG,EAAS,CAC3BrH,QACAC,QAASgH,EACTtD,SAAUuD,IAGlB,OAAOA,CAhBX,CAkBA,MAAOI,GAeH,MARIZ,SACMrI,KAAKkJ,aAAa,eAAgB,CACpCD,MAAOA,EACPtH,QACA0G,gBAAiBA,EAAgBE,QACjC3G,QAASgH,EAAsBL,UAGjCU,CACT,CACJ,CAWqBrF,uBAACwD,GACnB,MAAM9B,QAAiBtF,KAAK8I,MAAM1B,GAC5B+B,EAAgB7D,EAASiD,QAE/B,OADKvI,KAAK2C,UAAU3C,KAAKoJ,SAAShC,EAAO+B,IAClC7D,CACV,CAae1B,iBAACyF,GACb,MAAMzH,EAAUuF,EAAUkC,GAC1B,IAAIC,EACJ,MAAMrD,UAAEA,EAAFsD,aAAaA,GAAiBvJ,KAAK0H,EACnC8B,QAAyBxJ,KAAKyJ,YAAY7H,EAAS,QACnD8H,EAAoBzF,OAAOwD,OAAOxD,OAAOwD,OAAO,CAAA,EAAI8B,GAAe,CAAEtD,cAC3EqD,QAAuBK,OAAOrJ,MAAMkJ,EAAkBE,GAStD,IAAK,MAAMV,KAAYhJ,KAAKyI,iBAAiB,4BACzCa,QACWN,EAAS,CACZ/C,YACAsD,eACAD,iBACA1H,QAAS4H,EACT7H,MAAO3B,KAAK2B,cACTwC,EAEf,OAAOmF,CACV,CAgBa1F,eAACyF,EAAK/D,GAChB,MAAM1D,EAAUuF,EAAUkC,GCxP3B,IAAiBO,UD2PF,EC1PX,IAAIvH,SAAS2E,GAAY6C,WAAW7C,EAAS4C,MD2PhD,MAAMJ,QAAyBxJ,KAAKyJ,YAAY7H,EAAS,SAiBzD,IAAK0D,EAKD,MAAM,IAAI5F,EAAa,6BAA8B,CACjDkB,KE1RQA,EF0RY4I,EAAiB5I,IEzRlC,IAAImC,IAAI+G,OAAOlJ,GAAMK,SAASF,MAG/BA,KAAKgJ,QAAQ,IAAI/E,OAAQ,IAAG/D,SAASD,UAAW,OAJ1CJ,MF6RhB,MAAMoJ,QAAwBhK,KAAKiK,EAA2B3E,GAC9D,IAAK0E,EAKD,OAAO,EAEX,MAAM/D,UAAEA,EAAFsD,aAAaA,GAAiBvJ,KAAK0H,EACnCwC,QAAclL,KAAK2K,OAAOQ,KAAKlE,GAC/BmE,EAAyBpK,KAAKsI,YAAY,kBAC1C+B,EAAcD,QHtR5BxG,eAAsCsG,EAAOtI,EAAS6E,EAAc8C,GAChE,MAAMe,EAAqB/D,EAAY3E,EAAQhB,IAAK6F,GAEpD,GAAI7E,EAAQhB,MAAQ0J,EAChB,OAAOJ,EAAM5J,MAAMsB,EAAS2H,GAGhC,MAAMgB,EAActG,OAAOwD,OAAOxD,OAAOwD,OAAO,CAAA,EAAI8B,GAAe,CAAEiB,cAAc,IAC7EC,QAAkBP,EAAMhG,KAAKtC,EAAS2I,GAC5C,IAAK,MAAMG,KAAYD,EAEnB,GAAIH,IADwB/D,EAAYmE,EAAS9J,IAAK6F,GAElD,OAAOyD,EAAM5J,MAAMoK,EAAUnB,EAIxC,CGuQmBoB,CAIRT,EAAOV,EAAiBjB,QAAS,CAAC,mBAAoBgB,GACpD,KAKN,UACUW,EAAMU,IAAIpB,EAAkBY,EAAyBJ,EAAgBzB,QAAUyB,EADzF,CAGA,MAAOf,GACH,GAAIA,aAAiBtJ,MAKjB,KAHmB,uBAAfsJ,EAAMhJ,YGhT1B2D,iBAKI,IAAK,MAAMoF,KAAY/B,QACb+B,GAQb,CHmSyB6B,GAEJ5B,CAEb,CACD,IAAK,MAAMD,KAAYhJ,KAAKyI,iBAAiB,wBACnCO,EAAS,CACX/C,YACAoE,cACAS,YAAad,EAAgBzB,QAC7B3G,QAAS4H,EACT7H,MAAO3B,KAAK2B,QAGpB,OAAO,CACV,CAYgBiC,kBAAChC,EAASqG,GACvB,MAAMoB,EAAO,GAAEzH,EAAQhB,SAASqH,IAChC,IAAKjI,KAAKwH,EAAW6B,GAAM,CACvB,IAAIG,EAAmB5H,EACvB,IAAK,MAAMoH,KAAYhJ,KAAKyI,iBAAiB,sBACzCe,EAAmBrC,QAAgB6B,EAAS,CACxCf,OACArG,QAAS4H,EACT7H,MAAO3B,KAAK2B,MAEZwB,OAAQnD,KAAKmD,UAGrBnD,KAAKwH,EAAW6B,GAAOG,CAC1B,CACD,OAAOxJ,KAAKwH,EAAW6B,EAC1B,CAQDf,YAAYrI,GACR,IAAK,MAAM+H,KAAUhI,KAAK0H,EAAUI,QAChC,GAAI7H,KAAQ+H,EACR,OAAO,EAGf,OAAO,CACV,CAiBiBpE,mBAAC3D,EAAM0G,GACrB,IAAK,MAAMqC,KAAYhJ,KAAKyI,iBAAiBxI,SAGnC+I,EAASrC,EAEtB,CAUgB8B,kBAACxI,GACd,IAAK,MAAM+H,KAAUhI,KAAK0H,EAAUI,QAChC,GAA4B,mBAAjBE,EAAO/H,GAAsB,CACpC,MAAM8K,EAAQ/K,KAAK+H,EAAgBxE,IAAIyE,GACjCgD,EAAoBrE,IACtB,MAAMsE,EAAgBhH,OAAOwD,OAAOxD,OAAOwD,OAAO,CAAA,EAAId,GAAQ,CAAEoE,UAGhE,OAAO/C,EAAO/H,GAAMgL,EAApB,QAEED,CACT,CAER,CAcDrI,UAAUoE,GAEN,OADA/G,KAAK4H,EAAwBrD,KAAKwC,GAC3BA,CACV,CAWgBnD,oBACb,IAAImD,EACJ,KAAQA,EAAU/G,KAAK4H,EAAwBsD,eACrCnE,CAEb,CAKDoE,UACInL,KAAK2H,EAAiBX,QAAQ,KACjC,CAW+BpD,QAAC0B,GAC7B,IAAI0E,EAAkB1E,EAClB8F,GAAc,EAClB,IAAK,MAAMpC,KAAYhJ,KAAKyI,iBAAiB,mBAQzC,GAPAuB,QACWhB,EAAS,CACZpH,QAAS5B,KAAK4B,QACd0D,SAAU0E,EACVrI,MAAO3B,KAAK2B,cACTwC,EACXiH,GAAc,GACTpB,EACD,MAwBR,OArBKoB,GACGpB,GAA8C,MAA3BA,EAAgBzE,SACnCyE,OAAkB7F,GAmBnB6F,CACV,EIhfL,MAAMqB,EAuBFzL,YAAY2H,EAAU,IAQlBvH,KAAKiG,UAAYI,EAA0BkB,EAAQtB,WAQnDjG,KAAK8H,QAAUP,EAAQO,SAAW,GAQlC9H,KAAK+I,aAAexB,EAAQwB,aAQ5B/I,KAAKuJ,aAAehC,EAAQgC,YAC/B,CAoBDnJ,OAAOmH,GACH,MAAO+D,GAAgBtL,KAAKuL,UAAUhE,GACtC,OAAO+D,CACV,CAuBDC,UAAUhE,GAEFA,aAAmBW,aACnBX,EAAU,CACN5F,MAAO4F,EACP3F,QAAS2F,EAAQ3F,UAGzB,MAAMD,EAAQ4F,EAAQ5F,MAChBC,EAAqC,iBAApB2F,EAAQ3F,QACzB,IAAIc,QAAQ6E,EAAQ3F,SACpB2F,EAAQ3F,QACRuB,EAAS,WAAYoE,EAAUA,EAAQpE,YAASgB,EAChDhE,EAAU,IAAIkH,EAAgBrH,KAAM,CAAE2B,QAAOC,UAASuB,WACtDmI,EAAetL,KAAKwL,EAAarL,EAASyB,EAASD,GAGzD,MAAO,CAAC2J,EAFYtL,KAAKyL,EAAeH,EAAcnL,EAASyB,EAASD,GAG3E,CACiBiC,QAACzD,EAASyB,EAASD,GAEjC,IAAI2D,QADEnF,EAAQ+I,aAAa,mBAAoB,CAAEvH,QAAOC,YAExD,IAKI,GAJA0D,QAAiBtF,KAAK0L,EAAQ9J,EAASzB,IAIlCmF,GAA8B,UAAlBA,EAASpD,KACtB,MAAM,IAAIxC,EAAa,cAAe,CAAEkB,IAAKgB,EAAQhB,KAN7D,CASA,MAAOqI,GACH,GAAIA,aAAiBtJ,MACjB,IAAK,MAAMqJ,KAAY7I,EAAQsI,iBAAiB,mBAE5C,GADAnD,QAAiB0D,EAAS,CAAEC,QAAOtH,QAAOC,YACtC0D,EACA,MAIZ,IAAKA,EACD,MAAM2D,CAOb,CACD,IAAK,MAAMD,KAAY7I,EAAQsI,iBAAiB,sBAC5CnD,QAAiB0D,EAAS,CAAErH,QAAOC,UAAS0D,aAEhD,OAAOA,CACV,CACmB1B,QAAC0H,EAAcnL,EAASyB,EAASD,GACjD,IAAI2D,EACA2D,EACJ,IACI3D,QAAiBgG,CADrB,CAGA,MAAOrC,GAIN,CACD,UACU9I,EAAQ+I,aAAa,oBAAqB,CAC5CvH,QACAC,UACA0D,mBAEEnF,EAAQwL,aANlB,CAQA,MAAOC,GACCA,aAA0BjM,QAC1BsJ,EAAQ2C,EAEf,CAQD,SAPMzL,EAAQ+I,aAAa,qBAAsB,CAC7CvH,QACAC,UACA0D,WACA2D,MAAOA,IAEX9I,EAAQgL,UACJlC,EACA,MAAMA,CAEb,ECpME,SAAS4C,EAAY9E,GAEnBA,EAAQlE,MAAK,QACrB,qOCfD,MAAMiJ,EAAgB,CAACC,EAAQC,IAAiBA,EAAaC,MAAMC,GAAMH,aAAkBG,IAE3F,IAAIC,EACAC,EAqBJ,MAAMC,EAAmB,IAAIC,QACvBC,EAAqB,IAAID,QACzBE,EAA2B,IAAIF,QAC/BG,EAAiB,IAAIH,QACrBI,EAAwB,IAAIJ,QA0DlC,IAAIK,EAAgB,CAChBpJ,IAAIqJ,EAAQC,EAAMC,GACd,GAAIF,aAAkBG,eAAgB,CAElC,GAAa,SAATF,EACA,OAAON,EAAmBhJ,IAAIqJ,GAElC,GAAa,qBAATC,EACA,OAAOD,EAAOI,kBAAoBR,EAAyBjJ,IAAIqJ,GAGnE,GAAa,UAATC,EACA,OAAOC,EAASE,iBAAiB,QAC3B7I,EACA2I,EAASG,YAAYH,EAASE,iBAAiB,GAbrC,CAiBxB,OAAOE,EAAKN,EAAOC,GAlBP,EAoBhBxI,IAAG,CAACuI,EAAQC,EAAM1G,KACdyG,EAAOC,GAAQ1G,GACR,GAEX7C,IAAG,CAACsJ,EAAQC,IACJD,aAAkBG,iBACR,SAATF,GAA4B,UAATA,IAGjBA,KAAQD,GAMvB,SAASO,EAAaC,GAIlB,OAAIA,IAASC,YAAYC,UAAUC,aAC7B,qBAAsBR,eAAeO,WA7GnClB,IACHA,EAAuB,CACpBoB,UAAUF,UAAUG,QACpBD,UAAUF,UAAUI,SACpBF,UAAUF,UAAUK,sBAqHEC,SAASR,GAC5B,YAAa/N,GAIhB,OADA+N,EAAKS,MAAMC,EAAO9N,MAAOX,GAClB6N,EAAKb,EAAiB9I,IAAIvD,QAGlC,YAAaX,GAGhB,OAAO6N,EAAKE,EAAKS,MAAMC,EAAO9N,MAAOX,KAtB9B,SAAU0O,KAAe1O,GAC5B,MAAM2O,EAAKZ,EAAKa,KAAKH,EAAO9N,MAAO+N,KAAe1O,GAElD,OADAmN,EAAyBnI,IAAI2J,EAAID,EAAWG,KAAOH,EAAWG,OAAS,CAACH,IACjEb,EAAKc,GAqBvB,CACD,SAASG,EAAuBhI,GAC5B,MAAqB,mBAAVA,EACAgH,EAAahH,IAGpBA,aAAiB4G,gBAhGzB,SAAwCiB,GAEpC,GAAIzB,EAAmBjJ,IAAI0K,GACvB,OACJ,MAAMI,EAAO,IAAI/L,SAAQ,CAAC2E,EAASvD,KAC/B,MAAM4K,EAAW,KACbL,EAAGM,oBAAoB,WAAYC,GACnCP,EAAGM,oBAAoB,QAASrF,GAChC+E,EAAGM,oBAAoB,QAASrF,EAAhC,EAEEsF,EAAW,KACbvH,IACAqH,GAAQ,EAENpF,EAAQ,KACVxF,EAAOuK,EAAG/E,OAAS,IAAIuF,aAAa,aAAc,eAClDH,GAAQ,EAEZL,EAAGtM,iBAAiB,WAAY6M,GAChCP,EAAGtM,iBAAiB,QAASuH,GAC7B+E,EAAGtM,iBAAiB,QAASuH,EAA7B,IAGJsD,EAAmBlI,IAAI2J,EAAII,EAC9B,CAyEOK,CAA+BtI,GAC/B2F,EAAc3F,EAzJVgG,IACHA,EAAoB,CACjBkB,YACAqB,eACAC,SACAnB,UACAT,kBAoJG,IAAI6B,MAAMzI,EAAOwG,GAErBxG,EACV,CACD,SAAS+G,EAAK/G,GAGV,GAAIA,aAAiB0I,WACjB,OA3IR,SAA0BjN,GACtB,MAAMmF,EAAU,IAAI1E,SAAQ,CAAC2E,EAASvD,KAClC,MAAM4K,EAAW,KACbzM,EAAQ0M,oBAAoB,UAAWQ,GACvClN,EAAQ0M,oBAAoB,QAASrF,EAArC,EAEE6F,EAAU,KACZ9H,EAAQkG,EAAKtL,EAAQf,SACrBwN,GAAQ,EAENpF,EAAQ,KACVxF,EAAO7B,EAAQqH,OACfoF,GAAQ,EAEZzM,EAAQF,iBAAiB,UAAWoN,GACpClN,EAAQF,iBAAiB,QAASuH,EAAlC,IAeJ,OAbAlC,EACKlE,MAAMsD,IAGHA,aAAiBqH,WACjBnB,EAAiBhI,IAAI8B,EAAOvE,EAJf,IAQhB+B,OAAM,SAGX+I,EAAsBrI,IAAI0C,EAASnF,GAC5BmF,CACV,CA4GcgI,CAAiB5I,GAG5B,GAAIsG,EAAenJ,IAAI6C,GACnB,OAAOsG,EAAelJ,IAAI4C,GAC9B,MAAM6I,EAAWb,EAAuBhI,GAOxC,OAJI6I,IAAa7I,IACbsG,EAAepI,IAAI8B,EAAO6I,GAC1BtC,EAAsBrI,IAAI2K,EAAU7I,IAEjC6I,CACV,CACD,MAAMlB,EAAU3H,GAAUuG,EAAsBnJ,IAAI4C,GCrIpD,MAAM8I,EAAc,CAAC,MAAO,SAAU,SAAU,aAAc,SACxDC,EAAe,CAAC,MAAO,MAAO,SAAU,SACxCC,EAAgB,IAAI7N,IAC1B,SAAS8N,EAAUxC,EAAQC,GACvB,KAAMD,aAAkBS,cAClBR,KAAQD,GACM,iBAATC,EACP,OAEJ,GAAIsC,EAAc5L,IAAIsJ,GAClB,OAAOsC,EAAc5L,IAAIsJ,GAC7B,MAAMwC,EAAiBxC,EAAK9C,QAAQ,aAAc,IAC5CuF,EAAWzC,IAASwC,EACpBE,EAAUL,EAAatB,SAASyB,GACtC,KAEEA,KAAmBC,EAAWX,SAAWD,gBAAgBpB,aACrDiC,IAAWN,EAAYrB,SAASyB,GAClC,OAEJ,MAAM9O,EAASqD,eAAgB4L,KAAcnQ,GAEzC,MAAM2O,EAAKhO,KAAKuN,YAAYiC,EAAWD,EAAU,YAAc,YAC/D,IAAI3C,EAASoB,EAAGyB,MAQhB,OAPIH,IACA1C,EAASA,EAAO1L,MAAM7B,EAAK6L,iBAMjB7I,QAAQC,IAAI,CACtBsK,EAAOyC,MAAmBhQ,GAC1BkQ,GAAWvB,EAAGI,QACd,IAGR,OADAe,EAAc9K,IAAIwI,EAAMtM,GACjBA,CACV,CDgCGoM,EC/BU+C,IAADC,EAAA,CAAA,EACND,EADM,CAETnM,IAAK,CAACqJ,EAAQC,EAAMC,IAAasC,EAAUxC,EAAQC,IAAS6C,EAASnM,IAAIqJ,EAAQC,EAAMC,GACvFxJ,IAAK,CAACsJ,EAAQC,MAAWuC,EAAUxC,EAAQC,IAAS6C,EAASpM,IAAIsJ,EAAQC,KD4BzD7D,CAAS2D,GErH7B,IACI3N,KAAK,6BAA+BC,GACvC,CACD,MAAOC,GAAG,CCIV,MACM0Q,EAAqB,gBACrBC,EAAgBC,IAClB,MAAMlP,EAAM,IAAImC,IAAI+M,EAAiB7O,SAASF,MAE9C,OADAH,EAAImP,KAAO,GACJnP,EAAIG,IAAX,EAOJ,MAAMiP,EAOFpQ,YAAYqG,GACRjG,KAAKiQ,EAAM,KACXjQ,KAAKkQ,EAAajK,CACrB,CAQDkK,EAAWC,GAKP,MAAMC,EAAWD,EAAGE,kBAAkBV,EAAoB,CAAEW,QAAS,OAIrEF,EAASG,YAAY,YAAa,YAAa,CAAEC,QAAQ,IACzDJ,EAASG,YAAY,YAAa,YAAa,CAAEC,QAAQ,GAC5D,CAQDC,EAA0BN,GACtBpQ,KAAKmQ,EAAWC,GACZpQ,KAAKkQ,GFrBjB,SAAkBjQ,GAAM0Q,QAAEA,GAAY,IAClC,MAAM/O,EAAUgP,UAAUC,eAAe5Q,GACrC0Q,GACA/O,EAAQF,iBAAiB,WAAYC,GAAUgP,EAE/ChP,EAAMmP,WAAYnP,KAEfuL,EAAKtL,GAASiB,MAAK,KAAnB,GACV,CEcgBkO,CAAS/Q,KAAKkQ,EAE1B,CAOiBtM,mBAAChD,EAAKoQ,GAEpB,MAAMvO,EAAQ,CACV7B,IAFJA,EAAMiP,EAAajP,GAGfoQ,YACA/K,UAAWjG,KAAKkQ,EAIhBe,GAAIjR,KAAKkR,EAAOtQ,IAGdoN,SADWhO,KAAKmR,SACR5D,YAAYqC,EAAoB,YAAa,CACvDwB,WAAY,kBAEVpD,EAAGyB,MAAM7E,IAAInI,SACbuL,EAAGI,IACZ,CASiBxK,mBAAChD,GACf,MAAMwP,QAAWpQ,KAAKmR,QAChB1O,QAAc2N,EAAG7M,IAAIqM,EAAoB5P,KAAKkR,EAAOtQ,IAC3D,OAAO6B,aAAqC,EAASA,EAAMuO,SAC9D,CAYkBpN,oBAACyN,EAAcC,GAC9B,MAAMlB,QAAWpQ,KAAKmR,QACtB,IAAII,QAAenB,EACd7C,YAAYqC,GACZH,MAAMvO,MAAM,aACZsQ,WAAW,KAAM,QACtB,MAAMC,EAAkB,GACxB,IAAIC,EAAyB,EAC7B,KAAOH,GAAQ,CACX,MAAM1Q,EAAS0Q,EAAOpL,MAGlBtF,EAAOoF,YAAcjG,KAAKkQ,IAGrBmB,GAAgBxQ,EAAOmQ,UAAYK,GACnCC,GAAYI,GAA0BJ,EASvCG,EAAgBlN,KAAKgN,EAAOpL,OAG5BuL,KAGRH,QAAeA,EAAO7D,UA/Bc,CAqCxC,MAAMiE,EAAc,GACpB,IAAK,MAAMlP,KAASgP,QACVrB,EAAGvJ,OAAO+I,EAAoBnN,EAAMwO,IAC1CU,EAAYpN,KAAK9B,EAAM7B,KAE3B,OAAO+Q,CACV,CASDT,EAAOtQ,GAIH,OAAOZ,KAAKkQ,EAAa,IAAML,EAAajP,EAC/C,CAMUgD,cAMP,OALK5D,KAAKiQ,IACNjQ,KAAKiQ,QFvKjB,SAAgBhQ,EAAM2R,GAASjB,QAAEA,EAAFkB,QAAWA,EAAXC,SAAoBA,EAApBC,WAA8BA,GAAe,IACxE,MAAMnQ,EAAUgP,UAAUzG,KAAKlK,EAAM2R,GAC/BI,EAAc9E,EAAKtL,GAoBzB,OAnBIiQ,GACAjQ,EAAQF,iBAAiB,iBAAkBC,IACvCkQ,EAAQ3E,EAAKtL,EAAQf,QAASc,EAAMmP,WAAYnP,EAAMsQ,WAAY/E,EAAKtL,EAAQ2L,aAAc5L,EAA7F,IAGJgP,GACA/O,EAAQF,iBAAiB,WAAYC,GAAUgP,EAE/ChP,EAAMmP,WAAYnP,EAAMsQ,WAAYtQ,KAExCqQ,EACKnP,MAAMuN,IACH2B,GACA3B,EAAG1O,iBAAiB,SAAS,IAAMqQ,MACnCD,GACA1B,EAAG1O,iBAAiB,iBAAkBC,GAAUmQ,EAASnQ,EAAMmP,WAAYnP,EAAMsQ,WAAYtQ,IAChG,IAEAgC,OAAM,SACJqO,CACV,CEgJ4BE,CAxKb,qBAwK6B,EAAG,CAChCL,QAAS7R,KAAK0Q,EAA0ByB,KAAKnS,SAG9CA,KAAKiQ,CACf,EClKL,MAAMmC,EAcFxS,YAAYqG,EAAWoM,EAAS,IAC5BrS,KAAKsS,GAAa,EAClBtS,KAAKuS,GAAkB,EAgCvBvS,KAAKwS,EAAcH,EAAOI,WAC1BzS,KAAK0S,EAAiBL,EAAOM,cAC7B3S,KAAK4S,EAAgBP,EAAO9I,aAC5BvJ,KAAKkQ,EAAajK,EAClBjG,KAAK6S,EAAkB,IAAI7C,EAAqB/J,EACnD,CAIkBrC,sBACf,GAAI5D,KAAKsS,EAEL,YADAtS,KAAKuS,GAAkB,GAG3BvS,KAAKsS,GAAa,EAClB,MAAMjB,EAAerR,KAAK0S,EACpBI,KAAKC,MAA8B,IAAtB/S,KAAK0S,EAClB,EACAM,QAAoBhT,KAAK6S,EAAgBI,cAAc5B,EAAcrR,KAAKwS,GAE1EtI,QAAclL,KAAK2K,OAAOQ,KAAKnK,KAAKkQ,GAC1C,IAAK,MAAMtP,KAAOoS,QACR9I,EAAMrD,OAAOjG,EAAKZ,KAAK4S,GAgBjC5S,KAAKsS,GAAa,EACdtS,KAAKuS,IACLvS,KAAKuS,GAAkB,EACvB1G,EAAY7L,KAAKiT,iBAExB,CAQoBrP,sBAAChD,SASZZ,KAAK6S,EAAgBK,aAAatS,EAAKkS,KAAKC,MACrD,CAYiBnP,mBAAChD,GACf,GAAKZ,KAAK0S,EASL,CACD,MAAM1B,QAAkBhR,KAAK6S,EAAgBM,aAAavS,GACpDwS,EAAkBN,KAAKC,MAA8B,IAAtB/S,KAAK0S,EAC1C,YAAqBvO,IAAd6M,GAA0BA,EAAYoC,CAChD,CANG,OAAO,CAOd,CAKWxP,eAGR5D,KAAKuS,GAAkB,QACjBvS,KAAK6S,EAAgBI,cAAcI,IAC5C,ECpKL,IACIrU,KAAK,iCAAmCC,GAC3C,CACD,MAAOC,GAAG,CC0BV0E,eAAe0P,EAAsB1R,EAAS2R,GAC1C,IAaI,GAAgC,MAA5BA,EAAiBhO,OAGjB,OAAOgO,EAEX,MAAMC,EAAc5R,EAAQ6R,QAAQlQ,IAAI,SACxC,IAAKiQ,EACD,MAAM,IAAI9T,EAAa,mBAE3B,MAAMgU,ECpCd,SAA0BF,GAQtB,MAAMG,EAAwBH,EAAYI,OAAOC,cACjD,IAAKF,EAAsB1Q,WAAW,UAClC,MAAM,IAAIvD,EAAa,qBAAsB,CAAEiU,0BAKnD,GAAIA,EAAsB/F,SAAS,KAC/B,MAAM,IAAIlO,EAAa,oBAAqB,CAAEiU,0BAElD,MAAMG,EAAa,cAAchT,KAAK6S,GAEtC,IAAKG,IAAgBA,EAAW,KAAMA,EAAW,GAC7C,MAAM,IAAIpU,EAAa,uBAAwB,CAAEiU,0BAErD,MAAO,CACHI,MAAyB,KAAlBD,EAAW,QAAY3P,EAAY6P,OAAOF,EAAW,IAC5DG,IAAuB,KAAlBH,EAAW,QAAY3P,EAAY6P,OAAOF,EAAW,IAEjE,CDS0BI,CAAiBV,GAC9BW,QAAqBZ,EAAiBa,OACtCC,EEpCd,SAAsCD,EAAML,EAAOE,GAQ/C,MAAMK,EAAWF,EAAKG,KACtB,GAAKN,GAAOA,EAAMK,GAAcP,GAASA,EAAQ,EAC7C,MAAM,IAAIrU,EAAa,wBAAyB,CAC5C6U,KAAMD,EACNL,MACAF,UAGR,IAAIS,EACAC,EAcJ,YAbctQ,IAAV4P,QAA+B5P,IAAR8P,GACvBO,EAAiBT,EAEjBU,EAAeR,EAAM,QAEN9P,IAAV4P,QAA+B5P,IAAR8P,GAC5BO,EAAiBT,EACjBU,EAAeH,QAEFnQ,IAAR8P,QAA+B9P,IAAV4P,IAC1BS,EAAiBF,EAAWL,EAC5BQ,EAAeH,GAEZ,CACHP,MAAOS,EACPP,IAAKQ,EAEZ,CFCmCC,CAA6BP,EAAcT,EAAWK,MAAOL,EAAWO,KAC9FU,EAAaR,EAAahT,MAAMkT,EAAoBN,MAAOM,EAAoBJ,KAC/EW,EAAiBD,EAAWJ,KAC5BM,EAAiB,IAAIC,SAASH,EAAY,CAG5CpP,OAAQ,IACRwP,WAAY,kBACZtB,QAASF,EAAiBE,UAK9B,OAHAoB,EAAepB,QAAQpP,IAAI,iBAAkByF,OAAO8K,IACpDC,EAAepB,QAAQpP,IAAI,gBAAkB,SAAQgQ,EAAoBN,SAASM,EAAoBJ,IAAM,KACrGE,EAAaI,QACbM,CArCX,CAuCA,MAAO5L,GAUH,OAAO,IAAI6L,SAAS,GAAI,CACpBvP,OAAQ,IACRwP,WAAY,yBAEnB,CACJ,CGtED,SAASpS,EAAUhB,EAAOqT,GACtB,MAAMC,EAAgBD,IAEtB,OADArT,EAAMgB,UAAUsS,GACTA,CACV,CClBD,IACIjW,KAAK,6BAA+BC,GACvC,CACD,MAAOC,GAAG,CCeH,SAASgW,EAAezS,GAC3B,IAAKA,EACD,MAAM,IAAI/C,EAAa,oCAAqC,CAAE+C,UAIlE,GAAqB,iBAAVA,EAAoB,CAC3B,MAAM0S,EAAY,IAAIpS,IAAIN,EAAOxB,SAASF,MAC1C,MAAO,CACH2J,SAAUyK,EAAUpU,KACpBH,IAAKuU,EAAUpU,KAEtB,CACD,MAAMqU,SAAEA,EAAFxU,IAAYA,GAAQ6B,EAC1B,IAAK7B,EACD,MAAM,IAAIlB,EAAa,oCAAqC,CAAE+C,UAIlE,IAAK2S,EAAU,CACX,MAAMD,EAAY,IAAIpS,IAAInC,EAAKK,SAASF,MACxC,MAAO,CACH2J,SAAUyK,EAAUpU,KACpBH,IAAKuU,EAAUpU,KAvBW,CA4BlC,MAAMsU,EAAc,IAAItS,IAAInC,EAAKK,SAASF,MACpCuU,EAAc,IAAIvS,IAAInC,EAAKK,SAASF,MAE1C,OADAsU,EAAYzO,aAAavC,IAxCC,kBAwC0B+Q,GAC7C,CACH1K,SAAU2K,EAAYtU,KACtBH,IAAK0U,EAAYvU,KAExB,CCzCD,MAAMwU,EACF3V,cACII,KAAKwV,YAAc,GACnBxV,KAAKyV,eAAiB,GACtBzV,KAAK0V,iBAAmB9R,OAAShC,UAASmJ,YAElCA,IACAA,EAAM1C,gBAAkBzG,EAC3B,EAEL5B,KAAK2V,yBAA2B/R,OAASjC,QAAOoJ,QAAOzB,qBACnD,GAAmB,YAAf3H,EAAMO,MACF6I,GACAA,EAAM1C,iBACN0C,EAAM1C,2BAA2B3F,QAAS,CAE1C,MAAM9B,EAAMmK,EAAM1C,gBAAgBzH,IAC9B0I,EACAtJ,KAAKyV,eAAelR,KAAK3D,GAGzBZ,KAAKwV,YAAYjR,KAAK3D,EAE7B,CAEL,OAAO0I,CAAP,CAEP,EC3BL,MAAMsM,EACFhW,aAAYiW,mBAAEA,IACV7V,KAAK8V,mBAAqBlS,OAAShC,UAASuB,aAGxC,MAAMuH,GAAYvH,aAAuC,EAASA,EAAOuH,WACrE1K,KAAK+V,EAAoBC,kBAAkBpU,EAAQhB,KAEvD,OAAO8J,EACD,IAAIhI,QAAQgI,EAAU,CAAE+I,QAAS7R,EAAQ6R,UACzC7R,CAFN,EAIJ5B,KAAK+V,EAAsBF,CAC9B,ECnBL,IAAII,ECCAJ,ECoBJjS,eAAesS,EAAa5Q,EAAU6Q,GAClC,IAAInV,EAAS,KAEb,GAAIsE,EAAS1E,IAAK,CAEdI,EADoB,IAAI+B,IAAIuC,EAAS1E,KAChBI,MACxB,CACD,GAAIA,IAAWhC,KAAKiC,SAASD,OACzB,MAAM,IAAItB,EAAa,6BAA8B,CAAEsB,WAE3D,MAAMoV,EAAiB9Q,EAASiD,QAE1B8N,EAAe,CACjB5C,QAAS,IAAI6C,QAAQF,EAAe3C,SACpClO,OAAQ6Q,EAAe7Q,OACvBwP,WAAYqB,EAAerB,YAGzBwB,EAAuBJ,EAAWA,EAASE,GAAgBA,EAI3DG,EFjCV,WACI,QAAsBrS,IAAlB8R,EAA6B,CAC7B,MAAMQ,EAAe,IAAI3B,SAAS,IAClC,GAAI,SAAU2B,EACV,IACI,IAAI3B,SAAS2B,EAAaD,MAC1BP,GAAgB,CAFpB,CAIA,MAAOhN,GACHgN,GAAgB,CACnB,CAELA,GAAgB,CACnB,CACD,OAAOA,CACV,CEkBgBS,GACPN,EAAeI,WACTJ,EAAehC,OAC3B,OAAO,IAAIU,SAAS0B,EAAMD,EAC7B,CC7BD,MAAMI,UAAyBtL,EAkB3BzL,YAAY2H,EAAU,IAClBA,EAAQtB,UAAYI,EAA2BkB,EAAQtB,WACvDlG,MAAMwH,GACNvH,KAAK4W,GAC6B,IAA9BrP,EAAQsP,kBAKZ7W,KAAK8H,QAAQvD,KAAKoS,EAAiBG,uCACtC,CAQYlT,QAAChC,EAASzB,GACnB,MAAMmF,QAAiBnF,EAAQ4W,WAAWnV,GAC1C,OAAI0D,IAKAnF,EAAQwB,OAAgC,YAAvBxB,EAAQwB,MAAMO,WAClBlC,KAAKgX,EAAepV,EAASzB,SAIjCH,KAAKiX,EAAarV,EAASzB,GAC3C,CACiByD,QAAChC,EAASzB,GACxB,IAAImF,EACJ,MAAMnC,EAAUhD,EAAQgD,QAAU,GAElC,IAAInD,KAAK4W,EAuCL,MAAM,IAAIlX,EAAa,yBAA0B,CAC7CuG,UAAWjG,KAAKiG,UAChBrF,IAAKgB,EAAQhB,MAzCQ,CAMzB,MAAMsW,EAAsB/T,EAAOgU,UAC7BC,EAAqBxV,EAAQuV,UAC7BE,GAAuBD,GAAsBA,IAAuBF,EAG1E5R,QAAiBnF,EAAQ2I,MAAM,IAAIpG,QAAQd,EAAS,CAChDuV,UAA4B,YAAjBvV,EAAQqG,KACbmP,GAAsBF,OACtB/S,KASN+S,GACAG,GACiB,YAAjBzV,EAAQqG,OACRjI,KAAKsX,UACmBnX,EAAQiJ,SAASxH,EAAS0D,EAASiD,SAQlE,CAuBD,OAAOjD,CACV,CACmB1B,QAAChC,EAASzB,GAC1BH,KAAKsX,IACL,MAAMhS,QAAiBnF,EAAQ2I,MAAMlH,GAIrC,UADwBzB,EAAQiJ,SAASxH,EAAS0D,EAASiD,SAIvD,MAAM,IAAI7I,EAAa,0BAA2B,CAC9CkB,IAAKgB,EAAQhB,IACb2E,OAAQD,EAASC,SAGzB,OAAOD,CACV,CA4BDgS,IACI,IAAIC,EAAqB,KACrBC,EAA6B,EACjC,IAAK,MAAOtW,EAAO8G,KAAWhI,KAAK8H,QAAQ2P,UAEnCzP,IAAW2O,EAAiBG,yCAI5B9O,IAAW2O,EAAiBe,oCAC5BH,EAAqBrW,GAErB8G,EAAO3C,iBACPmS,KAG2B,IAA/BA,EACAxX,KAAK8H,QAAQvD,KAAKoS,EAAiBe,mCAE9BF,EAA6B,GAA4B,OAAvBD,GAEvCvX,KAAK8H,QAAQnD,OAAO4S,EAAoB,EAG/C,EAELZ,EAAiBe,kCAAoC,CACjD9T,gBAAA,OAAsB0B,SAAEA,MACfA,GAAYA,EAASC,QAAU,IACzB,KAEJD,GAGfqR,EAAiBG,uCAAyC,CACtDlT,gBAAA,OAAsB0B,SAAEA,KACbA,EAASqS,iBAAmBzB,EAAa5Q,GAAYA,GCnMpE,MAAMsS,GAWFhY,aAAYqG,UAAEA,EAAF6B,QAAaA,EAAU,GAAvB+O,kBAA2BA,GAAoB,GAAU,IACjE7W,KAAK6X,EAAmB,IAAIvW,IAC5BtB,KAAK8X,EAAoB,IAAIxW,IAC7BtB,KAAK+X,EAA0B,IAAIzW,IACnCtB,KAAK0H,EAAY,IAAIiP,EAAiB,CAClC1Q,UAAWI,EAA2BJ,GACtC6B,QAAS,IACFA,EACH,IAAI8N,EAAuB,CAAEC,mBAAoB7V,QAErD6W,sBAGJ7W,KAAKgY,QAAUhY,KAAKgY,QAAQ7F,KAAKnS,MACjCA,KAAKiY,SAAWjY,KAAKiY,SAAS9F,KAAKnS,KACtC,CAKGsH,eACA,OAAOtH,KAAK0H,CACf,CAWDhC,SAAS+R,GACLzX,KAAKkY,eAAeT,GACfzX,KAAKmY,IACNnZ,KAAK0C,iBAAiB,UAAW1B,KAAKgY,SACtChZ,KAAK0C,iBAAiB,WAAY1B,KAAKiY,UACvCjY,KAAKmY,GAAkC,EAE9C,CAQDD,eAAeT,GASX,MAAMW,EAAkB,GACxB,IAAK,MAAM3V,KAASgV,EAAS,CAEJ,iBAAVhV,EACP2V,EAAgB7T,KAAK9B,GAEhBA,QAA4B0B,IAAnB1B,EAAM2S,UACpBgD,EAAgB7T,KAAK9B,EAAM7B,KAE/B,MAAM8J,SAAEA,EAAF9J,IAAYA,GAAQsU,EAAezS,GACnC4V,EAA6B,iBAAV5V,GAAsBA,EAAM2S,SAAW,SAAW,UAC3E,GAAIpV,KAAK6X,EAAiBvU,IAAI1C,IAC1BZ,KAAK6X,EAAiBtU,IAAI3C,KAAS8J,EACnC,MAAM,IAAIhL,EAAa,wCAAyC,CAC5D4Y,WAAYtY,KAAK6X,EAAiBtU,IAAI3C,GACtC2X,YAAa7N,IAGrB,GAAqB,iBAAVjI,GAAsBA,EAAM0U,UAAW,CAC9C,GAAInX,KAAK+X,EAAwBzU,IAAIoH,IACjC1K,KAAK+X,EAAwBxU,IAAImH,KAAcjI,EAAM0U,UACrD,MAAM,IAAIzX,EAAa,4CAA6C,CAChEkB,QAGRZ,KAAK+X,EAAwB1T,IAAIqG,EAAUjI,EAAM0U,UACpD,CAGD,GAFAnX,KAAK6X,EAAiBxT,IAAIzD,EAAK8J,GAC/B1K,KAAK8X,EAAkBzT,IAAIzD,EAAKyX,GAC5BD,EAAgB7Y,OAAS,EAAG,CAC5B,MAAMiZ,EACD,qDAAQJ,EAAgBhS,KAAK,8EAK9BqS,QAAQC,KAAKF,EAKpB,CACJ,CACJ,CAWDR,QAAQrW,GAGJ,OAAOgB,EAAUhB,GAAOiC,UACpB,MAAM+U,EAAsB,IAAIpD,EAChCvV,KAAKsH,SAASQ,QAAQvD,KAAKoU,GAG3B,IAAK,MAAO/X,EAAK8J,KAAa1K,KAAK6X,EAAkB,CACjD,MAAMV,EAAYnX,KAAK+X,EAAwBxU,IAAImH,GAC7C2N,EAAYrY,KAAK8X,EAAkBvU,IAAI3C,GACvCgB,EAAU,IAAIc,QAAQ9B,EAAK,CAC7BuW,YACAjN,MAAOmO,EACPO,YAAa,sBAEXvW,QAAQC,IAAItC,KAAKsH,SAASiE,UAAU,CACtCpI,OAAQ,CAAEuH,YACV9I,UACAD,UAEP,CACD,MAAM6T,YAAEA,EAAFC,eAAeA,GAAmBkD,EAIxC,MAAO,CAAEnD,cAAaC,iBAAtB,GAEP,CAWDwC,SAAStW,GAGL,OAAOgB,EAAUhB,GAAOiC,UACpB,MAAMsG,QAAclL,KAAK2K,OAAOQ,KAAKnK,KAAKsH,SAASrB,WAC7C4S,QAAgC3O,EAAMhG,OACtC4U,EAAoB,IAAI5R,IAAIlH,KAAK6X,EAAiBkB,UAClDC,EAAc,GACpB,IAAK,MAAMpX,KAAWiX,EACbC,EAAkBxV,IAAI1B,EAAQhB,aACzBsJ,EAAMrD,OAAOjF,GACnBoX,EAAYzU,KAAK3C,EAAQhB,MAMjC,MAAO,CAAEoY,cAAT,GAEP,CAODC,qBACI,OAAOjZ,KAAK6X,CACf,CAODqB,gBACI,MAAO,IAAIlZ,KAAK6X,EAAiB3T,OACpC,CAUD8R,kBAAkBpV,GACd,MAAMuU,EAAY,IAAIpS,IAAInC,EAAKK,SAASF,MACxC,OAAOf,KAAK6X,EAAiBtU,IAAI4R,EAAUpU,KAC9C,CAMDoY,wBAAwBzO,GACpB,OAAO1K,KAAK+X,EAAwBxU,IAAImH,EAC3C,CAmBkB9G,oBAAChC,GAChB,MAAMhB,EAAMgB,aAAmBc,QAAUd,EAAQhB,IAAMgB,EACjD8I,EAAW1K,KAAKgW,kBAAkBpV,GACxC,GAAI8J,EAAU,CAEV,aADoB1L,KAAK2K,OAAOQ,KAAKnK,KAAKsH,SAASrB,YACtC3F,MAAMoK,EACtB,CAEJ,CASD0O,wBAAwBxY,GACpB,MAAM8J,EAAW1K,KAAKgW,kBAAkBpV,GACxC,IAAK8J,EACD,MAAM,IAAIhL,EAAa,oBAAqB,CAAEkB,QAElD,OAAQ2G,IACJA,EAAQ3F,QAAU,IAAIc,QAAQ9B,GAC9B2G,EAAQpE,OAASc,OAAOwD,OAAO,CAAEiD,YAAYnD,EAAQpE,QAC9CnD,KAAKsH,SAASlH,OAAOmH,GAEnC,EHnRE,MAAM8R,GAAgC,KACpCxD,IACDA,EAAqB,IAAI+B,IAEtB/B,GIGX,MAAMyD,WAAsBjZ,EAiBxBT,YAAYiW,EAAoBtO,GAe5BxH,OAdc,EAAG6B,cACb,MAAM2X,EAAkB1D,EAAmBoD,qBAC3C,IAAK,MAAMO,KCtBhB,UAAgC5Y,GAAK6Y,4BAAEA,EAA8B,CAAC,QAAS,YAA1CC,eAAuDA,EAAiB,aAAxEC,UAAsFA,GAAY,EAAlGC,gBAAwGA,GAAqB,IACrK,MAAMzE,EAAY,IAAIpS,IAAInC,EAAKK,SAASF,MACxCoU,EAAUpF,KAAO,SACXoF,EAAUpU,KAChB,MAAM8Y,ECHH,SAAmC1E,EAAWsE,EAA8B,IAG/E,IAAK,MAAMtU,IAAa,IAAIgQ,EAAUvO,aAAa1C,QAC3CuV,EAA4BxN,MAAMtL,GAAWA,EAAOmZ,KAAK3U,MACzDgQ,EAAUvO,aAAaC,OAAO1B,GAGtC,OAAOgQ,CACV,CDNmC4E,CAA0B5E,EAAWsE,GAErE,SADMI,EAAwB9Y,KAC1B2Y,GAAkBG,EAAwBG,SAASC,SAAS,KAAM,CAClE,MAAMC,EAAe,IAAInX,IAAI8W,EAAwB9Y,MACrDmZ,EAAaF,UAAYN,QACnBQ,EAAanZ,IACtB,CACD,GAAI4Y,EAAW,CACX,MAAMQ,EAAW,IAAIpX,IAAI8W,EAAwB9Y,MACjDoZ,EAASH,UAAY,cACfG,EAASpZ,IAClB,CACD,GAAI6Y,EAAiB,CACjB,MAAMQ,EAAiBR,EAAgB,CAAEhZ,IAAKuU,IAC9C,IAAK,MAAMkF,KAAgBD,QACjBC,EAAatZ,IAE1B,CACJ,CDAqCuZ,CAAsB1Y,EAAQhB,IAAK2G,GAAU,CACnE,MAAMmD,EAAW6O,EAAgBhW,IAAIiW,GACrC,GAAI9O,EAAU,CAEV,MAAO,CAAEA,WAAUyM,UADDtB,EAAmBsD,wBAAwBzO,GAEhE,CACJ,CAID,GAESmL,EAAmBvO,SACnC,eG3BL,cAAyB+D,EAQRzH,QAAChC,EAASzB,GAUnB,IACI8I,EADA3D,QAAiBnF,EAAQ4W,WAAWnV,GAExC,IAAK0D,EAKD,IACIA,QAAiBnF,EAAQoa,iBAAiB3Y,EAD9C,CAGA,MAAO4B,GACCA,aAAe7D,QACfsJ,EAAQzF,EAEf,CAuBL,IAAK8B,EACD,MAAM,IAAI5F,EAAa,cAAe,CAAEkB,IAAKgB,EAAQhB,IAAKqI,UAE9D,OAAO3D,CACV,sBC/CL,MAYI1F,YAAYyS,EAAS,IAkBjBrS,KAAK2V,yBAA2B/R,OAASjC,QAAOC,UAASqE,YAAWqD,qBAChE,IAAKA,EACD,OAAO,KAEX,MAAMkR,EAAUxa,KAAKya,EAAqBnR,GAGpCoR,EAAkB1a,KAAK2a,EAAoB1U,GACjD4F,EAAY6O,EAAgBzH,iBAG5B,MAAM2H,EAAsBF,EAAgBG,gBAAgBjZ,EAAQhB,KACpE,GAAIe,EACA,IACIA,EAAMgB,UAAUiY,EADpB,CAGA,MAAO3R,GASN,CAEL,OAAOuR,EAAUlR,EAAiB,IAAlC,EAYJtJ,KAAK8a,eAAiBlX,OAASqC,YAAWrE,cAetC,MAAM8Y,EAAkB1a,KAAK2a,EAAoB1U,SAC3CyU,EAAgBG,gBAAgBjZ,EAAQhB,WACxC8Z,EAAgBzH,eAAtB,EA2BJjT,KAAK+a,EAAU1I,EACfrS,KAAK0S,EAAiBL,EAAOM,cAC7B3S,KAAKgb,EAAoB,IAAI1Z,IACzB+Q,EAAO4I,mBCvInB,SAAoCjS,GAQhC/B,EAAoBiU,IAAIlS,EAI3B,CD4HWmS,EAA2B,IAAMnb,KAAKob,0BAE7C,CAUDT,EAAoB1U,GAChB,GAAIA,IAAcI,IACd,MAAM,IAAI3G,EAAa,6BAE3B,IAAIgb,EAAkB1a,KAAKgb,EAAkBzX,IAAI0C,GAKjD,OAJKyU,IACDA,EAAkB,IAAItI,EAAgBnM,EAAWjG,KAAK+a,GACtD/a,KAAKgb,EAAkB3W,IAAI4B,EAAWyU,IAEnCA,CACV,CAODD,EAAqBnR,GACjB,IAAKtJ,KAAK0S,EAEN,OAAO,EAKX,MAAM2I,EAAsBrb,KAAKsb,EAAwBhS,GACzD,GAA4B,OAAxB+R,EAEA,OAAO,EAKX,OAAOA,GADKvI,KAAKC,MACyC,IAAtB/S,KAAK0S,CAC5C,CAUD4I,EAAwBhS,GACpB,IAAKA,EAAemK,QAAQnQ,IAAI,QAC5B,OAAO,KAEX,MAAMiY,EAAajS,EAAemK,QAAQlQ,IAAI,QAExCiY,EADa,IAAI1I,KAAKyI,GACEE,UAG9B,OAAIC,MAAMF,GACC,KAEJA,CACV,CAiB2B5X,+BAGxB,IAAK,MAAOqC,EAAWyU,KAAoB1a,KAAKgb,QACtChc,KAAK2K,OAAO9C,OAAOZ,SACnByU,EAAgB7T,SAG1B7G,KAAKgb,EAAoB,IAAI1Z,GAChC,kBE7NL,cAA2B+J,EAoBvBzL,YAAY2H,EAAU,IAClBxH,MAAMwH,GAGDvH,KAAK8H,QAAQmE,MAAM0P,GAAM,oBAAqBA,KAC/C3b,KAAK8H,QAAQ8T,QAAQxW,GAEzBpF,KAAK6b,EAAyBtU,EAAQuU,uBAAyB,CAWlE,CAQYlY,QAAChC,EAASzB,GACnB,MAAM4b,EAAO,GASPC,EAAW,GACjB,IAAIC,EACJ,GAAIjc,KAAK6b,EAAwB,CAC7B,MAAM5K,GAAEA,EAAFlK,QAAMA,GAAY/G,KAAKkc,GAAmB,CAAEta,UAASma,OAAM5b,YACjE8b,EAAYhL,EACZ+K,EAASzX,KAAKwC,EACjB,CACD,MAAMoV,EAAiBnc,KAAKoc,GAAmB,CAC3CH,YACAra,UACAma,OACA5b,YAEJ6b,EAASzX,KAAK4X,GACd,MAAM7W,QAAiBnF,EAAQwC,UAAU,gBAEtBxC,EAAQwC,UAAUN,QAAQga,KAAKL,WAMnCG,EAR0B,IAkBzC,IAAK7W,EACD,MAAM,IAAI5F,EAAa,cAAe,CAAEkB,IAAKgB,EAAQhB,MAEzD,OAAO0E,CACV,CAUD4W,IAAmBta,QAAEA,EAAFma,KAAWA,EAAX5b,QAAiBA,IAChC,IAAI8b,EAWJ,MAAO,CACHlV,QAXmB,IAAI1E,SAAS2E,IAQhCiV,EAAYpS,YAPajG,UAKrBoD,QAAc7G,EAAQ4W,WAAWnV,GAAjC,GAEmE,IAA9B5B,KAAK6b,EAA9C,IAIA5K,GAAIgL,EAEX,CAWuBrY,UAACqY,UAAEA,EAAFra,QAAaA,EAAbma,KAAsBA,EAAtB5b,QAA4BA,IACjD,IAAI8I,EACA3D,EACJ,IACIA,QAAiBnF,EAAQoa,iBAAiB3Y,EAD9C,CAGA,MAAO0a,GACCA,aAAsB3c,QACtBsJ,EAAQqT,EAEf,CAwBD,OAvBIL,GACAM,aAAaN,IAWbhT,GAAU3D,IACVA,QAAiBnF,EAAQ4W,WAAWnV,IAUjC0D,CACV,yBChLL,MACI1F,cAYII,KAAK2V,yBAA2B/R,OAAShC,UAAS0H,oBAG1CA,GAAkB1H,EAAQ6R,QAAQnQ,IAAI,eACzBgQ,EAAsB1R,EAAS0H,GAIzCA,CAEd,0BCNL,cAAmC+B,EAc/BzL,YAAY2H,EAAU,IAClBxH,MAAMwH,GAGDvH,KAAK8H,QAAQmE,MAAM0P,GAAM,oBAAqBA,KAC/C3b,KAAK8H,QAAQ8T,QAAQxW,EAE5B,CAQYxB,QAAChC,EAASzB,GAUnB,MAAMqc,EAAuBrc,EAAQoa,iBAAiB3Y,GAAS+B,OAAM,SAIhExD,EAAQwC,UAAU6Z,GACvB,IACIvT,EADA3D,QAAiBnF,EAAQ4W,WAAWnV,GAExC,GAAI0D,QAWA,IAGIA,QAAkBkX,CAHtB,CAKA,MAAOhZ,GACCA,aAAe7D,QACfsJ,EAAQzF,EAEf,CAUL,IAAK8B,EACD,MAAM,IAAI5F,EAAa,cAAe,CAAEkB,IAAKgB,EAAQhB,IAAKqI,UAE9D,OAAO3D,CACV,2BClGL,WAEItG,KAAK0C,iBAAiB,YAAcC,IAChC,MAAMsE,EAAYI,IAClB1E,EAAMgB,UCMeiB,OAAO6Y,EAAqBC,EAnB/B,gBAoBtB,MACMC,SADmB3d,KAAK2K,OAAOzF,QACCgC,QAAQD,GAClCA,EAAU2H,SAAS8O,IACvBzW,EAAU2H,SAAS5O,KAAK8G,aAAaC,QACrCE,IAAcwW,IAGtB,aADMpa,QAAQC,IAAIqa,EAAmBna,KAAKyD,GAAcjH,KAAK2K,OAAO9C,OAAOZ,MACpE0W,CAAP,EDdoBC,CAAqB3W,GAAWpD,MAAMga,QAAtD,GASP,iBEhBD,WACI7d,KAAK0C,iBAAiB,YAAY,IAAM1C,KAAK8d,QAAQC,SACxD,qBCQD,SAA0BtF,EAASlQ,ICInC,SAAkBkQ,GACa4B,KACR3T,SAAS+R,EAC/B,CDNG/R,CAAS+R,GEAb,SAAkBlQ,GACd,MAAMsO,EAAqBwD,KAE3B/U,EADsB,IAAIgV,GAAczD,EAAoBtO,GAE/D,CFHGyV,CAASzV,EACZ"} \ No newline at end of file diff --git a/apps/deploy-web/public/workbox-495fd258.js b/apps/deploy-web/public/workbox-495fd258.js new file mode 100644 index 000000000..f3c32dac5 --- /dev/null +++ b/apps/deploy-web/public/workbox-495fd258.js @@ -0,0 +1,2 @@ +define(["exports"],(function(t){"use strict";try{self["workbox:core:6.5.4"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:6.5.4"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class r{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class i extends r{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class a{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let a=i&&i.handler;const o=t.method;if(!a&&this.i.has(o)&&(a=this.i.get(o)),!a)return;let c;try{c=a.handle({url:s,request:t,event:e,params:r})}catch(t){c=Promise.reject(t)}const h=i&&i.catchHandler;return c instanceof Promise&&(this.o||h)&&(c=c.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:r})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),c}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const r=this.t.get(s.method)||[];for(const i of r){let r;const a=i.match({url:t,sameOrigin:e,request:s,event:n});if(a)return r=a,(Array.isArray(r)&&0===r.length||a.constructor===Object&&0===Object.keys(a).length||"boolean"==typeof a)&&(r=void 0),{route:i,params:r}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let o;const c=()=>(o||(o=new a,o.addFetchListener(),o.addCacheListener()),o);function h(t,e,n){let a;if("string"==typeof t){const s=new URL(t,location.href);a=new r((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)a=new i(t,e,n);else if("function"==typeof t)a=new r(t,e,n);else{if(!(t instanceof r))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});a=t}return c().registerRoute(a),a}try{self["workbox:strategies:6.5.4"]&&_()}catch(t){}const u={cacheWillUpdate:async({response:t})=>200===t.status||0===t.status?t:null},l={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},f=t=>[l.prefix,t,l.suffix].filter((t=>t&&t.length>0)).join("-"),w=t=>t||f(l.precache),d=t=>t||f(l.runtime);function p(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class y{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const g=new Set;function m(t){return"string"==typeof t?new Request(t):t}class R{constructor(t,e){this.h={},Object.assign(this,e),this.event=e.event,this.u=t,this.l=new y,this.p=[],this.m=[...t.plugins],this.R=new Map;for(const t of this.m)this.R.set(t,{});this.event.waitUntil(this.l.promise)}async fetch(t){const{event:e}=this;let n=m(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const r=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const i=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.u.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:i,response:t});return t}catch(t){throw r&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:r.clone(),request:i.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=m(t);let s;const{cacheName:n,matchOptions:r}=this.u,i=await this.getCacheKey(e,"read"),a=Object.assign(Object.assign({},r),{cacheName:n});s=await caches.match(i,a);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:r,cachedResponse:s,request:i,event:this.event})||void 0;return s}async cachePut(t,e){const n=m(t);var r;await(r=0,new Promise((t=>setTimeout(t,r))));const i=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(a=i.url,new URL(String(a),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var a;const o=await this.v(e);if(!o)return!1;const{cacheName:c,matchOptions:h}=this.u,u=await self.caches.open(c),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const r=p(e.url,s);if(e.url===r)return t.match(e,n);const i=Object.assign(Object.assign({},n),{ignoreSearch:!0}),a=await t.keys(e,i);for(const e of a)if(r===p(e.url,s))return t.match(e,n)}(u,i.clone(),["__WB_REVISION__"],h):null;try{await u.put(i,l?o.clone():o)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of g)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:c,oldResponse:f,newResponse:o.clone(),request:i,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.h[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=m(await t({mode:e,request:n,event:this.event,params:this.params}));this.h[s]=n}return this.h[s]}hasCallback(t){for(const e of this.u.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.u.plugins)if("function"==typeof e[t]){const s=this.R.get(e),n=n=>{const r=Object.assign(Object.assign({},n),{state:s});return e[t](r)};yield n}}waitUntil(t){return this.p.push(t),t}async doneWaiting(){let t;for(;t=this.p.shift();)await t}destroy(){this.l.resolve(null)}async v(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class v{constructor(t={}){this.cacheName=d(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,r=new R(this,{event:e,request:s,params:n}),i=this.q(r,s,e);return[i,this.D(i,r,s,e)]}async q(t,e,n){let r;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(r=await this.U(e,t),!r||"error"===r.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const i of t.iterateCallbacks("handlerDidError"))if(r=await i({error:s,event:n,request:e}),r)break;if(!r)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))r=await s({event:n,request:e,response:r});return r}async D(t,e,s,n){let r,i;try{r=await t}catch(i){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:r}),await e.doneWaiting()}catch(t){t instanceof Error&&(i=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:r,error:i}),e.destroy(),i)throw i}}function b(t){t.then((()=>{}))}function q(){return q=Object.assign?Object.assign.bind():function(t){for(var e=1;ee.some((e=>t instanceof e));let U,x;const L=new WeakMap,I=new WeakMap,C=new WeakMap,E=new WeakMap,N=new WeakMap;let O={get(t,e,s){if(t instanceof IDBTransaction){if("done"===e)return I.get(t);if("objectStoreNames"===e)return t.objectStoreNames||C.get(t);if("store"===e)return s.objectStoreNames[1]?void 0:s.objectStore(s.objectStoreNames[0])}return B(t[e])},set:(t,e,s)=>(t[e]=s,!0),has:(t,e)=>t instanceof IDBTransaction&&("done"===e||"store"===e)||e in t};function T(t){return t!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(x||(x=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(P(this),e),B(L.get(this))}:function(...e){return B(t.apply(P(this),e))}:function(e,...s){const n=t.call(P(this),e,...s);return C.set(n,e.sort?e.sort():[e]),B(n)}}function k(t){return"function"==typeof t?T(t):(t instanceof IDBTransaction&&function(t){if(I.has(t))return;const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("complete",r),t.removeEventListener("error",i),t.removeEventListener("abort",i)},r=()=>{e(),n()},i=()=>{s(t.error||new DOMException("AbortError","AbortError")),n()};t.addEventListener("complete",r),t.addEventListener("error",i),t.addEventListener("abort",i)}));I.set(t,e)}(t),D(t,U||(U=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(t,O):t)}function B(t){if(t instanceof IDBRequest)return function(t){const e=new Promise(((e,s)=>{const n=()=>{t.removeEventListener("success",r),t.removeEventListener("error",i)},r=()=>{e(B(t.result)),n()},i=()=>{s(t.error),n()};t.addEventListener("success",r),t.addEventListener("error",i)}));return e.then((e=>{e instanceof IDBCursor&&L.set(e,t)})).catch((()=>{})),N.set(e,t),e}(t);if(E.has(t))return E.get(t);const e=k(t);return e!==t&&(E.set(t,e),N.set(e,t)),e}const P=t=>N.get(t);const M=["get","getKey","getAll","getAllKeys","count"],W=["put","add","delete","clear"],j=new Map;function S(t,e){if(!(t instanceof IDBDatabase)||e in t||"string"!=typeof e)return;if(j.get(e))return j.get(e);const s=e.replace(/FromIndex$/,""),n=e!==s,r=W.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!r&&!M.includes(s))return;const i=async function(t,...e){const i=this.transaction(t,r?"readwrite":"readonly");let a=i.store;return n&&(a=a.index(e.shift())),(await Promise.all([a[s](...e),r&&i.done]))[0]};return j.set(e,i),i}O=(t=>q({},t,{get:(e,s,n)=>S(e,s)||t.get(e,s,n),has:(e,s)=>!!S(e,s)||t.has(e,s)}))(O);try{self["workbox:expiration:6.5.4"]&&_()}catch(t){}const K="cache-entries",A=t=>{const e=new URL(t,location.href);return e.hash="",e.href};class F{constructor(t){this._=null,this.L=t}I(t){const e=t.createObjectStore(K,{keyPath:"id"});e.createIndex("cacheName","cacheName",{unique:!1}),e.createIndex("timestamp","timestamp",{unique:!1})}C(t){this.I(t),this.L&&function(t,{blocked:e}={}){const s=indexedDB.deleteDatabase(t);e&&s.addEventListener("blocked",(t=>e(t.oldVersion,t))),B(s).then((()=>{}))}(this.L)}async setTimestamp(t,e){const s={url:t=A(t),timestamp:e,cacheName:this.L,id:this.N(t)},n=(await this.getDb()).transaction(K,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(t){const e=await this.getDb(),s=await e.get(K,this.N(t));return null==s?void 0:s.timestamp}async expireEntries(t,e){const s=await this.getDb();let n=await s.transaction(K).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;n;){const s=n.value;s.cacheName===this.L&&(t&&s.timestamp=e?r.push(n.value):i++),n=await n.continue()}const a=[];for(const t of r)await s.delete(K,t.id),a.push(t.url);return a}N(t){return this.L+"|"+A(t)}async getDb(){return this._||(this._=await function(t,e,{blocked:s,upgrade:n,blocking:r,terminated:i}={}){const a=indexedDB.open(t,e),o=B(a);return n&&a.addEventListener("upgradeneeded",(t=>{n(B(a.result),t.oldVersion,t.newVersion,B(a.transaction),t)})),s&&a.addEventListener("blocked",(t=>s(t.oldVersion,t.newVersion,t))),o.then((t=>{i&&t.addEventListener("close",(()=>i())),r&&t.addEventListener("versionchange",(t=>r(t.oldVersion,t.newVersion,t)))})).catch((()=>{})),o}("workbox-expiration",1,{upgrade:this.C.bind(this)})),this._}}class H{constructor(t,e={}){this.O=!1,this.T=!1,this.k=e.maxEntries,this.B=e.maxAgeSeconds,this.P=e.matchOptions,this.L=t,this.M=new F(t)}async expireEntries(){if(this.O)return void(this.T=!0);this.O=!0;const t=this.B?Date.now()-1e3*this.B:0,e=await this.M.expireEntries(t,this.k),s=await self.caches.open(this.L);for(const t of e)await s.delete(t,this.P);this.O=!1,this.T&&(this.T=!1,b(this.expireEntries()))}async updateTimestamp(t){await this.M.setTimestamp(t,Date.now())}async isURLExpired(t){if(this.B){const e=await this.M.getTimestamp(t),s=Date.now()-1e3*this.B;return void 0===e||er||e&&e<0)throw new s("range-not-satisfiable",{size:r,end:n,start:e});let i,a;return void 0!==e&&void 0!==n?(i=e,a=n+1):void 0!==e&&void 0===n?(i=e,a=r):void 0!==n&&void 0===e&&(i=r-n,a=r),{start:i,end:a}}(i,r.start,r.end),o=i.slice(a.start,a.end),c=o.size,h=new Response(o,{status:206,statusText:"Partial Content",headers:e.headers});return h.headers.set("Content-Length",String(c)),h.headers.set("Content-Range",`bytes ${a.start}-${a.end-1}/${i.size}`),h}catch(t){return new Response("",{status:416,statusText:"Range Not Satisfiable"})}}function z(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:6.5.4"]&&_()}catch(t){}function G(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const r=new URL(n,location.href),i=new URL(n,location.href);return r.searchParams.set("__WB_REVISION__",e),{cacheKey:r.href,url:i.href}}class V{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class J{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.W.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.W=t}}let Q,X;async function Y(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const r=t.clone(),i={headers:new Headers(r.headers),status:r.status,statusText:r.statusText},a=e?e(i):i,o=function(){if(void 0===Q){const t=new Response("");if("body"in t)try{new Response(t.body),Q=!0}catch(t){Q=!1}Q=!1}return Q}()?r.body:await r.blob();return new Response(o,a)}class Z extends v{constructor(t={}){t.cacheName=w(t.cacheName),super(t),this.j=!1!==t.fallbackToNetwork,this.plugins.push(Z.copyRedirectedCacheableResponsesPlugin)}async U(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.S(t,e):await this.K(t,e))}async K(t,e){let n;const r=e.params||{};if(!this.j)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=r.integrity,i=t.integrity,a=!i||i===s;n=await e.fetch(new Request(t,{integrity:"no-cors"!==t.mode?i||s:void 0})),s&&a&&"no-cors"!==t.mode&&(this.A(),await e.cachePut(t,n.clone()))}return n}async S(t,e){this.A();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}A(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==Z.copyRedirectedCacheableResponsesPlugin&&(n===Z.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(Z.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}Z.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},Z.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await Y(t):t};class tt{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.F=new Map,this.H=new Map,this.$=new Map,this.u=new Z({cacheName:w(t),plugins:[...e,new J({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.u}precache(t){this.addToCacheList(t),this.G||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.G=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:r}=G(n),i="string"!=typeof n&&n.revision?"reload":"default";if(this.F.has(r)&&this.F.get(r)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.F.get(r),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.$.has(t)&&this.$.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:r});this.$.set(t,n.integrity)}if(this.F.set(r,t),this.H.set(r,i),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return z(t,(async()=>{const e=new V;this.strategy.plugins.push(e);for(const[e,s]of this.F){const n=this.$.get(s),r=this.H.get(e),i=new Request(e,{integrity:n,cache:r,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:i,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return z(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.F.values()),n=[];for(const r of e)s.has(r.url)||(await t.delete(r),n.push(r.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.F}getCachedURLs(){return[...this.F.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.F.get(e.href)}getIntegrityForCacheKey(t){return this.$.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}const et=()=>(X||(X=new tt),X);class st extends r{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const r of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:r}={}){const i=new URL(t,location.href);i.hash="",yield i.href;const a=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(i,e);if(yield a.href,s&&a.pathname.endsWith("/")){const t=new URL(a.href);t.pathname+=s,yield t.href}if(n){const t=new URL(a.href);t.pathname+=".html",yield t.href}if(r){const t=r({url:i});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(r);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.CacheFirst=class extends v{async U(t,e){let n,r=await e.cacheMatch(t);if(!r)try{r=await e.fetchAndCachePut(t)}catch(t){t instanceof Error&&(n=t)}if(!r)throw new s("no-response",{url:t.url,error:n});return r}},t.ExpirationPlugin=class{constructor(t={}){this.cachedResponseWillBeUsed=async({event:t,request:e,cacheName:s,cachedResponse:n})=>{if(!n)return null;const r=this.V(n),i=this.J(s);b(i.expireEntries());const a=i.updateTimestamp(e.url);if(t)try{t.waitUntil(a)}catch(t){}return r?n:null},this.cacheDidUpdate=async({cacheName:t,request:e})=>{const s=this.J(t);await s.updateTimestamp(e.url),await s.expireEntries()},this.X=t,this.B=t.maxAgeSeconds,this.Y=new Map,t.purgeOnQuotaError&&function(t){g.add(t)}((()=>this.deleteCacheAndMetadata()))}J(t){if(t===d())throw new s("expire-custom-caches-only");let e=this.Y.get(t);return e||(e=new H(t,this.X),this.Y.set(t,e)),e}V(t){if(!this.B)return!0;const e=this.Z(t);if(null===e)return!0;return e>=Date.now()-1e3*this.B}Z(t){if(!t.headers.has("date"))return null;const e=t.headers.get("date"),s=new Date(e).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[t,e]of this.Y)await self.caches.delete(t),await e.delete();this.Y=new Map}},t.NetworkFirst=class extends v{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(u),this.tt=t.networkTimeoutSeconds||0}async U(t,e){const n=[],r=[];let i;if(this.tt){const{id:s,promise:a}=this.et({request:t,logs:n,handler:e});i=s,r.push(a)}const a=this.st({timeoutId:i,request:t,logs:n,handler:e});r.push(a);const o=await e.waitUntil((async()=>await e.waitUntil(Promise.race(r))||await a)());if(!o)throw new s("no-response",{url:t.url});return o}et({request:t,logs:e,handler:s}){let n;return{promise:new Promise((e=>{n=setTimeout((async()=>{e(await s.cacheMatch(t))}),1e3*this.tt)})),id:n}}async st({timeoutId:t,request:e,logs:s,handler:n}){let r,i;try{i=await n.fetchAndCachePut(e)}catch(t){t instanceof Error&&(r=t)}return t&&clearTimeout(t),!r&&i||(i=await n.cacheMatch(e)),i}},t.RangeRequestsPlugin=class{constructor(){this.cachedResponseWillBeUsed=async({request:t,cachedResponse:e})=>e&&t.headers.has("range")?await $(t,e):e}},t.StaleWhileRevalidate=class extends v{constructor(t={}){super(t),this.plugins.some((t=>"cacheWillUpdate"in t))||this.plugins.unshift(u)}async U(t,e){const n=e.fetchAndCachePut(t).catch((()=>{}));e.waitUntil(n);let r,i=await e.cacheMatch(t);if(i);else try{i=await n}catch(t){t instanceof Error&&(r=t)}if(!i)throw new s("no-response",{url:t.url,error:r});return i}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=w();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.clientsClaim=function(){self.addEventListener("activate",(()=>self.clients.claim()))},t.precacheAndRoute=function(t,e){!function(t){et().precache(t)}(t),function(t){const e=et();h(new st(e,t))}(e)},t.registerRoute=h})); +//# sourceMappingURL=workbox-495fd258.js.map diff --git a/apps/deploy-web/public/workbox-495fd258.js.map b/apps/deploy-web/public/workbox-495fd258.js.map new file mode 100644 index 000000000..4315fce11 --- /dev/null +++ b/apps/deploy-web/public/workbox-495fd258.js.map @@ -0,0 +1 @@ +{"version":3,"file":"workbox-495fd258.js","sources":["../../node_modules/workbox-core/_version.js","../../node_modules/workbox-core/_private/logger.js","../../node_modules/workbox-core/models/messages/messageGenerator.js","../../node_modules/workbox-core/_private/WorkboxError.js","../../node_modules/workbox-routing/_version.js","../../node_modules/workbox-routing/utils/constants.js","../../node_modules/workbox-routing/utils/normalizeHandler.js","../../node_modules/workbox-routing/Route.js","../../node_modules/workbox-routing/RegExpRoute.js","../../node_modules/workbox-routing/Router.js","../../node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js","../../node_modules/workbox-routing/registerRoute.js","../../node_modules/workbox-strategies/_version.js","../../node_modules/workbox-strategies/plugins/cacheOkAndOpaquePlugin.js","../../node_modules/workbox-core/_private/cacheNames.js","../../node_modules/workbox-core/_private/cacheMatchIgnoreParams.js","../../node_modules/workbox-core/_private/Deferred.js","../../node_modules/workbox-core/models/quotaErrorCallbacks.js","../../node_modules/workbox-strategies/StrategyHandler.js","../../node_modules/workbox-core/_private/timeout.js","../../node_modules/workbox-core/_private/getFriendlyURL.js","../../node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js","../../node_modules/workbox-strategies/Strategy.js","../../node_modules/workbox-core/_private/dontWaitFor.js","../../node_modules/idb/build/wrap-idb-value.js","../../node_modules/idb/build/index.js","../../node_modules/workbox-expiration/_version.js","../../node_modules/workbox-expiration/models/CacheTimestampsModel.js","../../node_modules/workbox-expiration/CacheExpiration.js","../../node_modules/workbox-range-requests/_version.js","../../node_modules/workbox-range-requests/createPartialResponse.js","../../node_modules/workbox-range-requests/utils/parseRangeHeader.js","../../node_modules/workbox-range-requests/utils/calculateEffectiveBoundaries.js","../../node_modules/workbox-core/_private/waitUntil.js","../../node_modules/workbox-precaching/_version.js","../../node_modules/workbox-precaching/utils/createCacheKey.js","../../node_modules/workbox-precaching/utils/PrecacheInstallReportPlugin.js","../../node_modules/workbox-precaching/utils/PrecacheCacheKeyPlugin.js","../../node_modules/workbox-core/_private/canConstructResponseFromBodyStream.js","../../node_modules/workbox-precaching/utils/getOrCreatePrecacheController.js","../../node_modules/workbox-core/copyResponse.js","../../node_modules/workbox-precaching/PrecacheStrategy.js","../../node_modules/workbox-precaching/PrecacheController.js","../../node_modules/workbox-precaching/PrecacheRoute.js","../../node_modules/workbox-precaching/utils/generateURLVariations.js","../../node_modules/workbox-precaching/utils/removeIgnoredSearchParams.js","../../node_modules/workbox-strategies/CacheFirst.js","../../node_modules/workbox-expiration/ExpirationPlugin.js","../../node_modules/workbox-core/registerQuotaErrorCallback.js","../../node_modules/workbox-strategies/NetworkFirst.js","../../node_modules/workbox-range-requests/RangeRequestsPlugin.js","../../node_modules/workbox-strategies/StaleWhileRevalidate.js","../../node_modules/workbox-precaching/cleanupOutdatedCaches.js","../../node_modules/workbox-precaching/utils/deleteOutdatedCaches.js","../../node_modules/workbox-core/clientsClaim.js","../../node_modules/workbox-precaching/precacheAndRoute.js","../../node_modules/workbox-precaching/precache.js","../../node_modules/workbox-precaching/addRoute.js"],"sourcesContent":["\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:core:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst logger = (process.env.NODE_ENV === 'production'\n ? null\n : (() => {\n // Don't overwrite this value if it's already set.\n // See https://github.com/GoogleChrome/workbox/pull/2284#issuecomment-560470923\n if (!('__WB_DISABLE_DEV_LOGS' in globalThis)) {\n self.__WB_DISABLE_DEV_LOGS = false;\n }\n let inGroup = false;\n const methodToColorMap = {\n debug: `#7f8c8d`,\n log: `#2ecc71`,\n warn: `#f39c12`,\n error: `#c0392b`,\n groupCollapsed: `#3498db`,\n groupEnd: null, // No colored prefix on groupEnd\n };\n const print = function (method, args) {\n if (self.__WB_DISABLE_DEV_LOGS) {\n return;\n }\n if (method === 'groupCollapsed') {\n // Safari doesn't print all console.groupCollapsed() arguments:\n // https://bugs.webkit.org/show_bug.cgi?id=182754\n if (/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n console[method](...args);\n return;\n }\n }\n const styles = [\n `background: ${methodToColorMap[method]}`,\n `border-radius: 0.5em`,\n `color: white`,\n `font-weight: bold`,\n `padding: 2px 0.5em`,\n ];\n // When in a group, the workbox prefix is not displayed.\n const logPrefix = inGroup ? [] : ['%cworkbox', styles.join(';')];\n console[method](...logPrefix, ...args);\n if (method === 'groupCollapsed') {\n inGroup = true;\n }\n if (method === 'groupEnd') {\n inGroup = false;\n }\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n const api = {};\n const loggerMethods = Object.keys(methodToColorMap);\n for (const key of loggerMethods) {\n const method = key;\n api[method] = (...args) => {\n print(method, args);\n };\n }\n return api;\n })());\nexport { logger };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messages } from './messages.js';\nimport '../../_version.js';\nconst fallback = (code, ...args) => {\n let msg = code;\n if (args.length > 0) {\n msg += ` :: ${JSON.stringify(args)}`;\n }\n return msg;\n};\nconst generatorFunction = (code, details = {}) => {\n const message = messages[code];\n if (!message) {\n throw new Error(`Unable to find message for code '${code}'.`);\n }\n return message(details);\n};\nexport const messageGenerator = process.env.NODE_ENV === 'production' ? fallback : generatorFunction;\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messageGenerator } from '../models/messages/messageGenerator.js';\nimport '../_version.js';\n/**\n * Workbox errors should be thrown with this class.\n * This allows use to ensure the type easily in tests,\n * helps developers identify errors from workbox\n * easily and allows use to optimise error\n * messages correctly.\n *\n * @private\n */\nclass WorkboxError extends Error {\n /**\n *\n * @param {string} errorCode The error code that\n * identifies this particular error.\n * @param {Object=} details Any relevant arguments\n * that will help developers identify issues should\n * be added as a key on the context object.\n */\n constructor(errorCode, details) {\n const message = messageGenerator(errorCode, details);\n super(message);\n this.name = errorCode;\n this.details = details;\n }\n}\nexport { WorkboxError };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:routing:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The default HTTP method, 'GET', used when there's no specific method\n * configured for a route.\n *\n * @type {string}\n *\n * @private\n */\nexport const defaultMethod = 'GET';\n/**\n * The list of valid HTTP methods associated with requests that could be routed.\n *\n * @type {Array}\n *\n * @private\n */\nexport const validMethods = [\n 'DELETE',\n 'GET',\n 'HEAD',\n 'PATCH',\n 'POST',\n 'PUT',\n];\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {function()|Object} handler Either a function, or an object with a\n * 'handle' method.\n * @return {Object} An object with a handle method.\n *\n * @private\n */\nexport const normalizeHandler = (handler) => {\n if (handler && typeof handler === 'object') {\n if (process.env.NODE_ENV !== 'production') {\n assert.hasMethod(handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return handler;\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(handler, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return { handle: handler };\n }\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { defaultMethod, validMethods } from './utils/constants.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport './_version.js';\n/**\n * A `Route` consists of a pair of callback functions, \"match\" and \"handler\".\n * The \"match\" callback determine if a route should be used to \"handle\" a\n * request by returning a non-falsy value if it can. The \"handler\" callback\n * is called when there is a match and should return a Promise that resolves\n * to a `Response`.\n *\n * @memberof workbox-routing\n */\nclass Route {\n /**\n * Constructor for Route class.\n *\n * @param {workbox-routing~matchCallback} match\n * A callback function that determines whether the route matches a given\n * `fetch` event by returning a non-falsy value.\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(match, handler, method = defaultMethod) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(match, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'match',\n });\n if (method) {\n assert.isOneOf(method, validMethods, { paramName: 'method' });\n }\n }\n // These values are referenced directly by Router so cannot be\n // altered by minificaton.\n this.handler = normalizeHandler(handler);\n this.match = match;\n this.method = method;\n }\n /**\n *\n * @param {workbox-routing-handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response\n */\n setCatchHandler(handler) {\n this.catchHandler = normalizeHandler(handler);\n }\n}\nexport { Route };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { Route } from './Route.js';\nimport './_version.js';\n/**\n * RegExpRoute makes it easy to create a regular expression based\n * {@link workbox-routing.Route}.\n *\n * For same-origin requests the RegExp only needs to match part of the URL. For\n * requests against third-party servers, you must define a RegExp that matches\n * the start of the URL.\n *\n * @memberof workbox-routing\n * @extends workbox-routing.Route\n */\nclass RegExpRoute extends Route {\n /**\n * If the regular expression contains\n * [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},\n * the captured values will be passed to the\n * {@link workbox-routing~handlerCallback} `params`\n * argument.\n *\n * @param {RegExp} regExp The regular expression to match against URLs.\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(regExp, handler, method) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(regExp, RegExp, {\n moduleName: 'workbox-routing',\n className: 'RegExpRoute',\n funcName: 'constructor',\n paramName: 'pattern',\n });\n }\n const match = ({ url }) => {\n const result = regExp.exec(url.href);\n // Return immediately if there's no match.\n if (!result) {\n return;\n }\n // Require that the match start at the first character in the URL string\n // if it's a cross-origin request.\n // See https://github.com/GoogleChrome/workbox/issues/281 for the context\n // behind this behavior.\n if (url.origin !== location.origin && result.index !== 0) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`The regular expression '${regExp.toString()}' only partially matched ` +\n `against the cross-origin URL '${url.toString()}'. RegExpRoute's will only ` +\n `handle cross-origin requests if they match the entire URL.`);\n }\n return;\n }\n // If the route matches, but there aren't any capture groups defined, then\n // this will return [], which is truthy and therefore sufficient to\n // indicate a match.\n // If there are capture groups, then it will return their values.\n return result.slice(1);\n };\n super(match, handler, method);\n }\n}\nexport { RegExpRoute };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { defaultMethod } from './utils/constants.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\n/**\n * The Router can be used to process a `FetchEvent` using one or more\n * {@link workbox-routing.Route}, responding with a `Response` if\n * a matching route exists.\n *\n * If no route matches a given a request, the Router will use a \"default\"\n * handler if one is defined.\n *\n * Should the matching Route throw an error, the Router will use a \"catch\"\n * handler if one is defined to gracefully deal with issues and respond with a\n * Request.\n *\n * If a request matches multiple routes, the **earliest** registered route will\n * be used to respond to the request.\n *\n * @memberof workbox-routing\n */\nclass Router {\n /**\n * Initializes a new Router.\n */\n constructor() {\n this._routes = new Map();\n this._defaultHandlerMap = new Map();\n }\n /**\n * @return {Map>} routes A `Map` of HTTP\n * method name ('GET', etc.) to an array of all the corresponding `Route`\n * instances that are registered.\n */\n get routes() {\n return this._routes;\n }\n /**\n * Adds a fetch event listener to respond to events when a route matches\n * the event's request.\n */\n addFetchListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('fetch', ((event) => {\n const { request } = event;\n const responsePromise = this.handleRequest({ request, event });\n if (responsePromise) {\n event.respondWith(responsePromise);\n }\n }));\n }\n /**\n * Adds a message event listener for URLs to cache from the window.\n * This is useful to cache resources loaded on the page prior to when the\n * service worker started controlling it.\n *\n * The format of the message data sent from the window should be as follows.\n * Where the `urlsToCache` array may consist of URL strings or an array of\n * URL string + `requestInit` object (the same as you'd pass to `fetch()`).\n *\n * ```\n * {\n * type: 'CACHE_URLS',\n * payload: {\n * urlsToCache: [\n * './script1.js',\n * './script2.js',\n * ['./script3.js', {mode: 'no-cors'}],\n * ],\n * },\n * }\n * ```\n */\n addCacheListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('message', ((event) => {\n // event.data is type 'any'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (event.data && event.data.type === 'CACHE_URLS') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const { payload } = event.data;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Caching URLs from the window`, payload.urlsToCache);\n }\n const requestPromises = Promise.all(payload.urlsToCache.map((entry) => {\n if (typeof entry === 'string') {\n entry = [entry];\n }\n const request = new Request(...entry);\n return this.handleRequest({ request, event });\n // TODO(philipwalton): TypeScript errors without this typecast for\n // some reason (probably a bug). The real type here should work but\n // doesn't: `Array | undefined>`.\n })); // TypeScript\n event.waitUntil(requestPromises);\n // If a MessageChannel was used, reply to the message on success.\n if (event.ports && event.ports[0]) {\n void requestPromises.then(() => event.ports[0].postMessage(true));\n }\n }\n }));\n }\n /**\n * Apply the routing rules to a FetchEvent object to get a Response from an\n * appropriate Route's handler.\n *\n * @param {Object} options\n * @param {Request} options.request The request to handle.\n * @param {ExtendableEvent} options.event The event that triggered the\n * request.\n * @return {Promise|undefined} A promise is returned if a\n * registered route can handle the request. If there is no matching\n * route and there's no `defaultHandler`, `undefined` is returned.\n */\n handleRequest({ request, event, }) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'handleRequest',\n paramName: 'options.request',\n });\n }\n const url = new URL(request.url, location.href);\n if (!url.protocol.startsWith('http')) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Workbox Router only supports URLs that start with 'http'.`);\n }\n return;\n }\n const sameOrigin = url.origin === location.origin;\n const { params, route } = this.findMatchingRoute({\n event,\n request,\n sameOrigin,\n url,\n });\n let handler = route && route.handler;\n const debugMessages = [];\n if (process.env.NODE_ENV !== 'production') {\n if (handler) {\n debugMessages.push([`Found a route to handle this request:`, route]);\n if (params) {\n debugMessages.push([\n `Passing the following params to the route's handler:`,\n params,\n ]);\n }\n }\n }\n // If we don't have a handler because there was no matching route, then\n // fall back to defaultHandler if that's defined.\n const method = request.method;\n if (!handler && this._defaultHandlerMap.has(method)) {\n if (process.env.NODE_ENV !== 'production') {\n debugMessages.push(`Failed to find a matching route. Falling ` +\n `back to the default handler for ${method}.`);\n }\n handler = this._defaultHandlerMap.get(method);\n }\n if (!handler) {\n if (process.env.NODE_ENV !== 'production') {\n // No handler so Workbox will do nothing. If logs is set of debug\n // i.e. verbose, we should print out this information.\n logger.debug(`No route found for: ${getFriendlyURL(url)}`);\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // We have a handler, meaning Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`);\n debugMessages.forEach((msg) => {\n if (Array.isArray(msg)) {\n logger.log(...msg);\n }\n else {\n logger.log(msg);\n }\n });\n logger.groupEnd();\n }\n // Wrap in try and catch in case the handle method throws a synchronous\n // error. It should still callback to the catch handler.\n let responsePromise;\n try {\n responsePromise = handler.handle({ url, request, event, params });\n }\n catch (err) {\n responsePromise = Promise.reject(err);\n }\n // Get route's catch handler, if it exists\n const catchHandler = route && route.catchHandler;\n if (responsePromise instanceof Promise &&\n (this._catchHandler || catchHandler)) {\n responsePromise = responsePromise.catch(async (err) => {\n // If there's a route catch handler, process that first\n if (catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n try {\n return await catchHandler.handle({ url, request, event, params });\n }\n catch (catchErr) {\n if (catchErr instanceof Error) {\n err = catchErr;\n }\n }\n }\n if (this._catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to global Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n return this._catchHandler.handle({ url, request, event });\n }\n throw err;\n });\n }\n return responsePromise;\n }\n /**\n * Checks a request and URL (and optionally an event) against the list of\n * registered routes, and if there's a match, returns the corresponding\n * route along with any params generated by the match.\n *\n * @param {Object} options\n * @param {URL} options.url\n * @param {boolean} options.sameOrigin The result of comparing `url.origin`\n * against the current origin.\n * @param {Request} options.request The request to match.\n * @param {Event} options.event The corresponding event.\n * @return {Object} An object with `route` and `params` properties.\n * They are populated if a matching route was found or `undefined`\n * otherwise.\n */\n findMatchingRoute({ url, sameOrigin, request, event, }) {\n const routes = this._routes.get(request.method) || [];\n for (const route of routes) {\n let params;\n // route.match returns type any, not possible to change right now.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const matchResult = route.match({ url, sameOrigin, request, event });\n if (matchResult) {\n if (process.env.NODE_ENV !== 'production') {\n // Warn developers that using an async matchCallback is almost always\n // not the right thing to do.\n if (matchResult instanceof Promise) {\n logger.warn(`While routing ${getFriendlyURL(url)}, an async ` +\n `matchCallback function was used. Please convert the ` +\n `following route to use a synchronous matchCallback function:`, route);\n }\n }\n // See https://github.com/GoogleChrome/workbox/issues/2079\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n params = matchResult;\n if (Array.isArray(params) && params.length === 0) {\n // Instead of passing an empty array in as params, use undefined.\n params = undefined;\n }\n else if (matchResult.constructor === Object && // eslint-disable-line\n Object.keys(matchResult).length === 0) {\n // Instead of passing an empty object in as params, use undefined.\n params = undefined;\n }\n else if (typeof matchResult === 'boolean') {\n // For the boolean value true (rather than just something truth-y),\n // don't set params.\n // See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353\n params = undefined;\n }\n // Return early if have a match.\n return { route, params };\n }\n }\n // If no match was found above, return and empty object.\n return {};\n }\n /**\n * Define a default `handler` that's called when no routes explicitly\n * match the incoming request.\n *\n * Each HTTP method ('GET', 'POST', etc.) gets its own default handler.\n *\n * Without a default handler, unmatched requests will go against the\n * network as if there were no service worker present.\n *\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to associate with this\n * default handler. Each method has its own default.\n */\n setDefaultHandler(handler, method = defaultMethod) {\n this._defaultHandlerMap.set(method, normalizeHandler(handler));\n }\n /**\n * If a Route throws an error while handling a request, this `handler`\n * will be called and given a chance to provide a response.\n *\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n */\n setCatchHandler(handler) {\n this._catchHandler = normalizeHandler(handler);\n }\n /**\n * Registers a route with the router.\n *\n * @param {workbox-routing.Route} route The route to register.\n */\n registerRoute(route) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(route, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route, 'match', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.isType(route.handler, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route.handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.handler',\n });\n assert.isType(route.method, 'string', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.method',\n });\n }\n if (!this._routes.has(route.method)) {\n this._routes.set(route.method, []);\n }\n // Give precedence to all of the earlier routes by adding this additional\n // route to the end of the array.\n this._routes.get(route.method).push(route);\n }\n /**\n * Unregisters a route with the router.\n *\n * @param {workbox-routing.Route} route The route to unregister.\n */\n unregisterRoute(route) {\n if (!this._routes.has(route.method)) {\n throw new WorkboxError('unregister-route-but-not-found-with-method', {\n method: route.method,\n });\n }\n const routeIndex = this._routes.get(route.method).indexOf(route);\n if (routeIndex > -1) {\n this._routes.get(route.method).splice(routeIndex, 1);\n }\n else {\n throw new WorkboxError('unregister-route-route-not-registered');\n }\n }\n}\nexport { Router };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { Router } from '../Router.js';\nimport '../_version.js';\nlet defaultRouter;\n/**\n * Creates a new, singleton Router instance if one does not exist. If one\n * does already exist, that instance is returned.\n *\n * @private\n * @return {Router}\n */\nexport const getOrCreateDefaultRouter = () => {\n if (!defaultRouter) {\n defaultRouter = new Router();\n // The helpers that use the default Router assume these listeners exist.\n defaultRouter.addFetchListener();\n defaultRouter.addCacheListener();\n }\n return defaultRouter;\n};\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Route } from './Route.js';\nimport { RegExpRoute } from './RegExpRoute.js';\nimport { getOrCreateDefaultRouter } from './utils/getOrCreateDefaultRouter.js';\nimport './_version.js';\n/**\n * Easily register a RegExp, string, or function with a caching\n * strategy to a singleton Router instance.\n *\n * This method will generate a Route for you if needed and\n * call {@link workbox-routing.Router#registerRoute}.\n *\n * @param {RegExp|string|workbox-routing.Route~matchCallback|workbox-routing.Route} capture\n * If the capture param is a `Route`, all other arguments will be ignored.\n * @param {workbox-routing~handlerCallback} [handler] A callback\n * function that returns a Promise resulting in a Response. This parameter\n * is required if `capture` is not a `Route` object.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n * @return {workbox-routing.Route} The generated `Route`.\n *\n * @memberof workbox-routing\n */\nfunction registerRoute(capture, handler, method) {\n let route;\n if (typeof capture === 'string') {\n const captureUrl = new URL(capture, location.href);\n if (process.env.NODE_ENV !== 'production') {\n if (!(capture.startsWith('/') || capture.startsWith('http'))) {\n throw new WorkboxError('invalid-string', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n // We want to check if Express-style wildcards are in the pathname only.\n // TODO: Remove this log message in v4.\n const valueToCheck = capture.startsWith('http')\n ? captureUrl.pathname\n : capture;\n // See https://github.com/pillarjs/path-to-regexp#parameters\n const wildcards = '[*:?+]';\n if (new RegExp(`${wildcards}`).exec(valueToCheck)) {\n logger.debug(`The '$capture' parameter contains an Express-style wildcard ` +\n `character (${wildcards}). Strings are now always interpreted as ` +\n `exact matches; use a RegExp for partial or wildcard matches.`);\n }\n }\n const matchCallback = ({ url }) => {\n if (process.env.NODE_ENV !== 'production') {\n if (url.pathname === captureUrl.pathname &&\n url.origin !== captureUrl.origin) {\n logger.debug(`${capture} only partially matches the cross-origin URL ` +\n `${url.toString()}. This route will only handle cross-origin requests ` +\n `if they match the entire URL.`);\n }\n }\n return url.href === captureUrl.href;\n };\n // If `capture` is a string then `handler` and `method` must be present.\n route = new Route(matchCallback, handler, method);\n }\n else if (capture instanceof RegExp) {\n // If `capture` is a `RegExp` then `handler` and `method` must be present.\n route = new RegExpRoute(capture, handler, method);\n }\n else if (typeof capture === 'function') {\n // If `capture` is a function then `handler` and `method` must be present.\n route = new Route(capture, handler, method);\n }\n else if (capture instanceof Route) {\n route = capture;\n }\n else {\n throw new WorkboxError('unsupported-route-type', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n const defaultRouter = getOrCreateDefaultRouter();\n defaultRouter.registerRoute(route);\n return route;\n}\nexport { registerRoute };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:strategies:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nexport const cacheOkAndOpaquePlugin = {\n /**\n * Returns a valid response (to allow caching) if the status is 200 (OK) or\n * 0 (opaque).\n *\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n *\n * @private\n */\n cacheWillUpdate: async ({ response }) => {\n if (response.status === 200 || response.status === 0) {\n return response;\n }\n return null;\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst _cacheNameDetails = {\n googleAnalytics: 'googleAnalytics',\n precache: 'precache-v2',\n prefix: 'workbox',\n runtime: 'runtime',\n suffix: typeof registration !== 'undefined' ? registration.scope : '',\n};\nconst _createCacheName = (cacheName) => {\n return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix]\n .filter((value) => value && value.length > 0)\n .join('-');\n};\nconst eachCacheNameDetail = (fn) => {\n for (const key of Object.keys(_cacheNameDetails)) {\n fn(key);\n }\n};\nexport const cacheNames = {\n updateDetails: (details) => {\n eachCacheNameDetail((key) => {\n if (typeof details[key] === 'string') {\n _cacheNameDetails[key] = details[key];\n }\n });\n },\n getGoogleAnalyticsName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics);\n },\n getPrecacheName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.precache);\n },\n getPrefix: () => {\n return _cacheNameDetails.prefix;\n },\n getRuntimeName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.runtime);\n },\n getSuffix: () => {\n return _cacheNameDetails.suffix;\n },\n};\n","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nfunction stripParams(fullURL, ignoreParams) {\n const strippedURL = new URL(fullURL);\n for (const param of ignoreParams) {\n strippedURL.searchParams.delete(param);\n }\n return strippedURL.href;\n}\n/**\n * Matches an item in the cache, ignoring specific URL params. This is similar\n * to the `ignoreSearch` option, but it allows you to ignore just specific\n * params (while continuing to match on the others).\n *\n * @private\n * @param {Cache} cache\n * @param {Request} request\n * @param {Object} matchOptions\n * @param {Array} ignoreParams\n * @return {Promise}\n */\nasync function cacheMatchIgnoreParams(cache, request, ignoreParams, matchOptions) {\n const strippedRequestURL = stripParams(request.url, ignoreParams);\n // If the request doesn't include any ignored params, match as normal.\n if (request.url === strippedRequestURL) {\n return cache.match(request, matchOptions);\n }\n // Otherwise, match by comparing keys\n const keysOptions = Object.assign(Object.assign({}, matchOptions), { ignoreSearch: true });\n const cacheKeys = await cache.keys(request, keysOptions);\n for (const cacheKey of cacheKeys) {\n const strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams);\n if (strippedRequestURL === strippedCacheKeyURL) {\n return cache.match(cacheKey, matchOptions);\n }\n }\n return;\n}\nexport { cacheMatchIgnoreParams };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The Deferred class composes Promises in a way that allows for them to be\n * resolved or rejected from outside the constructor. In most cases promises\n * should be used directly, but Deferreds can be necessary when the logic to\n * resolve a promise must be separate.\n *\n * @private\n */\nclass Deferred {\n /**\n * Creates a promise and exposes its resolve and reject functions as methods.\n */\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\nexport { Deferred };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n// Callbacks to be executed whenever there's a quota error.\n// Can't change Function type right now.\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst quotaErrorCallbacks = new Set();\nexport { quotaErrorCallbacks };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheMatchIgnoreParams } from 'workbox-core/_private/cacheMatchIgnoreParams.js';\nimport { Deferred } from 'workbox-core/_private/Deferred.js';\nimport { executeQuotaErrorCallbacks } from 'workbox-core/_private/executeQuotaErrorCallbacks.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { timeout } from 'workbox-core/_private/timeout.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\nfunction toRequest(input) {\n return typeof input === 'string' ? new Request(input) : input;\n}\n/**\n * A class created every time a Strategy instance instance calls\n * {@link workbox-strategies.Strategy~handle} or\n * {@link workbox-strategies.Strategy~handleAll} that wraps all fetch and\n * cache actions around plugin callbacks and keeps track of when the strategy\n * is \"done\" (i.e. all added `event.waitUntil()` promises have resolved).\n *\n * @memberof workbox-strategies\n */\nclass StrategyHandler {\n /**\n * Creates a new instance associated with the passed strategy and event\n * that's handling the request.\n *\n * The constructor also initializes the state that will be passed to each of\n * the plugins handling this request.\n *\n * @param {workbox-strategies.Strategy} strategy\n * @param {Object} options\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params] The return value from the\n * {@link workbox-routing~matchCallback} (if applicable).\n */\n constructor(strategy, options) {\n this._cacheKeys = {};\n /**\n * The request the strategy is performing (passed to the strategy's\n * `handle()` or `handleAll()` method).\n * @name request\n * @instance\n * @type {Request}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * The event associated with this request.\n * @name event\n * @instance\n * @type {ExtendableEvent}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * A `URL` instance of `request.url` (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `url` param will be present if the strategy was invoked\n * from a workbox `Route` object.\n * @name url\n * @instance\n * @type {URL|undefined}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * A `param` value (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `param` param will be present if the strategy was invoked\n * from a workbox `Route` object and the\n * {@link workbox-routing~matchCallback} returned\n * a truthy value (it will be that value).\n * @name params\n * @instance\n * @type {*|undefined}\n * @memberof workbox-strategies.StrategyHandler\n */\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(options.event, ExtendableEvent, {\n moduleName: 'workbox-strategies',\n className: 'StrategyHandler',\n funcName: 'constructor',\n paramName: 'options.event',\n });\n }\n Object.assign(this, options);\n this.event = options.event;\n this._strategy = strategy;\n this._handlerDeferred = new Deferred();\n this._extendLifetimePromises = [];\n // Copy the plugins list (since it's mutable on the strategy),\n // so any mutations don't affect this handler instance.\n this._plugins = [...strategy.plugins];\n this._pluginStateMap = new Map();\n for (const plugin of this._plugins) {\n this._pluginStateMap.set(plugin, {});\n }\n this.event.waitUntil(this._handlerDeferred.promise);\n }\n /**\n * Fetches a given request (and invokes any applicable plugin callback\n * methods) using the `fetchOptions` (for non-navigation requests) and\n * `plugins` defined on the `Strategy` object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - `requestWillFetch()`\n * - `fetchDidSucceed()`\n * - `fetchDidFail()`\n *\n * @param {Request|string} input The URL or request to fetch.\n * @return {Promise}\n */\n async fetch(input) {\n const { event } = this;\n let request = toRequest(input);\n if (request.mode === 'navigate' &&\n event instanceof FetchEvent &&\n event.preloadResponse) {\n const possiblePreloadResponse = (await event.preloadResponse);\n if (possiblePreloadResponse) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Using a preloaded navigation response for ` +\n `'${getFriendlyURL(request.url)}'`);\n }\n return possiblePreloadResponse;\n }\n }\n // If there is a fetchDidFail plugin, we need to save a clone of the\n // original request before it's either modified by a requestWillFetch\n // plugin or before the original request's body is consumed via fetch().\n const originalRequest = this.hasCallback('fetchDidFail')\n ? request.clone()\n : null;\n try {\n for (const cb of this.iterateCallbacks('requestWillFetch')) {\n request = await cb({ request: request.clone(), event });\n }\n }\n catch (err) {\n if (err instanceof Error) {\n throw new WorkboxError('plugin-error-request-will-fetch', {\n thrownErrorMessage: err.message,\n });\n }\n }\n // The request can be altered by plugins with `requestWillFetch` making\n // the original request (most likely from a `fetch` event) different\n // from the Request we make. Pass both to `fetchDidFail` to aid debugging.\n const pluginFilteredRequest = request.clone();\n try {\n let fetchResponse;\n // See https://github.com/GoogleChrome/workbox/issues/1796\n fetchResponse = await fetch(request, request.mode === 'navigate' ? undefined : this._strategy.fetchOptions);\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Network request for ` +\n `'${getFriendlyURL(request.url)}' returned a response with ` +\n `status '${fetchResponse.status}'.`);\n }\n for (const callback of this.iterateCallbacks('fetchDidSucceed')) {\n fetchResponse = await callback({\n event,\n request: pluginFilteredRequest,\n response: fetchResponse,\n });\n }\n return fetchResponse;\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Network request for ` +\n `'${getFriendlyURL(request.url)}' threw an error.`, error);\n }\n // `originalRequest` will only exist if a `fetchDidFail` callback\n // is being used (see above).\n if (originalRequest) {\n await this.runCallbacks('fetchDidFail', {\n error: error,\n event,\n originalRequest: originalRequest.clone(),\n request: pluginFilteredRequest.clone(),\n });\n }\n throw error;\n }\n }\n /**\n * Calls `this.fetch()` and (in the background) runs `this.cachePut()` on\n * the response generated by `this.fetch()`.\n *\n * The call to `this.cachePut()` automatically invokes `this.waitUntil()`,\n * so you do not have to manually call `waitUntil()` on the event.\n *\n * @param {Request|string} input The request or URL to fetch and cache.\n * @return {Promise}\n */\n async fetchAndCachePut(input) {\n const response = await this.fetch(input);\n const responseClone = response.clone();\n void this.waitUntil(this.cachePut(input, responseClone));\n return response;\n }\n /**\n * Matches a request from the cache (and invokes any applicable plugin\n * callback methods) using the `cacheName`, `matchOptions`, and `plugins`\n * defined on the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cachedResponseWillByUsed()\n *\n * @param {Request|string} key The Request or URL to use as the cache key.\n * @return {Promise} A matching response, if found.\n */\n async cacheMatch(key) {\n const request = toRequest(key);\n let cachedResponse;\n const { cacheName, matchOptions } = this._strategy;\n const effectiveRequest = await this.getCacheKey(request, 'read');\n const multiMatchOptions = Object.assign(Object.assign({}, matchOptions), { cacheName });\n cachedResponse = await caches.match(effectiveRequest, multiMatchOptions);\n if (process.env.NODE_ENV !== 'production') {\n if (cachedResponse) {\n logger.debug(`Found a cached response in '${cacheName}'.`);\n }\n else {\n logger.debug(`No cached response found in '${cacheName}'.`);\n }\n }\n for (const callback of this.iterateCallbacks('cachedResponseWillBeUsed')) {\n cachedResponse =\n (await callback({\n cacheName,\n matchOptions,\n cachedResponse,\n request: effectiveRequest,\n event: this.event,\n })) || undefined;\n }\n return cachedResponse;\n }\n /**\n * Puts a request/response pair in the cache (and invokes any applicable\n * plugin callback methods) using the `cacheName` and `plugins` defined on\n * the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cacheWillUpdate()\n * - cacheDidUpdate()\n *\n * @param {Request|string} key The request or URL to use as the cache key.\n * @param {Response} response The response to cache.\n * @return {Promise} `false` if a cacheWillUpdate caused the response\n * not be cached, and `true` otherwise.\n */\n async cachePut(key, response) {\n const request = toRequest(key);\n // Run in the next task to avoid blocking other cache reads.\n // https://github.com/w3c/ServiceWorker/issues/1397\n await timeout(0);\n const effectiveRequest = await this.getCacheKey(request, 'write');\n if (process.env.NODE_ENV !== 'production') {\n if (effectiveRequest.method && effectiveRequest.method !== 'GET') {\n throw new WorkboxError('attempt-to-cache-non-get-request', {\n url: getFriendlyURL(effectiveRequest.url),\n method: effectiveRequest.method,\n });\n }\n // See https://github.com/GoogleChrome/workbox/issues/2818\n const vary = response.headers.get('Vary');\n if (vary) {\n logger.debug(`The response for ${getFriendlyURL(effectiveRequest.url)} ` +\n `has a 'Vary: ${vary}' header. ` +\n `Consider setting the {ignoreVary: true} option on your strategy ` +\n `to ensure cache matching and deletion works as expected.`);\n }\n }\n if (!response) {\n if (process.env.NODE_ENV !== 'production') {\n logger.error(`Cannot cache non-existent response for ` +\n `'${getFriendlyURL(effectiveRequest.url)}'.`);\n }\n throw new WorkboxError('cache-put-with-no-response', {\n url: getFriendlyURL(effectiveRequest.url),\n });\n }\n const responseToCache = await this._ensureResponseSafeToCache(response);\n if (!responseToCache) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Response '${getFriendlyURL(effectiveRequest.url)}' ` +\n `will not be cached.`, responseToCache);\n }\n return false;\n }\n const { cacheName, matchOptions } = this._strategy;\n const cache = await self.caches.open(cacheName);\n const hasCacheUpdateCallback = this.hasCallback('cacheDidUpdate');\n const oldResponse = hasCacheUpdateCallback\n ? await cacheMatchIgnoreParams(\n // TODO(philipwalton): the `__WB_REVISION__` param is a precaching\n // feature. Consider into ways to only add this behavior if using\n // precaching.\n cache, effectiveRequest.clone(), ['__WB_REVISION__'], matchOptions)\n : null;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Updating the '${cacheName}' cache with a new Response ` +\n `for ${getFriendlyURL(effectiveRequest.url)}.`);\n }\n try {\n await cache.put(effectiveRequest, hasCacheUpdateCallback ? responseToCache.clone() : responseToCache);\n }\n catch (error) {\n if (error instanceof Error) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/DOMException#exception-QuotaExceededError\n if (error.name === 'QuotaExceededError') {\n await executeQuotaErrorCallbacks();\n }\n throw error;\n }\n }\n for (const callback of this.iterateCallbacks('cacheDidUpdate')) {\n await callback({\n cacheName,\n oldResponse,\n newResponse: responseToCache.clone(),\n request: effectiveRequest,\n event: this.event,\n });\n }\n return true;\n }\n /**\n * Checks the list of plugins for the `cacheKeyWillBeUsed` callback, and\n * executes any of those callbacks found in sequence. The final `Request`\n * object returned by the last plugin is treated as the cache key for cache\n * reads and/or writes. If no `cacheKeyWillBeUsed` plugin callbacks have\n * been registered, the passed request is returned unmodified\n *\n * @param {Request} request\n * @param {string} mode\n * @return {Promise}\n */\n async getCacheKey(request, mode) {\n const key = `${request.url} | ${mode}`;\n if (!this._cacheKeys[key]) {\n let effectiveRequest = request;\n for (const callback of this.iterateCallbacks('cacheKeyWillBeUsed')) {\n effectiveRequest = toRequest(await callback({\n mode,\n request: effectiveRequest,\n event: this.event,\n // params has a type any can't change right now.\n params: this.params, // eslint-disable-line\n }));\n }\n this._cacheKeys[key] = effectiveRequest;\n }\n return this._cacheKeys[key];\n }\n /**\n * Returns true if the strategy has at least one plugin with the given\n * callback.\n *\n * @param {string} name The name of the callback to check for.\n * @return {boolean}\n */\n hasCallback(name) {\n for (const plugin of this._strategy.plugins) {\n if (name in plugin) {\n return true;\n }\n }\n return false;\n }\n /**\n * Runs all plugin callbacks matching the given name, in order, passing the\n * given param object (merged ith the current plugin state) as the only\n * argument.\n *\n * Note: since this method runs all plugins, it's not suitable for cases\n * where the return value of a callback needs to be applied prior to calling\n * the next callback. See\n * {@link workbox-strategies.StrategyHandler#iterateCallbacks}\n * below for how to handle that case.\n *\n * @param {string} name The name of the callback to run within each plugin.\n * @param {Object} param The object to pass as the first (and only) param\n * when executing each callback. This object will be merged with the\n * current plugin state prior to callback execution.\n */\n async runCallbacks(name, param) {\n for (const callback of this.iterateCallbacks(name)) {\n // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n await callback(param);\n }\n }\n /**\n * Accepts a callback and returns an iterable of matching plugin callbacks,\n * where each callback is wrapped with the current handler state (i.e. when\n * you call each callback, whatever object parameter you pass it will\n * be merged with the plugin's current state).\n *\n * @param {string} name The name fo the callback to run\n * @return {Array}\n */\n *iterateCallbacks(name) {\n for (const plugin of this._strategy.plugins) {\n if (typeof plugin[name] === 'function') {\n const state = this._pluginStateMap.get(plugin);\n const statefulCallback = (param) => {\n const statefulParam = Object.assign(Object.assign({}, param), { state });\n // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n return plugin[name](statefulParam);\n };\n yield statefulCallback;\n }\n }\n }\n /**\n * Adds a promise to the\n * [extend lifetime promises]{@link https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises}\n * of the event event associated with the request being handled (usually a\n * `FetchEvent`).\n *\n * Note: you can await\n * {@link workbox-strategies.StrategyHandler~doneWaiting}\n * to know when all added promises have settled.\n *\n * @param {Promise} promise A promise to add to the extend lifetime promises\n * of the event that triggered the request.\n */\n waitUntil(promise) {\n this._extendLifetimePromises.push(promise);\n return promise;\n }\n /**\n * Returns a promise that resolves once all promises passed to\n * {@link workbox-strategies.StrategyHandler~waitUntil}\n * have settled.\n *\n * Note: any work done after `doneWaiting()` settles should be manually\n * passed to an event's `waitUntil()` method (not this handler's\n * `waitUntil()` method), otherwise the service worker thread my be killed\n * prior to your work completing.\n */\n async doneWaiting() {\n let promise;\n while ((promise = this._extendLifetimePromises.shift())) {\n await promise;\n }\n }\n /**\n * Stops running the strategy and immediately resolves any pending\n * `waitUntil()` promises.\n */\n destroy() {\n this._handlerDeferred.resolve(null);\n }\n /**\n * This method will call cacheWillUpdate on the available plugins (or use\n * status === 200) to determine if the Response is safe and valid to cache.\n *\n * @param {Request} options.request\n * @param {Response} options.response\n * @return {Promise}\n *\n * @private\n */\n async _ensureResponseSafeToCache(response) {\n let responseToCache = response;\n let pluginsUsed = false;\n for (const callback of this.iterateCallbacks('cacheWillUpdate')) {\n responseToCache =\n (await callback({\n request: this.request,\n response: responseToCache,\n event: this.event,\n })) || undefined;\n pluginsUsed = true;\n if (!responseToCache) {\n break;\n }\n }\n if (!pluginsUsed) {\n if (responseToCache && responseToCache.status !== 200) {\n responseToCache = undefined;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (responseToCache) {\n if (responseToCache.status !== 200) {\n if (responseToCache.status === 0) {\n logger.warn(`The response for '${this.request.url}' ` +\n `is an opaque response. The caching strategy that you're ` +\n `using will not cache opaque responses by default.`);\n }\n else {\n logger.debug(`The response for '${this.request.url}' ` +\n `returned a status code of '${response.status}' and won't ` +\n `be cached as a result.`);\n }\n }\n }\n }\n }\n return responseToCache;\n }\n}\nexport { StrategyHandler };\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Returns a promise that resolves and the passed number of milliseconds.\n * This utility is an async/await-friendly version of `setTimeout`.\n *\n * @param {number} ms\n * @return {Promise}\n * @private\n */\nexport function timeout(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst getFriendlyURL = (url) => {\n const urlObj = new URL(String(url), location.href);\n // See https://github.com/GoogleChrome/workbox/issues/2323\n // We want to include everything, except for the origin if it's same-origin.\n return urlObj.href.replace(new RegExp(`^${location.origin}`), '');\n};\nexport { getFriendlyURL };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from '../_private/logger.js';\nimport { quotaErrorCallbacks } from '../models/quotaErrorCallbacks.js';\nimport '../_version.js';\n/**\n * Runs all of the callback functions, one at a time sequentially, in the order\n * in which they were registered.\n *\n * @memberof workbox-core\n * @private\n */\nasync function executeQuotaErrorCallbacks() {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`About to run ${quotaErrorCallbacks.size} ` +\n `callbacks to clean up caches.`);\n }\n for (const callback of quotaErrorCallbacks) {\n await callback();\n if (process.env.NODE_ENV !== 'production') {\n logger.log(callback, 'is complete.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Finished running callbacks.');\n }\n}\nexport { executeQuotaErrorCallbacks };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { StrategyHandler } from './StrategyHandler.js';\nimport './_version.js';\n/**\n * An abstract base class that all other strategy classes must extend from:\n *\n * @memberof workbox-strategies\n */\nclass Strategy {\n /**\n * Creates a new instance of the strategy and sets all documented option\n * properties as public instance properties.\n *\n * Note: if a custom strategy class extends the base Strategy class and does\n * not need more than these properties, it does not need to define its own\n * constructor.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n */\n constructor(options = {}) {\n /**\n * Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n *\n * @type {string}\n */\n this.cacheName = cacheNames.getRuntimeName(options.cacheName);\n /**\n * The list\n * [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * used by this strategy.\n *\n * @type {Array}\n */\n this.plugins = options.plugins || [];\n /**\n * Values passed along to the\n * [`init`]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters}\n * of all fetch() requests made by this strategy.\n *\n * @type {Object}\n */\n this.fetchOptions = options.fetchOptions;\n /**\n * The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n *\n * @type {Object}\n */\n this.matchOptions = options.matchOptions;\n }\n /**\n * Perform a request strategy and returns a `Promise` that will resolve with\n * a `Response`, invoking all relevant plugin callbacks.\n *\n * When a strategy instance is registered with a Workbox\n * {@link workbox-routing.Route}, this method is automatically\n * called when the route matches.\n *\n * Alternatively, this method can be used in a standalone `FetchEvent`\n * listener by passing it to `event.respondWith()`.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n */\n handle(options) {\n const [responseDone] = this.handleAll(options);\n return responseDone;\n }\n /**\n * Similar to {@link workbox-strategies.Strategy~handle}, but\n * instead of just returning a `Promise` that resolves to a `Response` it\n * it will return an tuple of `[response, done]` promises, where the former\n * (`response`) is equivalent to what `handle()` returns, and the latter is a\n * Promise that will resolve once any promises that were added to\n * `event.waitUntil()` as part of performing the strategy have completed.\n *\n * You can await the `done` promise to ensure any extra work performed by\n * the strategy (usually caching responses) completes successfully.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n * @return {Array} A tuple of [response, done]\n * promises that can be used to determine when the response resolves as\n * well as when the handler has completed all its work.\n */\n handleAll(options) {\n // Allow for flexible options to be passed.\n if (options instanceof FetchEvent) {\n options = {\n event: options,\n request: options.request,\n };\n }\n const event = options.event;\n const request = typeof options.request === 'string'\n ? new Request(options.request)\n : options.request;\n const params = 'params' in options ? options.params : undefined;\n const handler = new StrategyHandler(this, { event, request, params });\n const responseDone = this._getResponse(handler, request, event);\n const handlerDone = this._awaitComplete(responseDone, handler, request, event);\n // Return an array of promises, suitable for use with Promise.all().\n return [responseDone, handlerDone];\n }\n async _getResponse(handler, request, event) {\n await handler.runCallbacks('handlerWillStart', { event, request });\n let response = undefined;\n try {\n response = await this._handle(request, handler);\n // The \"official\" Strategy subclasses all throw this error automatically,\n // but in case a third-party Strategy doesn't, ensure that we have a\n // consistent failure when there's no response or an error response.\n if (!response || response.type === 'error') {\n throw new WorkboxError('no-response', { url: request.url });\n }\n }\n catch (error) {\n if (error instanceof Error) {\n for (const callback of handler.iterateCallbacks('handlerDidError')) {\n response = await callback({ error, event, request });\n if (response) {\n break;\n }\n }\n }\n if (!response) {\n throw error;\n }\n else if (process.env.NODE_ENV !== 'production') {\n logger.log(`While responding to '${getFriendlyURL(request.url)}', ` +\n `an ${error instanceof Error ? error.toString() : ''} error occurred. Using a fallback response provided by ` +\n `a handlerDidError plugin.`);\n }\n }\n for (const callback of handler.iterateCallbacks('handlerWillRespond')) {\n response = await callback({ event, request, response });\n }\n return response;\n }\n async _awaitComplete(responseDone, handler, request, event) {\n let response;\n let error;\n try {\n response = await responseDone;\n }\n catch (error) {\n // Ignore errors, as response errors should be caught via the `response`\n // promise above. The `done` promise will only throw for errors in\n // promises passed to `handler.waitUntil()`.\n }\n try {\n await handler.runCallbacks('handlerDidRespond', {\n event,\n request,\n response,\n });\n await handler.doneWaiting();\n }\n catch (waitUntilError) {\n if (waitUntilError instanceof Error) {\n error = waitUntilError;\n }\n }\n await handler.runCallbacks('handlerDidComplete', {\n event,\n request,\n response,\n error: error,\n });\n handler.destroy();\n if (error) {\n throw error;\n }\n }\n}\nexport { Strategy };\n/**\n * Classes extending the `Strategy` based class should implement this method,\n * and leverage the {@link workbox-strategies.StrategyHandler}\n * arg to perform all fetching and cache logic, which will ensure all relevant\n * cache, cache options, fetch options and plugins are used (per the current\n * strategy instance).\n *\n * @name _handle\n * @instance\n * @abstract\n * @function\n * @param {Request} request\n * @param {workbox-strategies.StrategyHandler} handler\n * @return {Promise}\n *\n * @memberof workbox-strategies.Strategy\n */\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A helper function that prevents a promise from being flagged as unused.\n *\n * @private\n **/\nexport function dontWaitFor(promise) {\n // Effective no-op.\n void promise.then(() => { });\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:expiration:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { openDB, deleteDB } from 'idb';\nimport '../_version.js';\nconst DB_NAME = 'workbox-expiration';\nconst CACHE_OBJECT_STORE = 'cache-entries';\nconst normalizeURL = (unNormalizedUrl) => {\n const url = new URL(unNormalizedUrl, location.href);\n url.hash = '';\n return url.href;\n};\n/**\n * Returns the timestamp model.\n *\n * @private\n */\nclass CacheTimestampsModel {\n /**\n *\n * @param {string} cacheName\n *\n * @private\n */\n constructor(cacheName) {\n this._db = null;\n this._cacheName = cacheName;\n }\n /**\n * Performs an upgrade of indexedDB.\n *\n * @param {IDBPDatabase} db\n *\n * @private\n */\n _upgradeDb(db) {\n // TODO(philipwalton): EdgeHTML doesn't support arrays as a keyPath, so we\n // have to use the `id` keyPath here and create our own values (a\n // concatenation of `url + cacheName`) instead of simply using\n // `keyPath: ['url', 'cacheName']`, which is supported in other browsers.\n const objStore = db.createObjectStore(CACHE_OBJECT_STORE, { keyPath: 'id' });\n // TODO(philipwalton): once we don't have to support EdgeHTML, we can\n // create a single index with the keyPath `['cacheName', 'timestamp']`\n // instead of doing both these indexes.\n objStore.createIndex('cacheName', 'cacheName', { unique: false });\n objStore.createIndex('timestamp', 'timestamp', { unique: false });\n }\n /**\n * Performs an upgrade of indexedDB and deletes deprecated DBs.\n *\n * @param {IDBPDatabase} db\n *\n * @private\n */\n _upgradeDbAndDeleteOldDbs(db) {\n this._upgradeDb(db);\n if (this._cacheName) {\n void deleteDB(this._cacheName);\n }\n }\n /**\n * @param {string} url\n * @param {number} timestamp\n *\n * @private\n */\n async setTimestamp(url, timestamp) {\n url = normalizeURL(url);\n const entry = {\n url,\n timestamp,\n cacheName: this._cacheName,\n // Creating an ID from the URL and cache name won't be necessary once\n // Edge switches to Chromium and all browsers we support work with\n // array keyPaths.\n id: this._getId(url),\n };\n const db = await this.getDb();\n const tx = db.transaction(CACHE_OBJECT_STORE, 'readwrite', {\n durability: 'relaxed',\n });\n await tx.store.put(entry);\n await tx.done;\n }\n /**\n * Returns the timestamp stored for a given URL.\n *\n * @param {string} url\n * @return {number | undefined}\n *\n * @private\n */\n async getTimestamp(url) {\n const db = await this.getDb();\n const entry = await db.get(CACHE_OBJECT_STORE, this._getId(url));\n return entry === null || entry === void 0 ? void 0 : entry.timestamp;\n }\n /**\n * Iterates through all the entries in the object store (from newest to\n * oldest) and removes entries once either `maxCount` is reached or the\n * entry's timestamp is less than `minTimestamp`.\n *\n * @param {number} minTimestamp\n * @param {number} maxCount\n * @return {Array}\n *\n * @private\n */\n async expireEntries(minTimestamp, maxCount) {\n const db = await this.getDb();\n let cursor = await db\n .transaction(CACHE_OBJECT_STORE)\n .store.index('timestamp')\n .openCursor(null, 'prev');\n const entriesToDelete = [];\n let entriesNotDeletedCount = 0;\n while (cursor) {\n const result = cursor.value;\n // TODO(philipwalton): once we can use a multi-key index, we\n // won't have to check `cacheName` here.\n if (result.cacheName === this._cacheName) {\n // Delete an entry if it's older than the max age or\n // if we already have the max number allowed.\n if ((minTimestamp && result.timestamp < minTimestamp) ||\n (maxCount && entriesNotDeletedCount >= maxCount)) {\n // TODO(philipwalton): we should be able to delete the\n // entry right here, but doing so causes an iteration\n // bug in Safari stable (fixed in TP). Instead we can\n // store the keys of the entries to delete, and then\n // delete the separate transactions.\n // https://github.com/GoogleChrome/workbox/issues/1978\n // cursor.delete();\n // We only need to return the URL, not the whole entry.\n entriesToDelete.push(cursor.value);\n }\n else {\n entriesNotDeletedCount++;\n }\n }\n cursor = await cursor.continue();\n }\n // TODO(philipwalton): once the Safari bug in the following issue is fixed,\n // we should be able to remove this loop and do the entry deletion in the\n // cursor loop above:\n // https://github.com/GoogleChrome/workbox/issues/1978\n const urlsDeleted = [];\n for (const entry of entriesToDelete) {\n await db.delete(CACHE_OBJECT_STORE, entry.id);\n urlsDeleted.push(entry.url);\n }\n return urlsDeleted;\n }\n /**\n * Takes a URL and returns an ID that will be unique in the object store.\n *\n * @param {string} url\n * @return {string}\n *\n * @private\n */\n _getId(url) {\n // Creating an ID from the URL and cache name won't be necessary once\n // Edge switches to Chromium and all browsers we support work with\n // array keyPaths.\n return this._cacheName + '|' + normalizeURL(url);\n }\n /**\n * Returns an open connection to the database.\n *\n * @private\n */\n async getDb() {\n if (!this._db) {\n this._db = await openDB(DB_NAME, 1, {\n upgrade: this._upgradeDbAndDeleteOldDbs.bind(this),\n });\n }\n return this._db;\n }\n}\nexport { CacheTimestampsModel };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { dontWaitFor } from 'workbox-core/_private/dontWaitFor.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { CacheTimestampsModel } from './models/CacheTimestampsModel.js';\nimport './_version.js';\n/**\n * The `CacheExpiration` class allows you define an expiration and / or\n * limit on the number of responses stored in a\n * [`Cache`](https://developer.mozilla.org/en-US/docs/Web/API/Cache).\n *\n * @memberof workbox-expiration\n */\nclass CacheExpiration {\n /**\n * To construct a new CacheExpiration instance you must provide at least\n * one of the `config` properties.\n *\n * @param {string} cacheName Name of the cache to apply restrictions to.\n * @param {Object} config\n * @param {number} [config.maxEntries] The maximum number of entries to cache.\n * Entries used the least will be removed as the maximum is reached.\n * @param {number} [config.maxAgeSeconds] The maximum age of an entry before\n * it's treated as stale and removed.\n * @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)\n * that will be used when calling `delete()` on the cache.\n */\n constructor(cacheName, config = {}) {\n this._isRunning = false;\n this._rerunRequested = false;\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(cacheName, 'string', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'cacheName',\n });\n if (!(config.maxEntries || config.maxAgeSeconds)) {\n throw new WorkboxError('max-entries-or-age-required', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n });\n }\n if (config.maxEntries) {\n assert.isType(config.maxEntries, 'number', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'config.maxEntries',\n });\n }\n if (config.maxAgeSeconds) {\n assert.isType(config.maxAgeSeconds, 'number', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'config.maxAgeSeconds',\n });\n }\n }\n this._maxEntries = config.maxEntries;\n this._maxAgeSeconds = config.maxAgeSeconds;\n this._matchOptions = config.matchOptions;\n this._cacheName = cacheName;\n this._timestampModel = new CacheTimestampsModel(cacheName);\n }\n /**\n * Expires entries for the given cache and given criteria.\n */\n async expireEntries() {\n if (this._isRunning) {\n this._rerunRequested = true;\n return;\n }\n this._isRunning = true;\n const minTimestamp = this._maxAgeSeconds\n ? Date.now() - this._maxAgeSeconds * 1000\n : 0;\n const urlsExpired = await this._timestampModel.expireEntries(minTimestamp, this._maxEntries);\n // Delete URLs from the cache\n const cache = await self.caches.open(this._cacheName);\n for (const url of urlsExpired) {\n await cache.delete(url, this._matchOptions);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (urlsExpired.length > 0) {\n logger.groupCollapsed(`Expired ${urlsExpired.length} ` +\n `${urlsExpired.length === 1 ? 'entry' : 'entries'} and removed ` +\n `${urlsExpired.length === 1 ? 'it' : 'them'} from the ` +\n `'${this._cacheName}' cache.`);\n logger.log(`Expired the following ${urlsExpired.length === 1 ? 'URL' : 'URLs'}:`);\n urlsExpired.forEach((url) => logger.log(` ${url}`));\n logger.groupEnd();\n }\n else {\n logger.debug(`Cache expiration ran and found no entries to remove.`);\n }\n }\n this._isRunning = false;\n if (this._rerunRequested) {\n this._rerunRequested = false;\n dontWaitFor(this.expireEntries());\n }\n }\n /**\n * Update the timestamp for the given URL. This ensures the when\n * removing entries based on maximum entries, most recently used\n * is accurate or when expiring, the timestamp is up-to-date.\n *\n * @param {string} url\n */\n async updateTimestamp(url) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(url, 'string', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'updateTimestamp',\n paramName: 'url',\n });\n }\n await this._timestampModel.setTimestamp(url, Date.now());\n }\n /**\n * Can be used to check if a URL has expired or not before it's used.\n *\n * This requires a look up from IndexedDB, so can be slow.\n *\n * Note: This method will not remove the cached entry, call\n * `expireEntries()` to remove indexedDB and Cache entries.\n *\n * @param {string} url\n * @return {boolean}\n */\n async isURLExpired(url) {\n if (!this._maxAgeSeconds) {\n if (process.env.NODE_ENV !== 'production') {\n throw new WorkboxError(`expired-test-without-max-age`, {\n methodName: 'isURLExpired',\n paramName: 'maxAgeSeconds',\n });\n }\n return false;\n }\n else {\n const timestamp = await this._timestampModel.getTimestamp(url);\n const expireOlderThan = Date.now() - this._maxAgeSeconds * 1000;\n return timestamp !== undefined ? timestamp < expireOlderThan : true;\n }\n }\n /**\n * Removes the IndexedDB object store used to keep track of cache expiration\n * metadata.\n */\n async delete() {\n // Make sure we don't attempt another rerun if we're called in the middle of\n // a cache expiration.\n this._rerunRequested = false;\n await this._timestampModel.expireEntries(Infinity); // Expires all.\n }\n}\nexport { CacheExpiration };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:range-requests:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { calculateEffectiveBoundaries } from './utils/calculateEffectiveBoundaries.js';\nimport { parseRangeHeader } from './utils/parseRangeHeader.js';\nimport './_version.js';\n/**\n * Given a `Request` and `Response` objects as input, this will return a\n * promise for a new `Response`.\n *\n * If the original `Response` already contains partial content (i.e. it has\n * a status of 206), then this assumes it already fulfills the `Range:`\n * requirements, and will return it as-is.\n *\n * @param {Request} request A request, which should contain a Range:\n * header.\n * @param {Response} originalResponse A response.\n * @return {Promise} Either a `206 Partial Content` response, with\n * the response body set to the slice of content specified by the request's\n * `Range:` header, or a `416 Range Not Satisfiable` response if the\n * conditions of the `Range:` header can't be met.\n *\n * @memberof workbox-range-requests\n */\nasync function createPartialResponse(request, originalResponse) {\n try {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-range-requests',\n funcName: 'createPartialResponse',\n paramName: 'request',\n });\n assert.isInstance(originalResponse, Response, {\n moduleName: 'workbox-range-requests',\n funcName: 'createPartialResponse',\n paramName: 'originalResponse',\n });\n }\n if (originalResponse.status === 206) {\n // If we already have a 206, then just pass it through as-is;\n // see https://github.com/GoogleChrome/workbox/issues/1720\n return originalResponse;\n }\n const rangeHeader = request.headers.get('range');\n if (!rangeHeader) {\n throw new WorkboxError('no-range-header');\n }\n const boundaries = parseRangeHeader(rangeHeader);\n const originalBlob = await originalResponse.blob();\n const effectiveBoundaries = calculateEffectiveBoundaries(originalBlob, boundaries.start, boundaries.end);\n const slicedBlob = originalBlob.slice(effectiveBoundaries.start, effectiveBoundaries.end);\n const slicedBlobSize = slicedBlob.size;\n const slicedResponse = new Response(slicedBlob, {\n // Status code 206 is for a Partial Content response.\n // See https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/206\n status: 206,\n statusText: 'Partial Content',\n headers: originalResponse.headers,\n });\n slicedResponse.headers.set('Content-Length', String(slicedBlobSize));\n slicedResponse.headers.set('Content-Range', `bytes ${effectiveBoundaries.start}-${effectiveBoundaries.end - 1}/` +\n `${originalBlob.size}`);\n return slicedResponse;\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(`Unable to construct a partial response; returning a ` +\n `416 Range Not Satisfiable response instead.`);\n logger.groupCollapsed(`View details here.`);\n logger.log(error);\n logger.log(request);\n logger.log(originalResponse);\n logger.groupEnd();\n }\n return new Response('', {\n status: 416,\n statusText: 'Range Not Satisfiable',\n });\n }\n}\nexport { createPartialResponse };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {string} rangeHeader A Range: header value.\n * @return {Object} An object with `start` and `end` properties, reflecting\n * the parsed value of the Range: header. If either the `start` or `end` are\n * omitted, then `null` will be returned.\n *\n * @private\n */\nfunction parseRangeHeader(rangeHeader) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(rangeHeader, 'string', {\n moduleName: 'workbox-range-requests',\n funcName: 'parseRangeHeader',\n paramName: 'rangeHeader',\n });\n }\n const normalizedRangeHeader = rangeHeader.trim().toLowerCase();\n if (!normalizedRangeHeader.startsWith('bytes=')) {\n throw new WorkboxError('unit-must-be-bytes', { normalizedRangeHeader });\n }\n // Specifying multiple ranges separate by commas is valid syntax, but this\n // library only attempts to handle a single, contiguous sequence of bytes.\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range#Syntax\n if (normalizedRangeHeader.includes(',')) {\n throw new WorkboxError('single-range-only', { normalizedRangeHeader });\n }\n const rangeParts = /(\\d*)-(\\d*)/.exec(normalizedRangeHeader);\n // We need either at least one of the start or end values.\n if (!rangeParts || !(rangeParts[1] || rangeParts[2])) {\n throw new WorkboxError('invalid-range-values', { normalizedRangeHeader });\n }\n return {\n start: rangeParts[1] === '' ? undefined : Number(rangeParts[1]),\n end: rangeParts[2] === '' ? undefined : Number(rangeParts[2]),\n };\n}\nexport { parseRangeHeader };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {Blob} blob A source blob.\n * @param {number} [start] The offset to use as the start of the\n * slice.\n * @param {number} [end] The offset to use as the end of the slice.\n * @return {Object} An object with `start` and `end` properties, reflecting\n * the effective boundaries to use given the size of the blob.\n *\n * @private\n */\nfunction calculateEffectiveBoundaries(blob, start, end) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(blob, Blob, {\n moduleName: 'workbox-range-requests',\n funcName: 'calculateEffectiveBoundaries',\n paramName: 'blob',\n });\n }\n const blobSize = blob.size;\n if ((end && end > blobSize) || (start && start < 0)) {\n throw new WorkboxError('range-not-satisfiable', {\n size: blobSize,\n end,\n start,\n });\n }\n let effectiveStart;\n let effectiveEnd;\n if (start !== undefined && end !== undefined) {\n effectiveStart = start;\n // Range values are inclusive, so add 1 to the value.\n effectiveEnd = end + 1;\n }\n else if (start !== undefined && end === undefined) {\n effectiveStart = start;\n effectiveEnd = blobSize;\n }\n else if (end !== undefined && start === undefined) {\n effectiveStart = blobSize - end;\n effectiveEnd = blobSize;\n }\n return {\n start: effectiveStart,\n end: effectiveEnd,\n };\n}\nexport { calculateEffectiveBoundaries };\n","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A utility method that makes it easier to use `event.waitUntil` with\n * async functions and return the result.\n *\n * @param {ExtendableEvent} event\n * @param {Function} asyncFn\n * @return {Function}\n * @private\n */\nfunction waitUntil(event, asyncFn) {\n const returnPromise = asyncFn();\n event.waitUntil(returnPromise);\n return returnPromise;\n}\nexport { waitUntil };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:precaching:6.5.4'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport '../_version.js';\n// Name of the search parameter used to store revision info.\nconst REVISION_SEARCH_PARAM = '__WB_REVISION__';\n/**\n * Converts a manifest entry into a versioned URL suitable for precaching.\n *\n * @param {Object|string} entry\n * @return {string} A URL with versioning info.\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function createCacheKey(entry) {\n if (!entry) {\n throw new WorkboxError('add-to-cache-list-unexpected-type', { entry });\n }\n // If a precache manifest entry is a string, it's assumed to be a versioned\n // URL, like '/app.abcd1234.js'. Return as-is.\n if (typeof entry === 'string') {\n const urlObject = new URL(entry, location.href);\n return {\n cacheKey: urlObject.href,\n url: urlObject.href,\n };\n }\n const { revision, url } = entry;\n if (!url) {\n throw new WorkboxError('add-to-cache-list-unexpected-type', { entry });\n }\n // If there's just a URL and no revision, then it's also assumed to be a\n // versioned URL.\n if (!revision) {\n const urlObject = new URL(url, location.href);\n return {\n cacheKey: urlObject.href,\n url: urlObject.href,\n };\n }\n // Otherwise, construct a properly versioned URL using the custom Workbox\n // search parameter along with the revision info.\n const cacheKeyURL = new URL(url, location.href);\n const originalURL = new URL(url, location.href);\n cacheKeyURL.searchParams.set(REVISION_SEARCH_PARAM, revision);\n return {\n cacheKey: cacheKeyURL.href,\n url: originalURL.href,\n };\n}\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A plugin, designed to be used with PrecacheController, to determine the\n * of assets that were updated (or not updated) during the install event.\n *\n * @private\n */\nclass PrecacheInstallReportPlugin {\n constructor() {\n this.updatedURLs = [];\n this.notUpdatedURLs = [];\n this.handlerWillStart = async ({ request, state, }) => {\n // TODO: `state` should never be undefined...\n if (state) {\n state.originalRequest = request;\n }\n };\n this.cachedResponseWillBeUsed = async ({ event, state, cachedResponse, }) => {\n if (event.type === 'install') {\n if (state &&\n state.originalRequest &&\n state.originalRequest instanceof Request) {\n // TODO: `state` should never be undefined...\n const url = state.originalRequest.url;\n if (cachedResponse) {\n this.notUpdatedURLs.push(url);\n }\n else {\n this.updatedURLs.push(url);\n }\n }\n }\n return cachedResponse;\n };\n }\n}\nexport { PrecacheInstallReportPlugin };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A plugin, designed to be used with PrecacheController, to translate URLs into\n * the corresponding cache key, based on the current revision info.\n *\n * @private\n */\nclass PrecacheCacheKeyPlugin {\n constructor({ precacheController }) {\n this.cacheKeyWillBeUsed = async ({ request, params, }) => {\n // Params is type any, can't change right now.\n /* eslint-disable */\n const cacheKey = (params === null || params === void 0 ? void 0 : params.cacheKey) ||\n this._precacheController.getCacheKeyForURL(request.url);\n /* eslint-enable */\n return cacheKey\n ? new Request(cacheKey, { headers: request.headers })\n : request;\n };\n this._precacheController = precacheController;\n }\n}\nexport { PrecacheCacheKeyPlugin };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nlet supportStatus;\n/**\n * A utility function that determines whether the current browser supports\n * constructing a new `Response` from a `response.body` stream.\n *\n * @return {boolean} `true`, if the current browser can successfully\n * construct a `Response` from a `response.body` stream, `false` otherwise.\n *\n * @private\n */\nfunction canConstructResponseFromBodyStream() {\n if (supportStatus === undefined) {\n const testResponse = new Response('');\n if ('body' in testResponse) {\n try {\n new Response(testResponse.body);\n supportStatus = true;\n }\n catch (error) {\n supportStatus = false;\n }\n }\n supportStatus = false;\n }\n return supportStatus;\n}\nexport { canConstructResponseFromBodyStream };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { PrecacheController } from '../PrecacheController.js';\nimport '../_version.js';\nlet precacheController;\n/**\n * @return {PrecacheController}\n * @private\n */\nexport const getOrCreatePrecacheController = () => {\n if (!precacheController) {\n precacheController = new PrecacheController();\n }\n return precacheController;\n};\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { canConstructResponseFromBodyStream } from './_private/canConstructResponseFromBodyStream.js';\nimport { WorkboxError } from './_private/WorkboxError.js';\nimport './_version.js';\n/**\n * Allows developers to copy a response and modify its `headers`, `status`,\n * or `statusText` values (the values settable via a\n * [`ResponseInit`]{@link https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#Syntax}\n * object in the constructor).\n * To modify these values, pass a function as the second argument. That\n * function will be invoked with a single object with the response properties\n * `{headers, status, statusText}`. The return value of this function will\n * be used as the `ResponseInit` for the new `Response`. To change the values\n * either modify the passed parameter(s) and return it, or return a totally\n * new object.\n *\n * This method is intentionally limited to same-origin responses, regardless of\n * whether CORS was used or not.\n *\n * @param {Response} response\n * @param {Function} modifier\n * @memberof workbox-core\n */\nasync function copyResponse(response, modifier) {\n let origin = null;\n // If response.url isn't set, assume it's cross-origin and keep origin null.\n if (response.url) {\n const responseURL = new URL(response.url);\n origin = responseURL.origin;\n }\n if (origin !== self.location.origin) {\n throw new WorkboxError('cross-origin-copy-response', { origin });\n }\n const clonedResponse = response.clone();\n // Create a fresh `ResponseInit` object by cloning the headers.\n const responseInit = {\n headers: new Headers(clonedResponse.headers),\n status: clonedResponse.status,\n statusText: clonedResponse.statusText,\n };\n // Apply any user modifications.\n const modifiedResponseInit = modifier ? modifier(responseInit) : responseInit;\n // Create the new response from the body stream and `ResponseInit`\n // modifications. Note: not all browsers support the Response.body stream,\n // so fall back to reading the entire body into memory as a blob.\n const body = canConstructResponseFromBodyStream()\n ? clonedResponse.body\n : await clonedResponse.blob();\n return new Response(body, modifiedResponseInit);\n}\nexport { copyResponse };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { copyResponse } from 'workbox-core/copyResponse.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Strategy } from 'workbox-strategies/Strategy.js';\nimport './_version.js';\n/**\n * A {@link workbox-strategies.Strategy} implementation\n * specifically designed to work with\n * {@link workbox-precaching.PrecacheController}\n * to both cache and fetch precached assets.\n *\n * Note: an instance of this class is created automatically when creating a\n * `PrecacheController`; it's generally not necessary to create this yourself.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-precaching\n */\nclass PrecacheStrategy extends Strategy {\n /**\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] {@link https://developers.google.com/web/tools/workbox/guides/using-plugins|Plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters|init}\n * of all fetch() requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * {@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions|CacheQueryOptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n * @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to\n * get the response from the network if there's a precache miss.\n */\n constructor(options = {}) {\n options.cacheName = cacheNames.getPrecacheName(options.cacheName);\n super(options);\n this._fallbackToNetwork =\n options.fallbackToNetwork === false ? false : true;\n // Redirected responses cannot be used to satisfy a navigation request, so\n // any redirected response must be \"copied\" rather than cloned, so the new\n // response doesn't contain the `redirected` flag. See:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=669363&desc=2#c1\n this.plugins.push(PrecacheStrategy.copyRedirectedCacheableResponsesPlugin);\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const response = await handler.cacheMatch(request);\n if (response) {\n return response;\n }\n // If this is an `install` event for an entry that isn't already cached,\n // then populate the cache.\n if (handler.event && handler.event.type === 'install') {\n return await this._handleInstall(request, handler);\n }\n // Getting here means something went wrong. An entry that should have been\n // precached wasn't found in the cache.\n return await this._handleFetch(request, handler);\n }\n async _handleFetch(request, handler) {\n let response;\n const params = (handler.params || {});\n // Fall back to the network if we're configured to do so.\n if (this._fallbackToNetwork) {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(`The precached response for ` +\n `${getFriendlyURL(request.url)} in ${this.cacheName} was not ` +\n `found. Falling back to the network.`);\n }\n const integrityInManifest = params.integrity;\n const integrityInRequest = request.integrity;\n const noIntegrityConflict = !integrityInRequest || integrityInRequest === integrityInManifest;\n // Do not add integrity if the original request is no-cors\n // See https://github.com/GoogleChrome/workbox/issues/3096\n response = await handler.fetch(new Request(request, {\n integrity: request.mode !== 'no-cors'\n ? integrityInRequest || integrityInManifest\n : undefined,\n }));\n // It's only \"safe\" to repair the cache if we're using SRI to guarantee\n // that the response matches the precache manifest's expectations,\n // and there's either a) no integrity property in the incoming request\n // or b) there is an integrity, and it matches the precache manifest.\n // See https://github.com/GoogleChrome/workbox/issues/2858\n // Also if the original request users no-cors we don't use integrity.\n // See https://github.com/GoogleChrome/workbox/issues/3096\n if (integrityInManifest &&\n noIntegrityConflict &&\n request.mode !== 'no-cors') {\n this._useDefaultCacheabilityPluginIfNeeded();\n const wasCached = await handler.cachePut(request, response.clone());\n if (process.env.NODE_ENV !== 'production') {\n if (wasCached) {\n logger.log(`A response for ${getFriendlyURL(request.url)} ` +\n `was used to \"repair\" the precache.`);\n }\n }\n }\n }\n else {\n // This shouldn't normally happen, but there are edge cases:\n // https://github.com/GoogleChrome/workbox/issues/1441\n throw new WorkboxError('missing-precache-entry', {\n cacheName: this.cacheName,\n url: request.url,\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n const cacheKey = params.cacheKey || (await handler.getCacheKey(request, 'read'));\n // Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Precaching is responding to: ` + getFriendlyURL(request.url));\n logger.log(`Serving the precached url: ${getFriendlyURL(cacheKey instanceof Request ? cacheKey.url : cacheKey)}`);\n logger.groupCollapsed(`View request details here.`);\n logger.log(request);\n logger.groupEnd();\n logger.groupCollapsed(`View response details here.`);\n logger.log(response);\n logger.groupEnd();\n logger.groupEnd();\n }\n return response;\n }\n async _handleInstall(request, handler) {\n this._useDefaultCacheabilityPluginIfNeeded();\n const response = await handler.fetch(request);\n // Make sure we defer cachePut() until after we know the response\n // should be cached; see https://github.com/GoogleChrome/workbox/issues/2737\n const wasCached = await handler.cachePut(request, response.clone());\n if (!wasCached) {\n // Throwing here will lead to the `install` handler failing, which\n // we want to do if *any* of the responses aren't safe to cache.\n throw new WorkboxError('bad-precaching-response', {\n url: request.url,\n status: response.status,\n });\n }\n return response;\n }\n /**\n * This method is complex, as there a number of things to account for:\n *\n * The `plugins` array can be set at construction, and/or it might be added to\n * to at any time before the strategy is used.\n *\n * At the time the strategy is used (i.e. during an `install` event), there\n * needs to be at least one plugin that implements `cacheWillUpdate` in the\n * array, other than `copyRedirectedCacheableResponsesPlugin`.\n *\n * - If this method is called and there are no suitable `cacheWillUpdate`\n * plugins, we need to add `defaultPrecacheCacheabilityPlugin`.\n *\n * - If this method is called and there is exactly one `cacheWillUpdate`, then\n * we don't have to do anything (this might be a previously added\n * `defaultPrecacheCacheabilityPlugin`, or it might be a custom plugin).\n *\n * - If this method is called and there is more than one `cacheWillUpdate`,\n * then we need to check if one is `defaultPrecacheCacheabilityPlugin`. If so,\n * we need to remove it. (This situation is unlikely, but it could happen if\n * the strategy is used multiple times, the first without a `cacheWillUpdate`,\n * and then later on after manually adding a custom `cacheWillUpdate`.)\n *\n * See https://github.com/GoogleChrome/workbox/issues/2737 for more context.\n *\n * @private\n */\n _useDefaultCacheabilityPluginIfNeeded() {\n let defaultPluginIndex = null;\n let cacheWillUpdatePluginCount = 0;\n for (const [index, plugin] of this.plugins.entries()) {\n // Ignore the copy redirected plugin when determining what to do.\n if (plugin === PrecacheStrategy.copyRedirectedCacheableResponsesPlugin) {\n continue;\n }\n // Save the default plugin's index, in case it needs to be removed.\n if (plugin === PrecacheStrategy.defaultPrecacheCacheabilityPlugin) {\n defaultPluginIndex = index;\n }\n if (plugin.cacheWillUpdate) {\n cacheWillUpdatePluginCount++;\n }\n }\n if (cacheWillUpdatePluginCount === 0) {\n this.plugins.push(PrecacheStrategy.defaultPrecacheCacheabilityPlugin);\n }\n else if (cacheWillUpdatePluginCount > 1 && defaultPluginIndex !== null) {\n // Only remove the default plugin; multiple custom plugins are allowed.\n this.plugins.splice(defaultPluginIndex, 1);\n }\n // Nothing needs to be done if cacheWillUpdatePluginCount is 1\n }\n}\nPrecacheStrategy.defaultPrecacheCacheabilityPlugin = {\n async cacheWillUpdate({ response }) {\n if (!response || response.status >= 400) {\n return null;\n }\n return response;\n },\n};\nPrecacheStrategy.copyRedirectedCacheableResponsesPlugin = {\n async cacheWillUpdate({ response }) {\n return response.redirected ? await copyResponse(response) : response;\n },\n};\nexport { PrecacheStrategy };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { waitUntil } from 'workbox-core/_private/waitUntil.js';\nimport { createCacheKey } from './utils/createCacheKey.js';\nimport { PrecacheInstallReportPlugin } from './utils/PrecacheInstallReportPlugin.js';\nimport { PrecacheCacheKeyPlugin } from './utils/PrecacheCacheKeyPlugin.js';\nimport { printCleanupDetails } from './utils/printCleanupDetails.js';\nimport { printInstallDetails } from './utils/printInstallDetails.js';\nimport { PrecacheStrategy } from './PrecacheStrategy.js';\nimport './_version.js';\n/**\n * Performs efficient precaching of assets.\n *\n * @memberof workbox-precaching\n */\nclass PrecacheController {\n /**\n * Create a new PrecacheController.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] The cache to use for precaching.\n * @param {string} [options.plugins] Plugins to use when precaching as well\n * as responding to fetch events for precached assets.\n * @param {boolean} [options.fallbackToNetwork=true] Whether to attempt to\n * get the response from the network if there's a precache miss.\n */\n constructor({ cacheName, plugins = [], fallbackToNetwork = true, } = {}) {\n this._urlsToCacheKeys = new Map();\n this._urlsToCacheModes = new Map();\n this._cacheKeysToIntegrities = new Map();\n this._strategy = new PrecacheStrategy({\n cacheName: cacheNames.getPrecacheName(cacheName),\n plugins: [\n ...plugins,\n new PrecacheCacheKeyPlugin({ precacheController: this }),\n ],\n fallbackToNetwork,\n });\n // Bind the install and activate methods to the instance.\n this.install = this.install.bind(this);\n this.activate = this.activate.bind(this);\n }\n /**\n * @type {workbox-precaching.PrecacheStrategy} The strategy created by this controller and\n * used to cache assets and respond to fetch events.\n */\n get strategy() {\n return this._strategy;\n }\n /**\n * Adds items to the precache list, removing any duplicates and\n * stores the files in the\n * {@link workbox-core.cacheNames|\"precache cache\"} when the service\n * worker installs.\n *\n * This method can be called multiple times.\n *\n * @param {Array} [entries=[]] Array of entries to precache.\n */\n precache(entries) {\n this.addToCacheList(entries);\n if (!this._installAndActiveListenersAdded) {\n self.addEventListener('install', this.install);\n self.addEventListener('activate', this.activate);\n this._installAndActiveListenersAdded = true;\n }\n }\n /**\n * This method will add items to the precache list, removing duplicates\n * and ensuring the information is valid.\n *\n * @param {Array} entries\n * Array of entries to precache.\n */\n addToCacheList(entries) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isArray(entries, {\n moduleName: 'workbox-precaching',\n className: 'PrecacheController',\n funcName: 'addToCacheList',\n paramName: 'entries',\n });\n }\n const urlsToWarnAbout = [];\n for (const entry of entries) {\n // See https://github.com/GoogleChrome/workbox/issues/2259\n if (typeof entry === 'string') {\n urlsToWarnAbout.push(entry);\n }\n else if (entry && entry.revision === undefined) {\n urlsToWarnAbout.push(entry.url);\n }\n const { cacheKey, url } = createCacheKey(entry);\n const cacheMode = typeof entry !== 'string' && entry.revision ? 'reload' : 'default';\n if (this._urlsToCacheKeys.has(url) &&\n this._urlsToCacheKeys.get(url) !== cacheKey) {\n throw new WorkboxError('add-to-cache-list-conflicting-entries', {\n firstEntry: this._urlsToCacheKeys.get(url),\n secondEntry: cacheKey,\n });\n }\n if (typeof entry !== 'string' && entry.integrity) {\n if (this._cacheKeysToIntegrities.has(cacheKey) &&\n this._cacheKeysToIntegrities.get(cacheKey) !== entry.integrity) {\n throw new WorkboxError('add-to-cache-list-conflicting-integrities', {\n url,\n });\n }\n this._cacheKeysToIntegrities.set(cacheKey, entry.integrity);\n }\n this._urlsToCacheKeys.set(url, cacheKey);\n this._urlsToCacheModes.set(url, cacheMode);\n if (urlsToWarnAbout.length > 0) {\n const warningMessage = `Workbox is precaching URLs without revision ` +\n `info: ${urlsToWarnAbout.join(', ')}\\nThis is generally NOT safe. ` +\n `Learn more at https://bit.ly/wb-precache`;\n if (process.env.NODE_ENV === 'production') {\n // Use console directly to display this warning without bloating\n // bundle sizes by pulling in all of the logger codebase in prod.\n console.warn(warningMessage);\n }\n else {\n logger.warn(warningMessage);\n }\n }\n }\n }\n /**\n * Precaches new and updated assets. Call this method from the service worker\n * install event.\n *\n * Note: this method calls `event.waitUntil()` for you, so you do not need\n * to call it yourself in your event handlers.\n *\n * @param {ExtendableEvent} event\n * @return {Promise}\n */\n install(event) {\n // waitUntil returns Promise\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return waitUntil(event, async () => {\n const installReportPlugin = new PrecacheInstallReportPlugin();\n this.strategy.plugins.push(installReportPlugin);\n // Cache entries one at a time.\n // See https://github.com/GoogleChrome/workbox/issues/2528\n for (const [url, cacheKey] of this._urlsToCacheKeys) {\n const integrity = this._cacheKeysToIntegrities.get(cacheKey);\n const cacheMode = this._urlsToCacheModes.get(url);\n const request = new Request(url, {\n integrity,\n cache: cacheMode,\n credentials: 'same-origin',\n });\n await Promise.all(this.strategy.handleAll({\n params: { cacheKey },\n request,\n event,\n }));\n }\n const { updatedURLs, notUpdatedURLs } = installReportPlugin;\n if (process.env.NODE_ENV !== 'production') {\n printInstallDetails(updatedURLs, notUpdatedURLs);\n }\n return { updatedURLs, notUpdatedURLs };\n });\n }\n /**\n * Deletes assets that are no longer present in the current precache manifest.\n * Call this method from the service worker activate event.\n *\n * Note: this method calls `event.waitUntil()` for you, so you do not need\n * to call it yourself in your event handlers.\n *\n * @param {ExtendableEvent} event\n * @return {Promise}\n */\n activate(event) {\n // waitUntil returns Promise\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return waitUntil(event, async () => {\n const cache = await self.caches.open(this.strategy.cacheName);\n const currentlyCachedRequests = await cache.keys();\n const expectedCacheKeys = new Set(this._urlsToCacheKeys.values());\n const deletedURLs = [];\n for (const request of currentlyCachedRequests) {\n if (!expectedCacheKeys.has(request.url)) {\n await cache.delete(request);\n deletedURLs.push(request.url);\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n printCleanupDetails(deletedURLs);\n }\n return { deletedURLs };\n });\n }\n /**\n * Returns a mapping of a precached URL to the corresponding cache key, taking\n * into account the revision information for the URL.\n *\n * @return {Map} A URL to cache key mapping.\n */\n getURLsToCacheKeys() {\n return this._urlsToCacheKeys;\n }\n /**\n * Returns a list of all the URLs that have been precached by the current\n * service worker.\n *\n * @return {Array} The precached URLs.\n */\n getCachedURLs() {\n return [...this._urlsToCacheKeys.keys()];\n }\n /**\n * Returns the cache key used for storing a given URL. If that URL is\n * unversioned, like `/index.html', then the cache key will be the original\n * URL with a search parameter appended to it.\n *\n * @param {string} url A URL whose cache key you want to look up.\n * @return {string} The versioned URL that corresponds to a cache key\n * for the original URL, or undefined if that URL isn't precached.\n */\n getCacheKeyForURL(url) {\n const urlObject = new URL(url, location.href);\n return this._urlsToCacheKeys.get(urlObject.href);\n }\n /**\n * @param {string} url A cache key whose SRI you want to look up.\n * @return {string} The subresource integrity associated with the cache key,\n * or undefined if it's not set.\n */\n getIntegrityForCacheKey(cacheKey) {\n return this._cacheKeysToIntegrities.get(cacheKey);\n }\n /**\n * This acts as a drop-in replacement for\n * [`cache.match()`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match)\n * with the following differences:\n *\n * - It knows what the name of the precache is, and only checks in that cache.\n * - It allows you to pass in an \"original\" URL without versioning parameters,\n * and it will automatically look up the correct cache key for the currently\n * active revision of that URL.\n *\n * E.g., `matchPrecache('index.html')` will find the correct precached\n * response for the currently active service worker, even if the actual cache\n * key is `'/index.html?__WB_REVISION__=1234abcd'`.\n *\n * @param {string|Request} request The key (without revisioning parameters)\n * to look up in the precache.\n * @return {Promise}\n */\n async matchPrecache(request) {\n const url = request instanceof Request ? request.url : request;\n const cacheKey = this.getCacheKeyForURL(url);\n if (cacheKey) {\n const cache = await self.caches.open(this.strategy.cacheName);\n return cache.match(cacheKey);\n }\n return undefined;\n }\n /**\n * Returns a function that looks up `url` in the precache (taking into\n * account revision information), and returns the corresponding `Response`.\n *\n * @param {string} url The precached URL which will be used to lookup the\n * `Response`.\n * @return {workbox-routing~handlerCallback}\n */\n createHandlerBoundToURL(url) {\n const cacheKey = this.getCacheKeyForURL(url);\n if (!cacheKey) {\n throw new WorkboxError('non-precached-url', { url });\n }\n return (options) => {\n options.request = new Request(url);\n options.params = Object.assign({ cacheKey }, options.params);\n return this.strategy.handle(options);\n };\n }\n}\nexport { PrecacheController };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { Route } from 'workbox-routing/Route.js';\nimport { generateURLVariations } from './utils/generateURLVariations.js';\nimport './_version.js';\n/**\n * A subclass of {@link workbox-routing.Route} that takes a\n * {@link workbox-precaching.PrecacheController}\n * instance and uses it to match incoming requests and handle fetching\n * responses from the precache.\n *\n * @memberof workbox-precaching\n * @extends workbox-routing.Route\n */\nclass PrecacheRoute extends Route {\n /**\n * @param {PrecacheController} precacheController A `PrecacheController`\n * instance used to both match requests and respond to fetch events.\n * @param {Object} [options] Options to control how requests are matched\n * against the list of precached URLs.\n * @param {string} [options.directoryIndex=index.html] The `directoryIndex` will\n * check cache entries for a URLs ending with '/' to see if there is a hit when\n * appending the `directoryIndex` value.\n * @param {Array} [options.ignoreURLParametersMatching=[/^utm_/, /^fbclid$/]] An\n * array of regex's to remove search params when looking for a cache match.\n * @param {boolean} [options.cleanURLs=true] The `cleanURLs` option will\n * check the cache for the URL with a `.html` added to the end of the end.\n * @param {workbox-precaching~urlManipulation} [options.urlManipulation]\n * This is a function that should take a URL and return an array of\n * alternative URLs that should be checked for precache matches.\n */\n constructor(precacheController, options) {\n const match = ({ request, }) => {\n const urlsToCacheKeys = precacheController.getURLsToCacheKeys();\n for (const possibleURL of generateURLVariations(request.url, options)) {\n const cacheKey = urlsToCacheKeys.get(possibleURL);\n if (cacheKey) {\n const integrity = precacheController.getIntegrityForCacheKey(cacheKey);\n return { cacheKey, integrity };\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Precaching did not find a match for ` + getFriendlyURL(request.url));\n }\n return;\n };\n super(match, precacheController.strategy);\n }\n}\nexport { PrecacheRoute };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { removeIgnoredSearchParams } from './removeIgnoredSearchParams.js';\nimport '../_version.js';\n/**\n * Generator function that yields possible variations on the original URL to\n * check, one at a time.\n *\n * @param {string} url\n * @param {Object} options\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function* generateURLVariations(url, { ignoreURLParametersMatching = [/^utm_/, /^fbclid$/], directoryIndex = 'index.html', cleanURLs = true, urlManipulation, } = {}) {\n const urlObject = new URL(url, location.href);\n urlObject.hash = '';\n yield urlObject.href;\n const urlWithoutIgnoredParams = removeIgnoredSearchParams(urlObject, ignoreURLParametersMatching);\n yield urlWithoutIgnoredParams.href;\n if (directoryIndex && urlWithoutIgnoredParams.pathname.endsWith('/')) {\n const directoryURL = new URL(urlWithoutIgnoredParams.href);\n directoryURL.pathname += directoryIndex;\n yield directoryURL.href;\n }\n if (cleanURLs) {\n const cleanURL = new URL(urlWithoutIgnoredParams.href);\n cleanURL.pathname += '.html';\n yield cleanURL.href;\n }\n if (urlManipulation) {\n const additionalURLs = urlManipulation({ url: urlObject });\n for (const urlToAttempt of additionalURLs) {\n yield urlToAttempt.href;\n }\n }\n}\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Removes any URL search parameters that should be ignored.\n *\n * @param {URL} urlObject The original URL.\n * @param {Array} ignoreURLParametersMatching RegExps to test against\n * each search parameter name. Matches mean that the search parameter should be\n * ignored.\n * @return {URL} The URL with any ignored search parameters removed.\n *\n * @private\n * @memberof workbox-precaching\n */\nexport function removeIgnoredSearchParams(urlObject, ignoreURLParametersMatching = []) {\n // Convert the iterable into an array at the start of the loop to make sure\n // deletion doesn't mess up iteration.\n for (const paramName of [...urlObject.searchParams.keys()]) {\n if (ignoreURLParametersMatching.some((regExp) => regExp.test(paramName))) {\n urlObject.searchParams.delete(paramName);\n }\n }\n return urlObject;\n}\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a [cache-first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#cache-first-falling-back-to-network)\n * request strategy.\n *\n * A cache first strategy is useful for assets that have been revisioned,\n * such as URLs like `/styles/example.a8f5f1.css`, since they\n * can be cached for long periods of time.\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass CacheFirst extends Strategy {\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'makeRequest',\n paramName: 'request',\n });\n }\n let response = await handler.cacheMatch(request);\n let error = undefined;\n if (!response) {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`No response found in the '${this.cacheName}' cache. ` +\n `Will respond with a network request.`);\n }\n try {\n response = await handler.fetchAndCachePut(request);\n }\n catch (err) {\n if (err instanceof Error) {\n error = err;\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Got response from network.`);\n }\n else {\n logs.push(`Unable to get a response from the network.`);\n }\n }\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Found a cached response in the '${this.cacheName}' cache.`);\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url, error });\n }\n return response;\n }\n}\nexport { CacheFirst };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { dontWaitFor } from 'workbox-core/_private/dontWaitFor.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { registerQuotaErrorCallback } from 'workbox-core/registerQuotaErrorCallback.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { CacheExpiration } from './CacheExpiration.js';\nimport './_version.js';\n/**\n * This plugin can be used in a `workbox-strategy` to regularly enforce a\n * limit on the age and / or the number of cached requests.\n *\n * It can only be used with `workbox-strategy` instances that have a\n * [custom `cacheName` property set](/web/tools/workbox/guides/configure-workbox#custom_cache_names_in_strategies).\n * In other words, it can't be used to expire entries in strategy that uses the\n * default runtime cache name.\n *\n * Whenever a cached response is used or updated, this plugin will look\n * at the associated cache and remove any old or extra responses.\n *\n * When using `maxAgeSeconds`, responses may be used *once* after expiring\n * because the expiration clean up will not have occurred until *after* the\n * cached response has been used. If the response has a \"Date\" header, then\n * a light weight expiration check is performed and the response will not be\n * used immediately.\n *\n * When using `maxEntries`, the entry least-recently requested will be removed\n * from the cache first.\n *\n * @memberof workbox-expiration\n */\nclass ExpirationPlugin {\n /**\n * @param {ExpirationPluginOptions} config\n * @param {number} [config.maxEntries] The maximum number of entries to cache.\n * Entries used the least will be removed as the maximum is reached.\n * @param {number} [config.maxAgeSeconds] The maximum age of an entry before\n * it's treated as stale and removed.\n * @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)\n * that will be used when calling `delete()` on the cache.\n * @param {boolean} [config.purgeOnQuotaError] Whether to opt this cache in to\n * automatic deletion if the available storage quota has been exceeded.\n */\n constructor(config = {}) {\n /**\n * A \"lifecycle\" callback that will be triggered automatically by the\n * `workbox-strategies` handlers when a `Response` is about to be returned\n * from a [Cache](https://developer.mozilla.org/en-US/docs/Web/API/Cache) to\n * the handler. It allows the `Response` to be inspected for freshness and\n * prevents it from being used if the `Response`'s `Date` header value is\n * older than the configured `maxAgeSeconds`.\n *\n * @param {Object} options\n * @param {string} options.cacheName Name of the cache the response is in.\n * @param {Response} options.cachedResponse The `Response` object that's been\n * read from a cache and whose freshness should be checked.\n * @return {Response} Either the `cachedResponse`, if it's\n * fresh, or `null` if the `Response` is older than `maxAgeSeconds`.\n *\n * @private\n */\n this.cachedResponseWillBeUsed = async ({ event, request, cacheName, cachedResponse, }) => {\n if (!cachedResponse) {\n return null;\n }\n const isFresh = this._isResponseDateFresh(cachedResponse);\n // Expire entries to ensure that even if the expiration date has\n // expired, it'll only be used once.\n const cacheExpiration = this._getCacheExpiration(cacheName);\n dontWaitFor(cacheExpiration.expireEntries());\n // Update the metadata for the request URL to the current timestamp,\n // but don't `await` it as we don't want to block the response.\n const updateTimestampDone = cacheExpiration.updateTimestamp(request.url);\n if (event) {\n try {\n event.waitUntil(updateTimestampDone);\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n // The event may not be a fetch event; only log the URL if it is.\n if ('request' in event) {\n logger.warn(`Unable to ensure service worker stays alive when ` +\n `updating cache entry for ` +\n `'${getFriendlyURL(event.request.url)}'.`);\n }\n }\n }\n }\n return isFresh ? cachedResponse : null;\n };\n /**\n * A \"lifecycle\" callback that will be triggered automatically by the\n * `workbox-strategies` handlers when an entry is added to a cache.\n *\n * @param {Object} options\n * @param {string} options.cacheName Name of the cache that was updated.\n * @param {string} options.request The Request for the cached entry.\n *\n * @private\n */\n this.cacheDidUpdate = async ({ cacheName, request, }) => {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(cacheName, 'string', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'cacheDidUpdate',\n paramName: 'cacheName',\n });\n assert.isInstance(request, Request, {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'cacheDidUpdate',\n paramName: 'request',\n });\n }\n const cacheExpiration = this._getCacheExpiration(cacheName);\n await cacheExpiration.updateTimestamp(request.url);\n await cacheExpiration.expireEntries();\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!(config.maxEntries || config.maxAgeSeconds)) {\n throw new WorkboxError('max-entries-or-age-required', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n });\n }\n if (config.maxEntries) {\n assert.isType(config.maxEntries, 'number', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n paramName: 'config.maxEntries',\n });\n }\n if (config.maxAgeSeconds) {\n assert.isType(config.maxAgeSeconds, 'number', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n paramName: 'config.maxAgeSeconds',\n });\n }\n }\n this._config = config;\n this._maxAgeSeconds = config.maxAgeSeconds;\n this._cacheExpirations = new Map();\n if (config.purgeOnQuotaError) {\n registerQuotaErrorCallback(() => this.deleteCacheAndMetadata());\n }\n }\n /**\n * A simple helper method to return a CacheExpiration instance for a given\n * cache name.\n *\n * @param {string} cacheName\n * @return {CacheExpiration}\n *\n * @private\n */\n _getCacheExpiration(cacheName) {\n if (cacheName === cacheNames.getRuntimeName()) {\n throw new WorkboxError('expire-custom-caches-only');\n }\n let cacheExpiration = this._cacheExpirations.get(cacheName);\n if (!cacheExpiration) {\n cacheExpiration = new CacheExpiration(cacheName, this._config);\n this._cacheExpirations.set(cacheName, cacheExpiration);\n }\n return cacheExpiration;\n }\n /**\n * @param {Response} cachedResponse\n * @return {boolean}\n *\n * @private\n */\n _isResponseDateFresh(cachedResponse) {\n if (!this._maxAgeSeconds) {\n // We aren't expiring by age, so return true, it's fresh\n return true;\n }\n // Check if the 'date' header will suffice a quick expiration check.\n // See https://github.com/GoogleChromeLabs/sw-toolbox/issues/164 for\n // discussion.\n const dateHeaderTimestamp = this._getDateHeaderTimestamp(cachedResponse);\n if (dateHeaderTimestamp === null) {\n // Unable to parse date, so assume it's fresh.\n return true;\n }\n // If we have a valid headerTime, then our response is fresh iff the\n // headerTime plus maxAgeSeconds is greater than the current time.\n const now = Date.now();\n return dateHeaderTimestamp >= now - this._maxAgeSeconds * 1000;\n }\n /**\n * This method will extract the data header and parse it into a useful\n * value.\n *\n * @param {Response} cachedResponse\n * @return {number|null}\n *\n * @private\n */\n _getDateHeaderTimestamp(cachedResponse) {\n if (!cachedResponse.headers.has('date')) {\n return null;\n }\n const dateHeader = cachedResponse.headers.get('date');\n const parsedDate = new Date(dateHeader);\n const headerTime = parsedDate.getTime();\n // If the Date header was invalid for some reason, parsedDate.getTime()\n // will return NaN.\n if (isNaN(headerTime)) {\n return null;\n }\n return headerTime;\n }\n /**\n * This is a helper method that performs two operations:\n *\n * - Deletes *all* the underlying Cache instances associated with this plugin\n * instance, by calling caches.delete() on your behalf.\n * - Deletes the metadata from IndexedDB used to keep track of expiration\n * details for each Cache instance.\n *\n * When using cache expiration, calling this method is preferable to calling\n * `caches.delete()` directly, since this will ensure that the IndexedDB\n * metadata is also cleanly removed and open IndexedDB instances are deleted.\n *\n * Note that if you're *not* using cache expiration for a given cache, calling\n * `caches.delete()` and passing in the cache's name should be sufficient.\n * There is no Workbox-specific method needed for cleanup in that case.\n */\n async deleteCacheAndMetadata() {\n // Do this one at a time instead of all at once via `Promise.all()` to\n // reduce the chance of inconsistency if a promise rejects.\n for (const [cacheName, cacheExpiration] of this._cacheExpirations) {\n await self.caches.delete(cacheName);\n await cacheExpiration.delete();\n }\n // Reset this._cacheExpirations to its initial state.\n this._cacheExpirations = new Map();\n }\n}\nexport { ExpirationPlugin };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from './_private/logger.js';\nimport { assert } from './_private/assert.js';\nimport { quotaErrorCallbacks } from './models/quotaErrorCallbacks.js';\nimport './_version.js';\n/**\n * Adds a function to the set of quotaErrorCallbacks that will be executed if\n * there's a quota error.\n *\n * @param {Function} callback\n * @memberof workbox-core\n */\n// Can't change Function type\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction registerQuotaErrorCallback(callback) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(callback, 'function', {\n moduleName: 'workbox-core',\n funcName: 'register',\n paramName: 'callback',\n });\n }\n quotaErrorCallbacks.add(callback);\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Registered a callback to respond to quota errors.', callback);\n }\n}\nexport { registerQuotaErrorCallback };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { cacheOkAndOpaquePlugin } from './plugins/cacheOkAndOpaquePlugin.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [network first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-first-falling-back-to-cache)\n * request strategy.\n *\n * By default, this strategy will cache responses with a 200 status code as\n * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).\n * Opaque responses are are cross-origin requests where the response doesn't\n * support [CORS](https://enable-cors.org/).\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass NetworkFirst extends Strategy {\n /**\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)\n * @param {number} [options.networkTimeoutSeconds] If set, any network requests\n * that fail to respond within the timeout will fallback to the cache.\n *\n * This option can be used to combat\n * \"[lie-fi]{@link https://developers.google.com/web/fundamentals/performance/poor-connectivity/#lie-fi}\"\n * scenarios.\n */\n constructor(options = {}) {\n super(options);\n // If this instance contains no plugins with a 'cacheWillUpdate' callback,\n // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list.\n if (!this.plugins.some((p) => 'cacheWillUpdate' in p)) {\n this.plugins.unshift(cacheOkAndOpaquePlugin);\n }\n this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0;\n if (process.env.NODE_ENV !== 'production') {\n if (this._networkTimeoutSeconds) {\n assert.isType(this._networkTimeoutSeconds, 'number', {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'constructor',\n paramName: 'networkTimeoutSeconds',\n });\n }\n }\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'handle',\n paramName: 'makeRequest',\n });\n }\n const promises = [];\n let timeoutId;\n if (this._networkTimeoutSeconds) {\n const { id, promise } = this._getTimeoutPromise({ request, logs, handler });\n timeoutId = id;\n promises.push(promise);\n }\n const networkPromise = this._getNetworkPromise({\n timeoutId,\n request,\n logs,\n handler,\n });\n promises.push(networkPromise);\n const response = await handler.waitUntil((async () => {\n // Promise.race() will resolve as soon as the first promise resolves.\n return ((await handler.waitUntil(Promise.race(promises))) ||\n // If Promise.race() resolved with null, it might be due to a network\n // timeout + a cache miss. If that were to happen, we'd rather wait until\n // the networkPromise resolves instead of returning null.\n // Note that it's fine to await an already-resolved promise, so we don't\n // have to check to see if it's still \"in flight\".\n (await networkPromise));\n })());\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url });\n }\n return response;\n }\n /**\n * @param {Object} options\n * @param {Request} options.request\n * @param {Array} options.logs A reference to the logs array\n * @param {Event} options.event\n * @return {Promise}\n *\n * @private\n */\n _getTimeoutPromise({ request, logs, handler, }) {\n let timeoutId;\n const timeoutPromise = new Promise((resolve) => {\n const onNetworkTimeout = async () => {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Timing out the network response at ` +\n `${this._networkTimeoutSeconds} seconds.`);\n }\n resolve(await handler.cacheMatch(request));\n };\n timeoutId = setTimeout(onNetworkTimeout, this._networkTimeoutSeconds * 1000);\n });\n return {\n promise: timeoutPromise,\n id: timeoutId,\n };\n }\n /**\n * @param {Object} options\n * @param {number|undefined} options.timeoutId\n * @param {Request} options.request\n * @param {Array} options.logs A reference to the logs Array.\n * @param {Event} options.event\n * @return {Promise}\n *\n * @private\n */\n async _getNetworkPromise({ timeoutId, request, logs, handler, }) {\n let error;\n let response;\n try {\n response = await handler.fetchAndCachePut(request);\n }\n catch (fetchError) {\n if (fetchError instanceof Error) {\n error = fetchError;\n }\n }\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Got response from network.`);\n }\n else {\n logs.push(`Unable to get a response from the network. Will respond ` +\n `with a cached response.`);\n }\n }\n if (error || !response) {\n response = await handler.cacheMatch(request);\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Found a cached response in the '${this.cacheName}'` + ` cache.`);\n }\n else {\n logs.push(`No response found in the '${this.cacheName}' cache.`);\n }\n }\n }\n return response;\n }\n}\nexport { NetworkFirst };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { createPartialResponse } from './createPartialResponse.js';\nimport './_version.js';\n/**\n * The range request plugin makes it easy for a request with a 'Range' header to\n * be fulfilled by a cached response.\n *\n * It does this by intercepting the `cachedResponseWillBeUsed` plugin callback\n * and returning the appropriate subset of the cached response body.\n *\n * @memberof workbox-range-requests\n */\nclass RangeRequestsPlugin {\n constructor() {\n /**\n * @param {Object} options\n * @param {Request} options.request The original request, which may or may not\n * contain a Range: header.\n * @param {Response} options.cachedResponse The complete cached response.\n * @return {Promise} If request contains a 'Range' header, then a\n * new response with status 206 whose body is a subset of `cachedResponse` is\n * returned. Otherwise, `cachedResponse` is returned as-is.\n *\n * @private\n */\n this.cachedResponseWillBeUsed = async ({ request, cachedResponse, }) => {\n // Only return a sliced response if there's something valid in the cache,\n // and there's a Range: header in the request.\n if (cachedResponse && request.headers.has('range')) {\n return await createPartialResponse(request, cachedResponse);\n }\n // If there was no Range: header, or if cachedResponse wasn't valid, just\n // pass it through as-is.\n return cachedResponse;\n };\n }\n}\nexport { RangeRequestsPlugin };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { cacheOkAndOpaquePlugin } from './plugins/cacheOkAndOpaquePlugin.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [stale-while-revalidate](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#stale-while-revalidate)\n * request strategy.\n *\n * Resources are requested from both the cache and the network in parallel.\n * The strategy will respond with the cached version if available, otherwise\n * wait for the network response. The cache is updated with the network response\n * with each successful request.\n *\n * By default, this strategy will cache responses with a 200 status code as\n * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).\n * Opaque responses are cross-origin requests where the response doesn't\n * support [CORS](https://enable-cors.org/).\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass StaleWhileRevalidate extends Strategy {\n /**\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)\n */\n constructor(options = {}) {\n super(options);\n // If this instance contains no plugins with a 'cacheWillUpdate' callback,\n // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list.\n if (!this.plugins.some((p) => 'cacheWillUpdate' in p)) {\n this.plugins.unshift(cacheOkAndOpaquePlugin);\n }\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'handle',\n paramName: 'request',\n });\n }\n const fetchAndCachePromise = handler.fetchAndCachePut(request).catch(() => {\n // Swallow this error because a 'no-response' error will be thrown in\n // main handler return flow. This will be in the `waitUntil()` flow.\n });\n void handler.waitUntil(fetchAndCachePromise);\n let response = await handler.cacheMatch(request);\n let error;\n if (response) {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Found a cached response in the '${this.cacheName}'` +\n ` cache. Will update with the network response in the background.`);\n }\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`No response found in the '${this.cacheName}' cache. ` +\n `Will wait for the network response.`);\n }\n try {\n // NOTE(philipwalton): Really annoying that we have to type cast here.\n // https://github.com/microsoft/TypeScript/issues/20006\n response = (await fetchAndCachePromise);\n }\n catch (err) {\n if (err instanceof Error) {\n error = err;\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url, error });\n }\n return response;\n }\n}\nexport { StaleWhileRevalidate };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { deleteOutdatedCaches } from './utils/deleteOutdatedCaches.js';\nimport './_version.js';\n/**\n * Adds an `activate` event listener which will clean up incompatible\n * precaches that were created by older versions of Workbox.\n *\n * @memberof workbox-precaching\n */\nfunction cleanupOutdatedCaches() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('activate', ((event) => {\n const cacheName = cacheNames.getPrecacheName();\n event.waitUntil(deleteOutdatedCaches(cacheName).then((cachesDeleted) => {\n if (process.env.NODE_ENV !== 'production') {\n if (cachesDeleted.length > 0) {\n logger.log(`The following out-of-date precaches were cleaned up ` +\n `automatically:`, cachesDeleted);\n }\n }\n }));\n }));\n}\nexport { cleanupOutdatedCaches };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst SUBSTRING_TO_FIND = '-precache-';\n/**\n * Cleans up incompatible precaches that were created by older versions of\n * Workbox, by a service worker registered under the current scope.\n *\n * This is meant to be called as part of the `activate` event.\n *\n * This should be safe to use as long as you don't include `substringToFind`\n * (defaulting to `-precache-`) in your non-precache cache names.\n *\n * @param {string} currentPrecacheName The cache name currently in use for\n * precaching. This cache won't be deleted.\n * @param {string} [substringToFind='-precache-'] Cache names which include this\n * substring will be deleted (excluding `currentPrecacheName`).\n * @return {Array} A list of all the cache names that were deleted.\n *\n * @private\n * @memberof workbox-precaching\n */\nconst deleteOutdatedCaches = async (currentPrecacheName, substringToFind = SUBSTRING_TO_FIND) => {\n const cacheNames = await self.caches.keys();\n const cacheNamesToDelete = cacheNames.filter((cacheName) => {\n return (cacheName.includes(substringToFind) &&\n cacheName.includes(self.registration.scope) &&\n cacheName !== currentPrecacheName);\n });\n await Promise.all(cacheNamesToDelete.map((cacheName) => self.caches.delete(cacheName)));\n return cacheNamesToDelete;\n};\nexport { deleteOutdatedCaches };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport './_version.js';\n/**\n * Claim any currently available clients once the service worker\n * becomes active. This is normally used in conjunction with `skipWaiting()`.\n *\n * @memberof workbox-core\n */\nfunction clientsClaim() {\n self.addEventListener('activate', () => self.clients.claim());\n}\nexport { clientsClaim };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { addRoute } from './addRoute.js';\nimport { precache } from './precache.js';\nimport './_version.js';\n/**\n * This method will add entries to the precache list and add a route to\n * respond to fetch events.\n *\n * This is a convenience method that will call\n * {@link workbox-precaching.precache} and\n * {@link workbox-precaching.addRoute} in a single call.\n *\n * @param {Array} entries Array of entries to precache.\n * @param {Object} [options] See the\n * {@link workbox-precaching.PrecacheRoute} options.\n *\n * @memberof workbox-precaching\n */\nfunction precacheAndRoute(entries, options) {\n precache(entries);\n addRoute(options);\n}\nexport { precacheAndRoute };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport './_version.js';\n/**\n * Adds items to the precache list, removing any duplicates and\n * stores the files in the\n * {@link workbox-core.cacheNames|\"precache cache\"} when the service\n * worker installs.\n *\n * This method can be called multiple times.\n *\n * Please note: This method **will not** serve any of the cached files for you.\n * It only precaches files. To respond to a network request you call\n * {@link workbox-precaching.addRoute}.\n *\n * If you have a single array of files to precache, you can just call\n * {@link workbox-precaching.precacheAndRoute}.\n *\n * @param {Array} [entries=[]] Array of entries to precache.\n *\n * @memberof workbox-precaching\n */\nfunction precache(entries) {\n const precacheController = getOrCreatePrecacheController();\n precacheController.precache(entries);\n}\nexport { precache };\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { registerRoute } from 'workbox-routing/registerRoute.js';\nimport { getOrCreatePrecacheController } from './utils/getOrCreatePrecacheController.js';\nimport { PrecacheRoute } from './PrecacheRoute.js';\nimport './_version.js';\n/**\n * Add a `fetch` listener to the service worker that will\n * respond to\n * [network requests]{@link https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#Custom_responses_to_requests}\n * with precached assets.\n *\n * Requests for assets that aren't precached, the `FetchEvent` will not be\n * responded to, allowing the event to fall through to other `fetch` event\n * listeners.\n *\n * @param {Object} [options] See the {@link workbox-precaching.PrecacheRoute}\n * options.\n *\n * @memberof workbox-precaching\n */\nfunction addRoute(options) {\n const precacheController = getOrCreatePrecacheController();\n const precacheRoute = new PrecacheRoute(precacheController, options);\n registerRoute(precacheRoute);\n}\nexport { addRoute };\n"],"names":["self","_","e","messageGenerator","fallback","code","args","msg","length","JSON","stringify","WorkboxError","Error","constructor","errorCode","details","super","this","name","normalizeHandler","handler","handle","Route","match","method","setCatchHandler","catchHandler","RegExpRoute","regExp","url","result","exec","href","origin","location","index","slice","Router","_routes","Map","_defaultHandlerMap","routes","addFetchListener","addEventListener","event","request","responsePromise","handleRequest","respondWith","addCacheListener","data","type","payload","requestPromises","Promise","all","urlsToCache","map","entry","Request","waitUntil","ports","then","postMessage","URL","protocol","startsWith","sameOrigin","params","route","findMatchingRoute","has","get","err","reject","_catchHandler","catch","async","catchErr","matchResult","Array","isArray","Object","keys","undefined","setDefaultHandler","set","registerRoute","push","unregisterRoute","routeIndex","indexOf","splice","defaultRouter","getOrCreateDefaultRouter","capture","captureUrl","matchCallback","RegExp","moduleName","funcName","paramName","cacheOkAndOpaquePlugin","cacheWillUpdate","response","status","_cacheNameDetails","googleAnalytics","precache","prefix","runtime","suffix","registration","scope","_createCacheName","cacheName","filter","value","join","cacheNames","userCacheName","stripParams","fullURL","ignoreParams","strippedURL","param","searchParams","delete","Deferred","promise","resolve","quotaErrorCallbacks","Set","toRequest","input","StrategyHandler","strategy","options","_cacheKeys","assign","_strategy","_handlerDeferred","_extendLifetimePromises","_plugins","plugins","_pluginStateMap","plugin","fetch","mode","FetchEvent","preloadResponse","possiblePreloadResponse","originalRequest","hasCallback","clone","cb","iterateCallbacks","thrownErrorMessage","message","pluginFilteredRequest","fetchResponse","fetchOptions","callback","error","runCallbacks","fetchAndCachePut","responseClone","cachePut","cacheMatch","key","cachedResponse","matchOptions","effectiveRequest","getCacheKey","multiMatchOptions","caches","ms","setTimeout","String","replace","responseToCache","_ensureResponseSafeToCache","cache","open","hasCacheUpdateCallback","oldResponse","strippedRequestURL","keysOptions","ignoreSearch","cacheKeys","cacheKey","cacheMatchIgnoreParams","put","executeQuotaErrorCallbacks","newResponse","state","statefulCallback","statefulParam","doneWaiting","shift","destroy","pluginsUsed","Strategy","responseDone","handleAll","_getResponse","_awaitComplete","_handle","waitUntilError","dontWaitFor","instanceOfAny","object","constructors","some","c","idbProxyableTypes","cursorAdvanceMethods","cursorRequestMap","WeakMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","idbProxyTraps","target","prop","receiver","IDBTransaction","objectStoreNames","objectStore","wrap","wrapFunction","func","IDBDatabase","prototype","transaction","IDBCursor","advance","continue","continuePrimaryKey","includes","apply","unwrap","storeNames","tx","call","sort","transformCachableValue","done","unlisten","removeEventListener","complete","DOMException","cacheDonePromiseForTransaction","IDBObjectStore","IDBIndex","Proxy","IDBRequest","success","promisifyRequest","newValue","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","storeName","store","oldTraps","_extends","CACHE_OBJECT_STORE","normalizeURL","unNormalizedUrl","hash","CacheTimestampsModel","_db","_cacheName","_upgradeDb","db","objStore","createObjectStore","keyPath","createIndex","unique","_upgradeDbAndDeleteOldDbs","blocked","indexedDB","deleteDatabase","oldVersion","deleteDB","setTimestamp","timestamp","id","_getId","getDb","durability","getTimestamp","expireEntries","minTimestamp","maxCount","cursor","openCursor","entriesToDelete","entriesNotDeletedCount","urlsDeleted","version","upgrade","blocking","terminated","openPromise","newVersion","openDB","bind","CacheExpiration","config","_isRunning","_rerunRequested","_maxEntries","maxEntries","_maxAgeSeconds","maxAgeSeconds","_matchOptions","_timestampModel","Date","now","urlsExpired","updateTimestamp","isURLExpired","expireOlderThan","Infinity","createPartialResponse","originalResponse","rangeHeader","headers","boundaries","normalizedRangeHeader","trim","toLowerCase","rangeParts","start","Number","end","parseRangeHeader","originalBlob","blob","effectiveBoundaries","blobSize","size","effectiveStart","effectiveEnd","calculateEffectiveBoundaries","slicedBlob","slicedBlobSize","slicedResponse","Response","statusText","asyncFn","returnPromise","createCacheKey","urlObject","revision","cacheKeyURL","originalURL","PrecacheInstallReportPlugin","updatedURLs","notUpdatedURLs","handlerWillStart","cachedResponseWillBeUsed","PrecacheCacheKeyPlugin","precacheController","cacheKeyWillBeUsed","_precacheController","getCacheKeyForURL","supportStatus","copyResponse","modifier","clonedResponse","responseInit","Headers","modifiedResponseInit","body","testResponse","canConstructResponseFromBodyStream","PrecacheStrategy","_fallbackToNetwork","fallbackToNetwork","copyRedirectedCacheableResponsesPlugin","_handleInstall","_handleFetch","integrityInManifest","integrity","integrityInRequest","noIntegrityConflict","_useDefaultCacheabilityPluginIfNeeded","defaultPluginIndex","cacheWillUpdatePluginCount","entries","defaultPrecacheCacheabilityPlugin","redirected","PrecacheController","_urlsToCacheKeys","_urlsToCacheModes","_cacheKeysToIntegrities","install","activate","addToCacheList","_installAndActiveListenersAdded","urlsToWarnAbout","cacheMode","firstEntry","secondEntry","warningMessage","console","warn","installReportPlugin","credentials","currentlyCachedRequests","expectedCacheKeys","values","deletedURLs","getURLsToCacheKeys","getCachedURLs","getIntegrityForCacheKey","matchPrecache","createHandlerBoundToURL","getOrCreatePrecacheController","PrecacheRoute","urlsToCacheKeys","possibleURL","ignoreURLParametersMatching","directoryIndex","cleanURLs","urlManipulation","urlWithoutIgnoredParams","test","removeIgnoredSearchParams","pathname","endsWith","directoryURL","cleanURL","additionalURLs","urlToAttempt","generateURLVariations","isFresh","_isResponseDateFresh","cacheExpiration","_getCacheExpiration","updateTimestampDone","cacheDidUpdate","_config","_cacheExpirations","purgeOnQuotaError","add","registerQuotaErrorCallback","deleteCacheAndMetadata","dateHeaderTimestamp","_getDateHeaderTimestamp","dateHeader","headerTime","getTime","isNaN","p","unshift","_networkTimeoutSeconds","networkTimeoutSeconds","logs","promises","timeoutId","_getTimeoutPromise","networkPromise","_getNetworkPromise","race","fetchError","clearTimeout","fetchAndCachePromise","currentPrecacheName","substringToFind","cacheNamesToDelete","deleteOutdatedCaches","cachesDeleted","clients","claim","addRoute"],"mappings":"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"} \ No newline at end of file diff --git a/apps/deploy-web/src/components/authorizations/AllowanceIssuedRow.tsx b/apps/deploy-web/src/components/authorizations/AllowanceIssuedRow.tsx index 86ffa75fd..17d8ceb2e 100644 --- a/apps/deploy-web/src/components/authorizations/AllowanceIssuedRow.tsx +++ b/apps/deploy-web/src/components/authorizations/AllowanceIssuedRow.tsx @@ -5,7 +5,7 @@ import { Bin, Edit } from "iconoir-react"; import { Address } from "@src/components/shared/Address"; import { AKTAmount } from "@src/components/shared/AKTAmount"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { TableCell, TableRow } from "@src/components/ui/table"; import { AllowanceType } from "@src/types/grant"; import { getAllowanceTitleByType } from "@src/utils/grants"; diff --git a/apps/deploy-web/src/components/authorizations/Authorizations.tsx b/apps/deploy-web/src/components/authorizations/Authorizations.tsx index 4f7f5fa47..1e0e6b2bc 100644 --- a/apps/deploy-web/src/components/authorizations/Authorizations.tsx +++ b/apps/deploy-web/src/components/authorizations/Authorizations.tsx @@ -7,7 +7,7 @@ import { Address } from "@src/components/shared/Address"; import { Fieldset } from "@src/components/shared/Fieldset"; import { Popup } from "@src/components/shared/Popup"; import Spinner from "@src/components/shared/Spinner"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Table, TableBody, TableHead, TableHeader, TableRow } from "@src/components/ui/table"; import { useWallet } from "@src/context/WalletProvider"; import { useAllowancesGranted, useAllowancesIssued, useGranteeGrants, useGranterGrants } from "@src/queries/useGrantsQuery"; diff --git a/apps/deploy-web/src/components/authorizations/GranterRow.tsx b/apps/deploy-web/src/components/authorizations/GranterRow.tsx index 15c2b0c0c..24f74e1ce 100644 --- a/apps/deploy-web/src/components/authorizations/GranterRow.tsx +++ b/apps/deploy-web/src/components/authorizations/GranterRow.tsx @@ -5,7 +5,7 @@ import { Bin, Edit } from "iconoir-react"; import { Address } from "@src/components/shared/Address"; import { AKTAmount } from "@src/components/shared/AKTAmount"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { TableCell, TableRow } from "@src/components/ui/table"; import { useDenomData } from "@src/hooks/useWalletBalance"; import { GrantType } from "@src/types/grant"; diff --git a/apps/deploy-web/src/components/deployments/DeploymentDetail.tsx b/apps/deploy-web/src/components/deployments/DeploymentDetail.tsx index 43a62dd3e..75a8c03be 100644 --- a/apps/deploy-web/src/components/deployments/DeploymentDetail.tsx +++ b/apps/deploy-web/src/components/deployments/DeploymentDetail.tsx @@ -9,7 +9,7 @@ import { event } from "nextjs-google-analytics"; import Spinner from "@src/components/shared/Spinner"; import { Alert } from "@src/components/ui/alert"; -import { Button, buttonVariants } from "@src/components/ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { Tabs, TabsList, TabsTrigger } from "@src/components/ui/tabs"; import { useCertificate } from "@src/context/CertificateProvider"; import { useSettings } from "@src/context/SettingsProvider"; diff --git a/apps/deploy-web/src/components/deployments/DeploymentDetailTopBar.tsx b/apps/deploy-web/src/components/deployments/DeploymentDetailTopBar.tsx index c09a2c3c4..9cbf2e614 100644 --- a/apps/deploy-web/src/components/deployments/DeploymentDetailTopBar.tsx +++ b/apps/deploy-web/src/components/deployments/DeploymentDetailTopBar.tsx @@ -6,7 +6,7 @@ import { useRouter } from "next/navigation"; import { event } from "nextjs-google-analytics"; import { CustomDropdownLinkItem } from "@src/components/shared/CustomDropdownLinkItem"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent } from "@src/components/ui/dropdown-menu"; import { useLocalNotes } from "@src/context/LocalNoteProvider"; import { useWallet } from "@src/context/WalletProvider"; diff --git a/apps/deploy-web/src/components/deployments/DeploymentLeaseShell.tsx b/apps/deploy-web/src/components/deployments/DeploymentLeaseShell.tsx index 0990404e0..daf69bff6 100644 --- a/apps/deploy-web/src/components/deployments/DeploymentLeaseShell.tsx +++ b/apps/deploy-web/src/components/deployments/DeploymentLeaseShell.tsx @@ -6,7 +6,7 @@ import Link from "next/link"; import Spinner from "@src/components/shared/Spinner"; import ViewPanel from "@src/components/shared/ViewPanel"; import { Alert } from "@src/components/ui/alert"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { useCertificate } from "@src/context/CertificateProvider"; import { useCustomWebSocket } from "@src/hooks/useCustomWebSocket"; import { XTerm } from "@src/lib/XTerm"; diff --git a/apps/deploy-web/src/components/deployments/DeploymentList.tsx b/apps/deploy-web/src/components/deployments/DeploymentList.tsx index fdc71e0fd..dc75dfaf8 100644 --- a/apps/deploy-web/src/components/deployments/DeploymentList.tsx +++ b/apps/deploy-web/src/components/deployments/DeploymentList.tsx @@ -8,7 +8,7 @@ import { NextSeo } from "next-seo"; import { CustomPagination } from "@src/components/shared/CustomPagination"; import { LinkTo } from "@src/components/shared/LinkTo"; import Spinner from "@src/components/shared/Spinner"; -import { Button, buttonVariants } from "@src/components/ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { CheckboxWithLabel } from "@src/components/ui/checkbox"; import { InputWithIcon } from "@src/components/ui/input"; import { Table, TableBody, TableHead, TableHeader, TableRow } from "@src/components/ui/table"; diff --git a/apps/deploy-web/src/components/deployments/DeploymentListRow.tsx b/apps/deploy-web/src/components/deployments/DeploymentListRow.tsx index dfefbaa55..16cb50d26 100644 --- a/apps/deploy-web/src/components/deployments/DeploymentListRow.tsx +++ b/apps/deploy-web/src/components/deployments/DeploymentListRow.tsx @@ -26,7 +26,7 @@ import { PricePerMonth } from "../shared/PricePerMonth"; import { PriceValue } from "../shared/PriceValue"; import { SpecDetailList } from "../shared/SpecDetailList"; import Spinner from "../shared/Spinner"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Checkbox } from "../ui/checkbox"; import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "../ui/dropdown-menu"; import { TableCell, TableRow } from "../ui/table"; diff --git a/apps/deploy-web/src/components/deployments/DeploymentLogs.tsx b/apps/deploy-web/src/components/deployments/DeploymentLogs.tsx index b409f62e9..8af3a6bb3 100644 --- a/apps/deploy-web/src/components/deployments/DeploymentLogs.tsx +++ b/apps/deploy-web/src/components/deployments/DeploymentLogs.tsx @@ -15,7 +15,7 @@ import { SelectCheckbox } from "@src/components/shared/SelectCheckbox"; import Spinner from "@src/components/shared/Spinner"; import ViewPanel from "@src/components/shared/ViewPanel"; import { Alert } from "@src/components/ui/alert"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Checkbox, CheckboxWithLabel } from "@src/components/ui/checkbox"; import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "@src/components/ui/dropdown-menu"; import { useBackgroundTask } from "@src/context/BackgroundTaskProvider"; diff --git a/apps/deploy-web/src/components/deployments/LeaseRow.tsx b/apps/deploy-web/src/components/deployments/LeaseRow.tsx index 480a77c46..3f3be03a9 100644 --- a/apps/deploy-web/src/components/deployments/LeaseRow.tsx +++ b/apps/deploy-web/src/components/deployments/LeaseRow.tsx @@ -18,7 +18,7 @@ import Spinner from "@src/components/shared/Spinner"; import { StatusPill } from "@src/components/shared/StatusPill"; import { Alert } from "@src/components/ui/alert"; import { Badge } from "@src/components/ui/badge"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Card, CardContent, CardHeader } from "@src/components/ui/card"; import { useCertificate } from "@src/context/CertificateProvider"; import { LocalCert } from "@src/context/CertificateProvider/CertificateProviderContext"; diff --git a/apps/deploy-web/src/components/deployments/ManifestUpdate.tsx b/apps/deploy-web/src/components/deployments/ManifestUpdate.tsx index bee9dabe0..39abb08f8 100644 --- a/apps/deploy-web/src/components/deployments/ManifestUpdate.tsx +++ b/apps/deploy-web/src/components/deployments/ManifestUpdate.tsx @@ -12,7 +12,7 @@ import { LinkTo } from "@src/components/shared/LinkTo"; import Spinner from "@src/components/shared/Spinner"; import ViewPanel from "@src/components/shared/ViewPanel"; import { Alert } from "@src/components/ui/alert"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { useCertificate } from "@src/context/CertificateProvider"; import { LocalCert } from "@src/context/CertificateProvider/CertificateProviderContext"; import { useSettings } from "@src/context/SettingsProvider"; diff --git a/apps/deploy-web/src/components/get-started/GetStartedStepper.tsx b/apps/deploy-web/src/components/get-started/GetStartedStepper.tsx index 81d8ac2ff..435efc80a 100644 --- a/apps/deploy-web/src/components/get-started/GetStartedStepper.tsx +++ b/apps/deploy-web/src/components/get-started/GetStartedStepper.tsx @@ -17,7 +17,7 @@ import { cn } from "@src/utils/styleUtils"; import { UrlService } from "@src/utils/urlUtils"; import { CustomTooltip } from "../shared/CustomTooltip"; import { ExternalLink } from "../shared/ExternalLink"; -import { Button, buttonVariants } from "../ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { ConnectWalletButton } from "../wallet/ConnectWalletButton"; import { QontoConnector, QontoStepIcon } from "./Stepper"; diff --git a/apps/deploy-web/src/components/get-started/NoKeplrSection.tsx b/apps/deploy-web/src/components/get-started/NoKeplrSection.tsx index ef6dc0fa6..a4ef53bef 100644 --- a/apps/deploy-web/src/components/get-started/NoKeplrSection.tsx +++ b/apps/deploy-web/src/components/get-started/NoKeplrSection.tsx @@ -8,7 +8,7 @@ import { UrlService } from "@src/utils/urlUtils"; import { ExternalLink } from "../shared/ExternalLink"; import { LinkTo } from "../shared/LinkTo"; import { Alert } from "../ui/alert"; -import { buttonVariants } from "../ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../ui/collapsible"; import { CreateWalletSection } from "./CreateWalletSection"; diff --git a/apps/deploy-web/src/components/get-started/NoWalletSection.tsx b/apps/deploy-web/src/components/get-started/NoWalletSection.tsx index 28bf4ac0f..395e3fda3 100644 --- a/apps/deploy-web/src/components/get-started/NoWalletSection.tsx +++ b/apps/deploy-web/src/components/get-started/NoWalletSection.tsx @@ -8,7 +8,7 @@ import { UrlService } from "@src/utils/urlUtils"; import { ExternalLink } from "../shared/ExternalLink"; import { LinkTo } from "../shared/LinkTo"; import { Alert } from "../ui/alert"; -import { buttonVariants } from "../ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../ui/collapsible"; import { CreateWalletSection } from "./CreateWalletSection"; diff --git a/apps/deploy-web/src/components/get-started/WithKeplrSection.tsx b/apps/deploy-web/src/components/get-started/WithKeplrSection.tsx index 77e06ea59..d4d6f7140 100644 --- a/apps/deploy-web/src/components/get-started/WithKeplrSection.tsx +++ b/apps/deploy-web/src/components/get-started/WithKeplrSection.tsx @@ -6,7 +6,7 @@ import Link from "next/link"; import { cn } from "@src/utils/styleUtils"; import { UrlService } from "@src/utils/urlUtils"; import { ExternalLink } from "../shared/ExternalLink"; -import { buttonVariants } from "../ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; export const WithKeplrSection: React.FunctionComponent = () => { return ( diff --git a/apps/deploy-web/src/components/home/CloudmosImportPanel.tsx b/apps/deploy-web/src/components/home/CloudmosImportPanel.tsx index 253e6eff7..d0d1f30c0 100644 --- a/apps/deploy-web/src/components/home/CloudmosImportPanel.tsx +++ b/apps/deploy-web/src/components/home/CloudmosImportPanel.tsx @@ -3,7 +3,7 @@ import { Import } from "iconoir-react"; import { z } from "zod"; import { Card, CardContent, CardHeader, CardTitle } from "@src/components/ui/card"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; const autoImportOrigin = "https://deploy.cloudmos.io"; diff --git a/apps/deploy-web/src/components/home/WelcomePanel.tsx b/apps/deploy-web/src/components/home/WelcomePanel.tsx index d6bb58254..cf6bca31c 100644 --- a/apps/deploy-web/src/components/home/WelcomePanel.tsx +++ b/apps/deploy-web/src/components/home/WelcomePanel.tsx @@ -4,7 +4,7 @@ import { Learning, NavArrowDown, Rocket, SearchEngine } from "iconoir-react"; import Link from "next/link"; import { Avatar, AvatarFallback } from "@src/components/ui/avatar"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Card, CardContent, CardHeader, CardTitle } from "@src/components/ui/card"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@src/components/ui/collapsible"; import { cn } from "@src/utils/styleUtils"; diff --git a/apps/deploy-web/src/components/home/YourAccount.tsx b/apps/deploy-web/src/components/home/YourAccount.tsx index 34d05eee8..655144482 100644 --- a/apps/deploy-web/src/components/home/YourAccount.tsx +++ b/apps/deploy-web/src/components/home/YourAccount.tsx @@ -28,7 +28,7 @@ import { PriceValue } from "../shared/PriceValue"; import Spinner from "../shared/Spinner"; import { StatusPill } from "../shared/StatusPill"; import { Badge } from "../ui/badge"; -import { buttonVariants } from "../ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { Card, CardContent, CardHeader, CardTitle } from "../ui/card"; // const LiquidityModal = dynamic(() => import("../liquidity-modal"), { diff --git a/apps/deploy-web/src/components/layout/AccountMenu.tsx b/apps/deploy-web/src/components/layout/AccountMenu.tsx index d6f92da39..7b00bb684 100644 --- a/apps/deploy-web/src/components/layout/AccountMenu.tsx +++ b/apps/deploy-web/src/components/layout/AccountMenu.tsx @@ -11,7 +11,7 @@ import { UrlService } from "@src/utils/urlUtils"; import { CustomDropdownLinkItem } from "../shared/CustomDropdownLinkItem"; import Spinner from "../shared/Spinner"; import { Avatar, AvatarFallback } from "../ui/avatar"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components";; import { DropdownMenu, DropdownMenuContent, DropdownMenuSeparator } from "../ui/dropdown-menu"; export function AccountMenu() { diff --git a/apps/deploy-web/src/components/layout/MobileSidebarUser.tsx b/apps/deploy-web/src/components/layout/MobileSidebarUser.tsx index 309c4d4cd..17c6958c4 100644 --- a/apps/deploy-web/src/components/layout/MobileSidebarUser.tsx +++ b/apps/deploy-web/src/components/layout/MobileSidebarUser.tsx @@ -8,7 +8,7 @@ import { cn } from "@src/utils/styleUtils"; import { UrlService } from "@src/utils/urlUtils"; import Spinner from "../shared/Spinner"; import { Avatar } from "../ui/avatar"; -import { buttonVariants } from "../ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { Separator } from "../ui/separator"; import { SidebarRouteButton } from "./SidebarRouteButton"; import { WalletStatus } from "./WalletStatus"; diff --git a/apps/deploy-web/src/components/layout/ModeToggle.tsx b/apps/deploy-web/src/components/layout/ModeToggle.tsx index 92b98fb39..3bbe649e6 100644 --- a/apps/deploy-web/src/components/layout/ModeToggle.tsx +++ b/apps/deploy-web/src/components/layout/ModeToggle.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from "react"; import { HalfMoon, SunLight } from "iconoir-react"; import { useTheme } from "next-themes"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@src/components/ui/dropdown-menu"; import { cn } from "@src/utils/styleUtils"; diff --git a/apps/deploy-web/src/components/layout/Nav.tsx b/apps/deploy-web/src/components/layout/Nav.tsx index dff88c6a5..1b42a2ef2 100644 --- a/apps/deploy-web/src/components/layout/Nav.tsx +++ b/apps/deploy-web/src/components/layout/Nav.tsx @@ -1,13 +1,12 @@ "use client"; import { Menu, Xmark } from "iconoir-react"; import Link from "next/link"; - import useCookieTheme from "@src/hooks/useTheme"; import { accountBarHeight } from "@src/utils/constants"; import { UrlService } from "@src/utils/urlUtils"; import { AkashConsoleBetaLogoDark, AkashConsoleBetaLogoLight } from "../icons/AkashConsoleLogo"; import { Badge } from "../ui/badge"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { AccountMenu } from "./AccountMenu"; import { WalletStatus } from "./WalletStatus"; diff --git a/apps/deploy-web/src/components/layout/NodeStatusBar.tsx b/apps/deploy-web/src/components/layout/NodeStatusBar.tsx index 78d345538..4c4616718 100644 --- a/apps/deploy-web/src/components/layout/NodeStatusBar.tsx +++ b/apps/deploy-web/src/components/layout/NodeStatusBar.tsx @@ -7,7 +7,7 @@ import { UrlService } from "@src/utils/urlUtils"; import { useSettings } from "../../context/SettingsProvider"; import { LinearLoadingSkeleton } from "../shared/LinearLoadingSkeleton"; import { NodeStatus } from "../shared/NodeStatus"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; export const NodeStatusBar = () => { const { settings, isRefreshingNodeStatus } = useSettings(); diff --git a/apps/deploy-web/src/components/layout/Sidebar.tsx b/apps/deploy-web/src/components/layout/Sidebar.tsx index 4c74115e9..66a9d69b3 100644 --- a/apps/deploy-web/src/components/layout/Sidebar.tsx +++ b/apps/deploy-web/src/components/layout/Sidebar.tsx @@ -16,7 +16,7 @@ import { closedDrawerWidth, drawerWidth } from "@src/utils/constants"; import { cn } from "@src/utils/styleUtils"; import { UrlService } from "@src/utils/urlUtils"; import { Badge } from "../ui/badge"; -import { Button, buttonVariants } from "../ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { MobileSidebarUser } from "./MobileSidebarUser"; import { ModeToggle } from "./ModeToggle"; import { NodeStatusBar } from "./NodeStatusBar"; diff --git a/apps/deploy-web/src/components/layout/SidebarRouteButton.tsx b/apps/deploy-web/src/components/layout/SidebarRouteButton.tsx index e881d4dc4..41879295b 100644 --- a/apps/deploy-web/src/components/layout/SidebarRouteButton.tsx +++ b/apps/deploy-web/src/components/layout/SidebarRouteButton.tsx @@ -6,7 +6,7 @@ import { usePathname } from "next/navigation"; import { ISidebarRoute } from "@src/types"; import { cn } from "@src/utils/styleUtils"; import { UrlService } from "@src/utils/urlUtils"; -import { buttonVariants } from "../ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; type Props = { children?: ReactNode; diff --git a/apps/deploy-web/src/components/layout/WalletStatus.tsx b/apps/deploy-web/src/components/layout/WalletStatus.tsx index 94a722ce8..3fc870e89 100644 --- a/apps/deploy-web/src/components/layout/WalletStatus.tsx +++ b/apps/deploy-web/src/components/layout/WalletStatus.tsx @@ -12,7 +12,7 @@ import { Address } from "../shared/Address"; import { FormattedDecimal } from "../shared/FormattedDecimal"; import Spinner from "../shared/Spinner"; import { Badge } from "../ui/badge"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu"; import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip"; import { ConnectWalletButton } from "../wallet/ConnectWalletButton"; diff --git a/apps/deploy-web/src/components/liquidity-modal/index.tsx b/apps/deploy-web/src/components/liquidity-modal/index.tsx index 4d7f79a46..52a4cbc50 100644 --- a/apps/deploy-web/src/components/liquidity-modal/index.tsx +++ b/apps/deploy-web/src/components/liquidity-modal/index.tsx @@ -9,7 +9,7 @@ import { useSelectedChain } from "@src/context/CustomChainProvider"; import { useWallet } from "@src/context/WalletProvider"; import { AnalyticsEvents } from "@src/utils/analytics"; import { customColors } from "@src/utils/colors"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; const theme: ThemeDefinition = { colors: { diff --git a/apps/deploy-web/src/components/new-deployment/CreateLease.tsx b/apps/deploy-web/src/components/new-deployment/CreateLease.tsx index 99f7df010..5c4cd865c 100644 --- a/apps/deploy-web/src/components/new-deployment/CreateLease.tsx +++ b/apps/deploy-web/src/components/new-deployment/CreateLease.tsx @@ -30,7 +30,7 @@ import { Snackbar } from "../shared/Snackbar"; import Spinner from "../shared/Spinner"; import ViewPanel from "../shared/ViewPanel"; import { Alert } from "../ui/alert"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Checkbox } from "../ui/checkbox"; import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "../ui/dropdown-menu"; import { InputWithIcon } from "../ui/input"; diff --git a/apps/deploy-web/src/components/new-deployment/ManifestEdit.tsx b/apps/deploy-web/src/components/new-deployment/ManifestEdit.tsx index 9f04741a5..def487135 100644 --- a/apps/deploy-web/src/components/new-deployment/ManifestEdit.tsx +++ b/apps/deploy-web/src/components/new-deployment/ManifestEdit.tsx @@ -34,7 +34,7 @@ import { PrerequisiteList } from "../shared/PrerequisiteList"; import Spinner from "../shared/Spinner"; import ViewPanel from "../shared/ViewPanel"; import { Alert } from "../ui/alert"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { InputWithIcon } from "../ui/input"; import { SdlBuilder, SdlBuilderRefType } from "./SdlBuilder"; diff --git a/apps/deploy-web/src/components/new-deployment/SdlBuilder.tsx b/apps/deploy-web/src/components/new-deployment/SdlBuilder.tsx index 15ffc61b8..f3988cddf 100644 --- a/apps/deploy-web/src/components/new-deployment/SdlBuilder.tsx +++ b/apps/deploy-web/src/components/new-deployment/SdlBuilder.tsx @@ -2,7 +2,6 @@ import React, { Dispatch, useEffect, useRef, useState } from "react"; import { useFieldArray, useForm } from "react-hook-form"; import { nanoid } from "nanoid"; - import { useGpuModels } from "@src/queries/useGpuQuery"; import { SdlBuilderFormValues, Service } from "@src/types"; import { defaultService } from "@src/utils/sdl/data"; @@ -11,7 +10,7 @@ import { importSimpleSdl } from "@src/utils/sdl/sdlImport"; import { SimpleServiceFormControl } from "../sdl/SimpleServiceFormControl"; import Spinner from "../shared/Spinner"; import { Alert } from "../ui/alert"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; interface Props { sdlString: string; diff --git a/apps/deploy-web/src/components/new-deployment/TemplateList.tsx b/apps/deploy-web/src/components/new-deployment/TemplateList.tsx index d484a9ee2..f667138fd 100644 --- a/apps/deploy-web/src/components/new-deployment/TemplateList.tsx +++ b/apps/deploy-web/src/components/new-deployment/TemplateList.tsx @@ -16,7 +16,7 @@ import { helloWorldTemplate, ubuntuTemplate } from "@src/utils/templates"; import { domainName, UrlService } from "@src/utils/urlUtils"; import { CustomNextSeo } from "../shared/CustomNextSeo"; import { TemplateBox } from "../templates/TemplateBox"; -import { Button, buttonVariants } from "../ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { DeployOptionBox } from "./DeployOptionBox"; const previewTemplateIds = [ diff --git a/apps/deploy-web/src/components/providers/AuditorButton.tsx b/apps/deploy-web/src/components/providers/AuditorButton.tsx index 827ac3687..283eb5c00 100644 --- a/apps/deploy-web/src/components/providers/AuditorButton.tsx +++ b/apps/deploy-web/src/components/providers/AuditorButton.tsx @@ -3,7 +3,7 @@ import { MouseEvent, useState } from "react"; import { BadgeCheck } from "iconoir-react"; import { ClientProviderDetailWithStatus, ClientProviderList } from "@src/types/provider"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { AuditorsModal } from "./AuditorsModal"; type Props = { diff --git a/apps/deploy-web/src/components/providers/EditProviderContainer.tsx b/apps/deploy-web/src/components/providers/EditProviderContainer.tsx index cda7b2ac0..9166cf192 100644 --- a/apps/deploy-web/src/components/providers/EditProviderContainer.tsx +++ b/apps/deploy-web/src/components/providers/EditProviderContainer.tsx @@ -5,7 +5,7 @@ import Link from "next/link"; import { NextSeo } from "next-seo"; import Spinner from "@src/components/shared/Spinner"; -import { buttonVariants } from "@src/components/ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { useProviderAttributesSchema, useProviderDetail } from "@src/queries/useProvidersQuery"; import { getProviderNameFromUri } from "@src/utils/providerUtils"; import { cn } from "@src/utils/styleUtils"; diff --git a/apps/deploy-web/src/components/providers/EditProviderForm.tsx b/apps/deploy-web/src/components/providers/EditProviderForm.tsx index 47409952d..5725866e3 100644 --- a/apps/deploy-web/src/components/providers/EditProviderForm.tsx +++ b/apps/deploy-web/src/components/providers/EditProviderForm.tsx @@ -7,7 +7,7 @@ import { nanoid } from "nanoid"; import { FormPaper } from "@src/components/sdl/FormPaper"; import { CustomTooltip } from "@src/components/shared/CustomTooltip"; import { Alert } from "@src/components/ui/alert"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { CheckboxWithLabel } from "@src/components/ui/checkbox"; import { FormItem } from "@src/components/ui/form"; import { InputWithIcon } from "@src/components/ui/input"; diff --git a/apps/deploy-web/src/components/providers/ProviderDetailLayout.tsx b/apps/deploy-web/src/components/providers/ProviderDetailLayout.tsx index 7d98a3cb6..d8d620bad 100644 --- a/apps/deploy-web/src/components/providers/ProviderDetailLayout.tsx +++ b/apps/deploy-web/src/components/providers/ProviderDetailLayout.tsx @@ -6,7 +6,7 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; import { ErrorFallback } from "@src/components/shared/ErrorFallback"; -import { Button, buttonVariants } from "@src/components/ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { Tabs, TabsList, TabsTrigger } from "@src/components/ui/tabs"; import { useWallet } from "@src/context/WalletProvider"; import { usePreviousRoute } from "@src/hooks/usePreviousRoute"; diff --git a/apps/deploy-web/src/components/providers/ProviderList.tsx b/apps/deploy-web/src/components/providers/ProviderList.tsx index ecd6b49b7..f593f1067 100644 --- a/apps/deploy-web/src/components/providers/ProviderList.tsx +++ b/apps/deploy-web/src/components/providers/ProviderList.tsx @@ -6,7 +6,7 @@ import { useRouter, useSearchParams } from "next/navigation"; import { CustomPagination } from "@src/components/shared/CustomPagination"; import Spinner from "@src/components/shared/Spinner"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { CheckboxWithLabel } from "@src/components/ui/checkbox"; import { InputWithIcon } from "@src/components/ui/input"; import { Label } from "@src/components/ui/label"; diff --git a/apps/deploy-web/src/components/providers/ProviderMap.tsx b/apps/deploy-web/src/components/providers/ProviderMap.tsx index 1a440fde6..e9cdcc6ce 100644 --- a/apps/deploy-web/src/components/providers/ProviderMap.tsx +++ b/apps/deploy-web/src/components/providers/ProviderMap.tsx @@ -4,7 +4,7 @@ import { ComposableMap, Geographies, Geography, Marker, Point, ZoomableGroup } f import { Minus, Plus, Restart } from "iconoir-react"; import Link from "next/link"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { ApiProviderList } from "@src/types/provider"; import { UrlService } from "@src/utils/urlUtils"; import { CustomNoDivTooltip } from "../shared/CustomTooltip"; diff --git a/apps/deploy-web/src/components/sdl/AcceptFormControl.tsx b/apps/deploy-web/src/components/sdl/AcceptFormControl.tsx index ddb516a92..7eda6a64c 100644 --- a/apps/deploy-web/src/components/sdl/AcceptFormControl.tsx +++ b/apps/deploy-web/src/components/sdl/AcceptFormControl.tsx @@ -7,7 +7,7 @@ import { nanoid } from "nanoid"; import { Accept, SdlBuilderFormValues } from "@src/types"; import { cn } from "@src/utils/styleUtils"; import { CustomTooltip } from "../shared/CustomTooltip"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { FormInput } from "../ui/input"; import { FormPaper } from "./FormPaper"; diff --git a/apps/deploy-web/src/components/sdl/AdvancedConfig.tsx b/apps/deploy-web/src/components/sdl/AdvancedConfig.tsx index bf06b9fc0..2b2a6a755 100644 --- a/apps/deploy-web/src/components/sdl/AdvancedConfig.tsx +++ b/apps/deploy-web/src/components/sdl/AdvancedConfig.tsx @@ -5,7 +5,7 @@ import { Control } from "react-hook-form"; import { RentGpusFormValues, Service } from "@src/types"; import { cn } from "@src/utils/styleUtils"; import { ExpandMore } from "../shared/ExpandMore"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Card, CardContent } from "../ui/card"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../ui/collapsible"; import { CommandFormModal } from "./CommandFormModal"; diff --git a/apps/deploy-web/src/components/sdl/AttributesFormControl.tsx b/apps/deploy-web/src/components/sdl/AttributesFormControl.tsx index bf4e5fbd6..b23ae20ef 100644 --- a/apps/deploy-web/src/components/sdl/AttributesFormControl.tsx +++ b/apps/deploy-web/src/components/sdl/AttributesFormControl.tsx @@ -7,7 +7,7 @@ import { nanoid } from "nanoid"; import { PlacementAttribute, SdlBuilderFormValues } from "@src/types"; import { cn } from "@src/utils/styleUtils"; import { CustomTooltip } from "../shared/CustomTooltip"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { FormInput } from "../ui/input"; import { FormPaper } from "./FormPaper"; diff --git a/apps/deploy-web/src/components/sdl/EditDescriptionForm.tsx b/apps/deploy-web/src/components/sdl/EditDescriptionForm.tsx index eb6c47caf..bb5afce16 100644 --- a/apps/deploy-web/src/components/sdl/EditDescriptionForm.tsx +++ b/apps/deploy-web/src/components/sdl/EditDescriptionForm.tsx @@ -6,7 +6,7 @@ import { useSnackbar } from "notistack"; import { Snackbar } from "../shared/Snackbar"; import Spinner from "../shared/Spinner"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Textarea } from "../ui/input"; import { Label } from "../ui/label"; import { FormPaper } from "./FormPaper"; diff --git a/apps/deploy-web/src/components/sdl/EnvFormModal.tsx b/apps/deploy-web/src/components/sdl/EnvFormModal.tsx index a65960f72..715839a29 100644 --- a/apps/deploy-web/src/components/sdl/EnvFormModal.tsx +++ b/apps/deploy-web/src/components/sdl/EnvFormModal.tsx @@ -8,7 +8,7 @@ import { EnvironmentVariable, RentGpusFormValues, SdlBuilderFormValues } from "@ import { cn } from "@src/utils/styleUtils"; import { CustomNoDivTooltip } from "../shared/CustomTooltip"; import { Popup } from "../shared/Popup"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { FormInput } from "../ui/input"; import { Switch } from "../ui/switch"; import { FormPaper } from "./FormPaper"; diff --git a/apps/deploy-web/src/components/sdl/ExposeFormModal.tsx b/apps/deploy-web/src/components/sdl/ExposeFormModal.tsx index 4771cc406..088f25fcc 100644 --- a/apps/deploy-web/src/components/sdl/ExposeFormModal.tsx +++ b/apps/deploy-web/src/components/sdl/ExposeFormModal.tsx @@ -10,7 +10,7 @@ import { protoTypes } from "@src/utils/sdl/data"; import { cn } from "@src/utils/styleUtils"; import { CustomTooltip } from "../shared/CustomTooltip"; import { Popup } from "../shared/Popup"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Checkbox } from "../ui/checkbox"; import { FormItem } from "../ui/form"; import { InputWithIcon } from "../ui/input"; diff --git a/apps/deploy-web/src/components/sdl/GpuFormControl.tsx b/apps/deploy-web/src/components/sdl/GpuFormControl.tsx index 74b82a622..6c0861656 100644 --- a/apps/deploy-web/src/components/sdl/GpuFormControl.tsx +++ b/apps/deploy-web/src/components/sdl/GpuFormControl.tsx @@ -15,7 +15,7 @@ import { gpuVendors } from "../shared/akash/gpu"; import { validationConfig } from "../shared/akash/units"; import { CustomTooltip } from "../shared/CustomTooltip"; import Spinner from "../shared/Spinner"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Checkbox } from "../ui/checkbox"; import { FormDescription, FormItem } from "../ui/form"; import { Input } from "../ui/input"; diff --git a/apps/deploy-web/src/components/sdl/ImageSelect.tsx b/apps/deploy-web/src/components/sdl/ImageSelect.tsx index 3d38b5af4..797d19c4d 100644 --- a/apps/deploy-web/src/components/sdl/ImageSelect.tsx +++ b/apps/deploy-web/src/components/sdl/ImageSelect.tsx @@ -14,7 +14,7 @@ import { useGpuTemplates } from "@src/hooks/useGpuTemplates"; import { ApiTemplate, RentGpusFormValues, SdlBuilderFormValues, Service } from "@src/types"; import { cn } from "@src/utils/styleUtils"; import { CustomTooltip } from "../shared/CustomTooltip"; -import { buttonVariants } from "../ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; type Props = { children?: ReactNode; diff --git a/apps/deploy-web/src/components/sdl/PreviewSdl.tsx b/apps/deploy-web/src/components/sdl/PreviewSdl.tsx index 6b021ca84..f8e3a7fc2 100644 --- a/apps/deploy-web/src/components/sdl/PreviewSdl.tsx +++ b/apps/deploy-web/src/components/sdl/PreviewSdl.tsx @@ -6,7 +6,7 @@ import { useTheme } from "next-themes"; import { useSnackbar } from "notistack"; import { Popup } from "@src/components/shared/Popup"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { copyTextToClipboard } from "@src/utils/copyClipboard"; import { Snackbar } from "../shared/Snackbar"; diff --git a/apps/deploy-web/src/components/sdl/RentGpusForm.tsx b/apps/deploy-web/src/components/sdl/RentGpusForm.tsx index 49b835445..18fc033a0 100644 --- a/apps/deploy-web/src/components/sdl/RentGpusForm.tsx +++ b/apps/deploy-web/src/components/sdl/RentGpusForm.tsx @@ -32,7 +32,7 @@ import { LinkTo } from "../shared/LinkTo"; import { PrerequisiteList } from "../shared/PrerequisiteList"; import Spinner from "../shared/Spinner"; import { Alert } from "../ui/alert"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { AdvancedConfig } from "./AdvancedConfig"; import { CpuFormControl } from "./CpuFormControl"; import { FormPaper } from "./FormPaper"; diff --git a/apps/deploy-web/src/components/sdl/SignedByFormControl.tsx b/apps/deploy-web/src/components/sdl/SignedByFormControl.tsx index 7aa373a87..f46742114 100644 --- a/apps/deploy-web/src/components/sdl/SignedByFormControl.tsx +++ b/apps/deploy-web/src/components/sdl/SignedByFormControl.tsx @@ -7,7 +7,7 @@ import { nanoid } from "nanoid"; import { SdlBuilderFormValues, SignedBy } from "@src/types"; import { cn } from "@src/utils/styleUtils"; import { CustomTooltip } from "../shared/CustomTooltip"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { FormInput } from "../ui/input"; import { FormPaper } from "./FormPaper"; diff --git a/apps/deploy-web/src/components/sdl/SimpleSdlBuilderForm.tsx b/apps/deploy-web/src/components/sdl/SimpleSdlBuilderForm.tsx index 02202fe9d..c7a8f19dd 100644 --- a/apps/deploy-web/src/components/sdl/SimpleSdlBuilderForm.tsx +++ b/apps/deploy-web/src/components/sdl/SimpleSdlBuilderForm.tsx @@ -14,7 +14,7 @@ import { SimpleServiceFormControl } from "@src/components/sdl/SimpleServiceFormC import { memoryUnits, storageUnits } from "@src/components/shared/akash/units"; import Spinner from "@src/components/shared/Spinner"; import { Alert } from "@src/components/ui/alert"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import useFormPersist from "@src/hooks/useFormPersist"; import { useGpuModels } from "@src/queries/useGpuQuery"; import sdlStore from "@src/store/sdlStore"; diff --git a/apps/deploy-web/src/components/sdl/SimpleServiceFormControl.tsx b/apps/deploy-web/src/components/sdl/SimpleServiceFormControl.tsx index 9ce0a7743..071c6dc55 100644 --- a/apps/deploy-web/src/components/sdl/SimpleServiceFormControl.tsx +++ b/apps/deploy-web/src/components/sdl/SimpleServiceFormControl.tsx @@ -16,7 +16,7 @@ import { cn } from "@src/utils/styleUtils"; import { CustomTooltip } from "../shared/CustomTooltip"; import { LeaseSpecDetail } from "../shared/LeaseSpecDetail"; import { PriceValue } from "../shared/PriceValue"; -import { Button, buttonVariants } from "../ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { Card, CardContent } from "../ui/card"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../ui/collapsible"; import { InputWithIcon } from "../ui/input"; diff --git a/apps/deploy-web/src/components/sdl/ToFormControl.tsx b/apps/deploy-web/src/components/sdl/ToFormControl.tsx index 28121c091..83f9752b0 100644 --- a/apps/deploy-web/src/components/sdl/ToFormControl.tsx +++ b/apps/deploy-web/src/components/sdl/ToFormControl.tsx @@ -7,7 +7,7 @@ import { nanoid } from "nanoid"; import { SdlBuilderFormValues, Service } from "@src/types"; import { cn } from "@src/utils/styleUtils"; import { CustomTooltip } from "../shared/CustomTooltip"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from "../ui/select"; import { FormPaper } from "./FormPaper"; diff --git a/apps/deploy-web/src/components/settings/CertificateDisplay.tsx b/apps/deploy-web/src/components/settings/CertificateDisplay.tsx index 410383a33..3ae30fae9 100644 --- a/apps/deploy-web/src/components/settings/CertificateDisplay.tsx +++ b/apps/deploy-web/src/components/settings/CertificateDisplay.tsx @@ -7,7 +7,7 @@ import { FormPaper } from "@src/components/sdl/FormPaper"; import { CustomDropdownLinkItem } from "@src/components/shared/CustomDropdownLinkItem"; import { CustomTooltip } from "@src/components/shared/CustomTooltip"; import Spinner from "@src/components/shared/Spinner"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "@src/components/ui/dropdown-menu"; import { useWallet } from "@src/context/WalletProvider"; import { useCertificate } from "../../context/CertificateProvider"; diff --git a/apps/deploy-web/src/components/settings/CertificateList.tsx b/apps/deploy-web/src/components/settings/CertificateList.tsx index b1ad01202..53c15053d 100644 --- a/apps/deploy-web/src/components/settings/CertificateList.tsx +++ b/apps/deploy-web/src/components/settings/CertificateList.tsx @@ -3,7 +3,7 @@ import { FormattedDate } from "react-intl"; import { Check } from "iconoir-react"; import { ConnectWallet } from "@src/components/shared/ConnectWallet"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@src/components/ui/table"; import { useCertificate } from "@src/context/CertificateProvider"; import { useWallet } from "@src/context/WalletProvider"; diff --git a/apps/deploy-web/src/components/settings/LocalDataManager/LocalDataManager.component.tsx b/apps/deploy-web/src/components/settings/LocalDataManager/LocalDataManager.component.tsx index 565e9c09f..0ff921bcc 100644 --- a/apps/deploy-web/src/components/settings/LocalDataManager/LocalDataManager.component.tsx +++ b/apps/deploy-web/src/components/settings/LocalDataManager/LocalDataManager.component.tsx @@ -1,7 +1,7 @@ import React, { FC, useCallback, useRef } from "react"; import { Download, Upload } from "iconoir-react"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { usePopup } from "@src/context/PopupProvider/PopupProvider"; export type LocalData = Record; diff --git a/apps/deploy-web/src/components/settings/SelectNetworkModal.tsx b/apps/deploy-web/src/components/settings/SelectNetworkModal.tsx index a250e2fa1..010ad99fd 100644 --- a/apps/deploy-web/src/components/settings/SelectNetworkModal.tsx +++ b/apps/deploy-web/src/components/settings/SelectNetworkModal.tsx @@ -4,7 +4,7 @@ import { useState } from "react"; import { Popup } from "@src/components/shared/Popup"; import { Alert, AlertDescription, AlertTitle } from "@src/components/ui/alert"; import { Badge } from "@src/components/ui/badge"; -import { buttonVariants } from "@src/components/ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { RadioGroup, RadioGroupItem } from "@src/components/ui/radio-group"; import { useSettings } from "@src/context/SettingsProvider"; import { networks } from "@src/store/networkStore"; diff --git a/apps/deploy-web/src/components/settings/SettingsContainer.tsx b/apps/deploy-web/src/components/settings/SettingsContainer.tsx index 89215a158..c2502c9e9 100644 --- a/apps/deploy-web/src/components/settings/SettingsContainer.tsx +++ b/apps/deploy-web/src/components/settings/SettingsContainer.tsx @@ -6,7 +6,7 @@ import { NextSeo } from "next-seo"; import { LocalDataManager } from "@src/components/settings/LocalDataManager"; import { Fieldset } from "@src/components/shared/Fieldset"; import { LabelValue } from "@src/components/shared/LabelValue"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { useSelectedNetwork } from "@src/hooks/useSelectedNetwork"; import Layout from "../layout/Layout"; import { CertificateList } from "./CertificateList"; diff --git a/apps/deploy-web/src/components/settings/SettingsForm.tsx b/apps/deploy-web/src/components/settings/SettingsForm.tsx index 0c96d71c4..cac356a7e 100644 --- a/apps/deploy-web/src/components/settings/SettingsForm.tsx +++ b/apps/deploy-web/src/components/settings/SettingsForm.tsx @@ -11,7 +11,7 @@ import { NavArrowDown, Refresh } from "iconoir-react"; import { NodeStatus } from "@src/components/shared/NodeStatus"; import Spinner from "@src/components/shared/Spinner"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Label } from "@src/components/ui/label"; import { SwitchWithLabel } from "@src/components/ui/switch"; import { BlockchainNode, useSettings } from "@src/context/SettingsProvider/SettingsProviderContext"; diff --git a/apps/deploy-web/src/components/shared/CodeSnippet.tsx b/apps/deploy-web/src/components/shared/CodeSnippet.tsx index b00dc51b5..efa89f9c2 100644 --- a/apps/deploy-web/src/components/shared/CodeSnippet.tsx +++ b/apps/deploy-web/src/components/shared/CodeSnippet.tsx @@ -5,7 +5,7 @@ import { useSnackbar } from "notistack"; import { copyTextToClipboard } from "@src/utils/copyClipboard"; import { selectText } from "@src/utils/stringUtils"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Snackbar } from "./Snackbar"; export const CodeSnippet = ({ code }: React.PropsWithChildren<{ code: string }>) => { diff --git a/apps/deploy-web/src/components/shared/ErrorFallback.tsx b/apps/deploy-web/src/components/shared/ErrorFallback.tsx index 46cc265cb..a21e44539 100644 --- a/apps/deploy-web/src/components/shared/ErrorFallback.tsx +++ b/apps/deploy-web/src/components/shared/ErrorFallback.tsx @@ -3,7 +3,7 @@ import { ReactNode } from "react"; import { FallbackProps } from "react-error-boundary"; import { Alert, AlertTitle } from "../ui/alert"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; interface Props extends FallbackProps { children?: ReactNode; diff --git a/apps/deploy-web/src/components/shared/FavoriteButton.tsx b/apps/deploy-web/src/components/shared/FavoriteButton.tsx index 3c67468e3..8c00c6cb2 100644 --- a/apps/deploy-web/src/components/shared/FavoriteButton.tsx +++ b/apps/deploy-web/src/components/shared/FavoriteButton.tsx @@ -1,7 +1,7 @@ "use client"; import { Star, StarSolid } from "iconoir-react"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; export const FavoriteButton = ({ onClick, isFavorite }) => { return ( diff --git a/apps/deploy-web/src/components/shared/Popup.tsx b/apps/deploy-web/src/components/shared/Popup.tsx index 0e3251f5c..68e954653 100644 --- a/apps/deploy-web/src/components/shared/Popup.tsx +++ b/apps/deploy-web/src/components/shared/Popup.tsx @@ -3,7 +3,7 @@ import { ErrorBoundary } from "react-error-boundary"; import { DialogProps } from "@radix-ui/react-dialog"; import { cn } from "@src/utils/styleUtils"; -import { Button, ButtonProps } from "../ui/button"; +import { Button, ButtonProps } from "@akashnetwork/ui/components"; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle as _DialogTitle } from "../ui/dialog"; import { InputWithIcon } from "../ui/input"; import { ScrollArea, ScrollBar } from "../ui/scroll-area"; diff --git a/apps/deploy-web/src/components/shared/UserFavoriteButton.tsx b/apps/deploy-web/src/components/shared/UserFavoriteButton.tsx index 05661822d..11acddda5 100644 --- a/apps/deploy-web/src/components/shared/UserFavoriteButton.tsx +++ b/apps/deploy-web/src/components/shared/UserFavoriteButton.tsx @@ -6,7 +6,7 @@ import { useSnackbar } from "notistack"; import { useCustomUser } from "@src/hooks/useCustomUser"; import { useAddFavoriteTemplate, useRemoveFavoriteTemplate } from "@src/queries/useTemplateQuery"; import { cn } from "@src/utils/styleUtils"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { MustConnectModal } from "./MustConnectModal"; import { Snackbar } from "./Snackbar"; import Spinner from "./Spinner"; diff --git a/apps/deploy-web/src/components/table/data-table-column-header.tsx b/apps/deploy-web/src/components/table/data-table-column-header.tsx index 845e1f197..d550f0db7 100644 --- a/apps/deploy-web/src/components/table/data-table-column-header.tsx +++ b/apps/deploy-web/src/components/table/data-table-column-header.tsx @@ -1,8 +1,7 @@ import { ArrowDownIcon, ArrowUpIcon, CaretSortIcon, EyeNoneIcon } from "@radix-ui/react-icons"; import { Column } from "@tanstack/react-table"; - import { cn } from "@src/utils/styleUtils"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from "../ui/dropdown-menu"; interface DataTableColumnHeaderProps extends React.HTMLAttributes { diff --git a/apps/deploy-web/src/components/table/data-table-faceted-filter.tsx b/apps/deploy-web/src/components/table/data-table-faceted-filter.tsx index 6fbdbcaaf..7aac3ca84 100644 --- a/apps/deploy-web/src/components/table/data-table-faceted-filter.tsx +++ b/apps/deploy-web/src/components/table/data-table-faceted-filter.tsx @@ -4,7 +4,7 @@ import { Column } from "@tanstack/react-table"; import { cn } from "@src/utils/styleUtils"; import { Badge } from "../ui/badge"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "../ui/command"; import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover"; import { Separator } from "../ui/separator"; diff --git a/apps/deploy-web/src/components/table/data-table-pagination.tsx b/apps/deploy-web/src/components/table/data-table-pagination.tsx index c35be407b..c58567b78 100644 --- a/apps/deploy-web/src/components/table/data-table-pagination.tsx +++ b/apps/deploy-web/src/components/table/data-table-pagination.tsx @@ -1,7 +1,7 @@ import { ChevronLeftIcon, ChevronRightIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon } from "@radix-ui/react-icons"; import { Table } from "@tanstack/react-table"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../ui/select"; interface DataTablePaginationProps { diff --git a/apps/deploy-web/src/components/table/data-table-row-actions.tsx b/apps/deploy-web/src/components/table/data-table-row-actions.tsx index 680b518aa..e00fc2ea7 100644 --- a/apps/deploy-web/src/components/table/data-table-row-actions.tsx +++ b/apps/deploy-web/src/components/table/data-table-row-actions.tsx @@ -2,7 +2,7 @@ import { DotsHorizontalIcon } from "@radix-ui/react-icons"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger } from "../ui/dropdown-menu"; export function DataTableRowActions() { diff --git a/apps/deploy-web/src/components/table/data-table-toolbar.tsx b/apps/deploy-web/src/components/table/data-table-toolbar.tsx index e2fb8c61d..f07f46c69 100644 --- a/apps/deploy-web/src/components/table/data-table-toolbar.tsx +++ b/apps/deploy-web/src/components/table/data-table-toolbar.tsx @@ -3,7 +3,7 @@ import { Cross2Icon } from "@radix-ui/react-icons"; import { Table } from "@tanstack/react-table"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DataTableViewOptions } from "./data-table-view-options"; interface DataTableToolbarProps { diff --git a/apps/deploy-web/src/components/table/data-table-view-options.tsx b/apps/deploy-web/src/components/table/data-table-view-options.tsx index ed16d0a8e..44f4f02ab 100644 --- a/apps/deploy-web/src/components/table/data-table-view-options.tsx +++ b/apps/deploy-web/src/components/table/data-table-view-options.tsx @@ -3,7 +3,7 @@ import { MixerHorizontalIcon } from "@radix-ui/react-icons"; import { Table } from "@tanstack/react-table"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuCheckboxItem, diff --git a/apps/deploy-web/src/components/templates/MobileTemplatesFilter.tsx b/apps/deploy-web/src/components/templates/MobileTemplatesFilter.tsx index b56abb0a8..51656f2d3 100644 --- a/apps/deploy-web/src/components/templates/MobileTemplatesFilter.tsx +++ b/apps/deploy-web/src/components/templates/MobileTemplatesFilter.tsx @@ -3,7 +3,7 @@ import React, { ReactNode } from "react"; import Drawer from "@mui/material/Drawer"; import { Xmark } from "iconoir-react"; -import { Button, buttonVariants } from "@src/components/ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { ApiTemplate } from "@src/types"; import { cn } from "@src/utils/styleUtils"; diff --git a/apps/deploy-web/src/components/templates/TemplateDetail.tsx b/apps/deploy-web/src/components/templates/TemplateDetail.tsx index e19a2b3d8..d9d9f3f84 100644 --- a/apps/deploy-web/src/components/templates/TemplateDetail.tsx +++ b/apps/deploy-web/src/components/templates/TemplateDetail.tsx @@ -9,7 +9,7 @@ import { DynamicMonacoEditor } from "@src/components/shared/DynamicMonacoEditor" import { LinearLoadingSkeleton } from "@src/components/shared/LinearLoadingSkeleton"; import Markdown from "@src/components/shared/Markdown"; import ViewPanel from "@src/components/shared/ViewPanel"; -import { Button, buttonVariants } from "@src/components/ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { Tabs, TabsList, TabsTrigger } from "@src/components/ui/tabs"; import { useTemplates } from "@src/context/TemplatesProvider"; import { usePreviousRoute } from "@src/hooks/usePreviousRoute"; diff --git a/apps/deploy-web/src/components/templates/TemplateGallery.tsx b/apps/deploy-web/src/components/templates/TemplateGallery.tsx index 5c0bdc4a6..1316c00bd 100644 --- a/apps/deploy-web/src/components/templates/TemplateGallery.tsx +++ b/apps/deploy-web/src/components/templates/TemplateGallery.tsx @@ -8,7 +8,7 @@ import { useRouter, useSearchParams } from "next/navigation"; import { LinkTo } from "@src/components/shared/LinkTo"; import Spinner from "@src/components/shared/Spinner"; -import { Button, buttonVariants } from "@src/components/ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { ApiTemplate } from "@src/types"; import { cn } from "@src/utils/styleUtils"; import { domainName, UrlService } from "@src/utils/urlUtils"; diff --git a/apps/deploy-web/src/components/templates/UserTemplate.tsx b/apps/deploy-web/src/components/templates/UserTemplate.tsx index c9e6af601..92f961088 100644 --- a/apps/deploy-web/src/components/templates/UserTemplate.tsx +++ b/apps/deploy-web/src/components/templates/UserTemplate.tsx @@ -11,7 +11,7 @@ import { LeaseSpecDetail } from "@src/components/shared/LeaseSpecDetail"; import { Popup } from "@src/components/shared/Popup"; import { Title } from "@src/components/shared/Title"; import { UserFavoriteButton } from "@src/components/shared/UserFavoriteButton"; -import { Button, buttonVariants } from "@src/components/ui/button"; +import { Button, buttonVariants } from "@akashnetwork/ui/components"; import { Card, CardContent } from "@src/components/ui/card"; import { useCustomUser } from "@src/hooks/useCustomUser"; import { getShortText } from "@src/hooks/useShortText"; diff --git a/apps/deploy-web/src/components/ui/pagination.tsx b/apps/deploy-web/src/components/ui/pagination.tsx index 673a695f6..913be92d2 100644 --- a/apps/deploy-web/src/components/ui/pagination.tsx +++ b/apps/deploy-web/src/components/ui/pagination.tsx @@ -1,7 +1,7 @@ import * as React from "react"; import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react"; -import { ButtonProps, buttonVariants } from "@src/components/ui/button"; +import { ButtonProps, buttonVariants } from "@akashnetwork/ui/components"; import { cn } from "@src/utils/styleUtils"; const Pagination = ({ className, ...props }: React.ComponentProps<"nav">) => ( diff --git a/apps/deploy-web/src/components/user/AddressBookTable.tsx b/apps/deploy-web/src/components/user/AddressBookTable.tsx index 4c1b136c8..7597038d2 100644 --- a/apps/deploy-web/src/components/user/AddressBookTable.tsx +++ b/apps/deploy-web/src/components/user/AddressBookTable.tsx @@ -4,7 +4,7 @@ import { event } from "nextjs-google-analytics"; import { AddressLink } from "@src/components/shared/AddressLink"; import Spinner from "@src/components/shared/Spinner"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Card, CardContent } from "@src/components/ui/card"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@src/components/ui/table"; import { UserProfileLayout } from "@src/components/user/UserProfileLayout"; diff --git a/apps/deploy-web/src/components/user/UserProfile.tsx b/apps/deploy-web/src/components/user/UserProfile.tsx index f87a4dcc4..0dee5201a 100644 --- a/apps/deploy-web/src/components/user/UserProfile.tsx +++ b/apps/deploy-web/src/components/user/UserProfile.tsx @@ -4,7 +4,7 @@ import { event } from "nextjs-google-analytics"; import Spinner from "@src/components/shared/Spinner"; import { TemplateGridButton } from "@src/components/shared/TemplateGridButton"; -import { buttonVariants } from "@src/components/ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { UserProfileLayout } from "@src/components/user/UserProfileLayout"; import { useCustomUser } from "@src/hooks/useCustomUser"; import { useUserTemplates } from "@src/queries/useTemplateQuery"; diff --git a/apps/deploy-web/src/components/user/UserSettingsForm.tsx b/apps/deploy-web/src/components/user/UserSettingsForm.tsx index c954ccf0a..d4d0a4dcc 100644 --- a/apps/deploy-web/src/components/user/UserSettingsForm.tsx +++ b/apps/deploy-web/src/components/user/UserSettingsForm.tsx @@ -10,7 +10,7 @@ import { FormPaper } from "@src/components/sdl/FormPaper"; import { LabelValue } from "@src/components/shared/LabelValue"; import Spinner from "@src/components/shared/Spinner"; import { Alert } from "@src/components/ui/alert"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Input, InputWithIcon, Textarea } from "@src/components/ui/input"; import { Switch } from "@src/components/ui/switch"; import { UserProfileLayout } from "@src/components/user/UserProfileLayout"; diff --git a/apps/deploy-web/src/components/wallet/ConnectWalletButton.tsx b/apps/deploy-web/src/components/wallet/ConnectWalletButton.tsx index 6f15d3b8a..dd1c5bd51 100644 --- a/apps/deploy-web/src/components/wallet/ConnectWalletButton.tsx +++ b/apps/deploy-web/src/components/wallet/ConnectWalletButton.tsx @@ -4,7 +4,7 @@ import { Wallet } from "iconoir-react"; import { useSelectedChain } from "@src/context/CustomChainProvider"; import { cn } from "@src/utils/styleUtils"; -import { Button, ButtonProps } from "../ui/button"; +import { Button, ButtonProps } from "@akashnetwork/ui/components"; interface Props extends ButtonProps { children?: ReactNode; diff --git a/apps/deploy-web/src/context/BackgroundTaskProvider/BackgroundTaskProvider.tsx b/apps/deploy-web/src/context/BackgroundTaskProvider/BackgroundTaskProvider.tsx index 75b4995f5..6e0a697e5 100644 --- a/apps/deploy-web/src/context/BackgroundTaskProvider/BackgroundTaskProvider.tsx +++ b/apps/deploy-web/src/context/BackgroundTaskProvider/BackgroundTaskProvider.tsx @@ -4,7 +4,7 @@ import FileSaver from "file-saver"; import { useSnackbar } from "notistack"; import { Snackbar } from "@src/components/shared/Snackbar"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { PROVIDER_PROXY_URL_WS } from "@src/utils/constants"; import { useCertificate } from "../CertificateProvider"; diff --git a/apps/deploy-web/src/context/CustomSnackbarProvider/CustomSnackbarProvider.tsx b/apps/deploy-web/src/context/CustomSnackbarProvider/CustomSnackbarProvider.tsx index 3c3e1bf1a..2ec07cfa9 100644 --- a/apps/deploy-web/src/context/CustomSnackbarProvider/CustomSnackbarProvider.tsx +++ b/apps/deploy-web/src/context/CustomSnackbarProvider/CustomSnackbarProvider.tsx @@ -4,7 +4,7 @@ import { styled } from "@mui/material/styles"; import { Xmark } from "iconoir-react"; import { MaterialDesignContent, SnackbarKey, SnackbarProvider } from "notistack"; -import { Button } from "@src/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import useTailwind from "@src/hooks/useTailwind"; const StyledMaterialDesignContent = styled(MaterialDesignContent)(() => { diff --git a/apps/deploy-web/src/pages/404.tsx b/apps/deploy-web/src/pages/404.tsx index 700b6d25c..c52439c8b 100644 --- a/apps/deploy-web/src/pages/404.tsx +++ b/apps/deploy-web/src/pages/404.tsx @@ -4,7 +4,7 @@ import Link from "next/link"; import { NextSeo } from "next-seo"; import { Title } from "@src/components/shared/Title"; -import { buttonVariants } from "@src/components/ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { cn } from "@src/utils/styleUtils"; import { UrlService } from "@src/utils/urlUtils"; import Layout from "../components/layout/Layout"; diff --git a/apps/deploy-web/src/pages/500.tsx b/apps/deploy-web/src/pages/500.tsx index c0f82b206..7e75324c4 100644 --- a/apps/deploy-web/src/pages/500.tsx +++ b/apps/deploy-web/src/pages/500.tsx @@ -5,7 +5,7 @@ import { NextSeo } from "next-seo"; import Layout from "@src/components/layout/Layout"; import { Title } from "@src/components/shared/Title"; -import { buttonVariants } from "@src/components/ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { cn } from "@src/utils/styleUtils"; import { UrlService } from "@src/utils/urlUtils"; diff --git a/apps/deploy-web/src/pages/_app.tsx b/apps/deploy-web/src/pages/_app.tsx index 28cf49cd1..be57dbd93 100644 --- a/apps/deploy-web/src/pages/_app.tsx +++ b/apps/deploy-web/src/pages/_app.tsx @@ -30,7 +30,7 @@ import { queryClient } from "@src/queries"; import { cn } from "@src/utils/styleUtils"; import "nprogress/nprogress.css"; //styles of nprogress -import "../styles/globals.css"; +import "@akashnetwork/ui/styles"; import "../styles/index.css"; import "@leapwallet/elements/styles.css"; diff --git a/apps/deploy-web/src/pages/_error.tsx b/apps/deploy-web/src/pages/_error.tsx index 0db2374e4..8a1c5bf84 100644 --- a/apps/deploy-web/src/pages/_error.tsx +++ b/apps/deploy-web/src/pages/_error.tsx @@ -5,7 +5,7 @@ import Link from "next/link"; import { NextSeo } from "next-seo"; import { Title } from "@src/components/shared/Title"; -import { buttonVariants } from "@src/components/ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { cn } from "@src/utils/styleUtils"; import { UrlService } from "@src/utils/urlUtils"; import Layout from "../components/layout/Layout"; diff --git a/apps/deploy-web/src/styles/index.css b/apps/deploy-web/src/styles/index.css index 7fe9b1d2c..97e20b698 100644 --- a/apps/deploy-web/src/styles/index.css +++ b/apps/deploy-web/src/styles/index.css @@ -1,3 +1,18 @@ + + +html { + scroll-padding-top: 57px; + -webkit-font-smoothing: auto; + height: 100%; + width: 100%; +} + +body { + height: calc(100% - 57px) !important; + width: 100%; + padding: 0 !important; +} + .text-truncate { overflow: hidden; text-overflow: ellipsis; diff --git a/apps/deploy-web/tailwind.config.ts b/apps/deploy-web/tailwind.config.ts index 8926cd4e4..19b809f94 100644 --- a/apps/deploy-web/tailwind.config.ts +++ b/apps/deploy-web/tailwind.config.ts @@ -1,90 +1 @@ -import type { Config } from "tailwindcss"; - -const config: Config = { - darkMode: "selector", - content: ["./pages/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}", "./src/**/*.{ts,tsx}"], - // important: "#root", - // corePlugins: { - // // Using MUI - // preflight: false - // }, - theme: { - container: { - center: true, - padding: "1rem", - screens: { - "2xl": "1400px" - } - }, - extend: { - fontFamily: { - sans: ["var(--font-geist-sans)"], - mono: ["var(--font-geist-mono)"] - }, - colors: { - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - header: "hsl(var(--header))", - foreground: "hsl(var(--foreground))", - primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", - visited: "hsl(var(--primary-visited))" - }, - secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))" - }, - warning: { - DEFAULT: "hsl(var(--warning))", - foreground: "hsl(var(--warning-foreground))" - }, - destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))" - }, - muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))" - }, - accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))" - }, - popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))" - }, - card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))" - } - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)" - }, - keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" } - }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" } - } - }, - animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out" - } - } - }, - // eslint-disable-next-line @typescript-eslint/no-var-requires - plugins: [require("tailwindcss-animate"), require("tailwind-scrollbar")({ nocompatible: true }), require("@tailwindcss/typography")] -}; - -export default config; +export default require("@akashnetwork/ui/tailwind")("deploy-web"); diff --git a/apps/deploy-web/tsconfig.json b/apps/deploy-web/tsconfig.json index f69898b63..ba00da976 100644 --- a/apps/deploy-web/tsconfig.json +++ b/apps/deploy-web/tsconfig.json @@ -8,5 +8,6 @@ "**/*.ts", "**/*.tsx", ".next/types/**/*.ts" - ] + ], + "compileOnSave": false } diff --git a/apps/indexer/package.json b/apps/indexer/package.json index e4862c858..bf2ba9157 100644 --- a/apps/indexer/package.json +++ b/apps/indexer/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@akashnetwork/akash-api": "^1.3.0", - "@akashnetwork/cloudmos-shared": "*", + "@akashnetwork/database": "*", "@cosmjs/crypto": "^0.31.1", "@cosmjs/encoding": "^0.32.3", "@cosmjs/math": "^0.31.1", diff --git a/apps/indexer/src/chain/chainSync.ts b/apps/indexer/src/chain/chainSync.ts index 0803aa9f4..34be463d2 100644 --- a/apps/indexer/src/chain/chainSync.ts +++ b/apps/indexer/src/chain/chainSync.ts @@ -1,6 +1,6 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { Block, Message } from "@akashnetwork/cloudmos-shared/dbSchemas"; -import { Day, Transaction } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { Block, Message } from "@akashnetwork/database/dbSchemas"; +import { Day, Transaction } from "@akashnetwork/database/dbSchemas/base"; import { fromBase64 } from "@cosmjs/encoding"; import { decodeTxRaw } from "@cosmjs/proto-signing"; import { asyncify, eachLimit } from "async"; diff --git a/apps/indexer/src/chain/genesisImporter.ts b/apps/indexer/src/chain/genesisImporter.ts index f3ea43141..5317595bc 100644 --- a/apps/indexer/src/chain/genesisImporter.ts +++ b/apps/indexer/src/chain/genesisImporter.ts @@ -1,4 +1,4 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; import fs from "fs"; import { ungzip } from "node-gzip"; import path from "path"; diff --git a/apps/indexer/src/chain/nodeAccessor.ts b/apps/indexer/src/chain/nodeAccessor.ts index 2e78a8843..b56fc0fab 100644 --- a/apps/indexer/src/chain/nodeAccessor.ts +++ b/apps/indexer/src/chain/nodeAccessor.ts @@ -1,4 +1,4 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; import fs from "fs"; import { concurrentNodeQuery, dataFolderPath } from "@src/shared/constants"; diff --git a/apps/indexer/src/chain/statsProcessor.ts b/apps/indexer/src/chain/statsProcessor.ts index a607abf6b..25f30b0c2 100644 --- a/apps/indexer/src/chain/statsProcessor.ts +++ b/apps/indexer/src/chain/statsProcessor.ts @@ -1,7 +1,7 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { Block, Message } from "@akashnetwork/cloudmos-shared/dbSchemas"; -import { AkashMessage } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { Transaction } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { Block, Message } from "@akashnetwork/database/dbSchemas"; +import { AkashMessage } from "@akashnetwork/database/dbSchemas/akash"; +import { Transaction } from "@akashnetwork/database/dbSchemas/base"; import { fromBase64 } from "@cosmjs/encoding"; import { decodeTxRaw } from "@cosmjs/proto-signing"; import { sha256 } from "js-sha256"; diff --git a/apps/indexer/src/db/buildDatabase.ts b/apps/indexer/src/db/buildDatabase.ts index bd6ebf73e..fc252d7f9 100644 --- a/apps/indexer/src/db/buildDatabase.ts +++ b/apps/indexer/src/db/buildDatabase.ts @@ -1,7 +1,7 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { Block, Message } from "@akashnetwork/cloudmos-shared/dbSchemas"; -import { Day, Transaction } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; -import { MonitoredValue } from "@akashnetwork/cloudmos-shared/dbSchemas/base/monitoredValue"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { Block, Message } from "@akashnetwork/database/dbSchemas"; +import { Day, Transaction } from "@akashnetwork/database/dbSchemas/base"; +import { MonitoredValue } from "@akashnetwork/database/dbSchemas/base/monitoredValue"; import { getGenesis } from "@src/chain/genesisImporter"; import { indexers } from "@src/indexers"; diff --git a/apps/indexer/src/db/dbConnection.ts b/apps/indexer/src/db/dbConnection.ts index 3031cca6e..72ea17e08 100644 --- a/apps/indexer/src/db/dbConnection.ts +++ b/apps/indexer/src/db/dbConnection.ts @@ -1,5 +1,5 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { chainModels } from "@akashnetwork/cloudmos-shared/dbSchemas"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { chainModels } from "@akashnetwork/database/dbSchemas"; import pg from "pg"; import { Transaction as DbTransaction } from "sequelize"; import { Sequelize } from "sequelize-typescript"; diff --git a/apps/indexer/src/db/keybaseProvider.ts b/apps/indexer/src/db/keybaseProvider.ts index c1f36190d..4d74e7963 100644 --- a/apps/indexer/src/db/keybaseProvider.ts +++ b/apps/indexer/src/db/keybaseProvider.ts @@ -1,4 +1,4 @@ -import { Validator } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { Validator } from "@akashnetwork/database/dbSchemas/base"; import fetch from "node-fetch"; import { Op } from "sequelize"; diff --git a/apps/indexer/src/db/priceHistoryProvider.ts b/apps/indexer/src/db/priceHistoryProvider.ts index 71c15d7af..8ae5422e7 100644 --- a/apps/indexer/src/db/priceHistoryProvider.ts +++ b/apps/indexer/src/db/priceHistoryProvider.ts @@ -1,5 +1,5 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { Day } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { Day } from "@akashnetwork/database/dbSchemas/base"; import { isSameDay } from "date-fns"; import fetch from "node-fetch"; diff --git a/apps/indexer/src/index.ts b/apps/indexer/src/index.ts index 02eccd43a..878e10f29 100644 --- a/apps/indexer/src/index.ts +++ b/apps/indexer/src/index.ts @@ -1,4 +1,4 @@ -import { activeChain, chainDefinitions } from "@akashnetwork/cloudmos-shared/chainDefinitions"; +import { activeChain, chainDefinitions } from "@akashnetwork/database/chainDefinitions"; import * as Sentry from "@sentry/node"; import express from "express"; diff --git a/apps/indexer/src/indexers/akashStatsIndexer.ts b/apps/indexer/src/indexers/akashStatsIndexer.ts index fcd80bf31..697f3f52c 100644 --- a/apps/indexer/src/indexers/akashStatsIndexer.ts +++ b/apps/indexer/src/indexers/akashStatsIndexer.ts @@ -15,8 +15,8 @@ import { ProviderSnapshotNode, ProviderSnapshotNodeCPU, ProviderSnapshotNodeGPU -} from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { AkashBlock as Block, AkashMessage as Message } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +} from "@akashnetwork/database/dbSchemas/akash"; +import { AkashBlock as Block, AkashMessage as Message } from "@akashnetwork/database/dbSchemas/akash"; import { Op, Transaction as DbTransaction } from "sequelize"; import * as uuid from "uuid"; diff --git a/apps/indexer/src/indexers/index.ts b/apps/indexer/src/indexers/index.ts index 22a2bf2dd..0b841b944 100644 --- a/apps/indexer/src/indexers/index.ts +++ b/apps/indexer/src/indexers/index.ts @@ -1,4 +1,4 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; import { AkashStatsIndexer } from "./akashStatsIndexer"; import { Indexer } from "./indexer"; diff --git a/apps/indexer/src/indexers/indexer.ts b/apps/indexer/src/indexers/indexer.ts index b9e4ee183..9219bc2b3 100644 --- a/apps/indexer/src/indexers/indexer.ts +++ b/apps/indexer/src/indexers/indexer.ts @@ -1,4 +1,4 @@ -import { Block, Message, Transaction } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { Block, Message, Transaction } from "@akashnetwork/database/dbSchemas/base"; import { DecodedTxRaw } from "@cosmjs/proto-signing"; import { Transaction as DbTransaction } from "sequelize"; diff --git a/apps/indexer/src/indexers/messageAddressesIndexer.ts b/apps/indexer/src/indexers/messageAddressesIndexer.ts index 51f3c4beb..01be8ab37 100644 --- a/apps/indexer/src/indexers/messageAddressesIndexer.ts +++ b/apps/indexer/src/indexers/messageAddressesIndexer.ts @@ -1,5 +1,5 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { AddressReference, Message, Transaction } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { AddressReference, Message, Transaction } from "@akashnetwork/database/dbSchemas/base"; import { toBech32 } from "@cosmjs/encoding"; import { DecodedTxRaw, decodePubkey } from "@cosmjs/proto-signing"; import { MsgMultiSend, MsgSend } from "cosmjs-types/cosmos/bank/v1beta1/tx"; diff --git a/apps/indexer/src/indexers/validatorIndexer.ts b/apps/indexer/src/indexers/validatorIndexer.ts index 79fe236df..6537169da 100644 --- a/apps/indexer/src/indexers/validatorIndexer.ts +++ b/apps/indexer/src/indexers/validatorIndexer.ts @@ -1,5 +1,5 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { Message, Validator } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { Message, Validator } from "@akashnetwork/database/dbSchemas/base"; import { fromBase64, fromBech32, toBech32, toHex } from "@cosmjs/encoding"; import { MsgCreateValidator, MsgEditValidator } from "cosmjs-types/cosmos/staking/v1beta1/tx"; import { Transaction as DbTransaction } from "sequelize"; diff --git a/apps/indexer/src/monitors/addressBalanceMonitor.ts b/apps/indexer/src/monitors/addressBalanceMonitor.ts index 864f1a406..0fad2b937 100644 --- a/apps/indexer/src/monitors/addressBalanceMonitor.ts +++ b/apps/indexer/src/monitors/addressBalanceMonitor.ts @@ -1,5 +1,5 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { MonitoredValue } from "@akashnetwork/cloudmos-shared/dbSchemas/base/monitoredValue"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { MonitoredValue } from "@akashnetwork/database/dbSchemas/base/monitoredValue"; import axios from "axios"; export class AddressBalanceMonitor { diff --git a/apps/indexer/src/monitors/deploymentBalanceMonitor.ts b/apps/indexer/src/monitors/deploymentBalanceMonitor.ts index 1177ab8dc..95bde473f 100644 --- a/apps/indexer/src/monitors/deploymentBalanceMonitor.ts +++ b/apps/indexer/src/monitors/deploymentBalanceMonitor.ts @@ -1,5 +1,5 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; -import { MonitoredValue } from "@akashnetwork/cloudmos-shared/dbSchemas/base/monitoredValue"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; +import { MonitoredValue } from "@akashnetwork/database/dbSchemas/base/monitoredValue"; import * as Sentry from "@sentry/node"; import axios from "axios"; diff --git a/apps/indexer/src/providers/ipLocationProvider.ts b/apps/indexer/src/providers/ipLocationProvider.ts index a71332e52..f353f6777 100644 --- a/apps/indexer/src/providers/ipLocationProvider.ts +++ b/apps/indexer/src/providers/ipLocationProvider.ts @@ -1,4 +1,4 @@ -import { Provider } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +import { Provider } from "@akashnetwork/database/dbSchemas/akash"; import axios from "axios"; import dns from "dns/promises"; diff --git a/apps/indexer/src/providers/providerStatusProvider.ts b/apps/indexer/src/providers/providerStatusProvider.ts index 6ce680ba7..42cfb2219 100644 --- a/apps/indexer/src/providers/providerStatusProvider.ts +++ b/apps/indexer/src/providers/providerStatusProvider.ts @@ -4,7 +4,7 @@ import { ProviderSnapshotNode, ProviderSnapshotNodeCPU, ProviderSnapshotNodeGPU -} from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +} from "@akashnetwork/database/dbSchemas/akash"; import { asyncify, eachLimit } from "async"; import axios from "axios"; import { add, differenceInDays, differenceInHours, differenceInMinutes, isSameDay } from "date-fns"; diff --git a/apps/indexer/src/providers/statusEndpointHandlers/grpc.ts b/apps/indexer/src/providers/statusEndpointHandlers/grpc.ts index a40915f04..397862151 100644 --- a/apps/indexer/src/providers/statusEndpointHandlers/grpc.ts +++ b/apps/indexer/src/providers/statusEndpointHandlers/grpc.ts @@ -2,7 +2,7 @@ import { NodeResources } from "@akashnetwork/akash-api/akash/inventory/v1"; import { ResourcesMetric, Status } from "@akashnetwork/akash-api/akash/provider/v1"; import { ProviderRPCClient } from "@akashnetwork/akash-api/akash/provider/v1/grpc-js"; import { Empty } from "@akashnetwork/akash-api/google/protobuf"; -import { Provider } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +import { Provider } from "@akashnetwork/database/dbSchemas/akash"; import memoize from "lodash/memoize"; import { promisify } from "util"; diff --git a/apps/indexer/src/providers/statusEndpointHandlers/rest.ts b/apps/indexer/src/providers/statusEndpointHandlers/rest.ts index 097d5e13f..5832cba4a 100644 --- a/apps/indexer/src/providers/statusEndpointHandlers/rest.ts +++ b/apps/indexer/src/providers/statusEndpointHandlers/rest.ts @@ -1,4 +1,4 @@ -import { Provider } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +import { Provider } from "@akashnetwork/database/dbSchemas/akash"; import axios from "axios"; import https from "https"; diff --git a/apps/indexer/src/shared/constants.ts b/apps/indexer/src/shared/constants.ts index 40bcad1f0..15ffe62be 100644 --- a/apps/indexer/src/shared/constants.ts +++ b/apps/indexer/src/shared/constants.ts @@ -1,4 +1,4 @@ -import { activeChain } from "@akashnetwork/cloudmos-shared/chainDefinitions"; +import { activeChain } from "@akashnetwork/database/chainDefinitions"; import path from "path"; import { env } from "./utils/env"; diff --git a/apps/indexer/src/shared/utils/akashPaymentSettle.ts b/apps/indexer/src/shared/utils/akashPaymentSettle.ts index 2c64e0a8b..a1af7be58 100644 --- a/apps/indexer/src/shared/utils/akashPaymentSettle.ts +++ b/apps/indexer/src/shared/utils/akashPaymentSettle.ts @@ -1,4 +1,4 @@ -import { Deployment, Lease } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +import { Deployment, Lease } from "@akashnetwork/database/dbSchemas/akash"; // This copies the logic of the akash node diff --git a/apps/indexer/src/tasks/providerUptimeTracker.ts b/apps/indexer/src/tasks/providerUptimeTracker.ts index f7af3d627..5d677ba41 100644 --- a/apps/indexer/src/tasks/providerUptimeTracker.ts +++ b/apps/indexer/src/tasks/providerUptimeTracker.ts @@ -1,4 +1,4 @@ -import { Provider } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; +import { Provider } from "@akashnetwork/database/dbSchemas/akash"; import { secondsInDay } from "date-fns"; import { QueryTypes } from "sequelize"; diff --git a/apps/indexer/src/tasks/usdSpendingTracker.ts b/apps/indexer/src/tasks/usdSpendingTracker.ts index 28884760a..cffaa5e7b 100644 --- a/apps/indexer/src/tasks/usdSpendingTracker.ts +++ b/apps/indexer/src/tasks/usdSpendingTracker.ts @@ -1,5 +1,5 @@ -import { AkashBlock } from "@akashnetwork/cloudmos-shared/dbSchemas/akash"; -import { Day } from "@akashnetwork/cloudmos-shared/dbSchemas/base"; +import { AkashBlock } from "@akashnetwork/database/dbSchemas/akash"; +import { Day } from "@akashnetwork/database/dbSchemas/base"; import { Op } from "sequelize"; import { sequelize } from "@src/db/dbConnection"; diff --git a/apps/stats-web/next.config.js b/apps/stats-web/next.config.js index 30fcdc7f1..4539a3233 100644 --- a/apps/stats-web/next.config.js +++ b/apps/stats-web/next.config.js @@ -8,7 +8,8 @@ const nextConfig = { }, eslint: { ignoreDuringBuilds: true - } + }, + transpilePackages: ["geist", "@akashnetwork/ui"], }; module.exports = nextConfig; diff --git a/apps/stats-web/package-lock.json b/apps/stats-web/package-lock.json deleted file mode 100644 index d3f9c9c62..000000000 --- a/apps/stats-web/package-lock.json +++ /dev/null @@ -1,7930 +0,0 @@ -{ - "name": "stats-web", - "version": "0.19.5", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "stats-web", - "version": "0.19.5", - "dependencies": { - "@cosmjs/encoding": "^0.32.0", - "@json2csv/plainjs": "^7.0.4", - "@nivo/line": "^0.84.0", - "@radix-ui/react-avatar": "^1.0.4", - "@radix-ui/react-checkbox": "^1.0.4", - "@radix-ui/react-dialog": "^1.0.5", - "@radix-ui/react-dropdown-menu": "^2.0.6", - "@radix-ui/react-icons": "^1.3.0", - "@radix-ui/react-navigation-menu": "^1.1.4", - "@radix-ui/react-popover": "^1.0.7", - "@radix-ui/react-select": "^2.0.0", - "@radix-ui/react-separator": "^1.0.3", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-tabs": "^1.0.4", - "@radix-ui/react-toast": "^1.1.5", - "@radix-ui/react-toggle": "^1.0.3", - "@radix-ui/react-toggle-group": "^1.0.4", - "@radix-ui/react-tooltip": "^1.0.7", - "@tanstack/react-table": "^8.11.2", - "@textea/json-viewer": "^3.2.3", - "axios": "^1.6.1", - "class-variance-authority": "^0.7.0", - "clsx": "^2.0.0", - "cmdk": "^0.2.0", - "geist": "^1.3.0", - "iconoir-react": "^7.3.0", - "jotai": "^2.5.1", - "lucide-react": "^0.292.0", - "next": "^14.2.2", - "next-nprogress-bar": "^2.1.2", - "next-qrcode": "^2.5.1", - "next-themes": "^0.2.1", - "nextjs-google-analytics": "^2.3.3", - "react": "^18", - "react-dom": "^18", - "react-icons": "^5.0.1", - "react-intl": "^6.5.5", - "react-modern-drawer": "^1.2.2", - "react-query": "^3.39.3", - "tailwind-merge": "^2.0.0", - "tailwindcss-animate": "^1.0.7", - "usehooks-ts": "^2.9.1", - "vaul": "^0.8.0", - "zod": "^3.22.4" - }, - "devDependencies": { - "@types/json2csv": "^5.0.7", - "@types/node": "^20", - "@types/react": "^18", - "@types/react-dom": "^18", - "autoprefixer": "^10.4.16", - "eslint": "^8", - "eslint-config-next": "14.0.2", - "postcss": "^8.4.31", - "postcss-nesting": "^12.0.1", - "prettier": "^3.1.0", - "prettier-plugin-tailwindcss": "^0.5.7", - "tailwindcss": "^3.3.5", - "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==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", - "peer": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/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==", - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/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==", - "peer": true - }, - "node_modules/@babel/code-frame/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==", - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/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==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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==", - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "peer": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/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==", - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/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==", - "peer": true - }, - "node_modules/@babel/highlight/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==", - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/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==", - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/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==", - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", - "peer": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@cosmjs/encoding": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.32.0.tgz", - "integrity": "sha512-dlurY3BOnv/5JTz3ziGPxvJAsfaXHcOpYP+Fqwo2OHGoWxpQJgJub4QG5V530ZQHliX+6Wqp97lFEwstpISedg==", - "dependencies": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz", - "integrity": "sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^6.0.13" - } - }, - "node_modules/@emotion/babel-plugin": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "peer": true, - "dependencies": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", - "peer": true - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", - "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", - "peer": true, - "dependencies": { - "@emotion/memoize": "^0.8.1" - } - }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", - "peer": true - }, - "node_modules/@emotion/react": { - "version": "11.11.1", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.1.tgz", - "integrity": "sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.2", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "hoist-non-react-statics": "^3.3.1" - }, - "peerDependencies": { - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/serialize": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.2.tgz", - "integrity": "sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==", - "peer": true, - "dependencies": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", - "csstype": "^3.0.2" - } - }, - "node_modules/@emotion/sheet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", - "peer": true - }, - "node_modules/@emotion/styled": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", - "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/is-prop-valid": "^1.2.1", - "@emotion/serialize": "^1.1.2", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1" - }, - "peerDependencies": { - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", - "peer": true - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", - "peer": true, - "peerDependencies": { - "react": ">=16.8.0" - } - }, - "node_modules/@emotion/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", - "peer": true - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", - "peer": true - }, - "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.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", - "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/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", - "dependencies": { - "@floating-ui/utils": "^0.1.3" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", - "dependencies": { - "@floating-ui/core": "^1.4.2", - "@floating-ui/utils": "^0.1.3" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.4.tgz", - "integrity": "sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==", - "dependencies": { - "@floating-ui/dom": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" - }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz", - "integrity": "sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==", - "dependencies": { - "@formatjs/intl-localematcher": "0.5.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.3.tgz", - "integrity": "sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.0", - "@formatjs/icu-skeleton-parser": "1.7.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.7.0.tgz", - "integrity": "sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl": { - "version": "2.9.9", - "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.9.9.tgz", - "integrity": "sha512-JI3CNgL2Zdg5lv9ncT2sYKqbAj2RGrCbdzaCckIxMPxn4QuHuOVvYUGmBAXVusBmfG/0sxLmMrnwnBioz+QKdA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.3", - "@formatjs/intl-displaynames": "6.6.4", - "@formatjs/intl-listformat": "7.5.3", - "intl-messageformat": "10.5.8", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "typescript": "5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@formatjs/intl-displaynames": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.6.4.tgz", - "integrity": "sha512-ET8KQ+L9Q0K8x1SnJQa4DNssUcbATlMopWqYvGGR8yAvw5qwAQc1fv+DshCoZNIE9pbcue0IGC4kWNAkWqlFag==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.0", - "@formatjs/intl-localematcher": "0.5.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl-listformat": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.3.tgz", - "integrity": "sha512-l7EOr0Yh1m8KagytukB90yw81uyzrM7amKFrgxXqphz4KeSIL0KPa68lPsdtZ+JmQB73GaDQRwLOwUKFZ1VZPQ==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.0", - "@formatjs/intl-localematcher": "0.5.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz", - "integrity": "sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.13", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", - "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.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": "2.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", - "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", - "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==", - "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==", - "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==", - "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==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@json2csv/formatters": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@json2csv/formatters/-/formatters-7.0.4.tgz", - "integrity": "sha512-qdlLx0Pk/+BQnu6zreLgGrdLyUzLNVdsyCUU/+2aduHg4zemVo/e0iWjPk1sy/QZXXh+1RXBe+IiP9eDyj95qg==" - }, - "node_modules/@json2csv/plainjs": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@json2csv/plainjs/-/plainjs-7.0.4.tgz", - "integrity": "sha512-IHLyosebSdXMtVKusHHGqvp8mCpEkVk0Qvc0lAGcdAYdvO8lBvry8o665+CX78uPj/QZBhu+s0cOWyxanxlrQw==", - "dependencies": { - "@json2csv/formatters": "^7.0.4", - "@streamparser/json": "^0.0.17" - } - }, - "node_modules/@json2csv/plainjs/node_modules/@streamparser/json": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/@streamparser/json/-/json-0.0.17.tgz", - "integrity": "sha512-mW54K6CTVJVLwXRB6kSS1xGWPmtTuXAStWnlvtesmcySgtop+eFPWOywBFPpJO4UD173epYsPSP6HSW8kuqN8w==" - }, - "node_modules/@mui/base": { - "version": "5.0.0-beta.24", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.24.tgz", - "integrity": "sha512-bKt2pUADHGQtqWDZ8nvL2Lvg2GNJyd/ZUgZAJoYzRgmnxBL9j36MSlS3+exEdYkikcnvVafcBtD904RypFKb0w==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.23.2", - "@floating-ui/react-dom": "^2.0.4", - "@mui/types": "^7.2.9", - "@mui/utils": "^5.14.18", - "@popperjs/core": "^2.11.8", - "clsx": "^2.0.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/core-downloads-tracker": { - "version": "5.14.18", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.18.tgz", - "integrity": "sha512-yFpF35fEVDV81nVktu0BE9qn2dD/chs7PsQhlyaV3EnTeZi9RZBuvoEfRym1/jmhJ2tcfeWXiRuHG942mQXJJQ==", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - } - }, - "node_modules/@mui/material": { - "version": "5.14.18", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.14.18.tgz", - "integrity": "sha512-y3UiR/JqrkF5xZR0sIKj6y7xwuEiweh9peiN3Zfjy1gXWXhz5wjlaLdoxFfKIEBUFfeQALxr/Y8avlHH+B9lpQ==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/base": "5.0.0-beta.24", - "@mui/core-downloads-tracker": "^5.14.18", - "@mui/system": "^5.14.18", - "@mui/types": "^7.2.9", - "@mui/utils": "^5.14.18", - "@types/react-transition-group": "^4.4.8", - "clsx": "^2.0.0", - "csstype": "^3.1.2", - "prop-types": "^15.8.1", - "react-is": "^18.2.0", - "react-transition-group": "^4.4.5" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/material/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "peer": true - }, - "node_modules/@mui/private-theming": { - "version": "5.14.18", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.14.18.tgz", - "integrity": "sha512-WSgjqRlzfHU+2Rou3HlR2Gqfr4rZRsvFgataYO3qQ0/m6gShJN+lhVEvwEiJ9QYyVzMDvNpXZAcqp8Y2Vl+PAw==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/utils": "^5.14.18", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/styled-engine": { - "version": "5.14.18", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.14.18.tgz", - "integrity": "sha512-pW8bpmF9uCB5FV2IPk6mfbQCjPI5vGI09NOLhtGXPeph/4xIfC3JdIX0TILU0WcTs3aFQqo6s2+1SFgIB9rCXA==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.23.2", - "@emotion/cache": "^11.11.0", - "csstype": "^3.1.2", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } - } - }, - "node_modules/@mui/system": { - "version": "5.14.18", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.14.18.tgz", - "integrity": "sha512-hSQQdb3KF72X4EN2hMEiv8EYJZSflfdd1TRaGPoR7CIAG347OxCslpBUwWngYobaxgKvq6xTrlIl+diaactVww==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.23.2", - "@mui/private-theming": "^5.14.18", - "@mui/styled-engine": "^5.14.18", - "@mui/types": "^7.2.9", - "@mui/utils": "^5.14.18", - "clsx": "^2.0.0", - "csstype": "^3.1.2", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/types": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.9.tgz", - "integrity": "sha512-k1lN/PolaRZfNsRdAqXtcR71sTnv3z/VCCGPxU8HfdftDkzi335MdJ6scZxvofMAd/K/9EbzCZTFBmlNpQVdCg==", - "peer": true, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils": { - "version": "5.14.18", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.14.18.tgz", - "integrity": "sha512-HZDRsJtEZ7WMSnrHV9uwScGze4wM/Y+u6pDVo+grUjt5yXzn+wI8QX/JwTHh9YSw/WpnUL80mJJjgCnWj2VrzQ==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.23.2", - "@types/prop-types": "^15.7.10", - "prop-types": "^15.8.1", - "react-is": "^18.2.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "peer": true - }, - "node_modules/@next/env": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.2.tgz", - "integrity": "sha512-sk72qRfM1Q90XZWYRoJKu/UWlTgihrASiYw/scb15u+tyzcze3bOuJ/UV6TBOQEeUaxOkRqGeuGUdiiuxc5oqw==" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.2.tgz", - "integrity": "sha512-APrYFsXfAhnysycqxHcpg6Y4i7Ukp30GzVSZQRKT3OczbzkqGjt33vNhScmgoOXYBU1CfkwgtXmNxdiwv1jKmg==", - "dev": true, - "dependencies": { - "glob": "7.1.7" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.2.tgz", - "integrity": "sha512-3iPgMhzbalizGwHNFUcGnDhFPSgVBHQ8aqSTAMxB5BvJG0oYrDf1WOJZlbXBgunOEj/8KMVbejEur/FpvFsgFQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.2.tgz", - "integrity": "sha512-x7Afi/jt0ZBRUZHTi49yyej4o8znfIMHO4RvThuoc0P+uli8Jd99y5GKjxoYunPKsXL09xBXEM1+OQy2xEL0Ag==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.2.tgz", - "integrity": "sha512-zbfPtkk7L41ODMJwSp5VbmPozPmMMQrzAc0HAUomVeVIIwlDGs/UCqLJvLNDt4jpWgc21SjjyIn762lNGrMaUA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.2.tgz", - "integrity": "sha512-wPbS3pI/JU16rm3XdLvvTmlsmm1nd+sBa2ohXgBZcShX4TgOjD4R+RqHKlI1cjo/jDZKXt6OxmcU0Iys0OC/yg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.2.tgz", - "integrity": "sha512-NqWOHqqq8iC9tuHvZxjQ2tX+jWy2X9y8NX2mcB4sj2bIccuCxbIZrU/ThFPZZPauygajZuVQ6zediejQHwZHwQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.2.tgz", - "integrity": "sha512-lGepHhwb9sGhCcU7999+iK1ZZT+6rrIoVg40MP7DZski9GIZP80wORSbt5kJzh9v2x2ev2lxC6VgwMQT0PcgTA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.2.tgz", - "integrity": "sha512-TZSh/48SfcLEQ4rD25VVn2kdIgUWmMflRX3OiyPwGNXn3NiyPqhqei/BaqCYXViIQ+6QsG9R0C8LftMqy8JPMA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.2.tgz", - "integrity": "sha512-M0tBVNMEBJN2ZNQWlcekMn6pvLria7Sa2Fai5znm7CCJz4pP3lrvlSxhKdkCerk0D9E0bqx5yAo3o2Q7RrD4gA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.2.tgz", - "integrity": "sha512-a/20E/wtTJZ3Ykv3f/8F0l7TtgQa2LWHU2oNB9bsu0VjqGuGGHmm/q6waoUNQYTVPYrrlxxaHjJcDV6aiSTt/w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nivo/annotations": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/annotations/-/annotations-0.84.0.tgz", - "integrity": "sha512-g3n+WaZgRza7fZVQZrrxq1cLS+6vmjhWGmQqEynFmKM2f11F7gdkHLhGMYosayjZ0Sb/bMUXvBSkUbyKli7NVw==", - "dependencies": { - "@nivo/colors": "0.84.0", - "@nivo/core": "0.84.0", - "@react-spring/web": "9.4.5 || ^9.7.2", - "@types/prop-types": "^15.7.2", - "lodash": "^4.17.21", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/axes": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/axes/-/axes-0.84.0.tgz", - "integrity": "sha512-bC9Rx5ixGJiupTRXSnATIVRLPcx0HR8yXGBuO8GTy6K1DDnhaNWfhErnBLYbB9Sq13WQGrS2he6uvLVLd23CtA==", - "dependencies": { - "@nivo/core": "0.84.0", - "@nivo/scales": "0.84.0", - "@react-spring/web": "9.4.5 || ^9.7.2", - "@types/d3-format": "^1.4.1", - "@types/d3-time-format": "^2.3.1", - "@types/prop-types": "^15.7.2", - "d3-format": "^1.4.4", - "d3-time-format": "^3.0.0", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/colors": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/colors/-/colors-0.84.0.tgz", - "integrity": "sha512-wNG1uYyDP5Owc1Pdkz0zesdZCrPAywmSssNzQ2Aju7nVs7Ru7iHNBIvOAGgyXTe2gcrIO9VSasXWR+jEYyxN2Q==", - "dependencies": { - "@nivo/core": "0.84.0", - "@types/d3-color": "^2.0.0", - "@types/d3-scale": "^3.2.3", - "@types/d3-scale-chromatic": "^2.0.0", - "@types/prop-types": "^15.7.2", - "d3-color": "^3.1.0", - "d3-scale": "^3.2.3", - "d3-scale-chromatic": "^2.0.0", - "lodash": "^4.17.21", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/core": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/core/-/core-0.84.0.tgz", - "integrity": "sha512-HyQM4x4B7d4X9+xLPKkPxqIxhSDzbJUywGTDWHWx1daeX9VP8O+MqkTBsNsoB+tjxrbKrRJ0+ceS2w89JB+qrA==", - "dependencies": { - "@nivo/recompose": "0.84.0", - "@nivo/tooltip": "0.84.0", - "@react-spring/web": "9.4.5 || ^9.7.2", - "@types/d3-shape": "^2.0.0", - "d3-color": "^3.1.0", - "d3-format": "^1.4.4", - "d3-interpolate": "^3.0.1", - "d3-scale": "^3.2.3", - "d3-scale-chromatic": "^3.0.0", - "d3-shape": "^1.3.5", - "d3-time-format": "^3.0.0", - "lodash": "^4.17.21" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nivo/donate" - }, - "peerDependencies": { - "prop-types": ">= 15.5.10 < 16.0.0", - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/core/node_modules/d3-scale-chromatic": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz", - "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@nivo/legends": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/legends/-/legends-0.84.0.tgz", - "integrity": "sha512-o0s1cXoIH6Km9A2zoKB8Ey99Oc1w5nymz0j8s7hR2B0EHo5HgVbYjSs2sZD7NSwLt3QM57Nzxw9VzJ+sqfV30Q==", - "dependencies": { - "@nivo/colors": "0.84.0", - "@nivo/core": "0.84.0", - "@types/d3-scale": "^3.2.3", - "@types/prop-types": "^15.7.2", - "d3-scale": "^3.2.3", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/line": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/line/-/line-0.84.0.tgz", - "integrity": "sha512-QE0JwZ7oIwMnsDQeSr1Q6iyqD2UBVLtBMdfMsJLhnlI3V62VkY98/L3o8M7+7Wy/V2UiEMJ+14C2qhXd+XLgsA==", - "dependencies": { - "@nivo/annotations": "0.84.0", - "@nivo/axes": "0.84.0", - "@nivo/colors": "0.84.0", - "@nivo/core": "0.84.0", - "@nivo/legends": "0.84.0", - "@nivo/scales": "0.84.0", - "@nivo/tooltip": "0.84.0", - "@nivo/voronoi": "0.84.0", - "@react-spring/web": "9.4.5 || ^9.7.2", - "d3-shape": "^1.3.5", - "prop-types": "^15.7.2" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/recompose": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/recompose/-/recompose-0.84.0.tgz", - "integrity": "sha512-Odb+r0pEmGt4RV020jwvngF7PxBgxS1e1sy8bWlZKc5qkm6k3eVlZNuYU+zGbDxHMigImvrx5KfUv5iUqtQBZA==", - "dependencies": { - "@types/prop-types": "^15.7.2", - "@types/react-lifecycles-compat": "^3.0.1", - "prop-types": "^15.7.2", - "react-lifecycles-compat": "^3.0.4" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nivo/scales": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/scales/-/scales-0.84.0.tgz", - "integrity": "sha512-Cayo9jFMpoF7Ha7eqOAucHLUG6zZLGpxiAtyZ/vTUCkRZPHmd/YMvrm8E6OyQCTBVf+aRtOKk9tQnMv8E9fWiw==", - "dependencies": { - "@types/d3-scale": "^3.2.3", - "@types/d3-time": "^1.1.1", - "@types/d3-time-format": "^3.0.0", - "d3-scale": "^3.2.3", - "d3-time": "^1.0.11", - "d3-time-format": "^3.0.0", - "lodash": "^4.17.21" - } - }, - "node_modules/@nivo/scales/node_modules/@types/d3-time-format": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-3.0.4.tgz", - "integrity": "sha512-or9DiDnYI1h38J9hxKEsw513+KVuFbEVhl7qdxcaudoiqWWepapUen+2vAriFGexr6W5+P4l9+HJrB39GG+oRg==" - }, - "node_modules/@nivo/tooltip": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/tooltip/-/tooltip-0.84.0.tgz", - "integrity": "sha512-x/6Vk4RXKHkG9q5dk4uFYwEfbMoIvJd5ahhVQ6bskuLks5FZoS6bkKoNggjxwmHbIWOVITGUXuykOfC54EWSpw==", - "dependencies": { - "@nivo/core": "0.84.0", - "@react-spring/web": "9.4.5 || ^9.7.2" - } - }, - "node_modules/@nivo/voronoi": { - "version": "0.84.0", - "resolved": "https://registry.npmjs.org/@nivo/voronoi/-/voronoi-0.84.0.tgz", - "integrity": "sha512-CJTb0sQWYNbfjjrCEK3W0jt1v+hqAd4fDUNJxB3SNRHEEQtF+MCr2EG3p/CWyxIb3avjF4N53/03tQpnuDwBvQ==", - "dependencies": { - "@nivo/core": "0.84.0", - "@types/d3-delaunay": "^5.3.0", - "@types/d3-scale": "^3.2.3", - "d3-delaunay": "^5.3.0", - "d3-scale": "^3.2.3" - }, - "peerDependencies": { - "react": ">= 16.14.0 < 19.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "peer": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@radix-ui/number": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz", - "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", - "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", - "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-avatar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.0.4.tgz", - "integrity": "sha512-kVK2K7ZD3wwj3qhle0ElXhOjbezIgyl2hVvgwfIdexL3rN6zJmy5AqqIf+D31lxVppdzV8CjAfZ6PklkmInZLw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-checkbox": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.0.4.tgz", - "integrity": "sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-use-size": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", - "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", - "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", - "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", - "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", - "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-escape-keydown": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dropdown-menu": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz", - "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-menu": "2.0.6", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", - "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", - "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-icons": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", - "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", - "peerDependencies": { - "react": "^16.x || ^17.x || ^18.x" - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", - "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-menu": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz", - "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-callback-ref": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-navigation-menu": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.1.4.tgz", - "integrity": "sha512-Cc+seCS3PmWmjI51ufGG7zp1cAAIRqHVw7C9LOA2TZ+R4hG6rDvHcTqIsEEFLmZO3zNVH72jOOE7kKNy8W+RtA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popover": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.0.7.tgz", - "integrity": "sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", - "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-rect": "1.0.1", - "@radix-ui/react-use-size": "1.0.1", - "@radix-ui/rect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", - "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", - "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", - "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "1.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", - "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.0.0.tgz", - "integrity": "sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/number": "1.0.1", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.4", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-separator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", - "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.0.4.tgz", - "integrity": "sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toast": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.1.5.tgz", - "integrity": "sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.0.3.tgz", - "integrity": "sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toggle-group": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.0.4.tgz", - "integrity": "sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-toggle": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tooltip": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.7.tgz", - "integrity": "sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.5", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.3", - "@radix-ui/react-portal": "1.0.4", - "@radix-ui/react-presence": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", - "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", - "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", - "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/rect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", - "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", - "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/rect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", - "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@react-spring/animated": { - "version": "9.7.3", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.3.tgz", - "integrity": "sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==", - "dependencies": { - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@react-spring/core": { - "version": "9.7.3", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.3.tgz", - "integrity": "sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==", - "dependencies": { - "@react-spring/animated": "~9.7.3", - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/react-spring/donate" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@react-spring/shared": { - "version": "9.7.3", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.3.tgz", - "integrity": "sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==", - "dependencies": { - "@react-spring/types": "~9.7.3" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@react-spring/types": { - "version": "9.7.3", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.3.tgz", - "integrity": "sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw==" - }, - "node_modules/@react-spring/web": { - "version": "9.7.3", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.3.tgz", - "integrity": "sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==", - "dependencies": { - "@react-spring/animated": "~9.7.3", - "@react-spring/core": "~9.7.3", - "@react-spring/shared": "~9.7.3", - "@react-spring/types": "~9.7.3" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", - "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==", - "dev": true - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" - }, - "node_modules/@swc/helpers": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", - "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", - "dependencies": { - "@swc/counter": "^0.1.3", - "tslib": "^2.4.0" - } - }, - "node_modules/@tanstack/react-table": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.11.2.tgz", - "integrity": "sha512-ztLg2OpM3HZIWzkQYjQER1inZuhbt79fBwZxc9bPXzsvqY+7RYI3dCZLw3CynYd9s4YltdrTbmSyh4xQSHexDQ==", - "dependencies": { - "@tanstack/table-core": "8.11.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": ">=16", - "react-dom": ">=16" - } - }, - "node_modules/@tanstack/table-core": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-8.11.2.tgz", - "integrity": "sha512-rR0VEQOtr0ARLvaNLaSQnt2BVwOp0OavOUA0LcZ3N45tLYXc4sXruNv8kJ7R7+5W1CrzGha217tzjBG83CpoMQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@textea/json-viewer": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@textea/json-viewer/-/json-viewer-3.2.3.tgz", - "integrity": "sha512-9fG/JU/wSzib2Naxna+J1PktIKG+9TWOB5ycphKwSSUwrid/d6wAMQYGCCAKmYt0qQq+EQ1jDuFjx7qzfm+cmg==", - "dependencies": { - "clsx": "^2.0.0", - "copy-to-clipboard": "^3.3.3", - "zustand": "^4.4.1" - }, - "peerDependencies": { - "@emotion/react": "^11", - "@emotion/styled": "^11", - "@mui/material": "^5", - "react": "^17 || ^18", - "react-dom": "^17 || ^18" - } - }, - "node_modules/@types/d3-color": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-2.0.6.tgz", - "integrity": "sha512-tbaFGDmJWHqnenvk3QGSvD3RVwr631BjKRD7Sc7VLRgrdX5mk5hTyoeBL6rXZaeoXzmZwIl1D2HPogEdt1rHBg==" - }, - "node_modules/@types/d3-delaunay": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-5.3.4.tgz", - "integrity": "sha512-GEQuDXVKQvHulQ+ecKyCubOmVjXrifAj7VR26rWVAER/IbWemaT/Tmo84ESiTtoDghg5ILdMZH7pYXQEt/Vu9A==" - }, - "node_modules/@types/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-mLxrC1MSWupOSncXN/HOlWUAAIffAEBaI4+PKy2uMPsKe4FNZlk7qrbTjmzJXITQQqBHivaks4Td18azgqnotA==" - }, - "node_modules/@types/d3-path": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.4.tgz", - "integrity": "sha512-jjZVLBjEX4q6xneKMmv62UocaFJFOTQSb/1aTzs3m3ICTOFoVaqGBHpNLm/4dVi0/FTltfBKgmOK1ECj3/gGjA==" - }, - "node_modules/@types/d3-scale": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-3.3.5.tgz", - "integrity": "sha512-YOpKj0kIEusRf7ofeJcSZQsvKbnTwpe1DUF+P2qsotqG53kEsjm7EzzliqQxMkAWdkZcHrg5rRhB4JiDOQPX+A==", - "dependencies": { - "@types/d3-time": "^2" - } - }, - "node_modules/@types/d3-scale-chromatic": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-2.0.4.tgz", - "integrity": "sha512-OUgfg6wmoZVhs0/pV8HZhsMw7pYJnS6smfNK2S5ogMaPHfDUaTMu7JA5ssZrRupwf2vWI+haPAuUpsz+M1BOKA==" - }, - "node_modules/@types/d3-scale/node_modules/@types/d3-time": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-2.1.4.tgz", - "integrity": "sha512-BTfLsxTeo7yFxI/haOOf1ZwJ6xKgQLT9dCp+EcmQv87Gox6X+oKl4mLKfO6fnWm3P22+A6DknMNEZany8ql2Rw==" - }, - "node_modules/@types/d3-shape": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-2.1.7.tgz", - "integrity": "sha512-HedHlfGHdwzKqX9+PiQVXZrdmGlwo7naoefJP7kCNk4Y7qcpQt1tUaoRa6qn0kbTdlaIHGO7111qLtb/6J8uuw==", - "dependencies": { - "@types/d3-path": "^2" - } - }, - "node_modules/@types/d3-time": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.1.4.tgz", - "integrity": "sha512-JIvy2HjRInE+TXOmIGN5LCmeO0hkFZx5f9FZ7kiN+D+YTcc8pptsiLiuHsvwxwC7VVKmJ2ExHUgNlAiV7vQM9g==" - }, - "node_modules/@types/d3-time-format": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.3.4.tgz", - "integrity": "sha512-xdDXbpVO74EvadI3UDxjxTdR6QIxm1FKzEA/+F8tL4GWWUg/hgvBqf6chql64U5A9ZUGWo7pEu4eNlyLwbKdhg==" - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/json2csv": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@types/json2csv/-/json2csv-5.0.7.tgz", - "integrity": "sha512-Ma25zw9G9GEBnX8b12R4EYvnFT6dBh8L3jwsN5EUFXa+fl2dqmbLDbNWN0XuQU3rSXdsbBeCYjI9uHU2PUBxhA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "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==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "peer": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.10", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.10.tgz", - "integrity": "sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==" - }, - "node_modules/@types/react": { - "version": "18.2.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.37.tgz", - "integrity": "sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.2.15", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.15.tgz", - "integrity": "sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg==", - "devOptional": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-1CM48Y9ztL5S4wjt7DK2izrkgPp/Ql0zCJu/vHzhgl7J+BD4UbSGjHN1M2TlePms472JvOazUtAO1/G3oFZqIQ==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.9.tgz", - "integrity": "sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg==", - "peer": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.6.tgz", - "integrity": "sha512-Vlktnchmkylvc9SnwwwozTv04L/e1NykF5vgoQ0XTmI8DD+wxfjQuHuvHS3p0r2jz2x2ghPs2h1FVeDirIteWA==" - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", - "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.10.0", - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/typescript-estree": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.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.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz", - "integrity": "sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.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.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.10.0.tgz", - "integrity": "sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==", - "dev": true, - "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.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz", - "integrity": "sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.10.0", - "@typescript-eslint/visitor-keys": "6.10.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.10.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz", - "integrity": "sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.10.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/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "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==", - "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/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "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==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "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/aria-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.3" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", - "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.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/axios": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.1.tgz", - "integrity": "sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - }, - "engines": { - "node": ">=10", - "npm": ">=6" - } - }, - "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/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/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/broadcast-channel": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", - "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "detect-node": "^2.1.0", - "js-sha3": "0.8.0", - "microseconds": "0.2.0", - "nano-time": "1.0.0", - "oblivious-set": "1.0.0", - "rimraf": "3.0.2", - "unload": "2.2.0" - } - }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "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.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "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.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "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/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001580", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz", - "integrity": "sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==", - "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.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/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/class-variance-authority": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", - "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", - "dependencies": { - "clsx": "2.0.0" - }, - "funding": { - "url": "https://joebell.co.uk" - } - }, - "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/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clsx": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", - "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/cmdk": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-0.2.0.tgz", - "integrity": "sha512-JQpKvEOb86SnvMZbYaFKYhvzFntWBeSZdyii0rZPhKJj9uwJBxu4DaVYDrRN7r3mPop56oPhRw+JYWTKs66TYw==", - "dependencies": { - "@radix-ui/react-dialog": "1.0.0", - "command-score": "0.1.2" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.0.tgz", - "integrity": "sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", - "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-context": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.0.tgz", - "integrity": "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-dialog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.0.tgz", - "integrity": "sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.0", - "@radix-ui/react-compose-refs": "1.0.0", - "@radix-ui/react-context": "1.0.0", - "@radix-ui/react-dismissable-layer": "1.0.0", - "@radix-ui/react-focus-guards": "1.0.0", - "@radix-ui/react-focus-scope": "1.0.0", - "@radix-ui/react-id": "1.0.0", - "@radix-ui/react-portal": "1.0.0", - "@radix-ui/react-presence": "1.0.0", - "@radix-ui/react-primitive": "1.0.0", - "@radix-ui/react-slot": "1.0.0", - "@radix-ui/react-use-controllable-state": "1.0.0", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.4" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.0.tgz", - "integrity": "sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.0", - "@radix-ui/react-compose-refs": "1.0.0", - "@radix-ui/react-primitive": "1.0.0", - "@radix-ui/react-use-callback-ref": "1.0.0", - "@radix-ui/react-use-escape-keydown": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-focus-guards": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.0.tgz", - "integrity": "sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.0.tgz", - "integrity": "sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.0", - "@radix-ui/react-primitive": "1.0.0", - "@radix-ui/react-use-callback-ref": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz", - "integrity": "sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-portal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.0.tgz", - "integrity": "sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-presence": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.0.tgz", - "integrity": "sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.0", - "@radix-ui/react-use-layout-effect": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.0.tgz", - "integrity": "sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-slot": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.0.tgz", - "integrity": "sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz", - "integrity": "sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz", - "integrity": "sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.0.tgz", - "integrity": "sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.0" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz", - "integrity": "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==", - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0" - } - }, - "node_modules/cmdk/node_modules/react-remove-scroll": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.4.tgz", - "integrity": "sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==", - "dependencies": { - "react-remove-scroll-bar": "^2.3.3", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "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/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-score": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/command-score/-/command-score-0.1.2.tgz", - "integrity": "sha512-VtDvQpIJBvBatnONUsPzXYFVKQQAhuf3XTNOAsdBxCNO/QCtUUd8LSgjn0GVarBkCad6aJCZfXgrjYbl/KRr7w==" - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "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/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==", - "peer": true - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "peer": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "peer": true, - "engines": { - "node": ">= 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==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "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==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "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/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", - "dependencies": { - "internmap": "^1.0.0" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", - "dependencies": { - "delaunator": "4" - } - }, - "node_modules/d3-format": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", - "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", - "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-2.0.0.tgz", - "integrity": "sha512-LLqy7dJSL8yDy7NRmf6xSlsFZ6zYvJ4BcWFE4zBrOPnQERv9zj24ohnXKRbyi9YHnYV+HN1oEO3iFK971/gkzA==", - "dependencies": { - "d3-color": "1 - 2", - "d3-interpolate": "1 - 2" - } - }, - "node_modules/d3-scale-chromatic/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" - }, - "node_modules/d3-scale-chromatic/node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", - "dependencies": { - "d3-color": "1 - 2" - } - }, - "node_modules/d3-scale/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" - }, - "node_modules/d3-scale/node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", - "dependencies": { - "d3-color": "1 - 2" - } - }, - "node_modules/d3-scale/node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", - "dependencies": { - "d3-array": "2" - } - }, - "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", - "dependencies": { - "d3-time": "1 - 2" - } - }, - "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==", - "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/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "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/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "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==", - "dev": true, - "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/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" - }, - "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/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "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/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.581", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", - "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/encode-utf8": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", - "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" - }, - "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==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "peer": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "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.13.1", - "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.13" - }, - "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==", - "dev": true, - "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.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - } - }, - "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==", - "dev": true, - "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/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": "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.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", - "@humanwhocodes/config-array": "^0.11.13", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "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": "14.0.2", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.0.2.tgz", - "integrity": "sha512-CasWThlsyIcg/a+clU6KVOMTieuDhTztsrqvniP6AsRki9v7FnojTa7vKQOYM8QSOsQdZ/aElLD1Y2Oc8/PsIg==", - "dev": true, - "dependencies": { - "@next/eslint-plugin-next": "14.0.2", - "@rushstack/eslint-patch": "^1.3.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.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", - "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "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==", - "dev": true, - "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==", - "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/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "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/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==", - "dev": true, - "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==", - "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-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/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/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/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/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.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "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==", - "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==", - "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==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "peer": true - }, - "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.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "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==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "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.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "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==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/geist": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/geist/-/geist-1.3.0.tgz", - "integrity": "sha512-IoGBfcqVEYB4bEwsfHd35jF4+X9LHRPYZymHL4YOltHSs9LJa24DYs1Z7rEMQ/lsEvaAIc61Y9aUxgcJaQ8lrg==", - "peerDependencies": { - "next": ">=13.2.0 <15.0.0-0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true, - "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.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "dev": true, - "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/globals": { - "version": "13.23.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", - "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", - "dev": true, - "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==", - "dev": true, - "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==", - "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/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "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==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/iconoir-react": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/iconoir-react/-/iconoir-react-7.3.0.tgz", - "integrity": "sha512-vdljknLaUT3aGbRbsWkGfqqyJ8roPcXqayJmUjHnJgeolmupVWVo/EVA3OtmjlKvvZmQRu9radmMYS0NmfUAsw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/iconoir" - }, - "peerDependencies": { - "react": "^16.8.6 || ^17 || ^18" - } - }, - "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==", - "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==", - "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.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "node_modules/intl-messageformat": { - "version": "10.5.8", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.8.tgz", - "integrity": "sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.3", - "tslib": "^2.4.0" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "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==", - "dev": true, - "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-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "peer": true - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-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==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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/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==", - "dev": true, - "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/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/jotai": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jotai/-/jotai-2.5.1.tgz", - "integrity": "sha512-vanPCCSuHczUXNbVh/iUunuMfrWRL4FdBtAbTRmrfqezJcKb8ybBTg8iivyYuUHapjcDETyJe1E4inlo26bVHA==", - "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=17.0.0", - "react": ">=17.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - } - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "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/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==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "peer": true - }, - "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": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "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==", - "dev": true, - "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.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "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/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "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": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "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": "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/lucide-react": { - "version": "0.292.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.292.0.tgz", - "integrity": "sha512-rRgUkpEHWpa5VCT66YscInCQmQuPCB1RFRzkkxMxg4b+jaL0V12E3riWWR2Sh5OIiUhCwGW/ZExuEO4Az32E6Q==", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/match-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.1.tgz", - "integrity": "sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "remove-accents": "0.4.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==", - "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/microseconds": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", - "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.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==", - "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/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nano-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", - "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", - "dependencies": { - "big-integer": "^1.6.16" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "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/next": { - "version": "14.2.2", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.2.tgz", - "integrity": "sha512-oGwUaa2bCs47FbuxWMpOoXtBMPYpvTPgdZr3UAo+pu7Ns00z9otmYpoeV1HEiYL06AlRQQIA/ypK526KjJfaxg==", - "dependencies": { - "@next/env": "14.2.2", - "@swc/helpers": "0.5.5", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001579", - "graceful-fs": "^4.2.11", - "postcss": "8.4.31", - "styled-jsx": "5.1.1" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=18.17.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.2", - "@next/swc-darwin-x64": "14.2.2", - "@next/swc-linux-arm64-gnu": "14.2.2", - "@next/swc-linux-arm64-musl": "14.2.2", - "@next/swc-linux-x64-gnu": "14.2.2", - "@next/swc-linux-x64-musl": "14.2.2", - "@next/swc-win32-arm64-msvc": "14.2.2", - "@next/swc-win32-ia32-msvc": "14.2.2", - "@next/swc-win32-x64-msvc": "14.2.2" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next-nprogress-bar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/next-nprogress-bar/-/next-nprogress-bar-2.1.2.tgz", - "integrity": "sha512-2Df5d7fr6uPx+BX8MkoWCfl+RjG+uWI5mA399e5sEe8mbT3q/GIUvCXLzBgJBIISpKuMmdLAOYEzqpjlsRVOWw==", - "dependencies": { - "nprogress": "^0.2.0" - } - }, - "node_modules/next-qrcode": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/next-qrcode/-/next-qrcode-2.5.1.tgz", - "integrity": "sha512-ibiS1+p+myjurC1obVIgo7UCjFhxm0SNYTkikahQVmnyzlfREOdUCf2f77Vbz6W6q2zfx5Eww2/20vbgkLNdLw==", - "dependencies": { - "qrcode": "^1.5.3" - }, - "engines": { - "node": ">=8", - "npm": ">=5" - }, - "peerDependencies": { - "react": ">=17.0.0" - } - }, - "node_modules/next-themes": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz", - "integrity": "sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==", - "peerDependencies": { - "next": "*", - "react": "*", - "react-dom": "*" - } - }, - "node_modules/nextjs-google-analytics": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/nextjs-google-analytics/-/nextjs-google-analytics-2.3.3.tgz", - "integrity": "sha512-Y6sI6A7wt5dji8hYBnVkOh9LTyImSLFZXx3FpyQgVW7W4b4qEFHjH2u3fhDJsrRZeLlUGM8/RuHD/mhHc2Axfg==", - "optionalDependencies": { - "fsevents": "^2.3.2" - }, - "peerDependencies": { - "next": ">=11.0.0", - "react": ">=17.0.0" - } - }, - "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/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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/oblivious-set": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", - "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" - }, - "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/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/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "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/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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==", - "dev": true, - "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/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "engines": { - "node": ">= 14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-nesting": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.1.tgz", - "integrity": "sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "dependencies": { - "@csstools/selector-specificity": "^3.0.0", - "postcss-selector-parser": "^6.0.13" - }, - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "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==" - }, - "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/prettier": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", - "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-tailwindcss": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.5.7.tgz", - "integrity": "sha512-4v6uESAgwCni6YF6DwJlRaDjg9Z+al5zM4JfngcazMy4WEf/XkPS5TEQjbD+DZ5iNuG6RrKQLa/HuX2SYzC3kQ==", - "dev": true, - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "@ianvs/prettier-plugin-sort-imports": "*", - "@prettier/plugin-pug": "*", - "@shopify/prettier-plugin-liquid": "*", - "@shufo/prettier-plugin-blade": "*", - "@trivago/prettier-plugin-sort-imports": "*", - "prettier": "^3.0", - "prettier-plugin-astro": "*", - "prettier-plugin-css-order": "*", - "prettier-plugin-import-sort": "*", - "prettier-plugin-jsdoc": "*", - "prettier-plugin-organize-attributes": "*", - "prettier-plugin-organize-imports": "*", - "prettier-plugin-style-order": "*", - "prettier-plugin-svelte": "*" - }, - "peerDependenciesMeta": { - "@ianvs/prettier-plugin-sort-imports": { - "optional": true - }, - "@prettier/plugin-pug": { - "optional": true - }, - "@shopify/prettier-plugin-liquid": { - "optional": true - }, - "@shufo/prettier-plugin-blade": { - "optional": true - }, - "@trivago/prettier-plugin-sort-imports": { - "optional": true - }, - "prettier-plugin-astro": { - "optional": true - }, - "prettier-plugin-css-order": { - "optional": true - }, - "prettier-plugin-import-sort": { - "optional": true - }, - "prettier-plugin-jsdoc": { - "optional": true - }, - "prettier-plugin-marko": { - "optional": true - }, - "prettier-plugin-organize-attributes": { - "optional": true - }, - "prettier-plugin-organize-imports": { - "optional": true - }, - "prettier-plugin-style-order": { - "optional": true - }, - "prettier-plugin-svelte": { - "optional": true - }, - "prettier-plugin-twig-melody": { - "optional": 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/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", - "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "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-icons": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz", - "integrity": "sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==", - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-intl": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.5.5.tgz", - "integrity": "sha512-cI5UKvBh4tc1zxLIziHBYGMX3dhYWDEFlvUDVN6NfT2i96zTXz/zH2AmM8+2waqgOhwkFUzd+7kK1G9q7fiC2g==", - "dependencies": { - "@formatjs/ecma402-abstract": "1.18.0", - "@formatjs/icu-messageformat-parser": "2.7.3", - "@formatjs/intl": "2.9.9", - "@formatjs/intl-displaynames": "6.6.4", - "@formatjs/intl-listformat": "7.5.3", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/react": "16 || 17 || 18", - "hoist-non-react-statics": "^3.3.2", - "intl-messageformat": "10.5.8", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "react": "^16.6.0 || 17 || 18", - "typescript": "5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "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-modern-drawer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/react-modern-drawer/-/react-modern-drawer-1.2.2.tgz", - "integrity": "sha512-SXUNjofHzeoEas0kdMWWafuF2+vwdtbQD1cpkHxo7oyFj3v+2l2CMeJjc/GodYsnxVhSiYj75xosMJXXed9ykQ==", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "react": ">16.0.0" - } - }, - "node_modules/react-query": { - "version": "3.39.3", - "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", - "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "broadcast-channel": "^3.4.1", - "match-sorter": "^6.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", - "dependencies": { - "react-remove-scroll-bar": "^2.3.3", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readonly-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", - "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" - }, - "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==", - "dev": true, - "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==", - "dev": true, - "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/remove-accents": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.2.tgz", - "integrity": "sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==" - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "dev": true, - "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==", - "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/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", - "peer": true - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "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/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==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwind-merge": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.0.0.tgz", - "integrity": "sha512-WO8qghn9yhsldLSg80au+3/gY9E4hFxIvQ3qOmlpXnqpDKoMruKfi/56BbbMg6fHTQJ9QD3cc79PoWqlaQE4rw==", - "dependencies": { - "@babel/runtime": "^7.23.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwindcss": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", - "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.19.1", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", - "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "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==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "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==", - "peer": 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==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" - }, - "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==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, - "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==", - "dev": true, - "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==", - "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/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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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==", - "devOptional": true, - "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==", - "dev": true, - "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/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unload": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", - "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", - "dependencies": { - "@babel/runtime": "^7.6.2", - "detect-node": "^2.0.4" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "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/use-callback-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/usehooks-ts": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-2.9.1.tgz", - "integrity": "sha512-2FAuSIGHlY+apM9FVlj8/oNhd+1y+Uwv5QNkMQz1oSfdHk4PXo1qoCw9I5M7j0vpH8CSWFJwXbVPeYDjLCx9PA==", - "engines": { - "node": ">=16.15.0", - "npm": ">=8" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.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==" - }, - "node_modules/vaul": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/vaul/-/vaul-0.8.0.tgz", - "integrity": "sha512-9nUU2jIObJvJZxeQU1oVr/syKo5XqbRoOMoTEt0hHlWify4QZFlqTh6QSN/yxoKzNrMeEQzxbc3XC/vkPLOIqw==", - "dependencies": { - "@radix-ui/react-dialog": "^1.0.4" - }, - "peerDependencies": { - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - } - }, - "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/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==", - "dev": true, - "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==", - "dev": true, - "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==", - "dev": true, - "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-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" - }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "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/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "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==" - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "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/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "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" - } - }, - "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zustand": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.4.6.tgz", - "integrity": "sha512-Rb16eW55gqL4W2XZpJh0fnrATxYEG3Apl2gfHTyDSE965x/zxslTikpNch0JgNjJA9zK6gEFW8Fl6d1rTZaqgg==", - "dependencies": { - "use-sync-external-store": "1.2.0" - }, - "engines": { - "node": ">=12.7.0" - }, - "peerDependencies": { - "@types/react": ">=16.8", - "immer": ">=9.0", - "react": ">=16.8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - } - } - } - } -} diff --git a/apps/stats-web/package.json b/apps/stats-web/package.json index 78953f11f..bb53e5dea 100644 --- a/apps/stats-web/package.json +++ b/apps/stats-web/package.json @@ -10,6 +10,7 @@ "start": "next start" }, "dependencies": { + "@akashnetwork/ui": "*", "@cosmjs/encoding": "^0.32.0", "@json2csv/plainjs": "^7.0.4", "@nivo/line": "^0.84.0", @@ -50,12 +51,12 @@ "react-modern-drawer": "^1.2.2", "react-query": "^3.39.3", "tailwind-merge": "^2.0.0", - "tailwindcss-animate": "^1.0.7", "usehooks-ts": "^2.9.1", "vaul": "^0.8.0", "zod": "^3.22.4" }, "devDependencies": { + "@akashnetwork/dev-config": "*", "@types/json2csv": "^5.0.7", "@types/node": "20.14.0", "@types/react": "18.2.0", diff --git a/apps/stats-web/postcss.config.js b/apps/stats-web/postcss.config.js index 1a3cd81d9..6cf694c32 100644 --- a/apps/stats-web/postcss.config.js +++ b/apps/stats-web/postcss.config.js @@ -1,8 +1 @@ -module.exports = { - plugins: { - "postcss-import": {}, - "tailwindcss/nesting": "postcss-nesting", - tailwindcss: {}, - autoprefixer: {} - } -}; +module.exports = require('@akashnetwork/ui/postcss') \ No newline at end of file diff --git a/apps/stats-web/src/app/(home)/Dashboard.tsx b/apps/stats-web/src/app/(home)/Dashboard.tsx index b22562d24..f802d3a21 100644 --- a/apps/stats-web/src/app/(home)/Dashboard.tsx +++ b/apps/stats-web/src/app/(home)/Dashboard.tsx @@ -12,7 +12,7 @@ import { AKTLabel } from "@/components/AKTLabel"; import { HumanReadableBytes } from "@/components/HumanReadableBytes"; import SearchBar from "@/components/SearchBar"; import { Title } from "@/components/Title"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Card, CardContent, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"; import { Separator } from "@/components/ui/separator"; import { Table, TableBody, TableHead, TableHeader, TableRow } from "@/components/ui/table"; diff --git a/apps/stats-web/src/app/(home)/StatsCard.tsx b/apps/stats-web/src/app/(home)/StatsCard.tsx index 32d3be5b3..8ee6b89ce 100644 --- a/apps/stats-web/src/app/(home)/StatsCard.tsx +++ b/apps/stats-web/src/app/(home)/StatsCard.tsx @@ -2,9 +2,8 @@ import React from "react"; import { GraphUp, HelpCircle } from "iconoir-react"; import Link from "next/link"; - import { DiffPercentageChip } from "@/components/DiffPercentageChip"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Card, CardContent, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"; import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"; diff --git a/apps/stats-web/src/app/error.tsx b/apps/stats-web/src/app/error.tsx index 9fbd4b483..23b090dc0 100644 --- a/apps/stats-web/src/app/error.tsx +++ b/apps/stats-web/src/app/error.tsx @@ -4,7 +4,7 @@ import { useEffect } from "react"; import PageContainer from "@/components/PageContainer"; import { Title } from "@/components/Title"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; export default function Error({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) { useEffect(() => { diff --git a/apps/stats-web/src/app/globals.css b/apps/stats-web/src/app/globals.css deleted file mode 100644 index 9c6324017..000000000 --- a/apps/stats-web/src/app/globals.css +++ /dev/null @@ -1,88 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -@layer base { - :root { - --background: 15 33% 98%; - --header: 0 0% 100%; - --foreground: 0 0% 3.9%; - --card: 0 0% 100%; - --card-foreground: 0 0% 3.9%; - --popover: 0 0% 100%; - --popover-foreground: 0 0% 3.9%; - --primary: 357 100% 63%; - --primary-foreground: 0 85.7% 97.3%; - --secondary: 0 0% 96.1%; - --secondary-foreground: 0 0% 9%; - --muted: 0 0% 96.1%; - --muted-foreground: 0 0% 45.1%; - --accent: 0 0% 96.1%; - --accent-foreground: 0 0% 9%; - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; - --border: 0 0% 89.8%; - --input: 0 0% 89.8%; - --ring: 357 100% 63%; - --radius: 0.5rem; - } - - .dark { - --background: 0 0% 11%; - --header: 0 0% 14%; - --foreground: 0 0% 98%; - --card: 0 0% 14%; - --card-foreground: 0 0% 98%; - --popover: 0 0% 3.9%; - --popover-foreground: 0 0% 98%; - --primary: 357 100% 63%; - --primary-foreground: 0 85.7% 97.3%; - --secondary: 0 0% 16.9%; - --secondary-foreground: 0 0% 98%; - --muted: 0 0% 14.9%; - --muted-foreground: 0 0% 63.9%; - --accent: 0 0% 14.9%; - --accent-foreground: 0 0% 98%; - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 0 0% 98%; - --border: 0 0% 14.9%; - --input: 0 0% 14.9%; - --ring: 357 100% 63%; - } - - * { - @apply border-border; - transition: background-color 0.2s ease; - } - - body { - overflow-y: scroll !important; - @apply bg-background text-foreground; - - &::-webkit-scrollbar { - width: 10px; - } - - &::-webkit-scrollbar-track { - background: hsl(var(--secondary)); - border-radius: 5px; - } - - &::-webkit-scrollbar-thumb { - background-color: hsl(var(--secondary-foreground)); - border-radius: 14px; - } - - &::-webkit-scrollbar-thumb:hover { - background-color: hsl(var(--muted-foreground)); - } - } - a { - text-decoration: none; - color: hsl(var(--primary)); - } - - a:hover { - text-decoration: underline; - } -} diff --git a/apps/stats-web/src/app/graph/[snapshot]/GraphContainer.tsx b/apps/stats-web/src/app/graph/[snapshot]/GraphContainer.tsx index 7d911a4b1..2f11edaf5 100644 --- a/apps/stats-web/src/app/graph/[snapshot]/GraphContainer.tsx +++ b/apps/stats-web/src/app/graph/[snapshot]/GraphContainer.tsx @@ -9,7 +9,7 @@ import { DiffNumber } from "@/components/DiffNumber"; import { DiffPercentageChip } from "@/components/DiffPercentageChip"; import { TimeRange } from "@/components/graph/TimeRange"; import Spinner from "@/components/Spinner"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { selectedRangeValues } from "@/lib/constants"; import { percIncrease, udenomToDenom } from "@/lib/mathHelpers"; import { SNAPSHOT_NOT_FOUND } from "@/lib/snapshotsUrlHelpers"; diff --git a/apps/stats-web/src/app/graph/[snapshot]/page.tsx b/apps/stats-web/src/app/graph/[snapshot]/page.tsx index c3d39c8d7..3b3da80df 100644 --- a/apps/stats-web/src/app/graph/[snapshot]/page.tsx +++ b/apps/stats-web/src/app/graph/[snapshot]/page.tsx @@ -6,7 +6,7 @@ import Link from "next/link"; import GraphContainer from "./GraphContainer"; import PageContainer from "@/components/PageContainer"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { urlParamToSnapshot } from "@/lib/snapshotsUrlHelpers"; import { UrlService } from "@/lib/urlUtils"; import { Snapshots, SnapshotsUrlParam } from "@/types"; diff --git a/apps/stats-web/src/app/layout.tsx b/apps/stats-web/src/app/layout.tsx index 17b25e350..97d96b51c 100644 --- a/apps/stats-web/src/app/layout.tsx +++ b/apps/stats-web/src/app/layout.tsx @@ -3,7 +3,8 @@ import type { Metadata, Viewport } from "next"; import getConfig from "next/config"; import { cookies } from "next/headers"; -import "./globals.css"; +import "@akashnetwork/ui/styles"; +import "../styles/index.css"; import GoogleAnalytics from "@/components/layout/CustomGoogleAnalytics"; import Providers from "@/components/layout/CustomProviders"; @@ -11,7 +12,7 @@ import { Footer } from "@/components/layout/Footer"; import { Nav } from "@/components/layout/Nav"; import { Toaster } from "@/components/ui/toaster"; import { customColors } from "@/lib/colors"; -import { cn } from "@/lib/utils"; +import { cn } from "@akashnetwork/ui/utils"; const { publicRuntimeConfig } = getConfig(); diff --git a/apps/stats-web/src/app/provider-graph/[snapshot]/GraphContainer.tsx b/apps/stats-web/src/app/provider-graph/[snapshot]/GraphContainer.tsx index c8866d7db..f2df78193 100644 --- a/apps/stats-web/src/app/provider-graph/[snapshot]/GraphContainer.tsx +++ b/apps/stats-web/src/app/provider-graph/[snapshot]/GraphContainer.tsx @@ -9,7 +9,7 @@ import { DiffNumber } from "@/components/DiffNumber"; import { DiffPercentageChip } from "@/components/DiffPercentageChip"; import { TimeRange } from "@/components/graph/TimeRange"; import Spinner from "@/components/Spinner"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { selectedRangeValues } from "@/lib/constants"; import { percIncrease } from "@/lib/mathHelpers"; import { getProviderSnapshotMetadata } from "@/lib/providerUtils"; diff --git a/apps/stats-web/src/app/provider-graph/[snapshot]/page.tsx b/apps/stats-web/src/app/provider-graph/[snapshot]/page.tsx index 170c88992..0d1801856 100644 --- a/apps/stats-web/src/app/provider-graph/[snapshot]/page.tsx +++ b/apps/stats-web/src/app/provider-graph/[snapshot]/page.tsx @@ -6,7 +6,7 @@ import Link from "next/link"; import GraphContainer from "./GraphContainer"; import PageContainer from "@/components/PageContainer"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { urlParamToProviderSnapshot } from "@/lib/snapshotsUrlHelpers"; import { UrlService } from "@/lib/urlUtils"; import { ProviderSnapshots, ProviderSnapshotsUrlParam } from "@/types"; diff --git a/apps/stats-web/src/app/transactions/[hash]/error.tsx b/apps/stats-web/src/app/transactions/[hash]/error.tsx index 9fbd4b483..23b090dc0 100644 --- a/apps/stats-web/src/app/transactions/[hash]/error.tsx +++ b/apps/stats-web/src/app/transactions/[hash]/error.tsx @@ -4,7 +4,7 @@ import { useEffect } from "react"; import PageContainer from "@/components/PageContainer"; import { Title } from "@/components/Title"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; export default function Error({ error, reset }: { error: Error & { digest?: string }; reset: () => void }) { useEffect(() => { diff --git a/apps/stats-web/src/components/ModeToggle.tsx b/apps/stats-web/src/components/ModeToggle.tsx index b2b56a104..10d67db7d 100644 --- a/apps/stats-web/src/components/ModeToggle.tsx +++ b/apps/stats-web/src/components/ModeToggle.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from "react"; import { HalfMoon, SunLight } from "iconoir-react"; import { useTheme } from "next-themes"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"; import { cn } from "@/lib/utils"; diff --git a/apps/stats-web/src/components/NavLinks.tsx b/apps/stats-web/src/components/NavLinks.tsx index a1e282eb0..ea7ae8b0a 100644 --- a/apps/stats-web/src/components/NavLinks.tsx +++ b/apps/stats-web/src/components/NavLinks.tsx @@ -3,7 +3,7 @@ import React from "react"; import Link from "next/link"; -import { buttonVariants } from "./ui/button"; +import { buttonVariants } from "@akashnetwork/ui/components"; import { cn } from "@/lib/utils"; diff --git a/apps/stats-web/src/components/SearchBar.tsx b/apps/stats-web/src/components/SearchBar.tsx index d5e39b787..0a5f41add 100644 --- a/apps/stats-web/src/components/SearchBar.tsx +++ b/apps/stats-web/src/components/SearchBar.tsx @@ -5,7 +5,7 @@ import { Search, Xmark } from "iconoir-react"; import { useRouter } from "next/navigation"; import { useMediaQuery } from "usehooks-ts"; -import { Button } from "./ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Card, CardContent } from "./ui/card"; import { Input } from "./ui/input"; diff --git a/apps/stats-web/src/components/layout/MobileNav.tsx b/apps/stats-web/src/components/layout/MobileNav.tsx index 3e6745228..46fea8c9b 100644 --- a/apps/stats-web/src/components/layout/MobileNav.tsx +++ b/apps/stats-web/src/components/layout/MobileNav.tsx @@ -10,7 +10,7 @@ import NetworkSelect from "./NetworkSelect"; import "react-modern-drawer/dist/index.css"; -import { Button } from "@/components/ui/button"; +import { Button } from "@akashnetwork/ui/components"; import useCookieTheme from "@/hooks/useTheme"; export function MobileNav() { diff --git a/apps/stats-web/src/components/layout/Nav.tsx b/apps/stats-web/src/components/layout/Nav.tsx index f9df018c0..328978d95 100644 --- a/apps/stats-web/src/components/layout/Nav.tsx +++ b/apps/stats-web/src/components/layout/Nav.tsx @@ -4,7 +4,7 @@ import Link from "next/link"; import { AkashConsoleDarkLogo, AkashConsoleLightLogo } from "../icons/AkashConsoleLogo"; import { ModeToggle } from "../ModeToggle"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { MobileNav } from "./MobileNav"; import NetworkSelect from "./NetworkSelect"; @@ -14,7 +14,7 @@ export const Nav = () => { const theme = useCookieTheme(); return ( -
+
{!!theme && ( diff --git a/apps/stats-web/src/components/table/data-table-column-header.tsx b/apps/stats-web/src/components/table/data-table-column-header.tsx index 9c68c6f9e..d9a4dde32 100644 --- a/apps/stats-web/src/components/table/data-table-column-header.tsx +++ b/apps/stats-web/src/components/table/data-table-column-header.tsx @@ -1,7 +1,7 @@ import { ArrowDownIcon, ArrowUpIcon, CaretSortIcon, EyeNoneIcon } from "@radix-ui/react-icons"; import { Column } from "@tanstack/react-table"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from "../ui/dropdown-menu"; import { cn } from "@/lib/utils"; diff --git a/apps/stats-web/src/components/table/data-table-faceted-filter.tsx b/apps/stats-web/src/components/table/data-table-faceted-filter.tsx index 4f673a405..b125c474a 100644 --- a/apps/stats-web/src/components/table/data-table-faceted-filter.tsx +++ b/apps/stats-web/src/components/table/data-table-faceted-filter.tsx @@ -3,7 +3,7 @@ import { CheckIcon, PlusCircledIcon } from "@radix-ui/react-icons"; import { Column } from "@tanstack/react-table"; import { Badge } from "../ui/badge"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from "../ui/command"; import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover"; import { Separator } from "../ui/separator"; diff --git a/apps/stats-web/src/components/table/data-table-pagination.tsx b/apps/stats-web/src/components/table/data-table-pagination.tsx index c35be407b..c58567b78 100644 --- a/apps/stats-web/src/components/table/data-table-pagination.tsx +++ b/apps/stats-web/src/components/table/data-table-pagination.tsx @@ -1,7 +1,7 @@ import { ChevronLeftIcon, ChevronRightIcon, DoubleArrowLeftIcon, DoubleArrowRightIcon } from "@radix-ui/react-icons"; import { Table } from "@tanstack/react-table"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../ui/select"; interface DataTablePaginationProps { diff --git a/apps/stats-web/src/components/table/data-table-row-actions.tsx b/apps/stats-web/src/components/table/data-table-row-actions.tsx index 680b518aa..e00fc2ea7 100644 --- a/apps/stats-web/src/components/table/data-table-row-actions.tsx +++ b/apps/stats-web/src/components/table/data-table-row-actions.tsx @@ -2,7 +2,7 @@ import { DotsHorizontalIcon } from "@radix-ui/react-icons"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger } from "../ui/dropdown-menu"; export function DataTableRowActions() { diff --git a/apps/stats-web/src/components/table/data-table-toolbar.tsx b/apps/stats-web/src/components/table/data-table-toolbar.tsx index e3087b280..8492c6791 100644 --- a/apps/stats-web/src/components/table/data-table-toolbar.tsx +++ b/apps/stats-web/src/components/table/data-table-toolbar.tsx @@ -3,7 +3,7 @@ import { Cross2Icon } from "@radix-ui/react-icons"; import { Table } from "@tanstack/react-table"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DataTableFacetedFilter } from "./data-table-faceted-filter"; import { DataTableViewOptions } from "./data-table-view-options"; diff --git a/apps/stats-web/src/components/table/data-table-view-options.tsx b/apps/stats-web/src/components/table/data-table-view-options.tsx index ed16d0a8e..44f4f02ab 100644 --- a/apps/stats-web/src/components/table/data-table-view-options.tsx +++ b/apps/stats-web/src/components/table/data-table-view-options.tsx @@ -3,7 +3,7 @@ import { MixerHorizontalIcon } from "@radix-ui/react-icons"; import { Table } from "@tanstack/react-table"; -import { Button } from "../ui/button"; +import { Button } from "@akashnetwork/ui/components"; import { DropdownMenu, DropdownMenuCheckboxItem, diff --git a/apps/stats-web/src/components/ui/button.tsx b/apps/stats-web/src/components/ui/button.tsx deleted file mode 100644 index 55f3004b7..000000000 --- a/apps/stats-web/src/components/ui/button.tsx +++ /dev/null @@ -1,44 +0,0 @@ -"use client"; -import * as React from "react"; -import { Slot } from "@radix-ui/react-slot"; -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", - { - variants: { - variant: { - default: "bg-primary text-primary-foreground hover:bg-primary/90", - destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", - outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground", - secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", - ghost: "hover:bg-accent hover:text-accent-foreground", - link: "text-primary underline-offset-4 hover:underline" - }, - size: { - default: "h-10 px-4 py-2", - sm: "h-9 rounded-md px-3", - lg: "h-11 rounded-md px-8", - icon: "h-10 w-10" - } - }, - defaultVariants: { - variant: "default", - size: "default" - } - } -); - -export interface ButtonProps extends React.ButtonHTMLAttributes, VariantProps { - asChild?: boolean; -} - -const Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => { - const Comp = asChild ? Slot : "button"; - return ; -}); -Button.displayName = "Button"; - -export { Button, buttonVariants }; diff --git a/apps/stats-web/src/styles/index.css b/apps/stats-web/src/styles/index.css new file mode 100644 index 000000000..e69de29bb diff --git a/apps/stats-web/tailwind.config.ts b/apps/stats-web/tailwind.config.ts index 19620e7d6..29be5bb8e 100644 --- a/apps/stats-web/tailwind.config.ts +++ b/apps/stats-web/tailwind.config.ts @@ -1,80 +1 @@ -import type { Config } from "tailwindcss"; -import defaultTheme from "tailwindcss/defaultTheme"; - -const config: Config = { - darkMode: ["class"], - content: ["./pages/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}", "./app/**/*.{ts,tsx}", "./src/**/*.{ts,tsx}"], - theme: { - container: { - center: true, - padding: "1rem", - screens: { - "2xl": "1400px" - } - }, - extend: { - fontFamily: { - sans: ["var(--font-geist-sans)", ...defaultTheme.fontFamily.sans], - mono: ["var(--font-geist-mono)", ...defaultTheme.fontFamily.mono] - }, - colors: { - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - header: "hsl(var(--header))", - foreground: "hsl(var(--foreground))", - primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))" - }, - secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))" - }, - destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))" - }, - muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))" - }, - accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))" - }, - popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))" - }, - card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))" - } - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)" - }, - keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" } - }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" } - } - }, - animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out" - } - } - }, - plugins: [require("tailwindcss-animate")] -}; - -export default config; +export default require("@akashnetwork/ui/tailwind")("stats-web"); diff --git a/apps/stats-web/tsconfig.build.json b/apps/stats-web/tsconfig.build.json index 4beeaabaa..63ae061ee 100644 --- a/apps/stats-web/tsconfig.build.json +++ b/apps/stats-web/tsconfig.build.json @@ -1,4 +1,5 @@ { + "compileOnSave": false, "compilerOptions": { "moduleResolution": "bundler", "paths": { diff --git a/apps/stats-web/tsconfig.json b/apps/stats-web/tsconfig.json index f69898b63..ba00da976 100644 --- a/apps/stats-web/tsconfig.json +++ b/apps/stats-web/tsconfig.json @@ -8,5 +8,6 @@ "**/*.ts", "**/*.tsx", ".next/types/**/*.ts" - ] + ], + "compileOnSave": false } diff --git a/docker/Dockerfile.api b/docker/Dockerfile.api index 745881cb1..fae074c8c 100644 --- a/docker/Dockerfile.api +++ b/docker/Dockerfile.api @@ -16,7 +16,7 @@ FROM node:20-alpine WORKDIR /app -COPY --from=builder /app/packages/shared /app/packages/shared +COPY --from=builder /app/packages/database /app/packages/database COPY --from=builder /app/package.json /app/package.json COPY --from=builder /app/package-lock.json /app/package-lock.json diff --git a/docker/Dockerfile.stats-web b/docker/Dockerfile.stats-web index ca1ae3706..38bc4b0eb 100644 --- a/docker/Dockerfile.stats-web +++ b/docker/Dockerfile.stats-web @@ -51,7 +51,6 @@ RUN apt-get update RUN apt-get install libcap2-bin -y RUN setcap cap_net_bind_service=+ep `readlink -f \`which node\`` -RUN npm ci --workspace apps/stats-web --omit=dev USER nextjs diff --git a/package-lock.json b/package-lock.json index 52a7e9c73..5efa03042 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "license": "Apache-2.0", "dependencies": { "@akashnetwork/akash-api": "^1.3.0", - "@akashnetwork/cloudmos-shared": "*", + "@akashnetwork/database": "*", "@chain-registry/assets": "^0.7.1", "@cosmjs/crypto": "^0.28.11", "@cosmjs/encoding": "^0.28.11", @@ -98,6 +98,7 @@ "dependencies": { "@akashnetwork/akash-api": "^1.3.0", "@akashnetwork/akashjs": "^0.10.0", + "@akashnetwork/ui": "*", "@auth0/nextjs-auth0": "^3.5.0", "@chain-registry/types": "^0.41.3", "@cosmjs/encoding": "^0.32.3", @@ -197,8 +198,6 @@ "sharp": "^0.30.3", "stripe": "^10.14.0", "tailwind-merge": "^2.0.0", - "tailwind-scrollbar": "^3.0.5", - "tailwindcss-animate": "^1.0.7", "tss-react": "^4.8.5", "use-state-with-callback": "^3.0.2", "usehooks-ts": "^2.9.1", @@ -211,7 +210,6 @@ "@akashnetwork/dev-config": "*", "@keplr-wallet/types": "^0.10.15", "@next/bundle-analyzer": "^14.0.1", - "@tailwindcss/typography": "^0.5.12", "@types/auth0": "^2.35.3", "@types/file-saver": "^2.0.5", "@types/js-yaml": "^4.0.5", @@ -360,7 +358,7 @@ "license": "Apache-2.0", "dependencies": { "@akashnetwork/akash-api": "^1.3.0", - "@akashnetwork/cloudmos-shared": "*", + "@akashnetwork/database": "*", "@cosmjs/crypto": "^0.31.1", "@cosmjs/encoding": "^0.32.3", "@cosmjs/math": "^0.31.1", @@ -730,6 +728,7 @@ "apps/stats-web": { "version": "0.19.5", "dependencies": { + "@akashnetwork/ui": "*", "@cosmjs/encoding": "^0.32.0", "@json2csv/plainjs": "^7.0.4", "@nivo/line": "^0.84.0", @@ -770,12 +769,12 @@ "react-modern-drawer": "^1.2.2", "react-query": "^3.39.3", "tailwind-merge": "^2.0.0", - "tailwindcss-animate": "^1.0.7", "usehooks-ts": "^2.9.1", "vaul": "^0.8.0", "zod": "^3.22.4" }, "devDependencies": { + "@akashnetwork/dev-config": "*", "@types/json2csv": "^5.0.7", "@types/node": "20.14.0", "@types/react": "18.2.0", @@ -1198,18 +1197,23 @@ "follow-redirects": "^1.14.4" } }, - "node_modules/@akashnetwork/cloudmos-shared": { - "resolved": "packages/shared", + "node_modules/@akashnetwork/database": { + "resolved": "packages/database", "link": true }, "node_modules/@akashnetwork/dev-config": { "resolved": "packages/dev-config", "link": true }, + "node_modules/@akashnetwork/ui": { + "resolved": "packages/ui", + "link": true + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, "engines": { "node": ">=10" }, @@ -4634,6 +4638,7 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, "optional": true, "peer": true, "dependencies": { @@ -4647,6 +4652,7 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, "optional": true, "peer": true, "dependencies": { @@ -15452,6 +15458,7 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, "optional": true, "peer": true }, @@ -15459,6 +15466,7 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, "optional": true, "peer": true }, @@ -15466,6 +15474,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, "optional": true, "peer": true }, @@ -15473,6 +15482,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, "optional": true, "peer": true }, @@ -17788,7 +17798,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "devOptional": true, + "dev": true, "engines": { "node": ">=0.4.0" } @@ -17960,7 +17970,8 @@ "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true }, "node_modules/anymatch": { "version": "3.1.3", @@ -17977,7 +17988,8 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true }, "node_modules/argparse": { "version": "2.0.1", @@ -19220,6 +19232,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, "engines": { "node": ">= 6" } @@ -20677,6 +20690,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, "optional": true, "peer": true }, @@ -21370,7 +21384,8 @@ "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true }, "node_modules/diff": { "version": "4.0.2", @@ -21408,7 +21423,8 @@ "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true }, "node_modules/doctrine": { "version": "3.0.0", @@ -27809,6 +27825,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, "engines": { "node": ">=10" } @@ -29257,6 +29274,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", @@ -31025,6 +31043,7 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, "engines": { "node": ">= 6" } @@ -31163,6 +31182,7 @@ "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "dev": true, "funding": [ { "type": "opencollective", @@ -31190,6 +31210,7 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", @@ -31206,6 +31227,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, "dependencies": { "camelcase-css": "^2.0.1" }, @@ -31224,6 +31246,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.11" }, @@ -31242,6 +31265,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -31350,7 +31374,8 @@ "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==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true }, "node_modules/postgres-array": { "version": "3.0.2", @@ -32453,6 +32478,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, "dependencies": { "pify": "^2.3.0" } @@ -32461,6 +32487,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -34418,6 +34445,7 @@ "version": "3.35.0", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", @@ -34439,6 +34467,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, "engines": { "node": ">= 6" } @@ -34447,6 +34476,7 @@ "version": "10.4.1", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dev": true, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -34468,6 +34498,7 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -34609,6 +34640,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/tailwind-scrollbar/-/tailwind-scrollbar-3.1.0.tgz", "integrity": "sha512-pmrtDIZeHyu2idTejfV59SbaJyvp1VRjYxAjZBH0jnyrPRo6HL1kD5Glz8VPagasqr6oAx6M05+Tuw429Z8jxg==", + "dev": true, "engines": { "node": ">=12.13.0" }, @@ -34620,6 +34652,7 @@ "version": "3.4.4", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", "arg": "^5.0.2", @@ -34656,6 +34689,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "dev": true, "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders" } @@ -34664,6 +34698,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, "engines": { "node": ">= 6" } @@ -34672,6 +34707,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, "funding": [ { "type": "opencollective", @@ -34706,6 +34742,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, "engines": { "node": ">=14" }, @@ -34717,6 +34754,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -34729,6 +34767,7 @@ "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, "optional": true, "peer": true, "dependencies": { @@ -34773,6 +34812,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, "optional": true, "peer": true }, @@ -34780,6 +34820,7 @@ "version": "2.4.5", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "dev": true, "bin": { "yaml": "bin.mjs" }, @@ -35141,6 +35182,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, "dependencies": { "any-promise": "^1.0.0" } @@ -35149,6 +35191,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, "dependencies": { "thenify": ">= 3.1.0 < 4" }, @@ -35428,7 +35471,8 @@ "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true }, "node_modules/ts-jest": { "version": "29.1.4", @@ -36519,6 +36563,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, "optional": true, "peer": true }, @@ -37782,6 +37827,16 @@ "url": "https://github.com/sponsors/wooorm" } }, + "packages/database": { + "name": "@akashnetwork/database", + "version": "1.0.0", + "license": "Apache-2.0", + "dependencies": { + "dotenv": "^12.0.4", + "sequelize": "^6.21.3", + "sequelize-typescript": "^2.1.5" + } + }, "packages/dev-config": { "name": "@akashnetwork/dev-config", "version": "1.0.0", @@ -37795,14 +37850,31 @@ "prettier-plugin-tailwindcss": "^0.6.1" } }, - "packages/shared": { - "name": "@akashnetwork/cloudmos-shared", + "packages/ui": { + "name": "@akashnetwork/ui", "version": "1.0.0", - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "dotenv": "^12.0.4", - "sequelize": "^6.21.3", - "sequelize-typescript": "^2.1.5" + "@radix-ui/react-slot": "^1.0.2", + "class-variance-authority": "0.7.0", + "clsx": "2.1.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwind-merge": "2.3.0" + }, + "devDependencies": { + "@akashnetwork/dev-config": "*", + "@tailwindcss/typography": "^0.5.13", + "@types/react": "18.2.0", + "@types/react-dom": "18.2.0", + "autoprefixer": "^10.4.16", + "prettier": "^3.3.0", + "prettier-plugin-tailwindcss": "^0.6.1", + "prop-types": "^15.8.1", + "tailwind-scrollbar": "^3.1.0", + "tailwindcss": "^3.4.3", + "tailwindcss-animate": "^1.0.7", + "typescript": "5.1.3" } } } diff --git a/packages/shared/.gitattributes b/packages/database/.gitattributes similarity index 100% rename from packages/shared/.gitattributes rename to packages/database/.gitattributes diff --git a/packages/shared/.gitignore b/packages/database/.gitignore similarity index 100% rename from packages/shared/.gitignore rename to packages/database/.gitignore diff --git a/packages/shared/.prettierrc b/packages/database/.prettierrc similarity index 100% rename from packages/shared/.prettierrc rename to packages/database/.prettierrc diff --git a/packages/shared/chainDefinitions.ts b/packages/database/chainDefinitions.ts similarity index 100% rename from packages/shared/chainDefinitions.ts rename to packages/database/chainDefinitions.ts diff --git a/packages/shared/dbSchemas/akash/akashBlock.ts b/packages/database/dbSchemas/akash/akashBlock.ts similarity index 100% rename from packages/shared/dbSchemas/akash/akashBlock.ts rename to packages/database/dbSchemas/akash/akashBlock.ts diff --git a/packages/shared/dbSchemas/akash/akashMessage.ts b/packages/database/dbSchemas/akash/akashMessage.ts similarity index 100% rename from packages/shared/dbSchemas/akash/akashMessage.ts rename to packages/database/dbSchemas/akash/akashMessage.ts diff --git a/packages/shared/dbSchemas/akash/bid.ts b/packages/database/dbSchemas/akash/bid.ts similarity index 100% rename from packages/shared/dbSchemas/akash/bid.ts rename to packages/database/dbSchemas/akash/bid.ts diff --git a/packages/shared/dbSchemas/akash/deployment.ts b/packages/database/dbSchemas/akash/deployment.ts similarity index 100% rename from packages/shared/dbSchemas/akash/deployment.ts rename to packages/database/dbSchemas/akash/deployment.ts diff --git a/packages/shared/dbSchemas/akash/deploymentGroup.ts b/packages/database/dbSchemas/akash/deploymentGroup.ts similarity index 100% rename from packages/shared/dbSchemas/akash/deploymentGroup.ts rename to packages/database/dbSchemas/akash/deploymentGroup.ts diff --git a/packages/shared/dbSchemas/akash/deploymentGroupResource.ts b/packages/database/dbSchemas/akash/deploymentGroupResource.ts similarity index 100% rename from packages/shared/dbSchemas/akash/deploymentGroupResource.ts rename to packages/database/dbSchemas/akash/deploymentGroupResource.ts diff --git a/packages/shared/dbSchemas/akash/index.ts b/packages/database/dbSchemas/akash/index.ts similarity index 100% rename from packages/shared/dbSchemas/akash/index.ts rename to packages/database/dbSchemas/akash/index.ts diff --git a/packages/shared/dbSchemas/akash/lease.ts b/packages/database/dbSchemas/akash/lease.ts similarity index 100% rename from packages/shared/dbSchemas/akash/lease.ts rename to packages/database/dbSchemas/akash/lease.ts diff --git a/packages/shared/dbSchemas/akash/provider.ts b/packages/database/dbSchemas/akash/provider.ts similarity index 100% rename from packages/shared/dbSchemas/akash/provider.ts rename to packages/database/dbSchemas/akash/provider.ts diff --git a/packages/shared/dbSchemas/akash/providerAttribute.ts b/packages/database/dbSchemas/akash/providerAttribute.ts similarity index 100% rename from packages/shared/dbSchemas/akash/providerAttribute.ts rename to packages/database/dbSchemas/akash/providerAttribute.ts diff --git a/packages/shared/dbSchemas/akash/providerAttributeSignature.ts b/packages/database/dbSchemas/akash/providerAttributeSignature.ts similarity index 100% rename from packages/shared/dbSchemas/akash/providerAttributeSignature.ts rename to packages/database/dbSchemas/akash/providerAttributeSignature.ts diff --git a/packages/shared/dbSchemas/akash/providerSnapshot.ts b/packages/database/dbSchemas/akash/providerSnapshot.ts similarity index 100% rename from packages/shared/dbSchemas/akash/providerSnapshot.ts rename to packages/database/dbSchemas/akash/providerSnapshot.ts diff --git a/packages/shared/dbSchemas/akash/providerSnapshotNode.ts b/packages/database/dbSchemas/akash/providerSnapshotNode.ts similarity index 100% rename from packages/shared/dbSchemas/akash/providerSnapshotNode.ts rename to packages/database/dbSchemas/akash/providerSnapshotNode.ts diff --git a/packages/shared/dbSchemas/akash/providerSnapshotNodeCPU.ts b/packages/database/dbSchemas/akash/providerSnapshotNodeCPU.ts similarity index 100% rename from packages/shared/dbSchemas/akash/providerSnapshotNodeCPU.ts rename to packages/database/dbSchemas/akash/providerSnapshotNodeCPU.ts diff --git a/packages/shared/dbSchemas/akash/providerSnapshotNodeGPU.ts b/packages/database/dbSchemas/akash/providerSnapshotNodeGPU.ts similarity index 100% rename from packages/shared/dbSchemas/akash/providerSnapshotNodeGPU.ts rename to packages/database/dbSchemas/akash/providerSnapshotNodeGPU.ts diff --git a/packages/shared/dbSchemas/base/addressReference.ts b/packages/database/dbSchemas/base/addressReference.ts similarity index 100% rename from packages/shared/dbSchemas/base/addressReference.ts rename to packages/database/dbSchemas/base/addressReference.ts diff --git a/packages/shared/dbSchemas/base/block.ts b/packages/database/dbSchemas/base/block.ts similarity index 100% rename from packages/shared/dbSchemas/base/block.ts rename to packages/database/dbSchemas/base/block.ts diff --git a/packages/shared/dbSchemas/base/day.ts b/packages/database/dbSchemas/base/day.ts similarity index 100% rename from packages/shared/dbSchemas/base/day.ts rename to packages/database/dbSchemas/base/day.ts diff --git a/packages/shared/dbSchemas/base/index.ts b/packages/database/dbSchemas/base/index.ts similarity index 100% rename from packages/shared/dbSchemas/base/index.ts rename to packages/database/dbSchemas/base/index.ts diff --git a/packages/shared/dbSchemas/base/message.ts b/packages/database/dbSchemas/base/message.ts similarity index 100% rename from packages/shared/dbSchemas/base/message.ts rename to packages/database/dbSchemas/base/message.ts diff --git a/packages/shared/dbSchemas/base/monitoredValue.ts b/packages/database/dbSchemas/base/monitoredValue.ts similarity index 100% rename from packages/shared/dbSchemas/base/monitoredValue.ts rename to packages/database/dbSchemas/base/monitoredValue.ts diff --git a/packages/shared/dbSchemas/base/transaction.ts b/packages/database/dbSchemas/base/transaction.ts similarity index 100% rename from packages/shared/dbSchemas/base/transaction.ts rename to packages/database/dbSchemas/base/transaction.ts diff --git a/packages/shared/dbSchemas/base/validator.ts b/packages/database/dbSchemas/base/validator.ts similarity index 100% rename from packages/shared/dbSchemas/base/validator.ts rename to packages/database/dbSchemas/base/validator.ts diff --git a/packages/shared/dbSchemas/decorators/requiredDecorator.ts b/packages/database/dbSchemas/decorators/requiredDecorator.ts similarity index 100% rename from packages/shared/dbSchemas/decorators/requiredDecorator.ts rename to packages/database/dbSchemas/decorators/requiredDecorator.ts diff --git a/packages/shared/dbSchemas/index.ts b/packages/database/dbSchemas/index.ts similarity index 100% rename from packages/shared/dbSchemas/index.ts rename to packages/database/dbSchemas/index.ts diff --git a/packages/shared/dbSchemas/user/index.ts b/packages/database/dbSchemas/user/index.ts similarity index 100% rename from packages/shared/dbSchemas/user/index.ts rename to packages/database/dbSchemas/user/index.ts diff --git a/packages/shared/dbSchemas/user/template.ts b/packages/database/dbSchemas/user/template.ts similarity index 100% rename from packages/shared/dbSchemas/user/template.ts rename to packages/database/dbSchemas/user/template.ts diff --git a/packages/shared/dbSchemas/user/templateFavorite.ts b/packages/database/dbSchemas/user/templateFavorite.ts similarity index 100% rename from packages/shared/dbSchemas/user/templateFavorite.ts rename to packages/database/dbSchemas/user/templateFavorite.ts diff --git a/packages/shared/dbSchemas/user/userAddressName.ts b/packages/database/dbSchemas/user/userAddressName.ts similarity index 100% rename from packages/shared/dbSchemas/user/userAddressName.ts rename to packages/database/dbSchemas/user/userAddressName.ts diff --git a/packages/shared/dbSchemas/user/userSetting.ts b/packages/database/dbSchemas/user/userSetting.ts similarity index 100% rename from packages/shared/dbSchemas/user/userSetting.ts rename to packages/database/dbSchemas/user/userSetting.ts diff --git a/packages/shared/package.json b/packages/database/package.json similarity index 89% rename from packages/shared/package.json rename to packages/database/package.json index 0ff09d2dd..8a7e793d1 100644 --- a/packages/shared/package.json +++ b/packages/database/package.json @@ -1,5 +1,5 @@ { - "name": "@akashnetwork/cloudmos-shared", + "name": "@akashnetwork/database", "version": "1.0.0", "description": "Code that is shared between multiple cloudmos project", "license": "Apache-2.0", diff --git a/packages/shared/plans.ts b/packages/database/plans.ts similarity index 100% rename from packages/shared/plans.ts rename to packages/database/plans.ts diff --git a/packages/dev-config/.prettierrc.js b/packages/dev-config/.prettierrc.js index 33dbfa88d..d8cf64764 100644 --- a/packages/dev-config/.prettierrc.js +++ b/packages/dev-config/.prettierrc.js @@ -13,5 +13,6 @@ module.exports = { arrowParens: "avoid", endOfLine: "crlf", htmlWhitespaceSensitivity: "strict", - plugins: ["prettier-plugin-tailwindcss"] + plugins: ["prettier-plugin-tailwindcss"], + tailwindFunctions: ["cva"] }; diff --git a/packages/dev-config/tsconfig.base-next.json b/packages/dev-config/tsconfig.base-next.json index 56d875666..6ef131dfe 100644 --- a/packages/dev-config/tsconfig.base-next.json +++ b/packages/dev-config/tsconfig.base-next.json @@ -4,17 +4,13 @@ "incremental": true, "isolatedModules": true, "jsx": "preserve", - "lib": [ - "es6", - "dom", - "dom.iterable", - "esnext" - ], + "lib": ["es6", "dom", "dom.iterable", "esnext"], "module": "esnext", "moduleResolution": "node", "noEmit": true, "strict": false, - "target": "es5" + "target": "es5", + "plugins": [{ "name": "next" }] }, "extends": "./tsconfig.base.json" } diff --git a/packages/ui/.prettierrc.js b/packages/ui/.prettierrc.js new file mode 100644 index 000000000..8e89b39c8 --- /dev/null +++ b/packages/ui/.prettierrc.js @@ -0,0 +1 @@ +module.exports = require("@akashnetwork/dev-config/.prettierrc"); diff --git a/packages/ui/components.json b/packages/ui/components.json new file mode 100644 index 000000000..f1a6adde5 --- /dev/null +++ b/packages/ui/components.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "styles/globals.css", + "baseColor": "slate", + "cssVariables": true + }, + "aliases": { + "components": "@/components", + "utils": "@utils/cn" + } +} diff --git a/apps/deploy-web/src/components/ui/button.tsx b/packages/ui/components/button.tsx similarity index 74% rename from apps/deploy-web/src/components/ui/button.tsx rename to packages/ui/components/button.tsx index 86605471c..85a987402 100644 --- a/apps/deploy-web/src/components/ui/button.tsx +++ b/packages/ui/components/button.tsx @@ -2,19 +2,18 @@ import * as React from "react"; import { Slot } from "@radix-ui/react-slot"; import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@src/utils/styleUtils"; +import { cn } from "../utils/cn"; const buttonVariants = cva( - "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + "ring-offset-background focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", { variants: { variant: { default: "bg-primary text-primary-foreground hover:bg-primary/90", destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", - outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + outline: "border-input bg-background hover:bg-accent hover:text-accent-foreground border", secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", - ghost: "cursor-pointer hover:bg-accent hover:text-accent-foreground", + ghost: "hover:bg-accent hover:text-accent-foreground cursor-pointer", text: "hover:text-primary text-current", link: "text-primary underline-offset-4 hover:underline" }, diff --git a/packages/ui/components/index.tsx b/packages/ui/components/index.tsx new file mode 100644 index 000000000..2b25e12b0 --- /dev/null +++ b/packages/ui/components/index.tsx @@ -0,0 +1 @@ +export * from "./button"; \ No newline at end of file diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 000000000..0863018a7 --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,41 @@ +{ + "name": "@akashnetwork/ui", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "description": "", + "exports": { + "./components": "./components/index.tsx", + "./utils": "./utils/index.ts", + "./tailwind": "./tailwind.config.ts", + "./postcss": "./postcss.config.js", + "./styles": "./styles/global.css" + }, + "dependencies": { + "@radix-ui/react-slot": "^1.0.2", + "class-variance-authority": "0.7.0", + "clsx": "2.1.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "tailwind-merge": "2.3.0" + }, + "devDependencies": { + "@akashnetwork/dev-config": "*", + "@tailwindcss/typography": "^0.5.13", + "@types/react": "18.2.0", + "@types/react-dom": "18.2.0", + "autoprefixer": "^10.4.16", + "prettier": "^3.3.0", + "prettier-plugin-tailwindcss": "^0.6.1", + "prop-types": "^15.8.1", + "tailwind-scrollbar": "^3.1.0", + "tailwindcss": "^3.4.3", + "tailwindcss-animate": "^1.0.7", + "typescript": "5.1.3" + } +} + diff --git a/packages/ui/postcss.config.js b/packages/ui/postcss.config.js new file mode 100644 index 000000000..1a3cd81d9 --- /dev/null +++ b/packages/ui/postcss.config.js @@ -0,0 +1,8 @@ +module.exports = { + plugins: { + "postcss-import": {}, + "tailwindcss/nesting": "postcss-nesting", + tailwindcss: {}, + autoprefixer: {} + } +}; diff --git a/apps/deploy-web/src/styles/globals.css b/packages/ui/styles/global.css similarity index 90% rename from apps/deploy-web/src/styles/globals.css rename to packages/ui/styles/global.css index 3ed78f6a5..655054680 100644 --- a/apps/deploy-web/src/styles/globals.css +++ b/packages/ui/styles/global.css @@ -60,22 +60,10 @@ transition: background-color 0.2s ease; } - html { - scroll-padding-top: 57px; - -webkit-font-smoothing: auto; - height: 100%; - width: 100%; - } - body { overflow-y: scroll !important; @apply bg-background text-foreground; - height: calc(100% - 57px) !important; - /* width: 100%; */ - overflow-y: scroll !important; - padding: 0 !important; - &::-webkit-scrollbar { width: 10px; } diff --git a/packages/ui/tailwind.config.ts b/packages/ui/tailwind.config.ts new file mode 100644 index 000000000..37a95fdda --- /dev/null +++ b/packages/ui/tailwind.config.ts @@ -0,0 +1,94 @@ +import type { Config } from "tailwindcss"; + +module.exports = function (app: string) { + const config: Config = { + darkMode: "selector", + content: [ + "./pages/**/*.{ts,tsx}", + "./components/**/*.{ts,tsx}", + "./stories/**/*.{ts,tsx}", + "./app/**/*.{ts,tsx}", + "./src/**/*.{ts,tsx}", + `../../apps/${app}/src/**/*.{ts,tsx}` + ], + theme: { + container: { + center: true, + padding: "1rem", + screens: { + "2xl": "1400px" + } + }, + extend: { + fontFamily: { + sans: ["var(--font-geist-sans)"], + mono: ["var(--font-geist-mono)"] + }, + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + header: "hsl(var(--header))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + visited: "hsl(var(--primary-visited))" + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))" + }, + warning: { + DEFAULT: "hsl(var(--warning))", + foreground: "hsl(var(--warning-foreground))" + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))" + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))" + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))" + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))" + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))" + } + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)" + }, + keyframes: { + "accordion-down": { + from: { height: "0" }, + to: { height: "var(--radix-accordion-content-height)" } + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: "0" } + } + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out" + } + } + }, + // eslint-disable-next-line @typescript-eslint/no-var-requires + plugins: [require("tailwindcss-animate"), require("tailwind-scrollbar")({ nocompatible: true }), require("@tailwindcss/typography")] + }; + + return config; +}; diff --git a/packages/ui/tsconfig.build.json b/packages/ui/tsconfig.build.json new file mode 100644 index 000000000..1f811acbf --- /dev/null +++ b/packages/ui/tsconfig.build.json @@ -0,0 +1,18 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": ".", + "moduleResolution": "bundler", + "paths": { + "@/*": [ + "./*" + ] + }, + "plugins": [ + { + "name": "next" + } + ] + }, + "extends": "@akashnetwork/dev-config/tsconfig.base-next.json" +} diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json new file mode 100644 index 000000000..ba00da976 --- /dev/null +++ b/packages/ui/tsconfig.json @@ -0,0 +1,13 @@ +{ + "exclude": [ + "node_modules" + ], + "extends": "./tsconfig.build.json", + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts" + ], + "compileOnSave": false +} diff --git a/packages/ui/utils/cn.ts b/packages/ui/utils/cn.ts new file mode 100644 index 000000000..ec79801fe --- /dev/null +++ b/packages/ui/utils/cn.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/packages/ui/utils/index.ts b/packages/ui/utils/index.ts new file mode 100644 index 000000000..6cdfc327f --- /dev/null +++ b/packages/ui/utils/index.ts @@ -0,0 +1 @@ +export * from "./cn"; \ No newline at end of file