diff --git a/data/schema.graphql b/data/schema.graphql index 7fa786903b..93212172b8 100644 --- a/data/schema.graphql +++ b/data/schema.graphql @@ -140,6 +140,23 @@ Added in 24.12.0. One of ['read_attribute', 'update_attribute', 'create_compute_ scalar AgentPermissionField @join__type(graph: GRAPHENE) +"""Added in 25.15.0""" +type AgentResource + @join__type(graph: STRAWBERRY) +{ + free: JSON! + used: JSON! + capacity: JSON! +} + +"""Added in 25.15.0""" +type AgentStats + @join__type(graph: STRAWBERRY) +{ + """Added in 25.15.0""" + totalResource: AgentResource! +} + """A schema for normal users.""" type AgentSummary implements Item @join__implements(graph: GRAPHENE, interface: "Item") @@ -295,6 +312,47 @@ type ArtifactRegistry type: ArtifactRegistryType! } +""" +Added in 25.15.0. + +Represents common metadata for an artifact registry. +All artifact registry nodes expose that information regardless of type. +""" +type ArtifactRegistryMeta implements Node + @join__implements(graph: STRAWBERRY, interface: "Node") + @join__type(graph: STRAWBERRY) +{ + """The Globally Unique ID of this object""" + id: ID! + name: String! + registryId: ID! + type: ArtifactRegistryType! + url: String! +} + +"""Added in 25.15.0""" +type ArtifactRegistryMetaConnection + @join__type(graph: STRAWBERRY) +{ + """Pagination data for this connection""" + pageInfo: PageInfo! + + """Contains the nodes in this connection""" + edges: [ArtifactRegistryMetaEdge!]! + count: Int! +} + +"""An edge in a connection.""" +type ArtifactRegistryMetaEdge + @join__type(graph: STRAWBERRY) +{ + """A cursor for use in pagination""" + cursor: String! + + """The item at the end of the edge""" + node: ArtifactRegistryMeta! +} + enum ArtifactRegistryType @join__type(graph: STRAWBERRY) { @@ -302,6 +360,14 @@ enum ArtifactRegistryType RESERVOIR @join__enumValue(graph: STRAWBERRY) } +enum ArtifactRemoteStatus + @join__type(graph: STRAWBERRY) +{ + SCANNED @join__enumValue(graph: STRAWBERRY) + AVAILABLE @join__enumValue(graph: STRAWBERRY) + FAILED @join__enumValue(graph: STRAWBERRY) +} + """Added in 25.14.0""" type ArtifactRevision implements Node @join__implements(graph: STRAWBERRY, interface: "Node") @@ -310,6 +376,9 @@ type ArtifactRevision implements Node """The Globally Unique ID of this object""" id: ID! status: ArtifactStatus! + + """Added in 25.15.0""" + remoteStatus: ArtifactRemoteStatus version: String! readme: String size: ByteSize @@ -346,6 +415,9 @@ input ArtifactRevisionFilter @join__type(graph: STRAWBERRY) { status: ArtifactRevisionStatusFilter = null + + """Added in 25.16.0""" + remoteStatus: ArtifactRevisionRemoteStatusFilter = null version: StringFilter = null artifactId: ID = null size: IntFilter = null @@ -380,6 +452,14 @@ enum ArtifactRevisionOrderField STATUS @join__enumValue(graph: STRAWBERRY) } +"""Added in 25.16.0""" +input ArtifactRevisionRemoteStatusFilter + @join__type(graph: STRAWBERRY) +{ + in: [ArtifactRemoteStatus!] = null + equals: ArtifactRemoteStatus = null +} + """Added in 25.14.0""" input ArtifactRevisionStatusFilter @join__type(graph: STRAWBERRY) @@ -676,7 +756,7 @@ input ClearImageCustomResourceLimitKey @join__type(graph: GRAPHENE) { image_canonical: String! - architecture: String! = "x86_64" + architecture: String! = "aarch64" } """Added in 25.6.0.""" @@ -1401,6 +1481,9 @@ type CreateUser ok: Boolean msg: String user: User + + """Added in 25.15.0.""" + keypair: KeyPair } type CreateUserResourcePolicy @@ -1436,6 +1519,22 @@ input CreateUserResourcePolicyInput max_customized_image_count: Int } +"""Added in 25.16.0. Input for creating VFS storage""" +input CreateVFSStorageInput + @join__type(graph: STRAWBERRY) +{ + name: String! + host: String! + basePath: String! +} + +"""Added in 25.16.0. Payload for creating VFS storage""" +type CreateVFSStoragePayload + @join__type(graph: STRAWBERRY) +{ + vfsStorage: VFSStorage! +} + """ The `DateTime` scalar type represents a DateTime value as specified by @@ -1452,6 +1551,92 @@ type DealiasImage msg: String } +"""Added in 25.15.0""" +input DelegateeTarget + @join__type(graph: STRAWBERRY) +{ + delegateeReservoirId: ID! + targetRegistryId: ID! +} + +""" +Added in 25.15.0. + +Input type for delegated import of artifact revisions from a reservoir registry's remote registry. +Used to specify which artifact revisions should be imported from the remote registry source +into the local reservoir registry storage. +""" +input DelegateImportArtifactsInput + @join__type(graph: STRAWBERRY) +{ + """List of artifact revision IDs of delegatee artifact registry""" + artifactRevisionIds: [ID!]! + + """ID of the reservoir registry to delegate the import request to""" + delegatorReservoirId: ID = null + artifactType: ArtifactType = null + delegateeTarget: DelegateeTarget = null +} + +""" +Added in 25.15.0. + +Response payload for delegated artifact import operation. +Contains the imported artifact revisions and associated background tasks. +The tasks can be monitored to track the progress of the import operation. +""" +type DelegateImportArtifactsPayload + @join__type(graph: STRAWBERRY) +{ + """ + Connection of artifact revisions that were imported from the reservoir registry's remote registry + """ + artifactRevisions: ArtifactRevisionConnection! + + """List of background tasks created for importing the artifact revisions""" + tasks: [ArtifactRevisionImportTask!]! +} + +""" +Added in 25.15.0. + +Input type for delegated scanning of artifacts from a delegatee reservoir registry's remote registry. +""" +input DelegateScanArtifactsInput + @join__type(graph: STRAWBERRY) +{ + """ID of the reservoir registry to delegate the scan request to""" + delegatorReservoirId: ID = null + + """Target delegatee reservoir registry and its remote registry to scan""" + delegateeTarget: DelegateeTarget = null + + """Maximum number of artifacts to scan (max: 500)""" + limit: Int! + + """Filter artifacts by type (e.g., model, image, package)""" + artifactType: ArtifactType = null + + """Search term to filter artifacts by name or description""" + search: String = null +} + +""" +Added in 25.15.0. + +Response payload for delegated artifact scanning operation. +Contains the list of artifacts discovered during the scan of a reservoir registry's remote registry. +These artifacts are now available for import or direct use. +""" +type DelegateScanArtifactsPayload + @join__type(graph: STRAWBERRY) +{ + """ + List of artifacts discovered during the delegated scan from the reservoir registry's remote registry + """ + artifacts: [Artifact!]! +} + """Added in 25.15.0""" input DeleteArtifactsInput @join__type(graph: STRAWBERRY) @@ -1635,6 +1820,20 @@ type DeleteUserResourcePolicy msg: String } +"""Added in 25.16.0. Input for deleting VFS storage""" +input DeleteVFSStorageInput + @join__type(graph: STRAWBERRY) +{ + id: ID! +} + +"""Added in 25.16.0. Payload for deleting VFS storage""" +type DeleteVFSStoragePayload + @join__type(graph: STRAWBERRY) +{ + id: ID! +} + input DeploymentFilter @join__type(graph: STRAWBERRY) { @@ -2429,6 +2628,13 @@ enum join__Graph { STRAWBERRY @join__graph(name: "strawberry", url: "http://host.docker.internal:8091/admin/gql/strawberry") } +""" +The `JSON` scalar type represents JSON values as specified by [ECMA-404](https://ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf). +""" +scalar JSON + @join__type(graph: STRAWBERRY) + @specifiedBy(url: "https://ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf") + """ Allows use of a JSON String for input / output from the GraphQL schema. @@ -3534,7 +3740,7 @@ type Mutation ): RescanImages @join__field(graph: GRAPHENE) preload_image(references: [String]!, target_agents: [String]!): PreloadImage @join__field(graph: GRAPHENE) unload_image(references: [String]!, target_agents: [String]!): UnloadImage @join__field(graph: GRAPHENE) - modify_image(architecture: String = "x86_64", props: ModifyImageInput!, target: String!): ModifyImage @join__field(graph: GRAPHENE) + modify_image(architecture: String = "aarch64", props: ModifyImageInput!, target: String!): ModifyImage @join__field(graph: GRAPHENE) """Added in 25.6.0""" clear_image_custom_resource_limit(key: ClearImageCustomResourceLimitKey!): ClearImageCustomResourceLimitPayload @join__field(graph: GRAPHENE) @@ -3543,7 +3749,7 @@ type Mutation forget_image_by_id(image_id: String!): ForgetImageById @join__field(graph: GRAPHENE) """Deprecated since 25.4.0. Use `forget_image_by_id` instead.""" - forget_image(architecture: String = "x86_64", reference: String!): ForgetImage @join__field(graph: GRAPHENE) @deprecated(reason: "Deprecated since 25.4.0. Use `forget_image_by_id` instead.") + forget_image(architecture: String = "aarch64", reference: String!): ForgetImage @join__field(graph: GRAPHENE) @deprecated(reason: "Deprecated since 25.4.0. Use `forget_image_by_id` instead.") """Added in 25.4.0""" purge_image_by_id( @@ -3555,7 +3761,7 @@ type Mutation """Added in 24.03.1""" untag_image_from_registry(image_id: String!): UntagImageFromRegistry @join__field(graph: GRAPHENE) - alias_image(alias: String!, architecture: String = "x86_64", target: String!): AliasImage @join__field(graph: GRAPHENE) + alias_image(alias: String!, architecture: String = "aarch64", target: String!): AliasImage @join__field(graph: GRAPHENE) dealias_image(alias: String!): DealiasImage @join__field(graph: GRAPHENE) clear_images(registry: String): ClearImages @join__field(graph: GRAPHENE) @@ -3766,6 +3972,37 @@ type Mutation """Added in 25.14.0""" importArtifacts(input: ImportArtifactsInput!): ImportArtifactsPayload! @join__field(graph: STRAWBERRY) + """ + Added in 25.15.0. + + Triggers artifact scanning on a remote reservoir registry. + + This mutation instructs a reservoir-type registry to initiate a scan of artifacts + from its associated remote reservoir registry source. The scan process will discover and + catalog artifacts available in the remote reservoir, making them accessible + through the local reservoir registry. + + Requirements: + - The delegator registry must be of type 'reservoir' + - The delegator reservoir registry must have a valid remote registry configuration + """ + delegateScanArtifacts(input: DelegateScanArtifactsInput!): DelegateScanArtifactsPayload! @join__field(graph: STRAWBERRY) + + """ + Added in 25.15.0. + + Trigger import of artifact revisions from a remote reservoir registry. + + This mutation instructs a reservoir-type registry to import specific artifact revisions + that were previously discovered during a scan from its remote registry. + Note that this operation does not import the artifacts directly into the local registry, but only into the delegator reservoir's storage. + + Requirements: + - The delegator registry must be of type 'reservoir' + - The delegator registry must have a valid remote registry configuration + """ + delegateImportArtifacts(input: DelegateImportArtifactsInput!): DelegateImportArtifactsPayload! @join__field(graph: STRAWBERRY) + """Added in 25.14.0""" updateArtifact(input: UpdateArtifactInput!): UpdateArtifactPayload! @join__field(graph: STRAWBERRY) @@ -3794,11 +4031,28 @@ type Mutation """Added in 25.14.0""" deleteObjectStorage(input: DeleteObjectStorageInput!): DeleteObjectStoragePayload! @join__field(graph: STRAWBERRY) - """Added in 25.14.0""" - registerObjectStorageBucket(input: RegisterObjectStorageBucketInput!): RegisterObjectStorageBucketPayload! @join__field(graph: STRAWBERRY) + """Added in 25.16.0. Create a new VFS storage""" + createVFSStorage(input: CreateVFSStorageInput!): CreateVFSStoragePayload! @join__field(graph: STRAWBERRY) - """Added in 25.14.0""" - unregisterObjectStorageBucket(input: UnregisterObjectStorageBucketInput!): UnregisterObjectStorageBucketPayload! @join__field(graph: STRAWBERRY) + """Added in 25.16.0. Update an existing VFS storage""" + updateVFSStorage(input: UpdateVFSStorageInput!): UpdateVFSStoragePayload! @join__field(graph: STRAWBERRY) + + """Added in 25.16.0. Delete a VFS storage""" + deleteVFSStorage(input: DeleteVFSStorageInput!): DeleteVFSStoragePayload! @join__field(graph: STRAWBERRY) + + """ + Added in 25.15.0. + + Registers a new namespace within a storage. + """ + registerStorageNamespace(input: RegisterStorageNamespaceInput!): RegisterStorageNamespacePayload! @join__field(graph: STRAWBERRY) + + """ + Added in 25.15.0. + + Unregisters an existing namespace from a storage. + """ + unregisterStorageNamespace(input: UnregisterStorageNamespaceInput!): UnregisterStorageNamespacePayload! @join__field(graph: STRAWBERRY) """Added in 25.14.0""" createHuggingfaceRegistry(input: CreateHuggingFaceRegistryInput!): CreateHuggingFaceRegistryPayload! @join__field(graph: STRAWBERRY) @@ -3899,7 +4153,7 @@ type ObjectStorage implements Node secretKey: String! endpoint: String! region: String! - namespaces(before: String, after: String, first: Int, last: Int, limit: Int, offset: Int): ObjectStorageNamespaceConnection! + namespaces(before: String, after: String, first: Int, last: Int, limit: Int, offset: Int): StorageNamespaceConnection! } """Added in 25.14.0""" @@ -3925,40 +4179,6 @@ type ObjectStorageEdge node: ObjectStorage! } -"""Added in 25.14.0""" -type ObjectStorageNamespace implements Node - @join__implements(graph: STRAWBERRY, interface: "Node") - @join__type(graph: STRAWBERRY) -{ - """The Globally Unique ID of this object""" - id: ID! - storageId: ID! - bucket: String! -} - -"""Added in 25.14.0""" -type ObjectStorageNamespaceConnection - @join__type(graph: STRAWBERRY) -{ - """Pagination data for this connection""" - pageInfo: PageInfo! - - """Contains the nodes in this connection""" - edges: [ObjectStorageNamespaceEdge!]! - count: Int! -} - -"""An edge in a connection.""" -type ObjectStorageNamespaceEdge - @join__type(graph: STRAWBERRY) -{ - """A cursor for use in pagination""" - cursor: String! - - """The item at the end of the edge""" - node: ObjectStorageNamespace! -} - enum OrderDirection @join__type(graph: STRAWBERRY) { @@ -4248,7 +4468,7 @@ type Query """Added in 24.03.1""" id: String reference: String - architecture: String = "x86_64" + architecture: String = "aarch64" ): Image @join__field(graph: GRAPHENE) images( """ @@ -4558,6 +4778,12 @@ type Query """Added in 25.14.0""" objectStorages(before: String = null, after: String = null, first: Int = null, last: Int = null, limit: Int = null, offset: Int = null): ObjectStorageConnection! @join__field(graph: STRAWBERRY) + """Added in 25.16.0. Get a VFS storage by ID""" + vfsStorage(id: ID!): VFSStorage @join__field(graph: STRAWBERRY) + + """Added in 25.16.0. List all VFS storages""" + vfsStorages(before: String = null, after: String = null, first: Int = null, last: Int = null, limit: Int = null, offset: Int = null): VFSStorageConnection! @join__field(graph: STRAWBERRY) + """Added in 25.14.0""" huggingfaceRegistry(id: ID!): HuggingFaceRegistry @join__field(graph: STRAWBERRY) @@ -4572,6 +4798,9 @@ type Query """Added in 25.14.0""" defaultArtifactRegistry(artifactType: ArtifactType!): ArtifactRegistry @join__field(graph: STRAWBERRY) + + """Added in 25.15.0""" + agentStats: AgentStats! @join__field(graph: STRAWBERRY) } type QuotaDetails @@ -4605,16 +4834,24 @@ type RawServiceConfig extraCliParameters: String } -"""Added in 25.14.0""" -input RegisterObjectStorageBucketInput +""" +Added in 25.15.0. + +Input type for registering a storage namespace. +""" +input RegisterStorageNamespaceInput @join__type(graph: STRAWBERRY) { storageId: UUID! - bucketName: String! + namespace: String! } -"""Added in 25.14.0""" -type RegisterObjectStorageBucketPayload +""" +Added in 25.15.0. + +Payload returned after storage namespace registration. +""" +type RegisterStorageNamespacePayload @join__type(graph: STRAWBERRY) { id: UUID! @@ -4681,6 +4918,7 @@ type ReservoirRegistry implements Node accessKey: String! secretKey: String! apiVersion: String! + remoteArtifactRegistries: ArtifactRegistryMetaConnection! } """Added in 25.14.0""" @@ -4956,6 +5194,33 @@ type ScanArtifactsPayload artifacts: [Artifact!]! } +"""Added in 25.15.0. Scheduling event broadcast payload""" +type SchedulingBroadcastEventPayload + @join__type(graph: STRAWBERRY) +{ + sessionId: ID! + creationId: String! + statusTransition: SchedulingStatus! + reason: String! +} + +"""Status of session scheduling transitions""" +enum SchedulingStatus + @join__type(graph: STRAWBERRY) +{ + PENDING @join__enumValue(graph: STRAWBERRY) + SCHEDULED @join__enumValue(graph: STRAWBERRY) + PREPARING @join__enumValue(graph: STRAWBERRY) + PULLING @join__enumValue(graph: STRAWBERRY) + PREPARED @join__enumValue(graph: STRAWBERRY) + CREATING @join__enumValue(graph: STRAWBERRY) + RUNNING @join__enumValue(graph: STRAWBERRY) + TERMINATING @join__enumValue(graph: STRAWBERRY) + TERMINATED @join__enumValue(graph: STRAWBERRY) + CANCELLED @join__enumValue(graph: STRAWBERRY) + ERROR @join__enumValue(graph: STRAWBERRY) +} + """ Added in 24.12.0. A string value in the format ':'. should be one of [system, domain, project, user]. should be the ID value of the scope. e.g. `domain:default`, `user:123e4567-e89b-12d3-a456-426614174000`. """ @@ -5062,6 +5327,53 @@ type SourceInfo url: String } +""" +Added in 25.15.0. + +Storage namespace provides logical separation of data within a single storage system +to organize and isolate domain-specific concerns. + +Implementation varies by storage type: +- Object Storage (S3, MinIO): Uses bucket-based namespace separation +- File System (VFS): Uses directory path prefix for namespace distinction +""" +type StorageNamespace implements Node + @join__implements(graph: STRAWBERRY, interface: "Node") + @join__type(graph: STRAWBERRY) +{ + """The Globally Unique ID of this object""" + id: ID! + storageId: ID! + namespace: String! +} + +""" +Added in 25.15.0. + +Storage namespace connection for pagination. +""" +type StorageNamespaceConnection + @join__type(graph: STRAWBERRY) +{ + """Pagination data for this connection""" + pageInfo: PageInfo! + + """Contains the nodes in this connection""" + edges: [StorageNamespaceEdge!]! + count: Int! +} + +"""An edge in a connection.""" +type StorageNamespaceEdge + @join__type(graph: STRAWBERRY) +{ + """A cursor for use in pagination""" + cursor: String! + + """The item at the end of the edge""" + node: StorageNamespace! +} + type StorageVolume implements Item @join__implements(graph: GRAPHENE, interface: "Item") @join__type(graph: GRAPHENE) @@ -5115,6 +5427,11 @@ type Subscription artifactImportProgressUpdated(artifactRevisionId: ID!): ArtifactImportProgressUpdatedPayload! deploymentStatusChanged(deploymentId: ID!): DeploymentStatusChangedPayload! replicaStatusChanged(revisionId: ID!): ReplicaStatusChangedPayload! + + """ + Subscribe to real-time scheduling events for a specific session. Streams status transition events during the session lifecycle (PENDING → SCHEDULED → PREPARING → RUNNING → TERMINATED). Added in 25.15.0. + """ + schedulingEventsBySession(sessionId: ID!): SchedulingBroadcastEventPayload! } """Added in 25.5.0.""" @@ -5135,16 +5452,24 @@ type UnloadImage task_id: String } -"""Added in 25.14.0""" -input UnregisterObjectStorageBucketInput +""" +Added in 25.15.0. + +Input type for unregistering a storage namespace. +""" +input UnregisterStorageNamespaceInput @join__type(graph: STRAWBERRY) { storageId: UUID! - bucketName: String! + namespace: String! } -"""Added in 25.14.0""" -type UnregisterObjectStorageBucketPayload +""" +Added in 25.15.0. + +Payload returned after storage namespace unregistration. +""" +type UnregisterStorageNamespacePayload @join__type(graph: STRAWBERRY) { id: UUID! @@ -5264,6 +5589,23 @@ type UpdateReservoirRegistryPayload reservoir: ReservoirRegistry! } +"""Added in 25.16.0. Input for updating VFS storage""" +input UpdateVFSStorageInput + @join__type(graph: STRAWBERRY) +{ + id: ID! + name: String + host: String + basePath: String +} + +"""Added in 25.16.0. Payload for updating VFS storage""" +type UpdateVFSStoragePayload + @join__type(graph: STRAWBERRY) +{ + vfsStorage: VFSStorage! +} + type User implements Item @join__implements(graph: GRAPHENE, interface: "Item") @join__type(graph: GRAPHENE) @@ -5527,6 +5869,41 @@ Added in 24.09.0. One of ['clone', 'assign_permission_to_others', 'read_attribut scalar VFolderPermissionValueField @join__type(graph: GRAPHENE) +"""Added in 25.16.0. VFS Storage configuration""" +type VFSStorage implements Node + @join__implements(graph: STRAWBERRY, interface: "Node") + @join__type(graph: STRAWBERRY) +{ + """The Globally Unique ID of this object""" + id: ID! + name: String! + host: String! + basePath: String! +} + +"""Added in 25.16.0. VFS Storage connection""" +type VFSStorageConnection + @join__type(graph: STRAWBERRY) +{ + """Pagination data for this connection""" + pageInfo: PageInfo! + + """Contains the nodes in this connection""" + edges: [VFSStorageEdge!]! + count: Int! +} + +"""An edge in a connection.""" +type VFSStorageEdge + @join__type(graph: STRAWBERRY) +{ + """A cursor for use in pagination""" + cursor: String! + + """The item at the end of the edge""" + node: VFSStorage! +} + """Added in 25.14.2.""" type Viewer @join__type(graph: GRAPHENE) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77dbf7e9b9..c57b8e443b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -620,7 +620,7 @@ importers: version: 9.1.1(@testing-library/dom@10.4.0)(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)(vite@6.3.5(@types/node@22.4.1)(jiti@1.21.6)(terser@5.31.4)(yaml@2.5.0)) ts-jest: specifier: ^29.2.5 - version: 29.4.1(@babel/core@7.27.3)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.0.5(@babel/core@7.27.3))(esbuild@0.25.5)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.4.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.4.1)(typescript@5.8.2)))(typescript@5.8.2) + version: 29.4.1(@babel/core@7.28.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.0.5(@babel/core@7.28.0))(esbuild@0.25.5)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.4.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.4.1)(typescript@5.8.2)))(typescript@5.8.2) typescript: specifier: ^5.8.2 version: 5.8.2 @@ -647,7 +647,7 @@ importers: version: 1.2.12(react@19.2.0)(zod@4.1.12) '@ant-design/charts': specifier: ^2.2.7 - version: 2.2.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))) + version: 2.2.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))) '@ant-design/colors': specifier: ^7.2.1 version: 7.2.1 @@ -741,6 +741,9 @@ importers: graphql: specifier: ^16.11.0 version: 16.11.0 + graphql-ws: + specifier: ^6.0.6 + version: 6.0.6(graphql@16.11.0)(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)) i18next: specifier: ^25.6.0 version: 25.6.0(typescript@5.7.2) @@ -803,7 +806,7 @@ importers: version: 6.30.1(react-dom@19.2.0(react@19.2.0))(react@19.2.0) react-scripts: specifier: 5.0.1 - version: 5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4(webpack@5.93.0))(webpack-hot-middleware@2.26.1) + version: 5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4)(webpack-hot-middleware@2.26.1) react-syntax-highlighter: specifier: ^15.6.6 version: 15.6.6(react@19.2.0) @@ -870,7 +873,7 @@ importers: version: 7.24.7(@babel/core@7.27.3) '@craco/craco': specifier: ^7.1.0 - version: 7.1.0(@types/node@20.19.21)(postcss@8.4.49)(react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4(webpack@5.93.0))(webpack-hot-middleware@2.26.1))(typescript@5.7.2) + version: 7.1.0(@types/node@20.19.21)(postcss@8.5.6)(react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4)(webpack-hot-middleware@2.26.1))(typescript@5.7.2) '@storybook/addon-essentials': specifier: ^8.4.5 version: 8.4.5(@types/react@19.2.2)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)) @@ -888,13 +891,13 @@ importers: version: 8.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)) '@storybook/preset-create-react-app': specifier: ^8.4.5 - version: 8.4.5(react-refresh@0.11.0)(react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4(webpack@5.93.0))(webpack-hot-middleware@2.26.1))(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4(webpack@5.93.0))(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + version: 8.4.5(react-refresh@0.17.0)(react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4)(webpack-hot-middleware@2.26.1))(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) '@storybook/react': specifier: ^8.4.5 version: 8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2) '@storybook/react-webpack5': specifier: ^8.4.5 - version: 8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(esbuild@0.19.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4(webpack@5.93.0)) + version: 8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(esbuild@0.19.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 @@ -987,7 +990,7 @@ importers: version: 0.11.1(eslint@8.57.1)(typescript@5.7.2) html-webpack-plugin: specifier: 5.6.3 - version: 5.6.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + version: 5.6.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) identity-obj-proxy: specifier: ^3.0.0 version: 3.0.0 @@ -1008,7 +1011,7 @@ importers: version: 15.8.1 react-dev-utils: specifier: ^12.0.1 - version: 12.0.1(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + version: 12.0.1(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) react-test-renderer: specifier: ^19.0.0 version: 19.0.0(react@19.2.0) @@ -1026,7 +1029,7 @@ importers: version: 3.0.0 webpack: specifier: ^5.96.1 - version: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + version: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) packages: @@ -4306,101 +4309,121 @@ packages: resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-gnueabihf@4.41.1': resolution: {integrity: sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.20.0': resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm-musleabihf@4.41.1': resolution: {integrity: sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.20.0': resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-gnu@4.41.1': resolution: {integrity: sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.20.0': resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-musl@4.41.1': resolution: {integrity: sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.41.1': resolution: {integrity: sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.41.1': resolution: {integrity: sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.20.0': resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.41.1': resolution: {integrity: sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.41.1': resolution: {integrity: sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.20.0': resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-s390x-gnu@4.41.1': resolution: {integrity: sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.20.0': resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.41.1': resolution: {integrity: sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.20.0': resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-linux-x64-musl@4.41.1': resolution: {integrity: sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.20.0': resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} @@ -5695,41 +5718,49 @@ packages: resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} cpu: [arm64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-arm64-musl@1.11.1': resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} cpu: [arm64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} cpu: [ppc64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} cpu: [riscv64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} cpu: [riscv64] os: [linux] + libc: [musl] '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} cpu: [s390x] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-gnu@1.11.1': resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} cpu: [x64] os: [linux] + libc: [glibc] '@unrs/resolver-binding-linux-x64-musl@1.11.1': resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} cpu: [x64] os: [linux] + libc: [musl] '@unrs/resolver-binding-wasm32-wasi@1.11.1': resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} @@ -9232,6 +9263,25 @@ packages: graphlib@2.1.8: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} + graphql-ws@6.0.6: + resolution: {integrity: sha512-zgfER9s+ftkGKUZgc0xbx8T7/HMO4AV5/YuYiFc+AtgcO5T0v8AxYYNQ+ltzuzDZgNkYJaFspm5MMYLjQzrkmw==} + engines: {node: '>=20'} + peerDependencies: + '@fastify/websocket': ^10 || ^11 + crossws: ~0.3 + graphql: ^15.10.1 || ^16 + uWebSockets.js: ^20 + ws: ^8 + peerDependenciesMeta: + '@fastify/websocket': + optional: true + crossws: + optional: true + uWebSockets.js: + optional: true + ws: + optional: true + graphql@15.3.0: resolution: {integrity: sha512-GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w==} engines: {node: '>= 10.x'} @@ -15692,9 +15742,9 @@ snapshots: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@ant-design/charts@2.2.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))': + '@ant-design/charts@2.2.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))': dependencies: - '@ant-design/graphs': 2.0.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))) + '@ant-design/graphs': 2.0.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))) '@ant-design/plots': 2.3.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0) lodash: 4.17.21 react: 19.2.0 @@ -15730,12 +15780,12 @@ snapshots: dependencies: '@babel/runtime': 7.27.0 - '@ant-design/graphs@2.0.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))': + '@ant-design/graphs@2.0.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))': dependencies: '@ant-design/charts-util': 0.0.1-alpha.7(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@antv/g6': 5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))) - '@antv/g6-extension-react': 0.2.0(@antv/g6@5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) - '@antv/graphin': 3.0.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))) + '@antv/g6': 5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))) + '@antv/g6-extension-react': 0.2.0(@antv/g6@5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))))(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + '@antv/graphin': 3.0.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))) lodash: 4.17.21 react: 19.2.0 react-dom: 19.2.0(react@19.2.0) @@ -15972,15 +16022,15 @@ snapshots: fmin: 0.0.2 pdfast: 0.2.0 - '@antv/g6-extension-react@0.2.0(@antv/g6@5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@antv/g6-extension-react@0.2.0(@antv/g6@5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: '@antv/g': 6.1.21 '@antv/g-svg': 2.0.34 - '@antv/g6': 5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))) + '@antv/g6': 5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) - '@antv/g6@5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))': + '@antv/g6@5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))': dependencies: '@antv/algorithm': 0.1.26 '@antv/component': 2.1.2 @@ -15990,7 +16040,7 @@ snapshots: '@antv/g-plugin-dragndrop': 2.0.32 '@antv/graphlib': 2.0.4 '@antv/hierarchy': 0.6.14 - '@antv/layout': 1.2.14-beta.9(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))) + '@antv/layout': 1.2.14-beta.9(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))) '@antv/util': 3.3.10 bubblesets-js: 2.3.4 hull.js: 1.0.6 @@ -16005,9 +16055,9 @@ snapshots: '@antv/g-web-animations-api': 2.1.21 '@babel/runtime': 7.27.0 - '@antv/graphin@3.0.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))': + '@antv/graphin@3.0.4(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))': dependencies: - '@antv/g6': 5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))) + '@antv/g6': 5.0.44(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))) react: 19.2.0 react-dom: 19.2.0(react@19.2.0) transitivePeerDependencies: @@ -16019,12 +16069,12 @@ snapshots: '@antv/hierarchy@0.6.14': {} - '@antv/layout@1.2.14-beta.9(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))': + '@antv/layout@1.2.14-beta.9(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))': dependencies: '@antv/event-emitter': 0.1.3 '@antv/graphlib': 2.0.4 '@antv/util': 3.3.10 - '@naoak/workerize-transferable': 0.1.0(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))) + '@naoak/workerize-transferable': 0.1.0(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))) comlink: 4.4.2 d3-force: 3.0.0 d3-force-3d: 3.0.5 @@ -18021,14 +18071,14 @@ snapshots: '@colors/colors@1.6.0': {} - '@craco/craco@7.1.0(@types/node@20.19.21)(postcss@8.4.49)(react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4(webpack@5.93.0))(webpack-hot-middleware@2.26.1))(typescript@5.7.2)': + '@craco/craco@7.1.0(@types/node@20.19.21)(postcss@8.5.6)(react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4)(webpack-hot-middleware@2.26.1))(typescript@5.7.2)': dependencies: - autoprefixer: 10.4.20(postcss@8.4.49) + autoprefixer: 10.4.20(postcss@8.5.6) cosmiconfig: 7.1.0 cosmiconfig-typescript-loader: 1.0.9(@types/node@20.19.21)(cosmiconfig@7.1.0)(typescript@5.7.2) cross-spawn: 7.0.3 lodash: 4.17.21 - react-scripts: 5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4(webpack@5.93.0))(webpack-hot-middleware@2.26.1) + react-scripts: 5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4)(webpack-hot-middleware@2.26.1) semver: 7.6.3 webpack-merge: 5.10.0 transitivePeerDependencies: @@ -20306,9 +20356,9 @@ snapshots: '@microsoft/tsdoc@0.15.1': {} - '@naoak/workerize-transferable@0.1.0(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))': + '@naoak/workerize-transferable@0.1.0(workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))': dependencies: - workerize-loader: 2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + workerize-loader: 2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) '@napi-rs/wasm-runtime@0.2.12': dependencies: @@ -20527,7 +20577,7 @@ snapshots: dependencies: playwright: 1.49.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4(webpack@5.93.0))(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))': dependencies: ansi-html: 0.0.9 core-js-pure: 3.39.0 @@ -20537,10 +20587,26 @@ snapshots: react-refresh: 0.11.0 schema-utils: 4.2.0 source-map: 0.7.4 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) optionalDependencies: type-fest: 4.41.0 - webpack-dev-server: 4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4(webpack@5.93.0))(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + webpack-dev-server: 4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + webpack-hot-middleware: 2.26.1 + + '@pmmmwh/react-refresh-webpack-plugin@0.5.15(react-refresh@0.17.0)(type-fest@4.41.0)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))': + dependencies: + ansi-html: 0.0.9 + core-js-pure: 3.39.0 + error-stack-parser: 2.1.4 + html-entities: 2.5.2 + loader-utils: 2.0.4 + react-refresh: 0.17.0 + schema-utils: 4.2.0 + source-map: 0.7.4 + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) + optionalDependencies: + type-fest: 4.41.0 + webpack-dev-server: 4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) webpack-hot-middleware: 2.26.1 '@polymer/polymer@3.5.1': @@ -21155,7 +21221,7 @@ snapshots: ts-dedent: 2.2.0 vite: 6.3.5(@types/node@22.4.1)(jiti@1.21.6)(terser@5.31.4)(yaml@2.5.0) - '@storybook/builder-webpack5@8.4.5(esbuild@0.19.12)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4(webpack@5.93.0))': + '@storybook/builder-webpack5@8.4.5(esbuild@0.19.12)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.5(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)) '@types/node': 22.4.1 @@ -21164,23 +21230,23 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.3.1 constants-browserify: 1.0.0 - css-loader: 6.11.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + css-loader: 6.11.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) es-module-lexer: 1.5.4 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - html-webpack-plugin: 5.6.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + html-webpack-plugin: 5.6.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) magic-string: 0.30.17 path-browserify: 1.0.1 process: 0.11.10 semver: 7.6.3 storybook: 8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4) - style-loader: 3.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + style-loader: 3.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) - webpack-dev-middleware: 6.1.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-dev-middleware: 6.1.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) webpack-hot-middleware: 2.26.1 webpack-virtual-modules: 0.6.2 optionalDependencies: @@ -21275,13 +21341,13 @@ snapshots: dependencies: storybook: 8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4) - '@storybook/preset-create-react-app@8.4.5(react-refresh@0.11.0)(react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4(webpack@5.93.0))(webpack-hot-middleware@2.26.1))(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4(webpack@5.93.0))(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))': + '@storybook/preset-create-react-app@8.4.5(react-refresh@0.17.0)(react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4)(webpack-hot-middleware@2.26.1))(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(type-fest@4.41.0)(typescript@5.7.2)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))': dependencies: - '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4(webpack@5.93.0))(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.17.0)(type-fest@4.41.0)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) '@types/semver': 7.5.8 pnp-webpack-plugin: 1.7.0(typescript@5.7.2) - react-scripts: 5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4(webpack@5.93.0))(webpack-hot-middleware@2.26.1) + react-scripts: 5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4)(webpack-hot-middleware@2.26.1) semver: 7.6.3 storybook: 8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4) transitivePeerDependencies: @@ -21296,11 +21362,11 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(esbuild@0.19.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4(webpack@5.93.0))': + '@storybook/preset-react-webpack@8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(esbuild@0.19.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.5(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)) '@storybook/react': 8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) '@types/node': 22.4.1 '@types/semver': 7.5.8 find-up: 5.0.0 @@ -21312,7 +21378,7 @@ snapshots: semver: 7.6.3 storybook: 8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4) tsconfig-paths: 4.2.0 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -21327,7 +21393,7 @@ snapshots: dependencies: storybook: 8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4))': dependencies: debug: 4.3.6(supports-color@5.5.0) endent: 2.1.0 @@ -21337,7 +21403,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.7.2) tslib: 2.8.1 typescript: 5.7.2 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) transitivePeerDependencies: - supports-color @@ -21379,10 +21445,10 @@ snapshots: - supports-color - typescript - '@storybook/react-webpack5@8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(esbuild@0.19.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4(webpack@5.93.0))': + '@storybook/react-webpack5@8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(esbuild@0.19.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4)': dependencies: - '@storybook/builder-webpack5': 8.4.5(esbuild@0.19.12)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4(webpack@5.93.0)) - '@storybook/preset-react-webpack': 8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(esbuild@0.19.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4(webpack@5.93.0)) + '@storybook/builder-webpack5': 8.4.5(esbuild@0.19.12)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4) + '@storybook/preset-react-webpack': 8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(esbuild@0.19.12)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2)(webpack-cli@5.1.4) '@storybook/react': 8.4.5(@storybook/test@8.6.14(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4)))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(storybook@8.4.5(bufferutil@4.0.8)(prettier@3.6.2)(utf-8-validate@6.0.4))(typescript@5.7.2) '@types/node': 22.4.1 react: 19.2.0 @@ -23797,6 +23863,16 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 + autoprefixer@10.4.20(postcss@8.5.6): + dependencies: + browserslist: 4.23.3 + caniuse-lite: 1.0.30001731 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -23900,14 +23976,14 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@8.4.1(@babel/core@7.27.3)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + babel-loader@8.4.1(@babel/core@7.27.3)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: '@babel/core': 7.27.3 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) babel-plugin-istanbul@6.1.1: dependencies: @@ -25238,7 +25314,7 @@ snapshots: postcss: 8.4.49 postcss-selector-parser: 6.1.2 - css-loader@6.11.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + css-loader@6.11.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: icss-utils: 5.1.0(postcss@8.5.3) postcss: 8.5.3 @@ -25249,9 +25325,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.2 optionalDependencies: - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) - css-minimizer-webpack-plugin@3.4.1(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + css-minimizer-webpack-plugin@3.4.1(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: cssnano: 5.1.15(postcss@8.5.3) jest-worker: 27.5.1 @@ -25259,7 +25335,7 @@ snapshots: schema-utils: 4.2.0 serialize-javascript: 6.0.2 source-map: 0.6.1 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) optionalDependencies: esbuild: 0.19.12 @@ -26631,7 +26707,7 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint-webpack-plugin@3.2.0(eslint@8.57.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + eslint-webpack-plugin@3.2.0(eslint@8.57.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: '@types/eslint': 8.56.12 eslint: 8.57.1 @@ -26639,7 +26715,7 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 schema-utils: 4.2.0 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) eslint@8.57.0: dependencies: @@ -27019,11 +27095,11 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + file-loader@6.2.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) filelist@1.0.4: dependencies: @@ -27146,7 +27222,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: '@babel/code-frame': 7.27.1 '@types/json-schema': 7.0.15 @@ -27162,12 +27238,12 @@ snapshots: semver: 7.7.2 tapable: 1.1.3 typescript: 5.7.2 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) optionalDependencies: eslint: 8.57.1 vue-template-compiler: 2.7.16 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.7.2)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: '@babel/code-frame': 7.27.1 chalk: 4.1.2 @@ -27182,7 +27258,7 @@ snapshots: semver: 7.7.2 tapable: 2.2.1 typescript: 5.7.2 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) form-data@3.0.2: dependencies: @@ -27487,6 +27563,12 @@ snapshots: dependencies: lodash: 4.17.21 + graphql-ws@6.0.6(graphql@16.11.0)(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)): + dependencies: + graphql: 16.11.0 + optionalDependencies: + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + graphql@15.3.0: {} graphql@16.11.0: {} @@ -27733,7 +27815,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + html-webpack-plugin@5.6.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -27741,7 +27823,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) htmlescape@1.1.1: {} @@ -30786,11 +30868,11 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + mini-css-extract-plugin@2.9.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) minify-stream@2.1.0: dependencies: @@ -31691,13 +31773,13 @@ snapshots: postcss: 8.5.3 ts-node: 10.9.2(@types/node@20.19.21)(typescript@5.7.2) - postcss-loader@6.2.1(postcss@8.4.49)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + postcss-loader@6.2.1(postcss@8.4.49)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: cosmiconfig: 7.1.0 klona: 2.0.6 postcss: 8.4.49 semver: 7.7.2 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) postcss-logical@5.0.4(postcss@8.4.49): dependencies: @@ -31978,7 +32060,6 @@ snapshots: nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 - optional: true postject@1.0.0-alpha.6: dependencies: @@ -32632,7 +32713,7 @@ snapshots: prop-types: 15.8.1 react: 19.2.0 - react-dev-utils@12.0.1(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + react-dev-utils@12.0.1(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: '@babel/code-frame': 7.27.1 address: 1.2.2 @@ -32643,7 +32724,7 @@ snapshots: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -32658,7 +32739,7 @@ snapshots: shell-quote: 1.8.1 strip-ansi: 6.0.1 text-table: 0.2.0 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -32838,56 +32919,56 @@ snapshots: '@remix-run/router': 1.23.0 react: 19.2.0 - react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4(webpack@5.93.0))(webpack-hot-middleware@2.26.1): + react-scripts@5.0.1(patch_hash=41eb935f1b9706514c1411563c280d8adec915feeff04548ce05b23fb03bfcc8)(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(@types/babel__core@7.20.5)(bufferutil@4.0.8)(esbuild@0.19.12)(eslint@8.57.1)(react@19.2.0)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(type-fest@4.41.0)(typescript@5.7.2)(utf-8-validate@6.0.4)(vue-template-compiler@2.7.16)(webpack-cli@5.1.4)(webpack-hot-middleware@2.26.1): dependencies: '@babel/core': 7.27.3 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4(webpack@5.93.0))(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.15(react-refresh@0.11.0)(type-fest@4.41.0)(webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)))(webpack-hot-middleware@2.26.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) '@svgr/webpack': 5.5.0 babel-jest: 27.5.1(@babel/core@7.27.3) - babel-loader: 8.4.1(@babel/core@7.27.3)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + babel-loader: 8.4.1(@babel/core@7.27.3)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) babel-plugin-named-asset-import: 0.3.8(@babel/core@7.27.3) babel-preset-react-app: 10.1.0 bfj: 7.1.0 browserslist: 4.23.3 camelcase: 6.3.0 case-sensitive-paths-webpack-plugin: 2.4.0 - css-loader: 6.11.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - css-minimizer-webpack-plugin: 3.4.1(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + css-loader: 6.11.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + css-minimizer-webpack-plugin: 3.4.1(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) dotenv: 10.0.0 dotenv-expand: 5.1.0 eslint: 8.57.1 eslint-config-react-app: 7.0.1(@babel/plugin-syntax-flow@7.26.0(@babel/core@7.27.3))(@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.3))(eslint@8.57.1)(jest@27.5.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(utf-8-validate@6.0.4))(typescript@5.7.2) - eslint-webpack-plugin: 3.2.0(eslint@8.57.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - file-loader: 6.2.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + eslint-webpack-plugin: 3.2.0(eslint@8.57.1)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + file-loader: 6.2.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) fs-extra: 10.1.0 - html-webpack-plugin: 5.6.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + html-webpack-plugin: 5.6.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) identity-obj-proxy: 3.0.0 jest: 27.5.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(utf-8-validate@6.0.4) jest-resolve: 27.5.1 jest-watch-typeahead: 1.1.0(jest@27.5.1(bufferutil@4.0.8)(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2))(utf-8-validate@6.0.4)) - mini-css-extract-plugin: 2.9.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + mini-css-extract-plugin: 2.9.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) postcss: 8.4.49 postcss-flexbugs-fixes: 5.0.2(postcss@8.4.49) - postcss-loader: 6.2.1(postcss@8.4.49)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + postcss-loader: 6.2.1(postcss@8.4.49)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) postcss-normalize: 10.0.1(browserslist@4.23.3)(postcss@8.4.49) postcss-preset-env: 7.8.3(postcss@8.4.49) prompts: 2.4.2 react: 19.2.0 react-app-polyfill: 3.0.0 - react-dev-utils: 12.0.1(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + react-dev-utils: 12.0.1(eslint@8.57.1)(typescript@5.7.2)(vue-template-compiler@2.7.16)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) react-refresh: 0.11.0 resolve: 1.22.8 resolve-url-loader: 4.0.0 - sass-loader: 12.6.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + sass-loader: 12.6.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) semver: 7.6.3 - source-map-loader: 3.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - style-loader: 3.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + source-map-loader: 3.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + style-loader: 3.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) tailwindcss: 3.4.15(ts-node@10.9.2(@types/node@20.19.21)(typescript@5.7.2)) - terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) - webpack-dev-server: 4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4(webpack@5.93.0))(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - webpack-manifest-plugin: 4.1.1(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) - workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) + webpack-dev-server: 4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + webpack-manifest-plugin: 4.1.1(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) + workbox-webpack-plugin: 6.6.0(@types/babel__core@7.20.5)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) optionalDependencies: fsevents: 2.3.3 typescript: 5.7.2 @@ -33513,11 +33594,11 @@ snapshots: sanitize.css@13.0.0: {} - sass-loader@12.6.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + sass-loader@12.6.0(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: klona: 2.0.6 neo-async: 2.6.2 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) sax@1.2.4: {} @@ -33837,12 +33918,12 @@ snapshots: source-map-js@1.2.1: {} - source-map-loader@3.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + source-map-loader@3.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: abab: 2.0.6 iconv-lite: 0.6.3 source-map-js: 1.2.1 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) source-map-support@0.3.3: dependencies: @@ -34192,9 +34273,9 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - style-loader@3.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + style-loader@3.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) style-mod@4.1.2: {} @@ -34418,14 +34499,14 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.10(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + terser-webpack-plugin@5.3.10(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.4 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) optionalDependencies: esbuild: 0.19.12 @@ -34662,7 +34743,7 @@ snapshots: esbuild: 0.25.5 jest-util: 30.2.0 - ts-jest@29.4.1(@babel/core@7.27.3)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.0.5(@babel/core@7.27.3))(esbuild@0.25.5)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.4.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.4.1)(typescript@5.8.2)))(typescript@5.8.2): + ts-jest@29.4.1(@babel/core@7.28.0)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.0.5(@babel/core@7.28.0))(esbuild@0.25.5)(jest-util@30.2.0)(jest@29.7.0(@types/node@22.4.1)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.4.1)(typescript@5.8.2)))(typescript@5.8.2): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 @@ -34676,10 +34757,10 @@ snapshots: typescript: 5.8.2 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.27.3 + '@babel/core': 7.28.0 '@jest/transform': 30.2.0 '@jest/types': 30.2.0 - babel-jest: 30.0.5(@babel/core@7.27.3) + babel-jest: 30.0.5(@babel/core@7.28.0) esbuild: 0.25.5 jest-util: 30.2.0 @@ -35436,16 +35517,16 @@ snapshots: webpack: 5.93.0(esbuild@0.25.5)(webpack-cli@5.1.4) webpack-merge: 5.10.0 - webpack-dev-middleware@5.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + webpack-dev-middleware@5.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: colorette: 2.0.20 memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) - webpack-dev-middleware@6.1.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + webpack-dev-middleware@6.1.3(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -35453,9 +35534,9 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) - webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4(webpack@5.93.0))(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + webpack-dev-server@4.15.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)(webpack-cli@5.1.4)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -35485,10 +35566,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + webpack-dev-middleware: 5.3.4(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) optionalDependencies: - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) webpack-cli: 5.1.4(webpack@5.93.0) transitivePeerDependencies: - bufferutil @@ -35502,10 +35583,10 @@ snapshots: html-entities: 2.5.2 strip-ansi: 6.0.1 - webpack-manifest-plugin@4.1.1(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + webpack-manifest-plugin@4.1.1(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: tapable: 2.2.1 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) webpack-sources: 2.3.1 webpack-merge@5.10.0: @@ -35561,7 +35642,7 @@ snapshots: - esbuild - uglify-js - webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)): + webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -35583,7 +35664,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))) + terser-webpack-plugin: 5.3.10(esbuild@0.19.12)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)) watchpack: 2.4.1 webpack-sources: 3.2.3 optionalDependencies: @@ -35983,12 +36064,12 @@ snapshots: workbox-sw@7.1.0: {} - workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + workbox-webpack-plugin@6.6.0(@types/babel__core@7.20.5)(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) webpack-sources: 1.4.3 workbox-build: 6.6.0(@types/babel__core@7.20.5) transitivePeerDependencies: @@ -36005,10 +36086,10 @@ snapshots: '@types/trusted-types': 2.0.7 workbox-core: 7.1.0 - workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0))): + workerize-loader@2.0.2(webpack@5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4)): dependencies: loader-utils: 2.0.4 - webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4(webpack@5.93.0)) + webpack: 5.97.1(esbuild@0.19.12)(webpack-cli@5.1.4) wrap-ansi@7.0.0: dependencies: diff --git a/react/package.json b/react/package.json index 9036aea1a0..d12f7c5ca0 100644 --- a/react/package.json +++ b/react/package.json @@ -37,6 +37,7 @@ "fast-deep-equal": "^3.1.3", "gpt-tokenizer": "^3.2.0", "graphql": "^16.11.0", + "graphql-ws": "^6.0.6", "i18next": "^25.6.0", "i18next-http-backend": "^3.0.2", "jotai": "^2.15.0", diff --git a/react/src/RelayEnvironment.ts b/react/src/RelayEnvironment.ts index 4690ea73df..e179d727ac 100644 --- a/react/src/RelayEnvironment.ts +++ b/react/src/RelayEnvironment.ts @@ -1,23 +1,21 @@ // import { createClient } from "graphql-ws"; import { manipulateGraphQLQueryWithClientDirectives } from './helper/graphql-transformer'; +import { createClient } from 'graphql-ws'; import { Environment, Network, RecordSource, Store, FetchFunction, - SubscribeFunction, RelayFeatureFlags, + RequestParameters, + Variables, + Observable, } from 'relay-runtime'; RelayFeatureFlags.ENABLE_RELAY_RESOLVERS = true; -const fetchFn: FetchFunction = async ( - request, - variables, - // cacheConfig, - // uploadables -) => { +const waitForBAIClient = async () => { //@ts-ignore if (globalThis.backendaiclient === undefined) { // If globalThis.backendaiclient is not defined, wait for the backend-ai-connected event. @@ -33,6 +31,30 @@ const fetchFn: FetchFunction = async ( document.addEventListener('backend-ai-connected', onBackendAIConnected); }); } +}; +const getSubscriptionEndpoint = async () => { + await waitForBAIClient(); + let api_endpoint: any = localStorage.getItem('backendaiwebui.api_endpoint'); + if (api_endpoint !== null) { + api_endpoint = api_endpoint.replace('http://', 'ws://'); + api_endpoint = api_endpoint.replace(/^"+|"+$/g, ''); // Remove trailing slashes + + if (api_endpoint.endsWith('/')) { + api_endpoint += 'func/admin/gql'; + } else { + api_endpoint += '/func/admin/gql'; + } + } + return api_endpoint; +}; + +const fetchFn: FetchFunction = async ( + request, + variables, + // cacheConfig, + // uploadables +) => { + await waitForBAIClient(); const transformedQuery = manipulateGraphQLQueryWithClientDirectives( request.text || '', @@ -72,8 +94,53 @@ const fetchFn: FetchFunction = async ( return result; }; -const subscribeFn: SubscribeFunction | undefined = undefined; +const subscriptionsClient = createClient({ + url: getSubscriptionEndpoint, + connectionParams: () => { + // Note: getSession() is a placeholder function created by you + // const session = getSession(); + // if (!session) { + // return {}; + // } + return { + // 'X-BackendAI-SessionID': '--', + // Authorization: `Bearer ${session.token}`, + }; + }, +}); + +function fetchOrSubscribe( + operation: RequestParameters, + variables: Variables, +): Observable { + return Observable.create((sink) => { + if (!operation.text) { + return sink.error(new Error('Operation text cannot be empty')); + } + // const transformedOperation = manipulateGraphQLQueryWithClientDirectives( + // operation.text || '', + // variables, + // (version) => { + // // @ts-ignore + // return !globalThis.backendaiclient?.isManagerVersionCompatibleWith( + // version, + // ); + // }, + // ); + + return subscriptionsClient.subscribe( + { + operationName: operation.name, + // query: transformedOperation, + query: operation.text, + variables, + }, + sink, + ); + }); +} +// const subscribeFn: SubscribeFunction | undefined = undefined; // if (typeof window !== "undefined") { // // We only want to setup subscriptions if we are on the client. // const subscriptionsClient = createClient({ @@ -102,7 +169,7 @@ const subscribeFn: SubscribeFunction | undefined = undefined; function createRelayEnvironment() { return new Environment({ - network: Network.create(fetchFn, subscribeFn), + network: Network.create(fetchFn, fetchOrSubscribe), store: new Store(new RecordSource()), }); } diff --git a/react/src/components/SessionDetailContent.tsx b/react/src/components/SessionDetailContent.tsx index a063182d42..2d08c1befa 100644 --- a/react/src/components/SessionDetailContent.tsx +++ b/react/src/components/SessionDetailContent.tsx @@ -42,11 +42,15 @@ import { BAIFlex, BAISessionAgentIds, } from 'backend.ai-ui'; -// import { graphql } from 'react-relay'; import _ from 'lodash'; import { Suspense, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { graphql, useFragment, useLazyLoadQuery } from 'react-relay'; +import { + graphql, + useFragment, + useLazyLoadQuery, + useSubscription, +} from 'react-relay'; const SessionDetailContent: React.FC<{ id: string; @@ -92,6 +96,21 @@ const SessionDetailContent: React.FC<{ }, ); + useSubscription({ + subscription: graphql` + subscription SessionDetailContentSubscription($session_id: ID!) { + schedulingEventsBySession(sessionId: $session_id) { + sessionId + statusTransition + creationId + reason + __typename + } + } + `, + variables: { session_id: id }, + }); + // TODO: Remove useLazyLoadQuery and use useRefetchableFragment instead of useFragment to fetch session data when deprecatedProjectId is removed. const { internalLoadedSession } = useLazyLoadQuery( graphql`