diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 85f1a638c..b32cacaf7 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -9,7 +9,10 @@ on:
NAMESPACE:
required: true
type: string
- MULTI_ARCH:
+ BUILD_AMD64:
+ required: true
+ type: boolean
+ BUILD_ARM64:
required: true
type: boolean
TAG:
@@ -45,11 +48,16 @@ on:
required: true
type: string
default: cloud-pi-native/console
- MULTI_ARCH:
- description: Build for both amd64 and arm64
+ BUILD_AMD64:
+ description: Build for amd64
required: true
type: boolean
- default: false
+ default: true
+ BUILD_ARM64:
+ description: Build for arm64
+ required: true
+ type: boolean
+ default: true
USE_QEMU:
description: Use QEMU emulator for arm64
required: true
@@ -88,7 +96,7 @@ jobs:
- matrix
strategy:
matrix:
- runners: ${{ inputs.MULTI_ARCH && !inputs.USE_QEMU && fromJson('["ubuntu-latest", "ARM64"]') || fromJson('["ubuntu-latest"]') }}
+ runners: ${{ (inputs.BUILD_AMD64 && inputs.BUILD_ARM64 && !inputs.USE_QEMU && fromJson('["ubuntu-latest", "ARM64"]')) || (inputs.BUILD_ARM64 && !inputs.USE_QEMU && fromJson('["ARM64"]')) || fromJson('["ubuntu-latest"]') }}
images: ${{ fromJSON(needs.matrix.outputs.build-matrix) }}
steps:
- name: Checks-out repository
@@ -129,7 +137,7 @@ jobs:
context: ${{ matrix.images.build.context }}
file: ${{ matrix.images.build.dockerfile }}
provenance: false
- platforms: ${{ inputs.MULTI_ARCH && inputs.USE_QEMU && 'linux/amd64,linux/arm64' || (contains(runner.arch, 'ARM') && 'linux/arm64' || 'linux/amd64') }}
+ platforms: ${{ (inputs.BUILD_AMD64 && inputs.BUILD_ARM64 && inputs.USE_QEMU && 'linux/amd64,linux/arm64') || (inputs.BUILD_ARM64 && 'linux/arm64') || (inputs.BUILD_AMD64 && 'linux/amd64') }}
outputs: type=image,name=${{ inputs.REGISTRY }}/${{ inputs.NAMESPACE }}/${{ matrix.images.name }},push-by-digest=true,name-canonical=true,push=true
build-args: |
APP_VERSION=${{ inputs.TAG || steps.short-sha.outputs.SHORT_SHA }}
@@ -155,7 +163,7 @@ jobs:
- name: Upload digest
uses: actions/upload-artifact@v4
with:
- name: digests-${{ matrix.images.name }}-${{ inputs.MULTI_ARCH && inputs.USE_QEMU && 'multiarch' || (contains(runner.arch, 'ARM') && 'arm64' || 'amd64') }}
+ name: digests-${{ matrix.images.name }}-${{ (inputs.BUILD_AMD64 && inputs.BUILD_ARM64 && inputs.USE_QEMU && 'multiarch') || (inputs.BUILD_ARM64 && 'arm64') || (inputs.BUILD_AMD64 && 'amd64') }}
path: /tmp/digests/${{ matrix.images.name }}/*
if-no-files-found: error
retention-days: 1
diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml
index 9df03f4d9..c7668d3e9 100644
--- a/.github/workflows/cd.yml
+++ b/.github/workflows/cd.yml
@@ -8,7 +8,8 @@ on:
env:
REGISTRY: ghcr.io
NAMESPACE: "${{ github.repository }}"
- MULTI_ARCH: true
+ BUILD_AMD64: true
+ BUILD_ARM64: true
USE_QEMU: false
NODE_VERSION: 22.10.0
PNPM_VERSION: 9.10.0
@@ -19,7 +20,8 @@ jobs:
outputs:
REGISTRY: ${{ env.REGISTRY }}
NAMESPACE: ${{ env.NAMESPACE }}
- MULTI_ARCH: ${{ env.MULTI_ARCH }}
+ BUILD_AMD64: ${{ env.BUILD_AMD64 }}
+ BUILD_ARM64: ${{ env.BUILD_ARM64 }}
USE_QEMU: ${{ env.USE_QEMU }}
NODE_VERSION: ${{ env.NODE_VERSION }}
PNPM_VERSION: ${{ env.PNPM_VERSION }}
@@ -30,7 +32,7 @@ jobs:
release:
uses: ./.github/workflows/release.yml
- build:
+ build-amd64:
uses: ./.github/workflows/build.yml
if: ${{ needs.release.outputs.release-created == 'true' }}
needs:
@@ -43,8 +45,26 @@ jobs:
MAJOR_TAG: ${{ needs.release.outputs.major-tag }}
MINOR_TAG: ${{ needs.release.outputs.minor-tag }}
PATCH_TAG: ${{ needs.release.outputs.patch-tag }}
- MULTI_ARCH: ${{ needs.expose-vars.outputs.MULTI_ARCH == 'false' }}
- USE_QEMU: ${{ needs.expose-vars.outputs.USE_QEMU == 'false' }}
+ BUILD_AMD64: ${{ needs.expose-vars.outputs.BUILD_AMD64 == 'true' }}
+ BUILD_ARM64: false
+ USE_QEMU: ${{ needs.expose-vars.outputs.USE_QEMU == 'true' }}
+
+ build-arm64:
+ uses: ./.github/workflows/build.yml
+ if: ${{ needs.release.outputs.release-created == 'true' }}
+ needs:
+ - expose-vars
+ - release
+ with:
+ REGISTRY: ${{ needs.expose-vars.outputs.REGISTRY }}
+ NAMESPACE: ${{ needs.expose-vars.outputs.NAMESPACE }}
+ TAG: ${{ needs.release.outputs.major-tag }}.${{ needs.release.outputs.minor-tag }}.${{ needs.release.outputs.patch-tag }}
+ MAJOR_TAG: ${{ needs.release.outputs.major-tag }}
+ MINOR_TAG: ${{ needs.release.outputs.minor-tag }}
+ PATCH_TAG: ${{ needs.release.outputs.patch-tag }}
+ BUILD_AMD64: false
+ BUILD_ARM64: ${{ needs.expose-vars.outputs.BUILD_ARM64 == 'true' }}
+ USE_QEMU: ${{ needs.expose-vars.outputs.USE_QEMU == 'true' }}
npm-publish:
uses: ./.github/workflows/npm.yml
@@ -67,26 +87,10 @@ jobs:
needs:
- expose-vars
- release
+ - build-amd64
steps:
- name: Trigger helm-charts update
env:
GH_TOKEN: ${{ secrets.HELM_CHART_TOKEN }}
run: |
gh workflow --repo cloud-pi-native/helm-charts run update-chart.yaml -f APP_VERSION=${{ needs.release.outputs.major-tag }}.${{ needs.release.outputs.minor-tag }}.${{ needs.release.outputs.patch-tag }} -f CHART_NAME=dso-console
-
- build-arm:
- uses: ./.github/workflows/build.yml
- if: ${{ needs.release.outputs.release-created == 'true' }}
- needs:
- - expose-vars
- - release
- - build
- with:
- REGISTRY: ${{ needs.expose-vars.outputs.REGISTRY }}
- NAMESPACE: ${{ needs.expose-vars.outputs.NAMESPACE }}
- TAG: ${{ needs.release.outputs.major-tag }}.${{ needs.release.outputs.minor-tag }}.${{ needs.release.outputs.patch-tag }}
- MAJOR_TAG: ${{ needs.release.outputs.major-tag }}
- MINOR_TAG: ${{ needs.release.outputs.minor-tag }}
- PATCH_TAG: ${{ needs.release.outputs.patch-tag }}
- MULTI_ARCH: ${{ needs.expose-vars.outputs.MULTI_ARCH == 'true' }}
- USE_QEMU: ${{ needs.expose-vars.outputs.USE_QEMU == 'true' }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ded04da5a..acc9e09df 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -16,7 +16,8 @@ env:
PNPM_VERSION: 9.10.0
REGISTRY: ghcr.io
NAMESPACE: "${{ github.repository }}"
- MULTI_ARCH: false
+ BUILD_AMD64: true
+ BUILD_ARM64: false
USE_QEMU: false
jobs:
@@ -52,7 +53,8 @@ jobs:
PNPM_VERSION: ${{ env.PNPM_VERSION }}
REGISTRY: ${{ env.REGISTRY }}
NAMESPACE: ${{ env.NAMESPACE }}
- MULTI_ARCH: ${{ env.MULTI_ARCH }}
+ BUILD_AMD64: ${{ env.BUILD_AMD64 }}
+ BUILD_ARM64: ${{ env.BUILD_ARM64 }}
USE_QEMU: ${{ env.USE_QEMU }}
steps:
- name: Exposing env vars
@@ -115,7 +117,8 @@ jobs:
REGISTRY: ${{ needs.expose-vars.outputs.REGISTRY }}
NAMESPACE: ${{ needs.expose-vars.outputs.NAMESPACE }}
TAG: pr-${{ github.event.pull_request.number || github.event.number }}
- MULTI_ARCH: ${{ needs.expose-vars.outputs.MULTI_ARCH == 'true' }}
+ BUILD_AMD64: ${{ needs.expose-vars.outputs.BUILD_AMD64 == 'true' }}
+ BUILD_ARM64: ${{ needs.expose-vars.outputs.BUILD_ARM64 == 'true' }}
USE_QEMU: ${{ needs.expose-vars.outputs.USE_QEMU == 'true' }}
PR_NUMBER: ${{ github.event.pull_request.number || github.event.number }}
secrets:
diff --git a/apps/client/package.json b/apps/client/package.json
index 1b3909086..bacd19f52 100644
--- a/apps/client/package.json
+++ b/apps/client/package.json
@@ -79,9 +79,11 @@
"unplugin-auto-import": "^0.17.8",
"unplugin-vue-components": "^0.27.2",
"vite": "^5.3.2",
+ "vite-plugin-pwa": "^0.21.0",
"vitest": "^1.6.0",
"vue-eslint-parser": "^9.4.3",
- "vue-tsc": "^2.0.22"
+ "vue-tsc": "^2.0.22",
+ "workbox-window": "^7.3.0"
},
"publishConfig": {
"registry": "https://registry.npmjs.org/",
diff --git a/apps/client/src/App.vue b/apps/client/src/App.vue
index ece8c2d2e..63c716027 100644
--- a/apps/client/src/App.vue
+++ b/apps/client/src/App.vue
@@ -6,6 +6,7 @@ import { useSystemSettingsStore } from './stores/system-settings.js'
import { useProjectStore } from './stores/project.js'
import { useUserStore } from './stores/user.js'
import { useAdminRoleStore } from './stores/admin-role.js'
+import ReloadPrompt from './components/ReloadPrompt.vue'
import { useServiceStore } from '@/stores/services-monitor.js'
const keycloak = getKeycloak()
@@ -102,6 +103,7 @@ watch(userStore, async () => {
+
diff --git a/apps/client/src/env.d.ts b/apps/client/src/env.d.ts
new file mode 100644
index 000000000..b5f084a99
--- /dev/null
+++ b/apps/client/src/env.d.ts
@@ -0,0 +1,15 @@
+///
+///
+
+declare module 'virtual:pwa-register/vue' {
+ import type { Ref } from 'vue'
+ import type { RegisterSWOptions } from 'vite-plugin-pwa/types'
+
+ export type { RegisterSWOptions }
+
+ export function useRegisterSW(options?: RegisterSWOptions): {
+ needRefresh: Ref
+ offlineReady: Ref
+ updateServiceWorker: (reloadPage?: boolean) => Promise
+ }
+}
diff --git a/apps/client/src/main.ts b/apps/client/src/main.ts
index 72c0ce6c1..04c00ba51 100644
--- a/apps/client/src/main.ts
+++ b/apps/client/src/main.ts
@@ -8,10 +8,10 @@ import 'vue3-json-viewer/dist/index.css'
import JsonViewer from 'vue3-json-viewer'
// @ts-ignore '@gouvminint/vue-dsfr' missing types
import { DsfrSelect, DsfrTag, VIcon } from '@gouvminint/vue-dsfr'
-import { keycloakInit } from './utils/keycloak/keycloak'
+import { keycloakInit } from './utils/keycloak/keycloak.js'
import App from './App.vue'
-import router from './router/index'
+import router from './router/index.js'
import 'virtual:uno.css'
import 'virtual:unocss-devtools'
diff --git a/apps/client/tsconfig.json b/apps/client/tsconfig.json
index 2497bf546..3032f311d 100644
--- a/apps/client/tsconfig.json
+++ b/apps/client/tsconfig.json
@@ -13,15 +13,20 @@
// Base
"baseUrl": "./",
"rootDir": "./src",
- "module": "NodeNext",
- "moduleResolution": "NodeNext",
+ "module": "Preserve",
+ "moduleResolution": "Bundler",
"paths": {
"@/*": [
"src/*"
]
},
"resolveJsonModule": true,
- "types": ["vitest", "vite/client"],
+ "types": [
+ "vitest",
+ "vite/client",
+ "vite-plugin-pwa/vue",
+ "vite-plugin-pwa/client"
+ ],
"allowImportingTsExtensions": false,
"allowJs": true,
"strict": true,
@@ -48,7 +53,8 @@
"include": [
"./src/**/*.ts",
"./src/**/*.js",
- "./src/**/*.vue"
+ "./src/**/*.vue",
+ "./src/**/*.d.ts"
],
"exclude": [
"./src/**/*.spec.ts",
diff --git a/apps/client/vite.config.ts b/apps/client/vite.config.ts
index edae44da3..a53312cc2 100644
--- a/apps/client/vite.config.ts
+++ b/apps/client/vite.config.ts
@@ -5,6 +5,7 @@ import UnoCSS from 'unocss/vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
+import { VitePWA } from 'vite-plugin-pwa'
import {
vueDsfrAutoimportPreset,
vueDsfrComponentResolver,
@@ -78,6 +79,32 @@ export default defineConfig({
],
}),
UnoCSS(),
+ VitePWA({
+ registerType: 'prompt', // autoUpdate
+ workbox: {
+ maximumFileSizeToCacheInBytes: 5_000_000,
+ cleanupOutdatedCaches: true,
+ },
+ devOptions: {
+ enabled: false,
+ },
+ manifest: {
+ name: 'Console Cloud Pi Native',
+ short_name: 'CPiN',
+ description: 'Une console web pour les controller tous',
+ start_url: '/',
+ display: 'standalone',
+ background_color: '#ffffff',
+ theme_color: '#42b883',
+ icons: [
+ {
+ src: '/favicon.ico',
+ sizes: '16x16',
+ type: 'image/png',
+ },
+ ],
+ },
+ }),
],
base: '/',
resolve: {
diff --git a/apps/server/src/resources/cluster/router.spec.ts b/apps/server/src/resources/cluster/router.spec.ts
index f9f1ef68a..7822b5ec9 100644
--- a/apps/server/src/resources/cluster/router.spec.ts
+++ b/apps/server/src/resources/cluster/router.spec.ts
@@ -56,7 +56,19 @@ describe('test clusterContract', () => {
describe('getClusterDetails', () => {
it('should return cluster details', async () => {
- const cluster: ClusterDetails = { id: faker.string.uuid(), clusterResources: true, infos: '', label: faker.string.alpha(), privacy: 'public', stageIds: [], zoneId: faker.string.uuid(), kubeconfig: { cluster: { tlsServerName: faker.string.alpha() }, user: {} } }
+ const cluster: ClusterDetails = {
+ id: faker.string.uuid(),
+ clusterResources: true,
+ infos: '',
+ label: faker.string.alpha(),
+ privacy: 'public',
+ stageIds: [],
+ zoneId: faker.string.uuid(),
+ kubeconfig: {
+ cluster: { tlsServerName: faker.string.alpha() },
+ user: {},
+ },
+ }
const user = getUserMockInfos(true)
authUserMock.mockResolvedValueOnce(user)
@@ -111,7 +123,19 @@ describe('test clusterContract', () => {
})
describe('createCluster', () => {
- const cluster: ClusterDetails = { id: faker.string.uuid(), clusterResources: true, infos: '', label: faker.string.alpha(), privacy: 'public', stageIds: [], zoneId: faker.string.uuid(), kubeconfig: { cluster: { tlsServerName: faker.string.alpha() }, user: {} } }
+ const cluster: ClusterDetails = {
+ id: faker.string.uuid(),
+ clusterResources: true,
+ infos: '',
+ label: faker.string.alpha(),
+ privacy: 'public',
+ stageIds: [],
+ zoneId: faker.string.uuid(),
+ kubeconfig: {
+ cluster: { tlsServerName: faker.string.alpha() },
+ user: {},
+ },
+ }
it('should return created cluster', async () => {
const user = getUserMockInfos(true)
@@ -153,7 +177,18 @@ describe('test clusterContract', () => {
describe('updateCluster', () => {
const clusterId = faker.string.uuid()
- const cluster: Omit = { clusterResources: true, infos: '', label: faker.string.alpha(), privacy: 'public', stageIds: [], zoneId: faker.string.uuid(), kubeconfig: { cluster: { tlsServerName: faker.string.alpha() }, user: {} } }
+ const cluster: Omit = {
+ clusterResources: true,
+ infos: '',
+ label: faker.string.alpha(),
+ privacy: 'public',
+ stageIds: [],
+ zoneId: faker.string.uuid(),
+ kubeconfig: {
+ cluster: { tlsServerName: faker.string.alpha() },
+ user: {},
+ },
+ }
it('should return created cluster', async () => {
const user = getUserMockInfos(true)
diff --git a/packages/hooks/src/hooks/hook.spec.ts b/packages/hooks/src/hooks/hook.spec.ts
index 66338f535..ffc120259 100644
--- a/packages/hooks/src/hooks/hook.spec.ts
+++ b/packages/hooks/src/hooks/hook.spec.ts
@@ -1,8 +1,7 @@
import { describe, expect, it } from 'vitest'
-import { PluginApi } from '../utils/utils.ts'
+import { PluginApi, okStatus } from '../utils/utils.ts'
import { createHook, executeStep } from './hook.ts'
-const okStatus = { status: { result: 'OK' } } as const
const koStatus = { status: { result: 'KO', message: 'Failed' } } as const
const warningStatus = { status: { result: 'WARNING', message: 'Failed' } } as const
diff --git a/packages/hooks/src/utils/utils.ts b/packages/hooks/src/utils/utils.ts
index 3607ec40a..ed3b8a5ec 100644
--- a/packages/hooks/src/utils/utils.ts
+++ b/packages/hooks/src/utils/utils.ts
@@ -26,3 +26,5 @@ export const disabledOrDefaultOrNullish = (value?: string): boolean | undefined
export const specificallyDisabled = (value?: string): boolean | undefined => value ? value === DISABLED : undefined
export const specificallyEnabled = (value?: string): boolean | undefined => value ? value === ENABLED : undefined
export const defaultOrNullish = (value?: string): boolean | undefined => value ? DEFAULT === value : true
+
+export const okStatus = { status: { result: 'OK' } } as const
diff --git a/packages/shared/src/schemas/cluster.ts b/packages/shared/src/schemas/cluster.ts
index eaf3a3a46..720414eea 100644
--- a/packages/shared/src/schemas/cluster.ts
+++ b/packages/shared/src/schemas/cluster.ts
@@ -38,8 +38,7 @@ export const KubeconfigSchema = z.object({
cluster: z.object({
server: z.string()
.optional(),
- tlsServerName: z.string()
- .min(1),
+ tlsServerName: z.string(),
skipTLSVerify: z.boolean()
.optional(),
caData: z.string()
diff --git a/packages/shared/src/utils/const.ts b/packages/shared/src/utils/const.ts
index 5f3f5bab2..aa4647ad0 100644
--- a/packages/shared/src/utils/const.ts
+++ b/packages/shared/src/utils/const.ts
@@ -1,5 +1,6 @@
export const adminGroupPath = '/admin'
+export const inClusterLabel = 'in-cluster' as const
export const projectIsLockedInfo = 'Le projet est verrouillé, pas d\'action possible'
export const missingCredentials = 'Si le dépôt est privé, vous devez renseigner au moins le nom d\'utilisateur ou le token'
export const invalidGitUrl = 'L\'adresse doit commencer par https et se terminer par .git'
diff --git a/plugins/argocd/package.json b/plugins/argocd/package.json
index 19d44cf59..5e1484b25 100644
--- a/plugins/argocd/package.json
+++ b/plugins/argocd/package.json
@@ -1,7 +1,7 @@
{
"name": "@cpn-console/argocd-plugin",
"type": "module",
- "version": "2.1.2",
+ "version": "2.1.3",
"private": false,
"description": "",
"main": "dist/index.js",
diff --git a/plugins/argocd/src/cluster.ts b/plugins/argocd/src/cluster.ts
index fb68e41e4..da2f336d9 100644
--- a/plugins/argocd/src/cluster.ts
+++ b/plugins/argocd/src/cluster.ts
@@ -1,11 +1,16 @@
import type { V1Secret } from '@kubernetes/client-node'
import { type ClusterObject, type StepCall, parseError } from '@cpn-console/hooks'
+import { inClusterLabel } from '@cpn-console/shared'
import { getConfig, getK8sApi } from './utils.js'
export const upsertCluster: StepCall = async (payload) => {
try {
const cluster = payload.args
- await createClusterSecret(cluster)
+ if (cluster.label === inClusterLabel) {
+ await deleteClusterSecret(cluster.secretName)
+ } else {
+ await createClusterSecret(cluster)
+ }
return {
status: {
result: 'OK',
diff --git a/plugins/argocd/src/functions.ts b/plugins/argocd/src/functions.ts
index da5a8ad78..017545d6f 100644
--- a/plugins/argocd/src/functions.ts
+++ b/plugins/argocd/src/functions.ts
@@ -5,6 +5,7 @@ import { dump } from 'js-yaml'
import type { GitlabProjectApi } from '@cpn-console/gitlab-plugin/types/class.js'
import type { VaultProjectApi } from '@cpn-console/vault-plugin/types/class.js'
import { PatchUtils } from '@kubernetes/client-node'
+import { inClusterLabel } from '@cpn-console/shared'
import { generateAppProjectName, generateApplicationName, getConfig, getCustomK8sApi, uniqueResource } from './utils.js'
import { getApplicationObject, getMinimalApplicationObject } from './applications.js'
import { getAppProjectObject, getMinimalAppProjectPatch } from './app-project.js'
@@ -232,7 +233,7 @@ async function ensureInfraEnvValues(project: Project, environment: Environment,
'dso/environment': environment.name,
},
argocd: {
- cluster: 'in-cluster',
+ cluster: inClusterLabel,
namespace: getConfig().namespace,
project: appProjectName,
envChartVersion: process.env.DSO_ENV_CHART_VERSION ?? 'dso-env-1.4.0',
@@ -264,19 +265,23 @@ async function ensureInfraEnvValues(project: Project, environment: Environment,
async function getArgoRepoSource(repoName: string, env: string, gitlabApi: GitlabProjectApi): Promise {
const targetRevision = 'HEAD'
- const repoId = await gitlabApi.getProjectId(repoName)
- const repoURL = await gitlabApi.getRepoUrl(repoName)
- const files = await gitlabApi.listFiles(repoId, { path: '/', ref: 'HEAD', recursive: false })
const valueFiles = [] // Empty means not a Helm repository
let path = '.'
- const result = files.find(f => f.name === 'values.yaml')
- if (result) {
- valueFiles.push('values.yaml')
- path = dirname(result.path)
- const valuesEnv = `values-${env}.yaml`
- if (files.find(f => (path === '.' && f.path === valuesEnv) || f.path === `${path}/${valuesEnv}`)) {
- valueFiles.push(valuesEnv)
+ const repoId = await gitlabApi.getProjectId(repoName)
+ const repoURL = await gitlabApi.getRepoUrl(repoName)
+ try {
+ const files = await gitlabApi.listFiles(repoId, { path: '/', ref: 'HEAD', recursive: false })
+ const result = files.find(f => f.name === 'values.yaml')
+ if (result) {
+ valueFiles.push('values.yaml')
+ path = dirname(result.path)
+ const valuesEnv = `values-${env}.yaml`
+ if (files.find(f => (path === '.' && f.path === valuesEnv) || f.path === `${path}/${valuesEnv}`)) {
+ valueFiles.push(valuesEnv)
+ }
}
+ } catch (error) {
+ console.log(`Error ignored when trying to list files of repository ${repoName}: ${error.message}`)
}
return {
repoURL,
diff --git a/plugins/argocd/src/index.ts b/plugins/argocd/src/index.ts
index a1e8fa0cc..09840987b 100644
--- a/plugins/argocd/src/index.ts
+++ b/plugins/argocd/src/index.ts
@@ -10,7 +10,7 @@ export const plugin: Plugin = {
subscribedHooks: {
upsertProject: {
steps: {
- post: upsertProject,
+ main: upsertProject,
},
},
deleteProject: {
diff --git a/plugins/gitlab/package.json b/plugins/gitlab/package.json
index d599302d4..3a8eadd36 100644
--- a/plugins/gitlab/package.json
+++ b/plugins/gitlab/package.json
@@ -1,7 +1,7 @@
{
"name": "@cpn-console/gitlab-plugin",
"type": "module",
- "version": "2.4.2",
+ "version": "2.4.3",
"private": false,
"description": "",
"main": "dist/index.js",
diff --git a/plugins/gitlab/src/class.ts b/plugins/gitlab/src/class.ts
index b495cdf39..4d90338a2 100644
--- a/plugins/gitlab/src/class.ts
+++ b/plugins/gitlab/src/class.ts
@@ -28,34 +28,157 @@ type PendingCommits = Record
}>
-export class GitlabProjectApi extends PluginApi {
- private api: Gitlab
- private project: Project | UniqueRepo
- private gitlabGroup: GroupSchema & { statistics: GroupStatisticsSchema } | undefined
- private specialRepositories: string[] = [infraAppsRepoName, internalMirrorRepoName]
+export class GitlabApi extends PluginApi {
+ protected api: Gitlab
private pendingCommits: PendingCommits = {}
- // private organizationGroup: GroupSchema & { statistics: GroupStatisticsSchema } | undefined
- constructor(project: Project | UniqueRepo) {
+ constructor() {
super()
- this.project = project
this.api = getApi()
}
- // Group Project
- private async createProjectGroup(): Promise {
- const searchResult = await this.api.Groups.search(this.project.name)
- const parentId = await getOrganizationId(this.project.organization.name)
- const existingGroup = searchResult.find(group => group.parent_id === parentId && group.name === this.project.name)
+ public async createEmptyRepository(repoName: string, groupId: number, description?: string | undefined) {
+ const namespaceId = groupId
+ const project = await this.api.Projects.create({
+ name: repoName,
+ path: repoName,
+ namespaceId,
+ description,
+ })
+ // Dépôt tout juste créé, zéro branche => pas d'erreur (filesTree undefined)
+ await this.api.Commits.create(project.id, 'main', 'ci: 🌱 First commit', [])
+ return project
+ }
- if (existingGroup) return existingGroup
+ public async commitCreateOrUpdate(
+ repoId: number,
+ fileContent: string,
+ filePath: string,
+ branch: string = 'main',
+ comment: string = 'ci: :robot_face: Update file content',
+ ): Promise {
+ let action: CommitAction['action'] = 'create'
- return this.api.Groups.create(this.project.name, this.project.name, {
- parentId,
- projectCreationLevel: 'maintainer',
- subgroupCreationLevel: 'owner',
- defaultBranchProtection: 0,
- })
+ const branches = await this.api.Branches.all(repoId)
+ if (branches.some(b => b.name === branch)) {
+ let actualFile: RepositoryFileExpandedSchema | undefined
+ try {
+ actualFile = await this.api.RepositoryFiles.show(repoId, filePath, branch)
+ } catch (_) {}
+ if (actualFile) {
+ const newContentDigest = createHash('sha256').update(fileContent).digest('hex')
+ if (actualFile.content_sha256 === newContentDigest) {
+ // Already up-to-date
+ return false
+ }
+ // Update needed
+ action = 'update'
+ }
+ }
+
+ const commitAction: CommitAction = {
+ action,
+ filePath,
+ content: fileContent,
+ }
+ this.addActions(repoId, branch, comment, [commitAction])
+
+ return true
+ }
+
+ /**
+ * Fonction pour supprimer une liste de fichiers d'un repo
+ * @param repoId
+ * @param files
+ * @param branch
+ * @param comment
+ */
+ public async commitDelete(
+ repoId: number,
+ files: string[],
+ branch: string = 'main',
+ comment: string = 'ci: :robot_face: Delete files',
+ ): Promise {
+ if (files.length) {
+ const commitActions: CommitAction[] = files.map((filePath) => {
+ return {
+ action: 'delete',
+ filePath,
+ }
+ })
+ this.addActions(repoId, branch, comment, commitActions)
+ return true
+ }
+ return false
+ }
+
+ private addActions(repoId: number, branch: string, comment: string, commitActions: CommitAction[]) {
+ if (!this.pendingCommits[repoId]) {
+ this.pendingCommits[repoId] = { branches: {} }
+ }
+ if (this.pendingCommits[repoId].branches[branch]) {
+ this.pendingCommits[repoId].branches[branch].actions.push(...commitActions)
+ this.pendingCommits[repoId].branches[branch].messages.push(comment)
+ } else {
+ this.pendingCommits[repoId].branches[branch] = {
+ actions: commitActions,
+ messages: [comment],
+ }
+ }
+ }
+
+ public async commitFiles() {
+ let filesUpdated: number = 0
+ for (const [id, repo] of objectEntries(this.pendingCommits)) {
+ for (const [branch, details] of objectEntries(repo.branches)) {
+ const filesNumber = details.actions.length
+ if (filesNumber) {
+ filesUpdated += filesNumber
+ const message = [`ci: :robot_face: Update ${filesNumber} file${filesNumber > 1 ? 's' : ''}`, ...details.messages.filter(m => m)].join('\n')
+ await this.api.Commits.create(id, branch, message, details.actions)
+ }
+ }
+ }
+ return filesUpdated
+ }
+
+ public async listFiles(repoId: number, options: AllRepositoryTreesOptions & PaginationRequestOptions<'keyset'> = {}) {
+ options.path = options?.path ?? '/'
+ options.ref = options?.ref ?? 'main'
+ options.recursive = options?.recursive ?? false
+ try {
+ const files: RepositoryTreeSchema[] = await this.api.Repositories.allRepositoryTrees(repoId, options)
+ // if (depth >= 0) {
+ // for (const file of files) {
+ // if (file.type !== 'tree') {
+ // return []
+ // }
+ // const childrenFiles = await this.listFiles(repoId, { depth: depth - 1, ...options, path: file.path })
+ // console.trace({ file, childrenFiles })
+
+ // files.push(...childrenFiles)
+ // }
+ // }
+ return files
+ } catch (error) {
+ const { cause } = error as GitbeakerRequestError
+ if (cause?.description === '404 Tree Not Found') {
+ // Empty repository, with zero commit ==> Zero files
+ return []
+ } else {
+ throw error
+ }
+ }
+ }
+
+ public async deleteRepository(repoId: number) {
+ return this.api.Projects.remove(repoId, { permanentlyRemove: true })
+ }
+}
+
+export class GitlabZoneApi extends GitlabApi {
+ constructor() {
+ super()
}
// Group Infra
@@ -64,23 +187,54 @@ export class GitlabProjectApi extends PluginApi {
// Get or create projects_root_dir/infra group
const searchResult = await this.api.Groups.search(infraGroupName)
const existingParentGroup = searchResult.find(group => group.parent_id === rootId && group.name === infraGroupName)
- const infraParentGroup = existingParentGroup || await this.api.Groups.create(infraGroupName, infraGroupPath, {
+ return existingParentGroup || await this.api.Groups.create(infraGroupName, infraGroupPath, {
parentId: rootId,
projectCreationLevel: 'maintainer',
subgroupCreationLevel: 'owner',
defaultBranchProtection: 0,
- description: 'Group of all organization infrastructure groups.',
+ description: 'Group that hosts infrastructure-as-code repositories for all zones (ArgoCD pull targets).',
})
- // Get or create projects_root_dir/infra/ group
- const organizationName = this.project.organization.name
- const existingGroup = searchResult.find(group => group.parent_id === infraParentGroup.id && group.name === organizationName)
+ }
+
+ public async getOrCreateInfraProject(zone: string) {
+ const infraGroup = await this.getOrCreateInfraGroup()
+ // Get or create projects_root_dir/infra/zone
+ const infraProjects = await this.api.Groups.allProjects(infraGroup.id)
+ return infraProjects.find(repo => repo.name === zone) ?? await this.createEmptyRepository(
+ zone,
+ infraGroup.id,
+ 'Repository hosting deployment files for this zone.',
+ )
+ }
+}
+
+export class GitlabProjectApi extends GitlabApi {
+ private project: Project | UniqueRepo
+ private gitlabGroup: GroupSchema & { statistics: GroupStatisticsSchema } | undefined
+ private specialRepositories: string[] = [infraAppsRepoName, internalMirrorRepoName]
+ private zoneApi: GitlabZoneApi
+ // private organizationGroup: GroupSchema & { statistics: GroupStatisticsSchema } | undefined
+
+ constructor(project: Project | UniqueRepo) {
+ super()
+ this.project = project
+ this.api = getApi()
+ this.zoneApi = new GitlabZoneApi()
+ }
+
+ // Group Project
+ private async createProjectGroup(): Promise {
+ const searchResult = await this.api.Groups.search(this.project.name)
+ const parentId = await getOrganizationId(this.project.organization.name)
+ const existingGroup = searchResult.find(group => group.parent_id === parentId && group.name === this.project.name)
+
if (existingGroup) return existingGroup
- return this.api.Groups.create(organizationName, organizationName, {
- parentId: infraParentGroup.id,
+
+ return this.api.Groups.create(this.project.name, this.project.name, {
+ parentId,
projectCreationLevel: 'maintainer',
subgroupCreationLevel: 'owner',
defaultBranchProtection: 0,
- description: 'Group that hosts infrastructure-as-code repositories for all zones of this organization (ArgoCD pull targets).',
})
}
@@ -133,14 +287,7 @@ export class GitlabProjectApi extends PluginApi {
}
public async getOrCreateInfraProject(zone: string) {
- const infraGroup = await this.getOrCreateInfraGroup()
- // Get or create projects_root_dir/infra/organization/zone
- const infraProjects = await this.api.Groups.allProjects(infraGroup.id)
- return infraProjects.find(repo => repo.name === zone) || await this.createEmptyRepository(
- zone,
- 'Repository hosting deployment files for this zone of the parent organization.',
- infraGroup.id,
- )
+ return await this.zoneApi.getOrCreateInfraProject(zone)
}
public async getProjectToken(tokenName: string) {
@@ -198,17 +345,9 @@ export class GitlabProjectApi extends PluginApi {
}))
}
- public async createEmptyRepository(repoName: string, description?: string | undefined, groupId?: number | undefined) {
- const namespaceId = groupId || (await this.getOrCreateProjectGroup()).id
- const project = await this.api.Projects.create({
- name: repoName,
- path: repoName,
- namespaceId,
- description,
- })
- // Dépôt tout juste créé, zéro branche => pas d'erreur (filesTree undefined)
- await this.api.Commits.create(project.id, 'main', 'ci: 🌱 First commit', [])
- return project
+ public async createEmptyProjectRepository(repoName: string, description?: string | undefined) {
+ const namespaceId = (await this.getOrCreateProjectGroup()).id
+ return this.createEmptyRepository(repoName, namespaceId, description)
}
public async createCloneRepository(repoName: string, externalRepoUrn: string, creds?: RepoCreds) {
@@ -226,101 +365,6 @@ export class GitlabProjectApi extends PluginApi {
})
}
- public async commitCreateOrUpdate(
- repoId: number,
- fileContent: string,
- filePath: string,
- branch: string = 'main',
- comment: string = 'ci: :robot_face: Update file content',
- ): Promise {
- let action: CommitAction['action'] = 'create'
-
- const branches = await this.api.Branches.all(repoId)
- if (branches.some(b => b.name === branch)) {
- let actualFile: RepositoryFileExpandedSchema | undefined
- try {
- actualFile = await this.api.RepositoryFiles.show(repoId, filePath, branch)
- } catch (_) {}
- if (actualFile) {
- const newContentDigest = createHash('sha256').update(fileContent).digest('hex')
- if (actualFile.content_sha256 === newContentDigest) {
- // Already up-to-date
- return false
- }
- // Update needed
- action = 'update'
- }
- }
-
- const commitAction: CommitAction = {
- action,
- filePath,
- content: fileContent,
- }
- this.addActions(repoId, branch, comment, [commitAction])
-
- return true
- }
-
- /**
- * Fonction pour supprimer une liste de fichiers d'un repo
- * @param repoId
- * @param files
- * @param branch
- * @param comment
- */
- public async commitDelete(
- repoId: number,
- files: string[],
- branch: string = 'main',
- comment: string = 'ci: :robot_face: Delete files',
- ): Promise {
- if (files.length) {
- const commitActions: CommitAction[] = files.map((filePath) => {
- return {
- action: 'delete',
- filePath,
- }
- })
- this.addActions(repoId, branch, comment, commitActions)
- return true
- }
- return false
- }
-
- public async listFiles(repoId: number, options: AllRepositoryTreesOptions & PaginationRequestOptions<'keyset'> = {}) {
- options.path = options?.path ?? '/'
- options.ref = options?.ref ?? 'main'
- options.recursive = options?.recursive ?? false
- try {
- const files: RepositoryTreeSchema[] = await this.api.Repositories.allRepositoryTrees(repoId, options)
- // if (depth >= 0) {
- // for (const file of files) {
- // if (file.type !== 'tree') {
- // return []
- // }
- // const childrenFiles = await this.listFiles(repoId, { depth: depth - 1, ...options, path: file.path })
- // console.trace({ file, childrenFiles })
-
- // files.push(...childrenFiles)
- // }
- // }
- return files
- } catch (error) {
- const { cause } = error as GitbeakerRequestError
- if (cause?.description === '404 Tree Not Found') {
- // Empty repository, with zero commit ==> Zero files
- return []
- } else {
- throw error
- }
- }
- }
-
- public async deleteRepository(repoId: number) {
- return this.api.Projects.remove(repoId, { permanentlyRemove: true })
- }
-
// Special Repositories
public async getSpecialRepositories(): Promise {
return this.specialRepositories
@@ -470,34 +514,4 @@ export class GitlabProjectApi extends PluginApi {
],
})
}
-
- private addActions(repoId: number, branch: string, comment: string, commitActions: CommitAction[]) {
- if (!this.pendingCommits[repoId]) {
- this.pendingCommits[repoId] = { branches: {} }
- }
- if (this.pendingCommits[repoId].branches[branch]) {
- this.pendingCommits[repoId].branches[branch].actions.push(...commitActions)
- this.pendingCommits[repoId].branches[branch].messages.push(comment)
- } else {
- this.pendingCommits[repoId].branches[branch] = {
- actions: commitActions,
- messages: [comment],
- }
- }
- }
-
- public async commitFiles() {
- let filesUpdated: number = 0
- for (const [id, repo] of objectEntries(this.pendingCommits)) {
- for (const [branch, details] of objectEntries(repo.branches)) {
- const filesNumber = details.actions.length
- if (filesNumber) {
- filesUpdated += filesNumber
- const message = [`ci: :robot_face: Update ${filesNumber} file${filesNumber > 1 ? 's' : ''}`, ...details.messages.filter(m => m)].join('\n')
- await this.api.Commits.create(id, branch, message, details.actions)
- }
- }
- }
- return filesUpdated
- }
}
diff --git a/plugins/gitlab/src/env.d.ts b/plugins/gitlab/src/env.d.ts
index 81cd03469..46f7f90d7 100644
--- a/plugins/gitlab/src/env.d.ts
+++ b/plugins/gitlab/src/env.d.ts
@@ -1 +1,2 @@
+///
///
diff --git a/plugins/gitlab/src/functions.ts b/plugins/gitlab/src/functions.ts
index fa1b97d5f..fda632db9 100644
--- a/plugins/gitlab/src/functions.ts
+++ b/plugins/gitlab/src/functions.ts
@@ -1,5 +1,5 @@
-import { parseError, specificallyDisabled } from '@cpn-console/hooks'
-import type { PluginResult, Project, ProjectLite, StepCall, UniqueRepo } from '@cpn-console/hooks'
+import { okStatus, parseError, specificallyDisabled } from '@cpn-console/hooks'
+import type { PluginResult, Project, ProjectLite, StepCall, UniqueRepo, ZoneObject } from '@cpn-console/hooks'
import { insert } from '@cpn-console/shared'
import { deleteGroup } from './group.js'
import { createUsername, getUser } from './user.js'
@@ -99,7 +99,6 @@ export const upsertDsoProject: StepCall = async (payload) => {
const { gitlab: gitlabApi, vault: vaultApi } = payload.apis
await gitlabApi.getOrCreateProjectGroup()
- await gitlabApi.getOrCreateInfraGroup()
const { failedInUpsertUsers } = await ensureMembers(gitlabApi, project)
if (failedInUpsertUsers) {
@@ -186,7 +185,41 @@ export const syncRepository: StepCall = async (payload) => {
}
}
-export const commitFiles: StepCall = async (payload) => {
+export const upsertZone: StepCall = async (payload) => {
+ const returnResult: PluginResult = okStatus
+ try {
+ const gitlabApi = payload.apis.gitlab
+ await gitlabApi.getOrCreateInfraProject(payload.args.slug)
+ return returnResult
+ } catch (error) {
+ returnResult.error = parseError(cleanGitlabError(error))
+ returnResult.status.result = 'KO'
+ returnResult.status.message = 'Can\'t reconcile please inspect logs'
+ return returnResult
+ }
+}
+
+export const deleteZone: StepCall = async (payload) => {
+ const returnResult: PluginResult = {
+ status: {
+ result: 'OK',
+ message: 'Deleted',
+ },
+ }
+ try {
+ const gitlabApi = payload.apis.gitlab
+ const zoneRepo = await gitlabApi.getOrCreateInfraProject(payload.args.slug)
+ await gitlabApi.deleteRepository(zoneRepo.id)
+ return returnResult
+ } catch (error) {
+ returnResult.error = parseError(cleanGitlabError(error))
+ returnResult.status.result = 'KO'
+ returnResult.status.message = 'Can\'t reconcile please inspect logs'
+ return returnResult
+ }
+}
+
+export const commitFiles: StepCall = async (payload) => {
const returnResult = payload.results.gitlab
try {
const filesUpdated = await payload.apis.gitlab.commitFiles()
diff --git a/plugins/gitlab/src/index.ts b/plugins/gitlab/src/index.ts
index 6771e2a24..7dc8d0d6f 100644
--- a/plugins/gitlab/src/index.ts
+++ b/plugins/gitlab/src/index.ts
@@ -1,16 +1,18 @@
-import type { DeclareModuleGenerator, DefaultArgs, Plugin, Project, UniqueRepo } from '@cpn-console/hooks'
+import type { DeclareModuleGenerator, DefaultArgs, Plugin, Project, UniqueRepo, ZoneObject } from '@cpn-console/hooks'
import {
checkApi,
commitFiles,
deleteDsoProject,
+ deleteZone,
getDsoProjectSecrets,
syncRepository,
upsertDsoProject,
+ upsertZone,
} from './functions.js'
import { getGroupRootId } from './utils.js'
import infos from './infos.js'
import monitor from './monitor.js'
-import { GitlabProjectApi } from './class.js'
+import { GitlabProjectApi, GitlabZoneApi } from './class.js'
const onlyApi = { api: (project: Project | UniqueRepo) => new GitlabProjectApi(project) }
@@ -47,6 +49,19 @@ export const plugin: Plugin = {
post: commitFiles,
},
},
+ upsertZone: {
+ api: () => new GitlabZoneApi(),
+ steps: {
+ main: upsertZone,
+ post: commitFiles,
+ },
+ },
+ deleteZone: {
+ api: () => new GitlabZoneApi(),
+ steps: {
+ main: deleteZone,
+ },
+ },
},
monitor,
start,
@@ -56,7 +71,9 @@ declare module '@cpn-console/hooks' {
interface HookPayloadApis {
gitlab: Args extends Project | UniqueRepo
? GitlabProjectApi
- : undefined
+ : Args extends ZoneObject
+ ? GitlabZoneApi
+ : undefined
}
interface ProjectStore extends DeclareModuleGenerator {}
interface Config extends DeclareModuleGenerator {}
diff --git a/plugins/gitlab/src/repositories.ts b/plugins/gitlab/src/repositories.ts
index 308b60871..401c13cf1 100644
--- a/plugins/gitlab/src/repositories.ts
+++ b/plugins/gitlab/src/repositories.ts
@@ -30,12 +30,12 @@ export async function ensureRepositories(gitlabApi: GitlabProjectApi, project: P
if (!gitlabRepositories.find(repo => repo.name === infraAppsRepoName)) {
promises.push(
- gitlabApi.createEmptyRepository(infraAppsRepoName),
+ gitlabApi.createEmptyProjectRepository(infraAppsRepoName),
)
}
if (!gitlabRepositories.find(repo => repo.name === internalMirrorRepoName)) {
promises.push(
- gitlabApi.createEmptyRepository(internalMirrorRepoName)
+ gitlabApi.createEmptyProjectRepository(internalMirrorRepoName)
.then(mirrorRepo => provisionMirror(mirrorRepo.id)),
)
}
@@ -52,7 +52,7 @@ async function ensureRepositoryExists(gitlabRepositories: CondensedProjectSchema
if (!gitlabRepository) {
gitlabRepository = repository.externalRepoUrl
? await gitlabApi.createCloneRepository(repository.internalRepoName, externalRepoUrn, repository.newCreds ?? { username: currentVaultSecret?.data.GIT_INPUT_USER, token: currentVaultSecret?.data.GIT_INPUT_PASSWORD })
- : await gitlabApi.createEmptyRepository(repository.internalRepoName)
+ : await gitlabApi.createEmptyProjectRepository(repository.internalRepoName)
}
if (!repository.externalRepoUrl) {
diff --git a/plugins/kubernetes/src/api.ts b/plugins/kubernetes/src/api.ts
index b1f85ee54..d4e5308eb 100644
--- a/plugins/kubernetes/src/api.ts
+++ b/plugins/kubernetes/src/api.ts
@@ -1,51 +1,16 @@
import { ApisApi, CoreV1Api, KubeConfig } from '@kubernetes/client-node'
import type { ClusterObject } from '@cpn-console/hooks'
+import { inClusterLabel } from '@cpn-console/shared'
import { AnyObjectsApi } from './customApiClass.js'
export function createCoreV1Api(cluster: ClusterObject) {
- if (!cluster.user.keyData && !cluster.user.token) {
- // Special case: disable direct calls to the cluster
- console.log(`Direct kubernetes API calls are disabled for cluster ${cluster.label}`)
- return
- }
- const kc = new KubeConfig()
- const clusterConfig = {
- ...cluster.cluster,
- skipTLSVerify: cluster.cluster.skipTLSVerify ?? false,
- name: 'You should pass !',
- }
- const userConfig = {
- ...cluster.user,
- name: cluster.id,
- }
- if (cluster.cluster.skipTLSVerify) {
- delete clusterConfig.caData
- }
- kc.loadFromClusterAndUser(clusterConfig, userConfig)
- return kc.makeApiClient(CoreV1Api)
+ const kc = makeClusterApi(cluster)
+ return kc ? kc.makeApiClient(CoreV1Api) : undefined
}
export function createApisApi(cluster: ClusterObject) {
- if (!cluster.user.keyData && !cluster.user.token) {
- // Special case: disable direct calls to the cluster
- console.log(`Direct kubernetes API calls are disabled for cluster ${cluster.label}`)
- return
- }
- const kc = new KubeConfig()
- const clusterConfig = {
- ...cluster.cluster,
- skipTLSVerify: cluster.cluster.skipTLSVerify ?? false,
- name: 'You should pass !',
- }
- const userConfig = {
- ...cluster.user,
- name: cluster.id,
- }
- if (cluster.cluster.skipTLSVerify) {
- delete clusterConfig.caData
- }
- kc.loadFromClusterAndUser(clusterConfig, userConfig)
- return kc.makeApiClient(ApisApi)
+ const kc = makeClusterApi(cluster)
+ return kc ? kc.makeApiClient(ApisApi) : undefined
}
export function createCoreV1Apis(clusters: ClusterObject[]) {
@@ -53,23 +18,32 @@ export function createCoreV1Apis(clusters: ClusterObject[]) {
}
export function createCustomObjectApi(cluster: ClusterObject) {
+ const kc = makeClusterApi(cluster)
+ return kc ? kc.makeApiClient(AnyObjectsApi) : undefined
+}
+
+function makeClusterApi(cluster: ClusterObject): KubeConfig | undefined {
if (!cluster.user.keyData && !cluster.user.token) {
// Special case: disable direct calls to the cluster
- return
+ return undefined
}
const kc = new KubeConfig()
- const clusterConfig = {
- ...cluster.cluster,
- skipTLSVerify: cluster.cluster.skipTLSVerify ?? false,
- name: 'You should pass !',
- }
- const userConfig = {
- ...cluster.user,
- name: cluster.id,
- }
- if (cluster.cluster.skipTLSVerify) {
- delete clusterConfig.caData
- }
- kc.loadFromClusterAndUser(clusterConfig, userConfig)
- return kc.makeApiClient(AnyObjectsApi)
+ if (cluster.label === inClusterLabel) {
+ kc.loadFromCluster()
+ } else {
+ const clusterConfig = {
+ ...cluster.cluster,
+ skipTLSVerify: cluster.cluster.skipTLSVerify ?? false,
+ name: 'You should pass !',
+ }
+ const userConfig = {
+ ...cluster.user,
+ name: cluster.id,
+ }
+ if (cluster.cluster.skipTLSVerify) {
+ delete clusterConfig.caData
+ }
+ kc.loadFromClusterAndUser(clusterConfig, userConfig)
+ }
+ return kc
}
diff --git a/plugins/kubernetes/src/class.ts b/plugins/kubernetes/src/class.ts
index 2149bdd5b..46bf2aa3a 100644
--- a/plugins/kubernetes/src/class.ts
+++ b/plugins/kubernetes/src/class.ts
@@ -103,9 +103,7 @@ class KubernetesNamespace {
try {
await this.anyObjectApi.getNamespacedCustomObject(r.group, r.version, nsName, r.plural, r.name)
await this.anyObjectApi.deleteNamespacedCustomObject(r.group, r.version, nsName, r.plural, r.name)
- } catch (error) {
- console.log(error)
- }
+ } catch (_error) { }
return this.anyObjectApi.createNamespacedCustomObject(r.group, r.version, nsName, r.plural, objToCreate)
}
diff --git a/plugins/vault/README.md b/plugins/vault/README.md
index 48b66f4b6..ff70b3751 100644
--- a/plugins/vault/README.md
+++ b/plugins/vault/README.md
@@ -6,7 +6,8 @@ Plugin de gestion du plugin Vault
| Env var | valeur possible | description |
| --------------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
-| VAULT_TOKEN | chaine | Root token ou token ayant les pleins droits sur le Vault |
-| VAULT_URL | *url* | Url public d'accès au Vault |
-| VAULT_INTERNAL_URL | *url* ou vide | Url par laquelle la console interroge le service Vault, si absent utilisation de l'url public |
-| VAULT__HIDE_PROJECT_SERVICE | "true" ou vide | Décide si le plugin masque ou non le service dans l'interface du projet. Ne désactive pas la fonctionnalité du store projet seulement l'affichage. |
+| VAULT_TOKEN | chaine | Root token ou token ayant les pleins droits sur le Vault |
+| VAULT_URL | *url* | Url public d'accès au Vault |
+| VAULT_INTERNAL_URL | *url* ou vide | Url par laquelle la console interroge le service Vault, si absent utilisation de l'url public |
+| VAULT__HIDE_PROJECT_SERVICE | "true" ou vide | Décide si le plugin masque ou non le service dans l'interface du projet. Ne désactive pas la fonctionnalité du store projet seulement l'affichage. |
+| VAULT__DISABLE_VAULT_SECRETS | "true" ou vide | Désactiver le déploiement des ressources nécessaires au Vault Secret Operator dans le namespace cible |
diff --git a/plugins/vault/package.json b/plugins/vault/package.json
index 1732dc9b6..227e083e7 100644
--- a/plugins/vault/package.json
+++ b/plugins/vault/package.json
@@ -1,7 +1,7 @@
{
"name": "@cpn-console/vault-plugin",
"type": "module",
- "version": "2.2.0",
+ "version": "2.2.1",
"private": false,
"description": "",
"main": "dist/index.js",
diff --git a/plugins/vault/src/class.ts b/plugins/vault/src/class.ts
index e849cb57b..26b82f5bc 100644
--- a/plugins/vault/src/class.ts
+++ b/plugins/vault/src/class.ts
@@ -3,7 +3,7 @@ import axios from 'axios'
import type { ProjectLite } from '@cpn-console/hooks'
import { PluginApi } from '@cpn-console/hooks'
import getConfig from './config.js'
-import { getAuthMethod, isAppRoleEnabled } from './utils.js'
+import { generateKVConfigUpdate, getAuthMethod, isAppRoleEnabled } from './utils.js'
interface ReadOptions {
throwIfNoEntry: boolean
@@ -131,14 +131,14 @@ export class VaultProjectApi extends PluginApi {
Project = {
upsert: async () => {
const token = await this.getToken()
- let kvRes = await this.axios({
+ const kvRes = await this.axios({
method: 'get',
- url: `/v1/sys/mounts/${this.projectKvName}`,
+ url: `/v1/sys/mounts/${this.projectKvName}/tune`,
headers: { 'X-Vault-Token': token },
validateStatus: code => [400, 200].includes(code),
})
if (kvRes.status === 400) {
- kvRes = await this.axios({
+ await this.axios({
method: 'post',
url: `/v1/sys/mounts/${this.projectKvName}`,
headers: {
@@ -149,10 +149,24 @@ export class VaultProjectApi extends PluginApi {
config: {
force_no_cache: true,
},
+ options: {
+ version: 2,
+ },
},
})
+ } else { // means 200 status
+ const configUpdate = generateKVConfigUpdate(kvRes.data)
+ if (configUpdate) {
+ await this.axios({
+ method: 'put',
+ url: `/v1/sys/mounts/${this.projectKvName}/tune`,
+ headers: {
+ 'X-Vault-Token': token,
+ },
+ data: configUpdate,
+ })
+ }
}
- // TODO faire une vérif des paramétrages sur 200
await this.Policy.ensureAll()
await this.Group.upsert()
@@ -249,12 +263,11 @@ export class VaultProjectApi extends PluginApi {
})
},
delete: async () => {
- const existingGroup = await this.axios({
+ await this.axios({
method: 'delete',
url: `/v1/identity/group/name/${this.groupName}`,
headers: { 'X-Vault-Token': await this.getToken() },
})
- console.log({ existingGroup })
},
}
diff --git a/plugins/vault/src/config.ts b/plugins/vault/src/config.ts
index 130248614..36362e1b0 100644
--- a/plugins/vault/src/config.ts
+++ b/plugins/vault/src/config.ts
@@ -6,6 +6,7 @@ class Config {
token: string
projectsRootDir: string
hideProjectService: boolean
+ disableVaultSecrets: boolean
constructor() {
this.token = requiredEnv('VAULT_TOKEN')
this.publicUrl = removeTrailingSlash(requiredEnv('VAULT_URL'))
@@ -14,6 +15,7 @@ class Config {
? removeTrailingSlash(process.env.VAULT_INTERNAL_URL)
: this.publicUrl
this.hideProjectService = process.env.VAULT__HIDE_PROJECT_SERVICE === 'true'
+ this.disableVaultSecrets = process.env.VAULT__DISABLE_VAULT_SECRETS === 'true'
}
}
diff --git a/plugins/vault/src/functions.ts b/plugins/vault/src/functions.ts
index 1e5f26db5..d3b06c218 100644
--- a/plugins/vault/src/functions.ts
+++ b/plugins/vault/src/functions.ts
@@ -1,6 +1,7 @@
-import { parseError } from '@cpn-console/hooks'
+import { okStatus, parseError } from '@cpn-console/hooks'
import type { Project, ProjectLite, StepCall } from '@cpn-console/hooks'
import { generateVaultAuth, generateVsoSecret, generateVsoVaultConnection } from './vso.js'
+import getConfig from './config.js'
export const upsertProject: StepCall = async (payload) => {
try {
@@ -30,7 +31,9 @@ export const deployAuth: StepCall = async (payload) => {
throw new Error('no Vault available')
}
const appRoleCreds = await payload.apis.vault.Role.getCredentials()
-
+ if (getConfig().disableVaultSecrets) {
+ return okStatus
+ }
// loop on each env to verify if vault CRDs are installed on the cluster
for (const ns of Object.values(kubeApi.namespaces)) {
const apiVersions = await ns.apisApi?.getAPIVersions()
@@ -66,11 +69,7 @@ export const deployAuth: StepCall = async (payload) => {
})
}
}
- return {
- status: {
- result: 'OK',
- },
- }
+ return okStatus
} catch (error) {
return {
error: parseError(error),
diff --git a/plugins/vault/src/utils.ts b/plugins/vault/src/utils.ts
index 9afcd6d4a..4d1facf85 100644
--- a/plugins/vault/src/utils.ts
+++ b/plugins/vault/src/utils.ts
@@ -13,3 +13,14 @@ export async function isAppRoleEnabled(axiosInstance: AxiosInstance, token: stri
const methods = await getAuthMethod(axiosInstance, token)
return Object.keys(methods).includes('approle/')
}
+
+export const minimumConfig = {
+ type: 'kv',
+ options: {
+ version: 2,
+ },
+}
+export function generateKVConfigUpdate(config: Record): typeof minimumConfig | void {
+ if (config?.type !== minimumConfig.type) return minimumConfig
+ if (config?.options?.version !== minimumConfig.options.version) return minimumConfig
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1e18a5878..57278ed76 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,7 +15,7 @@ importers:
devDependencies:
'@antfu/eslint-config':
specifier: ^2.26.0
- version: 2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(@vue/compiler-sfc@3.5.6)(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(@vue/compiler-sfc@3.5.6)(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
'@commitlint/cli':
specifier: ^19.3.0
version: 19.3.0(@types/node@22.8.2)(typescript@5.5.3)
@@ -103,7 +103,7 @@ importers:
version: 13.13.2
cypress-vite:
specifier: ^1.5.0
- version: 1.5.0(vite@5.3.3(@types/node@22.8.2))
+ version: 1.5.0(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))
devDependencies:
'@cpn-console/eslint-config':
specifier: workspace:^
@@ -131,10 +131,10 @@ importers:
version: 0.61.9
'@vitejs/plugin-vue':
specifier: ^5.0.5
- version: 5.0.5(vite@5.3.3(@types/node@22.8.2))(vue@3.5.6(typescript@5.5.3))
+ version: 5.0.5(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))(vue@3.5.6(typescript@5.5.3))
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
'@vue/eslint-config-typescript':
specifier: ^13.0.0
version: 13.0.0(eslint-plugin-vue@9.27.0(eslint@9.7.0))(eslint@9.7.0)(typescript@5.5.3)
@@ -170,25 +170,31 @@ importers:
version: 5.5.3
unocss:
specifier: ^0.61.9
- version: 0.61.9(postcss@8.4.39)(rollup@4.18.1)(vite@5.3.3(@types/node@22.8.2))
+ version: 0.61.9(postcss@8.4.39)(rollup@2.79.2)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))
unplugin-auto-import:
specifier: ^0.17.8
- version: 0.17.8(rollup@4.18.1)
+ version: 0.17.8(rollup@2.79.2)
unplugin-vue-components:
specifier: ^0.27.2
- version: 0.27.2(@babel/parser@7.25.6)(rollup@4.18.1)(vue@3.5.6(typescript@5.5.3))
+ version: 0.27.2(@babel/parser@7.26.2)(rollup@2.79.2)(vue@3.5.6(typescript@5.5.3))
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
+ vite-plugin-pwa:
+ specifier: ^0.21.0
+ version: 0.21.0(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))(workbox-build@7.3.0)(workbox-window@7.3.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
vue-eslint-parser:
specifier: ^9.4.3
version: 9.4.3(eslint@9.7.0)
vue-tsc:
specifier: ^2.0.22
version: 2.0.26(typescript@5.5.3)
+ workbox-window:
+ specifier: ^7.3.0
+ version: 7.3.0
apps/server:
dependencies:
@@ -293,7 +299,7 @@ importers:
version: 6.19.2
vitest-mock-extended:
specifier: ^1.3.1
- version: 1.3.1(typescript@5.5.3)(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.3.1(typescript@5.5.3)(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
devDependencies:
'@cpn-console/eslint-config':
specifier: workspace:^
@@ -312,7 +318,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
fastify-plugin:
specifier: ^4.5.1
version: 4.5.1
@@ -336,19 +342,19 @@ importers:
version: 3.4.7(typescript@5.5.3)
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vite-node:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)
+ version: 1.6.0(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
packages/eslintconfig:
devDependencies:
'@antfu/eslint-config':
specifier: ^2.27.3
- version: 2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(@vue/compiler-sfc@3.5.6)(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(@vue/compiler-sfc@3.5.6)(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
packages/hooks:
dependencies:
@@ -360,7 +366,7 @@ importers:
version: 0.4.0
vitest-mock-extended:
specifier: ^1.3.1
- version: 1.3.1(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.3.1(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
zod:
specifier: ^3.23.8
version: 3.23.8
@@ -379,7 +385,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^2.1.1
- version: 2.1.1(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 2.1.1(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -397,7 +403,7 @@ importers:
version: 6.19.2
vitest:
specifier: ^2.1.1
- version: 2.1.1(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
packages/shared:
dependencies:
@@ -428,7 +434,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -440,13 +446,13 @@ importers:
version: 5.4.5
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vite-node:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)
+ version: 1.6.0(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
packages/test-utils:
dependencies:
@@ -531,7 +537,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -543,10 +549,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
plugins/gitlab:
dependencies:
@@ -589,7 +595,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -601,10 +607,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
plugins/harbor:
dependencies:
@@ -641,7 +647,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -656,10 +662,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
plugins/keycloak:
dependencies:
@@ -687,7 +693,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -699,10 +705,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
plugins/kubernetes:
dependencies:
@@ -739,7 +745,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -751,10 +757,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
plugins/nexus:
dependencies:
@@ -785,7 +791,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -797,10 +803,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
plugins/sonarqube:
dependencies:
@@ -834,7 +840,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -846,10 +852,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
plugins/vault:
dependencies:
@@ -880,7 +886,7 @@ importers:
version: 22.8.2
'@vitest/coverage-v8':
specifier: ^1.6.0
- version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))
+ version: 1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
nodemon:
specifier: ^3.1.4
version: 3.1.4
@@ -892,10 +898,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.2
- version: 5.3.3(@types/node@22.8.2)
+ version: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vitest:
specifier: ^1.6.0
- version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ version: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
packages:
@@ -961,6 +967,12 @@ packages:
'@antfu/utils@0.7.10':
resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
+ '@apideck/better-ajv-errors@0.3.6':
+ resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ ajv: '>=8'
+
'@aws-crypto/sha256-browser@5.2.0':
resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==}
@@ -1090,10 +1102,18 @@ packages:
resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
engines: {node: '>=6.9.0'}
+ '@babel/code-frame@7.26.2':
+ resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/compat-data@7.25.4':
resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==}
engines: {node: '>=6.9.0'}
+ '@babel/compat-data@7.26.2':
+ resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==}
+ engines: {node: '>=6.9.0'}
+
'@babel/core@7.25.2':
resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==}
engines: {node: '>=6.9.0'}
@@ -1106,20 +1126,53 @@ packages:
resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==}
engines: {node: '>=6.9.0'}
+ '@babel/generator@7.26.2':
+ resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-annotate-as-pure@7.24.7':
resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-annotate-as-pure@7.25.9':
+ resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9':
+ resolution: {integrity: sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-compilation-targets@7.25.2':
resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-compilation-targets@7.25.9':
+ resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-create-class-features-plugin@7.24.8':
resolution: {integrity: sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-create-class-features-plugin@7.25.9':
+ resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-create-regexp-features-plugin@7.25.9':
+ resolution: {integrity: sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/helper-define-polyfill-provider@0.6.3':
+ resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
'@babel/helper-environment-visitor@7.24.7':
resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==}
engines: {node: '>=6.9.0'}
@@ -1136,10 +1189,18 @@ packages:
resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-member-expression-to-functions@7.25.9':
+ resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-imports@7.24.7':
resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-module-imports@7.25.9':
+ resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-transforms@7.24.8':
resolution: {integrity: sha512-m4vWKVqvkVAWLXfHCCfff2luJj86U+J0/x+0N3ArG/tP0Fq7zky2dYwMbtPmkc/oulkkbjdL3uWzuoBwQ8R00Q==}
engines: {node: '>=6.9.0'}
@@ -1152,28 +1213,62 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-module-transforms@7.26.0':
+ resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
'@babel/helper-optimise-call-expression@7.24.7':
resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-optimise-call-expression@7.25.9':
+ resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-plugin-utils@7.24.8':
resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-plugin-utils@7.25.9':
+ resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-remap-async-to-generator@7.25.9':
+ resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
'@babel/helper-replace-supers@7.24.7':
resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-replace-supers@7.25.9':
+ resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
'@babel/helper-simple-access@7.24.7':
resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-simple-access@7.25.9':
+ resolution: {integrity: sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-skip-transparent-expression-wrappers@7.24.7':
resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-skip-transparent-expression-wrappers@7.25.9':
+ resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-split-export-declaration@7.24.7':
resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==}
engines: {node: '>=6.9.0'}
@@ -1182,14 +1277,30 @@ packages:
resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-string-parser@7.25.9':
+ resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-identifier@7.24.7':
resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-identifier@7.25.9':
+ resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-validator-option@7.24.8':
resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-validator-option@7.25.9':
+ resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-wrap-function@7.25.9':
+ resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helpers@7.25.6':
resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==}
engines: {node: '>=6.9.0'}
@@ -1208,6 +1319,59 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
+ '@babel/parser@7.26.2':
+ resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9':
+ resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9':
+ resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9':
+ resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9':
+ resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.13.0
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9':
+ resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2':
+ resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-assertions@7.26.0':
+ resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-syntax-import-attributes@7.26.0':
+ resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
'@babel/plugin-syntax-jsx@7.24.7':
resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==}
engines: {node: '>=6.9.0'}
@@ -1220,139 +1384,472 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/plugin-transform-modules-commonjs@7.24.8':
- resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==}
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6':
+ resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==}
engines: {node: '>=6.9.0'}
peerDependencies:
- '@babel/core': ^7.0.0-0
+ '@babel/core': ^7.0.0
- '@babel/plugin-transform-typescript@7.24.8':
- resolution: {integrity: sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==}
+ '@babel/plugin-transform-arrow-functions@7.25.9':
+ resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/preset-typescript@7.24.7':
- resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==}
+ '@babel/plugin-transform-async-generator-functions@7.25.9':
+ resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
- '@babel/template@7.24.7':
- resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==}
+ '@babel/plugin-transform-async-to-generator@7.25.9':
+ resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@babel/template@7.25.0':
- resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==}
+ '@babel/plugin-transform-block-scoped-functions@7.25.9':
+ resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@babel/traverse@7.24.8':
- resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==}
+ '@babel/plugin-transform-block-scoping@7.25.9':
+ resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@babel/traverse@7.25.6':
- resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==}
+ '@babel/plugin-transform-class-properties@7.25.9':
+ resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@babel/types@7.24.8':
- resolution: {integrity: sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==}
+ '@babel/plugin-transform-class-static-block@7.26.0':
+ resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.12.0
- '@babel/types@7.25.6':
- resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==}
+ '@babel/plugin-transform-classes@7.25.9':
+ resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@bcoe/v8-coverage@0.2.3':
- resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
-
- '@clack/core@0.3.4':
- resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==}
+ '@babel/plugin-transform-computed-properties@7.25.9':
+ resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@clack/prompts@0.7.0':
- resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==}
- bundledDependencies:
- - is-unicode-supported
+ '@babel/plugin-transform-destructuring@7.25.9':
+ resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@colors/colors@1.5.0':
- resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
- engines: {node: '>=0.1.90'}
+ '@babel/plugin-transform-dotall-regex@7.25.9':
+ resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/cli@19.3.0':
- resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==}
- engines: {node: '>=v18'}
- hasBin: true
+ '@babel/plugin-transform-duplicate-keys@7.25.9':
+ resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/config-conventional@19.2.2':
- resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9':
+ resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
- '@commitlint/config-validator@19.0.3':
- resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-dynamic-import@7.25.9':
+ resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/ensure@19.0.3':
- resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-exponentiation-operator@7.25.9':
+ resolution: {integrity: sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/execute-rule@19.0.0':
- resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-export-namespace-from@7.25.9':
+ resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/format@19.3.0':
- resolution: {integrity: sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-for-of@7.25.9':
+ resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/is-ignored@19.2.2':
- resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-function-name@7.25.9':
+ resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/lint@19.2.2':
- resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-json-strings@7.25.9':
+ resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/load@19.2.0':
- resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-literals@7.25.9':
+ resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/message@19.0.0':
- resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-logical-assignment-operators@7.25.9':
+ resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/parse@19.0.3':
- resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-member-expression-literals@7.25.9':
+ resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/read@19.2.1':
- resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-modules-amd@7.25.9':
+ resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/resolve-extends@19.1.0':
- resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-modules-commonjs@7.24.8':
+ resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/rules@19.0.3':
- resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-modules-commonjs@7.25.9':
+ resolution: {integrity: sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/to-lines@19.0.0':
- resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-modules-systemjs@7.25.9':
+ resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/top-level@19.0.0':
- resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-modules-umd@7.25.9':
+ resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
- '@commitlint/types@19.0.3':
- resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==}
- engines: {node: '>=v18'}
+ '@babel/plugin-transform-named-capturing-groups-regex@7.25.9':
+ resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
- '@csstools/css-parser-algorithms@2.7.1':
- resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==}
- engines: {node: ^14 || ^16 || >=18}
+ '@babel/plugin-transform-new-target@7.25.9':
+ resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==}
+ engines: {node: '>=6.9.0'}
peerDependencies:
- '@csstools/css-tokenizer': ^2.4.1
+ '@babel/core': ^7.0.0-0
- '@csstools/css-tokenizer@2.4.1':
+ '@babel/plugin-transform-nullish-coalescing-operator@7.25.9':
+ resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-numeric-separator@7.25.9':
+ resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-object-rest-spread@7.25.9':
+ resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-object-super@7.25.9':
+ resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-optional-catch-binding@7.25.9':
+ resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-optional-chaining@7.25.9':
+ resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-parameters@7.25.9':
+ resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-private-methods@7.25.9':
+ resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-private-property-in-object@7.25.9':
+ resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-property-literals@7.25.9':
+ resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-regenerator@7.25.9':
+ resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-regexp-modifiers@7.26.0':
+ resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/plugin-transform-reserved-words@7.25.9':
+ resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-shorthand-properties@7.25.9':
+ resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-spread@7.25.9':
+ resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-sticky-regex@7.25.9':
+ resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-template-literals@7.25.9':
+ resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typeof-symbol@7.25.9':
+ resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-typescript@7.24.8':
+ resolution: {integrity: sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-escapes@7.25.9':
+ resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-property-regex@7.25.9':
+ resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-regex@7.25.9':
+ resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/plugin-transform-unicode-sets-regex@7.25.9':
+ resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
+ '@babel/preset-env@7.26.0':
+ resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/preset-modules@0.1.6-no-external-plugins':
+ resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0
+
+ '@babel/preset-typescript@7.24.7':
+ resolution: {integrity: sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+
+ '@babel/runtime@7.26.0':
+ resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.24.7':
+ resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.25.0':
+ resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/template@7.25.9':
+ resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.24.8':
+ resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.25.6':
+ resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/traverse@7.25.9':
+ resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.24.8':
+ resolution: {integrity: sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.25.6':
+ resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.26.0':
+ resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==}
+ engines: {node: '>=6.9.0'}
+
+ '@bcoe/v8-coverage@0.2.3':
+ resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+
+ '@clack/core@0.3.4':
+ resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==}
+
+ '@clack/prompts@0.7.0':
+ resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==}
+ bundledDependencies:
+ - is-unicode-supported
+
+ '@colors/colors@1.5.0':
+ resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
+ engines: {node: '>=0.1.90'}
+
+ '@commitlint/cli@19.3.0':
+ resolution: {integrity: sha512-LgYWOwuDR7BSTQ9OLZ12m7F/qhNY+NpAyPBgo4YNMkACE7lGuUnuQq1yi9hz1KA4+3VqpOYl8H1rY/LYK43v7g==}
+ engines: {node: '>=v18'}
+ hasBin: true
+
+ '@commitlint/config-conventional@19.2.2':
+ resolution: {integrity: sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/config-validator@19.0.3':
+ resolution: {integrity: sha512-2D3r4PKjoo59zBc2auodrSCaUnCSALCx54yveOFwwP/i2kfEAQrygwOleFWswLqK0UL/F9r07MFi5ev2ohyM4Q==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/ensure@19.0.3':
+ resolution: {integrity: sha512-SZEpa/VvBLoT+EFZVb91YWbmaZ/9rPH3ESrINOl0HD2kMYsjvl0tF7nMHh0EpTcv4+gTtZBAe1y/SS6/OhfZzQ==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/execute-rule@19.0.0':
+ resolution: {integrity: sha512-mtsdpY1qyWgAO/iOK0L6gSGeR7GFcdW7tIjcNFxcWkfLDF5qVbPHKuGATFqRMsxcO8OUKNj0+3WOHB7EHm4Jdw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/format@19.3.0':
+ resolution: {integrity: sha512-luguk5/aF68HiF4H23ACAfk8qS8AHxl4LLN5oxPc24H+2+JRPsNr1OS3Gaea0CrH7PKhArBMKBz5RX9sA5NtTg==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/is-ignored@19.2.2':
+ resolution: {integrity: sha512-eNX54oXMVxncORywF4ZPFtJoBm3Tvp111tg1xf4zWXGfhBPKpfKG6R+G3G4v5CPlRROXpAOpQ3HMhA9n1Tck1g==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/lint@19.2.2':
+ resolution: {integrity: sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/load@19.2.0':
+ resolution: {integrity: sha512-XvxxLJTKqZojCxaBQ7u92qQLFMMZc4+p9qrIq/9kJDy8DOrEa7P1yx7Tjdc2u2JxIalqT4KOGraVgCE7eCYJyQ==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/message@19.0.0':
+ resolution: {integrity: sha512-c9czf6lU+9oF9gVVa2lmKaOARJvt4soRsVmbR7Njwp9FpbBgste5i7l/2l5o8MmbwGh4yE1snfnsy2qyA2r/Fw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/parse@19.0.3':
+ resolution: {integrity: sha512-Il+tNyOb8VDxN3P6XoBBwWJtKKGzHlitEuXA5BP6ir/3loWlsSqDr5aecl6hZcC/spjq4pHqNh0qPlfeWu38QA==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/read@19.2.1':
+ resolution: {integrity: sha512-qETc4+PL0EUv7Q36lJbPG+NJiBOGg7SSC7B5BsPWOmei+Dyif80ErfWQ0qXoW9oCh7GTpTNRoaVhiI8RbhuaNw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/resolve-extends@19.1.0':
+ resolution: {integrity: sha512-z2riI+8G3CET5CPgXJPlzftH+RiWYLMYv4C9tSLdLXdr6pBNimSKukYP9MS27ejmscqCTVA4almdLh0ODD2KYg==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/rules@19.0.3':
+ resolution: {integrity: sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/to-lines@19.0.0':
+ resolution: {integrity: sha512-vkxWo+VQU5wFhiP9Ub9Sre0FYe019JxFikrALVoD5UGa8/t3yOJEpEhxC5xKiENKKhUkTpEItMTRAjHw2SCpZw==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/top-level@19.0.0':
+ resolution: {integrity: sha512-KKjShd6u1aMGNkCkaX4aG1jOGdn7f8ZI8TR1VEuNqUOjWTOdcDSsmglinglJ18JTjuBX5I1PtjrhQCRcixRVFQ==}
+ engines: {node: '>=v18'}
+
+ '@commitlint/types@19.0.3':
+ resolution: {integrity: sha512-tpyc+7i6bPG9mvaBbtKUeghfyZSDgWquIDfMgqYtTbmZ9Y9VzEm2je9EYcQ0aoz5o7NvGS+rcDec93yO08MHYA==}
+ engines: {node: '>=v18'}
+
+ '@csstools/css-parser-algorithms@2.7.1':
+ resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ '@csstools/css-tokenizer': ^2.4.1
+
+ '@csstools/css-tokenizer@2.4.1':
resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==}
engines: {node: ^14 || ^16 || >=18}
@@ -1855,6 +2352,9 @@ packages:
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/source-map@0.3.6':
+ resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
+
'@jridgewell/sourcemap-codec@1.5.0':
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
@@ -1935,6 +2435,46 @@ packages:
'@prisma/get-platform@5.19.1':
resolution: {integrity: sha512-sCeoJ+7yt0UjnR+AXZL7vXlg5eNxaFOwC23h0KvW1YIXUoa7+W2ZcAUhoEQBmJTW4GrFqCuZ8YSP0mkDa4k3Zg==}
+ '@rollup/plugin-babel@5.3.1':
+ resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
+ engines: {node: '>= 10.0.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ '@types/babel__core': ^7.1.9
+ rollup: ^1.20.0||^2.0.0
+ peerDependenciesMeta:
+ '@types/babel__core':
+ optional: true
+
+ '@rollup/plugin-node-resolve@15.3.0':
+ resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.78.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/plugin-replace@2.4.2':
+ resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==}
+ peerDependencies:
+ rollup: ^1.20.0 || ^2.0.0
+
+ '@rollup/plugin-terser@0.4.4':
+ resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+
+ '@rollup/pluginutils@3.1.0':
+ resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==}
+ engines: {node: '>= 8.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0
+
'@rollup/pluginutils@5.1.0':
resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
engines: {node: '>=14.0.0'}
@@ -2227,6 +2767,9 @@ packages:
peerDependencies:
eslint: '>=8.40.0'
+ '@surma/rollup-plugin-off-main-thread@2.2.3':
+ resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==}
+
'@swc/helpers@0.5.11':
resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==}
@@ -2270,6 +2813,9 @@ packages:
'@types/eslint@9.6.1':
resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==}
+ '@types/estree@0.0.39':
+ resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==}
+
'@types/estree@1.0.5':
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
@@ -2297,6 +2843,9 @@ packages:
'@types/request@2.48.12':
resolution: {integrity: sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==}
+ '@types/resolve@1.20.2':
+ resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+
'@types/sinonjs__fake-timers@8.1.1':
resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==}
@@ -2309,6 +2858,9 @@ packages:
'@types/tough-cookie@4.0.5':
resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
+ '@types/trusted-types@2.0.7':
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+
'@types/unist@2.0.11':
resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
@@ -2890,6 +3442,21 @@ packages:
axios@1.7.7:
resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==}
+ babel-plugin-polyfill-corejs2@0.4.12:
+ resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-corejs3@0.10.6:
+ resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
+ babel-plugin-polyfill-regenerator@0.6.3:
+ resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==}
+ peerDependencies:
+ '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
+
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -2958,6 +3525,11 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ browserslist@4.24.2:
+ resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
bs-recipes@1.3.4:
resolution: {integrity: sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==}
@@ -2967,6 +3539,9 @@ packages:
buffer-equal-constant-time@1.0.1:
resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
+ buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
+
buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
@@ -3017,6 +3592,9 @@ packages:
caniuse-lite@1.0.30001653:
resolution: {integrity: sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==}
+ caniuse-lite@1.0.30001680:
+ resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==}
+
caseless@0.12.0:
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
@@ -3266,6 +3844,10 @@ packages:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
+ crypto-random-string@2.0.0:
+ resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==}
+ engines: {node: '>=8'}
+
css-functions-list@3.2.2:
resolution: {integrity: sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==}
engines: {node: '>=12 || >=16'}
@@ -3393,6 +3975,10 @@ packages:
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
@@ -3496,9 +4082,17 @@ packages:
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+ ejs@3.1.10:
+ resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+
electron-to-chromium@1.5.13:
resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==}
+ electron-to-chromium@1.5.60:
+ resolution: {integrity: sha512-HcraRUkTKJ+8yA3b10i9qvhUlPBRDlKjn1XGek1zDGVfAKcvi8TsUnImGqLiEm9j6ZulxXIWWIo9BmbkbCTGgA==}
+
elliptic@6.5.5:
resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==}
@@ -3595,6 +4189,10 @@ packages:
resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
engines: {node: '>=6'}
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
@@ -3790,6 +4388,9 @@ packages:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
+ estree-walker@1.0.1:
+ resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==}
+
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
@@ -3924,6 +4525,14 @@ packages:
fd-slicer@1.1.0:
resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
+ fdir@6.4.2:
+ resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
figures@3.2.0:
resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
engines: {node: '>=8'}
@@ -3936,6 +4545,9 @@ packages:
resolution: {integrity: sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==}
engines: {node: '>=18'}
+ filelist@1.0.4:
+ resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
+
fill-range@7.1.1:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
@@ -4070,6 +4682,9 @@ packages:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
engines: {node: '>= 0.4'}
+ get-own-enumerable-property-symbols@3.0.2:
+ resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
+
get-stream@5.2.0:
resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
engines: {node: '>=8'}
@@ -4300,6 +4915,9 @@ packages:
resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
engines: {node: '>=0.10.0'}
+ idb@7.1.1:
+ resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==}
+
ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
@@ -4459,6 +5077,9 @@ packages:
resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==}
engines: {node: '>=10'}
+ is-module@1.0.0:
+ resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
+
is-negative-zero@2.0.3:
resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
engines: {node: '>= 0.4'}
@@ -4474,6 +5095,10 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
+ is-obj@1.0.1:
+ resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==}
+ engines: {node: '>=0.10.0'}
+
is-obj@2.0.0:
resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
engines: {node: '>=8'}
@@ -4493,6 +5118,10 @@ packages:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'}
+ is-regexp@1.0.0:
+ resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==}
+ engines: {node: '>=0.10.0'}
+
is-retry-allowed@2.2.0:
resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==}
engines: {node: '>=10'}
@@ -4575,6 +5204,11 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+ jake@10.9.2:
+ resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
javascript-time-ago@2.5.11:
resolution: {integrity: sha512-Zeyf5R7oM1fSMW9zsU3YgAYwE0bimEeF54Udn2ixGd8PUwu+z1Yc5t4Y8YScJDMHD6uCx6giLt3VJR5K4CMwbg==}
@@ -4699,6 +5333,10 @@ packages:
engines: {node: '>=14.0.0'}
hasBin: true
+ jsonpointer@5.0.1:
+ resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
+ engines: {node: '>=0.10.0'}
+
jsprim@1.4.2:
resolution: {integrity: sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==}
engines: {node: '>=0.6.0'}
@@ -4747,6 +5385,10 @@ packages:
resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==}
engines: {node: '> 0.8'}
+ leven@3.1.0:
+ resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
+ engines: {node: '>=6'}
+
levn@0.4.1:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
@@ -4817,6 +5459,9 @@ packages:
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ lodash.debounce@4.0.8:
+ resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
+
lodash.isfinite@3.3.2:
resolution: {integrity: sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA==}
@@ -4838,6 +5483,9 @@ packages:
lodash.snakecase@4.1.1:
resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==}
+ lodash.sortby@4.7.0:
+ resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==}
+
lodash.startcase@4.4.0:
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
@@ -4884,6 +5532,9 @@ packages:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
+ magic-string@0.25.9:
+ resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
+
magic-string@0.30.10:
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
@@ -4977,6 +5628,10 @@ packages:
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+
minimatch@9.0.5:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
engines: {node: '>=16 || 14 >=14.17'}
@@ -5487,6 +6142,10 @@ packages:
resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==}
engines: {node: '>=6'}
+ pretty-bytes@6.1.1:
+ resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+
pretty-format@29.7.0:
resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -5565,6 +6224,9 @@ packages:
resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==}
engines: {node: '>=0.12'}
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
range-parser@1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
@@ -5617,6 +6279,19 @@ packages:
reftools@1.1.9:
resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==}
+ regenerate-unicode-properties@10.2.0:
+ resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==}
+ engines: {node: '>=4'}
+
+ regenerate@1.4.2:
+ resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
+
+ regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+
+ regenerator-transform@0.15.2:
+ resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==}
+
regexp-ast-analysis@0.7.1:
resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
@@ -5629,10 +6304,21 @@ packages:
resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
engines: {node: '>= 0.4'}
+ regexpu-core@6.1.1:
+ resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==}
+ engines: {node: '>=4'}
+
+ regjsgen@0.8.0:
+ resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==}
+
regjsparser@0.10.0:
resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
hasBin: true
+ regjsparser@0.11.2:
+ resolution: {integrity: sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==}
+ hasBin: true
+
relative-time-format@1.1.6:
resolution: {integrity: sha512-aCv3juQw4hT1/P/OrVltKWLlp15eW1GRcwP1XdxHrPdZE9MtgqFpegjnTjLhi2m2WI9MT/hQQtE+tjEWG1hgkQ==}
@@ -5730,6 +6416,11 @@ packages:
engines: {node: 14 >=14.20 || 16 >=16.20 || >=18}
hasBin: true
+ rollup@2.79.2:
+ resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
rollup@4.18.1:
resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
@@ -5816,6 +6507,9 @@ packages:
resolution: {integrity: sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==}
engines: {node: '>= 0.8.0'}
+ serialize-javascript@6.0.2:
+ resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+
serve-index@1.9.1:
resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==}
engines: {node: '>= 0.8.0'}
@@ -5936,6 +6630,9 @@ packages:
resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
engines: {node: '>=18'}
+ smob@1.5.0:
+ resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
+
smtp-address-parser@1.1.0:
resolution: {integrity: sha512-Gz11jbNU0plrReU9Sj7fmshSBxxJ9ShdD2q4ktHIHo/rpTH6lFyQoYHYKINPJtPe8aHFnsbtW46Ls0tCCBsIZg==}
engines: {node: '>=0.10'}
@@ -5966,6 +6663,21 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
+ source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.8.0-beta.0:
+ resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==}
+ engines: {node: '>= 8'}
+
+ sourcemap-codec@1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ deprecated: Please use @jridgewell/sourcemap-codec instead
+
spdx-correct@3.2.0:
resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
@@ -6047,6 +6759,10 @@ packages:
resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
engines: {node: '>=18'}
+ string.prototype.matchall@4.0.11:
+ resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
+ engines: {node: '>= 0.4'}
+
string.prototype.padend@3.1.6:
resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==}
engines: {node: '>= 0.4'}
@@ -6068,6 +6784,10 @@ packages:
string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ stringify-object@3.3.0:
+ resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
+ engines: {node: '>=4'}
+
strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
@@ -6080,6 +6800,10 @@ packages:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
+ strip-comments@2.0.1:
+ resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==}
+ engines: {node: '>=10'}
+
strip-final-newline@2.0.0:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
@@ -6194,6 +6918,19 @@ packages:
resolution: {integrity: sha512-XQs0S8fuAkQWuqhDeCdMlJXDX80D7EOVLDPVFkna9yQfzS+PHKgfxcei0jf6/+QAWcjqrnC8uM3fSAnrQl+XYg==}
engines: {node: '>=18'}
+ temp-dir@2.0.0:
+ resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==}
+ engines: {node: '>=8'}
+
+ tempy@0.6.0:
+ resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==}
+ engines: {node: '>=10'}
+
+ terser@5.36.0:
+ resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==}
+ engines: {node: '>=10'}
+ hasBin: true
+
test-exclude@6.0.0:
resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
engines: {node: '>=8'}
@@ -6230,6 +6967,10 @@ packages:
tinyexec@0.3.0:
resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==}
+ tinyglobby@0.2.10:
+ resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==}
+ engines: {node: '>=12.0.0'}
+
tinypool@0.8.4:
resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==}
engines: {node: '>=14.0.0'}
@@ -6293,6 +7034,9 @@ packages:
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ tr46@1.0.1:
+ resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
+
tr46@5.0.0:
resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
engines: {node: '>=18'}
@@ -6378,6 +7122,10 @@ packages:
resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
engines: {node: '>=4'}
+ type-fest@0.16.0:
+ resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==}
+ engines: {node: '>=10'}
+
type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
@@ -6453,10 +7201,26 @@ packages:
resolution: {integrity: sha512-JfjKqIauur3Q6biAtHJ564e3bWa8VvT+7cSiOJHFbX4Erv6CLGDpg8z+Fmg/1OI/47RA+GI2QZaF48SSaLvyBA==}
engines: {node: '>=18.17'}
+ unicode-canonical-property-names-ecmascript@2.0.1:
+ resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
+ engines: {node: '>=4'}
+
unicode-emoji-modifier-base@1.0.0:
resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==}
engines: {node: '>=4'}
+ unicode-match-property-ecmascript@2.0.0:
+ resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==}
+ engines: {node: '>=4'}
+
+ unicode-match-property-value-ecmascript@2.2.0:
+ resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==}
+ engines: {node: '>=4'}
+
+ unicode-property-aliases-ecmascript@2.1.0:
+ resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==}
+ engines: {node: '>=4'}
+
unicorn-magic@0.1.0:
resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
engines: {node: '>=18'}
@@ -6464,6 +7228,10 @@ packages:
unimport@3.7.2:
resolution: {integrity: sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==}
+ unique-string@2.0.0:
+ resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
+ engines: {node: '>=8'}
+
unist-util-stringify-position@2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
@@ -6528,12 +7296,22 @@ packages:
resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
engines: {node: '>=8'}
+ upath@1.2.0:
+ resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
+ engines: {node: '>=4'}
+
update-browserslist-db@1.1.0:
resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
+ update-browserslist-db@1.1.1:
+ resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@@ -6592,6 +7370,18 @@ packages:
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
+ vite-plugin-pwa@0.21.0:
+ resolution: {integrity: sha512-gnDE5sN2hdxA4vTl0pe6PCTPXqChk175jH8dZVVTBjFhWarZZoXaAdoTIKCIa8Zbx94sC0CnCOyERBWpxvry+g==}
+ engines: {node: '>=16.0.0'}
+ peerDependencies:
+ '@vite-pwa/assets-generator': ^0.2.6
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0
+ workbox-build: ^7.3.0
+ workbox-window: ^7.3.0
+ peerDependenciesMeta:
+ '@vite-pwa/assets-generator':
+ optional: true
+
vite@5.3.3:
resolution: {integrity: sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==}
engines: {node: ^18.0.0 || >=20.0.0}
@@ -6730,6 +7520,9 @@ packages:
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ webidl-conversions@4.0.2:
+ resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==}
+
webidl-conversions@7.0.0:
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
engines: {node: '>=12'}
@@ -6756,6 +7549,9 @@ packages:
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ whatwg-url@7.1.0:
+ resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==}
+
which-boxed-primitive@1.0.2:
resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
@@ -6784,6 +7580,55 @@ packages:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
+ workbox-background-sync@7.3.0:
+ resolution: {integrity: sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==}
+
+ workbox-broadcast-update@7.3.0:
+ resolution: {integrity: sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==}
+
+ workbox-build@7.3.0:
+ resolution: {integrity: sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==}
+ engines: {node: '>=16.0.0'}
+
+ workbox-cacheable-response@7.3.0:
+ resolution: {integrity: sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==}
+
+ workbox-core@7.3.0:
+ resolution: {integrity: sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==}
+
+ workbox-expiration@7.3.0:
+ resolution: {integrity: sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==}
+
+ workbox-google-analytics@7.3.0:
+ resolution: {integrity: sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==}
+
+ workbox-navigation-preload@7.3.0:
+ resolution: {integrity: sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==}
+
+ workbox-precaching@7.3.0:
+ resolution: {integrity: sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==}
+
+ workbox-range-requests@7.3.0:
+ resolution: {integrity: sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==}
+
+ workbox-recipes@7.3.0:
+ resolution: {integrity: sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==}
+
+ workbox-routing@7.3.0:
+ resolution: {integrity: sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==}
+
+ workbox-strategies@7.3.0:
+ resolution: {integrity: sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==}
+
+ workbox-streams@7.3.0:
+ resolution: {integrity: sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==}
+
+ workbox-sw@7.3.0:
+ resolution: {integrity: sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==}
+
+ workbox-window@7.3.0:
+ resolution: {integrity: sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==}
+
wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
@@ -6933,7 +7778,7 @@ snapshots:
ts-deepmerge: 6.2.1
zod: 3.23.8
- '@antfu/eslint-config@2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(@vue/compiler-sfc@3.5.6)(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3))':
+ '@antfu/eslint-config@2.27.3(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(@vue/compiler-sfc@3.5.6)(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))':
dependencies:
'@antfu/install-pkg': 0.4.1
'@clack/prompts': 0.7.0
@@ -6941,7 +7786,7 @@ snapshots:
'@stylistic/eslint-plugin': 2.6.4(eslint@9.7.0)(typescript@5.5.3)
'@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)
'@typescript-eslint/parser': 8.3.0(eslint@9.7.0)(typescript@5.5.3)
- '@vitest/eslint-plugin': 1.0.5(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3))
+ '@vitest/eslint-plugin': 1.0.5(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))
eslint: 9.7.0
eslint-config-flat-gitignore: 0.1.8
eslint-flat-config-utils: 0.3.1
@@ -6986,6 +7831,13 @@ snapshots:
'@antfu/utils@0.7.10': {}
+ '@apideck/better-ajv-errors@0.3.6(ajv@8.16.0)':
+ dependencies:
+ ajv: 8.16.0
+ json-schema: 0.4.0
+ jsonpointer: 5.0.1
+ leven: 3.1.0
+
'@aws-crypto/sha256-browser@5.2.0':
dependencies:
'@aws-crypto/sha256-js': 5.2.0
@@ -7399,8 +8251,16 @@ snapshots:
'@babel/highlight': 7.24.7
picocolors: 1.0.1
+ '@babel/code-frame@7.26.2':
+ dependencies:
+ '@babel/helper-validator-identifier': 7.25.9
+ js-tokens: 4.0.0
+ picocolors: 1.1.0
+
'@babel/compat-data@7.25.4': {}
+ '@babel/compat-data@7.26.2': {}
+
'@babel/core@7.25.2':
dependencies:
'@ampproject/remapping': 2.3.0
@@ -7414,7 +8274,7 @@ snapshots:
'@babel/traverse': 7.25.6
'@babel/types': 7.25.6
convert-source-map: 2.0.0
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
gensync: 1.0.0-beta.2
json5: 2.2.3
semver: 6.3.1
@@ -7435,10 +8295,29 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.25
jsesc: 2.5.2
+ '@babel/generator@7.26.2':
+ dependencies:
+ '@babel/parser': 7.26.2
+ '@babel/types': 7.26.0
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+ jsesc: 3.0.2
+
'@babel/helper-annotate-as-pure@7.24.7':
dependencies:
'@babel/types': 7.24.8
+ '@babel/helper-annotate-as-pure@7.25.9':
+ dependencies:
+ '@babel/types': 7.26.0
+
+ '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.26.0
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-compilation-targets@7.25.2':
dependencies:
'@babel/compat-data': 7.25.4
@@ -7447,6 +8326,14 @@ snapshots:
lru-cache: 5.1.1
semver: 6.3.1
+ '@babel/helper-compilation-targets@7.25.9':
+ dependencies:
+ '@babel/compat-data': 7.26.2
+ '@babel/helper-validator-option': 7.25.9
+ browserslist: 4.24.2
+ lru-cache: 5.1.1
+ semver: 6.3.1
+
'@babel/helper-create-class-features-plugin@7.24.8(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
@@ -7462,6 +8349,37 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.25.9
+ '@babel/helper-member-expression-to-functions': 7.25.9
+ '@babel/helper-optimise-call-expression': 7.25.9
+ '@babel/helper-replace-supers': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
+ '@babel/traverse': 7.25.9
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/helper-create-regexp-features-plugin@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.25.9
+ regexpu-core: 6.1.1
+ semver: 6.3.1
+
+ '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-compilation-targets': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+ debug: 4.3.6(supports-color@8.1.1)
+ lodash.debounce: 4.0.8
+ resolve: 1.22.8
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-environment-visitor@7.24.7':
dependencies:
'@babel/types': 7.24.8
@@ -7482,6 +8400,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-member-expression-to-functions@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.26.0
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-module-imports@7.24.7':
dependencies:
'@babel/traverse': 7.25.6
@@ -7489,6 +8414,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-imports@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.26.0
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-module-transforms@7.24.8(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
@@ -7510,12 +8442,36 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-transforms@7.26.0(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-optimise-call-expression@7.24.7':
dependencies:
'@babel/types': 7.24.8
+ '@babel/helper-optimise-call-expression@7.25.9':
+ dependencies:
+ '@babel/types': 7.26.0
+
'@babel/helper-plugin-utils@7.24.8': {}
+ '@babel/helper-plugin-utils@7.25.9': {}
+
+ '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.25.9
+ '@babel/helper-wrap-function': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-replace-supers@7.24.7(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
@@ -7525,6 +8481,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-replace-supers@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-member-expression-to-functions': 7.25.9
+ '@babel/helper-optimise-call-expression': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-simple-access@7.24.7':
dependencies:
'@babel/traverse': 7.25.6
@@ -7532,6 +8497,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-simple-access@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.26.0
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-skip-transparent-expression-wrappers@7.24.7':
dependencies:
'@babel/traverse': 7.24.8
@@ -7539,16 +8511,37 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-skip-transparent-expression-wrappers@7.25.9':
+ dependencies:
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.26.0
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-split-export-declaration@7.24.7':
dependencies:
'@babel/types': 7.24.8
'@babel/helper-string-parser@7.24.8': {}
+ '@babel/helper-string-parser@7.25.9': {}
+
'@babel/helper-validator-identifier@7.24.7': {}
+ '@babel/helper-validator-identifier@7.25.9': {}
+
'@babel/helper-validator-option@7.24.8': {}
+ '@babel/helper-validator-option@7.25.9': {}
+
+ '@babel/helper-wrap-function@7.25.9':
+ dependencies:
+ '@babel/template': 7.25.9
+ '@babel/traverse': 7.25.9
+ '@babel/types': 7.26.0
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helpers@7.25.6':
dependencies:
'@babel/template': 7.25.0
@@ -7569,34 +8562,498 @@ snapshots:
dependencies:
'@babel/types': 7.25.6
+ '@babel/parser@7.26.2':
+ dependencies:
+ '@babel/types': 7.26.0
+
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
+ '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+
+ '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
'@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
'@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)':
+ '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.24.8
+
+ '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.25.2)
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-classes@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.25.9
+ '@babel/helper-compilation-targets': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-replace-supers': 7.25.9(@babel/core@7.25.2)
+ '@babel/traverse': 7.25.9
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/template': 7.25.9
+
+ '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-exponentiation-operator@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-builder-binary-assignment-operator-visitor': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-compilation-targets': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-literals@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.24.8(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-simple-access': 7.24.7
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-commonjs@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-simple-access': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+ '@babel/traverse': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-module-transforms': 7.26.0(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-compilation-targets': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.25.2)
+
+ '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-replace-supers': 7.25.9(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.25.9
+ '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ regenerator-transform: 0.15.2
+
+ '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-spread@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-skip-transparent-expression-wrappers': 7.25.9
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-annotate-as-pure': 7.24.7
+ '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.24.8
+ '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.25.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
+
+ '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
- '@babel/helper-plugin-utils': 7.24.8
+ '@babel/helper-create-regexp-features-plugin': 7.25.9(@babel/core@7.25.2)
+ '@babel/helper-plugin-utils': 7.25.9
- '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)':
+ '@babel/preset-env@7.26.0(@babel/core@7.25.2)':
dependencies:
+ '@babel/compat-data': 7.26.2
'@babel/core': 7.25.2
- '@babel/helper-module-transforms': 7.24.8(@babel/core@7.25.2)
- '@babel/helper-plugin-utils': 7.24.8
- '@babel/helper-simple-access': 7.24.7
+ '@babel/helper-compilation-targets': 7.25.9
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/helper-validator-option': 7.25.9
+ '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)
+ '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.25.2)
+ '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.25.2)
+ '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2)
+ '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.25.2)
+ '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-exponentiation-operator': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-commonjs': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.25.2)
+ '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.25.2)
+ '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.25.2)
+ '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2)
+ babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.25.2)
+ babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2)
+ babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.25.2)
+ core-js-compat: 3.38.1
+ semver: 6.3.1
transitivePeerDependencies:
- supports-color
- '@babel/plugin-transform-typescript@7.24.8(@babel/core@7.25.2)':
+ '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)':
dependencies:
'@babel/core': 7.25.2
- '@babel/helper-annotate-as-pure': 7.24.7
- '@babel/helper-create-class-features-plugin': 7.24.8(@babel/core@7.25.2)
- '@babel/helper-plugin-utils': 7.24.8
- '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2)
- transitivePeerDependencies:
- - supports-color
+ '@babel/helper-plugin-utils': 7.25.9
+ '@babel/types': 7.26.0
+ esutils: 2.0.3
'@babel/preset-typescript@7.24.7(@babel/core@7.25.2)':
dependencies:
@@ -7609,6 +9066,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/runtime@7.26.0':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
'@babel/template@7.24.7':
dependencies:
'@babel/code-frame': 7.24.7
@@ -7621,6 +9082,12 @@ snapshots:
'@babel/parser': 7.25.6
'@babel/types': 7.25.6
+ '@babel/template@7.25.9':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/parser': 7.26.2
+ '@babel/types': 7.26.0
+
'@babel/traverse@7.24.8':
dependencies:
'@babel/code-frame': 7.24.7
@@ -7631,7 +9098,7 @@ snapshots:
'@babel/helper-split-export-declaration': 7.24.7
'@babel/parser': 7.24.8
'@babel/types': 7.24.8
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -7643,7 +9110,19 @@ snapshots:
'@babel/parser': 7.25.6
'@babel/template': 7.25.0
'@babel/types': 7.25.6
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/traverse@7.25.9':
+ dependencies:
+ '@babel/code-frame': 7.26.2
+ '@babel/generator': 7.26.2
+ '@babel/parser': 7.26.2
+ '@babel/template': 7.25.9
+ '@babel/types': 7.26.0
+ debug: 4.3.6(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
- supports-color
@@ -7660,6 +9139,11 @@ snapshots:
'@babel/helper-validator-identifier': 7.24.7
to-fast-properties: 2.0.0
+ '@babel/types@7.26.0':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
'@bcoe/v8-coverage@0.2.3': {}
'@clack/core@0.3.4':
@@ -8014,7 +9498,7 @@ snapshots:
'@eslint/config-array@0.17.0':
dependencies:
'@eslint/object-schema': 2.1.4
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
@@ -8022,7 +9506,7 @@ snapshots:
'@eslint/eslintrc@3.1.0':
dependencies:
ajv: 6.12.6
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
espree: 10.1.0
globals: 14.0.0
ignore: 5.3.1
@@ -8187,7 +9671,7 @@ snapshots:
'@antfu/install-pkg': 0.4.1
'@antfu/utils': 0.7.10
'@iconify/types': 2.0.0
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
kolorist: 1.8.0
local-pkg: 0.5.0
mlly: 1.7.1
@@ -8228,6 +9712,11 @@ snapshots:
'@jridgewell/set-array@1.2.1': {}
+ '@jridgewell/source-map@0.3.6':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.5
+ '@jridgewell/trace-mapping': 0.3.25
+
'@jridgewell/sourcemap-codec@1.5.0': {}
'@jridgewell/trace-mapping@0.3.25':
@@ -8339,13 +9828,53 @@ snapshots:
dependencies:
'@prisma/debug': 5.19.1
- '@rollup/pluginutils@5.1.0(rollup@4.18.1)':
+ '@rollup/plugin-babel@5.3.1(@babel/core@7.25.2)(rollup@2.79.2)':
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-module-imports': 7.25.9
+ '@rollup/pluginutils': 3.1.0(rollup@2.79.2)
+ rollup: 2.79.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@rollup/plugin-node-resolve@15.3.0(rollup@2.79.2)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.0(rollup@2.79.2)
+ '@types/resolve': 1.20.2
+ deepmerge: 4.3.1
+ is-module: 1.0.0
+ resolve: 1.22.8
+ optionalDependencies:
+ rollup: 2.79.2
+
+ '@rollup/plugin-replace@2.4.2(rollup@2.79.2)':
+ dependencies:
+ '@rollup/pluginutils': 3.1.0(rollup@2.79.2)
+ magic-string: 0.25.9
+ rollup: 2.79.2
+
+ '@rollup/plugin-terser@0.4.4(rollup@2.79.2)':
+ dependencies:
+ serialize-javascript: 6.0.2
+ smob: 1.5.0
+ terser: 5.36.0
+ optionalDependencies:
+ rollup: 2.79.2
+
+ '@rollup/pluginutils@3.1.0(rollup@2.79.2)':
+ dependencies:
+ '@types/estree': 0.0.39
+ estree-walker: 1.0.1
+ picomatch: 2.3.1
+ rollup: 2.79.2
+
+ '@rollup/pluginutils@5.1.0(rollup@2.79.2)':
dependencies:
'@types/estree': 1.0.5
estree-walker: 2.0.2
picomatch: 2.3.1
optionalDependencies:
- rollup: 4.18.1
+ rollup: 2.79.2
'@rollup/rollup-android-arm-eabi@4.18.1':
optional: true
@@ -8710,6 +10239,13 @@ snapshots:
- supports-color
- typescript
+ '@surma/rollup-plugin-off-main-thread@2.2.3':
+ dependencies:
+ ejs: 3.1.10
+ json5: 2.2.3
+ magic-string: 0.25.9
+ string.prototype.matchall: 4.0.11
+
'@swc/helpers@0.5.11':
dependencies:
tslib: 2.6.3
@@ -8752,6 +10288,8 @@ snapshots:
'@types/estree': 1.0.5
'@types/json-schema': 7.0.15
+ '@types/estree@0.0.39': {}
+
'@types/estree@1.0.5': {}
'@types/js-yaml@4.0.9': {}
@@ -8785,6 +10323,8 @@ snapshots:
'@types/tough-cookie': 4.0.5
form-data: 2.5.1
+ '@types/resolve@1.20.2': {}
+
'@types/sinonjs__fake-timers@8.1.1':
optional: true
@@ -8795,6 +10335,8 @@ snapshots:
'@types/tough-cookie@4.0.5': {}
+ '@types/trusted-types@2.0.7': {}
+
'@types/unist@2.0.11': {}
'@types/ws@8.5.10':
@@ -8861,7 +10403,7 @@ snapshots:
'@typescript-eslint/types': 8.3.0
'@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.3)
'@typescript-eslint/visitor-keys': 8.3.0
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
eslint: 9.7.0
optionalDependencies:
typescript: 5.5.3
@@ -8882,7 +10424,7 @@ snapshots:
dependencies:
'@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.3)
'@typescript-eslint/utils': 7.16.0(eslint@9.7.0)(typescript@5.5.3)
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
eslint: 9.7.0
ts-api-utils: 1.3.0(typescript@5.5.3)
optionalDependencies:
@@ -8894,7 +10436,7 @@ snapshots:
dependencies:
'@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.3)
'@typescript-eslint/utils': 8.3.0(eslint@9.7.0)(typescript@5.5.3)
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
ts-api-utils: 1.3.0(typescript@5.5.3)
optionalDependencies:
typescript: 5.5.3
@@ -8912,7 +10454,7 @@ snapshots:
dependencies:
'@typescript-eslint/types': 7.16.0
'@typescript-eslint/visitor-keys': 7.16.0
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.5
@@ -8927,7 +10469,7 @@ snapshots:
dependencies:
'@typescript-eslint/types': 8.3.0
'@typescript-eslint/visitor-keys': 8.3.0
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
fast-glob: 3.3.2
is-glob: 4.0.3
minimatch: 9.0.5
@@ -8970,21 +10512,21 @@ snapshots:
'@typescript-eslint/types': 8.3.0
eslint-visitor-keys: 3.4.3
- '@unocss/astro@0.61.9(rollup@4.18.1)(vite@5.3.3(@types/node@22.8.2))':
+ '@unocss/astro@0.61.9(rollup@2.79.2)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))':
dependencies:
'@unocss/core': 0.61.9
'@unocss/reset': 0.61.9
- '@unocss/vite': 0.61.9(rollup@4.18.1)(vite@5.3.3(@types/node@22.8.2))
+ '@unocss/vite': 0.61.9(rollup@2.79.2)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))
optionalDependencies:
- vite: 5.3.3(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
transitivePeerDependencies:
- rollup
- supports-color
- '@unocss/cli@0.61.9(rollup@4.18.1)':
+ '@unocss/cli@0.61.9(rollup@2.79.2)':
dependencies:
'@ampproject/remapping': 2.3.0
- '@rollup/pluginutils': 5.1.0(rollup@4.18.1)
+ '@rollup/pluginutils': 5.1.0(rollup@2.79.2)
'@unocss/config': 0.61.9
'@unocss/core': 0.61.9
'@unocss/preset-uno': 0.61.9
@@ -9113,10 +10655,10 @@ snapshots:
dependencies:
'@unocss/core': 0.61.9
- '@unocss/vite@0.61.9(rollup@4.18.1)(vite@5.3.3(@types/node@22.8.2))':
+ '@unocss/vite@0.61.9(rollup@2.79.2)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))':
dependencies:
'@ampproject/remapping': 2.3.0
- '@rollup/pluginutils': 5.1.0(rollup@4.18.1)
+ '@rollup/pluginutils': 5.1.0(rollup@2.79.2)
'@unocss/config': 0.61.9
'@unocss/core': 0.61.9
'@unocss/inspector': 0.61.9
@@ -9125,17 +10667,17 @@ snapshots:
chokidar: 3.6.0
fast-glob: 3.3.2
magic-string: 0.30.11
- vite: 5.3.3(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
transitivePeerDependencies:
- rollup
- supports-color
- '@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@22.8.2))(vue@3.5.6(typescript@5.5.3))':
+ '@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))(vue@3.5.6(typescript@5.5.3))':
dependencies:
- vite: 5.3.3(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
vue: 3.5.6(typescript@5.5.3)
- '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3))':
+ '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
@@ -9150,15 +10692,15 @@ snapshots:
std-env: 3.7.0
strip-literal: 2.1.0
test-exclude: 6.0.0
- vitest: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ vitest: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
transitivePeerDependencies:
- supports-color
- '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3))':
+ '@vitest/coverage-v8@2.1.1(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))':
dependencies:
'@ampproject/remapping': 2.3.0
'@bcoe/v8-coverage': 0.2.3
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
@@ -9168,17 +10710,17 @@ snapshots:
std-env: 3.7.0
test-exclude: 7.0.1
tinyrainbow: 1.2.0
- vitest: 2.1.1(@types/node@22.8.2)(jsdom@24.1.3)
+ vitest: 2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
transitivePeerDependencies:
- supports-color
- '@vitest/eslint-plugin@1.0.5(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3))':
+ '@vitest/eslint-plugin@1.0.5(@typescript-eslint/utils@8.3.0(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0))':
dependencies:
eslint: 9.7.0
optionalDependencies:
'@typescript-eslint/utils': 8.3.0(eslint@9.7.0)(typescript@5.5.3)
typescript: 5.5.3
- vitest: 2.1.1(@types/node@22.8.2)(jsdom@24.1.3)
+ vitest: 2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
'@vitest/expect@1.6.0':
dependencies:
@@ -9193,13 +10735,13 @@ snapshots:
chai: 5.1.1
tinyrainbow: 1.2.0
- '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.3.3(@types/node@22.8.2))':
+ '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))':
dependencies:
'@vitest/spy': 2.1.1
estree-walker: 3.0.3
magic-string: 0.30.11
optionalDependencies:
- vite: 5.3.3(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
'@vitest/pretty-format@2.1.1':
dependencies:
@@ -9389,7 +10931,7 @@ snapshots:
agent-base@7.1.1:
dependencies:
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -9522,13 +11064,11 @@ snapshots:
dependencies:
lodash: 4.17.21
- async@3.2.5:
- optional: true
+ async@3.2.5: {}
asynckit@0.4.0: {}
- at-least-node@1.0.0:
- optional: true
+ at-least-node@1.0.0: {}
atomic-sleep@1.0.0: {}
@@ -9572,6 +11112,30 @@ snapshots:
transitivePeerDependencies:
- debug
+ babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.25.2):
+ dependencies:
+ '@babel/compat-data': 7.26.2
+ '@babel/core': 7.25.2
+ '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.25.2)
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2):
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.25.2)
+ core-js-compat: 3.38.1
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.25.2):
+ dependencies:
+ '@babel/core': 7.25.2
+ '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.25.2)
+ transitivePeerDependencies:
+ - supports-color
+
balanced-match@1.0.2: {}
balanced-match@2.0.0: {}
@@ -9679,6 +11243,13 @@ snapshots:
node-releases: 2.0.18
update-browserslist-db: 1.1.0(browserslist@4.23.3)
+ browserslist@4.24.2:
+ dependencies:
+ caniuse-lite: 1.0.30001680
+ electron-to-chromium: 1.5.60
+ node-releases: 2.0.18
+ update-browserslist-db: 1.1.1(browserslist@4.24.2)
+
bs-recipes@1.3.4: {}
buffer-crc32@0.2.13:
@@ -9687,6 +11258,8 @@ snapshots:
buffer-equal-constant-time@1.0.1:
optional: true
+ buffer-from@1.1.2: {}
+
buffer@5.7.1:
dependencies:
base64-js: 1.5.1
@@ -9730,6 +11303,8 @@ snapshots:
caniuse-lite@1.0.30001653: {}
+ caniuse-lite@1.0.30001680: {}
+
caseless@0.12.0: {}
chai@4.4.1:
@@ -9884,8 +11459,7 @@ snapshots:
comment-parser@1.4.1: {}
- common-tags@1.8.2:
- optional: true
+ common-tags@1.8.2: {}
compare-func@2.0.0:
dependencies:
@@ -9988,6 +11562,8 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
+ crypto-random-string@2.0.0: {}
+
css-functions-list@3.2.2: {}
css-tree@2.3.1:
@@ -10003,11 +11579,11 @@ snapshots:
csstype@3.1.3: {}
- cypress-vite@1.5.0(vite@5.3.3(@types/node@22.8.2)):
+ cypress-vite@1.5.0(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0)):
dependencies:
chokidar: 3.6.0
debug: 4.3.5(supports-color@5.5.0)
- vite: 5.3.3(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
transitivePeerDependencies:
- supports-color
optional: true
@@ -10123,9 +11699,11 @@ snapshots:
supports-color: 8.1.1
optional: true
- debug@4.3.6:
+ debug@4.3.6(supports-color@8.1.1):
dependencies:
ms: 2.1.2
+ optionalDependencies:
+ supports-color: 8.1.1
decimal.js@10.4.3: {}
@@ -10139,6 +11717,8 @@ snapshots:
deep-is@0.1.4: {}
+ deepmerge@4.3.1: {}
+
define-data-property@1.1.4:
dependencies:
es-define-property: 1.0.0
@@ -10230,8 +11810,14 @@ snapshots:
ee-first@1.1.1: {}
+ ejs@3.1.10:
+ dependencies:
+ jake: 10.9.2
+
electron-to-chromium@1.5.13: {}
+ electron-to-chromium@1.5.60: {}
+
elliptic@6.5.5:
dependencies:
bn.js: 4.12.0
@@ -10260,7 +11846,7 @@ snapshots:
engine.io-client@6.5.4:
dependencies:
'@socket.io/component-emitter': 3.1.2
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
engine.io-parser: 5.2.3
ws: 8.17.1
xmlhttprequest-ssl: 2.0.0
@@ -10280,7 +11866,7 @@ snapshots:
base64id: 2.0.0
cookie: 0.4.2
cors: 2.8.5
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
engine.io-parser: 5.2.3
ws: 8.17.1
transitivePeerDependencies:
@@ -10437,6 +12023,8 @@ snapshots:
escalade@3.1.2: {}
+ escalade@3.2.0: {}
+
escape-html@1.0.3: {}
escape-string-regexp@1.0.5: {}
@@ -10498,7 +12086,7 @@ snapshots:
dependencies:
'@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.3)
'@typescript-eslint/utils': 8.3.0(eslint@9.7.0)(typescript@5.5.3)
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
doctrine: 3.0.0
eslint: 9.7.0
eslint-import-resolver-node: 0.3.9
@@ -10517,7 +12105,7 @@ snapshots:
'@es-joy/jsdoccomment': 0.48.0
are-docs-informative: 0.0.2
comment-parser: 1.4.1
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
escape-string-regexp: 4.0.0
eslint: 9.7.0
espree: 10.1.0
@@ -10587,7 +12175,7 @@ snapshots:
eslint-plugin-toml@0.11.1(eslint@9.7.0):
dependencies:
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
eslint: 9.7.0
eslint-compat-utils: 0.5.1(eslint@9.7.0)
lodash: 4.17.21
@@ -10637,7 +12225,7 @@ snapshots:
eslint-plugin-yml@1.14.0(eslint@9.7.0):
dependencies:
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
eslint: 9.7.0
eslint-compat-utils: 0.5.1(eslint@9.7.0)
lodash: 4.17.21
@@ -10678,7 +12266,7 @@ snapshots:
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
escape-string-regexp: 4.0.0
eslint-scope: 8.0.2
eslint-visitor-keys: 4.0.0
@@ -10726,6 +12314,8 @@ snapshots:
estraverse@5.3.0: {}
+ estree-walker@1.0.1: {}
+
estree-walker@2.0.2: {}
estree-walker@3.0.3:
@@ -10783,7 +12373,7 @@ snapshots:
extract-zip@2.0.1(supports-color@8.1.1):
dependencies:
- debug: 4.3.5(supports-color@8.1.1)
+ debug: 4.3.6(supports-color@8.1.1)
get-stream: 5.2.0
yauzl: 2.10.0
optionalDependencies:
@@ -10907,6 +12497,10 @@ snapshots:
pend: 1.2.0
optional: true
+ fdir@6.4.2(picomatch@4.0.2):
+ optionalDependencies:
+ picomatch: 4.0.2
+
figures@3.2.0:
dependencies:
escape-string-regexp: 1.0.5
@@ -10920,6 +12514,10 @@ snapshots:
dependencies:
flat-cache: 5.0.0
+ filelist@1.0.4:
+ dependencies:
+ minimatch: 5.1.6
+
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
@@ -11032,7 +12630,6 @@ snapshots:
graceful-fs: 4.2.11
jsonfile: 6.1.0
universalify: 2.0.1
- optional: true
fs.realpath@1.0.0: {}
@@ -11066,6 +12663,8 @@ snapshots:
has-symbols: 1.0.3
hasown: 2.0.2
+ get-own-enumerable-property-symbols@3.0.2: {}
+
get-stream@5.2.0:
dependencies:
pump: 3.0.0
@@ -11279,7 +12878,7 @@ snapshots:
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.1
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -11309,7 +12908,7 @@ snapshots:
https-proxy-agent@7.0.5:
dependencies:
agent-base: 7.1.1
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -11328,6 +12927,8 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
+ idb@7.1.1: {}
+
ieee754@1.2.1: {}
ignore-by-default@1.0.1: {}
@@ -11348,7 +12949,7 @@ snapshots:
importx@0.4.4:
dependencies:
bundle-require: 5.0.0(esbuild@0.21.5)
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
esbuild: 0.21.5
jiti: 2.0.0-beta.3
jiti-v1: jiti@1.21.6
@@ -11471,6 +13072,8 @@ snapshots:
is-path-inside: 3.0.3
optional: true
+ is-module@1.0.0: {}
+
is-negative-zero@2.0.3: {}
is-number-like@1.0.8:
@@ -11483,6 +13086,8 @@ snapshots:
is-number@7.0.0: {}
+ is-obj@1.0.1: {}
+
is-obj@2.0.0: {}
is-path-inside@3.0.3: {}
@@ -11496,14 +13101,15 @@ snapshots:
call-bind: 1.0.7
has-tostringtag: 1.0.2
+ is-regexp@1.0.0: {}
+
is-retry-allowed@2.2.0: {}
is-shared-array-buffer@1.0.3:
dependencies:
call-bind: 1.0.7
- is-stream@2.0.1:
- optional: true
+ is-stream@2.0.1: {}
is-stream@3.0.0: {}
@@ -11573,6 +13179,13 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
+ jake@10.9.2:
+ dependencies:
+ async: 3.2.5
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
+
javascript-time-ago@2.5.11:
dependencies:
relative-time-format: 1.1.6
@@ -11653,7 +13266,7 @@ snapshots:
json-schema-resolver@2.0.0:
dependencies:
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
rfdc: 1.4.1
uri-js: 4.4.1
transitivePeerDependencies:
@@ -11687,12 +13300,13 @@ snapshots:
universalify: 2.0.1
optionalDependencies:
graceful-fs: 4.2.11
- optional: true
jsonparse@1.3.1: {}
jsonpath-plus@8.1.0: {}
+ jsonpointer@5.0.1: {}
+
jsprim@1.4.2:
dependencies:
assert-plus: 1.0.0
@@ -11762,6 +13376,8 @@ snapshots:
lazy-ass@1.6.0:
optional: true
+ leven@3.1.0: {}
+
levn@0.4.1:
dependencies:
prelude-ls: 1.2.1
@@ -11858,6 +13474,8 @@ snapshots:
lodash.camelcase@4.3.0: {}
+ lodash.debounce@4.0.8: {}
+
lodash.isfinite@3.3.2: {}
lodash.isplainobject@4.0.6: {}
@@ -11873,6 +13491,8 @@ snapshots:
lodash.snakecase@4.1.1: {}
+ lodash.sortby@4.7.0: {}
+
lodash.startcase@4.4.0: {}
lodash.truncate@4.4.2: {}
@@ -11926,6 +13546,10 @@ snapshots:
yallist: 4.0.0
optional: true
+ magic-string@0.25.9:
+ dependencies:
+ sourcemap-codec: 1.4.8
+
magic-string@0.30.10:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.0
@@ -11972,7 +13596,7 @@ snapshots:
micromark@2.11.4:
dependencies:
- debug: 4.3.5(supports-color@5.5.0)
+ debug: 4.3.6(supports-color@8.1.1)
parse-entities: 2.0.0
transitivePeerDependencies:
- supports-color
@@ -12011,6 +13635,10 @@ snapshots:
dependencies:
brace-expansion: 1.1.11
+ minimatch@5.1.6:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@9.0.5:
dependencies:
brace-expansion: 2.0.1
@@ -12518,8 +14146,9 @@ snapshots:
prettier@3.3.2: {}
- pretty-bytes@5.6.0:
- optional: true
+ pretty-bytes@5.6.0: {}
+
+ pretty-bytes@6.1.1: {}
pretty-format@29.7.0:
dependencies:
@@ -12594,6 +14223,10 @@ snapshots:
discontinuous-range: 1.0.0
ret: 0.1.15
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
range-parser@1.2.1: {}
rate-limiter-flexible@4.0.1: {}
@@ -12659,6 +14292,18 @@ snapshots:
reftools@1.1.9: {}
+ regenerate-unicode-properties@10.2.0:
+ dependencies:
+ regenerate: 1.4.2
+
+ regenerate@1.4.2: {}
+
+ regenerator-runtime@0.14.1: {}
+
+ regenerator-transform@0.15.2:
+ dependencies:
+ '@babel/runtime': 7.26.0
+
regexp-ast-analysis@0.7.1:
dependencies:
'@eslint-community/regexpp': 4.11.0
@@ -12673,10 +14318,25 @@ snapshots:
es-errors: 1.3.0
set-function-name: 2.0.2
+ regexpu-core@6.1.1:
+ dependencies:
+ regenerate: 1.4.2
+ regenerate-unicode-properties: 10.2.0
+ regjsgen: 0.8.0
+ regjsparser: 0.11.2
+ unicode-match-property-ecmascript: 2.0.0
+ unicode-match-property-value-ecmascript: 2.2.0
+
+ regjsgen@0.8.0: {}
+
regjsparser@0.10.0:
dependencies:
jsesc: 0.5.0
+ regjsparser@0.11.2:
+ dependencies:
+ jsesc: 3.0.2
+
relative-time-format@1.1.6: {}
request-compose@2.1.6: {}
@@ -12782,6 +14442,10 @@ snapshots:
dependencies:
glob: 10.4.5
+ rollup@2.79.2:
+ optionalDependencies:
+ fsevents: 2.3.3
+
rollup@4.18.1:
dependencies:
'@types/estree': 1.0.5
@@ -12890,6 +14554,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ serialize-javascript@6.0.2:
+ dependencies:
+ randombytes: 2.1.0
+
serve-index@1.9.1:
dependencies:
accepts: 1.3.8
@@ -13033,13 +14701,15 @@ snapshots:
ansi-styles: 6.2.1
is-fullwidth-code-point: 5.0.0
+ smob@1.5.0: {}
+
smtp-address-parser@1.1.0:
dependencies:
nearley: 2.20.1
socket.io-adapter@2.5.5:
dependencies:
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
ws: 8.17.1
transitivePeerDependencies:
- bufferutil
@@ -13049,7 +14719,7 @@ snapshots:
socket.io-client@4.7.5:
dependencies:
'@socket.io/component-emitter': 3.1.2
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
engine.io-client: 6.5.4
socket.io-parser: 4.2.4
transitivePeerDependencies:
@@ -13060,7 +14730,7 @@ snapshots:
socket.io-parser@4.2.4:
dependencies:
'@socket.io/component-emitter': 3.1.2
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
transitivePeerDependencies:
- supports-color
@@ -13069,7 +14739,7 @@ snapshots:
accepts: 1.3.8
base64id: 2.0.0
cors: 2.8.5
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
engine.io: 6.5.5
socket.io-adapter: 2.5.5
socket.io-parser: 4.2.4
@@ -13086,6 +14756,19 @@ snapshots:
source-map-js@1.2.1: {}
+ source-map-support@0.5.21:
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+
+ source-map@0.6.1: {}
+
+ source-map@0.8.0-beta.0:
+ dependencies:
+ whatwg-url: 7.1.0
+
+ sourcemap-codec@1.4.8: {}
+
spdx-correct@3.2.0:
dependencies:
spdx-expression-parse: 3.0.1
@@ -13170,6 +14853,21 @@ snapshots:
get-east-asian-width: 1.2.0
strip-ansi: 7.1.0
+ string.prototype.matchall@4.0.11:
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.23.3
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ get-intrinsic: 1.2.4
+ gopd: 1.0.1
+ has-symbols: 1.0.3
+ internal-slot: 1.0.7
+ regexp.prototype.flags: 1.5.2
+ set-function-name: 2.0.2
+ side-channel: 1.0.6
+
string.prototype.padend@3.1.6:
dependencies:
call-bind: 1.0.7
@@ -13204,6 +14902,12 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
+ stringify-object@3.3.0:
+ dependencies:
+ get-own-enumerable-property-symbols: 3.0.2
+ is-obj: 1.0.1
+ is-regexp: 1.0.0
+
strip-ansi@6.0.1:
dependencies:
ansi-regex: 5.0.1
@@ -13214,6 +14918,8 @@ snapshots:
strip-bom@3.0.0: {}
+ strip-comments@2.0.1: {}
+
strip-final-newline@2.0.0:
optional: true
@@ -13387,6 +15093,22 @@ snapshots:
mkdirp: 3.0.1
yallist: 5.0.0
+ temp-dir@2.0.0: {}
+
+ tempy@0.6.0:
+ dependencies:
+ is-stream: 2.0.1
+ temp-dir: 2.0.0
+ type-fest: 0.16.0
+ unique-string: 2.0.0
+
+ terser@5.36.0:
+ dependencies:
+ '@jridgewell/source-map': 0.3.6
+ acorn: 8.12.1
+ commander: 2.20.3
+ source-map-support: 0.5.21
+
test-exclude@6.0.0:
dependencies:
'@istanbuljs/schema': 0.1.3
@@ -13420,6 +15142,11 @@ snapshots:
tinyexec@0.3.0: {}
+ tinyglobby@0.2.10:
+ dependencies:
+ fdir: 6.4.2(picomatch@4.0.2)
+ picomatch: 4.0.2
+
tinypool@0.8.4: {}
tinypool@1.0.1: {}
@@ -13465,6 +15192,10 @@ snapshots:
tr46@0.0.3: {}
+ tr46@1.0.1:
+ dependencies:
+ punycode: 2.3.1
+
tr46@5.0.0:
dependencies:
punycode: 2.3.1
@@ -13538,6 +15269,8 @@ snapshots:
type-detect@4.0.8: {}
+ type-fest@0.16.0: {}
+
type-fest@0.20.2: {}
type-fest@0.21.3:
@@ -13617,13 +15350,24 @@ snapshots:
undici@6.19.2: {}
+ unicode-canonical-property-names-ecmascript@2.0.1: {}
+
unicode-emoji-modifier-base@1.0.0: {}
+ unicode-match-property-ecmascript@2.0.0:
+ dependencies:
+ unicode-canonical-property-names-ecmascript: 2.0.1
+ unicode-property-aliases-ecmascript: 2.1.0
+
+ unicode-match-property-value-ecmascript@2.2.0: {}
+
+ unicode-property-aliases-ecmascript@2.1.0: {}
+
unicorn-magic@0.1.0: {}
- unimport@3.7.2(rollup@4.18.1):
+ unimport@3.7.2(rollup@2.79.2):
dependencies:
- '@rollup/pluginutils': 5.1.0(rollup@4.18.1)
+ '@rollup/pluginutils': 5.1.0(rollup@2.79.2)
acorn: 8.12.1
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
@@ -13639,6 +15383,10 @@ snapshots:
transitivePeerDependencies:
- rollup
+ unique-string@2.0.0:
+ dependencies:
+ crypto-random-string: 2.0.0
+
unist-util-stringify-position@2.0.3:
dependencies:
'@types/unist': 2.0.11
@@ -13647,13 +15395,12 @@ snapshots:
universalify@0.2.0: {}
- universalify@2.0.1:
- optional: true
+ universalify@2.0.1: {}
- unocss@0.61.9(postcss@8.4.39)(rollup@4.18.1)(vite@5.3.3(@types/node@22.8.2)):
+ unocss@0.61.9(postcss@8.4.39)(rollup@2.79.2)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0)):
dependencies:
- '@unocss/astro': 0.61.9(rollup@4.18.1)(vite@5.3.3(@types/node@22.8.2))
- '@unocss/cli': 0.61.9(rollup@4.18.1)
+ '@unocss/astro': 0.61.9(rollup@2.79.2)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))
+ '@unocss/cli': 0.61.9(rollup@2.79.2)
'@unocss/core': 0.61.9
'@unocss/extractor-arbitrary-variants': 0.61.9
'@unocss/postcss': 0.61.9(postcss@8.4.39)
@@ -13671,9 +15418,9 @@ snapshots:
'@unocss/transformer-compile-class': 0.61.9
'@unocss/transformer-directives': 0.61.9
'@unocss/transformer-variant-group': 0.61.9
- '@unocss/vite': 0.61.9(rollup@4.18.1)(vite@5.3.3(@types/node@22.8.2))
+ '@unocss/vite': 0.61.9(rollup@2.79.2)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))
optionalDependencies:
- vite: 5.3.3(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
transitivePeerDependencies:
- postcss
- rollup
@@ -13681,23 +15428,23 @@ snapshots:
unpipe@1.0.0: {}
- unplugin-auto-import@0.17.8(rollup@4.18.1):
+ unplugin-auto-import@0.17.8(rollup@2.79.2):
dependencies:
'@antfu/utils': 0.7.10
- '@rollup/pluginutils': 5.1.0(rollup@4.18.1)
+ '@rollup/pluginutils': 5.1.0(rollup@2.79.2)
fast-glob: 3.3.2
local-pkg: 0.5.0
magic-string: 0.30.10
minimatch: 9.0.5
- unimport: 3.7.2(rollup@4.18.1)
+ unimport: 3.7.2(rollup@2.79.2)
unplugin: 1.11.0
transitivePeerDependencies:
- rollup
- unplugin-vue-components@0.27.2(@babel/parser@7.25.6)(rollup@4.18.1)(vue@3.5.6(typescript@5.5.3)):
+ unplugin-vue-components@0.27.2(@babel/parser@7.26.2)(rollup@2.79.2)(vue@3.5.6(typescript@5.5.3)):
dependencies:
'@antfu/utils': 0.7.10
- '@rollup/pluginutils': 5.1.0(rollup@4.18.1)
+ '@rollup/pluginutils': 5.1.0(rollup@2.79.2)
chokidar: 3.6.0
debug: 4.3.5(supports-color@5.5.0)
fast-glob: 3.3.2
@@ -13708,7 +15455,7 @@ snapshots:
unplugin: 1.11.0
vue: 3.5.6(typescript@5.5.3)
optionalDependencies:
- '@babel/parser': 7.25.6
+ '@babel/parser': 7.26.2
transitivePeerDependencies:
- rollup
- supports-color
@@ -13723,12 +15470,20 @@ snapshots:
untildify@4.0.0:
optional: true
+ upath@1.2.0: {}
+
update-browserslist-db@1.1.0(browserslist@4.23.3):
dependencies:
browserslist: 4.23.3
escalade: 3.1.2
picocolors: 1.0.1
+ update-browserslist-db@1.1.1(browserslist@4.24.2):
+ dependencies:
+ browserslist: 4.24.2
+ escalade: 3.2.0
+ picocolors: 1.1.0
+
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
@@ -13767,13 +15522,13 @@ snapshots:
core-util-is: 1.0.2
extsprintf: 1.3.0
- vite-node@1.6.0(@types/node@22.8.2):
+ vite-node@1.6.0(@types/node@22.8.2)(terser@5.36.0):
dependencies:
cac: 6.7.14
debug: 4.3.5(supports-color@5.5.0)
pathe: 1.1.2
picocolors: 1.0.1
- vite: 5.3.3(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
transitivePeerDependencies:
- '@types/node'
- less
@@ -13784,12 +15539,12 @@ snapshots:
- supports-color
- terser
- vite-node@2.1.1(@types/node@22.8.2):
+ vite-node@2.1.1(@types/node@22.8.2)(terser@5.36.0):
dependencies:
cac: 6.7.14
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
pathe: 1.1.2
- vite: 5.3.3(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
transitivePeerDependencies:
- '@types/node'
- less
@@ -13800,7 +15555,18 @@ snapshots:
- supports-color
- terser
- vite@5.3.3(@types/node@22.8.2):
+ vite-plugin-pwa@0.21.0(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))(workbox-build@7.3.0)(workbox-window@7.3.0):
+ dependencies:
+ debug: 4.3.6(supports-color@8.1.1)
+ pretty-bytes: 6.1.1
+ tinyglobby: 0.2.10
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
+ workbox-build: 7.3.0
+ workbox-window: 7.3.0
+ transitivePeerDependencies:
+ - supports-color
+
+ vite@5.3.3(@types/node@22.8.2)(terser@5.36.0):
dependencies:
esbuild: 0.21.5
postcss: 8.4.39
@@ -13808,20 +15574,21 @@ snapshots:
optionalDependencies:
'@types/node': 22.8.2
fsevents: 2.3.3
+ terser: 5.36.0
- vitest-mock-extended@1.3.1(typescript@5.5.3)(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)):
+ vitest-mock-extended@1.3.1(typescript@5.5.3)(vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)):
dependencies:
ts-essentials: 9.4.2(typescript@5.5.3)
typescript: 5.5.3
- vitest: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)
+ vitest: 1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
- vitest-mock-extended@1.3.1(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)):
+ vitest-mock-extended@1.3.1(typescript@5.5.3)(vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)):
dependencies:
ts-essentials: 9.4.2(typescript@5.5.3)
typescript: 5.5.3
- vitest: 2.1.1(@types/node@22.8.2)(jsdom@24.1.3)
+ vitest: 2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0)
- vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3):
+ vitest@1.6.0(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0):
dependencies:
'@vitest/expect': 1.6.0
'@vitest/runner': 1.6.0
@@ -13840,8 +15607,8 @@ snapshots:
strip-literal: 2.1.0
tinybench: 2.8.0
tinypool: 0.8.4
- vite: 5.3.3(@types/node@22.8.2)
- vite-node: 1.6.0(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
+ vite-node: 1.6.0(@types/node@22.8.2)(terser@5.36.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.8.2
@@ -13855,17 +15622,17 @@ snapshots:
- supports-color
- terser
- vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3):
+ vitest@2.1.1(@types/node@22.8.2)(jsdom@24.1.3)(terser@5.36.0):
dependencies:
'@vitest/expect': 2.1.1
- '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.3.3(@types/node@22.8.2))
+ '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.3.3(@types/node@22.8.2)(terser@5.36.0))
'@vitest/pretty-format': 2.1.1
'@vitest/runner': 2.1.1
'@vitest/snapshot': 2.1.1
'@vitest/spy': 2.1.1
'@vitest/utils': 2.1.1
chai: 5.1.1
- debug: 4.3.6
+ debug: 4.3.6(supports-color@8.1.1)
magic-string: 0.30.11
pathe: 1.1.2
std-env: 3.7.0
@@ -13873,8 +15640,8 @@ snapshots:
tinyexec: 0.3.0
tinypool: 1.0.1
tinyrainbow: 1.2.0
- vite: 5.3.3(@types/node@22.8.2)
- vite-node: 2.1.1(@types/node@22.8.2)
+ vite: 5.3.3(@types/node@22.8.2)(terser@5.36.0)
+ vite-node: 2.1.1(@types/node@22.8.2)(terser@5.36.0)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 22.8.2
@@ -13946,6 +15713,8 @@ snapshots:
webidl-conversions@3.0.1: {}
+ webidl-conversions@4.0.2: {}
+
webidl-conversions@7.0.0: {}
webpack-sources@3.2.3: {}
@@ -13968,6 +15737,12 @@ snapshots:
tr46: 0.0.3
webidl-conversions: 3.0.1
+ whatwg-url@7.1.0:
+ dependencies:
+ lodash.sortby: 4.7.0
+ tr46: 1.0.1
+ webidl-conversions: 4.0.2
+
which-boxed-primitive@1.0.2:
dependencies:
is-bigint: 1.0.4
@@ -14001,6 +15776,119 @@ snapshots:
word-wrap@1.2.5: {}
+ workbox-background-sync@7.3.0:
+ dependencies:
+ idb: 7.1.1
+ workbox-core: 7.3.0
+
+ workbox-broadcast-update@7.3.0:
+ dependencies:
+ workbox-core: 7.3.0
+
+ workbox-build@7.3.0:
+ dependencies:
+ '@apideck/better-ajv-errors': 0.3.6(ajv@8.16.0)
+ '@babel/core': 7.25.2
+ '@babel/preset-env': 7.26.0(@babel/core@7.25.2)
+ '@babel/runtime': 7.26.0
+ '@rollup/plugin-babel': 5.3.1(@babel/core@7.25.2)(rollup@2.79.2)
+ '@rollup/plugin-node-resolve': 15.3.0(rollup@2.79.2)
+ '@rollup/plugin-replace': 2.4.2(rollup@2.79.2)
+ '@rollup/plugin-terser': 0.4.4(rollup@2.79.2)
+ '@surma/rollup-plugin-off-main-thread': 2.2.3
+ ajv: 8.16.0
+ common-tags: 1.8.2
+ fast-json-stable-stringify: 2.1.0
+ fs-extra: 9.1.0
+ glob: 7.2.3
+ lodash: 4.17.21
+ pretty-bytes: 5.6.0
+ rollup: 2.79.2
+ source-map: 0.8.0-beta.0
+ stringify-object: 3.3.0
+ strip-comments: 2.0.1
+ tempy: 0.6.0
+ upath: 1.2.0
+ workbox-background-sync: 7.3.0
+ workbox-broadcast-update: 7.3.0
+ workbox-cacheable-response: 7.3.0
+ workbox-core: 7.3.0
+ workbox-expiration: 7.3.0
+ workbox-google-analytics: 7.3.0
+ workbox-navigation-preload: 7.3.0
+ workbox-precaching: 7.3.0
+ workbox-range-requests: 7.3.0
+ workbox-recipes: 7.3.0
+ workbox-routing: 7.3.0
+ workbox-strategies: 7.3.0
+ workbox-streams: 7.3.0
+ workbox-sw: 7.3.0
+ workbox-window: 7.3.0
+ transitivePeerDependencies:
+ - '@types/babel__core'
+ - supports-color
+
+ workbox-cacheable-response@7.3.0:
+ dependencies:
+ workbox-core: 7.3.0
+
+ workbox-core@7.3.0: {}
+
+ workbox-expiration@7.3.0:
+ dependencies:
+ idb: 7.1.1
+ workbox-core: 7.3.0
+
+ workbox-google-analytics@7.3.0:
+ dependencies:
+ workbox-background-sync: 7.3.0
+ workbox-core: 7.3.0
+ workbox-routing: 7.3.0
+ workbox-strategies: 7.3.0
+
+ workbox-navigation-preload@7.3.0:
+ dependencies:
+ workbox-core: 7.3.0
+
+ workbox-precaching@7.3.0:
+ dependencies:
+ workbox-core: 7.3.0
+ workbox-routing: 7.3.0
+ workbox-strategies: 7.3.0
+
+ workbox-range-requests@7.3.0:
+ dependencies:
+ workbox-core: 7.3.0
+
+ workbox-recipes@7.3.0:
+ dependencies:
+ workbox-cacheable-response: 7.3.0
+ workbox-core: 7.3.0
+ workbox-expiration: 7.3.0
+ workbox-precaching: 7.3.0
+ workbox-routing: 7.3.0
+ workbox-strategies: 7.3.0
+
+ workbox-routing@7.3.0:
+ dependencies:
+ workbox-core: 7.3.0
+
+ workbox-strategies@7.3.0:
+ dependencies:
+ workbox-core: 7.3.0
+
+ workbox-streams@7.3.0:
+ dependencies:
+ workbox-core: 7.3.0
+ workbox-routing: 7.3.0
+
+ workbox-sw@7.3.0: {}
+
+ workbox-window@7.3.0:
+ dependencies:
+ '@types/trusted-types': 2.0.7
+ workbox-core: 7.3.0
+
wrap-ansi@6.2.0:
dependencies:
ansi-styles: 4.3.0
@@ -14077,7 +15965,7 @@ snapshots:
yargs@17.1.1:
dependencies:
cliui: 7.0.4
- escalade: 3.1.2
+ escalade: 3.2.0
get-caller-file: 2.0.5
require-directory: 2.1.1
string-width: 4.2.3