LogoRobo.js
Framework

EncryptionAdapter<K, V>

Class: EncryptionAdapter<K, V>

Encryption wrapper for adapters.

Uses AES-256-GCM (authenticated encryption) by default. Each value gets a unique random IV for security.

Extends

Type Parameters

Type ParameterDefault type
K extends stringstring
Vunknown

Constructors

new EncryptionAdapter()

new EncryptionAdapter<K, V>(adapter, options): EncryptionAdapter<K, V>

Parameters

ParameterType
adapterFlashcoreAdapter<K, V>
optionsEncryptionOptions

Returns

EncryptionAdapter<K, V>

Overrides

AdapterWrapper.constructor

Properties

PropertyModifierTypeDefault valueDescriptionOverridesInherited from
namereadonly"EncryptionAdapter"'EncryptionAdapter'Human-readable name for this wrapper. Subclasses should override this.AdapterWrapper.name-
nextreadonlyFlashcoreAdapter<K, V>undefined--AdapterWrapper.next

Accessors

atomicBatch

Get Signature

get atomicBatch(): (ops) => void | Promise<void>

Atomic batch operations. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
opsBatchOperation<K, V>[]
Returns

void | Promise<void>

Overrides

AdapterWrapper.atomicBatch


compareAndSwap

Get Signature

get compareAndSwap(): (key, expected, next) => boolean | Promise<boolean>

Compare and swap. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
keyK
expectedV
nextV
Returns

boolean | Promise<boolean>

Overrides

AdapterWrapper.compareAndSwap


maxValueSize

Get Signature

get maxValueSize(): number

Maximum value size. Propagates from underlying adapter if available.

Returns

number

Maximum size in bytes for a single value. Used for chunk sizing and WAL segmentation.

Inherited from

AdapterWrapper.maxValueSize


scan

Get Signature

get scan(): (prefix) => 
  | K[]
  | Promise<K[]>
  | AsyncIterable<K, any, any>
| Promise<AsyncIterable<K, any, any>>

Scan for keys with a prefix. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
prefixK
Returns

| K[] | Promise<K[]> | AsyncIterable<K, any, any> | Promise<AsyncIterable<K, any, any>>

Inherited from

AdapterWrapper.scan


setIfNotExists

Get Signature

get setIfNotExists(): (key, value) => boolean | Promise<boolean>

Set if not exists. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
keyK
valueV
Returns

boolean | Promise<boolean>

Overrides

AdapterWrapper.setIfNotExists


transaction

Get Signature

get transaction(): (fn) => Promise<void>

Native transaction API. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
fn(tx) => Promise<void>
Returns

Promise<void>

Inherited from

AdapterWrapper.transaction

Methods

capabilities()?

optional capabilities(): Partial<AdapterCapabilitiesReport>

Extended capabilities. Propagates from underlying adapter if available.

Returns

Partial<AdapterCapabilitiesReport>

Inherited from

AdapterWrapper.capabilities


clear()

clear(): boolean | void | Promise<void> | Promise<boolean>

Clear all data.

Returns

boolean | void | Promise<void> | Promise<boolean>

Inherited from

AdapterWrapper.clear


delete()

delete(key): boolean | Promise<boolean>

Delete a key. Returns true if the key existed and was deleted.

Parameters

ParameterType
keyK

Returns

boolean | Promise<boolean>

Inherited from

AdapterWrapper.delete


get()

get(key): Promise<V>

Get a value by key. Returns undefined if the key does not exist.

Parameters

ParameterType
keyK

Returns

Promise<V>

Overrides

AdapterWrapper.get


getConfig()

getConfig(): {
  algorithm: "aes-256-gcm" | "aes-256-cbc";
}

Get the current encryption configuration.

Returns

{
  algorithm: "aes-256-gcm" | "aes-256-cbc";
}
NameType
algorithm"aes-256-gcm" | "aes-256-cbc"

getInnermostAdapter()

protected getInnermostAdapter(): FlashcoreAdapter<K, V>

Get the innermost adapter by unwrapping all wrappers.

Returns

FlashcoreAdapter<K, V>

Inherited from

AdapterWrapper.getInnermostAdapter


getWrappedAdapter()

protected getWrappedAdapter(): FlashcoreAdapter<K, V>

Get the underlying (wrapped) adapter.

Returns

FlashcoreAdapter<K, V>

Inherited from

AdapterWrapper.getWrappedAdapter


has()

has(key): boolean | Promise<boolean>

Check if a key exists. Must return true for stored falsy values (0, false, '', null).

Parameters

ParameterType
keyK

Returns

boolean | Promise<boolean>

Inherited from

AdapterWrapper.has


init()?

optional init(): void | Promise<void>

Initialize the adapter (e.g., connect, create directories). Called once during Flashcore.$.init().

Returns

void | Promise<void>

Inherited from

AdapterWrapper.init


isEncrypted()

isEncrypted(stored): boolean

Check if a stored value is encrypted.

Parameters

ParameterType
storedunknown

Returns

boolean


reEncrypt()

reEncrypt(key, newAdapter): Promise<boolean>

Re-encrypt a value with a new key. Useful for key rotation.

Parameters

ParameterType
keyK
newAdapterEncryptionAdapter<K, V>

Returns

Promise<boolean>


set()

set(key, value): Promise<boolean>

Set a key-value pair. Returns true if the operation succeeded.

Parameters

ParameterType
keyK
valueV

Returns

Promise<boolean>

Overrides

AdapterWrapper.set


shutdown()?

optional shutdown(): void | Promise<void>

Shutdown the adapter (e.g., close connections).

Returns

void | Promise<void>

Inherited from

AdapterWrapper.shutdown

On this page