{"version":3,"file":"contract-builder.mjs","names":["sqlitePack"],"sources":["../src/contract/define-contract.ts"],"sourcesContent":["import sqlFamilyPack from '@prisma-next/family-sql/pack';\nimport type { ExtensionPackRef } from '@prisma-next/framework-components/components';\nimport type {\n  SqlNamespaceBase,\n  SqlNamespaceInput,\n  StorageTypeInstance,\n} from '@prisma-next/sql-contract/types';\nimport type {\n  ComposedAuthoringHelpers,\n  ContractInput,\n  ModelLike,\n} from '@prisma-next/sql-contract-ts/contract-builder';\nimport { buildBoundContract } from '@prisma-next/sql-contract-ts/contract-builder';\nimport { sqliteCreateNamespace } from '@prisma-next/target-sqlite/control';\nimport sqlitePack from '@prisma-next/target-sqlite/pack';\n\ntype SqlFamily = typeof sqlFamilyPack;\ntype SqlitePack = typeof sqlitePack;\n\ntype TypesConstraint = Record<string, StorageTypeInstance>;\ntype ModelsConstraint = Record<string, ModelLike>;\n\ntype SqliteResult<\n  Types extends TypesConstraint,\n  Models extends ModelsConstraint,\n  ExtensionPacks extends Record<string, ExtensionPackRef<'sql', string>> | undefined,\n> = ReturnType<\n  typeof buildBoundContract<\n    SqlFamily,\n    SqlitePack,\n    {\n      readonly types?: Types;\n      readonly models?: Models;\n      readonly extensionPacks?: ExtensionPacks;\n      readonly createNamespace: (input: SqlNamespaceInput) => SqlNamespaceBase;\n    }\n  >\n>;\n\ntype SqliteBaseScaffold<\n  ExtensionPacks extends Record<string, ExtensionPackRef<'sql', string>> | undefined,\n> = Omit<\n  ContractInput<SqlFamily, SqlitePack, Record<never, never>, Record<never, never>, ExtensionPacks>,\n  'family' | 'target' | 'types' | 'models' | 'createNamespace'\n>;\n\ntype SqliteDefinition<\n  Types extends TypesConstraint,\n  Models extends ModelsConstraint,\n  ExtensionPacks extends Record<string, ExtensionPackRef<'sql', string>> | undefined,\n> = SqliteBaseScaffold<ExtensionPacks> & {\n  readonly types?: Types;\n  readonly models?: Models;\n};\n\ntype SqliteScaffold<\n  ExtensionPacks extends Record<string, ExtensionPackRef<'sql', string>> | undefined,\n> = SqliteBaseScaffold<ExtensionPacks>;\n\nexport function defineContract<\n  const Types extends TypesConstraint = Record<never, never>,\n  const Models extends ModelsConstraint = Record<never, never>,\n  const ExtensionPacks extends\n    | Record<string, ExtensionPackRef<'sql', string>>\n    | undefined = undefined,\n>(\n  definition: SqliteDefinition<Types, Models, ExtensionPacks>,\n): SqliteResult<Types, Models, ExtensionPacks>;\n\nexport function defineContract<\n  const Types extends TypesConstraint = Record<never, never>,\n  const Models extends ModelsConstraint = Record<never, never>,\n  const ExtensionPacks extends\n    | Record<string, ExtensionPackRef<'sql', string>>\n    | undefined = undefined,\n>(\n  scaffold: SqliteScaffold<ExtensionPacks>,\n  factory: (helpers: ComposedAuthoringHelpers<SqlFamily, SqlitePack, ExtensionPacks>) => {\n    readonly types?: Types;\n    readonly models?: Models;\n  },\n): SqliteResult<Types, Models, ExtensionPacks>;\n\n// Implementation — delegates to buildBoundContract which pre-binds family/target,\n// carrying zero casts at this layer.\nexport function defineContract(\n  definition: SqliteDefinition<TypesConstraint, ModelsConstraint, undefined>,\n  factory?: (helpers: ComposedAuthoringHelpers<SqlFamily, SqlitePack, undefined>) => {\n    readonly types?: TypesConstraint;\n    readonly models?: ModelsConstraint;\n  },\n): SqliteResult<TypesConstraint, ModelsConstraint, undefined> {\n  const bound = { ...definition, createNamespace: sqliteCreateNamespace };\n  if (factory !== undefined) {\n    return buildBoundContract(sqlFamilyPack, sqlitePack, bound, factory);\n  }\n  return buildBoundContract(sqlFamilyPack, sqlitePack, bound);\n}\n"],"mappings":";;;;;AAqFA,SAAgB,eACd,YACA,SAI4D;CAC5D,MAAM,QAAQ;EAAE,GAAG;EAAY,iBAAiB;CAAsB;CACtE,IAAI,YAAY,KAAA,GACd,OAAO,mBAAmB,eAAeA,eAAY,OAAO,OAAO;CAErE,OAAO,mBAAmB,eAAeA,eAAY,KAAK;AAC5D"}