diff --git a/.changeset/loose-dots-learn.md b/.changeset/loose-dots-learn.md new file mode 100644 index 00000000000..a3b346da314 --- /dev/null +++ b/.changeset/loose-dots-learn.md @@ -0,0 +1,7 @@ +--- +'@graphql-hive/cli': minor +'hive': minor +--- + +Upgrade graphql-inspector/core to v7 and update the models to be able to handle the new change +objects. GraphQL Inspector now supports directive changes and improves the accuracy of the severity level for several change types. This will improve schema checks to make them more accurate and more complete. See graphql-inspector's changelog for details. diff --git a/integration-tests/tests/api/policy/policy-check.spec.ts b/integration-tests/tests/api/policy/policy-check.spec.ts index c63d4ecc6fc..d58adc1bf54 100644 --- a/integration-tests/tests/api/policy/policy-check.spec.ts +++ b/integration-tests/tests/api/policy/policy-check.spec.ts @@ -323,13 +323,12 @@ describe('Schema policy checks', () => { '', ' - Deprecation reason is required for field foo in type Query. (source: policy-require-deprecation-reason)', '', - 'ℹ Detected 4 changes', + 'ℹ Detected 3 changes', '', ' Safe changes:', ' - Type User was added', ' - Field user was added to object type Query', ' - Field Query.foo is deprecated', - ' - Directive deprecated was added to field Query.foo', '', 'View full report:', expect.any(String), diff --git a/integration-tests/tests/api/schema/publish.spec.ts b/integration-tests/tests/api/schema/publish.spec.ts index 23a32714b3f..879fa60c87b 100644 --- a/integration-tests/tests/api/schema/publish.spec.ts +++ b/integration-tests/tests/api/schema/publish.spec.ts @@ -818,6 +818,9 @@ describe('schema publishing changes are persisted', () => { equalsObject: { meta: { addedDirectiveName: 'foo', + addedDirectiveDescription: null, + addedDirectiveLocations: ['FIELD'], + addedDirectiveRepeatable: false, }, type: 'DIRECTIVE_ADDED', }, @@ -1278,8 +1281,10 @@ describe('schema publishing changes are persisted', () => { `, equalsObject: { meta: { + addedDirectiveDescription: null, enumName: 'Foo', addedEnumValueName: 'b', + addedToNewType: false, }, type: 'ENUM_VALUE_ADDED', }, @@ -1523,6 +1528,7 @@ describe('schema publishing changes are persisted', () => { typeName: 'Query', addedFieldName: 'b', typeType: 'object type', + addedFieldReturnType: 'String', }, type: 'FIELD_ADDED', }, @@ -1786,6 +1792,7 @@ describe('schema publishing changes are persisted', () => { addedArgumentType: 'String!', hasDefaultValue: false, isAddedFieldArgumentBreaking: true, + addedToNewField: false, }, type: 'FIELD_ARGUMENT_ADDED', }, @@ -1811,6 +1818,7 @@ describe('schema publishing changes are persisted', () => { addedArgumentType: 'String', hasDefaultValue: false, isAddedFieldArgumentBreaking: false, + addedToNewField: false, }, type: 'FIELD_ARGUMENT_ADDED', }, @@ -1866,6 +1874,7 @@ describe('schema publishing changes are persisted', () => { addedInputFieldName: 'b', isAddedInputFieldTypeNullable: true, addedInputFieldType: 'String', + addedToNewType: false, }, type: 'INPUT_FIELD_ADDED', }, @@ -1898,6 +1907,7 @@ describe('schema publishing changes are persisted', () => { addedInputFieldName: 'b', isAddedInputFieldTypeNullable: false, addedInputFieldType: 'String!', + addedToNewType: false, }, type: 'INPUT_FIELD_ADDED', }, @@ -2125,6 +2135,7 @@ describe('schema publishing changes are persisted', () => { meta: { objectTypeName: 'Query', addedInterfaceName: 'Foo', + addedToNewType: false, }, type: 'OBJECT_TYPE_INTERFACE_ADDED', }, @@ -2337,6 +2348,7 @@ describe('schema publishing changes are persisted', () => { equalsObject: { meta: { addedTypeName: 'A', + addedTypeKind: 'ObjectTypeDefinition', }, type: 'TYPE_ADDED', }, @@ -2508,13 +2520,14 @@ describe('schema publishing changes are persisted', () => { meta: { unionName: 'C', addedUnionMemberTypeName: 'B', + addedToNewType: false, }, type: 'UNION_MEMBER_ADDED', }, }); persistedTest({ - name: 'UnionMemberAddedModel', + name: 'UnionMemberRemovedModel', schemaBefore: /* GraphQL */ ` type Query { a: String! @@ -2612,6 +2625,8 @@ describe('schema publishing changes are persisted', () => { enumName: 'Role', enumValueName: 'USER', addedDirectiveName: 'auth', + addedToNewType: false, + directiveRepeatedTimes: 1, }, type: 'DIRECTIVE_USAGE_ENUM_VALUE_ADDED', }, @@ -2648,6 +2663,7 @@ describe('schema publishing changes are persisted', () => { enumName: 'Role', enumValueName: 'USER', removedDirectiveName: 'auth', + directiveRepeatedTimes: 1, }, type: 'DIRECTIVE_USAGE_ENUM_VALUE_REMOVED', }, @@ -2681,6 +2697,7 @@ describe('schema publishing changes are persisted', () => { `, equalsObject: { meta: { + deprecationReason: 'No longer supported', typeName: 'User', fieldName: 'name', }, @@ -2745,6 +2762,8 @@ describe('schema publishing changes are persisted', () => { fieldName: 'user', argumentName: 'id', addedDirectiveName: 'validate', + addedToNewType: false, + directiveRepeatedTimes: 1, }, type: 'DIRECTIVE_USAGE_ARGUMENT_DEFINITION_ADDED', }, @@ -2772,6 +2791,7 @@ describe('schema publishing changes are persisted', () => { fieldName: 'user', argumentName: 'id', removedDirectiveName: 'validate', + directiveRepeatedTimes: 1, }, type: 'DIRECTIVE_USAGE_ARGUMENT_DEFINITION_REMOVED', }, @@ -2805,6 +2825,8 @@ describe('schema publishing changes are persisted', () => { meta: { objectName: 'User', addedDirectiveName: 'auth', + addedToNewType: false, + directiveRepeatedTimes: 1, }, type: 'DIRECTIVE_USAGE_OBJECT_ADDED', }, @@ -2838,6 +2860,7 @@ describe('schema publishing changes are persisted', () => { meta: { objectName: 'User', removedDirectiveName: 'auth', + directiveRepeatedTimes: 1, }, type: 'DIRECTIVE_USAGE_OBJECT_REMOVED', }, @@ -2874,6 +2897,9 @@ describe('schema publishing changes are persisted', () => { inputObjectName: 'UserInput', inputFieldName: 'email', addedDirectiveName: 'validate', + addedToNewType: false, + directiveRepeatedTimes: 1, + inputFieldType: 'String!', }, type: 'DIRECTIVE_USAGE_INPUT_FIELD_DEFINITION_ADDED', }, @@ -2907,6 +2933,7 @@ describe('schema publishing changes are persisted', () => { `, equalsObject: { meta: { + directiveRepeatedTimes: 0, inputObjectName: 'UserInput', inputFieldName: 'email', removedDirectiveName: 'validate', @@ -2943,6 +2970,8 @@ describe('schema publishing changes are persisted', () => { meta: { interfaceName: 'Node', addedDirectiveName: 'auth', + addedToNewType: false, + directiveRepeatedTimes: 1, }, type: 'DIRECTIVE_USAGE_INTERFACE_ADDED', }, @@ -2974,12 +3003,155 @@ describe('schema publishing changes are persisted', () => { `, equalsObject: { meta: { + directiveRepeatedTimes: 1, interfaceName: 'Node', removedDirectiveName: 'auth', }, type: 'DIRECTIVE_USAGE_INTERFACE_REMOVED', }, }); + + persistedTest({ + name: 'DirectiveUsageArgumentAdded', + schemaBefore: /* GraphQL */ ` + directive @auth(roles: [String!]) on OBJECT + + interface Node { + id: ID! + } + + type Query @auth { + node: Node + } + `, + schemaAfter: /* GraphQL */ ` + directive @auth(roles: [String!]) on OBJECT + + interface Node { + id: ID! + } + + type Query @auth(roles: ["node:read"]) { + node: Node + } + `, + equalsObject: { + meta: { + addedArgumentName: 'roles', + addedArgumentValue: '["node:read"]', + directiveName: 'auth', + directiveRepeatedTimes: 1, + oldArgumentValue: null, + parentArgumentName: null, + parentEnumValueName: null, + parentFieldName: null, + parentTypeName: 'Query', + }, + type: 'DIRECTIVE_USAGE_ARGUMENT_ADDED', + }, + }); + + persistedTest({ + name: 'DirectiveUsageArgumentRemoved', + schemaBefore: /* GraphQL */ ` + directive @auth(roles: [String!]) on OBJECT + + interface Node { + id: ID! + } + + type Query @auth(roles: ["node:read"]) { + node: Node + } + `, + schemaAfter: /* GraphQL */ ` + directive @auth(roles: [String!]) on OBJECT + + interface Node { + id: ID! + } + + type Query @auth { + node: Node + } + `, + equalsObject: { + meta: { + directiveName: 'auth', + directiveRepeatedTimes: 1, + parentArgumentName: null, + parentEnumValueName: null, + parentFieldName: null, + parentTypeName: 'Query', + removedArgumentName: 'roles', + }, + type: 'DIRECTIVE_USAGE_ARGUMENT_REMOVED', + }, + }); + + persistedTest({ + name: 'DirectiveRepeatableAdded', + schemaBefore: /* GraphQL */ ` + directive @auth on OBJECT + + interface Node { + id: ID! + } + + type Query @auth { + node: Node + } + `, + schemaAfter: /* GraphQL */ ` + directive @auth repeatable on OBJECT + + interface Node { + id: ID! + } + + type Query @auth { + node: Node + } + `, + equalsObject: { + meta: { + directiveName: 'auth', + }, + type: 'DIRECTIVE_REPEATABLE_ADDED', + }, + }); + + persistedTest({ + name: 'DirectiveRepeatableRemoved', + schemaBefore: /* GraphQL */ ` + directive @auth repeatable on OBJECT + + interface Node { + id: ID! + } + + type Query @auth { + node: Node + } + `, + schemaAfter: /* GraphQL */ ` + directive @auth on OBJECT + + interface Node { + id: ID! + } + + type Query @auth { + node: Node + } + `, + equalsObject: { + meta: { + directiveName: 'auth', + }, + type: 'DIRECTIVE_REPEATABLE_REMOVED', + }, + }); }); const SchemaCompareToPreviousVersionQuery = graphql(` diff --git a/packages/libraries/cli/package.json b/packages/libraries/cli/package.json index bf46ace256e..31925a1add8 100644 --- a/packages/libraries/cli/package.json +++ b/packages/libraries/cli/package.json @@ -49,7 +49,7 @@ }, "dependencies": { "@graphql-hive/core": "workspace:*", - "@graphql-inspector/core": "6.4.1", + "@graphql-inspector/core": "7.0.3", "@graphql-tools/code-file-loader": "~8.1.0", "@graphql-tools/graphql-file-loader": "~8.1.0", "@graphql-tools/json-file-loader": "~8.0.0", diff --git a/packages/services/api/package.json b/packages/services/api/package.json index 636365257f4..cc47b59cd83 100644 --- a/packages/services/api/package.json +++ b/packages/services/api/package.json @@ -17,7 +17,7 @@ "@date-fns/utc": "2.1.1", "@graphql-hive/core": "workspace:*", "@graphql-hive/signal": "1.0.0", - "@graphql-inspector/core": "6.4.1", + "@graphql-inspector/core": "7.0.3", "@graphql-tools/merge": "9.1.1", "@hive/cdn-script": "workspace:*", "@hive/emails": "workspace:*", diff --git a/packages/services/api/src/modules/schema/providers/inspector.ts b/packages/services/api/src/modules/schema/providers/inspector.ts index f0e75a18eb7..34ed1bcb2fe 100644 --- a/packages/services/api/src/modules/schema/providers/inspector.ts +++ b/packages/services/api/src/modules/schema/providers/inspector.ts @@ -10,7 +10,7 @@ import { type GraphQLSchema, } from 'graphql'; import { Injectable, Scope } from 'graphql-modules'; -import { Change, ChangeType, diff, TypeOfChangeType } from '@graphql-inspector/core'; +import { Change, ChangeType, diff, DiffRule, TypeOfChangeType } from '@graphql-inspector/core'; import { traceFn } from '@hive/service-common'; import { HiveSchemaChangeModel } from '@hive/storage'; import { Logger } from '../../shared/providers/logger'; @@ -34,7 +34,7 @@ export class Inspector { async diff(existing: GraphQLSchema, incoming: GraphQLSchema) { this.logger.debug('Comparing Schemas'); - const changes = await diff(existing, incoming); + const changes = await diff(existing, incoming, [DiffRule.simplifyChanges]); return changes .filter(dropTrimmedDescriptionChangedChange) diff --git a/packages/services/storage/package.json b/packages/services/storage/package.json index fe2522382ff..0a637423229 100644 --- a/packages/services/storage/package.json +++ b/packages/services/storage/package.json @@ -16,7 +16,7 @@ "db:generate": "schemats generate --config schemats.cjs -o src/db/types.ts && prettier --write src/db/types.ts" }, "devDependencies": { - "@graphql-inspector/core": "6.4.1", + "@graphql-inspector/core": "7.0.3", "@hive/service-common": "workspace:*", "@sentry/node": "7.120.2", "@sentry/types": "7.120.2", @@ -26,6 +26,7 @@ "dotenv": "16.4.7", "fast-json-stable-stringify": "2.1.0", "got": "14.4.7", + "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "pg-promise": "11.10.2", "slonik": "30.4.4", "slonik-interceptor-query-logging": "46.4.0", diff --git a/packages/services/storage/src/schema-change-meta.ts b/packages/services/storage/src/schema-change-meta.ts index d79c49b0c6e..2dfc0f6f2e7 100644 --- a/packages/services/storage/src/schema-change-meta.ts +++ b/packages/services/storage/src/schema-change-meta.ts @@ -13,8 +13,12 @@ import { directiveLocationAddedFromMeta, directiveLocationRemovedFromMeta, directiveRemovedFromMeta, + directiveRepeatableAddedFromMeta, + directiveRepeatableRemovedFromMeta, + directiveUsageArgumentAddedFromMeta, directiveUsageArgumentDefinitionAddedFromMeta, directiveUsageArgumentDefinitionRemovedFromMeta, + directiveUsageArgumentRemovedFromMeta, directiveUsageEnumAddedFromMeta, directiveUsageEnumRemovedFromMeta, directiveUsageEnumValueAddedFromMeta, @@ -195,6 +199,10 @@ export function schemaChangeFromSerializableChange( return directiveUsageInputFieldDefinitionAddedFromMeta(change); case ChangeType.DirectiveUsageInputFieldDefinitionRemoved: return directiveUsageInputFieldDefinitionRemovedFromMeta(change); + case ChangeType.DirectiveUsageArgumentAdded: + return directiveUsageArgumentAddedFromMeta(change); + case ChangeType.DirectiveUsageArgumentRemoved: + return directiveUsageArgumentRemovedFromMeta(change); case ChangeType.EnumValueRemoved: return enumValueRemovedFromMeta(change); case ChangeType.EnumValueAdded: @@ -273,6 +281,10 @@ export function schemaChangeFromSerializableChange( return unionMemberRemovedFromMeta(change); case ChangeType.UnionMemberAdded: return buildUnionMemberAddedMessageFromMeta(change); + case ChangeType.DirectiveRepeatableAdded: + return directiveRepeatableAddedFromMeta(change); + case ChangeType.DirectiveRepeatableRemoved: + return directiveRepeatableRemovedFromMeta(change); case 'REGISTRY_SERVICE_URL_CHANGED': return buildRegistryServiceURLFromMeta(change); default: diff --git a/packages/services/storage/src/schema-change-model.ts b/packages/services/storage/src/schema-change-model.ts index 6a076b7340a..e9455b94bcc 100644 --- a/packages/services/storage/src/schema-change-model.ts +++ b/packages/services/storage/src/schema-change-model.ts @@ -1,6 +1,7 @@ /** These mirror DB models from */ import crypto from 'node:crypto'; import stableJSONStringify from 'fast-json-stable-stringify'; +import { Kind } from 'graphql'; import { SerializableValue } from 'slonik'; import { z } from 'zod'; import { @@ -16,9 +17,12 @@ import { DirectiveLocationAddedChange, DirectiveLocationRemovedChange, DirectiveRemovedChange, + DirectiveRepeatableAddedChange, + DirectiveRepeatableRemovedChange, + DirectiveUsageArgumentAddedChange, DirectiveUsageArgumentDefinitionAddedChange, - DirectiveUsageArgumentDefinitionChange, DirectiveUsageArgumentDefinitionRemovedChange, + DirectiveUsageArgumentRemovedChange, DirectiveUsageEnumAddedChange, DirectiveUsageEnumRemovedChange, DirectiveUsageEnumValueAddedChange, @@ -81,7 +85,6 @@ import { TypeDescriptionChangedChange, TypeDescriptionRemovedChange, TypeKindChangedChange, - TypeOfChangeType, TypeRemovedChange, UnionMemberAddedChange, UnionMemberRemovedChange, @@ -100,6 +103,10 @@ const FieldArgumentTypeChangedLiteral = z.literal("FIELD_ARGUMENT_TYPE_CHANGED" // prettier-ignore const DirectiveRemovedLiteral = z.literal("DIRECTIVE_REMOVED" satisfies `${typeof ChangeType.DirectiveRemoved}`) // prettier-ignore +const DirectiveRepeatableAddedLiteral = z.literal("DIRECTIVE_REPEATABLE_ADDED" satisfies `${typeof ChangeType.DirectiveRepeatableAdded}`) +// prettier-ignore +const DirectiveRepeatableRemovedLiteral = z.literal("DIRECTIVE_REPEATABLE_REMOVED" satisfies `${typeof ChangeType.DirectiveRepeatableRemoved}`) +// prettier-ignore const DirectiveAddedLiteral = z.literal("DIRECTIVE_ADDED" satisfies `${typeof ChangeType.DirectiveAdded}`) // prettier-ignore const DirectiveDescriptionChangedLiteral = z.literal("DIRECTIVE_DESCRIPTION_CHANGED" satisfies `${typeof ChangeType.DirectiveDescriptionChanged}`) @@ -243,20 +250,13 @@ const TypeDescriptionAddedLiteral = z.literal("TYPE_DESCRIPTION_ADDED" satisfie const UnionMemberRemovedLiteral = z.literal("UNION_MEMBER_REMOVED" satisfies `${typeof ChangeType.UnionMemberRemoved}`) // prettier-ignore const UnionMemberAddedLiteral = z.literal("UNION_MEMBER_ADDED" satisfies `${typeof ChangeType.UnionMemberAdded}`) +// prettier-ignore +const DirectiveUsageArgumentAddedLiteral = z.literal("DIRECTIVE_USAGE_ARGUMENT_ADDED" satisfies `${typeof ChangeType.DirectiveUsageArgumentAdded}`) +// prettier-ignore +const DirectiveUsageArgumentRemovedLiteral = z.literal("DIRECTIVE_USAGE_ARGUMENT_REMOVED" satisfies `${typeof ChangeType.DirectiveUsageArgumentRemoved}`) -/** - * @source https://github.com/colinhacks/zod/issues/372#issuecomment-1280054492 - */ type Implements = { - [key in keyof Model]-?: undefined extends Model[key] - ? null extends Model[key] - ? z.ZodNullableType>> - : z.ZodOptionalType> - : null extends Model[key] - ? z.ZodNullableType> - : Model[key] extends TypeOfChangeType - ? z.ZodLiteral<`${Model[key]}`> - : z.ZodType; + [K in keyof Model]-?: z.ZodTypeAny & { _output: Model[K] }; }; export function implement() { @@ -315,10 +315,28 @@ export const DirectiveRemovedModel = implement().with({ }), }); +export const DirectiveRepeatableAddedModel = implement().with({ + type: DirectiveRepeatableAddedLiteral, + meta: z.object({ + directiveName: z.string(), + }), +}); + +export const DirectiveRepeatableRemovedModel = implement().with({ + type: DirectiveRepeatableRemovedLiteral, + meta: z.object({ + directiveName: z.string(), + }), +}); + export const DirectiveAddedModel = implement().with({ type: DirectiveAddedLiteral, meta: z.object({ addedDirectiveName: z.string(), + // for backwards compatibility + addedDirectiveRepeatable: z.boolean().default(false), + addedDirectiveLocations: z.array(z.string()).default([]), + addedDirectiveDescription: z.string().nullish().default(null), // string | null; }), }); @@ -354,7 +372,11 @@ export const DirectiveArgumentAddedModel = implement().with({ type: DirectiveUsageUnionMemberRemovedLiteral, @@ -455,6 +483,7 @@ export const DirectiveUsageUnionMemberRemovedModel = unionName: z.string(), removedUnionMemberTypeName: z.string(), removedDirectiveName: z.string(), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -465,6 +494,8 @@ export const DirectiveUsageFieldDefinitionAddedModel = typeName: z.string(), fieldName: z.string(), addedDirectiveName: z.string(), + addedToNewType: z.boolean().default(false), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -475,6 +506,7 @@ export const DirectiveUsageFieldDefinitionRemovedModel = typeName: z.string(), fieldName: z.string(), removedDirectiveName: z.string(), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -485,6 +517,9 @@ export const DirectiveUsageInputFieldDefinitionAddedModel = inputObjectName: z.string(), inputFieldName: z.string(), addedDirectiveName: z.string(), + addedToNewType: z.boolean().default(false), + inputFieldType: z.string().default(''), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -495,6 +530,7 @@ export const DirectiveUsageInputFieldDefinitionRemovedModel = inputObjectName: z.string(), inputFieldName: z.string(), removedDirectiveName: z.string(), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -506,17 +542,8 @@ export const DirectiveUsageArgumentDefinitionAddedModel = fieldName: z.string(), argumentName: z.string(), addedDirectiveName: z.string(), - }), - }); - -export const DirectiveUsageArgumentDefinitionModel = - implement().with({ - type: DirectiveUsageArgumentDefinitionAddedLiteral, - meta: z.object({ - typeName: z.string(), - fieldName: z.string(), - argumentName: z.string(), - addedDirectiveName: z.string(), + addedToNewType: z.boolean().default(false), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -528,6 +555,7 @@ export const DirectiveUsageArgumentDefinitionRemovedModel = fieldName: z.string(), argumentName: z.string(), removedDirectiveName: z.string(), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -536,6 +564,8 @@ export const DirectiveUsageEnumAddedModel = implement().with({ type: DirectiveUsageInterfaceAddedLiteral, meta: z.object({ interfaceName: z.string(), addedDirectiveName: z.string(), + addedToNewType: z.boolean().default(false), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -622,6 +663,7 @@ export const DirectiveUsageInterfaceRemovedModel = meta: z.object({ interfaceName: z.string(), removedDirectiveName: z.string(), + directiveRepeatedTimes: z.number().default(1), }), }); @@ -630,6 +672,8 @@ export const DirectiveUsageSchemaAddedModel = implement().with( + { + type: DirectiveUsageArgumentAddedLiteral, + meta: z.object({ + directiveName: z.string(), + addedArgumentName: z.string(), + addedArgumentValue: z.string(), + oldArgumentValue: z.string().nullable(), + parentTypeName: z.string().nullable(), + parentFieldName: z.string().nullable(), + parentArgumentName: z.string().nullable(), + parentEnumValueName: z.string().nullable(), + directiveRepeatedTimes: z.number().default(1), }), }, ); +export const DirectiveUsageArgumentRemovedModel = + implement().with({ + type: DirectiveUsageArgumentRemovedLiteral, + meta: z.object({ + directiveName: z.string(), + removedArgumentName: z.string(), + parentTypeName: z.string().nullable(), + parentFieldName: z.string().nullable(), + parentArgumentName: z.string().nullable(), + parentEnumValueName: z.string().nullable(), + directiveRepeatedTimes: z.number().default(1), + }), + }); + // Enum export const EnumValueRemovedModel = implement().with({ @@ -654,11 +729,13 @@ export const EnumValueRemovedModel = implement().with({ }), }); -export const EnumValueAdded = implement().with({ +export const EnumValueAddedModel = implement().with({ type: EnumValueAddedLiteral, meta: z.object({ enumName: z.string(), addedEnumValueName: z.string(), + addedToNewType: z.boolean().default(false), + addedDirectiveDescription: z.string().nullable().optional().default(null), }), }); @@ -723,6 +800,7 @@ export const FieldAddedModel = implement().with({ typeName: z.string(), addedFieldName: z.string(), typeType: z.string(), + addedFieldReturnType: z.string().default(''), // optional for backwards compatibility }), }); @@ -758,6 +836,7 @@ export const FieldDeprecationAddedModel = implement meta: z.object({ typeName: z.string(), fieldName: z.string(), + deprecationReason: z.string().default('No longer supported'), // for backwards compatibility }), }); @@ -820,6 +899,7 @@ export const FieldArgumentAddedModel = implement().wit addedArgumentType: z.string(), hasDefaultValue: z.boolean(), isAddedFieldArgumentBreaking: z.boolean(), + addedToNewField: z.boolean().default(false), // for backwards compatibility }), }); @@ -851,6 +931,8 @@ export const InputFieldAddedModel = implement().with({ addedInputFieldName: z.string(), isAddedInputFieldTypeNullable: z.boolean(), addedInputFieldType: z.string(), + addedToNewType: z.boolean().default(false), // default to make backwards compatible + addedFieldDefault: z.string().optional(), }), }); @@ -913,6 +995,7 @@ export const ObjectTypeInterfaceAddedModel = implement().with({ export const TypeAddedModel = implement().with({ type: TypeAddedLiteral, - meta: z.object({ - addedTypeName: z.string(), - }), + meta: z.union([ + z.object({ + addedTypeName: z.string(), + addedTypeKind: z.literal(Kind.INPUT_OBJECT_TYPE_DEFINITION), + addedTypeIsOneOf: z.boolean().default(false), + }), + z.object({ + addedTypeName: z.string(), + addedTypeKind: z + .union([ + z.literal(Kind.ENUM_TYPE_DEFINITION), + z.literal(Kind.OBJECT_TYPE_DEFINITION), + z.literal(Kind.INTERFACE_TYPE_DEFINITION), + z.literal(Kind.UNION_TYPE_DEFINITION), + z.literal(Kind.SCALAR_TYPE_DEFINITION), + ]) + /** Default isn't important for old changes b/c they won't be patched but it keeps the model safe for them. */ + .default(Kind.OBJECT_TYPE_DEFINITION), + }), + ]), }); export const TypeKindChangedModel = implement().with({ @@ -1014,6 +1114,7 @@ export const UnionMemberAddedModel = implement().with({ meta: z.object({ unionName: z.string(), addedUnionMemberTypeName: z.string(), + addedToNewType: z.boolean().default(false), // default for backwards compatibility }), }); @@ -1052,11 +1153,15 @@ export const SchemaChangeModel = z.union([ DirectiveDescriptionChangedModel, DirectiveLocationAddedModel, DirectiveLocationRemovedModel, + DirectiveRepeatableAddedModel, + DirectiveRepeatableRemovedModel, DirectiveArgumentAddedModel, DirectiveArgumentRemovedModel, DirectiveArgumentDescriptionChangedModel, DirectiveArgumentDefaultValueChangedModel, DirectiveArgumentTypeChangedModel, + DirectiveUsageArgumentAddedModel, + DirectiveUsageArgumentRemovedModel, DirectiveUsageEnumValueAddedModel, DirectiveUsageEnumValueRemovedModel, DirectiveUsageFieldAddedModel, @@ -1068,7 +1173,6 @@ export const SchemaChangeModel = z.union([ DirectiveUsageInputFieldDefinitionAddedModel, DirectiveUsageInputFieldDefinitionRemovedModel, DirectiveUsageArgumentDefinitionAddedModel, - DirectiveUsageArgumentDefinitionModel, DirectiveUsageArgumentDefinitionRemovedModel, DirectiveUsageEnumAddedModel, DirectiveUsageEnumRemovedModel, @@ -1083,9 +1187,10 @@ export const SchemaChangeModel = z.union([ DirectiveUsageSchemaAddedModel, DirectiveUsageSchemaRemovedModel, EnumValueRemovedModel, - EnumValueAdded, + EnumValueAddedModel, EnumValueDescriptionChangedModel, EnumValueDeprecationReasonChangedModel, + DirectiveArgumentTypeChangedModel, EnumValueDeprecationReasonAddedModel, EnumValueDeprecationReasonRemovedModel, FieldRemovedModel, @@ -1229,10 +1334,10 @@ export const HiveSchemaChangeModel = z breakingChangeSchemaCoordinate = change.path ?? null; if ( - isInputFieldAddedChange(rawChange) && - rawChange.meta.isAddedInputFieldTypeNullable === false + isInputFieldAddedChange(change) && + change.meta.isAddedInputFieldTypeNullable === false ) { - breakingChangeSchemaCoordinate = rawChange.meta.inputName; + breakingChangeSchemaCoordinate = change.meta.inputName; } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28655dc8532..cd8e418786b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -100,7 +100,7 @@ importers: version: 6.0.0(graphql@16.9.0) '@graphql-codegen/cli': specifier: 6.0.1 - version: 6.0.1(@babel/core@7.26.0)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)(typescript@5.7.3) + version: 6.0.1(@babel/core@7.26.10)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)(typescript@5.7.3) '@graphql-codegen/client-preset': specifier: 5.1.1 version: 5.1.1(encoding@0.1.13)(graphql@16.9.0) @@ -118,7 +118,7 @@ importers: version: 3.0.1(graphql@16.9.0) '@graphql-eslint/eslint-plugin': specifier: 3.20.1 - version: 3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.26.0)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) + version: 3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.26.10)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) '@graphql-inspector/cli': specifier: 4.0.3 version: 4.0.3(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) @@ -432,8 +432,8 @@ importers: specifier: workspace:* version: link:../core/dist '@graphql-inspector/core': - specifier: 6.4.1 - version: 6.4.1(graphql@16.9.0) + specifier: 7.0.3 + version: 7.0.3(graphql@16.9.0) '@graphql-tools/code-file-loader': specifier: ~8.1.0 version: 8.1.0(graphql@16.9.0) @@ -734,8 +734,8 @@ importers: specifier: 1.0.0 version: 1.0.0 '@graphql-inspector/core': - specifier: 6.4.1 - version: 6.4.1(graphql@16.9.0) + specifier: 7.0.3 + version: 7.0.3(graphql@16.9.0) '@graphql-tools/merge': specifier: 9.1.1 version: 9.1.1(graphql@16.9.0) @@ -1132,7 +1132,7 @@ importers: devDependencies: '@graphql-eslint/eslint-plugin': specifier: 3.20.1 - version: 3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.26.0)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) + version: 3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.26.10)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) '@hive/service-common': specifier: workspace:* version: link:../service-common @@ -1444,8 +1444,8 @@ importers: packages/services/storage: devDependencies: '@graphql-inspector/core': - specifier: 6.4.1 - version: 6.4.1(graphql@16.11.0) + specifier: 7.0.3 + version: 7.0.3(graphql@16.9.0) '@hive/service-common': specifier: workspace:* version: link:../service-common @@ -1473,6 +1473,9 @@ importers: got: specifier: 14.4.7 version: 14.4.7(patch_hash=f7660444905ddadee251ff98241119fb54f5fec1e673a428192da361d5636299) + graphql: + specifier: ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + version: 16.9.0 pg-promise: specifier: 11.10.2 version: 11.10.2(pg-query-stream@4.7.0(pg@8.13.1)) @@ -2024,7 +2027,7 @@ importers: version: 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-select: specifier: 5.9.0 - version: 5.9.0(@babel/core@7.26.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.9.0(@babel/core@7.26.10)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-string-replace: specifier: 1.1.1 version: 1.1.1 @@ -2120,7 +2123,7 @@ importers: version: 1.1.6(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@theguild/components': specifier: 9.11.0 - version: 9.11.0(@theguild/tailwind-config@0.6.3(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.3)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.5.0(react@19.0.0)) + version: 9.11.0(@theguild/tailwind-config@0.6.3(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.3)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.5.0(react@19.0.0)) '@types/rss': specifier: ^0.0.32 version: 0.0.32 @@ -2138,7 +2141,7 @@ importers: version: 0.542.0(react@19.0.0) next: specifier: 15.5.3 - version: 15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: specifier: 19.0.0 version: 19.0.0 @@ -2181,7 +2184,7 @@ importers: version: 18.3.18 next-sitemap: specifier: 4.2.3 - version: 4.2.3(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + version: 4.2.3(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) pagefind: specifier: ^1.2.0 version: 1.3.0 @@ -2898,10 +2901,18 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.3': resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.28.5': + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} + engines: {node: '>=6.9.0'} + '@babel/core@7.22.9': resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} engines: {node: '>=6.9.0'} @@ -2910,10 +2921,18 @@ packages: resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} + '@babel/core@7.26.10': + resolution: {integrity: sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.26.3': resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -2922,6 +2941,10 @@ packages: resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.24.5': resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} engines: {node: '>=6.9.0'} @@ -2936,6 +2959,10 @@ packages: resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} engines: {node: '>=6.9.0'} + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.24.5': resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} engines: {node: '>=6.9.0'} @@ -2958,6 +2985,10 @@ packages: resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + '@babel/helper-replace-supers@7.24.1': resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} engines: {node: '>=6.9.0'} @@ -2980,14 +3011,26 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.26.10': resolution: {integrity: sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==} engines: {node: '>=6.9.0'} @@ -3002,6 +3045,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-proposal-class-properties@7.18.6': resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} @@ -3033,6 +3081,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-assertions@7.27.1': + resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.23.3': resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} @@ -3184,10 +3238,18 @@ packages: resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.26.4': resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + '@babel/types@7.26.10': resolution: {integrity: sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==} engines: {node: '>=6.9.0'} @@ -3196,6 +3258,10 @@ packages: resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + '@balena/dockerignore@1.0.2': resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} @@ -4036,8 +4102,8 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-inspector/core@6.4.1': - resolution: {integrity: sha512-nkwT3bNsYVotQ/xHe7o+No89HB2RSsy/AVyZCoDElkKbPr6a4MtwYxPyXrBsS8u5nu6Czr0fAE5lF5tS5yPmeg==} + '@graphql-inspector/core@7.0.3': + resolution: {integrity: sha512-85WkFZkC2GjGLTf+PB6L347zJhQLZ7FH5OoMz6EXoacFjd6iQ5Xf/Qdz3Vu1tjLY70ZKj7jddI4GEPompNSkJg==} engines: {node: '>=18.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 @@ -4366,6 +4432,12 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/json-file-loader@8.0.1': + resolution: {integrity: sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA==} + engines: {node: '>=16.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + '@graphql-tools/load@7.8.14': resolution: {integrity: sha512-ASQvP+snHMYm+FhIaLxxFgVdRaM0vrN9wW2BKInQpktwWTXVyk+yP5nQUCEGmn0RTdlPKrffBaigxepkEAJPrg==} peerDependencies: @@ -4953,6 +5025,9 @@ packages: typescript: optional: true + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -4980,6 +5055,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -17484,8 +17562,8 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@antfu/install-pkg@1.1.0': dependencies: @@ -17763,13 +17841,13 @@ snapshots: '@ardatan/relay-compiler@12.0.0(encoding@0.1.13)(graphql@16.9.0)': dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.10 + '@babel/core': 7.26.10 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 '@babel/runtime': 7.26.10 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.10 - babel-preset-fbjs: 3.4.0(@babel/core@7.26.0) + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + babel-preset-fbjs: 3.4.0(@babel/core@7.26.10) chalk: 4.1.2 fb-watchman: 2.0.2 fbjs: 3.0.4(encoding@0.1.13) @@ -17878,8 +17956,8 @@ snapshots: dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sso-oidc': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -18031,11 +18109,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso-oidc@3.596.0(@aws-sdk/client-sts@3.596.0)': + '@aws-sdk/client-sso-oidc@3.596.0': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -18074,7 +18152,6 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: - - '@aws-sdk/client-sts' - aws-crt '@aws-sdk/client-sso-oidc@3.723.0(@aws-sdk/client-sts@3.723.0)': @@ -18251,11 +18328,11 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sts@3.596.0': + '@aws-sdk/client-sts@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: '@aws-crypto/sha256-browser': 3.0.0 '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0 '@aws-sdk/core': 3.592.0 '@aws-sdk/credential-provider-node': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0) '@aws-sdk/middleware-host-header': 3.577.0 @@ -18294,6 +18371,7 @@ snapshots: '@smithy/util-utf8': 3.0.0 tslib: 2.8.1 transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' - aws-crt '@aws-sdk/client-sts@3.723.0': @@ -18444,7 +18522,7 @@ snapshots: '@aws-sdk/credential-provider-ini@3.596.0(@aws-sdk/client-sso-oidc@3.596.0)(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/credential-provider-env': 3.587.0 '@aws-sdk/credential-provider-http': 3.596.0 '@aws-sdk/credential-provider-process': 3.587.0 @@ -18620,7 +18698,7 @@ snapshots: '@aws-sdk/credential-provider-web-identity@3.587.0(@aws-sdk/client-sts@3.596.0)': dependencies: - '@aws-sdk/client-sts': 3.596.0 + '@aws-sdk/client-sts': 3.596.0(@aws-sdk/client-sso-oidc@3.596.0) '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.11 '@smithy/types': 3.7.2 @@ -18915,7 +18993,7 @@ snapshots: '@aws-sdk/token-providers@3.587.0(@aws-sdk/client-sso-oidc@3.596.0)': dependencies: - '@aws-sdk/client-sso-oidc': 3.596.0(@aws-sdk/client-sts@3.596.0) + '@aws-sdk/client-sso-oidc': 3.596.0 '@aws-sdk/types': 3.577.0 '@smithy/property-provider': 3.1.11 '@smithy/shared-ini-file-loader': 3.1.12 @@ -19076,22 +19154,30 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.26.3': {} + '@babel/compat-data@7.28.5': {} + '@babel/core@7.22.9': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/helper-compilation-targets': 7.25.9 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.22.9) '@babel/helpers': 7.26.10 - '@babel/parser': 7.26.3 - '@babel/template': 7.26.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.10 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 convert-source-map: 1.9.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -19118,6 +19204,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.26.10': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) + '@babel/helpers': 7.26.10 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.26.3': dependencies: '@babel/parser': 7.26.10 @@ -19126,9 +19232,17 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.0.2 + '@babel/helper-annotate-as-pure@7.22.5': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@babel/helper-compilation-targets@7.25.9': dependencies: @@ -19138,36 +19252,46 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.26.0)': + '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/core': 7.26.0 + '@babel/compat-data': 7.28.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.26.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0) + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.10) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@babel/helper-function-name@7.24.7': dependencies: - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + + '@babel/helper-globals@7.28.0': {} '@babel/helper-member-expression-to-functions@7.24.5': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.10 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -19175,8 +19299,8 @@ snapshots: dependencies: '@babel/core': 7.22.9 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -19184,199 +19308,220 @@ snapshots: dependencies: '@babel/core': 7.26.0 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.22.5': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-replace-supers@7.24.1(@babel/core@7.26.0)': + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-replace-supers@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.5 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-simple-access@7.25.7': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.10 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} + '@babel/helpers@7.26.10': dependencies: - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 '@babel/parser@7.26.10': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@babel/parser@7.26.3': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.26.0)': + '@babel/parser@7.28.5': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/types': 7.28.5 - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.26.0)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.26.10)': dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.26.0) + '@babel/core': 7.26.10 + '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.26.10) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/compat-data': 7.28.5 + '@babel/core': 7.26.10 + '@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.26.10) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.26.10) - '@babel/plugin-syntax-flow@7.22.5(@babel/core@7.26.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.22.9)': + '@babel/plugin-syntax-flow@7.22.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.22.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.22.9)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.22.9 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-classes@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-classes@7.24.5(@babel/core@7.26.10)': + dependencies: + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.10) '@babel/helper-split-export-declaration': 7.24.7 globals: 11.12.0 - '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.26.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.26.0)': + '@babel/plugin-transform-flow-strip-types@7.22.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.26.0) + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.26.10) - '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-for-of@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-function-name@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-literals@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.10) + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-simple-access': 7.25.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-object-super@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.0) + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.26.10) - '@babel/plugin-transform-parameters@7.24.5(@babel/core@7.26.0)': + '@babel/plugin-transform-parameters@7.24.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.26.0)': + '@babel/plugin-transform-react-display-name@7.22.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': dependencies: @@ -19388,32 +19533,32 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.26.0) - '@babel/types': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.26.10) + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-spread@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.26.0)': + '@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.26.10 + '@babel/helper-plugin-utils': 7.27.1 '@babel/runtime@7.26.10': dependencies: @@ -19425,18 +19570,36 @@ snapshots: '@babel/parser': 7.26.10 '@babel/types': 7.26.10 + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@babel/traverse@7.26.4': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.10 - '@babel/template': 7.26.9 - '@babel/types': 7.26.10 - debug: 4.4.1(supports-color@8.1.1) + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 globals: 11.12.0 transitivePeerDependencies: - supports-color + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + '@babel/types@7.26.10': dependencies: '@babel/helper-string-parser': 7.25.9 @@ -19447,6 +19610,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@balena/dockerignore@1.0.2': {} '@bentocache/plugin-prometheus@0.2.0(bentocache@1.1.0(patch_hash=98c0f93795fdd4f5eae32ee7915de8e9a346a24c3a917262b1f4551190f1a1af)(ioredis@5.4.2))(prom-client@15.1.3)': @@ -19764,11 +19932,11 @@ snapshots: tslib: 2.8.1 optional: true - '@emotion/babel-plugin@11.10.5(@babel/core@7.26.0)': + '@emotion/babel-plugin@11.10.5(@babel/core@7.26.10)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@babel/helper-module-imports': 7.25.9 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.26.0) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.26.10) '@babel/runtime': 7.26.10 '@emotion/hash': 0.9.0 '@emotion/memoize': 0.8.1 @@ -19807,10 +19975,10 @@ snapshots: '@emotion/memoize@0.8.1': {} - '@emotion/react@11.10.5(@babel/core@7.26.0)(@types/react@18.3.18)(react@18.3.1)': + '@emotion/react@11.10.5(@babel/core@7.26.10)(@types/react@18.3.18)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@emotion/babel-plugin': 11.10.5(@babel/core@7.26.0) + '@emotion/babel-plugin': 11.10.5(@babel/core@7.26.10) '@emotion/cache': 11.10.5 '@emotion/serialize': 1.1.1 '@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.3.1) @@ -19819,7 +19987,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 18.3.1 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@types/react': 18.3.18 transitivePeerDependencies: - supports-color @@ -20306,7 +20474,7 @@ snapshots: graphql: 16.9.0 tslib: 2.6.3 - '@graphql-codegen/cli@6.0.1(@babel/core@7.26.0)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)(typescript@5.7.3)': + '@graphql-codegen/cli@6.0.1(@babel/core@7.26.10)(@parcel/watcher@2.5.1)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)(typescript@5.7.3)': dependencies: '@babel/generator': 7.26.3 '@babel/template': 7.26.9 @@ -20501,11 +20669,11 @@ snapshots: - encoding - supports-color - '@graphql-eslint/eslint-plugin@3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.26.0)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)': + '@graphql-eslint/eslint-plugin@3.20.1(patch_hash=695fba67df25ba9d46472c8398c94c6a2ccf75d902321d8f95150f68e940313e)(@babel/core@7.26.10)(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0)': dependencies: '@babel/code-frame': 7.26.2 - '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.26.0)(graphql@16.9.0) - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.26.0)(graphql@16.9.0) + '@graphql-tools/code-file-loader': 7.3.23(@babel/core@7.26.10)(graphql@16.9.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.26.10)(graphql@16.9.0) '@graphql-tools/utils': 9.2.1(graphql@16.9.0) chalk: 4.1.2 debug: 4.3.7(supports-color@8.1.1) @@ -20557,7 +20725,7 @@ snapshots: '@graphql-inspector/graphql-loader': 4.0.2(graphql@16.9.0) '@graphql-inspector/introspect-command': 4.0.3(@graphql-inspector/config@4.0.2(graphql@16.9.0))(@graphql-inspector/loaders@4.0.3(@babel/core@7.22.9)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0))(graphql@16.9.0)(yargs@17.7.2) '@graphql-inspector/json-loader': 4.0.2(graphql@16.9.0) - '@graphql-inspector/loaders': 4.0.3(@babel/core@7.26.0)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0) + '@graphql-inspector/loaders': 4.0.3(@babel/core@7.26.10)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0) '@graphql-inspector/serve-command': 4.0.3(@graphql-inspector/config@4.0.2(graphql@16.9.0))(@graphql-inspector/loaders@4.0.3(@babel/core@7.22.9)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0))(graphql@16.9.0)(yargs@17.7.2) '@graphql-inspector/similar-command': 4.0.3(@graphql-inspector/config@4.0.2(graphql@16.9.0))(@graphql-inspector/loaders@4.0.3(@babel/core@7.22.9)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0))(graphql@16.9.0)(yargs@17.7.2) '@graphql-inspector/url-loader': 4.0.2(@types/node@22.10.5)(encoding@0.1.13)(graphql@16.9.0) @@ -20584,7 +20752,7 @@ snapshots: '@graphql-inspector/commands@4.0.3(@graphql-inspector/config@4.0.2(graphql@16.9.0))(@graphql-inspector/loaders@4.0.3(@babel/core@7.22.9)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0))(graphql@16.9.0)(yargs@17.7.2)': dependencies: '@graphql-inspector/config': 4.0.2(graphql@16.9.0) - '@graphql-inspector/loaders': 4.0.3(@babel/core@7.26.0)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0) + '@graphql-inspector/loaders': 4.0.3(@babel/core@7.26.10)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0) graphql: 16.9.0 tslib: 2.6.2 yargs: 17.7.2 @@ -20601,14 +20769,7 @@ snapshots: object-inspect: 1.12.3 tslib: 2.6.2 - '@graphql-inspector/core@6.4.1(graphql@16.11.0)': - dependencies: - dependency-graph: 1.0.0 - graphql: 16.11.0 - object-inspect: 1.13.2 - tslib: 2.6.2 - - '@graphql-inspector/core@6.4.1(graphql@16.9.0)': + '@graphql-inspector/core@7.0.3(graphql@16.9.0)': dependencies: dependency-graph: 1.0.0 graphql: 16.9.0 @@ -20694,7 +20855,7 @@ snapshots: graphql: 16.9.0 tslib: 2.6.2 - '@graphql-inspector/loaders@4.0.3(@babel/core@7.26.0)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0)': + '@graphql-inspector/loaders@4.0.3(@babel/core@7.26.10)(@graphql-inspector/config@4.0.2(graphql@16.9.0))(graphql@16.9.0)': dependencies: '@graphql-inspector/config': 4.0.2(graphql@16.9.0) '@graphql-tools/code-file-loader': 8.0.1(@babel/core@7.22.9)(graphql@16.9.0) @@ -20811,9 +20972,9 @@ snapshots: tslib: 2.8.1 value-or-promise: 1.0.12 - '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.26.0)(graphql@16.9.0)': + '@graphql-tools/code-file-loader@7.3.23(@babel/core@7.26.10)(graphql@16.9.0)': dependencies: - '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.26.0)(graphql@16.9.0) + '@graphql-tools/graphql-tag-pluck': 7.5.2(@babel/core@7.26.10)(graphql@16.9.0) '@graphql-tools/utils': 9.2.1(graphql@16.9.0) globby: 11.1.0 graphql: 16.9.0 @@ -21132,10 +21293,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.26.0)(graphql@16.9.0)': + '@graphql-tools/graphql-tag-pluck@7.5.2(@babel/core@7.26.10)(graphql@16.9.0)': dependencies: '@babel/parser': 7.26.3 - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.26.0) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.26.10) '@babel/traverse': 7.26.4 '@babel/types': 7.26.3 '@graphql-tools/utils': 9.2.1(graphql@16.9.0) @@ -21147,10 +21308,10 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.0.1(@babel/core@7.22.9)(graphql@16.9.0)': dependencies: - '@babel/parser': 7.26.10 - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.22.9) - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.10 + '@babel/parser': 7.28.5 + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.22.9) + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 '@graphql-tools/utils': 10.9.1(graphql@16.9.0) graphql: 16.9.0 tslib: 2.8.1 @@ -21160,9 +21321,9 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.2.0(graphql@16.9.0)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@babel/parser': 7.26.3 - '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.26.0) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.26.10) '@babel/traverse': 7.26.4 '@babel/types': 7.26.3 '@graphql-tools/utils': 10.9.1(graphql@16.9.0) @@ -21211,6 +21372,14 @@ snapshots: tslib: 2.8.1 unixify: 1.0.0 + '@graphql-tools/json-file-loader@8.0.1(graphql@16.9.0)': + dependencies: + '@graphql-tools/utils': 10.9.1(graphql@16.9.0) + globby: 11.1.0 + graphql: 16.9.0 + tslib: 2.8.1 + unixify: 1.0.0 + '@graphql-tools/load@7.8.14(graphql@16.9.0)': dependencies: '@graphql-tools/schema': 9.0.18(graphql@16.9.0) @@ -21586,7 +21755,7 @@ snapshots: '@ianvs/prettier-plugin-sort-imports@4.3.1(prettier@3.4.2)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@babel/generator': 7.26.3 '@babel/parser': 7.26.3 '@babel/traverse': 7.26.4 @@ -21889,6 +22058,11 @@ snapshots: optionalDependencies: typescript: 5.7.3 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -21901,8 +22075,8 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 optional: true '@jridgewell/sourcemap-codec@1.4.15': {} @@ -21916,6 +22090,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.1 @@ -26636,7 +26815,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.26.10 '@types/aria-query': 5.0.4 aria-query: 5.3.0 @@ -26668,7 +26847,7 @@ snapshots: typescript: 4.9.5 yargs: 16.2.0 - '@theguild/components@9.11.0(@theguild/tailwind-config@0.6.3(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.3)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.5.0(react@19.0.0))': + '@theguild/components@9.11.0(@theguild/tailwind-config@0.6.3(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.10.5)(typescript@5.7.3))))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(immer@10.1.3)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3)(use-sync-external-store@1.5.0(react@19.0.0))': dependencies: '@giscus/react': 3.1.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@next/bundle-analyzer': 15.1.5 @@ -26678,9 +26857,9 @@ snapshots: '@theguild/tailwind-config': 0.6.3(postcss-import@16.1.0(postcss@8.4.49))(postcss-lightningcss@1.0.1(postcss@8.4.49))(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.10.5)(typescript@5.7.3))) clsx: 2.1.1 fuzzy: 0.1.3 - next: 15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - nextra: 4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) - nextra-theme-docs: 4.0.5(patch_hash=38956679ac61493f4dbc6862445316e9909dd989c221357f4b21ce70d8c8fd5b)(@types/react@18.3.18)(immer@10.1.3)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + next: 15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + nextra: 4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + nextra-theme-docs: 4.0.5(patch_hash=38956679ac61493f4dbc6862445316e9909dd989c221357f4b21ce70d8c8fd5b)(@types/react@18.3.18)(immer@10.1.3)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) react-paginate: 8.2.0(react@19.0.0) @@ -26842,16 +27021,16 @@ snapshots: '@types/babel__generator@7.6.4': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@types/babel__template@7.4.1': dependencies: - '@babel/parser': 7.26.10 - '@babel/types': 7.26.10 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__traverse@7.18.3': dependencies: - '@babel/types': 7.26.10 + '@babel/types': 7.28.5 '@types/bcryptjs@2.4.6': {} @@ -27958,35 +28137,35 @@ snapshots: babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} - babel-preset-fbjs@3.4.0(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.26.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) - '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.26.0) - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.26.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.26.0) - '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.26.0) - '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.26.0) + babel-preset-fbjs@3.4.0(@babel/core@7.26.10): + dependencies: + '@babel/core': 7.26.10 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.10) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.26.10) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10) + '@babel/plugin-syntax-flow': 7.22.5(@babel/core@7.26.10) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.26.10) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-block-scoping': 7.24.5(@babel/core@7.26.10) + '@babel/plugin-transform-classes': 7.24.5(@babel/core@7.26.10) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-destructuring': 7.24.5(@babel/core@7.26.10) + '@babel/plugin-transform-flow-strip-types': 7.22.5(@babel/core@7.26.10) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.26.10) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-react-display-name': 7.22.5(@babel/core@7.26.10) + '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.26.10) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.26.10) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.26.10) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: - supports-color @@ -29581,7 +29760,7 @@ snapshots: esbuild-register@3.5.0(esbuild@0.25.9): dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3 esbuild: 0.25.9 transitivePeerDependencies: - supports-color @@ -30798,7 +30977,7 @@ snapshots: graphql-config@5.1.5(@types/node@22.10.5)(graphql@16.9.0)(typescript@5.7.3): dependencies: '@graphql-tools/graphql-file-loader': 8.1.1(graphql@16.9.0) - '@graphql-tools/json-file-loader': 8.0.0(graphql@16.9.0) + '@graphql-tools/json-file-loader': 8.0.1(graphql@16.9.0) '@graphql-tools/load': 8.1.2(graphql@16.9.0) '@graphql-tools/merge': 9.1.1(graphql@16.9.0) '@graphql-tools/url-loader': 8.0.33(@types/node@22.10.5)(graphql@16.9.0) @@ -30957,7 +31136,7 @@ snapshots: graphql-yoga@4.0.3(graphql@16.9.0): dependencies: '@envelop/core': 4.0.3 - '@graphql-tools/executor': 1.4.7(graphql@16.9.0) + '@graphql-tools/executor': 1.4.9(graphql@16.9.0) '@graphql-tools/schema': 10.0.25(graphql@16.9.0) '@graphql-tools/utils': 10.9.1(graphql@16.9.0) '@graphql-yoga/logger': 1.0.0 @@ -31236,7 +31415,7 @@ snapshots: http-call@5.3.0: dependencies: content-type: 1.0.5 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3 is-retry-allowed: 1.2.0 is-stream: 2.0.1 parse-json: 4.0.0 @@ -33441,20 +33620,20 @@ snapshots: neoip@2.1.0: {} - next-sitemap@4.2.3(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): + next-sitemap@4.2.3(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.6 fast-glob: 3.3.2 minimist: 1.2.8 - next: 15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-themes@0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 15.5.3 '@swc/helpers': 0.5.15 @@ -33462,7 +33641,7 @@ snapshots: postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(@babel/core@7.26.0)(react@19.0.0) + styled-jsx: 5.1.6(@babel/core@7.26.10)(react@19.0.0) optionalDependencies: '@next/swc-darwin-arm64': 15.5.3 '@next/swc-darwin-x64': 15.5.3 @@ -33478,13 +33657,13 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@4.0.5(patch_hash=38956679ac61493f4dbc6862445316e9909dd989c221357f4b21ce70d8c8fd5b)(@types/react@18.3.18)(immer@10.1.3)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)): + nextra-theme-docs@4.0.5(patch_hash=38956679ac61493f4dbc6862445316e9909dd989c221357f4b21ce70d8c8fd5b)(@types/react@18.3.18)(immer@10.1.3)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(nextra@4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)): dependencies: '@headlessui/react': 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) clsx: 2.1.1 - next: 15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-themes: 0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - nextra: 4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) + nextra: 4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3) react: 19.0.0 react-compiler-runtime: 0.0.0-experimental-22c6e49-20241219(react@19.0.0) react-dom: 19.0.0(react@19.0.0) @@ -33497,7 +33676,7 @@ snapshots: - immer - use-sync-external-store - nextra@4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): + nextra@4.0.5(patch_hash=c1d11430a02e4d51d69b615df3f615fd6dfbccfd71b122bcf781a8a35208fbc1)(next@15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.7.3): dependencies: '@formatjs/intl-localematcher': 0.5.10 '@headlessui/react': 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -33518,7 +33697,7 @@ snapshots: mdast-util-gfm: 3.0.0 mdast-util-to-hast: 13.2.0 negotiator: 1.0.0 - next: 15.5.3(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next: 15.5.3(@babel/core@7.26.10)(@opentelemetry/api@1.9.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-compiler-runtime: 0.0.0-experimental-22c6e49-20241219(react@19.0.0) react-dom: 19.0.0(react@19.0.0) @@ -34039,14 +34218,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-json@7.1.1: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 3.0.0 lines-and-columns: 2.0.3 @@ -34662,7 +34841,7 @@ snapshots: react-docgen@7.0.1: dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 '@babel/traverse': 7.26.4 '@babel/types': 7.26.3 '@types/babel__core': 7.20.5 @@ -34780,11 +34959,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-select@5.9.0(@babel/core@7.26.0)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-select@5.9.0(@babel/core@7.26.10)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 '@emotion/cache': 11.10.5 - '@emotion/react': 11.10.5(@babel/core@7.26.0)(@types/react@18.3.18)(react@18.3.1) + '@emotion/react': 11.10.5(@babel/core@7.26.10)(@types/react@18.3.18)(react@18.3.1) '@floating-ui/dom': 1.2.9 '@types/react-transition-group': 4.4.5 memoize-one: 6.0.0 @@ -36041,12 +36220,12 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.6(@babel/core@7.26.0)(react@19.0.0): + styled-jsx@5.1.6(@babel/core@7.26.10)(react@19.0.0): dependencies: client-only: 0.0.1 react: 19.0.0 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.26.10 stylis@4.1.3: {}