{"version":3,"file":"sqlite-static-Dxsz2boK.mjs","names":[],"sources":["../src/static/sqlite-static.ts"],"sourcesContent":["import sqliteAdapter from '@prisma-next/adapter-sqlite/runtime';\nimport { buildNamespacedEnums, type NamespacedEnums } from '@prisma-next/contract/enum-accessor';\nimport type { Contract } from '@prisma-next/contract/types';\nimport { UNBOUND_NAMESPACE_ID } from '@prisma-next/framework-components/ir';\nimport { sql } from '@prisma-next/sql-builder/runtime';\nimport type { Db } from '@prisma-next/sql-builder/types';\nimport type { SqlStorage } from '@prisma-next/sql-contract/types';\nimport type { RawCodecInferer, RawSqlTag } from '@prisma-next/sql-relational-core/expression';\nimport { createRawSql } from '@prisma-next/sql-relational-core/expression';\nimport type { ExecutionContext, SqlRuntimeExtensionDescriptor } from '@prisma-next/sql-runtime';\nimport { createExecutionContext, createSqlExecutionStack } from '@prisma-next/sql-runtime';\nimport sqliteTarget, { SqliteContractSerializer } from '@prisma-next/target-sqlite/runtime';\nimport { assertDefined } from '@prisma-next/utils/assertions';\nimport { blindCast } from '@prisma-next/utils/casts';\nimport type { SqliteTargetId } from '../runtime/sqlite';\n\ntype UnboundSql<TContract extends Contract<SqlStorage>> =\n  Db<TContract>[typeof UNBOUND_NAMESPACE_ID];\ntype UnboundEnums<TContract extends Contract<SqlStorage>> =\n  NamespacedEnums<TContract>[typeof UNBOUND_NAMESPACE_ID];\n\nexport interface SqliteStaticContext<TContract extends Contract<SqlStorage>> {\n  readonly context: ExecutionContext<TContract>;\n  readonly contract: TContract;\n  readonly enums: UnboundEnums<TContract>;\n  readonly sql: UnboundSql<TContract>;\n  readonly raw: RawSqlTag;\n}\n\nexport function buildSqliteStaticContext<TContract extends Contract<SqlStorage>>(\n  context: ExecutionContext<TContract>,\n  rawCodecInferer: RawCodecInferer,\n): SqliteStaticContext<TContract> {\n  const sqlNamespace = sql<TContract>({ context, rawCodecInferer })[UNBOUND_NAMESPACE_ID];\n  assertDefined(sqlNamespace, 'the unbound namespace always exists on a sqlite builder output');\n  const sqlDb = blindCast<\n    UnboundSql<TContract>,\n    'Db<TContract> indexed by a literal key widens NsId to string; TableProxy is invariant in NsId via insert()/update() parameter positions, so the indexed-access type cannot be proven to match the literal-keyed Namespace without this cast'\n  >(sqlNamespace);\n  const raw: RawSqlTag = createRawSql(rawCodecInferer);\n  const enums = Object.freeze(buildNamespacedEnums<TContract>(context.contract.domain))[\n    UNBOUND_NAMESPACE_ID\n  ];\n  assertDefined(enums, 'the unbound namespace always exists on a sqlite builder output');\n  return { context, contract: context.contract, enums, sql: sqlDb, raw };\n}\n\nexport default function sqliteStatic<TContract extends Contract<SqlStorage>>(options: {\n  readonly contractJson: unknown;\n  readonly extensions?: readonly SqlRuntimeExtensionDescriptor<SqliteTargetId>[];\n}): SqliteStaticContext<TContract> {\n  const contract = blindCast<\n    TContract,\n    'SqliteContractSerializer validates and returns a typed contract'\n  >(new SqliteContractSerializer().deserializeContract(options.contractJson));\n  const stack = createSqlExecutionStack({\n    target: sqliteTarget,\n    adapter: sqliteAdapter,\n    extensionPacks: options.extensions ?? [],\n  });\n  const context = createExecutionContext({ contract, stack });\n  return buildSqliteStaticContext(context, stack.adapter.rawCodecInferer);\n}\n"],"mappings":";;;;;;;;;;AA6BA,SAAgB,yBACd,SACA,iBACgC;CAChC,MAAM,eAAe,IAAe;EAAE;EAAS;CAAgB,CAAC,CAAC,CAAC;CAClE,cAAc,cAAc,gEAAgE;CAC5F,MAAM,QAAQ,UAGZ,YAAY;CACd,MAAM,MAAiB,aAAa,eAAe;CACnD,MAAM,QAAQ,OAAO,OAAO,qBAAgC,QAAQ,SAAS,MAAM,CAAC,CAAC,CACnF;CAEF,cAAc,OAAO,gEAAgE;CACrF,OAAO;EAAE;EAAS,UAAU,QAAQ;EAAU;EAAO,KAAK;EAAO;CAAI;AACvE;AAEA,SAAwB,aAAqD,SAG1C;CACjC,MAAM,WAAW,UAGf,IAAI,yBAAyB,CAAC,CAAC,oBAAoB,QAAQ,YAAY,CAAC;CAC1E,MAAM,QAAQ,wBAAwB;EACpC,QAAQ;EACR,SAAS;EACT,gBAAgB,QAAQ,cAAc,CAAC;CACzC,CAAC;CAED,OAAO,yBADS,uBAAuB;EAAE;EAAU;CAAM,CACnB,GAAG,MAAM,QAAQ,eAAe;AACxE"}