{"version":3,"file":"phone-model.mjs","names":[],"sources":["../../src/drizzle/phone-model.ts"],"sourcesContent":["import type * as Shared from \"@yielded/auth-persistence/Adapter\";\nimport { hooksLayer } from \"@yielded/auth/Persistence\";\nimport { PhonePersistence, PhoneSignInTargets } from \"@yielded/auth/PhoneOtp\";\nimport type { SQL, Table } from \"drizzle-orm\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\n\nimport type { PersistenceMappingError } from \"./model\";\nimport type { ProofPersistenceMapping } from \"./proof-model\";\nimport type { DrizzleTableModel } from \"./table-model\";\n\nexport { requiredPhoneConstraints } from \"@yielded/auth-persistence/Adapter\";\nexport type PhoneMappingSource<M, R = never> = M | Effect.Effect<M, PersistenceMappingError, R>;\n\nexport type PhoneMapping<\n  S extends Table,\n  I extends Table,\n  C extends Table,\n  P extends Table,\n  N,\n> = Omit<\n  Shared.PhoneMapping<\n    DrizzleTableModel<S>,\n    DrizzleTableModel<I>,\n    DrizzleTableModel<C>,\n    DrizzleTableModel<P>,\n    N,\n    SQL\n  >,\n  \"proofs\"\n> & { readonly proofs: ProofPersistenceMapping<P, S, N> };\n\nexport type AnyPhoneMapping = PhoneMapping<Table, Table, Table, Table, unknown>;\n\nexport interface PhonePersistenceServices {\n  readonly phonePersistence: PhonePersistence[\"Service\"];\n  readonly phoneSignInTargets: PhoneSignInTargets[\"Service\"];\n}\n\n/** Bundle phone storage and lookup with empty hook defaults. */\nexport const phonePersistenceLayer = <E, R>(\n  services: Effect.Effect<PhonePersistenceServices, E, R>,\n) =>\n  Layer.unwrap(\n    Effect.map(services, (value) =>\n      Layer.mergeAll(\n        Layer.succeed(PhonePersistence, value.phonePersistence),\n        Layer.succeed(PhoneSignInTargets, value.phoneSignInTargets),\n      ),\n    ),\n  ).pipe(Layer.provide(hooksLayer));\n"],"mappings":";;;;;;;AAwCA,MAAa,yBACX,aAEA,MAAM,OACJ,OAAO,IAAI,WAAW,UACpB,MAAM,SACJ,MAAM,QAAQ,kBAAkB,MAAM,gBAAgB,GACtD,MAAM,QAAQ,oBAAoB,MAAM,kBAAkB,CAC5D,CACF,CACF,CAAC,CAAC,KAAK,MAAM,QAAQ,UAAU,CAAC"}