{"version":3,"file":"user-auth-providers.mjs","names":[],"sources":["../../../src/libs/repositories/user-auth-providers.ts"],"sourcesContent":["import z from \"zod\";\nimport type DatabaseAdapter from \"../db/adapter-base.js\";\nimport type { KyselyDB } from \"../db/types.js\";\nimport StaticRepository from \"./parents/static-repository.js\";\nimport type { QueryProps } from \"./types.js\";\n\nexport default class UserAuthProvidersRepository extends StaticRepository<\"lucid_user_auth_providers\"> {\n\tconstructor(db: KyselyDB, dbAdapter: DatabaseAdapter) {\n\t\tsuper(db, dbAdapter, \"lucid_user_auth_providers\");\n\t}\n\ttableSchema = z.object({\n\t\tid: z.number(),\n\t\tuser_id: z.number(),\n\t\tprovider_key: z.string(),\n\t\tprovider_user_id: z.string(),\n\t\tlinked_at: z.union([z.string(), z.date()]).nullable(),\n\t\tmetadata: z.record(z.string(), z.unknown()).nullable(),\n\t\tcreated_at: z.union([z.string(), z.date()]),\n\t\tupdated_at: z.union([z.string(), z.date()]).nullable(),\n\t\t// user\n\t\tuser_email: z.email(),\n\t\tuser_first_name: z.string().nullable(),\n\t\tuser_last_name: z.string().nullable(),\n\t\tuser_invitation_accepted: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\tuser_is_deleted: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t\tuser_is_locked: z.union([\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.true),\n\t\t\tz.literal(this.dbAdapter.config.defaults.boolean.false),\n\t\t]),\n\t});\n\tcolumnFormats = {\n\t\tid: this.dbAdapter.getDataType(\"primary\"),\n\t\tuser_id: this.dbAdapter.getDataType(\"integer\"),\n\t\tprovider_key: this.dbAdapter.getDataType(\"text\"),\n\t\tprovider_user_id: this.dbAdapter.getDataType(\"text\"),\n\t\tlinked_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t\tmetadata: this.dbAdapter.getDataType(\"json\"),\n\t\tcreated_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t\tupdated_at: this.dbAdapter.getDataType(\"timestamp\"),\n\t};\n\tqueryConfig = {\n\t\ttableKeys: {\n\t\t\tfilters: {\n\t\t\t\tuserId: \"user_id\",\n\t\t\t\tproviderKey: \"provider_key\",\n\t\t\t},\n\t\t\tsorts: {\n\t\t\t\tcreatedAt: \"created_at\",\n\t\t\t\tupdatedAt: \"updated_at\",\n\t\t\t\tproviderKey: \"provider_key\",\n\t\t\t},\n\t\t},\n\t\toperators: {\n\t\t\tproviderKey: \"contains\",\n\t\t},\n\t} as const;\n\n\t// ----------------------------------------\n\t// queries\n\tasync selectUserAuthProvider<V extends boolean = false>(\n\t\tprops: QueryProps<\n\t\t\tV,\n\t\t\t{\n\t\t\t\tproviderKey: string;\n\t\t\t\tproviderUserId: string;\n\t\t\t}\n\t\t>,\n\t) {\n\t\tconst query = this.db\n\t\t\t.selectFrom(\"lucid_user_auth_providers\")\n\t\t\t.select([\n\t\t\t\t\"lucid_user_auth_providers.id\",\n\t\t\t\t\"lucid_user_auth_providers.user_id\",\n\t\t\t\t\"lucid_user_auth_providers.provider_key\",\n\t\t\t\t\"lucid_user_auth_providers.provider_user_id\",\n\t\t\t\t\"lucid_user_auth_providers.linked_at\",\n\t\t\t\t\"lucid_user_auth_providers.metadata\",\n\t\t\t\t\"lucid_user_auth_providers.created_at\",\n\t\t\t\t\"lucid_user_auth_providers.updated_at\",\n\t\t\t])\n\t\t\t.innerJoin(\n\t\t\t\t\"lucid_users\",\n\t\t\t\t\"lucid_users.id\",\n\t\t\t\t\"lucid_user_auth_providers.user_id\",\n\t\t\t)\n\t\t\t.select([\n\t\t\t\t\"lucid_users.email as user_email\",\n\t\t\t\t\"lucid_users.first_name as user_first_name\",\n\t\t\t\t\"lucid_users.last_name as user_last_name\",\n\t\t\t\t\"lucid_users.is_deleted as user_is_deleted\",\n\t\t\t\t\"lucid_users.is_locked as user_is_locked\",\n\t\t\t])\n\t\t\t.where(\"lucid_user_auth_providers.provider_key\", \"=\", props.providerKey)\n\t\t\t.where(\n\t\t\t\t\"lucid_user_auth_providers.provider_user_id\",\n\t\t\t\t\"=\",\n\t\t\t\tprops.providerUserId,\n\t\t\t);\n\n\t\tconst exec = await this.executeQuery(() => query.executeTakeFirst(), {\n\t\t\tmethod: \"selectUserAuthProvider\",\n\t\t});\n\t\tif (exec.response.error) return exec.response;\n\n\t\treturn this.validateResponse(exec, {\n\t\t\t...props.validation,\n\t\t\tmode: \"single\",\n\t\t\tselect: [\n\t\t\t\t\"id\",\n\t\t\t\t\"user_id\",\n\t\t\t\t\"provider_key\",\n\t\t\t\t\"provider_user_id\",\n\t\t\t\t\"linked_at\",\n\t\t\t\t\"metadata\",\n\t\t\t\t\"created_at\",\n\t\t\t\t\"updated_at\",\n\t\t\t\t\"user_email\",\n\t\t\t\t\"user_first_name\",\n\t\t\t\t\"user_last_name\",\n\t\t\t\t\"user_is_deleted\",\n\t\t\t\t\"user_is_locked\",\n\t\t\t],\n\t\t});\n\t}\n}\n"],"mappings":"kEAMA,IAAqB,EAArB,cAAyD,CAA8C,CACtG,YAAY,EAAc,EAA4B,CACrD,MAAM,EAAI,EAAW,2BAA2B,CACjD,CACA,YAAc,EAAE,OAAO,CACtB,GAAI,EAAE,OAAO,EACb,QAAS,EAAE,OAAO,EAClB,aAAc,EAAE,OAAO,EACvB,iBAAkB,EAAE,OAAO,EAC3B,UAAW,EAAE,MAAM,CAAC,EAAE,OAAO,EAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EACpD,SAAU,EAAE,OAAO,EAAE,OAAO,EAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,EACrD,WAAY,EAAE,MAAM,CAAC,EAAE,OAAO,EAAG,EAAE,KAAK,CAAC,CAAC,EAC1C,WAAY,EAAE,MAAM,CAAC,EAAE,OAAO,EAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAErD,WAAY,EAAE,MAAM,EACpB,gBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,EACrC,eAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,EACpC,yBAA0B,EAAE,MAAM,CACjC,EAAE,QAAQ,KAAK,UAAU,OAAO,SAAS,QAAQ,IAAI,EACrD,EAAE,QAAQ,KAAK,UAAU,OAAO,SAAS,QAAQ,KAAK,CACvD,CAAC,EACD,gBAAiB,EAAE,MAAM,CACxB,EAAE,QAAQ,KAAK,UAAU,OAAO,SAAS,QAAQ,IAAI,EACrD,EAAE,QAAQ,KAAK,UAAU,OAAO,SAAS,QAAQ,KAAK,CACvD,CAAC,EACD,eAAgB,EAAE,MAAM,CACvB,EAAE,QAAQ,KAAK,UAAU,OAAO,SAAS,QAAQ,IAAI,EACrD,EAAE,QAAQ,KAAK,UAAU,OAAO,SAAS,QAAQ,KAAK,CACvD,CAAC,CACF,CAAC,EACD,cAAgB,CACf,GAAI,KAAK,UAAU,YAAY,SAAS,EACxC,QAAS,KAAK,UAAU,YAAY,SAAS,EAC7C,aAAc,KAAK,UAAU,YAAY,MAAM,EAC/C,iBAAkB,KAAK,UAAU,YAAY,MAAM,EACnD,UAAW,KAAK,UAAU,YAAY,WAAW,EACjD,SAAU,KAAK,UAAU,YAAY,MAAM,EAC3C,WAAY,KAAK,UAAU,YAAY,WAAW,EAClD,WAAY,KAAK,UAAU,YAAY,WAAW,CACnD,EACA,YAAc,CACb,UAAW,CACV,QAAS,CACR,OAAQ,UACR,YAAa,cACd,EACA,MAAO,CACN,UAAW,aACX,UAAW,aACX,YAAa,cACd,CACD,EACA,UAAW,CACV,YAAa,UACd,CACD,EAIA,MAAM,uBACL,EAOC,CACD,IAAM,EAAQ,KAAK,GACjB,WAAW,2BAA2B,CAAC,CACvC,OAAO,CACP,+BACA,oCACA,yCACA,6CACA,sCACA,qCACA,uCACA,sCACD,CAAC,CAAC,CACD,UACA,cACA,iBACA,mCACD,CAAC,CACA,OAAO,CACP,kCACA,4CACA,0CACA,4CACA,yCACD,CAAC,CAAC,CACD,MAAM,yCAA0C,IAAK,EAAM,WAAW,CAAC,CACvE,MACA,6CACA,IACA,EAAM,cACP,EAEK,EAAO,MAAM,KAAK,iBAAmB,EAAM,iBAAiB,EAAG,CACpE,OAAQ,wBACT,CAAC,EAGD,OAFI,EAAK,SAAS,MAAc,EAAK,SAE9B,KAAK,iBAAiB,EAAM,CAClC,GAAG,EAAM,WACT,KAAM,SACN,OAAQ,CACP,KACA,UACA,eACA,mBACA,YACA,WACA,aACA,aACA,aACA,kBACA,iBACA,kBACA,gBACD,CACD,CAAC,CACF,CACD"}