@vantreeseba/drizzle-graphql 13.0.0 → 13.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -566,6 +566,23 @@ type EnumNameInfo = {
566
566
  * `BuildSchemaConfig.enumNameMapper`.
567
567
  */
568
568
  type EnumNameMapper = (info: EnumNameInfo) => string | undefined;
569
+ /**
570
+ * Everything an {@link EnumValueNameMapper} needs to name one value of a generated enum: the
571
+ * value itself, plus the same context an {@link EnumNameMapper} gets for the enum around it.
572
+ */
573
+ type EnumValueNameInfo = EnumNameInfo & {
574
+ /** The stored value being named. It stays the GraphQL value's internal `value` either way. */
575
+ value: string;
576
+ /** The value's position in {@link EnumNameInfo.values}. */
577
+ index: number;
578
+ /** The GraphQL type name the enum was given — after `enumNameMapper`, if there is one. */
579
+ typeName: string;
580
+ };
581
+ /**
582
+ * Names one value of a generated GraphQL enum. Return `undefined` to keep the default name.
583
+ * See `BuildSchemaConfig.enumValueNameMapper`.
584
+ */
585
+ type EnumValueNameMapper = (info: EnumValueNameInfo) => string | undefined;
569
586
  /** Context handed to the documentation and deprecation hooks alongside the column itself. */
570
587
  type ColumnDocInfo = {
571
588
  /** The table's key in the Drizzle schema object. */
@@ -802,6 +819,10 @@ type WriteHookPayload = {
802
819
  * The rows the write produced, as the database returned them — before the output mapper,
803
820
  * so values are database-shaped. Empty at the `before` position, and on MySQL, whose
804
821
  * mutations return no rows.
822
+ *
823
+ * Each row holds the columns the client's selection asked for (plus any key a relation or
824
+ * nested write needed), **and** every column the hook names in `columns`. A column the
825
+ * client did not select and the hook did not name is absent.
805
826
  */
806
827
  rows: any[];
807
828
  context: any;
@@ -813,12 +834,26 @@ type WriteHook = (payload: WriteHookPayload) => void | Promise<void>;
813
834
  type WriteHookPositions = {
814
835
  before?: WriteHook;
815
836
  after?: WriteHook;
837
+ /**
838
+ * Columns the `after` hook's `rows` always carry, whatever the client selected: a list of
839
+ * column keys (the table object's property names, as `rows` is keyed), or `'all'` for
840
+ * every column of the table. They are added to the statement's `RETURNING` and taken back
841
+ * off before the result is mapped, so the client's response is unchanged.
842
+ *
843
+ * An unknown column fails the build, and so does `columns` without an `after` hook. On a
844
+ * top-level (every-table) registration a named column must exist on every table.
845
+ */
846
+ columns?: readonly string[] | 'all';
816
847
  };
817
848
  type WriteHooks = WriteHook | WriteHookPositions;
818
- /** Resolved, per-field hooks: `undefined` when the table registered none. */
849
+ /**
850
+ * Resolved, per-field hooks: `undefined` when the table registered none. `columns` is the
851
+ * hook's `columns` resolved against the table, or `undefined` when it named none.
852
+ */
819
853
  type ResolvedWriteHooks = {
820
854
  before?: WriteHook;
821
855
  after?: WriteHook;
856
+ columns?: Record<string, Column>;
822
857
  };
823
858
  /** Build-time lookup of a table's hooks, installed on {@link TablePolicies}. */
824
859
  type WriteHookFor = (tableName: string, operation: WriteOperation) => ResolvedWriteHooks | undefined;
@@ -2038,8 +2073,12 @@ type BuildSchemaConfig = {
2038
2073
  * ```ts
2039
2074
  * buildSchema(db, {
2040
2075
  * onWrite: {
2041
- * posts: async ({ table, operation, rows, tx }) => {
2042
- * await tx.insert(auditLog).values(rows.map((row) => ({ table, operation, rowId: row.id })));
2076
+ * posts: {
2077
+ * after: async ({ table, operation, rows, tx }) => {
2078
+ * await tx.insert(auditLog).values(rows.map((row) => ({ table, operation, rowId: row.id })));
2079
+ * },
2080
+ * // `rows` always carries `id`, whether or not the client selected it.
2081
+ * columns: ['id'],
2043
2082
  * },
2044
2083
  * },
2045
2084
  * });
@@ -2057,6 +2096,13 @@ type BuildSchemaConfig = {
2057
2096
  * - **Throwing rolls the mutation back.** That is the point of the position.
2058
2097
  * - **`rows` are the post-write rows as the database returned them**, before the output
2059
2098
  * mapper. Empty at the `before` position, and on MySQL, whose mutations return no rows.
2099
+ * - **A row holds the columns the client selected**, because `RETURNING` is built from the
2100
+ * selection — plus every column the registration names in `columns` (column keys, or
2101
+ * `'all'`). Those are added to `RETURNING` for insert, upsert, update, `updateMany`, delete
2102
+ * and restore, and taken back off before the result is mapped, so the client's response
2103
+ * is unchanged. An unknown column, or `columns` with no `after` hook, fails the build; on
2104
+ * a top-level registration a named column must exist on every table. MySQL returns no
2105
+ * rows, so `columns` has no effect there.
2060
2106
  * - The hook fires for the **mutation field's own table**. Rows a nested write creates in
2061
2107
  * another table do not fire that table's hook.
2062
2108
  *
@@ -2380,6 +2426,35 @@ type BuildSchemaConfig = {
2380
2426
  * Return `undefined` to keep the default name.
2381
2427
  */
2382
2428
  enumNameMapper?: EnumNameMapper;
2429
+ /**
2430
+ * Names the *values* of the generated GraphQL enum types.
2431
+ *
2432
+ * By default a value's GraphQL name is the stored value itself (`'running'` → `running`),
2433
+ * or `Option<index>` when the stored value is not a usable GraphQL name. This hook overrides
2434
+ * that per value — most often to follow GraphQL's SCREAMING_CASE convention while the
2435
+ * database keeps its lowercase values:
2436
+ *
2437
+ * ```ts
2438
+ * buildSchema(db, {
2439
+ * enumValueNameMapper: ({ value }) => value.toUpperCase(),
2440
+ * });
2441
+ * // enum RunsStatusEnum { RUNNING OK ERROR STOPPED }
2442
+ * ```
2443
+ *
2444
+ * Only the GraphQL name changes. Each value's internal `value` stays the stored string, so
2445
+ * filters, create/update inputs, outputs and resolvers keep sending and receiving exactly
2446
+ * what the database stores; the generated TypeScript types keep the stored values too.
2447
+ *
2448
+ * Pass the string `'constant'` for the built-in preset, which CONSTANT_CASEs every value
2449
+ * (`inProgress` / `in-progress` → `IN_PROGRESS`).
2450
+ *
2451
+ * The mapper receives the stored `value`, its `index`, the enum's GraphQL `typeName` (after
2452
+ * `enumNameMapper`), and everything `enumNameMapper` receives. Return `undefined` to keep the
2453
+ * default name for that value. The build throws when a returned name is not a valid GraphQL
2454
+ * enum value name, when two values of one enum map to the same name, or when columns sharing
2455
+ * one enum type would name its values differently.
2456
+ */
2457
+ enumValueNameMapper?: 'constant' | EnumValueNameMapper;
2383
2458
  };
2384
2459
  //#endregion
2385
2460
  //#region src/util/case-ops/index.d.ts
@@ -2499,5 +2574,5 @@ declare const resolveSelection: (info: GraphQLResolveInfo | ResolveTree, options
2499
2574
  //#region src/index.d.ts
2500
2575
  declare const buildSchema: <TDbClient extends AnyDrizzleDB<any>, TConfig extends BuildSchemaConfig = BuildSchemaConfig>(db: TDbClient, config?: TConfig) => GeneratedData<TDbClient, NamingOf<TConfig>>;
2501
2576
  //#endregion
2502
- export { type AggregateResolver, type AnyDrizzleDB, type BuildSchemaConfig, type ColumnDeprecator, type ColumnDescriber, type ColumnDocInfo, type ColumnTypeMapper, type ColumnTypeMapperInfo, type ComplexityConfig, type ContextValuesConfig, type DefaultOrderByEntry, type DefaultsConfig, type DeleteResolver, type DeleteSingleResolver, type DerivedTypeNameMapper, type DrizzleErrorCode, type DrizzleErrorContext, type DrizzleExtension, type DrizzleFieldExtension, type DrizzleFieldKind, type DrizzleFieldOperation, type DrizzleTargetArg, type DrizzleTypeExtension, type EnumNameInfo, type EnumNameMapper, type ExtractRelations, type ExtractTableByName, type ExtractTableRelations, type ExtractTables, type FeatureSwitch, type FieldsByTypeName, type GeneratedData, type GeneratedEntities, type GeneratedInputs, type GeneratedOutputs, type GeneratedTypeInfo, type GeneratedTypeKind, GraphQLBigIntString, GraphQLDate, GraphQLDateTime, GraphQLDecimalString, GraphQLJSON, GraphQLUUID, type IdentifiedRows, type InsertArrResolver, type InsertResolver, type LimitsConfig, type MutationReturnlessResult, type MutationsCore, type NamingOf, type OnWriteConfig, type ParseResolveInfoOptions, type Pluralize, type QueriesCore, type RelationDescriber, type RelationResolverFactory, type ResolveSelectionOptions, type ResolveTree, type RowScope, type RowScopeFilter, type ScalarOverride, type ScalarOverridesConfig, type SchemaDocs, type SchemaExclusions, type SchemaFeatures, type ScopeConfig, type SelectResolver, type SelectSingleResolver, type SelectionOptions, type Singularize, type SoftDeleteColumn, type SoftDeleteConfig, type TableDefaults, type TableDescriber, type TableLimitPolicy, type TableNamedRelations, type TypeNameMapper, type TypeNaming, type UpdateManyArgs, type UpdateManyEntry, type UpdateManyResolver, type UpdateResolver, type UpdateSingleResolver, type UpsertArgs, type UpsertArrResolver, type UpsertConflictArgs, type UpsertResolver, type WriteHook, type WriteHookPayload, type WriteHookPositions, type WriteHooks, type WriteOperation, buildSchema, createRelationResolverFactory, defaultErrorMapper, drizzleError, drizzleExecutorKey, drizzleExtension, extractFilters, extractOrderBy, extractRelationJoinColumns, identifyRows, isDrizzleFieldExtension, parseResolveInfo, resolveSelection, selectionToWith, singularizeMapper };
2577
+ export { type AggregateResolver, type AnyDrizzleDB, type BuildSchemaConfig, type ColumnDeprecator, type ColumnDescriber, type ColumnDocInfo, type ColumnTypeMapper, type ColumnTypeMapperInfo, type ComplexityConfig, type ContextValuesConfig, type DefaultOrderByEntry, type DefaultsConfig, type DeleteResolver, type DeleteSingleResolver, type DerivedTypeNameMapper, type DrizzleErrorCode, type DrizzleErrorContext, type DrizzleExtension, type DrizzleFieldExtension, type DrizzleFieldKind, type DrizzleFieldOperation, type DrizzleTargetArg, type DrizzleTypeExtension, type EnumNameInfo, type EnumNameMapper, type EnumValueNameInfo, type EnumValueNameMapper, type ExtractRelations, type ExtractTableByName, type ExtractTableRelations, type ExtractTables, type FeatureSwitch, type FieldsByTypeName, type GeneratedData, type GeneratedEntities, type GeneratedInputs, type GeneratedOutputs, type GeneratedTypeInfo, type GeneratedTypeKind, GraphQLBigIntString, GraphQLDate, GraphQLDateTime, GraphQLDecimalString, GraphQLJSON, GraphQLUUID, type IdentifiedRows, type InsertArrResolver, type InsertResolver, type LimitsConfig, type MutationReturnlessResult, type MutationsCore, type NamingOf, type OnWriteConfig, type ParseResolveInfoOptions, type Pluralize, type QueriesCore, type RelationDescriber, type RelationResolverFactory, type ResolveSelectionOptions, type ResolveTree, type RowScope, type RowScopeFilter, type ScalarOverride, type ScalarOverridesConfig, type SchemaDocs, type SchemaExclusions, type SchemaFeatures, type ScopeConfig, type SelectResolver, type SelectSingleResolver, type SelectionOptions, type Singularize, type SoftDeleteColumn, type SoftDeleteConfig, type TableDefaults, type TableDescriber, type TableLimitPolicy, type TableNamedRelations, type TypeNameMapper, type TypeNaming, type UpdateManyArgs, type UpdateManyEntry, type UpdateManyResolver, type UpdateResolver, type UpdateSingleResolver, type UpsertArgs, type UpsertArrResolver, type UpsertConflictArgs, type UpsertResolver, type WriteHook, type WriteHookPayload, type WriteHookPositions, type WriteHooks, type WriteOperation, buildSchema, createRelationResolverFactory, defaultErrorMapper, drizzleError, drizzleExecutorKey, drizzleExtension, extractFilters, extractOrderBy, extractRelationJoinColumns, identifyRows, isDrizzleFieldExtension, parseResolveInfo, resolveSelection, selectionToWith, singularizeMapper };
2503
2578
  //# sourceMappingURL=index.d.cts.map
package/dist/index.d.ts CHANGED
@@ -566,6 +566,23 @@ type EnumNameInfo = {
566
566
  * `BuildSchemaConfig.enumNameMapper`.
567
567
  */
568
568
  type EnumNameMapper = (info: EnumNameInfo) => string | undefined;
569
+ /**
570
+ * Everything an {@link EnumValueNameMapper} needs to name one value of a generated enum: the
571
+ * value itself, plus the same context an {@link EnumNameMapper} gets for the enum around it.
572
+ */
573
+ type EnumValueNameInfo = EnumNameInfo & {
574
+ /** The stored value being named. It stays the GraphQL value's internal `value` either way. */
575
+ value: string;
576
+ /** The value's position in {@link EnumNameInfo.values}. */
577
+ index: number;
578
+ /** The GraphQL type name the enum was given — after `enumNameMapper`, if there is one. */
579
+ typeName: string;
580
+ };
581
+ /**
582
+ * Names one value of a generated GraphQL enum. Return `undefined` to keep the default name.
583
+ * See `BuildSchemaConfig.enumValueNameMapper`.
584
+ */
585
+ type EnumValueNameMapper = (info: EnumValueNameInfo) => string | undefined;
569
586
  /** Context handed to the documentation and deprecation hooks alongside the column itself. */
570
587
  type ColumnDocInfo = {
571
588
  /** The table's key in the Drizzle schema object. */
@@ -802,6 +819,10 @@ type WriteHookPayload = {
802
819
  * The rows the write produced, as the database returned them — before the output mapper,
803
820
  * so values are database-shaped. Empty at the `before` position, and on MySQL, whose
804
821
  * mutations return no rows.
822
+ *
823
+ * Each row holds the columns the client's selection asked for (plus any key a relation or
824
+ * nested write needed), **and** every column the hook names in `columns`. A column the
825
+ * client did not select and the hook did not name is absent.
805
826
  */
806
827
  rows: any[];
807
828
  context: any;
@@ -813,12 +834,26 @@ type WriteHook = (payload: WriteHookPayload) => void | Promise<void>;
813
834
  type WriteHookPositions = {
814
835
  before?: WriteHook;
815
836
  after?: WriteHook;
837
+ /**
838
+ * Columns the `after` hook's `rows` always carry, whatever the client selected: a list of
839
+ * column keys (the table object's property names, as `rows` is keyed), or `'all'` for
840
+ * every column of the table. They are added to the statement's `RETURNING` and taken back
841
+ * off before the result is mapped, so the client's response is unchanged.
842
+ *
843
+ * An unknown column fails the build, and so does `columns` without an `after` hook. On a
844
+ * top-level (every-table) registration a named column must exist on every table.
845
+ */
846
+ columns?: readonly string[] | 'all';
816
847
  };
817
848
  type WriteHooks = WriteHook | WriteHookPositions;
818
- /** Resolved, per-field hooks: `undefined` when the table registered none. */
849
+ /**
850
+ * Resolved, per-field hooks: `undefined` when the table registered none. `columns` is the
851
+ * hook's `columns` resolved against the table, or `undefined` when it named none.
852
+ */
819
853
  type ResolvedWriteHooks = {
820
854
  before?: WriteHook;
821
855
  after?: WriteHook;
856
+ columns?: Record<string, Column>;
822
857
  };
823
858
  /** Build-time lookup of a table's hooks, installed on {@link TablePolicies}. */
824
859
  type WriteHookFor = (tableName: string, operation: WriteOperation) => ResolvedWriteHooks | undefined;
@@ -2038,8 +2073,12 @@ type BuildSchemaConfig = {
2038
2073
  * ```ts
2039
2074
  * buildSchema(db, {
2040
2075
  * onWrite: {
2041
- * posts: async ({ table, operation, rows, tx }) => {
2042
- * await tx.insert(auditLog).values(rows.map((row) => ({ table, operation, rowId: row.id })));
2076
+ * posts: {
2077
+ * after: async ({ table, operation, rows, tx }) => {
2078
+ * await tx.insert(auditLog).values(rows.map((row) => ({ table, operation, rowId: row.id })));
2079
+ * },
2080
+ * // `rows` always carries `id`, whether or not the client selected it.
2081
+ * columns: ['id'],
2043
2082
  * },
2044
2083
  * },
2045
2084
  * });
@@ -2057,6 +2096,13 @@ type BuildSchemaConfig = {
2057
2096
  * - **Throwing rolls the mutation back.** That is the point of the position.
2058
2097
  * - **`rows` are the post-write rows as the database returned them**, before the output
2059
2098
  * mapper. Empty at the `before` position, and on MySQL, whose mutations return no rows.
2099
+ * - **A row holds the columns the client selected**, because `RETURNING` is built from the
2100
+ * selection — plus every column the registration names in `columns` (column keys, or
2101
+ * `'all'`). Those are added to `RETURNING` for insert, upsert, update, `updateMany`, delete
2102
+ * and restore, and taken back off before the result is mapped, so the client's response
2103
+ * is unchanged. An unknown column, or `columns` with no `after` hook, fails the build; on
2104
+ * a top-level registration a named column must exist on every table. MySQL returns no
2105
+ * rows, so `columns` has no effect there.
2060
2106
  * - The hook fires for the **mutation field's own table**. Rows a nested write creates in
2061
2107
  * another table do not fire that table's hook.
2062
2108
  *
@@ -2380,6 +2426,35 @@ type BuildSchemaConfig = {
2380
2426
  * Return `undefined` to keep the default name.
2381
2427
  */
2382
2428
  enumNameMapper?: EnumNameMapper;
2429
+ /**
2430
+ * Names the *values* of the generated GraphQL enum types.
2431
+ *
2432
+ * By default a value's GraphQL name is the stored value itself (`'running'` → `running`),
2433
+ * or `Option<index>` when the stored value is not a usable GraphQL name. This hook overrides
2434
+ * that per value — most often to follow GraphQL's SCREAMING_CASE convention while the
2435
+ * database keeps its lowercase values:
2436
+ *
2437
+ * ```ts
2438
+ * buildSchema(db, {
2439
+ * enumValueNameMapper: ({ value }) => value.toUpperCase(),
2440
+ * });
2441
+ * // enum RunsStatusEnum { RUNNING OK ERROR STOPPED }
2442
+ * ```
2443
+ *
2444
+ * Only the GraphQL name changes. Each value's internal `value` stays the stored string, so
2445
+ * filters, create/update inputs, outputs and resolvers keep sending and receiving exactly
2446
+ * what the database stores; the generated TypeScript types keep the stored values too.
2447
+ *
2448
+ * Pass the string `'constant'` for the built-in preset, which CONSTANT_CASEs every value
2449
+ * (`inProgress` / `in-progress` → `IN_PROGRESS`).
2450
+ *
2451
+ * The mapper receives the stored `value`, its `index`, the enum's GraphQL `typeName` (after
2452
+ * `enumNameMapper`), and everything `enumNameMapper` receives. Return `undefined` to keep the
2453
+ * default name for that value. The build throws when a returned name is not a valid GraphQL
2454
+ * enum value name, when two values of one enum map to the same name, or when columns sharing
2455
+ * one enum type would name its values differently.
2456
+ */
2457
+ enumValueNameMapper?: 'constant' | EnumValueNameMapper;
2383
2458
  };
2384
2459
  //#endregion
2385
2460
  //#region src/util/case-ops/index.d.ts
@@ -2499,5 +2574,5 @@ declare const resolveSelection: (info: GraphQLResolveInfo | ResolveTree, options
2499
2574
  //#region src/index.d.ts
2500
2575
  declare const buildSchema: <TDbClient extends AnyDrizzleDB<any>, TConfig extends BuildSchemaConfig = BuildSchemaConfig>(db: TDbClient, config?: TConfig) => GeneratedData<TDbClient, NamingOf<TConfig>>;
2501
2576
  //#endregion
2502
- export { type AggregateResolver, type AnyDrizzleDB, type BuildSchemaConfig, type ColumnDeprecator, type ColumnDescriber, type ColumnDocInfo, type ColumnTypeMapper, type ColumnTypeMapperInfo, type ComplexityConfig, type ContextValuesConfig, type DefaultOrderByEntry, type DefaultsConfig, type DeleteResolver, type DeleteSingleResolver, type DerivedTypeNameMapper, type DrizzleErrorCode, type DrizzleErrorContext, type DrizzleExtension, type DrizzleFieldExtension, type DrizzleFieldKind, type DrizzleFieldOperation, type DrizzleTargetArg, type DrizzleTypeExtension, type EnumNameInfo, type EnumNameMapper, type ExtractRelations, type ExtractTableByName, type ExtractTableRelations, type ExtractTables, type FeatureSwitch, type FieldsByTypeName, type GeneratedData, type GeneratedEntities, type GeneratedInputs, type GeneratedOutputs, type GeneratedTypeInfo, type GeneratedTypeKind, GraphQLBigIntString, GraphQLDate, GraphQLDateTime, GraphQLDecimalString, GraphQLJSON, GraphQLUUID, type IdentifiedRows, type InsertArrResolver, type InsertResolver, type LimitsConfig, type MutationReturnlessResult, type MutationsCore, type NamingOf, type OnWriteConfig, type ParseResolveInfoOptions, type Pluralize, type QueriesCore, type RelationDescriber, type RelationResolverFactory, type ResolveSelectionOptions, type ResolveTree, type RowScope, type RowScopeFilter, type ScalarOverride, type ScalarOverridesConfig, type SchemaDocs, type SchemaExclusions, type SchemaFeatures, type ScopeConfig, type SelectResolver, type SelectSingleResolver, type SelectionOptions, type Singularize, type SoftDeleteColumn, type SoftDeleteConfig, type TableDefaults, type TableDescriber, type TableLimitPolicy, type TableNamedRelations, type TypeNameMapper, type TypeNaming, type UpdateManyArgs, type UpdateManyEntry, type UpdateManyResolver, type UpdateResolver, type UpdateSingleResolver, type UpsertArgs, type UpsertArrResolver, type UpsertConflictArgs, type UpsertResolver, type WriteHook, type WriteHookPayload, type WriteHookPositions, type WriteHooks, type WriteOperation, buildSchema, createRelationResolverFactory, defaultErrorMapper, drizzleError, drizzleExecutorKey, drizzleExtension, extractFilters, extractOrderBy, extractRelationJoinColumns, identifyRows, isDrizzleFieldExtension, parseResolveInfo, resolveSelection, selectionToWith, singularizeMapper };
2577
+ export { type AggregateResolver, type AnyDrizzleDB, type BuildSchemaConfig, type ColumnDeprecator, type ColumnDescriber, type ColumnDocInfo, type ColumnTypeMapper, type ColumnTypeMapperInfo, type ComplexityConfig, type ContextValuesConfig, type DefaultOrderByEntry, type DefaultsConfig, type DeleteResolver, type DeleteSingleResolver, type DerivedTypeNameMapper, type DrizzleErrorCode, type DrizzleErrorContext, type DrizzleExtension, type DrizzleFieldExtension, type DrizzleFieldKind, type DrizzleFieldOperation, type DrizzleTargetArg, type DrizzleTypeExtension, type EnumNameInfo, type EnumNameMapper, type EnumValueNameInfo, type EnumValueNameMapper, type ExtractRelations, type ExtractTableByName, type ExtractTableRelations, type ExtractTables, type FeatureSwitch, type FieldsByTypeName, type GeneratedData, type GeneratedEntities, type GeneratedInputs, type GeneratedOutputs, type GeneratedTypeInfo, type GeneratedTypeKind, GraphQLBigIntString, GraphQLDate, GraphQLDateTime, GraphQLDecimalString, GraphQLJSON, GraphQLUUID, type IdentifiedRows, type InsertArrResolver, type InsertResolver, type LimitsConfig, type MutationReturnlessResult, type MutationsCore, type NamingOf, type OnWriteConfig, type ParseResolveInfoOptions, type Pluralize, type QueriesCore, type RelationDescriber, type RelationResolverFactory, type ResolveSelectionOptions, type ResolveTree, type RowScope, type RowScopeFilter, type ScalarOverride, type ScalarOverridesConfig, type SchemaDocs, type SchemaExclusions, type SchemaFeatures, type ScopeConfig, type SelectResolver, type SelectSingleResolver, type SelectionOptions, type Singularize, type SoftDeleteColumn, type SoftDeleteConfig, type TableDefaults, type TableDescriber, type TableLimitPolicy, type TableNamedRelations, type TypeNameMapper, type TypeNaming, type UpdateManyArgs, type UpdateManyEntry, type UpdateManyResolver, type UpdateResolver, type UpdateSingleResolver, type UpsertArgs, type UpsertArrResolver, type UpsertConflictArgs, type UpsertResolver, type WriteHook, type WriteHookPayload, type WriteHookPositions, type WriteHooks, type WriteOperation, buildSchema, createRelationResolverFactory, defaultErrorMapper, drizzleError, drizzleExecutorKey, drizzleExtension, extractFilters, extractOrderBy, extractRelationJoinColumns, identifyRows, isDrizzleFieldExtension, parseResolveInfo, resolveSelection, selectionToWith, singularizeMapper };
2503
2578
  //# sourceMappingURL=index.d.ts.map