diff --git a/.cruft.json b/.cruft.json index 623aa744..d79a390f 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,13 +1,13 @@ { "template": "https://github.com/dyne/starters", - "checkout": "main", - "commit": "81ce066c443209cefebaea185d1a4ce0c36c9f75", + "checkout": null, + "commit": "27524c1406134c804df20bfc7c4b6d73dc16278a", "context": { "cookiecutter": { "project_name": "signroom", "project_description": "Advanced electronic signature service based on Zenroom", - "full_name": "Puria Nafisi Azizi", - "email": "puria@dyne.org", + "author_full_name": "Luther Hacker", + "author_email": "luther@dyne.org", "project_slug": "signroom", "repo": "https://github.com/forkbombeu/signroom", "_copy_without_render": [ diff --git a/.gitmodules.rej b/.gitmodules.rej new file mode 100644 index 00000000..ff9c2bcd --- /dev/null +++ b/.gitmodules.rej @@ -0,0 +1,11 @@ +diff a/.gitmodules b/.gitmodules (rejected hunks) +@@ -1,9 +1,6 @@ + [submodule "admin/zencode/zenflows-crypto"] + path = admin/zencode/zenflows-crypto + url = https://github.com/interfacerproject/zenflows-crypto +-[submodule "webapp/zenflows-crypto"] +- path = webapp/zenflows-crypto +- url = https://github.com/interfacerproject/zenflows-crypto + [submodule "webapp/client_zencode"] + path = webapp/client_zencode + url = https://github.com/ForkbombEu/client_zencode diff --git a/Makefile b/Makefile index a1bf2793..604b5407 100644 --- a/Makefile +++ b/Makefile @@ -18,12 +18,10 @@ PB = $(ADMIN)/pb DATA = $(ADMIN)/pb_data WEBAPP = $(ROOT_DIR)/webapp -WZC = $(WEBAPP)/zenflows-crypto WCZ = $(WEBAPP)/client_zencode BIN = $(ROOT_DIR)/.bin -ZENROOM = $(BIN)/zenroom -ZENCODE = $(BIN)/zencode-exec +SLANGROOM = $(BIN)/slangroom-exec export PATH := $(BIN):$(PATH) @@ -33,53 +31,16 @@ DEPS = pnpm git wget go npx K := $(foreach exec,$(DEPS),\ $(if $(shell which $(exec)),some string,$(error "🥶 `$(exec)` not found in PATH please install it"))) -# - Operating system detection - # - -ifneq ($(OS),Windows_NT) - UNAME_S := $(shell uname -s) - UNAME_M := $(shell uname -m) - ifeq ($(UNAME_S),Linux) - OSFLAG := LINUX - ZENROOM_URL = https://github.com/dyne/zenroom/releases/latest/download/zenroom - ZENCODE_URL = https://github.com/dyne/zenroom/releases/latest/download/zencode-exec - endif - ifeq ($(UNAME_S),Darwin) - ifeq ($(UNAME_M),arm64) - OSFLAG := arm64 - else - OSFLAG := OSX - ZENROOM_URL = https://github.com/dyne/zenroom/releases/latest/download/zenroom.command - ZENCODE_URL = https://github.com/dyne/zenroom/releases/latest/download/zencode-exec.command - endif - endif -endif -# - Setup: Zenroom - # +# - Setup: SLANGROOM - # $(BIN): @mkdir $(BIN) -ifneq ($(OSFLAG),arm64) - -$(ZENROOM): | $(BIN) - @wget -q -O $@ $(ZENROOM_URL) - @chmod +x $@ - @echo "zenroom 😎 installed" - -$(ZENCODE): | $(BIN) - @wget -q -O $@ $(ZENCODE_URL) - @chmod +x $@ - @echo "zencode-exec 🤭 installed" - -else - -$(ZENROOM): - @echo "For usage on Apple ARM processors, please compile [zenroom] manually" - -$(ZENCODE): - @echo "For usage on Apple ARM processors, please compile [zencode-exec] manually" - -endif +$(SLANGROOM): | $(BIN) + @wget https://github.com/dyne/slangroom-exec/releases/latest/download/slangroom-exec-$(shell uname)-$(shell uname -m) -O $(SLANGROOM) + @chmod +x $(SLANGROOM) + @@echo "slangroom-exec 😎 installed" # - Setup: GIT - # @@ -106,10 +67,6 @@ $(AZC): .git @rm -rf $@ @cd $(ADMIN) && git submodule --quiet add -f https://github.com/interfacerproject/zenflows-crypto zencode/zenflows-crypto && git submodule update --remote --init -$(WZC): .git - @rm -rf $@ - @cd $(WEBAPP) && git submodule --quiet add -f https://github.com/interfacerproject/zenflows-crypto zenflows-crypto && git submodule update --remote --init - $(WCZ): .git @rm -rf $@ @cd $(WEBAPP) && git submodule --quiet add -f https://github.com/ForkbombEu/client_zencode client_zencode && git submodule update --remote --init @@ -130,7 +87,7 @@ setup_frontend: $(WEBAPP)/.env @echo "📦 Setup the frontend" cd $(WEBAPP) && pnpm i -setup: $(AZC) $(WZC) $(WCZ) $(ZENROOM) $(ZENCODE) $(PB) setup_frontend ## 📦 Setup the project +setup: $(AZC) $(WCZ) $(SLANGROOM) $(ZENCODE) $(PB) setup_frontend ## 📦 Setup the project # - Running - # diff --git a/Makefile.rej b/Makefile.rej new file mode 100644 index 00000000..ed5166ee --- /dev/null +++ b/Makefile.rej @@ -0,0 +1,23 @@ +diff a/Makefile b/Makefile (rejected hunks) +@@ -159,17 +116,15 @@ doc: ## 📚 Serve documentation on localhost + npx -p docsify-cli docsify serve ./docs + + definitions: ## ⚙️ Generate type definitions and schema +- cd webapp && pnpm definitions ++ cd webapp && pnpm generate:definitions + + # - Cleaning - # + + clean: ## 🧹 Clean the project +- @rm -rf $(AZC) $(WZC) $(WCZ) $(BIN) $(PB) ++ @rm -rf $(AZC) $(WCZ) $(BIN) $(PB) + @rm -fr webapp/node_modules +- @rm -f webapp/src/lib/pocketbase/types.ts +- @rm -f webapp/src/lib/pocketbase/schema/db_schema.json +- @rm -f webapp/src/lib/rbac/roles.ts +- @rm -f webapp/src/lib/features/list.ts ++ @rm -fr webapp/.svelte-kit ++ @find . -type f -name "*.generated.*" -delete + @echo "The project is ✨ cleaned" + + purge: ## ⛔ Purge the database diff --git a/admin/go.mod b/admin/go.mod index faad8e95..8f265a92 100644 --- a/admin/go.mod +++ b/admin/go.mod @@ -1,11 +1,12 @@ module pb -go 1.21 +go 1.22 -toolchain go1.22.0 +toolchain go1.23.2 require ( github.com/dyne/Zenroom/bindings/golang/zenroom v0.0.0-20240527092907-44ad880421d5 + github.com/dyne/slangroom-exec/bindings/go v0.0.0-20241017085658-fb538b02efa3 github.com/go-webauthn/webauthn v0.10.2 github.com/labstack/echo/v5 v5.0.0-20230722203903-ec5b858dab61 github.com/pocketbase/dbx v1.10.1 diff --git a/admin/go.sum b/admin/go.sum index 540a5f88..336975f0 100644 --- a/admin/go.sum +++ b/admin/go.sum @@ -85,6 +85,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/dyne/Zenroom/bindings/golang/zenroom v0.0.0-20240527092907-44ad880421d5 h1:J5cDSHZvSfDIOfTplVZPRmGmrBU/fwNRUQdeKhH30dI= github.com/dyne/Zenroom/bindings/golang/zenroom v0.0.0-20240527092907-44ad880421d5/go.mod h1:ysQV5vx0OYClaDG0gK2yH/m2h4iGy+0ow+7nVdGXago= +github.com/dyne/slangroom-exec/bindings/go v0.0.0-20241017085658-fb538b02efa3 h1:NpCugAf9qm8A8X1qle9+jYlamF6ATGDrsMzWfDOuGW0= +github.com/dyne/slangroom-exec/bindings/go v0.0.0-20241017085658-fb538b02efa3/go.mod h1:OXlCZWI8XQ8suaNik1N6xmjoH0P6fJ9MH9AK1hxw/sw= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= diff --git a/admin/pb_hooks/ambient.d.ts b/admin/pb_hooks/ambient.d.ts index c4d635c9..50917805 100644 --- a/admin/pb_hooks/ambient.d.ts +++ b/admin/pb_hooks/ambient.d.ts @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - /// interface RecordModel> extends models.Record { diff --git a/admin/pb_hooks/organizations_authorizations.pb.js b/admin/pb_hooks/organizations_authorizations.pb.js index 5736570e..2728805d 100644 --- a/admin/pb_hooks/organizations_authorizations.pb.js +++ b/admin/pb_hooks/organizations_authorizations.pb.js @@ -7,8 +7,8 @@ /// /** @typedef {import('./utils.js')} Utils */ /** @typedef {import('./auditLogger.js')} AuditLogger */ -/** @typedef {import("../../webapp/src/lib/pocketbase/types.js").OrgAuthorizationsRecord} OrgAuthorization */ -/** @typedef {import("../../webapp/src/lib/pocketbase/types.js").OrgRolesResponse} OrgRole */ +/** @typedef {import("../../webapp/src/modules/pocketbase/types").OrgAuthorizationsRecord} OrgAuthorization */ +/** @typedef {import("../../webapp/src/modules/pocketbase/types").OrgRolesResponse} OrgRole */ /** * INDEX @@ -50,6 +50,20 @@ onRecordBeforeCreateRequest((e) => { } }, "orgAuthorizations"); +// [UPDATE] Removing fields not needed + +onRecordBeforeUpdateRequest((e) => { + /** @type {Utils} */ + const utils = require(`${__hooks}/utils.js`); + + const originalCopy = e.record?.originalCopy(); + if (!e.record || !originalCopy) + throw utils.createMissingDataError("orgAuth"); + + e.record.set("user", originalCopy.get("user")); + e.record.set("organization", originalCopy.get("organization")); +}, "orgAuthorizations"); + // [UPDATE] Cannot update to/from a role higher than the user onRecordBeforeUpdateRequest((e) => { diff --git a/admin/pb_hooks/organizations_invites.pb.js b/admin/pb_hooks/organizations_invites.pb.js index 31fb1b9b..636c55e1 100644 --- a/admin/pb_hooks/organizations_invites.pb.js +++ b/admin/pb_hooks/organizations_invites.pb.js @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - // @ts-check /// diff --git a/admin/pb_hooks/organizations_request_membership.pb.js b/admin/pb_hooks/organizations_request_membership.pb.js index 42055c10..fb77a9d4 100644 --- a/admin/pb_hooks/organizations_request_membership.pb.js +++ b/admin/pb_hooks/organizations_request_membership.pb.js @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - // @ts-check /// diff --git a/admin/pb_hooks/utils.js b/admin/pb_hooks/utils.js index 5376a603..2cdc2a74 100644 --- a/admin/pb_hooks/utils.js +++ b/admin/pb_hooks/utils.js @@ -1,14 +1,10 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - // @ts-check /// /// -/** @typedef {import("../../webapp/src/lib/pocketbase/types").OrgRolesRecord} OrgRole */ -/** @typedef {import("../../webapp/src/lib/pocketbase/types").OrgAuthorizationsRecord} OrgAuthorization */ -/** @typedef {import("../../webapp/src/lib/pocketbase/types").UsersRecord} User */ +/** @typedef {import("../../webapp/src/modules/pocketbase/types").OrgRolesRecord} OrgRole */ +/** @typedef {import("../../webapp/src/modules/pocketbase/types").OrgAuthorizationsRecord} OrgAuthorization */ +/** @typedef {import("../../webapp/src/modules/pocketbase/types").UsersRecord} User */ /** @typedef {Omit} Address */ diff --git a/admin/pb_migrations/1721422489_created_z_test_collection.js b/admin/pb_migrations/1721422489_created_z_test_collection.js new file mode 100644 index 00000000..14ccdf47 --- /dev/null +++ b/admin/pb_migrations/1721422489_created_z_test_collection.js @@ -0,0 +1,232 @@ +/// +migrate((db) => { + const collection = new Collection({ + "id": "ktjgpqf146ss2ia", + "created": "2024-07-19 20:54:49.363Z", + "updated": "2024-07-19 20:54:49.363Z", + "name": "z_test_collection", + "type": "base", + "system": false, + "schema": [ + { + "system": false, + "id": "dyxsckke", + "name": "text_field", + "type": "text", + "required": true, + "presentable": false, + "unique": false, + "options": { + "min": 2, + "max": 10, + "pattern": "^\\w+$" + } + }, + { + "system": false, + "id": "5nakh5br", + "name": "url_field", + "type": "url", + "required": false, + "presentable": false, + "unique": false, + "options": { + "exceptDomains": [], + "onlyDomains": [ + "uld.com" + ] + } + }, + { + "system": false, + "id": "zjaakeak", + "name": "number_field", + "type": "number", + "required": true, + "presentable": false, + "unique": false, + "options": { + "min": 2, + "max": 70, + "noDecimal": true + } + }, + { + "system": false, + "id": "plf9bqlo", + "name": "boolean_field", + "type": "bool", + "required": false, + "presentable": false, + "unique": false, + "options": {} + }, + { + "system": false, + "id": "o9i7jdyx", + "name": "richtext_field", + "type": "editor", + "required": true, + "presentable": false, + "unique": false, + "options": { + "convertUrls": true + } + }, + { + "system": false, + "id": "euflpigq", + "name": "email_field", + "type": "email", + "required": false, + "presentable": false, + "unique": false, + "options": { + "exceptDomains": [ + "mat.cos" + ], + "onlyDomains": [] + } + }, + { + "system": false, + "id": "r6bk98mc", + "name": "date_field", + "type": "date", + "required": false, + "presentable": false, + "unique": false, + "options": { + "min": "2024-07-18 12:00:00.000Z", + "max": "2024-07-28 12:00:00.000Z" + } + }, + { + "system": false, + "id": "jnvj44gc", + "name": "select_field", + "type": "select", + "required": false, + "presentable": false, + "unique": false, + "options": { + "maxSelect": 1, + "values": [ + "a", + "b", + "c" + ] + } + }, + { + "system": false, + "id": "wlqgr8z3", + "name": "select_multi_field", + "type": "select", + "required": false, + "presentable": false, + "unique": false, + "options": { + "maxSelect": 3, + "values": [ + "x", + "y", + "z" + ] + } + }, + { + "system": false, + "id": "ldafagmk", + "name": "file_field", + "type": "file", + "required": true, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "application/zip" + ], + "thumbs": [], + "maxSelect": 1, + "maxSize": 5242880, + "protected": true + } + }, + { + "system": false, + "id": "ctqisupe", + "name": "file_multi_field", + "type": "file", + "required": false, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [], + "thumbs": [], + "maxSelect": 99, + "maxSize": 5242880, + "protected": false + } + }, + { + "system": false, + "id": "ckgk3hqn", + "name": "relation_field", + "type": "relation", + "required": false, + "presentable": false, + "unique": false, + "options": { + "collectionId": "nopzrf0n7mbfu58", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + }, + { + "system": false, + "id": "dmehmjlp", + "name": "relation_multi_field", + "type": "relation", + "required": true, + "presentable": false, + "unique": false, + "options": { + "collectionId": "_pb_users_auth_", + "cascadeDelete": false, + "minSelect": 1, + "maxSelect": 4, + "displayFields": null + } + }, + { + "system": false, + "id": "wj9awedr", + "name": "json_field", + "type": "json", + "required": false, + "presentable": false, + "unique": false, + "options": { + "maxSize": 2000000 + } + } + ], + "indexes": [], + "listRule": null, + "viewRule": null, + "createRule": null, + "updateRule": null, + "deleteRule": null, + "options": {} + }); + + return Dao(db).saveCollection(collection); +}, (db) => { + const dao = new Dao(db); + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia"); + + return dao.deleteCollection(collection); +}) diff --git a/admin/pb_migrations/1728470648_updated_z_test_collection.js b/admin/pb_migrations/1728470648_updated_z_test_collection.js new file mode 100644 index 00000000..835f542b --- /dev/null +++ b/admin/pb_migrations/1728470648_updated_z_test_collection.js @@ -0,0 +1,24 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "" + collection.viewRule = "" + collection.createRule = "" + collection.updateRule = "" + collection.deleteRule = "" + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = null + collection.viewRule = null + collection.createRule = null + collection.updateRule = null + collection.deleteRule = null + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1728481427_updated_z_test_collection.js b/admin/pb_migrations/1728481427_updated_z_test_collection.js new file mode 100644 index 00000000..61e190ca --- /dev/null +++ b/admin/pb_migrations/1728481427_updated_z_test_collection.js @@ -0,0 +1,54 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // remove + collection.schema.removeField("ckgk3hqn") + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "xkpmxcbr", + "name": "relation_field", + "type": "relation", + "required": true, + "presentable": false, + "unique": false, + "options": { + "collectionId": "ktjgpqf146ss2ia", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ckgk3hqn", + "name": "relation_field", + "type": "relation", + "required": false, + "presentable": false, + "unique": false, + "options": { + "collectionId": "nopzrf0n7mbfu58", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + // remove + collection.schema.removeField("xkpmxcbr") + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1728481532_updated_z_test_collection.js b/admin/pb_migrations/1728481532_updated_z_test_collection.js new file mode 100644 index 00000000..30401953 --- /dev/null +++ b/admin/pb_migrations/1728481532_updated_z_test_collection.js @@ -0,0 +1,52 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ldafagmk", + "name": "file_field", + "type": "file", + "required": true, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "text/plain" + ], + "thumbs": [], + "maxSelect": 1, + "maxSize": 5242880, + "protected": true + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ldafagmk", + "name": "file_field", + "type": "file", + "required": true, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "application/zip" + ], + "thumbs": [], + "maxSelect": 1, + "maxSize": 5242880, + "protected": true + } + })) + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1728563836_updated_z_test_collection.js b/admin/pb_migrations/1728563836_updated_z_test_collection.js new file mode 100644 index 00000000..6035c6b5 --- /dev/null +++ b/admin/pb_migrations/1728563836_updated_z_test_collection.js @@ -0,0 +1,54 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // remove + collection.schema.removeField("xkpmxcbr") + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "rwghvhbv", + "name": "relation_field", + "type": "relation", + "required": true, + "presentable": false, + "unique": false, + "options": { + "collectionId": "_pb_users_auth_", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "xkpmxcbr", + "name": "relation_field", + "type": "relation", + "required": true, + "presentable": false, + "unique": false, + "options": { + "collectionId": "ktjgpqf146ss2ia", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + // remove + collection.schema.removeField("rwghvhbv") + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729074142_updated_z_test_collection.js b/admin/pb_migrations/1729074142_updated_z_test_collection.js new file mode 100644 index 00000000..8d16fd8c --- /dev/null +++ b/admin/pb_migrations/1729074142_updated_z_test_collection.js @@ -0,0 +1,50 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ctqisupe", + "name": "file_multi_field", + "type": "file", + "required": false, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "text/plain" + ], + "thumbs": [], + "maxSelect": 99, + "maxSize": 5242880, + "protected": false + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ctqisupe", + "name": "file_multi_field", + "type": "file", + "required": false, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [], + "thumbs": [], + "maxSelect": 99, + "maxSize": 5242880, + "protected": false + } + })) + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729074280_updated_z_test_collection.js b/admin/pb_migrations/1729074280_updated_z_test_collection.js new file mode 100644 index 00000000..d0c5b3ef --- /dev/null +++ b/admin/pb_migrations/1729074280_updated_z_test_collection.js @@ -0,0 +1,52 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ctqisupe", + "name": "file_multi_field", + "type": "file", + "required": false, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "text/plain" + ], + "thumbs": [], + "maxSelect": 3, + "maxSize": 5242880, + "protected": false + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ctqisupe", + "name": "file_multi_field", + "type": "file", + "required": false, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "text/plain" + ], + "thumbs": [], + "maxSelect": 99, + "maxSize": 5242880, + "protected": false + } + })) + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729096464_updated_z_test_collection.js b/admin/pb_migrations/1729096464_updated_z_test_collection.js new file mode 100644 index 00000000..665e9b4e --- /dev/null +++ b/admin/pb_migrations/1729096464_updated_z_test_collection.js @@ -0,0 +1,50 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "wlqgr8z3", + "name": "select_multi_field", + "type": "select", + "required": false, + "presentable": false, + "unique": false, + "options": { + "maxSelect": 2, + "values": [ + "x", + "y", + "z" + ] + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "wlqgr8z3", + "name": "select_multi_field", + "type": "select", + "required": false, + "presentable": false, + "unique": false, + "options": { + "maxSelect": 3, + "values": [ + "x", + "y", + "z" + ] + } + })) + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729755967_updated_z_test_collection.js b/admin/pb_migrations/1729755967_updated_z_test_collection.js new file mode 100644 index 00000000..8a386c38 --- /dev/null +++ b/admin/pb_migrations/1729755967_updated_z_test_collection.js @@ -0,0 +1,18 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "@request.auth.id != ''" + collection.viewRule = "@request.auth.id != ''" + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "" + collection.viewRule = "" + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729757085_updated_z_test_collection.js b/admin/pb_migrations/1729757085_updated_z_test_collection.js new file mode 100644 index 00000000..75174d9d --- /dev/null +++ b/admin/pb_migrations/1729757085_updated_z_test_collection.js @@ -0,0 +1,18 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "" + collection.viewRule = "" + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "@request.auth.id != ''" + collection.viewRule = "@request.auth.id != ''" + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729843574_updated_z_test_collection.js b/admin/pb_migrations/1729843574_updated_z_test_collection.js new file mode 100644 index 00000000..cff0cf14 --- /dev/null +++ b/admin/pb_migrations/1729843574_updated_z_test_collection.js @@ -0,0 +1,33 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "irg7eqrq", + "name": "self_relation", + "type": "relation", + "required": false, + "presentable": false, + "unique": false, + "options": { + "collectionId": "ktjgpqf146ss2ia", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // remove + collection.schema.removeField("irg7eqrq") + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729930153_updated_z_test_collection.js b/admin/pb_migrations/1729930153_updated_z_test_collection.js new file mode 100644 index 00000000..b6b35abf --- /dev/null +++ b/admin/pb_migrations/1729930153_updated_z_test_collection.js @@ -0,0 +1,33 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "7d3zwah8", + "name": "owner", + "type": "relation", + "required": true, + "presentable": false, + "unique": false, + "options": { + "collectionId": "_pb_users_auth_", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // remove + collection.schema.removeField("7d3zwah8") + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729930209_updated_z_test_collection.js b/admin/pb_migrations/1729930209_updated_z_test_collection.js new file mode 100644 index 00000000..fe1ab3b8 --- /dev/null +++ b/admin/pb_migrations/1729930209_updated_z_test_collection.js @@ -0,0 +1,48 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "7d3zwah8", + "name": "owner", + "type": "relation", + "required": false, + "presentable": false, + "unique": false, + "options": { + "collectionId": "_pb_users_auth_", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "7d3zwah8", + "name": "owner", + "type": "relation", + "required": true, + "presentable": false, + "unique": false, + "options": { + "collectionId": "_pb_users_auth_", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": null + } + })) + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729930438_updated_z_test_collection.js b/admin/pb_migrations/1729930438_updated_z_test_collection.js new file mode 100644 index 00000000..fa7b4908 --- /dev/null +++ b/admin/pb_migrations/1729930438_updated_z_test_collection.js @@ -0,0 +1,16 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "(owner != null && owner.id = @request.auth.id) || owner = null" + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "" + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729930444_updated_z_test_collection.js b/admin/pb_migrations/1729930444_updated_z_test_collection.js new file mode 100644 index 00000000..b9cb14ae --- /dev/null +++ b/admin/pb_migrations/1729930444_updated_z_test_collection.js @@ -0,0 +1,16 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.viewRule = "(owner != null && owner.id = @request.auth.id) || owner = null" + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.viewRule = "" + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729930951_updated_z_test_collection.js b/admin/pb_migrations/1729930951_updated_z_test_collection.js new file mode 100644 index 00000000..e1726f2c --- /dev/null +++ b/admin/pb_migrations/1729930951_updated_z_test_collection.js @@ -0,0 +1,18 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "owner = null ||\n( owner != null && (\n owner.id = @request.auth.id ||\n ( @collection.authorizations.record_id = id &&\n @collection.authorizations.users.id ?= @request.auth.id &&\n @collection.authorizations.owner.id ?= owner.id )\n )\n)" + collection.viewRule = "owner = null ||\n( owner != null && (\n owner.id = @request.auth.id ||\n ( @collection.authorizations.record_id = id &&\n @collection.authorizations.users.id ?= @request.auth.id &&\n @collection.authorizations.owner.id ?= owner.id )\n )\n)" + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + collection.listRule = "(owner != null && owner.id = @request.auth.id) || owner = null" + collection.viewRule = "(owner != null && owner.id = @request.auth.id) || owner = null" + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1729933259_deleted_authorizationsExamples.js b/admin/pb_migrations/1729933259_deleted_authorizationsExamples.js new file mode 100644 index 00000000..32e049dd --- /dev/null +++ b/admin/pb_migrations/1729933259_deleted_authorizationsExamples.js @@ -0,0 +1,57 @@ +/// +migrate((db) => { + const dao = new Dao(db); + const collection = dao.findCollectionByNameOrId("sijd38964ht83q5"); + + return dao.deleteCollection(collection); +}, (db) => { + const collection = new Collection({ + "id": "sijd38964ht83q5", + "created": "2023-07-11 13:26:18.946Z", + "updated": "2024-10-24 07:03:42.098Z", + "name": "authorizationsExamples", + "type": "base", + "system": false, + "schema": [ + { + "system": false, + "id": "s6z3yyrm", + "name": "name", + "type": "text", + "required": true, + "presentable": false, + "unique": false, + "options": { + "min": null, + "max": null, + "pattern": "" + } + }, + { + "system": false, + "id": "3l6g88rp", + "name": "owner", + "type": "relation", + "required": false, + "presentable": false, + "unique": false, + "options": { + "collectionId": "_pb_users_auth_", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": [] + } + } + ], + "indexes": [], + "listRule": "owner.id = @request.auth.id || (@collection.authorizations.users.id ?= @request.auth.id && @collection.authorizations.record_id ?= id)", + "viewRule": "owner.id = @request.auth.id || (@collection.authorizations.users.id ?= @request.auth.id && @collection.authorizations.record_id ?= id)", + "createRule": "@request.auth.id != ''", + "updateRule": "owner.id = @request.auth.id || (@collection.authorizations.users.id ?= @request.auth.id && @collection.authorizations.record_id ?= id)", + "deleteRule": "owner.id = @request.auth.id || (@collection.authorizations.users.id ?= @request.auth.id && @collection.authorizations.record_id ?= id)", + "options": {} + }); + + return Dao(db).saveCollection(collection); +}) diff --git a/admin/pb_migrations/1730125916_updated_z_test_collection.js b/admin/pb_migrations/1730125916_updated_z_test_collection.js new file mode 100644 index 00000000..d60937ea --- /dev/null +++ b/admin/pb_migrations/1730125916_updated_z_test_collection.js @@ -0,0 +1,52 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ldafagmk", + "name": "file_field", + "type": "file", + "required": false, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "text/plain" + ], + "thumbs": [], + "maxSelect": 1, + "maxSize": 5242880, + "protected": true + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "ldafagmk", + "name": "file_field", + "type": "file", + "required": true, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "text/plain" + ], + "thumbs": [], + "maxSelect": 1, + "maxSize": 5242880, + "protected": true + } + })) + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1730129064_deleted_crudExample.js b/admin/pb_migrations/1730129064_deleted_crudExample.js new file mode 100644 index 00000000..0aa77039 --- /dev/null +++ b/admin/pb_migrations/1730129064_deleted_crudExample.js @@ -0,0 +1,200 @@ +/// +migrate((db) => { + const dao = new Dao(db); + const collection = dao.findCollectionByNameOrId("p9dhra382rts3bg"); + + return dao.deleteCollection(collection); +}, (db) => { + const collection = new Collection({ + "id": "p9dhra382rts3bg", + "created": "2023-06-07 10:44:19.476Z", + "updated": "2023-07-11 13:16:04.708Z", + "name": "crudExample", + "type": "base", + "system": false, + "schema": [ + { + "system": false, + "id": "o0hwn3yh", + "name": "text", + "type": "text", + "required": true, + "presentable": false, + "unique": false, + "options": { + "min": 6, + "max": 10, + "pattern": "" + } + }, + { + "system": false, + "id": "3hmes6kr", + "name": "file_only_pdf_json", + "type": "file", + "required": true, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "application/json", + "application/pdf" + ], + "thumbs": [], + "maxSelect": 99, + "maxSize": 5242880, + "protected": false + } + }, + { + "system": false, + "id": "o72s557k", + "name": "boolean", + "type": "bool", + "required": false, + "presentable": false, + "unique": false, + "options": {} + }, + { + "system": false, + "id": "dzneawfh", + "name": "select", + "type": "select", + "required": true, + "presentable": false, + "unique": false, + "options": { + "maxSelect": 1, + "values": [ + "opt1", + "opt2", + "opt3", + "opt4", + "opt5" + ] + } + }, + { + "system": false, + "id": "t1i6phfc", + "name": "textarea", + "type": "editor", + "required": false, + "presentable": false, + "unique": false, + "options": { + "convertUrls": false + } + }, + { + "system": false, + "id": "lybqqrme", + "name": "text_with_regex", + "type": "text", + "required": false, + "presentable": false, + "unique": false, + "options": { + "min": null, + "max": null, + "pattern": "^w+S" + } + }, + { + "system": false, + "id": "vkmf5bzv", + "name": "multiselect", + "type": "select", + "required": false, + "presentable": false, + "unique": false, + "options": { + "maxSelect": 2, + "values": [ + "A", + "B", + "C", + "D" + ] + } + }, + { + "system": false, + "id": "kx4ozipk", + "name": "relation", + "type": "relation", + "required": false, + "presentable": false, + "unique": false, + "options": { + "collectionId": "z4cc0g76ciqx13v", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": null, + "displayFields": [] + } + }, + { + "system": false, + "id": "nfghsb83", + "name": "image", + "type": "file", + "required": false, + "presentable": false, + "unique": false, + "options": { + "mimeTypes": [ + "image/png", + "image/jpeg" + ], + "thumbs": [], + "maxSelect": 1, + "maxSize": 5242880, + "protected": false + } + }, + { + "system": false, + "id": "uy849pd2", + "name": "relation_single", + "type": "relation", + "required": true, + "presentable": false, + "unique": false, + "options": { + "collectionId": "z4cc0g76ciqx13v", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": [] + } + }, + { + "system": false, + "id": "61lxlzl2", + "name": "owner", + "type": "relation", + "required": false, + "presentable": false, + "unique": false, + "options": { + "collectionId": "_pb_users_auth_", + "cascadeDelete": false, + "minSelect": null, + "maxSelect": 1, + "displayFields": [] + } + } + ], + "indexes": [], + "listRule": "", + "viewRule": "", + "createRule": "", + "updateRule": "", + "deleteRule": "", + "options": {} + }); + + return Dao(db).saveCollection(collection); +}) diff --git a/admin/pb_migrations/1730129141_updated_z_test_collection.js b/admin/pb_migrations/1730129141_updated_z_test_collection.js new file mode 100644 index 00000000..b352c1b8 --- /dev/null +++ b/admin/pb_migrations/1730129141_updated_z_test_collection.js @@ -0,0 +1,63 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // add + collection.schema.addField(new SchemaField({ + "system": false, + "id": "moejq2ra", + "name": "text_with_regex", + "type": "text", + "required": false, + "presentable": false, + "unique": false, + "options": { + "min": null, + "max": null, + "pattern": "^\\w+$" + } + })) + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "dyxsckke", + "name": "text_field", + "type": "text", + "required": true, + "presentable": false, + "unique": false, + "options": { + "min": 2, + "max": 10, + "pattern": "" + } + })) + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("ktjgpqf146ss2ia") + + // remove + collection.schema.removeField("moejq2ra") + + // update + collection.schema.addField(new SchemaField({ + "system": false, + "id": "dyxsckke", + "name": "text_field", + "type": "text", + "required": true, + "presentable": false, + "unique": false, + "options": { + "min": 2, + "max": 10, + "pattern": "^\\w+$" + } + })) + + return dao.saveCollection(collection) +}) diff --git a/admin/pb_migrations/1730134615_updated_orgAuthorizations.js b/admin/pb_migrations/1730134615_updated_orgAuthorizations.js new file mode 100644 index 00000000..1f287802 --- /dev/null +++ b/admin/pb_migrations/1730134615_updated_orgAuthorizations.js @@ -0,0 +1,16 @@ +/// +migrate((db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("k1vlx34o1x8tzno") + + collection.updateRule = "@collection.orgAuthorizations.user.id ?= @request.auth.id &&\n@collection.orgAuthorizations.organization.id ?= organization.id &&\n(@collection.orgAuthorizations.role.name ?= \"admin\" || \n @collection.orgAuthorizations.role.name ?= \"owner\")" + + return dao.saveCollection(collection) +}, (db) => { + const dao = new Dao(db) + const collection = dao.findCollectionByNameOrId("k1vlx34o1x8tzno") + + collection.updateRule = "@request.data.user:isset = false &&\n@collection.orgAuthorizations.user.id ?= @request.auth.id &&\n@collection.orgAuthorizations.organization.id ?= organization.id &&\n(@collection.orgAuthorizations.role.name ?= \"admin\" || \n @collection.orgAuthorizations.role.name ?= \"owner\")" + + return dao.saveCollection(collection) +}) diff --git a/admin/zencode/zencode.go b/admin/zencode/zencode.go index 580b11a9..70c3efe4 100644 --- a/admin/zencode/zencode.go +++ b/admin/zencode/zencode.go @@ -8,8 +8,9 @@ import ( _ "embed" "encoding/json" "errors" - zenroom "github.com/dyne/Zenroom/bindings/golang/zenroom" "pb/config" + + slangroom "github.com/dyne/slangroom-exec/bindings/go" ) //go:embed zenflows-crypto/src/keypairoomServer-6-7.zen @@ -27,8 +28,8 @@ func KeypairoomServer(conf *config.KeypairoomConfig, data map[string]interface{} return "", err } - result, success := zenroom.ZencodeExec(KEYPAIROOM_ZENCODE, "", string(jsonData), "") - if !success { + result, success := slangroom.Exec(slangroom.SlangroomInput{Contract: KEYPAIROOM_ZENCODE, Keys: string(jsonData)}) + if success != nil { return "", errors.New(result.Logs) } var zenroomResult struct { @@ -52,8 +53,8 @@ func PubkeysRequestSigned(didRequest map[string]interface{}) (map[string]interfa return zenroomResult, err } - result, success := zenroom.ZencodeExec(PUBKEYS_REQUEST_SIGNED_ZENCODE, "", string(jsonData), "") - if !success { + result, success := slangroom.Exec(slangroom.SlangroomInput{Contract: PUBKEYS_REQUEST_SIGNED_ZENCODE, Keys: string(jsonData)}) + if success != nil { return zenroomResult, errors.New(result.Logs) } diff --git a/webapp/.gitignore.rej b/webapp/.gitignore.rej new file mode 100644 index 00000000..d9dad2e9 --- /dev/null +++ b/webapp/.gitignore.rej @@ -0,0 +1,38 @@ +diff a/webapp/.gitignore b/webapp/.gitignore (rejected hunks) +@@ -1,16 +1,25 @@ +-.DS_Store ++test-results + node_modules +-/build ++ ++# Output ++.output ++.vercel + /.svelte-kit +-/package ++/build ++ ++# OS ++.DS_Store ++Thumbs.db ++ ++# Env + .env + .env.* + !.env.example ++!.env.test ++ ++# Vite + vite.config.js.timestamp-* + vite.config.ts.timestamp-* +-/playwright +-/test-results +-src/lib/pocketbase/schema/db_schema.json +-src/lib/pocketbase/types.ts +-src/lib/features/list.ts +-src/lib/organizations/roles.ts +\ No newline at end of file ++ ++# Generated files ++*.generated.* +\ No newline at end of file diff --git a/webapp/.npmrc.rej b/webapp/.npmrc.rej new file mode 100644 index 00000000..d2758e5a --- /dev/null +++ b/webapp/.npmrc.rej @@ -0,0 +1,6 @@ +diff a/webapp/.npmrc b/webapp/.npmrc (rejected hunks) +@@ -1,2 +1,2 @@ + engine-strict=true +-enable-pre-post-scripts=true +\ No newline at end of file ++enable-pre-post-scripts=true diff --git a/webapp/.prettierignore.rej b/webapp/.prettierignore.rej new file mode 100644 index 00000000..315bce9e --- /dev/null +++ b/webapp/.prettierignore.rej @@ -0,0 +1,17 @@ +diff a/webapp/.prettierignore b/webapp/.prettierignore (rejected hunks) +@@ -1,13 +1,4 @@ +-.DS_Store +-node_modules +-/build +-/.svelte-kit +-/package +-.env +-.env.* +-!.env.example +- +-# Ignore files for PNPM, NPM and YARN +-pnpm-lock.yaml ++# Package Managers + package-lock.json ++pnpm-lock.yaml + yarn.lock diff --git a/webapp/.prettierrc b/webapp/.prettierrc index c60a8c10..7ebb855b 100644 --- a/webapp/.prettierrc +++ b/webapp/.prettierrc @@ -4,6 +4,12 @@ "trailingComma": "none", "printWidth": 100, "plugins": ["prettier-plugin-svelte", "prettier-plugin-tailwindcss"], - "pluginSearchDirs": ["."], - "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }] + "overrides": [ + { + "files": "*.svelte", + "options": { + "parser": "svelte" + } + } + ] } diff --git a/webapp/Dockerfile.rej b/webapp/Dockerfile.rej new file mode 100644 index 00000000..f30f480c --- /dev/null +++ b/webapp/Dockerfile.rej @@ -0,0 +1,10 @@ +diff a/webapp/Dockerfile b/webapp/Dockerfile (rejected hunks) +@@ -8,7 +8,7 @@ WORKDIR /build + + COPY ./webapp/ . + RUN git init +-RUN git submodule add https://github.com/interfacerproject/zenflows-crypto zenflows-crypto ++RUN git submodule add https://github.com/ForkbombEu/client_zencode client_zencode + + + EXPOSE $NODE_PORT diff --git a/webapp/README.md.rej b/webapp/README.md.rej new file mode 100644 index 00000000..453f04b9 --- /dev/null +++ b/webapp/README.md.rej @@ -0,0 +1,19 @@ +diff a/webapp/README.md b/webapp/README.md (rejected hunks) +@@ -161,7 +161,7 @@ Retrieves the actual value of the token type for the specified owner + + Copyleft 🄯 2024 by [Dyne.org](https://www.dyne.org) foundation, Amsterdam + +-Designed, written and maintained by Puria Nafisi Azizi ++Designed, written and maintained by Luther Hacker + + **[🔝 back to top](#toc)** + +@@ -185,7 +185,7 @@ Please first take a look at the [Dyne.org - Contributor License Agreement](CONTR + ## 💼 License + + signroom - Advanced electronic signature service based on Zenroom +- Copyleft 🄯 2024 Puria Nafisi Azizi ++ Copyleft 🄯 2024 Luther Hacker + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as diff --git a/webapp/components.json b/webapp/components.json new file mode 100644 index 00000000..525fa6cf --- /dev/null +++ b/webapp/components.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://next.shadcn-svelte.com/schema.json", + "style": "default", + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/app.css", + "baseColor": "slate" + }, + "aliases": { + "components": "@/components", + "utils": "@/components/ui/utils", + "ui": "@/components/ui", + "hooks": "@/components/ui/hooks" + }, + "typescript": true, + "registry": "https://next.shadcn-svelte.com/registry" +} diff --git a/webapp/tests/_utils/login.ts b/webapp/e2e/_utils/login.ts similarity index 75% rename from webapp/tests/_utils/login.ts rename to webapp/e2e/_utils/login.ts index c48c6c80..90963693 100644 --- a/webapp/tests/_utils/login.ts +++ b/webapp/e2e/_utils/login.ts @@ -7,15 +7,15 @@ import { type Browser, expect, type Page } from '@playwright/test'; export async function login(page: Page, email: string, password: string) { await page.goto('/login'); - const emailField = page.locator('#email'); - const passwordField = page.locator('#password'); + const emailField = page.getByPlaceholder('name@foundation.org'); + const passwordField = page.getByPlaceholder('•••••'); await expect(emailField).toBeVisible(); await expect(passwordField).toBeVisible(); await emailField.fill(email); await passwordField.fill(password); - const submitButton = page.locator('#submit'); + const submitButton = page.getByRole('button', { name: 'Log in' }); await expect(submitButton).toBeVisible(); await submitButton.click(); @@ -24,17 +24,20 @@ export async function login(page: Page, email: string, password: string) { await page.getByRole('link', { name: 'Forgot the "seed"? Regenerate it' }).click(); } - const o = page.locator('input[name="questions\\.whereParentsMet"]'); - await expect(o).toBeVisible(); + const firstQuestion = page.locator('input[name="questions\\.whereParentsMet"]'); + await expect(firstQuestion).toBeVisible(); - await o.fill('p'); + await firstQuestion.fill('p'); await page.locator('input[name="questions\\.nameFirstPet"]').fill('p'); await page.locator('input[name="questions\\.whereHomeTown"]').fill('p'); await page.locator('input[name="questions\\.nameFirstTeacher"]').fill('p'); await page.locator('input[name="questions\\.nameMotherMaid"]').fill('p'); await page.getByRole('button', { name: 'Generate private keys' }).click(); - await page.getByRole('button', { name: 'Go to Dashboard' }).click(); + + const dashboardButton = page.getByRole('link', { name: 'Go to Dashboard' }); + await expect(dashboardButton).toBeVisible(); + await dashboardButton.click(); await expect(page).toHaveURL(/my/); } diff --git a/webapp/tests/auth.setup.ts b/webapp/e2e/auth.setup.ts similarity index 100% rename from webapp/tests/auth.setup.ts rename to webapp/e2e/auth.setup.ts diff --git a/webapp/e2e/auth.setup.ts.rej b/webapp/e2e/auth.setup.ts.rej new file mode 100644 index 00000000..f3c80b38 --- /dev/null +++ b/webapp/e2e/auth.setup.ts.rej @@ -0,0 +1,16 @@ +diff a/webapp/e2e/auth.setup.ts b/webapp/e2e/auth.setup.ts (rejected hunks) +@@ -1,12 +1,11 @@ + import { test as setup } from '@playwright/test'; + import { config } from 'dotenv'; + import { userLogin } from '@utils/login'; +- +-export const authFile = 'playwright/.auth/user.json'; ++import { storageState } from '../playwright.config'; + + config(); + + setup('authenticate', async ({ browser }) => { + const page = await userLogin(browser, 'A'); +- await page.context().storageState({ path: authFile }); ++ await page.context().storageState({ path: storageState }); + }); diff --git a/webapp/tests/logged/redirects.spec.ts b/webapp/e2e/logged/redirects.spec.ts similarity index 100% rename from webapp/tests/logged/redirects.spec.ts rename to webapp/e2e/logged/redirects.spec.ts diff --git a/webapp/tests/nru/authorizations.spec.ts b/webapp/e2e/nru/authorizations.spec.ts similarity index 100% rename from webapp/tests/nru/authorizations.spec.ts rename to webapp/e2e/nru/authorizations.spec.ts diff --git a/webapp/e2e/nru/collection-manager.spec.ts b/webapp/e2e/nru/collection-manager.spec.ts new file mode 100644 index 00000000..7d3ead2d --- /dev/null +++ b/webapp/e2e/nru/collection-manager.spec.ts @@ -0,0 +1,58 @@ +import { test, expect, type Page } from '@playwright/test'; +import { userLogin } from '@utils/login'; +import { config } from 'dotenv'; +import { nanoid } from 'nanoid'; + +config(); + +test.describe('it should test the collection manager', () => { + let page: Page; + const recordId = nanoid(5); + const recordName = `test-${recordId}`; + + test.beforeAll(async ({ browser }) => { + const context = await browser.newContext(); + page = await context.newPage(); + await page.goto('/my'); + }); + + test.afterAll(async ({ browser }) => { + await browser.close(); + }); + + test('userA should login and visit the collection manager page', async ({ browser }) => { + page = await userLogin(browser, 'A'); + await page.goto('/tests/collection-manager'); + }); + + test('it should create a new record', async () => { + await page.getByRole('button', { name: 'Create record' }).click(); + await page.getByPlaceholder('abc').first().fill(recordName); + await page.getByLabel('Number_field *').click(); + await page.getByLabel('Number_field *').press('ArrowUp'); + await page.getByLabel('Number_field *').press('ArrowUp'); + await page.getByLabel('Richtext_field *').click(); + await page.getByLabel('Richtext_field *').fill('okok'); + await page.getByLabel('Relation_field *').click(); + await page.getByRole('option').nth(0).click(); + await page.getByLabel('Relation_multi_field *').click(); + await page.getByRole('option').nth(0).click(); + + // const fileChooserPromise = page.waitForEvent('filechooser'); + // await page.getByLabel('File_field *').click(); + // const fileChooser = await fileChooserPromise; + // await fileChooser.setFiles({ + // name: 'test.txt', + // mimeType: 'text/plain', + // buffer: Buffer.from('text content') + // }); + + const submitButton = page.getByRole('dialog').getByRole('button', { name: 'Create record' }); + await expect(submitButton).toBeEnabled(); + await submitButton.click(); + + // await expect(page.getByRole('dialog')).toBeHidden(); + // await expect(page.getByText(recordName).first()).toBeVisible(); + // await expect(page.getByRole('status')).toBeVisible(); + }); +}); diff --git a/webapp/tests/nru/organizations.spec.ts b/webapp/e2e/nru/organizations.spec.ts similarity index 88% rename from webapp/tests/nru/organizations.spec.ts rename to webapp/e2e/nru/organizations.spec.ts index 390d743e..0b06be77 100644 --- a/webapp/tests/nru/organizations.spec.ts +++ b/webapp/e2e/nru/organizations.spec.ts @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - import { test, expect, type Page } from '@playwright/test'; import { userLogin, randomId } from '@utils/login'; import { config } from 'dotenv'; @@ -21,7 +17,7 @@ test.describe('it should test organizations and members', () => { }); test.afterAll(async ({ browser }) => { - browser.close; + await browser.close(); }); test('userA should create an organization', async ({ browser }) => { @@ -34,7 +30,7 @@ test.describe('it should test organizations and members', () => { await expect(organizationsLink).toBeVisible(); await organizationsLink.click(); - await page.getByRole('button', { name: 'Create a new organization' }).click(); + await page.getByRole('link', { name: 'Create a new organization' }).click(); orgName = `org-${nanoid(5)}`; await page.locator('input[name="name"]').click(); @@ -77,14 +73,14 @@ test.describe('it should test organizations and members', () => { const userB = 'userB@example.org'; const userC = 'userC@example.org'; - await page.getByRole('button', { name: 'plus invite_members' }).click(); + await page.getByRole('button', { name: 'invite_members' }).click(); await page.locator('textarea').fill(`${userB}\n${userC}`); - await page.getByRole('button', { name: 'arrow right Review and confirm' }).click(); + await page.getByRole('button', { name: 'Review and confirm' }).click(); const requestPromise = page.waitForRequest( (req) => req.url().includes('organizations/invite') && req.method() == 'POST' ); - await page.getByRole('button', { name: 'envelope Send invites' }).click(); + await page.getByRole('button', { name: 'Send invites' }).click(); const request = await requestPromise; await request.response(); @@ -120,8 +116,10 @@ test.describe('it should test organizations and members', () => { await expect(editRoleButton).toBeVisible(); await editRoleButton.click(); - await page.getByRole('combobox').selectOption({ label: 'admin' }); + await page.getByLabel('Role *').click(); + await page.getByRole('option', { name: 'admin' }).click(); await page.getByRole('button', { name: 'Edit record' }).click(); + await expect(page.getByRole('dialog')).toBeHidden(); await expect(page.getByText('Admin')).toBeVisible(); }); @@ -137,7 +135,7 @@ test.describe('it should test organizations and members', () => { await expect(settingsButton).toBeHidden(); await page.getByRole('main').getByRole('link', { name: orgName }).click(); - await expect(page.getByRole('tab', { name: 'cog Settings' })).toBeHidden(); + await expect(page.getByRole('tab', { name: 'Settings' })).toBeHidden(); await page.goto(`/my/organizations/${orgId}/settings`); await expect(page.getByText('404').first()).toBeVisible(); @@ -154,7 +152,7 @@ test.describe('it should test organizations and members', () => { await expect(settingsButton).toBeHidden(); await page.getByRole('main').getByRole('link', { name: orgName }).click(); - await expect(page.getByRole('tab', { name: 'cog Settings' })).toBeHidden(); + await expect(page.getByRole('tab', { name: 'Settings' })).toBeHidden(); }); }); diff --git a/webapp/tests/nru/redirects.spec.ts b/webapp/e2e/nru/redirects.spec.ts similarity index 100% rename from webapp/tests/nru/redirects.spec.ts rename to webapp/e2e/nru/redirects.spec.ts diff --git a/webapp/tests/tsconfig.json b/webapp/e2e/tsconfig.json similarity index 100% rename from webapp/tests/tsconfig.json rename to webapp/e2e/tsconfig.json diff --git a/webapp/eslint.config.js b/webapp/eslint.config.js new file mode 100644 index 00000000..a5265658 --- /dev/null +++ b/webapp/eslint.config.js @@ -0,0 +1,33 @@ +import prettier from 'eslint-config-prettier'; +import js from '@eslint/js'; +import svelte from 'eslint-plugin-svelte'; +import globals from 'globals'; +import ts from 'typescript-eslint'; + +export default ts.config( + js.configs.recommended, + ...ts.configs.recommended, + ...svelte.configs['flat/recommended'], + prettier, + ...svelte.configs['flat/prettier'], + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node + } + } + }, + { + files: ['**/*.svelte'], + + languageOptions: { + parserOptions: { + parser: ts.parser + } + } + }, + { + ignores: ['build/', '.svelte-kit/', 'dist/'] + } +); diff --git a/webapp/messages/da.json.rej b/webapp/messages/da.json.rej new file mode 100644 index 00000000..2d5f8a1e --- /dev/null +++ b/webapp/messages/da.json.rej @@ -0,0 +1,232 @@ +diff a/webapp/messages/da.json b/webapp/messages/da.json (rejected hunks) +@@ -1,128 +1,128 @@ + { + "$schema": "https://inlang.com/schema/inlang-message-format", +- "my_signatures": "Signaturer", +- "validate_signatures": "Validere signaturer", +- "multisignatures": "Multisignaturer", +- "notifications": "Meddelelser", +- "identity": "Identitet", +- "my_DID": "Min DID", +- "my_verifiable_credentials": "Mine Verifiable Credentials", +- "organizations": "Organisationer", +- "signatures": "Signaturer", +- "hello": "Hej", +- "Forgot_password": "Glemt kodeord?", +- "Please_enter_here_your_email_to_recover_your_password_": "Indtast venligst din e-mail her for at nulstille din adgangskode.", +- "Your_email": "Din email", +- "Recover_password": "Nulstille kodeord", +- "Reset_email_sent_successfully": "E-mail til nulstilling af adgangskode blev sendt!", +- "Please_click_the_link_in_the_email_to_reset_your_password_": "Klik på linket i e-mailen for at nulstille din adgangskode.", +- "Log_in_with_webauthn": "Log ind med Webauthn", ++ "Already_have_an_account": "Har du allerede en konto?", ++ "Before_using_the_app_again_you_need_to_restore_them_": "Før du bruger appen igen, skal du gendanne dine private nøgler.", ++ "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Ved at besvare disse spørgsmål genererer appen dine private nøgler, der vil blive brugt til godkendelse, signaturer og kryptering", + "Choose_your_authentication_method": "Vælg din godkendelsesmetode", +- "Email_and_password": "E-mail og adgangskode", ++ "Confirm_password": "Bekræft kodeord", ++ "Contact": "Kontakt", ++ "Copy_seed": "Kopiér seed-passphrase", ++ "Create_an_account": "Opret en konto", + "Dont_have_an_account": "Har du ikke en konto?", +- "Register_here": "Tilmeld dig her", +- "Log_in": "Log på", +- "Your_password": "Dit kodeord", ++ "Email_and_password": "E-mail og adgangskode", ++ "Forgot_the_seed_Regenerate_it": "Glemt dit \"seed\"? Gendan det", + "Full_name": "Dit navn", +- "Organizations_and_other_users_will_identify_you_by_your_name_": "Organisationer og andre brugere vil identificere dig ved dit navn.", +- "Confirm_password": "Bekræft kodeord", ++ "Generate_keys": "Generer private nøgler", ++ "Generate_your_keys": "Generer dine private nøgler", ++ "Go_Pro": "Opgrader", ++ "Go_to_Dashboard": "Gå til dashboard", ++ "Hello": "Hej,", ++ "hello": "Hej", + "I_accept_the": "Jeg accepterer", +- "Terms_and_Conditions": "Vilkår og betingelser", +- "Create_an_account": "Opret en konto", +- "Already_have_an_account": "Har du allerede en konto?", +- "Login_here": "Log ind her", +- "Reset_password": "Nulstille kodeord", +- "Please_enter_here_a_new_password_": "Indtast venligst en ny adgangskode her.", +- "New_password": "Nyt kodeord", +- "Password_reset_successfully": "Adgangskode nulstillet med succes!", +- "Join_multiple_trusted": "Deltag i flere betroede ", +- "_with_one_account_": ", med én konto.", ++ "I_have_the_seed_passphrase": "Jeg har den seed-passphrase", ++ "Important_information": "Vigtig information", + "Join": "Deltag ", +- "Log_In": "Log på", +- "Register": "Tilmeld", +- "Signatures": "Signaturer", +- "Contact": "Kontakt", +- "Regenerate_keys": "Gendan private nøgler", +- "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Du er blevet omdirigeret hertil, fordi dine private nøgler mangler.", +- "Before_using_the_app_again_you_need_to_restore_them_": "Før du bruger appen igen, skal du gendanne dine private nøgler.", +- "Please_type_here_your_seed_to_restore_your_keyring_": "Indtast venligst dit \"seed\" her for at gendanne dine private nøgler.", +- "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Indtast venligst din e-mail og dit \"seed\" her for at gendanne dine private nøgler.", +- "Forgot_the_seed_Regenerate_it": "Glemt dit \"seed\"? Gendan det", ++ "Keypair_creation_successful": "Oprettelse af private nøgler lykkedes!", + "Keys_regenerated": "Private nøgler blev gendannet!", +- "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Dine nøgler er blevet regenereret. Du kan nu gå tilbage til ", +- "your_profile": "din profil", +- "Hello": "Hej,", +- "Welcome_to": "Velkommen til", ++ "Login_here": "Log ind her", ++ "members_description": "Liste over eksisterende medlemmer af organisationen: medlemmer kan have forskellige roller, hvilket giver dem forskellige privilegier ", ++ "my_DID": "Min DID", ++ "My_profile": "Min profil", ++ "My": "Min", ++ "notifications": "Meddelelser", + "One_last_thing_before_to_using_the_app": "En sidste ting, før du kan begynde at bruge appen:", +- "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "vi har brug for dig til at besvare nogle spørgsmål, som vil blive brugt til at generere dine private nøgler. Svarene på disse spørgsmål kommunikeres ALDRIG til os!", +- "Generate_your_keys": "Generer dine private nøgler", +- "Important_information": "Vigtig information", +- "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Ved at besvare disse spørgsmål genererer appen dine private nøgler, der vil blive brugt til godkendelse, signaturer og kryptering", +- "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Sørg for, at du senere kan huske dine svar, da de vil være den eneste måde at gendanne dine private nøgler på", ++ "Organizations_and_other_users_will_identify_you_by_your_name_": "Organisationer og andre brugere vil identificere dig ved dit navn.", ++ "organizations": "Organisationer", ++ "ORGANIZATIONS": "ORGANISATIONER", ++ "pending_membership_requests_description": "Her kan du se listen over brugere, der har anmodet om at blive medlem af denne organisation", + "Please_answer_at_least_3_of_the_following_questions": "Besvar venligst mindst 3 af følgende spørgsmål: ", +- "User_email": "Din email", +- "Generate_keys": "Generer private nøgler", +- "I_have_the_seed_passphrase": "Jeg har den seed-passphrase", +- "Keypair_creation_successful": "Oprettelse af private nøgler lykkedes!", ++ "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Sørg for, at du senere kan huske dine svar, da de vil være den eneste måde at gendanne dine private nøgler på", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Gem venligst \"seed-passphrase\" et sikkert sted for nemt at gendanne din konto i fremtiden: den vil kun blive vist én gang! Vi opbevarer ikke en sikkerhedskopi af privatlivs- og sikkerhedsmæssige årsager.", +- "Copy_seed": "Kopiér seed-passphrase", +- "Go_to_Dashboard": "Gå til dashboard", +- "Your_DID": "Din DID", +- "signature": "signature", +- "My_folders": "Mine mapper", +- "My_profile": "Min profil", +- "Go_Pro": "Opgrader", ++ "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Indtast venligst din e-mail og dit \"seed\" her for at gendanne dine private nøgler.", ++ "Please_type_here_your_seed_to_restore_your_keyring_": "Indtast venligst dit \"seed\" her for at gendanne dine private nøgler.", ++ "Regenerate_keys": "Gendan private nøgler", ++ "Register_here": "Tilmeld dig her", ++ "Register": "Tilmeld", + "Sign_out": "Log ud", +- "ORGANIZATIONS": "ORGANISATIONER", +- "Read_more": "Læs mere", +- "Here_are_some_Helpful_link": "Her er nogle nyttige links:", +- "My": "Min", +- "Click_to_upload": "Klik for at uploade", +- "or_drag_and_drop": "eller drag and drop", ++ "signature": "signature", ++ "start": "Start", ++ "Terms_and_Conditions": "Vilkår og betingelser", ++ "User_email": "Din email", + "Validate": "Valider", +- "Upload_a_signature_file_and_verify_autenticity": "Upload en signaturfil og bekræft ægtheden", ++ "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "vi har brug for dig til at besvare nogle spørgsmål, som vil blive brugt til at generere dine private nøgler. Svarene på disse spørgsmål kommunikeres ALDRIG til os!", ++ "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Du er blevet omdirigeret hertil, fordi dine private nøgler mangler.", ++ "Your_email": "Din email", ++ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Dine nøgler er blevet regenereret. Du kan nu gå tilbage til ", ++ "Your_password": "Dit kodeord", ++ "your_profile": "din profil", ++ "_Document_signed_successfully": "✅ Dokument underskrevet med succes", + "_Signature_shared_successfully": "✅ Signatur delt med succes", + "_Signature_unshared_successfully": "✅ Signaturen blev fjernet", +- "_Document_signed_successfully": "✅ Dokument underskrevet med succes", +- "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Er du sikker på, at du vil fjerne al adgang til signaturen?", +- "Yes_remove_access": "Ja, fjern adgangen", +- "Select_one_or_more_templates_for_this_service": "Vælg en eller flere skabeloner til denne tjeneste", +- "Create_new_Template": "Opret ny skabelon", +- "Services_templates": "Credential skabeloner", +- "Templates": "Skabeloner", +- "Credential_templates": "Credential skabeloner", +- "credential_issuer_description": "Credential issueren er en mikroservice, der producerer verificerbare credentialer. Strukturen af credentialen er baseret på de krav, der er defineret i credentialskabelonen, og indholdet er typisk (men ikke nødvendigvis) læst fra eksterne kilder. ", ++ "_with_one_account_": ", med én konto.", ++ "advanced_settings_description": "Dette afsnit er dedikeret til andre indstillinger, der ikke kunne passe til de foregående afsnit.", + "authorization_server_description": "Autorisationsserveren er en mikrotjeneste, hvis adfærd er defineret i Opein4VC- og Oauth 2.0-specifikationerne, ansvarlig for styring af adgangskontrol og godkendelsesbeslutninger.", +- "relying_party_description": "Den relying party verificerer ægtheden og gyldigheden af en credential under verifikationsforløbet.", +- "Template_parsing_error": "Skabelonparsingsfejl", +- "New_credential_template": "Ny credentialskabelon", +- "Template": "Skabelon", +- "template_form_basic_info_description": "Opret skabeloner til at definere udstedelses- og verifikationsflows: skabeloner indeholder parametre og logik for flowene. Skabeloner vælges i flow-editorerne. ", +- "template_form_name_placeholder": "Navn på skabelonen", +- "form_structure_description": "Definer her de attributter, som brugeren skal indtaste manuelt, i den form, som autoriseringsserveren viser", ++ "Click_to_upload": "Klik for at uploade", ++ "credential_issuer_description": "Credential issueren er en mikroservice, der producerer verificerbare credentialer. Strukturen af credentialen er baseret på de krav, der er defineret i credentialskabelonen, og indholdet er typisk (men ikke nødvendigvis) læst fra eksterne kilder. ", ++ "Credential_templates": "Credential skabeloner", + "custom_code_description": "Denne kode indeholder forretningslogikken for det flow, vi definerer nu: koden er skrevet i Zencode, start fra eksemplerne og følg dokumentationen for at lære mere", +- "select_code_sample": "Vælg Zencode fra eksemplerne", +- "issuance_flow_form_main_info_description": "Udstedelsesflowet definerer, hvornår og hvordan en credential vil blive udstedt, og hvad legitimationsoplysningerne skal indeholde. for at konfigurere et udstedelsesflow skal du vælge kryptografi og det anvendte format, vælge de mikrotjenester, der vil udstede credentialen, og en skabelon for at definere krav, parametre og logikken i udstedelsen.", ++ "Forgot_password": "Glemt kodeord?", ++ "form_structure_description": "Definer her de attributter, som brugeren skal indtaste manuelt, i den form, som autoriseringsserveren viser", ++ "Here_are_some_Helpful_link": "Her er nogle nyttige links:", ++ "identity": "Identitet", + "issuance_flow_form_credential_info_description": "I dette afsnit kan du vælge kryptografi- og credentialsformater sammen med skabelonerne for credentialsoplysningerne og autorisationsflowet. Skabelonerne definerer parametrene, indholdet af udstedelsesstrømmene. Du kan oprette og redigere skabeloner og genbruge dem i flere flows.", ++ "issuance_flow_form_main_info_description": "Udstedelsesflowet definerer, hvornår og hvordan en credential vil blive udstedt, og hvad legitimationsoplysningerne skal indeholde. for at konfigurere et udstedelsesflow skal du vælge kryptografi og det anvendte format, vælge de mikrotjenester, der vil udstede credentialen, og en skabelon for at definere krav, parametre og logikken i udstedelsen.", + "issuance_flow_form_microservices_description": "Vælg den credentialsudsteder, der skal producere credentialsoplysningerne, og den autorisationsserver, der skal godkende den bruger, der anmoder om credentialsoplysningerne. ", +- "advanced_settings_description": "Dette afsnit er dedikeret til andre indstillinger, der ikke kunne passe til de foregående afsnit.", +- "Use_only_lowercase_and_uppercase_letters_no_spaces": "Brug kun tal, små eller store bogstaver, men ingen mellemrum.", ++ "issuance_flows_description": "Find dine udstedelsesstrømme her: strømmene beskriver, hvordan og hvornår en credential vil blive udstedt, og hvad den vil indeholde.", ++ "Join_multiple_trusted": "Deltag i flere betroede ", ++ "Log_in_with_webauthn": "Log ind med Webauthn", ++ "Log_in": "Log på", ++ "Log_In": "Log på", ++ "multisignatures": "Multisignaturer", ++ "My_folders": "Mine mapper", ++ "my_signatures": "Signaturer", ++ "New_credential_template": "Ny credentialskabelon", ++ "New_password": "Nyt kodeord", + "new_verification_flow_description": "Konfigurer et verifikationsflow her: opsæt skabelonen, den afhængige part og hvordan flowet vil se ud i Verifier-appen.", ++ "or_drag_and_drop": "eller drag and drop", ++ "Password_reset_successfully": "Adgangskode nulstillet med succes!", ++ "Please_click_the_link_in_the_email_to_reset_your_password_": "Klik på linket i e-mailen for at nulstille din adgangskode.", ++ "Please_enter_here_a_new_password_": "Indtast venligst en ny adgangskode her.", ++ "Please_enter_here_your_email_to_recover_your_password_": "Indtast venligst din e-mail her for at nulstille din adgangskode.", ++ "Read_more": "Læs mere", ++ "relying_party_description": "Den relying party verificerer ægtheden og gyldigheden af en credential under verifikationsforløbet.", ++ "Reset_email_sent_successfully": "E-mail til nulstilling af adgangskode blev sendt!", ++ "Reset_password": "Nulstille kodeord", ++ "signatures": "Signaturer", ++ "Signatures": "Signaturer", ++ "template_form_basic_info_description": "Opret skabeloner til at definere udstedelses- og verifikationsflows: skabeloner indeholder parametre og logik for flowene. Skabeloner vælges i flow-editorerne. ", ++ "template_form_name_placeholder": "Navn på skabelonen", ++ "Template_parsing_error": "Skabelonparsingsfejl", ++ "Template": "Skabelon", ++ "templates_description_verification": "Her er dine bekræftelsesskabeloner: De indeholder parametrene og logikken i credentialsbekræftelsesprocessen. ", ++ "templates_description": "Find alle skabelonerne til udstedelses- og verifikationsstrømmene her. Skabeloner kan være af tre typer: Autorisation, Issuance eller Verification. Skabeloner spiller en central rolle i funktionen af credentialsudstedelsen og verifikationsstrømmene og derfor i adfærden af deres respektive mikrotjenester (Authorization Server, Credential Issuer and Relying Party). ", ++ "Templates": "Skabeloner", ++ "Use_only_lowercase_and_uppercase_letters_no_spaces": "Brug kun tal, små eller store bogstaver, men ingen mellemrum.", ++ "validate_signatures": "Validere signaturer", ++ "verification_flow_description": "Verifikationen administreres for det meste af DIDroom Verifier-appen. Installer verifikationsappen, log ind med en konto, der er forbundet med denne organisation, og start verifikationsflowet derfra.", + "verification_flow_form_basic_info_description": "Du kan konfigurere et verifikationsflow her ved at vælge en bekræftelsesskabelon og vælge en pålidelig part.", +- "verification_flow_form_name_placeholder": "Dette navn vises i Verifier-appen", + "verification_flow_form_description_placeholder": "Beskriv verifikationsforløbet: Denne beskrivelse vises i Verifier-appen", +- "verification_info_description": "Vælg en bekræftelsesskabelon for flowet. Skabelonen indeholder parametrene og logikken for verifikationen.", + "verification_flow_form_microservices_description": "Den stolende part er en mikrotjeneste, der modtager en verifiable presentation (eller credential eller zero knowledge proof), verificerer den og returnerer resultatet til verifikatoren. Vælg den pålidelige part, der skal udføre verifikationen.", ++ "verification_flow_form_name_placeholder": "Dette navn vises i Verifier-appen", ++ "verification_flows_description": "Verifikationsflows definerer logikken i verifikationen, den mikrotjeneste (relying part), der udfører verifikationen, samt hvordan verifikationsflowet vil blive præsenteret i Verifier-appen. ", ++ "verification_info_description": "Vælg en bekræftelsesskabelon for flowet. Skabelonen indeholder parametrene og logikken for verifikationen.", ++ "Your_DID": "Din DID", ++ "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Er du sikker på, at du vil fjerne al adgang til signaturen?", ++ "attributes_needed_description_authorization": "Definer her de attributter, som wallet vil sende automatisk til autorisationsserveren", + "attributes_needed_description_credential": "Definer her de påstande, som credential issuer vil skrive i credentialen ", + "attributes_needed_description_verification": "Definer her de parametre, som den relying party vil bruge til at verificere credentialen", +- "attributes_needed_description_authorization": "Definer her de attributter, som wallet vil sende automatisk til autorisationsserveren", +- "templates_description_verification": "Her er dine bekræftelsesskabeloner: De indeholder parametrene og logikken i credentialsbekræftelsesprocessen. ", +- "verification_flows_description": "Verifikationsflows definerer logikken i verifikationen, den mikrotjeneste (relying part), der udfører verifikationen, samt hvordan verifikationsflowet vil blive præsenteret i Verifier-appen. ", +- "issuance_flows_description": "Find dine udstedelsesstrømme her: strømmene beskriver, hvordan og hvornår en credential vil blive udstedt, og hvad den vil indeholde.", +- "templates_description": "Find alle skabelonerne til udstedelses- og verifikationsstrømmene her. Skabeloner kan være af tre typer: Autorisation, Issuance eller Verification. Skabeloner spiller en central rolle i funktionen af credentialsudstedelsen og verifikationsstrømmene og derfor i adfærden af deres respektive mikrotjenester (Authorization Server, Credential Issuer and Relying Party). ", +- "pending_membership_requests_description": "Her kan du se listen over brugere, der har anmodet om at blive medlem af denne organisation", +- "members_description": "Liste over eksisterende medlemmer af organisationen: medlemmer kan have forskellige roller, hvilket giver dem forskellige privilegier ", +- "verification_flow_description": "Verifikationen administreres for det meste af DIDroom Verifier-appen. Installer verifikationsappen, log ind med en konto, der er forbundet med denne organisation, og start verifikationsflowet derfra.", +- "start": "Start", ++ "Create_new_Template": "Opret ny skabelon", ++ "my_verifiable_credentials": "Mine Verifiable Credentials", ++ "Recover_password": "Nulstille kodeord", ++ "select_code_sample": "Vælg Zencode fra eksemplerne", ++ "Select_one_or_more_templates_for_this_service": "Vælg en eller flere skabeloner til denne tjeneste", ++ "Services_templates": "Credential skabeloner", ++ "Upload_a_signature_file_and_verify_autenticity": "Upload en signaturfil og bekræft ægtheden", ++ "Welcome_to": "Velkommen til", ++ "Yes_remove_access": "Ja, fjern adgangen", + "my_folders": "Mapper" + } +\ No newline at end of file diff --git a/webapp/messages/de.json.rej b/webapp/messages/de.json.rej new file mode 100644 index 00000000..6ec5a2b6 --- /dev/null +++ b/webapp/messages/de.json.rej @@ -0,0 +1,232 @@ +diff a/webapp/messages/de.json b/webapp/messages/de.json (rejected hunks) +@@ -1,128 +1,128 @@ + { + "$schema": "https://inlang.com/schema/inlang-message-format", +- "my_signatures": "Signaturen", +- "validate_signatures": "Signaturen validieren", +- "multisignatures": "Multisignaturen", +- "notifications": "Benachrichtigungen", +- "identity": "Identität", +- "my_DID": "Mein DID", +- "my_verifiable_credentials": "Meine Verifiable Credentials", +- "organizations": "Organisationen", +- "signatures": "Signaturen", +- "hello": "Hallo", +- "Forgot_password": "Passwort vergessen?", +- "Please_enter_here_your_email_to_recover_your_password_": "Bitte geben Sie hier Ihre E-Mail-Adresse ein, um Ihr Passwort zurückzusetzen.", +- "Your_email": "Deine E-Mail", +- "Recover_password": "Passwort zurücksetzen", +- "Reset_email_sent_successfully": "E-Mail zum Zurücksetzen des Passworts erfolgreich gesendet!", +- "Please_click_the_link_in_the_email_to_reset_your_password_": "Bitte klicken Sie auf den Link in der E-Mail, um Ihr Passwort zurückzusetzen.", +- "Log_in_with_webauthn": "Melden Sie sich mit Webauthn an", ++ "Already_have_an_account": "Sie haben bereits ein Konto?", ++ "Before_using_the_app_again_you_need_to_restore_them_": "Bevor Sie die App erneut verwenden, müssen Sie Ihre privaten Schlüssel wiederherstellen.", ++ "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Durch die Beantwortung dieser Fragen generiert die App Ihre privaten Schlüssel, die zur Authentifizierung, Signaturen und Verschlüsselung verwendet werden", + "Choose_your_authentication_method": "Wählen Sie Ihre Authentifizierungsmethode", +- "Email_and_password": "E-Mail und Passwort", ++ "Confirm_password": "Passwort bestätigen ", ++ "Contact": "Kontakt", ++ "Copy_seed": "Seed-Passphrase kopieren", ++ "Create_an_account": "Konto erstellen", + "Dont_have_an_account": "Haben Sie noch kein Konto?", +- "Register_here": "Hier registrieren", +- "Log_in": "Einloggen", +- "Your_password": "Ihr Passwort", ++ "Email_and_password": "E-Mail und Passwort", ++ "Forgot_the_seed_Regenerate_it": "Seed vergessen? Regenerieren Sie es", + "Full_name": "Ihr Name", +- "Organizations_and_other_users_will_identify_you_by_your_name_": "Organisationen und andere Benutzer werden Sie anhand Ihres Namens identifizieren.", +- "Confirm_password": "Passwort bestätigen ", ++ "Generate_keys": "Private Schlüssel generieren", ++ "Generate_your_keys": "Generieren Sie Ihre privaten Schlüssel", ++ "Go_Pro": "Upgrade", ++ "Go_to_Dashboard": "Gehen Sie zum Dashboard", ++ "Hello": "Hallo,", ++ "hello": "Hallo", + "I_accept_the": "Ich akzeptiere das", +- "Terms_and_Conditions": "Geschäftsbedingungen", +- "Create_an_account": "Konto erstellen", +- "Already_have_an_account": "Sie haben bereits ein Konto?", +- "Login_here": "Hier anmelden", +- "Reset_password": "Passwort zurücksetzen", +- "Please_enter_here_a_new_password_": "Bitte geben Sie hier ein neues Passwort ein.", +- "New_password": "Neues Kennwort", +- "Password_reset_successfully": "Passwort erfolgreich zurückgesetzt!", +- "Join_multiple_trusted": "Treten Sie bei mehreren vertrauenswürdigen", +- "_with_one_account_": ", mit einem Konto.", ++ "I_have_the_seed_passphrase": "Ich habe die Seed-Passphrase", ++ "Important_information": "Wichtige Informationen", + "Join": "Beitreten", +- "Log_In": "Anmeldung", +- "Register": "Registrieren", +- "Signatures": "Signaturen", +- "Contact": "Kontakt", +- "Regenerate_keys": "Private Schlüssel neu generieren", +- "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Sie wurden hierher weitergeleitet, weil Ihre privaten Schlüssel fehlen.", +- "Before_using_the_app_again_you_need_to_restore_them_": "Bevor Sie die App erneut verwenden, müssen Sie Ihre privaten Schlüssel wiederherstellen.", +- "Please_type_here_your_seed_to_restore_your_keyring_": "Bitte geben Sie hier Ihren Seed ein, um Ihre privaten Schlüssel wiederherzustellen.", +- "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Bitte geben Sie hier Ihre E-Mail-Adresse und Ihren Seed ein, um Ihre privaten Schlüssel wiederherzustellen.", +- "Forgot_the_seed_Regenerate_it": "Seed vergessen? Regenerieren Sie es", ++ "Keypair_creation_successful": "Erstellung privater Schlüssel erfolgreich!", + "Keys_regenerated": "Private Schlüssel erfolgreich regeneriert!", +- "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Ihre Schlüssel wurden regeneriert. Sie können jetzt zu zurückkehren ", +- "your_profile": "dein Profil", +- "Hello": "Hallo,", +- "Welcome_to": "Willkommen zu", ++ "Login_here": "Hier anmelden", ++ "members_description": "Liste der bestehenden Mitglieder der Organisation: Mitglieder können unterschiedliche Rollen haben, die ihnen unterschiedliche Berechtigungen verleihen ", ++ "my_DID": "Mein DID", ++ "My_profile": "Mein Profil", ++ "My": "Mein", ++ "notifications": "Benachrichtigungen", + "One_last_thing_before_to_using_the_app": "Eine letzte Sache, bevor Sie die App nutzen können:", +- "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "Sie müssen einige Fragen beantworten, die zur Generierung Ihrer privaten Schlüssel verwendet werden. Die Antworten auf diese Fragen werden uns NIEMALS mitgeteilt!", +- "Generate_your_keys": "Generieren Sie Ihre privaten Schlüssel", +- "Important_information": "Wichtige Informationen", +- "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Durch die Beantwortung dieser Fragen generiert die App Ihre privaten Schlüssel, die zur Authentifizierung, Signaturen und Verschlüsselung verwendet werden", +- "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Bitte stellen Sie sicher, dass Sie sich Ihre Antworten später merken können, da nur so Ihre privaten Schlüssel wiederhergestellt werden können", ++ "Organizations_and_other_users_will_identify_you_by_your_name_": "Organisationen und andere Benutzer werden Sie anhand Ihres Namens identifizieren.", ++ "organizations": "Organisationen", ++ "ORGANIZATIONS": "ORGANISATIONEN", ++ "pending_membership_requests_description": "Hier können Sie die Liste der Benutzer sehen, die eine Mitgliedschaft in dieser Organisation beantragt haben", + "Please_answer_at_least_3_of_the_following_questions": "Bitte beantworten Sie mindestens 3 der folgenden Fragen: ", +- "User_email": "Deine E-Mail", +- "Generate_keys": "Private Schlüssel generieren", +- "I_have_the_seed_passphrase": "Ich habe die Seed-Passphrase", +- "Keypair_creation_successful": "Erstellung privater Schlüssel erfolgreich!", ++ "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Bitte stellen Sie sicher, dass Sie sich Ihre Antworten später merken können, da nur so Ihre privaten Schlüssel wiederhergestellt werden können", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Bitte bewahren Sie die „Seed-Passphrase“ an einem sicheren Ort auf, um Ihr Konto in Zukunft problemlos wiederherstellen zu können: Sie wird nur einmal angezeigt! Aus Datenschutz- und Sicherheitsgründen führen wir kein Backup durch.", +- "Copy_seed": "Seed-Passphrase kopieren", +- "Go_to_Dashboard": "Gehen Sie zum Dashboard", +- "Your_DID": "Dein DID", +- "signature": "Signaturen", +- "My_folders": "Meine Ordner", +- "My_profile": "Mein Profil", +- "Go_Pro": "Upgrade", ++ "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Bitte geben Sie hier Ihre E-Mail-Adresse und Ihren Seed ein, um Ihre privaten Schlüssel wiederherzustellen.", ++ "Please_type_here_your_seed_to_restore_your_keyring_": "Bitte geben Sie hier Ihren Seed ein, um Ihre privaten Schlüssel wiederherzustellen.", ++ "Regenerate_keys": "Private Schlüssel neu generieren", ++ "Register_here": "Hier registrieren", ++ "Register": "Registrieren", + "Sign_out": "Abmelden", +- "ORGANIZATIONS": "ORGANISATIONEN", +- "Read_more": "Mehr lesen", +- "Here_are_some_Helpful_link": "Hier sind einige hilfreiche Links:", +- "My": "Mein", +- "Click_to_upload": "Klicken Sie zum Hochladen", +- "or_drag_and_drop": "oder per Drag and Drop", ++ "signature": "Signaturen", ++ "start": "Start", ++ "Terms_and_Conditions": "Geschäftsbedingungen", ++ "User_email": "Deine E-Mail", + "Validate": "Validieren", +- "Upload_a_signature_file_and_verify_autenticity": "Laden Sie eine Signaturdatei hoch und überprüfen Sie die Echtheit", ++ "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "Sie müssen einige Fragen beantworten, die zur Generierung Ihrer privaten Schlüssel verwendet werden. Die Antworten auf diese Fragen werden uns NIEMALS mitgeteilt!", ++ "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Sie wurden hierher weitergeleitet, weil Ihre privaten Schlüssel fehlen.", ++ "Your_email": "Deine E-Mail", ++ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Ihre Schlüssel wurden regeneriert. Sie können jetzt zu zurückkehren ", ++ "Your_password": "Ihr Passwort", ++ "your_profile": "dein Profil", ++ "_Document_signed_successfully": "✅ Dokument erfolgreich signiert", + "_Signature_shared_successfully": "✅ Signatur erfolgreich geteilt", + "_Signature_unshared_successfully": "✅ Signatur erfolgreich aufgehoben", +- "_Document_signed_successfully": "✅ Dokument erfolgreich signiert", +- "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Sind Sie sicher, dass Sie jeglichen Zugriff auf die Signatur entfernen möchten?", +- "Yes_remove_access": "Ja, Zugriff entfernen", +- "Select_one_or_more_templates_for_this_service": "Wählen Sie eine oder mehrere Vorlagen für diesen Dienst aus", +- "Create_new_Template": "Neue Vorlage erstellen", +- "Services_templates": "Credentialsvorlagen", +- "Templates": "Vorlagen", +- "Credential_templates": "Credentialsvorlagen", +- "credential_issuer_description": "Der Credential-Issuer ist ein Microservice, der überprüfbare Credentialen erstellt. Die Struktur der Credential ist basiert auf den in der Credentials-svorlage definierten Ansprüchen, und der Inhalt wird normalerweise (aber nicht notwendigerweise) aus externen Quellen gelesen. ", ++ "_with_one_account_": ", mit einem Konto.", ++ "advanced_settings_description": "Dieser Abschnitt ist anderen Einstellungen gewidmet, die nicht in die vorherigen Abschnitte gepasst haben.", + "authorization_server_description": "Der Autorisierungsserver ist ein Mikrodienst, dessen Verhalten in den Spezifikationen Opein4VC und Oauth 2.0 definiert ist und der für die Verwaltung der Zugriffskontrolle und Autorisierungsentscheidungen verantwortlich ist.", +- "relying_party_description": "Die relying party überprüft während des Überprüfungsablaufs die Authentizität und Gültigkeit einer Credential.", +- "Template_parsing_error": "Fehler beim Parsen der Vorlage", +- "New_credential_template": "Neue Credentialsvorlage", +- "Template": "Vorlage", +- "template_form_basic_info_description": "Erstellen Sie Vorlagen, um Ausgabe- und Überprüfungsabläufe zu definieren: Vorlagen enthalten Parameter und Logik der Abläufe. Vorlagen werden in den Ablaufeditoren ausgewählt. ", +- "template_form_name_placeholder": "Name der Vorlage", +- "form_structure_description": "Definieren Sie hier die Attribute, die der Benutzer manuell in dem vom Autorisierungsserver bereitgestellten Formular eingeben muss.", ++ "Click_to_upload": "Klicken Sie zum Hochladen", ++ "credential_issuer_description": "Der Credential-Issuer ist ein Microservice, der überprüfbare Credentialen erstellt. Die Struktur der Credential ist basiert auf den in der Credentials-svorlage definierten Ansprüchen, und der Inhalt wird normalerweise (aber nicht notwendigerweise) aus externen Quellen gelesen. ", ++ "Credential_templates": "Credentialsvorlagen", + "custom_code_description": "Dieser Code enthält die Geschäftslogik des Flows, den wir gerade definieren: Der Code ist in Zencode geschrieben. Beginnen Sie mit den Beispielen und folgen Sie der Dokumentation, um mehr zu erfahren.", +- "select_code_sample": "Wählen Sie Zencode aus den Beispielen", +- "issuance_flow_form_main_info_description": "Der Ausgabeablauf definiert, wann und wie eine Credential ausgegeben wird und was die Anmeldeinformation enthalten wird. Um einen Ausgabeablauf einzurichten, müssen Sie die verwendete Kryptografie und das verwendete Format auswählen, die Microservices auswählen, die den Credential ausstellen, und eine Vorlage zum Definieren der Ansprüche, Parameter und der Logik der Ausgabe.", ++ "Forgot_password": "Passwort vergessen?", ++ "form_structure_description": "Definieren Sie hier die Attribute, die der Benutzer manuell in dem vom Autorisierungsserver bereitgestellten Formular eingeben muss.", ++ "Here_are_some_Helpful_link": "Hier sind einige hilfreiche Links:", ++ "identity": "Identität", + "issuance_flow_form_credential_info_description": "In diesem Abschnitt können Sie die Kryptografie- und Credentials-formate sowie die Vorlagen für die Credentials und den Autorisierungsablauf auswählen. Die Vorlagen definieren die Parameter und den Inhalt der Ausgabeabläufe. Sie können Vorlagen erstellen und bearbeiten und sie in mehreren Abläufen wiederverwenden.", ++ "issuance_flow_form_main_info_description": "Der Ausgabeablauf definiert, wann und wie eine Credential ausgegeben wird und was die Anmeldeinformation enthalten wird. Um einen Ausgabeablauf einzurichten, müssen Sie die verwendete Kryptografie und das verwendete Format auswählen, die Microservices auswählen, die den Credential ausstellen, und eine Vorlage zum Definieren der Ansprüche, Parameter und der Logik der Ausgabe.", + "issuance_flow_form_microservices_description": "Wählen Sie den Credential-aussteller aus, der die Credential erstellen wird, und den Autorisierungsserver, der den Benutzer authentifiziert, der die Credential anfordert. ", +- "advanced_settings_description": "Dieser Abschnitt ist anderen Einstellungen gewidmet, die nicht in die vorherigen Abschnitte gepasst haben.", +- "Use_only_lowercase_and_uppercase_letters_no_spaces": "Verwenden Sie nur Zahlen, Klein- oder Großbuchstaben, aber keine Leerzeichen.", ++ "issuance_flows_description": "Hier finden Sie Ihre Ausgabeabläufe: Die Abläufe beschreiben, wie und wann ein Credential ausgestellt wird und was dieser enthalten wird.", ++ "Join_multiple_trusted": "Treten Sie bei mehreren vertrauenswürdigen", ++ "Log_in_with_webauthn": "Melden Sie sich mit Webauthn an", ++ "Log_in": "Einloggen", ++ "Log_In": "Anmeldung", ++ "multisignatures": "Multisignaturen", ++ "My_folders": "Meine Ordner", ++ "my_signatures": "Signaturen", ++ "New_credential_template": "Neue Credentialsvorlage", ++ "New_password": "Neues Kennwort", + "new_verification_flow_description": "Richten Sie hier einen Überprüfungsablauf ein: Richten Sie die Vorlage und die vertrauende Partei ein und legen Sie fest, wie der Ablauf in der Verifier-App angezeigt wird.", ++ "or_drag_and_drop": "oder per Drag and Drop", ++ "Password_reset_successfully": "Passwort erfolgreich zurückgesetzt!", ++ "Please_click_the_link_in_the_email_to_reset_your_password_": "Bitte klicken Sie auf den Link in der E-Mail, um Ihr Passwort zurückzusetzen.", ++ "Please_enter_here_a_new_password_": "Bitte geben Sie hier ein neues Passwort ein.", ++ "Please_enter_here_your_email_to_recover_your_password_": "Bitte geben Sie hier Ihre E-Mail-Adresse ein, um Ihr Passwort zurückzusetzen.", ++ "Read_more": "Mehr lesen", ++ "relying_party_description": "Die relying party überprüft während des Überprüfungsablaufs die Authentizität und Gültigkeit einer Credential.", ++ "Reset_email_sent_successfully": "E-Mail zum Zurücksetzen des Passworts erfolgreich gesendet!", ++ "Reset_password": "Passwort zurücksetzen", ++ "signatures": "Signaturen", ++ "Signatures": "Signaturen", ++ "template_form_basic_info_description": "Erstellen Sie Vorlagen, um Ausgabe- und Überprüfungsabläufe zu definieren: Vorlagen enthalten Parameter und Logik der Abläufe. Vorlagen werden in den Ablaufeditoren ausgewählt. ", ++ "template_form_name_placeholder": "Name der Vorlage", ++ "Template_parsing_error": "Fehler beim Parsen der Vorlage", ++ "Template": "Vorlage", ++ "templates_description_verification": "Hier sind Ihre Überprüfungsvorlagen: Sie enthalten die Parameter und die Logik des Credentials-überprüfungsprozesses. ", ++ "templates_description": "Hier finden Sie alle Vorlagen für die Issuance- und Verifizierungsabläufe. Es gibt drei Arten von Vorlagen: Autorisierung, Issuance oder Verifizierung. Vorlagen spielen eine zentrale Rolle für das Funktionieren der Issuance- und Verifizierungsabläufe für Credentialen und damit für das Verhalten ihrer jeweiligen Mikrodienste (Authorization Server, Credential Issuer and Relying Party). ", ++ "Templates": "Vorlagen", ++ "Use_only_lowercase_and_uppercase_letters_no_spaces": "Verwenden Sie nur Zahlen, Klein- oder Großbuchstaben, aber keine Leerzeichen.", ++ "validate_signatures": "Signaturen validieren", ++ "verification_flow_description": "Die Verifizierung wird größtenteils von der DIDroom Verifier-App verwaltet. Installieren Sie die Verifier-App, melden Sie sich mit einem mit dieser Organisation verknüpften Konto an und starten Sie von dort aus den Verifizierungsablauf.", + "verification_flow_form_basic_info_description": "Sie können hier einen Überprüfungsablauf einrichten, indem Sie eine Überprüfungsvorlage und eine vertrauende Partei auswählen.", +- "verification_flow_form_name_placeholder": "Dieser Name wird in der Verifier-App angezeigt", + "verification_flow_form_description_placeholder": "Beschreiben Sie den Verifizierungsablauf: Diese Beschreibung wird in der Verifier-App angezeigt", +- "verification_info_description": "Wählen Sie eine Überprüfungsvorlage für den Ablauf aus. Die Vorlage enthält die Parameter und die Logik für die Überprüfung.", + "verification_flow_form_microservices_description": "Die vertrauende Partei ist ein Mikrodienst, der eine Verifiable-Presentation (oder einen Credential oder einen zero knowledge proof) empfängt, überprüft und das Ergebnis an den Prüfer (Verifier) zurückgibt. Wählen Sie die vertrauende Partei aus, die die Überprüfung durchführen soll.", ++ "verification_flow_form_name_placeholder": "Dieser Name wird in der Verifier-App angezeigt", ++ "verification_flows_description": "Verifizierungsabläufe definieren die Logik der Verifizierung, den Microservice (vertrauende Partei), der die Verifizierung durchführt, sowie die Art und Weise, wie der Verifizierungsablauf in der Verifier-App dargestellt wird. ", ++ "verification_info_description": "Wählen Sie eine Überprüfungsvorlage für den Ablauf aus. Die Vorlage enthält die Parameter und die Logik für die Überprüfung.", ++ "Your_DID": "Dein DID", ++ "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Sind Sie sicher, dass Sie jeglichen Zugriff auf die Signatur entfernen möchten?", ++ "attributes_needed_description_authorization": "Definieren Sie hier die Attribute, die das Wallet automatisch an den Autorisierungsserver sendet", + "attributes_needed_description_credential": "Definieren Sie hier die Ansprüche, die der Credential-Issuer in die Credential schreiben wird ", + "attributes_needed_description_verification": "Definieren Sie hier die Parameter, die die Relying-Party zur Überprüfung des Credential verwenden wird.", +- "attributes_needed_description_authorization": "Definieren Sie hier die Attribute, die das Wallet automatisch an den Autorisierungsserver sendet", +- "templates_description_verification": "Hier sind Ihre Überprüfungsvorlagen: Sie enthalten die Parameter und die Logik des Credentials-überprüfungsprozesses. ", +- "verification_flows_description": "Verifizierungsabläufe definieren die Logik der Verifizierung, den Microservice (vertrauende Partei), der die Verifizierung durchführt, sowie die Art und Weise, wie der Verifizierungsablauf in der Verifier-App dargestellt wird. ", +- "issuance_flows_description": "Hier finden Sie Ihre Ausgabeabläufe: Die Abläufe beschreiben, wie und wann ein Credential ausgestellt wird und was dieser enthalten wird.", +- "templates_description": "Hier finden Sie alle Vorlagen für die Issuance- und Verifizierungsabläufe. Es gibt drei Arten von Vorlagen: Autorisierung, Issuance oder Verifizierung. Vorlagen spielen eine zentrale Rolle für das Funktionieren der Issuance- und Verifizierungsabläufe für Credentialen und damit für das Verhalten ihrer jeweiligen Mikrodienste (Authorization Server, Credential Issuer and Relying Party). ", +- "pending_membership_requests_description": "Hier können Sie die Liste der Benutzer sehen, die eine Mitgliedschaft in dieser Organisation beantragt haben", +- "members_description": "Liste der bestehenden Mitglieder der Organisation: Mitglieder können unterschiedliche Rollen haben, die ihnen unterschiedliche Berechtigungen verleihen ", +- "verification_flow_description": "Die Verifizierung wird größtenteils von der DIDroom Verifier-App verwaltet. Installieren Sie die Verifier-App, melden Sie sich mit einem mit dieser Organisation verknüpften Konto an und starten Sie von dort aus den Verifizierungsablauf.", +- "start": "Start", ++ "Create_new_Template": "Neue Vorlage erstellen", ++ "my_verifiable_credentials": "Meine Verifiable Credentials", ++ "Recover_password": "Passwort zurücksetzen", ++ "select_code_sample": "Wählen Sie Zencode aus den Beispielen", ++ "Select_one_or_more_templates_for_this_service": "Wählen Sie eine oder mehrere Vorlagen für diesen Dienst aus", ++ "Services_templates": "Credentialsvorlagen", ++ "Upload_a_signature_file_and_verify_autenticity": "Laden Sie eine Signaturdatei hoch und überprüfen Sie die Echtheit", ++ "Welcome_to": "Willkommen zu", ++ "Yes_remove_access": "Ja, Zugriff entfernen", + "my_folders": "Ordner" + } +\ No newline at end of file diff --git a/webapp/messages/en.json.rej b/webapp/messages/en.json.rej new file mode 100644 index 00000000..f2927281 --- /dev/null +++ b/webapp/messages/en.json.rej @@ -0,0 +1,606 @@ +diff a/webapp/messages/en.json b/webapp/messages/en.json (rejected hunks) +@@ -1,162 +1,442 @@ + { +- "$schema": "https://inlang.com/schema/inlang-message-format", +- "notifications": "Notifications", +- "my_DID": "My DID", +- "organizations": "Organizations", +- "hello": "Hello", +- "Your_emai": "Your emai", +- "Your_email": "Your email", +- "namefoundation_org": "name@email.com", +- "Choose_your_authentication_method": "Choose your authentication method", +- "Email_and_password": "Email and password", +- "Webauthn": "Webauthn", +- "Dont_have_an_account": "Don't have an account?", +- "Register_here": "Register here", +- "Your_password": "Your password", +- "PASSWORDS_DO_NOT_MATCH": "The password and the confirmation password do not match!", +- "Full_name": "Your name", +- "John_Doe": "John Doe", +- "Organizations_and_other_users_will_identify_you_by_your_name_": "Organizations and other users will identify you by your name.", +- "Confirm_password": "Confirm password", +- "I_accept_the": "I accept the", +- "Terms_and_Conditions": "Terms and Conditions", +- "Create_an_account": "Create an account", +- "Already_have_an_account": "Already have an account?", +- "Login_here": "Login here", +- "Join": "Join", +- "Register": "Register", +- "Contact": "Contact", +- "Regenerate_keys": "Regenerate private keys", +- "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "You have been redirected here because your private keys are missing.", +- "You_have_been_redirected_here_because_your_private_keys_are_missing_": "You have been redirected here because your private keys are missing.", +- "Before_using_the_app_again_you_need_to_restore_them_": "Before using the app again, you need to restore your private keys.", +- "Please_type_here_your_seed_to_restore_your_keyring_": "Please type here your \"seed\" to restore your private keys.", +- "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Please type here your email and your \"seed\" to restore your private keys.", +- "Your_email_wont_be_stored_anywhere_it_will_be_used_only_to_generate_the_keys_": "Your email won't be stored anywhere, it will be used only to generate the keys.", +- "Forgot_the_seed_Regenerate_it": "Forgot the \"seed\"? Regenerate it", +- "Keys_regenerated": "Private keys successfully regenerated!", +- "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Your keys have been regenerated. You can now go back to ", +- "your_profile": "your profile", +- "Hello": "Hello, ", +- "Thanks_for_joining_us": "Thanks for joining us!", +- "One_last_thing_before_to_using_the_app": "One last thing before you can start using the app:", +- "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "we need you to answer some questions, that will be used to generate your private keys. The answers to this questions are NEVER communicated to us!", +- "Generate_your_keys": "Generate your private keys", +- "Info": "Info", +- "Important_information": "Important information", +- "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "By answering these questions, the app will generate your private keys that will be used for authentication, signatures and encryption", +- "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Please make sure that you can later remember your answers, as they will be the only way to restore your private keys", +- "Please_answer_at_least_3_of_the_following_questions": "Please answer at least 3 of the following questions: ", +- "User_email": "Your email", +- "Generate_keys": "Generate private keys", +- "I_have_the_seed_passphrase": "I have the seed passphrase", +- "Keypair_creation_successful": "Private keys creation successful!", +- "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Please store the \"seed passphrase\" in a safe place to easily recover your account in the future: it will be shown only once! We're not keeping a backup for privacy and security reasons.", +- "Copy_seed": "Copy seed passphrase", +- "Go_to_Dashboard": "Go to Dashboard", +- "signature": "signature", +- "My_profile": "My profile", +- "Go_Pro": "Upgrade", +- "Sign_out": "Sign out", +- "ORGANIZATIONS": "ORGANIZATIONS", +- "Home": "Home", +- "Login": "Login", +- "My": "My", +- "Validate": "Validate", +- "SHARE": "SHARE", +- "EDIT": "EDIT", +- "Undo": "Undo", +- "Cancel": "Cancel", +- "Username": "Username", +- "email": "email", +- "Your_keys": "Your keys", +- "Your_organizations": "Your organizations", +- "Join_an_organization": "Join an organization", +- "Create_a_new_organization": "Create a new organization", +- "Settings": "Settings", +- "Pending": "Pending", +- "Undo_request": "Undo request", +- "My_organizations": "My organizations", +- "Request_sent": "Request sent", +- "Please_confirm_that_you_want_to_join_this_organization_": "Please confirm that you want to join this organization.", +- "Send_join_request": "Request to join organization", +- "Send_a_request_to": "Send a request to", +- "Create_an_organization": "Create an organization", +- "Organization_name": "Organization name", +- "Short_description": "Short description", +- "Avatar": "Avatar", +- "Create_organization": "Create organization", +- "Accept": "Accept", +- "Members": "Members", +- "Manage_your_organization_public_info": "Manage your organization public info", +- "Save_changes": "Save changes", +- "Credential_issuance": "Credential issuance", +- "Credential_issuances": "Credential issuances", +- "organzations_page_description": "This page serves as a centralized hub for managing your organizational memberships and activities.", +- "Manage": "Manage", +- "You": "You", +- "Active": "Active", +- "View": "View", +- "Edit": "Edit", +- "Back_to_my_organizations": "Back to My Organizations", +- "No_available_organizations_found": "No available organizations found", +- "You_havent_added_any_organizations_yet_": "You haven't added any organizations yet.", +- "Your_membership_requests": "Your membership requests", +- "Delete": "Delete", +- "Pending_membership_requests": "Pending membership requests", +- "Decline": "Decline", +- "Required": "Required", +- "Name": "Name", +- "Description": "Description", +- "Options": "Options", +- "pending_membership_requests_description": "Here you can see the list of users who requested to be members of this organization", +- "members_description": "List of the existing members of the organization: members can have different roles allowing them different privileges ", +- "Public": "Public", +- "Select_language": "Select language", +- "Help": "Help", +- "Github": "Github", +- "Error": "Error", +- "whereParentsMet": "Where did your parents meet?", +- "nameFirstPet": "What is the name of your first pet?", +- "whereHomeTown": "What is your home town?", +- "nameFirstTeacher": "What is the name of your first teacher?", +- "nameMotherMaid": "What is the surname of your mother before wedding?", +- "folder": "Folder", +- "Title": "Title", +- "File": "File", +- "Warning": "⚠️ Warning ⚠️", +- "Success": "✅ Success ✅", +- "Remove": "Remove", +- "Port": "Port", +- "Date": "Date", +- "Mode": "Mode", +- "privacy_policy": "Privacy policy", +- "and": "and", +- "start": "Start", +- "decline_membership_request": "decline_membership_request", +- "decline_membership_request_warning": "decline_membership_request_warning", +- "invite_members": "invite_members", +- "Upload_a_file_containing_emails": "Upload a file containing emails", +- "Paste_email_addresses_here": "Paste email addresses here", +- "or": "or", +- "accepted_files": "accepted_files", +- "We_havent_found_any_emails_in_the_provided_documents_please_upload_a_new_file_or_paste_new_content_": "We haven't found any emails in the provided documents, please upload a new file or paste new content.", +- "Emails_found": "Emails found!", +- "Review_and_confirm": "Review and confirm", +- "Back": "Back", +- "Send_invites": "Send invites", +- "Search_emails": "Search emails", +- "Review_the_email_list_before_sending": "Review the email list before sending", +- "Pending_invites": "Pending invites", +- "pending_invites_description": "pending_invites_description", +- "failed_email_send": "failed_email_send", +- "organization_invites": "organization_invites", +- "accept_invite": "Accept invite", +- "decline_invite": "Decline invite", +- "invite_declined": "invite_declined", +- "welcome_to_app": "Welcome to {appName} 🎉", +- "you_have_been_invited_by_organization_to_join_the_platform": "You have been invited by {organizationName} to join the platform!", +- "Please_register_using_the_provided_email_account_": "Please register using the provided email account.", +- "User_public_keys_are_missing_Please_generate_them_using_the_security_questions_": "User public keys are missing. Please generate them using the security questions.", +- "Invalid_seed": "Invalid seed" +-} +\ No newline at end of file ++ "$schema": "https://inlang.com/schema/inlang-message-format", ++ "accept_invite": "Accept invite", ++ "Accept": "Accept", ++ "accepted_files": "accepted_files", ++ "Active": "Active", ++ "Already_have_an_account": "Already have an account?", ++ "and": "and", ++ "Avatar": "Avatar", ++ "Back_to_my_organizations": "Back to My Organizations", ++ "Back": "Back", ++ "Before_using_the_app_again_you_need_to_restore_them_": "Before using the app again, you need to restore your private keys.", ++ "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "By answering these questions, the app will generate your private keys that will be used for authentication, signatures and encryption", ++ "Cancel": "Cancel", ++ "Choose_your_authentication_method": "Choose your authentication method", ++ "Confirm_password": "Confirm password", ++ "Contact": "Contact", ++ "Copy_seed": "Copy seed passphrase", ++ "Create_a_new_organization": "Create a new organization", ++ "Create_an_account": "Create an account", ++ "Create_an_organization": "Create an organization", ++ "Create_organization": "Create organization", ++ "Credential_issuance": "Credential issuance", ++ "Credential_issuances": "Credential issuances", ++ "Date": "Date", ++ "decline_invite": "Decline invite", ++ "decline_membership_request_warning": "decline_membership_request_warning", ++ "decline_membership_request": "decline_membership_request", ++ "Decline": "Decline", ++ "Delete": "Delete", ++ "Description": "Description", ++ "Dont_have_an_account": "Don't have an account?", ++ "Edit": "Edit", ++ "EDIT": "EDIT", ++ "Email_and_password": "Email and password", ++ "email": "email", ++ "Emails_found": "Emails found!", ++ "Error": "Error", ++ "failed_email_send": "failed_email_send", ++ "File": "File", ++ "folder": "Folder", ++ "Forgot_the_seed_Regenerate_it": "Forgot the \"seed\"? Regenerate it", ++ "Full_name": "Your name", ++ "Generate_keys": "Generate private keys", ++ "Generate_your_keys": "Generate your private keys", ++ "Github": "Github", ++ "Go_Pro": "Upgrade", ++ "Go_to_Dashboard": "Go to Dashboard", ++ "Hello": "Hello, ", ++ "hello": "Hello", ++ "Help": "Help", ++ "Home": "Home", ++ "I_accept_the": "I accept the", ++ "I_have_the_seed_passphrase": "I have the seed passphrase", ++ "Important_information": "Important information", ++ "Info": "Info", ++ "Invalid_seed": "Invalid seed", ++ "invite_declined": "invite_declined", ++ "invite_members": "invite_members", ++ "John_Doe": "John Doe", ++ "Join_an_organization": "Join an organization", ++ "Join": "Join", ++ "Keypair_creation_successful": "Private keys creation successful!", ++ "Keys_regenerated": "Private keys successfully regenerated!", ++ "Login_here": "Login here", ++ "Login": "Login", ++ "Manage_your_organization_public_info": "Manage your organization public info", ++ "Manage": "Manage", ++ "members_description": "List of the existing members of the organization: members can have different roles allowing them different privileges ", ++ "Members": "Members", ++ "Mode": "Mode", ++ "my_DID": "My DID", ++ "My_organizations": "My organizations", ++ "My_profile": "My profile", ++ "My": "My", ++ "Name": "Name", ++ "nameFirstPet": "What is the name of your first pet?", ++ "nameFirstTeacher": "What is the name of your first teacher?", ++ "namefoundation_org": "name@email.com", ++ "nameMotherMaid": "What is the surname of your mother before wedding?", ++ "No_available_organizations_found": "No available organizations found", ++ "notifications": "Notifications", ++ "One_last_thing_before_to_using_the_app": "One last thing before you can start using the app:", ++ "Options": "Options", ++ "or": "or", ++ "organization_invites": "organization_invites", ++ "Organization_name": "Organization name", ++ "Organizations_and_other_users_will_identify_you_by_your_name_": "Organizations and other users will identify you by your name.", ++ "organizations": "Organizations", ++ "ORGANIZATIONS": "ORGANIZATIONS", ++ "organzations_page_description": "This page serves as a centralized hub for managing your organizational memberships and activities.", ++ "ou_have_been_redirected_here_because_your_private_keys_are_missing_": "You have been redirected here because your private keys are missing.", ++ "PASSWORDS_DO_NOT_MATCH": "The password and the confirmation password do not match!", ++ "Paste_email_addresses_here": "Paste email addresses here", ++ "pending_invites_description": "pending_invites_description", ++ "Pending_invites": "Pending invites", ++ "pending_membership_requests_description": "Here you can see the list of users who requested to be members of this organization", ++ "Pending_membership_requests": "Pending membership requests", ++ "Pending": "Pending", ++ "Please_answer_at_least_3_of_the_following_questions": "Please answer at least 3 of the following questions: ", ++ "Please_confirm_that_you_want_to_join_this_organization_": "Please confirm that you want to join this organization.", ++ "Please_register_using_the_provided_email_account_": "Please register using the provided email account.", ++ "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Please make sure that you can later remember your answers, as they will be the only way to restore your private keys", ++ "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Please store the \"seed passphrase\" in a safe place to easily recover your account in the future: it will be shown only once! We're not keeping a backup for privacy and security reasons.", ++ "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Please type here your email and your \"seed\" to restore your private keys.", ++ "Please_type_here_your_seed_to_restore_your_keyring_": "Please type here your \"seed\" to restore your private keys.", ++ "Port": "Port", ++ "privacy_policy": "Privacy policy", ++ "Public": "Public", ++ "Regenerate_keys": "Regenerate private keys", ++ "Register_here": "Register here", ++ "Register": "Register", ++ "Remove": "Remove", ++ "Request_sent": "Request sent", ++ "Required": "Required", ++ "Review_and_confirm": "Review and confirm", ++ "Review_the_email_list_before_sending": "Review the email list before sending", ++ "Save_changes": "Save changes", ++ "Search_emails": "Search emails", ++ "Select_language": "Select language", ++ "Send_a_request_to": "Send a request to", ++ "Send_invites": "Send invites", ++ "Send_join_request": "Request to join organization", ++ "Settings": "Settings", ++ "SHARE": "SHARE", ++ "Short_description": "Short description", ++ "Sign_out": "Sign out", ++ "signature": "signature", ++ "start": "Start", ++ "Success": "✅ Success ✅", ++ "Terms_and_Conditions": "Terms and Conditions", ++ "Thanks_for_joining_us": "Thanks for joining us!", ++ "Title": "Title", ++ "Undo_request": "Undo request", ++ "Undo": "Undo", ++ "Upload_a_file_containing_emails": "Upload a file containing emails", ++ "User_email": "Your email", ++ "User_public_keys_are_missing_Please_generate_them_using_the_security_questions_": "User public keys are missing. Please generate them using the security questions.", ++ "Username": "Username", ++ "Validate": "Validate", ++ "View": "View", ++ "Warning": "⚠️ Warning ⚠️", ++ "We_havent_found_any_emails_in_the_provided_documents_please_upload_a_new_file_or_paste_new_content_": "We haven't found any emails in the provided documents, please upload a new file or paste new content.", ++ "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "we need you to answer some questions, that will be used to generate your private keys. The answers to this questions are NEVER communicated to us!", ++ "Webauthn": "Webauthn", ++ "welcome_to_app": "Welcome to {appName} 🎉", ++ "whereHomeTown": "What is your home town?", ++ "whereParentsMet": "Where did your parents meet?", ++ "you_have_been_invited_by_organization_to_join_the_platform": "You have been invited by {organizationName} to join the platform!", ++ "You_have_been_redirected_here_because_your_private_keys_are_missing_": "You have been redirected here because your private keys are missing.", ++ "You_havent_added_any_organizations_yet_": "You haven't added any organizations yet.", ++ "You": "You", ++ "Your_emai": "Your emai", ++ "Your_email_wont_be_stored_anywhere_it_will_be_used_only_to_generate_the_keys_": "Your email won't be stored anywhere, it will be used only to generate the keys.", ++ "Your_email": "Your email", ++ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Your keys have been regenerated. You can now go back to ", ++ "Your_keys": "Your keys", ++ "Your_membership_requests": "Your membership requests", ++ "Your_organizations": "Your organizations", ++ "Your_password": "Your password", ++ "your_profile": "your profile", ++ "Please_wait": "Please wait", ++ "_Document_signed_successfully": "✅ Document signed successfully", ++ "_Signature_shared_successfully": "✅ Signature shared successfully", ++ "_Signature_unshared_successfully": "✅ Signature unshared successfully", ++ "_with_one_account_": ", with one account.", ++ "advanced_settings_description": "This section is dedicated to other settings that couldn't fit the previous sections.", ++ "authorization_server_description": "The authorization server is a microservice whose behaviour is defined in the Opein4VC and Oauth 2.0 specifications, responsible for managing access control and authorization decisions.", ++ "Click_to_upload": "Click to upload", ++ "credential_issuer_description": "The credential issuer is a microservicee that produces verifiable credentials. The structure of the credential is based on the claims defined in the credential template, and the content is typical (but not necessarily) read from external sources. ", ++ "Credential_templates": "Credential templates", ++ "custom_code_description": "This code contains the business logic of the flow we are defining now: the code is written in Zencode, start from the examples and follow the documentation to learn more.", ++ "Forgot_password": "Forgot password?", ++ "form_structure_description": "Define here the attributes that the user has to enter manually, in the form provided by the authorization server", ++ "Here_are_some_Helpful_link": "Here are some helpful link:", ++ "identity": "Identity", ++ "issuance_flow_form_credential_info_description": "In this section you can select the cryptography and credential formats, along with the templates for the credential and the authorization flow. The templates define the parameters, the content of the Issuance Flows. You can create and edit templates and re-use them in multiple flows.", ++ "issuance_flow_form_main_info_description": "The issuance flow defines when and how a credential will be issued, and what the credential will contain. in order to setup an issuance flow you need to select the cryptography and the format used, select select the microservices that will issue the credential and a template to define the claims, parameters and the logic of the issuance.", ++ "issuance_flow_form_microservices_description": "Select the credential issuer that will produce the credential, and the authorization server that will authenticate the user requesting the credential. ", ++ "issuance_flows_description": "Find here your issuance flows: the flows describe how and when a credential will be issued and what it will contain.", ++ "Join_multiple_trusted": "Join multiple ", ++ "Log_in_with_webauthn": "Log in with Webauthn", ++ "Log_in": "Log in", ++ "Log_In": "Log In", ++ "multisignatures": "Multisignatures", ++ "My_folders": "My folders", ++ "my_signatures": "My signatures", ++ "New_credential_template": "New credential template", ++ "New_password": "New password", ++ "new_verification_flow_description": "Setup a verification flow here: setup the template, select the Relying Party and how the flow will appear in the Verifier app.", ++ "or_drag_and_drop": "or drag and drop", ++ "Password_reset_successfully": "Password reset successfully!", ++ "Please_click_the_link_in_the_email_to_reset_your_password_": "Please click the link in the email to reset your password.", ++ "Please_enter_here_a_new_password_": "Please enter here a new password.", ++ "Please_enter_here_your_email_to_recover_your_password_": "Please enter here your email to reset your password.", ++ "Read_more": "Read more", ++ "relying_party_description": "The relying party verifies the authenticity and validity of a credential during the verification flow.", ++ "Reset_email_sent_successfully": "Password reset email sent successfully!", ++ "Reset_password": "Reset password", ++ "signatures": "Signatures", ++ "Signatures": "Signatures", ++ "template_form_basic_info_description": "Create templates to define issuance and verification flows: templates contain parameters and logic of the flows. Templates are selected within the flow editors. ", ++ "template_form_name_placeholder": "Name of the template", ++ "Template_parsing_error": "Template parsing error", ++ "Template": "Template", ++ "templates_description_verification": "Here are your verification templates: they contain the parameters and the logic of the credential verification process. ", ++ "templates_description": "Find here all the templates for the issuance and verification flows. Templates can be of three types: Authorization, Issuance or Verification. Templates play a central role in functioning of the credential issuance and verification flows and therefore in the behaviour of their respective microservices (Authorization Server, Credential Issuer and Relying Party). ", ++ "Templates": "Templates", ++ "Use_only_lowercase_and_uppercase_letters_no_spaces": "Use only numbers, lowercase or uppercase characters, but no spaces.", ++ "validate_signatures": "Validate signatures", ++ "verification_flow_description": "verification_flow_description", ++ "verification_flow_form_basic_info_description": "You can setup a verification flow here by selecting a verification template and selecting a Relying Party.", ++ "verification_flow_form_description_placeholder": "Describe the verification flow: this description will appear in the Verifier app", ++ "verification_flow_form_microservices_description": "The Relying Party is a microservice, that receives a verifiable presentation (or credential, or zero knowledge proof), verifies it, and returns the result to the verifier. Select the relying party that will perform the verification.", ++ "verification_flow_form_name_placeholder": "This name will appear in the Verifier app", ++ "verification_flows_description": "Verification flows define the logic of the verification, the microservice (Relying Party) that will perform the verification as well as how the verifcation flow will be presented in the Verifier app. ", ++ "verification_info_description": "Select a verification template for the flow. The template contains the parameters and logic for the verification.", ++ "Your_DID": "Your DID", ++ "add_signature": "add signature", ++ "shared": "shared", ++ "Signature": "Signature:", ++ "Original_file": "Original file", ++ "Signed_file": "Signed file", ++ "Preview": "Preview", ++ "Signed": "Signed", ++ "Edit_profile": "Edit profile", ++ "Show_email_to_other_users": "Show email to other users", ++ "Update_profile": "Update profile", ++ "Checking_your_device": "Checking your device", ++ "Your_device_does_not_have_integrated_Webauthn_support_An_external_authenticator_is_required_": "Your device does not have integrated Webauthn support. An external authenticator is\n\t\t\t\trequired.", ++ "Add_a_device": "Add a device", ++ "Your_devices": "Your devices", ++ "Manage_the_devices_you_use_to_login_": "Manage the devices you use to login, using the WebAuthn technology.", ++ "Authorization_servers": "Authorization servers", ++ "Relying_parties": "Relying parties", ++ "Credential_issuers": "Credential issuers", ++ "Servers": "Servers", ++ "Service_Qr_Code": "Service Qr Code", ++ "Services": ">Services", ++ "General": "General", ++ "Enter_a_description_for_the_schema": "Enter a description for the schema", ++ "Microservices": "Microservices", ++ "Membership_requests": "Membership requests", ++ "Quick_actions": "Quick actions", ++ "quick_actions_description": "🙌 Check at the links below to get started or navigate the sidebar 😄", ++ "news_section_title": "What's new", ++ "news_section_description": "Stay up to date with the latest developments and insights in the world of cryptography and digital signatures.", ++ "Add_new": "Add new", ++ "Create_issuance_flow": "Create issuance flow", ++ "Update_issuance_flow": "Update issuance flow", ++ "Credential_logo_URL": "Credential logo URL", ++ "Credential_issuer": "Credential issuer", ++ "Authorization_server": "Authorization server", ++ "Issuance_flows": "Issuance flows", ++ "active_flow": "active flow", ++ "active_flows": "active flows", ++ "New_issuance_flow": "New issuance flow", ++ "Back_to_issuance_flows": "Back to issuance flows", ++ "Endpoint": "Endpoint", ++ "new_issuance_flow_description": "Create seamless and secure credential issuance experiences for your users.", ++ "Close_and_discard": "Close and discard", ++ "issuance_flow_description": "Issuance flows facilitates the creation and issuance of digital credentials to individuals or entities.", ++ "Credential_details": "Credential details", ++ "Make_changes": "Edit", ++ "Edit_issuance_flow": "Edit issuance flow", ++ "Property_ID": "Property ID", ++ "Display_name": "Display name", ++ "Basic_info": "Basic info", ++ "template_form_description_placeholder": "Template form description placeholder", ++ "Form_structure": "Form structure", ++ "Custom_code": "Custom code", ++ "Create_template": "Create template", ++ "Update_template": "Update template", ++ "Credential_template": "Credential template", ++ "New_authorization_template": "New authorization template", ++ "Authorization_template": "Authorization template", ++ "Age_verification": "Age verification", ++ "issuance_flow_form_description_placeholder": "Write here a description of the content of the credential and what the user needs to receive it. It is readable by users and microservices.", ++ "Credential_info": "Credential info", ++ "New_credential_issuer": "New credential issuer", ++ "New_authorization_server": "New authorization server", ++ "Cryptography": "Cryptography", ++ "Advanced_settings": "Advanced settings", ++ "Can_be_requested_via_API": "Can be requested via API", ++ "Is_public": "Is public", ++ "is_public_description": "this credential can be requested by anybody, also outside this organization", ++ "Type_name": "Type name", ++ "Verification_flows": "Verification flows", ++ "New_verification_flow": "New verification flow", ++ "Verification_templates": "Verification templates", ++ "Verification_info": "Verification info", ++ "Verification_template": "Verification template", ++ "New_verification_template": "New verification template", ++ "Relying_party": "Relying Party", ++ "New_relying_party": "New relying party", ++ "Create_verification_flow": "Create verification flow", ++ "Update_verification_flow": "Update verification flow", ++ "Edit_verification_flow": "Edit verification flow", ++ "Back_to_verification_flows": "Back to verification flows", ++ "Authorization_templates": "Authorization templates", ++ "New_template": "New template", ++ "templates_description_credential": "templates_description_credential", ++ "templates_description_authorization": "templates_description_authorization", ++ "template_is_public_description": "This template can be used also by other organizations", ++ "See_all": "See all", ++ "one_active_flow": "1 active flow", ++ "num_active_flows": "{number} active flows", ++ "no_active_flows": "No active flows", ++ "one_template": "1 template", ++ "num_templates": "{number} templates", ++ "no_templates": "No templates", ++ "one_microservice": "1 microservice", ++ "num_microservices": "{number} microservices", ++ "no_microservices": "No microservices", ++ "one_membership_request": "1 membership request", ++ "num_membership_requests": "{number} membership requests", ++ "no_membership_requests": "No membership requests", ++ "Verification_flow_details": "Verification flow details", ++ "microservice_name_description": "This is the name of the microservices, which will be visible to end-users", ++ "microservice_endpoint_description": "Endpoint of the microservices, used by communication protocols and visible by end-users and other microservices", ++ "verification_flow_qr_code_title": "Generate verification QR code(s) using Verifier app", ++ "verification_flow_qr_code_description": "The QR code for the verification is generated by the DIDroom Verifier app. Install the verifier app, login with an account connected with this organization and start the verification flow from there.", ++ "issuance_flow_qr_code_title": "Allow users to scan QR with Wallet App for Credential Retrieval", ++ "issuance_flow_qr_code_description": "Easily retrieve this credential by scanning this QR code using the Wallet app.", ++ "Open_qr_code_in_new_page": "Open qr code in new page", ++ "Download_microservices": "Download microservices", ++ "You_can_now_close_this_page": "You can now close this page.", ++ "Go_to_login": "Go to login", ++ "Passwords_do_not_match": "Passwords do not match", ++ "View_seals": "View Multisignature Seals", ++ "Create_a_new_multisignature": "Create a new multisignature", ++ "create_a_new_multisignature_description": "The Reflow multisignature employs homomorphic cryptography, allowing invited participants to cryptographically sign a data object. Our cryptographic flow prioritizes privacy-by-design and GDPR compliance.", ++ "Requirements_for_multisignature_creation": "Requirements for multisignature creation", ++ "Before_proceeding_ensure_you_have_the_following_": "Before proceeding, ensure you have the following:", ++ "Coconut_issuer": "Coconut issuer", ++ "coconut_issuer_description": "An entity responsible for issuing Coconut credentials is required for multi-signature.", ++ "Participant_account_and_did": "Participant's account and DID", ++ "participant_account_and_did_description": "Users must have already an account and DID on the platform to be invited to sign.", ++ "Multisignature_setup": "Multisignature setup", ++ "multisignature_setup_description": "Successful completion of the multisignature process requires signatures from all participants", ++ "Certificates": "Certificates", ++ "Downloading_microservices": "Downloading microservices", ++ "download_microservices_description": "After you have setup your issuance and verification flows, download the microservices and deploy them, see the manual for more information.", ++ "credential_type_help_text": "Support for BBS, W3C-VC and Coconut is coming soon!", ++ "Your_did": "Your DID", ++ "View_did": "View DID", ++ "zencode_script": "Zencode script", ++ "zencode_data": "Zencode data (JSON)", ++ "Certificate": "Certificate", ++ "Update_signature": "Update signature", ++ "Sign_file": "Sign file", ++ "Start_by_signing_a_file": "Start by signing a file", ++ "Add_folder": "Add folder", ++ "validate_signature_description": "Here you can validate signatures produced by this applications or by others.", ++ "Please_see_the_report_below": "Please see the report below", ++ "There_are_issues_in_the_submitted_file": "🚩 There are issues in the submitted file", ++ "Your_signature_file_is_valid": "Your signature file is valid ✅", ++ "Validation_result": "Validation result", ++ "Checking_file": "Checking file", ++ "Click_to_upload_or_drag_and_drop": "Click to upload or drag and drop", ++ "signatures_description": "Find here a collection of the files you have signed in this application.", ++ "View_shared_signatures": "View shared signatures", ++ "Back_to_signatures": "Back to signatures", ++ "Generate_an_autosigned_certificate": "Generate an autosigned certificate", ++ "Load_certificate": "Load certificate", ++ "Add_a_Key_Certificate_Pair": "Add secret key + certificate ", ++ "Save_certificate_and_key": "Save certificate and key", ++ "Certificate_name": "Certificate name", ++ "Select_your_key": "Select your key", ++ "Select_your_certificate": "Select your certificate", ++ "ECDSA_and_EdDSA_certificates_are_currently_not_supported_with_JADES_algorithm": "ECDSA and EdDSA certificates are currently not supported with JADES algorithms.", ++ "These_certificates_cannot_be_used": "These certificates cannot be used:", ++ "No_properties_found": "No properties found", ++ "Properties": "Properties", ++ "microservice_port_description": "This microservice will run at the port you set here, see the manual for more info.", ++ "microservice_edit_warning": "⚠️ Important: ⚠️ The name, the enpoint and the port, define the identity of the microservice and have effects on the the provisioning and the update. Once a microservice is deployed and initialized, we recommend not change name, endpoint or port.", ++ "Years": "Years", ++ "Months": "Months", ++ "Days": "Days", ++ "Year": "Year", ++ "Month": "Month", ++ "Day": "Day", ++ "Please_add_at_least_one_day": "Please add at least one day", ++ "Date_must_be_after_today": "Date must be after today", ++ "load_preset_description": "load_preset_description", ++ "Select_option": "Select option", ++ "Edit_template": "Edit template", ++ "my_certificates_description": "my_certificates_description", ++ "error_loading_presets": "error_loading_presets", ++ "service_type_name_placeholder": "age_verification", ++ "Type_name_is_already_in_use": "Type name is already in use", ++ "Next": "Next", ++ "Generate_keyring": "Generate keyring", ++ "You_have_no_keys_yet": "You have no keys yet", ++ "Edit_role": "Edit role", ++ "Copied": "Copied", ++ "Discard": "Discard", ++ "Clear": "Clear", ++ "Rejected_files": "Rejected files", ++ "New": "New", ++ "Files": "Files", ++ "Submit": "Submit", ++ "Select_a_value": "Select a value", ++ "Search": "Search", ++ "No_results_found": "No results found", ++ "No_items_selected": "No items selected", ++ "No_options_available": "No options available", ++ "Edit_record": "Edit record", ++ "Create_record": "Create record", ++ "URL_is_in_forbidden_domains_list": "URL is in forbidden domains list", ++ "URL_is_not_in_allowed_domains_list": "URL is not in allowed domains list", ++ "Some_error_occurred_while_loading_records_": "Some error occurred while loading records.", ++ "No_items_here": "No items here!", ++ "Start_by_adding_a_record_to_this_collection_": "Start by adding a record to this collection.", ++ "Record_created_successfully": "Record created successfully!", ++ "Update_record": "Update record", ++ "Record_updated_successfully": "Record updated successfully!", ++ "Delete_record": "Delete record", ++ "Are_you_sure_you_want_to_delete_this_record": "Are you sure you want to delete this record?", ++ "Record_deleted_successfully": "Record deleted successfully", ++ "Share_record": "Share record", ++ "Share": "Share", ++ "Record_shared_successfully": "Record shared successfully", ++ "Remove_access": "Remove access", ++ "Are_you_sure_you_want_to_remove_access_to_the_record": "Are you sure you want to remove all access to the record?", ++ "Record_authorization_removed_successfully": "Record authorization removed successfully", ++ "Update_authorizations": "Update authorizations", ++ "Select_all_records": "Select all records", ++ "Deselect_all_records": "Deselect all records", ++ "Request_accepted_sucessfully": "Request accepted sucessfully", ++ "An_error_occurred_while_handling_membership_request": "An error occurred while handling membership request", ++ "Not_Found": "Not Found", ++ "Internal_Error": "Internal Error", ++ "Come_back_home": "Come back home!", ++ "Membership_request_declined_successfully": "Membership request declined successfully", ++ "Invite_accepted_succesfully": "Invite accepted succesfully!", ++ "Invitation_declined": "Invitation declined", ++ "An_error_occurred_while_processing_your_request": "An error occurred while processing your request", ++ "Value_does_not_match_regex_pattern": "Value does not match regex pattern {pattern}", ++ "No_records_found": "No records found", ++ "Actions": "Actions" ++} diff --git a/webapp/messages/fr.json.rej b/webapp/messages/fr.json.rej new file mode 100644 index 00000000..ffec17d9 --- /dev/null +++ b/webapp/messages/fr.json.rej @@ -0,0 +1,232 @@ +diff a/webapp/messages/fr.json b/webapp/messages/fr.json (rejected hunks) +@@ -1,128 +1,128 @@ + { + "$schema": "https://inlang.com/schema/inlang-message-format", +- "my_signatures": "Signatures", +- "validate_signatures": "Valider les signatures", +- "multisignatures": "Multisignatures", +- "notifications": "Notifications", +- "identity": "Identité", +- "my_DID": "Mon DID", +- "my_verifiable_credentials": "Mes Verifiable Credentials", +- "organizations": "Organisations", +- "signatures": "Signatures", +- "hello": "Bonjour", +- "Forgot_password": "Mot de passe oublié?", +- "Please_enter_here_your_email_to_recover_your_password_": "Veuillez entrer ici votre email pour réinitialiser votre mot de passe.", +- "Your_email": "Votre email", +- "Recover_password": "Réinitialiser le mot de passe", +- "Reset_email_sent_successfully": "E-mail de réinitialisation du mot de passe envoyé avec succès !", +- "Please_click_the_link_in_the_email_to_reset_your_password_": "Veuillez cliquer sur le lien dans l'e-mail pour réinitialiser votre mot de passe.", +- "Log_in_with_webauthn": "Connectez-vous avec Webauthn", ++ "Already_have_an_account": "Vous avez déjà un compte?", ++ "Before_using_the_app_again_you_need_to_restore_them_": "Avant d'utiliser à nouveau l'application, vous devez restaurer vos clés privées.", ++ "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "En répondant à ces questions, l'application générera vos clés privées qui serviront à l'authentification, aux signatures et au cryptage", + "Choose_your_authentication_method": "Choisissez votre méthode d'authentification", +- "Email_and_password": "E-mail et mot de passe", ++ "Confirm_password": "Confirmez le mot de passe", ++ "Contact": "Contact", ++ "Copy_seed": "Copier la phrase secrète du \"seed\"", ++ "Create_an_account": "Créer un compte", + "Dont_have_an_account": "Vous n'avez pas de compte ?", +- "Register_here": "Inscrivez-vous ici", +- "Log_in": "Se connecter", +- "Your_password": "Votre mot de passe", ++ "Email_and_password": "E-mail et mot de passe", ++ "Forgot_the_seed_Regenerate_it": "Vous avez oublié le \"seed\" ? Régénérez-le", + "Full_name": "Votre nom", +- "Organizations_and_other_users_will_identify_you_by_your_name_": "Les organisations et autres utilisateurs vous identifieront par votre nom.", +- "Confirm_password": "Confirmez le mot de passe", ++ "Generate_keys": "Générer des clés privées", ++ "Generate_your_keys": "Générez vos clés privées", ++ "Go_Pro": "Upgrade", ++ "Go_to_Dashboard": "Aller au tableau de bord", ++ "Hello": "Bonjour,", ++ "hello": "Bonjour", + "I_accept_the": "J'accepte le", +- "Terms_and_Conditions": "Termes et conditions", +- "Create_an_account": "Créer un compte", +- "Already_have_an_account": "Vous avez déjà un compte?", +- "Login_here": "Connectez-vous ici", +- "Reset_password": "Réinitialiser le mot de passe", +- "Please_enter_here_a_new_password_": "Veuillez saisir ici un nouveau mot de passe.", +- "New_password": "Nouveau mot de passe", +- "Password_reset_successfully": "Réinitialisation du mot de passe réussie !", +- "Join_multiple_trusted": "Rejoignez plusieurs ", +- "_with_one_account_": ", avec un seul compte.", ++ "I_have_the_seed_passphrase": "J'ai la phrase secrète du \"seed\"", ++ "Important_information": "Une information important", + "Join": "Rejoindre", +- "Log_In": "Se connecter", +- "Register": "Registre", +- "Signatures": "Signatures", +- "Contact": "Contact", +- "Regenerate_keys": "Régénérer les clés privées", +- "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Vous avez été redirigé ici car vos clés privées sont manquantes.", +- "Before_using_the_app_again_you_need_to_restore_them_": "Avant d'utiliser à nouveau l'application, vous devez restaurer vos clés privées.", +- "Please_type_here_your_seed_to_restore_your_keyring_": "Veuillez saisir ici votre \"seed\" pour restaurer vos clés privées.", +- "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Merci de saisir ici votre email et votre \"seed\" pour restaurer vos clés privées.", +- "Forgot_the_seed_Regenerate_it": "Vous avez oublié le \"seed\" ? Régénérez-le", ++ "Keypair_creation_successful": "Création de clés privées réussie !", + "Keys_regenerated": "Clés privées régénérées avec succès !", +- "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Vos clés ont été régénérées. Vous pouvez maintenant revenir à ", +- "your_profile": "votre profil", +- "Hello": "Bonjour,", +- "Welcome_to": "Bienvenue à", ++ "Login_here": "Connectez-vous ici", ++ "members_description": "Liste des membres existants de l'organisation : les membres peuvent avoir différents rôles leur permettant différents privilèges ", ++ "my_DID": "Mon DID", ++ "My_profile": "Mon profil", ++ "My": "Mon", ++ "notifications": "Notifications", + "One_last_thing_before_to_using_the_app": "Une dernière chose avant de pouvoir commencer à utiliser l'application :", +- "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "nous avons besoin que vous répondiez à quelques questions, qui seront utilisées pour générer vos clés privées. Les réponses à ces questions ne nous sont JAMAIS communiquées !", +- "Generate_your_keys": "Générez vos clés privées", +- "Important_information": "Une information important", +- "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "En répondant à ces questions, l'application générera vos clés privées qui serviront à l'authentification, aux signatures et au cryptage", +- "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Assurez-vous de pouvoir mémoriser vos réponses ultérieurement, car elles constitueront le seul moyen de restaurer vos clés privées.", ++ "Organizations_and_other_users_will_identify_you_by_your_name_": "Les organisations et autres utilisateurs vous identifieront par votre nom.", ++ "organizations": "Organisations", ++ "ORGANIZATIONS": "ORGANISATIONS", ++ "pending_membership_requests_description": "Ici vous pouvez voir la liste des utilisateurs qui ont demandé à être membres de cette organisation", + "Please_answer_at_least_3_of_the_following_questions": "Veuillez répondre à au moins 3 des questions suivantes : ", +- "User_email": "Votre email", +- "Generate_keys": "Générer des clés privées", +- "I_have_the_seed_passphrase": "J'ai la phrase secrète du \"seed\"", +- "Keypair_creation_successful": "Création de clés privées réussie !", ++ "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Assurez-vous de pouvoir mémoriser vos réponses ultérieurement, car elles constitueront le seul moyen de restaurer vos clés privées.", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Veuillez conserver la la phrase secrète du \"seed\" dans un endroit sûr pour récupérer facilement votre compte à l'avenir : elle ne sera affichée qu'une seule fois ! Nous ne conservons pas de sauvegarde pour des raisons de confidentialité et de sécurité.", +- "Copy_seed": "Copier la phrase secrète du \"seed\"", +- "Go_to_Dashboard": "Aller au tableau de bord", +- "Your_DID": "Votre DID", +- "signature": "signature", +- "My_folders": "Mes dossiers", +- "My_profile": "Mon profil", +- "Go_Pro": "Upgrade", ++ "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Merci de saisir ici votre email et votre \"seed\" pour restaurer vos clés privées.", ++ "Please_type_here_your_seed_to_restore_your_keyring_": "Veuillez saisir ici votre \"seed\" pour restaurer vos clés privées.", ++ "Regenerate_keys": "Régénérer les clés privées", ++ "Register_here": "Inscrivez-vous ici", ++ "Register": "Registre", + "Sign_out": "Se déconnecter", +- "ORGANIZATIONS": "ORGANISATIONS", +- "Read_more": "En savoir plus", +- "Here_are_some_Helpful_link": "Voici quelques liens utiles :", +- "My": "Mon", +- "Click_to_upload": "Cliquez pour télécharger", +- "or_drag_and_drop": "ou glisser-déposer", ++ "signature": "signature", ++ "start": "Commencer", ++ "Terms_and_Conditions": "Termes et conditions", ++ "User_email": "Votre email", + "Validate": "Valider", +- "Upload_a_signature_file_and_verify_autenticity": "Téléchargez un fichier de signature et vérifiez l'authenticité", ++ "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "nous avons besoin que vous répondiez à quelques questions, qui seront utilisées pour générer vos clés privées. Les réponses à ces questions ne nous sont JAMAIS communiquées !", ++ "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Vous avez été redirigé ici car vos clés privées sont manquantes.", ++ "Your_email": "Votre email", ++ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Vos clés ont été régénérées. Vous pouvez maintenant revenir à ", ++ "Your_password": "Votre mot de passe", ++ "your_profile": "votre profil", ++ "_Document_signed_successfully": "✅ Document signé avec succès", + "_Signature_shared_successfully": "✅ Signature partagée avec succès", + "_Signature_unshared_successfully": "✅ Signature non partagée avec succès", +- "_Document_signed_successfully": "✅ Document signé avec succès", +- "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Êtes-vous sûr de vouloir supprimer tout accès à la signature ?", +- "Yes_remove_access": "Oui, supprimer l'accès", +- "Select_one_or_more_templates_for_this_service": "Sélectionnez un ou plusieurs modèles pour ce service", +- "Create_new_Template": "Créer un nouveau modèle", +- "Services_templates": "Modèles de credential", +- "Templates": "Modèles", +- "Credential_templates": "Modèles de credential", +- "credential_issuer_description": "Le credential issuer est un microservice qui produit des credentials vérifiables. La structure des credentials est basée sur les revendications définies dans le modèle de credential, et le contenu est typiquement (mais pas nécessairement) lu à partir de sources externes. ", ++ "_with_one_account_": ", avec un seul compte.", ++ "advanced_settings_description": "Cette section est dédiée à d'autres paramètres qui ne pouvaient pas correspondre aux sections précédentes.", + "authorization_server_description": "Le serveur d'autorisation est un microservice dont le comportement est défini dans les spécifications Opein4VC et Oauth 2.0, chargé de gérer le contrôle d'accès et les décisions d'autorisation.", +- "relying_party_description": "Le relying party vérifie l'authenticité et la validité d'une credential au cours du flux de vérification.", +- "Template_parsing_error": "Erreur d'analyse du modèle", +- "New_credential_template": "Nouveau modèle de credential", +- "Template": "Modèle", +- "template_form_basic_info_description": "Créez des modèles pour définir les flux d'émission et de vérification : les modèles contiennent les paramètres et la logique des flux. Les modèles sont sélectionnés dans les éditeurs de flux. ", +- "template_form_name_placeholder": "Nom du modèle", +- "form_structure_description": "Définissez ici les attributs que l'utilisateur doit saisir manuellement, dans le formulaire fourni par le serveur d'autorisation.", ++ "Click_to_upload": "Cliquez pour télécharger", ++ "credential_issuer_description": "Le credential issuer est un microservice qui produit des credentials vérifiables. La structure des credentials est basée sur les revendications définies dans le modèle de credential, et le contenu est typiquement (mais pas nécessairement) lu à partir de sources externes. ", ++ "Credential_templates": "Modèles de credential", + "custom_code_description": "Ce code contient la logique métier du flux que nous définissons maintenant : le code est écrit en Zencode, partez des exemples et suivez la documentation pour en savoir plus", +- "select_code_sample": "Sélectionnez Zencode parmi les exemples", +- "issuance_flow_form_main_info_description": "Le flux de délivrance définit quand et comment une credential sera délivré, ainsi que ce qu'il contiendra. afin de configurer un flux d'émission, vous devez sélectionner la cryptographie et le format utilisé, sélectionner les microservices qui délivreront le credential et un modèle pour définir les revendications, les paramètres et la logique de l'émission.", ++ "Forgot_password": "Mot de passe oublié?", ++ "form_structure_description": "Définissez ici les attributs que l'utilisateur doit saisir manuellement, dans le formulaire fourni par le serveur d'autorisation.", ++ "Here_are_some_Helpful_link": "Voici quelques liens utiles :", ++ "identity": "Identité", + "issuance_flow_form_credential_info_description": "Dans cette section, vous pouvez sélectionner les formats de cryptographie et des credentials, ainsi que les modèles pour les credentials et le flux d'autorisation. Les modèles définissent les paramètres, le contenu des flux d'émission. Vous pouvez créer et modifier des modèles et les réutiliser dans plusieurs flux.", ++ "issuance_flow_form_main_info_description": "Le flux de délivrance définit quand et comment une credential sera délivré, ainsi que ce qu'il contiendra. afin de configurer un flux d'émission, vous devez sélectionner la cryptographie et le format utilisé, sélectionner les microservices qui délivreront le credential et un modèle pour définir les revendications, les paramètres et la logique de l'émission.", + "issuance_flow_form_microservices_description": "Sélectionnez l'émetteur de credential qui produira la credential et le serveur d'autorisation qui authentifiera l'utilisateur demandant les credential. ", +- "advanced_settings_description": "Cette section est dédiée à d'autres paramètres qui ne pouvaient pas correspondre aux sections précédentes.", +- "Use_only_lowercase_and_uppercase_letters_no_spaces": "Utilisez uniquement des chiffres, des caractères minuscules ou majuscules, mais pas d'espaces.", ++ "issuance_flows_description": "Retrouvez ici vos flux de délivrance : les flux décrivent comment et quand une credential sera délivré et ce qu'il contiendra.", ++ "Join_multiple_trusted": "Rejoignez plusieurs ", ++ "Log_in_with_webauthn": "Connectez-vous avec Webauthn", ++ "Log_in": "Se connecter", ++ "Log_In": "Se connecter", ++ "multisignatures": "Multisignatures", ++ "My_folders": "Mes dossiers", ++ "my_signatures": "Signatures", ++ "New_credential_template": "Nouveau modèle de credential", ++ "New_password": "Nouveau mot de passe", + "new_verification_flow_description": "Configurez un flux de vérification ici : configurez le modèle, la partie de confiance et la manière dont le flux apparaîtra dans l'application Verifier.", ++ "or_drag_and_drop": "ou glisser-déposer", ++ "Password_reset_successfully": "Réinitialisation du mot de passe réussie !", ++ "Please_click_the_link_in_the_email_to_reset_your_password_": "Veuillez cliquer sur le lien dans l'e-mail pour réinitialiser votre mot de passe.", ++ "Please_enter_here_a_new_password_": "Veuillez saisir ici un nouveau mot de passe.", ++ "Please_enter_here_your_email_to_recover_your_password_": "Veuillez entrer ici votre email pour réinitialiser votre mot de passe.", ++ "Read_more": "En savoir plus", ++ "relying_party_description": "Le relying party vérifie l'authenticité et la validité d'une credential au cours du flux de vérification.", ++ "Reset_email_sent_successfully": "E-mail de réinitialisation du mot de passe envoyé avec succès !", ++ "Reset_password": "Réinitialiser le mot de passe", ++ "signatures": "Signatures", ++ "Signatures": "Signatures", ++ "template_form_basic_info_description": "Créez des modèles pour définir les flux d'émission et de vérification : les modèles contiennent les paramètres et la logique des flux. Les modèles sont sélectionnés dans les éditeurs de flux. ", ++ "template_form_name_placeholder": "Nom du modèle", ++ "Template_parsing_error": "Erreur d'analyse du modèle", ++ "Template": "Modèle", ++ "templates_description_verification": "Voici vos modèles de vérification : ils contiennent les paramètres et la logique du processus de vérification de credential. ", ++ "templates_description": "Retrouvez ici tous les modèles pour les flux d'émission de credentials et de vérification. Les modèles peuvent être de trois types : autorisation, issuance ou vérification. Les modèles jouent un rôle central dans le fonctionnement des flux de issuance et de vérification des credentials et donc dans le comportement de leurs microservices respectifs (Authorization Server, Credential Issuer and Relying Party). ", ++ "Templates": "Modèles", ++ "Use_only_lowercase_and_uppercase_letters_no_spaces": "Utilisez uniquement des chiffres, des caractères minuscules ou majuscules, mais pas d'espaces.", ++ "validate_signatures": "Valider les signatures", ++ "verification_flow_description": "La vérification est gérée principalement par l'application DIDroom Verifier. Installez l'application de vérification, connectez-vous avec un compte connecté à cette organisation et démarrez le flux de vérification à partir de là.", + "verification_flow_form_basic_info_description": "Vous pouvez configurer un flux de vérification ici en sélectionnant un modèle de vérification et en sélectionnant une partie de confiance.", +- "verification_flow_form_name_placeholder": "Ce nom apparaîtra dans l'application Verifier", + "verification_flow_form_description_placeholder": "Décrire le flux de vérification : cette description apparaîtra dans l'application Verifier", +- "verification_info_description": "Sélectionnez un modèle de vérification pour le flux. Le modèle contient les paramètres et la logique de la vérification.", + "verification_flow_form_microservices_description": "La partie utilisatrice est un microservice qui reçoit une verifiable presentation (ou un credential ou une zero knowledge proof), la vérifie et renvoie le résultat au vérificateur. Sélectionnez la partie de confiance qui effectuera la vérification.", ++ "verification_flow_form_name_placeholder": "Ce nom apparaîtra dans l'application Verifier", ++ "verification_flows_description": "Les flux de vérification définissent la logique de la vérification, le microservice (partie de confiance) qui effectuera la vérification ainsi que la manière dont le flux de vérification sera présenté dans l'application Verifier. ", ++ "verification_info_description": "Sélectionnez un modèle de vérification pour le flux. Le modèle contient les paramètres et la logique de la vérification.", ++ "Your_DID": "Votre DID", ++ "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Êtes-vous sûr de vouloir supprimer tout accès à la signature ?", ++ "attributes_needed_description_authorization": "Définissez ici les attributs que le wallet enverra automatiquement au serveur d'autorisation", + "attributes_needed_description_credential": "Définissez ici les revendications que le credential issuer écrira dans la credential. ", + "attributes_needed_description_verification": "Définissez ici les paramètres que le relying party utilisera pour vérifier la credential.", +- "attributes_needed_description_authorization": "Définissez ici les attributs que le wallet enverra automatiquement au serveur d'autorisation", +- "templates_description_verification": "Voici vos modèles de vérification : ils contiennent les paramètres et la logique du processus de vérification de credential. ", +- "verification_flows_description": "Les flux de vérification définissent la logique de la vérification, le microservice (partie de confiance) qui effectuera la vérification ainsi que la manière dont le flux de vérification sera présenté dans l'application Verifier. ", +- "issuance_flows_description": "Retrouvez ici vos flux de délivrance : les flux décrivent comment et quand une credential sera délivré et ce qu'il contiendra.", +- "templates_description": "Retrouvez ici tous les modèles pour les flux d'émission de credentials et de vérification. Les modèles peuvent être de trois types : autorisation, issuance ou vérification. Les modèles jouent un rôle central dans le fonctionnement des flux de issuance et de vérification des credentials et donc dans le comportement de leurs microservices respectifs (Authorization Server, Credential Issuer and Relying Party). ", +- "pending_membership_requests_description": "Ici vous pouvez voir la liste des utilisateurs qui ont demandé à être membres de cette organisation", +- "members_description": "Liste des membres existants de l'organisation : les membres peuvent avoir différents rôles leur permettant différents privilèges ", +- "verification_flow_description": "La vérification est gérée principalement par l'application DIDroom Verifier. Installez l'application de vérification, connectez-vous avec un compte connecté à cette organisation et démarrez le flux de vérification à partir de là.", +- "start": "Commencer", ++ "Create_new_Template": "Créer un nouveau modèle", ++ "my_verifiable_credentials": "Mes Verifiable Credentials", ++ "Recover_password": "Réinitialiser le mot de passe", ++ "select_code_sample": "Sélectionnez Zencode parmi les exemples", ++ "Select_one_or_more_templates_for_this_service": "Sélectionnez un ou plusieurs modèles pour ce service", ++ "Services_templates": "Modèles de credential", ++ "Upload_a_signature_file_and_verify_autenticity": "Téléchargez un fichier de signature et vérifiez l'authenticité", ++ "Welcome_to": "Bienvenue à", ++ "Yes_remove_access": "Oui, supprimer l'accès", + "my_folders": "Dossiers" + } +\ No newline at end of file diff --git a/webapp/messages/it.json.rej b/webapp/messages/it.json.rej new file mode 100644 index 00000000..4b9c22d2 --- /dev/null +++ b/webapp/messages/it.json.rej @@ -0,0 +1,231 @@ +diff a/webapp/messages/it.json b/webapp/messages/it.json (rejected hunks) +@@ -1,128 +1,128 @@ + { + "$schema": "https://inlang.com/schema/inlang-message-format", +- "my_signatures": "Fime", +- "validate_signatures": "Valida firme", +- "multisignatures": "Multifirme", +- "notifications": "Notifiche", +- "identity": "Identità", +- "my_DID": "Il mio DID", +- "my_verifiable_credentials": "Le mie Verifiable Credentials", +- "organizations": "Organizzazioni", +- "signatures": "Firme", +- "hello": "Ciao", +- "Forgot_password": "Hai dimenticato la password?", +- "Please_enter_here_your_email_to_recover_your_password_": "Inserisci qui la tua email per reimpostare la password.", +- "Your_email": "La tua email", +- "Recover_password": "Resetta la password", +- "Reset_email_sent_successfully": "E-mail di reimpostazione della password inviata con successo!", +- "Please_click_the_link_in_the_email_to_reset_your_password_": "Fare clic sul collegamento nell'e-mail per reimpostare la password.", +- "Log_in_with_webauthn": "Accedi con Webauthn", ++ "Already_have_an_account": "Hai già un account?", ++ "Before_using_the_app_again_you_need_to_restore_them_": "Prima di utilizzare nuovamente l'app, è necessario ripristinare le chiavi private.", ++ "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Rispondendo a queste domande, l'app genererà le tue chiavi private che verranno utilizzate per l'autenticazione, le firme e la crittografia", + "Choose_your_authentication_method": "Scegli il tuo metodo di autenticazione", +- "Email_and_password": "E-mail e password", ++ "Confirm_password": "Conferma password", ++ "Contact": "Contatto", ++ "Copy_seed": "Copia la seed passphrase", ++ "Create_an_account": "Creare un account", + "Dont_have_an_account": "Non hai un account?", +- "Register_here": "Registrati qui", +- "Log_in": "Login", +- "Your_password": "La tua password", ++ "Email_and_password": "E-mail e password", ++ "Forgot_the_seed_Regenerate_it": "Hai dimenticato il \"seed\"? Rigeneralo", + "Full_name": "Il tuo nome", +- "Organizations_and_other_users_will_identify_you_by_your_name_": "Organizzazioni e altri utenti ti identificheranno con il tuo nome.", +- "Confirm_password": "Conferma password", ++ "Generate_keys": "Genera chiavi private", ++ "Generate_your_keys": "Genera le tue chiavi private", ++ "Go_Pro": "Upgrade", ++ "Go_to_Dashboard": "Vai alla dashboard", ++ "Hello": "Ciao,", ++ "hello": "Ciao", + "I_accept_the": "accetto il", +- "Terms_and_Conditions": "Termini e Condizioni", +- "Create_an_account": "Creare un account", +- "Already_have_an_account": "Hai già un account?", +- "Login_here": "Accedi qui", +- "Reset_password": "Resetta la password", +- "Please_enter_here_a_new_password_": "Inserisci qui una nuova password.", +- "New_password": "Nuova password", +- "Password_reset_successfully": "Reimpostazione della password riuscita!", +- "Join_multiple_trusted": "Partecipa a più ", +- "_with_one_account_": ", con un account.", ++ "I_have_the_seed_passphrase": "Ho la \"seed passphrase\" ", ++ "Important_information": "Informazioni importanti", + "Join": "Partecipa ", +- "Log_In": "Login", +- "Register": "Registrati", +- "Signatures": "Firme", +- "Contact": "Contatto", +- "Regenerate_keys": "Rigenerare le chiavi private", +- "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Sei stato reindirizzato qui perché mancano le tue chiavi private.", +- "Before_using_the_app_again_you_need_to_restore_them_": "Prima di utilizzare nuovamente l'app, è necessario ripristinare le chiavi private.", +- "Please_type_here_your_seed_to_restore_your_keyring_": "Per favore digita qui il tuo \"seed\" per ripristinare le tue chiavi private.", +- "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Per favore digita qui la tua email e il tuo \"seed\" per ripristinare le tue chiavi private.", +- "Forgot_the_seed_Regenerate_it": "Hai dimenticato il \"seed\"? Rigeneralo", ++ "Keypair_creation_successful": "Creazione delle chiavi private riuscita!", + "Keys_regenerated": "Chiavi private rigenerate con successo!", +- "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Le tue chiavi sono state rigenerate. Ora puoi tornare a ", +- "your_profile": "Il tuo profilo", +- "Hello": "Ciao,", +- "Welcome_to": "Benvenuto a", ++ "Login_here": "Accedi qui", ++ "members_description": "Elenco dei membri esistenti dell'organizzazione: i membri possono avere ruoli diversi consentendo loro privilegi diversi ", ++ "my_DID": "Il mio DID", ++ "My_profile": "Il mio profilo", ++ "My": "Mio", ++ "notifications": "Notifiche", + "One_last_thing_before_to_using_the_app": "Un'ultima cosa prima di iniziare a utilizzare l'app:", +- "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "abbiamo bisogno che tu risponda ad alcune domande, che verranno utilizzate per generare le tue chiavi private. Le risposte a queste domande non ci vengono MAI comunicate!", +- "Generate_your_keys": "Genera le tue chiavi private", +- "Important_information": "Informazioni importanti", +- "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Rispondendo a queste domande, l'app genererà le tue chiavi private che verranno utilizzate per l'autenticazione, le firme e la crittografia", +- "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Assicurati di poter ricordare le tue risposte in seguito, poiché saranno l'unico modo per ripristinare le tue chiavi private", ++ "Organizations_and_other_users_will_identify_you_by_your_name_": "Organizzazioni e altri utenti ti identificheranno con il tuo nome.", ++ "organizations": "Organizzazioni", ++ "ORGANIZATIONS": "ORGANIZZAZIONI", ++ "pending_membership_requests_description": "Qui puoi vedere l'elenco degli utenti che hanno richiesto di essere membri di questa organizzazione", + "Please_answer_at_least_3_of_the_following_questions": "Si prega di rispondere ad almeno 3 delle seguenti domande: ", +- "User_email": "La tua email", +- "Generate_keys": "Genera chiavi private", +- "I_have_the_seed_passphrase": "Ho la \"seed passphrase\" ", +- "Keypair_creation_successful": "Creazione delle chiavi private riuscita!", ++ "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Assicurati di poter ricordare le tue risposte in seguito, poiché saranno l'unico modo per ripristinare le tue chiavi private", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Conserva la \"seed passphrase\" in un luogo sicuro per recuperare facilmente il tuo account in futuro: verrà mostrata una sola volta! Non conserviamo un backup per motivi di privacy e sicurezza.", +- "Copy_seed": "Copia la seed passphrase", +- "Go_to_Dashboard": "Vai alla dashboard", +- "Your_DID": "Il tuo DID", +- "signature": "firma", +- "My_folders": "Le mie cartelle", +- "My_profile": "Il mio profilo", +- "Go_Pro": "Upgrade", ++ "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Per favore digita qui la tua email e il tuo \"seed\" per ripristinare le tue chiavi private.", ++ "Please_type_here_your_seed_to_restore_your_keyring_": "Per favore digita qui il tuo \"seed\" per ripristinare le tue chiavi private.", ++ "Regenerate_keys": "Rigenerare le chiavi private", ++ "Register_here": "Registrati qui", ++ "Register": "Registrati", + "Sign_out": "Disconnettiti", +- "ORGANIZATIONS": "ORGANIZZAZIONI", +- "Read_more": "Per saperne di più", +- "Here_are_some_Helpful_link": "Ecco alcuni link utili:", +- "My": "Mio", +- "Click_to_upload": "Fare clic per caricare", +- "or_drag_and_drop": "oppure fai drag and drop", ++ "signature": "firma", ++ "start": "Inizio", ++ "Terms_and_Conditions": "Termini e Condizioni", ++ "User_email": "La tua email", + "Validate": "Controlla", +- "Upload_a_signature_file_and_verify_autenticity": "Carica un file di firma e verifica l'autenticità", ++ "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "abbiamo bisogno che tu risponda ad alcune domande, che verranno utilizzate per generare le tue chiavi private. Le risposte a queste domande non ci vengono MAI comunicate!", ++ "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Sei stato reindirizzato qui perché mancano le tue chiavi private.", ++ "Your_email": "La tua email", ++ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Le tue chiavi sono state rigenerate. Ora puoi tornare a ", ++ "Your_password": "La tua password", ++ "your_profile": "Il tuo profilo", ++ "_Document_signed_successfully": "✅ Documento firmato con successo", + "_Signature_shared_successfully": "✅ Firma condivisa con successo", + "_Signature_unshared_successfully": "✅ Firma annullata con successo", +- "_Document_signed_successfully": "✅ Documento firmato con successo", +- "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Sei sicuro di voler rimuovere ogni accesso alla firma?", +- "Yes_remove_access": "Sì, rimuovi l'accesso", +- "Select_one_or_more_templates_for_this_service": "Seleziona uno o più modelli per questo servizio", +- "Create_new_Template": "Crea nuovo modello", +- "Services_templates": "Modelli di credenziale", +- "Templates": "Modelli", +- "Credential_templates": "Modelli di credenziali", +- "credential_issuer_description": "Il credential issuer è un microservizio che produce credenziali verificabili. La struttura della credenziale si basa sulle attestazioni definite nel modello della credenziale e il contenuto è tipico (ma non necessariamente) letto da fonti esterne. ", ++ "_with_one_account_": ", con un account.", ++ "advanced_settings_description": "Questa sezione è dedicata ad altre impostazioni che non potevano rientrare nelle sezioni precedenti.", + "authorization_server_description": "Il server di autorizzazione è un microservizio il cui comportamento è definito nelle specifiche Opein4VC e Oauth 2.0, responsabile della gestione del controllo degli accessi e delle decisioni di autorizzazione.", +- "relying_party_description": "Il relying party verifica l'autenticità e la validità di una credenziale durante il flusso di verifica.", +- "Template_parsing_error": "Errore di analisi del modello", +- "New_credential_template": "Nuovo modello di credenziale", +- "Template": "Modello", +- "template_form_basic_info_description": "Creare template per definire i flussi di emissione e verifica: i template contengono parametri e logica dei flussi. I modelli vengono selezionati all'interno degli editor di flusso. ", +- "template_form_name_placeholder": "Nome del modello", +- "form_structure_description": "Definire qui gli attributi che l'utente deve inserire manualmente, nel modulo fornito dal server di autorizzazione", ++ "Click_to_upload": "Fare clic per caricare", ++ "credential_issuer_description": "Il credential issuer è un microservizio che produce credenziali verificabili. La struttura della credenziale si basa sulle attestazioni definite nel modello della credenziale e il contenuto è tipico (ma non necessariamente) letto da fonti esterne. ", ++ "Credential_templates": "Modelli di credenziali", + "custom_code_description": "Questo codice contiene la logica di business del flusso che stiamo definendo adesso: il codice è scritto in Zencode, parti dagli esempi e segui la documentazione per saperne di più", +- "select_code_sample": "Seleziona Zencode dagli esempi", +- "issuance_flow_form_main_info_description": "Il flusso di emissione definisce quando e come verrà emessa una credenziale e cosa conterrà la credenziale. per impostare un flusso di emissione è necessario selezionare la crittografia e il formato utilizzato, selezionare selezionare i microservizi che emetteranno la credenziale e un template per definire le attestazioni, i parametri e la logica dell'emissione.", ++ "Forgot_password": "Hai dimenticato la password?", ++ "form_structure_description": "Definire qui gli attributi che l'utente deve inserire manualmente, nel modulo fornito dal server di autorizzazione", ++ "Here_are_some_Helpful_link": "Ecco alcuni link utili:", ++ "identity": "Identità", + "issuance_flow_form_credential_info_description": "In questa sezione è possibile selezionare la crittografia e i formati delle credenziali, insieme ai modelli per la credenziale e il flusso di autorizzazione. I modelli definiscono i parametri, il contenuto dei flussi di emissione. Puoi creare e modificare modelli e riutilizzarli in più flussi.", ++ "issuance_flow_form_main_info_description": "Il flusso di emissione definisce quando e come verrà emessa una credenziale e cosa conterrà la credenziale. per impostare un flusso di emissione è necessario selezionare la crittografia e il formato utilizzato, selezionare selezionare i microservizi che emetteranno la credenziale e un template per definire le attestazioni, i parametri e la logica dell'emissione.", + "issuance_flow_form_microservices_description": "Seleziona l'emittente delle credenziali che produrrà le credenziali e il server di autorizzazione che autenticherà l'utente che richiede le credenziali. ", +- "advanced_settings_description": "Questa sezione è dedicata ad altre impostazioni che non potevano rientrare nelle sezioni precedenti.", +- "Use_only_lowercase_and_uppercase_letters_no_spaces": "Utilizza solo numeri, caratteri minuscoli o maiuscoli, ma non spazi.", ++ "issuance_flows_description": "Trova qui i tuoi flussi di emissione: i flussi descrivono come e quando verrà emessa una credenziale e cosa conterrà.", ++ "Join_multiple_trusted": "Partecipa a più ", ++ "Log_in_with_webauthn": "Accedi con Webauthn", ++ "Log_in": "Login", ++ "Log_In": "Login", ++ "multisignatures": "Multifirme", ++ "My_folders": "Le mie cartelle", ++ "my_signatures": "Fime", ++ "New_credential_template": "Nuovo modello di credenziale", ++ "New_password": "Nuova password", + "new_verification_flow_description": "Imposta un flusso di verifica qui: imposta il modello, la deliverable party e il modo in cui apparirà il flusso nell'app Verifier.", ++ "or_drag_and_drop": "oppure fai drag and drop", ++ "Password_reset_successfully": "Reimpostazione della password riuscita!", ++ "Please_click_the_link_in_the_email_to_reset_your_password_": "Fare clic sul collegamento nell'e-mail per reimpostare la password.", ++ "Please_enter_here_a_new_password_": "Inserisci qui una nuova password.", ++ "Please_enter_here_your_email_to_recover_your_password_": "Inserisci qui la tua email per reimpostare la password.", ++ "Read_more": "Per saperne di più", ++ "relying_party_description": "Il relying party verifica l'autenticità e la validità di una credenziale durante il flusso di verifica.", ++ "Reset_email_sent_successfully": "E-mail di reimpostazione della password inviata con successo!", ++ "Reset_password": "Resetta la password", ++ "signatures": "Firme", ++ "Signatures": "Firme", ++ "template_form_basic_info_description": "Creare template per definire i flussi di emissione e verifica: i template contengono parametri e logica dei flussi. I modelli vengono selezionati all'interno degli editor di flusso. ", ++ "template_form_name_placeholder": "Nome del modello", ++ "Template_parsing_error": "Errore di analisi del modello", ++ "Template": "Modello", ++ "templates_description_verification": "Ecco i tuoi modelli di verifica: contengono i parametri e la logica del processo di verifica delle credenziali. ", ++ "templates_description": "Trovi qui tutti i modelli per i flussi di issuance e verifica. I modelli possono essere di tre tipi: Autorizzazione, Issuance o Verifica. I template svolgono un ruolo centrale nel funzionamento dei flussi di issuance e verifica delle credenziali e quindi nel comportamento dei rispettivi microservizi (Authorization Server, Credential Issuer and Relying Party). ", ++ "Templates": "Modelli", ++ "Use_only_lowercase_and_uppercase_letters_no_spaces": "Utilizza solo numeri, caratteri minuscoli o maiuscoli, ma non spazi.", ++ "validate_signatures": "Valida firme", ++ "verification_flow_description": "La verifica è gestita principalmente dall'app DIDroom Verifier. Installa l'app di verifica, accedi con un account collegato a questa organizzazione e avvia il flusso di verifica da lì.", + "verification_flow_form_basic_info_description": "Puoi impostare un flusso di verifica qui selezionando un modello di verifica e selezionando una parte facente affidamento.", +- "verification_flow_form_name_placeholder": "Questo nome verrà visualizzato nell'app Verifier", + "verification_flow_form_description_placeholder": "Descrivi il flusso di verifica: questa descrizione apparirà nell'app Verifier", +- "verification_info_description": "Seleziona un modello di verifica per il flusso. Il modello contiene i parametri e la logica per la verifica.", + "verification_flow_form_microservices_description": "La deliverable party è un microservizio che riceve una verifiable presentation (o credenziale o una zero knowledge proof), la verifica e restituisce il risultato al verifier. Seleziona la componente che eseguirà la verifica.", ++ "verification_flow_form_name_placeholder": "Questo nome verrà visualizzato nell'app Verifier", ++ "verification_flows_description": "I flussi di verifica definiscono la logica della verifica, il microservizio (relying party) che eseguirà la verifica e il modo in cui il flusso di verifica verrà presentato nell'app Verifier. ", ++ "verification_info_description": "Seleziona un modello di verifica per il flusso. Il modello contiene i parametri e la logica per la verifica.", ++ "Your_DID": "Il tuo DID", ++ "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Sei sicuro di voler rimuovere ogni accesso alla firma?", ++ "attributes_needed_description_authorization": "Definisci qui gli attributi che il wallet invierà automaticamente al server di autorizzazione", + "attributes_needed_description_credential": "Definire qui le attestazioni che il credential issuer scriverà nella credenziale ", + "attributes_needed_description_verification": "Definire qui i parametri che il relying party utilizzerà per verificare la credenziale", +- "attributes_needed_description_authorization": "Definisci qui gli attributi che il wallet invierà automaticamente al server di autorizzazione", +- "templates_description_verification": "Ecco i tuoi modelli di verifica: contengono i parametri e la logica del processo di verifica delle credenziali. ", +- "verification_flows_description": "I flussi di verifica definiscono la logica della verifica, il microservizio (relying party) che eseguirà la verifica e il modo in cui il flusso di verifica verrà presentato nell'app Verifier. ", +- "issuance_flows_description": "Trova qui i tuoi flussi di emissione: i flussi descrivono come e quando verrà emessa una credenziale e cosa conterrà.", +- "templates_description": "Trovi qui tutti i modelli per i flussi di issuance e verifica. I modelli possono essere di tre tipi: Autorizzazione, Issuance o Verifica. I template svolgono un ruolo centrale nel funzionamento dei flussi di issuance e verifica delle credenziali e quindi nel comportamento dei rispettivi microservizi (Authorization Server, Credential Issuer and Relying Party). ", +- "pending_membership_requests_description": "Qui puoi vedere l'elenco degli utenti che hanno richiesto di essere membri di questa organizzazione", +- "members_description": "Elenco dei membri esistenti dell'organizzazione: i membri possono avere ruoli diversi consentendo loro privilegi diversi ", +- "verification_flow_description": "La verifica è gestita principalmente dall'app DIDroom Verifier. Installa l'app di verifica, accedi con un account collegato a questa organizzazione e avvia il flusso di verifica da lì.", +- "start": "Inizio", ++ "Create_new_Template": "Crea nuovo modello", ++ "my_verifiable_credentials": "Le mie Verifiable Credentials", ++ "Recover_password": "Resetta la password", ++ "select_code_sample": "Seleziona Zencode dagli esempi", ++ "Select_one_or_more_templates_for_this_service": "Seleziona uno o più modelli per questo servizio", ++ "Services_templates": "Modelli di credenziale", ++ "Upload_a_signature_file_and_verify_autenticity": "Carica un file di firma e verifica l'autenticità", ++ "Welcome_to": "Benvenuto a", ++ "Yes_remove_access": "Sì, rimuovi l'accesso", + "my_folders": "Cartelle" + } diff --git a/webapp/messages/pt-BR.json.rej b/webapp/messages/pt-BR.json.rej new file mode 100644 index 00000000..afec42c7 --- /dev/null +++ b/webapp/messages/pt-BR.json.rej @@ -0,0 +1,232 @@ +diff a/webapp/messages/pt-BR.json b/webapp/messages/pt-BR.json (rejected hunks) +@@ -1,128 +1,128 @@ + { + "$schema": "https://inlang.com/schema/inlang-message-format", +- "my_signatures": "Assinaturas", +- "validate_signatures": "Validar assinaturas", +- "multisignatures": "Multiassinaturas", +- "notifications": "Notificações", +- "identity": "Identidade", +- "my_DID": "Meu DID", +- "my_verifiable_credentials": "Minhas Verifiable Credentials", +- "organizations": "Organizações", +- "signatures": "Assinaturas", +- "hello": "Olá", +- "Forgot_password": "Esqueceu sua senha?", +- "Please_enter_here_your_email_to_recover_your_password_": "Por favor insira aqui seu e-mail para redefinir sua senha.", +- "Your_email": "Seu email", +- "Recover_password": "Redefinir senha", +- "Reset_email_sent_successfully": "E-mail de redefinição de senha enviado com sucesso!", +- "Please_click_the_link_in_the_email_to_reset_your_password_": "Clique no link do e-mail para redefinir sua senha.", +- "Log_in_with_webauthn": "Faça login com Webauthn", ++ "Already_have_an_account": "Já tem uma conta?", ++ "Before_using_the_app_again_you_need_to_restore_them_": "Antes de usar o aplicativo novamente, você precisa restaurar suas chaves privadas.", ++ "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Ao responder essas perguntas, o app irá gerar suas chaves privadas que serão utilizadas para autenticação, assinaturas e criptografia", + "Choose_your_authentication_method": "Escolha seu método de autenticação", +- "Email_and_password": "E-mail e senha", ++ "Confirm_password": "Confirme sua senha", ++ "Contact": "Contato", ++ "Copy_seed": "Copiar seed passphrase ", ++ "Create_an_account": "Crie a sua conta aqui", + "Dont_have_an_account": "Não tem uma conta?", +- "Register_here": "Registre-se aqui", +- "Log_in": "Conecte-se", +- "Your_password": "Sua senha", ++ "Email_and_password": "E-mail e senha", ++ "Forgot_the_seed_Regenerate_it": "Esqueceu a \"seed\"? Regenere-o", + "Full_name": "Seu nome", +- "Organizations_and_other_users_will_identify_you_by_your_name_": "Organizações e outros usuários irão identificá-lo pelo seu nome.", +- "Confirm_password": "Confirme sua senha", ++ "Generate_keys": "Gerar chaves privadas", ++ "Generate_your_keys": "Gere suas chaves privadas", ++ "Go_Pro": "Upgrade", ++ "Go_to_Dashboard": "Ir para a dashboard", ++ "Hello": "Olá,", ++ "hello": "Olá", + "I_accept_the": "Eu aceito o", +- "Terms_and_Conditions": "Termos e Condições", +- "Create_an_account": "Crie a sua conta aqui", +- "Already_have_an_account": "Já tem uma conta?", +- "Login_here": "Entre aqui", +- "Reset_password": "Redefinir senha", +- "Please_enter_here_a_new_password_": "Por favor insira aqui uma nova senha.", +- "New_password": "Nova Senha", +- "Password_reset_successfully": "Redefinição de senha com sucesso!", +- "Join_multiple_trusted": "Junte-se a várias ", +- "_with_one_account_": ", com uma conta.", ++ "I_have_the_seed_passphrase": "Eu tenho a senha da \"seed\"", ++ "Important_information": "Informação importante", + "Join": "Juntar", +- "Log_In": "Conecte-se", +- "Register": "Registro", +- "Signatures": "Assinaturas", +- "Contact": "Contato", +- "Regenerate_keys": "Regenerar chaves privadas", +- "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Você foi redirecionado aqui porque suas chaves privadas estão faltando.", +- "Before_using_the_app_again_you_need_to_restore_them_": "Antes de usar o aplicativo novamente, você precisa restaurar suas chaves privadas.", +- "Please_type_here_your_seed_to_restore_your_keyring_": "Por favor digite aqui sua \"seed\" para restaurar suas chaves privadas.", +- "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Por favor digite aqui seu e-mail e sua \"seed\" para restaurar suas chaves privadas.", +- "Forgot_the_seed_Regenerate_it": "Esqueceu a \"seed\"? Regenere-o", ++ "Keypair_creation_successful": "Criação de chaves privadas bem-sucedida!", + "Keys_regenerated": "Chaves privadas regeneradas com sucesso!", +- "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Suas chaves foram regeneradas. Agora você pode voltar para ", +- "your_profile": "seu perfil", +- "Hello": "Olá,", +- "Welcome_to": "Bem-vindo ao", ++ "Login_here": "Entre aqui", ++ "members_description": "Lista dos membros existentes da organização: os membros podem ter diferentes funções, permitindo-lhes diferentes privilégios ", ++ "my_DID": "Meu DID", ++ "My_profile": "Meu perfil", ++ "My": "Meu", ++ "notifications": "Notificações", + "One_last_thing_before_to_using_the_app": "Uma última coisa antes de começar a usar o aplicativo:", +- "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "precisamos que você responda algumas perguntas, que serão utilizadas para gerar suas chaves privadas. As respostas a estas perguntas NUNCA nos são comunicadas!", +- "Generate_your_keys": "Gere suas chaves privadas", +- "Important_information": "Informação importante", +- "By_answering_these_questions_you_will_generate_keys_that_will_be_used_to_encrypt_your_data": "Ao responder essas perguntas, o app irá gerar suas chaves privadas que serão utilizadas para autenticação, assinaturas e criptografia", +- "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Certifique-se de lembrar suas respostas mais tarde, pois elas serão a única maneira de restaurar suas chaves privadas", ++ "Organizations_and_other_users_will_identify_you_by_your_name_": "Organizações e outros usuários irão identificá-lo pelo seu nome.", ++ "organizations": "Organizações", ++ "ORGANIZATIONS": "ORGANIZAÇÕES", ++ "pending_membership_requests_description": "Aqui você pode ver a lista de usuários que solicitaram ser membros desta organização", + "Please_answer_at_least_3_of_the_following_questions": "Por favor, responda pelo menos 3 das seguintes perguntas: ", +- "User_email": "Seu email", +- "Generate_keys": "Gerar chaves privadas", +- "I_have_the_seed_passphrase": "Eu tenho a senha da \"seed\"", +- "Keypair_creation_successful": "Criação de chaves privadas bem-sucedida!", ++ "Please_remember_the_answers_as_they_will_be_the_only_way_to_restore_the_encryption_keys": "Certifique-se de lembrar suas respostas mais tarde, pois elas serão a única maneira de restaurar suas chaves privadas", + "Please_store_this_in_a_safe_place_to_recover_your_account_in_the_future_this_passphrase_will_be_shown_only_one_time": "Guarde a \"seed passphrase\" em um local seguro para recuperar facilmente sua conta no futuro: ela será mostrada apenas uma vez! Não mantemos backup por motivos de privacidade e segurança.", +- "Copy_seed": "Copiar seed passphrase ", +- "Go_to_Dashboard": "Ir para a dashboard", +- "Your_DID": "Seu DID", +- "signature": "assinatura", +- "My_folders": "Minhas pastas", +- "My_profile": "Meu perfil", +- "Go_Pro": "Upgrade", ++ "Please_type_here_your_email_and_your_seed_to_restore_your_keyring_": "Por favor digite aqui seu e-mail e sua \"seed\" para restaurar suas chaves privadas.", ++ "Please_type_here_your_seed_to_restore_your_keyring_": "Por favor digite aqui sua \"seed\" para restaurar suas chaves privadas.", ++ "Regenerate_keys": "Regenerar chaves privadas", ++ "Register_here": "Registre-se aqui", ++ "Register": "Registro", + "Sign_out": "Sair", +- "ORGANIZATIONS": "ORGANIZAÇÕES", +- "Read_more": "Consulte Mais informação", +- "Here_are_some_Helpful_link": "Aqui estão alguns links úteis:", +- "My": "Meu", +- "Click_to_upload": "Clique para carregar", +- "or_drag_and_drop": "ou arraste e solte", ++ "signature": "assinatura", ++ "start": "Começar", ++ "Terms_and_Conditions": "Termos e Condições", ++ "User_email": "Seu email", + "Validate": "Validar", +- "Upload_a_signature_file_and_verify_autenticity": "Faça upload de um arquivo de assinatura e verifique a autenticidade", ++ "we_need_you_to_answer_these_questions_as_they_will_be_used_to_secure_your_data_": "precisamos que você responda algumas perguntas, que serão utilizadas para gerar suas chaves privadas. As respostas a estas perguntas NUNCA nos são comunicadas!", ++ "You_have_been_redirected_here_because_your_private_keys_are_missing_": "Você foi redirecionado aqui porque suas chaves privadas estão faltando.", ++ "Your_email": "Seu email", ++ "Your_keys_have_been_regenerated_You_can_now_go_back_to": "Suas chaves foram regeneradas. Agora você pode voltar para ", ++ "Your_password": "Sua senha", ++ "your_profile": "seu perfil", ++ "_Document_signed_successfully": "✅ Documento assinado com sucesso", + "_Signature_shared_successfully": "✅ Assinatura compartilhada com sucesso", + "_Signature_unshared_successfully": "✅ Assinatura não compartilhada com sucesso", +- "_Document_signed_successfully": "✅ Documento assinado com sucesso", +- "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Tem certeza de que deseja remover todo o acesso à assinatura?", +- "Yes_remove_access": "Sim, remover acesso", +- "Select_one_or_more_templates_for_this_service": "Selecione um ou mais modelos para este serviço", +- "Create_new_Template": "Criar novo modelo", +- "Services_templates": "Modelos de credenciais", +- "Templates": "Modelos", +- "Credential_templates": "Modelos de credenciais", +- "credential_issuer_description": "O emissor da credencial é um microsserviço que produz credenciais verificáveis. A estrutura da credencial é baseada nas declarações definidas no modelo de credencial, e o conteúdo é típico (mas não necessariamente) lido de fontes externas. ", ++ "_with_one_account_": ", com uma conta.", ++ "advanced_settings_description": "Esta seção é dedicada a outras configurações que não cabem nas seções anteriores.", + "authorization_server_description": "O servidor de autorização é um microsserviço cujo comportamento é definido nas especificações Opein4VC e Oauth 2.0, responsável por gerenciar o controle de acesso e decisões de autorização.", +- "relying_party_description": "A parte confiável verifica a autenticidade e validade de uma credencial durante o fluxo de verificação.", +- "Template_parsing_error": "Erro de análise de modelo", +- "New_credential_template": "Novo modelo de credencial", +- "Template": "Modelo", +- "template_form_basic_info_description": "Crie templates para definir fluxos de emissão e verificação: os templates contêm parâmetros e lógica dos fluxos. Os modelos são selecionados nos editores de fluxo. ", +- "template_form_name_placeholder": "Nome do modelo", +- "form_structure_description": "Defina aqui os atributos que o usuário deve inserir manualmente, na forma fornecida pelo servidor de autorização", ++ "Click_to_upload": "Clique para carregar", ++ "credential_issuer_description": "O emissor da credencial é um microsserviço que produz credenciais verificáveis. A estrutura da credencial é baseada nas declarações definidas no modelo de credencial, e o conteúdo é típico (mas não necessariamente) lido de fontes externas. ", ++ "Credential_templates": "Modelos de credenciais", + "custom_code_description": "Este código contém a lógica de negócio do fluxo que estamos definindo agora: o código está escrito em Zencode, comece pelos exemplos e siga a documentação para saber mais", +- "select_code_sample": "Selecione Zencode nos exemplos", +- "issuance_flow_form_main_info_description": "O fluxo de emissão define quando e como uma credencial será emitida e o que ela conterá. para configurar um fluxo de emissão é necessário selecionar a criptografia e o formato utilizado, selecionar os microsserviços que emitirão a credencial e um template para definir as declarações, os parâmetros e a lógica da emissão.", ++ "Forgot_password": "Esqueceu sua senha?", ++ "form_structure_description": "Defina aqui os atributos que o usuário deve inserir manualmente, na forma fornecida pelo servidor de autorização", ++ "Here_are_some_Helpful_link": "Aqui estão alguns links úteis:", ++ "identity": "Identidade", + "issuance_flow_form_credential_info_description": "Nesta seção você pode selecionar os formatos de criptografia e credenciais, juntamente com os modelos para a credencial e o fluxo de autorização. Os templates definem os parâmetros, o conteúdo dos fluxos de emissão. Você pode criar e editar modelos e reutilizá-los em vários fluxos.", ++ "issuance_flow_form_main_info_description": "O fluxo de emissão define quando e como uma credencial será emitida e o que ela conterá. para configurar um fluxo de emissão é necessário selecionar a criptografia e o formato utilizado, selecionar os microsserviços que emitirão a credencial e um template para definir as declarações, os parâmetros e a lógica da emissão.", + "issuance_flow_form_microservices_description": "Selecione o emissor da credencial que produzirá a credencial e o servidor de autorização que autenticará o usuário que está solicitando a credencial. ", +- "advanced_settings_description": "Esta seção é dedicada a outras configurações que não cabem nas seções anteriores.", +- "Use_only_lowercase_and_uppercase_letters_no_spaces": "Use apenas números, caracteres minúsculos ou maiúsculos, mas sem espaços.", ++ "issuance_flows_description": "Encontre aqui seus fluxos de emissão: os fluxos descrevem como e quando uma credencial será emitida e o que ela conterá.", ++ "Join_multiple_trusted": "Junte-se a várias ", ++ "Log_in_with_webauthn": "Faça login com Webauthn", ++ "Log_in": "Conecte-se", ++ "Log_In": "Conecte-se", ++ "multisignatures": "Multiassinaturas", ++ "My_folders": "Minhas pastas", ++ "my_signatures": "Assinaturas", ++ "New_credential_template": "Novo modelo de credencial", ++ "New_password": "Nova Senha", + "new_verification_flow_description": "Configure um fluxo de verificação aqui: configure o modelo, a parte confiável e como o fluxo aparecerá no aplicativo Verifier.", ++ "or_drag_and_drop": "ou arraste e solte", ++ "Password_reset_successfully": "Redefinição de senha com sucesso!", ++ "Please_click_the_link_in_the_email_to_reset_your_password_": "Clique no link do e-mail para redefinir sua senha.", ++ "Please_enter_here_a_new_password_": "Por favor insira aqui uma nova senha.", ++ "Please_enter_here_your_email_to_recover_your_password_": "Por favor insira aqui seu e-mail para redefinir sua senha.", ++ "Read_more": "Consulte Mais informação", ++ "relying_party_description": "A parte confiável verifica a autenticidade e validade de uma credencial durante o fluxo de verificação.", ++ "Reset_email_sent_successfully": "E-mail de redefinição de senha enviado com sucesso!", ++ "Reset_password": "Redefinir senha", ++ "signatures": "Assinaturas", ++ "Signatures": "Assinaturas", ++ "template_form_basic_info_description": "Crie templates para definir fluxos de emissão e verificação: os templates contêm parâmetros e lógica dos fluxos. Os modelos são selecionados nos editores de fluxo. ", ++ "template_form_name_placeholder": "Nome do modelo", ++ "Template_parsing_error": "Erro de análise de modelo", ++ "Template": "Modelo", ++ "templates_description_verification": "Aqui estão seus modelos de verificação: eles contêm os parâmetros e a lógica do processo de verificação de credenciais. ", ++ "templates_description": "Encontre aqui todos os templates dos fluxos de emissão e verificação. Os modelos podem ser de três tipos: Autorização, Emissão ou Verificação. Os templates desempenham um papel central no funcionamento dos fluxos de emissão e verificação de credenciais e, portanto, no comportamento dos seus respectivos microsserviços (Authorization Server, Credential Issuer and Relying Party). ", ++ "Templates": "Modelos", ++ "Use_only_lowercase_and_uppercase_letters_no_spaces": "Use apenas números, caracteres minúsculos ou maiúsculos, mas sem espaços.", ++ "validate_signatures": "Validar assinaturas", ++ "verification_flow_description": "A verificação é gerenciada principalmente pelo aplicativo DIDroom Verifier. Instale o aplicativo verificador, faça login com uma conta conectada a esta organização e inicie o fluxo de verificação a partir daí.", + "verification_flow_form_basic_info_description": "Você pode configurar um fluxo de verificação aqui selecionando um modelo de verificação e uma terceira parte confiável.", +- "verification_flow_form_name_placeholder": "Este nome aparecerá no aplicativo Verifier", + "verification_flow_form_description_placeholder": "Descreva o fluxo de verificação: esta descrição aparecerá no aplicativo Verifier", +- "verification_info_description": "Selecione um modelo de verificação para o fluxo. O modelo contém os parâmetros e a lógica para a verificação.", + "verification_flow_form_microservices_description": "A parte confiável é um microsserviço, que recebe uma apresentação verificável (ou credencial, ou prova de conhecimento zero), verifica e retorna o resultado ao verificador. Selecione a parte confiável que realizará a verificação.", ++ "verification_flow_form_name_placeholder": "Este nome aparecerá no aplicativo Verifier", ++ "verification_flows_description": "Os fluxos de verificação definem a lógica da verificação, o microsserviço (parte confiável) que realizará a verificação e também como o fluxo de verificação será apresentado no aplicativo Verifier. ", ++ "verification_info_description": "Selecione um modelo de verificação para o fluxo. O modelo contém os parâmetros e a lógica para a verificação.", ++ "Your_DID": "Seu DID", ++ "Are_you_sure_you_want_to_remove_all_access_to_the_signature": "Tem certeza de que deseja remover todo o acesso à assinatura?", ++ "attributes_needed_description_authorization": "Defina aqui os atributos que a carteira enviará automaticamente para o servidor de autorização", + "attributes_needed_description_credential": "Defina aqui as reivindicações que o emissor da credencial escreverá na credencial ", + "attributes_needed_description_verification": "Defina aqui os parâmetros que a parte confiável usará para verificar a credencial", +- "attributes_needed_description_authorization": "Defina aqui os atributos que a carteira enviará automaticamente para o servidor de autorização", +- "templates_description_verification": "Aqui estão seus modelos de verificação: eles contêm os parâmetros e a lógica do processo de verificação de credenciais. ", +- "verification_flows_description": "Os fluxos de verificação definem a lógica da verificação, o microsserviço (parte confiável) que realizará a verificação e também como o fluxo de verificação será apresentado no aplicativo Verifier. ", +- "issuance_flows_description": "Encontre aqui seus fluxos de emissão: os fluxos descrevem como e quando uma credencial será emitida e o que ela conterá.", +- "templates_description": "Encontre aqui todos os templates dos fluxos de emissão e verificação. Os modelos podem ser de três tipos: Autorização, Emissão ou Verificação. Os templates desempenham um papel central no funcionamento dos fluxos de emissão e verificação de credenciais e, portanto, no comportamento dos seus respectivos microsserviços (Authorization Server, Credential Issuer and Relying Party). ", +- "pending_membership_requests_description": "Aqui você pode ver a lista de usuários que solicitaram ser membros desta organização", +- "members_description": "Lista dos membros existentes da organização: os membros podem ter diferentes funções, permitindo-lhes diferentes privilégios ", +- "verification_flow_description": "A verificação é gerenciada principalmente pelo aplicativo DIDroom Verifier. Instale o aplicativo verificador, faça login com uma conta conectada a esta organização e inicie o fluxo de verificação a partir daí.", +- "start": "Começar", ++ "Create_new_Template": "Criar novo modelo", ++ "my_verifiable_credentials": "Minhas Verifiable Credentials", ++ "Recover_password": "Redefinir senha", ++ "select_code_sample": "Selecione Zencode nos exemplos", ++ "Select_one_or_more_templates_for_this_service": "Selecione um ou mais modelos para este serviço", ++ "Services_templates": "Modelos de credenciais", ++ "Upload_a_signature_file_and_verify_autenticity": "Faça upload de um arquivo de assinatura e verifique a autenticidade", ++ "Welcome_to": "Bem-vindo ao", ++ "Yes_remove_access": "Sim, remover acesso", + "my_folders": "Pastas" + } +\ No newline at end of file diff --git a/webapp/package.json.rej b/webapp/package.json.rej new file mode 100644 index 00000000..d99c6a52 --- /dev/null +++ b/webapp/package.json.rej @@ -0,0 +1,165 @@ +diff a/webapp/package.json b/webapp/package.json (rejected hunks) +@@ -1,96 +1,97 @@ + { + "name": "signroom - webapp", + "author": { +- "name": "Puria Nafisi Azizi", +- "email": "puria@dyne.org" ++ "name": "Luther Hacker", ++ "email": "luther@dyne.org" + }, + "description": "Advanced electronic signature service based on Zenroom", + "version": "0.0.1", +- "private": true, ++ "type": "module", + "engines": { + "node": ">=17", + "pnpm": ">=8" + }, + "scripts": { +- "predev": "pnpm run definitions", ++ "predev": "pnpm generate:definitions", + "dev": "vite dev", +- "prebuild": "pnpm run definitions", ++ "prebuild": "pnpm generate:definitions", + "build": "vite build", + "preview": "vite preview", +- "test": "pnpm run test:integration && pnpm run test:unit", +- "test:integration": "playwright test", +- "test:unit": "vitest", +- "test:ui": "playwright test --ui", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", +- "lint": "prettier --plugin-search-dir . --check . && eslint .", +- "format": "prettier --plugin-search-dir . --write .", +- "types": "npx -y pocketbase-typegen --db ../admin/pb_data/data.db --out src/lib/pocketbase/types.ts", +- "features": "node ./src/lib/features/generateFeaturesList.mjs", +- "roles": "node ./src/lib/organizations/generateRolesList.mjs", +- "schema": "node ./src/lib/pocketbase/schema/generateSchema.mjs", +- "definitions": "pnpm types && pnpm schema && pnpm features && pnpm roles", ++ "format": "prettier --write .", ++ "lint": "prettier --check . && eslint .", ++ "test:unit": "vitest", ++ "test": "pnpm test:unit -- --run && pnpm test:e2e", ++ "test:e2e": "playwright test", ++ "test:e2e:ui": "playwright test --ui", + "serve": "pnpm build && pnpm preview --host", +- "remove-unused-strings": "node ./src/lib/i18n/removeUnusedStrings.mjs", ++ "vite-run": "node ./vite-run.js", ++ "generate:types": "pnpx pocketbase-typegen --db ../admin/pb_data/data.db --out src/modules/pocketbase/types/index.generated.ts && pnpm generate:types-extra", ++ "generate:types-extra": "pnpm vite-run src/modules/pocketbase/types/generate.types-extra.ts", ++ "generate:features": "pnpm vite-run src/modules/features/generate.features-list.ts", ++ "generate:roles": "pnpm vite-run ./src/modules/organizations/generate.roles-list.ts", ++ "generate:collections-models": "pnpm vite-run ./src/modules/pocketbase/collections-models/generate.collections-models.ts", ++ "generate:definitions": "pnpm generate:collections-models && pnpm generate:types && pnpm generate:features && pnpm generate:roles", ++ "i18n:remove-unused-strings": "pnpm vite-run ./src/modules/i18n/remove-unused-strings.ts", + "i18n:lint": "pnpm inlang lint --project ./project.inlang", + "i18n:lint:en": "pnpm inlang lint --project ./project.inlang --languageTags en" + }, + "devDependencies": { + "@inlang/cli": "^2.18.1", +- "@inlang/paraglide-js": "1.9.1", +- "@playwright/test": "^1.41.2", ++ "@internationalized/date": "^3.5.6", ++ "@playwright/test": "^1.45.3", + "@sveltejs/adapter-auto": "^3.0.0", + "@sveltejs/kit": "^2.0.0", +- "@sveltejs/vite-plugin-svelte": "^3.0.0", +- "@types/debug": "^4.1.12", +- "@types/eslint": "^8.56.0", +- "@types/lodash": "^4.17.1", +- "@typescript-eslint/eslint-plugin": "^7.0.0", +- "@typescript-eslint/parser": "^7.0.0", +- "autoprefixer": "^10.4.17", +- "debug": "^4.3.4", +- "dotenv": "^16.4.4", +- "eslint": "^8.56.0", ++ "@sveltejs/vite-plugin-svelte": "^4.0.0", ++ "@tailwindcss/aspect-ratio": "^0.4.2", ++ "@tailwindcss/container-queries": "^0.1.1", ++ "@tailwindcss/forms": "^0.5.9", ++ "@tailwindcss/typography": "^0.5.15", ++ "@types/eslint": "^9.6.0", ++ "@types/lodash": "^4.17.13", ++ "autoprefixer": "^10.4.20", ++ "bits-ui": "1.0.0-next.63", ++ "clsx": "^2.1.1", ++ "dotenv": "^16.4.5", ++ "eslint": "^9.7.0", + "eslint-config-prettier": "^9.1.0", +- "eslint-plugin-svelte": "^2.35.1", +- "postcss": "^8.4.35", +- "postcss-load-config": "^4.0.1", +- "prettier": "^3.2.5", +- "prettier-plugin-svelte": "^3.2.1", +- "prettier-plugin-tailwindcss": "^0.5.1", +- "svelecte": "^3.17.3", +- "svelte": "^4.2.11", +- "svelte-check": "^3.6.4", +- "svelte-heros-v2": "^0.10.11", +- "svelte-preprocess": "^5.1.3", +- "sveltekit-superforms": "1.6.1", +- "tailwindcss": "^3.4.1", +- "tslib": "^2.6.2", +- "typescript": "^5.3.3", +- "vite": "^5.1.3", +- "vitest": "^1.2.2", +- "zod": "^3.22.4" ++ "eslint-plugin-svelte": "^2.36.0", ++ "formsnap": "2.0.0-next.1", ++ "globals": "^15.0.0", ++ "json-to-ts": "^2.1.0", ++ "lucide-svelte": "^0.454.0", ++ "mode-watcher": "^0.4.1", ++ "paneforge": "1.0.0-next.1", ++ "prettier": "^3.3.2", ++ "prettier-plugin-svelte": "^3.2.6", ++ "prettier-plugin-tailwindcss": "^0.6.5", ++ "svelte": "^5.0.0", ++ "svelte-check": "^4.0.0", ++ "svelte-sonner": "^0.3.28", ++ "sveltekit-superforms": "^2.20.0", ++ "tailwind-merge": "^2.5.4", ++ "tailwind-variants": "^0.2.1", ++ "tailwindcss": "^3.4.9", ++ "tailwindcss-animate": "^1.0.7", ++ "typescript": "^5.0.0", ++ "typescript-eslint": "^8.0.0", ++ "vite": "^5.0.3", ++ "vite-node": "^2.1.4", ++ "vitest": "^2.0.4", ++ "zod": "^3.23.8" + }, +- "type": "module", + "dependencies": { +- "@inlang/paraglide-sveltekit": "0.8.1", +- "@popperjs/core": "^2.11.8", +- "classnames": "^2.5.1", +- "clsx": "^2.1.1", +- "codejar": "^4.2.0", +- "dayjs": "^1.11.13", +- "effect": "^3.8.3", +- "flowbite": "^2.3.0", +- "flowbite-svelte": "^0.44.23", +- "flowbite-svelte-blocks": "^1.1.0", +- "flowbite-svelte-icons": "^1.3.1", +- "highlight.js": "^11.10.0", ++ "@inlang/paraglide-sveltekit": "^0.11.1", ++ "@melt-ui/svelte": "^0.86.0", ++ "date-fns": "^4.1.0", ++ "effect": "^3.10.12", + "lodash": "^4.17.21", +- "nanoid": "^5.0.7", +- "pocketbase": "^0.21.2", +- "svelte-boring-avatars": "^1.2.6", +- "svelte-heros": "^6.0.1", +- "tailwind-merge": "^2.5.2", +- "zenroom": "^4.12.0" ++ "nanoid": "^5.0.8", ++ "pocketbase": "^0.21.5", ++ "runed": "^0.15.3", ++ "svelte-loading-spinners": "^0.3.6", ++ "type-fest": "^4.26.1", ++ "zenroom": "^4.45.3" + } + } diff --git a/webapp/playwright.config.ts b/webapp/playwright.config.ts index d2cefe30..9bc5aa1e 100644 --- a/webapp/playwright.config.ts +++ b/webapp/playwright.config.ts @@ -1,11 +1,15 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later +import { defineConfig } from '@playwright/test'; -import type { PlaywrightTestConfig } from '@playwright/test'; -export const storageState = 'playwright/.auth/user.json'; +export const storageState = 'test-results/.auth/user.json'; + +export default defineConfig({ + webServer: { + command: 'pnpm build && pnpm preview', + port: 4173 + }, + + testDir: 'e2e', -const config: PlaywrightTestConfig = { projects: [ { name: 'setup', testMatch: /.*\.setup\.ts/ }, { diff --git a/webapp/playwright.config.ts.rej b/webapp/playwright.config.ts.rej new file mode 100644 index 00000000..2bb0e6d4 --- /dev/null +++ b/webapp/playwright.config.ts.rej @@ -0,0 +1,17 @@ +diff a/webapp/playwright.config.ts b/webapp/playwright.config.ts (rejected hunks) +@@ -24,13 +28,5 @@ const config: PlaywrightTestConfig = { + }, + dependencies: ['setup'] + } +- ], +- webServer: { +- command: 'npm run preview', +- port: 4173, +- reuseExistingServer: true +- }, +- testDir: 'tests' +-}; +- +-export default config; ++ ] ++}); diff --git a/webapp/pnpm-lock.yaml b/webapp/pnpm-lock.yaml index 2bc4d26d..abbd9fb6 100644 --- a/webapp/pnpm-lock.yaml +++ b/webapp/pnpm-lock.yaml @@ -690,8 +690,8 @@ packages: resolution: {integrity: sha512-g3uEsGOQCBl1+W1rgfwoRFUIR6PtvB2T1E4RpygeUU5LrLvlOqcxrt5lfykIeRpUPpupreGJUYl70fqMDXdTpw==} engines: {node: '>= 18'} - '@octokit/auth-app@6.1.1': - resolution: {integrity: sha512-VrTtzRpyuT5nYGUWeGWQqH//hqEZDV+/yb6+w5wmWpmmUA1Tx950XsAc2mBBfvusfcdF2E7w8jZ1r1WwvfZ9pA==} + '@octokit/auth-app@6.1.3': + resolution: {integrity: sha512-dcaiteA6Y/beAlDLZOPNReN3FGHu+pARD6OHfh3T9f3EO09++ec+5wt3KtGGSSs2Mp5tI8fQwdMOEnrzBLfgUA==} engines: {node: '>= 18'} '@octokit/auth-oauth-app@7.1.0': @@ -3795,8 +3795,8 @@ packages: ts-node: optional: true - postcss-load-config@4.0.1: - resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' @@ -3885,6 +3885,7 @@ packages: prettier-plugin-import-sort: '*' prettier-plugin-jsdoc: '*' prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' prettier-plugin-organize-attributes: '*' prettier-plugin-organize-imports: '*' prettier-plugin-sort-imports: '*' @@ -3911,6 +3912,8 @@ packages: optional: true prettier-plugin-marko: optional: true + prettier-plugin-multiline-arrays: + optional: true prettier-plugin-organize-attributes: optional: true prettier-plugin-organize-imports: @@ -4395,6 +4398,8 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -4687,6 +4692,7 @@ packages: less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -5284,6 +5290,10 @@ snapshots: dependencies: '@inlang/language-tag': 1.5.1 + '@internationalized/date@3.5.6': + dependencies: + '@swc/helpers': 0.5.15 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -5371,7 +5381,7 @@ snapshots: '@octokit/auth-oauth-device': 6.1.0 '@octokit/auth-oauth-user': 4.1.0 '@octokit/request': 8.4.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 '@types/btoa-lite': 1.0.2 btoa-lite: 1.0.0 universal-user-agent: 6.0.1 @@ -5380,7 +5390,7 @@ snapshots: dependencies: '@octokit/oauth-methods': 4.1.0 '@octokit/request': 8.4.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 universal-user-agent: 6.0.1 '@octokit/auth-oauth-user@4.1.0': @@ -5388,7 +5398,7 @@ snapshots: '@octokit/auth-oauth-device': 6.1.0 '@octokit/oauth-methods': 4.1.0 '@octokit/request': 8.4.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 btoa-lite: 1.0.0 universal-user-agent: 6.0.1 diff --git a/webapp/pnpm-lock.yaml.rej b/webapp/pnpm-lock.yaml.rej new file mode 100644 index 00000000..f3bfb791 --- /dev/null +++ b/webapp/pnpm-lock.yaml.rej @@ -0,0 +1,7080 @@ +diff a/webapp/pnpm-lock.yaml b/webapp/pnpm-lock.yaml (rejected hunks) +@@ -9,370 +9,548 @@ importers: + .: + dependencies: + '@inlang/paraglide-sveltekit': +- specifier: 0.8.1 +- version: 0.8.1(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(debug@4.3.4) +- '@popperjs/core': +- specifier: ^2.11.8 +- version: 2.11.8 +- classnames: +- specifier: ^2.5.1 +- version: 2.5.1 +- clsx: +- specifier: ^2.1.1 +- version: 2.1.1 +- codejar: +- specifier: ^4.2.0 +- version: 4.2.0 +- dayjs: +- specifier: ^1.11.13 +- version: 1.11.13 ++ specifier: ^0.11.1 ++ version: 0.11.5(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0))) ++ '@melt-ui/svelte': ++ specifier: ^0.86.0 ++ version: 0.86.0(svelte@5.1.15) ++ date-fns: ++ specifier: ^4.1.0 ++ version: 4.1.0 + effect: +- specifier: ^3.8.3 +- version: 3.8.3 +- flowbite: +- specifier: ^2.3.0 +- version: 2.3.0 +- flowbite-svelte: +- specifier: ^0.44.23 +- version: 0.44.23(svelte@4.2.11) +- flowbite-svelte-blocks: +- specifier: ^1.1.0 +- version: 1.1.0(svelte@4.2.11) +- flowbite-svelte-icons: +- specifier: ^1.3.1 +- version: 1.3.1(svelte@4.2.11)(tailwind-merge@2.5.2)(tailwindcss@3.4.1) +- highlight.js: +- specifier: ^11.10.0 +- version: 11.10.0 ++ specifier: ^3.10.12 ++ version: 3.10.14 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + nanoid: +- specifier: ^5.0.7 +- version: 5.0.7 ++ specifier: ^5.0.8 ++ version: 5.0.8 + pocketbase: +- specifier: ^0.21.2 +- version: 0.21.2 +- svelte-boring-avatars: +- specifier: ^1.2.6 +- version: 1.2.6 +- svelte-heros: +- specifier: ^6.0.1 +- version: 6.0.1(svelte@4.2.11) +- tailwind-merge: +- specifier: ^2.5.2 +- version: 2.5.2 ++ specifier: ^0.21.5 ++ version: 0.21.5 ++ runed: ++ specifier: ^0.15.3 ++ version: 0.15.3(svelte@5.1.15) ++ svelte-loading-spinners: ++ specifier: ^0.3.6 ++ version: 0.3.6 ++ type-fest: ++ specifier: ^4.26.1 ++ version: 4.26.1 + zenroom: +- specifier: ^4.12.0 +- version: 4.12.0 ++ specifier: ^4.45.3 ++ version: 4.46.0 + devDependencies: + '@inlang/cli': + specifier: ^2.18.1 + version: 2.18.1 +- '@inlang/paraglide-js': +- specifier: 1.9.1 +- version: 1.9.1(debug@4.3.4) ++ '@internationalized/date': ++ specifier: ^3.5.6 ++ version: 3.5.6 + '@playwright/test': +- specifier: ^1.41.2 +- version: 1.41.2 ++ specifier: ^1.45.3 ++ version: 1.48.2 + '@sveltejs/adapter-auto': + specifier: ^3.0.0 +- version: 3.2.0(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12))) ++ version: 3.3.1(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0))) + '@sveltejs/kit': + specifier: ^2.0.0 +- version: 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)) ++ version: 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)) + '@sveltejs/vite-plugin-svelte': +- specifier: ^3.0.0 +- version: 3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)) +- '@types/debug': +- specifier: ^4.1.12 +- version: 4.1.12 ++ specifier: ^4.0.0 ++ version: 4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)) ++ '@tailwindcss/aspect-ratio': ++ specifier: ^0.4.2 ++ version: 0.4.2(tailwindcss@3.4.14) ++ '@tailwindcss/container-queries': ++ specifier: ^0.1.1 ++ version: 0.1.1(tailwindcss@3.4.14) ++ '@tailwindcss/forms': ++ specifier: ^0.5.9 ++ version: 0.5.9(tailwindcss@3.4.14) ++ '@tailwindcss/typography': ++ specifier: ^0.5.15 ++ version: 0.5.15(tailwindcss@3.4.14) + '@types/eslint': +- specifier: ^8.56.0 +- version: 8.56.10 ++ specifier: ^9.6.0 ++ version: 9.6.1 + '@types/lodash': +- specifier: ^4.17.1 +- version: 4.17.4 +- '@typescript-eslint/eslint-plugin': +- specifier: ^7.0.0 +- version: 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3) +- '@typescript-eslint/parser': +- specifier: ^7.0.0 +- version: 7.10.0(eslint@8.56.0)(typescript@5.3.3) ++ specifier: ^4.17.13 ++ version: 4.17.13 + autoprefixer: +- specifier: ^10.4.17 +- version: 10.4.17(postcss@8.4.35) +- debug: +- specifier: ^4.3.4 +- version: 4.3.4 ++ specifier: ^10.4.20 ++ version: 10.4.20(postcss@8.4.49) ++ bits-ui: ++ specifier: 1.0.0-next.63 ++ version: 1.0.0-next.63(svelte@5.1.15) ++ clsx: ++ specifier: ^2.1.1 ++ version: 2.1.1 + dotenv: +- specifier: ^16.4.4 +- version: 16.4.4 ++ specifier: ^16.4.5 ++ version: 16.4.5 + eslint: +- specifier: ^8.56.0 +- version: 8.56.0 ++ specifier: ^9.7.0 ++ version: 9.14.0(jiti@1.21.6) + eslint-config-prettier: + specifier: ^9.1.0 +- version: 9.1.0(eslint@8.56.0) ++ version: 9.1.0(eslint@9.14.0(jiti@1.21.6)) + eslint-plugin-svelte: +- specifier: ^2.35.1 +- version: 2.35.1(eslint@8.56.0)(svelte@4.2.11) +- postcss: +- specifier: ^8.4.35 +- version: 8.4.35 +- postcss-load-config: +- specifier: ^4.0.1 +- version: 4.0.1(postcss@8.4.35) ++ specifier: ^2.36.0 ++ version: 2.46.0(eslint@9.14.0(jiti@1.21.6))(svelte@5.1.15) ++ formsnap: ++ specifier: 2.0.0-next.1 ++ version: 2.0.0-next.1(svelte@5.1.15)(sveltekit-superforms@2.20.0(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(@types/json-schema@7.0.15)(svelte@5.1.15)(typescript@5.6.3)) ++ globals: ++ specifier: ^15.0.0 ++ version: 15.12.0 ++ json-to-ts: ++ specifier: ^2.1.0 ++ version: 2.1.0 ++ lucide-svelte: ++ specifier: ^0.454.0 ++ version: 0.454.0(svelte@5.1.15) ++ mode-watcher: ++ specifier: ^0.4.1 ++ version: 0.4.1(svelte@5.1.15) ++ paneforge: ++ specifier: 1.0.0-next.1 ++ version: 1.0.0-next.1(svelte@5.1.15) + prettier: +- specifier: ^3.2.5 +- version: 3.2.5 ++ specifier: ^3.3.2 ++ version: 3.3.3 + prettier-plugin-svelte: +- specifier: ^3.2.1 +- version: 3.2.1(prettier@3.2.5)(svelte@4.2.11) ++ specifier: ^3.2.6 ++ version: 3.2.8(prettier@3.3.3)(svelte@5.1.15) + prettier-plugin-tailwindcss: +- specifier: ^0.5.1 +- version: 0.5.14(prettier-plugin-svelte@3.2.1(prettier@3.2.5)(svelte@4.2.11))(prettier@3.2.5) +- svelecte: +- specifier: ^3.17.3 +- version: 3.17.3 ++ specifier: ^0.6.5 ++ version: 0.6.8(prettier-plugin-svelte@3.2.8(prettier@3.3.3)(svelte@5.1.15))(prettier@3.3.3) + svelte: +- specifier: ^4.2.11 +- version: 4.2.11 ++ specifier: ^5.0.0 ++ version: 5.1.15 + svelte-check: +- specifier: ^3.6.4 +- version: 3.6.4(postcss-load-config@4.0.1(postcss@8.4.35))(postcss@8.4.35)(svelte@4.2.11) +- svelte-heros-v2: +- specifier: ^0.10.11 +- version: 0.10.11(svelte@4.2.11) +- svelte-preprocess: +- specifier: ^5.1.3 +- version: 5.1.3(postcss-load-config@4.0.1(postcss@8.4.35))(postcss@8.4.35)(svelte@4.2.11)(typescript@5.3.3) ++ specifier: ^4.0.0 ++ version: 4.0.7(svelte@5.1.15)(typescript@5.6.3) ++ svelte-sonner: ++ specifier: ^0.3.28 ++ version: 0.3.28(svelte@5.1.15) + sveltekit-superforms: +- specifier: 1.6.1 +- version: 1.6.1(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(zod@3.22.4) ++ specifier: ^2.20.0 ++ version: 2.20.0(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(@types/json-schema@7.0.15)(svelte@5.1.15)(typescript@5.6.3) ++ tailwind-merge: ++ specifier: ^2.5.4 ++ version: 2.5.4 ++ tailwind-variants: ++ specifier: ^0.2.1 ++ version: 0.2.1(tailwindcss@3.4.14) + tailwindcss: +- specifier: ^3.4.1 +- version: 3.4.1 +- tslib: +- specifier: ^2.6.2 +- version: 2.6.2 ++ specifier: ^3.4.9 ++ version: 3.4.14 ++ tailwindcss-animate: ++ specifier: ^1.0.7 ++ version: 1.0.7(tailwindcss@3.4.14) + typescript: +- specifier: ^5.3.3 +- version: 5.3.3 ++ specifier: ^5.0.0 ++ version: 5.6.3 ++ typescript-eslint: ++ specifier: ^8.0.0 ++ version: 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) + vite: +- specifier: ^5.1.3 +- version: 5.1.3(@types/node@20.12.12) ++ specifier: ^5.0.3 ++ version: 5.4.11(@types/node@22.9.0) ++ vite-node: ++ specifier: ^2.1.4 ++ version: 2.1.4(@types/node@22.9.0) + vitest: +- specifier: ^1.2.2 +- version: 1.2.2(@types/node@20.12.12) ++ specifier: ^2.0.4 ++ version: 2.1.4(@types/node@22.9.0) + zod: +- specifier: ^3.22.4 +- version: 3.22.4 ++ specifier: ^3.23.8 ++ version: 3.23.8 + + packages: + +- '@aashutoshrathi/word-wrap@1.2.6': +- resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} +- engines: {node: '>=0.10.0'} +- + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + +- '@ampproject/remapping@2.2.1': +- resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} ++ '@ampproject/remapping@2.3.0': ++ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + +- '@esbuild/aix-ppc64@0.19.12': +- resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} ++ '@ark/schema@0.10.0': ++ resolution: {integrity: sha512-zpfXwWLOzj9aUK+dXQ6aleJAOgle4/WrHDop5CMX2M88dFQ85NdH8O0v0pvMAQnfFcaQAZ/nVDYLlBJsFc09XA==} ++ ++ '@ark/util@0.10.0': ++ resolution: {integrity: sha512-uK+9VU5doGMYOoOZVE+XaSs1vYACoaEJdrDkuBx26S4X7y3ChyKsPnIg/9pIw2vUySph1GkAXbvBnfVE2GmXgQ==} ++ ++ '@babel/runtime@7.26.0': ++ resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} ++ engines: {node: '>=6.9.0'} ++ ++ '@effect/schema@0.75.5': ++ resolution: {integrity: sha512-TQInulTVCuF+9EIbJpyLP6dvxbQJMphrnRqgexm/Ze39rSjfhJuufF7XvU3SxTgg3HnL7B/kpORTJbHhlE6thw==} ++ peerDependencies: ++ effect: ^3.9.2 ++ ++ '@esbuild/aix-ppc64@0.21.5': ++ resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + +- '@esbuild/android-arm64@0.19.12': +- resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} ++ '@esbuild/aix-ppc64@0.24.0': ++ resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} ++ engines: {node: '>=18'} ++ cpu: [ppc64] ++ os: [aix] ++ ++ '@esbuild/android-arm64@0.21.5': ++ resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + +- '@esbuild/android-arm@0.19.12': +- resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} ++ '@esbuild/android-arm64@0.24.0': ++ resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} ++ engines: {node: '>=18'} ++ cpu: [arm64] ++ os: [android] ++ ++ '@esbuild/android-arm@0.21.5': ++ resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + +- '@esbuild/android-x64@0.19.12': +- resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} ++ '@esbuild/android-arm@0.24.0': ++ resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} ++ engines: {node: '>=18'} ++ cpu: [arm] ++ os: [android] ++ ++ '@esbuild/android-x64@0.21.5': ++ resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + +- '@esbuild/darwin-arm64@0.19.12': +- resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} ++ '@esbuild/android-x64@0.24.0': ++ resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} ++ engines: {node: '>=18'} ++ cpu: [x64] ++ os: [android] ++ ++ '@esbuild/darwin-arm64@0.21.5': ++ resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + +- '@esbuild/darwin-x64@0.19.12': +- resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} ++ '@esbuild/darwin-arm64@0.24.0': ++ resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} ++ engines: {node: '>=18'} ++ cpu: [arm64] ++ os: [darwin] ++ ++ '@esbuild/darwin-x64@0.21.5': ++ resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + +- '@esbuild/freebsd-arm64@0.19.12': +- resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} ++ '@esbuild/darwin-x64@0.24.0': ++ resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} ++ engines: {node: '>=18'} ++ cpu: [x64] ++ os: [darwin] ++ ++ '@esbuild/freebsd-arm64@0.21.5': ++ resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + +- '@esbuild/freebsd-x64@0.19.12': +- resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} ++ '@esbuild/freebsd-arm64@0.24.0': ++ resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} ++ engines: {node: '>=18'} ++ cpu: [arm64] ++ os: [freebsd] ++ ++ '@esbuild/freebsd-x64@0.21.5': ++ resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + +- '@esbuild/linux-arm64@0.19.12': +- resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} ++ '@esbuild/freebsd-x64@0.24.0': ++ resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} ++ engines: {node: '>=18'} ++ cpu: [x64] ++ os: [freebsd] ++ ++ '@esbuild/linux-arm64@0.21.5': ++ resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + +- '@esbuild/linux-arm@0.19.12': +- resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} ++ '@esbuild/linux-arm64@0.24.0': ++ resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} ++ engines: {node: '>=18'} ++ cpu: [arm64] ++ os: [linux] ++ ++ '@esbuild/linux-arm@0.21.5': ++ resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + +- '@esbuild/linux-ia32@0.19.12': +- resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} ++ '@esbuild/linux-arm@0.24.0': ++ resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} ++ engines: {node: '>=18'} ++ cpu: [arm] ++ os: [linux] ++ ++ '@esbuild/linux-ia32@0.21.5': ++ resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + +- '@esbuild/linux-loong64@0.19.12': +- resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} ++ '@esbuild/linux-ia32@0.24.0': ++ resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} ++ engines: {node: '>=18'} ++ cpu: [ia32] ++ os: [linux] ++ ++ '@esbuild/linux-loong64@0.21.5': ++ resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + +- '@esbuild/linux-mips64el@0.19.12': +- resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} ++ '@esbuild/linux-loong64@0.24.0': ++ resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} ++ engines: {node: '>=18'} ++ cpu: [loong64] ++ os: [linux] ++ ++ '@esbuild/linux-mips64el@0.21.5': ++ resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + +- '@esbuild/linux-ppc64@0.19.12': +- resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} ++ '@esbuild/linux-mips64el@0.24.0': ++ resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} ++ engines: {node: '>=18'} ++ cpu: [mips64el] ++ os: [linux] ++ ++ '@esbuild/linux-ppc64@0.21.5': ++ resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + +- '@esbuild/linux-riscv64@0.19.12': +- resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} ++ '@esbuild/linux-ppc64@0.24.0': ++ resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} ++ engines: {node: '>=18'} ++ cpu: [ppc64] ++ os: [linux] ++ ++ '@esbuild/linux-riscv64@0.21.5': ++ resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + +- '@esbuild/linux-s390x@0.19.12': +- resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} ++ '@esbuild/linux-riscv64@0.24.0': ++ resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} ++ engines: {node: '>=18'} ++ cpu: [riscv64] ++ os: [linux] ++ ++ '@esbuild/linux-s390x@0.21.5': ++ resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + +- '@esbuild/linux-x64@0.19.12': +- resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} ++ '@esbuild/linux-s390x@0.24.0': ++ resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} ++ engines: {node: '>=18'} ++ cpu: [s390x] ++ os: [linux] ++ ++ '@esbuild/linux-x64@0.21.5': ++ resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + +- '@esbuild/netbsd-x64@0.19.12': +- resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} ++ '@esbuild/linux-x64@0.24.0': ++ resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} ++ engines: {node: '>=18'} ++ cpu: [x64] ++ os: [linux] ++ ++ '@esbuild/netbsd-x64@0.21.5': ++ resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + +- '@esbuild/openbsd-x64@0.19.12': +- resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} ++ '@esbuild/netbsd-x64@0.24.0': ++ resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} ++ engines: {node: '>=18'} ++ cpu: [x64] ++ os: [netbsd] ++ ++ '@esbuild/openbsd-arm64@0.24.0': ++ resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} ++ engines: {node: '>=18'} ++ cpu: [arm64] ++ os: [openbsd] ++ ++ '@esbuild/openbsd-x64@0.21.5': ++ resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + +- '@esbuild/sunos-x64@0.19.12': +- resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} ++ '@esbuild/openbsd-x64@0.24.0': ++ resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} ++ engines: {node: '>=18'} ++ cpu: [x64] ++ os: [openbsd] ++ ++ '@esbuild/sunos-x64@0.21.5': ++ resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + +- '@esbuild/win32-arm64@0.19.12': +- resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} ++ '@esbuild/sunos-x64@0.24.0': ++ resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} ++ engines: {node: '>=18'} ++ cpu: [x64] ++ os: [sunos] ++ ++ '@esbuild/win32-arm64@0.21.5': ++ resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + +- '@esbuild/win32-ia32@0.19.12': +- resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} ++ '@esbuild/win32-arm64@0.24.0': ++ resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} ++ engines: {node: '>=18'} ++ cpu: [arm64] ++ os: [win32] ++ ++ '@esbuild/win32-ia32@0.21.5': ++ resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + +- '@esbuild/win32-x64@0.19.12': +- resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} ++ '@esbuild/win32-ia32@0.24.0': ++ resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} ++ engines: {node: '>=18'} ++ cpu: [ia32] ++ os: [win32] ++ ++ '@esbuild/win32-x64@0.21.5': ++ resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + +- '@eslint-community/eslint-utils@4.4.0': +- resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} ++ '@esbuild/win32-x64@0.24.0': ++ resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} ++ engines: {node: '>=18'} ++ cpu: [x64] ++ os: [win32] ++ ++ '@eslint-community/eslint-utils@4.4.1': ++ resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + +- '@eslint-community/regexpp@4.10.0': +- resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} ++ '@eslint-community/regexpp@4.12.1': ++ resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + +- '@eslint/eslintrc@2.1.4': +- resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} +- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} ++ '@eslint/config-array@0.18.0': ++ resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} ++ ++ '@eslint/core@0.7.0': ++ resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + +- '@eslint/js@8.56.0': +- resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} +- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} ++ '@eslint/js@9.14.0': ++ resolution: {integrity: sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + +- '@eslint/js@9.0.0': +- resolution: {integrity: sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==} ++ '@eslint/object-schema@2.1.4': ++ resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + +- '@floating-ui/core@1.6.0': +- resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} ++ '@eslint/plugin-kit@0.2.2': ++ resolution: {integrity: sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} ++ ++ '@exodus/schemasafe@1.3.0': ++ resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} ++ ++ '@floating-ui/core@1.6.8': ++ resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} ++ ++ '@floating-ui/dom@1.6.12': ++ resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} + +- '@floating-ui/dom@1.6.3': +- resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} ++ '@floating-ui/utils@0.2.8': ++ resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} + +- '@floating-ui/utils@0.2.1': +- resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} ++ '@gcornut/valibot-json-schema@0.31.0': ++ resolution: {integrity: sha512-3xGptCurm23e7nuPQkdrE5rEs1FeTPHhAUsBuwwqG4/YeZLwJOoYZv+fmsppUEfo5y9lzUwNQrNqLS/q7HMc7g==} ++ hasBin: true ++ ++ '@hapi/hoek@9.3.0': ++ resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + +- '@humanwhocodes/config-array@0.11.14': +- resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} +- engines: {node: '>=10.10.0'} ++ '@hapi/topo@5.1.0': ++ resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + +- '@humanwhocodes/config-array@0.12.3': +- resolution: {integrity: sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==} +- engines: {node: '>=10.10.0'} ++ '@humanfs/core@0.19.1': ++ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} ++ engines: {node: '>=18.18.0'} ++ ++ '@humanfs/node@0.16.6': ++ resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} ++ engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + +- '@humanwhocodes/object-schema@2.0.2': +- resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} ++ '@humanwhocodes/retry@0.3.1': ++ resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} ++ engines: {node: '>=18.18'} + +- '@humanwhocodes/object-schema@2.0.3': +- resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} ++ '@humanwhocodes/retry@0.4.1': ++ resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} ++ engines: {node: '>=18.18'} + + '@inlang/cli@2.18.1': + resolution: {integrity: sha512-6C/w7M9PbIs43GTheitckZCsW8Qc6F//S0iWCVL4BY2yIMXJJq1MLv3QC3qPkAHy+wpkJAnLPMnzyCJZBW50EQ==} +@@ -400,29 +578,29 @@ packages: + peerDependencies: + '@sinclair/typebox': ^0.31.17 + +- '@inlang/module@1.2.11': +- resolution: {integrity: sha512-0JdRW9cIoHkIRrGOc9Ja6kNRSaO0zg4cehv8J46cG63/zdjmpC1LLaes1K+6c0QSboaiWKbjx5BK42Op6HyqCg==} ++ '@inlang/module@1.2.14': ++ resolution: {integrity: sha512-Z7rRa6x3RkzjdvNA7x+KskNGdSBEO46X9c7bTl6eZmLXy0J9yGDn6s4jpYqQzyKRG8g5mEqWcRqcVqdNwzj5Gg==} + peerDependencies: + '@sinclair/typebox': ^0.31.17 + +- '@inlang/paraglide-js@1.9.1': +- resolution: {integrity: sha512-ovLG4nub239w7hrLHThxdliHKXStM54EffmUVFxXbq5hAbeFMPfuO1MEtyX+vupZp/3karxQ4HyB6u8MfcVxPw==} ++ '@inlang/paraglide-js@1.11.3': ++ resolution: {integrity: sha512-WVNraTylfZty0kt5EQNh8yx0WUJbtYEmc8YoNRRSUWB0rqeCh8a9xIQnmzZxBMf7IL7es+Ppiqx15py7mukJRw==} + hasBin: true + +- '@inlang/paraglide-sveltekit@0.8.1': +- resolution: {integrity: sha512-7DbX+69f//ZsuWduCQRT8Pa1WvCnq1685HPx9AOZfkz5BQTJNKNXLoThU8F6Q5EDlEDuzzzfesR7wnhTwUChuA==} ++ '@inlang/paraglide-sveltekit@0.11.5': ++ resolution: {integrity: sha512-go2rQC4h6F8eDphICrHL0SAZUidEEgnOrplaZRle4u7Qthg9WDztOUHQW9BoRYHi3vmP2N2HZ7KsPjowAkuW5w==} + hasBin: true + peerDependencies: + '@sveltejs/kit': ^2.4.3 + +- '@inlang/paraglide-unplugin@1.6.7': +- resolution: {integrity: sha512-6XuW1mWYQFXP69S7EIOsSuMhVFRDAeVN+t7gNLZ4RyZ11KoGQp8HldI8qhhQHKr4CAgqftHxADtlFTh41A8tGg==} ++ '@inlang/paraglide-unplugin@1.8.7': ++ resolution: {integrity: sha512-lGSOP5W7rTRT6yAoqe0zU1qaSS/4Png18HDnIWoioVH3SIklJvHclWJhgd6WHa16WyHluLqZKr6oCObbBOPT+A==} + +- '@inlang/paraglide-vite@1.2.57': +- resolution: {integrity: sha512-RVFUEk5BHz4bK7BItCoZCexUH9+QjsEE1qaxOpwZwEZeUkdalpxyGgEMXGuzIofk2/J/k3EJD7H382oB+owlBA==} ++ '@inlang/paraglide-vite@1.2.76': ++ resolution: {integrity: sha512-l77r6OeLNFkHDGRzQNSJxD+2z/nJsjcQIYd64hNSOBVn/Mkgele7aJw5NrJIEn911ftPOZyojRhLOabbtWbWkg==} + +- '@inlang/plugin@2.4.11': +- resolution: {integrity: sha512-kn19uAvp81qS18Ha3xCmhzIysAd8wZCeTPffk5gYCOldmudUIZKvQ2P0BF3RuWpyftJb6yae1NxkLwT4QRfIPQ==} ++ '@inlang/plugin@2.4.14': ++ resolution: {integrity: sha512-HFI1t1tKs6jXqwKVl59vvt7kvMgg2Po7xA3IFijfJTZCt0tTI8txqeXCUV9jhUop29Hqj6a5zQd32BYv33Dulw==} + peerDependencies: + '@sinclair/typebox': ^0.31.17 + +@@ -434,44 +612,48 @@ packages: + '@inlang/result@1.1.0': + resolution: {integrity: sha512-zLGroi9EUiHuOjUOaglUVTFO7EWdo2OARMJLBO1Q5Ga/xJmSQb6XS1lhqEXBFAjgFarfEMX5YEJWWALogYV3wA==} + +- '@inlang/sdk@0.34.10': +- resolution: {integrity: sha512-dqiXMnOk6g1iz139Qq/ch4IXyPKCgW2wFRzFBQ20ZD0267QW6HZv/UBhK3fPVwSCXjvtYV6VetaqZGDnHsxdtA==} ++ '@inlang/sdk@0.36.3': ++ resolution: {integrity: sha512-wjsavc44H24v74tdEQ13FqZZcr43T106oEfHJnBLzEP55Zz2JJWABLund+DEdosZx+9E8mJBEW5JlVnlBwP3Zw==} + engines: {node: '>=18.0.0'} + + '@inlang/translatable@1.3.1': + resolution: {integrity: sha512-VAtle21vRpIrB+axtHFrFB0d1HtDaaNj+lV77eZQTJyOWbTFYTVIQJ8WAbyw9eu4F6h6QC2FutLyxjMomxfpcQ==} + ++ '@internationalized/date@3.5.6': ++ resolution: {integrity: sha512-jLxQjefH9VI5P9UQuqB6qNKnvFt1Ky1TPIzHGsIlCi7sZZoMR8SdYbBGRvM0y+Jtb+ez4ieBzmiAUcpmPYpyOw==} ++ + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + +- '@jest/schemas@29.6.3': +- resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} +- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} +- +- '@jridgewell/gen-mapping@0.3.3': +- resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} ++ '@jridgewell/gen-mapping@0.3.5': ++ resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + +- '@jridgewell/set-array@1.1.2': +- resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} ++ '@jridgewell/set-array@1.2.1': ++ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + +- '@jridgewell/sourcemap-codec@1.4.15': +- resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} ++ '@jridgewell/sourcemap-codec@1.5.0': ++ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} ++ ++ '@jridgewell/trace-mapping@0.3.25': ++ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + +- '@jridgewell/trace-mapping@0.3.22': +- resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} ++ '@lix-js/client@2.2.1': ++ resolution: {integrity: sha512-6DTJdRN2L2a1A8OxW1Wqh3ZOORqq8+YlCALMF5UMoxhfHE4Fcq9FZztMkAV+KwhrDSsp0USWvD9myG0XX+v6QQ==} + +- '@lix-js/client@1.4.0': +- resolution: {integrity: sha512-41mskLNCWPkRHjhQhhJw8J5l+kUaYEAuleKo6NhEzOceTYkAZeM2wxxqTbd+HMzvmJF40AfAK50sYx4tF3dDew==} ++ '@lix-js/fs@2.2.0': ++ resolution: {integrity: sha512-B9X3FjD8WmdG7tbA44JuniSO0KdKBWnjfxl8zpgrDCkavrp/GP7U0xxBkc0WgeeoHjQ/pkqq9VqtWB2kS9jIUg==} + +- '@lix-js/fs@1.0.0': +- resolution: {integrity: sha512-B3gnR0B7mOiYePnxh+XNU1OpVvvRYcLJ3MrdqkFVKiXz1fbKKCEMA53Vwhu3ehAMFFDB1Mo9+GVjiY2ssbA/ZQ==} ++ '@melt-ui/svelte@0.86.0': ++ resolution: {integrity: sha512-kFyioxwvDZfD7nChq+sHaJKyLQPleJlzIORNJx1Ou1NavMrwK1sJkAdtgxuyEzief7SU3f4skSF0Cpvjewx5fA==} ++ peerDependencies: ++ svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.118 + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} +@@ -537,9 +719,6 @@ packages: + resolution: {integrity: sha512-4tuKnCRecJ6CG6gr0XcEXdZtkTDbfbnD5oaHBmLERTjTMZNi2CbfEHZxPU41xXLDG4DfKf+sonu00zvKI9NSbw==} + engines: {node: '>= 18'} + +- '@octokit/openapi-types@19.1.0': +- resolution: {integrity: sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==} +- + '@octokit/openapi-types@20.0.0': + resolution: {integrity: sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==} + +@@ -584,143 +763,198 @@ packages: + resolution: {integrity: sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==} + engines: {node: '>= 18'} + +- '@octokit/types@12.4.0': +- resolution: {integrity: sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==} +- + '@octokit/types@12.6.0': + resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} + +- '@octokit/types@13.5.0': +- resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} ++ '@octokit/types@13.6.1': ++ resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==} + + '@octokit/webhooks-methods@4.1.0': + resolution: {integrity: sha512-zoQyKw8h9STNPqtm28UGOYFE7O6D4Il8VJwhAtMHFt2C4L0VQT1qGKLeefUOqHNs1mNRYSadVv7x0z8U2yyeWQ==} + engines: {node: '>= 18'} + +- '@octokit/webhooks-types@7.4.0': +- resolution: {integrity: sha512-FE2V+QZ2UYlh+9wWd5BPLNXG+J/XUD/PPq0ovS+nCcGX4+3qVbi3jYOmCTW48hg9SBBLtInx9+o7fFt4H5iP0Q==} ++ '@octokit/webhooks-types@7.6.1': ++ resolution: {integrity: sha512-S8u2cJzklBC0FgTwWVLaM8tMrDuDMVE4xiTK4EYXM9GntyvrdbSoxqDQa+Fh57CCNApyIpyeqPhhFEmHPfrXgw==} + +- '@octokit/webhooks@12.2.0': +- resolution: {integrity: sha512-CyuLJ0/P7bKZ+kIYw+fnkeVdhUzNuDKgNSI7pU/m7Nod0T7kP+s4s2f0pNmG9HL8/RZN1S0ZWTDll3VTMrFLAw==} ++ '@octokit/webhooks@12.3.1': ++ resolution: {integrity: sha512-BVwtWE3rRXB9IugmQTfKspqjNa8q+ab73ddkV9k1Zok3XbuOxJUi4lTYk5zBZDhfWb/Y2H+RO9Iggm25gsqeow==} + engines: {node: '>= 18'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + +- '@playwright/test@1.41.2': +- resolution: {integrity: sha512-qQB9h7KbibJzrDpkXkYvsmiDJK14FULCCZgEcoe2AvFAS64oCirWTwzTlAYEbKaRxWs5TFesE1Na6izMv3HfGg==} +- engines: {node: '>=16'} ++ '@playwright/test@1.48.2': ++ resolution: {integrity: sha512-54w1xCWfXuax7dz4W2M9uw0gDyh+ti/0K/MxcCUxChFh37kkdxPdfZDw5QBbuPUJHr1CiHJ1hXgSs+GgeQc5Zw==} ++ engines: {node: '>=18'} + hasBin: true + +- '@polka/url@1.0.0-next.25': +- resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} ++ '@polka/url@1.0.0-next.28': ++ resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + +- '@popperjs/core@2.11.8': +- resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} ++ '@poppinss/macroable@1.0.3': ++ resolution: {integrity: sha512-B4iV6QxW//Fn17+qF1EMZRmoThIUJlCtcO85yoRDJnMyHeAthjz4ig9OTkfGGXKtQhcdPX0me75gU5K9J897+w==} ++ engines: {node: '>=18.16.0'} + +- '@rollup/rollup-android-arm-eabi@4.11.0': +- resolution: {integrity: sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ==} ++ '@rollup/rollup-android-arm-eabi@4.25.0': ++ resolution: {integrity: sha512-CC/ZqFZwlAIbU1wUPisHyV/XRc5RydFrNLtgl3dGYskdwPZdt4HERtKm50a/+DtTlKeCq9IXFEWR+P6blwjqBA==} + cpu: [arm] + os: [android] + +- '@rollup/rollup-android-arm64@4.11.0': +- resolution: {integrity: sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw==} ++ '@rollup/rollup-android-arm64@4.25.0': ++ resolution: {integrity: sha512-/Y76tmLGUJqVBXXCfVS8Q8FJqYGhgH4wl4qTA24E9v/IJM0XvJCGQVSW1QZ4J+VURO9h8YCa28sTFacZXwK7Rg==} + cpu: [arm64] + os: [android] + +- '@rollup/rollup-darwin-arm64@4.11.0': +- resolution: {integrity: sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg==} ++ '@rollup/rollup-darwin-arm64@4.25.0': ++ resolution: {integrity: sha512-YVT6L3UrKTlC0FpCZd0MGA7NVdp7YNaEqkENbWQ7AOVOqd/7VzyHpgIpc1mIaxRAo1ZsJRH45fq8j4N63I/vvg==} + cpu: [arm64] + os: [darwin] + +- '@rollup/rollup-darwin-x64@4.11.0': +- resolution: {integrity: sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw==} ++ '@rollup/rollup-darwin-x64@4.25.0': ++ resolution: {integrity: sha512-ZRL+gexs3+ZmmWmGKEU43Bdn67kWnMeWXLFhcVv5Un8FQcx38yulHBA7XR2+KQdYIOtD0yZDWBCudmfj6lQJoA==} + cpu: [x64] + os: [darwin] + +- '@rollup/rollup-linux-arm-gnueabihf@4.11.0': +- resolution: {integrity: sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg==} ++ '@rollup/rollup-freebsd-arm64@4.25.0': ++ resolution: {integrity: sha512-xpEIXhiP27EAylEpreCozozsxWQ2TJbOLSivGfXhU4G1TBVEYtUPi2pOZBnvGXHyOdLAUUhPnJzH3ah5cqF01g==} ++ cpu: [arm64] ++ os: [freebsd] ++ ++ '@rollup/rollup-freebsd-x64@4.25.0': ++ resolution: {integrity: sha512-sC5FsmZGlJv5dOcURrsnIK7ngc3Kirnx3as2XU9uER+zjfyqIjdcMVgzy4cOawhsssqzoAX19qmxgJ8a14Qrqw==} ++ cpu: [x64] ++ os: [freebsd] ++ ++ '@rollup/rollup-linux-arm-gnueabihf@4.25.0': ++ resolution: {integrity: sha512-uD/dbLSs1BEPzg564TpRAQ/YvTnCds2XxyOndAO8nJhaQcqQGFgv/DAVko/ZHap3boCvxnzYMa3mTkV/B/3SWA==} ++ cpu: [arm] ++ os: [linux] ++ ++ '@rollup/rollup-linux-arm-musleabihf@4.25.0': ++ resolution: {integrity: sha512-ZVt/XkrDlQWegDWrwyC3l0OfAF7yeJUF4fq5RMS07YM72BlSfn2fQQ6lPyBNjt+YbczMguPiJoCfaQC2dnflpQ==} + cpu: [arm] + os: [linux] + +- '@rollup/rollup-linux-arm64-gnu@4.11.0': +- resolution: {integrity: sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg==} ++ '@rollup/rollup-linux-arm64-gnu@4.25.0': ++ resolution: {integrity: sha512-qboZ+T0gHAW2kkSDPHxu7quaFaaBlynODXpBVnPxUgvWYaE84xgCKAPEYE+fSMd3Zv5PyFZR+L0tCdYCMAtG0A==} + cpu: [arm64] + os: [linux] + +- '@rollup/rollup-linux-arm64-musl@4.11.0': +- resolution: {integrity: sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg==} ++ '@rollup/rollup-linux-arm64-musl@4.25.0': ++ resolution: {integrity: sha512-ndWTSEmAaKr88dBuogGH2NZaxe7u2rDoArsejNslugHZ+r44NfWiwjzizVS1nUOHo+n1Z6qV3X60rqE/HlISgw==} + cpu: [arm64] + os: [linux] + +- '@rollup/rollup-linux-riscv64-gnu@4.11.0': +- resolution: {integrity: sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA==} ++ '@rollup/rollup-linux-powerpc64le-gnu@4.25.0': ++ resolution: {integrity: sha512-BVSQvVa2v5hKwJSy6X7W1fjDex6yZnNKy3Kx1JGimccHft6HV0THTwNtC2zawtNXKUu+S5CjXslilYdKBAadzA==} ++ cpu: [ppc64] ++ os: [linux] ++ ++ '@rollup/rollup-linux-riscv64-gnu@4.25.0': ++ resolution: {integrity: sha512-G4hTREQrIdeV0PE2JruzI+vXdRnaK1pg64hemHq2v5fhv8C7WjVaeXc9P5i4Q5UC06d/L+zA0mszYIKl+wY8oA==} + cpu: [riscv64] + os: [linux] + +- '@rollup/rollup-linux-x64-gnu@4.11.0': +- resolution: {integrity: sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA==} ++ '@rollup/rollup-linux-s390x-gnu@4.25.0': ++ resolution: {integrity: sha512-9T/w0kQ+upxdkFL9zPVB6zy9vWW1deA3g8IauJxojN4bnz5FwSsUAD034KpXIVX5j5p/rn6XqumBMxfRkcHapQ==} ++ cpu: [s390x] ++ os: [linux] ++ ++ '@rollup/rollup-linux-x64-gnu@4.25.0': ++ resolution: {integrity: sha512-ThcnU0EcMDn+J4B9LD++OgBYxZusuA7iemIIiz5yzEcFg04VZFzdFjuwPdlURmYPZw+fgVrFzj4CA64jSTG4Ig==} + cpu: [x64] + os: [linux] + +- '@rollup/rollup-linux-x64-musl@4.11.0': +- resolution: {integrity: sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w==} ++ '@rollup/rollup-linux-x64-musl@4.25.0': ++ resolution: {integrity: sha512-zx71aY2oQxGxAT1JShfhNG79PnjYhMC6voAjzpu/xmMjDnKNf6Nl/xv7YaB/9SIa9jDYf8RBPWEnjcdlhlv1rQ==} + cpu: [x64] + os: [linux] + +- '@rollup/rollup-win32-arm64-msvc@4.11.0': +- resolution: {integrity: sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g==} ++ '@rollup/rollup-win32-arm64-msvc@4.25.0': ++ resolution: {integrity: sha512-JT8tcjNocMs4CylWY/CxVLnv8e1lE7ff1fi6kbGocWwxDq9pj30IJ28Peb+Y8yiPNSF28oad42ApJB8oUkwGww==} + cpu: [arm64] + os: [win32] + +- '@rollup/rollup-win32-ia32-msvc@4.11.0': +- resolution: {integrity: sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ==} ++ '@rollup/rollup-win32-ia32-msvc@4.25.0': ++ resolution: {integrity: sha512-dRLjLsO3dNOfSN6tjyVlG+Msm4IiZnGkuZ7G5NmpzwF9oOc582FZG05+UdfTbz5Jd4buK/wMb6UeHFhG18+OEg==} + cpu: [ia32] + os: [win32] + +- '@rollup/rollup-win32-x64-msvc@4.11.0': +- resolution: {integrity: sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg==} ++ '@rollup/rollup-win32-x64-msvc@4.25.0': ++ resolution: {integrity: sha512-/RqrIFtLB926frMhZD0a5oDa4eFIbyNEwLLloMTEjmqfwZWXywwVVOVmwTsuyhC9HKkVEZcOOi+KV4U9wmOdlg==} + cpu: [x64] + os: [win32] + +- '@sinclair/typebox@0.27.8': +- resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} ++ '@sideway/address@4.1.5': ++ resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} ++ ++ '@sideway/formula@3.0.1': ++ resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} ++ ++ '@sideway/pinpoint@2.0.0': ++ resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + + '@sinclair/typebox@0.31.28': + resolution: {integrity: sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ==} + +- '@sveltejs/adapter-auto@3.2.0': +- resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==} ++ '@sinclair/typebox@0.32.35': ++ resolution: {integrity: sha512-Ul3YyOTU++to8cgNkttakC0dWvpERr6RYoHO2W47DLbFvrwBDJUY31B1sImH6JZSYc4Kt4PyHtoPNu+vL2r2dA==} ++ ++ '@sveltejs/adapter-auto@3.3.1': ++ resolution: {integrity: sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + +- '@sveltejs/kit@2.5.7': +- resolution: {integrity: sha512-6uedTzrb7nQrw6HALxnPrPaXdIN2jJJTzTIl96Z3P5NiG+OAfpdPbrWrvkJ3GN4CfWqrmU4dJqwMMRMTD/C7ow==} ++ '@sveltejs/kit@2.8.0': ++ resolution: {integrity: sha512-HCiWupCuKJQ3aPaC4Xc6lpPdjOOnoGzEiYjOqMqppdtfGtY2ABrx932Vw66ZwS2RGXc0BmZvFvNq5SzqlmDVLg==} + engines: {node: '>=18.13'} + hasBin: true + peerDependencies: +- '@sveltejs/vite-plugin-svelte': ^3.0.0 ++ '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 + +- '@sveltejs/vite-plugin-svelte-inspector@2.1.0': +- resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} +- engines: {node: ^18.0.0 || >=20} ++ '@sveltejs/vite-plugin-svelte-inspector@3.0.1': ++ resolution: {integrity: sha512-2CKypmj1sM4GE7HjllT7UKmo4Q6L5xFRd7VMGEWhYnZ+wc6AUVU01IBd7yUi6WnFndEwWoMNOd6e8UjoN0nbvQ==} ++ engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: +- '@sveltejs/vite-plugin-svelte': ^3.0.0 +- svelte: ^4.0.0 || ^5.0.0-next.0 ++ '@sveltejs/vite-plugin-svelte': ^4.0.0-next.0||^4.0.0 ++ svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + +- '@sveltejs/vite-plugin-svelte@3.1.0': +- resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} +- engines: {node: ^18.0.0 || >=20} ++ '@sveltejs/vite-plugin-svelte@4.0.0': ++ resolution: {integrity: sha512-kpVJwF+gNiMEsoHaw+FJL76IYiwBikkxYU83+BpqQLdVMff19KeRKLd2wisS8niNBMJ2omv5gG+iGDDwd8jzag==} ++ engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: +- svelte: ^4.0.0 || ^5.0.0-next.0 ++ svelte: ^5.0.0-next.96 || ^5.0.0 + vite: ^5.0.0 + +- '@types/aws-lambda@8.10.138': +- resolution: {integrity: sha512-71EHMl70TPWIAsFuHd85NHq6S6T2OOjiisPTrH7RgcjzpJpPh4RQJv7PvVvIxc6PIp8CLV7F9B+TdjcAES5vcA==} ++ '@swc/helpers@0.5.15': ++ resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} ++ ++ '@tailwindcss/aspect-ratio@0.4.2': ++ resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==} ++ peerDependencies: ++ tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' ++ ++ '@tailwindcss/container-queries@0.1.1': ++ resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==} ++ peerDependencies: ++ tailwindcss: '>=3.2.0' ++ ++ '@tailwindcss/forms@0.5.9': ++ resolution: {integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==} ++ peerDependencies: ++ tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20' ++ ++ '@tailwindcss/typography@0.5.15': ++ resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==} ++ peerDependencies: ++ tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20' ++ ++ '@types/aws-lambda@8.10.145': ++ resolution: {integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==} + + '@types/btoa-lite@1.0.2': + resolution: {integrity: sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==} +@@ -728,111 +962,140 @@ packages: + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + +- '@types/debug@4.1.12': +- resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} ++ '@types/eslint@9.6.1': ++ resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + +- '@types/eslint@8.56.10': +- resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} ++ '@types/estree@1.0.6': ++ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + +- '@types/estree@1.0.5': +- resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} ++ '@types/json-schema@7.0.15': ++ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + +- '@types/json-schema@7.0.12': +- resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} ++ '@types/jsonwebtoken@9.0.7': ++ resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==} + +- '@types/jsonwebtoken@9.0.6': +- resolution: {integrity: sha512-/5hndP5dCjloafCXns6SZyESp3Ldq7YjH3zwzwczYnjxIT0Fqzk5ROSYVGfFyczIue7IUEj8hkvLbPoLQ18vQw==} ++ '@types/lodash@4.17.13': ++ resolution: {integrity: sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==} + +- '@types/lodash@4.17.4': +- resolution: {integrity: sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==} ++ '@types/node@22.9.0': ++ resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} + +- '@types/ms@0.7.34': +- resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} ++ '@types/validator@13.12.2': ++ resolution: {integrity: sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==} + +- '@types/node@20.12.12': +- resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==} ++ '@typeschema/class-validator@0.3.0': ++ resolution: {integrity: sha512-OJSFeZDIQ8EK1HTljKLT5CItM2wsbgczLN8tMEfz3I1Lmhc5TBfkZ0eikFzUC16tI3d1Nag7um6TfCgp2I2Bww==} ++ peerDependencies: ++ class-validator: ^0.14.1 ++ peerDependenciesMeta: ++ class-validator: ++ optional: true + +- '@types/pug@2.0.10': +- resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} ++ '@typeschema/core@0.14.0': ++ resolution: {integrity: sha512-Ia6PtZHcL3KqsAWXjMi5xIyZ7XMH4aSnOQes8mfMLx+wGFGtGRNlwe6Y7cYvX+WfNK67OL0/HSe9t8QDygV0/w==} ++ peerDependencies: ++ '@types/json-schema': ^7.0.15 ++ peerDependenciesMeta: ++ '@types/json-schema': ++ optional: true + +- '@typescript-eslint/eslint-plugin@7.10.0': +- resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==} +- engines: {node: ^18.18.0 || >=20.0.0} ++ '@typescript-eslint/eslint-plugin@8.14.0': ++ resolution: {integrity: sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: +- '@typescript-eslint/parser': ^7.0.0 +- eslint: ^8.56.0 ++ '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 ++ eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + +- '@typescript-eslint/parser@7.10.0': +- resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==} +- engines: {node: ^18.18.0 || >=20.0.0} ++ '@typescript-eslint/parser@8.14.0': ++ resolution: {integrity: sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: +- eslint: ^8.56.0 ++ eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + +- '@typescript-eslint/scope-manager@7.10.0': +- resolution: {integrity: sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==} +- engines: {node: ^18.18.0 || >=20.0.0} ++ '@typescript-eslint/scope-manager@8.14.0': ++ resolution: {integrity: sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + +- '@typescript-eslint/type-utils@7.10.0': +- resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==} +- engines: {node: ^18.18.0 || >=20.0.0} ++ '@typescript-eslint/type-utils@8.14.0': ++ resolution: {integrity: sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: +- eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + +- '@typescript-eslint/types@7.10.0': +- resolution: {integrity: sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==} +- engines: {node: ^18.18.0 || >=20.0.0} ++ '@typescript-eslint/types@8.14.0': ++ resolution: {integrity: sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + +- '@typescript-eslint/typescript-estree@7.10.0': +- resolution: {integrity: sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==} +- engines: {node: ^18.18.0 || >=20.0.0} ++ '@typescript-eslint/typescript-estree@8.14.0': ++ resolution: {integrity: sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + +- '@typescript-eslint/utils@7.10.0': +- resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==} +- engines: {node: ^18.18.0 || >=20.0.0} ++ '@typescript-eslint/utils@8.14.0': ++ resolution: {integrity: sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: +- eslint: ^8.56.0 ++ eslint: ^8.57.0 || ^9.0.0 ++ ++ '@typescript-eslint/visitor-keys@8.14.0': ++ resolution: {integrity: sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} ++ ++ '@vinejs/compiler@2.5.0': ++ resolution: {integrity: sha512-hg4ekaB5Y2zh+IWzBiC/WCDWrIfpVnKu/ubUvelKlidc/VbulsexoFRw5kJGHZenPVI5YzNnDeTdYSALkTV7jQ==} ++ engines: {node: '>=18.0.0'} ++ ++ '@vinejs/vine@1.8.0': ++ resolution: {integrity: sha512-Qq3XxbA26jzqS9ICifkqzT399lMQZ2fWtqeV3luI2as+UIK7qDifJFU2Q4W3q3IB5VXoWxgwAZSZEO0em9I/qQ==} ++ engines: {node: '>=18.16.0'} + +- '@typescript-eslint/visitor-keys@7.10.0': +- resolution: {integrity: sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==} +- engines: {node: ^18.18.0 || >=20.0.0} ++ '@vitest/expect@2.1.4': ++ resolution: {integrity: sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==} + +- '@ungap/structured-clone@1.2.0': +- resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} ++ '@vitest/mocker@2.1.4': ++ resolution: {integrity: sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==} ++ peerDependencies: ++ msw: ^2.4.9 ++ vite: ^5.0.0 ++ peerDependenciesMeta: ++ msw: ++ optional: true ++ vite: ++ optional: true + +- '@vitest/expect@1.2.2': +- resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} ++ '@vitest/pretty-format@2.1.4': ++ resolution: {integrity: sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==} + +- '@vitest/runner@1.2.2': +- resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} ++ '@vitest/runner@2.1.4': ++ resolution: {integrity: sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==} + +- '@vitest/snapshot@1.2.2': +- resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} ++ '@vitest/snapshot@2.1.4': ++ resolution: {integrity: sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==} + +- '@vitest/spy@1.2.2': +- resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} ++ '@vitest/spy@2.1.4': ++ resolution: {integrity: sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==} + +- '@vitest/utils@1.2.2': +- resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} ++ '@vitest/utils@2.1.4': ++ resolution: {integrity: sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==} + +- '@yr/monotone-cubic-spline@1.0.3': +- resolution: {integrity: sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==} ++ '@wolfy1339/lru-cache@11.0.2-patch.1': ++ resolution: {integrity: sha512-BgYZfL2ADCXKOw2wJtkM3slhHotawWkgIRRxq4wEybnZQPjvAp71SPX35xepMykTw8gXlzWcWPTY31hlbnRsDA==} ++ engines: {node: 18 >=18.20 || 20 || >=22} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} +@@ -844,12 +1107,8 @@ packages: + peerDependencies: + acorn: '>=8.9.0' + +- acorn-walk@8.3.2: +- resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} +- engines: {node: '>=0.4.0'} +- +- acorn@8.11.3: +- resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} ++ acorn@8.14.0: ++ resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + +@@ -864,18 +1123,14 @@ packages: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + +- ansi-regex@6.0.1: +- resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} ++ ansi-regex@6.1.0: ++ resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + +- ansi-styles@5.2.0: +- resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} +- engines: {node: '>=10'} +- + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} +@@ -887,24 +1142,38 @@ packages: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + +- apexcharts@3.45.2: +- resolution: {integrity: sha512-PpuM4sJWy70sUh5U1IFn1m1p45MdHSChLUNnqEoUUUHSU2IHZugFrsVNhov1S8Q0cvfdrCRCvdBtHGSs6PSAWQ==} +- + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + +- aria-query@5.3.0: +- resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} ++ aria-query@5.3.2: ++ resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} ++ engines: {node: '>= 0.4'} ++ ++ arktype@2.0.0-rc.8: ++ resolution: {integrity: sha512-ByrqjptsavUCUL9ptts6BUL2LCNkVZyniOdaBw76dlBQ6gYIhYSeycuuj4gRFwcAafszOnAPD2fAqHK7bbo/Zw==} + +- array-union@2.1.0: +- resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} +- engines: {node: '>=8'} ++ array-buffer-byte-length@1.0.1: ++ resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} ++ engines: {node: '>= 0.4'} ++ ++ array-includes@3.1.8: ++ resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} ++ engines: {node: '>= 0.4'} ++ ++ array.prototype.reduce@1.0.7: ++ resolution: {integrity: sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==} ++ engines: {node: '>= 0.4'} ++ ++ arraybuffer.prototype.slice@1.0.3: ++ resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} ++ engines: {node: '>= 0.4'} + +- assertion-error@1.1.0: +- resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} ++ assertion-error@2.0.1: ++ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} ++ engines: {node: '>=12'} + + async-lock@1.4.1: + resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} +@@ -912,18 +1181,23 @@ packages: + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + +- autoprefixer@10.4.17: +- resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} ++ autoprefixer@10.4.20: ++ resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + +- axios@1.7.2: +- resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} ++ available-typed-arrays@1.0.7: ++ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} ++ engines: {node: '>= 0.4'} ++ ++ axios@1.7.7: ++ resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + +- axobject-query@4.0.0: +- resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} ++ axobject-query@4.1.0: ++ resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} ++ engines: {node: '>= 0.4'} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} +@@ -931,10 +1205,16 @@ packages: + before-after-hook@2.2.3: + resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} + +- binary-extensions@2.2.0: +- resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} ++ binary-extensions@2.3.0: ++ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + ++ bits-ui@1.0.0-next.63: ++ resolution: {integrity: sha512-3z4+N+KudMK8AeBzhy/0568zVoEJCUgL4RkElB41BWGjofk68en2TaAfKFhhc/bn4z+uKrs9r1NtybDdsy0bpA==} ++ engines: {node: '>=18', pnpm: '>=8.7.0'} ++ peerDependencies: ++ svelte: ^5.0.0-next.1 ++ + bottleneck@2.19.5: + resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + +@@ -944,28 +1224,32 @@ packages: + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + +- braces@3.0.2: +- resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} ++ braces@3.0.3: ++ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + +- browserslist@4.23.0: +- resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} ++ 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 + + btoa-lite@1.0.0: + resolution: {integrity: sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==} + +- buffer-crc32@0.2.13: +- resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} +- + 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==} ++ + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + ++ call-bind@1.0.7: ++ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} ++ engines: {node: '>= 0.4'} ++ + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} +@@ -974,26 +1258,35 @@ packages: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + +- caniuse-lite@1.0.30001587: +- resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==} ++ camelcase@8.0.0: ++ resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} ++ engines: {node: '>=16'} ++ ++ caniuse-lite@1.0.30001680: ++ resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} + +- chai@4.4.1: +- resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} +- engines: {node: '>=4'} ++ chai@5.1.2: ++ resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} ++ engines: {node: '>=12'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + +- check-error@1.0.3: +- resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} ++ check-error@2.1.1: ++ resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} ++ engines: {node: '>= 16'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + +- classnames@2.5.1: +- resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} ++ chokidar@4.0.1: ++ resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} ++ engines: {node: '>= 14.16.0'} ++ ++ class-validator@0.14.1: ++ resolution: {integrity: sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==} + + clean-git-ref@2.0.1: + resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==} +@@ -1006,12 +1299,6 @@ packages: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + +- code-red@1.0.4: +- resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} +- +- codejar@4.2.0: +- resolution: {integrity: sha512-U8OZe+2B400W5nSSbXxaoboBN5i1hxWdBZJ9kcTy0DBuc4muwkPE/ph/MGX4yooIE8hztfNLPNU1CbcNYch69A==} +- + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} +@@ -1051,14 +1338,10 @@ packages: + engines: {node: '>=0.8'} + hasBin: true + +- cross-spawn@7.0.3: +- resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} ++ cross-spawn@7.0.5: ++ resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} + engines: {node: '>= 8'} + +- css-tree@2.3.1: +- resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} +- engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} +- + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} +@@ -1067,11 +1350,26 @@ packages: + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + ++ data-view-buffer@1.0.1: ++ resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} ++ engines: {node: '>= 0.4'} ++ ++ data-view-byte-length@1.0.1: ++ resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} ++ engines: {node: '>= 0.4'} ++ ++ data-view-byte-offset@1.0.0: ++ resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} ++ engines: {node: '>= 0.4'} ++ ++ date-fns@4.1.0: ++ resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} ++ + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + +- debug@4.3.4: +- resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} ++ debug@4.3.7: ++ resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' +@@ -1087,8 +1385,8 @@ packages: + babel-plugin-macros: + optional: true + +- deep-eql@4.1.3: +- resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} ++ deep-eql@5.0.2: ++ resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + deep-is@0.1.4: +@@ -1102,6 +1400,14 @@ packages: + 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'} ++ ++ define-properties@1.2.1: ++ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} ++ engines: {node: '>= 0.4'} ++ + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} +@@ -1113,39 +1419,20 @@ packages: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + +- detect-indent@6.1.0: +- resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} +- engines: {node: '>=8'} +- + devalue@4.3.3: + resolution: {integrity: sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==} + +- devalue@5.0.0: +- resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} ++ devalue@5.1.1: ++ resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + +- diff-sequences@29.6.3: +- resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} +- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} +- +- diff3@0.0.4: +- resolution: {integrity: sha512-f1rQ7jXDn/3i37hdwRk9ohqcvLRH3+gEIgmA6qEM280WUOh7cOr3GXV8Jm5sPwUs46Nzl48SE8YNLGJoaLuodg==} +- +- dir-glob@3.0.1: +- resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} +- engines: {node: '>=8'} +- + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + +- doctrine@3.0.0: +- resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} +- engines: {node: '>=6.0.0'} +- +- dotenv@16.4.4: +- resolution: {integrity: sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==} ++ dotenv@16.4.5: ++ resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + eastasianwidth@0.2.0: +@@ -1154,11 +1441,11 @@ packages: + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + +- effect@3.8.3: +- resolution: {integrity: sha512-ZHTNRik0mJWK+g12/HHwsouOux0OE2v+qRD7zsEJLtZ1RJdrlxvCpSXdJ+KgOqJ4wigIToDSb5e5HG885uKs/w==} ++ effect@3.10.14: ++ resolution: {integrity: sha512-NtEeDltifeP6SX1JptGL+k1k6CDjB++Yc7enAKEj3Pd7/4Llb4CDgZybqyiyqBkGK805ZLOIkyAyELdoJpmcqg==} + +- electron-to-chromium@1.4.671: +- resolution: {integrity: sha512-UUlE+/rWbydmp+FW8xlnnTA5WNA0ZZd2XL8CuMS72rh+k4y1f8+z6yk3UQhEwqHQWj6IBdL78DwWOdGMvYfQyA==} ++ electron-to-chromium@1.5.56: ++ resolution: {integrity: sha512-7lXb9dAvimCFdvUMTyucD4mnIndt/xhRKFAlky0CyFogdnNmdPQNoHI23msF/2V4mpTxMzgMdjK4+YRlFlRQZw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} +@@ -1166,31 +1453,70 @@ packages: + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + +- es6-promise@3.3.1: +- resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} ++ es-abstract@1.23.3: ++ resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} ++ engines: {node: '>= 0.4'} + +- esbuild-wasm@0.19.12: +- resolution: {integrity: sha512-Zmc4hk6FibJZBcTx5/8K/4jT3/oG1vkGTEeKJUQFCUQKimD6Q7+adp/bdVQyYJFolMKaXkQnVZdV4O5ZaTYmyQ==} +- engines: {node: '>=12'} +- hasBin: true ++ es-array-method-boxes-properly@1.0.0: ++ resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + +- esbuild@0.19.12: +- resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} +- engines: {node: '>=12'} +- hasBin: true ++ es-define-property@1.0.0: ++ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} ++ engines: {node: '>= 0.4'} + +- escalade@3.1.2: +- resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} +- engines: {node: '>=6'} ++ es-errors@1.3.0: ++ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} ++ engines: {node: '>= 0.4'} + +- escape-string-regexp@4.0.0: +- resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} +- engines: {node: '>=10'} ++ es-object-atoms@1.0.0: ++ resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} ++ engines: {node: '>= 0.4'} + +- eslint-compat-utils@0.1.2: +- resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} +- engines: {node: '>=12'} +- peerDependencies: ++ es-set-tostringtag@2.0.3: ++ resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} ++ engines: {node: '>= 0.4'} ++ ++ es-to-primitive@1.2.1: ++ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} ++ engines: {node: '>= 0.4'} ++ ++ es7-shim@6.0.0: ++ resolution: {integrity: sha512-aiQ/QyJBVJbabtsSediM1S4qI+P3p8F5J5YR5o/bH003BCnnclzxK9pi5Qd2Hg01ktAtZCaQBdejHrkOBGwf5Q==} ++ engines: {node: '>=0.4.0'} ++ ++ esbuild-runner@2.2.2: ++ resolution: {integrity: sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==} ++ hasBin: true ++ peerDependencies: ++ esbuild: '*' ++ ++ esbuild-wasm@0.19.12: ++ resolution: {integrity: sha512-Zmc4hk6FibJZBcTx5/8K/4jT3/oG1vkGTEeKJUQFCUQKimD6Q7+adp/bdVQyYJFolMKaXkQnVZdV4O5ZaTYmyQ==} ++ engines: {node: '>=12'} ++ hasBin: true ++ ++ esbuild@0.21.5: ++ resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} ++ engines: {node: '>=12'} ++ hasBin: true ++ ++ esbuild@0.24.0: ++ resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} ++ engines: {node: '>=18'} ++ hasBin: true ++ ++ escalade@3.2.0: ++ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} ++ engines: {node: '>=6'} ++ ++ escape-string-regexp@4.0.0: ++ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} ++ engines: {node: '>=10'} ++ ++ eslint-compat-utils@0.5.1: ++ resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} ++ engines: {node: '>=12'} ++ peerDependencies: + eslint: '>=6.0.0' + + eslint-config-prettier@9.1.0: +@@ -1199,12 +1525,12 @@ packages: + peerDependencies: + eslint: '>=7.0.0' + +- eslint-plugin-svelte@2.35.1: +- resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==} ++ eslint-plugin-svelte@2.46.0: ++ resolution: {integrity: sha512-1A7iEMkzmCZ9/Iz+EAfOGYL8IoIG6zeKEq1SmpxGeM5SXmoQq+ZNnCpXFVJpsxPWYx8jIVGMerQMzX20cqUl0g==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: +- eslint: ^7.0.0 || ^8.0.0-0 +- svelte: ^3.37.0 || ^4.0.0 ++ eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 ++ svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true +@@ -1213,41 +1539,41 @@ packages: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + +- eslint-scope@8.0.1: +- resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} ++ eslint-scope@8.2.0: ++ resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + +- eslint-visitor-keys@4.0.0: +- resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} ++ eslint-visitor-keys@4.2.0: ++ resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + +- eslint@8.56.0: +- resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} +- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} +- hasBin: true +- +- eslint@9.0.0: +- resolution: {integrity: sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==} ++ eslint@9.14.0: ++ resolution: {integrity: sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true ++ peerDependencies: ++ jiti: '*' ++ peerDependenciesMeta: ++ jiti: ++ optional: true + +- esm-env@1.0.0: +- resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} ++ esm-env@1.1.4: ++ resolution: {integrity: sha512-oO82nKPHKkzIj/hbtuDYy/JHqBHFlMIW36SDiPCVsj87ntDLcWN+sJ1erdVryd4NxODacFTsdrIE3b7IamqbOg==} + +- espree@10.0.1: +- resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} ++ espree@10.3.0: ++ resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + +- esquery@1.5.0: +- resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} ++ esquery@1.6.0: ++ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrap@1.2.2: +@@ -1268,9 +1594,13 @@ packages: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + +- execa@8.0.1: +- resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} +- engines: {node: '>=16.17'} ++ expect-type@1.1.0: ++ resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} ++ engines: {node: '>=12.0.0'} ++ ++ fast-check@3.23.1: ++ resolution: {integrity: sha512-u/MudsoQEgBUZgR5N1v87vEgybeVYus9VnDVaIkxkkGP2jt54naghQ3PCQHJiogS8U/GavZCUPFfx3Xkp+NaHw==} ++ engines: {node: '>=8.0.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} +@@ -1285,60 +1615,41 @@ packages: + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + +- fastq@1.15.0: +- resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} ++ fastq@1.17.1: ++ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + +- file-entry-cache@6.0.1: +- resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} +- engines: {node: ^10.12.0 || >=12.0.0} ++ fdir@6.4.2: ++ resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} ++ peerDependencies: ++ picomatch: ^3 || ^4 ++ peerDependenciesMeta: ++ picomatch: ++ optional: true + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + +- fill-range@7.0.1: +- resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} ++ fill-range@7.1.1: ++ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + +- flat-cache@3.2.0: +- resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} +- engines: {node: ^10.12.0 || >=12.0.0} +- + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + +- flatted@3.2.9: +- resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} ++ flatted@3.3.1: ++ resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + +- flowbite-svelte-blocks@1.1.0: +- resolution: {integrity: sha512-kAU8HMWEOL+BuHesFCKPbN3VTYz9A879yowB3Bg76/mzZ8P8x9H2BBhhRFjsaLGJFGPa+3LD2Yu0Y3Nyz62H9g==} +- engines: {node: '>=16.0.0', npm: '>=7.0.0'} +- peerDependencies: +- svelte: ^4.0.0 || ^5.0.0 +- +- flowbite-svelte-icons@1.3.1: +- resolution: {integrity: sha512-U792lo+50jz0L2Ne3JbSrgJAwUbn1T/QVUKFfk81FDdIlve0g45X/5nS3+o8qckWPDORbDEP2IhaYiE+QI6/lQ==} +- peerDependencies: +- svelte: ^3.54.0 || ^4.0.0 || ^5.0.0 +- tailwind-merge: ^2.0.0 +- tailwindcss: ^3.3.2 +- +- flowbite-svelte@0.44.23: +- resolution: {integrity: sha512-F79/iRLLs5WHYX1CqFx5Maqookit1tLpN0VmHR91tcuFEcHY5BRyLXb7hVehwj16wvG7/N0Blchlz55HyqPjhQ==} +- engines: {node: '>=18.0.0', pnpm: '>=8.0.0'} +- peerDependencies: +- svelte: ^4.0.0 +- +- flowbite@2.3.0: +- resolution: {integrity: sha512-pm3JRo8OIJHGfFYWgaGpPv8E+UdWy0Z3gEAGufw+G/1dusaU/P1zoBLiQpf2/+bYAi+GBQtPVG86KYlV0W+AFQ==} ++ focus-trap@7.6.1: ++ resolution: {integrity: sha512-nB8y4nQl8PshahLpGKZOq1sb0xrMVFSn6at7u/qOsBZTlZRzaapISGENcB6mOkoezbClZyiMwEF/dGY8AZ00rA==} + +- follow-redirects@1.15.6: +- resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} ++ follow-redirects@1.15.9: ++ resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' +@@ -1346,20 +1657,27 @@ packages: + debug: + optional: true + +- foreground-child@3.1.1: +- resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} ++ for-each@0.3.3: ++ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} ++ ++ foreground-child@3.3.0: ++ resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + +- form-data@4.0.0: +- resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} ++ form-data@4.0.1: ++ resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + ++ formsnap@2.0.0-next.1: ++ resolution: {integrity: sha512-ha8r9eMmsGEGMY+ljV3FEyTtB72E7dt95y9HHUbCcaDnjbz3Q6n00BHLz7dfBZ9rqyaMeIO200EmP1IcYMExeg==} ++ engines: {node: '>=18', pnpm: '>=8.7.0'} ++ peerDependencies: ++ svelte: ^5.0.0 ++ sveltekit-superforms: ^2.19.0 ++ + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + +- fs.realpath@1.0.0: +- resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} +- + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} +@@ -1373,12 +1691,20 @@ packages: + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + +- get-func-name@2.0.2: +- resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} ++ function.prototype.name@1.1.6: ++ resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} ++ engines: {node: '>= 0.4'} + +- get-stream@8.0.1: +- resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} +- engines: {node: '>=16'} ++ functions-have-names@1.2.3: ++ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} ++ ++ get-intrinsic@1.2.4: ++ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} ++ engines: {node: '>= 0.4'} ++ ++ get-symbol-description@1.0.2: ++ resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} ++ engines: {node: '>= 0.4'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} +@@ -1388,34 +1714,30 @@ packages: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + +- glob@10.3.10: +- resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} +- engines: {node: '>=16 || 14 >=14.17'} ++ glob@10.4.5: ++ resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + +- glob@7.2.3: +- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} +- +- globals@13.24.0: +- resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} +- engines: {node: '>=8'} +- + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + ++ globals@15.12.0: ++ resolution: {integrity: sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==} ++ engines: {node: '>=18'} ++ ++ globalthis@1.0.4: ++ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} ++ engines: {node: '>= 0.4'} ++ + globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + +- globby@11.1.0: +- resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} +- engines: {node: '>=10'} +- + globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + +- graceful-fs@4.2.11: +- resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} ++ gopd@1.0.1: ++ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} +@@ -1424,26 +1746,43 @@ packages: + resolution: {integrity: sha512-3Tm6R43KhtZWEVSHZnFmYMV9+gf3Vu0HXNNYtPVk2s7o8eGwYlJPHrjLtYw/7HBc10YxV+bfzKMuOf24z5qFng==} + engines: {node: '>=16.17.0'} + ++ has-bigints@1.0.2: ++ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} ++ + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + +- hasown@2.0.1: +- resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} ++ has-property-descriptors@1.0.2: ++ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} ++ ++ has-proto@1.0.3: ++ resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + +- highlight.js@11.10.0: +- resolution: {integrity: sha512-SYVnVFswQER+zu1laSya563s+F8VDGt7o35d4utbamowvUNLLMovFqwCLSocpZTz3MgaSRA1IbqRWZv97dtErQ==} +- engines: {node: '>=12.0.0'} ++ has-symbols@1.0.3: ++ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} ++ engines: {node: '>= 0.4'} + +- human-signals@5.0.0: +- resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} +- engines: {node: '>=16.17.0'} ++ has-tostringtag@1.0.2: ++ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} ++ engines: {node: '>= 0.4'} ++ ++ hash.js@1.1.7: ++ resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} ++ ++ hasown@2.0.2: ++ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} ++ engines: {node: '>= 0.4'} + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + ++ ignore@5.3.2: ++ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} ++ engines: {node: '>= 4'} ++ + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} +@@ -1459,18 +1798,46 @@ packages: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + +- inflight@1.0.6: +- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} +- + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + ++ inline-style-parser@0.2.4: ++ resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} ++ ++ internal-slot@1.0.7: ++ resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} ++ engines: {node: '>= 0.4'} ++ ++ is-array-buffer@3.0.4: ++ resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} ++ engines: {node: '>= 0.4'} ++ ++ is-bigint@1.0.4: ++ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} ++ + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + +- is-core-module@2.13.1: +- resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} ++ is-boolean-object@1.1.2: ++ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} ++ engines: {node: '>= 0.4'} ++ ++ is-callable@1.2.7: ++ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} ++ engines: {node: '>= 0.4'} ++ ++ is-core-module@2.15.1: ++ resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} ++ engines: {node: '>= 0.4'} ++ ++ is-data-view@1.0.1: ++ resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} ++ engines: {node: '>= 0.4'} ++ ++ is-date-object@1.0.5: ++ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} ++ engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} +@@ -1484,32 +1851,60 @@ packages: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + ++ is-negative-zero@2.0.3: ++ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} ++ engines: {node: '>= 0.4'} ++ ++ is-number-object@1.0.7: ++ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} ++ engines: {node: '>= 0.4'} ++ + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + +- is-path-inside@3.0.3: +- resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} +- engines: {node: '>=8'} +- + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} + +- is-stream@3.0.0: +- resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} +- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} ++ is-regex@1.1.4: ++ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} ++ engines: {node: '>= 0.4'} ++ ++ is-shared-array-buffer@1.0.3: ++ resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} ++ engines: {node: '>= 0.4'} ++ ++ is-string@1.0.7: ++ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} ++ engines: {node: '>= 0.4'} ++ ++ is-symbol@1.0.4: ++ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} ++ engines: {node: '>= 0.4'} ++ ++ is-typed-array@1.1.13: ++ resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} ++ engines: {node: '>= 0.4'} ++ ++ is-weakref@1.0.2: ++ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} ++ ++ isarray@2.0.5: ++ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + +- jackspeak@2.3.6: +- resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} +- engines: {node: '>=14'} ++ jackspeak@3.4.3: ++ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + +- jiti@1.21.0: +- resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} ++ jiti@1.21.6: ++ resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + ++ joi@17.13.3: ++ resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} ++ + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true +@@ -1517,24 +1912,31 @@ packages: + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + ++ json-schema-to-ts@3.1.1: ++ resolution: {integrity: sha512-+DWg8jCJG2TEnpy7kOm/7/AxaYoaRbjVB4LFZLySZlWn8exGs3A4OLJR966cVvU26N7X9TWxl+Jsw7dzAqKT6g==} ++ engines: {node: '>=16'} ++ + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + ++ json-to-ts@2.1.0: ++ resolution: {integrity: sha512-JeScjtIGYAxQVxEYgQUKROU0329eS+rsTSviGtuKiwKuXpcIU7DxhDYm2tey0vcBetwc9kD0+YHDI5KvEexMew==} ++ + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + +- jsonc-parser@3.2.1: +- resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} +- + jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + ++ just-clone@6.2.0: ++ resolution: {integrity: sha512-1IynUYEc/HAwxhi3WDpIpxJbZpMCvvrrmZVqvj9EhpvbH8lls7HhdhiByjL7DkAaWlLIzpC0Xc/VPvy/UxLNjA==} ++ + jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + +@@ -1548,24 +1950,27 @@ packages: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + +- known-css-properties@0.29.0: +- resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} ++ known-css-properties@0.35.0: ++ resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + ++ libphonenumber-js@1.11.14: ++ resolution: {integrity: sha512-sexvAfwcW1Lqws4zFp8heAtAEXbEDnvkYCEGzvOoMgZR7JhXo/IkE9MkkGACgBed5fWqh3ShBGnJBdDnU9N8EQ==} ++ + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + ++ lilconfig@3.1.2: ++ resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} ++ engines: {node: '>=14'} ++ + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + +- local-pkg@0.5.0: +- resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} +- engines: {node: '>=14'} +- + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + +@@ -1573,6 +1978,9 @@ packages: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + ++ lodash.castarray@4.4.0: ++ resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} ++ + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + +@@ -1600,36 +2008,29 @@ packages: + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + +- loupe@2.3.7: +- resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} +- +- lru-cache@10.2.0: +- resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} +- engines: {node: 14 || >=16.14} ++ loupe@3.1.2: ++ resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + +- lru-cache@6.0.0: +- resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} +- engines: {node: '>=10'} +- +- magic-string@0.30.10: +- resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} ++ lru-cache@10.4.3: ++ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + +- magic-string@0.30.7: +- resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} +- engines: {node: '>=12'} ++ lucide-svelte@0.454.0: ++ resolution: {integrity: sha512-TgW17HI7M8LeFZ3NpaDp1LwPGBGMVjx/x81TtK+AacEQvmJcqetqeJNeBT18NMEJP9+zi/Wt+Zc8mo44K5Uszw==} ++ peerDependencies: ++ svelte: ^3 || ^4 || ^5.0.0-next.42 + +- mdn-data@2.0.30: +- resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} ++ magic-string@0.30.12: ++ resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + +- merge-stream@2.0.0: +- resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} ++ memoize-weak@1.0.2: ++ resolution: {integrity: sha512-gj39xkrjEw7nCn4nJ1M5ms6+MyMlyiGmttzsqAUsAKn6bYKwuTHh/AO3cKPF8IBrTIYTxb0wWXFs3E//Y8VoWQ==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + +- micromatch@4.0.5: +- resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} ++ micromatch@4.0.8: ++ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: +@@ -1640,42 +2041,28 @@ packages: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + +- mimic-fn@4.0.0: +- resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} +- engines: {node: '>=12'} +- +- min-indent@1.0.1: +- resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} +- engines: {node: '>=4'} +- + mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + ++ minimalistic-assert@1.0.1: ++ resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} ++ + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + +- minimatch@9.0.3: +- resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} +- engines: {node: '>=16 || 14 >=14.17'} +- +- minimatch@9.0.4: +- resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} ++ minimatch@9.0.5: ++ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + +- minimist@1.2.8: +- resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} +- +- minipass@7.0.4: +- resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} ++ minipass@7.1.2: ++ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + +- mkdirp@0.5.6: +- resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} +- hasBin: true +- +- mlly@1.5.0: +- resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} ++ mode-watcher@0.4.1: ++ resolution: {integrity: sha512-bNC+1NXmwEFZtziCdZSgP7HFQTpqJPcQn9GwwJQGSf6SBF3neEPYV1uRwkYuAQwbsvsXIYtzaqgedDzJ7D1mhg==} ++ peerDependencies: ++ svelte: ^4.0.0 || ^5.0.0-next.1 + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} +@@ -1685,8 +2072,8 @@ packages: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + +- ms@2.1.2: +- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} ++ ms@2.1.3: ++ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + murmurhash3js@3.0.1: + resolution: {integrity: sha512-KL8QYUaxq7kUbcl0Yto51rMcYt7E/4N4BG3/c96Iqw1PQrTRspu8Cpx4TZ4Nunib1d4bEkIH3gjCYlP2RLBdow==} +@@ -1700,16 +2087,16 @@ packages: + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + +- nanoid@5.0.7: +- resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} ++ nanoid@5.0.8: ++ resolution: {integrity: sha512-TcJPw+9RV9dibz1hHUzlLVy8N4X9TnwirAjrU08Juo6BNKggzVfP2ZJ/3ZUSq15Xl5i85i+Z89XBO90pB2PghQ==} + engines: {node: ^18 || >=20} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + +- node-releases@2.0.14: +- resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} ++ node-releases@2.0.18: ++ resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} +@@ -1719,9 +2106,9 @@ packages: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + +- npm-run-path@5.2.0: +- resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} +- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} ++ normalize-url@8.0.1: ++ resolution: {integrity: sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==} ++ engines: {node: '>=14.16'} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} +@@ -1731,6 +2118,30 @@ packages: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + ++ object-inspect@1.13.3: ++ resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} ++ engines: {node: '>= 0.4'} ++ ++ object-keys@1.1.1: ++ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} ++ engines: {node: '>= 0.4'} ++ ++ object.assign@4.1.5: ++ resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} ++ engines: {node: '>= 0.4'} ++ ++ object.entries@1.1.8: ++ resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} ++ engines: {node: '>= 0.4'} ++ ++ object.getownpropertydescriptors@2.1.8: ++ resolution: {integrity: sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==} ++ engines: {node: '>= 0.8'} ++ ++ object.values@1.2.0: ++ resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} ++ engines: {node: '>= 0.4'} ++ + octokit@3.1.2: + resolution: {integrity: sha512-MG5qmrTL5y8KYwFgE1A4JWmgfQBaIETE/lOlfwNYx1QOtCQHGVxkRJmdUJltFc1HVn73d61TlMhMyNTOtMl+ng==} + engines: {node: '>= 18'} +@@ -1738,29 +2149,29 @@ packages: + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + +- onetime@6.0.0: +- resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} +- engines: {node: '>=12'} +- +- optionator@0.9.3: +- resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} ++ optionator@0.9.4: ++ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + +- p-limit@5.0.0: +- resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} +- engines: {node: '>=18'} +- + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + ++ package-json-from-dist@1.0.1: ++ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} ++ + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + ++ paneforge@1.0.0-next.1: ++ resolution: {integrity: sha512-K28RZ/KLqnZJeuZ7TZNv5C51NrQ3UPggf2sIhIXjTd4brpRZpmCA9C2SL2o4CC0U2Ox75KxUFwEXq2A/iDBuZg==} ++ peerDependencies: ++ svelte: ^5.0.0-next.1 ++ + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} +@@ -1769,40 +2180,26 @@ packages: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + +- path-is-absolute@1.0.1: +- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} +- engines: {node: '>=0.10.0'} +- + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + +- path-key@4.0.0: +- resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} +- engines: {node: '>=12'} +- + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + +- path-scurry@1.10.1: +- resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} +- engines: {node: '>=16 || 14 >=14.17'} +- +- path-type@4.0.0: +- resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} +- engines: {node: '>=8'} ++ path-scurry@1.11.1: ++ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} ++ engines: {node: '>=16 || 14 >=14.18'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + +- pathval@1.1.1: +- resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} +- +- periscopic@3.1.0: +- resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} ++ pathval@2.0.0: ++ resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} ++ engines: {node: '>= 14.16'} + +- picocolors@1.0.0: +- resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} ++ picocolors@1.1.1: ++ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} +@@ -1820,21 +2217,25 @@ packages: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + +- pkg-types@1.0.3: +- resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} +- +- playwright-core@1.41.2: +- resolution: {integrity: sha512-VaTvwCA4Y8kxEe+kfm2+uUUw5Lubf38RxF7FpBxLPmGe5sdNkSg5e3ChEigaGrX7qdqT3pt2m/98LiyvU2x6CA==} +- engines: {node: '>=16'} ++ playwright-core@1.48.2: ++ resolution: {integrity: sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==} ++ engines: {node: '>=18'} + hasBin: true + +- playwright@1.41.2: +- resolution: {integrity: sha512-v0bOa6H2GJChDL8pAeLa/LZC4feoAMbSQm1/jF/ySsWWoaNItvrMP7GEkvEEFyCTUYKMxjQKaTSg5up7nR6/8A==} +- engines: {node: '>=16'} ++ playwright@1.48.2: ++ resolution: {integrity: sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==} ++ engines: {node: '>=18'} + hasBin: true + +- pocketbase@0.21.2: +- resolution: {integrity: sha512-XZdgU9dEv3TPjexDRHy5feYrZrJhWqxTki8ClFGpsnC51G3Qkwoa/U7CVG72jYcLDP3p0HiEhRUUevnlryWkHA==} ++ pluralize@3.1.0: ++ resolution: {integrity: sha512-2wcybwjwXOzGI1rlxWtlcs0/nSYK0OzNPqsg35TKxJFQlGhFu3cZ1x7EHS4r4bubQlhzyF4YxxlJqQnIhkUQCw==} ++ ++ pocketbase@0.21.5: ++ resolution: {integrity: sha512-bnI/uinnQps+ElSlzxkc4yvwuSFfKcoszDtXH/4QT2FhGq2mJVUvDlxn+rjRXVntUjPfmMG5LEPZ1eGqV6ssog==} ++ ++ possible-typed-array-names@1.0.0: ++ resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} ++ engines: {node: '>= 0.4'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} +@@ -1872,8 +2273,8 @@ packages: + ts-node: + optional: true + +- postcss-nested@6.0.1: +- resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} ++ postcss-nested@6.2.0: ++ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 +@@ -1890,33 +2291,37 @@ packages: + peerDependencies: + postcss: ^8.4.29 + +- postcss-selector-parser@6.0.15: +- resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} ++ postcss-selector-parser@6.0.10: ++ resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} ++ engines: {node: '>=4'} ++ ++ postcss-selector-parser@6.1.2: ++ resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + +- postcss@8.4.35: +- resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} ++ postcss@8.4.49: ++ resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + engines: {node: ^10 || ^12 || >=14} + +- posthog-node@3.1.3: +- resolution: {integrity: sha512-UaOOoWEUYTcaaDe1w0fgHW/sXvFr3RO0l7yI7RUDzkZNZCfwXNO9r3pc14d1EtNppF/SHBrV5hNiZZATpf/vUw==} ++ posthog-node@4.2.1: ++ resolution: {integrity: sha512-l+fsjYEkTik3m/G0pE7gMr4qBJP84LhK779oQm6MBzhBGpd4By4qieTW+4FUAlNCyzQTynn3Nhsa50c0IELSxQ==} + engines: {node: '>=15.0.0'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + +- prettier-plugin-svelte@3.2.1: +- resolution: {integrity: sha512-ENAPbIxASf2R79IZwgkG5sBdeNA9kLRlXVvKKmTXh79zWTy0KKoT86XO2pHrTitUPINd+iXWy12MRmgzKGVckA==} ++ prettier-plugin-svelte@3.2.8: ++ resolution: {integrity: sha512-PAHmmU5cGZdnhW4mWhmvxuG2PVbbHIxUuPOdUKvfE+d4Qt2d29iU5VWrPdsaW5YqVEE0nqhlvN4eoKmVMpIF3Q==} + peerDependencies: + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 + +- prettier-plugin-tailwindcss@0.5.14: +- resolution: {integrity: sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==} ++ prettier-plugin-tailwindcss@0.6.8: ++ resolution: {integrity: sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' +@@ -1967,19 +2375,13 @@ packages: + prettier-plugin-svelte: + optional: true + +- prettier@2.8.3: +- resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==} +- engines: {node: '>=10.13.0'} +- hasBin: true +- +- prettier@3.2.5: +- resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} ++ prettier@3.3.3: ++ resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + +- pretty-format@29.7.0: +- resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} +- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} ++ property-expr@2.0.6: ++ resolution: {integrity: sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} +@@ -1988,12 +2390,12 @@ packages: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + ++ pure-rand@6.1.0: ++ resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} ++ + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + +- react-is@18.2.0: +- resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} +- + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + +@@ -2001,6 +2403,17 @@ packages: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + ++ readdirp@4.0.2: ++ resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} ++ engines: {node: '>= 14.16.0'} ++ ++ regenerator-runtime@0.14.1: ++ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} ++ ++ regexp.prototype.flags@1.5.3: ++ resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} ++ engines: {node: '>= 0.4'} ++ + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} +@@ -2013,22 +2426,19 @@ packages: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + +- rimraf@2.7.1: +- resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} +- hasBin: true +- +- rimraf@3.0.2: +- resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} +- hasBin: true +- +- rollup@4.11.0: +- resolution: {integrity: sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ==} ++ rollup@4.25.0: ++ resolution: {integrity: sha512-uVbClXmR6wvx5R1M3Od4utyLUxrmOcEm3pAtMphn73Apq19PDtHpgZoEvqH2YnnaNUuvKmg2DgRd2Sqv+odyqg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + ++ runed@0.15.3: ++ resolution: {integrity: sha512-HtayB+loDcGdqJDHW8JFdsZzGQMyVzim6+s3052MkjZnwmwDstmF+cusMeTssBe6TCdt5i9D/Tb+KYXN3L0kXA==} ++ peerDependencies: ++ svelte: ^5.0.0-next.1 ++ + rusha@0.8.14: + resolution: {integrity: sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==} + +@@ -2036,19 +2446,32 @@ packages: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + ++ safe-array-concat@1.1.2: ++ resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} ++ engines: {node: '>=0.4'} ++ + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + +- sander@0.5.1: +- resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} ++ safe-regex-test@1.0.3: ++ resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} ++ engines: {node: '>= 0.4'} + +- semver@7.6.0: +- resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} ++ semver@7.6.3: ++ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + +- set-cookie-parser@2.6.0: +- resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} ++ set-cookie-parser@2.7.1: ++ resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} ++ ++ set-function-length@1.2.2: ++ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} ++ engines: {node: '>= 0.4'} ++ ++ set-function-name@2.0.2: ++ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} ++ engines: {node: '>= 0.4'} + + sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} +@@ -2062,6 +2485,10 @@ packages: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + ++ side-channel@1.0.6: ++ resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} ++ engines: {node: '>= 0.4'} ++ + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + +@@ -2069,30 +2496,34 @@ packages: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + +- sirv@2.0.4: +- resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} +- engines: {node: '>= 10'} +- +- slash@3.0.0: +- resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} +- engines: {node: '>=8'} ++ sirv@3.0.0: ++ resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} ++ engines: {node: '>=18'} + + solid-js@1.6.12: + resolution: {integrity: sha512-JFqRobfG3q5r1l4RYVOAukk6+FWtHpXGIjgh/GEsHKweN/kK+iHOtzUALE6+P5t/jIcSNeGiVitX8gmJg+cYvQ==} + +- sorcery@0.11.0: +- resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} +- hasBin: true ++ source-map-js@1.2.1: ++ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} ++ engines: {node: '>=0.10.0'} + +- source-map-js@1.0.2: +- resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} ++ 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'} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + +- std-env@3.7.0: +- resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} ++ std-env@3.8.0: ++ resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} ++ ++ string-at@1.1.0: ++ resolution: {integrity: sha512-jCpPowWKBn0NFdvtmK2qxK40Ol4jPcgCt8qYnKpPx6B5eDwHMDhRvq9MCsDEgsOTNtbXY6beAMHMRT2qPJXllA==} ++ engines: {node: '>= 0.4'} ++ deprecated: The original `String.prototype.at` proposal has been replaced by a new one; please use v1 or later of `string.prototype.at` instead + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} +@@ -2102,6 +2533,33 @@ packages: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + ++ string.prototype.padend@3.1.6: ++ resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} ++ engines: {node: '>= 0.4'} ++ ++ string.prototype.padstart@3.1.6: ++ resolution: {integrity: sha512-1y15lz7otgfRTAVK5qbp3eHIga+w8j7+jIH+7HpUrOfnLVl6n0hbspi4EXf4tR+PNOpBjPstltemkx0SvViOCg==} ++ engines: {node: '>= 0.4'} ++ ++ string.prototype.trim@1.2.9: ++ resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} ++ engines: {node: '>= 0.4'} ++ ++ string.prototype.trimend@1.0.8: ++ resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} ++ ++ string.prototype.trimleft@2.1.3: ++ resolution: {integrity: sha512-699Ibssmj/awVzvdNk4g83/Iu8U9vDohzmA/ly2BrQWGhamuY4Tlvs5XKmKliDt3ky6SKbE1bzPhASKCFlx9Sg==} ++ engines: {node: '>= 0.4'} ++ ++ string.prototype.trimright@2.1.3: ++ resolution: {integrity: sha512-hoOq56oRFnnfDuXNy2lGHiwT77MehHv9d0zGfRZ8QdC+4zjrkFB9vd5i/zYTd/ymFBd4YxtbdgHt3U6ksGeuBw==} ++ engines: {node: '>= 0.4'} ++ ++ string.prototype.trimstart@1.0.8: ++ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} ++ engines: {node: '>= 0.4'} ++ + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} +@@ -2110,26 +2568,22 @@ packages: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + +- strip-final-newline@3.0.0: +- resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} +- engines: {node: '>=12'} +- +- strip-indent@3.0.0: +- resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} +- engines: {node: '>=8'} +- + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + +- strip-literal@1.3.0: +- resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} ++ style-to-object@1.0.8: ++ resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + ++ superstruct@2.0.2: ++ resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} ++ engines: {node: '>=14.0.0'} ++ + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} +@@ -2138,134 +2592,66 @@ packages: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + +- svelecte@3.17.3: +- resolution: {integrity: sha512-wnvoRxJIFFkm+CmXgjL4R3i/TcuYUIBkE+jDJSBD7AdSOzk1K6u3+nW4zwxaGT29zyZpiZkWeiy7lO62r5F+tg==} +- +- svelte-boring-avatars@1.2.6: +- resolution: {integrity: sha512-8+Z1DhsMUVI/V/5ik00Arw0PgbJcMdhTXq3YGqccBc5bYFeceCtMEMB0aWGhi8xFV+0aqZbWvS89Hcj16LlfHA==} +- +- svelte-check@3.6.4: +- resolution: {integrity: sha512-mY/dqucqm46p72M8yZmn81WPZx9mN6uuw8UVfR3ZKQeLxQg5HDGO3HHm5AZuWZPYNMLJ+TRMn+TeN53HfQ/vsw==} ++ svelte-check@4.0.7: ++ resolution: {integrity: sha512-24hwo+D5L35HOXsh3Z2sU4WhdDLavlHquYaJhrEqAt+mV1xOVzoMVYThW80n99osDJxyuH+vxjNFkNRL4EvwTg==} ++ engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: +- svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 ++ svelte: ^4.0.0 || ^5.0.0-next.0 ++ typescript: '>=5.0.0' + +- svelte-eslint-parser@0.33.1: +- resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==} ++ svelte-eslint-parser@0.43.0: ++ resolution: {integrity: sha512-GpU52uPKKcVnh8tKN5P4UZpJ/fUDndmq7wfsvoVXsyP+aY0anol7Yqo01fyrlaWGMFfm4av5DyrjlaXdLRJvGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: +- svelte: ^3.37.0 || ^4.0.0 ++ svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + +- svelte-heros-v2@0.10.11: +- resolution: {integrity: sha512-LY45e3+/3CWUkDYivjG1M8IuW3B/VFjtTljVNu5sVz21ajpxroG+My44G5hEDA0Fdj7Zffy69DbtFA1sus2W9A==} +- peerDependencies: +- svelte: ^3.54.0 || ^4.0.0 ++ svelte-loading-spinners@0.3.6: ++ resolution: {integrity: sha512-mthHQ2TwiwzTWzbFry3CBnVEfzqPOD9WkVw84OfSYzHRq6N9wgQ+yv37u81uPeuLU/ZOIPqhujpXquB1aol5ZQ==} + +- svelte-heros@6.0.1: +- resolution: {integrity: sha512-yoXUCbMQCUZPHyV5aalzBg6sIh/MJz9ohvBa30jwSnFYLLm2giVTUSYua0eY1DINU/Ku0BnbaNn5liW/IM6zJA==} ++ svelte-sonner@0.3.28: ++ resolution: {integrity: sha512-K3AmlySeFifF/cKgsYNv5uXqMVNln0NBAacOYgmkQStLa/UoU0LhfAACU6Gr+YYC8bOCHdVmFNoKuDbMEsppJg==} + peerDependencies: +- svelte: ^3.54.0 || ^4.0.0 || ^5.0.0 ++ svelte: ^3.0.0 || ^4.0.0 || ^5.0.0-next.1 + +- svelte-hmr@0.16.0: +- resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} +- engines: {node: ^12.20 || ^14.13.1 || >= 16} ++ svelte-toolbelt@0.4.6: ++ resolution: {integrity: sha512-k8OUvXBUifHZcAlWeY/HLg/4J0v5m2iOfOhn8fDmjt4AP8ZluaDh9eBFus9lFiLX6O5l6vKqI1dKL5wy7090NQ==} ++ engines: {node: '>=18', pnpm: '>=8.7.0'} + peerDependencies: +- svelte: ^3.19.0 || ^4.0.0 ++ svelte: ^5.0.0-next.126 + +- svelte-preprocess@5.1.3: +- resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} +- engines: {node: '>= 16.0.0', pnpm: ^8.0.0} +- peerDependencies: +- '@babel/core': ^7.10.2 +- coffeescript: ^2.5.1 +- less: ^3.11.3 || ^4.0.0 +- postcss: ^7 || ^8 +- postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 +- pug: ^3.0.0 +- sass: ^1.26.8 +- stylus: ^0.55.0 +- sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 +- svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 +- typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' +- peerDependenciesMeta: +- '@babel/core': +- optional: true +- coffeescript: +- optional: true +- less: +- optional: true +- postcss: +- optional: true +- postcss-load-config: +- optional: true +- pug: +- optional: true +- sass: +- optional: true +- stylus: +- optional: true +- sugarss: +- optional: true +- typescript: +- optional: true ++ svelte@5.1.15: ++ resolution: {integrity: sha512-cs2JYADrEorRCB4AUCHMvwperwAKcn/mz7w1xzVOv3fG6TmAS2n13JYHH8/uDCFbqVyRSXXlL+vA5RDwGUXEZg==} ++ engines: {node: '>=18'} + +- svelte-tiny-virtual-list@2.0.5: +- resolution: {integrity: sha512-xg9ckb8UeeIme4/5qlwCrl2QNmUZ8SCQYZn3Ji83cUsoASqRNy3KWjpmNmzYvPDqCHSZjruBBsoB7t5hwuzw5g==} ++ sveltekit-superforms@2.20.0: ++ resolution: {integrity: sha512-5HyA6THKFBHEmJinZ/klu2/0jYr9ElSaXMYc5EO9ptP3x1wQPWVXYl59sMcaSrIjWUlPpayGxVppCyu+x/o4WA==} ++ peerDependencies: ++ '@sveltejs/kit': 1.x || 2.x ++ svelte: 3.x || 4.x || >=5.0.0-next.51 + +- svelte@4.2.11: +- resolution: {integrity: sha512-YIQk3J4X89wOLhjsqIW8tqY3JHPuBdtdOIkASP2PZeAMcSW9RsIjQzMesCrxOF3gdWYC0mKknlKF7OqmLM+Zqg==} +- engines: {node: '>=16'} ++ tabbable@6.2.0: ++ resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + +- svelte@5.0.0-next.141: +- resolution: {integrity: sha512-zT74TUo0vOOrbxRfdlWXu+ac4O9lqPFG0YoZB3uOfrOewT1GKxKm0qwG/jo9bGvgZ++TSHjR7AtV091LY2FhBA==} +- engines: {node: '>=18'} ++ tailwind-merge@2.5.4: ++ resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==} + +- sveltekit-superforms@1.6.1: +- resolution: {integrity: sha512-85whZdnytMFStDY1PI3ycr5BoTb57XjkEJqZ2Mt8HT06y/CKlQBws5Cx/AxPxA3WHhGfC26yfXqLYqEQz1oGfw==} ++ tailwind-variants@0.2.1: ++ resolution: {integrity: sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==} ++ engines: {node: '>=16.x', pnpm: '>=7.x'} + peerDependencies: +- '@sveltejs/kit': 1.x +- svelte: 3.x || 4.x +- zod: 3.x ++ tailwindcss: '*' + +- svg.draggable.js@2.2.2: +- resolution: {integrity: sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==} +- engines: {node: '>= 0.8.0'} ++ tailwindcss-animate@1.0.7: ++ resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} ++ peerDependencies: ++ tailwindcss: '>=3.0.0 || insiders' + +- svg.easing.js@2.0.0: +- resolution: {integrity: sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==} +- engines: {node: '>= 0.8.0'} +- +- svg.filter.js@2.0.2: +- resolution: {integrity: sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==} +- engines: {node: '>= 0.8.0'} +- +- svg.js@2.7.1: +- resolution: {integrity: sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==} +- +- svg.pathmorphing.js@0.1.3: +- resolution: {integrity: sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==} +- engines: {node: '>= 0.8.0'} +- +- svg.resize.js@1.4.3: +- resolution: {integrity: sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==} +- engines: {node: '>= 0.8.0'} +- +- svg.select.js@2.1.2: +- resolution: {integrity: sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==} +- engines: {node: '>= 0.8.0'} +- +- svg.select.js@3.0.1: +- resolution: {integrity: sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==} +- engines: {node: '>= 0.8.0'} +- +- tailwind-merge@2.5.2: +- resolution: {integrity: sha512-kjEBm+pvD+6eAwzJL2Bi+02/9LFLal1Gs61+QB7HvTfQQ0aXwC5LGT8PEt1gS0CWKktKe6ysPTAy3cBC5MeiIg==} +- +- tailwindcss@3.4.1: +- resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} ++ tailwindcss@3.4.14: ++ resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} + engines: {node: '>=14.0.0'} + hasBin: true + +@@ -2279,78 +2665,137 @@ packages: + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + +- throttle-debounce@5.0.0: +- resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} ++ throttle-debounce@5.0.2: ++ resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} + engines: {node: '>=12.22'} + ++ tiny-case@1.0.3: ++ resolution: {integrity: sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==} ++ + tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + +- tinybench@2.6.0: +- resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} ++ tinybench@2.9.0: ++ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} ++ ++ tinyexec@0.3.1: ++ resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + +- tinypool@0.8.2: +- resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} ++ tinypool@1.0.1: ++ resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} ++ engines: {node: ^18.0.0 || >=20.0.0} ++ ++ tinyrainbow@1.2.0: ++ resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + +- tinyspy@2.2.1: +- resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} ++ tinyspy@3.0.2: ++ resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + ++ toposort@2.0.2: ++ resolution: {integrity: sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==} ++ + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + +- ts-api-utils@1.3.0: +- resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} ++ ts-algebra@2.0.0: ++ resolution: {integrity: sha512-FPAhNPFMrkwz76P7cdjdmiShwMynZYN6SgOujD1urY4oNm80Ou9oMdmbR45LotcKOXoy7wSmHkRFE6Mxbrhefw==} ++ ++ ts-api-utils@1.4.0: ++ resolution: {integrity: sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + ++ ts-deepmerge@7.0.1: ++ resolution: {integrity: sha512-JBFCmNenZdUCc+TRNCtXVM6N8y/nDQHAcpj5BlwXG/gnogjam1NunulB9ia68mnqYI446giMfpqeBFFkOleh+g==} ++ engines: {node: '>=14.13.1'} ++ + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + +- tslib@2.6.2: +- resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} ++ tslib@2.4.0: ++ resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} ++ ++ tslib@2.8.1: ++ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + +- type-detect@4.0.8: +- resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} +- engines: {node: '>=4'} ++ type-fest@2.19.0: ++ resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} ++ engines: {node: '>=12.20'} + +- type-fest@0.20.2: +- resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} +- engines: {node: '>=10'} ++ type-fest@4.26.1: ++ resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} ++ engines: {node: '>=16'} ++ ++ typed-array-buffer@1.0.2: ++ resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} ++ engines: {node: '>= 0.4'} ++ ++ typed-array-byte-length@1.0.1: ++ resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} ++ engines: {node: '>= 0.4'} ++ ++ typed-array-byte-offset@1.0.2: ++ resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} ++ engines: {node: '>= 0.4'} + +- typescript@5.3.3: +- resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} ++ typed-array-length@1.0.6: ++ resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} ++ engines: {node: '>= 0.4'} ++ ++ typescript-eslint@8.14.0: ++ resolution: {integrity: sha512-K8fBJHxVL3kxMmwByvz8hNdBJ8a0YqKzKDX6jRlrjMuNXyd5T2V02HIq37+OiWXvUUOXgOOGiSSOh26Mh8pC3w==} ++ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} ++ peerDependencies: ++ typescript: '*' ++ peerDependenciesMeta: ++ typescript: ++ optional: true ++ ++ typescript@5.2.2: ++ resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} ++ engines: {node: '>=14.17'} ++ hasBin: true ++ ++ typescript@5.6.3: ++ resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + +- ufo@1.4.0: +- resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==} ++ unbox-primitive@1.0.2: ++ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + +- undici-types@5.26.5: +- resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} ++ undici-types@6.19.8: ++ resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + +- universal-github-app-jwt@1.1.2: +- resolution: {integrity: sha512-t1iB2FmLFE+yyJY9+3wMx0ejB+MQpEVkH0gQv7dR6FZyltyq+ZZO0uDpbopxhrZ3SLEO4dCEkIujOMldEQ2iOA==} ++ universal-github-app-jwt@1.2.0: ++ resolution: {integrity: sha512-dncpMpnsKBk0eetwfN8D8OUHGfiDhhJ+mtsbMl+7PfW7mYjiH8LIcqRmYMtzYLgSh47HjfdBtrBwIQ/gizKR3g==} + + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} + +- unplugin@1.5.1: +- resolution: {integrity: sha512-0QkvG13z6RD+1L1FoibQqnvTwVBXvS4XSPwAyinVgoOCl2jAgwzdUKmEj05o4Lt8xwQI85Hb6mSyYkcAGwZPew==} ++ unplugin@1.15.0: ++ resolution: {integrity: sha512-jTPIs63W+DUEDW207ztbaoO7cQ4p5aVaB823LSlxpsFEU3Mykwxf3ZGC/wzxFJeZlASZYgVrWeo7LgOrqJZ8RA==} ++ engines: {node: '>=14.0.0'} ++ peerDependencies: ++ webpack-sources: ^3 ++ peerDependenciesMeta: ++ webpack-sources: ++ optional: true + +- update-browserslist-db@1.0.13: +- resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} ++ update-browserslist-db@1.1.1: ++ resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' +@@ -2361,13 +2806,28 @@ packages: + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + +- vite-node@1.2.2: +- resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} ++ valibot@0.31.1: ++ resolution: {integrity: sha512-2YYIhPrnVSz/gfT2/iXVTrSj92HwchCt9Cga/6hX4B26iCz9zkIsGTS0HjDYTZfTi1Un0X6aRvhBi1cfqs/i0Q==} ++ ++ valibot@0.41.0: ++ resolution: {integrity: sha512-igDBb8CTYr8YTQlOKgaN9nSS0Be7z+WRuaeYqGf3Cjz3aKmSnqEmYnkfVjzIuumGqfHpa3fLIvMEAfhrpqN8ng==} ++ peerDependencies: ++ typescript: '>=5' ++ peerDependenciesMeta: ++ typescript: ++ optional: true ++ ++ validator@13.12.0: ++ resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} ++ engines: {node: '>= 0.10'} ++ ++ vite-node@2.1.4: ++ resolution: {integrity: sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + +- vite@5.1.3: +- resolution: {integrity: sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==} ++ vite@5.4.11: ++ resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: +@@ -2394,23 +2857,23 @@ packages: + terser: + optional: true + +- vitefu@0.2.5: +- resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} ++ vitefu@1.0.3: ++ resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + peerDependencies: +- vite: ^3.0.0 || ^4.0.0 || ^5.0.0 ++ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + +- vitest@1.2.2: +- resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} ++ vitest@2.1.4: ++ resolution: {integrity: sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 +- '@vitest/browser': ^1.0.0 +- '@vitest/ui': ^1.0.0 ++ '@vitest/browser': 2.1.4 ++ '@vitest/ui': 2.1.4 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: +@@ -2427,23 +2890,30 @@ packages: + jsdom: + optional: true + +- webpack-sources@3.2.3: +- resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} +- engines: {node: '>=10.13.0'} ++ webpack-virtual-modules@0.6.2: ++ resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} ++ ++ which-boxed-primitive@1.0.2: ++ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + +- webpack-virtual-modules@0.6.1: +- resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} ++ which-typed-array@1.1.15: ++ resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} ++ engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + +- why-is-node-running@2.2.2: +- resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} ++ why-is-node-running@2.3.0: ++ resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + ++ word-wrap@1.2.5: ++ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} ++ engines: {node: '>=0.10.0'} ++ + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} +@@ -2455,152 +2925,229 @@ packages: + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + +- yallist@4.0.0: +- resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} +- + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + +- yaml@2.3.2: +- resolution: {integrity: sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==} ++ yaml@2.6.0: ++ resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} + engines: {node: '>= 14'} +- +- yarn@1.22.21: +- resolution: {integrity: sha512-ynXaJsADJ9JiZ84zU25XkPGOvVMmZ5b7tmTSpKURYwgELdjucAOydqIOrOfTxVYcNXe91xvLZwcRh68SR3liCg==} +- engines: {node: '>=4.0.0'} + hasBin: true + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +- yocto-queue@1.0.0: +- resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} +- engines: {node: '>=12.20'} ++ yup@1.4.0: ++ resolution: {integrity: sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==} + +- zenroom@4.12.0: +- resolution: {integrity: sha512-dZZKRtlzVPllqV6ixx2FKmOI1kOdk+GcyVfD1FBtnbTRT3KkN9/5NnnqIHTvv4n6t3HkWGvmIwf26sR8R2S3YA==} ++ zenroom@4.46.0: ++ resolution: {integrity: sha512-cpLOCz81uCcRZyJAAhFDjyaaot9Ob/0yhI+dOcGibzQIbSrZnnGwIxSN8idEF0T/NaMFO0BITrhPITM87pBjGg==} + + zimmerframe@1.1.2: + resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} + +- zod@3.22.4: +- resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} ++ zod-to-json-schema@3.23.5: ++ resolution: {integrity: sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==} ++ peerDependencies: ++ zod: ^3.23.3 + +-snapshots: ++ zod@3.23.8: ++ resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + +- '@aashutoshrathi/word-wrap@1.2.6': {} ++snapshots: + + '@alloc/quick-lru@5.2.0': {} + +- '@ampproject/remapping@2.2.1': ++ '@ampproject/remapping@2.3.0': + dependencies: +- '@jridgewell/gen-mapping': 0.3.3 +- '@jridgewell/trace-mapping': 0.3.22 ++ '@jridgewell/gen-mapping': 0.3.5 ++ '@jridgewell/trace-mapping': 0.3.25 + +- '@esbuild/aix-ppc64@0.19.12': ++ '@ark/schema@0.10.0': ++ dependencies: ++ '@ark/util': 0.10.0 + optional: true + +- '@esbuild/android-arm64@0.19.12': ++ '@ark/util@0.10.0': + optional: true + +- '@esbuild/android-arm@0.19.12': ++ '@babel/runtime@7.26.0': ++ dependencies: ++ regenerator-runtime: 0.14.1 + optional: true + +- '@esbuild/android-x64@0.19.12': ++ '@effect/schema@0.75.5(effect@3.10.14)': ++ dependencies: ++ effect: 3.10.14 ++ fast-check: 3.23.1 + optional: true + +- '@esbuild/darwin-arm64@0.19.12': ++ '@esbuild/aix-ppc64@0.21.5': + optional: true + +- '@esbuild/darwin-x64@0.19.12': ++ '@esbuild/aix-ppc64@0.24.0': + optional: true + +- '@esbuild/freebsd-arm64@0.19.12': ++ '@esbuild/android-arm64@0.21.5': + optional: true + +- '@esbuild/freebsd-x64@0.19.12': ++ '@esbuild/android-arm64@0.24.0': + optional: true + +- '@esbuild/linux-arm64@0.19.12': ++ '@esbuild/android-arm@0.21.5': + optional: true + +- '@esbuild/linux-arm@0.19.12': ++ '@esbuild/android-arm@0.24.0': + optional: true + +- '@esbuild/linux-ia32@0.19.12': ++ '@esbuild/android-x64@0.21.5': + optional: true + +- '@esbuild/linux-loong64@0.19.12': ++ '@esbuild/android-x64@0.24.0': + optional: true + +- '@esbuild/linux-mips64el@0.19.12': ++ '@esbuild/darwin-arm64@0.21.5': + optional: true + +- '@esbuild/linux-ppc64@0.19.12': ++ '@esbuild/darwin-arm64@0.24.0': + optional: true + +- '@esbuild/linux-riscv64@0.19.12': ++ '@esbuild/darwin-x64@0.21.5': + optional: true + +- '@esbuild/linux-s390x@0.19.12': ++ '@esbuild/darwin-x64@0.24.0': + optional: true + +- '@esbuild/linux-x64@0.19.12': ++ '@esbuild/freebsd-arm64@0.21.5': + optional: true + +- '@esbuild/netbsd-x64@0.19.12': ++ '@esbuild/freebsd-arm64@0.24.0': + optional: true + +- '@esbuild/openbsd-x64@0.19.12': ++ '@esbuild/freebsd-x64@0.21.5': + optional: true + +- '@esbuild/sunos-x64@0.19.12': ++ '@esbuild/freebsd-x64@0.24.0': + optional: true + +- '@esbuild/win32-arm64@0.19.12': ++ '@esbuild/linux-arm64@0.21.5': + optional: true + +- '@esbuild/win32-ia32@0.19.12': ++ '@esbuild/linux-arm64@0.24.0': + optional: true + +- '@esbuild/win32-x64@0.19.12': ++ '@esbuild/linux-arm@0.21.5': + optional: true + +- '@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)': +- dependencies: +- eslint: 8.56.0 +- eslint-visitor-keys: 3.4.3 ++ '@esbuild/linux-arm@0.24.0': ++ optional: true ++ ++ '@esbuild/linux-ia32@0.21.5': ++ optional: true ++ ++ '@esbuild/linux-ia32@0.24.0': ++ optional: true ++ ++ '@esbuild/linux-loong64@0.21.5': ++ optional: true ++ ++ '@esbuild/linux-loong64@0.24.0': ++ optional: true ++ ++ '@esbuild/linux-mips64el@0.21.5': ++ optional: true ++ ++ '@esbuild/linux-mips64el@0.24.0': ++ optional: true ++ ++ '@esbuild/linux-ppc64@0.21.5': ++ optional: true ++ ++ '@esbuild/linux-ppc64@0.24.0': ++ optional: true ++ ++ '@esbuild/linux-riscv64@0.21.5': ++ optional: true ++ ++ '@esbuild/linux-riscv64@0.24.0': ++ optional: true ++ ++ '@esbuild/linux-s390x@0.21.5': ++ optional: true ++ ++ '@esbuild/linux-s390x@0.24.0': ++ optional: true ++ ++ '@esbuild/linux-x64@0.21.5': ++ optional: true ++ ++ '@esbuild/linux-x64@0.24.0': ++ optional: true ++ ++ '@esbuild/netbsd-x64@0.21.5': ++ optional: true ++ ++ '@esbuild/netbsd-x64@0.24.0': ++ optional: true ++ ++ '@esbuild/openbsd-arm64@0.24.0': ++ optional: true ++ ++ '@esbuild/openbsd-x64@0.21.5': ++ optional: true ++ ++ '@esbuild/openbsd-x64@0.24.0': ++ optional: true ++ ++ '@esbuild/sunos-x64@0.21.5': ++ optional: true ++ ++ '@esbuild/sunos-x64@0.24.0': ++ optional: true ++ ++ '@esbuild/win32-arm64@0.21.5': ++ optional: true ++ ++ '@esbuild/win32-arm64@0.24.0': ++ optional: true ++ ++ '@esbuild/win32-ia32@0.21.5': ++ optional: true ++ ++ '@esbuild/win32-ia32@0.24.0': ++ optional: true ++ ++ '@esbuild/win32-x64@0.21.5': ++ optional: true ++ ++ '@esbuild/win32-x64@0.24.0': ++ optional: true + +- '@eslint-community/eslint-utils@4.4.0(eslint@9.0.0)': ++ '@eslint-community/eslint-utils@4.4.1(eslint@9.14.0(jiti@1.21.6))': + dependencies: +- eslint: 9.0.0 ++ eslint: 9.14.0(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 + +- '@eslint-community/regexpp@4.10.0': {} ++ '@eslint-community/regexpp@4.12.1': {} + +- '@eslint/eslintrc@2.1.4': ++ '@eslint/config-array@0.18.0': + dependencies: +- ajv: 6.12.6 +- debug: 4.3.4 +- espree: 9.6.1 +- globals: 13.24.0 +- ignore: 5.3.1 +- import-fresh: 3.3.0 +- js-yaml: 4.1.0 ++ '@eslint/object-schema': 2.1.4 ++ debug: 4.3.7 + minimatch: 3.1.2 +- strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + ++ '@eslint/core@0.7.0': {} ++ + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 +- debug: 4.3.4 +- espree: 10.0.1 ++ debug: 4.3.7 ++ espree: 10.3.0 + globals: 14.0.0 +- ignore: 5.3.1 ++ ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 +@@ -2608,42 +3155,57 @@ snapshots: + transitivePeerDependencies: + - supports-color + +- '@eslint/js@8.56.0': {} ++ '@eslint/js@9.14.0': {} ++ ++ '@eslint/object-schema@2.1.4': {} + +- '@eslint/js@9.0.0': {} ++ '@eslint/plugin-kit@0.2.2': ++ dependencies: ++ levn: 0.4.1 ++ ++ '@exodus/schemasafe@1.3.0': ++ optional: true + +- '@floating-ui/core@1.6.0': ++ '@floating-ui/core@1.6.8': + dependencies: +- '@floating-ui/utils': 0.2.1 ++ '@floating-ui/utils': 0.2.8 + +- '@floating-ui/dom@1.6.3': ++ '@floating-ui/dom@1.6.12': + dependencies: +- '@floating-ui/core': 1.6.0 +- '@floating-ui/utils': 0.2.1 ++ '@floating-ui/core': 1.6.8 ++ '@floating-ui/utils': 0.2.8 + +- '@floating-ui/utils@0.2.1': {} ++ '@floating-ui/utils@0.2.8': {} + +- '@humanwhocodes/config-array@0.11.14': ++ '@gcornut/valibot-json-schema@0.31.0': + dependencies: +- '@humanwhocodes/object-schema': 2.0.2 +- debug: 4.3.4 +- minimatch: 3.1.2 +- transitivePeerDependencies: +- - supports-color ++ valibot: 0.31.1 ++ optionalDependencies: ++ '@types/json-schema': 7.0.15 ++ esbuild: 0.24.0 ++ esbuild-runner: 2.2.2(esbuild@0.24.0) ++ optional: true ++ ++ '@hapi/hoek@9.3.0': ++ optional: true + +- '@humanwhocodes/config-array@0.12.3': ++ '@hapi/topo@5.1.0': + dependencies: +- '@humanwhocodes/object-schema': 2.0.3 +- debug: 4.3.4 +- minimatch: 3.1.2 +- transitivePeerDependencies: +- - supports-color ++ '@hapi/hoek': 9.3.0 ++ optional: true ++ ++ '@humanfs/core@0.19.1': {} ++ ++ '@humanfs/node@0.16.6': ++ dependencies: ++ '@humanfs/core': 0.19.1 ++ '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + +- '@humanwhocodes/object-schema@2.0.2': {} ++ '@humanwhocodes/retry@0.3.1': {} + +- '@humanwhocodes/object-schema@2.0.3': {} ++ '@humanwhocodes/retry@0.4.1': {} + + '@inlang/cli@2.18.1': + dependencies: +@@ -2675,67 +3237,70 @@ snapshots: + '@inlang/language-tag': 1.5.1 + '@sinclair/typebox': 0.31.28 + +- '@inlang/module@1.2.11(@sinclair/typebox@0.31.28)': ++ '@inlang/module@1.2.14(@sinclair/typebox@0.31.28)': + dependencies: + '@inlang/message-lint-rule': 1.4.7(@sinclair/typebox@0.31.28) +- '@inlang/plugin': 2.4.11(@sinclair/typebox@0.31.28) ++ '@inlang/plugin': 2.4.14(@sinclair/typebox@0.31.28) + '@sinclair/typebox': 0.31.28 + +- '@inlang/paraglide-js@1.9.1(debug@4.3.4)': ++ '@inlang/paraglide-js@1.11.3': + dependencies: + '@inlang/detect-json-formatting': 1.0.0 + commander: 11.1.0 + consola: 3.2.3 + dedent: 1.5.1 + json5: 2.2.3 +- posthog-node: 3.1.3(debug@4.3.4) ++ posthog-node: 4.2.1 + transitivePeerDependencies: + - babel-plugin-macros + - debug + +- '@inlang/paraglide-sveltekit@0.8.1(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(debug@4.3.4)': ++ '@inlang/paraglide-sveltekit@0.11.5(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))': + dependencies: +- '@inlang/paraglide-js': 1.9.1(debug@4.3.4) +- '@inlang/paraglide-vite': 1.2.57(debug@4.3.4) +- '@lix-js/client': 1.4.0 +- '@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)) ++ '@inlang/paraglide-js': 1.11.3 ++ '@inlang/paraglide-vite': 1.2.76 ++ '@lix-js/client': 2.2.1 ++ '@sveltejs/kit': 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)) + commander: 12.1.0 + dedent: 1.5.1 + devalue: 4.3.3 +- magic-string: 0.30.10 +- svelte: 5.0.0-next.141 ++ magic-string: 0.30.12 ++ svelte: 5.1.15 + transitivePeerDependencies: + - babel-plugin-macros + - debug + - supports-color ++ - webpack-sources + +- '@inlang/paraglide-unplugin@1.6.7(debug@4.3.4)': ++ '@inlang/paraglide-unplugin@1.8.7': + dependencies: +- '@inlang/paraglide-js': 1.9.1(debug@4.3.4) +- '@inlang/sdk': 0.34.10 +- '@lix-js/client': 1.4.0 +- unplugin: 1.5.1 ++ '@inlang/paraglide-js': 1.11.3 ++ '@inlang/sdk': 0.36.3 ++ '@lix-js/client': 2.2.1 ++ unplugin: 1.15.0 + transitivePeerDependencies: + - babel-plugin-macros + - debug + - supports-color ++ - webpack-sources + +- '@inlang/paraglide-vite@1.2.57(debug@4.3.4)': ++ '@inlang/paraglide-vite@1.2.76': + dependencies: +- '@inlang/paraglide-unplugin': 1.6.7(debug@4.3.4) ++ '@inlang/paraglide-unplugin': 1.8.7 + transitivePeerDependencies: + - babel-plugin-macros + - debug + - supports-color ++ - webpack-sources + +- '@inlang/plugin@2.4.11(@sinclair/typebox@0.31.28)': ++ '@inlang/plugin@2.4.14(@sinclair/typebox@0.31.28)': + dependencies: + '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) + '@inlang/language-tag': 1.5.1 + '@inlang/message': 2.1.0(@sinclair/typebox@0.31.28) + '@inlang/project-settings': 2.4.2(@sinclair/typebox@0.31.28) + '@inlang/translatable': 1.3.1 +- '@lix-js/fs': 1.0.0 ++ '@lix-js/fs': 2.2.0 + '@sinclair/typebox': 0.31.28 + + '@inlang/project-settings@2.4.2(@sinclair/typebox@0.31.28)': +@@ -2746,26 +3311,26 @@ snapshots: + + '@inlang/result@1.1.0': {} + +- '@inlang/sdk@0.34.10': ++ '@inlang/sdk@0.36.3': + dependencies: + '@inlang/json-types': 1.1.0(@sinclair/typebox@0.31.28) + '@inlang/language-tag': 1.5.1 + '@inlang/message': 2.1.0(@sinclair/typebox@0.31.28) + '@inlang/message-lint-rule': 1.4.7(@sinclair/typebox@0.31.28) +- '@inlang/module': 1.2.11(@sinclair/typebox@0.31.28) +- '@inlang/plugin': 2.4.11(@sinclair/typebox@0.31.28) ++ '@inlang/module': 1.2.14(@sinclair/typebox@0.31.28) ++ '@inlang/plugin': 2.4.14(@sinclair/typebox@0.31.28) + '@inlang/project-settings': 2.4.2(@sinclair/typebox@0.31.28) + '@inlang/result': 1.1.0 + '@inlang/translatable': 1.3.1 +- '@lix-js/client': 1.4.0 +- '@lix-js/fs': 1.0.0 ++ '@lix-js/client': 2.2.1 ++ '@lix-js/fs': 2.2.0 + '@sinclair/typebox': 0.31.28 +- debug: 4.3.4 ++ debug: 4.3.7 + dedent: 1.5.1 + deepmerge-ts: 5.1.0 + murmurhash3js: 3.0.1 + solid-js: 1.6.12 +- throttle-debounce: 5.0.0 ++ throttle-debounce: 5.0.2 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color +@@ -2783,46 +3352,48 @@ snapshots: + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + +- '@jest/schemas@29.6.3': ++ '@jridgewell/gen-mapping@0.3.5': + dependencies: +- '@sinclair/typebox': 0.27.8 +- +- '@jridgewell/gen-mapping@0.3.3': +- dependencies: +- '@jridgewell/set-array': 1.1.2 +- '@jridgewell/sourcemap-codec': 1.4.15 +- '@jridgewell/trace-mapping': 0.3.22 ++ '@jridgewell/set-array': 1.2.1 ++ '@jridgewell/sourcemap-codec': 1.5.0 ++ '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + +- '@jridgewell/set-array@1.1.2': {} ++ '@jridgewell/set-array@1.2.1': {} + +- '@jridgewell/sourcemap-codec@1.4.15': {} ++ '@jridgewell/sourcemap-codec@1.5.0': {} + +- '@jridgewell/trace-mapping@0.3.22': ++ '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 +- '@jridgewell/sourcemap-codec': 1.4.15 ++ '@jridgewell/sourcemap-codec': 1.5.0 + +- '@lix-js/client@1.4.0': ++ '@lix-js/client@2.2.1': + dependencies: +- '@lix-js/fs': 1.0.0 +- '@octokit/types': 12.4.0 ++ '@lix-js/fs': 2.2.0 + async-lock: 1.4.1 + clean-git-ref: 2.0.1 + crc-32: 1.2.2 +- diff3: 0.0.4 +- eslint: 9.0.0 + ignore: 5.3.1 + octokit: 3.1.2 + pako: 1.0.11 + pify: 5.0.0 +- prettier: 2.8.3 + sha.js: 2.4.11 +- transitivePeerDependencies: +- - supports-color + +- '@lix-js/fs@1.0.0': {} ++ '@lix-js/fs@2.2.0': ++ dependencies: ++ typescript: 5.2.2 ++ ++ '@melt-ui/svelte@0.86.0(svelte@5.1.15)': ++ dependencies: ++ '@floating-ui/core': 1.6.8 ++ '@floating-ui/dom': 1.6.12 ++ '@internationalized/date': 3.5.6 ++ dequal: 2.0.3 ++ focus-trap: 7.6.1 ++ nanoid: 5.0.8 ++ svelte: 5.1.15 + + '@nodelib/fs.scandir@2.1.5': + dependencies: +@@ -2834,28 +3405,28 @@ snapshots: + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 +- fastq: 1.15.0 ++ fastq: 1.17.1 + + '@octokit/app@14.1.0': + dependencies: +- '@octokit/auth-app': 6.1.1 ++ '@octokit/auth-app': 6.1.3 + '@octokit/auth-unauthenticated': 5.0.1 + '@octokit/core': 5.2.0 + '@octokit/oauth-app': 6.1.0 + '@octokit/plugin-paginate-rest': 9.2.1(@octokit/core@5.2.0) +- '@octokit/types': 12.4.0 +- '@octokit/webhooks': 12.2.0 ++ '@octokit/types': 12.6.0 ++ '@octokit/webhooks': 12.3.1 + +- '@octokit/auth-app@6.1.1': ++ '@octokit/auth-app@6.1.3': + dependencies: + '@octokit/auth-oauth-app': 7.1.0 + '@octokit/auth-oauth-user': 4.1.0 + '@octokit/request': 8.4.0 + '@octokit/request-error': 5.1.0 +- '@octokit/types': 13.5.0 ++ '@octokit/types': 13.6.1 + deprecation: 2.3.1 +- lru-cache: 10.2.0 +- universal-github-app-jwt: 1.1.2 ++ lru-cache: '@wolfy1339/lru-cache@11.0.2-patch.1' ++ universal-github-app-jwt: 1.2.0 + universal-user-agent: 6.0.1 + + '@octokit/auth-oauth-app@7.1.0': +@@ -2889,7 +3460,7 @@ snapshots: + '@octokit/auth-unauthenticated@5.0.1': + dependencies: + '@octokit/request-error': 5.1.0 +- '@octokit/types': 12.4.0 ++ '@octokit/types': 12.6.0 + + '@octokit/core@5.2.0': + dependencies: +@@ -2897,19 +3468,19 @@ snapshots: + '@octokit/graphql': 7.1.0 + '@octokit/request': 8.4.0 + '@octokit/request-error': 5.1.0 +- '@octokit/types': 13.5.0 ++ '@octokit/types': 13.6.1 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + + '@octokit/endpoint@9.0.5': + dependencies: +- '@octokit/types': 13.5.0 ++ '@octokit/types': 13.6.1 + universal-user-agent: 6.0.1 + + '@octokit/graphql@7.1.0': + dependencies: + '@octokit/request': 8.4.0 +- '@octokit/types': 13.5.0 ++ '@octokit/types': 13.6.1 + universal-user-agent: 6.0.1 + + '@octokit/oauth-app@6.1.0': +@@ -2920,7 +3491,7 @@ snapshots: + '@octokit/core': 5.2.0 + '@octokit/oauth-authorization-url': 6.0.2 + '@octokit/oauth-methods': 4.1.0 +- '@types/aws-lambda': 8.10.138 ++ '@types/aws-lambda': 8.10.145 + universal-user-agent: 6.0.1 + + '@octokit/oauth-authorization-url@6.0.2': {} +@@ -2930,11 +3501,9 @@ snapshots: + '@octokit/oauth-authorization-url': 6.0.2 + '@octokit/request': 8.4.0 + '@octokit/request-error': 5.1.0 +- '@octokit/types': 13.5.0 ++ '@octokit/types': 13.6.1 + btoa-lite: 1.0.0 + +- '@octokit/openapi-types@19.1.0': {} +- + '@octokit/openapi-types@20.0.0': {} + + '@octokit/openapi-types@22.2.0': {} +@@ -2957,18 +3526,18 @@ snapshots: + dependencies: + '@octokit/core': 5.2.0 + '@octokit/request-error': 5.1.0 +- '@octokit/types': 12.4.0 ++ '@octokit/types': 12.6.0 + bottleneck: 2.19.5 + + '@octokit/plugin-throttling@8.2.0(@octokit/core@5.2.0)': + dependencies: + '@octokit/core': 5.2.0 +- '@octokit/types': 12.4.0 ++ '@octokit/types': 12.6.0 + bottleneck: 2.19.5 + + '@octokit/request-error@5.1.0': + dependencies: +- '@octokit/types': 13.5.0 ++ '@octokit/types': 13.6.1 + deprecation: 2.3.1 + once: 1.4.0 + +@@ -2976,290 +3545,369 @@ snapshots: + dependencies: + '@octokit/endpoint': 9.0.5 + '@octokit/request-error': 5.1.0 +- '@octokit/types': 13.5.0 ++ '@octokit/types': 13.6.1 + universal-user-agent: 6.0.1 + +- '@octokit/types@12.4.0': +- dependencies: +- '@octokit/openapi-types': 19.1.0 +- + '@octokit/types@12.6.0': + dependencies: + '@octokit/openapi-types': 20.0.0 + +- '@octokit/types@13.5.0': ++ '@octokit/types@13.6.1': + dependencies: + '@octokit/openapi-types': 22.2.0 + + '@octokit/webhooks-methods@4.1.0': {} + +- '@octokit/webhooks-types@7.4.0': {} ++ '@octokit/webhooks-types@7.6.1': {} + +- '@octokit/webhooks@12.2.0': ++ '@octokit/webhooks@12.3.1': + dependencies: + '@octokit/request-error': 5.1.0 + '@octokit/webhooks-methods': 4.1.0 +- '@octokit/webhooks-types': 7.4.0 ++ '@octokit/webhooks-types': 7.6.1 + aggregate-error: 3.1.0 + + '@pkgjs/parseargs@0.11.0': + optional: true + +- '@playwright/test@1.41.2': ++ '@playwright/test@1.48.2': + dependencies: +- playwright: 1.41.2 ++ playwright: 1.48.2 ++ ++ '@polka/url@1.0.0-next.28': {} ++ ++ '@poppinss/macroable@1.0.3': ++ optional: true ++ ++ '@rollup/rollup-android-arm-eabi@4.25.0': ++ optional: true + +- '@polka/url@1.0.0-next.25': {} ++ '@rollup/rollup-android-arm64@4.25.0': ++ optional: true ++ ++ '@rollup/rollup-darwin-arm64@4.25.0': ++ optional: true ++ ++ '@rollup/rollup-darwin-x64@4.25.0': ++ optional: true ++ ++ '@rollup/rollup-freebsd-arm64@4.25.0': ++ optional: true ++ ++ '@rollup/rollup-freebsd-x64@4.25.0': ++ optional: true + +- '@popperjs/core@2.11.8': {} ++ '@rollup/rollup-linux-arm-gnueabihf@4.25.0': ++ optional: true + +- '@rollup/rollup-android-arm-eabi@4.11.0': ++ '@rollup/rollup-linux-arm-musleabihf@4.25.0': + optional: true + +- '@rollup/rollup-android-arm64@4.11.0': ++ '@rollup/rollup-linux-arm64-gnu@4.25.0': + optional: true + +- '@rollup/rollup-darwin-arm64@4.11.0': ++ '@rollup/rollup-linux-arm64-musl@4.25.0': + optional: true + +- '@rollup/rollup-darwin-x64@4.11.0': ++ '@rollup/rollup-linux-powerpc64le-gnu@4.25.0': + optional: true + +- '@rollup/rollup-linux-arm-gnueabihf@4.11.0': ++ '@rollup/rollup-linux-riscv64-gnu@4.25.0': + optional: true + +- '@rollup/rollup-linux-arm64-gnu@4.11.0': ++ '@rollup/rollup-linux-s390x-gnu@4.25.0': + optional: true + +- '@rollup/rollup-linux-arm64-musl@4.11.0': ++ '@rollup/rollup-linux-x64-gnu@4.25.0': + optional: true + +- '@rollup/rollup-linux-riscv64-gnu@4.11.0': ++ '@rollup/rollup-linux-x64-musl@4.25.0': + optional: true + +- '@rollup/rollup-linux-x64-gnu@4.11.0': ++ '@rollup/rollup-win32-arm64-msvc@4.25.0': + optional: true + +- '@rollup/rollup-linux-x64-musl@4.11.0': ++ '@rollup/rollup-win32-ia32-msvc@4.25.0': + optional: true + +- '@rollup/rollup-win32-arm64-msvc@4.11.0': ++ '@rollup/rollup-win32-x64-msvc@4.25.0': + optional: true + +- '@rollup/rollup-win32-ia32-msvc@4.11.0': ++ '@sideway/address@4.1.5': ++ dependencies: ++ '@hapi/hoek': 9.3.0 + optional: true + +- '@rollup/rollup-win32-x64-msvc@4.11.0': ++ '@sideway/formula@3.0.1': + optional: true + +- '@sinclair/typebox@0.27.8': {} ++ '@sideway/pinpoint@2.0.0': ++ optional: true + + '@sinclair/typebox@0.31.28': {} + +- '@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))': ++ '@sinclair/typebox@0.32.35': ++ optional: true ++ ++ '@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))': + dependencies: +- '@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)) ++ '@sveltejs/kit': 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)) + import-meta-resolve: 4.1.0 + +- '@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12))': ++ '@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0))': + dependencies: +- '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)) ++ '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)) + '@types/cookie': 0.6.0 + cookie: 0.6.0 +- devalue: 5.0.0 +- esm-env: 1.0.0 ++ devalue: 5.1.1 ++ esm-env: 1.1.4 + import-meta-resolve: 4.1.0 + kleur: 4.1.5 +- magic-string: 0.30.7 ++ magic-string: 0.30.12 + mrmime: 2.0.0 + sade: 1.8.1 +- set-cookie-parser: 2.6.0 +- sirv: 2.0.4 +- svelte: 4.2.11 ++ set-cookie-parser: 2.7.1 ++ sirv: 3.0.0 ++ svelte: 5.1.15 + tiny-glob: 0.2.9 +- vite: 5.1.3(@types/node@20.12.12) ++ vite: 5.4.11(@types/node@22.9.0) + +- '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12))': ++ '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0))': + dependencies: +- '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)) +- debug: 4.3.4 +- svelte: 4.2.11 +- vite: 5.1.3(@types/node@20.12.12) ++ '@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)) ++ debug: 4.3.7 ++ svelte: 5.1.15 ++ vite: 5.4.11(@types/node@22.9.0) + transitivePeerDependencies: + - supports-color + +- '@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12))': ++ '@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0))': + dependencies: +- '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)) +- debug: 4.3.4 ++ '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)) ++ debug: 4.3.7 + deepmerge: 4.3.1 + kleur: 4.1.5 +- magic-string: 0.30.10 +- svelte: 4.2.11 +- svelte-hmr: 0.16.0(svelte@4.2.11) +- vite: 5.1.3(@types/node@20.12.12) +- vitefu: 0.2.5(vite@5.1.3(@types/node@20.12.12)) ++ magic-string: 0.30.12 ++ svelte: 5.1.15 ++ vite: 5.4.11(@types/node@22.9.0) ++ vitefu: 1.0.3(vite@5.4.11(@types/node@22.9.0)) + transitivePeerDependencies: + - supports-color + +- '@types/aws-lambda@8.10.138': {} ++ '@swc/helpers@0.5.15': ++ dependencies: ++ tslib: 2.8.1 + +- '@types/btoa-lite@1.0.2': {} ++ '@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.14)': ++ dependencies: ++ tailwindcss: 3.4.14 + +- '@types/cookie@0.6.0': {} ++ '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.14)': ++ dependencies: ++ tailwindcss: 3.4.14 ++ ++ '@tailwindcss/forms@0.5.9(tailwindcss@3.4.14)': ++ dependencies: ++ mini-svg-data-uri: 1.4.4 ++ tailwindcss: 3.4.14 + +- '@types/debug@4.1.12': ++ '@tailwindcss/typography@0.5.15(tailwindcss@3.4.14)': + dependencies: +- '@types/ms': 0.7.34 ++ lodash.castarray: 4.4.0 ++ lodash.isplainobject: 4.0.6 ++ lodash.merge: 4.6.2 ++ postcss-selector-parser: 6.0.10 ++ tailwindcss: 3.4.14 + +- '@types/eslint@8.56.10': ++ '@types/aws-lambda@8.10.145': {} ++ ++ '@types/btoa-lite@1.0.2': {} ++ ++ '@types/cookie@0.6.0': {} ++ ++ '@types/eslint@9.6.1': + dependencies: +- '@types/estree': 1.0.5 +- '@types/json-schema': 7.0.12 ++ '@types/estree': 1.0.6 ++ '@types/json-schema': 7.0.15 + +- '@types/estree@1.0.5': {} ++ '@types/estree@1.0.6': {} + +- '@types/json-schema@7.0.12': {} ++ '@types/json-schema@7.0.15': {} + +- '@types/jsonwebtoken@9.0.6': ++ '@types/jsonwebtoken@9.0.7': + dependencies: +- '@types/node': 20.12.12 ++ '@types/node': 22.9.0 ++ ++ '@types/lodash@4.17.13': {} + +- '@types/lodash@4.17.4': {} ++ '@types/node@22.9.0': ++ dependencies: ++ undici-types: 6.19.8 + +- '@types/ms@0.7.34': {} ++ '@types/validator@13.12.2': ++ optional: true + +- '@types/node@20.12.12': ++ '@typeschema/class-validator@0.3.0(@types/json-schema@7.0.15)(class-validator@0.14.1)': + dependencies: +- undici-types: 5.26.5 ++ '@typeschema/core': 0.14.0(@types/json-schema@7.0.15) ++ optionalDependencies: ++ class-validator: 0.14.1 ++ transitivePeerDependencies: ++ - '@types/json-schema' ++ optional: true + +- '@types/pug@2.0.10': {} ++ '@typeschema/core@0.14.0(@types/json-schema@7.0.15)': ++ optionalDependencies: ++ '@types/json-schema': 7.0.15 ++ optional: true + +- '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.56.0)(typescript@5.3.3))(eslint@8.56.0)(typescript@5.3.3)': ++ '@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: +- '@eslint-community/regexpp': 4.10.0 +- '@typescript-eslint/parser': 7.10.0(eslint@8.56.0)(typescript@5.3.3) +- '@typescript-eslint/scope-manager': 7.10.0 +- '@typescript-eslint/type-utils': 7.10.0(eslint@8.56.0)(typescript@5.3.3) +- '@typescript-eslint/utils': 7.10.0(eslint@8.56.0)(typescript@5.3.3) +- '@typescript-eslint/visitor-keys': 7.10.0 +- eslint: 8.56.0 ++ '@eslint-community/regexpp': 4.12.1 ++ '@typescript-eslint/parser': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) ++ '@typescript-eslint/scope-manager': 8.14.0 ++ '@typescript-eslint/type-utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) ++ '@typescript-eslint/utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) ++ '@typescript-eslint/visitor-keys': 8.14.0 ++ eslint: 9.14.0(jiti@1.21.6) + graphemer: 1.4.0 +- ignore: 5.3.1 ++ ignore: 5.3.2 + natural-compare: 1.4.0 +- ts-api-utils: 1.3.0(typescript@5.3.3) ++ ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: +- typescript: 5.3.3 ++ typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + +- '@typescript-eslint/parser@7.10.0(eslint@8.56.0)(typescript@5.3.3)': ++ '@typescript-eslint/parser@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: +- '@typescript-eslint/scope-manager': 7.10.0 +- '@typescript-eslint/types': 7.10.0 +- '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.3.3) +- '@typescript-eslint/visitor-keys': 7.10.0 +- debug: 4.3.4 +- eslint: 8.56.0 ++ '@typescript-eslint/scope-manager': 8.14.0 ++ '@typescript-eslint/types': 8.14.0 ++ '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) ++ '@typescript-eslint/visitor-keys': 8.14.0 ++ debug: 4.3.7 ++ eslint: 9.14.0(jiti@1.21.6) + optionalDependencies: +- typescript: 5.3.3 ++ typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + +- '@typescript-eslint/scope-manager@7.10.0': ++ '@typescript-eslint/scope-manager@8.14.0': + dependencies: +- '@typescript-eslint/types': 7.10.0 +- '@typescript-eslint/visitor-keys': 7.10.0 ++ '@typescript-eslint/types': 8.14.0 ++ '@typescript-eslint/visitor-keys': 8.14.0 + +- '@typescript-eslint/type-utils@7.10.0(eslint@8.56.0)(typescript@5.3.3)': ++ '@typescript-eslint/type-utils@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: +- '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.3.3) +- '@typescript-eslint/utils': 7.10.0(eslint@8.56.0)(typescript@5.3.3) +- debug: 4.3.4 +- eslint: 8.56.0 +- ts-api-utils: 1.3.0(typescript@5.3.3) ++ '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) ++ '@typescript-eslint/utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) ++ debug: 4.3.7 ++ ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: +- typescript: 5.3.3 ++ typescript: 5.6.3 + transitivePeerDependencies: ++ - eslint + - supports-color + +- '@typescript-eslint/types@7.10.0': {} ++ '@typescript-eslint/types@8.14.0': {} + +- '@typescript-eslint/typescript-estree@7.10.0(typescript@5.3.3)': ++ '@typescript-eslint/typescript-estree@8.14.0(typescript@5.6.3)': + dependencies: +- '@typescript-eslint/types': 7.10.0 +- '@typescript-eslint/visitor-keys': 7.10.0 +- debug: 4.3.4 +- globby: 11.1.0 ++ '@typescript-eslint/types': 8.14.0 ++ '@typescript-eslint/visitor-keys': 8.14.0 ++ debug: 4.3.7 ++ fast-glob: 3.3.2 + is-glob: 4.0.3 +- minimatch: 9.0.4 +- semver: 7.6.0 +- ts-api-utils: 1.3.0(typescript@5.3.3) ++ minimatch: 9.0.5 ++ semver: 7.6.3 ++ ts-api-utils: 1.4.0(typescript@5.6.3) + optionalDependencies: +- typescript: 5.3.3 ++ typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + +- '@typescript-eslint/utils@7.10.0(eslint@8.56.0)(typescript@5.3.3)': ++ '@typescript-eslint/utils@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: +- '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) +- '@typescript-eslint/scope-manager': 7.10.0 +- '@typescript-eslint/types': 7.10.0 +- '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.3.3) +- eslint: 8.56.0 ++ '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@1.21.6)) ++ '@typescript-eslint/scope-manager': 8.14.0 ++ '@typescript-eslint/types': 8.14.0 ++ '@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3) ++ eslint: 9.14.0(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript + +- '@typescript-eslint/visitor-keys@7.10.0': ++ '@typescript-eslint/visitor-keys@8.14.0': + dependencies: +- '@typescript-eslint/types': 7.10.0 ++ '@typescript-eslint/types': 8.14.0 + eslint-visitor-keys: 3.4.3 + +- '@ungap/structured-clone@1.2.0': {} ++ '@vinejs/compiler@2.5.0': ++ optional: true ++ ++ '@vinejs/vine@1.8.0': ++ dependencies: ++ '@poppinss/macroable': 1.0.3 ++ '@types/validator': 13.12.2 ++ '@vinejs/compiler': 2.5.0 ++ camelcase: 8.0.0 ++ dayjs: 1.11.13 ++ dlv: 1.1.3 ++ normalize-url: 8.0.1 ++ validator: 13.12.0 ++ optional: true ++ ++ '@vitest/expect@2.1.4': ++ dependencies: ++ '@vitest/spy': 2.1.4 ++ '@vitest/utils': 2.1.4 ++ chai: 5.1.2 ++ tinyrainbow: 1.2.0 ++ ++ '@vitest/mocker@2.1.4(vite@5.4.11(@types/node@22.9.0))': ++ dependencies: ++ '@vitest/spy': 2.1.4 ++ estree-walker: 3.0.3 ++ magic-string: 0.30.12 ++ optionalDependencies: ++ vite: 5.4.11(@types/node@22.9.0) + +- '@vitest/expect@1.2.2': ++ '@vitest/pretty-format@2.1.4': + dependencies: +- '@vitest/spy': 1.2.2 +- '@vitest/utils': 1.2.2 +- chai: 4.4.1 ++ tinyrainbow: 1.2.0 + +- '@vitest/runner@1.2.2': ++ '@vitest/runner@2.1.4': + dependencies: +- '@vitest/utils': 1.2.2 +- p-limit: 5.0.0 ++ '@vitest/utils': 2.1.4 + pathe: 1.1.2 + +- '@vitest/snapshot@1.2.2': ++ '@vitest/snapshot@2.1.4': + dependencies: +- magic-string: 0.30.7 ++ '@vitest/pretty-format': 2.1.4 ++ magic-string: 0.30.12 + pathe: 1.1.2 +- pretty-format: 29.7.0 + +- '@vitest/spy@1.2.2': ++ '@vitest/spy@2.1.4': + dependencies: +- tinyspy: 2.2.1 ++ tinyspy: 3.0.2 + +- '@vitest/utils@1.2.2': ++ '@vitest/utils@2.1.4': + dependencies: +- diff-sequences: 29.6.3 +- estree-walker: 3.0.3 +- loupe: 2.3.7 +- pretty-format: 29.7.0 ++ '@vitest/pretty-format': 2.1.4 ++ loupe: 3.1.2 ++ tinyrainbow: 1.2.0 + +- '@yr/monotone-cubic-spline@1.0.3': {} ++ '@wolfy1339/lru-cache@11.0.2-patch.1': {} + +- acorn-jsx@5.3.2(acorn@8.11.3): ++ acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: +- acorn: 8.11.3 ++ acorn: 8.14.0 + +- acorn-typescript@1.4.13(acorn@8.11.3): ++ acorn-typescript@1.4.13(acorn@8.14.0): + dependencies: +- acorn: 8.11.3 +- +- acorn-walk@8.3.2: {} ++ acorn: 8.14.0 + +- acorn@8.11.3: {} ++ acorn@8.14.0: {} + + aggregate-error@3.1.0: + dependencies: +@@ -3275,14 +3923,12 @@ snapshots: + + ansi-regex@5.0.1: {} + +- ansi-regex@6.0.1: {} ++ ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + +- ansi-styles@5.2.0: {} +- + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} +@@ -3292,59 +3938,98 @@ snapshots: + normalize-path: 3.0.0 + picomatch: 2.3.1 + +- apexcharts@3.45.2: +- dependencies: +- '@yr/monotone-cubic-spline': 1.0.3 +- svg.draggable.js: 2.2.2 +- svg.easing.js: 2.0.0 +- svg.filter.js: 2.0.2 +- svg.pathmorphing.js: 0.1.3 +- svg.resize.js: 1.4.3 +- svg.select.js: 3.0.1 +- + arg@5.0.2: {} + + argparse@2.0.1: {} + +- aria-query@5.3.0: ++ aria-query@5.3.2: {} ++ ++ arktype@2.0.0-rc.8: + dependencies: +- dequal: 2.0.3 ++ '@ark/schema': 0.10.0 ++ '@ark/util': 0.10.0 ++ optional: true ++ ++ array-buffer-byte-length@1.0.1: ++ dependencies: ++ call-bind: 1.0.7 ++ is-array-buffer: 3.0.4 ++ ++ array-includes@3.1.8: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 ++ es-object-atoms: 1.0.0 ++ get-intrinsic: 1.2.4 ++ is-string: 1.0.7 ++ ++ array.prototype.reduce@1.0.7: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 ++ es-array-method-boxes-properly: 1.0.0 ++ es-errors: 1.3.0 ++ es-object-atoms: 1.0.0 ++ is-string: 1.0.7 + +- array-union@2.1.0: {} ++ arraybuffer.prototype.slice@1.0.3: ++ dependencies: ++ array-buffer-byte-length: 1.0.1 ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 ++ es-errors: 1.3.0 ++ get-intrinsic: 1.2.4 ++ is-array-buffer: 3.0.4 ++ is-shared-array-buffer: 1.0.3 + +- assertion-error@1.1.0: {} ++ assertion-error@2.0.1: {} + + async-lock@1.4.1: {} + + asynckit@0.4.0: {} + +- autoprefixer@10.4.17(postcss@8.4.35): ++ autoprefixer@10.4.20(postcss@8.4.49): + dependencies: +- browserslist: 4.23.0 +- caniuse-lite: 1.0.30001587 ++ browserslist: 4.24.2 ++ caniuse-lite: 1.0.30001680 + fraction.js: 4.3.7 + normalize-range: 0.1.2 +- picocolors: 1.0.0 +- postcss: 8.4.35 ++ picocolors: 1.1.1 ++ postcss: 8.4.49 + postcss-value-parser: 4.2.0 + +- axios@1.7.2(debug@4.3.4): ++ available-typed-arrays@1.0.7: ++ dependencies: ++ possible-typed-array-names: 1.0.0 ++ ++ axios@1.7.7: + dependencies: +- follow-redirects: 1.15.6(debug@4.3.4) +- form-data: 4.0.0 ++ follow-redirects: 1.15.9 ++ form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + +- axobject-query@4.0.0: +- dependencies: +- dequal: 2.0.3 ++ axobject-query@4.1.0: {} + + balanced-match@1.0.2: {} + + before-after-hook@2.2.3: {} + +- binary-extensions@2.2.0: {} ++ binary-extensions@2.3.0: {} ++ ++ bits-ui@1.0.0-next.63(svelte@5.1.15): ++ dependencies: ++ '@floating-ui/core': 1.6.8 ++ '@floating-ui/dom': 1.6.12 ++ '@internationalized/date': 3.5.6 ++ esm-env: 1.1.4 ++ runed: 0.15.3(svelte@5.1.15) ++ svelte: 5.1.15 ++ svelte-toolbelt: 0.4.6(svelte@5.1.15) + + bottleneck@2.19.5: {} + +@@ -3357,54 +4042,62 @@ snapshots: + dependencies: + balanced-match: 1.0.2 + +- braces@3.0.2: ++ braces@3.0.3: + dependencies: +- fill-range: 7.0.1 ++ fill-range: 7.1.1 + +- browserslist@4.23.0: ++ browserslist@4.24.2: + dependencies: +- caniuse-lite: 1.0.30001587 +- electron-to-chromium: 1.4.671 +- node-releases: 2.0.14 +- update-browserslist-db: 1.0.13(browserslist@4.23.0) ++ caniuse-lite: 1.0.30001680 ++ electron-to-chromium: 1.5.56 ++ node-releases: 2.0.18 ++ update-browserslist-db: 1.1.1(browserslist@4.24.2) + + btoa-lite@1.0.0: {} + +- buffer-crc32@0.2.13: {} +- + buffer-equal-constant-time@1.0.1: {} + ++ buffer-from@1.1.2: ++ optional: true ++ + cac@6.7.14: {} + ++ call-bind@1.0.7: ++ dependencies: ++ es-define-property: 1.0.0 ++ es-errors: 1.3.0 ++ function-bind: 1.1.2 ++ get-intrinsic: 1.2.4 ++ set-function-length: 1.2.2 ++ + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + +- caniuse-lite@1.0.30001587: {} ++ camelcase@8.0.0: ++ optional: true ++ ++ caniuse-lite@1.0.30001680: {} + +- chai@4.4.1: ++ chai@5.1.2: + dependencies: +- assertion-error: 1.1.0 +- check-error: 1.0.3 +- deep-eql: 4.1.3 +- get-func-name: 2.0.2 +- loupe: 2.3.7 +- pathval: 1.1.1 +- type-detect: 4.0.8 ++ assertion-error: 2.0.1 ++ check-error: 2.1.1 ++ deep-eql: 5.0.2 ++ loupe: 3.1.2 ++ pathval: 2.0.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + +- check-error@1.0.3: +- dependencies: +- get-func-name: 2.0.2 ++ check-error@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 +- braces: 3.0.2 ++ braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 +@@ -3413,7 +4106,16 @@ snapshots: + optionalDependencies: + fsevents: 2.3.3 + +- classnames@2.5.1: {} ++ chokidar@4.0.1: ++ dependencies: ++ readdirp: 4.0.2 ++ ++ class-validator@0.14.1: ++ dependencies: ++ '@types/validator': 13.12.2 ++ libphonenumber-js: 1.11.14 ++ validator: 13.12.0 ++ optional: true + + clean-git-ref@2.0.1: {} + +@@ -3421,16 +4123,6 @@ snapshots: + + clsx@2.1.1: {} + +- code-red@1.0.4: +- dependencies: +- '@jridgewell/sourcemap-codec': 1.4.15 +- '@types/estree': 1.0.5 +- acorn: 8.11.3 +- estree-walker: 3.0.3 +- periscopic: 3.1.0 +- +- codejar@4.2.0: {} +- + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 +@@ -3455,32 +4147,46 @@ snapshots: + + crc-32@1.2.2: {} + +- cross-spawn@7.0.3: ++ cross-spawn@7.0.5: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + +- css-tree@2.3.1: +- dependencies: +- mdn-data: 2.0.30 +- source-map-js: 1.0.2 +- + cssesc@3.0.0: {} + + csstype@3.1.3: {} + +- dayjs@1.11.13: {} ++ data-view-buffer@1.0.1: ++ dependencies: ++ call-bind: 1.0.7 ++ es-errors: 1.3.0 ++ is-data-view: 1.0.1 ++ ++ data-view-byte-length@1.0.1: ++ dependencies: ++ call-bind: 1.0.7 ++ es-errors: 1.3.0 ++ is-data-view: 1.0.1 + +- debug@4.3.4: ++ data-view-byte-offset@1.0.0: + dependencies: +- ms: 2.1.2 ++ call-bind: 1.0.7 ++ es-errors: 1.3.0 ++ is-data-view: 1.0.1 + +- dedent@1.5.1: {} ++ date-fns@4.1.0: {} ++ ++ dayjs@1.11.13: ++ optional: true + +- deep-eql@4.1.3: ++ debug@4.3.7: + dependencies: +- type-detect: 4.0.8 ++ ms: 2.1.3 ++ ++ dedent@1.5.1: {} ++ ++ deep-eql@5.0.2: {} + + deep-is@0.1.4: {} + +@@ -3488,35 +4194,33 @@ snapshots: + + deepmerge@4.3.1: {} + ++ define-data-property@1.1.4: ++ dependencies: ++ es-define-property: 1.0.0 ++ es-errors: 1.3.0 ++ gopd: 1.0.1 ++ ++ define-properties@1.2.1: ++ dependencies: ++ define-data-property: 1.1.4 ++ has-property-descriptors: 1.0.2 ++ object-keys: 1.1.1 ++ + delayed-stream@1.0.0: {} + + deprecation@2.3.1: {} + + dequal@2.0.3: {} + +- detect-indent@6.1.0: {} +- + devalue@4.3.3: {} + +- devalue@5.0.0: {} ++ devalue@5.1.1: {} + + didyoumean@1.2.2: {} + +- diff-sequences@29.6.3: {} +- +- diff3@0.0.4: {} +- +- dir-glob@3.0.1: +- dependencies: +- path-type: 4.0.0 +- + dlv@1.1.3: {} + +- doctrine@3.0.0: +- dependencies: +- esutils: 2.0.3 +- +- dotenv@16.4.4: {} ++ dotenv@16.4.5: {} + + eastasianwidth@0.2.0: {} + +@@ -3524,75 +4228,194 @@ snapshots: + dependencies: + safe-buffer: 5.2.1 + +- effect@3.8.3: {} ++ effect@3.10.14: ++ dependencies: ++ fast-check: 3.23.1 + +- electron-to-chromium@1.4.671: {} ++ electron-to-chromium@1.5.56: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + +- es6-promise@3.3.1: {} ++ es-abstract@1.23.3: ++ dependencies: ++ array-buffer-byte-length: 1.0.1 ++ arraybuffer.prototype.slice: 1.0.3 ++ available-typed-arrays: 1.0.7 ++ call-bind: 1.0.7 ++ data-view-buffer: 1.0.1 ++ data-view-byte-length: 1.0.1 ++ data-view-byte-offset: 1.0.0 ++ es-define-property: 1.0.0 ++ es-errors: 1.3.0 ++ es-object-atoms: 1.0.0 ++ es-set-tostringtag: 2.0.3 ++ es-to-primitive: 1.2.1 ++ function.prototype.name: 1.1.6 ++ get-intrinsic: 1.2.4 ++ get-symbol-description: 1.0.2 ++ globalthis: 1.0.4 ++ gopd: 1.0.1 ++ has-property-descriptors: 1.0.2 ++ has-proto: 1.0.3 ++ has-symbols: 1.0.3 ++ hasown: 2.0.2 ++ internal-slot: 1.0.7 ++ is-array-buffer: 3.0.4 ++ is-callable: 1.2.7 ++ is-data-view: 1.0.1 ++ is-negative-zero: 2.0.3 ++ is-regex: 1.1.4 ++ is-shared-array-buffer: 1.0.3 ++ is-string: 1.0.7 ++ is-typed-array: 1.1.13 ++ is-weakref: 1.0.2 ++ object-inspect: 1.13.3 ++ object-keys: 1.1.1 ++ object.assign: 4.1.5 ++ regexp.prototype.flags: 1.5.3 ++ safe-array-concat: 1.1.2 ++ safe-regex-test: 1.0.3 ++ string.prototype.trim: 1.2.9 ++ string.prototype.trimend: 1.0.8 ++ string.prototype.trimstart: 1.0.8 ++ typed-array-buffer: 1.0.2 ++ typed-array-byte-length: 1.0.1 ++ typed-array-byte-offset: 1.0.2 ++ typed-array-length: 1.0.6 ++ unbox-primitive: 1.0.2 ++ which-typed-array: 1.1.15 ++ ++ es-array-method-boxes-properly@1.0.0: {} ++ ++ es-define-property@1.0.0: ++ dependencies: ++ get-intrinsic: 1.2.4 ++ ++ es-errors@1.3.0: {} ++ ++ es-object-atoms@1.0.0: ++ dependencies: ++ es-errors: 1.3.0 ++ ++ es-set-tostringtag@2.0.3: ++ dependencies: ++ get-intrinsic: 1.2.4 ++ has-tostringtag: 1.0.2 ++ hasown: 2.0.2 ++ ++ es-to-primitive@1.2.1: ++ dependencies: ++ is-callable: 1.2.7 ++ is-date-object: 1.0.5 ++ is-symbol: 1.0.4 ++ ++ es7-shim@6.0.0: ++ dependencies: ++ array-includes: 3.1.8 ++ object.entries: 1.1.8 ++ object.getownpropertydescriptors: 2.1.8 ++ object.values: 1.2.0 ++ string-at: 1.1.0 ++ string.prototype.padend: 3.1.6 ++ string.prototype.padstart: 3.1.6 ++ string.prototype.trimleft: 2.1.3 ++ string.prototype.trimright: 2.1.3 ++ ++ esbuild-runner@2.2.2(esbuild@0.24.0): ++ dependencies: ++ esbuild: 0.24.0 ++ source-map-support: 0.5.21 ++ tslib: 2.4.0 ++ optional: true + + esbuild-wasm@0.19.12: {} + +- esbuild@0.19.12: ++ esbuild@0.21.5: ++ optionalDependencies: ++ '@esbuild/aix-ppc64': 0.21.5 ++ '@esbuild/android-arm': 0.21.5 ++ '@esbuild/android-arm64': 0.21.5 ++ '@esbuild/android-x64': 0.21.5 ++ '@esbuild/darwin-arm64': 0.21.5 ++ '@esbuild/darwin-x64': 0.21.5 ++ '@esbuild/freebsd-arm64': 0.21.5 ++ '@esbuild/freebsd-x64': 0.21.5 ++ '@esbuild/linux-arm': 0.21.5 ++ '@esbuild/linux-arm64': 0.21.5 ++ '@esbuild/linux-ia32': 0.21.5 ++ '@esbuild/linux-loong64': 0.21.5 ++ '@esbuild/linux-mips64el': 0.21.5 ++ '@esbuild/linux-ppc64': 0.21.5 ++ '@esbuild/linux-riscv64': 0.21.5 ++ '@esbuild/linux-s390x': 0.21.5 ++ '@esbuild/linux-x64': 0.21.5 ++ '@esbuild/netbsd-x64': 0.21.5 ++ '@esbuild/openbsd-x64': 0.21.5 ++ '@esbuild/sunos-x64': 0.21.5 ++ '@esbuild/win32-arm64': 0.21.5 ++ '@esbuild/win32-ia32': 0.21.5 ++ '@esbuild/win32-x64': 0.21.5 ++ ++ esbuild@0.24.0: + optionalDependencies: +- '@esbuild/aix-ppc64': 0.19.12 +- '@esbuild/android-arm': 0.19.12 +- '@esbuild/android-arm64': 0.19.12 +- '@esbuild/android-x64': 0.19.12 +- '@esbuild/darwin-arm64': 0.19.12 +- '@esbuild/darwin-x64': 0.19.12 +- '@esbuild/freebsd-arm64': 0.19.12 +- '@esbuild/freebsd-x64': 0.19.12 +- '@esbuild/linux-arm': 0.19.12 +- '@esbuild/linux-arm64': 0.19.12 +- '@esbuild/linux-ia32': 0.19.12 +- '@esbuild/linux-loong64': 0.19.12 +- '@esbuild/linux-mips64el': 0.19.12 +- '@esbuild/linux-ppc64': 0.19.12 +- '@esbuild/linux-riscv64': 0.19.12 +- '@esbuild/linux-s390x': 0.19.12 +- '@esbuild/linux-x64': 0.19.12 +- '@esbuild/netbsd-x64': 0.19.12 +- '@esbuild/openbsd-x64': 0.19.12 +- '@esbuild/sunos-x64': 0.19.12 +- '@esbuild/win32-arm64': 0.19.12 +- '@esbuild/win32-ia32': 0.19.12 +- '@esbuild/win32-x64': 0.19.12 +- +- escalade@3.1.2: {} ++ '@esbuild/aix-ppc64': 0.24.0 ++ '@esbuild/android-arm': 0.24.0 ++ '@esbuild/android-arm64': 0.24.0 ++ '@esbuild/android-x64': 0.24.0 ++ '@esbuild/darwin-arm64': 0.24.0 ++ '@esbuild/darwin-x64': 0.24.0 ++ '@esbuild/freebsd-arm64': 0.24.0 ++ '@esbuild/freebsd-x64': 0.24.0 ++ '@esbuild/linux-arm': 0.24.0 ++ '@esbuild/linux-arm64': 0.24.0 ++ '@esbuild/linux-ia32': 0.24.0 ++ '@esbuild/linux-loong64': 0.24.0 ++ '@esbuild/linux-mips64el': 0.24.0 ++ '@esbuild/linux-ppc64': 0.24.0 ++ '@esbuild/linux-riscv64': 0.24.0 ++ '@esbuild/linux-s390x': 0.24.0 ++ '@esbuild/linux-x64': 0.24.0 ++ '@esbuild/netbsd-x64': 0.24.0 ++ '@esbuild/openbsd-arm64': 0.24.0 ++ '@esbuild/openbsd-x64': 0.24.0 ++ '@esbuild/sunos-x64': 0.24.0 ++ '@esbuild/win32-arm64': 0.24.0 ++ '@esbuild/win32-ia32': 0.24.0 ++ '@esbuild/win32-x64': 0.24.0 ++ optional: true ++ ++ escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + +- eslint-compat-utils@0.1.2(eslint@8.56.0): ++ eslint-compat-utils@0.5.1(eslint@9.14.0(jiti@1.21.6)): + dependencies: +- eslint: 8.56.0 ++ eslint: 9.14.0(jiti@1.21.6) ++ semver: 7.6.3 + +- eslint-config-prettier@9.1.0(eslint@8.56.0): ++ eslint-config-prettier@9.1.0(eslint@9.14.0(jiti@1.21.6)): + dependencies: +- eslint: 8.56.0 ++ eslint: 9.14.0(jiti@1.21.6) + +- eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.11): ++ eslint-plugin-svelte@2.46.0(eslint@9.14.0(jiti@1.21.6))(svelte@5.1.15): + dependencies: +- '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) +- '@jridgewell/sourcemap-codec': 1.4.15 +- debug: 4.3.4 +- eslint: 8.56.0 +- eslint-compat-utils: 0.1.2(eslint@8.56.0) ++ '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@1.21.6)) ++ '@jridgewell/sourcemap-codec': 1.5.0 ++ eslint: 9.14.0(jiti@1.21.6) ++ eslint-compat-utils: 0.5.1(eslint@9.14.0(jiti@1.21.6)) + esutils: 2.0.3 +- known-css-properties: 0.29.0 +- postcss: 8.4.35 +- postcss-load-config: 3.1.4(postcss@8.4.35) +- postcss-safe-parser: 6.0.0(postcss@8.4.35) +- postcss-selector-parser: 6.0.15 +- semver: 7.6.0 +- svelte-eslint-parser: 0.33.1(svelte@4.2.11) ++ known-css-properties: 0.35.0 ++ postcss: 8.4.49 ++ postcss-load-config: 3.1.4(postcss@8.4.49) ++ postcss-safe-parser: 6.0.0(postcss@8.4.49) ++ postcss-selector-parser: 6.1.2 ++ semver: 7.6.3 ++ svelte-eslint-parser: 0.43.0(svelte@5.1.15) + optionalDependencies: +- svelte: 4.2.11 ++ svelte: 5.1.15 + transitivePeerDependencies: +- - supports-color + - ts-node + + eslint-scope@7.2.2: +@@ -3600,119 +4423,79 @@ snapshots: + esrecurse: 4.3.0 + estraverse: 5.3.0 + +- eslint-scope@8.0.1: ++ eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + +- eslint-visitor-keys@4.0.0: {} +- +- eslint@8.56.0: +- dependencies: +- '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) +- '@eslint-community/regexpp': 4.10.0 +- '@eslint/eslintrc': 2.1.4 +- '@eslint/js': 8.56.0 +- '@humanwhocodes/config-array': 0.11.14 +- '@humanwhocodes/module-importer': 1.0.1 +- '@nodelib/fs.walk': 1.2.8 +- '@ungap/structured-clone': 1.2.0 +- ajv: 6.12.6 +- chalk: 4.1.2 +- cross-spawn: 7.0.3 +- debug: 4.3.4 +- doctrine: 3.0.0 +- escape-string-regexp: 4.0.0 +- eslint-scope: 7.2.2 +- eslint-visitor-keys: 3.4.3 +- espree: 9.6.1 +- esquery: 1.5.0 +- esutils: 2.0.3 +- fast-deep-equal: 3.1.3 +- file-entry-cache: 6.0.1 +- find-up: 5.0.0 +- glob-parent: 6.0.2 +- globals: 13.24.0 +- graphemer: 1.4.0 +- ignore: 5.3.1 +- imurmurhash: 0.1.4 +- is-glob: 4.0.3 +- is-path-inside: 3.0.3 +- js-yaml: 4.1.0 +- json-stable-stringify-without-jsonify: 1.0.1 +- levn: 0.4.1 +- lodash.merge: 4.6.2 +- minimatch: 3.1.2 +- natural-compare: 1.4.0 +- optionator: 0.9.3 +- strip-ansi: 6.0.1 +- text-table: 0.2.0 +- transitivePeerDependencies: +- - supports-color ++ eslint-visitor-keys@4.2.0: {} + +- eslint@9.0.0: ++ eslint@9.14.0(jiti@1.21.6): + dependencies: +- '@eslint-community/eslint-utils': 4.4.0(eslint@9.0.0) +- '@eslint-community/regexpp': 4.10.0 ++ '@eslint-community/eslint-utils': 4.4.1(eslint@9.14.0(jiti@1.21.6)) ++ '@eslint-community/regexpp': 4.12.1 ++ '@eslint/config-array': 0.18.0 ++ '@eslint/core': 0.7.0 + '@eslint/eslintrc': 3.1.0 +- '@eslint/js': 9.0.0 +- '@humanwhocodes/config-array': 0.12.3 ++ '@eslint/js': 9.14.0 ++ '@eslint/plugin-kit': 0.2.2 ++ '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 +- '@nodelib/fs.walk': 1.2.8 ++ '@humanwhocodes/retry': 0.4.1 ++ '@types/estree': 1.0.6 ++ '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 +- cross-spawn: 7.0.3 +- debug: 4.3.4 ++ cross-spawn: 7.0.5 ++ debug: 4.3.7 + escape-string-regexp: 4.0.0 +- eslint-scope: 8.0.1 +- eslint-visitor-keys: 4.0.0 +- espree: 10.0.1 +- esquery: 1.5.0 ++ eslint-scope: 8.2.0 ++ eslint-visitor-keys: 4.2.0 ++ espree: 10.3.0 ++ esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 +- graphemer: 1.4.0 +- ignore: 5.3.1 ++ ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 +- is-path-inside: 3.0.3 + json-stable-stringify-without-jsonify: 1.0.1 +- levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 +- optionator: 0.9.3 +- strip-ansi: 6.0.1 ++ optionator: 0.9.4 + text-table: 0.2.0 ++ optionalDependencies: ++ jiti: 1.21.6 + transitivePeerDependencies: + - supports-color + +- esm-env@1.0.0: {} ++ esm-env@1.1.4: {} + +- espree@10.0.1: ++ espree@10.3.0: + dependencies: +- acorn: 8.11.3 +- acorn-jsx: 5.3.2(acorn@8.11.3) +- eslint-visitor-keys: 4.0.0 ++ acorn: 8.14.0 ++ acorn-jsx: 5.3.2(acorn@8.14.0) ++ eslint-visitor-keys: 4.2.0 + + espree@9.6.1: + dependencies: +- acorn: 8.11.3 +- acorn-jsx: 5.3.2(acorn@8.11.3) ++ acorn: 8.14.0 ++ acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 3.4.3 + +- esquery@1.5.0: ++ esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrap@1.2.2: + dependencies: +- '@jridgewell/sourcemap-codec': 1.4.15 +- '@types/estree': 1.0.5 ++ '@jridgewell/sourcemap-codec': 1.5.0 ++ '@types/estree': 1.0.6 + + esrecurse@4.3.0: + dependencies: +@@ -3722,21 +4505,15 @@ snapshots: + + estree-walker@3.0.3: + dependencies: +- '@types/estree': 1.0.5 ++ '@types/estree': 1.0.6 + + esutils@2.0.3: {} + +- execa@8.0.1: ++ expect-type@1.1.0: {} ++ ++ fast-check@3.23.1: + dependencies: +- cross-spawn: 7.0.3 +- get-stream: 8.0.1 +- human-signals: 5.0.0 +- is-stream: 3.0.0 +- merge-stream: 2.0.0 +- npm-run-path: 5.2.0 +- onetime: 6.0.0 +- signal-exit: 4.1.0 +- strip-final-newline: 3.0.0 ++ pure-rand: 6.1.0 + + fast-deep-equal@3.1.3: {} + +@@ -3746,25 +4523,23 @@ snapshots: + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 +- micromatch: 4.0.5 ++ micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + +- fastq@1.15.0: ++ fastq@1.17.1: + dependencies: + reusify: 1.0.4 + +- file-entry-cache@6.0.1: +- dependencies: +- flat-cache: 3.2.0 ++ fdir@6.4.2: {} + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + +- fill-range@7.0.1: ++ fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + +@@ -3773,63 +4548,41 @@ snapshots: + locate-path: 6.0.0 + path-exists: 4.0.0 + +- flat-cache@3.2.0: +- dependencies: +- flatted: 3.2.9 +- keyv: 4.5.4 +- rimraf: 3.0.2 +- + flat-cache@4.0.1: + dependencies: +- flatted: 3.2.9 ++ flatted: 3.3.1 + keyv: 4.5.4 + +- flatted@3.2.9: {} ++ flatted@3.3.1: {} + +- flowbite-svelte-blocks@1.1.0(svelte@4.2.11): ++ focus-trap@7.6.1: + dependencies: +- flowbite: 2.3.0 +- flowbite-svelte: 0.44.23(svelte@4.2.11) +- svelte: 4.2.11 +- tailwind-merge: 2.5.2 ++ tabbable: 6.2.0 + +- flowbite-svelte-icons@1.3.1(svelte@4.2.11)(tailwind-merge@2.5.2)(tailwindcss@3.4.1): +- dependencies: +- svelte: 4.2.11 +- tailwind-merge: 2.5.2 +- tailwindcss: 3.4.1 +- +- flowbite-svelte@0.44.23(svelte@4.2.11): +- dependencies: +- '@floating-ui/dom': 1.6.3 +- apexcharts: 3.45.2 +- flowbite: 2.3.0 +- svelte: 4.2.11 +- tailwind-merge: 2.5.2 ++ follow-redirects@1.15.9: {} + +- flowbite@2.3.0: ++ for-each@0.3.3: + dependencies: +- '@popperjs/core': 2.11.8 +- mini-svg-data-uri: 1.4.4 +- +- follow-redirects@1.15.6(debug@4.3.4): +- optionalDependencies: +- debug: 4.3.4 ++ is-callable: 1.2.7 + +- foreground-child@3.1.1: ++ foreground-child@3.3.0: + dependencies: +- cross-spawn: 7.0.3 ++ cross-spawn: 7.0.5 + signal-exit: 4.1.0 + +- form-data@4.0.0: ++ form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + +- fraction.js@4.3.7: {} ++ formsnap@2.0.0-next.1(svelte@5.1.15)(sveltekit-superforms@2.20.0(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(@types/json-schema@7.0.15)(svelte@5.1.15)(typescript@5.6.3)): ++ dependencies: ++ svelte: 5.1.15 ++ svelte-toolbelt: 0.4.6(svelte@5.1.15) ++ sveltekit-superforms: 2.20.0(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(@types/json-schema@7.0.15)(svelte@5.1.15)(typescript@5.6.3) + +- fs.realpath@1.0.0: {} ++ fraction.js@4.3.7: {} + + fsevents@2.3.2: + optional: true +@@ -3839,72 +4592,96 @@ snapshots: + + function-bind@1.1.2: {} + +- get-func-name@2.0.2: {} ++ function.prototype.name@1.1.6: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 ++ functions-have-names: 1.2.3 + +- get-stream@8.0.1: {} ++ functions-have-names@1.2.3: {} + +- glob-parent@5.1.2: ++ get-intrinsic@1.2.4: + dependencies: +- is-glob: 4.0.3 ++ es-errors: 1.3.0 ++ function-bind: 1.1.2 ++ has-proto: 1.0.3 ++ has-symbols: 1.0.3 ++ hasown: 2.0.2 + +- glob-parent@6.0.2: ++ get-symbol-description@1.0.2: + dependencies: +- is-glob: 4.0.3 ++ call-bind: 1.0.7 ++ es-errors: 1.3.0 ++ get-intrinsic: 1.2.4 + +- glob@10.3.10: ++ glob-parent@5.1.2: + dependencies: +- foreground-child: 3.1.1 +- jackspeak: 2.3.6 +- minimatch: 9.0.3 +- minipass: 7.0.4 +- path-scurry: 1.10.1 ++ is-glob: 4.0.3 + +- glob@7.2.3: ++ glob-parent@6.0.2: + dependencies: +- fs.realpath: 1.0.0 +- inflight: 1.0.6 +- inherits: 2.0.4 +- minimatch: 3.1.2 +- once: 1.4.0 +- path-is-absolute: 1.0.1 ++ is-glob: 4.0.3 + +- globals@13.24.0: ++ glob@10.4.5: + dependencies: +- type-fest: 0.20.2 ++ foreground-child: 3.3.0 ++ jackspeak: 3.4.3 ++ minimatch: 9.0.5 ++ minipass: 7.1.2 ++ package-json-from-dist: 1.0.1 ++ path-scurry: 1.11.1 + + globals@14.0.0: {} + +- globalyzer@0.1.0: {} ++ globals@15.12.0: {} + +- globby@11.1.0: ++ globalthis@1.0.4: + dependencies: +- array-union: 2.1.0 +- dir-glob: 3.0.1 +- fast-glob: 3.3.2 +- ignore: 5.3.1 +- merge2: 1.4.1 +- slash: 3.0.0 ++ define-properties: 1.2.1 ++ gopd: 1.0.1 ++ ++ globalyzer@0.1.0: {} + + globrex@0.1.2: {} + +- graceful-fs@4.2.11: {} ++ gopd@1.0.1: ++ dependencies: ++ get-intrinsic: 1.2.4 + + graphemer@1.4.0: {} + + guess-json-indent@2.0.0: {} + ++ has-bigints@1.0.2: {} ++ + has-flag@4.0.0: {} + +- hasown@2.0.1: ++ has-property-descriptors@1.0.2: + dependencies: +- function-bind: 1.1.2 ++ es-define-property: 1.0.0 ++ ++ has-proto@1.0.3: {} ++ ++ has-symbols@1.0.3: {} + +- highlight.js@11.10.0: {} ++ has-tostringtag@1.0.2: ++ dependencies: ++ has-symbols: 1.0.3 + +- human-signals@5.0.0: {} ++ hash.js@1.1.7: ++ dependencies: ++ inherits: 2.0.4 ++ minimalistic-assert: 1.0.1 ++ ++ hasown@2.0.2: ++ dependencies: ++ function-bind: 1.1.2 + + ignore@5.3.1: {} + ++ ignore@5.3.2: {} ++ + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 +@@ -3916,20 +4693,47 @@ snapshots: + + indent-string@4.0.0: {} + +- inflight@1.0.6: ++ inherits@2.0.4: {} ++ ++ inline-style-parser@0.2.4: {} ++ ++ internal-slot@1.0.7: + dependencies: +- once: 1.4.0 +- wrappy: 1.0.2 ++ es-errors: 1.3.0 ++ hasown: 2.0.2 ++ side-channel: 1.0.6 + +- inherits@2.0.4: {} ++ is-array-buffer@3.0.4: ++ dependencies: ++ call-bind: 1.0.7 ++ get-intrinsic: 1.2.4 ++ ++ is-bigint@1.0.4: ++ dependencies: ++ has-bigints: 1.0.2 + + is-binary-path@2.1.0: + dependencies: +- binary-extensions: 2.2.0 ++ binary-extensions: 2.3.0 ++ ++ is-boolean-object@1.1.2: ++ dependencies: ++ call-bind: 1.0.7 ++ has-tostringtag: 1.0.2 + +- is-core-module@2.13.1: ++ is-callable@1.2.7: {} ++ ++ is-core-module@2.15.1: ++ dependencies: ++ hasown: 2.0.2 ++ ++ is-data-view@1.0.1: + dependencies: +- hasown: 2.0.1 ++ is-typed-array: 1.1.13 ++ ++ is-date-object@1.0.5: ++ dependencies: ++ has-tostringtag: 1.0.2 + + is-extglob@2.1.1: {} + +@@ -3939,25 +4743,63 @@ snapshots: + dependencies: + is-extglob: 2.1.1 + +- is-number@7.0.0: {} ++ is-negative-zero@2.0.3: {} + +- is-path-inside@3.0.3: {} ++ is-number-object@1.0.7: ++ dependencies: ++ has-tostringtag: 1.0.2 ++ ++ is-number@7.0.0: {} + + is-reference@3.0.2: + dependencies: +- '@types/estree': 1.0.5 ++ '@types/estree': 1.0.6 ++ ++ is-regex@1.1.4: ++ dependencies: ++ call-bind: 1.0.7 ++ has-tostringtag: 1.0.2 + +- is-stream@3.0.0: {} ++ is-shared-array-buffer@1.0.3: ++ dependencies: ++ call-bind: 1.0.7 ++ ++ is-string@1.0.7: ++ dependencies: ++ has-tostringtag: 1.0.2 ++ ++ is-symbol@1.0.4: ++ dependencies: ++ has-symbols: 1.0.3 ++ ++ is-typed-array@1.1.13: ++ dependencies: ++ which-typed-array: 1.1.15 ++ ++ is-weakref@1.0.2: ++ dependencies: ++ call-bind: 1.0.7 ++ ++ isarray@2.0.5: {} + + isexe@2.0.0: {} + +- jackspeak@2.3.6: ++ jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + +- jiti@1.21.0: {} ++ jiti@1.21.6: {} ++ ++ joi@17.13.3: ++ dependencies: ++ '@hapi/hoek': 9.3.0 ++ '@hapi/topo': 5.1.0 ++ '@sideway/address': 4.1.5 ++ '@sideway/formula': 3.0.1 ++ '@sideway/pinpoint': 2.0.0 ++ optional: true + + js-yaml@4.1.0: + dependencies: +@@ -3965,13 +4807,23 @@ snapshots: + + json-buffer@3.0.1: {} + ++ json-schema-to-ts@3.1.1: ++ dependencies: ++ '@babel/runtime': 7.26.0 ++ ts-algebra: 2.0.0 ++ optional: true ++ + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + +- json5@2.2.3: {} ++ json-to-ts@2.1.0: ++ dependencies: ++ es7-shim: 6.0.0 ++ hash.js: 1.1.7 ++ pluralize: 3.1.0 + +- jsonc-parser@3.2.1: {} ++ json5@2.2.3: {} + + jsonwebtoken@9.0.2: + dependencies: +@@ -3983,8 +4835,10 @@ snapshots: + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 +- ms: 2.1.2 +- semver: 7.6.0 ++ ms: 2.1.3 ++ semver: 7.6.3 ++ ++ just-clone@6.2.0: {} + + jwa@1.4.1: + dependencies: +@@ -4003,21 +4857,21 @@ snapshots: + + kleur@4.1.5: {} + +- known-css-properties@0.29.0: {} ++ known-css-properties@0.35.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + ++ libphonenumber-js@1.11.14: ++ optional: true ++ + lilconfig@2.1.0: {} + +- lines-and-columns@1.2.4: {} ++ lilconfig@3.1.2: {} + +- local-pkg@0.5.0: +- dependencies: +- mlly: 1.5.0 +- pkg-types: 1.0.3 ++ lines-and-columns@1.2.4: {} + + locate-character@3.0.0: {} + +@@ -4025,6 +4879,8 @@ snapshots: + dependencies: + p-locate: 5.0.0 + ++ lodash.castarray@4.4.0: {} ++ + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} +@@ -4043,33 +4899,25 @@ snapshots: + + lodash@4.17.21: {} + +- loupe@2.3.7: +- dependencies: +- get-func-name: 2.0.2 +- +- lru-cache@10.2.0: {} ++ loupe@3.1.2: {} + +- lru-cache@6.0.0: +- dependencies: +- yallist: 4.0.0 ++ lru-cache@10.4.3: {} + +- magic-string@0.30.10: ++ lucide-svelte@0.454.0(svelte@5.1.15): + dependencies: +- '@jridgewell/sourcemap-codec': 1.4.15 ++ svelte: 5.1.15 + +- magic-string@0.30.7: ++ magic-string@0.30.12: + dependencies: +- '@jridgewell/sourcemap-codec': 1.4.15 +- +- mdn-data@2.0.30: {} ++ '@jridgewell/sourcemap-codec': 1.5.0 + +- merge-stream@2.0.0: {} ++ memoize-weak@1.0.2: {} + + merge2@1.4.1: {} + +- micromatch@4.0.5: ++ micromatch@4.0.8: + dependencies: +- braces: 3.0.2 ++ braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} +@@ -4078,44 +4926,29 @@ snapshots: + dependencies: + mime-db: 1.52.0 + +- mimic-fn@4.0.0: {} +- +- min-indent@1.0.1: {} +- + mini-svg-data-uri@1.4.4: {} + ++ minimalistic-assert@1.0.1: {} ++ + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + +- minimatch@9.0.3: +- dependencies: +- brace-expansion: 2.0.1 +- +- minimatch@9.0.4: ++ minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + +- minimist@1.2.8: {} +- +- minipass@7.0.4: {} ++ minipass@7.1.2: {} + +- mkdirp@0.5.6: ++ mode-watcher@0.4.1(svelte@5.1.15): + dependencies: +- minimist: 1.2.8 +- +- mlly@1.5.0: +- dependencies: +- acorn: 8.11.3 +- pathe: 1.1.2 +- pkg-types: 1.0.3 +- ufo: 1.4.0 ++ svelte: 5.1.15 + + mri@1.2.0: {} + + mrmime@2.0.0: {} + +- ms@2.1.2: {} ++ ms@2.1.3: {} + + murmurhash3js@3.0.1: {} + +@@ -4127,24 +4960,56 @@ snapshots: + + nanoid@3.3.7: {} + +- nanoid@5.0.7: {} ++ nanoid@5.0.8: {} + + natural-compare@1.4.0: {} + +- node-releases@2.0.14: {} ++ node-releases@2.0.18: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + +- npm-run-path@5.2.0: +- dependencies: +- path-key: 4.0.0 ++ normalize-url@8.0.1: ++ optional: true + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + ++ object-inspect@1.13.3: {} ++ ++ object-keys@1.1.1: {} ++ ++ object.assign@4.1.5: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ has-symbols: 1.0.3 ++ object-keys: 1.1.1 ++ ++ object.entries@1.1.8: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-object-atoms: 1.0.0 ++ ++ object.getownpropertydescriptors@2.1.8: ++ dependencies: ++ array.prototype.reduce: 1.0.7 ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 ++ es-object-atoms: 1.0.0 ++ gopd: 1.0.1 ++ safe-array-concat: 1.1.2 ++ ++ object.values@1.2.0: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-object-atoms: 1.0.0 ++ + octokit@3.1.2: + dependencies: + '@octokit/app': 14.1.0 +@@ -4156,71 +5021,58 @@ snapshots: + '@octokit/plugin-retry': 6.0.1(@octokit/core@5.2.0) + '@octokit/plugin-throttling': 8.2.0(@octokit/core@5.2.0) + '@octokit/request-error': 5.1.0 +- '@octokit/types': 12.4.0 ++ '@octokit/types': 12.6.0 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + +- onetime@6.0.0: ++ optionator@0.9.4: + dependencies: +- mimic-fn: 4.0.0 +- +- optionator@0.9.3: +- dependencies: +- '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 ++ word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + +- p-limit@5.0.0: +- dependencies: +- yocto-queue: 1.0.0 +- + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + ++ package-json-from-dist@1.0.1: {} ++ + pako@1.0.11: {} + ++ paneforge@1.0.0-next.1(svelte@5.1.15): ++ dependencies: ++ svelte: 5.1.15 ++ svelte-toolbelt: 0.4.6(svelte@5.1.15) ++ + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + path-exists@4.0.0: {} + +- path-is-absolute@1.0.1: {} +- + path-key@3.1.1: {} + +- path-key@4.0.0: {} +- + path-parse@1.0.7: {} + +- path-scurry@1.10.1: ++ path-scurry@1.11.1: + dependencies: +- lru-cache: 10.2.0 +- minipass: 7.0.4 +- +- path-type@4.0.0: {} ++ lru-cache: 10.4.3 ++ minipass: 7.1.2 + + pathe@1.1.2: {} + +- pathval@1.1.1: {} ++ pathval@2.0.0: {} + +- periscopic@3.1.0: +- dependencies: +- '@types/estree': 1.0.5 +- estree-walker: 3.0.3 +- is-reference: 3.0.2 +- +- picocolors@1.0.0: {} ++ picocolors@1.1.1: {} + + picomatch@2.3.1: {} + +@@ -4230,111 +5082,109 @@ snapshots: + + pirates@4.0.6: {} + +- pkg-types@1.0.3: +- dependencies: +- jsonc-parser: 3.2.1 +- mlly: 1.5.0 +- pathe: 1.1.2 +- +- playwright-core@1.41.2: {} ++ playwright-core@1.48.2: {} + +- playwright@1.41.2: ++ playwright@1.48.2: + dependencies: +- playwright-core: 1.41.2 ++ playwright-core: 1.48.2 + optionalDependencies: + fsevents: 2.3.2 + +- pocketbase@0.21.2: {} ++ pluralize@3.1.0: {} + +- postcss-import@15.1.0(postcss@8.4.35): ++ pocketbase@0.21.5: {} ++ ++ possible-typed-array-names@1.0.0: {} ++ ++ postcss-import@15.1.0(postcss@8.4.49): + dependencies: +- postcss: 8.4.35 ++ postcss: 8.4.49 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + +- postcss-js@4.0.1(postcss@8.4.35): ++ postcss-js@4.0.1(postcss@8.4.49): + dependencies: + camelcase-css: 2.0.1 +- postcss: 8.4.35 ++ postcss: 8.4.49 + +- postcss-load-config@3.1.4(postcss@8.4.35): ++ postcss-load-config@3.1.4(postcss@8.4.49): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: +- postcss: 8.4.35 ++ postcss: 8.4.49 + +- postcss-load-config@4.0.1(postcss@8.4.35): ++ postcss-load-config@4.0.2(postcss@8.4.49): + dependencies: +- lilconfig: 2.1.0 +- yaml: 2.3.2 ++ lilconfig: 3.1.2 ++ yaml: 2.6.0 + optionalDependencies: +- postcss: 8.4.35 ++ postcss: 8.4.49 ++ ++ postcss-nested@6.2.0(postcss@8.4.49): ++ dependencies: ++ postcss: 8.4.49 ++ postcss-selector-parser: 6.1.2 + +- postcss-nested@6.0.1(postcss@8.4.35): ++ postcss-safe-parser@6.0.0(postcss@8.4.49): + dependencies: +- postcss: 8.4.35 +- postcss-selector-parser: 6.0.15 ++ postcss: 8.4.49 + +- postcss-safe-parser@6.0.0(postcss@8.4.35): ++ postcss-scss@4.0.9(postcss@8.4.49): + dependencies: +- postcss: 8.4.35 ++ postcss: 8.4.49 + +- postcss-scss@4.0.9(postcss@8.4.35): ++ postcss-selector-parser@6.0.10: + dependencies: +- postcss: 8.4.35 ++ cssesc: 3.0.0 ++ util-deprecate: 1.0.2 + +- postcss-selector-parser@6.0.15: ++ postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + +- postcss@8.4.35: ++ postcss@8.4.49: + dependencies: + nanoid: 3.3.7 +- picocolors: 1.0.0 +- source-map-js: 1.0.2 ++ picocolors: 1.1.1 ++ source-map-js: 1.2.1 + +- posthog-node@3.1.3(debug@4.3.4): ++ posthog-node@4.2.1: + dependencies: +- axios: 1.7.2(debug@4.3.4) ++ axios: 1.7.7 + rusha: 0.8.14 + transitivePeerDependencies: + - debug + + prelude-ls@1.2.1: {} + +- prettier-plugin-svelte@3.2.1(prettier@3.2.5)(svelte@4.2.11): ++ prettier-plugin-svelte@3.2.8(prettier@3.3.3)(svelte@5.1.15): + dependencies: +- prettier: 3.2.5 +- svelte: 4.2.11 ++ prettier: 3.3.3 ++ svelte: 5.1.15 + +- prettier-plugin-tailwindcss@0.5.14(prettier-plugin-svelte@3.2.1(prettier@3.2.5)(svelte@4.2.11))(prettier@3.2.5): ++ prettier-plugin-tailwindcss@0.6.8(prettier-plugin-svelte@3.2.8(prettier@3.3.3)(svelte@5.1.15))(prettier@3.3.3): + dependencies: +- prettier: 3.2.5 ++ prettier: 3.3.3 + optionalDependencies: +- prettier-plugin-svelte: 3.2.1(prettier@3.2.5)(svelte@4.2.11) +- +- prettier@2.8.3: {} ++ prettier-plugin-svelte: 3.2.8(prettier@3.3.3)(svelte@5.1.15) + +- prettier@3.2.5: {} ++ prettier@3.3.3: {} + +- pretty-format@29.7.0: +- dependencies: +- '@jest/schemas': 29.6.3 +- ansi-styles: 5.2.0 +- react-is: 18.2.0 ++ property-expr@2.0.6: ++ optional: true + + proxy-from-env@1.1.0: {} + + punycode@2.3.1: {} + +- queue-microtask@1.2.3: {} ++ pure-rand@6.1.0: {} + +- react-is@18.2.0: {} ++ queue-microtask@1.2.3: {} + + read-cache@1.0.0: + dependencies: +@@ -4344,67 +5194,101 @@ snapshots: + dependencies: + picomatch: 2.3.1 + ++ readdirp@4.0.2: {} ++ ++ regenerator-runtime@0.14.1: ++ optional: true ++ ++ regexp.prototype.flags@1.5.3: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-errors: 1.3.0 ++ set-function-name: 2.0.2 ++ + resolve-from@4.0.0: {} + + resolve@1.22.8: + dependencies: +- is-core-module: 2.13.1 ++ is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.0.4: {} + +- rimraf@2.7.1: +- dependencies: +- glob: 7.2.3 +- +- rimraf@3.0.2: ++ rollup@4.25.0: + dependencies: +- glob: 7.2.3 +- +- rollup@4.11.0: +- dependencies: +- '@types/estree': 1.0.5 ++ '@types/estree': 1.0.6 + optionalDependencies: +- '@rollup/rollup-android-arm-eabi': 4.11.0 +- '@rollup/rollup-android-arm64': 4.11.0 +- '@rollup/rollup-darwin-arm64': 4.11.0 +- '@rollup/rollup-darwin-x64': 4.11.0 +- '@rollup/rollup-linux-arm-gnueabihf': 4.11.0 +- '@rollup/rollup-linux-arm64-gnu': 4.11.0 +- '@rollup/rollup-linux-arm64-musl': 4.11.0 +- '@rollup/rollup-linux-riscv64-gnu': 4.11.0 +- '@rollup/rollup-linux-x64-gnu': 4.11.0 +- '@rollup/rollup-linux-x64-musl': 4.11.0 +- '@rollup/rollup-win32-arm64-msvc': 4.11.0 +- '@rollup/rollup-win32-ia32-msvc': 4.11.0 +- '@rollup/rollup-win32-x64-msvc': 4.11.0 ++ '@rollup/rollup-android-arm-eabi': 4.25.0 ++ '@rollup/rollup-android-arm64': 4.25.0 ++ '@rollup/rollup-darwin-arm64': 4.25.0 ++ '@rollup/rollup-darwin-x64': 4.25.0 ++ '@rollup/rollup-freebsd-arm64': 4.25.0 ++ '@rollup/rollup-freebsd-x64': 4.25.0 ++ '@rollup/rollup-linux-arm-gnueabihf': 4.25.0 ++ '@rollup/rollup-linux-arm-musleabihf': 4.25.0 ++ '@rollup/rollup-linux-arm64-gnu': 4.25.0 ++ '@rollup/rollup-linux-arm64-musl': 4.25.0 ++ '@rollup/rollup-linux-powerpc64le-gnu': 4.25.0 ++ '@rollup/rollup-linux-riscv64-gnu': 4.25.0 ++ '@rollup/rollup-linux-s390x-gnu': 4.25.0 ++ '@rollup/rollup-linux-x64-gnu': 4.25.0 ++ '@rollup/rollup-linux-x64-musl': 4.25.0 ++ '@rollup/rollup-win32-arm64-msvc': 4.25.0 ++ '@rollup/rollup-win32-ia32-msvc': 4.25.0 ++ '@rollup/rollup-win32-x64-msvc': 4.25.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + ++ runed@0.15.3(svelte@5.1.15): ++ dependencies: ++ esm-env: 1.1.4 ++ svelte: 5.1.15 ++ + rusha@0.8.14: {} + + sade@1.8.1: + dependencies: + mri: 1.2.0 + ++ safe-array-concat@1.1.2: ++ dependencies: ++ call-bind: 1.0.7 ++ get-intrinsic: 1.2.4 ++ has-symbols: 1.0.3 ++ isarray: 2.0.5 ++ + safe-buffer@5.2.1: {} + +- sander@0.5.1: ++ safe-regex-test@1.0.3: + dependencies: +- es6-promise: 3.3.1 +- graceful-fs: 4.2.11 +- mkdirp: 0.5.6 +- rimraf: 2.7.1 ++ call-bind: 1.0.7 ++ es-errors: 1.3.0 ++ is-regex: 1.1.4 ++ ++ semver@7.6.3: {} ++ ++ set-cookie-parser@2.7.1: {} + +- semver@7.6.0: ++ set-function-length@1.2.2: + dependencies: +- lru-cache: 6.0.0 ++ define-data-property: 1.1.4 ++ es-errors: 1.3.0 ++ function-bind: 1.1.2 ++ get-intrinsic: 1.2.4 ++ gopd: 1.0.1 ++ has-property-descriptors: 1.0.2 + +- set-cookie-parser@2.6.0: {} ++ set-function-name@2.0.2: ++ dependencies: ++ define-data-property: 1.1.4 ++ es-errors: 1.3.0 ++ functions-have-names: 1.2.3 ++ has-property-descriptors: 1.0.2 + + sha.js@2.4.11: + dependencies: +@@ -4417,34 +5301,46 @@ snapshots: + + shebang-regex@3.0.0: {} + ++ side-channel@1.0.6: ++ dependencies: ++ call-bind: 1.0.7 ++ es-errors: 1.3.0 ++ get-intrinsic: 1.2.4 ++ object-inspect: 1.13.3 ++ + siginfo@2.0.0: {} + + signal-exit@4.1.0: {} + +- sirv@2.0.4: ++ sirv@3.0.0: + dependencies: +- '@polka/url': 1.0.0-next.25 ++ '@polka/url': 1.0.0-next.28 + mrmime: 2.0.0 + totalist: 3.0.1 + +- slash@3.0.0: {} +- + solid-js@1.6.12: + dependencies: + csstype: 3.1.3 + +- sorcery@0.11.0: ++ source-map-js@1.2.1: {} ++ ++ source-map-support@0.5.21: + dependencies: +- '@jridgewell/sourcemap-codec': 1.4.15 +- buffer-crc32: 0.2.13 +- minimist: 1.2.8 +- sander: 0.5.1 ++ buffer-from: 1.1.2 ++ source-map: 0.6.1 ++ optional: true + +- source-map-js@1.0.2: {} ++ source-map@0.6.1: ++ optional: true + + stackback@0.0.2: {} + +- std-env@3.7.0: {} ++ std-env@3.8.0: {} ++ ++ string-at@1.1.0: ++ dependencies: ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 + + string-width@4.2.3: + dependencies: +@@ -4458,180 +5354,177 @@ snapshots: + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + +- strip-ansi@6.0.1: ++ string.prototype.padend@3.1.6: + dependencies: +- ansi-regex: 5.0.1 ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 ++ es-object-atoms: 1.0.0 + +- strip-ansi@7.1.0: ++ string.prototype.padstart@3.1.6: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 ++ es-object-atoms: 1.0.0 ++ ++ string.prototype.trim@1.2.9: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-abstract: 1.23.3 ++ es-object-atoms: 1.0.0 ++ ++ string.prototype.trimend@1.0.8: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-object-atoms: 1.0.0 ++ ++ string.prototype.trimleft@2.1.3: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ string.prototype.trimstart: 1.0.8 ++ ++ string.prototype.trimright@2.1.3: + dependencies: +- ansi-regex: 6.0.1 ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ string.prototype.trimend: 1.0.8 + +- strip-final-newline@3.0.0: {} ++ string.prototype.trimstart@1.0.8: ++ dependencies: ++ call-bind: 1.0.7 ++ define-properties: 1.2.1 ++ es-object-atoms: 1.0.0 ++ ++ strip-ansi@6.0.1: ++ dependencies: ++ ansi-regex: 5.0.1 + +- strip-indent@3.0.0: ++ strip-ansi@7.1.0: + dependencies: +- min-indent: 1.0.1 ++ ansi-regex: 6.1.0 + + strip-json-comments@3.1.1: {} + +- strip-literal@1.3.0: ++ style-to-object@1.0.8: + dependencies: +- acorn: 8.11.3 ++ inline-style-parser: 0.2.4 + + sucrase@3.35.0: + dependencies: +- '@jridgewell/gen-mapping': 0.3.3 ++ '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 +- glob: 10.3.10 ++ glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + ++ superstruct@2.0.2: ++ optional: true ++ + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + +- svelecte@3.17.3: +- dependencies: +- svelte-tiny-virtual-list: 2.0.5 +- +- svelte-boring-avatars@1.2.6: {} +- +- svelte-check@3.6.4(postcss-load-config@4.0.1(postcss@8.4.35))(postcss@8.4.35)(svelte@4.2.11): ++ svelte-check@4.0.7(svelte@5.1.15)(typescript@5.6.3): + dependencies: +- '@jridgewell/trace-mapping': 0.3.22 +- chokidar: 3.6.0 +- fast-glob: 3.3.2 +- import-fresh: 3.3.0 +- picocolors: 1.0.0 ++ '@jridgewell/trace-mapping': 0.3.25 ++ chokidar: 4.0.1 ++ fdir: 6.4.2 ++ picocolors: 1.1.1 + sade: 1.8.1 +- svelte: 4.2.11 +- svelte-preprocess: 5.1.3(postcss-load-config@4.0.1(postcss@8.4.35))(postcss@8.4.35)(svelte@4.2.11)(typescript@5.3.3) +- typescript: 5.3.3 ++ svelte: 5.1.15 ++ typescript: 5.6.3 + transitivePeerDependencies: +- - '@babel/core' +- - coffeescript +- - less +- - postcss +- - postcss-load-config +- - pug +- - sass +- - stylus +- - sugarss ++ - picomatch + +- svelte-eslint-parser@0.33.1(svelte@4.2.11): ++ svelte-eslint-parser@0.43.0(svelte@5.1.15): + dependencies: + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 +- postcss: 8.4.35 +- postcss-scss: 4.0.9(postcss@8.4.35) ++ postcss: 8.4.49 ++ postcss-scss: 4.0.9(postcss@8.4.49) + optionalDependencies: +- svelte: 4.2.11 ++ svelte: 5.1.15 + +- svelte-heros-v2@0.10.11(svelte@4.2.11): +- dependencies: +- svelte: 4.2.11 ++ svelte-loading-spinners@0.3.6: {} + +- svelte-heros@6.0.1(svelte@4.2.11): ++ svelte-sonner@0.3.28(svelte@5.1.15): + dependencies: +- svelte: 4.2.11 ++ svelte: 5.1.15 + +- svelte-hmr@0.16.0(svelte@4.2.11): ++ svelte-toolbelt@0.4.6(svelte@5.1.15): + dependencies: +- svelte: 4.2.11 ++ clsx: 2.1.1 ++ style-to-object: 1.0.8 ++ svelte: 5.1.15 + +- svelte-preprocess@5.1.3(postcss-load-config@4.0.1(postcss@8.4.35))(postcss@8.4.35)(svelte@4.2.11)(typescript@5.3.3): ++ svelte@5.1.15: + dependencies: +- '@types/pug': 2.0.10 +- detect-indent: 6.1.0 +- magic-string: 0.30.7 +- sorcery: 0.11.0 +- strip-indent: 3.0.0 +- svelte: 4.2.11 +- optionalDependencies: +- postcss: 8.4.35 +- postcss-load-config: 4.0.1(postcss@8.4.35) +- typescript: 5.3.3 +- +- svelte-tiny-virtual-list@2.0.5: {} +- +- svelte@4.2.11: +- dependencies: +- '@ampproject/remapping': 2.2.1 +- '@jridgewell/sourcemap-codec': 1.4.15 +- '@jridgewell/trace-mapping': 0.3.22 +- '@types/estree': 1.0.5 +- acorn: 8.11.3 +- aria-query: 5.3.0 +- axobject-query: 4.0.0 +- code-red: 1.0.4 +- css-tree: 2.3.1 +- estree-walker: 3.0.3 +- is-reference: 3.0.2 +- locate-character: 3.0.0 +- magic-string: 0.30.7 +- periscopic: 3.1.0 +- +- svelte@5.0.0-next.141: +- dependencies: +- '@ampproject/remapping': 2.2.1 +- '@jridgewell/sourcemap-codec': 1.4.15 +- '@types/estree': 1.0.5 +- acorn: 8.11.3 +- acorn-typescript: 1.4.13(acorn@8.11.3) +- aria-query: 5.3.0 +- axobject-query: 4.0.0 +- esm-env: 1.0.0 ++ '@ampproject/remapping': 2.3.0 ++ '@jridgewell/sourcemap-codec': 1.5.0 ++ '@types/estree': 1.0.6 ++ acorn: 8.14.0 ++ acorn-typescript: 1.4.13(acorn@8.14.0) ++ aria-query: 5.3.2 ++ axobject-query: 4.1.0 ++ esm-env: 1.1.4 + esrap: 1.2.2 + is-reference: 3.0.2 + locate-character: 3.0.0 +- magic-string: 0.30.10 ++ magic-string: 0.30.12 + zimmerframe: 1.1.2 + +- sveltekit-superforms@1.6.1(@sveltejs/kit@2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(zod@3.22.4): +- dependencies: +- '@sveltejs/kit': 2.5.7(@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)))(svelte@4.2.11)(vite@5.1.3(@types/node@20.12.12)) +- svelte: 4.2.11 +- zod: 3.22.4 +- +- svg.draggable.js@2.2.2: ++ sveltekit-superforms@2.20.0(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(@types/json-schema@7.0.15)(svelte@5.1.15)(typescript@5.6.3): + dependencies: +- svg.js: 2.7.1 +- +- svg.easing.js@2.0.0: +- dependencies: +- svg.js: 2.7.1 +- +- svg.filter.js@2.0.2: +- dependencies: +- svg.js: 2.7.1 ++ '@sveltejs/kit': 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@22.9.0)) ++ devalue: 5.1.1 ++ just-clone: 6.2.0 ++ memoize-weak: 1.0.2 ++ svelte: 5.1.15 ++ ts-deepmerge: 7.0.1 ++ optionalDependencies: ++ '@effect/schema': 0.75.5(effect@3.10.14) ++ '@exodus/schemasafe': 1.3.0 ++ '@gcornut/valibot-json-schema': 0.31.0 ++ '@sinclair/typebox': 0.32.35 ++ '@typeschema/class-validator': 0.3.0(@types/json-schema@7.0.15)(class-validator@0.14.1) ++ '@vinejs/vine': 1.8.0 ++ arktype: 2.0.0-rc.8 ++ class-validator: 0.14.1 ++ effect: 3.10.14 ++ joi: 17.13.3 ++ json-schema-to-ts: 3.1.1 ++ superstruct: 2.0.2 ++ valibot: 0.41.0(typescript@5.6.3) ++ yup: 1.4.0 ++ zod: 3.23.8 ++ zod-to-json-schema: 3.23.5(zod@3.23.8) ++ transitivePeerDependencies: ++ - '@types/json-schema' ++ - typescript + +- svg.js@2.7.1: {} ++ tabbable@6.2.0: {} + +- svg.pathmorphing.js@0.1.3: +- dependencies: +- svg.js: 2.7.1 ++ tailwind-merge@2.5.4: {} + +- svg.resize.js@1.4.3: ++ tailwind-variants@0.2.1(tailwindcss@3.4.14): + dependencies: +- svg.js: 2.7.1 +- svg.select.js: 2.1.2 ++ tailwind-merge: 2.5.4 ++ tailwindcss: 3.4.14 + +- svg.select.js@2.1.2: ++ tailwindcss-animate@1.0.7(tailwindcss@3.4.14): + dependencies: +- svg.js: 2.7.1 ++ tailwindcss: 3.4.14 + +- svg.select.js@3.0.1: +- dependencies: +- svg.js: 2.7.1 +- +- tailwind-merge@2.5.2: {} +- +- tailwindcss@3.4.1: ++ tailwindcss@3.4.14: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 +@@ -4641,18 +5534,18 @@ snapshots: + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 +- jiti: 1.21.0 ++ jiti: 1.21.6 + lilconfig: 2.1.0 +- micromatch: 4.0.5 ++ micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 +- picocolors: 1.0.0 +- postcss: 8.4.35 +- postcss-import: 15.1.0(postcss@8.4.35) +- postcss-js: 4.0.1(postcss@8.4.35) +- postcss-load-config: 4.0.1(postcss@8.4.35) +- postcss-nested: 6.0.1(postcss@8.4.35) +- postcss-selector-parser: 6.0.15 ++ picocolors: 1.1.1 ++ postcss: 8.4.49 ++ postcss-import: 15.1.0(postcss@8.4.49) ++ postcss-js: 4.0.1(postcss@8.4.49) ++ postcss-load-config: 4.0.2(postcss@8.4.49) ++ postcss-nested: 6.2.0(postcss@8.4.49) ++ postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: +@@ -4668,66 +5561,133 @@ snapshots: + dependencies: + any-promise: 1.3.0 + +- throttle-debounce@5.0.0: {} ++ throttle-debounce@5.0.2: {} ++ ++ tiny-case@1.0.3: ++ optional: true + + tiny-glob@0.2.9: + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + +- tinybench@2.6.0: {} ++ tinybench@2.9.0: {} + +- tinypool@0.8.2: {} ++ tinyexec@0.3.1: {} + +- tinyspy@2.2.1: {} ++ tinypool@1.0.1: {} ++ ++ tinyrainbow@1.2.0: {} ++ ++ tinyspy@3.0.2: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + ++ toposort@2.0.2: ++ optional: true ++ + totalist@3.0.1: {} + +- ts-api-utils@1.3.0(typescript@5.3.3): ++ ts-algebra@2.0.0: ++ optional: true ++ ++ ts-api-utils@1.4.0(typescript@5.6.3): + dependencies: +- typescript: 5.3.3 ++ typescript: 5.6.3 ++ ++ ts-deepmerge@7.0.1: {} + + ts-interface-checker@0.1.13: {} + +- tslib@2.6.2: {} ++ tslib@2.4.0: ++ optional: true ++ ++ tslib@2.8.1: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + +- type-detect@4.0.8: {} ++ type-fest@2.19.0: ++ optional: true ++ ++ type-fest@4.26.1: {} ++ ++ typed-array-buffer@1.0.2: ++ dependencies: ++ call-bind: 1.0.7 ++ es-errors: 1.3.0 ++ is-typed-array: 1.1.13 ++ ++ typed-array-byte-length@1.0.1: ++ dependencies: ++ call-bind: 1.0.7 ++ for-each: 0.3.3 ++ gopd: 1.0.1 ++ has-proto: 1.0.3 ++ is-typed-array: 1.1.13 ++ ++ typed-array-byte-offset@1.0.2: ++ dependencies: ++ available-typed-arrays: 1.0.7 ++ call-bind: 1.0.7 ++ for-each: 0.3.3 ++ gopd: 1.0.1 ++ has-proto: 1.0.3 ++ is-typed-array: 1.1.13 + +- type-fest@0.20.2: {} ++ typed-array-length@1.0.6: ++ dependencies: ++ call-bind: 1.0.7 ++ for-each: 0.3.3 ++ gopd: 1.0.1 ++ has-proto: 1.0.3 ++ is-typed-array: 1.1.13 ++ possible-typed-array-names: 1.0.0 + +- typescript@5.3.3: {} ++ typescript-eslint@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3): ++ dependencies: ++ '@typescript-eslint/eslint-plugin': 8.14.0(@typescript-eslint/parser@8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) ++ '@typescript-eslint/parser': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) ++ '@typescript-eslint/utils': 8.14.0(eslint@9.14.0(jiti@1.21.6))(typescript@5.6.3) ++ optionalDependencies: ++ typescript: 5.6.3 ++ transitivePeerDependencies: ++ - eslint ++ - supports-color + +- ufo@1.4.0: {} ++ typescript@5.2.2: {} + +- undici-types@5.26.5: {} ++ typescript@5.6.3: {} + +- universal-github-app-jwt@1.1.2: ++ unbox-primitive@1.0.2: + dependencies: +- '@types/jsonwebtoken': 9.0.6 ++ call-bind: 1.0.7 ++ has-bigints: 1.0.2 ++ has-symbols: 1.0.3 ++ which-boxed-primitive: 1.0.2 ++ ++ undici-types@6.19.8: {} ++ ++ universal-github-app-jwt@1.2.0: ++ dependencies: ++ '@types/jsonwebtoken': 9.0.7 + jsonwebtoken: 9.0.2 + + universal-user-agent@6.0.1: {} + +- unplugin@1.5.1: ++ unplugin@1.15.0: + dependencies: +- acorn: 8.11.3 +- chokidar: 3.6.0 +- webpack-sources: 3.2.3 +- webpack-virtual-modules: 0.6.1 ++ acorn: 8.14.0 ++ webpack-virtual-modules: 0.6.2 + +- update-browserslist-db@1.0.13(browserslist@4.23.0): ++ update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: +- browserslist: 4.23.0 +- escalade: 3.1.2 +- picocolors: 1.0.0 ++ browserslist: 4.24.2 ++ escalade: 3.2.0 ++ picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: +@@ -4735,83 +5695,111 @@ snapshots: + + util-deprecate@1.0.2: {} + +- vite-node@1.2.2(@types/node@20.12.12): ++ valibot@0.31.1: ++ optional: true ++ ++ valibot@0.41.0(typescript@5.6.3): ++ optionalDependencies: ++ typescript: 5.6.3 ++ optional: true ++ ++ validator@13.12.0: ++ optional: true ++ ++ vite-node@2.1.4(@types/node@22.9.0): + dependencies: + cac: 6.7.14 +- debug: 4.3.4 ++ debug: 4.3.7 + pathe: 1.1.2 +- picocolors: 1.0.0 +- vite: 5.1.3(@types/node@20.12.12) ++ vite: 5.4.11(@types/node@22.9.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass ++ - sass-embedded + - stylus + - sugarss + - supports-color + - terser + +- vite@5.1.3(@types/node@20.12.12): ++ vite@5.4.11(@types/node@22.9.0): + dependencies: +- esbuild: 0.19.12 +- postcss: 8.4.35 +- rollup: 4.11.0 ++ esbuild: 0.21.5 ++ postcss: 8.4.49 ++ rollup: 4.25.0 + optionalDependencies: +- '@types/node': 20.12.12 ++ '@types/node': 22.9.0 + fsevents: 2.3.3 + +- vitefu@0.2.5(vite@5.1.3(@types/node@20.12.12)): ++ vitefu@1.0.3(vite@5.4.11(@types/node@22.9.0)): + optionalDependencies: +- vite: 5.1.3(@types/node@20.12.12) +- +- vitest@1.2.2(@types/node@20.12.12): +- dependencies: +- '@vitest/expect': 1.2.2 +- '@vitest/runner': 1.2.2 +- '@vitest/snapshot': 1.2.2 +- '@vitest/spy': 1.2.2 +- '@vitest/utils': 1.2.2 +- acorn-walk: 8.3.2 +- cac: 6.7.14 +- chai: 4.4.1 +- debug: 4.3.4 +- execa: 8.0.1 +- local-pkg: 0.5.0 +- magic-string: 0.30.7 ++ vite: 5.4.11(@types/node@22.9.0) ++ ++ vitest@2.1.4(@types/node@22.9.0): ++ dependencies: ++ '@vitest/expect': 2.1.4 ++ '@vitest/mocker': 2.1.4(vite@5.4.11(@types/node@22.9.0)) ++ '@vitest/pretty-format': 2.1.4 ++ '@vitest/runner': 2.1.4 ++ '@vitest/snapshot': 2.1.4 ++ '@vitest/spy': 2.1.4 ++ '@vitest/utils': 2.1.4 ++ chai: 5.1.2 ++ debug: 4.3.7 ++ expect-type: 1.1.0 ++ magic-string: 0.30.12 + pathe: 1.1.2 +- picocolors: 1.0.0 +- std-env: 3.7.0 +- strip-literal: 1.3.0 +- tinybench: 2.6.0 +- tinypool: 0.8.2 +- vite: 5.1.3(@types/node@20.12.12) +- vite-node: 1.2.2(@types/node@20.12.12) +- why-is-node-running: 2.2.2 ++ std-env: 3.8.0 ++ tinybench: 2.9.0 ++ tinyexec: 0.3.1 ++ tinypool: 1.0.1 ++ tinyrainbow: 1.2.0 ++ vite: 5.4.11(@types/node@22.9.0) ++ vite-node: 2.1.4(@types/node@22.9.0) ++ why-is-node-running: 2.3.0 + optionalDependencies: +- '@types/node': 20.12.12 ++ '@types/node': 22.9.0 + transitivePeerDependencies: + - less + - lightningcss ++ - msw + - sass ++ - sass-embedded + - stylus + - sugarss + - supports-color + - terser + +- webpack-sources@3.2.3: {} ++ webpack-virtual-modules@0.6.2: {} + +- webpack-virtual-modules@0.6.1: {} ++ which-boxed-primitive@1.0.2: ++ dependencies: ++ is-bigint: 1.0.4 ++ is-boolean-object: 1.1.2 ++ is-number-object: 1.0.7 ++ is-string: 1.0.7 ++ is-symbol: 1.0.4 ++ ++ which-typed-array@1.1.15: ++ dependencies: ++ available-typed-arrays: 1.0.7 ++ call-bind: 1.0.7 ++ for-each: 0.3.3 ++ gopd: 1.0.1 ++ has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + +- why-is-node-running@2.2.2: ++ why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + ++ word-wrap@1.2.5: {} ++ + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 +@@ -4826,22 +5814,27 @@ snapshots: + + wrappy@1.0.2: {} + +- yallist@4.0.0: {} +- + yaml@1.10.2: {} + +- yaml@2.3.2: {} +- +- yarn@1.22.21: {} ++ yaml@2.6.0: {} + + yocto-queue@0.1.0: {} + +- yocto-queue@1.0.0: {} +- +- zenroom@4.12.0: ++ yup@1.4.0: + dependencies: +- yarn: 1.22.21 ++ property-expr: 2.0.6 ++ tiny-case: 1.0.3 ++ toposort: 2.0.2 ++ type-fest: 2.19.0 ++ optional: true ++ ++ zenroom@4.46.0: {} + + zimmerframe@1.1.2: {} + +- zod@3.22.4: {} ++ zod-to-json-schema@3.23.5(zod@3.23.8): ++ dependencies: ++ zod: 3.23.8 ++ optional: true ++ ++ zod@3.23.8: {} diff --git a/webapp/postcss.config.js b/webapp/postcss.config.js new file mode 100644 index 00000000..0f772168 --- /dev/null +++ b/webapp/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {} + } +}; diff --git a/webapp/project.inlang/settings.json b/webapp/project.inlang/settings.json index f6be5eaa..e26c09a2 100644 --- a/webapp/project.inlang/settings.json +++ b/webapp/project.inlang/settings.json @@ -1,17 +1,17 @@ { "$schema": "https://inlang.com/schema/project-settings", - "sourceLanguageTag": "en", - "languageTags": ["en", "da", "de", "fr", "it", "pt-BR"], "modules": [ - "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@latest/dist/index.js", - "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-identical-pattern@latest/dist/index.js", - "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@latest/dist/index.js", - "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-without-source@latest/dist/index.js", - "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-valid-js-identifier@latest/dist/index.js", - "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@latest/dist/index.js", - "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@latest/dist/index.js" + "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-empty-pattern@1/dist/index.js", + "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-identical-pattern@1/dist/index.js", + "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-missing-translation@1/dist/index.js", + "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-without-source@1/dist/index.js", + "https://cdn.jsdelivr.net/npm/@inlang/message-lint-rule-valid-js-identifier@1/dist/index.js", + "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@2/dist/index.js", + "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@0/dist/index.js" ], "plugin.inlang.messageFormat": { "pathPattern": "./messages/{languageTag}.json" - } + }, + "sourceLanguageTag": "en", + "languageTags": ["en", "it", "de", "fr", "da", "pt-br"] } diff --git a/webapp/src/app.css b/webapp/src/app.css new file mode 100644 index 00000000..e4e46418 --- /dev/null +++ b/webapp/src/app.css @@ -0,0 +1,145 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + --destructive: 0 72.2% 50.6%; + --destructive-foreground: 210 40% 98%; + --ring: 222.2 84% 4.9%; + --radius: 0.5rem; + --sidebar-background: 0 0% 98%; + --sidebar-foreground: 240 5.3% 26.1%; + --sidebar-primary: 240 5.9% 10%; + --sidebar-primary-foreground: 0 0% 98%; + --sidebar-accent: 240 4.8% 95.9%; + --sidebar-accent-foreground: 240 5.9% 10%; + --sidebar-border: 220 13% 91%; + --sidebar-ring: 217.2 91.2% 59.8%; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + --ring: 212.7 26.8% 83.9%; + --sidebar-background: 240 5.9% 10%; + --sidebar-foreground: 240 4.8% 95.9%; + --sidebar-primary: 224.3 76.3% 48%; + --sidebar-primary-foreground: 0 0% 100%; + --sidebar-accent: 240 3.7% 15.9%; + --sidebar-accent-foreground: 240 4.8% 95.9%; + --sidebar-border: 240 3.7% 15.9%; + --sidebar-ring: 217.2 91.2% 59.8%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} + +@layer base { + :root { + --sidebar-background: 0 0% 98%; + --sidebar-foreground: 240 5.3% 26.1%; + --sidebar-primary: 240 5.9% 10%; + --sidebar-primary-foreground: 0 0% 98%; + --sidebar-accent: 240 4.8% 95.9%; + --sidebar-accent-foreground: 240 5.9% 10%; + --sidebar-border: 220 13% 91%; + --sidebar-ring: 217.2 91.2% 59.8%; + } + + .dark { + --sidebar-background: 240 5.9% 10%; + --sidebar-foreground: 240 4.8% 95.9%; + --sidebar-primary: 224.3 76.3% 48%; + --sidebar-primary-foreground: 0 0% 100%; + --sidebar-accent: 240 3.7% 15.9%; + --sidebar-accent-foreground: 240 4.8% 95.9%; + --sidebar-border: 240 3.7% 15.9%; + --sidebar-ring: 217.2 91.2% 59.8%; + } +} + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 20 14.3% 4.1%; + --card: 0 0% 100%; + --card-foreground: 20 14.3% 4.1%; + --popover: 0 0% 100%; + --popover-foreground: 20 14.3% 4.1%; + --primary: 24.6 95% 53.1%; + --primary-foreground: 60 9.1% 97.8%; + --secondary: 60 4.8% 95.9%; + --secondary-foreground: 24 9.8% 10%; + --muted: 60 4.8% 95.9%; + --muted-foreground: 25 5.3% 44.7%; + --accent: 60 4.8% 95.9%; + --accent-foreground: 24 9.8% 10%; + --destructive: 0 72.22% 50.59%; + --destructive-foreground: 60 9.1% 97.8%; + --border: 20 5.9% 90%; + --input: 20 5.9% 90%; + --ring: 24.6 95% 53.1%; + --radius: 0.5rem; + } + .dark { + --background: 20 14.3% 4.1%; + --foreground: 60 9.1% 97.8%; + --card: 20 14.3% 4.1%; + --card-foreground: 60 9.1% 97.8%; + --popover: 20 14.3% 4.1%; + --popover-foreground: 60 9.1% 97.8%; + --primary: 20.5 90.2% 48.2%; + --primary-foreground: 60 9.1% 97.8%; + --secondary: 12 6.5% 15.1%; + --secondary-foreground: 60 9.1% 97.8%; + --muted: 12 6.5% 15.1%; + --muted-foreground: 24 5.4% 63.9%; + --accent: 12 6.5% 15.1%; + --accent-foreground: 60 9.1% 97.8%; + --destructive: 0 72.2% 50.6%; + --destructive-foreground: 60 9.1% 97.8%; + --border: 12 6.5% 15.1%; + --input: 12 6.5% 15.1%; + --ring: 20.5 90.2% 48.2%; + } +} diff --git a/webapp/src/app.d.ts.rej b/webapp/src/app.d.ts.rej new file mode 100644 index 00000000..4ccf849d --- /dev/null +++ b/webapp/src/app.d.ts.rej @@ -0,0 +1,24 @@ +diff a/webapp/src/app.d.ts b/webapp/src/app.d.ts (rejected hunks) +@@ -1,12 +1,13 @@ +-// See https://kit.svelte.dev/docs/types#app ++// See https://svelte.dev/docs/kit/types#app.d.ts + // for information about these interfaces +-// and what to do when importing type +-declare namespace App { +- // interface Error {} +- interface Locals { +- pb: import('pocketbase').default; +- user: import('pocketbase').default['authStore']['model']; ++declare global { ++ namespace App { ++ // interface Error {} ++ // interface Locals {} ++ // interface PageData {} ++ // interface PageState {} ++ // interface Platform {} + } +- // interface PageData {} +- // interface Platform {} + } ++ ++export {}; diff --git a/webapp/src/app.html.rej b/webapp/src/app.html.rej new file mode 100644 index 00000000..c015547a --- /dev/null +++ b/webapp/src/app.html.rej @@ -0,0 +1,20 @@ +diff a/webapp/src/app.html b/webapp/src/app.html (rejected hunks) +@@ -1,15 +1,12 @@ +- ++ + + + + +- +- Signroom ++ + %sveltekit.head% + +- +- +- ++ +
%sveltekit.body%
+ + diff --git a/webapp/src/index.test.ts b/webapp/src/demo.spec.ts similarity index 100% rename from webapp/src/index.test.ts rename to webapp/src/demo.spec.ts diff --git a/webapp/src/hooks.client.ts.rej b/webapp/src/hooks.client.ts.rej new file mode 100644 index 00000000..5e079ea0 --- /dev/null +++ b/webapp/src/hooks.client.ts.rej @@ -0,0 +1,16 @@ +diff a/webapp/src/hooks.client.ts b/webapp/src/hooks.client.ts (rejected hunks) +@@ -1,7 +1,12 @@ +-import { currentUser, pb, type AuthStoreModel } from '$lib/pocketbase'; ++import { currentUser, pb, type AuthStoreModel } from '@/pocketbase'; ++ ++import { version } from '$app/environment'; ++import { appName } from '@/brand'; + + pb.authStore.loadFromCookie(document.cookie); + pb.authStore.onChange(() => { + currentUser.set(pb.authStore.model as AuthStoreModel); +- document.cookie = pb.authStore.exportToCookie({ httpOnly: false, secure:false }); ++ document.cookie = pb.authStore.exportToCookie({ httpOnly: false, secure: false }); + }); ++ ++console.info(`${appName} version: 🔖 ${version}`); diff --git a/webapp/src/hooks.server.ts.rej b/webapp/src/hooks.server.ts.rej new file mode 100644 index 00000000..0052592c --- /dev/null +++ b/webapp/src/hooks.server.ts.rej @@ -0,0 +1,12 @@ +diff a/webapp/src/hooks.server.ts b/webapp/src/hooks.server.ts (rejected hunks) +@@ -1,6 +1,4 @@ +-// file initialized by the Paraglide-SvelteKit CLI - Feel free to edit it +-import { sequence } from "@sveltejs/kit/hooks" +-import { i18n } from "$lib/i18n" +- +-// add your own hooks as part of the sequence here +-export const handle = sequence(i18n.handle()) ++import type { Handle } from '@sveltejs/kit'; ++import { i18n } from '@/i18n'; ++const handleParaglide: Handle = i18n.handle(); ++export const handle: Handle = handleParaglide; diff --git a/webapp/src/hooks.ts.rej b/webapp/src/hooks.ts.rej new file mode 100644 index 00000000..29e15dc4 --- /dev/null +++ b/webapp/src/hooks.ts.rej @@ -0,0 +1,8 @@ +diff a/webapp/src/hooks.ts b/webapp/src/hooks.ts (rejected hunks) +@@ -1,4 +1,2 @@ +-// file initialized by the Paraglide-SvelteKit CLI - Feel free to edit it +-import { i18n } from "$lib/i18n" +- +-export const reroute = i18n.reroute() ++import { i18n } from '@/i18n'; ++export const reroute = i18n.reroute(); diff --git a/webapp/src/lib/collectionManager/collectionManager.svelte b/webapp/src/lib/collectionManager/collectionManager.svelte deleted file mode 100644 index 2f486ac5..00000000 --- a/webapp/src/lib/collectionManager/collectionManager.svelte +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - -{#await promise} -
- -
-{:then} - - - {#if records.length === 0} - - {#if !hideEmptyState} - - {/if} - - {/if} -{:catch} - -{/await} diff --git a/webapp/src/lib/collectionManager/index.ts b/webapp/src/lib/collectionManager/index.ts deleted file mode 100644 index c8f7495d..00000000 --- a/webapp/src/lib/collectionManager/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import CollectionManager, { getRecordsManagerContext } from './collectionManager.svelte'; - -export { CollectionManager, getRecordsManagerContext }; -export * from './ui'; diff --git a/webapp/src/lib/collectionManager/ui/collectionEmptyState.svelte b/webapp/src/lib/collectionManager/ui/collectionEmptyState.svelte deleted file mode 100644 index 67430d4a..00000000 --- a/webapp/src/lib/collectionManager/ui/collectionEmptyState.svelte +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - {#if !hideCreateButton} -
- -
- {/if} -
-
diff --git a/webapp/src/lib/collectionManager/ui/collectionManagerHeader.svelte b/webapp/src/lib/collectionManager/ui/collectionManagerHeader.svelte deleted file mode 100644 index faf741b3..00000000 --- a/webapp/src/lib/collectionManager/ui/collectionManagerHeader.svelte +++ /dev/null @@ -1,87 +0,0 @@ - - - - -
- - {collection} - - {#if description} -

{description}

- {/if} -
- {#if $selectedRecords.length > 0} -

{$selectedRecords.length} selected

-
- - -
- {:else} -
- {#if !hideCreateButton} - - {/if} - -
- {/if} -
-
- - - -
-

- Are you sure you want to delete {$selectedRecords.length} records? -

-
- - -
-
-
-
diff --git a/webapp/src/lib/collectionManager/ui/collectionSearch.svelte b/webapp/src/lib/collectionManager/ui/collectionSearch.svelte deleted file mode 100644 index fbfc07d8..00000000 --- a/webapp/src/lib/collectionManager/ui/collectionSearch.svelte +++ /dev/null @@ -1,114 +0,0 @@ - - - - -
- {#if searchableFields.length !== 1} - - - - {#each fields as field} -
  • - { - if (selected.includes(field.value)) { - log('deselected', selected, field); - selected = selected.filter((item) => item !== field.value); - } else { - log('selected', selected, field); - selected = selected.concat(field.value); - } - }} - > - {field.name} - -
  • - {/each} -
    - { - handleSearch(); - }} - {placeholder} - /> -
    - {:else} - { - handleSearch(); - }} - {placeholder} - /> - {/if} - diff --git a/webapp/src/lib/collectionManager/ui/collectionTable.svelte b/webapp/src/lib/collectionManager/ui/collectionTable.svelte deleted file mode 100644 index 2e844249..00000000 --- a/webapp/src/lib/collectionManager/ui/collectionTable.svelte +++ /dev/null @@ -1,129 +0,0 @@ - - - - -{#if records.length === 0} - - {#if !hideEmptyState} - - {/if} - -{:else} - - - {#if !hideActions.includes('select')} - - - - {/if} - {#each fields as field} - {@const label = fieldsLabels[field] ?? field} - - {/each} - - {#if $$slots.default} - - - - {/if} - - - - {#if !hasNoActionColumn} - Actions - {/if} - - - {#each records as record (record.id)} - - {#if !hideActions.includes('select')} - - - - {/if} - {#each fields as field} - - {@const component = fieldsComponents[field]} - - - {/each} - - {#if $$slots.default} - - - - {/if} - - - - {#if !hasNoActionColumn} - -
    - - {#if !hideActions.includes('edit')} - - {/if} - {#if !hideActions.includes('share')} - - {/if} - {#if !hideActions.includes('delete')} - - {/if} -
    -
    - {/if} -
    - {/each} -
    -
    -
    - -
    -{/if} diff --git a/webapp/src/lib/collectionManager/ui/collectionTableHeader.svelte b/webapp/src/lib/collectionManager/ui/collectionTableHeader.svelte deleted file mode 100644 index f4ffc241..00000000 --- a/webapp/src/lib/collectionManager/ui/collectionTableHeader.svelte +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - -
    - {field} - {#if isSort} - {sortArrow} - {/if} -
    -
    diff --git a/webapp/src/lib/collectionManager/ui/fieldComponents/chip.svelte b/webapp/src/lib/collectionManager/ui/fieldComponents/chip.svelte deleted file mode 100644 index 2f0ed2b7..00000000 --- a/webapp/src/lib/collectionManager/ui/fieldComponents/chip.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - - - -
    - {value} -
    diff --git a/webapp/src/lib/collectionManager/ui/fieldComponents/fieldComponentRenderer.svelte b/webapp/src/lib/collectionManager/ui/fieldComponents/fieldComponentRenderer.svelte deleted file mode 100644 index 34f6febc..00000000 --- a/webapp/src/lib/collectionManager/ui/fieldComponents/fieldComponentRenderer.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - -{#if component} - -{:else} -
    {text}
    -{/if} diff --git a/webapp/src/lib/collectionManager/ui/fieldComponents/file.svelte b/webapp/src/lib/collectionManager/ui/fieldComponents/file.svelte deleted file mode 100644 index cd1c3929..00000000 --- a/webapp/src/lib/collectionManager/ui/fieldComponents/file.svelte +++ /dev/null @@ -1,26 +0,0 @@ - - - - -{#if url} - - Download: {value} -{/if} diff --git a/webapp/src/lib/collectionManager/ui/index.ts b/webapp/src/lib/collectionManager/ui/index.ts deleted file mode 100644 index ddb05e75..00000000 --- a/webapp/src/lib/collectionManager/ui/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import CollectionTable from './collectionTable.svelte'; -import CollectionTableHeader from './collectionTableHeader.svelte'; -import RecordCard from './recordCard.svelte'; -import CollectionEmptyState from './collectionEmptyState.svelte'; -import CollectionSearch from './collectionSearch.svelte'; -import CollectionManagerHeader from './collectionManagerHeader.svelte'; -import Pagination from './pagination.svelte'; - -export * from './recordActions'; -export { - CollectionTable, - CollectionTableHeader, - RecordCard, - CollectionEmptyState, - CollectionSearch, - CollectionManagerHeader, - Pagination -}; diff --git a/webapp/src/lib/collectionManager/ui/pagination.svelte b/webapp/src/lib/collectionManager/ui/pagination.svelte deleted file mode 100644 index 1a11e34f..00000000 --- a/webapp/src/lib/collectionManager/ui/pagination.svelte +++ /dev/null @@ -1,56 +0,0 @@ - - - - -{#if $totalPages > 1} -
    -
    - Showing {$perPage * Number($currentPage) - $perPage + 1} - to - {Number($currentPage) == $totalPages ? $totalItems : $perPage * Number($currentPage)} - of {$totalItems} Entries -
    - -
    - { - e.preventDefault(); - if (Number($currentPage) - 1 < 1) return; - goto(`?page=${Number($currentPage) - 1}`); - }} - on:next={(e) => { - e.preventDefault(); - if (Number($currentPage) + 1 > $totalPages) return; - goto(`?page=${Number($currentPage) + 1}`); - }} - on:click={handlePaginationClick} - /> -
    -
    -{/if} diff --git a/webapp/src/lib/collectionManager/ui/recordActions/createRecord.svelte b/webapp/src/lib/collectionManager/ui/recordActions/createRecord.svelte deleted file mode 100644 index 993e16a4..00000000 --- a/webapp/src/lib/collectionManager/ui/recordActions/createRecord.svelte +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - -
    - - { - await loadRecords(); - dispatch('success', { record: e.detail.record }); - show.off(); - }} - /> - -
    -
    -
    diff --git a/webapp/src/lib/collectionManager/ui/recordActions/deleteRecord.svelte b/webapp/src/lib/collectionManager/ui/recordActions/deleteRecord.svelte deleted file mode 100644 index 181ceeef..00000000 --- a/webapp/src/lib/collectionManager/ui/recordActions/deleteRecord.svelte +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - -
    -

    Are you sure you want to delete this record?

    - - {#if error} - -

    Error

    -

    {error}

    -
    - {/if} - -
    - - -
    -
    -
    -
    diff --git a/webapp/src/lib/collectionManager/ui/recordActions/editRecord.svelte b/webapp/src/lib/collectionManager/ui/recordActions/editRecord.svelte deleted file mode 100644 index c54f53f7..00000000 --- a/webapp/src/lib/collectionManager/ui/recordActions/editRecord.svelte +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - -
    - - - -
    -
    -
    diff --git a/webapp/src/lib/collectionManager/ui/recordActions/index.ts b/webapp/src/lib/collectionManager/ui/recordActions/index.ts deleted file mode 100644 index b9aadec8..00000000 --- a/webapp/src/lib/collectionManager/ui/recordActions/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import CreateRecord from './createRecord.svelte'; -import DeleteRecord from './deleteRecord.svelte'; -import EditRecord from './editRecord.svelte'; -import SelectRecord from './selectRecord.svelte'; -import ShareRecord from './shareRecord.svelte'; - -export { CreateRecord, DeleteRecord, EditRecord, SelectRecord, ShareRecord }; - -export * from './types'; diff --git a/webapp/src/lib/collectionManager/ui/recordActions/selectRecord.svelte b/webapp/src/lib/collectionManager/ui/recordActions/selectRecord.svelte deleted file mode 100644 index e7a9e183..00000000 --- a/webapp/src/lib/collectionManager/ui/recordActions/selectRecord.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/webapp/src/lib/collectionManager/ui/recordActions/shareRecord.svelte b/webapp/src/lib/collectionManager/ui/recordActions/shareRecord.svelte deleted file mode 100644 index 0cc0a321..00000000 --- a/webapp/src/lib/collectionManager/ui/recordActions/shareRecord.svelte +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - -{#await authorizationRequest} - -{:then response} - - -
    - {#if !removeAccess} - - {#if authorization} -
    - -
    - {/if} - {:else if removeLoading} - - {:else} -

    Are you sure you want to remove all access to the signature?

    -
    - - -
    - {/if} -
    -
    -
    -{/await} diff --git a/webapp/src/lib/collectionManager/ui/recordActions/types.ts b/webapp/src/lib/collectionManager/ui/recordActions/types.ts deleted file mode 100644 index 1cad260c..00000000 --- a/webapp/src/lib/collectionManager/ui/recordActions/types.ts +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import type { ValueOf } from '$lib/utils/types'; - -export const RecordActions = { - CREATE: 'create', - DELETE: 'delete', - EDIT: 'edit', - SELECT: 'select', - SHARE: 'share' -} as const; - -export type RecordAction = ValueOf; -export const RecordActionsArray = Object.values(RecordActions); diff --git a/webapp/src/lib/collectionManager/ui/recordCard.svelte b/webapp/src/lib/collectionManager/ui/recordCard.svelte deleted file mode 100644 index 227a7473..00000000 --- a/webapp/src/lib/collectionManager/ui/recordCard.svelte +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - {#if titleField} -

    {record[titleField]}

    - {/if} - - {#if !hideActions.includes('select')} -
    - -
    - {/if} - - {#if fields.length} -
    - {#each fields as field} - {@const component = fieldsComponents[field]} -
    - -
    - {/each} -
    - {/if} - - - -
    - - {#if !hideActions.includes('edit')} - - {/if} - {#if !hideActions.includes('share')} - - {/if} - {#if !hideActions.includes('delete')} - - {/if} -
    -
    diff --git a/webapp/src/lib/collectionManager/ui/types.ts b/webapp/src/lib/collectionManager/ui/types.ts deleted file mode 100644 index def2f84c..00000000 --- a/webapp/src/lib/collectionManager/ui/types.ts +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import type { PBResponse } from '$lib/utils/types'; -import type { FieldComponent } from './fieldComponents/fieldComponentRenderer.svelte'; -import type { RecordAction } from './recordActions'; - -export type FieldsComponents = Record< - string, - FieldComponent ->; - -export type ViewAction = Exclude; diff --git a/webapp/src/lib/components/Breadcrumbs.svelte b/webapp/src/lib/components/Breadcrumbs.svelte deleted file mode 100644 index 04c43d53..00000000 --- a/webapp/src/lib/components/Breadcrumbs.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - {#each breadcrumbs as { href, text }, i} - {@const isHomeBreadcrumb = i == 0} - {text} - {/each} - diff --git a/webapp/src/lib/components/DIDButton.svelte b/webapp/src/lib/components/DIDButton.svelte deleted file mode 100644 index 51169cd5..00000000 --- a/webapp/src/lib/components/DIDButton.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - - - -{#if $featureFlags.DID && url} - -{/if} diff --git a/webapp/src/lib/components/arrayOrItemManager.svelte b/webapp/src/lib/components/arrayOrItemManager.svelte deleted file mode 100644 index 9b72c9c9..00000000 --- a/webapp/src/lib/components/arrayOrItemManager.svelte +++ /dev/null @@ -1,52 +0,0 @@ - - - - -{#if tempItems.length > 0} - - {#each tempItems as item (item)} - - - - - - - { - removeItem(item); - }} - /> - - - {/each} - -{/if} diff --git a/webapp/src/lib/components/card.svelte b/webapp/src/lib/components/card.svelte deleted file mode 100644 index a5ae07db..00000000 --- a/webapp/src/lib/components/card.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - - - -
    - -
    diff --git a/webapp/src/lib/components/codeEditor.svelte b/webapp/src/lib/components/codeEditor.svelte deleted file mode 100644 index c57067d1..00000000 --- a/webapp/src/lib/components/codeEditor.svelte +++ /dev/null @@ -1,60 +0,0 @@ - - - - -
    diff --git a/webapp/src/lib/components/copyImageButton.svelte b/webapp/src/lib/components/copyImageButton.svelte deleted file mode 100644 index 5fcf80bf..00000000 --- a/webapp/src/lib/components/copyImageButton.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - - - -{#if isCopyingSupported} - -{/if} diff --git a/webapp/src/lib/components/copyableList.svelte b/webapp/src/lib/components/copyableList.svelte deleted file mode 100644 index 0993df37..00000000 --- a/webapp/src/lib/components/copyableList.svelte +++ /dev/null @@ -1,21 +0,0 @@ - - - - -
    - {#each rows as row} -
    {row.title}
    -
    -
    {row.value}
    - -
    - {/each} -
    diff --git a/webapp/src/lib/components/drawer.svelte b/webapp/src/lib/components/drawer.svelte deleted file mode 100644 index 1e957d2e..00000000 --- a/webapp/src/lib/components/drawer.svelte +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - {#if !hideTopbar} -
    - - {#if title} - {title} - {/if} - - { - hidden = true; - }} - /> -
    - {/if} - -
    -
    diff --git a/webapp/src/lib/components/editableLabel.svelte b/webapp/src/lib/components/editableLabel.svelte deleted file mode 100644 index 23f74444..00000000 --- a/webapp/src/lib/components/editableLabel.svelte +++ /dev/null @@ -1,57 +0,0 @@ - - - - -
    - {#if !isInputNameOpen} -
    - {value} -
    - - {/if} - - {#if isInputNameOpen} - -
    - - -
    - {/if} -
    diff --git a/webapp/src/lib/components/emptyState.svelte b/webapp/src/lib/components/emptyState.svelte deleted file mode 100644 index aed6947a..00000000 --- a/webapp/src/lib/components/emptyState.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - - - -
    -
    - -
    - - -

    - {title} -

    -
    - - - {#if description} -

    {description}

    - {/if} -
    - - -
    diff --git a/webapp/src/lib/components/gridSpinner.svelte b/webapp/src/lib/components/gridSpinner.svelte deleted file mode 100644 index 9fba2896..00000000 --- a/webapp/src/lib/components/gridSpinner.svelte +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/webapp/src/lib/components/icon.svelte b/webapp/src/lib/components/icon.svelte deleted file mode 100644 index 4d6c0035..00000000 --- a/webapp/src/lib/components/icon.svelte +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git a/webapp/src/lib/components/iconButton.svelte b/webapp/src/lib/components/iconButton.svelte deleted file mode 100644 index 9ad1fd95..00000000 --- a/webapp/src/lib/components/iconButton.svelte +++ /dev/null @@ -1,38 +0,0 @@ - - - - - diff --git a/webapp/src/lib/components/imagePreview.svelte b/webapp/src/lib/components/imagePreview.svelte deleted file mode 100644 index 77076038..00000000 --- a/webapp/src/lib/components/imagePreview.svelte +++ /dev/null @@ -1,45 +0,0 @@ - - - - -
    - {#await checkImageUrl(src ?? '') then result} - {#if result} - - {:else} -
    - {#if !hideHelpText} -

    No

    -

    Image

    - {/if} -
    - {/if} - {/await} -
    diff --git a/webapp/src/lib/components/listgroupItemButton.svelte b/webapp/src/lib/components/listgroupItemButton.svelte deleted file mode 100644 index 7f79e852..00000000 --- a/webapp/src/lib/components/listgroupItemButton.svelte +++ /dev/null @@ -1,39 +0,0 @@ - - - - - -
    - -
    - - - - -
    -
    -
    diff --git a/webapp/src/lib/components/listgroupItemSlotted.svelte b/webapp/src/lib/components/listgroupItemSlotted.svelte deleted file mode 100644 index 63e3557d..00000000 --- a/webapp/src/lib/components/listgroupItemSlotted.svelte +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -
    -
    - -
    -
    - -
    -
    -
    diff --git a/webapp/src/lib/components/navigationTab.svelte b/webapp/src/lib/components/navigationTab.svelte deleted file mode 100644 index ac8c6165..00000000 --- a/webapp/src/lib/components/navigationTab.svelte +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - {#if icon} -
    - -
    - {/if} - {text} -
    diff --git a/webapp/src/lib/components/navigationTabs.svelte b/webapp/src/lib/components/navigationTabs.svelte deleted file mode 100644 index 29b08d7d..00000000 --- a/webapp/src/lib/components/navigationTabs.svelte +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - -
      - {#each tabs as tab} -
    • - -
    • - {/each} -
    diff --git a/webapp/src/lib/components/organizationBreadcrumbs.svelte b/webapp/src/lib/components/organizationBreadcrumbs.svelte deleted file mode 100644 index db15ef6b..00000000 --- a/webapp/src/lib/components/organizationBreadcrumbs.svelte +++ /dev/null @@ -1,45 +0,0 @@ - - - - - diff --git a/webapp/src/lib/components/organizationLayout.svelte b/webapp/src/lib/components/organizationLayout.svelte deleted file mode 100644 index 47a16ed1..00000000 --- a/webapp/src/lib/components/organizationLayout.svelte +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - {org.name} - - - - - - diff --git a/webapp/src/lib/components/organizationTabs.svelte b/webapp/src/lib/components/organizationTabs.svelte deleted file mode 100644 index f9b145f5..00000000 --- a/webapp/src/lib/components/organizationTabs.svelte +++ /dev/null @@ -1,34 +0,0 @@ - - - - -{#key tabs} - -{/key} diff --git a/webapp/src/lib/components/pageCard.svelte b/webapp/src/lib/components/pageCard.svelte deleted file mode 100644 index 823c575d..00000000 --- a/webapp/src/lib/components/pageCard.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - diff --git a/webapp/src/lib/components/pageContent.svelte b/webapp/src/lib/components/pageContent.svelte deleted file mode 100644 index 9807928c..00000000 --- a/webapp/src/lib/components/pageContent.svelte +++ /dev/null @@ -1,27 +0,0 @@ - - - - -
    - -
    diff --git a/webapp/src/lib/components/pageTop.svelte b/webapp/src/lib/components/pageTop.svelte deleted file mode 100644 index e93748c3..00000000 --- a/webapp/src/lib/components/pageTop.svelte +++ /dev/null @@ -1,14 +0,0 @@ - - -
    -
    - -
    -
    - -
    -
    diff --git a/webapp/src/lib/components/plainCard.svelte b/webapp/src/lib/components/plainCard.svelte deleted file mode 100644 index dd4448b0..00000000 --- a/webapp/src/lib/components/plainCard.svelte +++ /dev/null @@ -1,31 +0,0 @@ - - - - -
    - {#if $$slots.left} -
    - -
    - {/if} - -
    - -
    - - {#if $$slots.right} -
    - -
    - {/if} -
    diff --git a/webapp/src/lib/components/plainCardDescription.svelte b/webapp/src/lib/components/plainCardDescription.svelte deleted file mode 100644 index 2111dd10..00000000 --- a/webapp/src/lib/components/plainCardDescription.svelte +++ /dev/null @@ -1,9 +0,0 @@ - - -

    - -

    diff --git a/webapp/src/lib/components/plainCardTitle.svelte b/webapp/src/lib/components/plainCardTitle.svelte deleted file mode 100644 index 70fdfe6c..00000000 --- a/webapp/src/lib/components/plainCardTitle.svelte +++ /dev/null @@ -1,9 +0,0 @@ - - -

    - -

    diff --git a/webapp/src/lib/components/portalWrapper.svelte b/webapp/src/lib/components/portalWrapper.svelte deleted file mode 100644 index 4878cfc4..00000000 --- a/webapp/src/lib/components/portalWrapper.svelte +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
    - -
    diff --git a/webapp/src/lib/components/quickAction.svelte b/webapp/src/lib/components/quickAction.svelte deleted file mode 100644 index 811055d9..00000000 --- a/webapp/src/lib/components/quickAction.svelte +++ /dev/null @@ -1,19 +0,0 @@ - - - - -
    -
    {title}
    - {#if content || $$slots.default} - -

    {content}

    -
    - {/if} -
    diff --git a/webapp/src/lib/components/records/recordSearch.svelte b/webapp/src/lib/components/records/recordSearch.svelte deleted file mode 100644 index 8eaf6cb1..00000000 --- a/webapp/src/lib/components/records/recordSearch.svelte +++ /dev/null @@ -1,116 +0,0 @@ - - - - - diff --git a/webapp/src/lib/components/records/recordSelect.svelte b/webapp/src/lib/components/records/recordSelect.svelte deleted file mode 100644 index 90f0b289..00000000 --- a/webapp/src/lib/components/records/recordSelect.svelte +++ /dev/null @@ -1,91 +0,0 @@ - - - - - diff --git a/webapp/src/lib/forms/fields/index.ts b/webapp/src/lib/forms/fields/index.ts deleted file mode 100644 index 0c91c5d0..00000000 --- a/webapp/src/lib/forms/fields/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import Checkbox from './checkbox.svelte'; -import File, { isFile, isFileArray } from './file.svelte'; -import Hidden from './hidden.svelte'; -import Input from './input.svelte'; -import Relations from './relations.svelte'; -import Select from './select.svelte'; -import Textarea from './textarea.svelte'; -import Toggle from './toggle.svelte'; - -import FieldError from './fieldParts/fieldError.svelte'; -import FieldLabel from './fieldParts/fieldLabel.svelte'; -import FieldWrapper from './fieldParts/fieldWrapper.svelte'; -import FieldRequiredIndicator from './fieldParts/fieldRequiredIndicator.svelte'; - -import FieldController from './fieldController.svelte'; - -export { - Checkbox, - File, - Hidden, - Input, - Relations, - Select, - Textarea, - FieldError, - FieldLabel, - FieldWrapper, - FieldRequiredIndicator, - isFile, - isFileArray, - Toggle, - FieldController -}; diff --git a/webapp/src/lib/forms/fields/input.svelte b/webapp/src/lib/forms/fields/input.svelte deleted file mode 100644 index d7c4ff58..00000000 --- a/webapp/src/lib/forms/fields/input.svelte +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - diff --git a/webapp/src/lib/forms/fields/relations.svelte b/webapp/src/lib/forms/fields/relations.svelte deleted file mode 100644 index be7fd07e..00000000 --- a/webapp/src/lib/forms/fields/relations.svelte +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - {createRecordLabel(record, options.displayFields)} - - - diff --git a/webapp/src/lib/forms/fields/select.svelte b/webapp/src/lib/forms/fields/select.svelte deleted file mode 100644 index ba3b6fb4..00000000 --- a/webapp/src/lib/forms/fields/select.svelte +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - {#if !multiple} - diff --git a/webapp/src/modules/components/ui/tooltip/index.ts b/webapp/src/modules/components/ui/tooltip/index.ts new file mode 100644 index 00000000..e9e1fd73 --- /dev/null +++ b/webapp/src/modules/components/ui/tooltip/index.ts @@ -0,0 +1,18 @@ +import { Tooltip as TooltipPrimitive } from "bits-ui"; +import Content from "./tooltip-content.svelte"; + +const Root = TooltipPrimitive.Root; +const Trigger = TooltipPrimitive.Trigger; +const Provider = TooltipPrimitive.Provider; + +export { + Root, + Trigger, + Content, + Provider, + // + Root as Tooltip, + Content as TooltipContent, + Trigger as TooltipTrigger, + Provider as TooltipProvider, +}; diff --git a/webapp/src/modules/components/ui/tooltip/tooltip-content.svelte b/webapp/src/modules/components/ui/tooltip/tooltip-content.svelte new file mode 100644 index 00000000..9cc1ab2a --- /dev/null +++ b/webapp/src/modules/components/ui/tooltip/tooltip-content.svelte @@ -0,0 +1,21 @@ + + + diff --git a/webapp/src/modules/components/ui/utils.ts b/webapp/src/modules/components/ui/utils.ts new file mode 100644 index 00000000..ac680b30 --- /dev/null +++ b/webapp/src/modules/components/ui/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx"; +import { twMerge } from "tailwind-merge"; + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} diff --git a/webapp/src/modules/did/DIDButton.svelte b/webapp/src/modules/did/DIDButton.svelte new file mode 100644 index 00000000..7330782e --- /dev/null +++ b/webapp/src/modules/did/DIDButton.svelte @@ -0,0 +1,18 @@ + + +{#if $featureFlags.DID && url} + +{/if} diff --git a/webapp/src/lib/did/index.ts b/webapp/src/modules/did/index.ts similarity index 68% rename from webapp/src/lib/did/index.ts rename to webapp/src/modules/did/index.ts index 5a2042ee..b15a8777 100644 --- a/webapp/src/lib/did/index.ts +++ b/webapp/src/modules/did/index.ts @@ -1,8 +1,4 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import { getUserPublicKeys } from '$lib/keypairoom/utils'; +import { getUserPublicKeys } from '@/keypairoom/utils'; export async function getUserDidUrl(userId: string | undefined = undefined) { const publicKeys = await getUserPublicKeys(userId); diff --git a/webapp/src/modules/features/generate.features-list.ts b/webapp/src/modules/features/generate.features-list.ts new file mode 100644 index 00000000..193dfbf5 --- /dev/null +++ b/webapp/src/modules/features/generate.features-list.ts @@ -0,0 +1,25 @@ +import fs from 'fs'; +import path from 'node:path'; +import { formatCode, GENERATED, initAdminPocketbase, logCodegenResult } from '@/utils/codegen'; + +// + +const TYPE_NAME = 'Feature'; +const OBJECT_NAME = `${TYPE_NAME}s`; + +const pb = await initAdminPocketbase(); +const featuresRecords = await pb.collection('features').getFullList(); +const featuresEntries = featuresRecords.map((f) => `${f.name.toUpperCase()}: '${f.name}'`); + +const code = ` +export const ${OBJECT_NAME} = { + ${featuresEntries.join(',\n')} +} as const + +export type ${TYPE_NAME} = typeof ${OBJECT_NAME} [keyof typeof ${OBJECT_NAME}]; +`; + +const formattedCode = await formatCode(code); +const filePath = path.join(import.meta.dirname, `features-list.${GENERATED}.ts`); +fs.writeFileSync(filePath, formattedCode); +logCodegenResult('features list', filePath); diff --git a/webapp/src/lib/features/index.ts b/webapp/src/modules/features/index.ts similarity index 73% rename from webapp/src/lib/features/index.ts rename to webapp/src/modules/features/index.ts index 788694be..4bda7fe4 100644 --- a/webapp/src/lib/features/index.ts +++ b/webapp/src/modules/features/index.ts @@ -1,10 +1,6 @@ -// SPDX-FileCopyrightText: 2024 The Forkbomb Company -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -import { Features } from './list'; -import { pb } from '$lib/pocketbase'; -import { Collections, type FeaturesResponse } from '$lib/pocketbase/types'; +import { Features } from './features-list.generated'; +import { pb } from '@/pocketbase'; +import { Collections, type FeaturesResponse } from '@/pocketbase/types'; import { writable } from 'svelte/store'; import { browser } from '$app/environment'; @@ -31,4 +27,4 @@ export async function loadFeatureFlags(fetchFn = fetch): Promise { return flags as FeatureFlags; } -export * from './list'; +export * from './features-list.generated'; diff --git a/webapp/src/modules/forms/components/formDebug.svelte b/webapp/src/modules/forms/components/formDebug.svelte new file mode 100644 index 00000000..010c1899 --- /dev/null +++ b/webapp/src/modules/forms/components/formDebug.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/webapp/src/modules/forms/components/formError.svelte b/webapp/src/modules/forms/components/formError.svelte new file mode 100644 index 00000000..2a076cc5 --- /dev/null +++ b/webapp/src/modules/forms/components/formError.svelte @@ -0,0 +1,28 @@ + + +{#if error} + + {#snippet content({ Title, Description })} + {m.Error()} + + {#if error.messages.length > 0} + {#each error.messages as message} + {message} + {/each} + {/if} + + {/snippet} + +{/if} diff --git a/webapp/src/modules/forms/components/requiredIndicator.svelte b/webapp/src/modules/forms/components/requiredIndicator.svelte new file mode 100644 index 00000000..c0dd366a --- /dev/null +++ b/webapp/src/modules/forms/components/requiredIndicator.svelte @@ -0,0 +1,19 @@ + + +{#if !hideRequiredIndicator && isFieldRequired} + * +{/if} diff --git a/webapp/src/modules/forms/components/submitButton.svelte b/webapp/src/modules/forms/components/submitButton.svelte new file mode 100644 index 00000000..700b9aa1 --- /dev/null +++ b/webapp/src/modules/forms/components/submitButton.svelte @@ -0,0 +1,18 @@ + + + + {@render children?.()} + diff --git a/webapp/src/modules/forms/fields/checkboxField.svelte b/webapp/src/modules/forms/fields/checkboxField.svelte new file mode 100644 index 00000000..c371dc9a --- /dev/null +++ b/webapp/src/modules/forms/fields/checkboxField.svelte @@ -0,0 +1,53 @@ + + + + + + + {#snippet children({ props })} +
    + ($value = v)} /> + + + {#if childrenSnippet} + {@render childrenSnippet()} + {:else} + {options.label ?? capitalize(name)} + {/if} + + +
    + {/snippet} +
    + + {#if options.description} + {options.description} + {/if} + + +
    diff --git a/webapp/src/modules/forms/fields/dateField.svelte b/webapp/src/modules/forms/fields/dateField.svelte new file mode 100644 index 00000000..cf873b4c --- /dev/null +++ b/webapp/src/modules/forms/fields/dateField.svelte @@ -0,0 +1 @@ + diff --git a/webapp/src/modules/forms/fields/field.svelte b/webapp/src/modules/forms/fields/field.svelte new file mode 100644 index 00000000..56653f80 --- /dev/null +++ b/webapp/src/modules/forms/fields/field.svelte @@ -0,0 +1,50 @@ + + + + + {#snippet children({ props })} + {#if valueProxy} + + {/if} + {/snippet} + + diff --git a/webapp/src/modules/forms/fields/fileField.svelte b/webapp/src/modules/forms/fields/fileField.svelte new file mode 100644 index 00000000..1a9c2b9b --- /dev/null +++ b/webapp/src/modules/forms/fields/fileField.svelte @@ -0,0 +1,54 @@ + + + + + {#snippet children({ props })} + + {#snippet children({ addFiles })} + { + const fileList = e.currentTarget.files; + if (fileList) addFiles([...fileList]); + e.currentTarget.value = ''; + }} + /> + + {/snippet} + + {/snippet} + + diff --git a/webapp/src/modules/forms/fields/fileField.ts b/webapp/src/modules/forms/fields/fileField.ts new file mode 100644 index 00000000..d63a1ed6 --- /dev/null +++ b/webapp/src/modules/forms/fields/fileField.ts @@ -0,0 +1,114 @@ +import { pipe, Tuple } from 'effect'; +import type { FORM_ERROR_PATH } from '../form'; +import type { FileManagerValidator, RejectedFile } from '@/components/ui-custom/fileManager.svelte'; +import type { GenericRecord, If, IsArray } from '@/utils/types'; +import type { SuperForm } from 'sveltekit-superforms'; + +/* Files validation + * + * - Objective + * Here we are trying to validate files *before* they arrive into the form + * + * - Reason(s) + * If a single file is bad, it must not replace a good one + * If multiple files are uploaded, good ones must be saved and bad ones discarded + * + * - Restated objective + * We want to reject bad files and notify the user about it + */ + +export function createFilesValidator>( + form: F, + field: string, + multiple: boolean +): FileManagerValidator { + /** + * - Implementation + * To validate the file field, *before* actually adding the files in the form + * we can use the `validate` function from superforms, but in "preview mode" + * and use it as validator for `FileManager` component + */ + + const { validate } = form; + + function previewValidate(data: T) { + // TODO: this should throw when "field" is not valid + return validate(field, { + value: data, + taint: false, + update: false + }) as Promise>; + } + + /* Type fix + * + * Superforms `validate` function return type is not correct: + * - Function signature says it is `string[] | undefined` + * - If you validate an array value, it is actually `Record | undefined` + */ + + type ValidationResult = + | undefined + | If, Record, string[]>; + + /* Files validator */ + + const validator: FileManagerValidator = async (newFiles) => { + if (!multiple) { + const newFile = newFiles[0]; + const validationResult = await previewValidate(newFile); + const acceptedFiles: File[] = []; + const rejectedFiles: RejectedFile[] = []; + if (!validationResult) acceptedFiles.push(newFile); + else + rejectedFiles.push({ + file: newFile, + reasons: validationResult + }); + return { + acceptedFiles, + rejectedFiles + }; + } else { + /** + * - Issue + * We cannot validate multiple files together with superforms [validate] function + * - Reason + * The validation result is a record where the keys are not linked to the files + * - To reproduce, run here: + * `console.log(await previewFieldValidation(name, newfiles))` + * and upload multiple files, some of which invalid + * + * - Solution + * We validate each file as if it is an array, then extract the result + * `previewFieldValidation(name, [f])` + */ + const validationEntries = await pipe( + newFiles.map((f) => + previewValidate([f]) + .then((result) => (result ? result[0] : [])) + .then((result) => Tuple.make(f, result)) + ), + (entries) => Promise.all(entries) + ); + + const acceptedFiles: File[] = validationEntries + .filter(([, errors]) => errors.length == 0) + .map(([file]) => file); + + const rejectedFiles: RejectedFile[] = validationEntries + .filter(([, errors]) => errors.length > 0) + .map(([file, errors]) => ({ + file, + reasons: errors + })); + + return { + acceptedFiles, + rejectedFiles + }; + } + }; + + return validator; +} diff --git a/webapp/src/modules/forms/fields/index.ts b/webapp/src/modules/forms/fields/index.ts new file mode 100644 index 00000000..82693695 --- /dev/null +++ b/webapp/src/modules/forms/fields/index.ts @@ -0,0 +1,9 @@ +import Field from './field.svelte'; +import FileField from './fileField.svelte'; +import SwitchField from './switchField.svelte'; +import CheckboxField from './checkboxField.svelte'; +import TextareaField from './textareaField.svelte'; +import SelectField from './selectField.svelte'; +import DateField from './dateField.svelte'; + +export { Field, FileField, SwitchField, CheckboxField, TextareaField, SelectField, DateField }; diff --git a/webapp/src/modules/forms/fields/parts/fieldWrapper.svelte b/webapp/src/modules/forms/fields/parts/fieldWrapper.svelte new file mode 100644 index 00000000..24f675ad --- /dev/null +++ b/webapp/src/modules/forms/fields/parts/fieldWrapper.svelte @@ -0,0 +1,34 @@ + + + + {#snippet children({ props })} + + + {options.label ?? capitalize(field)} + + + + {@render child?.({ props })} + {/snippet} + + +{#if options.description} + {options.description} +{/if} + + diff --git a/webapp/src/modules/forms/fields/selectField.svelte b/webapp/src/modules/forms/fields/selectField.svelte new file mode 100644 index 00000000..d1ad0f2b --- /dev/null +++ b/webapp/src/modules/forms/fields/selectField.svelte @@ -0,0 +1,56 @@ + + + + + {#snippet children({ props })} + ($value = data)} + /> + {/snippet} + + diff --git a/webapp/src/modules/forms/fields/switchField.svelte b/webapp/src/modules/forms/fields/switchField.svelte new file mode 100644 index 00000000..f75769db --- /dev/null +++ b/webapp/src/modules/forms/fields/switchField.svelte @@ -0,0 +1,40 @@ + + + + + {#snippet children({ props })} +
    + ($value = v)} /> + {options.label ?? capitalize(name)} +
    + {/snippet} +
    + + {#if options.description} + {options.description} + {/if} + + +
    diff --git a/webapp/src/modules/forms/fields/textareaField.svelte b/webapp/src/modules/forms/fields/textareaField.svelte new file mode 100644 index 00000000..c4cfc19f --- /dev/null +++ b/webapp/src/modules/forms/fields/textareaField.svelte @@ -0,0 +1,31 @@ + + + + + {#snippet children({ props })} +