@ddunigma/node 6.1.0 → 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.
Files changed (64) hide show
  1. package/CHANGELOG.md +41 -2
  2. package/CONTRIBUTING.md +137 -0
  3. package/README.md +50 -37
  4. package/ROADMAP.md +12 -11
  5. package/dist/BrowserAdapter-FJYE5LZO.js +1 -0
  6. package/dist/BrowserAdapter-NXLXZCJX.cjs +1 -0
  7. package/dist/{ObfuscationLayer-CotTuQ5X.d.ts → ObfuscationLayer-C5TQHpYX.d.cts} +9 -11
  8. package/dist/{ObfuscationLayer-CK0ptcW-.d.cts → ObfuscationLayer-DmlvbjTB.d.ts} +9 -11
  9. package/dist/{WebStreams-CJyGMELL.d.ts → WebStreams-DY1ovJBp.d.cts} +5 -9
  10. package/dist/{WebStreams-BSCrvsT3.d.cts → WebStreams-DynLi09H.d.ts} +5 -9
  11. package/dist/browser.cjs +1 -1
  12. package/dist/browser.d.cts +11 -11
  13. package/dist/browser.d.ts +11 -11
  14. package/dist/browser.js +1 -1
  15. package/dist/chunk-B4QRMN45.js +9 -0
  16. package/dist/chunk-BUR4IORD.cjs +1 -0
  17. package/dist/chunk-C2AT5XRJ.js +1 -0
  18. package/dist/chunk-DAHLP6QA.cjs +1 -0
  19. package/dist/chunk-GR2WPLDK.js +1 -0
  20. package/dist/chunk-JATMOMX5.cjs +9 -0
  21. package/dist/chunk-XVV2OPRV.js +1 -0
  22. package/dist/chunk-ZMNWFYGY.cjs +1 -0
  23. package/dist/{core-ihIEWmI5.d.cts → core-DCeItMgU.d.cts} +28 -44
  24. package/dist/{core-ihIEWmI5.d.ts → core-DCeItMgU.d.ts} +28 -44
  25. package/dist/core.cjs +1 -1
  26. package/dist/core.d.cts +1 -1
  27. package/dist/core.d.ts +1 -1
  28. package/dist/core.js +1 -1
  29. package/dist/index.cjs +1 -1
  30. package/dist/index.d.cts +7 -13
  31. package/dist/index.d.ts +7 -13
  32. package/dist/index.js +1 -1
  33. package/dist/secure.browser.cjs +1 -1
  34. package/dist/secure.browser.d.cts +4 -4
  35. package/dist/secure.browser.d.ts +4 -4
  36. package/dist/secure.browser.js +1 -1
  37. package/dist/secure.cjs +1 -1
  38. package/dist/secure.d.cts +9 -9
  39. package/dist/secure.d.ts +9 -9
  40. package/dist/secure.js +1 -1
  41. package/docs/REFERENCE.md +33 -25
  42. package/package.json +22 -16
  43. package/dist/BrowserAdapter-A6RBN4N3.js +0 -1
  44. package/dist/BrowserAdapter-NWASGV3D.cjs +0 -1
  45. package/dist/Ddu64Secure-CRWKMJLL.js +0 -1
  46. package/dist/Ddu64Secure-VAMXBO3O.cjs +0 -1
  47. package/dist/Ddu64SecureBrowser-EZBTEXVI.cjs +0 -1
  48. package/dist/Ddu64SecureBrowser-FR3TZJQ7.js +0 -1
  49. package/dist/chunk-3TG2ZEF2.cjs +0 -1
  50. package/dist/chunk-4247T4B7.cjs +0 -1
  51. package/dist/chunk-5VZELPTG.js +0 -1
  52. package/dist/chunk-6AYKT6DL.cjs +0 -1
  53. package/dist/chunk-6ZYMNHFT.js +0 -1
  54. package/dist/chunk-A3OZJS5G.cjs +0 -9
  55. package/dist/chunk-DMUAPREO.cjs +0 -1
  56. package/dist/chunk-DVOLAE33.js +0 -1
  57. package/dist/chunk-EY5OURIG.cjs +0 -1
  58. package/dist/chunk-FQI54AXA.cjs +0 -1
  59. package/dist/chunk-HUUB5BUS.cjs +0 -1
  60. package/dist/chunk-IZSFO3ET.js +0 -1
  61. package/dist/chunk-LZFOWWT2.js +0 -1
  62. package/dist/chunk-Q7QV2G7V.js +0 -1
  63. package/dist/chunk-TCRCZHZC.js +0 -9
  64. package/dist/chunk-UNBJQMMP.js +0 -1
@@ -69,7 +69,7 @@ interface CharSetInfo {
69
69
  hasEncryptionKey: boolean;
70
70
  /** 기본 체크섬 사용 여부 */
71
71
  defaultChecksum: boolean;
72
- /** 기본 체크섬 계산 범위 (5.0: "output") */
72
+ /** 기본 체크섬 계산 범위 */
73
73
  defaultChecksumScope: "plaintext" | "output";
74
74
  /** 기본 난독화 사용 여부 */
75
75
  defaultObfuscate: boolean;
@@ -145,7 +145,8 @@ interface DduBaseOptions {
145
145
  /**
146
146
  * 최대 디코딩 입력(인코딩 문자열) 길이(문자 수). 청크/개행 제거 등 전처리 이전에
147
147
  * 선검사하여 거대한 입력에 의한 한도 우회·대량 할당을 차단합니다. 기본값은
148
- * `maxDecodedBytes`에 비례합니다.
148
+ * `maxDecodedBytes * 4 + 1024`에 비례하며 호출 단위로 `maxDecodedBytes`를 낮추면
149
+ * 이 값도 함께 낮아집니다. 조밀한 사용자 청킹은 명시적으로 늘릴 수 있습니다.
149
150
  */
150
151
  maxEncodedChars?: number;
151
152
  /** 최대 압축해제 바이트 수 (Zip Bomb 방어) */
@@ -156,13 +157,13 @@ interface DduBaseOptions {
156
157
  chunkSeparator?: string;
157
158
  /** 진행률 콜백 */
158
159
  onProgress?: (info: DduProgressInfo) => void;
159
- /** 한글 난독화 활성화 (6.0: 암호화 키와 무관하게 동작) */
160
+ /** 한글 난독화 활성화 (암호화 키와 독립적으로 동작) */
160
161
  obfuscate?: boolean;
161
162
  }
162
163
  /**
163
164
  * Secure 확장 옵션 — `DduBaseOptions`에 압축/암호화/체크섬 부가기능 옵션을 더합니다.
164
165
  * `@ddunigma/node`/`@ddunigma/node/browser`는 adapter-backed 옵션을 비동기 메서드에서
165
- * lazy secure로 처리하고, `@ddunigma/node/secure`는 sync/async secure 표면을 모두 제공합니다.
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
  /**
@@ -260,6 +262,12 @@ interface DduSecureConstructorOptions extends DduBaseConstructorOptions, DduSecu
260
262
  * @internal
261
263
  */
262
264
  adapterFactory?: () => PlatformAdapter;
265
+ /**
266
+ * 비동기 플랫폼 어댑터 팩토리. root 진입점이 실제 압축/암복호화 시점에
267
+ * 런타임 어댑터 모듈을 동적 import하는 데 사용합니다.
268
+ * @internal
269
+ */
270
+ asyncAdapterFactory?: () => Promise<PlatformAdapter>;
263
271
  }
264
272
  /**
265
273
  * 하위호환 별칭. 6.0 이전 코드 및 코어 내부 시그니처가 사용하던 전 기능 생성자 옵션
@@ -270,8 +278,8 @@ type DduConstructorOptions = DduSecureConstructorOptions;
270
278
  * 암호화 및 압축 연산을 제공하는 플랫폼 어댑터 인터페이스.
271
279
  * 각 런타임(Node.js, 브라우저, 엣지)이 이 인터페이스를 구현합니다.
272
280
  *
273
- * 동기 메서드(`?`로 표시)는 Node.js에서만 사용 가능합니다.
274
- * 브라우저/엣지 어댑터는 동기 메서드 호출 throw합니다.
281
+ * 동기 메서드(`?`로 표시)는 선택 사항입니다. 기본 BrowserAdapter는
282
+ * 비동기 메서드만 구현하며 NodeAdapter는 동기·비동기 양쪽을 지원합니다.
275
283
  */
276
284
  interface PlatformAdapter {
277
285
  /** UTF-8 키 문자열에서 256비트 키를 파생 */
@@ -292,6 +300,7 @@ interface PlatformAdapter {
292
300
  * @remarks 코어 인코딩/디코딩 파이프라인은 이 메서드를 호출하지 않습니다(각 어댑터가
293
301
  * 암호화 IV를 내부에서 직접 생성). 6.0부터 **선택(optional)** 이므로 커스텀 어댑터는
294
302
  * 구현하지 않아도 됩니다. `NodeAdapter`/`BrowserAdapter`는 편의상 계속 제공합니다.
303
+ * @deprecated 코어 계약에서 사용하지 않습니다. 다음 major 버전에서 제거할 예정입니다.
295
304
  */
296
305
  randomBytes?(length: number): Uint8Array;
297
306
  /** deflate 알고리즘으로 데이터를 압축 */
@@ -315,13 +324,12 @@ interface PlatformAdapter {
315
324
  }
316
325
  /**
317
326
  * 한글 음절 난독화 레이어 인터페이스.
318
- * 암호화된 출력을 자연스러운 한국어 음절 블록으로 변환합니다.
327
+ * charset 출력 문자를 한글 음절 블록으로 가역 변환합니다.
319
328
  */
320
329
  interface ObfuscationLayer {
321
330
  /**
322
- * 암호화된 charset 인코딩 문자열을 자연스러운 한글 음절로 변환합니다.
323
- * 모든 출력 문자는 U+AC00–U+D7A3 범위에 있습니다.
324
- * 출력 길이 <= 입력 길이의 1.5배.
331
+ * charset 인코딩 문자열을 한글 음절로 가역 변환합니다.
332
+ * 변환은 시각적 난독화 용도이며 기밀성을 제공하지 않습니다.
325
333
  */
326
334
  obfuscate(input: string): string;
327
335
  /**
@@ -374,7 +382,7 @@ declare class Ddu64Core {
374
382
  /** 캐시된 암호화 키 해시 */
375
383
  private encryptionKeyHash;
376
384
  /** 캐시된 어댑터 게이트웨이 컨텍스트 (호출당 재할당 방지, 해시는 getter로 라이브 조회) */
377
- private syncGatewayContext;
385
+ private adapterGatewayContext;
378
386
  /** 기본 체크섬 활성화 */
379
387
  private readonly defaultChecksum;
380
388
  /** 기본 체크섬 계산 범위 */
@@ -401,6 +409,10 @@ declare class Ddu64Core {
401
409
  private adapter;
402
410
  /** 어댑터 지연 생성 팩토리 (adapter 미지정 시 첫 암/복호화·압축 시점에 1회 호출) */
403
411
  private readonly adapterFactory;
412
+ /** 비동기 어댑터 동적 import 팩토리 */
413
+ private readonly asyncAdapterFactory;
414
+ /** 동시 첫 호출의 어댑터 로드를 하나로 합치는 Promise */
415
+ private asyncAdapterPromise;
404
416
  /** 난독화 레이어 팩토리 (코어-난독화 분리용 주입점) */
405
417
  private readonly obfuscationLayerFactory;
406
418
  /** 기본 난독화 활성화 */
@@ -453,14 +465,12 @@ declare class Ddu64Core {
453
465
  * @group Sync
454
466
  */
455
467
  decodeToUint8Array(input: string, options?: DduOptions): Uint8Array;
456
- private decodeToUint8ArrayInternal;
457
468
  /**
458
469
  * 비동기 인코딩 - 브라우저를 포함한 모든 런타임에서 동작합니다.
459
470
  *
460
471
  * @group Async
461
472
  */
462
473
  encodeAsync(input: Uint8Array | string, options?: DduOptions): Promise<string>;
463
- private encodeAsyncInternal;
464
474
  /**
465
475
  * 비동기 디코딩 - 브라우저를 포함한 모든 런타임에서 동작합니다.
466
476
  *
@@ -473,7 +483,6 @@ declare class Ddu64Core {
473
483
  * @group Async
474
484
  */
475
485
  decodeToUint8ArrayAsync(input: string, options?: DduOptions): Promise<Uint8Array>;
476
- private decodeToUint8ArrayAsyncInternal;
477
486
  /**
478
487
  * 동기/비동기 디코딩 파이프라인이 공유하는 기본 컨텍스트를 구성합니다.
479
488
  * decrypt/decompress만 동기/비동기 구현에서 각각 덧붙입니다.
@@ -501,22 +510,6 @@ declare class Ddu64Core {
501
510
  */
502
511
  getStatsAsync(input: Uint8Array | string, options?: DduOptions): Promise<DduEncodeStats>;
503
512
  private buildEncodeStats;
504
- /**
505
- * 통계를 위한 메타데이터 포함 내부 인코딩.
506
- */
507
- private encodeInternal;
508
- /**
509
- * getStats 전용 인코딩: 실제 AES-GCM 연산을 생략하고 길이만 정확한 더미 암호화를 사용합니다.
510
- *
511
- * 암호화 출력 길이는 `평문 + AEAD_OVERHEAD_BYTES`로 결정적이고, 비트팩/푸터/체크섬/난독화/
512
- * URL-safe/청킹은 모두 입력 바이트 "길이"에만 의존(바이트 "값"과 무관)하므로, 더미 암호문(0으로 채운
513
- * 동일 길이 버퍼)으로 마무리해도 `encoded.length`는 실제 `encode()` 출력과 바이트 단위로 일치합니다.
514
- * 압축은 결과 크기와 적용 여부 판단에 필요하므로 실제로 수행합니다.
515
- *
516
- * 이 등식(통계 길이 === 실제 encode 길이)은 property test로 고정됩니다.
517
- */
518
- private encodeStatsInternal;
519
- private encodeStatsAsyncInternal;
520
513
  /**
521
514
  * 동기/비동기 인코딩 파이프라인이 공유하는 기본 컨텍스트를 구성합니다.
522
515
  * compress/encrypt만 동기/비동기 구현에서 각각 덧붙입니다.
@@ -527,24 +520,20 @@ declare class Ddu64Core {
527
520
  * 동기/비동기 인코딩에서 공유하는 순수 동기 단계입니다.
528
521
  */
529
522
  private finalizeEncode;
530
- /**
531
- * 인코딩 후처리: 난독화, 체크섬, URL-safe, 청킹을 적용합니다.
532
- */
533
- private applyPostEncoding;
534
523
  /**
535
524
  * 디코딩 전처리: 동기/비동기 디코딩에서 공통으로 쓰는 순수 동기 단계.
536
525
  * 청크 제거 → URL-safe 역변환 → 체크섬 추출 → 역난독화 → 푸터 파싱 →
537
526
  * 검증(정렬/패딩/크기) → 비트팩 해제까지 수행합니다.
538
527
  */
539
528
  private decodePrelude;
540
- private getPayloadCodecContext;
541
529
  private reportProgress;
542
530
  /**
543
531
  * 어댑터를 지연 해석합니다. 명시적 adapter가 없고 adapterFactory가 있으면 첫 호출 시
544
532
  * 1회 생성·캐시합니다. 순수 인코딩/디코딩 경로에서는 호출되지 않습니다.
545
533
  */
546
534
  private getAdapter;
547
- private getSyncGatewayContext;
535
+ private getAsyncAdapter;
536
+ private getAdapterGatewayContext;
548
537
  /**
549
538
  * 난독화 레이어를 가져오거나 생성합니다 (지연 초기화).
550
539
  * 알파벳에는 charset 문자, 패딩 문자, 모든 푸터 마커 문자가 포함됩니다.
@@ -553,11 +542,10 @@ declare class Ddu64Core {
553
542
  /**
554
543
  * 주어진 호출에 난독화를 적용해야 하는지 결정합니다.
555
544
  * 호출별 옵션이 생성자 기본값을 오버라이드합니다.
556
- * 6.0: 난독화는 암호화와 무관하게 적용됩니다(키 비의존). 키 없이도 난독화가 동작합니다.
545
+ * 난독화는 암호화 키와 무관하게 동작합니다.
557
546
  */
558
547
  private shouldObfuscate;
559
548
  private assertSafeChunkSeparator;
560
- private isLineBreakSeparator;
561
549
  }
562
550
 
563
551
  /**
@@ -661,10 +649,6 @@ declare class CharsetBuilder {
661
649
  * 셔플이 되며, 이 역시 비밀이 아니라 재현성 용도입니다.
662
650
  */
663
651
  shuffle(seed?: number): CharsetBuilder;
664
- /**
665
- * 시드 기반 난수 생성기 (xorshift32)
666
- */
667
- private seededRandom;
668
652
  /**
669
653
  * 특정 길이로 자릅니다.
670
654
  */
@@ -779,4 +763,4 @@ declare class Ddu64StreamError extends Ddu64Error {
779
763
  }
780
764
  declare function isDdu64Error(error: unknown): error is Ddu64Error;
781
765
 
782
- export { type DduSetSymbolInput as A, isDdu64Error as B, type CharSetConfig as C, Ddu64Core as D, type EncodingProfile as E, type DduConstructorOptions as F, type DduSecureOptions as G, type DduStreamOptions as H, type KeyDerivationOptions 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 DduProgressInfo as y, DduSetSymbol as z };
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
- /** 기본 체크섬 계산 범위 (5.0: "output") */
72
+ /** 기본 체크섬 계산 범위 */
73
73
  defaultChecksumScope: "plaintext" | "output";
74
74
  /** 기본 난독화 사용 여부 */
75
75
  defaultObfuscate: boolean;
@@ -145,7 +145,8 @@ interface DduBaseOptions {
145
145
  /**
146
146
  * 최대 디코딩 입력(인코딩 문자열) 길이(문자 수). 청크/개행 제거 등 전처리 이전에
147
147
  * 선검사하여 거대한 입력에 의한 한도 우회·대량 할당을 차단합니다. 기본값은
148
- * `maxDecodedBytes`에 비례합니다.
148
+ * `maxDecodedBytes * 4 + 1024`에 비례하며 호출 단위로 `maxDecodedBytes`를 낮추면
149
+ * 이 값도 함께 낮아집니다. 조밀한 사용자 청킹은 명시적으로 늘릴 수 있습니다.
149
150
  */
150
151
  maxEncodedChars?: number;
151
152
  /** 최대 압축해제 바이트 수 (Zip Bomb 방어) */
@@ -156,13 +157,13 @@ interface DduBaseOptions {
156
157
  chunkSeparator?: string;
157
158
  /** 진행률 콜백 */
158
159
  onProgress?: (info: DduProgressInfo) => void;
159
- /** 한글 난독화 활성화 (6.0: 암호화 키와 무관하게 동작) */
160
+ /** 한글 난독화 활성화 (암호화 키와 독립적으로 동작) */
160
161
  obfuscate?: boolean;
161
162
  }
162
163
  /**
163
164
  * Secure 확장 옵션 — `DduBaseOptions`에 압축/암호화/체크섬 부가기능 옵션을 더합니다.
164
165
  * `@ddunigma/node`/`@ddunigma/node/browser`는 adapter-backed 옵션을 비동기 메서드에서
165
- * lazy secure로 처리하고, `@ddunigma/node/secure`는 sync/async secure 표면을 모두 제공합니다.
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
  /**
@@ -260,6 +262,12 @@ interface DduSecureConstructorOptions extends DduBaseConstructorOptions, DduSecu
260
262
  * @internal
261
263
  */
262
264
  adapterFactory?: () => PlatformAdapter;
265
+ /**
266
+ * 비동기 플랫폼 어댑터 팩토리. root 진입점이 실제 압축/암복호화 시점에
267
+ * 런타임 어댑터 모듈을 동적 import하는 데 사용합니다.
268
+ * @internal
269
+ */
270
+ asyncAdapterFactory?: () => Promise<PlatformAdapter>;
263
271
  }
264
272
  /**
265
273
  * 하위호환 별칭. 6.0 이전 코드 및 코어 내부 시그니처가 사용하던 전 기능 생성자 옵션
@@ -270,8 +278,8 @@ type DduConstructorOptions = DduSecureConstructorOptions;
270
278
  * 암호화 및 압축 연산을 제공하는 플랫폼 어댑터 인터페이스.
271
279
  * 각 런타임(Node.js, 브라우저, 엣지)이 이 인터페이스를 구현합니다.
272
280
  *
273
- * 동기 메서드(`?`로 표시)는 Node.js에서만 사용 가능합니다.
274
- * 브라우저/엣지 어댑터는 동기 메서드 호출 throw합니다.
281
+ * 동기 메서드(`?`로 표시)는 선택 사항입니다. 기본 BrowserAdapter는
282
+ * 비동기 메서드만 구현하며 NodeAdapter는 동기·비동기 양쪽을 지원합니다.
275
283
  */
276
284
  interface PlatformAdapter {
277
285
  /** UTF-8 키 문자열에서 256비트 키를 파생 */
@@ -292,6 +300,7 @@ interface PlatformAdapter {
292
300
  * @remarks 코어 인코딩/디코딩 파이프라인은 이 메서드를 호출하지 않습니다(각 어댑터가
293
301
  * 암호화 IV를 내부에서 직접 생성). 6.0부터 **선택(optional)** 이므로 커스텀 어댑터는
294
302
  * 구현하지 않아도 됩니다. `NodeAdapter`/`BrowserAdapter`는 편의상 계속 제공합니다.
303
+ * @deprecated 코어 계약에서 사용하지 않습니다. 다음 major 버전에서 제거할 예정입니다.
295
304
  */
296
305
  randomBytes?(length: number): Uint8Array;
297
306
  /** deflate 알고리즘으로 데이터를 압축 */
@@ -315,13 +324,12 @@ interface PlatformAdapter {
315
324
  }
316
325
  /**
317
326
  * 한글 음절 난독화 레이어 인터페이스.
318
- * 암호화된 출력을 자연스러운 한국어 음절 블록으로 변환합니다.
327
+ * charset 출력 문자를 한글 음절 블록으로 가역 변환합니다.
319
328
  */
320
329
  interface ObfuscationLayer {
321
330
  /**
322
- * 암호화된 charset 인코딩 문자열을 자연스러운 한글 음절로 변환합니다.
323
- * 모든 출력 문자는 U+AC00–U+D7A3 범위에 있습니다.
324
- * 출력 길이 <= 입력 길이의 1.5배.
331
+ * charset 인코딩 문자열을 한글 음절로 가역 변환합니다.
332
+ * 변환은 시각적 난독화 용도이며 기밀성을 제공하지 않습니다.
325
333
  */
326
334
  obfuscate(input: string): string;
327
335
  /**
@@ -374,7 +382,7 @@ declare class Ddu64Core {
374
382
  /** 캐시된 암호화 키 해시 */
375
383
  private encryptionKeyHash;
376
384
  /** 캐시된 어댑터 게이트웨이 컨텍스트 (호출당 재할당 방지, 해시는 getter로 라이브 조회) */
377
- private syncGatewayContext;
385
+ private adapterGatewayContext;
378
386
  /** 기본 체크섬 활성화 */
379
387
  private readonly defaultChecksum;
380
388
  /** 기본 체크섬 계산 범위 */
@@ -401,6 +409,10 @@ declare class Ddu64Core {
401
409
  private adapter;
402
410
  /** 어댑터 지연 생성 팩토리 (adapter 미지정 시 첫 암/복호화·압축 시점에 1회 호출) */
403
411
  private readonly adapterFactory;
412
+ /** 비동기 어댑터 동적 import 팩토리 */
413
+ private readonly asyncAdapterFactory;
414
+ /** 동시 첫 호출의 어댑터 로드를 하나로 합치는 Promise */
415
+ private asyncAdapterPromise;
404
416
  /** 난독화 레이어 팩토리 (코어-난독화 분리용 주입점) */
405
417
  private readonly obfuscationLayerFactory;
406
418
  /** 기본 난독화 활성화 */
@@ -453,14 +465,12 @@ declare class Ddu64Core {
453
465
  * @group Sync
454
466
  */
455
467
  decodeToUint8Array(input: string, options?: DduOptions): Uint8Array;
456
- private decodeToUint8ArrayInternal;
457
468
  /**
458
469
  * 비동기 인코딩 - 브라우저를 포함한 모든 런타임에서 동작합니다.
459
470
  *
460
471
  * @group Async
461
472
  */
462
473
  encodeAsync(input: Uint8Array | string, options?: DduOptions): Promise<string>;
463
- private encodeAsyncInternal;
464
474
  /**
465
475
  * 비동기 디코딩 - 브라우저를 포함한 모든 런타임에서 동작합니다.
466
476
  *
@@ -473,7 +483,6 @@ declare class Ddu64Core {
473
483
  * @group Async
474
484
  */
475
485
  decodeToUint8ArrayAsync(input: string, options?: DduOptions): Promise<Uint8Array>;
476
- private decodeToUint8ArrayAsyncInternal;
477
486
  /**
478
487
  * 동기/비동기 디코딩 파이프라인이 공유하는 기본 컨텍스트를 구성합니다.
479
488
  * decrypt/decompress만 동기/비동기 구현에서 각각 덧붙입니다.
@@ -501,22 +510,6 @@ declare class Ddu64Core {
501
510
  */
502
511
  getStatsAsync(input: Uint8Array | string, options?: DduOptions): Promise<DduEncodeStats>;
503
512
  private buildEncodeStats;
504
- /**
505
- * 통계를 위한 메타데이터 포함 내부 인코딩.
506
- */
507
- private encodeInternal;
508
- /**
509
- * getStats 전용 인코딩: 실제 AES-GCM 연산을 생략하고 길이만 정확한 더미 암호화를 사용합니다.
510
- *
511
- * 암호화 출력 길이는 `평문 + AEAD_OVERHEAD_BYTES`로 결정적이고, 비트팩/푸터/체크섬/난독화/
512
- * URL-safe/청킹은 모두 입력 바이트 "길이"에만 의존(바이트 "값"과 무관)하므로, 더미 암호문(0으로 채운
513
- * 동일 길이 버퍼)으로 마무리해도 `encoded.length`는 실제 `encode()` 출력과 바이트 단위로 일치합니다.
514
- * 압축은 결과 크기와 적용 여부 판단에 필요하므로 실제로 수행합니다.
515
- *
516
- * 이 등식(통계 길이 === 실제 encode 길이)은 property test로 고정됩니다.
517
- */
518
- private encodeStatsInternal;
519
- private encodeStatsAsyncInternal;
520
513
  /**
521
514
  * 동기/비동기 인코딩 파이프라인이 공유하는 기본 컨텍스트를 구성합니다.
522
515
  * compress/encrypt만 동기/비동기 구현에서 각각 덧붙입니다.
@@ -527,24 +520,20 @@ declare class Ddu64Core {
527
520
  * 동기/비동기 인코딩에서 공유하는 순수 동기 단계입니다.
528
521
  */
529
522
  private finalizeEncode;
530
- /**
531
- * 인코딩 후처리: 난독화, 체크섬, URL-safe, 청킹을 적용합니다.
532
- */
533
- private applyPostEncoding;
534
523
  /**
535
524
  * 디코딩 전처리: 동기/비동기 디코딩에서 공통으로 쓰는 순수 동기 단계.
536
525
  * 청크 제거 → URL-safe 역변환 → 체크섬 추출 → 역난독화 → 푸터 파싱 →
537
526
  * 검증(정렬/패딩/크기) → 비트팩 해제까지 수행합니다.
538
527
  */
539
528
  private decodePrelude;
540
- private getPayloadCodecContext;
541
529
  private reportProgress;
542
530
  /**
543
531
  * 어댑터를 지연 해석합니다. 명시적 adapter가 없고 adapterFactory가 있으면 첫 호출 시
544
532
  * 1회 생성·캐시합니다. 순수 인코딩/디코딩 경로에서는 호출되지 않습니다.
545
533
  */
546
534
  private getAdapter;
547
- private getSyncGatewayContext;
535
+ private getAsyncAdapter;
536
+ private getAdapterGatewayContext;
548
537
  /**
549
538
  * 난독화 레이어를 가져오거나 생성합니다 (지연 초기화).
550
539
  * 알파벳에는 charset 문자, 패딩 문자, 모든 푸터 마커 문자가 포함됩니다.
@@ -553,11 +542,10 @@ declare class Ddu64Core {
553
542
  /**
554
543
  * 주어진 호출에 난독화를 적용해야 하는지 결정합니다.
555
544
  * 호출별 옵션이 생성자 기본값을 오버라이드합니다.
556
- * 6.0: 난독화는 암호화와 무관하게 적용됩니다(키 비의존). 키 없이도 난독화가 동작합니다.
545
+ * 난독화는 암호화 키와 무관하게 동작합니다.
557
546
  */
558
547
  private shouldObfuscate;
559
548
  private assertSafeChunkSeparator;
560
- private isLineBreakSeparator;
561
549
  }
562
550
 
563
551
  /**
@@ -661,10 +649,6 @@ declare class CharsetBuilder {
661
649
  * 셔플이 되며, 이 역시 비밀이 아니라 재현성 용도입니다.
662
650
  */
663
651
  shuffle(seed?: number): CharsetBuilder;
664
- /**
665
- * 시드 기반 난수 생성기 (xorshift32)
666
- */
667
- private seededRandom;
668
652
  /**
669
653
  * 특정 길이로 자릅니다.
670
654
  */
@@ -779,4 +763,4 @@ declare class Ddu64StreamError extends Ddu64Error {
779
763
  }
780
764
  declare function isDdu64Error(error: unknown): error is Ddu64Error;
781
765
 
782
- export { type DduSetSymbolInput as A, isDdu64Error as B, type CharSetConfig as C, Ddu64Core as D, type EncodingProfile as E, type DduConstructorOptions as F, type DduSecureOptions as G, type DduStreamOptions as H, type KeyDerivationOptions 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 DduProgressInfo as y, DduSetSymbol as z };
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 chunk3TG2ZEF2_cjs=require('./chunk-3TG2ZEF2.cjs'),chunkA3OZJS5G_cjs=require('./chunk-A3OZJS5G.cjs'),chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs');require('./chunk-BCUBYE76.cjs');Object.defineProperty(exports,"CharsetBuilder",{enumerable:true,get:function(){return chunk3TG2ZEF2_cjs.a}});Object.defineProperty(exports,"Ddu64",{enumerable:true,get:function(){return chunkA3OZJS5G_cjs.i}});Object.defineProperty(exports,"Ddu64Core",{enumerable:true,get:function(){return chunkA3OZJS5G_cjs.i}});Object.defineProperty(exports,"DduSetSymbol",{enumerable:true,get:function(){return chunkA3OZJS5G_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}});
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, 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, I as KeyDerivationOptions, O as ObfuscationLayer, P as PlatformAdapter, B as isDdu64Error } from './core-ihIEWmI5.cjs';
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, 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, I as KeyDerivationOptions, O as ObfuscationLayer, P as PlatformAdapter, B as isDdu64Error } from './core-ihIEWmI5.js';
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{a as CharsetBuilder}from'./chunk-IZSFO3ET.js';export{i as Ddu64,i as Ddu64Core,a as DduSetSymbol}from'./chunk-TCRCZHZC.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';
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 chunkEY5OURIG_cjs=require('./chunk-EY5OURIG.cjs'),chunk3TG2ZEF2_cjs=require('./chunk-3TG2ZEF2.cjs'),chunk4247T4B7_cjs=require('./chunk-4247T4B7.cjs'),chunkA3OZJS5G_cjs=require('./chunk-A3OZJS5G.cjs'),chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs'),chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var s=class extends chunkA3OZJS5G_cjs.i{static{chunkBCUBYE76_cjs.a(this,"Ddu64Node");}#d;#e;#u;#t;#r;constructor(r,e,t){let o=chunkA3OZJS5G_cjs.b(r,e,t),n={...o.dduOptions,...o.dduChar!==void 0?{dduChar:o.dduChar}:{},...o.paddingChar!==void 0?{paddingChar:o.paddingChar}:{},obfuscationLayerFactory:o.dduOptions?.obfuscationLayerFactory??(p=>new chunk4247T4B7_cjs.a(p))};super(n),this.#d=n,this.#u=n.compress===true,this.#t=n.encryptionKey!==void 0,this.#r=n.adapter!==void 0;}encode(r,e){return this.#s("encode",e),super.encode(r,e)}decodeToUint8Array(r,e){return this.#s("decode",e),super.decodeToUint8Array(r,e)}async encodeAsync(r,e){return this.#i(e)?(await this.#o()).encodeAsync(r,e):super.encodeAsync(r,e)}async decodeToUint8ArrayAsync(r,e){return this.#i(e)?(await this.#o()).decodeToUint8ArrayAsync(r,e):super.decodeToUint8ArrayAsync(r,e)}getStats(r,e){return this.#s("encode",e,false),super.getStats(r,e)}getStatsAsync(r,e){return !this.#r&&this.#n(e)?this.#o().then(t=>t.getStatsAsync(r,e)):super.getStatsAsync(r,e)}decodeToBuffer(r,e){let t=this.decodeToUint8Array(r,e);return Buffer.from(t.buffer,t.byteOffset,t.byteLength)}async decodeToBufferAsync(r,e){let t=await this.decodeToUint8ArrayAsync(r,e);return Buffer.from(t.buffer,t.byteOffset,t.byteLength)}#o(){return this.#e||(this.#e=import('./Ddu64Secure-VAMXBO3O.cjs').then(({Ddu64Secure:r})=>new r(this.#d))),this.#e}#i(r){return this.#r?false:this.#n(r)||this.#t}#n(r){return (r?.compress??this.#u)===true}#s(r,e,t=true){if(!this.#r&&(this.#n(e)||t&&this.#t))throw new chunkZTGECGM2_cjs.m("@ddunigma/node: use encodeAsync/decodeAsync/getStatsAsync, or @ddunigma/node/secure for sync secure options.",r)}};Object.defineProperty(exports,"detectRuntime",{enumerable:true,get:function(){return chunkEY5OURIG_cjs.a}});Object.defineProperty(exports,"CharsetBuilder",{enumerable:true,get:function(){return chunk3TG2ZEF2_cjs.a}});Object.defineProperty(exports,"HangulObfuscationLayer",{enumerable:true,get:function(){return chunk4247T4B7_cjs.a}});Object.defineProperty(exports,"createEncoderObfuscationLayer",{enumerable:true,get:function(){return chunk4247T4B7_cjs.b}});Object.defineProperty(exports,"Ddu64Core",{enumerable:true,get:function(){return chunkA3OZJS5G_cjs.i}});Object.defineProperty(exports,"DduSetSymbol",{enumerable:true,get:function(){return chunkA3OZJS5G_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=s;exports.Ddu64Node=s;
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;
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
- import { D as Ddu64Core, a as DduSecureConstructorOptions, b as DduOptions, c as DduEncodeStats } from './core-ihIEWmI5.cjs';
2
- 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, y as DduProgressInfo, z as DduSetSymbol, A as DduSetSymbolInput, E as EncodingProfile, O as ObfuscationLayer, B as isDdu64Error } from './core-ihIEWmI5.cjs';
3
- export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-CK0ptcW-.cjs';
1
+ import { D as Ddu64Core, a as DduSecureConstructorOptions, b as DduOptions, c as DduEncodeStats } from './core-DCeItMgU.cjs';
2
+ 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, y as DduConstructorOptions, z as DduProgressInfo, A as DduSecureOptions, B as DduSetSymbol, E as DduSetSymbolInput, F as EncodingProfile, K as KeyDerivationAlgorithm, G as KeyDerivationOptions, O as ObfuscationLayer, P as PlatformAdapter, H as isDdu64Error } from './core-DCeItMgU.cjs';
3
+ export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-C5TQHpYX.cjs';
4
4
 
5
5
  /**
6
6
  * Node.js 전용 기본 Ddu64 래퍼.
@@ -11,9 +11,9 @@ export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as d
11
11
  * - Node.js Buffer를 반환하는 `decodeToBuffer` 및 `decodeToBufferAsync` 제공
12
12
  * - encode()에 Buffer 입력 허용 (Buffer는 Uint8Array를 확장)
13
13
  *
14
- * 기본 경로는 어댑터(zlib/crypto)를 주입하지 않습니다. 압축/암호화가 명시된 비동기 호출만
15
- * secure 래퍼를 동적 import하여 NodeAdapter 지연 주입합니다. 동기 secure 작업이 필요하면
16
- * secure 진입점(`@ddunigma/node/secure`)의 `Ddu64Secure`를 사용하세요.
14
+ * 기본 경로는 어댑터(zlib/crypto)를 정적 import하지 않습니다. 비동기 압축/암복호화가
15
+ * 실제로 실행될 NodeAdapter 동적 import해 현재 core 인스턴스에 주입합니다.
16
+ * 동기 secure 작업이 필요하면 `@ddunigma/node/secure`를 사용하세요.
17
17
  *
18
18
  * @module Ddu64Node
19
19
  */
@@ -44,14 +44,8 @@ declare class Ddu64Node extends Ddu64Core {
44
44
  * sync 디코드 3종을 모두 덮습니다(중복 override 불필요).
45
45
  */
46
46
  decodeToUint8Array(input: string, options?: DduOptions): Uint8Array;
47
- /** @group Async */
48
- encodeAsync(input: Uint8Array | string, options?: DduOptions): Promise<string>;
49
- /** @group Async */
50
- decodeToUint8ArrayAsync(input: string, options?: DduOptions): Promise<Uint8Array>;
51
47
  /** @group Introspection */
52
48
  getStats(input: Uint8Array | string, options?: DduOptions): DduEncodeStats;
53
- /** @group Introspection */
54
- getStatsAsync(input: Uint8Array | string, options?: DduOptions): Promise<DduEncodeStats>;
55
49
  /**
56
50
  * 인코딩된 문자열을 Node.js Buffer로 디코딩합니다.
57
51
  *
@@ -72,4 +66,4 @@ declare class Ddu64Node extends Ddu64Core {
72
66
  decodeToBufferAsync(input: string, options?: DduOptions): Promise<Buffer>;
73
67
  }
74
68
 
75
- export { Ddu64Node as Ddu64, Ddu64Core, Ddu64Node, DduEncodeStats };
69
+ export { Ddu64Node as Ddu64, Ddu64Core, Ddu64Node, DduEncodeStats, DduOptions, DduSecureConstructorOptions };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { D as Ddu64Core, a as DduSecureConstructorOptions, b as DduOptions, c as DduEncodeStats } from './core-ihIEWmI5.js';
2
- 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, y as DduProgressInfo, z as DduSetSymbol, A as DduSetSymbolInput, E as EncodingProfile, O as ObfuscationLayer, B as isDdu64Error } from './core-ihIEWmI5.js';
3
- export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-CotTuQ5X.js';
1
+ import { D as Ddu64Core, a as DduSecureConstructorOptions, b as DduOptions, c as DduEncodeStats } from './core-DCeItMgU.js';
2
+ 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, y as DduConstructorOptions, z as DduProgressInfo, A as DduSecureOptions, B as DduSetSymbol, E as DduSetSymbolInput, F as EncodingProfile, K as KeyDerivationAlgorithm, G as KeyDerivationOptions, O as ObfuscationLayer, P as PlatformAdapter, H as isDdu64Error } from './core-DCeItMgU.js';
3
+ export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-DmlvbjTB.js';
4
4
 
5
5
  /**
6
6
  * Node.js 전용 기본 Ddu64 래퍼.
@@ -11,9 +11,9 @@ export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as d
11
11
  * - Node.js Buffer를 반환하는 `decodeToBuffer` 및 `decodeToBufferAsync` 제공
12
12
  * - encode()에 Buffer 입력 허용 (Buffer는 Uint8Array를 확장)
13
13
  *
14
- * 기본 경로는 어댑터(zlib/crypto)를 주입하지 않습니다. 압축/암호화가 명시된 비동기 호출만
15
- * secure 래퍼를 동적 import하여 NodeAdapter 지연 주입합니다. 동기 secure 작업이 필요하면
16
- * secure 진입점(`@ddunigma/node/secure`)의 `Ddu64Secure`를 사용하세요.
14
+ * 기본 경로는 어댑터(zlib/crypto)를 정적 import하지 않습니다. 비동기 압축/암복호화가
15
+ * 실제로 실행될 NodeAdapter 동적 import해 현재 core 인스턴스에 주입합니다.
16
+ * 동기 secure 작업이 필요하면 `@ddunigma/node/secure`를 사용하세요.
17
17
  *
18
18
  * @module Ddu64Node
19
19
  */
@@ -44,14 +44,8 @@ declare class Ddu64Node extends Ddu64Core {
44
44
  * sync 디코드 3종을 모두 덮습니다(중복 override 불필요).
45
45
  */
46
46
  decodeToUint8Array(input: string, options?: DduOptions): Uint8Array;
47
- /** @group Async */
48
- encodeAsync(input: Uint8Array | string, options?: DduOptions): Promise<string>;
49
- /** @group Async */
50
- decodeToUint8ArrayAsync(input: string, options?: DduOptions): Promise<Uint8Array>;
51
47
  /** @group Introspection */
52
48
  getStats(input: Uint8Array | string, options?: DduOptions): DduEncodeStats;
53
- /** @group Introspection */
54
- getStatsAsync(input: Uint8Array | string, options?: DduOptions): Promise<DduEncodeStats>;
55
49
  /**
56
50
  * 인코딩된 문자열을 Node.js Buffer로 디코딩합니다.
57
51
  *
@@ -72,4 +66,4 @@ declare class Ddu64Node extends Ddu64Core {
72
66
  decodeToBufferAsync(input: string, options?: DduOptions): Promise<Buffer>;
73
67
  }
74
68
 
75
- export { Ddu64Node as Ddu64, Ddu64Core, Ddu64Node, DduEncodeStats };
69
+ export { Ddu64Node as Ddu64, Ddu64Core, Ddu64Node, DduEncodeStats, DduOptions, DduSecureConstructorOptions };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export{a as detectRuntime}from'./chunk-DVOLAE33.js';export{a as CharsetBuilder}from'./chunk-IZSFO3ET.js';import {a as a$1}from'./chunk-5VZELPTG.js';export{a as HangulObfuscationLayer,b as createEncoderObfuscationLayer}from'./chunk-5VZELPTG.js';import {i,b}from'./chunk-TCRCZHZC.js';export{i as Ddu64Core,a as DduSetSymbol}from'./chunk-TCRCZHZC.js';import {m}from'./chunk-IZK7KCU7.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 {a}from'./chunk-EI7MMDWY.js';var s=class extends i{static{a(this,"Ddu64Node");}#d;#e;#u;#t;#r;constructor(r,e,t){let o=b(r,e,t),n={...o.dduOptions,...o.dduChar!==void 0?{dduChar:o.dduChar}:{},...o.paddingChar!==void 0?{paddingChar:o.paddingChar}:{},obfuscationLayerFactory:o.dduOptions?.obfuscationLayerFactory??(p=>new a$1(p))};super(n),this.#d=n,this.#u=n.compress===true,this.#t=n.encryptionKey!==void 0,this.#r=n.adapter!==void 0;}encode(r,e){return this.#s("encode",e),super.encode(r,e)}decodeToUint8Array(r,e){return this.#s("decode",e),super.decodeToUint8Array(r,e)}async encodeAsync(r,e){return this.#i(e)?(await this.#o()).encodeAsync(r,e):super.encodeAsync(r,e)}async decodeToUint8ArrayAsync(r,e){return this.#i(e)?(await this.#o()).decodeToUint8ArrayAsync(r,e):super.decodeToUint8ArrayAsync(r,e)}getStats(r,e){return this.#s("encode",e,false),super.getStats(r,e)}getStatsAsync(r,e){return !this.#r&&this.#n(e)?this.#o().then(t=>t.getStatsAsync(r,e)):super.getStatsAsync(r,e)}decodeToBuffer(r,e){let t=this.decodeToUint8Array(r,e);return Buffer.from(t.buffer,t.byteOffset,t.byteLength)}async decodeToBufferAsync(r,e){let t=await this.decodeToUint8ArrayAsync(r,e);return Buffer.from(t.buffer,t.byteOffset,t.byteLength)}#o(){return this.#e||(this.#e=import('./Ddu64Secure-CRWKMJLL.js').then(({Ddu64Secure:r})=>new r(this.#d))),this.#e}#i(r){return this.#r?false:this.#n(r)||this.#t}#n(r){return (r?.compress??this.#u)===true}#s(r,e,t=true){if(!this.#r&&(this.#n(e)||t&&this.#t))throw new m("@ddunigma/node: use encodeAsync/decodeAsync/getStatsAsync, or @ddunigma/node/secure for sync secure options.",r)}};export{s as Ddu64,s as Ddu64Node};
1
+ import {a as a$1}from'./chunk-XVV2OPRV.js';export{a as HangulObfuscationLayer,b as createEncoderObfuscationLayer,c as detectRuntime}from'./chunk-XVV2OPRV.js';import {i,b}from'./chunk-B4QRMN45.js';export{j as CharsetBuilder,i as Ddu64Core,a as DduSetSymbol}from'./chunk-B4QRMN45.js';import {m}from'./chunk-IZK7KCU7.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 {a}from'./chunk-EI7MMDWY.js';var n=class extends i{static{a(this,"Ddu64Node");}#e;#o;#t;constructor(e,r,o){let t=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-YP22CLUP.js').then(({NodeAdapter:s})=>new s)),obfuscationLayerFactory:t.dduOptions?.obfuscationLayerFactory??(s=>new a$1(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 m("@ddunigma/node: use encodeAsync/decodeAsync/getStatsAsync, or @ddunigma/node/secure for sync secure options.",e)}};export{n as Ddu64,n as Ddu64Node};
@@ -1 +1 @@
1
- 'use strict';var chunkFQI54AXA_cjs=require('./chunk-FQI54AXA.cjs'),chunkEY5OURIG_cjs=require('./chunk-EY5OURIG.cjs'),chunk3TG2ZEF2_cjs=require('./chunk-3TG2ZEF2.cjs'),chunk6AYKT6DL_cjs=require('./chunk-6AYKT6DL.cjs'),chunk4247T4B7_cjs=require('./chunk-4247T4B7.cjs'),chunkA3OZJS5G_cjs=require('./chunk-A3OZJS5G.cjs'),chunkHUUB5BUS_cjs=require('./chunk-HUUB5BUS.cjs'),chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs');require('./chunk-JY2ZPBJK.cjs');var chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');async function I(){return new chunkHUUB5BUS_cjs.a}chunkBCUBYE76_cjs.a(I,"getAdapter");Object.defineProperty(exports,"createReadableDecodeStream",{enumerable:true,get:function(){return chunkFQI54AXA_cjs.b}});Object.defineProperty(exports,"createReadableEncodeStream",{enumerable:true,get:function(){return chunkFQI54AXA_cjs.a}});Object.defineProperty(exports,"detectRuntime",{enumerable:true,get:function(){return chunkEY5OURIG_cjs.a}});Object.defineProperty(exports,"CharsetBuilder",{enumerable:true,get:function(){return chunk3TG2ZEF2_cjs.a}});Object.defineProperty(exports,"Ddu64",{enumerable:true,get:function(){return chunk6AYKT6DL_cjs.a}});Object.defineProperty(exports,"Ddu64SecureBrowser",{enumerable:true,get:function(){return chunk6AYKT6DL_cjs.a}});Object.defineProperty(exports,"HangulObfuscationLayer",{enumerable:true,get:function(){return chunk4247T4B7_cjs.a}});Object.defineProperty(exports,"createEncoderObfuscationLayer",{enumerable:true,get:function(){return chunk4247T4B7_cjs.b}});Object.defineProperty(exports,"Ddu64Core",{enumerable:true,get:function(){return chunkA3OZJS5G_cjs.i}});Object.defineProperty(exports,"DduSetSymbol",{enumerable:true,get:function(){return chunkA3OZJS5G_cjs.a}});Object.defineProperty(exports,"BrowserAdapter",{enumerable:true,get:function(){return chunkHUUB5BUS_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.getAdapter=I;
1
+ 'use strict';var chunkDAHLP6QA_cjs=require('./chunk-DAHLP6QA.cjs'),chunkBUR4IORD_cjs=require('./chunk-BUR4IORD.cjs'),chunkJATMOMX5_cjs=require('./chunk-JATMOMX5.cjs'),chunkZMNWFYGY_cjs=require('./chunk-ZMNWFYGY.cjs'),chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs');require('./chunk-JY2ZPBJK.cjs');var chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');async function I(){return new chunkZMNWFYGY_cjs.a}chunkBCUBYE76_cjs.a(I,"getAdapter");Object.defineProperty(exports,"Ddu64",{enumerable:true,get:function(){return chunkDAHLP6QA_cjs.a}});Object.defineProperty(exports,"Ddu64SecureBrowser",{enumerable:true,get:function(){return chunkDAHLP6QA_cjs.a}});Object.defineProperty(exports,"createReadableDecodeStream",{enumerable:true,get:function(){return chunkDAHLP6QA_cjs.c}});Object.defineProperty(exports,"createReadableEncodeStream",{enumerable:true,get:function(){return chunkDAHLP6QA_cjs.b}});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,"BrowserAdapter",{enumerable:true,get:function(){return chunkZMNWFYGY_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.getAdapter=I;