import * as Context from "effect/Context"; import type * as Effect from "effect/Effect"; import type * as Option from "effect/Option"; import * as Schema from "effect/Schema"; export class SecretStoreError extends Schema.TaggedErrorClass()( "SecretStoreError", { message: Schema.String, cause: Schema.optional(Schema.Defect), }, ) {} export interface ServerSecretStoreShape { readonly get: (name: string) => Effect.Effect, SecretStoreError>; readonly set: (name: string, value: Uint8Array) => Effect.Effect; readonly getOrCreateRandom: ( name: string, bytes: number, ) => Effect.Effect; readonly remove: (name: string) => Effect.Effect; } export class ServerSecretStore extends Context.Service()( "t3/auth/Services/ServerSecretStore", ) {}