@ddunigma/node 6.0.1 → 6.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -2
- package/CONTRIBUTING.md +137 -0
- package/README.md +54 -39
- package/ROADMAP.md +12 -11
- package/dist/BrowserAdapter-FJYE5LZO.js +1 -0
- package/dist/BrowserAdapter-NXLXZCJX.cjs +1 -0
- package/dist/{ObfuscationLayer-DTlA723P.d.ts → ObfuscationLayer-C5TQHpYX.d.cts} +9 -11
- package/dist/{ObfuscationLayer-4rCOCRWH.d.cts → ObfuscationLayer-DmlvbjTB.d.ts} +9 -11
- package/dist/{WebStreams-C16QV2Dz.d.ts → WebStreams-DY1ovJBp.d.cts} +5 -9
- package/dist/{WebStreams-CY9E19f5.d.cts → WebStreams-DynLi09H.d.ts} +5 -9
- package/dist/browser.cjs +1 -1
- package/dist/browser.d.cts +12 -21
- package/dist/browser.d.ts +12 -21
- package/dist/browser.js +1 -1
- package/dist/chunk-B4QRMN45.js +9 -0
- package/dist/chunk-BUR4IORD.cjs +1 -0
- package/dist/chunk-C2AT5XRJ.js +1 -0
- package/dist/chunk-DAHLP6QA.cjs +1 -0
- package/dist/chunk-GR2WPLDK.js +1 -0
- package/dist/chunk-JATMOMX5.cjs +9 -0
- package/dist/chunk-XVV2OPRV.js +1 -0
- package/dist/chunk-ZMNWFYGY.cjs +1 -0
- package/dist/{core-BsIwjJK-.d.cts → core-DCeItMgU.d.cts} +35 -53
- package/dist/{core-BsIwjJK-.d.ts → core-DCeItMgU.d.ts} +35 -53
- package/dist/core.cjs +1 -1
- package/dist/core.d.cts +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +21 -26
- package/dist/index.d.ts +21 -26
- package/dist/index.js +1 -1
- package/dist/secure.browser.cjs +1 -1
- package/dist/secure.browser.d.cts +4 -4
- package/dist/secure.browser.d.ts +4 -4
- package/dist/secure.browser.js +1 -1
- package/dist/secure.cjs +1 -1
- package/dist/secure.d.cts +9 -9
- package/dist/secure.d.ts +9 -9
- package/dist/secure.js +1 -1
- package/docs/REFERENCE.md +45 -32
- package/package.json +22 -16
- package/dist/BrowserAdapter-A6RBN4N3.js +0 -1
- package/dist/BrowserAdapter-NWASGV3D.cjs +0 -1
- package/dist/chunk-6N7QYPEJ.js +0 -1
- package/dist/chunk-6ZYMNHFT.js +0 -1
- package/dist/chunk-7KUEHTG2.js +0 -1
- package/dist/chunk-BDP7E7K3.cjs +0 -1
- package/dist/chunk-HUUB5BUS.cjs +0 -1
- package/dist/chunk-JBUTKSCC.cjs +0 -9
- package/dist/chunk-LCOYWJWO.cjs +0 -1
- package/dist/chunk-VW2SZR2Z.js +0 -9
|
@@ -69,7 +69,7 @@ interface CharSetInfo {
|
|
|
69
69
|
hasEncryptionKey: boolean;
|
|
70
70
|
/** 기본 체크섬 사용 여부 */
|
|
71
71
|
defaultChecksum: boolean;
|
|
72
|
-
/** 기본 체크섬 계산 범위
|
|
72
|
+
/** 기본 체크섬 계산 범위 */
|
|
73
73
|
defaultChecksumScope: "plaintext" | "output";
|
|
74
74
|
/** 기본 난독화 사용 여부 */
|
|
75
75
|
defaultObfuscate: boolean;
|
|
@@ -136,9 +136,8 @@ interface KeyDerivationOptions {
|
|
|
136
136
|
hash?: "SHA-256" | "SHA-384" | "SHA-512";
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
139
|
-
* 기본(Base) 런타임 옵션 —
|
|
140
|
-
*
|
|
141
|
-
* 압축/암호화/체크섬 같은 secure 부가기능은 포함하지 않습니다.
|
|
139
|
+
* 기본(Base) 런타임 옵션 — 플랫폼 어댑터 없이 처리 가능한 옵션 부분집합입니다.
|
|
140
|
+
* 인코딩 + 한글 난독화(재미 풀세트)에 필요한 옵션을 포함합니다.
|
|
142
141
|
*/
|
|
143
142
|
interface DduBaseOptions {
|
|
144
143
|
/** 최대 디코딩 바이트 수 (Zip Bomb 방어) */
|
|
@@ -146,7 +145,8 @@ interface DduBaseOptions {
|
|
|
146
145
|
/**
|
|
147
146
|
* 최대 디코딩 입력(인코딩 문자열) 길이(문자 수). 청크/개행 제거 등 전처리 이전에
|
|
148
147
|
* 선검사하여 거대한 입력에 의한 한도 우회·대량 할당을 차단합니다. 기본값은
|
|
149
|
-
* `maxDecodedBytes`에
|
|
148
|
+
* `maxDecodedBytes * 4 + 1024`에 비례하며 호출 단위로 `maxDecodedBytes`를 낮추면
|
|
149
|
+
* 이 값도 함께 낮아집니다. 조밀한 사용자 청킹은 명시적으로 늘릴 수 있습니다.
|
|
150
150
|
*/
|
|
151
151
|
maxEncodedChars?: number;
|
|
152
152
|
/** 최대 압축해제 바이트 수 (Zip Bomb 방어) */
|
|
@@ -157,12 +157,13 @@ interface DduBaseOptions {
|
|
|
157
157
|
chunkSeparator?: string;
|
|
158
158
|
/** 진행률 콜백 */
|
|
159
159
|
onProgress?: (info: DduProgressInfo) => void;
|
|
160
|
-
/** 한글 난독화 활성화 (
|
|
160
|
+
/** 한글 난독화 활성화 (암호화 키와 독립적으로 동작) */
|
|
161
161
|
obfuscate?: boolean;
|
|
162
162
|
}
|
|
163
163
|
/**
|
|
164
|
-
* Secure 확장 옵션 —
|
|
165
|
-
*
|
|
164
|
+
* Secure 확장 옵션 — `DduBaseOptions`에 압축/암호화/체크섬 부가기능 옵션을 더합니다.
|
|
165
|
+
* `@ddunigma/node`/`@ddunigma/node/browser`는 adapter-backed 옵션을 비동기 메서드에서
|
|
166
|
+
* lazy adapter로 처리하고, `@ddunigma/node/secure`는 sync/async secure 표면을 모두 제공합니다.
|
|
166
167
|
*/
|
|
167
168
|
interface DduSecureOptions extends DduBaseOptions {
|
|
168
169
|
/** 압축 사용 여부 (zlib deflate 또는 brotli) */
|
|
@@ -179,7 +180,8 @@ interface DduSecureOptions extends DduBaseOptions {
|
|
|
179
180
|
* - `"output"`: 인코딩 파이프라인 최종 바이트(압축/암호화 후, 와이어에 실리는 바이트)의 CRC32.
|
|
180
181
|
* 암호화 시 평문 CRC를 노출하지 않고, 복호화 이전에 전송 손상을 감지합니다.
|
|
181
182
|
*
|
|
182
|
-
* `checksum
|
|
183
|
+
* `checksum` 사용 여부는 디코딩에서도 지정해야 하지만, scope는 checksum marker에서
|
|
184
|
+
* 자동 판별되므로 디코딩 옵션에 반복할 필요가 없습니다.
|
|
183
185
|
*/
|
|
184
186
|
checksumScope?: "plaintext" | "output";
|
|
185
187
|
/**
|
|
@@ -191,8 +193,7 @@ interface DduSecureOptions extends DduBaseOptions {
|
|
|
191
193
|
}
|
|
192
194
|
/**
|
|
193
195
|
* 하위호환 별칭. 6.0 이전 코드 및 코어 내부 시그니처가 사용하던 전 기능 런타임 옵션
|
|
194
|
-
* 타입으로, secure 표면 전체(`DduSecureOptions`)와 동일합니다.
|
|
195
|
-
* 타입으로 동작하며, 진입점별 공개 표면은 `DduBaseOptions`/`DduSecureOptions`로 분리됩니다.
|
|
196
|
+
* 타입으로, secure 표면 전체(`DduSecureOptions`)와 동일합니다.
|
|
196
197
|
*/
|
|
197
198
|
type DduOptions = DduSecureOptions;
|
|
198
199
|
/** Web Streams 버퍼 제한을 포함한 스트림 전용 옵션 */
|
|
@@ -203,8 +204,7 @@ interface DduStreamOptions extends DduSecureOptions {
|
|
|
203
204
|
maxBufferedChars?: number;
|
|
204
205
|
}
|
|
205
206
|
/**
|
|
206
|
-
* 기본(Base) 생성자 옵션 — charset/padding/urlSafe 계열과
|
|
207
|
-
* 기본 진입점 래퍼(`Ddu64Node`/`Ddu64Browser`)의 생성자 표면입니다.
|
|
207
|
+
* 기본(Base) 생성자 옵션 — charset/padding/urlSafe 계열과 adapter-free 런타임 옵션을 포함합니다.
|
|
208
208
|
*/
|
|
209
209
|
interface DduBaseConstructorOptions extends DduBaseOptions {
|
|
210
210
|
/** 미리 정의된 charset 심볼 (enum 멤버 또는 그 문자열 리터럴) */
|
|
@@ -244,7 +244,7 @@ interface DduBaseConstructorOptions extends DduBaseOptions {
|
|
|
244
244
|
}
|
|
245
245
|
/**
|
|
246
246
|
* Secure 생성자 옵션 — Base 생성자 옵션 + Secure 런타임 옵션에 암호화 키/어댑터를 더한,
|
|
247
|
-
*
|
|
247
|
+
* 코어와 공개 래퍼가 사용하는 전 기능 생성자 표면입니다.
|
|
248
248
|
*/
|
|
249
249
|
interface DduSecureConstructorOptions extends DduBaseConstructorOptions, DduSecureOptions {
|
|
250
250
|
/** 암호화 키 (AES-256-GCM) */
|
|
@@ -262,6 +262,12 @@ interface DduSecureConstructorOptions extends DduBaseConstructorOptions, DduSecu
|
|
|
262
262
|
* @internal
|
|
263
263
|
*/
|
|
264
264
|
adapterFactory?: () => PlatformAdapter;
|
|
265
|
+
/**
|
|
266
|
+
* 비동기 플랫폼 어댑터 팩토리. root 진입점이 실제 압축/암복호화 시점에
|
|
267
|
+
* 런타임 어댑터 모듈을 동적 import하는 데 사용합니다.
|
|
268
|
+
* @internal
|
|
269
|
+
*/
|
|
270
|
+
asyncAdapterFactory?: () => Promise<PlatformAdapter>;
|
|
265
271
|
}
|
|
266
272
|
/**
|
|
267
273
|
* 하위호환 별칭. 6.0 이전 코드 및 코어 내부 시그니처가 사용하던 전 기능 생성자 옵션
|
|
@@ -272,8 +278,8 @@ type DduConstructorOptions = DduSecureConstructorOptions;
|
|
|
272
278
|
* 암호화 및 압축 연산을 제공하는 플랫폼 어댑터 인터페이스.
|
|
273
279
|
* 각 런타임(Node.js, 브라우저, 엣지)이 이 인터페이스를 구현합니다.
|
|
274
280
|
*
|
|
275
|
-
* 동기 메서드(`?`로 표시)는
|
|
276
|
-
*
|
|
281
|
+
* 동기 메서드(`?`로 표시)는 선택 사항입니다. 기본 BrowserAdapter는
|
|
282
|
+
* 비동기 메서드만 구현하며 NodeAdapter는 동기·비동기 양쪽을 지원합니다.
|
|
277
283
|
*/
|
|
278
284
|
interface PlatformAdapter {
|
|
279
285
|
/** UTF-8 키 문자열에서 256비트 키를 파생 */
|
|
@@ -294,6 +300,7 @@ interface PlatformAdapter {
|
|
|
294
300
|
* @remarks 코어 인코딩/디코딩 파이프라인은 이 메서드를 호출하지 않습니다(각 어댑터가
|
|
295
301
|
* 암호화 IV를 내부에서 직접 생성). 6.0부터 **선택(optional)** 이므로 커스텀 어댑터는
|
|
296
302
|
* 구현하지 않아도 됩니다. `NodeAdapter`/`BrowserAdapter`는 편의상 계속 제공합니다.
|
|
303
|
+
* @deprecated 코어 계약에서 사용하지 않습니다. 다음 major 버전에서 제거할 예정입니다.
|
|
297
304
|
*/
|
|
298
305
|
randomBytes?(length: number): Uint8Array;
|
|
299
306
|
/** deflate 알고리즘으로 데이터를 압축 */
|
|
@@ -317,13 +324,12 @@ interface PlatformAdapter {
|
|
|
317
324
|
}
|
|
318
325
|
/**
|
|
319
326
|
* 한글 음절 난독화 레이어 인터페이스.
|
|
320
|
-
*
|
|
327
|
+
* charset 출력 문자를 한글 음절 블록으로 가역 변환합니다.
|
|
321
328
|
*/
|
|
322
329
|
interface ObfuscationLayer {
|
|
323
330
|
/**
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
* 출력 길이 <= 입력 길이의 1.5배.
|
|
331
|
+
* charset 인코딩 문자열을 한글 음절로 가역 변환합니다.
|
|
332
|
+
* 이 변환은 시각적 난독화 용도이며 기밀성을 제공하지 않습니다.
|
|
327
333
|
*/
|
|
328
334
|
obfuscate(input: string): string;
|
|
329
335
|
/**
|
|
@@ -376,7 +382,7 @@ declare class Ddu64Core {
|
|
|
376
382
|
/** 캐시된 암호화 키 해시 */
|
|
377
383
|
private encryptionKeyHash;
|
|
378
384
|
/** 캐시된 어댑터 게이트웨이 컨텍스트 (호출당 재할당 방지, 해시는 getter로 라이브 조회) */
|
|
379
|
-
private
|
|
385
|
+
private adapterGatewayContext;
|
|
380
386
|
/** 기본 체크섬 활성화 */
|
|
381
387
|
private readonly defaultChecksum;
|
|
382
388
|
/** 기본 체크섬 계산 범위 */
|
|
@@ -403,6 +409,10 @@ declare class Ddu64Core {
|
|
|
403
409
|
private adapter;
|
|
404
410
|
/** 어댑터 지연 생성 팩토리 (adapter 미지정 시 첫 암/복호화·압축 시점에 1회 호출) */
|
|
405
411
|
private readonly adapterFactory;
|
|
412
|
+
/** 비동기 어댑터 동적 import 팩토리 */
|
|
413
|
+
private readonly asyncAdapterFactory;
|
|
414
|
+
/** 동시 첫 호출의 어댑터 로드를 하나로 합치는 Promise */
|
|
415
|
+
private asyncAdapterPromise;
|
|
406
416
|
/** 난독화 레이어 팩토리 (코어-난독화 분리용 주입점) */
|
|
407
417
|
private readonly obfuscationLayerFactory;
|
|
408
418
|
/** 기본 난독화 활성화 */
|
|
@@ -455,14 +465,12 @@ declare class Ddu64Core {
|
|
|
455
465
|
* @group Sync
|
|
456
466
|
*/
|
|
457
467
|
decodeToUint8Array(input: string, options?: DduOptions): Uint8Array;
|
|
458
|
-
private decodeToUint8ArrayInternal;
|
|
459
468
|
/**
|
|
460
469
|
* 비동기 인코딩 - 브라우저를 포함한 모든 런타임에서 동작합니다.
|
|
461
470
|
*
|
|
462
471
|
* @group Async
|
|
463
472
|
*/
|
|
464
473
|
encodeAsync(input: Uint8Array | string, options?: DduOptions): Promise<string>;
|
|
465
|
-
private encodeAsyncInternal;
|
|
466
474
|
/**
|
|
467
475
|
* 비동기 디코딩 - 브라우저를 포함한 모든 런타임에서 동작합니다.
|
|
468
476
|
*
|
|
@@ -475,7 +483,6 @@ declare class Ddu64Core {
|
|
|
475
483
|
* @group Async
|
|
476
484
|
*/
|
|
477
485
|
decodeToUint8ArrayAsync(input: string, options?: DduOptions): Promise<Uint8Array>;
|
|
478
|
-
private decodeToUint8ArrayAsyncInternal;
|
|
479
486
|
/**
|
|
480
487
|
* 동기/비동기 디코딩 파이프라인이 공유하는 기본 컨텍스트를 구성합니다.
|
|
481
488
|
* decrypt/decompress만 동기/비동기 구현에서 각각 덧붙입니다.
|
|
@@ -503,22 +510,6 @@ declare class Ddu64Core {
|
|
|
503
510
|
*/
|
|
504
511
|
getStatsAsync(input: Uint8Array | string, options?: DduOptions): Promise<DduEncodeStats>;
|
|
505
512
|
private buildEncodeStats;
|
|
506
|
-
/**
|
|
507
|
-
* 통계를 위한 메타데이터 포함 내부 인코딩.
|
|
508
|
-
*/
|
|
509
|
-
private encodeInternal;
|
|
510
|
-
/**
|
|
511
|
-
* getStats 전용 인코딩: 실제 AES-GCM 연산을 생략하고 길이만 정확한 더미 암호화를 사용합니다.
|
|
512
|
-
*
|
|
513
|
-
* 암호화 출력 길이는 `평문 + AEAD_OVERHEAD_BYTES`로 결정적이고, 비트팩/푸터/체크섬/난독화/
|
|
514
|
-
* URL-safe/청킹은 모두 입력 바이트 "길이"에만 의존(바이트 "값"과 무관)하므로, 더미 암호문(0으로 채운
|
|
515
|
-
* 동일 길이 버퍼)으로 마무리해도 `encoded.length`는 실제 `encode()` 출력과 바이트 단위로 일치합니다.
|
|
516
|
-
* 압축은 결과 크기와 적용 여부 판단에 필요하므로 실제로 수행합니다.
|
|
517
|
-
*
|
|
518
|
-
* 이 등식(통계 길이 === 실제 encode 길이)은 property test로 고정됩니다.
|
|
519
|
-
*/
|
|
520
|
-
private encodeStatsInternal;
|
|
521
|
-
private encodeStatsAsyncInternal;
|
|
522
513
|
/**
|
|
523
514
|
* 동기/비동기 인코딩 파이프라인이 공유하는 기본 컨텍스트를 구성합니다.
|
|
524
515
|
* compress/encrypt만 동기/비동기 구현에서 각각 덧붙입니다.
|
|
@@ -529,24 +520,20 @@ declare class Ddu64Core {
|
|
|
529
520
|
* 동기/비동기 인코딩에서 공유하는 순수 동기 단계입니다.
|
|
530
521
|
*/
|
|
531
522
|
private finalizeEncode;
|
|
532
|
-
/**
|
|
533
|
-
* 인코딩 후처리: 난독화, 체크섬, URL-safe, 청킹을 적용합니다.
|
|
534
|
-
*/
|
|
535
|
-
private applyPostEncoding;
|
|
536
523
|
/**
|
|
537
524
|
* 디코딩 전처리: 동기/비동기 디코딩에서 공통으로 쓰는 순수 동기 단계.
|
|
538
525
|
* 청크 제거 → URL-safe 역변환 → 체크섬 추출 → 역난독화 → 푸터 파싱 →
|
|
539
526
|
* 검증(정렬/패딩/크기) → 비트팩 해제까지 수행합니다.
|
|
540
527
|
*/
|
|
541
528
|
private decodePrelude;
|
|
542
|
-
private getPayloadCodecContext;
|
|
543
529
|
private reportProgress;
|
|
544
530
|
/**
|
|
545
531
|
* 어댑터를 지연 해석합니다. 명시적 adapter가 없고 adapterFactory가 있으면 첫 호출 시
|
|
546
532
|
* 1회 생성·캐시합니다. 순수 인코딩/디코딩 경로에서는 호출되지 않습니다.
|
|
547
533
|
*/
|
|
548
534
|
private getAdapter;
|
|
549
|
-
private
|
|
535
|
+
private getAsyncAdapter;
|
|
536
|
+
private getAdapterGatewayContext;
|
|
550
537
|
/**
|
|
551
538
|
* 난독화 레이어를 가져오거나 생성합니다 (지연 초기화).
|
|
552
539
|
* 알파벳에는 charset 문자, 패딩 문자, 모든 푸터 마커 문자가 포함됩니다.
|
|
@@ -555,11 +542,10 @@ declare class Ddu64Core {
|
|
|
555
542
|
/**
|
|
556
543
|
* 주어진 호출에 난독화를 적용해야 하는지 결정합니다.
|
|
557
544
|
* 호출별 옵션이 생성자 기본값을 오버라이드합니다.
|
|
558
|
-
*
|
|
545
|
+
* 난독화는 암호화 키와 무관하게 동작합니다.
|
|
559
546
|
*/
|
|
560
547
|
private shouldObfuscate;
|
|
561
548
|
private assertSafeChunkSeparator;
|
|
562
|
-
private isLineBreakSeparator;
|
|
563
549
|
}
|
|
564
550
|
|
|
565
551
|
/**
|
|
@@ -663,10 +649,6 @@ declare class CharsetBuilder {
|
|
|
663
649
|
* 셔플이 되며, 이 역시 비밀이 아니라 재현성 용도입니다.
|
|
664
650
|
*/
|
|
665
651
|
shuffle(seed?: number): CharsetBuilder;
|
|
666
|
-
/**
|
|
667
|
-
* 시드 기반 난수 생성기 (xorshift32)
|
|
668
|
-
*/
|
|
669
|
-
private seededRandom;
|
|
670
652
|
/**
|
|
671
653
|
* 특정 길이로 자릅니다.
|
|
672
654
|
*/
|
|
@@ -781,4 +763,4 @@ declare class Ddu64StreamError extends Ddu64Error {
|
|
|
781
763
|
}
|
|
782
764
|
declare function isDdu64Error(error: unknown): error is Ddu64Error;
|
|
783
765
|
|
|
784
|
-
export { type
|
|
766
|
+
export { type DduSecureOptions as A, DduSetSymbol as B, type CharSetConfig as C, Ddu64Core as D, type DduSetSymbolInput as E, type EncodingProfile as F, type KeyDerivationOptions as G, isDdu64Error as H, type DduStreamOptions as I, type KeyDerivationAlgorithm as K, type ObfuscationLayer as O, type PlatformAdapter as P, type DduSecureConstructorOptions as a, type DduOptions as b, type DduEncodeStats as c, type CharSetInfo as d, CharsetBuilder as e, Ddu64AdapterError as f, Ddu64CharsetError as g, Ddu64ChecksumError as h, Ddu64CompressionError as i, Ddu64DecodeError as j, Ddu64DecompressionError as k, Ddu64DecryptionError as l, Ddu64EncodeError as m, Ddu64EncryptionError as n, Ddu64Error as o, Ddu64ErrorCode as p, type Ddu64ErrorOptions as q, Ddu64InvalidInputError as r, Ddu64LimitError as s, Ddu64ObfuscationError as t, type Ddu64Operation as u, Ddu64StreamError as v, type DduBaseConstructorOptions as w, type DduBaseOptions as x, type DduConstructorOptions as y, type DduProgressInfo as z };
|
|
@@ -69,7 +69,7 @@ interface CharSetInfo {
|
|
|
69
69
|
hasEncryptionKey: boolean;
|
|
70
70
|
/** 기본 체크섬 사용 여부 */
|
|
71
71
|
defaultChecksum: boolean;
|
|
72
|
-
/** 기본 체크섬 계산 범위
|
|
72
|
+
/** 기본 체크섬 계산 범위 */
|
|
73
73
|
defaultChecksumScope: "plaintext" | "output";
|
|
74
74
|
/** 기본 난독화 사용 여부 */
|
|
75
75
|
defaultObfuscate: boolean;
|
|
@@ -136,9 +136,8 @@ interface KeyDerivationOptions {
|
|
|
136
136
|
hash?: "SHA-256" | "SHA-384" | "SHA-512";
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
139
|
-
* 기본(Base) 런타임 옵션 —
|
|
140
|
-
*
|
|
141
|
-
* 압축/암호화/체크섬 같은 secure 부가기능은 포함하지 않습니다.
|
|
139
|
+
* 기본(Base) 런타임 옵션 — 플랫폼 어댑터 없이 처리 가능한 옵션 부분집합입니다.
|
|
140
|
+
* 인코딩 + 한글 난독화(재미 풀세트)에 필요한 옵션을 포함합니다.
|
|
142
141
|
*/
|
|
143
142
|
interface DduBaseOptions {
|
|
144
143
|
/** 최대 디코딩 바이트 수 (Zip Bomb 방어) */
|
|
@@ -146,7 +145,8 @@ interface DduBaseOptions {
|
|
|
146
145
|
/**
|
|
147
146
|
* 최대 디코딩 입력(인코딩 문자열) 길이(문자 수). 청크/개행 제거 등 전처리 이전에
|
|
148
147
|
* 선검사하여 거대한 입력에 의한 한도 우회·대량 할당을 차단합니다. 기본값은
|
|
149
|
-
* `maxDecodedBytes`에
|
|
148
|
+
* `maxDecodedBytes * 4 + 1024`에 비례하며 호출 단위로 `maxDecodedBytes`를 낮추면
|
|
149
|
+
* 이 값도 함께 낮아집니다. 조밀한 사용자 청킹은 명시적으로 늘릴 수 있습니다.
|
|
150
150
|
*/
|
|
151
151
|
maxEncodedChars?: number;
|
|
152
152
|
/** 최대 압축해제 바이트 수 (Zip Bomb 방어) */
|
|
@@ -157,12 +157,13 @@ interface DduBaseOptions {
|
|
|
157
157
|
chunkSeparator?: string;
|
|
158
158
|
/** 진행률 콜백 */
|
|
159
159
|
onProgress?: (info: DduProgressInfo) => void;
|
|
160
|
-
/** 한글 난독화 활성화 (
|
|
160
|
+
/** 한글 난독화 활성화 (암호화 키와 독립적으로 동작) */
|
|
161
161
|
obfuscate?: boolean;
|
|
162
162
|
}
|
|
163
163
|
/**
|
|
164
|
-
* Secure 확장 옵션 —
|
|
165
|
-
*
|
|
164
|
+
* Secure 확장 옵션 — `DduBaseOptions`에 압축/암호화/체크섬 부가기능 옵션을 더합니다.
|
|
165
|
+
* `@ddunigma/node`/`@ddunigma/node/browser`는 adapter-backed 옵션을 비동기 메서드에서
|
|
166
|
+
* lazy adapter로 처리하고, `@ddunigma/node/secure`는 sync/async secure 표면을 모두 제공합니다.
|
|
166
167
|
*/
|
|
167
168
|
interface DduSecureOptions extends DduBaseOptions {
|
|
168
169
|
/** 압축 사용 여부 (zlib deflate 또는 brotli) */
|
|
@@ -179,7 +180,8 @@ interface DduSecureOptions extends DduBaseOptions {
|
|
|
179
180
|
* - `"output"`: 인코딩 파이프라인 최종 바이트(압축/암호화 후, 와이어에 실리는 바이트)의 CRC32.
|
|
180
181
|
* 암호화 시 평문 CRC를 노출하지 않고, 복호화 이전에 전송 손상을 감지합니다.
|
|
181
182
|
*
|
|
182
|
-
* `checksum
|
|
183
|
+
* `checksum` 사용 여부는 디코딩에서도 지정해야 하지만, scope는 checksum marker에서
|
|
184
|
+
* 자동 판별되므로 디코딩 옵션에 반복할 필요가 없습니다.
|
|
183
185
|
*/
|
|
184
186
|
checksumScope?: "plaintext" | "output";
|
|
185
187
|
/**
|
|
@@ -191,8 +193,7 @@ interface DduSecureOptions extends DduBaseOptions {
|
|
|
191
193
|
}
|
|
192
194
|
/**
|
|
193
195
|
* 하위호환 별칭. 6.0 이전 코드 및 코어 내부 시그니처가 사용하던 전 기능 런타임 옵션
|
|
194
|
-
* 타입으로, secure 표면 전체(`DduSecureOptions`)와 동일합니다.
|
|
195
|
-
* 타입으로 동작하며, 진입점별 공개 표면은 `DduBaseOptions`/`DduSecureOptions`로 분리됩니다.
|
|
196
|
+
* 타입으로, secure 표면 전체(`DduSecureOptions`)와 동일합니다.
|
|
196
197
|
*/
|
|
197
198
|
type DduOptions = DduSecureOptions;
|
|
198
199
|
/** Web Streams 버퍼 제한을 포함한 스트림 전용 옵션 */
|
|
@@ -203,8 +204,7 @@ interface DduStreamOptions extends DduSecureOptions {
|
|
|
203
204
|
maxBufferedChars?: number;
|
|
204
205
|
}
|
|
205
206
|
/**
|
|
206
|
-
* 기본(Base) 생성자 옵션 — charset/padding/urlSafe 계열과
|
|
207
|
-
* 기본 진입점 래퍼(`Ddu64Node`/`Ddu64Browser`)의 생성자 표면입니다.
|
|
207
|
+
* 기본(Base) 생성자 옵션 — charset/padding/urlSafe 계열과 adapter-free 런타임 옵션을 포함합니다.
|
|
208
208
|
*/
|
|
209
209
|
interface DduBaseConstructorOptions extends DduBaseOptions {
|
|
210
210
|
/** 미리 정의된 charset 심볼 (enum 멤버 또는 그 문자열 리터럴) */
|
|
@@ -244,7 +244,7 @@ interface DduBaseConstructorOptions extends DduBaseOptions {
|
|
|
244
244
|
}
|
|
245
245
|
/**
|
|
246
246
|
* Secure 생성자 옵션 — Base 생성자 옵션 + Secure 런타임 옵션에 암호화 키/어댑터를 더한,
|
|
247
|
-
*
|
|
247
|
+
* 코어와 공개 래퍼가 사용하는 전 기능 생성자 표면입니다.
|
|
248
248
|
*/
|
|
249
249
|
interface DduSecureConstructorOptions extends DduBaseConstructorOptions, DduSecureOptions {
|
|
250
250
|
/** 암호화 키 (AES-256-GCM) */
|
|
@@ -262,6 +262,12 @@ interface DduSecureConstructorOptions extends DduBaseConstructorOptions, DduSecu
|
|
|
262
262
|
* @internal
|
|
263
263
|
*/
|
|
264
264
|
adapterFactory?: () => PlatformAdapter;
|
|
265
|
+
/**
|
|
266
|
+
* 비동기 플랫폼 어댑터 팩토리. root 진입점이 실제 압축/암복호화 시점에
|
|
267
|
+
* 런타임 어댑터 모듈을 동적 import하는 데 사용합니다.
|
|
268
|
+
* @internal
|
|
269
|
+
*/
|
|
270
|
+
asyncAdapterFactory?: () => Promise<PlatformAdapter>;
|
|
265
271
|
}
|
|
266
272
|
/**
|
|
267
273
|
* 하위호환 별칭. 6.0 이전 코드 및 코어 내부 시그니처가 사용하던 전 기능 생성자 옵션
|
|
@@ -272,8 +278,8 @@ type DduConstructorOptions = DduSecureConstructorOptions;
|
|
|
272
278
|
* 암호화 및 압축 연산을 제공하는 플랫폼 어댑터 인터페이스.
|
|
273
279
|
* 각 런타임(Node.js, 브라우저, 엣지)이 이 인터페이스를 구현합니다.
|
|
274
280
|
*
|
|
275
|
-
* 동기 메서드(`?`로 표시)는
|
|
276
|
-
*
|
|
281
|
+
* 동기 메서드(`?`로 표시)는 선택 사항입니다. 기본 BrowserAdapter는
|
|
282
|
+
* 비동기 메서드만 구현하며 NodeAdapter는 동기·비동기 양쪽을 지원합니다.
|
|
277
283
|
*/
|
|
278
284
|
interface PlatformAdapter {
|
|
279
285
|
/** UTF-8 키 문자열에서 256비트 키를 파생 */
|
|
@@ -294,6 +300,7 @@ interface PlatformAdapter {
|
|
|
294
300
|
* @remarks 코어 인코딩/디코딩 파이프라인은 이 메서드를 호출하지 않습니다(각 어댑터가
|
|
295
301
|
* 암호화 IV를 내부에서 직접 생성). 6.0부터 **선택(optional)** 이므로 커스텀 어댑터는
|
|
296
302
|
* 구현하지 않아도 됩니다. `NodeAdapter`/`BrowserAdapter`는 편의상 계속 제공합니다.
|
|
303
|
+
* @deprecated 코어 계약에서 사용하지 않습니다. 다음 major 버전에서 제거할 예정입니다.
|
|
297
304
|
*/
|
|
298
305
|
randomBytes?(length: number): Uint8Array;
|
|
299
306
|
/** deflate 알고리즘으로 데이터를 압축 */
|
|
@@ -317,13 +324,12 @@ interface PlatformAdapter {
|
|
|
317
324
|
}
|
|
318
325
|
/**
|
|
319
326
|
* 한글 음절 난독화 레이어 인터페이스.
|
|
320
|
-
*
|
|
327
|
+
* charset 출력 문자를 한글 음절 블록으로 가역 변환합니다.
|
|
321
328
|
*/
|
|
322
329
|
interface ObfuscationLayer {
|
|
323
330
|
/**
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
* 출력 길이 <= 입력 길이의 1.5배.
|
|
331
|
+
* charset 인코딩 문자열을 한글 음절로 가역 변환합니다.
|
|
332
|
+
* 이 변환은 시각적 난독화 용도이며 기밀성을 제공하지 않습니다.
|
|
327
333
|
*/
|
|
328
334
|
obfuscate(input: string): string;
|
|
329
335
|
/**
|
|
@@ -376,7 +382,7 @@ declare class Ddu64Core {
|
|
|
376
382
|
/** 캐시된 암호화 키 해시 */
|
|
377
383
|
private encryptionKeyHash;
|
|
378
384
|
/** 캐시된 어댑터 게이트웨이 컨텍스트 (호출당 재할당 방지, 해시는 getter로 라이브 조회) */
|
|
379
|
-
private
|
|
385
|
+
private adapterGatewayContext;
|
|
380
386
|
/** 기본 체크섬 활성화 */
|
|
381
387
|
private readonly defaultChecksum;
|
|
382
388
|
/** 기본 체크섬 계산 범위 */
|
|
@@ -403,6 +409,10 @@ declare class Ddu64Core {
|
|
|
403
409
|
private adapter;
|
|
404
410
|
/** 어댑터 지연 생성 팩토리 (adapter 미지정 시 첫 암/복호화·압축 시점에 1회 호출) */
|
|
405
411
|
private readonly adapterFactory;
|
|
412
|
+
/** 비동기 어댑터 동적 import 팩토리 */
|
|
413
|
+
private readonly asyncAdapterFactory;
|
|
414
|
+
/** 동시 첫 호출의 어댑터 로드를 하나로 합치는 Promise */
|
|
415
|
+
private asyncAdapterPromise;
|
|
406
416
|
/** 난독화 레이어 팩토리 (코어-난독화 분리용 주입점) */
|
|
407
417
|
private readonly obfuscationLayerFactory;
|
|
408
418
|
/** 기본 난독화 활성화 */
|
|
@@ -455,14 +465,12 @@ declare class Ddu64Core {
|
|
|
455
465
|
* @group Sync
|
|
456
466
|
*/
|
|
457
467
|
decodeToUint8Array(input: string, options?: DduOptions): Uint8Array;
|
|
458
|
-
private decodeToUint8ArrayInternal;
|
|
459
468
|
/**
|
|
460
469
|
* 비동기 인코딩 - 브라우저를 포함한 모든 런타임에서 동작합니다.
|
|
461
470
|
*
|
|
462
471
|
* @group Async
|
|
463
472
|
*/
|
|
464
473
|
encodeAsync(input: Uint8Array | string, options?: DduOptions): Promise<string>;
|
|
465
|
-
private encodeAsyncInternal;
|
|
466
474
|
/**
|
|
467
475
|
* 비동기 디코딩 - 브라우저를 포함한 모든 런타임에서 동작합니다.
|
|
468
476
|
*
|
|
@@ -475,7 +483,6 @@ declare class Ddu64Core {
|
|
|
475
483
|
* @group Async
|
|
476
484
|
*/
|
|
477
485
|
decodeToUint8ArrayAsync(input: string, options?: DduOptions): Promise<Uint8Array>;
|
|
478
|
-
private decodeToUint8ArrayAsyncInternal;
|
|
479
486
|
/**
|
|
480
487
|
* 동기/비동기 디코딩 파이프라인이 공유하는 기본 컨텍스트를 구성합니다.
|
|
481
488
|
* decrypt/decompress만 동기/비동기 구현에서 각각 덧붙입니다.
|
|
@@ -503,22 +510,6 @@ declare class Ddu64Core {
|
|
|
503
510
|
*/
|
|
504
511
|
getStatsAsync(input: Uint8Array | string, options?: DduOptions): Promise<DduEncodeStats>;
|
|
505
512
|
private buildEncodeStats;
|
|
506
|
-
/**
|
|
507
|
-
* 통계를 위한 메타데이터 포함 내부 인코딩.
|
|
508
|
-
*/
|
|
509
|
-
private encodeInternal;
|
|
510
|
-
/**
|
|
511
|
-
* getStats 전용 인코딩: 실제 AES-GCM 연산을 생략하고 길이만 정확한 더미 암호화를 사용합니다.
|
|
512
|
-
*
|
|
513
|
-
* 암호화 출력 길이는 `평문 + AEAD_OVERHEAD_BYTES`로 결정적이고, 비트팩/푸터/체크섬/난독화/
|
|
514
|
-
* URL-safe/청킹은 모두 입력 바이트 "길이"에만 의존(바이트 "값"과 무관)하므로, 더미 암호문(0으로 채운
|
|
515
|
-
* 동일 길이 버퍼)으로 마무리해도 `encoded.length`는 실제 `encode()` 출력과 바이트 단위로 일치합니다.
|
|
516
|
-
* 압축은 결과 크기와 적용 여부 판단에 필요하므로 실제로 수행합니다.
|
|
517
|
-
*
|
|
518
|
-
* 이 등식(통계 길이 === 실제 encode 길이)은 property test로 고정됩니다.
|
|
519
|
-
*/
|
|
520
|
-
private encodeStatsInternal;
|
|
521
|
-
private encodeStatsAsyncInternal;
|
|
522
513
|
/**
|
|
523
514
|
* 동기/비동기 인코딩 파이프라인이 공유하는 기본 컨텍스트를 구성합니다.
|
|
524
515
|
* compress/encrypt만 동기/비동기 구현에서 각각 덧붙입니다.
|
|
@@ -529,24 +520,20 @@ declare class Ddu64Core {
|
|
|
529
520
|
* 동기/비동기 인코딩에서 공유하는 순수 동기 단계입니다.
|
|
530
521
|
*/
|
|
531
522
|
private finalizeEncode;
|
|
532
|
-
/**
|
|
533
|
-
* 인코딩 후처리: 난독화, 체크섬, URL-safe, 청킹을 적용합니다.
|
|
534
|
-
*/
|
|
535
|
-
private applyPostEncoding;
|
|
536
523
|
/**
|
|
537
524
|
* 디코딩 전처리: 동기/비동기 디코딩에서 공통으로 쓰는 순수 동기 단계.
|
|
538
525
|
* 청크 제거 → URL-safe 역변환 → 체크섬 추출 → 역난독화 → 푸터 파싱 →
|
|
539
526
|
* 검증(정렬/패딩/크기) → 비트팩 해제까지 수행합니다.
|
|
540
527
|
*/
|
|
541
528
|
private decodePrelude;
|
|
542
|
-
private getPayloadCodecContext;
|
|
543
529
|
private reportProgress;
|
|
544
530
|
/**
|
|
545
531
|
* 어댑터를 지연 해석합니다. 명시적 adapter가 없고 adapterFactory가 있으면 첫 호출 시
|
|
546
532
|
* 1회 생성·캐시합니다. 순수 인코딩/디코딩 경로에서는 호출되지 않습니다.
|
|
547
533
|
*/
|
|
548
534
|
private getAdapter;
|
|
549
|
-
private
|
|
535
|
+
private getAsyncAdapter;
|
|
536
|
+
private getAdapterGatewayContext;
|
|
550
537
|
/**
|
|
551
538
|
* 난독화 레이어를 가져오거나 생성합니다 (지연 초기화).
|
|
552
539
|
* 알파벳에는 charset 문자, 패딩 문자, 모든 푸터 마커 문자가 포함됩니다.
|
|
@@ -555,11 +542,10 @@ declare class Ddu64Core {
|
|
|
555
542
|
/**
|
|
556
543
|
* 주어진 호출에 난독화를 적용해야 하는지 결정합니다.
|
|
557
544
|
* 호출별 옵션이 생성자 기본값을 오버라이드합니다.
|
|
558
|
-
*
|
|
545
|
+
* 난독화는 암호화 키와 무관하게 동작합니다.
|
|
559
546
|
*/
|
|
560
547
|
private shouldObfuscate;
|
|
561
548
|
private assertSafeChunkSeparator;
|
|
562
|
-
private isLineBreakSeparator;
|
|
563
549
|
}
|
|
564
550
|
|
|
565
551
|
/**
|
|
@@ -663,10 +649,6 @@ declare class CharsetBuilder {
|
|
|
663
649
|
* 셔플이 되며, 이 역시 비밀이 아니라 재현성 용도입니다.
|
|
664
650
|
*/
|
|
665
651
|
shuffle(seed?: number): CharsetBuilder;
|
|
666
|
-
/**
|
|
667
|
-
* 시드 기반 난수 생성기 (xorshift32)
|
|
668
|
-
*/
|
|
669
|
-
private seededRandom;
|
|
670
652
|
/**
|
|
671
653
|
* 특정 길이로 자릅니다.
|
|
672
654
|
*/
|
|
@@ -781,4 +763,4 @@ declare class Ddu64StreamError extends Ddu64Error {
|
|
|
781
763
|
}
|
|
782
764
|
declare function isDdu64Error(error: unknown): error is Ddu64Error;
|
|
783
765
|
|
|
784
|
-
export { type
|
|
766
|
+
export { type DduSecureOptions as A, DduSetSymbol as B, type CharSetConfig as C, Ddu64Core as D, type DduSetSymbolInput as E, type EncodingProfile as F, type KeyDerivationOptions as G, isDdu64Error as H, type DduStreamOptions as I, type KeyDerivationAlgorithm as K, type ObfuscationLayer as O, type PlatformAdapter as P, type DduSecureConstructorOptions as a, type DduOptions as b, type DduEncodeStats as c, type CharSetInfo as d, CharsetBuilder as e, Ddu64AdapterError as f, Ddu64CharsetError as g, Ddu64ChecksumError as h, Ddu64CompressionError as i, Ddu64DecodeError as j, Ddu64DecompressionError as k, Ddu64DecryptionError as l, Ddu64EncodeError as m, Ddu64EncryptionError as n, Ddu64Error as o, Ddu64ErrorCode as p, type Ddu64ErrorOptions as q, Ddu64InvalidInputError as r, Ddu64LimitError as s, Ddu64ObfuscationError as t, type Ddu64Operation as u, Ddu64StreamError as v, type DduBaseConstructorOptions as w, type DduBaseOptions as x, type DduConstructorOptions as y, type DduProgressInfo as z };
|
package/dist/core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkJATMOMX5_cjs=require('./chunk-JATMOMX5.cjs'),chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs');require('./chunk-BCUBYE76.cjs');Object.defineProperty(exports,"CharsetBuilder",{enumerable:true,get:function(){return chunkJATMOMX5_cjs.j}});Object.defineProperty(exports,"Ddu64",{enumerable:true,get:function(){return chunkJATMOMX5_cjs.i}});Object.defineProperty(exports,"Ddu64Core",{enumerable:true,get:function(){return chunkJATMOMX5_cjs.i}});Object.defineProperty(exports,"DduSetSymbol",{enumerable:true,get:function(){return chunkJATMOMX5_cjs.a}});Object.defineProperty(exports,"Ddu64AdapterError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.m}});Object.defineProperty(exports,"Ddu64CharsetError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.j}});Object.defineProperty(exports,"Ddu64ChecksumError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.i}});Object.defineProperty(exports,"Ddu64CompressionError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.e}});Object.defineProperty(exports,"Ddu64DecodeError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.d}});Object.defineProperty(exports,"Ddu64DecompressionError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.f}});Object.defineProperty(exports,"Ddu64DecryptionError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.h}});Object.defineProperty(exports,"Ddu64EncodeError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.c}});Object.defineProperty(exports,"Ddu64EncryptionError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.g}});Object.defineProperty(exports,"Ddu64Error",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.b}});Object.defineProperty(exports,"Ddu64ErrorCode",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.a}});Object.defineProperty(exports,"Ddu64InvalidInputError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.k}});Object.defineProperty(exports,"Ddu64LimitError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.l}});Object.defineProperty(exports,"Ddu64ObfuscationError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.n}});Object.defineProperty(exports,"Ddu64StreamError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.o}});Object.defineProperty(exports,"isDdu64Error",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.p}});
|
package/dist/core.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, D as Ddu64, f as Ddu64AdapterError, g as Ddu64CharsetError, h as Ddu64ChecksumError, i as Ddu64CompressionError, D as Ddu64Core, 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,
|
|
1
|
+
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, D as Ddu64, f as Ddu64AdapterError, g as Ddu64CharsetError, h as Ddu64ChecksumError, i as Ddu64CompressionError, D as Ddu64Core, 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, y as DduConstructorOptions, c as DduEncodeStats, b as DduOptions, z as DduProgressInfo, B as DduSetSymbol, E as DduSetSymbolInput, I as DduStreamOptions, F as EncodingProfile, K as KeyDerivationAlgorithm, G as KeyDerivationOptions, O as ObfuscationLayer, P as PlatformAdapter, H as isDdu64Error } from './core-DCeItMgU.cjs';
|
package/dist/core.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, D as Ddu64, f as Ddu64AdapterError, g as Ddu64CharsetError, h as Ddu64ChecksumError, i as Ddu64CompressionError, D as Ddu64Core, 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,
|
|
1
|
+
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, D as Ddu64, f as Ddu64AdapterError, g as Ddu64CharsetError, h as Ddu64ChecksumError, i as Ddu64CompressionError, D as Ddu64Core, 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, y as DduConstructorOptions, c as DduEncodeStats, b as DduOptions, z as DduProgressInfo, B as DduSetSymbol, E as DduSetSymbolInput, I as DduStreamOptions, F as EncodingProfile, K as KeyDerivationAlgorithm, G as KeyDerivationOptions, O as ObfuscationLayer, P as PlatformAdapter, H as isDdu64Error } from './core-DCeItMgU.js';
|
package/dist/core.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{j as CharsetBuilder,i as Ddu64,i as Ddu64Core,a as DduSetSymbol}from'./chunk-
|
|
1
|
+
export{j as CharsetBuilder,i as Ddu64,i as Ddu64Core,a as DduSetSymbol}from'./chunk-B4QRMN45.js';export{m as Ddu64AdapterError,j as Ddu64CharsetError,i as Ddu64ChecksumError,e as Ddu64CompressionError,d as Ddu64DecodeError,f as Ddu64DecompressionError,h as Ddu64DecryptionError,c as Ddu64EncodeError,g as Ddu64EncryptionError,b as Ddu64Error,a as Ddu64ErrorCode,k as Ddu64InvalidInputError,l as Ddu64LimitError,n as Ddu64ObfuscationError,o as Ddu64StreamError,p as isDdu64Error}from'./chunk-IZK7KCU7.js';import'./chunk-EI7MMDWY.js';
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkBUR4IORD_cjs=require('./chunk-BUR4IORD.cjs'),chunkJATMOMX5_cjs=require('./chunk-JATMOMX5.cjs'),chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs'),chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var n=class extends chunkJATMOMX5_cjs.i{static{chunkBCUBYE76_cjs.a(this,"Ddu64Node");}#e;#o;#t;constructor(e,r,o){let t=chunkJATMOMX5_cjs.b(e,r,o),c=t.dduOptions?.adapter!==void 0||t.dduOptions?.adapterFactory!==void 0,d={...t.dduOptions,...t.dduChar!==void 0?{dduChar:t.dduChar}:{},...t.paddingChar!==void 0?{paddingChar:t.paddingChar}:{},asyncAdapterFactory:t.dduOptions?.asyncAdapterFactory??(c?void 0:()=>import('./NodeAdapter-4R7CNTHP.cjs').then(({NodeAdapter:s})=>new s)),obfuscationLayerFactory:t.dduOptions?.obfuscationLayerFactory??(s=>new chunkBUR4IORD_cjs.a(s))};super(d),this.#e=d.compress===true,this.#o=d.encryptionKey!==void 0,this.#t=c;}encode(e,r){return this.#r("encode",r),super.encode(e,r)}decodeToUint8Array(e,r){return this.#r("decode",r),super.decodeToUint8Array(e,r)}getStats(e,r){return this.#r("encode",r,false),super.getStats(e,r)}decodeToBuffer(e,r){let o=this.decodeToUint8Array(e,r);return Buffer.from(o.buffer,o.byteOffset,o.byteLength)}async decodeToBufferAsync(e,r){let o=await this.decodeToUint8ArrayAsync(e,r);return Buffer.from(o.buffer,o.byteOffset,o.byteLength)}#r(e,r,o=true){if(!this.#t&&((r?.compress??this.#e)===true||o&&this.#o))throw new chunkZTGECGM2_cjs.m("@ddunigma/node: use encodeAsync/decodeAsync/getStatsAsync, or @ddunigma/node/secure for sync secure options.",e)}};Object.defineProperty(exports,"HangulObfuscationLayer",{enumerable:true,get:function(){return chunkBUR4IORD_cjs.a}});Object.defineProperty(exports,"createEncoderObfuscationLayer",{enumerable:true,get:function(){return chunkBUR4IORD_cjs.b}});Object.defineProperty(exports,"detectRuntime",{enumerable:true,get:function(){return chunkBUR4IORD_cjs.c}});Object.defineProperty(exports,"CharsetBuilder",{enumerable:true,get:function(){return chunkJATMOMX5_cjs.j}});Object.defineProperty(exports,"Ddu64Core",{enumerable:true,get:function(){return chunkJATMOMX5_cjs.i}});Object.defineProperty(exports,"DduSetSymbol",{enumerable:true,get:function(){return chunkJATMOMX5_cjs.a}});Object.defineProperty(exports,"Ddu64AdapterError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.m}});Object.defineProperty(exports,"Ddu64CharsetError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.j}});Object.defineProperty(exports,"Ddu64ChecksumError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.i}});Object.defineProperty(exports,"Ddu64CompressionError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.e}});Object.defineProperty(exports,"Ddu64DecodeError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.d}});Object.defineProperty(exports,"Ddu64DecompressionError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.f}});Object.defineProperty(exports,"Ddu64DecryptionError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.h}});Object.defineProperty(exports,"Ddu64EncodeError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.c}});Object.defineProperty(exports,"Ddu64EncryptionError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.g}});Object.defineProperty(exports,"Ddu64Error",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.b}});Object.defineProperty(exports,"Ddu64ErrorCode",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.a}});Object.defineProperty(exports,"Ddu64InvalidInputError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.k}});Object.defineProperty(exports,"Ddu64LimitError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.l}});Object.defineProperty(exports,"Ddu64ObfuscationError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.n}});Object.defineProperty(exports,"Ddu64StreamError",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.o}});Object.defineProperty(exports,"isDdu64Error",{enumerable:true,get:function(){return chunkZTGECGM2_cjs.p}});exports.Ddu64=n;exports.Ddu64Node=n;
|