/**
 * @bytelyst/field-encrypt — In-memory DEK store
 *
 * Default DEK store for dev/test. Production should use a Cosmos-backed store.
 */

import type { DekStore, WrappedDek } from './types.js';

export class MemoryDekStore implements DekStore {
  private readonly deks = new Map<string, WrappedDek>();

  async get(dekId: string): Promise<WrappedDek | null> {
    return this.deks.get(dekId) ?? null;
  }

  async put(dek: WrappedDek): Promise<void> {
    this.deks.set(dek.dekId, dek);
  }

  async listIds(): Promise<string[]> {
    return [...this.deks.keys()];
  }

  async delete(dekId: string): Promise<void> {
    this.deks.delete(dekId);
  }
}
