{"version":3,"file":"contract.mjs","names":[],"sources":["../src/contract/handles.ts"],"sourcesContent":["/**\n * Branded model handles for the Supabase contract space.\n *\n * Each handle is built via `extensionModel` branded `spaceId: 'supabase'` with\n * its real domain model name, namespace, table name, and columns — so\n * `AuthUser.refs.id` is a cross-space `TargetFieldRef` carrying\n * `spaceId:'supabase'`, `namespaceId:'auth'`, `tableName:'users'`.\n *\n * Columns mirror the shipped contract (`src/contract/contract.json`); the\n * handle↔contract consistency test (`test/contract-handles.test.ts`) asserts\n * they agree so any drift is caught at test time.\n */\nimport { extensionModel, field } from '@prisma-next/sql-contract-ts/contract-builder';\n\nconst pgText = { codecId: 'pg/text@1', nativeType: 'text' } as const;\nconst pgTimestamptz = { codecId: 'pg/timestamptz@1', nativeType: 'timestamptz' } as const;\n\nexport const AuthUser = extensionModel(\n  'AuthUser',\n  {\n    namespace: 'auth',\n    fields: {\n      id: field.column(pgText).id(),\n      email: field.column(pgText),\n      created_at: field.column(pgTimestamptz),\n      updated_at: field.column(pgTimestamptz),\n    },\n    table: 'users',\n  },\n  'supabase' as const,\n);\n\nexport const AuthIdentity = extensionModel(\n  'AuthIdentity',\n  {\n    namespace: 'auth',\n    fields: {\n      id: field.column(pgText).id(),\n      user_id: field.column(pgText),\n      provider: field.column(pgText),\n      created_at: field.column(pgTimestamptz),\n      updated_at: field.column(pgTimestamptz),\n    },\n    table: 'identities',\n  },\n  'supabase' as const,\n);\n\nexport const StorageBucket = extensionModel(\n  'StorageBucket',\n  {\n    namespace: 'storage',\n    fields: {\n      id: field.column(pgText).id(),\n      name: field.column(pgText),\n      created_at: field.column(pgTimestamptz),\n      updated_at: field.column(pgTimestamptz),\n    },\n    table: 'buckets',\n  },\n  'supabase' as const,\n);\n\nexport const StorageObject = extensionModel(\n  'StorageObject',\n  {\n    namespace: 'storage',\n    fields: {\n      id: field.column(pgText).id(),\n      bucket_id: field.column(pgText),\n      name: field.column(pgText),\n      created_at: field.column(pgTimestamptz),\n      updated_at: field.column(pgTimestamptz),\n    },\n    table: 'objects',\n  },\n  'supabase' as const,\n);\n"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAM,SAAS;CAAE,SAAS;CAAa,YAAY;AAAO;AAC1D,MAAM,gBAAgB;CAAE,SAAS;CAAoB,YAAY;AAAc;AAE/E,MAAa,WAAW,eACtB,YACA;CACE,WAAW;CACX,QAAQ;EACN,IAAI,MAAM,OAAO,MAAM,CAAC,CAAC,GAAG;EAC5B,OAAO,MAAM,OAAO,MAAM;EAC1B,YAAY,MAAM,OAAO,aAAa;EACtC,YAAY,MAAM,OAAO,aAAa;CACxC;CACA,OAAO;AACT,GACA,UACF;AAEA,MAAa,eAAe,eAC1B,gBACA;CACE,WAAW;CACX,QAAQ;EACN,IAAI,MAAM,OAAO,MAAM,CAAC,CAAC,GAAG;EAC5B,SAAS,MAAM,OAAO,MAAM;EAC5B,UAAU,MAAM,OAAO,MAAM;EAC7B,YAAY,MAAM,OAAO,aAAa;EACtC,YAAY,MAAM,OAAO,aAAa;CACxC;CACA,OAAO;AACT,GACA,UACF;AAEA,MAAa,gBAAgB,eAC3B,iBACA;CACE,WAAW;CACX,QAAQ;EACN,IAAI,MAAM,OAAO,MAAM,CAAC,CAAC,GAAG;EAC5B,MAAM,MAAM,OAAO,MAAM;EACzB,YAAY,MAAM,OAAO,aAAa;EACtC,YAAY,MAAM,OAAO,aAAa;CACxC;CACA,OAAO;AACT,GACA,UACF;AAEA,MAAa,gBAAgB,eAC3B,iBACA;CACE,WAAW;CACX,QAAQ;EACN,IAAI,MAAM,OAAO,MAAM,CAAC,CAAC,GAAG;EAC5B,WAAW,MAAM,OAAO,MAAM;EAC9B,MAAM,MAAM,OAAO,MAAM;EACzB,YAAY,MAAM,OAAO,aAAa;EACtC,YAAY,MAAM,OAAO,aAAa;CACxC;CACA,OAAO;AACT,GACA,UACF"}