import { Schema } from "effect" import { descending } from "./identifier.js" import { statics } from "./schema.js" export const SessionID = Schema.String.check(Schema.isStartsWith("ses")).pipe( Schema.brand("SessionID"), statics((schema) => { const create = () => schema.make("ses_" + descending()) return { create, descending: (id?: string) => (id === undefined ? create() : schema.make(id)), } }), ) export type SessionID = typeof SessionID.Type