UNPKG

@sidekick-coder/db

Version:

Cli Tool to manipulate data from diferent sources

31 lines (28 loc) 1.7 kB
import * as valibot from 'valibot'; import { InferOutput } from 'valibot'; type Encryption = ReturnType<typeof createEncryption>; declare const schema: valibot.ObjectSchema<{ readonly value: valibot.UnionSchema<[valibot.StringSchema<undefined>, valibot.SchemaWithPipe<[valibot.AnySchema, valibot.CheckAction<any, undefined>, valibot.TransformAction<any, Uint8Array>]>], undefined>; readonly salt: valibot.OptionalSchema<valibot.StringSchema<undefined>, string>; readonly iv: valibot.OptionalSchema<valibot.StringSchema<undefined>, string>; readonly password: valibot.StringSchema<undefined>; }, undefined>; interface EncryptPayload extends InferOutput<typeof schema> { } type EncryptOutput<T extends EncryptPayload['value']> = T extends string ? string : T extends Uint8Array ? Uint8Array : never; type EncryptPayloadOutput<T extends EncryptPayload> = T extends { value: string; } ? string : T extends { value: Uint8Array; } ? Uint8Array : never; declare function encrypt<T extends EncryptPayload>(payload: EncryptPayload): EncryptPayloadOutput<T>; declare function decrypt<T extends EncryptPayload>(payload: EncryptPayload): EncryptPayloadOutput<T>; declare function createEncryption(payload?: Partial<EncryptPayload>): { state: Omit<EncryptPayload, "value">; setSalt: (salt: string) => any; setIv: (iv: string) => any; setPassword: (password: string) => any; encrypt: <T extends EncryptPayload["value"]>(value: T) => EncryptOutput<T>; decrypt: <T extends EncryptPayload["value"]>(value: T) => EncryptOutput<T>; }; export { type EncryptOutput, type EncryptPayload, type EncryptPayloadOutput, type Encryption, createEncryption, decrypt, encrypt };