typion 0.1.0 → 0.1.1

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.
@@ -1,5 +1,5 @@
1
- import { _ as TransportCall, b as TransportSchema, c as CorsOptions, d as HandlerOptions, g as Transport, h as CheckedDescriptor, v as TransportEntity, y as TransportOperation } from "../context-CpLQy7OI.js";
2
- import { i as typionErrorResponse, n as createHandler, r as toRouteHandlers, t as RouteHandlers } from "../handler-D03-rJ-t.js";
1
+ import { _ as TransportCall, b as TransportSchema, c as CorsOptions, d as HandlerOptions, g as Transport, h as CheckedDescriptor, v as TransportEntity, y as TransportOperation } from "../context-B4e2eREP.js";
2
+ import { i as typionErrorResponse, n as createHandler, r as toRouteHandlers, t as RouteHandlers } from "../handler-BWVU8TCR.js";
3
3
  //#region src/http/codec.d.ts
4
4
  interface Codec {
5
5
  readonly contentType: string;
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as AfterChangeArgs, $a as InferResult, $i as RequirementsError, $n as MultiTenantPlugin, $r as NullableTimestampKeys, $t as RegisteredContext, A as Dialect, Aa as ConfigError, Ai as CollectionSpec, An as defineSetup, Ar as CreateInput, At as VersionsTraits, B as EntityMeta, Ba as PluginError, Bi as PluginContext, Bn as SoftDeleteKinds, Br as FieldRefinements, Bt as ConfigOptions, Ca as ReadModeOf, Ci as VirtualColumn, Cn as AnySetup, Cr as Jsonified, Ct as VersionsEntityOptions, Da as WriteModeOf, Di as AnyPlugin, Dn as SetupOptions, Dt as VersionsOption, Ea as WriteModeFn, Ei as AnyFeatureTables, En as SetupLocalization, Et as VersionsListOptions, F as AnyTx, Fa as ForbiddenError, Fi as MergeAll, Fn as versionsTable, Fr as EntityDef, Ft as ByName, G as AllowAll, Ga as UnsupportedError, Gi as PluginErrorFactories, Gn as softDeleteColumn, Gr as LinkApi, Gt as DbAdapter, H as RelationMeta, Ha as TypionError, Hi as PluginEntityDefiner, Hn as SoftDeleteQueries, Hr as HiddenWriteKeys, Ht as ConfigTables, I as AnyTypion, Ia as ForbiddenErrorOptions, Ii as MergeConfigs, In as SoftDeleteApi, Ir as EntityOptions, It as Collection, J as OperationMeta, Ja as attempt, Ji as PluginNeedsContext, Jn as MultiTenantCollectionOptions, Jr as LinkQueries, Jt as HookTypion, K as AnyAccessRules, Ka as ValidationError, Ki as PluginErrorInput, Kn as softUnique, Kr as LinkInput, Kt as FoldKinds, L as AnyTypionApp, La as InternalError, Li as Plugin, Ln as SoftDeleteCollectionOptions, Lr as EntitySchemas, Lt as CollectionDraft, M as AfterCommitQueue, Ma as ConflictError, Mi as DependenciesError, Mn as FeaturePlugins, Mr as DeleteOptions, Mt as AfterCommitErrorHandler, N as AnyDb, Na as ConflictErrorOptions, Ni as FeatureId, Nn as FeaturesOptions, Nr as EntitiesOf, Nt as AnyCollection, Oa as Attempt, Oi as AnyPluginSpec, On as SetupPlugins, Or as AnyEntities, Ot as VersionsReadOptions, P as AnyRow, Pa as ConflictKind, Pi as FeatureTables, Pn as VersionsPlugin, Pr as EntityApi, Pt as Behaviour, Q as RuleSchema, Qa as InferItem, Qi as PluginTables, Qn as MultiTenantOptions, Qr as NoneIfEmpty, Qt as OneSpec, R as ValidationAdapter, Ra as InvalidStateError, Ri as PluginApis, Rn as SoftDeleteDeleteOptions, Rr as EntityValidation, Rt as CollectionRuntime, Sa as ReadModeFn, Si as VS, Sn as defineConfig, Sr as collection, St as VersionsCreateOptions, Ta as ValidationMode, Ti as VirtualTable, Tn as Setup, Tt as VersionsKinds, U as TypionDefinition, Ua as TypionErrorCode, Ui as PluginEntityOptions, Un as SoftDeleteReadOptions, Ur as Id, Ut as ConfigTypes, V as GeneratedTables, Va as PluginErrorOptions, Vi as PluginEntities, Vn as SoftDeletePlugin, Vr as FieldRuleArgs, Vt as ConfigSeedOptions, W as AccessRules, Wa as TypionErrorOptions, Wi as PluginErrorDef, Wn as SoftDeleteTraits, Wr as Insert, Wt as ContextFactory, X as RuleArgs, Xa as AnyDescriptor, Xi as PluginRuntime, Xn as MultiTenantEntityOptions, Xr as ManagedKeys, Xt as MigrationsOptions, Y as RawWhere, Ya as isTypionError, Yi as PluginRoute, Yn as MultiTenantContext, Yr as LinkQueryMethods, Yt as ManySpec, Z as RuleData, Za as Descriptor, Zi as PluginSpec, Zn as MultiTenantKinds, Zr as NoExtraKeys, Zt as NoUnknownKeys, _a as KindedData, _i as Result, _n as GetTypionOptions, _r as localizedUnique, _t as Version, a as MaybePromise, aa as ColumnKindRuntime, ai as UpdateManyOptions, an as StructureInput, ar as TextTenantColumn, at as HookBase, ba as PluginReadOptions, bi as Governed, bn as allowAll, br as PluginSpecInput, bt as VersionState, c as CorsOptions, ca as ColumnKindsSpec, ci as ByIdConfig, cn as ThroughSpec, cr as LocaleReadMode, ct as TypionHookApp, d as HandlerOptions, da as KeyedShape, di as FindConfig, dn as TypionAppOf, dr as LocalizationPlugin, dt as DraftsApi, ea as SeedColumnsInput, ei as ReadRow, en as RegisteredPlugins, eo as Op, er as MultiTenantSystemOptions, et as ChangeArgs, f as TypionApp, fa as KindOf, fi as FirstConfig, fn as TypionConfig, fr as LocalizationReadMode, ft as DraftsQueries, ga as Kinded, gi as ReadOptions, gn as structuralValidation, gr as localizedIndex, gt as PendingDraftPolicy, ha as KindWriteOptions, hi as Page, hn as StructuralValidationAdapter, hr as localized, ht as HistoryQueries, i as FullCtx, ia as COLUMN_KIND, ii as UpdateInput, in as RelationSpec, ir as TenantIdOf, it as GlobalHooks, j as SchemaDrift, ja as ConfigErrorKind, ji as ColumnKind, jn as DefaultFeaturePlugins, jr as CreateOptions, jt as VersionsUpdateOptions, ka as BadRequestError, ki as CollectionKinds, kn as TypionSetup, kr as ColumnKeys, kt as VersionsRestoreOptions, l as DescriptorApi, la as ColumnKindsTypes, li as CountConfig, ln as TypesOf, lr as LocalizationColumnKinds, lt as TypionHookEntityApi, m as TypionTypes, ma as KindWrite, mi as OrderBy, mn as StructuralSchema, mr as Localized, mt as HistoryApi, n as ContextInput, na as SeedSpec, ni as Row, nn as RegisteredTypes, no as ReadOp, nr as TenantColumnOf, nt as CreateInput_, o as TypionMode, oa as ColumnKindSpec, oi as UpdateOptions, on as SystemTypion, or as UuidTenantColumn, ot as Insert_, p as TypionEngine, pa as KindRead, pi as InputSchema, pn as Register, pr as LocalizationWriteMode, pt as FieldDiff, q as Operation, qa as ValidationIssue, qi as PluginKinds, qn as IntegerTenantColumn, qr as LinkMethods, qt as HandlerOptionsOf, r as Ctx, ra as TableShape, ri as Select, rn as RelationHelpers, ro as WriteOp, rr as TenantContext, rt as EntityHooks, s as BindOptions, sa as ColumnKindTypes, si as WriteOptions, sn as TableOf, sr as tenantColumn, st as Select_, t as BaseContext, ta as SeedGenerators, ti as ReferenceOptions, tn as RegisteredSetup, to as RESULT, tr as MultiTenantTraits, tt as ChangeOp, u as EntityName, ua as InputModeOf, ui as Extend, un as Typion, ur as LocalizationOptions, ut as UpdateInput_, va as OptionType, vi as Where, vn as getTypion, vr as localizedValue, vt as VersionOperation, wa as TableMode, wi as VirtualRelation, wn as DefaultSetup, wt as VersionsHookArgs, xa as PluginSystemOptions, xi as HiddenReadKeys, xn as dbAdapter, xr as definePlugin, xt as VersionsCollectionOptions, ya as PluginContextOptions, yi as DynamicReadKeys, yn as AfterCommitErrorInfo, yr as DefinedPlugin, yt as VersionRef, z as ColumnMeta, za as NotFoundError, zi as PluginCollectionOptions, zn as SoftDeleteEntityOptions, zr as FieldOptions, zt as ColumnsOf } from "./context-CpLQy7OI.js";
2
- export { type AccessRules, type AfterChangeArgs, type AfterCommitErrorHandler, type AfterCommitErrorInfo, type AfterCommitQueue, type AllowAll, type AnyAccessRules, type AnyCollection, type AnyDb, type AnyDescriptor, type AnyEntities, type AnyFeatureTables, type AnyPlugin, type AnyPluginSpec, type AnyRow, type AnySetup, type AnyTx, type AnyTypion, type AnyTypionApp, type Attempt, BadRequestError, type BaseContext, type Behaviour, type BindOptions, type ByIdConfig, type ByName, type COLUMN_KIND, type ChangeArgs, type ChangeOp, type Collection, type CollectionDraft, type CollectionKinds, type CollectionRuntime, type CollectionSpec, type ColumnKeys, type ColumnKind, type ColumnKindRuntime, type ColumnKindSpec, type ColumnKindTypes, type ColumnKindsSpec, type ColumnKindsTypes, type ColumnMeta, type ColumnsOf, ConfigError, type ConfigErrorKind, type ConfigOptions, type ConfigSeedOptions, type ConfigTables, type ConfigTypes, ConflictError, type ConflictErrorOptions, type ConflictKind, type ContextFactory, type ContextInput, type CorsOptions, type CountConfig, type CreateInput, type CreateInput_, type CreateOptions, type Ctx, type DbAdapter, type DefaultFeaturePlugins, type DefaultSetup, type DefinedPlugin, type DeleteOptions, type DependenciesError, type Descriptor, type DescriptorApi, type Dialect, type DraftsApi, type DraftsQueries, type DynamicReadKeys, type EntitiesOf, type EntityApi, type EntityDef, type EntityHooks, type EntityMeta, type EntityName, type EntityOptions, type EntitySchemas, type EntityValidation, type Extend, type FeatureId, type FeaturePlugins, type FeatureTables, type FeaturesOptions, type FieldDiff, type FieldOptions, type FieldRefinements, type FieldRuleArgs, type FindConfig, type FirstConfig, type FoldKinds, ForbiddenError, type ForbiddenErrorOptions, type FullCtx, type GeneratedTables, type GetTypionOptions, type GlobalHooks, type Governed, type HandlerOptions, type HandlerOptionsOf, type HiddenReadKeys, type HiddenWriteKeys, type HistoryApi, type HistoryQueries, type HookBase, type HookTypion, type Id, type InferItem, type InferResult, type InputModeOf, type InputSchema, type Insert, type Insert_, type IntegerTenantColumn, InternalError, InvalidStateError, type Jsonified, type KeyedShape, type KindOf, type KindRead, type KindWrite, type KindWriteOptions, type Kinded, type KindedData, type LinkApi, type LinkInput, type LinkMethods, type LinkQueries, type LinkQueryMethods, type LocaleReadMode, type LocalizationColumnKinds, type LocalizationOptions, type LocalizationPlugin, type LocalizationReadMode, type LocalizationWriteMode, type Localized, type ManagedKeys, type ManySpec, type MaybePromise, type MergeAll, type MergeConfigs, type MigrationsOptions, type MultiTenantCollectionOptions, type MultiTenantContext, type MultiTenantEntityOptions, type MultiTenantKinds, type MultiTenantOptions, type MultiTenantPlugin, type MultiTenantSystemOptions, type MultiTenantTraits, type NoExtraKeys, type NoUnknownKeys, type NoneIfEmpty, NotFoundError, type NullableTimestampKeys, type OneSpec, type Op, type Operation, type OperationMeta, type OptionType, type OrderBy, type Page, type PendingDraftPolicy, type Plugin, type PluginApis, type PluginCollectionOptions, type PluginContext, type PluginContextOptions, type PluginEntities, type PluginEntityDefiner, type PluginEntityOptions, PluginError, type PluginErrorDef, type PluginErrorFactories, type PluginErrorInput, type PluginErrorOptions, type PluginKinds, type PluginNeedsContext, type PluginReadOptions, type PluginRoute, type PluginRuntime, type PluginSpec, type PluginSpecInput, type PluginSystemOptions, type PluginTables, type RESULT, type RawWhere, type ReadModeFn, type ReadModeOf, type ReadOp, type ReadOptions, type ReadRow, type ReferenceOptions, Register, type RegisteredContext, type RegisteredPlugins, type RegisteredSetup, type RegisteredTypes, type RelationHelpers, type RelationMeta, type RelationSpec, type RequirementsError, type Result, type Row, type RuleArgs, type RuleData, type RuleSchema, type SchemaDrift, type SeedColumnsInput, type SeedGenerators, type SeedSpec, type Select, type Select_, type Setup, type SetupLocalization, type SetupOptions, type SetupPlugins, type SoftDeleteApi, type SoftDeleteCollectionOptions, type SoftDeleteDeleteOptions, type SoftDeleteEntityOptions, type SoftDeleteKinds, type SoftDeletePlugin, type SoftDeleteQueries, type SoftDeleteReadOptions, type SoftDeleteTraits, type StructuralSchema, type StructuralValidationAdapter, type StructureInput, type SystemTypion, type TableMode, type TableOf, type TableShape, type TenantColumnOf, type TenantContext, type TenantIdOf, type TextTenantColumn, type ThroughSpec, type TypesOf, type Typion, type TypionApp, type TypionAppOf, type TypionConfig, type TypionDefinition, type TypionEngine, TypionError, type TypionErrorCode, type TypionErrorOptions, type TypionHookApp, type TypionHookEntityApi, type TypionMode, type TypionSetup, type TypionTypes, UnsupportedError, type UpdateInput, type UpdateInput_, type UpdateManyOptions, type UpdateOptions, type UuidTenantColumn, type VS, type ValidationAdapter, ValidationError, type ValidationIssue, type ValidationMode, type Version, type VersionOperation, type VersionRef, type VersionState, type VersionsCollectionOptions, type VersionsCreateOptions, type VersionsEntityOptions, type VersionsHookArgs, type VersionsKinds, type VersionsListOptions, type VersionsOption, type VersionsPlugin, type VersionsReadOptions, type VersionsRestoreOptions, type VersionsTraits, type VersionsUpdateOptions, type VirtualColumn, type VirtualRelation, type VirtualTable, type Where, type WriteModeFn, type WriteModeOf, type WriteOp, type WriteOptions, allowAll, attempt, collection, dbAdapter, defineConfig, definePlugin, defineSetup, getTypion, isTypionError, localized, localizedIndex, localizedUnique, localizedValue, softDeleteColumn, softUnique, structuralValidation, tenantColumn, versionsTable };
1
+ import { $ as AfterChangeArgs, $a as InferItem, $i as PluginTables, $n as MultiTenantOptions, $r as NoneIfEmpty, $t as OneSpec, A as Dialect, Aa as BadRequestError, Ai as CollectionKinds, An as TypionSetup, Ar as ColumnKeys, At as VersionsTraits, B as EntityMeta, Ba as NotFoundError, Bi as PluginCollectionOptions, Bn as SoftDeleteEntityOptions, Br as FieldOptions, Bt as ConfigOptions, Ca as ReadModeFn, Ci as VS, Cn as defineConfig, Cr as collection, Ct as VersionsEntityOptions, Da as WriteModeFn, Di as AnyFeatureTables, Dn as SetupLocalization, Dt as VersionsOption, Ea as ValidationMode, Ei as VirtualTable, En as Setup, Et as VersionsListOptions, F as AnyTx, Fa as ConflictKind, Fi as FeatureTables, Fn as VersionsPlugin, Fr as EntityApi, Ft as ByName, G as AllowAll, Ga as TypionErrorOptions, Gi as PluginErrorDef, Gn as SoftDeleteTraits, Gr as Insert, Gt as ContextFactoryInput, H as RelationMeta, Ha as PluginErrorOptions, Hi as PluginEntities, Hn as SoftDeletePlugin, Hr as FieldRuleArgs, Ht as ConfigTables, I as AnyTypion, Ia as ForbiddenError, Ii as MergeAll, In as versionsTable, Ir as EntityDef, It as Collection, J as OperationMeta, Ja as ValidationIssue, Ji as PluginKinds, Jn as IntegerTenantColumn, Jr as LinkMethods, Jt as HandlerOptionsOf, K as AnyAccessRules, Ka as UnsupportedError, Ki as PluginErrorFactories, Kn as softDeleteColumn, Kr as LinkApi, Kt as DbAdapter, L as AnyTypionApp, La as ForbiddenErrorOptions, Li as MergeConfigs, Ln as SoftDeleteApi, Lr as EntityOptions, Lt as CollectionDraft, M as AfterCommitQueue, Ma as ConfigErrorKind, Mi as ColumnKind, Mn as DefaultFeaturePlugins, Mr as CreateOptions, Mt as AfterCommitErrorHandler, N as AnyDb, Na as ConflictError, Ni as DependenciesError, Nn as FeaturePlugins, Nr as DeleteOptions, Nt as AnyCollection, Oa as WriteModeOf, Oi as AnyPlugin, On as SetupOptions, Ot as VersionsReadOptions, P as AnyRow, Pa as ConflictErrorOptions, Pi as FeatureId, Pn as FeaturesOptions, Pr as EntitiesOf, Pt as Behaviour, Q as RuleSchema, Qa as Descriptor, Qi as PluginSpec, Qn as MultiTenantKinds, Qr as NoExtraKeys, Qt as NoUnknownKeys, R as ValidationAdapter, Ra as InternalError, Ri as Plugin, Rn as SoftDeleteCollectionOptions, Rr as EntitySchemas, Rt as CollectionRuntime, Sa as PluginSystemOptions, Si as HiddenReadKeys, Sn as dbAdapter, Sr as definePlugin, St as VersionsCreateOptions, Ta as TableMode, Ti as VirtualRelation, Tn as DefaultSetup, Tt as VersionsKinds, U as TypionDefinition, Ua as TypionError, Ui as PluginEntityDefiner, Un as SoftDeleteQueries, Ur as HiddenWriteKeys, Ut as ConfigTypes, V as GeneratedTables, Va as PluginError, Vi as PluginContext, Vn as SoftDeleteKinds, Vr as FieldRefinements, Vt as ConfigSeedOptions, W as AccessRules, Wa as TypionErrorCode, Wi as PluginEntityOptions, Wn as SoftDeleteReadOptions, Wr as Id, Wt as ContextFactory, X as RuleArgs, Xa as isTypionError, Xi as PluginRoute, Xn as MultiTenantContext, Xr as LinkQueryMethods, Xt as ManySpec, Y as RawWhere, Ya as attempt, Yi as PluginNeedsContext, Yn as MultiTenantCollectionOptions, Yr as LinkQueries, Yt as HookTypion, Z as RuleData, Za as AnyDescriptor, Zi as PluginRuntime, Zn as MultiTenantEntityOptions, Zr as ManagedKeys, Zt as MigrationsOptions, _a as Kinded, _i as ReadOptions, _n as structuralValidation, _r as localizedIndex, _t as Version, a as MaybePromise, aa as COLUMN_KIND, ai as UpdateInput, an as RelationSpec, ar as TenantIdOf, at as HookBase, ba as PluginContextOptions, bi as DynamicReadKeys, bn as AfterCommitErrorInfo, br as DefinedPlugin, bt as VersionState, c as CorsOptions, ca as ColumnKindTypes, ci as WriteOptions, cn as TableOf, cr as tenantColumn, ct as TypionHookApp, d as HandlerOptions, da as InputModeOf, di as Extend, dn as Typion, dr as LocalizationOptions, dt as DraftsApi, ea as RequirementsError, ei as NullableTimestampKeys, en as RegisteredContext, eo as InferResult, er as MultiTenantPlugin, et as ChangeArgs, f as TypionApp, fa as KeyedShape, fi as FindConfig, fn as TypionAppOf, fr as LocalizationPlugin, ft as DraftsQueries, ga as KindWriteOptions, gi as Page, gn as StructuralValidationAdapter, gr as localized, gt as PendingDraftPolicy, ha as KindWrite, hi as OrderBy, hn as StructuralSchema, hr as Localized, ht as HistoryQueries, i as FullCtx, ia as TableShape, ii as Select, in as RelationHelpers, io as WriteOp, ir as TenantContext, it as GlobalHooks, j as SchemaDrift, ja as ConfigError, ji as CollectionSpec, jn as defineSetup, jr as CreateInput, jt as VersionsUpdateOptions, ka as Attempt, ki as AnyPluginSpec, kn as SetupPlugins, kr as AnyEntities, kt as VersionsRestoreOptions, l as DescriptorApi, la as ColumnKindsSpec, li as ByIdConfig, ln as ThroughSpec, lr as LocaleReadMode, lt as TypionHookEntityApi, m as TypionTypes, ma as KindRead, mi as InputSchema, mn as Register, mr as LocalizationWriteMode, mt as HistoryApi, n as ContextInput, na as SeedGenerators, ni as ReferenceOptions, nn as RegisteredSetup, no as RESULT, nr as MultiTenantTraits, nt as CreateInput_, o as TypionMode, oa as ColumnKindRuntime, oi as UpdateManyOptions, on as StructureInput, or as TextTenantColumn, ot as Insert_, p as TypionEngine, pa as KindOf, pi as FirstConfig, pn as TypionConfig, pr as LocalizationReadMode, pt as FieldDiff, q as Operation, qa as ValidationError, qi as PluginErrorInput, qn as softUnique, qr as LinkInput, qt as FoldKinds, r as Ctx, ra as SeedSpec, ri as Row, rn as RegisteredTypes, ro as ReadOp, rr as TenantColumnOf, rt as EntityHooks, s as BindOptions, sa as ColumnKindSpec, si as UpdateOptions, sn as SystemTypion, sr as UuidTenantColumn, st as Select_, t as BaseContext, ta as SeedColumnsInput, ti as ReadRow, tn as RegisteredPlugins, to as Op, tr as MultiTenantSystemOptions, tt as ChangeOp, u as EntityName, ua as ColumnKindsTypes, ui as CountConfig, un as TypesOf, ur as LocalizationColumnKinds, ut as UpdateInput_, va as KindedData, vi as Result, vn as GetTypionOptions, vr as localizedUnique, vt as VersionOperation, wa as ReadModeOf, wi as VirtualColumn, wn as AnySetup, wr as Jsonified, wt as VersionsHookArgs, xa as PluginReadOptions, xi as Governed, xn as allowAll, xr as PluginSpecInput, xt as VersionsCollectionOptions, ya as OptionType, yi as Where, yn as getTypion, yr as localizedValue, yt as VersionRef, z as ColumnMeta, za as InvalidStateError, zi as PluginApis, zn as SoftDeleteDeleteOptions, zr as EntityValidation, zt as ColumnsOf } from "./context-B4e2eREP.js";
2
+ export { type AccessRules, type AfterChangeArgs, type AfterCommitErrorHandler, type AfterCommitErrorInfo, type AfterCommitQueue, type AllowAll, type AnyAccessRules, type AnyCollection, type AnyDb, type AnyDescriptor, type AnyEntities, type AnyFeatureTables, type AnyPlugin, type AnyPluginSpec, type AnyRow, type AnySetup, type AnyTx, type AnyTypion, type AnyTypionApp, type Attempt, BadRequestError, type BaseContext, type Behaviour, type BindOptions, type ByIdConfig, type ByName, type COLUMN_KIND, type ChangeArgs, type ChangeOp, type Collection, type CollectionDraft, type CollectionKinds, type CollectionRuntime, type CollectionSpec, type ColumnKeys, type ColumnKind, type ColumnKindRuntime, type ColumnKindSpec, type ColumnKindTypes, type ColumnKindsSpec, type ColumnKindsTypes, type ColumnMeta, type ColumnsOf, ConfigError, type ConfigErrorKind, type ConfigOptions, type ConfigSeedOptions, type ConfigTables, type ConfigTypes, ConflictError, type ConflictErrorOptions, type ConflictKind, type ContextFactory, type ContextFactoryInput, type ContextInput, type CorsOptions, type CountConfig, type CreateInput, type CreateInput_, type CreateOptions, type Ctx, type DbAdapter, type DefaultFeaturePlugins, type DefaultSetup, type DefinedPlugin, type DeleteOptions, type DependenciesError, type Descriptor, type DescriptorApi, type Dialect, type DraftsApi, type DraftsQueries, type DynamicReadKeys, type EntitiesOf, type EntityApi, type EntityDef, type EntityHooks, type EntityMeta, type EntityName, type EntityOptions, type EntitySchemas, type EntityValidation, type Extend, type FeatureId, type FeaturePlugins, type FeatureTables, type FeaturesOptions, type FieldDiff, type FieldOptions, type FieldRefinements, type FieldRuleArgs, type FindConfig, type FirstConfig, type FoldKinds, ForbiddenError, type ForbiddenErrorOptions, type FullCtx, type GeneratedTables, type GetTypionOptions, type GlobalHooks, type Governed, type HandlerOptions, type HandlerOptionsOf, type HiddenReadKeys, type HiddenWriteKeys, type HistoryApi, type HistoryQueries, type HookBase, type HookTypion, type Id, type InferItem, type InferResult, type InputModeOf, type InputSchema, type Insert, type Insert_, type IntegerTenantColumn, InternalError, InvalidStateError, type Jsonified, type KeyedShape, type KindOf, type KindRead, type KindWrite, type KindWriteOptions, type Kinded, type KindedData, type LinkApi, type LinkInput, type LinkMethods, type LinkQueries, type LinkQueryMethods, type LocaleReadMode, type LocalizationColumnKinds, type LocalizationOptions, type LocalizationPlugin, type LocalizationReadMode, type LocalizationWriteMode, type Localized, type ManagedKeys, type ManySpec, type MaybePromise, type MergeAll, type MergeConfigs, type MigrationsOptions, type MultiTenantCollectionOptions, type MultiTenantContext, type MultiTenantEntityOptions, type MultiTenantKinds, type MultiTenantOptions, type MultiTenantPlugin, type MultiTenantSystemOptions, type MultiTenantTraits, type NoExtraKeys, type NoUnknownKeys, type NoneIfEmpty, NotFoundError, type NullableTimestampKeys, type OneSpec, type Op, type Operation, type OperationMeta, type OptionType, type OrderBy, type Page, type PendingDraftPolicy, type Plugin, type PluginApis, type PluginCollectionOptions, type PluginContext, type PluginContextOptions, type PluginEntities, type PluginEntityDefiner, type PluginEntityOptions, PluginError, type PluginErrorDef, type PluginErrorFactories, type PluginErrorInput, type PluginErrorOptions, type PluginKinds, type PluginNeedsContext, type PluginReadOptions, type PluginRoute, type PluginRuntime, type PluginSpec, type PluginSpecInput, type PluginSystemOptions, type PluginTables, type RESULT, type RawWhere, type ReadModeFn, type ReadModeOf, type ReadOp, type ReadOptions, type ReadRow, type ReferenceOptions, Register, type RegisteredContext, type RegisteredPlugins, type RegisteredSetup, type RegisteredTypes, type RelationHelpers, type RelationMeta, type RelationSpec, type RequirementsError, type Result, type Row, type RuleArgs, type RuleData, type RuleSchema, type SchemaDrift, type SeedColumnsInput, type SeedGenerators, type SeedSpec, type Select, type Select_, type Setup, type SetupLocalization, type SetupOptions, type SetupPlugins, type SoftDeleteApi, type SoftDeleteCollectionOptions, type SoftDeleteDeleteOptions, type SoftDeleteEntityOptions, type SoftDeleteKinds, type SoftDeletePlugin, type SoftDeleteQueries, type SoftDeleteReadOptions, type SoftDeleteTraits, type StructuralSchema, type StructuralValidationAdapter, type StructureInput, type SystemTypion, type TableMode, type TableOf, type TableShape, type TenantColumnOf, type TenantContext, type TenantIdOf, type TextTenantColumn, type ThroughSpec, type TypesOf, type Typion, type TypionApp, type TypionAppOf, type TypionConfig, type TypionDefinition, type TypionEngine, TypionError, type TypionErrorCode, type TypionErrorOptions, type TypionHookApp, type TypionHookEntityApi, type TypionMode, type TypionSetup, type TypionTypes, UnsupportedError, type UpdateInput, type UpdateInput_, type UpdateManyOptions, type UpdateOptions, type UuidTenantColumn, type VS, type ValidationAdapter, ValidationError, type ValidationIssue, type ValidationMode, type Version, type VersionOperation, type VersionRef, type VersionState, type VersionsCollectionOptions, type VersionsCreateOptions, type VersionsEntityOptions, type VersionsHookArgs, type VersionsKinds, type VersionsListOptions, type VersionsOption, type VersionsPlugin, type VersionsReadOptions, type VersionsRestoreOptions, type VersionsTraits, type VersionsUpdateOptions, type VirtualColumn, type VirtualRelation, type VirtualTable, type Where, type WriteModeFn, type WriteModeOf, type WriteOp, type WriteOptions, allowAll, attempt, collection, dbAdapter, defineConfig, definePlugin, defineSetup, getTypion, isTypionError, localized, localizedIndex, localizedUnique, localizedValue, softDeleteColumn, softUnique, structuralValidation, tenantColumn, versionsTable };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as getTypion } from "./typion-TJWDkHGh.js";
1
+ import { n as getTypion } from "./typion-Dh2BCSRz.js";
2
2
  import { a as InternalError, c as PluginError, d as ValidationError, f as attempt, i as ForbiddenError, l as TypionError, n as ConfigError, o as InvalidStateError, p as isTypionError, r as ConflictError, s as NotFoundError, t as BadRequestError, u as UnsupportedError } from "./errors-D-CKO-px.js";
3
3
  import { i as timestamps, n as cloneColumn, r as defaultIdColumn, t as typion } from "./schema-Rzzq97cK.js";
4
4
  import { $ as allowAll, at as resolvePlugins, et as buildEntityMeta, it as definePlugin, nt as checkDependencies, rt as defineFeaturePlugin, tt as defineEntity } from "./operations-D3rOacLX.js";
@@ -1,5 +1,5 @@
1
- import { dn as TypionAppOf, fn as TypionConfig, ln as TypesOf, qt as HandlerOptionsOf, ya as PluginContextOptions } from "../context-CpLQy7OI.js";
2
- import { t as RouteHandlers } from "../handler-D03-rJ-t.js";
1
+ import { Jt as HandlerOptionsOf, ba as PluginContextOptions, fn as TypionAppOf, pn as TypionConfig, un as TypesOf } from "../context-B4e2eREP.js";
2
+ import { t as RouteHandlers } from "../handler-BWVU8TCR.js";
3
3
  //#region src/next/index.d.ts
4
4
  type ContextOptionsOf<C> = PluginContextOptions<TypesOf<C>['plugins']>;
5
5
  export declare function getApp<const C extends TypionConfig<any>>(config: C, options?: ContextOptionsOf<C>): Promise<TypionAppOf<C>>;
@@ -1,4 +1,4 @@
1
- import { n as getTypion } from "../typion-TJWDkHGh.js";
1
+ import { n as getTypion } from "../typion-Dh2BCSRz.js";
2
2
  import { n as toRouteHandlers, t as createHandler } from "../handler-_87bFkbP.js";
3
3
  import "../http/index.js";
4
4
  import { headers } from "next/headers";
@@ -1,4 +1,4 @@
1
- import { Tr as timestamps, ji as ColumnKind, wr as defaultIdColumn } from "../context-CpLQy7OI.js";
1
+ import { Er as timestamps, Mi as ColumnKind, Tr as defaultIdColumn } from "../context-B4e2eREP.js";
2
2
  import { AnyPgColumn, AnyPgColumnBuilder, PgSchema } from "drizzle-orm/pg-core";
3
3
  //#region src/schema/clone.d.ts
4
4
  type CloneColumnOptions = {
@@ -1,4 +1,4 @@
1
- import { B as EntityMeta, fn as TypionConfig, ta as SeedGenerators } from "../context-CpLQy7OI.js";
1
+ import { B as EntityMeta, na as SeedGenerators, pn as TypionConfig } from "../context-B4e2eREP.js";
2
2
  import { PgAsyncDatabase, PgQueryResultHKT } from "drizzle-orm/pg-core";
3
3
  //#region src/seed/index.d.ts
4
4
  type Db = PgAsyncDatabase<PgQueryResultHKT, any>;
@@ -1,4 +1,4 @@
1
- import { Mt as AfterCommitErrorHandler, a as MaybePromise, f as TypionApp, fn as TypionConfig, ln as TypesOf, m as TypionTypes, n as ContextInput, on as SystemTypion, p as TypionEngine, xa as PluginSystemOptions, ya as PluginContextOptions } from "../context-CpLQy7OI.js";
1
+ import { Gt as ContextFactoryInput, Mt as AfterCommitErrorHandler, Sa as PluginSystemOptions, a as MaybePromise, ba as PluginContextOptions, f as TypionApp, m as TypionTypes, n as ContextInput, p as TypionEngine, pn as TypionConfig, un as TypesOf } from "../context-B4e2eREP.js";
2
2
  import { PgAsyncDatabase, PgQueryResultHKT } from "drizzle-orm/pg-core";
3
3
  //#region src/testing/harness.d.ts
4
4
  interface TestTypion<TE extends TypionTypes> {
@@ -20,9 +20,7 @@ type TestTypionOptions<TE extends TypionTypes, TInput = ContextInput> = {
20
20
  checkSchema?: boolean;
21
21
  now?: () => Date;
22
22
  };
23
- export declare function createTestTypion<const C extends TypionConfig<any>>(config: C, options?: TestTypionOptions<TypesOf<C>, ContextInput & {
24
- system: SystemTypion;
25
- }>): Promise<TestTypion<TypesOf<C>>>;
23
+ export declare function createTestTypion<const C extends TypionConfig<any>>(config: C, options?: TestTypionOptions<TypesOf<C>, ContextFactoryInput>): Promise<TestTypion<TypesOf<C>>>;
26
24
  //#endregion
27
25
  export type { TestTypion, TestTypionOptions };
28
26
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import { r as standIn, t as createFromConfig } from "../typion-TJWDkHGh.js";
1
+ import { r as standIn, t as createFromConfig } from "../typion-Dh2BCSRz.js";
2
2
  import { PgTable, getTableConfig } from "drizzle-orm/pg-core";
3
3
  import { is, sql } from "drizzle-orm";
4
4
  import { PGlite } from "@electric-sql/pglite";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/testing/harness.ts"],"sourcesContent":["import { randomBytes } from 'node:crypto'\nimport { PGlite } from '@electric-sql/pglite'\nimport { pushSchema } from 'drizzle-kit/api-postgres'\nimport { type AnyRelations, is, sql } from 'drizzle-orm'\nimport {\n getTableConfig,\n type PgAsyncDatabase,\n type PgQueryResultHKT,\n PgTable,\n} from 'drizzle-orm/pg-core'\nimport { drizzle } from 'drizzle-orm/pglite'\nimport { createEngine } from '../runtime/engine.js'\nimport { createFromConfig, standIn } from '../runtime/typion.js'\nimport type {\n AfterCommitErrorHandler,\n SystemTypion,\n TypesOf,\n TypionConfig,\n} from '../types/collection.js'\nimport type { ContextInput, MaybePromise } from '../types/context.js'\nimport type { TypionApp, TypionEngine, TypionTypes } from '../types/engine.js'\nimport type { PluginContextOptions, PluginSystemOptions } from '../types/kinds.js'\nimport type { TypionDefinition } from '../types/meta.js'\n\nexport interface TestTypion<TE extends TypionTypes> {\n readonly typion: TypionEngine<TE>\n readonly db: PgAsyncDatabase<PgQueryResultHKT, TE['relations']>\n // Truncates every table of the definition; faster than a new database per test.\n reset(): Promise<void>\n close(): Promise<void>\n asUser(\n ctx: TE['ctx'],\n opts?: { meta?: Record<string, unknown> } & PluginContextOptions<TE['plugins']>,\n ): TypionApp<TE, 'user'>\n asSystem(\n reason?: string,\n opts?: {\n ctx?: Partial<TE['ctx']>\n meta?: Record<string, unknown>\n } & PluginContextOptions<TE['plugins']> &\n PluginSystemOptions<TE['plugins']>,\n ): TypionApp<TE, 'system'>\n}\n\nexport type TestTypionOptions<TE extends TypionTypes, TInput = ContextInput> = {\n // Replaces the context factory of the config, and gets what it gets: `system` too, for a config's instance.\n context?: (input: TInput) => MaybePromise<TE['ctx']>\n onAfterCommitError?: AfterCommitErrorHandler\n checkSchema?: boolean\n // A fixed clock for timestamps the engine writes.\n now?: () => Date\n}\n\ntype TestDatabase = {\n db: PgAsyncDatabase<PgQueryResultHKT, AnyRelations>\n close: () => Promise<void>\n}\n\n// `TYPION_TEST_DATABASE_URL` runs the instance on that Postgres server instead of PGlite, in a database of its\n// own, created here and dropped on close: suites run in parallel and must never share tables.\nasync function openDatabase(relations: AnyRelations): Promise<TestDatabase> {\n const url = process.env.TYPION_TEST_DATABASE_URL\n if (url === undefined || url === '') {\n const client = new PGlite()\n return { db: drizzle({ client, relations }), close: () => client.close() }\n }\n const { default: pg } = await import('pg')\n const { drizzle: drizzlePg } = await import('drizzle-orm/node-postgres')\n const name = `typion_test_${randomBytes(6).toString('hex')}`\n const admin = async (statement: string) => {\n const client = new pg.Client({ connectionString: url })\n await client.connect()\n try {\n await client.query(statement)\n } finally {\n await client.end()\n }\n }\n await admin(`create database \"${name}\"`)\n const target = new URL(url)\n target.pathname = `/${name}`\n // Few connections each: many instances share the server's limit while the suites run in parallel.\n const pool = new pg.Pool({ connectionString: target.toString(), max: 3 })\n return {\n db: drizzlePg({ client: pool, relations }),\n close: async () => {\n await pool.end()\n await admin(`drop database \"${name}\" with (force)`)\n },\n }\n}\n\n// pushSchema diffs every schema in the database, so the complete `schema` (user, generated and plugin tables\n// plus their pg schemas) is always passed: a partial record would drop the missing tables.\nasync function harness<TE extends TypionTypes>(\n def: TypionDefinition<TE>,\n create: (db: TestTypion<TE>['db']) => TypionEngine<TE>,\n): Promise<TestTypion<TE>> {\n const { db: opened, close } = await openDatabase(def.relations)\n const db = opened as TestTypion<TE>['db']\n const { apply } = await pushSchema(def.schema as Record<string, unknown>, db as never)\n await apply()\n const typion = create(db)\n const tables = Object.values(def.schema)\n .filter((value): value is PgTable => is(value, PgTable))\n .map((table) => {\n const info = getTableConfig(table)\n return `\"${info.schema ?? 'public'}\".\"${info.name}\"`\n })\n return {\n typion,\n db,\n async reset() {\n if (tables.length > 0)\n await db.execute(sql.raw(`truncate table ${tables.join(', ')} cascade`))\n },\n close,\n asUser: (ctx, opts) => typion.$as(ctx, opts),\n asSystem: (reason = 'test', opts = {} as never) => typion.$system({ reason, ...opts } as never),\n }\n}\n\n// The instance of a config on a fresh in-memory database; the config's context factory applies unless\n// `context` replaces it. Until `close`, it is the config's instance: `getTypion(config)` returns it, so a Hono app\n// or a route handler tested with requests reads and writes the test's database.\nexport async function createTestTypion<const C extends TypionConfig<any>>(\n config: C,\n options: TestTypionOptions<TypesOf<C>, ContextInput & { system: SystemTypion }> = {},\n): Promise<TestTypion<TypesOf<C>>> {\n const t = await harness(config.definition, (db) =>\n createFromConfig(config, { ...options, db: db as never }),\n )\n const restore = standIn(config, t.typion)\n return {\n ...t,\n close: async () => {\n restore()\n await t.close()\n },\n } as never\n}\n\n// The same over a definition of the internal chain, for the engine's own suite.\nexport function createTestEngine<TE extends TypionTypes>(\n def: TypionDefinition<TE>,\n options: TestTypionOptions<TE> = {},\n): Promise<TestTypion<TE>> {\n return harness(def, (db) => createEngine(def, { ...options, db: db as never }))\n}\n"],"mappings":";;;;;;;;AA4DA,eAAe,aAAa,WAAgD;CAC1E,MAAM,MAAM,QAAQ,IAAI;CACxB,IAAI,QAAQ,KAAA,KAAa,QAAQ,IAAI;EACnC,MAAM,SAAS,IAAI,OAAO;EAC1B,OAAO;GAAE,IAAI,QAAQ;IAAE;IAAQ;GAAU,CAAC;GAAG,aAAa,OAAO,MAAM;EAAE;CAC3E;CACA,MAAM,EAAE,SAAS,OAAO,MAAM,OAAO;CACrC,MAAM,EAAE,SAAS,cAAc,MAAM,OAAO;CAC5C,MAAM,OAAO,eAAe,YAAY,CAAC,CAAC,CAAC,SAAS,KAAK;CACzD,MAAM,QAAQ,OAAO,cAAsB;EACzC,MAAM,SAAS,IAAI,GAAG,OAAO,EAAE,kBAAkB,IAAI,CAAC;EACtD,MAAM,OAAO,QAAQ;EACrB,IAAI;GACF,MAAM,OAAO,MAAM,SAAS;EAC9B,UAAU;GACR,MAAM,OAAO,IAAI;EACnB;CACF;CACA,MAAM,MAAM,oBAAoB,KAAK,EAAE;CACvC,MAAM,SAAS,IAAI,IAAI,GAAG;CAC1B,OAAO,WAAW,IAAI;CAEtB,MAAM,OAAO,IAAI,GAAG,KAAK;EAAE,kBAAkB,OAAO,SAAS;EAAG,KAAK;CAAE,CAAC;CACxE,OAAO;EACL,IAAI,UAAU;GAAE,QAAQ;GAAM;EAAU,CAAC;EACzC,OAAO,YAAY;GACjB,MAAM,KAAK,IAAI;GACf,MAAM,MAAM,kBAAkB,KAAK,eAAe;EACpD;CACF;AACF;AAIA,eAAe,QACb,KACA,QACyB;CACzB,MAAM,EAAE,IAAI,QAAQ,UAAU,MAAM,aAAa,IAAI,SAAS;CAC9D,MAAM,KAAK;CACX,MAAM,EAAE,UAAU,MAAM,WAAW,IAAI,QAAmC,EAAW;CACrF,MAAM,MAAM;CACZ,MAAM,SAAS,OAAO,EAAE;CACxB,MAAM,SAAS,OAAO,OAAO,IAAI,MAAM,CAAC,CACrC,QAAQ,UAA4B,GAAG,OAAO,OAAO,CAAC,CAAC,CACvD,KAAK,UAAU;EACd,MAAM,OAAO,eAAe,KAAK;EACjC,OAAO,IAAI,KAAK,UAAU,SAAS,KAAK,KAAK,KAAK;CACpD,CAAC;CACH,OAAO;EACL;EACA;EACA,MAAM,QAAQ;GACZ,IAAI,OAAO,SAAS,GAClB,MAAM,GAAG,QAAQ,IAAI,IAAI,kBAAkB,OAAO,KAAK,IAAI,EAAE,SAAS,CAAC;EAC3E;EACA;EACA,SAAS,KAAK,SAAS,OAAO,IAAI,KAAK,IAAI;EAC3C,WAAW,SAAS,QAAQ,OAAO,CAAC,MAAe,OAAO,QAAQ;GAAE;GAAQ,GAAG;EAAK,CAAU;CAChG;AACF;AAKA,eAAsB,iBACpB,QACA,UAAkF,CAAC,GAClD;CACjC,MAAM,IAAI,MAAM,QAAQ,OAAO,aAAa,OAC1C,iBAAiB,QAAQ;EAAE,GAAG;EAAa;CAAY,CAAC,CAC1D;CACA,MAAM,UAAU,QAAQ,QAAQ,EAAE,MAAM;CACxC,OAAO;EACL,GAAG;EACH,OAAO,YAAY;GACjB,QAAQ;GACR,MAAM,EAAE,MAAM;EAChB;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/testing/harness.ts"],"sourcesContent":["import { randomBytes } from 'node:crypto'\nimport { PGlite } from '@electric-sql/pglite'\nimport { pushSchema } from 'drizzle-kit/api-postgres'\nimport { type AnyRelations, is, sql } from 'drizzle-orm'\nimport {\n getTableConfig,\n type PgAsyncDatabase,\n type PgQueryResultHKT,\n PgTable,\n} from 'drizzle-orm/pg-core'\nimport { drizzle } from 'drizzle-orm/pglite'\nimport { createEngine } from '../runtime/engine.js'\nimport { createFromConfig, standIn } from '../runtime/typion.js'\nimport type {\n AfterCommitErrorHandler,\n ContextFactoryInput,\n TypesOf,\n TypionConfig,\n} from '../types/collection.js'\nimport type { ContextInput, MaybePromise } from '../types/context.js'\nimport type { TypionApp, TypionEngine, TypionTypes } from '../types/engine.js'\nimport type { PluginContextOptions, PluginSystemOptions } from '../types/kinds.js'\nimport type { TypionDefinition } from '../types/meta.js'\n\nexport interface TestTypion<TE extends TypionTypes> {\n readonly typion: TypionEngine<TE>\n readonly db: PgAsyncDatabase<PgQueryResultHKT, TE['relations']>\n // Truncates every table of the definition; faster than a new database per test.\n reset(): Promise<void>\n close(): Promise<void>\n asUser(\n ctx: TE['ctx'],\n opts?: { meta?: Record<string, unknown> } & PluginContextOptions<TE['plugins']>,\n ): TypionApp<TE, 'user'>\n asSystem(\n reason?: string,\n opts?: {\n ctx?: Partial<TE['ctx']>\n meta?: Record<string, unknown>\n } & PluginContextOptions<TE['plugins']> &\n PluginSystemOptions<TE['plugins']>,\n ): TypionApp<TE, 'system'>\n}\n\nexport type TestTypionOptions<TE extends TypionTypes, TInput = ContextInput> = {\n // Replaces the context factory of the config, and gets what it gets: `system` and `db` too, for a config's instance.\n context?: (input: TInput) => MaybePromise<TE['ctx']>\n onAfterCommitError?: AfterCommitErrorHandler\n checkSchema?: boolean\n // A fixed clock for timestamps the engine writes.\n now?: () => Date\n}\n\ntype TestDatabase = {\n db: PgAsyncDatabase<PgQueryResultHKT, AnyRelations>\n close: () => Promise<void>\n}\n\n// `TYPION_TEST_DATABASE_URL` runs the instance on that Postgres server instead of PGlite, in a database of its\n// own, created here and dropped on close: suites run in parallel and must never share tables.\nasync function openDatabase(relations: AnyRelations): Promise<TestDatabase> {\n const url = process.env.TYPION_TEST_DATABASE_URL\n if (url === undefined || url === '') {\n const client = new PGlite()\n return { db: drizzle({ client, relations }), close: () => client.close() }\n }\n const { default: pg } = await import('pg')\n const { drizzle: drizzlePg } = await import('drizzle-orm/node-postgres')\n const name = `typion_test_${randomBytes(6).toString('hex')}`\n const admin = async (statement: string) => {\n const client = new pg.Client({ connectionString: url })\n await client.connect()\n try {\n await client.query(statement)\n } finally {\n await client.end()\n }\n }\n await admin(`create database \"${name}\"`)\n const target = new URL(url)\n target.pathname = `/${name}`\n // Few connections each: many instances share the server's limit while the suites run in parallel.\n const pool = new pg.Pool({ connectionString: target.toString(), max: 3 })\n return {\n db: drizzlePg({ client: pool, relations }),\n close: async () => {\n await pool.end()\n await admin(`drop database \"${name}\" with (force)`)\n },\n }\n}\n\n// pushSchema diffs every schema in the database, so the complete `schema` (user, generated and plugin tables\n// plus their pg schemas) is always passed: a partial record would drop the missing tables.\nasync function harness<TE extends TypionTypes>(\n def: TypionDefinition<TE>,\n create: (db: TestTypion<TE>['db']) => TypionEngine<TE>,\n): Promise<TestTypion<TE>> {\n const { db: opened, close } = await openDatabase(def.relations)\n const db = opened as TestTypion<TE>['db']\n const { apply } = await pushSchema(def.schema as Record<string, unknown>, db as never)\n await apply()\n const typion = create(db)\n const tables = Object.values(def.schema)\n .filter((value): value is PgTable => is(value, PgTable))\n .map((table) => {\n const info = getTableConfig(table)\n return `\"${info.schema ?? 'public'}\".\"${info.name}\"`\n })\n return {\n typion,\n db,\n async reset() {\n if (tables.length > 0)\n await db.execute(sql.raw(`truncate table ${tables.join(', ')} cascade`))\n },\n close,\n asUser: (ctx, opts) => typion.$as(ctx, opts),\n asSystem: (reason = 'test', opts = {} as never) => typion.$system({ reason, ...opts } as never),\n }\n}\n\n// The instance of a config on a fresh in-memory database; the config's context factory applies unless\n// `context` replaces it. Until `close`, it is the config's instance: `getTypion(config)` returns it, so a Hono app\n// or a route handler tested with requests reads and writes the test's database.\nexport async function createTestTypion<const C extends TypionConfig<any>>(\n config: C,\n options: TestTypionOptions<TypesOf<C>, ContextFactoryInput> = {},\n): Promise<TestTypion<TypesOf<C>>> {\n const t = await harness(config.definition, (db) =>\n createFromConfig(config, { ...options, db: db as never }),\n )\n const restore = standIn(config, t.typion)\n return {\n ...t,\n close: async () => {\n restore()\n await t.close()\n },\n } as never\n}\n\n// The same over a definition of the internal chain, for the engine's own suite.\nexport function createTestEngine<TE extends TypionTypes>(\n def: TypionDefinition<TE>,\n options: TestTypionOptions<TE> = {},\n): Promise<TestTypion<TE>> {\n return harness(def, (db) => createEngine(def, { ...options, db: db as never }))\n}\n"],"mappings":";;;;;;;;AA4DA,eAAe,aAAa,WAAgD;CAC1E,MAAM,MAAM,QAAQ,IAAI;CACxB,IAAI,QAAQ,KAAA,KAAa,QAAQ,IAAI;EACnC,MAAM,SAAS,IAAI,OAAO;EAC1B,OAAO;GAAE,IAAI,QAAQ;IAAE;IAAQ;GAAU,CAAC;GAAG,aAAa,OAAO,MAAM;EAAE;CAC3E;CACA,MAAM,EAAE,SAAS,OAAO,MAAM,OAAO;CACrC,MAAM,EAAE,SAAS,cAAc,MAAM,OAAO;CAC5C,MAAM,OAAO,eAAe,YAAY,CAAC,CAAC,CAAC,SAAS,KAAK;CACzD,MAAM,QAAQ,OAAO,cAAsB;EACzC,MAAM,SAAS,IAAI,GAAG,OAAO,EAAE,kBAAkB,IAAI,CAAC;EACtD,MAAM,OAAO,QAAQ;EACrB,IAAI;GACF,MAAM,OAAO,MAAM,SAAS;EAC9B,UAAU;GACR,MAAM,OAAO,IAAI;EACnB;CACF;CACA,MAAM,MAAM,oBAAoB,KAAK,EAAE;CACvC,MAAM,SAAS,IAAI,IAAI,GAAG;CAC1B,OAAO,WAAW,IAAI;CAEtB,MAAM,OAAO,IAAI,GAAG,KAAK;EAAE,kBAAkB,OAAO,SAAS;EAAG,KAAK;CAAE,CAAC;CACxE,OAAO;EACL,IAAI,UAAU;GAAE,QAAQ;GAAM;EAAU,CAAC;EACzC,OAAO,YAAY;GACjB,MAAM,KAAK,IAAI;GACf,MAAM,MAAM,kBAAkB,KAAK,eAAe;EACpD;CACF;AACF;AAIA,eAAe,QACb,KACA,QACyB;CACzB,MAAM,EAAE,IAAI,QAAQ,UAAU,MAAM,aAAa,IAAI,SAAS;CAC9D,MAAM,KAAK;CACX,MAAM,EAAE,UAAU,MAAM,WAAW,IAAI,QAAmC,EAAW;CACrF,MAAM,MAAM;CACZ,MAAM,SAAS,OAAO,EAAE;CACxB,MAAM,SAAS,OAAO,OAAO,IAAI,MAAM,CAAC,CACrC,QAAQ,UAA4B,GAAG,OAAO,OAAO,CAAC,CAAC,CACvD,KAAK,UAAU;EACd,MAAM,OAAO,eAAe,KAAK;EACjC,OAAO,IAAI,KAAK,UAAU,SAAS,KAAK,KAAK,KAAK;CACpD,CAAC;CACH,OAAO;EACL;EACA;EACA,MAAM,QAAQ;GACZ,IAAI,OAAO,SAAS,GAClB,MAAM,GAAG,QAAQ,IAAI,IAAI,kBAAkB,OAAO,KAAK,IAAI,EAAE,SAAS,CAAC;EAC3E;EACA;EACA,SAAS,KAAK,SAAS,OAAO,IAAI,KAAK,IAAI;EAC3C,WAAW,SAAS,QAAQ,OAAO,CAAC,MAAe,OAAO,QAAQ;GAAE;GAAQ,GAAG;EAAK,CAAU;CAChG;AACF;AAKA,eAAsB,iBACpB,QACA,UAA8D,CAAC,GAC9B;CACjC,MAAM,IAAI,MAAM,QAAQ,OAAO,aAAa,OAC1C,iBAAiB,QAAQ;EAAE,GAAG;EAAa;CAAY,CAAC,CAC1D;CACA,MAAM,UAAU,QAAQ,QAAQ,EAAE,MAAM;CACxC,OAAO;EACL,GAAG;EACH,OAAO,YAAY;GACjB,QAAQ;GACR,MAAM,EAAE,MAAM;EAChB;CACF;AACF"}
@@ -1154,7 +1154,8 @@ function createFromConfig(config, options) {
1154
1154
  system: engine.$system({
1155
1155
  reason: "context",
1156
1156
  [CALLER_LOOKUP]: true
1157
- })
1157
+ }),
1158
+ db: options.db
1158
1159
  })
1159
1160
  });
1160
1161
  return engine;
@@ -1183,4 +1184,4 @@ async function getTypion(config, options = {}) {
1183
1184
  //#endregion
1184
1185
  export { typion_exports as i, getTypion as n, standIn as r, createFromConfig as t };
1185
1186
 
1186
- //# sourceMappingURL=typion-TJWDkHGh.js.map
1187
+ //# sourceMappingURL=typion-Dh2BCSRz.js.map