{"version":3,"sources":["../../src/vault/index.ts","../../src/vault/local-vault.ts","../../src/vault/memory-vault-store.ts"],"sourcesContent":["export { LocalVault } from \"./local-vault\";\nexport { createMemoryVaultStore } from \"./memory-vault-store\";\nexport type {\n  Credential,\n  CredentialInfo,\n  OAuthRefreshConfig,\n  StoredCredential,\n  Vault,\n  VaultOptions,\n  VaultRecord,\n  VaultStore,\n} from \"./vault.interface\";\n","import type {\n  Credential,\n  CredentialInfo,\n  Vault,\n  VaultStore,\n} from \"./vault.interface\";\n\nexport class LocalVault implements Vault {\n  readonly id: string;\n  readonly provider: string;\n  private readonly store: VaultStore;\n\n  constructor(id: string, provider: string, store: VaultStore) {\n    this.id = id;\n    this.provider = provider;\n    this.store = store;\n  }\n\n  async add(name: string, credential: Credential): Promise<void> {\n    await this.store.set(this.id, name, credential);\n  }\n\n  async update(name: string, credential: Credential): Promise<void> {\n    await this.store.set(this.id, name, credential);\n  }\n\n  async remove(name: string): Promise<void> {\n    await this.store.remove(this.id, name);\n  }\n\n  async list(): Promise<CredentialInfo[]> {\n    const all = await this.store.getAll(this.id);\n    return all.map((c) => ({\n      name: c.name,\n      type: c.type,\n      status: c.status,\n      expiresAt: c.expiresAt,\n      createdAt: c.createdAt,\n      updatedAt: c.updatedAt,\n    }));\n  }\n\n  async destroy(): Promise<void> {\n    await this.store.removeVault(this.id);\n  }\n}\n","import type {\n  Credential,\n  StoredCredential,\n  VaultOptions,\n  VaultRecord,\n  VaultStore,\n} from \"./vault.interface\";\n\nlet counter = 0;\n\nexport function createMemoryVaultStore(): VaultStore {\n  const vaults = new Map<string, VaultRecord>();\n  const credentials = new Map<string, Map<string, StoredCredential>>();\n\n  return {\n    async createVault(options: VaultOptions): Promise<VaultRecord> {\n      const record: VaultRecord = {\n        id: `vlt_mem_${++counter}`,\n        name: options.name,\n        metadata: options.metadata,\n        createdAt: new Date().toISOString(),\n      };\n      vaults.set(record.id, record);\n      return { ...record };\n    },\n\n    async getVault(vaultId) {\n      const vault = vaults.get(vaultId);\n      return vault ? { ...vault } : null;\n    },\n\n    async updateVaultMetadata(vaultId, metadata) {\n      const vault = vaults.get(vaultId);\n      if (vault) {\n        vault.metadata = { ...vault.metadata, ...metadata };\n      }\n    },\n\n    async removeVault(vaultId) {\n      vaults.delete(vaultId);\n      credentials.delete(vaultId);\n    },\n\n    async set(vaultId, name, credential: Credential) {\n      let vaultCreds = credentials.get(vaultId);\n      if (!vaultCreds) {\n        vaultCreds = new Map();\n        credentials.set(vaultId, vaultCreds);\n      }\n      const now = new Date().toISOString();\n      const stored: StoredCredential = {\n        name,\n        type: credential.type,\n        credential,\n        status: \"active\",\n        expiresAt:\n          credential.type === \"oauth\" ? credential.expiresAt : undefined,\n        createdAt: now,\n        updatedAt: now,\n      };\n      vaultCreds.set(name, stored);\n    },\n\n    async get(vaultId, name) {\n      const stored = credentials.get(vaultId)?.get(name);\n      return stored ? { ...stored } : null;\n    },\n\n    async getAll(vaultId) {\n      const vaultCreds = credentials.get(vaultId);\n      if (!vaultCreds) return [];\n      return [...vaultCreds.values()].map((c) => ({ ...c }));\n    },\n\n    async remove(vaultId, name) {\n      credentials.get(vaultId)?.delete(name);\n    },\n  };\n}\n"],"mappings":"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","names":[]}