diff --git a/apps/connect/package.json b/apps/connect/package.json index 4687acd5..e4411dc3 100644 --- a/apps/connect/package.json +++ b/apps/connect/package.json @@ -24,7 +24,8 @@ "@tanstack/react-router-devtools": "^1.122.0", "@xstate/store": "^3.5.1", "clsx": "^2.1.1", - "effect": "^3.16.10", + "effect": "^3.16.12", + "framer-motion": "^12.10.1", "graphql-request": "^7.2.0", "lucide-react": "^0.508.0", "react": "^19.1.0", diff --git a/apps/events/package.json b/apps/events/package.json index 3923fb3d..e511914b 100644 --- a/apps/events/package.json +++ b/apps/events/package.json @@ -21,7 +21,7 @@ "@xstate/store": "^3.5.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "effect": "^3.16.10", + "effect": "^3.16.12", "framer-motion": "^12.10.1", "graphql-request": "^7.1.2", "isomorphic-ws": "^5.0.0", diff --git a/apps/server/package.json b/apps/server/package.json index b59e7952..26d279f8 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -19,7 +19,7 @@ "@privy-io/server-auth": "^1.26.0", "body-parser": "^2.2.0", "cors": "^2.8.5", - "effect": "^3.16.10", + "effect": "^3.16.12", "express": "^5.1.0", "prisma": "^6.7.0", "siwe": "^3.0.0", diff --git a/apps/typesync/package.json b/apps/typesync/package.json index 6b28c86e..73cf36c6 100644 --- a/apps/typesync/package.json +++ b/apps/typesync/package.json @@ -38,21 +38,20 @@ "hypergraph": "pnpx tsx ./src/bin.ts typesync" }, "devDependencies": { - "@effect/cli": "^0.66.1", - "@effect/experimental": "^0.51.1", - "@effect/language-service": "^0.23.3", - "@effect/platform": "^0.87.1", - "@effect/platform-node": "^0.88.3", - "@effect/sql": "^0.40.1", - "@effect/sql-sqlite-node": "^0.41.1", - "@effect/vitest": "^0.23.10", - "@graphprotocol/grc-20": "^0.21.6", + "@effect/cli": "^0.66.12", + "@effect/experimental": "^0.51.13", + "@effect/language-service": "^0.24.2", + "@effect/platform": "^0.87.12", + "@effect/platform-node": "^0.89.5", + "@effect/sql": "^0.40.13", + "@effect/sql-sqlite-node": "^0.41.13", + "@effect/vitest": "^0.23.12", "@graphql-codegen/cli": "^5.0.7", "@graphql-codegen/client-preset": "^4.8.3", "@graphql-codegen/typescript": "^4.1.6", "@graphql-codegen/typescript-operations": "^4.6.1", - "@tanstack/router-plugin": "^1.123.2", - "@types/node": "^24.0.8", + "@tanstack/router-plugin": "^1.127.1", + "@types/node": "^24.0.13", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "@vitejs/plugin-react": "^4.6.0", @@ -64,19 +63,20 @@ }, "dependencies": { "@graphql-typed-document-node/core": "^3.2.0", + "@graphprotocol/grc-20": "^0.21.6", "@headlessui/react": "^2.2.4", "@heroicons/react": "^2.2.0", "@phosphor-icons/react": "^2.1.10", "@radix-ui/react-tabs": "^1.1.12", "@tailwindcss/vite": "^4.1.11", - "@tanstack/react-form": "^1.12.4", - "@tanstack/react-query": "^5.81.5", - "@tanstack/react-query-devtools": "^5.81.5", - "@tanstack/react-router": "^1.123.2", - "@tanstack/react-router-devtools": "^1.123.2", + "@tanstack/react-form": "^1.14.1", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-query-devtools": "^5.83.0", + "@tanstack/react-router": "^1.127.1", + "@tanstack/react-router-devtools": "^1.127.1", "better-sqlite3": "^12.2.0", "date-fns": "^4.1.0", - "effect": "^3.16.10", + "effect": "^3.16.12", "graphql": "^16.11.0", "graphql-request": "^7.2.0", "jotai": "^2.12.5", diff --git a/package.json b/package.json index a5c17e45..f6755eb9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "type": "module", - "packageManager": "pnpm@10.6.2", + "packageManager": "pnpm@10.12.1+sha512.f0dda8580f0ee9481c5c79a1d927b9164f2c478e90992ad268bbb2465a736984391d6333d2c327913578b2804af33474ca554ba29c04a8b13060a717675ae3ac", "scripts": { "clean": "rm -rf .turbo && rm -rf node_modules && pnpm --recursive --filter \"./packages/*\" exec rm -rf dist && pnpm --recursive --filter \"./packages/*\" exec rm -rf .turbo && pnpm --recursive --filter \"./packages/*\" exec rm -rf tsconfig.tsbuildinfo && pnpm --recursive --filter \"./apps/*\" exec rm -rf dist && pnpm --recursive --filter \"./apps/*\" exec rm -rf .turbo && pnpm --recursive --filter \"./apps/*\" exec rm -rf tsconfig.tsbuildinfo", "dev": "pnpm --recursive --parallel --filter \"./apps/*\" run dev", @@ -15,15 +15,15 @@ "graph": "pnpm --filter server-logic-ts graph" }, "devDependencies": { - "@babel/cli": "^7.27.2", - "@babel/core": "^7.27.1", + "@babel/cli": "^7.28.0", + "@babel/core": "^7.28.0", "@biomejs/biome": "1.9.4", - "@changesets/cli": "^2.29.3", + "@changesets/cli": "^2.29.5", "@graphprotocol/grc-20": "^0.21.6", "babel-plugin-annotate-pure-calls": "^0.5.0", - "glob": "^11.0.2", - "pkg-pr-new": "^0.0.43", + "glob": "^11.0.3", + "pkg-pr-new": "^0.0.54", "typescript": "^5.8.3", - "vitest": "^3.1.3" + "vitest": "^3.2.4" } } diff --git a/packages/hypergraph-react/package.json b/packages/hypergraph-react/package.json index 82303703..78111416 100644 --- a/packages/hypergraph-react/package.json +++ b/packages/hypergraph-react/package.json @@ -11,7 +11,7 @@ "repository": { "type": "git", "url": "https://github.com/graphprotocol/hypergraph.git", - "directory": "packages/react" + "directory": "packages/hypergraph-react" }, "license": "MIT", "type": "module", @@ -44,7 +44,7 @@ "@graphprotocol/grc-20": "^0.21.6", "@noble/hashes": "^1.8.0", "@tanstack/react-query": "^5.75.5", - "effect": "^3.16.10", + "effect": "^3.16.12", "graphql-request": "^7.1.2", "siwe": "^3.0.0", "uuid": "^11.1.0", diff --git a/packages/hypergraph/package.json b/packages/hypergraph/package.json index 22446eaa..7ce427f3 100644 --- a/packages/hypergraph/package.json +++ b/packages/hypergraph/package.json @@ -54,7 +54,7 @@ "@serenity-kit/noble-sodium": "^0.2.1", "@xstate/store": "^3.5.1", "bs58check": "^4.0.0", - "effect": "^3.16.10", + "effect": "^3.16.12", "permissionless": "^0.2.47", "siwe": "^3.0.0", "uuid": "^11.1.0", diff --git a/packages/typesync/LICENSE b/packages/typesync/LICENSE new file mode 100644 index 00000000..c75b86eb --- /dev/null +++ b/packages/typesync/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present The Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/packages/typesync/README.md b/packages/typesync/README.md new file mode 100644 index 00000000..7d292903 --- /dev/null +++ b/packages/typesync/README.md @@ -0,0 +1,70 @@ +# @graphprotocol/typesync + +Package for generating the mappings used within the `hypergraph` ecosystem that is used to query for entities on the Knowledge Graph by the `grc-20` id's. + +The `Mapping` is passed to the `` from the [@graphprotocol/hypergraph-react](../hypergraph-react/README.md) context to inform the query layer what entities to query from the Knowledge Graph. + +This package exposes a function: `generateMapping` that takes the schema with an array of types, each with properties. Both `types` and `properties` have a nullable `knowledgeGraphId` UUID value. If a value is provided, the `type/property` exists on the Knowledge Graph; this value will be plugged into to the `Mapping` values. If the `knowledgeGraphId` value is null, the `type/property` will be created using the `@graphprotocol/grc-20` ops and then returned in the mapping. + +## Mapping definition + +```ts +export type MappingEntry = { + typeIds: Array; + properties?: { + [key: string]: Grc20Id.Id; + }; +}; + +export type Mapping = { + [key: string]: MappingEntry; +}; +``` + +## Example + +- generated schema + +```ts +import { Entity, Type } from '@graphprotocol/hypergraph' + +export class Account extends Entity.Class('Account')({ + username: Type.Text, + createdAt: Type.Date +}) {} + +export class Event extends Entity.Class('Event')({ + name: Type.Text, + description: Type.Text, + account: Type.Relation(Account) +}) {} +``` + +- resuling mapping + +```ts +import { Id } from '@graphprotocol/grc-20' +import type { Mapping } from '@graphprotocol/typesync/Mapping' + +export const mapping: Mapping = { + Account: { + typeIds: [Id.Id('a5fd07b1-120f-46c6-b46f-387ef98396a6')], + properties: { + username: Id.Id('994edcff-6996-4a77-9797-a13e5e3efad8'), + createdAt: Id.Id('64bfba51-a69b-4746-be4b-213214a879fe') + } + }, + Event: { + typeIds: [Id.Id('0349187b-526f-435f-b2bb-9e9caf23127a')], + properties: { + name: Id.Id('3808e060-fb4a-4d08-8069-35b8c8a1902b'), + description: Id.Id('1f0d9007-8da2-4b28-ab9f-3bc0709f4837'), + account: Id.Id('a5fd07b1-120f-46c6-b46f-387ef98396a6') + }, + } +} +``` + +## References + +- [@graphprotocol/grc-20](https://github.com/graphprotocol/grc-20-ts) \ No newline at end of file diff --git a/packages/typesync/package.json b/packages/typesync/package.json new file mode 100644 index 00000000..78243b51 --- /dev/null +++ b/packages/typesync/package.json @@ -0,0 +1,44 @@ +{ + "name": "@graphprotocol/typesync", + "version": "0.0.1", + "description": "Package for generating the mappings used within the hypergraph ecosystem that is used to query for entities on the Knowledge Graph by the grc-20 id's.", + "publishConfig": { + "access": "public", + "directory": "publish", + "provenance": true + }, + "repository": { + "type": "git", + "url": "https://github.com/graphprotocol/hypergraph.git", + "directory": "packages/typesync" + }, + "keywords": ["The Graph", "GRC-20", "hypergraph"], + "license": "MIT", + "type": "module", + "main": "./dist/index.js", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./Mapping": { + "types": "./dist/Mapping.d.ts", + "default": "./dist/Mapping.js" + }, + "./Utils": { + "types": "./dist/Utils.d.ts", + "default": "./dist/Utils.js" + } + }, + "sideEffects": [], + "scripts": { + "build": "tsc -b --force tsconfig.build.json && babel dist --plugins annotate-pure-calls --out-dir dist --source-maps && node ../../scripts/package.mjs", + "test": "vitest" + }, + "dependencies": { + "@graphprotocol/grc-20": "^0.21.6", + "effect": "^3.16.12" + } +} diff --git a/packages/typesync/src/Mapping.ts b/packages/typesync/src/Mapping.ts new file mode 100644 index 00000000..e6eef350 --- /dev/null +++ b/packages/typesync/src/Mapping.ts @@ -0,0 +1,700 @@ +import { type CreatePropertyParams, Graph, Id as Grc20Id, type Op } from '@graphprotocol/grc-20'; +import { Data, Array as EffectArray, Schema as EffectSchema, Option, pipe } from 'effect'; + +import { namesAreUnique, toCamelCase, toPascalCase } from './Utils.js'; + +/** + * Mappings for a schema type and its properties/relations + * + * @since 0.0.1 + */ +export type MappingEntry = { + /** + * Array of the `Id.Id` of the type in the Knowledge Graph. + * Is an array because a type can belong to multiple spaces/extend multiple types. + * + * @since 0.0.1 + */ + typeIds: Array; + /** + * Record of property names to the `Id.Id` of the type in the Knowledge Graph + * + * @since 0.0.1 + */ + properties?: + | { + [key: string]: Grc20Id.Id; + } + | undefined; +}; + +/** + * @example + * ```ts + * import { Id } from '@graphprotocol/grc-20' + * import type { Mapping } from '@graphprotocol/typesync' + * + * const mapping: Mapping = { + * Account: { + * typeIds: [Id.Id('a5fd07b1-120f-46c6-b46f-387ef98396a6')], + * properties: { + * username: Id.Id('994edcff-6996-4a77-9797-a13e5e3efad8'), + * createdAt: Id.Id('64bfba51-a69b-4746-be4b-213214a879fe') + * } + * }, + * Event: { + * typeIds: [Id.Id('0349187b-526f-435f-b2bb-9e9caf23127a')], + * properties: { + * name: Id.Id('3808e060-fb4a-4d08-8069-35b8c8a1902b'), + * description: Id.Id('1f0d9007-8da2-4b28-ab9f-3bc0709f4837'), + * speaker: Id.Id('a5fd07b1-120f-46c6-b46f-387ef98396a6') + * }, + * } + * } + * ``` + * + * @since 0.0.1 + */ +export type Mapping = { + [key: string]: MappingEntry; +}; + +/** + * @since 0.0.1 + */ +export type DataTypeRelation = `Relation(${string})`; +/** + * @since 0.0.1 + */ +export function isDataTypeRelation(val: string): val is DataTypeRelation { + return /^Relation\((.+)\)$/.test(val); +} +/** + * @since 0.0.1 + */ +export const SchemaDataTypeRelation = EffectSchema.NonEmptyTrimmedString.pipe( + EffectSchema.filter((val) => isDataTypeRelation(val)), +); +/** + * @since 0.0.1 + */ +export type SchemaDataTypeRelation = typeof SchemaDataTypeRelation.Type; +/** + * @since 0.0.1 + */ +export const SchemaDataTypePrimitive = EffectSchema.Literal('Text', 'Number', 'Checkbox', 'Date', 'Point', 'Url'); +/** + * @since 0.0.1 + */ +export type SchemaDataTypePrimitive = typeof SchemaDataTypePrimitive.Type; +/** + * @since 0.0.1 + */ +export const SchemaDataType = EffectSchema.Union(SchemaDataTypePrimitive, SchemaDataTypeRelation); +/** + * @since 0.0.1 + */ +export type SchemaDataType = typeof SchemaDataType.Type; +/** + * @since 0.0.1 + */ +export const SchemaTypePropertyRelation = EffectSchema.Struct({ + name: EffectSchema.NonEmptyTrimmedString, + knowledgeGraphId: EffectSchema.NullOr(EffectSchema.UUID), + dataType: SchemaDataTypeRelation, + relationType: EffectSchema.NonEmptyTrimmedString.annotations({ + identifier: 'SchemaTypePropertyRelation.relationType', + description: 'name of the type within the schema that this property is related to', + examples: ['Account'], + }), +}); +/** + * @since 0.0.1 + */ +export type SchemaTypePropertyRelation = typeof SchemaTypePropertyRelation.Type; +/** + * @since 0.0.1 + */ +export const SchemaTypePropertyPrimitive = EffectSchema.Struct({ + name: EffectSchema.NonEmptyTrimmedString, + knowledgeGraphId: EffectSchema.NullOr(EffectSchema.UUID), + dataType: SchemaDataTypePrimitive, +}); +/** + * @since 0.0.1 + */ +export type SchemaTypePropertyPrimitive = typeof SchemaTypePropertyPrimitive.Type; + +/** + * @since 0.0.1 + */ +export function propertyIsRelation( + property: SchemaTypePropertyPrimitive | SchemaTypePropertyRelation, +): property is SchemaTypePropertyRelation { + return isDataTypeRelation(property.dataType); +} + +/** + * @since 0.0.1 + */ +export const SchemaType = EffectSchema.Struct({ + name: EffectSchema.NonEmptyTrimmedString, + knowledgeGraphId: EffectSchema.NullOr(EffectSchema.UUID), + properties: EffectSchema.Array(EffectSchema.Union(SchemaTypePropertyPrimitive, SchemaTypePropertyRelation)).pipe( + EffectSchema.minItems(1), + EffectSchema.filter(namesAreUnique, { + identifier: 'DuplicatePropertyNames', + jsonSchema: {}, + description: 'The property.name must be unique across all properties in the type', + }), + ), +}); +/** + * @since 0.0.1 + */ +export type SchemaType = typeof SchemaType.Type; + +/** + * Represents the user-built schema object to generate a `Mappings` definition for + * + * @since 0.0.1 + */ +export const Schema = EffectSchema.Struct({ + types: EffectSchema.Array(SchemaType).pipe( + EffectSchema.minItems(1), + EffectSchema.filter(namesAreUnique, { + identifier: 'DuplicateTypeNames', + jsonSchema: {}, + description: 'The type.name must be unique across all types in the schema', + }), + EffectSchema.filter(allRelationPropertyTypesExist, { + identifier: 'AllRelationTypesExist', + jsonSchema: {}, + description: 'Each type property of dataType RELATION must have a type of the same name in the schema', + }), + ), +}).annotations({ + identifier: 'typesync/Schema', + title: 'TypeSync app Schema', + description: 'An array of types in the schema defined by the user to generate a Mapping object for', + examples: [ + { + types: [ + { + name: 'Account', + knowledgeGraphId: null, + properties: [{ name: 'username', knowledgeGraphId: null, dataType: 'Text' }], + }, + ], + }, + { + types: [ + { + name: 'Account', + knowledgeGraphId: 'a5fd07b1-120f-46c6-b46f-387ef98396a6', + properties: [{ name: 'name', knowledgeGraphId: 'a126ca53-0c8e-48d5-b888-82c734c38935', dataType: 'Text' }], + }, + ], + }, + ], +}); +/** + * @since 0.0.1 + */ +export type Schema = typeof Schema.Type; +/** + * @since 0.0.1 + */ +export const SchemaKnownDecoder = EffectSchema.decodeSync(Schema); +/** + * @since 0.0.1 + */ +export const SchemaUnknownDecoder = EffectSchema.decodeUnknownSync(Schema); + +/** + * Iterate through all properties in all types in the schema of `dataType` === `Relation(${string})` + * and validate that the schema.types have a type for the existing relation + * + * @example All types exist + * ```ts + * import { allRelationPropertyTypesExist, type Mapping } from '@graphprotocol/typesync/Mapping' + * + * const types: Mapping['types'] = [ + * { + * name: "Account", + * knowledgeGraphId: null, + * properties: [ + * { + * name: "username", + * dataType: "Text", + * knowledgeGraphId: null + * } + * ] + * }, + * { + * name: "Event", + * knowledgeGraphId: null, + * properties: [ + * { + * name: "speaker", + * dataType: "Relation(Account)" + * relationType: "Account", + * knowledgeGraphId: null, + * } + * ] + * } + * ] + * expect(allRelationPropertyTypesExist(types)).toEqual(true) + * ``` + * + * @example Account type is missing + * ```ts + * import { allRelationPropertyTypesExist, type Mapping } from '@graphprotocol/typesync/Mapping' + * + * const types: Mapping['types'] = [ + * { + * name: "Event", + * knowledgeGraphId: null, + * properties: [ + * { + * name: "speaker", + * dataType: "Relation(Account)", + * relationType: "Account", + * knowledgeGraphId: null, + * } + * ] + * } + * ] + * expect(allRelationPropertyTypesExist(types)).toEqual(false) + * ``` + * + * @since 0.0.1 + * + * @param types the user-submitted schema types + */ +export function allRelationPropertyTypesExist(types: ReadonlyArray): boolean { + const unqTypeNames = EffectArray.reduce(types, new Set(), (names, curr) => names.add(curr.name)); + return pipe( + types, + EffectArray.flatMap((curr) => curr.properties), + EffectArray.filter((prop) => propertyIsRelation(prop)), + EffectArray.every((prop) => unqTypeNames.has(prop.relationType)), + ); +} + +export type GenerateMappingResult = [mapping: Mapping, ops: Array]; + +// Helper types for internal processing +type PropertyIdMapping = { propName: string; id: Grc20Id.Id }; +type TypeIdMapping = Map; +type ProcessedProperty = + | { type: 'resolved'; mapping: PropertyIdMapping; ops: Array } + | { type: 'deferred'; property: SchemaTypePropertyRelation }; + +type ProcessedType = + | { type: 'complete'; entry: MappingEntry & { typeName: string }; ops: Array } + | { type: 'deferred'; schemaType: SchemaType; properties: Array }; + +// Helper function to build property map from PropertyIdMappings +function buildPropertyMap(properties: Array): MappingEntry['properties'] { + return pipe( + properties, + EffectArray.reduce({} as NonNullable, (props, { propName, id }) => { + props[toCamelCase(propName)] = id; + return props; + }), + ); +} + +// Helper function to create a property and return the result +function createPropertyWithOps( + property: SchemaTypePropertyPrimitive | SchemaTypePropertyRelation, + typeIdMap: TypeIdMapping, +): ProcessedProperty { + if (property.knowledgeGraphId) { + return { + type: 'resolved', + mapping: { propName: property.name, id: Grc20Id.Id(property.knowledgeGraphId) }, + ops: [], + }; + } + + if (propertyIsRelation(property)) { + const relationTypeId = typeIdMap.get(property.relationType); + if (relationTypeId == null) { + return { type: 'deferred', property }; + } + + const { id, ops } = Graph.createProperty({ + name: property.name, + dataType: 'RELATION', + relationValueTypes: [relationTypeId], + }); + return { + type: 'resolved', + mapping: { propName: property.name, id }, + ops, + }; + } + + const { id, ops } = Graph.createProperty({ + name: property.name, + dataType: mapSchemaDataTypeToGRC20PropDataType(property.dataType), + }); + return { + type: 'resolved', + mapping: { propName: property.name, id }, + ops, + }; +} + +// Helper function to process a single type +function processType(type: SchemaType, typeIdMap: TypeIdMapping): ProcessedType { + const processedProperties = pipe( + type.properties, + EffectArray.map((prop) => createPropertyWithOps(prop, typeIdMap)), + ); + + const resolvedProperties = pipe( + processedProperties, + EffectArray.filterMap((p) => (p.type === 'resolved' ? Option.some(p) : Option.none())), + ); + + const deferredProperties = pipe( + processedProperties, + EffectArray.filterMap((p) => (p.type === 'deferred' ? Option.some(p.property) : Option.none())), + ); + + const propertyMappings = pipe( + resolvedProperties, + EffectArray.map((p) => p.mapping), + ); + + const propertyOps = pipe( + resolvedProperties, + EffectArray.flatMap((p) => p.ops), + ); + + // If type exists in knowledge graph, return complete entry + if (type.knowledgeGraphId) { + return { + type: 'complete', + entry: { + typeName: toPascalCase(type.name), + typeIds: [Grc20Id.Id(type.knowledgeGraphId)], + properties: buildPropertyMap(propertyMappings), + }, + ops: propertyOps, + }; + } + + // If there are deferred properties, defer type creation + if (EffectArray.isNonEmptyArray(deferredProperties)) { + return { + type: 'deferred', + schemaType: type, + properties: propertyMappings, + }; + } + + // Create the type with all resolved properties + const { id, ops: typeOps } = Graph.createType({ + name: type.name, + properties: pipe( + propertyMappings, + EffectArray.map((p) => p.id), + ), + }); + + typeIdMap.set(type.name, id); + + return { + type: 'complete', + entry: { + typeName: toPascalCase(type.name), + typeIds: [id], + properties: buildPropertyMap(propertyMappings), + }, + ops: [...propertyOps, ...typeOps], + }; +} + +/** + * Takes the user-submitted schema, validates it, and build the `Mapping` definition for the schema as well as the GRC-20 Ops needed to publish the schema/schema changes to the Knowledge Graph. + * + * @example + * ```ts + * import { Id } from "@graphprotocol/grc-20" + * import { generateMapping } from "@graphprotocol/typesync" + * + * const schema: Schema = { + * types: [ + * { + * name: "Account", + * knowledgeGraphId: "a5fd07b1-120f-46c6-b46f-387ef98396a6", + * properties: [ + * { + * name: "username", + * dataType: "Text", + * knowledgeGraphId: "994edcff-6996-4a77-9797-a13e5e3efad8" + * }, + * { + * name: "createdAt", + * dataType: "Date", + * knowledgeGraphId: null + * } + * ] + * }, + * { + * name: "Event", + * knowledgeGraphId: null, + * properties: [ + * { + * name: "name", + * dataType: "Text", + * knowledgeGraphId: "3808e060-fb4a-4d08-8069-35b8c8a1902b" + * }, + * { + * name: "description", + * dataType: "Text", + * knowledgeGraphId: null + * }, + * { + * name: "speaker", + * dataType: "Relation(Account)", + * relationType: "Account", + * knowledgeGraphId: null + * } + * ] + * } + * ], + * } + * const [mapping, ops] = generateMapping(schema) + * + * expect(mapping).toEqual({ + * Account: { + * typeIds: [Id.Id("a5fd07b1-120f-46c6-b46f-387ef98396a6")], // comes from input schema + * properties: { + * username: Id.Id("994edcff-6996-4a77-9797-a13e5e3efad8"), // comes from input schema + * createdAt: Id.Id("8cd7d9ac-a878-4287-8000-e71e6f853117"), // generated from Graph.createProperty Op + * } + * }, + * Event: { + * typeIds: [Id.Id("20b3fe39-8e62-41a0-b9cb-92743fd760da")], // generated from Graph.createType Op + * properties: { + * name: Id.Id("3808e060-fb4a-4d08-8069-35b8c8a1902b"), // comes from input schema + * description: Id.Id("8fc4e17c-7581-4d6c-a712-943385afc7b5"), // generated from Graph.createProperty Op + * speaker: Id.Id("651ce59f-643b-4931-bf7a-5dc0ca0f5a47"), // generated from Graph.createProperty Op + * } + * } + * }) + * expect(ops).toEqual([ + * // Graph.createProperty Op for Account.createdAt property + * { + * type: "CREATE_PROPERTY", + * property: { + * id: Id.Id("8cd7d9ac-a878-4287-8000-e71e6f853117"), + * dataType: "TEXT" + * } + * }, + * // Graph.createProperty Op for Event.description property + * { + * type: "CREATE_PROPERTY", + * property: { + * id: Id.Id("8fc4e17c-7581-4d6c-a712-943385afc7b5"), + * dataType: "TEXT" + * } + * }, + * // Graph.createProperty Op for Event.speaker property + * { + * type: "CREATE_PROPERTY", + * property: { + * id: Id.Id("651ce59f-643b-4931-bf7a-5dc0ca0f5a47"), + * dataType: "RELATION" + * } + * }, + * // Graph.createType Op for Event type + * { + * type: "CREATE_PROPERTY", + * property: { + * id: Id.Id("651ce59f-643b-4931-bf7a-5dc0ca0f5a47"), + * dataType: "RELATION" + * } + * }, + * ]) + * ``` + * + * @since 0.0.1 + * + * @param input user-built and submitted schema + * @returns the generated [Mapping] definition from the submitted schema as well as the GRC-20 Ops required to publish the schema to the Knowledge Graph + */ +export function generateMapping(input: Schema): GenerateMappingResult { + // Validate the schema + const schema = SchemaKnownDecoder(input); + + // Build initial type ID map + const typeIdMap: TypeIdMapping = pipe( + schema.types, + EffectArray.reduce(new Map(), (map, type) => + map.set(type.name, type.knowledgeGraphId != null ? Grc20Id.Id(type.knowledgeGraphId) : null), + ), + ); + + // First pass: process all types + const processedTypes = pipe( + schema.types, + EffectArray.map((type) => processType(type, typeIdMap)), + ); + + // Separate complete and deferred types + const [deferredTypes, completeTypes] = pipe( + processedTypes, + EffectArray.partition( + (result): result is Extract => result.type === 'complete', + ), + ); + + // Collect all operations from first pass + const firstPassOps = pipe( + completeTypes, + EffectArray.flatMap((t) => t.ops), + ); + + // Second pass: resolve deferred relation properties and create deferred types + const { entries: deferredEntries, ops: secondPassOps } = pipe( + deferredTypes, + EffectArray.reduce( + { entries: [] as Array, ops: [] as Array }, + (acc, deferred) => { + // Resolve all deferred relation properties for this type + const resolvedRelations = pipe( + deferred.schemaType.properties, + EffectArray.filterMap((prop) => { + if (!propertyIsRelation(prop) || prop.knowledgeGraphId != null) { + return Option.none(); + } + + const relationTypeId = typeIdMap.get(prop.relationType); + if (relationTypeId == null) { + throw new RelationValueTypeDoesNotExistError({ + message: `Failed to resolve type ID for relation type: ${prop.relationType}`, + property: prop.name, + relatedType: prop.relationType, + }); + } + + const { id, ops } = Graph.createProperty({ + name: prop.name, + dataType: 'RELATION', + relationValueTypes: [relationTypeId], + }); + + return Option.some({ mapping: { propName: prop.name, id }, ops }); + }), + ); + + // Combine all properties for this type + const allProperties = [ + ...deferred.properties, + ...pipe( + resolvedRelations, + EffectArray.map((r) => r.mapping), + ), + ]; + + // Create the type with all properties + const { id, ops: typeOps } = Graph.createType({ + name: deferred.schemaType.name, + properties: pipe( + allProperties, + EffectArray.map((p) => p.id), + ), + }); + + typeIdMap.set(deferred.schemaType.name, id); + + // Collect all operations + const allOps = [ + ...pipe( + resolvedRelations, + EffectArray.flatMap((r) => r.ops), + ), + ...typeOps, + ]; + + return { + entries: [ + ...acc.entries, + { + typeName: toPascalCase(deferred.schemaType.name), + typeIds: [id], + properties: buildPropertyMap(allProperties), + }, + ], + ops: [...acc.ops, ...allOps], + }; + }, + ), + ); + + // Combine all entries and build final mapping + const allEntries = [ + ...pipe( + completeTypes, + EffectArray.map((t) => t.entry), + ), + ...deferredEntries, + ]; + + const mapping = pipe( + allEntries, + EffectArray.reduce({} as Mapping, (mapping, entry) => { + const { typeName, ...rest } = entry; + mapping[typeName] = rest; + return mapping; + }), + ); + + return [mapping, [...firstPassOps, ...secondPassOps]] as const; +} + +export class RelationValueTypeDoesNotExistError extends Data.TaggedError( + '/typesync/errors/RelationValueTypeDoesNotExistError', +)<{ + readonly message: string; + readonly property: string; + readonly relatedType: string; +}> {} + +/** + * @since 0.0.1 + * + * @param dataType the dataType from the user-submitted schema + * @returns the mapped to GRC-20 dataType for the GRC-20 ops + */ +export function mapSchemaDataTypeToGRC20PropDataType(dataType: SchemaDataType): CreatePropertyParams['dataType'] { + switch (true) { + case dataType === 'Checkbox': { + return 'CHECKBOX'; + } + case dataType === 'Date': { + return 'TIME'; + } + case dataType === 'Number': { + return 'NUMBER'; + } + case dataType === 'Point': { + return 'POINT'; + } + case dataType === 'Url': { + return 'TEXT'; + } + case isDataTypeRelation(dataType): { + return 'RELATION'; + } + default: { + return 'TEXT'; + } + } +} diff --git a/packages/typesync/src/Utils.ts b/packages/typesync/src/Utils.ts new file mode 100644 index 00000000..e7b75315 --- /dev/null +++ b/packages/typesync/src/Utils.ts @@ -0,0 +1,156 @@ +import { Data, String as EffectString } from 'effect'; + +/** + * Takes the input string and returns the camelCase equivalent + * + * @example + * ```ts + * import * as Utils from '@graphprotocol/typesync/Utils' + * + * expect(Utils.toCamelCase('Address line 1')).toEqual('addressLine1'); + * expect(Utils.toCamelCase('AddressLine1')).toEqual('addressLine1'); + * expect(Utils.toCamelCase('addressLine1')).toEqual('addressLine1'); + * expect(Utils.toCamelCase('address_line_1')).toEqual('addressLine1'); + * expect(Utils.toCamelCase('address-line-1')).toEqual('addressLine1'); + * expect(Utils.toCamelCase('address-line_1')).toEqual('addressLine1'); + * expect(Utils.toCamelCase('address-line 1')).toEqual('addressLine1'); + * expect(Utils.toCamelCase('ADDRESS_LINE_1')).toEqual('addressLine1'); + * ``` + * + * @since 0.0.1 + * + * @param str input string + * @returns camelCased value of the input string + */ +export function toCamelCase(str: string): string { + if (EffectString.isEmpty(str)) { + throw new InvalidInputError({ input: str, cause: 'Input is empty' }); + } + + let result = ''; + let capitalizeNext = false; + let i = 0; + + // Skip leading non-alphanumeric characters + while (i < EffectString.length(str) && !/[a-zA-Z0-9]/.test(str[i])) { + i++; + } + + for (; i < EffectString.length(str); i++) { + const char = str[i]; + + if (/[a-zA-Z0-9]/.test(char)) { + if (capitalizeNext) { + result += EffectString.toUpperCase(char); + capitalizeNext = false; + } else if (EffectString.length(result) === 0) { + // First character should always be lowercase + result += EffectString.toLowerCase(char); + } else if (/[A-Z]/.test(char) && i > 0 && /[a-z0-9]/.test(str[i - 1])) { + // Capital letter following lowercase/number - this indicates a word boundary + // So we need to capitalize this letter (it starts a new word) + result += EffectString.toUpperCase(char); + } else { + result += EffectString.toLowerCase(char); + } + } else { + // Non-alphanumeric character - set flag to capitalize next letter + capitalizeNext = EffectString.length(result) > 0; // Only capitalize if we have existing content + } + } + + return result; +} + +/** + * Takes the input string and returns the PascalCase equivalent + * + * @example + * ```ts + * import * as Utils from '@graphprotocol/typesync/Utils' + * + * expect(Utils.toPascalCase('Address line 1')).toEqual('AddressLine1'); + * expect(Utils.toPascalCase('AddressLine1')).toEqual('AddressLine1'); + * expect(Utils.toPascalCase('addressLine1')).toEqual('AddressLine1'); + * expect(Utils.toPascalCase('address_line_1')).toEqual('AddressLine1'); + * expect(Utils.toPascalCase('address-line-1')).toEqual('AddressLine1'); + * expect(Utils.toPascalCase('address-line_1')).toEqual('AddressLine1'); + * expect(Utils.toPascalCase('address-line 1')).toEqual('AddressLine1'); + * expect(Utils.toPascalCase('ADDRESS_LINE_1')).toEqual('AddressLine1'); + * ``` + * + * @since 0.0.1 + * + * @param str input string + * @returns PascalCased value of the input string + */ +export function toPascalCase(str: string): string { + if (EffectString.isEmpty(str)) { + throw new InvalidInputError({ input: str, cause: 'Input is empty' }); + } + + let result = ''; + let capitalizeNext = true; // Start with true to capitalize the first letter + let i = 0; + + // Skip leading non-alphanumeric characters + while (i < EffectString.length(str) && !/[a-zA-Z0-9]/.test(str[i])) { + i++; + } + + for (; i < EffectString.length(str); i++) { + const char = str[i]; + + if (/[a-zA-Z0-9]/.test(char)) { + if (capitalizeNext) { + result += EffectString.toUpperCase(char); + capitalizeNext = false; + } else if (/[A-Z]/.test(char) && i > 0 && /[a-z0-9]/.test(str[i - 1])) { + // Capital letter following lowercase/number - this indicates a word boundary + // So we need to capitalize this letter (it starts a new word) + result += EffectString.toUpperCase(char); + } else { + result += EffectString.toLowerCase(char); + } + } else { + // Non-alphanumeric character - set flag to capitalize next letter + capitalizeNext = true; + } + } + + return result; +} + +export class InvalidInputError extends Data.TaggedError('/typesync/errors/InvalidInputError')<{ + readonly input: string; + readonly cause: unknown; +}> {} + +/** + * Adds schema validation that the array of objects with property `name` only has unique names + * + * @example only unique names -> returns true + * ```ts + * const types = [{name:'Account'}, {name:'Event'}] + * expect(namesAreUnique(types)).toEqual(true) + * ``` + * + * @example duplicate name -> returns false + * ```ts + * const types = [{name:'Account'}, {name:'Event'}, {name:'Account'}] + * expect(namesAreUnique(types)).toEqual(false) + * ``` + */ +export function namesAreUnique(entries: ReadonlyArray): boolean { + const names = new Set(); + + for (const entry of entries) { + const name = EffectString.toLowerCase(entry.name); + if (names.has(name)) { + return false; + } + names.add(name); + } + + return true; +} diff --git a/packages/typesync/src/index.ts b/packages/typesync/src/index.ts new file mode 100644 index 00000000..5bdaff85 --- /dev/null +++ b/packages/typesync/src/index.ts @@ -0,0 +1,2 @@ +export * as Mapping from './Mapping.js'; +export * as Utils from './Utils.js'; diff --git a/packages/typesync/test/Mapping.test.ts b/packages/typesync/test/Mapping.test.ts new file mode 100644 index 00000000..2a32fa80 --- /dev/null +++ b/packages/typesync/test/Mapping.test.ts @@ -0,0 +1,421 @@ +import { Id } from '@graphprotocol/grc-20'; +import { describe, expect, it } from 'vitest'; + +import { + type Mapping, + type Schema, + allRelationPropertyTypesExist, + generateMapping, + mapSchemaDataTypeToGRC20PropDataType, +} from '../src/Mapping.js'; + +describe('Mapping', () => { + describe('mapSchemaDataTypeToGRC20PropDataType', () => { + it('should be able to map the schema dataType to the correct GRC-20 dataType', () => { + expect(mapSchemaDataTypeToGRC20PropDataType('Checkbox')).toEqual('CHECKBOX'); + expect(mapSchemaDataTypeToGRC20PropDataType('Number')).toEqual('NUMBER'); + expect(mapSchemaDataTypeToGRC20PropDataType('Date')).toEqual('TIME'); + expect(mapSchemaDataTypeToGRC20PropDataType('Point')).toEqual('POINT'); + expect(mapSchemaDataTypeToGRC20PropDataType('Url')).toEqual('TEXT'); + expect(mapSchemaDataTypeToGRC20PropDataType('Text')).toEqual('TEXT'); + expect(mapSchemaDataTypeToGRC20PropDataType('Relation(Event)')).toEqual('RELATION'); + }); + }); + + describe('allRelationPropertyTypesExist', () => { + it('should return true if the submitted schema contains all required types', () => { + const types: Schema['types'] = [ + { + name: 'Account', + knowledgeGraphId: null, + properties: [{ name: 'username', dataType: 'Text', knowledgeGraphId: null }], + }, + { + name: 'Event', + knowledgeGraphId: null, + properties: [ + { name: 'speaker', dataType: 'Relation(Account)', relationType: 'Account', knowledgeGraphId: null }, + ], + }, + ]; + + expect(allRelationPropertyTypesExist(types)).toEqual(true); + }); + it('should return false if the submitted schema relation properties', () => { + const types: Schema['types'] = [ + { + name: 'Event', + knowledgeGraphId: null, + properties: [ + { name: 'speaker', dataType: 'Relation(Account)', relationType: 'Account', knowledgeGraphId: null }, + ], + }, + ]; + + expect(allRelationPropertyTypesExist(types)).toEqual(false); + }); + }); + + describe('generateMapping', () => { + it('should be able to map the input schema to a resulting Mapping definition', () => { + const [mapping] = generateMapping({ + types: [ + { + name: 'Account', + knowledgeGraphId: null, + properties: [ + { + name: 'username', + dataType: 'Text', + knowledgeGraphId: null, + }, + { + name: 'createdAt', + dataType: 'Date', + knowledgeGraphId: null, + }, + ], + }, + { + name: 'Event', + knowledgeGraphId: null, + properties: [ + { + name: 'name', + dataType: 'Text', + knowledgeGraphId: null, + }, + { + name: 'description', + dataType: 'Text', + knowledgeGraphId: null, + }, + { + name: 'speaker', + dataType: 'Relation(Account)', + relationType: 'Account', + knowledgeGraphId: null, + }, + ], + }, + ], + }); + const expected: Mapping = { + Account: { + typeIds: [expect.any(String)], + properties: { + username: expect.any(String), + createdAt: expect.any(String), + }, + }, + Event: { + typeIds: [expect.any(String)], + properties: { + name: expect.any(String), + description: expect.any(String), + speaker: expect.any(String), + }, + }, + }; + + expect(mapping).toEqual(expected); + }); + it('should use the existing KG ids if provided', () => { + const [mapping] = generateMapping({ + types: [ + { + name: 'Account', + knowledgeGraphId: 'a5fd07b1-120f-46c6-b46f-387ef98396a6', + properties: [ + { + name: 'username', + dataType: 'Text', + knowledgeGraphId: '994edcff-6996-4a77-9797-a13e5e3efad8', + }, + { + name: 'createdAt', + dataType: 'Date', + knowledgeGraphId: '64bfba51-a69b-4746-be4b-213214a879fe', + }, + ], + }, + { + name: 'Event', + knowledgeGraphId: null, + properties: [ + { + name: 'name', + dataType: 'Text', + knowledgeGraphId: '3808e060-fb4a-4d08-8069-35b8c8a1902b', + }, + { + name: 'description', + dataType: 'Text', + knowledgeGraphId: null, + }, + { + name: 'speaker', + dataType: 'Relation(Account)', + relationType: 'Account', + knowledgeGraphId: null, + }, + ], + }, + ], + }); + const expected: Mapping = { + Account: { + typeIds: [Id.Id('a5fd07b1-120f-46c6-b46f-387ef98396a6')], + properties: { + username: Id.Id('994edcff-6996-4a77-9797-a13e5e3efad8'), + createdAt: Id.Id('64bfba51-a69b-4746-be4b-213214a879fe'), + }, + }, + Event: { + typeIds: [expect.any(String)], + properties: { + name: Id.Id('3808e060-fb4a-4d08-8069-35b8c8a1902b'), + description: expect.any(String), + speaker: expect.any(String), + }, + }, + }; + + expect(mapping).toEqual(expected); + }); + it('should handle relation properties where the related type has a knowledgeGraphId', () => { + const [mapping] = generateMapping({ + types: [ + { + name: 'Account', + knowledgeGraphId: 'a5fd07b1-120f-46c6-b46f-387ef98396a6', + properties: [ + { + name: 'username', + dataType: 'Text', + knowledgeGraphId: null, + }, + ], + }, + { + name: 'Event', + knowledgeGraphId: null, + properties: [ + { + name: 'name', + dataType: 'Text', + knowledgeGraphId: null, + }, + { + name: 'organizer', + dataType: 'Relation(Account)', + relationType: 'Account', + knowledgeGraphId: null, + }, + ], + }, + ], + }); + const expected: Mapping = { + Account: { + typeIds: [Id.Id('a5fd07b1-120f-46c6-b46f-387ef98396a6')], + properties: { + username: expect.any(String), + }, + }, + Event: { + typeIds: [expect.any(String)], + properties: { + name: expect.any(String), + organizer: expect.any(String), + }, + }, + }; + + expect(mapping).toEqual(expected); + }); + it('should handle relation properties where the related type does NOT have a knowledgeGraphId (second pass)', () => { + const [mapping] = generateMapping({ + types: [ + { + name: 'Account', + knowledgeGraphId: null, + properties: [ + { + name: 'username', + dataType: 'Text', + knowledgeGraphId: null, + }, + ], + }, + { + name: 'Event', + knowledgeGraphId: null, + properties: [ + { + name: 'name', + dataType: 'Text', + knowledgeGraphId: null, + }, + { + name: 'organizer', + dataType: 'Relation(Account)', + relationType: 'Account', + knowledgeGraphId: null, + }, + ], + }, + ], + }); + const expected: Mapping = { + Account: { + typeIds: [expect.any(String)], + properties: { + username: expect.any(String), + }, + }, + Event: { + typeIds: [expect.any(String)], + properties: { + name: expect.any(String), + organizer: expect.any(String), + }, + }, + }; + + expect(mapping).toEqual(expected); + }); + it('should handle mixed scenarios with some relation types having knowledgeGraphId and others not', () => { + const [mapping] = generateMapping({ + types: [ + { + name: 'Account', + knowledgeGraphId: 'a5fd07b1-120f-46c6-b46f-387ef98396a6', + properties: [ + { + name: 'username', + dataType: 'Text', + knowledgeGraphId: '994edcff-6996-4a77-9797-a13e5e3efad8', + }, + ], + }, + { + name: 'Venue', + knowledgeGraphId: null, + properties: [ + { + name: 'name', + dataType: 'Text', + knowledgeGraphId: null, + }, + { + name: 'location', + dataType: 'Point', + knowledgeGraphId: null, + }, + ], + }, + { + name: 'Event', + knowledgeGraphId: null, + properties: [ + { + name: 'title', + dataType: 'Text', + knowledgeGraphId: null, + }, + { + name: 'speaker', + dataType: 'Relation(Account)', + relationType: 'Account', + knowledgeGraphId: null, + }, + { + name: 'venue', + dataType: 'Relation(Venue)', + relationType: 'Venue', + knowledgeGraphId: null, + }, + ], + }, + ], + }); + const expected: Mapping = { + Account: { + typeIds: [Id.Id('a5fd07b1-120f-46c6-b46f-387ef98396a6')], + properties: { + username: Id.Id('994edcff-6996-4a77-9797-a13e5e3efad8'), + }, + }, + Venue: { + typeIds: [expect.any(String)], + properties: { + name: expect.any(String), + location: expect.any(String), + }, + }, + Event: { + typeIds: [expect.any(String)], + properties: { + title: expect.any(String), + speaker: expect.any(String), + venue: expect.any(String), + }, + }, + }; + + expect(mapping).toEqual(expected); + }); + describe('schema validation failures', () => { + it('should throw an error if the Schema does not pass validation: type names are not unique', () => { + expect(() => + generateMapping({ + types: [ + { + name: 'Account', + knowledgeGraphId: null, + properties: [{ name: 'username', dataType: 'Text', knowledgeGraphId: null }], + }, + { + name: 'Account', + knowledgeGraphId: null, + properties: [{ name: 'image', dataType: 'Text', knowledgeGraphId: null }], + }, + ], + }), + ).toThrowError(); + }); + it('should throw an error if the Schema does not pass validation: type property names are not unique', () => { + expect(() => + generateMapping({ + types: [ + { + name: 'Account', + knowledgeGraphId: null, + properties: [ + { name: 'username', dataType: 'Text', knowledgeGraphId: null }, + { name: 'username', dataType: 'Text', knowledgeGraphId: null }, + ], + }, + ], + }), + ).toThrowError(); + }); + it('should throw an error if the Schema does not pass validation: referenced relation property does not have matching type in schema', () => { + expect(() => + generateMapping({ + types: [ + { + name: 'Event', + knowledgeGraphId: null, + properties: [ + { name: 'speaker', dataType: 'Relation(Account)', relationType: 'Account', knowledgeGraphId: null }, + ], + }, + ], + }), + ).toThrowError(); + }); + }); + }); +}); diff --git a/packages/typesync/test/Utils.test.ts b/packages/typesync/test/Utils.test.ts new file mode 100644 index 00000000..3304a2c0 --- /dev/null +++ b/packages/typesync/test/Utils.test.ts @@ -0,0 +1,46 @@ +import { describe, expect, it } from 'vitest'; + +import * as Utils from '../src/Utils.js'; + +describe('Utils', () => { + describe('toCamelCase', () => { + it('should convert the strings to camelCase', () => { + expect(Utils.toCamelCase('Address line 1')).toEqual('addressLine1'); + expect(Utils.toCamelCase('AddressLine1')).toEqual('addressLine1'); + expect(Utils.toCamelCase('addressLine1')).toEqual('addressLine1'); + expect(Utils.toCamelCase('address_line_1')).toEqual('addressLine1'); + expect(Utils.toCamelCase('address-line-1')).toEqual('addressLine1'); + expect(Utils.toCamelCase('address-line_1')).toEqual('addressLine1'); + expect(Utils.toCamelCase('address-line 1')).toEqual('addressLine1'); + expect(Utils.toCamelCase('ADDRESS_LINE_1')).toEqual('addressLine1'); + }); + it.fails('should throw an InvalidNameError if string is empty', () => { + expect(Utils.toCamelCase('')).toThrowError(Utils.InvalidInputError); + }); + }); + describe('toPascalCase', () => { + it('should convert the strings to PascalCase', () => { + expect(Utils.toPascalCase('Address line 1')).toEqual('AddressLine1'); + expect(Utils.toPascalCase('AddressLine1')).toEqual('AddressLine1'); + expect(Utils.toPascalCase('addressLine1')).toEqual('AddressLine1'); + expect(Utils.toPascalCase('address_line_1')).toEqual('AddressLine1'); + expect(Utils.toPascalCase('address-line-1')).toEqual('AddressLine1'); + expect(Utils.toPascalCase('address-line_1')).toEqual('AddressLine1'); + expect(Utils.toPascalCase('address-line 1')).toEqual('AddressLine1'); + expect(Utils.toPascalCase('ADDRESS_LINE_1')).toEqual('AddressLine1'); + }); + it.fails('should throw an InvalidNameError if string is empty', () => { + expect(Utils.toPascalCase('')).toThrowError(Utils.InvalidInputError); + }); + }); + describe('namesAreUnique', () => { + it('should return true if the name prop on each entry is unique', () => { + expect(Utils.namesAreUnique([{ name: 'Account' }, { name: 'Event' }])).toEqual(true); + }); + it('should return false if the name prop on each entry is not unique', () => { + expect(Utils.namesAreUnique([{ name: 'Account' }, { name: 'Event' }, { name: 'Account' }])).toEqual(false); + // should handle casing + expect(Utils.namesAreUnique([{ name: 'Account' }, { name: 'Event' }, { name: 'account' }])).toEqual(false); + }); + }); +}); diff --git a/packages/typesync/tsconfig.build.json b/packages/typesync/tsconfig.build.json new file mode 100644 index 00000000..fc59560f --- /dev/null +++ b/packages/typesync/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.src.json", + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/build.tsbuildinfo", + "outDir": "dist", + "stripInternal": true + } +} diff --git a/packages/typesync/tsconfig.json b/packages/typesync/tsconfig.json new file mode 100644 index 00000000..84e89018 --- /dev/null +++ b/packages/typesync/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../../tsconfig.base.json", + "include": [], + "references": [{ "path": "tsconfig.src.json" }, { "path": "tsconfig.test.json" }] +} diff --git a/packages/typesync/tsconfig.src.json b/packages/typesync/tsconfig.src.json new file mode 100644 index 00000000..579ef691 --- /dev/null +++ b/packages/typesync/tsconfig.src.json @@ -0,0 +1,8 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src"], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/src.tsbuildinfo", + "rootDir": "src" + } +} diff --git a/packages/typesync/tsconfig.test.json b/packages/typesync/tsconfig.test.json new file mode 100644 index 00000000..5c81d806 --- /dev/null +++ b/packages/typesync/tsconfig.test.json @@ -0,0 +1,11 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["test"], + "references": [ + { "path": "./tsconfig.src.json" }, + ], + "compilerOptions": { + "tsBuildInfoFile": ".tsbuildinfo/test.tsbuildinfo", + "rootDir": "test" + } +} diff --git a/packages/typesync/vitest.config.ts b/packages/typesync/vitest.config.ts new file mode 100644 index 00000000..1be24e98 --- /dev/null +++ b/packages/typesync/vitest.config.ts @@ -0,0 +1,6 @@ +import { type UserConfigExport, mergeConfig } from 'vitest/config'; +import shared from '../../vitest.shared.js'; + +const config: UserConfigExport = {}; + +export default mergeConfig(shared, config); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16985c67..fd40a030 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,35 +9,35 @@ importers: .: devDependencies: '@babel/cli': - specifier: ^7.27.2 - version: 7.27.2(@babel/core@7.27.1) + specifier: ^7.28.0 + version: 7.28.0(@babel/core@7.28.0) '@babel/core': - specifier: ^7.27.1 - version: 7.27.1 + specifier: ^7.28.0 + version: 7.28.0 '@biomejs/biome': specifier: 1.9.4 version: 1.9.4 '@changesets/cli': - specifier: ^2.29.3 - version: 2.29.3 + specifier: ^2.29.5 + version: 2.29.5 '@graphprotocol/grc-20': specifier: ^0.21.6 version: 0.21.6(bufferutil@4.0.9)(graphql@16.11.0)(ox@0.6.7(typescript@5.8.3)(zod@3.25.51))(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.51) babel-plugin-annotate-pure-calls: specifier: ^0.5.0 - version: 0.5.0(@babel/core@7.27.1) + version: 0.5.0(@babel/core@7.28.0) glob: - specifier: ^11.0.2 - version: 11.0.2 + specifier: ^11.0.3 + version: 11.0.3 pkg-pr-new: - specifier: ^0.0.43 - version: 0.0.43 + specifier: ^0.0.54 + version: 0.0.54 typescript: specifier: ^5.8.3 version: 5.8.3 vitest: - specifier: ^3.1.3 - version: 3.1.3(@types/debug@4.1.12)(@types/node@24.0.8)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + specifier: ^3.2.4 + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.13)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) apps/connect: dependencies: @@ -64,7 +64,7 @@ importers: version: 1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-router-devtools': specifier: ^1.122.0 - version: 1.122.0(@tanstack/react-router@1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.123.2)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3) + version: 1.122.0(@tanstack/react-router@1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3) '@xstate/store': specifier: ^3.5.1 version: 3.5.1(react@19.1.0)(solid-js@1.9.5) @@ -72,8 +72,11 @@ importers: specifier: ^2.1.1 version: 2.1.1 effect: - specifier: ^3.16.10 - version: 3.16.10 + specifier: ^3.16.12 + version: 3.16.12 + framer-motion: + specifier: ^12.10.1 + version: 12.10.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) graphql-request: specifier: ^7.2.0 version: 7.2.0(graphql@16.11.0) @@ -164,7 +167,7 @@ importers: version: 1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-router-devtools': specifier: ^1.122.0 - version: 1.122.0(@tanstack/react-router@1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.123.2)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3) + version: 1.122.0(@tanstack/react-router@1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3) '@xstate/store': specifier: ^3.5.1 version: 3.5.1(react@19.1.0)(solid-js@1.9.5) @@ -175,8 +178,8 @@ importers: specifier: ^2.1.1 version: 2.1.1 effect: - specifier: ^3.16.10 - version: 3.16.10 + specifier: ^3.16.12 + version: 3.16.12 framer-motion: specifier: ^12.10.1 version: 12.10.1(@emotion/is-prop-valid@1.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -261,7 +264,7 @@ importers: version: link:../../packages/hypergraph-react/publish next: specifier: 15.3.2 - version: 15.3.2(@babel/core@7.27.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 15.3.2(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: ^19.0.0 version: 19.1.0 @@ -312,8 +315,8 @@ importers: specifier: ^2.8.5 version: 2.8.5 effect: - specifier: ^3.16.10 - version: 3.16.10 + specifier: ^3.16.12 + version: 3.16.12 express: specifier: ^5.1.0 version: 5.1.0 @@ -354,6 +357,9 @@ importers: apps/typesync: dependencies: + '@graphprotocol/grc-20': + specifier: ^0.21.6 + version: 0.21.6(bufferutil@4.0.9)(graphql@16.11.0)(ox@0.6.7(typescript@5.8.3)(zod@3.25.51))(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.51) '@graphql-typed-document-node/core': specifier: ^3.2.0 version: 3.2.0(graphql@16.11.0) @@ -371,22 +377,22 @@ importers: version: 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tailwindcss/vite': specifier: ^4.1.11 - version: 4.1.11(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) + version: 4.1.11(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) '@tanstack/react-form': - specifier: ^1.12.4 - version: 1.12.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.14.1 + version: 1.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-query': - specifier: ^5.81.5 - version: 5.81.5(react@19.1.0) + specifier: ^5.83.0 + version: 5.83.0(react@19.1.0) '@tanstack/react-query-devtools': - specifier: ^5.81.5 - version: 5.81.5(@tanstack/react-query@5.81.5(react@19.1.0))(react@19.1.0) + specifier: ^5.83.0 + version: 5.83.0(@tanstack/react-query@5.83.0(react@19.1.0))(react@19.1.0) '@tanstack/react-router': - specifier: ^1.123.2 - version: 1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.127.1 + version: 1.127.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-router-devtools': - specifier: ^1.123.2 - version: 1.123.2(@tanstack/react-router@1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.123.2)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3) + specifier: ^1.127.1 + version: 1.127.1(@tanstack/react-router@1.127.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3) better-sqlite3: specifier: ^12.2.0 version: 12.2.0 @@ -394,8 +400,8 @@ importers: specifier: ^4.1.0 version: 4.1.0 effect: - specifier: ^3.16.10 - version: 3.16.10 + specifier: ^3.16.12 + version: 3.16.12 graphql: specifier: ^16.11.0 version: 16.11.0 @@ -422,50 +428,47 @@ importers: version: 4.1.11 devDependencies: '@effect/cli': - specifier: ^0.66.1 - version: 0.66.1(@effect/platform@0.87.1(effect@3.16.10))(@effect/printer-ansi@0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10))(@effect/printer@0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10))(effect@3.16.10) + specifier: ^0.66.12 + version: 0.66.12(@effect/platform@0.87.12(effect@3.16.12))(@effect/printer-ansi@0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12))(@effect/printer@0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12))(effect@3.16.12) '@effect/experimental': - specifier: ^0.51.1 - version: 0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) + specifier: ^0.51.13 + version: 0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) '@effect/language-service': - specifier: ^0.23.3 - version: 0.23.3 + specifier: ^0.24.2 + version: 0.24.2 '@effect/platform': - specifier: ^0.87.1 - version: 0.87.1(effect@3.16.10) + specifier: ^0.87.12 + version: 0.87.12(effect@3.16.12) '@effect/platform-node': - specifier: ^0.88.3 - version: 0.88.3(@effect/cluster@0.37.2(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/workflow@0.1.2(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(bufferutil@4.0.9)(effect@3.16.10)(utf-8-validate@5.0.10) + specifier: ^0.89.5 + version: 0.89.5(@effect/cluster@0.37.2(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/workflow@0.1.2(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(bufferutil@4.0.9)(effect@3.16.12)(utf-8-validate@5.0.10) '@effect/sql': - specifier: ^0.40.1 - version: 0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) + specifier: ^0.40.13 + version: 0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) '@effect/sql-sqlite-node': - specifier: ^0.41.1 - version: 0.41.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(effect@3.16.10) + specifier: ^0.41.13 + version: 0.41.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(effect@3.16.12) '@effect/vitest': - specifier: ^0.23.10 - version: 0.23.10(effect@3.16.10)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@24.0.8)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) - '@graphprotocol/grc-20': - specifier: ^0.21.6 - version: 0.21.6(bufferutil@4.0.9)(graphql@16.11.0)(ox@0.6.7(typescript@5.8.3)(zod@3.25.51))(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.51) + specifier: ^0.23.12 + version: 0.23.12(effect@3.16.12)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.13)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) '@graphql-codegen/cli': specifier: ^5.0.7 - version: 5.0.7(@babel/core@7.27.7)(@parcel/watcher@2.5.1)(@types/node@24.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(enquirer@2.4.1)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)(typescript@5.8.3)(utf-8-validate@5.0.10) + version: 5.0.7(@babel/core@7.28.0)(@parcel/watcher@2.5.1)(@types/node@24.0.13)(bufferutil@4.0.9)(encoding@0.1.13)(enquirer@2.4.1)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)(typescript@5.8.3)(utf-8-validate@5.0.10) '@graphql-codegen/client-preset': specifier: ^4.8.3 - version: 4.8.3(@babel/core@7.27.7)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0) + version: 4.8.3(@babel/core@7.28.0)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0) '@graphql-codegen/typescript': specifier: ^4.1.6 - version: 4.1.6(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + version: 4.1.6(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) '@graphql-codegen/typescript-operations': specifier: ^4.6.1 - version: 4.6.1(@babel/core@7.27.7)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0) + version: 4.6.1(@babel/core@7.28.0)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0) '@tanstack/router-plugin': - specifier: ^1.123.2 - version: 1.123.2(@tanstack/react-router@1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))(webpack@5.99.8(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.2)) + specifier: ^1.127.1 + version: 1.127.1(@tanstack/react-router@1.127.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))(webpack@5.99.8(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.2)) '@types/node': - specifier: ^24.0.8 - version: 24.0.8 + specifier: ^24.0.13 + version: 24.0.13 '@types/react': specifier: ^19.1.8 version: 19.1.8 @@ -474,7 +477,7 @@ importers: version: 19.1.6(@types/react@19.1.8) '@vitejs/plugin-react': specifier: ^4.6.0 - version: 4.6.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) + version: 4.6.0(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) glob: specifier: ^11.0.3 version: 11.0.3 @@ -489,7 +492,7 @@ importers: version: 4.20.3 vite: specifier: ^6.3.5 - version: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + version: 6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) publishDirectory: dist apps/typesync/dist: @@ -511,7 +514,7 @@ importers: version: 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tailwindcss/vite': specifier: ^4.1.11 - version: 4.1.11(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) + version: 4.1.11(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) '@tanstack/react-form': specifier: ^1.12.4 version: 1.12.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -526,7 +529,7 @@ importers: version: 1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@tanstack/react-router-devtools': specifier: ^1.123.2 - version: 1.123.2(@tanstack/react-router@1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.123.2)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3) + version: 1.123.2(@tanstack/react-router@1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3) better-sqlite3: specifier: ^12.2.0 version: 12.2.0 @@ -534,8 +537,8 @@ importers: specifier: ^4.1.0 version: 4.1.0 effect: - specifier: ^3.16.10 - version: 3.16.10 + specifier: ^3.16.12 + version: 3.16.12 graphql: specifier: ^16.11.0 version: 16.11.0 @@ -602,7 +605,7 @@ importers: version: 2.0.6 '@effect/experimental': specifier: ^0.51.1 - version: 0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) + version: 0.51.1(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) '@graphprotocol/grc-20': specifier: ^0.21.6 version: 0.21.6(bufferutil@4.0.9)(graphql@16.11.0)(ox@0.6.7(typescript@5.8.3)(zod@3.25.51))(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.51) @@ -631,8 +634,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 effect: - specifier: ^3.16.10 - version: 3.16.10 + specifier: ^3.16.12 + version: 3.16.12 permissionless: specifier: ^0.2.47 version: 0.2.47(ox@0.6.7(typescript@5.8.3)(zod@3.25.51))(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.51)) @@ -672,8 +675,8 @@ importers: specifier: ^5.75.5 version: 5.75.5(react@19.1.0) effect: - specifier: ^3.16.10 - version: 3.16.10 + specifier: ^3.16.12 + version: 3.16.12 graphql-request: specifier: ^7.1.2 version: 7.1.2(graphql@16.11.0) @@ -701,7 +704,7 @@ importers: version: 19.1.3 '@vitejs/plugin-react': specifier: ^4.4.1 - version: 4.4.1(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) + version: 4.4.1(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) '@xstate/store': specifier: ^3.5.1 version: 3.5.1(react@19.1.0)(solid-js@1.9.5) @@ -713,6 +716,16 @@ importers: version: 19.1.0 publishDirectory: publish + packages/typesync: + dependencies: + '@graphprotocol/grc-20': + specifier: ^0.21.6 + version: 0.21.6(bufferutil@4.0.9)(graphql@16.11.0)(ox@0.6.7(typescript@5.8.3)(zod@3.25.51))(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.51) + effect: + specifier: ^3.16.12 + version: 3.16.12 + publishDirectory: publish + packages: '@adobe/css-tools@4.4.0': @@ -824,8 +837,8 @@ packages: '@automerge/automerge@2.2.9': resolution: {integrity: sha512-6HM52Ops79hAQBWMg/t0MNfGOdEiXyenQjO9F1hKZq0RWDsMLpPa1SzRy/C4/4UyX67sTHuA5CwBpH34SpfZlA==} - '@babel/cli@7.27.2': - resolution: {integrity: sha512-cfd7DnGlhH6OIyuPSSj3vcfIdnbXukhAyKY8NaZrFadC7pXyL9mOL5WgjcptiEJLi5k3j8aYvLIVCzezrWTaiA==} + '@babel/cli@7.28.0': + resolution: {integrity: sha512-CYrZG7FagtE8ReKDBfItxnrEBf2khq2eTMnPuqO8UVN0wzhp1eMX1wfda8b1a32l2aqYLwRRIOGNovm8FVzmMw==} engines: {node: '>=6.9.0'} hasBin: true peerDependencies: @@ -843,20 +856,12 @@ packages: resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.1': - resolution: {integrity: sha512-Q+E+rd/yBzNQhXkG+zQnF58e4zoZfBedaxwzPmicKsiK3nt8iJYrSrDbjwFFDGC4f+rPafqRaPH6TsDoSvMf7A==} - engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.2': resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==} engines: {node: '>=6.9.0'} - '@babel/core@7.27.1': - resolution: {integrity: sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.27.7': - resolution: {integrity: sha512-BU2f9tlKQ5CAthiMIgpzAh4eDTLWo1mqi9jqE2OxMG0E/OM199VJt2q8BztTxpnSW0i1ymdwLXRJnYzvDM5r2w==} + '@babel/core@7.28.0': + resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==} engines: {node: '>=6.9.0'} '@babel/generator@7.26.9': @@ -871,6 +876,10 @@ packages: resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.0': + resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} @@ -879,10 +888,6 @@ packages: resolution: {integrity: sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.1': - resolution: {integrity: sha512-2YaDd/Rd9E598B5+WIc8wJPmWETiiJXFYVE60oX8FDohv7rAUU3CQj+A1MgeEmcsk2+dQuEjIe/GDvig0SqL4g==} - engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.2': resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} @@ -910,6 +915,10 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.25.9': resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} @@ -926,12 +935,6 @@ packages: resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.1': - resolution: {integrity: sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.27.3': resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} engines: {node: '>=6.9.0'} @@ -1000,10 +1003,6 @@ packages: resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.1': - resolution: {integrity: sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.6': resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} @@ -1023,6 +1022,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} engines: {node: '>=6.9.0'} @@ -1673,6 +1677,10 @@ packages: resolution: {integrity: sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.0': + resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==} + engines: {node: '>=6.9.0'} + '@babel/types@7.27.1': resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==} engines: {node: '>=6.9.0'} @@ -1681,6 +1689,10 @@ packages: resolution: {integrity: sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.0': + resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} + engines: {node: '>=6.9.0'} + '@base-ui-components/react@1.0.0-beta.0': resolution: {integrity: sha512-lPw5/40g/TbpSG1e1g4drl10kaSY2VBOFFQ9axmGhwPGqrQmTuW42jcUq/7OPdXQAyMakfWMWLSXyk3NXbRk+Q==} engines: {node: '>=14.0.0'} @@ -1781,14 +1793,14 @@ packages: '@changesets/apply-release-plan@7.0.12': resolution: {integrity: sha512-EaET7As5CeuhTzvXTQCRZeBUcisoYPDDcXvgTE/2jmmypKp0RC7LxKj/yzqeh/1qFTZI7oDGFcL1PHRuQuketQ==} - '@changesets/assemble-release-plan@6.0.7': - resolution: {integrity: sha512-vS5J92Rm7ZUcrvtu6WvggGWIdohv8s1/3ypRYQX8FsPO+KPDx6JaNC3YwSfh2umY/faGGfNnq42A7PRT0aZPFw==} + '@changesets/assemble-release-plan@6.0.9': + resolution: {integrity: sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==} '@changesets/changelog-git@0.2.1': resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} - '@changesets/cli@2.29.3': - resolution: {integrity: sha512-TNhKr6Loc7I0CSD9LpAyVNSxWBHElXVmmvQYIZQvaMan5jddmL7geo3+08Wi7ImgHFVNB0Nhju/LzXqlrkoOxg==} + '@changesets/cli@2.29.5': + resolution: {integrity: sha512-0j0cPq3fgxt2dPdFsg4XvO+6L66RC0pZybT9F4dG5TBrLA3jA/1pNkdTXH9IBBVHkgsKrNKenI3n1mPyPlIydg==} hasBin: true '@changesets/config@3.1.1': @@ -1800,8 +1812,8 @@ packages: '@changesets/get-dependents-graph@2.1.3': resolution: {integrity: sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==} - '@changesets/get-release-plan@4.0.11': - resolution: {integrity: sha512-4DZpsewsc/1m5TArVg5h1c0U94am+cJBnu3izAM3yYIZr8+zZwa3AXYdEyCNURzjx0wWr80u/TWoxshbwdZXOA==} + '@changesets/get-release-plan@4.0.13': + resolution: {integrity: sha512-DWG1pus72FcNeXkM12tx+xtExyH/c9I1z+2aXlObH3i9YA7+WZEVaiHzHl03thpvAgWTRaH64MpfHxozfF7Dvg==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -2279,13 +2291,13 @@ packages: resolution: {integrity: sha512-e7zcB6TPnVzyUaHMJyLSArKa2AG3h9+4CfvKXKKWNx6hRs+p0a+u7HHTJBgo6KW2m+vqDnuIHK4X+bhmoghAFA==} engines: {node: '>=18.0'} - '@effect/cli@0.66.1': - resolution: {integrity: sha512-FXXVNoMgrwf57dCTe8w/fqlZkr+MYNyNLxVHg2jYFUUWTFCzOTcj2myNEs5loVvJ5CmH2kvaylmM9ZRb+U6o1w==} + '@effect/cli@0.66.12': + resolution: {integrity: sha512-fAlZXPjcb3J+7OfbZvZVzkrNGJ44vuLQuRcCO8pX5u1ub4RY9/ikwYe0WfcugbcrvthMF1GEGo3+z10v1upk5g==} peerDependencies: - '@effect/platform': ^0.87.1 - '@effect/printer': ^0.44.10 - '@effect/printer-ansi': ^0.44.10 - effect: ^3.16.10 + '@effect/platform': ^0.87.12 + '@effect/printer': ^0.44.12 + '@effect/printer-ansi': ^0.44.12 + effect: ^3.16.12 '@effect/cluster@0.37.2': resolution: {integrity: sha512-9U4P/Fk8C6fN/s0e4nvA++prZmELtV7k5RwG2AOw4NgqBZqptiJMutgaT10ltwgdvddRF/77PVjgORyzNTBmbg==} @@ -2309,31 +2321,45 @@ packages: lmdb: optional: true - '@effect/language-service@0.23.3': - resolution: {integrity: sha512-yurF+FHd1HwM/3Mh7kQCea+z4wvbs2/NLPyk6FiEWA2sppRKv4Kp4luwfUqWqyd9/uyScWJcHX7WK1caLpx4Pw==} + '@effect/experimental@0.51.13': + resolution: {integrity: sha512-5dqPCO6HT6zLQw2yZaVZgIY4gytr1YQA3ZxfKyXPymKBTyTog0vrQxAiV7KUhXHQLpxvEdmaSisr/S1WUYUBrA==} + peerDependencies: + '@effect/platform': ^0.87.12 + effect: ^3.16.12 + ioredis: ^5 + lmdb: ^3 + peerDependenciesMeta: + ioredis: + optional: true + lmdb: + optional: true + + '@effect/language-service@0.24.2': + resolution: {integrity: sha512-wZiMtqbuJBcYNvXyG91c09T9dX1OPcmyH9k1Rz8G56i3kIrvVbs/gB/w4hexDuCjlemApYacMV6fH7O9O+Gtbg==} + hasBin: true - '@effect/platform-node-shared@0.42.3': - resolution: {integrity: sha512-3mV3lIeS/nSRbZuNb/64UfHDKf1k3IjCiBE8rajgbvOwMB+Fk5m/9ZPdDVoj/pkGE68EmDoVkbI1ysIiyUm0cg==} + '@effect/platform-node-shared@0.42.17': + resolution: {integrity: sha512-FNfR0Wsxru+1GnAyeTkOOOR8+ZsftQsTGcHq736eTv556jAhWVqKyhwDP0eRLZbQ2BjwxEFoAZl1AM8I3yUhNQ==} peerDependencies: - '@effect/cluster': ^0.41.3 - '@effect/platform': ^0.87.1 - '@effect/rpc': ^0.64.2 - '@effect/sql': ^0.40.1 - effect: ^3.16.10 + '@effect/cluster': ^0.41.17 + '@effect/platform': ^0.87.12 + '@effect/rpc': ^0.64.13 + '@effect/sql': ^0.40.13 + effect: ^3.16.12 - '@effect/platform-node@0.88.3': - resolution: {integrity: sha512-ChJxjjpT/pSmBpWgyKVHG1m8J8tEtPaKc160FFjNz/HGVmhBSsWce9Vro9Z13mQvsm2K5SZkET2pyQX8Rw60Yw==} + '@effect/platform-node@0.89.5': + resolution: {integrity: sha512-WQpggkO5TrwnN/Ry41H/ljdSFCFAp5pqtvhkqgyBepVzQ8XQFUYm78/Ty5t1UBexFzxC4qvFD0sjxlHbck2dmQ==} peerDependencies: - '@effect/cluster': ^0.41.3 - '@effect/platform': ^0.87.1 - '@effect/rpc': ^0.64.2 - '@effect/sql': ^0.40.1 - effect: ^3.16.10 + '@effect/cluster': ^0.41.17 + '@effect/platform': ^0.87.12 + '@effect/rpc': ^0.64.13 + '@effect/sql': ^0.40.13 + effect: ^3.16.12 - '@effect/platform@0.87.1': - resolution: {integrity: sha512-OJmdAOle5ZYExJIppBh2+N3RHCAdn3WdtxvLgkECI0aJLjpEy/O88XdkkLmRKrVPFByxsShfVUEhZyKtVdHA8A==} + '@effect/platform@0.87.12': + resolution: {integrity: sha512-IRYynFjo18wmfTd0FVNAXSC631+gE1yBeBfcOHtPLyMlApjhB31YzaCs+T9kY1cBrE7nZ78lJl0MtHmu1W9Wkw==} peerDependencies: - effect: ^3.16.10 + effect: ^3.16.12 '@effect/printer-ansi@0.40.10': resolution: {integrity: sha512-XMmAcHxojINGZKnNGJSrG1fMvMYLOlHGVAvvD/5pbp2Yi5Rh8PGDJjtaPmrj5PmO+WssovevLHGonrbKa8xybA==} @@ -2353,30 +2379,30 @@ packages: '@effect/platform': ^0.84.4 effect: ^3.16.3 - '@effect/sql-sqlite-node@0.41.1': - resolution: {integrity: sha512-jnDYcnAM9oyt9nt2W4W7G1/XsYGXXH/ZN8ugVE2IVH2GvCKBChozLRonBGs/wlLTxkAlivTIL4KIMrfAY7HAxQ==} + '@effect/sql-sqlite-node@0.41.13': + resolution: {integrity: sha512-MflOCMRsyPTo+5GHPXynXnH/hqWYDDzZjkxGm/Z2DXdZLPara8ZqME1U3OdDTKw/KWj1Xf/QT3yICv7OWX03WA==} peerDependencies: - '@effect/experimental': ^0.51.1 - '@effect/platform': ^0.87.1 - '@effect/sql': ^0.40.1 - effect: ^3.16.10 + '@effect/experimental': ^0.51.13 + '@effect/platform': ^0.87.12 + '@effect/sql': ^0.40.13 + effect: ^3.16.12 - '@effect/sql@0.40.1': - resolution: {integrity: sha512-yvAgaPotWz72h5WOh2sqckUk1rCNmcaWQJR9MW5v+KPMUryK5+BR2hnhPO5Lz+TKAOIcdBoQOwsdLCw/Y0zg3A==} + '@effect/sql@0.40.13': + resolution: {integrity: sha512-rAE9ofFAHcyN74hIPnAp+Kiu51KovayuLkKnBkAn+WsgCyHgK7Tn4qYJe9Hbqi3E/cRepRCh89zw11IpGbf37g==} peerDependencies: - '@effect/experimental': ^0.51.1 - '@effect/platform': ^0.87.1 - effect: ^3.16.10 + '@effect/experimental': ^0.51.13 + '@effect/platform': ^0.87.12 + effect: ^3.16.12 '@effect/typeclass@0.31.10': resolution: {integrity: sha512-mDuQ44IfyDUSnltcFS+cEQGWhMg37IwNiPmATLw/NYBYHDBkqUc77vzlCpSlBiKDzExSI8vjMVWqGjL22MLHGQ==} peerDependencies: effect: ^3.12.10 - '@effect/vitest@0.23.10': - resolution: {integrity: sha512-XdaA67TzoA61BtMRSQ9q77CGcNTiRPVNTeTHRYUM5scXQH+U3gH7RRFFG7PgmYNZp5WEeXg6VCAHV4+fGEdyZg==} + '@effect/vitest@0.23.12': + resolution: {integrity: sha512-kUR6Npn9gXsO+PlxnZQ9kmd7RzjT1Bl0foyypvCKctvRtG/CmqNgDNNZU9s/GZXvVAtbChjULXe1APyE2smrAw==} peerDependencies: - effect: ^3.16.10 + effect: ^3.16.12 vitest: ^3.0.0 '@effect/workflow@0.1.2': @@ -3213,6 +3239,9 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jridgewell/gen-mapping@0.3.12': + resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -3234,6 +3263,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.29': + resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} + '@jsdevtools/ez-spawn@3.0.4': resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} engines: {node: '>=10'} @@ -4752,6 +4784,9 @@ packages: '@tanstack/form-core@1.12.4': resolution: {integrity: sha512-BhfNI5sEjI68Im1Vqezf9w68fJL4EB80cqW5w0zb/MV1erHHsXNRwLGmljF88VnCx1t/xd4fmF0D08wNajBauQ==} + '@tanstack/form-core@1.14.0': + resolution: {integrity: sha512-uAOW3IxkT/Cmy8JlznK8S/LSpvtHjpUQi2wyuPqVfJ04y95WuV90SO+VKtb9TrNp51QLrrTFBR8tMEuzqp5wmA==} + '@tanstack/history@1.115.0': resolution: {integrity: sha512-K7JJNrRVvyjAVnbXOH2XLRhFXDkeP54Kt2P4FR1Kl2KDGlIbkua5VqZQD2rot3qaDrpufyUa63nuLai1kOLTsQ==} engines: {node: '>=12'} @@ -4766,6 +4801,9 @@ packages: '@tanstack/query-core@5.81.5': resolution: {integrity: sha512-ZJOgCy/z2qpZXWaj/oxvodDx07XcQa9BF92c0oINjHkoqUPsmm3uG08HpTaviviZ/N9eP1f9CM7mKSEkIo7O1Q==} + '@tanstack/query-core@5.83.0': + resolution: {integrity: sha512-0M8dA+amXUkyz5cVUm/B+zSk3xkQAcuXuz5/Q/LveT4ots2rBpPTZOzd7yJa2Utsf8D2Upl5KyjhHRY+9lB/XA==} + '@tanstack/query-devtools@5.81.2': resolution: {integrity: sha512-jCeJcDCwKfoyyBXjXe9+Lo8aTkavygHHsUHAlxQKKaDeyT0qyQNLKl7+UyqYH2dDF6UN/14873IPBHchcsU+Zg==} @@ -4781,12 +4819,30 @@ packages: vinxi: optional: true + '@tanstack/react-form@1.14.1': + resolution: {integrity: sha512-Ioja3zcLZj082OdCH6pFNv15fD4UTfnJgKIXxY7Iumio8EcYLXSuxzanqNWewFvftshUFHknSEa7QtyOAkFs0Q==} + peerDependencies: + '@tanstack/react-start': ^1.112.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + vinxi: ^0.5.0 + peerDependenciesMeta: + '@tanstack/react-start': + optional: true + vinxi: + optional: true + '@tanstack/react-query-devtools@5.81.5': resolution: {integrity: sha512-lCGMu4RX0uGnlrlLeSckBfnW/UV+KMlTBVqa97cwK7Z2ED5JKnZRSjNXwoma6sQBTJrcULvzgx2K6jEPvNUpDw==} peerDependencies: '@tanstack/react-query': ^5.81.5 react: ^18 || ^19 + '@tanstack/react-query-devtools@5.83.0': + resolution: {integrity: sha512-yfp8Uqd3I1jgx8gl0lxbSSESu5y4MO2ThOPBnGNTYs0P+ZFu+E9g5IdOngyUGuo6Uz6Qa7p9TLdZEX3ntik2fQ==} + peerDependencies: + '@tanstack/react-query': ^5.83.0 + react: ^18 || ^19 + '@tanstack/react-query@5.75.5': resolution: {integrity: sha512-QrLCJe40BgBVlWdAdf2ZEVJ0cISOuEy/HKupId1aTKU6gPJZVhSvZpH+Si7csRflCJphzlQ77Yx6gUxGW9o0XQ==} peerDependencies: @@ -4797,6 +4853,11 @@ packages: peerDependencies: react: ^18 || ^19 + '@tanstack/react-query@5.83.0': + resolution: {integrity: sha512-/XGYhZ3foc5H0VM2jLSD/NyBRIOK4q9kfeml4+0x2DlL6xVuAcVEW+hTlTapAmejObg0i3eNqhkr2dT+eciwoQ==} + peerDependencies: + react: ^18 || ^19 + '@tanstack/react-router-devtools@1.122.0': resolution: {integrity: sha512-UClUnO+PFvX5Ddlhhfkgo/7qSRTM/a/jsT7V5dz9LrSaPCsh7oLQgm6lj1Yu8U9GfpCQBLzWzbsvmYAdpOa/TQ==} engines: {node: '>=12'} @@ -4813,6 +4874,14 @@ packages: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' + '@tanstack/react-router-devtools@1.127.1': + resolution: {integrity: sha512-vKIO9ccqPNXqIU1mfZ4FRGNSeJAjvCqi9ZDxQkOb88euMkejzmN+4VTGFRQ51LwCOZaIgdy1l4JPaxH2tgq+vQ==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/react-router': ^1.127.1 + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + '@tanstack/react-router@1.120.2': resolution: {integrity: sha512-CNduh/O3miW6A/WDMd2cfca8D8x+kVJTYwG5fMaBfcEF/bfjneDnEWXsmKLMdB2iLc6miaRQu66ryPSMdIBUAw==} engines: {node: '>=12'} @@ -4827,6 +4896,13 @@ packages: react: '>=18.0.0 || >=19.0.0' react-dom: '>=18.0.0 || >=19.0.0' + '@tanstack/react-router@1.127.1': + resolution: {integrity: sha512-6Ofe9VxvmuGmaJ1qUBSOsCimsPHlq4nx75EC8JhIwnkc95AQaFCZce7mTp++qECVf6HlkE5El12YwpeTz8wnpQ==} + engines: {node: '>=12'} + peerDependencies: + react: '>=18.0.0 || >=19.0.0' + react-dom: '>=18.0.0 || >=19.0.0' + '@tanstack/react-store@0.7.0': resolution: {integrity: sha512-S/Rq17HaGOk+tQHV/yrePMnG1xbsKZIl/VsNWnNXt4XW+tTY8dTlvpJH2ZQ3GRALsusG5K6Q3unAGJ2pd9W/Ng==} peerDependencies: @@ -4839,6 +4915,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/react-store@0.7.3': + resolution: {integrity: sha512-3Dnqtbw9P2P0gw8uUM8WP2fFfg8XMDSZCTsywRPZe/XqqYW8PGkXKZTvP0AHkE4mpqP9Y43GpOg9vwO44azu6Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + '@tanstack/react-virtual@3.13.6': resolution: {integrity: sha512-WT7nWs8ximoQ0CDx/ngoFP7HbQF9Q2wQe4nh2NB+u2486eX3nZRE40P9g6ccCVq7ZfTSH5gFOuCoVH5DLNS/aA==} peerDependencies: @@ -4859,6 +4941,10 @@ packages: resolution: {integrity: sha512-k1GTymZ2CBOX9SDiVHlqtgrNiid8fSKGjAofLToMAoLgqESg1knuIsYSeivmPkVbeSSdKkwF2uqsrJqNRIp/TQ==} engines: {node: '>=12'} + '@tanstack/router-core@1.127.0': + resolution: {integrity: sha512-hHgbtLOAnN61LFqBrE2bq3mctRLfXvJefBlTFakZJavSoMEniX6bMQ5ZMDwMtpo57Hbyzx2rTD4yZfYu74Eydg==} + engines: {node: '>=12'} + '@tanstack/router-devtools-core@1.122.0': resolution: {integrity: sha512-3AWnGAlC6GBrS9ral+CeThwHt690T0RtxMoRpTYdK5aJ5qyegWeQXqIjd6WPWNRjxYSKsDjPY2h77HPoAm7F5Q==} engines: {node: '>=12'} @@ -4883,6 +4969,18 @@ packages: csstype: optional: true + '@tanstack/router-devtools-core@1.127.0': + resolution: {integrity: sha512-K/UFaru0sVonaRoqQFUoNiqDt4AvXLxcRd2+9HjbGSC1xckAUNEEAcVl7jwQfERg89e9IVfHiPOIuDdQFjFBtA==} + engines: {node: '>=12'} + peerDependencies: + '@tanstack/router-core': ^1.127.0 + csstype: ^3.0.10 + solid-js: '>=1.9.5' + tiny-invariant: ^1.3.3 + peerDependenciesMeta: + csstype: + optional: true + '@tanstack/router-generator@1.120.2': resolution: {integrity: sha512-rI+hQjUtsAZs5K2292zM6OE/fHAVRZxejAkrLlaQlunphqJYtHBizXk15SP9QsP3i+QvS1D8YnioMPvSlVPEOw==} engines: {node: '>=12'} @@ -4892,8 +4990,8 @@ packages: '@tanstack/react-router': optional: true - '@tanstack/router-generator@1.123.2': - resolution: {integrity: sha512-JJ1spXiYlUndXhZUwSpkwWwytvnhm164KP8mUbXHfY6STcH5doBZTcwkjUm5MYz8TXta3rNCuutNTshEMQX1BQ==} + '@tanstack/router-generator@1.127.0': + resolution: {integrity: sha512-k6f2Ekkoe4MB8lEeMfefQ4031yVf+3BIArsQqFB3HOzJaIRzPo8w8Boq7XqwZ2/r1lwSpK0z/xrNLcF2EMmeaw==} engines: {node: '>=12'} '@tanstack/router-plugin@1.120.2': @@ -4917,12 +5015,12 @@ packages: webpack: optional: true - '@tanstack/router-plugin@1.123.2': - resolution: {integrity: sha512-5+oM8Xmv0EAOs/ZU0wbKKzbpwiqixco1mAg3DCy/R5z4IIFq9Df9N33zC7c2RRDjJ/S2OzXWWA3Dn26DuC/HUg==} + '@tanstack/router-plugin@1.127.1': + resolution: {integrity: sha512-JgwxSCI3ESsU+E3iHpSn2MX8/UwygaT4DvOllQTm+njFpeHLqm3i3MjmPlj7AelLAyLqALntt4WvaZKvfKaLLA==} engines: {node: '>=12'} peerDependencies: '@rsbuild/core': '>=1.0.2' - '@tanstack/react-router': ^1.123.2 + '@tanstack/react-router': ^1.127.1 vite: '>=5.0.0 || >=6.0.0' vite-plugin-solid: ^2.11.2 webpack: '>=5.92.0' @@ -4952,6 +5050,9 @@ packages: '@tanstack/store@0.7.1': resolution: {integrity: sha512-PjUQKXEXhLYj2X5/6c1Xn/0/qKY0IVFxTJweopRfF26xfjVyb14yALydJrHupDh3/d+1WKmfEgZPBVCmDkzzwg==} + '@tanstack/store@0.7.2': + resolution: {integrity: sha512-RP80Z30BYiPX2Pyo0Nyw4s1SJFH2jyM6f9i3HfX4pA+gm5jsnYryscdq2aIQLnL4TaGuQMO+zXmN9nh1Qck+Pg==} + '@tanstack/virtual-core@3.13.6': resolution: {integrity: sha512-cnQUeWnhNP8tJ4WsGcYiX24Gjkc9ALstLbHcBj1t3E7EimN6n6kHH+DPV4PpDnuw00NApQp+ViojMj1GRdwYQg==} @@ -5014,6 +5115,9 @@ packages: '@types/bonjour@3.5.13': resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + '@types/chai@5.2.2': + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -5026,6 +5130,9 @@ packages: '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/eslint-scope@3.7.7': resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} @@ -5119,8 +5226,8 @@ packages: '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} - '@types/node@24.0.8': - resolution: {integrity: sha512-WytNrFSgWO/esSH9NbpWUfTMGQwCGIKfCmNlmFDNiI5gGhgMmEA+V1AEvKLeBNvvtBnailJtkrEa2OIISwrVAA==} + '@types/node@24.0.13': + resolution: {integrity: sha512-Qm9OYVOFHFYg3wJoTSrz80hoec5Lia/dPp84do3X7dZvLikQvM1YpmvTBEdIr/e+U8HTkFjLHLnl78K/qjf+jQ==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -5230,34 +5337,34 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - '@vitest/expect@3.1.3': - resolution: {integrity: sha512-7FTQQuuLKmN1Ig/h+h/GO+44Q1IlglPlR2es4ab7Yvfx+Uk5xsv+Ykk+MEt/M2Yn/xGmzaLKxGw2lgy2bwuYqg==} + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} - '@vitest/mocker@3.1.3': - resolution: {integrity: sha512-PJbLjonJK82uCWHjzgBJZuR7zmAOrSvKk1QBxrennDIgtH4uK0TB1PvYmc0XBCigxxtiAVPfWtAdy4lpz8SQGQ==} + '@vitest/mocker@3.2.4': + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: msw: ^2.4.9 - vite: ^5.0.0 || ^6.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@3.1.3': - resolution: {integrity: sha512-i6FDiBeJUGLDKADw2Gb01UtUNb12yyXAqC/mmRWuYl+m/U9GS7s8us5ONmGkGpUUo7/iAYzI2ePVfOZTYvUifA==} + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} - '@vitest/runner@3.1.3': - resolution: {integrity: sha512-Tae+ogtlNfFei5DggOsSUvkIaSuVywujMj6HzR97AHK6XK8i3BuVyIifWAm/sE3a15lF5RH9yQIrbXYuo0IFyA==} + '@vitest/runner@3.2.4': + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} - '@vitest/snapshot@3.1.3': - resolution: {integrity: sha512-XVa5OPNTYUsyqG9skuUkFzAeFnEzDp8hQu7kZ0N25B1+6KjGm4hWLtURyBbsIAOekfWQ7Wuz/N/XXzgYO3deWQ==} + '@vitest/snapshot@3.2.4': + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} - '@vitest/spy@3.1.3': - resolution: {integrity: sha512-x6w+ctOEmEXdWaa6TO4ilb7l9DxPR5bwEb6hILKuxfU1NqWT2mpJD9NJN7t3OTfxmVlOMrvtoFJGdgyzZ605lQ==} + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} - '@vitest/utils@3.1.3': - resolution: {integrity: sha512-2Ltrpht4OmHO9+c/nmHtF09HWiyWdworqnHIwjfvDyWjuwKbdkcS9AnhsDn+8E2RM4x++foD1/tNuLPVvWG1Rg==} + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} '@wallet-standard/app@1.1.0': resolution: {integrity: sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ==} @@ -6793,8 +6900,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@3.16.10: - resolution: {integrity: sha512-F0hDCOLax7i3SOy5wQnJZTzKP9aGg8OQNUJ2s8YoL5fVcCgRCgE+Ky+Hfz5qC7LgVVOWDDbRpCh5MPB20wRI8Q==} + effect@3.16.12: + resolution: {integrity: sha512-N39iBk0K71F9nb442TLbTkjl24FLUzuvx2i1I2RsEAQsdAdUTuUoW0vlfUXgkMTUOnYqKnWcFfqw4hK4Pw27hg==} electron-to-chromium@1.5.152: resolution: {integrity: sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==} @@ -7214,8 +7321,8 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} - find-my-way-ts@0.1.5: - resolution: {integrity: sha512-4GOTMrpGQVzsCH2ruUn2vmwzV/02zF4q+ybhCIrw/Rkt3L8KWcycdC6aJMctJzwN4fXD4SD5F/4B9Sksh5rE0A==} + find-my-way-ts@0.1.6: + resolution: {integrity: sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA==} find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} @@ -7412,11 +7519,6 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - glob@11.0.2: - resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==} - engines: {node: 20 || >=22} - hasBin: true - glob@11.0.3: resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} engines: {node: 20 || >=22} @@ -8085,10 +8187,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.0.2: - resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} - engines: {node: 20 || >=22} - jackspeak@4.1.1: resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} @@ -8153,6 +8251,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -8488,6 +8589,9 @@ packages: loupe@3.1.3: resolution: {integrity: sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==} + loupe@3.1.4: + resolution: {integrity: sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==} + lower-case-first@2.0.2: resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} @@ -8854,10 +8958,6 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@10.0.1: - resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} - engines: {node: 20 || >=22} - minimatch@10.0.3: resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} @@ -9462,8 +9562,8 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} - pkg-pr-new@0.0.43: - resolution: {integrity: sha512-BxadQyJbbt7BtInyg82I73ztPOftPmDF1ttpTiJ1FpCp4p3zt5sXvDLm3V1GA8ukxa8MSvsI1+BJmsR54FLBpg==} + pkg-pr-new@0.0.54: + resolution: {integrity: sha512-NkmmZbe3HrElqWcgvbwTuVm7wzHN+vpz1NFhBNcAKT33Co8YE95IiA/Vq7E+cka6z+qybI2pVYVidT5dhW+jMQ==} hasBin: true pkg-types@1.3.1: @@ -10588,11 +10688,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.1: resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} engines: {node: '>=10'} @@ -10622,10 +10717,20 @@ packages: peerDependencies: seroval: ^1.0 + seroval-plugins@1.3.2: + resolution: {integrity: sha512-0QvCV2lM3aj/U3YozDiVwx9zpH0q8A60CTWIv4Jszj/givcudPb48B+rkU5D51NJ0pTpweGMttHjboPa9/zoIQ==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + seroval@1.2.1: resolution: {integrity: sha512-yBxFFs3zmkvKNmR0pFSU//rIsYjuX418TnlDmc2weaq5XFDqDIV/NOMPBoLrbxjLH42p4UzRuXHryXh9dYcKcw==} engines: {node: '>=10'} + seroval@1.3.2: + resolution: {integrity: sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ==} + engines: {node: '>=10'} + serve-handler@6.1.6: resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} @@ -10953,6 +11058,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.0.0: + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + style-to-js@1.1.16: resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} @@ -11156,16 +11264,20 @@ packages: resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} engines: {node: '>=12.0.0'} - tinypool@1.0.2: - resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + tinyspy@4.0.3: + resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} engines: {node: '>=14.0.0'} title-case@3.0.3: @@ -11700,8 +11812,8 @@ packages: typescript: optional: true - vite-node@3.1.3: - resolution: {integrity: sha512-uHV4plJ2IxCl4u1up1FQRrqclylKAogbtBfOTwcuJ28xFi+89PZ57BRh+naIRvH70HPwxy5QHYzg1OrEaC7AbA==} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -11755,16 +11867,16 @@ packages: yaml: optional: true - vitest@3.1.3: - resolution: {integrity: sha512-188iM4hAHQ0km23TN/adso1q5hhwKqUpv+Sd6p5sOuh6FhQnRNW3IsiIpvxqahtBabsJ2SLZgmGSpcYK4wQYJw==} + vitest@3.2.4: + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/debug': ^4.1.12 '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - '@vitest/browser': 3.1.3 - '@vitest/ui': 3.1.3 + '@vitest/browser': 3.2.4 + '@vitest/ui': 3.2.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -12249,12 +12361,12 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@ardatan/relay-compiler@12.0.1(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0)': + '@ardatan/relay-compiler@12.0.1(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0)': dependencies: '@babel/generator': 7.26.9 '@babel/parser': 7.26.9 '@babel/runtime': 7.27.6 - babel-preset-fbjs: 3.4.0(@babel/core@7.27.7) + babel-preset-fbjs: 3.4.0(@babel/core@7.28.0) chalk: 4.1.2 fb-watchman: 2.0.2 fbjs: 3.0.5(encoding@0.1.13) @@ -12305,10 +12417,10 @@ snapshots: dependencies: uuid: 9.0.1 - '@babel/cli@7.27.2(@babel/core@7.27.1)': + '@babel/cli@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/core': 7.28.0 + '@jridgewell/trace-mapping': 0.3.29 commander: 6.2.1 convert-source-map: 2.0.0 fs-readdir-recursive: 1.1.0 @@ -12333,42 +12445,20 @@ snapshots: '@babel/compat-data@7.26.5': {} - '@babel/compat-data@7.27.1': {} - '@babel/compat-data@7.27.2': {} - '@babel/core@7.27.1': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.1 - '@babel/helper-compilation-targets': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) - '@babel/helpers': 7.27.1 - '@babel/parser': 7.27.1 - '@babel/template': 7.27.1 - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 - convert-source-map: 2.0.0 - debug: 4.4.0 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/core@7.27.7': + '@babel/core@7.28.0': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 + '@babel/generator': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.7) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helpers': 7.27.6 - '@babel/parser': 7.27.7 + '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/traverse': 7.27.7 - '@babel/types': 7.27.7 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 convert-source-map: 2.0.0 debug: 4.4.1 gensync: 1.0.0-beta.2 @@ -12379,7 +12469,7 @@ snapshots: '@babel/generator@7.26.9': dependencies: - '@babel/parser': 7.26.9 + '@babel/parser': 7.27.7 '@babel/types': 7.27.7 '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 @@ -12401,6 +12491,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.28.0': + dependencies: + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.27.7 @@ -12409,79 +12507,60 @@ snapshots: dependencies: '@babel/types': 7.27.7 - '@babel/helper-compilation-targets@7.27.1': - dependencies: - '@babel/compat-data': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.24.2 - lru-cache: 5.1.1 - semver: 6.3.1 - '@babel/helper-compilation-targets@7.27.2': dependencies: '@babel/compat-data': 7.27.2 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.24.2 + browserslist: 4.24.5 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.27.7)': + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.27.7) + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.28.0) '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 '@babel/traverse': 7.27.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.27.7 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.7)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.7) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/traverse': 7.27.7 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.1)': + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.1 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.1)': + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-compilation-targets': 7.27.1 + '@babel/core': 7.28.0 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.0 + debug: 4.4.1 lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: - supports-color + '@babel/helper-globals@7.28.0': {} + '@babel/helper-member-expression-to-functions@7.25.9': dependencies: '@babel/traverse': 7.27.7 @@ -12510,30 +12589,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.27.1(@babel/core@7.27.7)': - dependencies: - '@babel/core': 7.27.7 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.7)': + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.7 + '@babel/traverse': 7.28.0 transitivePeerDependencies: - supports-color @@ -12549,36 +12610,27 @@ snapshots: '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.1)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-wrap-function': 7.27.1 '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.26.5(@babel/core@7.27.7)': + '@babel/helper-replace-supers@7.26.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-member-expression-to-functions': 7.25.9 '@babel/helper-optimise-call-expression': 7.25.9 '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.27.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.7)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 '@babel/traverse': 7.27.7 @@ -12615,15 +12667,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helpers@7.27.1': - dependencies: - '@babel/template': 7.27.1 - '@babel/types': 7.27.1 - '@babel/helpers@7.27.6': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.27.7 + '@babel/types': 7.28.0 '@babel/parser@7.26.9': dependencies: @@ -12637,787 +12684,751 @@ snapshots: dependencies: '@babel/types': 7.27.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.1)': + '@babel/parser@7.28.0': + dependencies: + '@babel/types': 7.28.0 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.27.7)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.27.7) + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.27.7)': + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.28.0)': dependencies: '@babel/compat-data': 7.26.5 - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.7) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.27.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.28.0) - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.1)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.7)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.27.1)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.7)': + '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.27.1)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.7)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.7)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.27.1)': + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.7)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.1)': + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.1) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.1) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.27.7)': + '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-block-scoping@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.27.7) + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.28.0) '@babel/traverse': 7.27.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) '@babel/traverse': 7.27.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-destructuring@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-flow-strip-types@7.26.5(@babel/core@7.27.7)': + '@babel/plugin-transform-flow-strip-types@7.26.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.27.7) + '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.28.0) - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) - '@babel/helper-plugin-utils': 7.27.1 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.27.7)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.7) + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.7)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.7) + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 '@babel/traverse': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-module-transforms': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.27.1)': + '@babel/plugin-transform-object-rest-spread@7.27.2(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.28.0) - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.26.5(@babel/core@7.27.7) + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.1) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.27.1)': + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.7)': + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.27.1)': + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.7)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-module-imports': 7.25.9 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) '@babel/types': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) '@babel/types': 7.27.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-regenerator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-runtime@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-runtime@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.1) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.1) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.1) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.28.0) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.28.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.27.7)': + '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.1) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.1) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.7)': + '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-annotate-as-pure': 7.27.1 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.7) + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.1)': + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/preset-env@7.27.2(@babel/core@7.27.1)': + '@babel/preset-env@7.27.2(@babel/core@7.28.0)': dependencies: '@babel/compat-data': 7.27.2 - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.1) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.27.1) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-block-scoping': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-object-rest-spread': 7.27.2(@babel/core@7.27.1) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-regenerator': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.27.1) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.27.1) - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.1) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.1) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.1) + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoping': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-object-rest-spread': 7.27.2(@babel/core@7.28.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-regenerator': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.0) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.28.0) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.28.0) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.28.0) core-js-compat: 3.42.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.1)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/types': 7.27.7 esutils: 2.0.3 - '@babel/preset-react@7.27.1(@babel/core@7.27.1)': - dependencies: - '@babel/core': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.27.1) - transitivePeerDependencies: - - supports-color - - '@babel/preset-typescript@7.27.1(@babel/core@7.27.1)': + '@babel/preset-react@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.1) - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.27.1(@babel/core@7.27.7)': + '@babel/preset-typescript@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.7 + '@babel/core': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.7) - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.7) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color @@ -13432,8 +13443,8 @@ snapshots: '@babel/template@7.27.1': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.1 - '@babel/types': 7.27.1 + '@babel/parser': 7.27.7 + '@babel/types': 7.27.7 '@babel/template@7.27.2': dependencies: @@ -13444,11 +13455,11 @@ snapshots: '@babel/traverse@7.27.1': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.1 - '@babel/parser': 7.27.1 - '@babel/template': 7.27.1 - '@babel/types': 7.27.1 - debug: 4.4.0 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.7 + '@babel/template': 7.27.2 + '@babel/types': 7.27.7 + debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -13465,6 +13476,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.0': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.0 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + '@babel/types@7.27.1': dependencies: '@babel/helper-string-parser': 7.27.1 @@ -13475,6 +13498,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.28.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@base-ui-components/react@1.0.0-beta.0(@types/react@19.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.27.1 @@ -13555,30 +13583,30 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.6.3 + semver: 7.7.1 - '@changesets/assemble-release-plan@6.0.7': + '@changesets/assemble-release-plan@6.0.9': dependencies: '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.6.3 + semver: 7.7.1 '@changesets/changelog-git@0.2.1': dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.29.3': + '@changesets/cli@2.29.5': dependencies: '@changesets/apply-release-plan': 7.0.12 - '@changesets/assemble-release-plan': 6.0.7 + '@changesets/assemble-release-plan': 6.0.9 '@changesets/changelog-git': 0.2.1 '@changesets/config': 3.1.1 '@changesets/errors': 0.2.0 '@changesets/get-dependents-graph': 2.1.3 - '@changesets/get-release-plan': 4.0.11 + '@changesets/get-release-plan': 4.0.13 '@changesets/git': 3.0.4 '@changesets/logger': 0.1.1 '@changesets/pre': 2.0.2 @@ -13597,7 +13625,7 @@ snapshots: package-manager-detector: 0.2.8 picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.6.3 + semver: 7.7.1 spawndamnit: 3.0.1 term-size: 2.2.1 @@ -13620,11 +13648,11 @@ snapshots: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.6.3 + semver: 7.7.1 - '@changesets/get-release-plan@4.0.11': + '@changesets/get-release-plan@4.0.13': dependencies: - '@changesets/assemble-release-plan': 6.0.7 + '@changesets/assemble-release-plan': 6.0.9 '@changesets/config': 3.1.1 '@changesets/pre': 2.0.2 '@changesets/read': 0.6.5 @@ -13965,16 +13993,16 @@ snapshots: '@docusaurus/babel@3.7.0(acorn@8.15.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@babel/core': 7.27.1 - '@babel/generator': 7.27.1 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.27.1) - '@babel/plugin-transform-runtime': 7.27.1(@babel/core@7.27.1) - '@babel/preset-env': 7.27.2(@babel/core@7.27.1) - '@babel/preset-react': 7.27.1(@babel/core@7.27.1) - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/generator': 7.27.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-transform-runtime': 7.27.1(@babel/core@7.28.0) + '@babel/preset-env': 7.27.2(@babel/core@7.28.0) + '@babel/preset-react': 7.27.1(@babel/core@7.28.0) + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) '@babel/runtime': 7.27.6 '@babel/runtime-corejs3': 7.27.1 - '@babel/traverse': 7.27.1 + '@babel/traverse': 7.27.7 '@docusaurus/logger': 3.7.0 '@docusaurus/utils': 3.7.0(acorn@8.15.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) babel-plugin-dynamic-import-node: 2.3.3 @@ -13992,13 +14020,13 @@ snapshots: '@docusaurus/bundler@3.7.0(acorn@8.15.0)(eslint@9.29.0(jiti@2.4.2))(lightningcss@1.30.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(typescript@5.8.3)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@docusaurus/babel': 3.7.0(acorn@8.15.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@docusaurus/cssnano-preset': 3.7.0 '@docusaurus/logger': 3.7.0 '@docusaurus/types': 3.7.0(acorn@8.15.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@docusaurus/utils': 3.7.0(acorn@8.15.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - babel-loader: 9.2.1(@babel/core@7.27.1)(webpack@5.99.8) + babel-loader: 9.2.1(@babel/core@7.28.0)(webpack@5.99.8) clean-css: 5.3.3 copy-webpack-plugin: 11.0.0(webpack@5.99.8) css-loader: 6.11.0(webpack@5.99.8) @@ -14733,54 +14761,60 @@ snapshots: - uglify-js - webpack-cli - '@effect/cli@0.66.1(@effect/platform@0.87.1(effect@3.16.10))(@effect/printer-ansi@0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10))(@effect/printer@0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10))(effect@3.16.10)': + '@effect/cli@0.66.12(@effect/platform@0.87.12(effect@3.16.12))(@effect/printer-ansi@0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12))(@effect/printer@0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12))(effect@3.16.12)': dependencies: - '@effect/platform': 0.87.1(effect@3.16.10) - '@effect/printer': 0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10) - '@effect/printer-ansi': 0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10) - effect: 3.16.10 + '@effect/platform': 0.87.12(effect@3.16.12) + '@effect/printer': 0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12) + '@effect/printer-ansi': 0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12) + effect: 3.16.12 ini: 4.1.3 toml: 3.0.0 yaml: 2.7.0 - '@effect/cluster@0.37.2(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/workflow@0.1.2(effect@3.16.10))(effect@3.16.10)': + '@effect/cluster@0.37.2(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/workflow@0.1.2(effect@3.16.12))(effect@3.16.12)': + dependencies: + '@effect/platform': 0.87.12(effect@3.16.12) + '@effect/rpc': 0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) + '@effect/sql': 0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) + '@effect/workflow': 0.1.2(effect@3.16.12) + effect: 3.16.12 + + '@effect/experimental@0.51.1(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12)': dependencies: - '@effect/platform': 0.87.1(effect@3.16.10) - '@effect/rpc': 0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) - '@effect/sql': 0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) - '@effect/workflow': 0.1.2(effect@3.16.10) - effect: 3.16.10 + '@effect/platform': 0.87.12(effect@3.16.12) + effect: 3.16.12 + uuid: 11.1.0 - '@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10)': + '@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12)': dependencies: - '@effect/platform': 0.87.1(effect@3.16.10) - effect: 3.16.10 + '@effect/platform': 0.87.12(effect@3.16.12) + effect: 3.16.12 uuid: 11.1.0 - '@effect/language-service@0.23.3': {} + '@effect/language-service@0.24.2': {} - '@effect/platform-node-shared@0.42.3(@effect/cluster@0.37.2(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/workflow@0.1.2(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(bufferutil@4.0.9)(effect@3.16.10)(utf-8-validate@5.0.10)': + '@effect/platform-node-shared@0.42.17(@effect/cluster@0.37.2(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/workflow@0.1.2(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(bufferutil@4.0.9)(effect@3.16.12)(utf-8-validate@5.0.10)': dependencies: - '@effect/cluster': 0.37.2(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/workflow@0.1.2(effect@3.16.10))(effect@3.16.10) - '@effect/platform': 0.87.1(effect@3.16.10) - '@effect/rpc': 0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) - '@effect/sql': 0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) + '@effect/cluster': 0.37.2(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/workflow@0.1.2(effect@3.16.12))(effect@3.16.12) + '@effect/platform': 0.87.12(effect@3.16.12) + '@effect/rpc': 0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) + '@effect/sql': 0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) '@parcel/watcher': 2.5.1 - effect: 3.16.10 + effect: 3.16.12 multipasta: 0.2.5 ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/platform-node@0.88.3(@effect/cluster@0.37.2(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/workflow@0.1.2(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(bufferutil@4.0.9)(effect@3.16.10)(utf-8-validate@5.0.10)': + '@effect/platform-node@0.89.5(@effect/cluster@0.37.2(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/workflow@0.1.2(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(bufferutil@4.0.9)(effect@3.16.12)(utf-8-validate@5.0.10)': dependencies: - '@effect/cluster': 0.37.2(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/workflow@0.1.2(effect@3.16.10))(effect@3.16.10) - '@effect/platform': 0.87.1(effect@3.16.10) - '@effect/platform-node-shared': 0.42.3(@effect/cluster@0.37.2(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/workflow@0.1.2(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(bufferutil@4.0.9)(effect@3.16.10)(utf-8-validate@5.0.10) - '@effect/rpc': 0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) - '@effect/sql': 0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) - effect: 3.16.10 + '@effect/cluster': 0.37.2(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/workflow@0.1.2(effect@3.16.12))(effect@3.16.12) + '@effect/platform': 0.87.12(effect@3.16.12) + '@effect/platform-node-shared': 0.42.17(@effect/cluster@0.37.2(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/workflow@0.1.2(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(bufferutil@4.0.9)(effect@3.16.12)(utf-8-validate@5.0.10) + '@effect/rpc': 0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) + '@effect/sql': 0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) + effect: 3.16.12 mime: 3.0.0 undici: 7.10.0 ws: 8.18.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -14788,58 +14822,58 @@ snapshots: - bufferutil - utf-8-validate - '@effect/platform@0.87.1(effect@3.16.10)': + '@effect/platform@0.87.12(effect@3.16.12)': dependencies: - effect: 3.16.10 - find-my-way-ts: 0.1.5 + effect: 3.16.12 + find-my-way-ts: 0.1.6 msgpackr: 1.11.4 multipasta: 0.2.5 - '@effect/printer-ansi@0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10)': + '@effect/printer-ansi@0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12)': dependencies: - '@effect/printer': 0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10) - '@effect/typeclass': 0.31.10(effect@3.16.10) - effect: 3.16.10 + '@effect/printer': 0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12) + '@effect/typeclass': 0.31.10(effect@3.16.12) + effect: 3.16.12 - '@effect/printer@0.40.10(@effect/typeclass@0.31.10(effect@3.16.10))(effect@3.16.10)': + '@effect/printer@0.40.10(@effect/typeclass@0.31.10(effect@3.16.12))(effect@3.16.12)': dependencies: - '@effect/typeclass': 0.31.10(effect@3.16.10) - effect: 3.16.10 + '@effect/typeclass': 0.31.10(effect@3.16.12) + effect: 3.16.12 - '@effect/rpc@0.61.4(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10)': + '@effect/rpc@0.61.4(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12)': dependencies: - '@effect/platform': 0.87.1(effect@3.16.10) - effect: 3.16.10 + '@effect/platform': 0.87.12(effect@3.16.12) + effect: 3.16.12 - '@effect/sql-sqlite-node@0.41.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(effect@3.16.10)': + '@effect/sql-sqlite-node@0.41.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(effect@3.16.12)': dependencies: - '@effect/experimental': 0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) - '@effect/platform': 0.87.1(effect@3.16.10) - '@effect/sql': 0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) + '@effect/experimental': 0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) + '@effect/platform': 0.87.12(effect@3.16.12) + '@effect/sql': 0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) '@opentelemetry/semantic-conventions': 1.34.0 better-sqlite3: 11.10.0 - effect: 3.16.10 + effect: 3.16.12 - '@effect/sql@0.40.1(@effect/experimental@0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10))(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10)': + '@effect/sql@0.40.13(@effect/experimental@0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12))(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12)': dependencies: - '@effect/experimental': 0.51.1(@effect/platform@0.87.1(effect@3.16.10))(effect@3.16.10) - '@effect/platform': 0.87.1(effect@3.16.10) + '@effect/experimental': 0.51.13(@effect/platform@0.87.12(effect@3.16.12))(effect@3.16.12) + '@effect/platform': 0.87.12(effect@3.16.12) '@opentelemetry/semantic-conventions': 1.34.0 - effect: 3.16.10 + effect: 3.16.12 uuid: 11.1.0 - '@effect/typeclass@0.31.10(effect@3.16.10)': + '@effect/typeclass@0.31.10(effect@3.16.12)': dependencies: - effect: 3.16.10 + effect: 3.16.12 - '@effect/vitest@0.23.10(effect@3.16.10)(vitest@3.1.3(@types/debug@4.1.12)(@types/node@24.0.8)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': + '@effect/vitest@0.23.12(effect@3.16.12)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.13)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': dependencies: - effect: 3.16.10 - vitest: 3.1.3(@types/debug@4.1.12)(@types/node@24.0.8)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + effect: 3.16.12 + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.0.13)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) - '@effect/workflow@0.1.2(effect@3.16.10)': + '@effect/workflow@0.1.2(effect@3.16.12)': dependencies: - effect: 3.16.10 + effect: 3.16.12 '@emnapi/runtime@1.4.3': dependencies: @@ -15377,8 +15411,8 @@ snapshots: '@graphprotocol/grc-20@0.21.6(bufferutil@4.0.9)(graphql@16.11.0)(ox@0.6.7(typescript@5.8.3)(zod@3.25.51))(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.25.51)': dependencies: '@bufbuild/protobuf': 1.10.1 - '@changesets/cli': 2.29.3 - effect: 3.16.10 + '@changesets/cli': 2.29.5 + effect: 3.16.12 ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) fflate: 0.8.2 fractional-indexing-jittered: 1.0.0 @@ -15401,23 +15435,23 @@ snapshots: graphql: 16.11.0 tslib: 2.6.2 - '@graphql-codegen/cli@5.0.7(@babel/core@7.27.7)(@parcel/watcher@2.5.1)(@types/node@24.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(enquirer@2.4.1)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)(typescript@5.8.3)(utf-8-validate@5.0.10)': + '@graphql-codegen/cli@5.0.7(@babel/core@7.28.0)(@parcel/watcher@2.5.1)(@types/node@24.0.13)(bufferutil@4.0.9)(encoding@0.1.13)(enquirer@2.4.1)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)(typescript@5.8.3)(utf-8-validate@5.0.10)': dependencies: '@babel/generator': 7.27.1 '@babel/template': 7.27.1 '@babel/types': 7.27.1 - '@graphql-codegen/client-preset': 4.8.3(@babel/core@7.27.7)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0) + '@graphql-codegen/client-preset': 4.8.3(@babel/core@7.28.0)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0) '@graphql-codegen/core': 4.0.2(graphql@16.11.0) '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.11.0) '@graphql-tools/apollo-engine-loader': 8.0.13(graphql@16.11.0) '@graphql-tools/code-file-loader': 8.1.13(graphql@16.11.0) '@graphql-tools/git-loader': 8.0.17(graphql@16.11.0) - '@graphql-tools/github-loader': 8.0.13(@types/node@24.0.8)(graphql@16.11.0) + '@graphql-tools/github-loader': 8.0.13(@types/node@24.0.13)(graphql@16.11.0) '@graphql-tools/graphql-file-loader': 8.0.12(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.11(graphql@16.11.0) '@graphql-tools/load': 8.1.0(graphql@16.11.0) - '@graphql-tools/prisma-loader': 8.0.17(@types/node@24.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.11.0)(utf-8-validate@5.0.10) - '@graphql-tools/url-loader': 8.0.24(@types/node@24.0.8)(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) + '@graphql-tools/prisma-loader': 8.0.17(@types/node@24.0.13)(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.11.0)(utf-8-validate@5.0.10) + '@graphql-tools/url-loader': 8.0.24(@types/node@24.0.13)(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@whatwg-node/fetch': 0.10.3 chalk: 4.1.2 @@ -15425,7 +15459,7 @@ snapshots: debounce: 1.2.1 detect-indent: 6.1.0 graphql: 16.11.0 - graphql-config: 5.1.3(@types/node@24.0.8)(bufferutil@4.0.9)(graphql@16.11.0)(typescript@5.8.3)(utf-8-validate@5.0.10) + graphql-config: 5.1.3(@types/node@24.0.13)(bufferutil@4.0.9)(graphql@16.11.0)(typescript@5.8.3)(utf-8-validate@5.0.10) inquirer: 8.2.6 is-glob: 4.0.3 jiti: 1.21.7 @@ -15453,17 +15487,17 @@ snapshots: - typescript - utf-8-validate - '@graphql-codegen/client-preset@4.8.3(@babel/core@7.27.7)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)': + '@graphql-codegen/client-preset@4.8.3(@babel/core@7.28.0)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)': dependencies: '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.1 '@graphql-codegen/add': 5.0.3(graphql@16.11.0) - '@graphql-codegen/gql-tag-operations': 4.0.17(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/gql-tag-operations': 4.0.17(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.11.0) - '@graphql-codegen/typed-document-node': 5.1.2(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) - '@graphql-codegen/typescript': 4.1.6(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) - '@graphql-codegen/typescript-operations': 4.6.1(@babel/core@7.27.7)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/typed-document-node': 5.1.2(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/typescript': 4.1.6(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/typescript-operations': 4.6.1(@babel/core@7.28.0)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) '@graphql-tools/documents': 1.0.1(graphql@16.11.0) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@graphql-typed-document-node/core': 3.2.0(graphql@16.11.0) @@ -15484,10 +15518,10 @@ snapshots: graphql: 16.11.0 tslib: 2.6.2 - '@graphql-codegen/gql-tag-operations@4.0.17(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0)': + '@graphql-codegen/gql-tag-operations@4.0.17(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0)': dependencies: '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.11.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) auto-bind: 4.0.0 graphql: 16.11.0 @@ -15524,10 +15558,10 @@ snapshots: graphql: 16.11.0 tslib: 2.6.2 - '@graphql-codegen/typed-document-node@5.1.2(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0)': + '@graphql-codegen/typed-document-node@5.1.2(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0)': dependencies: '@graphql-codegen/plugin-helpers': 5.1.1(graphql@16.11.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) auto-bind: 4.0.0 change-case-all: 1.0.15 graphql: 16.11.0 @@ -15537,11 +15571,11 @@ snapshots: - encoding - supports-color - '@graphql-codegen/typescript-operations@4.6.1(@babel/core@7.27.7)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)': + '@graphql-codegen/typescript-operations@4.6.1(@babel/core@7.28.0)(encoding@0.1.13)(graphql-sock@1.0.1(graphql@16.11.0))(graphql@16.11.0)': dependencies: '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.11.0) - '@graphql-codegen/typescript': 4.1.6(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/typescript': 4.1.6(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) auto-bind: 4.0.0 graphql: 16.11.0 tslib: 2.6.2 @@ -15552,11 +15586,11 @@ snapshots: - encoding - supports-color - '@graphql-codegen/typescript@4.1.6(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0)': + '@graphql-codegen/typescript@4.1.6(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0)': dependencies: '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.11.0) '@graphql-codegen/schema-ast': 4.1.0(graphql@16.11.0) - '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-codegen/visitor-plugin-common': 5.8.0(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) auto-bind: 4.0.0 graphql: 16.11.0 tslib: 2.6.2 @@ -15565,11 +15599,11 @@ snapshots: - encoding - supports-color - '@graphql-codegen/visitor-plugin-common@5.8.0(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0)': + '@graphql-codegen/visitor-plugin-common@5.8.0(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0)': dependencies: '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.11.0) '@graphql-tools/optimize': 2.0.0(graphql@16.11.0) - '@graphql-tools/relay-operation-optimizer': 7.0.12(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + '@graphql-tools/relay-operation-optimizer': 7.0.12(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) '@graphql-tools/utils': 10.7.2(graphql@16.11.0) auto-bind: 4.0.0 change-case-all: 1.0.15 @@ -15647,7 +15681,7 @@ snapshots: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@1.2.6(@types/node@24.0.8)(graphql@16.11.0)': + '@graphql-tools/executor-http@1.2.6(@types/node@24.0.13)(graphql@16.11.0)': dependencies: '@graphql-tools/executor-common': 0.0.1(graphql@16.11.0) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) @@ -15656,7 +15690,7 @@ snapshots: '@whatwg-node/fetch': 0.10.3 extract-files: 11.0.0 graphql: 16.11.0 - meros: 1.3.0(@types/node@24.0.8) + meros: 1.3.0(@types/node@24.0.13) tslib: 2.8.1 value-or-promise: 1.0.12 transitivePeerDependencies: @@ -15696,9 +15730,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/github-loader@8.0.13(@types/node@24.0.8)(graphql@16.11.0)': + '@graphql-tools/github-loader@8.0.13(@types/node@24.0.13)(graphql@16.11.0)': dependencies: - '@graphql-tools/executor-http': 1.2.6(@types/node@24.0.8)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.2.6(@types/node@24.0.13)(graphql@16.11.0) '@graphql-tools/graphql-tag-pluck': 8.3.12(graphql@16.11.0) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@whatwg-node/fetch': 0.10.3 @@ -15721,9 +15755,9 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.3.12(graphql@16.11.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 '@babel/parser': 7.27.1 - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.0) '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 '@graphql-tools/utils': 10.8.6(graphql@16.11.0) @@ -15766,9 +15800,9 @@ snapshots: graphql: 16.11.0 tslib: 2.8.1 - '@graphql-tools/prisma-loader@8.0.17(@types/node@24.0.8)(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.11.0)(utf-8-validate@5.0.10)': + '@graphql-tools/prisma-loader@8.0.17(@types/node@24.0.13)(bufferutil@4.0.9)(encoding@0.1.13)(graphql@16.11.0)(utf-8-validate@5.0.10)': dependencies: - '@graphql-tools/url-loader': 8.0.24(@types/node@24.0.8)(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) + '@graphql-tools/url-loader': 8.0.24(@types/node@24.0.13)(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@types/js-yaml': 4.0.9 '@whatwg-node/fetch': 0.10.3 @@ -15792,9 +15826,9 @@ snapshots: - supports-color - utf-8-validate - '@graphql-tools/relay-operation-optimizer@7.0.12(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0)': + '@graphql-tools/relay-operation-optimizer@7.0.12(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0)': dependencies: - '@ardatan/relay-compiler': 12.0.1(@babel/core@7.27.7)(encoding@0.1.13)(graphql@16.11.0) + '@ardatan/relay-compiler': 12.0.1(@babel/core@7.28.0)(encoding@0.1.13)(graphql@16.11.0) '@graphql-tools/utils': 10.7.2(graphql@16.11.0) graphql: 16.11.0 tslib: 2.8.1 @@ -15810,10 +15844,10 @@ snapshots: graphql: 16.11.0 tslib: 2.8.1 - '@graphql-tools/url-loader@8.0.24(@types/node@24.0.8)(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10)': + '@graphql-tools/url-loader@8.0.24(@types/node@24.0.13)(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10)': dependencies: '@graphql-tools/executor-graphql-ws': 1.3.7(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) - '@graphql-tools/executor-http': 1.2.6(@types/node@24.0.8)(graphql@16.11.0) + '@graphql-tools/executor-http': 1.2.6(@types/node@24.0.13)(graphql@16.11.0) '@graphql-tools/executor-legacy-ws': 1.1.10(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) '@graphql-tools/wrap': 10.0.29(graphql@16.11.0) @@ -16028,6 +16062,11 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.12': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -16050,6 +16089,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.29': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jsdevtools/ez-spawn@3.0.4': dependencies: call-me-maybe: 1.0.2 @@ -16071,14 +16115,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -17507,54 +17551,54 @@ snapshots: '@standard-schema/spec@1.0.0': {} - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.27.1)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.27.1)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.27.1)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.27.1)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.27.1)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.27.1)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.27.1)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.27.1)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 - '@svgr/babel-preset@8.1.0(@babel/core@7.27.1)': + '@svgr/babel-preset@8.1.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.27.1 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.27.1) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.27.1) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.27.1) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.27.1) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.27.1) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.27.1) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.27.1) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.28.0) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.28.0) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.28.0) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.28.0) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.28.0) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.28.0) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.28.0) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.28.0) '@svgr/core@8.1.0(typescript@5.8.3)': dependencies: - '@babel/core': 7.27.1 - '@svgr/babel-preset': 8.1.0(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.28.0) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.8.3) snake-case: 3.0.4 @@ -17564,13 +17608,13 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.27.7 entities: 4.5.0 '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.8.3))': dependencies: - '@babel/core': 7.27.1 - '@svgr/babel-preset': 8.1.0(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.28.0) '@svgr/core': 8.1.0(typescript@5.8.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -17588,11 +17632,11 @@ snapshots: '@svgr/webpack@8.1.0(typescript@5.8.3)': dependencies: - '@babel/core': 7.27.1 - '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.27.1) - '@babel/preset-env': 7.27.2(@babel/core@7.27.1) - '@babel/preset-react': 7.27.1(@babel/core@7.27.1) - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.28.0) + '@babel/preset-env': 7.27.2(@babel/core@7.28.0) + '@babel/preset-react': 7.27.1(@babel/core@7.28.0) + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) '@svgr/core': 8.1.0(typescript@5.8.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3))(typescript@5.8.3) @@ -17860,12 +17904,12 @@ snapshots: tailwindcss: 4.1.10 vite: 6.3.5(@types/node@22.15.15)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) - '@tailwindcss/vite@4.1.11(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': + '@tailwindcss/vite@4.1.11(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': dependencies: '@tailwindcss/node': 4.1.11 '@tailwindcss/oxide': 4.1.11 tailwindcss: 4.1.11 - vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) '@tailwindcss/vite@4.1.5(vite@6.3.5(@types/node@22.15.15)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': dependencies: @@ -17878,6 +17922,10 @@ snapshots: dependencies: '@tanstack/store': 0.7.1 + '@tanstack/form-core@1.14.0': + dependencies: + '@tanstack/store': 0.7.2 + '@tanstack/history@1.115.0': {} '@tanstack/history@1.121.34': {} @@ -17886,6 +17934,8 @@ snapshots: '@tanstack/query-core@5.81.5': {} + '@tanstack/query-core@5.83.0': {} + '@tanstack/query-devtools@5.81.2': {} '@tanstack/react-form@1.12.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': @@ -17898,12 +17948,28 @@ snapshots: transitivePeerDependencies: - react-dom + '@tanstack/react-form@1.14.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@tanstack/form-core': 1.14.0 + '@tanstack/react-store': 0.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + decode-formdata: 0.9.0 + devalue: 5.1.1 + react: 19.1.0 + transitivePeerDependencies: + - react-dom + '@tanstack/react-query-devtools@5.81.5(@tanstack/react-query@5.81.5(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/query-devtools': 5.81.2 '@tanstack/react-query': 5.81.5(react@19.1.0) react: 19.1.0 + '@tanstack/react-query-devtools@5.83.0(@tanstack/react-query@5.83.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@tanstack/query-devtools': 5.81.2 + '@tanstack/react-query': 5.83.0(react@19.1.0) + react: 19.1.0 + '@tanstack/react-query@5.75.5(react@19.1.0)': dependencies: '@tanstack/query-core': 5.75.5 @@ -17914,10 +17980,15 @@ snapshots: '@tanstack/query-core': 5.81.5 react: 19.1.0 - '@tanstack/react-router-devtools@1.122.0(@tanstack/react-router@1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.123.2)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3)': + '@tanstack/react-query@5.83.0(react@19.1.0)': + dependencies: + '@tanstack/query-core': 5.83.0 + react: 19.1.0 + + '@tanstack/react-router-devtools@1.122.0(@tanstack/react-router@1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3)': dependencies: '@tanstack/react-router': 1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-devtools-core': 1.122.0(@tanstack/router-core@1.123.2)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3) + '@tanstack/router-devtools-core': 1.122.0(@tanstack/router-core@1.127.0)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -17926,10 +17997,22 @@ snapshots: - solid-js - tiny-invariant - '@tanstack/react-router-devtools@1.123.2(@tanstack/react-router@1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.123.2)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3)': + '@tanstack/react-router-devtools@1.123.2(@tanstack/react-router@1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3)': dependencies: '@tanstack/react-router': 1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-devtools-core': 1.123.2(@tanstack/router-core@1.123.2)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3) + '@tanstack/router-devtools-core': 1.123.2(@tanstack/router-core@1.127.0)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@tanstack/router-core' + - csstype + - solid-js + - tiny-invariant + + '@tanstack/react-router-devtools@1.127.1(@tanstack/react-router@1.127.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@tanstack/router-core@1.127.0)(csstype@3.1.3)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(solid-js@1.9.5)(tiny-invariant@1.3.3)': + dependencies: + '@tanstack/react-router': 1.127.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-devtools-core': 1.127.0(@tanstack/router-core@1.127.0)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -17961,6 +18044,18 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + '@tanstack/react-router@1.127.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@tanstack/history': 1.121.34 + '@tanstack/react-store': 0.7.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@tanstack/router-core': 1.127.0 + isbot: 5.1.28 + jsesc: 3.1.0 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + '@tanstack/react-store@0.7.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/store': 0.7.0 @@ -17975,6 +18070,13 @@ snapshots: react-dom: 19.1.0(react@19.1.0) use-sync-external-store: 1.5.0(react@19.1.0) + '@tanstack/react-store@0.7.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@tanstack/store': 0.7.2 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + use-sync-external-store: 1.5.0(react@19.1.0) + '@tanstack/react-virtual@3.13.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/virtual-core': 3.13.6 @@ -18002,9 +18104,20 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/router-devtools-core@1.122.0(@tanstack/router-core@1.123.2)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3)': + '@tanstack/router-core@1.127.0': dependencies: - '@tanstack/router-core': 1.123.2 + '@tanstack/history': 1.121.34 + '@tanstack/store': 0.7.1 + cookie-es: 1.2.2 + jsesc: 3.1.0 + seroval: 1.3.2 + seroval-plugins: 1.3.2(seroval@1.3.2) + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + + '@tanstack/router-devtools-core@1.122.0(@tanstack/router-core@1.127.0)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3)': + dependencies: + '@tanstack/router-core': 1.127.0 clsx: 2.1.1 goober: 2.1.16(csstype@3.1.3) solid-js: 1.9.5 @@ -18012,9 +18125,19 @@ snapshots: optionalDependencies: csstype: 3.1.3 - '@tanstack/router-devtools-core@1.123.2(@tanstack/router-core@1.123.2)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3)': + '@tanstack/router-devtools-core@1.123.2(@tanstack/router-core@1.127.0)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3)': dependencies: - '@tanstack/router-core': 1.123.2 + '@tanstack/router-core': 1.127.0 + clsx: 2.1.1 + goober: 2.1.16(csstype@3.1.3) + solid-js: 1.9.5 + tiny-invariant: 1.3.3 + optionalDependencies: + csstype: 3.1.3 + + '@tanstack/router-devtools-core@1.127.0(@tanstack/router-core@1.127.0)(csstype@3.1.3)(solid-js@1.9.5)(tiny-invariant@1.3.3)': + dependencies: + '@tanstack/router-core': 1.127.0 clsx: 2.1.1 goober: 2.1.16(csstype@3.1.3) solid-js: 1.9.5 @@ -18031,9 +18154,9 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@tanstack/router-generator@1.123.2': + '@tanstack/router-generator@1.127.0': dependencies: - '@tanstack/router-core': 1.123.2 + '@tanstack/router-core': 1.127.0 '@tanstack/router-utils': 1.121.21 '@tanstack/virtual-file-routes': 1.121.21 prettier: 3.6.1 @@ -18046,9 +18169,9 @@ snapshots: '@tanstack/router-plugin@1.120.2(@tanstack/react-router@1.120.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@22.15.15)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))(webpack@5.99.8)': dependencies: - '@babel/core': 7.27.1 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.27.1) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.28.0) '@babel/template': 7.27.1 '@babel/traverse': 7.27.1 '@babel/types': 7.27.1 @@ -18070,16 +18193,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.123.2(@tanstack/react-router@1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))(webpack@5.99.8(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.2))': + '@tanstack/router-plugin@1.127.1(@tanstack/react-router@1.127.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))(webpack@5.99.8(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.2))': dependencies: - '@babel/core': 7.27.7 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.7) + '@babel/core': 7.28.0 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) '@babel/template': 7.27.2 - '@babel/traverse': 7.27.7 - '@babel/types': 7.27.7 - '@tanstack/router-core': 1.123.2 - '@tanstack/router-generator': 1.123.2 + '@babel/traverse': 7.28.0 + '@babel/types': 7.28.0 + '@tanstack/router-core': 1.127.0 + '@tanstack/router-generator': 1.127.0 '@tanstack/router-utils': 1.121.21 '@tanstack/virtual-file-routes': 1.121.21 babel-dead-code-elimination: 1.0.10 @@ -18087,25 +18210,25 @@ snapshots: unplugin: 2.1.2 zod: 3.25.51 optionalDependencies: - '@tanstack/react-router': 1.123.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + '@tanstack/react-router': 1.127.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + vite: 6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) webpack: 5.99.8(@swc/core@1.11.24(@swc/helpers@0.5.17))(esbuild@0.25.2) transitivePeerDependencies: - supports-color '@tanstack/router-utils@1.115.0': dependencies: - '@babel/generator': 7.27.1 - '@babel/parser': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.7 ansis: 3.14.0 diff: 7.0.0 '@tanstack/router-utils@1.121.21': dependencies: - '@babel/core': 7.27.7 - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.7 - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.7) + '@babel/core': 7.28.0 + '@babel/generator': 7.28.0 + '@babel/parser': 7.28.0 + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) ansis: 4.1.0 diff: 8.0.2 transitivePeerDependencies: @@ -18115,6 +18238,8 @@ snapshots: '@tanstack/store@0.7.1': {} + '@tanstack/store@0.7.2': {} + '@tanstack/virtual-core@3.13.6': {} '@tanstack/virtual-core@3.13.9': {} @@ -18160,24 +18285,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.27.1 - '@babel/types': 7.27.1 + '@babel/parser': 7.27.7 + '@babel/types': 7.27.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.27.7 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.1 - '@babel/types': 7.27.1 + '@babel/parser': 7.27.7 + '@babel/types': 7.27.7 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.27.1 + '@babel/types': 7.27.7 '@types/body-parser@1.19.5': dependencies: @@ -18188,6 +18313,10 @@ snapshots: dependencies: '@types/node': 22.15.29 + '@types/chai@5.2.2': + dependencies: + '@types/deep-eql': 4.0.2 + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.1 @@ -18205,6 +18334,8 @@ snapshots: dependencies: '@types/ms': 0.7.34 + '@types/deep-eql@4.0.2': {} + '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 @@ -18312,7 +18443,7 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@24.0.8': + '@types/node@24.0.13': dependencies: undici-types: 7.8.0 @@ -18427,76 +18558,78 @@ snapshots: '@vitejs/plugin-react@4.4.1(vite@6.3.5(@types/node@22.15.15)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': dependencies: - '@babel/core': 7.27.1 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.27.1) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.28.0) '@types/babel__core': 7.20.5 react-refresh: 0.17.0 vite: 6.3.5(@types/node@22.15.15)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.4.1(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': + '@vitejs/plugin-react@4.4.1(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': dependencies: - '@babel/core': 7.27.1 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.27.1) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.28.0) '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': + '@vitejs/plugin-react@4.6.0(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': dependencies: - '@babel/core': 7.27.7 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.7) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.7) + '@babel/core': 7.28.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.0) '@rolldown/pluginutils': 1.0.0-beta.19 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/expect@3.1.3': + '@vitest/expect@3.2.4': dependencies: - '@vitest/spy': 3.1.3 - '@vitest/utils': 3.1.3 + '@types/chai': 5.2.2 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.1.3(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': + '@vitest/mocker@3.2.4(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0))': dependencies: - '@vitest/spy': 3.1.3 + '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) - '@vitest/pretty-format@3.1.3': + '@vitest/pretty-format@3.2.4': dependencies: tinyrainbow: 2.0.0 - '@vitest/runner@3.1.3': + '@vitest/runner@3.2.4': dependencies: - '@vitest/utils': 3.1.3 + '@vitest/utils': 3.2.4 pathe: 2.0.3 + strip-literal: 3.0.0 - '@vitest/snapshot@3.1.3': + '@vitest/snapshot@3.2.4': dependencies: - '@vitest/pretty-format': 3.1.3 + '@vitest/pretty-format': 3.2.4 magic-string: 0.30.17 pathe: 2.0.3 - '@vitest/spy@3.1.3': + '@vitest/spy@3.2.4': dependencies: - tinyspy: 3.0.2 + tinyspy: 4.0.3 - '@vitest/utils@3.1.3': + '@vitest/utils@3.2.4': dependencies: - '@vitest/pretty-format': 3.1.3 - loupe: 3.1.3 + '@vitest/pretty-format': 3.2.4 + loupe: 3.1.4 tinyrainbow: 2.0.0 '@wallet-standard/app@1.1.0': @@ -19379,23 +19512,23 @@ snapshots: babel-dead-code-elimination@1.0.10: dependencies: - '@babel/core': 7.27.1 - '@babel/parser': 7.27.1 - '@babel/traverse': 7.27.1 - '@babel/types': 7.27.1 + '@babel/core': 7.28.0 + '@babel/parser': 7.27.7 + '@babel/traverse': 7.27.7 + '@babel/types': 7.27.7 transitivePeerDependencies: - supports-color - babel-loader@9.2.1(@babel/core@7.27.1)(webpack@5.99.8): + babel-loader@9.2.1(@babel/core@7.28.0)(webpack@5.99.8): dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 find-cache-dir: 4.0.0 schema-utils: 4.3.2 webpack: 5.99.8 - babel-plugin-annotate-pure-calls@0.5.0(@babel/core@7.27.1): + babel-plugin-annotate-pure-calls@0.5.0(@babel/core@7.28.0): dependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -19407,61 +19540,61 @@ snapshots: cosmiconfig: 7.1.0 resolve: 1.22.10 - babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.1): + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.28.0): dependencies: - '@babel/compat-data': 7.27.1 - '@babel/core': 7.27.1 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.1) + '@babel/compat-data': 7.27.2 + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.1): + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.28.0): dependencies: - '@babel/core': 7.27.1 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) core-js-compat: 3.42.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.1): + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.28.0): dependencies: - '@babel/core': 7.27.1 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.1) + '@babel/core': 7.28.0 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.28.0) transitivePeerDependencies: - supports-color babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} - babel-preset-fbjs@3.4.0(@babel/core@7.27.7): - dependencies: - '@babel/core': 7.27.7 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.27.7) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.27.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.7) - '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.27.7) - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.7) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.27.7) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.27.7) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.27.7) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.27.7) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.27.7) + babel-preset-fbjs@3.4.0(@babel/core@7.28.0): + dependencies: + '@babel/core': 7.28.0 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.28.0) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.28.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0) + '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.28.0) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.28.0) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.28.0) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.28.0) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.28.0) + '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.28.0) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: - supports-color @@ -19786,7 +19919,7 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 caniuse-lite: 1.0.30001678 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -20326,7 +20459,7 @@ snapshots: cssnano-preset-advanced@6.1.2(postcss@8.5.3): dependencies: autoprefixer: 10.4.21(postcss@8.5.3) - browserslist: 4.24.2 + browserslist: 4.24.5 cssnano-preset-default: 6.1.2(postcss@8.5.3) postcss: 8.5.3 postcss-discard-unused: 6.0.5(postcss@8.5.3) @@ -20336,7 +20469,7 @@ snapshots: cssnano-preset-default@6.1.2(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 css-declaration-sorter: 7.2.0(postcss@8.5.3) cssnano-utils: 4.0.2(postcss@8.5.3) postcss: 8.5.3 @@ -20539,7 +20672,7 @@ snapshots: detect-port@1.6.1: dependencies: address: 1.2.2 - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -20650,7 +20783,7 @@ snapshots: ee-first@1.1.1: {} - effect@3.16.10: + effect@3.16.12: dependencies: '@standard-schema/spec': 1.0.0 fast-check: 3.23.2 @@ -20755,7 +20888,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.25.2): dependencies: - debug: 4.4.0 + debug: 4.4.1 esbuild: 0.25.2 transitivePeerDependencies: - supports-color @@ -21243,7 +21376,7 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - find-my-way-ts@0.1.5: {} + find-my-way-ts@0.1.6: {} find-root@1.1.0: {} @@ -21438,15 +21571,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.0.2: - dependencies: - foreground-child: 3.3.0 - jackspeak: 4.0.2 - minimatch: 10.0.1 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.0 - glob@11.0.3: dependencies: foreground-child: 3.3.1 @@ -21527,13 +21651,13 @@ snapshots: graceful-fs@4.2.11: {} - graphql-config@5.1.3(@types/node@24.0.8)(bufferutil@4.0.9)(graphql@16.11.0)(typescript@5.8.3)(utf-8-validate@5.0.10): + graphql-config@5.1.3(@types/node@24.0.13)(bufferutil@4.0.9)(graphql@16.11.0)(typescript@5.8.3)(utf-8-validate@5.0.10): dependencies: '@graphql-tools/graphql-file-loader': 8.0.12(graphql@16.11.0) '@graphql-tools/json-file-loader': 8.0.11(graphql@16.11.0) '@graphql-tools/load': 8.1.0(graphql@16.11.0) '@graphql-tools/merge': 9.0.24(graphql@16.11.0) - '@graphql-tools/url-loader': 8.0.24(@types/node@24.0.8)(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) + '@graphql-tools/url-loader': 8.0.24(@types/node@24.0.13)(bufferutil@4.0.9)(graphql@16.11.0)(utf-8-validate@5.0.10) '@graphql-tools/utils': 10.8.6(graphql@16.11.0) cosmiconfig: 8.3.6(typescript@5.8.3) graphql: 16.11.0 @@ -22204,10 +22328,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.0.2: - dependencies: - '@isaacs/cliui': 8.0.2 - jackspeak@4.1.1: dependencies: '@isaacs/cliui': 8.0.2 @@ -22281,6 +22401,8 @@ snapshots: js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -22593,6 +22715,8 @@ snapshots: loupe@3.1.3: {} + loupe@3.1.4: {} + lower-case-first@2.0.2: dependencies: tslib: 2.8.1 @@ -22860,9 +22984,9 @@ snapshots: merge2@1.4.1: {} - meros@1.3.0(@types/node@24.0.8): + meros@1.3.0(@types/node@24.0.13): optionalDependencies: - '@types/node': 24.0.8 + '@types/node': 24.0.13 methods@1.1.2: {} @@ -23144,7 +23268,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.0 + debug: 4.4.1 decode-named-character-reference: 1.1.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -23219,10 +23343,6 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} - minimatch@10.0.1: - dependencies: - brace-expansion: 2.0.1 - minimatch@10.0.3: dependencies: '@isaacs/brace-expansion': 5.0.0 @@ -23329,7 +23449,7 @@ snapshots: neo-async@2.6.2: {} - next@15.3.2(@babel/core@7.27.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.3.2(@babel/core@7.28.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.3.2 '@swc/counter': 0.1.3 @@ -23339,7 +23459,7 @@ snapshots: postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - styled-jsx: 5.1.6(@babel/core@7.27.1)(react@19.1.0) + styled-jsx: 5.1.6(@babel/core@7.28.0)(react@19.1.0) optionalDependencies: '@next/swc-darwin-arm64': 15.3.2 '@next/swc-darwin-x64': 15.3.2 @@ -23909,7 +24029,7 @@ snapshots: dependencies: find-up: 6.3.0 - pkg-pr-new@0.0.43: + pkg-pr-new@0.0.54: dependencies: '@jsdevtools/ez-spawn': 3.0.4 '@octokit/action': 6.1.0 @@ -23972,7 +24092,7 @@ snapshots: postcss-colormin@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.3 @@ -23980,7 +24100,7 @@ snapshots: postcss-convert-values@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 postcss: 8.5.3 postcss-value-parser: 4.2.0 @@ -24113,7 +24233,7 @@ snapshots: postcss-merge-rules@6.1.1(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 caniuse-api: 3.0.0 cssnano-utils: 4.0.2(postcss@8.5.3) postcss: 8.5.3 @@ -24133,7 +24253,7 @@ snapshots: postcss-minify-params@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 cssnano-utils: 4.0.2(postcss@8.5.3) postcss: 8.5.3 postcss-value-parser: 4.2.0 @@ -24202,7 +24322,7 @@ snapshots: postcss-normalize-unicode@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 postcss: 8.5.3 postcss-value-parser: 4.2.0 @@ -24319,7 +24439,7 @@ snapshots: postcss-reduce-initial@6.1.0(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 caniuse-api: 3.0.0 postcss: 8.5.3 @@ -24545,7 +24665,7 @@ snapshots: quick-lru: 7.0.0 url-join: 5.0.0 validate-npm-package-name: 5.0.1 - zod: 3.24.2 + zod: 3.25.51 zod-package-json: 1.0.3 query-string@7.1.3: @@ -25181,8 +25301,6 @@ snapshots: semver@6.3.1: {} - semver@7.6.3: {} - semver@7.7.1: {} send@0.19.0: @@ -25250,8 +25368,14 @@ snapshots: dependencies: seroval: 1.2.1 + seroval-plugins@1.3.2(seroval@1.3.2): + dependencies: + seroval: 1.3.2 + seroval@1.2.1: {} + seroval@1.3.2: {} + serve-handler@6.1.6: dependencies: bytes: 3.0.0 @@ -25649,6 +25773,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.0.0: + dependencies: + js-tokens: 9.0.1 + style-to-js@1.1.16: dependencies: style-to-object: 1.0.8 @@ -25671,16 +25799,16 @@ snapshots: stylis: 4.3.2 tslib: 2.6.2 - styled-jsx@5.1.6(@babel/core@7.27.1)(react@19.1.0): + styled-jsx@5.1.6(@babel/core@7.28.0)(react@19.1.0): dependencies: client-only: 0.0.1 react: 19.1.0 optionalDependencies: - '@babel/core': 7.27.1 + '@babel/core': 7.28.0 stylehacks@6.1.1(postcss@8.5.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.5 postcss: 8.5.3 postcss-selector-parser: 6.1.2 @@ -25870,11 +25998,16 @@ snapshots: fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 - tinypool@1.0.2: {} + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.4(picomatch@4.0.2) + picomatch: 4.0.2 + + tinypool@1.1.1: {} tinyrainbow@2.0.0: {} - tinyspy@3.0.2: {} + tinyspy@4.0.3: {} title-case@3.0.3: dependencies: @@ -26411,13 +26544,13 @@ snapshots: - utf-8-validate - zod - vite-node@3.1.3(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0): + vite-node@3.2.4(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0): dependencies: cac: 6.7.14 - debug: 4.4.0 + debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -26468,7 +26601,7 @@ snapshots: tsx: 4.20.3 yaml: 2.7.0 - vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0): + vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0): dependencies: esbuild: 0.25.2 fdir: 6.4.4(picomatch@4.0.2) @@ -26477,7 +26610,7 @@ snapshots: rollup: 4.39.0 tinyglobby: 0.2.13 optionalDependencies: - '@types/node': 24.0.8 + '@types/node': 24.0.13 fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.30.1 @@ -26485,32 +26618,34 @@ snapshots: tsx: 4.20.3 yaml: 2.7.0 - vitest@3.1.3(@types/debug@4.1.12)(@types/node@24.0.8)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.0.13)(jiti@2.4.2)(jsdom@26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0): dependencies: - '@vitest/expect': 3.1.3 - '@vitest/mocker': 3.1.3(vite@6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) - '@vitest/pretty-format': 3.1.3 - '@vitest/runner': 3.1.3 - '@vitest/snapshot': 3.1.3 - '@vitest/spy': 3.1.3 - '@vitest/utils': 3.1.3 + '@types/chai': 5.2.2 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 chai: 5.2.0 - debug: 4.4.0 + debug: 4.4.1 expect-type: 1.2.1 magic-string: 0.30.17 pathe: 2.0.3 + picomatch: 4.0.2 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.13 - tinypool: 1.0.2 + tinyglobby: 0.2.14 + tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 6.3.5(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) - vite-node: 3.1.3(@types/node@24.0.8)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + vite: 6.3.5(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) + vite-node: 3.2.4(@types/node@24.0.13)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.1)(tsx@4.20.3)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.0.8 + '@types/node': 24.0.13 jsdom: 26.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - jiti @@ -26901,7 +27036,7 @@ snapshots: zod-package-json@1.0.3: dependencies: - zod: 3.24.2 + zod: 3.25.51 zod@3.22.4: {} diff --git a/scripts/package.mjs b/scripts/package.mjs index 2b263a65..fe74c046 100644 --- a/scripts/package.mjs +++ b/scripts/package.mjs @@ -35,8 +35,8 @@ const publishPkgJson = { main: pkgJson.main, module: pkgJson.module, types: pkgJson.types, - exports: pkgJson.exports, sideEffects: pkgJson.sideEffects, + exports: pkgJson.exports, peerDependencies: pkgJson.peerDependencies, dependencies: pkgJson.dependencies, ...(pkgJson.bin ? { bin: pkgJson.bin } : {}), diff --git a/tsconfig.base.json b/tsconfig.base.json index 493bc634..47013b38 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -40,7 +40,9 @@ "@graphprotocol/hypergraph": ["./packages/hypergraph/src/index.js"], "@graphprotocol/hypergraph/*": ["./packages/hypergraph/src/*.js"], "@graphprotocol/hypergraph-react": ["./packages/hypergraph-react/src/index.js"], - "@graphprotocol/hypergraph-react/*": ["./packages/hypergraph-react/src/*.js"] + "@graphprotocol/hypergraph-react/*": ["./packages/hypergraph-react/src/*.js"], + "@graphprotocol/typesync": ["./packages/typesync/src/index.js"], + "@graphprotocol/typesync/*": ["./packages/typesync/src/*.js"] } } } diff --git a/tsconfig.build.json b/tsconfig.build.json index 28a8b852..6d0022d3 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -3,6 +3,7 @@ "include": [], "references": [ { "path": "packages/hypergraph/tsconfig.build.json" }, - { "path": "packages/hypergraph-react/tsconfig.build.json" } + { "path": "packages/hypergraph-react/tsconfig.build.json" }, + { "path": "packages/typesync/tsconfig.build.json" } ] } diff --git a/tsconfig.json b/tsconfig.json index 3dd66b51..5ba7f73b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,6 +4,7 @@ "references": [ { "path": "packages/hypergraph" }, { "path": "packages/hypergraph-react" }, + { "path": "packages/typesync" }, { "path": "apps/server" }, { "path": "apps/connect" }, { "path": "apps/events" }, diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 00000000..d194e6db --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + projects: ['./packages/*', './apps/events', './apps/typesync'], + }, +}); diff --git a/vitest.shared.ts b/vitest.shared.ts index 781cc6ec..4a3cc6bb 100644 --- a/vitest.shared.ts +++ b/vitest.shared.ts @@ -11,6 +11,7 @@ const config: ViteUserConfig = { alias: { ...alias('hypergraph'), ...alias('hypergraph-react'), + ...alias('typesync'), }, }, }; diff --git a/vitest.workspace.ts b/vitest.workspace.ts deleted file mode 100644 index d0309888..00000000 --- a/vitest.workspace.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { defineWorkspace } from 'vitest/config'; - -export default defineWorkspace(['./packages/*', './apps/events', './apps/connect', './apps/typesync']);