UNPKG

@ddunigma/node

Version:
112 lines (104 loc) 5.92 kB
import { D as Ddu64Core, a as DduSecureConstructorOptions, G as DduSecureOptions, P as PlatformAdapter, I as KeyDerivationOptions } from './core-ihIEWmI5.cjs'; export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, f as Ddu64AdapterError, g as Ddu64CharsetError, h as Ddu64ChecksumError, i as Ddu64CompressionError, j as Ddu64DecodeError, k as Ddu64DecompressionError, l as Ddu64DecryptionError, m as Ddu64EncodeError, n as Ddu64EncryptionError, o as Ddu64Error, p as Ddu64ErrorCode, q as Ddu64ErrorOptions, r as Ddu64InvalidInputError, s as Ddu64LimitError, t as Ddu64ObfuscationError, u as Ddu64Operation, v as Ddu64StreamError, w as DduBaseConstructorOptions, x as DduBaseOptions, F as DduConstructorOptions, c as DduEncodeStats, b as DduOptions, y as DduProgressInfo, z as DduSetSymbol, A as DduSetSymbolInput, H as DduStreamOptions, E as EncodingProfile, K as KeyDerivationAlgorithm, O as ObfuscationLayer, B as isDdu64Error } from './core-ihIEWmI5.cjs'; export { B as BrowserAdapter, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-BSCrvsT3.cjs'; export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-CK0ptcW-.cjs'; /** * Node.js 전용 secure Ddu64 래퍼. * * Ddu64Core를 확장하여 압축/암호화/체크섬(배터리 포함)과 Node.js Buffer를 지원합니다: * - NodeAdapter 자동 주입 (zlib/crypto) → 압축/암호화/체크섬 사용 가능 * - HangulObfuscationLayer 자동 주입 → 한글 난독화 사용 가능 * - Node.js Buffer를 반환하는 `decodeToBuffer` 및 `decodeToBufferAsync` 제공 * - encode()에 Buffer 입력 허용 (Buffer는 Uint8Array를 확장) * * 구 `Ddu64Node`의 배터리 동작을 계승합니다. 6.0부터 기본 진입점(`@ddunigma/node`)은 * 인코딩 + 난독화만 제공하며, 압축/암호화/체크섬/스트림은 secure 진입점 * (`@ddunigma/node/secure`)으로 이전되었습니다. * * @module Ddu64Secure */ /** * Node.js 전용 secure Ddu64 인코더/디코더. * * Ddu64Core를 래핑하여 자동 NodeAdapter 주입(압축/암호화/체크섬)과 * 하위 호환성을 위한 Buffer 반환 디코드 메서드를 제공합니다. * * @example * ```ts * import { Ddu64Secure } from '@ddunigma/node/secure'; * * const encoder = new Ddu64Secure(undefined, undefined, { encryptionKey: 'key' }); * const encoded = encoder.encode(Buffer.from('Hello'), { compress: true }); * const decoded = encoder.decodeToBuffer(encoded); // Buffer 반환 * ``` */ declare class Ddu64Secure extends Ddu64Core { constructor(dduChar?: string[] | string | DduSecureConstructorOptions, paddingChar?: string, dduOptions?: DduSecureConstructorOptions); /** * 인코딩된 문자열을 Node.js Buffer로 디코딩합니다. * * @param input - 디코딩할 인코딩된 문자열 * @param options - 디코딩 옵션 * @returns 디코딩된 Buffer * @group Sync */ decodeToBuffer(input: string, options?: DduSecureOptions): Buffer; /** * 비동기적으로 Node.js Buffer로 디코딩합니다. * * @param input - 디코딩할 인코딩된 문자열 * @param options - 디코딩 옵션 * @returns 디코딩된 Buffer로 resolve되는 Promise * @group Async */ decodeToBufferAsync(input: string, options?: DduSecureOptions): Promise<Buffer>; } /** * Node.js 플랫폼 어댑터 구현. * Node.js `crypto`와 `zlib` 모듈을 래핑하여 PlatformAdapter 인터페이스를 구현합니다. * * @module adapters/NodeAdapter */ /** * PlatformAdapter의 Node.js 구현. * 네이티브 Node.js `crypto`와 `zlib` 모듈을 사용하여 * 동기 및 비동기 암호화/압축 연산을 제공합니다. */ declare class NodeAdapter implements PlatformAdapter { readonly runtime: "node"; deriveKey(key: string, options?: KeyDerivationOptions): Promise<Uint8Array>; deriveKeySync(key: string, options?: KeyDerivationOptions): Uint8Array; encrypt(data: Uint8Array, keyHash: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>; encryptSync(data: Uint8Array, keyHash: Uint8Array, aad?: Uint8Array): Uint8Array; decrypt(data: Uint8Array, keyHash: Uint8Array, aad?: Uint8Array): Promise<Uint8Array>; decryptSync(data: Uint8Array, keyHash: Uint8Array, aad?: Uint8Array): Uint8Array; randomBytes(length: number): Uint8Array; deflate(data: Uint8Array, level?: number): Promise<Uint8Array>; deflateSync(data: Uint8Array, level?: number): Uint8Array; inflate(data: Uint8Array, maxBytes?: number): Promise<Uint8Array>; inflateSync(data: Uint8Array, maxBytes?: number): Uint8Array; brotliCompress(data: Uint8Array, level?: number): Promise<Uint8Array>; brotliCompressSync(data: Uint8Array, level?: number): Uint8Array; brotliDecompress(data: Uint8Array, maxBytes?: number): Promise<Uint8Array>; brotliDecompressSync(data: Uint8Array, maxBytes?: number): Uint8Array; } /** * 런타임 자동 감지 모듈. * 현재 JavaScript 런타임 환경을 감지하고 적절한 PlatformAdapter를 반환합니다. * * 중요: 이 모듈은 Node.js 내장 모듈을 임포트하지 않습니다. * 감지는 순수하게 globalThis 검사에 기반합니다. * * @module adapters/detect */ /** * 현재 런타임에 적합한 PlatformAdapter를 가져옵니다. * * 실제로 필요할 때까지 플랫폼별 모듈을 임포트하지 않는 * 지연 로딩을 사용합니다. * * @returns 적절한 PlatformAdapter로 resolve되는 Promise * @throws 적합한 런타임이 감지되지 않은 경우 에러 */ declare function getAdapter(): Promise<PlatformAdapter>; export { Ddu64Secure as Ddu64, Ddu64Core, Ddu64Secure, DduSecureConstructorOptions, DduSecureOptions, KeyDerivationOptions, NodeAdapter, PlatformAdapter, getAdapter };