@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.
- package/CHANGELOG.md +41 -2
- package/CONTRIBUTING.md +137 -0
- package/README.md +50 -37
- package/ROADMAP.md +12 -11
- package/dist/BrowserAdapter-FJYE5LZO.js +1 -0
- package/dist/BrowserAdapter-NXLXZCJX.cjs +1 -0
- package/dist/{ObfuscationLayer-CotTuQ5X.d.ts → ObfuscationLayer-C5TQHpYX.d.cts} +9 -11
- package/dist/{ObfuscationLayer-CK0ptcW-.d.cts → ObfuscationLayer-DmlvbjTB.d.ts} +9 -11
- package/dist/{WebStreams-CJyGMELL.d.ts → WebStreams-DY1ovJBp.d.cts} +5 -9
- package/dist/{WebStreams-BSCrvsT3.d.cts → WebStreams-DynLi09H.d.ts} +5 -9
- package/dist/browser.cjs +1 -1
- package/dist/browser.d.cts +11 -11
- package/dist/browser.d.ts +11 -11
- 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-ihIEWmI5.d.cts → core-DCeItMgU.d.cts} +28 -44
- package/dist/{core-ihIEWmI5.d.ts → core-DCeItMgU.d.ts} +28 -44
- 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 +7 -13
- package/dist/index.d.ts +7 -13
- 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 +33 -25
- package/package.json +22 -16
- package/dist/BrowserAdapter-A6RBN4N3.js +0 -1
- package/dist/BrowserAdapter-NWASGV3D.cjs +0 -1
- package/dist/Ddu64Secure-CRWKMJLL.js +0 -1
- package/dist/Ddu64Secure-VAMXBO3O.cjs +0 -1
- package/dist/Ddu64SecureBrowser-EZBTEXVI.cjs +0 -1
- package/dist/Ddu64SecureBrowser-FR3TZJQ7.js +0 -1
- package/dist/chunk-3TG2ZEF2.cjs +0 -1
- package/dist/chunk-4247T4B7.cjs +0 -1
- package/dist/chunk-5VZELPTG.js +0 -1
- package/dist/chunk-6AYKT6DL.cjs +0 -1
- package/dist/chunk-6ZYMNHFT.js +0 -1
- package/dist/chunk-A3OZJS5G.cjs +0 -9
- package/dist/chunk-DMUAPREO.cjs +0 -1
- package/dist/chunk-DVOLAE33.js +0 -1
- package/dist/chunk-EY5OURIG.cjs +0 -1
- package/dist/chunk-FQI54AXA.cjs +0 -1
- package/dist/chunk-HUUB5BUS.cjs +0 -1
- package/dist/chunk-IZSFO3ET.js +0 -1
- package/dist/chunk-LZFOWWT2.js +0 -1
- package/dist/chunk-Q7QV2G7V.js +0 -1
- package/dist/chunk-TCRCZHZC.js +0 -9
- package/dist/chunk-UNBJQMMP.js +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { B as BrowserAdapter } from './WebStreams-
|
|
2
|
-
export { D as Ddu64, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-
|
|
3
|
-
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, 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, w as DduBaseConstructorOptions, x as DduBaseOptions,
|
|
4
|
-
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-
|
|
1
|
+
import { B as BrowserAdapter } from './WebStreams-DY1ovJBp.cjs';
|
|
2
|
+
export { D as Ddu64, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-DY1ovJBp.cjs';
|
|
3
|
+
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, 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, w as DduBaseConstructorOptions, x as DduBaseOptions, y as DduConstructorOptions, c as DduEncodeStats, b as DduOptions, z as DduProgressInfo, a as DduSecureConstructorOptions, A as DduSecureOptions, 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';
|
|
4
|
+
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-C5TQHpYX.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Secure 진입점 (브라우저 조건 빌드).
|
package/dist/secure.browser.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { B as BrowserAdapter } from './WebStreams-
|
|
2
|
-
export { D as Ddu64, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-
|
|
3
|
-
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, 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, w as DduBaseConstructorOptions, x as DduBaseOptions,
|
|
4
|
-
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-
|
|
1
|
+
import { B as BrowserAdapter } from './WebStreams-DynLi09H.js';
|
|
2
|
+
export { D as Ddu64, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-DynLi09H.js';
|
|
3
|
+
export { C as CharSetConfig, d as CharSetInfo, e as CharsetBuilder, 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, w as DduBaseConstructorOptions, x as DduBaseOptions, y as DduConstructorOptions, c as DduEncodeStats, b as DduOptions, z as DduProgressInfo, a as DduSecureConstructorOptions, A as DduSecureOptions, 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';
|
|
4
|
+
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-DmlvbjTB.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Secure 진입점 (브라우저 조건 빌드).
|
package/dist/secure.browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{a as Ddu64,a as Ddu64SecureBrowser,c as createReadableDecodeStream,b as createReadableEncodeStream}from'./chunk-GR2WPLDK.js';export{a as HangulObfuscationLayer,b as createEncoderObfuscationLayer,c as detectRuntime}from'./chunk-XVV2OPRV.js';export{j as CharsetBuilder,i as Ddu64Core,a as DduSetSymbol}from'./chunk-B4QRMN45.js';import {a as a$1}from'./chunk-C2AT5XRJ.js';export{a as BrowserAdapter}from'./chunk-C2AT5XRJ.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-Q6SCBUV2.js';import {a}from'./chunk-EI7MMDWY.js';async function I(){return new a$1}a(I,"getAdapter");export{I as getAdapter};
|
package/dist/secure.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
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'),chunk76X5J2OF_cjs=require('./chunk-76X5J2OF.cjs');require('./chunk-JY2ZPBJK.cjs');var chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var n=class extends chunkJATMOMX5_cjs.i{static{chunkBCUBYE76_cjs.a(this,"Ddu64Secure");}constructor(r,t,e){let o=chunkJATMOMX5_cjs.b(r,t,e),m={...o.dduOptions,...o.dduChar!==void 0?{dduChar:o.dduChar}:{},...o.paddingChar!==void 0?{paddingChar:o.paddingChar}:{},adapterFactory:o.dduOptions?.adapterFactory??(()=>new chunk76X5J2OF_cjs.a),obfuscationLayerFactory:o.dduOptions?.obfuscationLayerFactory??(D=>new chunkBUR4IORD_cjs.a(D))};super(m);}decodeToBuffer(r,t){let e=this.decodeToUint8Array(r,t);return Buffer.from(e.buffer,e.byteOffset,e.byteLength)}async decodeToBufferAsync(r,t){let e=await this.decodeToUint8ArrayAsync(r,t);return Buffer.from(e.buffer,e.byteOffset,e.byteLength)}};async function k(){let s=chunkBUR4IORD_cjs.c();switch(s){case "node":{let{NodeAdapter:r}=await import('./NodeAdapter-4R7CNTHP.cjs');return new r}case "deno":case "bun":case "browser":case "edge":{let{BrowserAdapter:r}=await import('./BrowserAdapter-NXLXZCJX.cjs');return new r(s)}default:throw new chunkZTGECGM2_cjs.m("[ddunigma] No suitable crypto provider found. Detected runtime lacks both Node.js crypto module and Web Crypto API (SubtleCrypto).","adapter")}}chunkBCUBYE76_cjs.a(k,"getAdapter");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}});Object.defineProperty(exports,"NodeAdapter",{enumerable:true,get:function(){return chunk76X5J2OF_cjs.a}});exports.Ddu64=n;exports.Ddu64Secure=n;exports.getAdapter=k;
|
package/dist/secure.d.cts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { D as Ddu64Core, a as DduSecureConstructorOptions,
|
|
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,
|
|
3
|
-
export { B as BrowserAdapter, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-
|
|
4
|
-
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-
|
|
1
|
+
import { D as Ddu64Core, a as DduSecureConstructorOptions, A as DduSecureOptions, P as PlatformAdapter, G as KeyDerivationOptions } 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, c as DduEncodeStats, b as DduOptions, z as DduProgressInfo, B as DduSetSymbol, E as DduSetSymbolInput, I as DduStreamOptions, F as EncodingProfile, K as KeyDerivationAlgorithm, O as ObfuscationLayer, H as isDdu64Error } from './core-DCeItMgU.cjs';
|
|
3
|
+
export { B as BrowserAdapter, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-DY1ovJBp.cjs';
|
|
4
|
+
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-C5TQHpYX.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Node.js 전용 secure Ddu64 래퍼.
|
|
8
8
|
*
|
|
9
9
|
* Ddu64Core를 확장하여 압축/암호화/체크섬(배터리 포함)과 Node.js Buffer를 지원합니다:
|
|
10
|
-
* - NodeAdapter 자동 주입 (zlib/crypto) →
|
|
10
|
+
* - NodeAdapter 자동 주입 (zlib/crypto) → 압축/암호화 사용 가능
|
|
11
|
+
* - 코어 CRC32 체크섬 사용 가능
|
|
11
12
|
* - HangulObfuscationLayer 자동 주입 → 한글 난독화 사용 가능
|
|
12
13
|
* - Node.js Buffer를 반환하는 `decodeToBuffer` 및 `decodeToBufferAsync` 제공
|
|
13
14
|
* - encode()에 Buffer 입력 허용 (Buffer는 Uint8Array를 확장)
|
|
14
15
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* (`@ddunigma/node/secure`)으로 이전되었습니다.
|
|
16
|
+
* 기본 진입점도 비동기 secure 작업을 lazy adapter로 처리합니다. 이 진입점은 NodeAdapter를
|
|
17
|
+
* 정적으로 포함해 동기 압축·암복호화와 Web Streams까지 명시적으로 사용하는 경로입니다.
|
|
18
18
|
*
|
|
19
19
|
* @module Ddu64Secure
|
|
20
20
|
*/
|
|
@@ -22,7 +22,7 @@ export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as d
|
|
|
22
22
|
/**
|
|
23
23
|
* Node.js 전용 secure Ddu64 인코더/디코더.
|
|
24
24
|
*
|
|
25
|
-
* Ddu64Core를 래핑하여 자동 NodeAdapter 주입(
|
|
25
|
+
* Ddu64Core를 래핑하여 자동 NodeAdapter 주입(압축/암호화)과
|
|
26
26
|
* 하위 호환성을 위한 Buffer 반환 디코드 메서드를 제공합니다.
|
|
27
27
|
*
|
|
28
28
|
* @example
|
package/dist/secure.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { D as Ddu64Core, a as DduSecureConstructorOptions,
|
|
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,
|
|
3
|
-
export { B as BrowserAdapter, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-
|
|
4
|
-
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-
|
|
1
|
+
import { D as Ddu64Core, a as DduSecureConstructorOptions, A as DduSecureOptions, P as PlatformAdapter, G as KeyDerivationOptions } 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, c as DduEncodeStats, b as DduOptions, z as DduProgressInfo, B as DduSetSymbol, E as DduSetSymbolInput, I as DduStreamOptions, F as EncodingProfile, K as KeyDerivationAlgorithm, O as ObfuscationLayer, H as isDdu64Error } from './core-DCeItMgU.js';
|
|
3
|
+
export { B as BrowserAdapter, D as Ddu64SecureBrowser, c as createReadableDecodeStream, a as createReadableEncodeStream } from './WebStreams-DynLi09H.js';
|
|
4
|
+
export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as detectRuntime } from './ObfuscationLayer-DmlvbjTB.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Node.js 전용 secure Ddu64 래퍼.
|
|
8
8
|
*
|
|
9
9
|
* Ddu64Core를 확장하여 압축/암호화/체크섬(배터리 포함)과 Node.js Buffer를 지원합니다:
|
|
10
|
-
* - NodeAdapter 자동 주입 (zlib/crypto) →
|
|
10
|
+
* - NodeAdapter 자동 주입 (zlib/crypto) → 압축/암호화 사용 가능
|
|
11
|
+
* - 코어 CRC32 체크섬 사용 가능
|
|
11
12
|
* - HangulObfuscationLayer 자동 주입 → 한글 난독화 사용 가능
|
|
12
13
|
* - Node.js Buffer를 반환하는 `decodeToBuffer` 및 `decodeToBufferAsync` 제공
|
|
13
14
|
* - encode()에 Buffer 입력 허용 (Buffer는 Uint8Array를 확장)
|
|
14
15
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* (`@ddunigma/node/secure`)으로 이전되었습니다.
|
|
16
|
+
* 기본 진입점도 비동기 secure 작업을 lazy adapter로 처리합니다. 이 진입점은 NodeAdapter를
|
|
17
|
+
* 정적으로 포함해 동기 압축·암복호화와 Web Streams까지 명시적으로 사용하는 경로입니다.
|
|
18
18
|
*
|
|
19
19
|
* @module Ddu64Secure
|
|
20
20
|
*/
|
|
@@ -22,7 +22,7 @@ export { H as HangulObfuscationLayer, c as createEncoderObfuscationLayer, d as d
|
|
|
22
22
|
/**
|
|
23
23
|
* Node.js 전용 secure Ddu64 인코더/디코더.
|
|
24
24
|
*
|
|
25
|
-
* Ddu64Core를 래핑하여 자동 NodeAdapter 주입(
|
|
25
|
+
* Ddu64Core를 래핑하여 자동 NodeAdapter 주입(압축/암호화)과
|
|
26
26
|
* 하위 호환성을 위한 Buffer 반환 디코드 메서드를 제공합니다.
|
|
27
27
|
*
|
|
28
28
|
* @example
|
package/dist/secure.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as
|
|
1
|
+
export{a as Ddu64SecureBrowser,c as createReadableDecodeStream,b as createReadableEncodeStream}from'./chunk-GR2WPLDK.js';import {a as a$1,c}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';export{a as BrowserAdapter}from'./chunk-C2AT5XRJ.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 as a$2}from'./chunk-7EPVCA2F.js';export{a as NodeAdapter}from'./chunk-7EPVCA2F.js';import'./chunk-Q6SCBUV2.js';import {a}from'./chunk-EI7MMDWY.js';var n=class extends i{static{a(this,"Ddu64Secure");}constructor(r,t,e){let o=b(r,t,e),m={...o.dduOptions,...o.dduChar!==void 0?{dduChar:o.dduChar}:{},...o.paddingChar!==void 0?{paddingChar:o.paddingChar}:{},adapterFactory:o.dduOptions?.adapterFactory??(()=>new a$2),obfuscationLayerFactory:o.dduOptions?.obfuscationLayerFactory??(D=>new a$1(D))};super(m);}decodeToBuffer(r,t){let e=this.decodeToUint8Array(r,t);return Buffer.from(e.buffer,e.byteOffset,e.byteLength)}async decodeToBufferAsync(r,t){let e=await this.decodeToUint8ArrayAsync(r,t);return Buffer.from(e.buffer,e.byteOffset,e.byteLength)}};async function k(){let s=c();switch(s){case "node":{let{NodeAdapter:r}=await import('./NodeAdapter-YP22CLUP.js');return new r}case "deno":case "bun":case "browser":case "edge":{let{BrowserAdapter:r}=await import('./BrowserAdapter-FJYE5LZO.js');return new r(s)}default:throw new m("[ddunigma] No suitable crypto provider found. Detected runtime lacks both Node.js crypto module and Web Crypto API (SubtleCrypto).","adapter")}}a(k,"getAdapter");export{n as Ddu64,n as Ddu64Secure,k as getAdapter};
|
package/docs/REFERENCE.md
CHANGED
|
@@ -66,8 +66,13 @@ charset 문자와 `paddingChar`는 각각 단일 UTF-16 코드 유닛이어야
|
|
|
66
66
|
| `requireEncryption` | `boolean` | 키 사용 시 `true` | 키가 있는 decoder에서 평문 payload 거부 |
|
|
67
67
|
| `onProgress` | `(info: DduProgressInfo) => void` | 미사용 | 처리 진행률 콜백 |
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
`
|
|
69
|
+
`maxEncodedChars`의 자동값은 `maxDecodedBytes * 4 + 1024`입니다. 호출 옵션에서
|
|
70
|
+
`maxDecodedBytes`를 더 작게 지정하면 명시적인 `maxEncodedChars`가 없는 한 원시 입력 상한도
|
|
71
|
+
함께 낮아집니다. `chunkSize: 1`과 긴 사용자 구분자처럼 조밀한 청킹을 사용한다면
|
|
72
|
+
`maxEncodedChars`를 별도로 지정하세요.
|
|
73
|
+
|
|
74
|
+
`@ddunigma/node`와 `@ddunigma/node/browser`는 비동기 파이프라인이 실제 압축·암복호화
|
|
75
|
+
단계에 도달할 때만 플랫폼 adapter를 동적 import해 현재 core에 주입합니다. 동기
|
|
71
76
|
압축/암호화는 `@ddunigma/node/secure`를 사용하세요. `checksum`/`checksumScope`/청킹/
|
|
72
77
|
난독화는 플랫폼 어댑터 없이도 동작합니다.
|
|
73
78
|
|
|
@@ -116,11 +121,13 @@ const decoded = await ddu.decodeAsync(encoded);
|
|
|
116
121
|
```
|
|
117
122
|
|
|
118
123
|
동기 압축/암호화나 Web Streams가 필요하면 `@ddunigma/node/secure`를 사용합니다.
|
|
119
|
-
|
|
120
|
-
|
|
124
|
+
압축 여부와 알고리즘은 footer에서 판별하므로 decode 쪽에 `compress` 옵션을 반복할
|
|
125
|
+
필요가 없습니다.
|
|
121
126
|
|
|
122
127
|
복호화에는 인코딩에 사용한 `encryptionKey`와 키 파생 설정(`algorithm`/`salt`/`iterations`)이
|
|
123
128
|
동일하게 필요합니다. 키 파생 파라미터는 wire format에 기록되지 않습니다.
|
|
129
|
+
저엔트로피 비밀번호를 사용하면 application-specific `salt`와 명시적 PBKDF2 iteration을
|
|
130
|
+
설정하세요. 기본 210,000회·고정 fallback salt는 기존 데이터 호환을 위해 유지됩니다.
|
|
124
131
|
|
|
125
132
|
`encryptionKey`가 설정된 인스턴스는 기본적으로 암호화 footer가 없는 payload를 거부합니다.
|
|
126
133
|
레거시 평문을 같은 인스턴스로 읽어야 하면 해당 decode 호출에 `requireEncryption: false`를
|
|
@@ -141,8 +148,9 @@ const decoded = ddu.decode(encoded);
|
|
|
141
148
|
|
|
142
149
|
## 한글 난독화
|
|
143
150
|
|
|
144
|
-
난독화는 암호화 키 없이 기본 진입점에서 바로 사용할 수 있습니다.
|
|
145
|
-
블록(U+AC00–U+D7A3)으로 가역 변환합니다.
|
|
151
|
+
난독화는 암호화 키 없이 기본 진입점에서 바로 사용할 수 있습니다. charset payload를
|
|
152
|
+
한글 음절 블록(U+AC00–U+D7A3)으로 1:1 가역 변환합니다. Checksum을 함께 사용하면
|
|
153
|
+
checksum marker와 값은 난독화 밖의 ASCII suffix로 남습니다.
|
|
146
154
|
|
|
147
155
|
```typescript
|
|
148
156
|
import { Ddu64 } from "@ddunigma/node";
|
|
@@ -152,14 +160,14 @@ const encoded = ddu.encode("재미있는 난독화");
|
|
|
152
160
|
const decoded = ddu.decode(encoded);
|
|
153
161
|
```
|
|
154
162
|
|
|
155
|
-
키 없는 난독화는 암호화가
|
|
156
|
-
`
|
|
163
|
+
키 없는 난독화는 암호화가 아니며 입력 빈도를 숨기지 않습니다. 기밀성이 필요하면
|
|
164
|
+
`encryptionKey`와 함께 사용하세요.
|
|
157
165
|
|
|
158
166
|
## 브라우저와 Workers
|
|
159
167
|
|
|
160
|
-
기본 브라우저 진입점(`@ddunigma/node/browser`)은
|
|
161
|
-
브라우저에서 압축/암호화가 필요하면
|
|
162
|
-
해당
|
|
168
|
+
기본 브라우저 진입점(`@ddunigma/node/browser`)은 codec·체크섬·난독화를 동기로 제공합니다.
|
|
169
|
+
브라우저에서 압축/암호화가 필요하면 같은 진입점의 비동기 메서드를 쓰면 됩니다.
|
|
170
|
+
해당 연산이 실제로 필요한 시점에만 BrowserAdapter(WebCrypto·CompressionStream 기반)를
|
|
163
171
|
동적 import합니다.
|
|
164
172
|
|
|
165
173
|
```typescript
|
|
@@ -194,16 +202,17 @@ const stats = ddu.getStats("payload");
|
|
|
194
202
|
const asyncStats = await ddu.getStatsAsync("payload", { compress: true });
|
|
195
203
|
```
|
|
196
204
|
|
|
197
|
-
|
|
205
|
+
브라우저의 압축 통계는 root의 `getStatsAsync`를 사용합니다. Web Streams는
|
|
206
|
+
`@ddunigma/node/secure`를 사용합니다.
|
|
198
207
|
|
|
199
208
|
## 진입점
|
|
200
209
|
|
|
201
|
-
| 진입점 | 노출 `Ddu64`
|
|
202
|
-
| ------------------------ |
|
|
203
|
-
| `@ddunigma/node` | `Ddu64Node`
|
|
204
|
-
| `@ddunigma/node/browser` | `Ddu64Browser`
|
|
205
|
-
| `@ddunigma/node/secure` | `Ddu64Secure`
|
|
206
|
-
| `@ddunigma/node/core` | `Ddu64Core`
|
|
210
|
+
| 진입점 | 노출 `Ddu64` | 기능 | 용도 |
|
|
211
|
+
| ------------------------ | -------------------------------------------------- | ------------------------------------------ | ---------------------------- |
|
|
212
|
+
| `@ddunigma/node` | `Ddu64Node` | codec/checksum/난독화 + async adapter lazy | Node 기본 |
|
|
213
|
+
| `@ddunigma/node/browser` | `Ddu64Browser` | codec/checksum/난독화 + async adapter lazy | 브라우저/Workers 기본 |
|
|
214
|
+
| `@ddunigma/node/secure` | Node: `Ddu64Secure`, browser: `Ddu64SecureBrowser` | sync/async 압축/암호화/체크섬/Web Streams | 보안·압축 배터리 명시 사용 |
|
|
215
|
+
| `@ddunigma/node/core` | `Ddu64Core` | 플랫폼 독립 codec/checksum | 어댑터/난독 미포함 최소 번들 |
|
|
207
216
|
|
|
208
217
|
```typescript
|
|
209
218
|
import { Ddu64 as NodeDdu64 } from "@ddunigma/node";
|
|
@@ -220,21 +229,20 @@ import { Ddu64 as CoreDdu64 } from "@ddunigma/node/core";
|
|
|
220
229
|
```typescript
|
|
221
230
|
import { Ddu64Core, DduSetSymbol } from "@ddunigma/node/core";
|
|
222
231
|
|
|
223
|
-
const enc = new Ddu64Core(
|
|
232
|
+
const enc = new Ddu64Core({ dduSetSymbol: DduSetSymbol.DDU });
|
|
224
233
|
const encoded = enc.encode("hello");
|
|
225
234
|
const decoded = enc.decode(encoded);
|
|
226
235
|
```
|
|
227
236
|
|
|
228
|
-
`/core`에서 압축·암호화를 쓰려면 `
|
|
229
|
-
|
|
237
|
+
`/core`에서 압축·암호화를 쓰려면 공개 `PlatformAdapter`를 `adapter`로 직접 주입하세요.
|
|
238
|
+
난독화까지 필요하면 내부 팩토리를 주입하기보다 root 진입점을 사용하는 편이 안정적입니다.
|
|
230
239
|
|
|
231
240
|
```typescript
|
|
232
241
|
import { Ddu64Core } from "@ddunigma/node/core";
|
|
233
|
-
import { NodeAdapter
|
|
242
|
+
import { NodeAdapter } from "@ddunigma/node/secure";
|
|
234
243
|
|
|
235
|
-
const enc = new Ddu64Core(
|
|
244
|
+
const enc = new Ddu64Core({
|
|
236
245
|
encryptionKey: "secret",
|
|
237
|
-
|
|
238
|
-
obfuscationLayerFactory: (alphabet) => new HangulObfuscationLayer(alphabet),
|
|
246
|
+
adapter: new NodeAdapter(),
|
|
239
247
|
});
|
|
240
248
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ddunigma/node",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.2",
|
|
4
4
|
"main": "dist/index.cjs",
|
|
5
5
|
"module": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
"gen:scoped-checksum-vectors": "node --import tsx scripts/gen-scoped-checksum-vectors.ts",
|
|
20
20
|
"pack:check": "node scripts/verify-pack.mjs",
|
|
21
21
|
"smoke": "node scripts/runtime-smoke.mjs",
|
|
22
|
-
"
|
|
22
|
+
"smoke:web": "node scripts/runtime-web-smoke.mjs",
|
|
23
|
+
"verify": "pnpm format:check && pnpm typecheck && pnpm lint && pnpm knip && pnpm build && pnpm test:coverage && pnpm size && pnpm pack:check && pnpm smoke && pnpm smoke:web",
|
|
23
24
|
"prepublishOnly": "pnpm verify",
|
|
24
25
|
"knip": "knip",
|
|
25
26
|
"size": "size-limit",
|
|
@@ -27,9 +28,10 @@
|
|
|
27
28
|
"test:watch": "vitest",
|
|
28
29
|
"test:coverage": "vitest run --coverage",
|
|
29
30
|
"typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
|
|
30
|
-
"lint": "eslint --max-warnings=0 src scripts eslint.config.mjs tsup.config.ts vitest.config.ts",
|
|
31
|
-
"lint:fix": "eslint --max-warnings=0 src scripts eslint.config.mjs tsup.config.ts vitest.config.ts --fix",
|
|
32
|
-
"format": "prettier --write
|
|
31
|
+
"lint": "eslint --max-warnings=0 src test scripts benchmarks eslint.config.mjs tsup.config.ts vitest.config.ts",
|
|
32
|
+
"lint:fix": "eslint --max-warnings=0 src test scripts benchmarks eslint.config.mjs tsup.config.ts vitest.config.ts --fix",
|
|
33
|
+
"format": "prettier --write . --ignore-path .gitignore --ignore-path .prettierignore",
|
|
34
|
+
"format:check": "prettier --check . --ignore-path .gitignore --ignore-path .prettierignore"
|
|
33
35
|
},
|
|
34
36
|
"exports": {
|
|
35
37
|
".": {
|
|
@@ -130,6 +132,7 @@
|
|
|
130
132
|
},
|
|
131
133
|
"files": [
|
|
132
134
|
"CHANGELOG.md",
|
|
135
|
+
"CONTRIBUTING.md",
|
|
133
136
|
"ROADMAP.md",
|
|
134
137
|
"docs/REFERENCE.md",
|
|
135
138
|
"dist",
|
|
@@ -139,12 +142,16 @@
|
|
|
139
142
|
"type": "git",
|
|
140
143
|
"url": "git+https://github.com/parkjh2568/ddunigma-node.git"
|
|
141
144
|
},
|
|
145
|
+
"homepage": "https://github.com/parkjh2568/ddunigma-node#readme",
|
|
146
|
+
"bugs": {
|
|
147
|
+
"url": "https://github.com/parkjh2568/ddunigma-node/issues"
|
|
148
|
+
},
|
|
142
149
|
"publishConfig": {
|
|
143
150
|
"access": "public"
|
|
144
151
|
},
|
|
145
152
|
"author": "parkjh2568",
|
|
146
153
|
"license": "BSD-2-Clause",
|
|
147
|
-
"description": "
|
|
154
|
+
"description": "Zero-dependency custom-charset codec with reversible Hangul obfuscation and optional compression and encryption",
|
|
148
155
|
"devDependencies": {
|
|
149
156
|
"@eslint/js": "^10.0.1",
|
|
150
157
|
"@size-limit/preset-small-lib": "^12.1.0",
|
|
@@ -164,15 +171,14 @@
|
|
|
164
171
|
"vitest": "^4.1.8"
|
|
165
172
|
},
|
|
166
173
|
"keywords": [
|
|
167
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
172
|
-
"
|
|
173
|
-
"
|
|
174
|
-
"
|
|
175
|
-
"
|
|
176
|
-
"decode"
|
|
174
|
+
"base64",
|
|
175
|
+
"codec",
|
|
176
|
+
"compression",
|
|
177
|
+
"custom-charset",
|
|
178
|
+
"encoding",
|
|
179
|
+
"hangul",
|
|
180
|
+
"obfuscation",
|
|
181
|
+
"typescript",
|
|
182
|
+
"zero-dependency"
|
|
177
183
|
]
|
|
178
184
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{a as BrowserAdapter}from'./chunk-6ZYMNHFT.js';import'./chunk-IZK7KCU7.js';import'./chunk-Q6SCBUV2.js';import'./chunk-EI7MMDWY.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkHUUB5BUS_cjs=require('./chunk-HUUB5BUS.cjs');require('./chunk-ZTGECGM2.cjs'),require('./chunk-JY2ZPBJK.cjs'),require('./chunk-BCUBYE76.cjs');Object.defineProperty(exports,"BrowserAdapter",{enumerable:true,get:function(){return chunkHUUB5BUS_cjs.a}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{a as Ddu64Secure}from'./chunk-UNBJQMMP.js';import'./chunk-5VZELPTG.js';import'./chunk-TCRCZHZC.js';import'./chunk-IZK7KCU7.js';import'./chunk-7EPVCA2F.js';import'./chunk-Q6SCBUV2.js';import'./chunk-EI7MMDWY.js';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkDMUAPREO_cjs=require('./chunk-DMUAPREO.cjs');require('./chunk-4247T4B7.cjs'),require('./chunk-A3OZJS5G.cjs'),require('./chunk-ZTGECGM2.cjs'),require('./chunk-76X5J2OF.cjs'),require('./chunk-JY2ZPBJK.cjs'),require('./chunk-BCUBYE76.cjs');Object.defineProperty(exports,"Ddu64Secure",{enumerable:true,get:function(){return chunkDMUAPREO_cjs.a}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunk6AYKT6DL_cjs=require('./chunk-6AYKT6DL.cjs');require('./chunk-4247T4B7.cjs'),require('./chunk-A3OZJS5G.cjs'),require('./chunk-HUUB5BUS.cjs'),require('./chunk-ZTGECGM2.cjs'),require('./chunk-JY2ZPBJK.cjs'),require('./chunk-BCUBYE76.cjs');Object.defineProperty(exports,"Ddu64SecureBrowser",{enumerable:true,get:function(){return chunk6AYKT6DL_cjs.a}});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{a as Ddu64SecureBrowser}from'./chunk-LZFOWWT2.js';import'./chunk-5VZELPTG.js';import'./chunk-TCRCZHZC.js';import'./chunk-6ZYMNHFT.js';import'./chunk-IZK7KCU7.js';import'./chunk-Q6SCBUV2.js';import'./chunk-EI7MMDWY.js';
|
package/dist/chunk-3TG2ZEF2.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var h=class s{static{chunkBCUBYE76_cjs.a(this,"CharsetBuilder");}chars=[];constructor(){}static create(){return new s}static fromUnicodeRange(r,e){return new s().addUnicodeRange(r,e)}static fromString(r){return new s().addString(r)}static base64(){return new s().addString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")}static base32(){return new s().addString("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567")}static uppercase(){return s.fromUnicodeRange(65,90)}static lowercase(){return s.fromUnicodeRange(97,122)}static digits(){return s.fromUnicodeRange(48,57)}static hangulJamo(){return new s().addUnicodeRange(4352,4370).addUnicodeRange(4449,4469).addUnicodeRange(4520,4546)}addUnicodeRange(r,e){if(!Number.isInteger(r)||!Number.isInteger(e)||r<0||e>1114111||r>e)throw new RangeError("Unicode range must use integer code points with 0 <= start <= end <= 0x10FFFF");for(let t=r;t<=e;t++)this.chars.push(String.fromCodePoint(t));return this}addString(r){return typeof r=="string"?this.chars.push(...r):this.chars.push(...r),this}add(...r){return this.chars.push(...r),this}excludeConfusing(){let r=new Set(["0","O","o","1","l","I","i","|","L"]);return this.chars=this.chars.filter(e=>!r.has(e)),this}exclude(...r){let e=new Set(r);return this.chars=this.chars.filter(t=>!e.has(t)),this}excludeUrlUnsafe(){let r=new Set(["+","/","=","?","&","#","%"," "]);return this.chars=this.chars.filter(e=>!r.has(e)),this}unique(){return this.chars=[...new Set(this.chars)],this}shuffle(r){let e=r!==void 0?this.seededRandom(r):Math.random;for(let t=this.chars.length-1;t>0;t--){let i=Math.floor(e()*(t+1));[this.chars[t],this.chars[i]]=[this.chars[i],this.chars[t]];}return this}seededRandom(r){let e=r|0||1;return ()=>(e^=e<<13,e^=e>>17,e^=e<<5,(e>>>0)/4294967296)}limit(r){if(!Number.isSafeInteger(r)||r<0)throw new RangeError("Charset limit must be a non-negative safe integer");return this.chars=this.chars.slice(0,r),this}limitToPowerOfTwo(){let r=this.chars.length;if(r===0)return this;let e=1<<Math.floor(Math.log2(r));return this.chars=this.chars.slice(0,e),this}sort(){return this.chars.sort(),this}reverse(){return this.chars.reverse(),this}get length(){return this.chars.length}buildString(){return this.chars.join("")}build(){return [...this.chars]}buildWithPadding(r){let e=[...this.chars],t=r;if(!t){let i=["=",".","_","-","~","!"];for(let n of i)if(!e.includes(n)){t=n;break}if(!t)throw new Error("Cannot find suitable padding character")}if(t.length!==1)throw new Error("Padding character must be one UTF-16 code unit");if(e.includes(t))throw new Error("Padding character must not appear in charset");return {charset:e,padding:t}}};exports.a=h;
|
package/dist/chunk-4247T4B7.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkA3OZJS5G_cjs=require('./chunk-A3OZJS5G.cjs'),chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs'),chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var i=44032,h=55203,c=h-i+1;function u(t){if(t.length===0)throw new chunkZTGECGM2_cjs.n("[Ddu64 obfuscation] Alphabet must not be empty.");if(t.length>c)throw new chunkZTGECGM2_cjs.n(`[Ddu64 obfuscation] Alphabet size (${t.length}) exceeds available Hangul syllables (${c}).`);let r=Math.floor(c/t.length),n=new Map;for(let e=0;e<t.length;e++)n.set(t[e],e);return {alphabet:t,syllablesPerChar:r,charToIndex:n}}chunkBCUBYE76_cjs.a(u,"buildSyllableMap");function g(t,r,n){let e=i+t*n.syllablesPerChar,o=r%n.syllablesPerChar;return e+o}chunkBCUBYE76_cjs.a(g,"charToSyllable");function d(t,r){if(t<i||t>h)return -1;let n=t-i,e=Math.floor(n/r.syllablesPerChar);return e>=r.alphabet.length?-1:e}chunkBCUBYE76_cjs.a(d,"syllableToCharIndex");var f=class{static{chunkBCUBYE76_cjs.a(this,"HangulObfuscationLayer");}config;constructor(r){this.config=u(r);}obfuscate(r){if(r.length===0)return "";let n=new Array(r.length);for(let e=0;e<r.length;e++){let o=r[e],s=this.config.charToIndex.get(o);if(s===void 0)throw new chunkZTGECGM2_cjs.n(`[Ddu64 obfuscation] Character "${o}" (U+${o.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase()}) not found in obfuscation alphabet.`);let p=g(s,e,this.config);n[e]=String.fromCharCode(p);}return n.join("")}deobfuscate(r){if(r.length===0)return "";let n=new Array(r.length);for(let e=0;e<r.length;e++){let o=r.charCodeAt(e),s=d(o,this.config);if(s===-1)throw new chunkZTGECGM2_cjs.n(`[Ddu64 obfuscation] Invalid syllable at position ${e}: U+${o.toString(16).padStart(4,"0").toUpperCase()} is not in the mapped range.`);n[e]=this.config.alphabet[s];}return n.join("")}};function A(t,r){return new f(chunkA3OZJS5G_cjs.g(t,r))}chunkBCUBYE76_cjs.a(A,"createEncoderObfuscationLayer");exports.a=f;exports.b=A;
|
package/dist/chunk-5VZELPTG.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {g as g$1}from'./chunk-TCRCZHZC.js';import {n}from'./chunk-IZK7KCU7.js';import {a}from'./chunk-EI7MMDWY.js';var i=44032,h=55203,c=h-i+1;function u(t){if(t.length===0)throw new n("[Ddu64 obfuscation] Alphabet must not be empty.");if(t.length>c)throw new n(`[Ddu64 obfuscation] Alphabet size (${t.length}) exceeds available Hangul syllables (${c}).`);let r=Math.floor(c/t.length),n$1=new Map;for(let e=0;e<t.length;e++)n$1.set(t[e],e);return {alphabet:t,syllablesPerChar:r,charToIndex:n$1}}a(u,"buildSyllableMap");function g(t,r,n){let e=i+t*n.syllablesPerChar,o=r%n.syllablesPerChar;return e+o}a(g,"charToSyllable");function d(t,r){if(t<i||t>h)return -1;let n=t-i,e=Math.floor(n/r.syllablesPerChar);return e>=r.alphabet.length?-1:e}a(d,"syllableToCharIndex");var f=class{static{a(this,"HangulObfuscationLayer");}config;constructor(r){this.config=u(r);}obfuscate(r){if(r.length===0)return "";let n$1=new Array(r.length);for(let e=0;e<r.length;e++){let o=r[e],s=this.config.charToIndex.get(o);if(s===void 0)throw new n(`[Ddu64 obfuscation] Character "${o}" (U+${o.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase()}) not found in obfuscation alphabet.`);let p=g(s,e,this.config);n$1[e]=String.fromCharCode(p);}return n$1.join("")}deobfuscate(r){if(r.length===0)return "";let n$1=new Array(r.length);for(let e=0;e<r.length;e++){let o=r.charCodeAt(e),s=d(o,this.config);if(s===-1)throw new n(`[Ddu64 obfuscation] Invalid syllable at position ${e}: U+${o.toString(16).padStart(4,"0").toUpperCase()} is not in the mapped range.`);n$1[e]=this.config.alphabet[s];}return n$1.join("")}};function A(t,r){return new f(g$1(t,r))}a(A,"createEncoderObfuscationLayer");export{f as a,A as b};
|
package/dist/chunk-6AYKT6DL.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunk4247T4B7_cjs=require('./chunk-4247T4B7.cjs'),chunkA3OZJS5G_cjs=require('./chunk-A3OZJS5G.cjs'),chunkHUUB5BUS_cjs=require('./chunk-HUUB5BUS.cjs'),chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var s=class extends chunkA3OZJS5G_cjs.i{static{chunkBCUBYE76_cjs.a(this,"Ddu64SecureBrowser");}constructor(a,u,p){let r=chunkA3OZJS5G_cjs.b(a,u,p),i={...r.dduOptions,...r.dduChar!==void 0?{dduChar:r.dduChar}:{},...r.paddingChar!==void 0?{paddingChar:r.paddingChar}:{},adapter:r.dduOptions?.adapter,adapterFactory:r.dduOptions?.adapterFactory??(()=>new chunkHUUB5BUS_cjs.a),obfuscationLayerFactory:r.dduOptions?.obfuscationLayerFactory??(c=>new chunk4247T4B7_cjs.a(c))};super(i);}};exports.a=s;
|
package/dist/chunk-6ZYMNHFT.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {m as m$1}from'./chunk-IZK7KCU7.js';import {a as a$1,d,b,e}from'./chunk-Q6SCBUV2.js';import {a}from'./chunk-EI7MMDWY.js';var g=new Map;function m(n){if(n.buffer instanceof ArrayBuffer)return n.byteOffset===0&&n.byteLength===n.buffer.byteLength?n.buffer:n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength);let e=new Uint8Array(n.byteLength);return e.set(n),e.buffer}a(m,"toArrayBuffer");function D(n){let e=g.get(n);if(e!==void 0)return e;if(typeof CompressionStream>"u"||typeof DecompressionStream>"u")return false;try{return new CompressionStream(n),new DecompressionStream(n),g.set(n,!0),!0}catch{return false}}a(D,"supportsCompressionFormat");function f(n,e){if(!D(n)){let s=n==="brotli"?"Brotli":"Deflate raw";throw new m$1(`[Ddu64 ${e}] ${s} ${e}ion is unsupported in the current runtime. CompressionStream/DecompressionStream does not support "${n}".`,e)}return n}a(f,"requireCompressionFormat");var U=class{static{a(this,"BrowserAdapter");}runtime;constructor(e="browser"){this.runtime=e;}async deriveKey(e$1,s){let r=new TextEncoder().encode(e$1);if(a$1(s)==="pbkdf2"){let i=await crypto.subtle.importKey("raw",r,"PBKDF2",false,["deriveBits"]),a=await crypto.subtle.deriveBits({name:"PBKDF2",salt:e(s?.salt),iterations:b(s?.iterations),hash:d(s?.hash)},i,256);return new Uint8Array(a)}let c=await crypto.subtle.digest("SHA-256",r);return new Uint8Array(c)}async encrypt(e,s,t){let r=crypto.getRandomValues(new Uint8Array(12)),c=await crypto.subtle.importKey("raw",m(s),{name:"AES-GCM"},false,["encrypt"]),i={name:"AES-GCM",iv:r,tagLength:128};t&&t.length>0&&(i.additionalData=m(t));let a=await crypto.subtle.encrypt(i,c,m(e)),o=new Uint8Array(a),y=o.subarray(0,o.length-16),d=o.subarray(o.length-16),p=new Uint8Array(28+y.length);return p.set(r,0),p.set(d,12),p.set(y,28),p}async decrypt(e,s,t){if(e.length<28)throw new Error("[Ddu64 decrypt] Encrypted data is invalid. Payload must be at least 28 bytes (12 IV + 16 authTag + ciphertext).");let r=e.subarray(0,12),c=e.subarray(12,28),i=e.subarray(28),a=new Uint8Array(i.length+16);a.set(i,0),a.set(c,i.length);let o=await crypto.subtle.importKey("raw",m(s),{name:"AES-GCM"},false,["decrypt"]);try{let y={name:"AES-GCM",iv:m(r),tagLength:128};t&&t.length>0&&(y.additionalData=m(t));let d=await crypto.subtle.decrypt(y,o,m(a));return new Uint8Array(d)}catch{throw new Error("[Ddu64 decrypt] Decryption failed: data tampering or incorrect key.")}}randomBytes(e){return crypto.getRandomValues(new Uint8Array(e))}async deflate(e,s){if(typeof CompressionStream>"u")throw new m$1("[Ddu64 compress] Deflate compression is unsupported in the current runtime. CompressionStream API is not available.","compress");let t=this.getDeflateFormat("compress"),r=new CompressionStream(t);return this.writeAndReadStream(r,e)}async inflate(e,s){if(typeof DecompressionStream>"u")throw new m$1("[Ddu64 decompress] Deflate decompression is unsupported in the current runtime. DecompressionStream API is not available.","decompress");let t=this.getDeflateFormat("decompress"),r=new DecompressionStream(t);return this.writeAndReadStream(r,e,s)}async brotliCompress(e,s){let t=f("brotli","compress"),r=new CompressionStream(t);return this.writeAndReadStream(r,e)}async brotliDecompress(e,s){let t=f("brotli","decompress"),r=new DecompressionStream(t);return this.writeAndReadStream(r,e,s)}getDeflateFormat(e){return f("deflate-raw",e)}async writeAndReadStream(e,s,t){let r=e.writable.getWriter(),c=e.readable.getReader(),i=(async()=>{await r.write(new Uint8Array(m(s))),await r.close();})(),a=this.readAllChunks(c,t);try{let[o]=await Promise.all([a,i]);return o}catch(o){throw await c.cancel(o).catch(()=>{}),await r.abort(o).catch(()=>{}),o}}async readAllChunks(e,s){let t=[],r=0;for(;;){let{done:a,value:o}=await e.read();if(a)break;if(r+=o.length,s!==void 0&&r>s)throw new Error(`[Ddu64 decompress] Decompressed size exceeds limit. Estimated ${r}+ bytes exceeds maximum of ${s} bytes.`);t.push(o);}if(t.length===1)return t[0];let c=new Uint8Array(r),i=0;for(let a of t)c.set(a,i),i+=a.length;return c}};export{U as a};
|
package/dist/chunk-A3OZJS5G.cjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkZTGECGM2_cjs=require('./chunk-ZTGECGM2.cjs'),chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var Ae=(n=>(n.DDU="ddu",n.DDU_V1="ddu_v1",n.ONECHARSET="oneCharSet",n))(Ae||{}),de={dduSetSymbol:"ddu",usePowerOfTwo:true,requiredLength:64};function Se(e,r,t){return e!=null&&typeof e=="object"&&!Array.isArray(e)?{dduChar:void 0,paddingChar:void 0,dduOptions:e}:{dduChar:e,paddingChar:r,dduOptions:t}}chunkBCUBYE76_cjs.a(Se,"resolveConstructorArgs");function Pe(e,r){return e<=1?0:r?Math.floor(Math.log2(e)):Math.ceil(Math.log2(e))}chunkBCUBYE76_cjs.a(Pe,"calculateBitLength");function we(e){return e>0&&(e&e-1)===0}chunkBCUBYE76_cjs.a(we,"isPowerOfTwo");function De(e){return e<31?1<<e:Math.pow(2,e)}chunkBCUBYE76_cjs.a(De,"maxValueForBitLength");var Tr=(()=>{let e=new Uint32Array(256);for(let r=0;r<256;r++){let t=r;for(let n=0;n<8;n++)t=t>>>1^(t&1?3988292384:0);e[r]=t;}return e})();function U(e){let r=4294967295;for(let t=0;t<e.length;t++)r=r>>>8^Tr[(r^e[t])&255];return ((r^4294967295)>>>0).toString(16).padStart(8,"0")}chunkBCUBYE76_cjs.a(U,"calculateCRC32");function ce(e,r){let t=Math.max(e.length,r.length),n=e.length^r.length;for(let o=0;o<t;o++){let a=o<e.length?e.charCodeAt(o):0,s=o<r.length?r.charCodeAt(o):0;n|=a^s;}return n===0}chunkBCUBYE76_cjs.a(ce,"constantTimeEquals");var Ee=["-","_","."];function ke(e){return e.length===0?e:e.replaceAll("+","-").replaceAll("/","_").replaceAll("=",".")}chunkBCUBYE76_cjs.a(ke,"toUrlSafe");function xe(e){return e.length===0?e:e.replaceAll("-","+").replaceAll("_","/").replaceAll(".","=")}chunkBCUBYE76_cjs.a(xe,"fromUrlSafe");function ve(e,r,t){if(r<=0||e.length<=r)return e;let n=Math.ceil(e.length/r),o=new Array(n*2-1),a=0;for(let s=0;s<e.length;s+=r)o[a++]=e.slice(s,s+r),s+r<e.length&&(o[a++]=t);return o.join("")}chunkBCUBYE76_cjs.a(ve,"splitIntoChunks");function Ue(e,r){if(e.length===0)return e;let t=r&&r!==`
|
|
2
|
-
`&&r!==`\r
|
|
3
|
-
`&&r!=="\r"?r:"",n=e.includes(`
|
|
4
|
-
`)||e.includes("\r"),o=t.length>0&&e.includes(t);if(!n&&!o)return e;let a=n?e.replace(/[\r\n]/g,""):e;return o&&(a=a.replaceAll(t,"")),a}chunkBCUBYE76_cjs.a(Ue,"removeChunks");var Oe={"":0,\u3131:1,\u3132:2,\u3133:3,\u3134:4,\u3135:5,\u3136:6,\u3137:7,\u3139:8,\u313A:9,\u313B:10,\u313C:11,\u313D:12,\u313E:13,\u313F:14,\u3140:15,\u3141:16,\u3142:17,\u3144:18,\u3145:19,\u3146:20,\u3147:21,\u3148:22,\u314A:23,\u314B:24,\u314C:25,\u314D:26,\u314E:27};function Be(e){return Object.prototype.hasOwnProperty.call(Oe,e)}chunkBCUBYE76_cjs.a(Be,"isKnownCodaChar");function Mr(e,r){let t=e.charCodeAt(0);if(t<44032||t>55203)return e;let n=t-(t-44032)%28,o=Oe[r]??0;return String.fromCharCode(n+o)}chunkBCUBYE76_cjs.a(Mr,"combineCoda");function Y(e,r){let t=new Array(e.length*r.length),n=0;for(let o of e)for(let a of r)t[n++]=Mr(o,a);return t}chunkBCUBYE76_cjs.a(Y,"buildCodaCharset");function X(e,r){let n=e===void 0||!Number.isFinite(e)?6:Math.floor(e);return Math.min(r==="brotli"?11:9,Math.max(0,n))}chunkBCUBYE76_cjs.a(X,"normalizeCompressionLevel");var Kr=new TextEncoder,_r=new TextDecoder;function K(e){return Kr.encode(e)}chunkBCUBYE76_cjs.a(K,"stringToBytes");function ue(e){return _r.decode(e)}chunkBCUBYE76_cjs.a(ue,"bytesToString");var Nr={symbol:"ddu",charSet:["\uB70C","\uB568","\uC774","\uC6B0","\uC57C","\uB4C0","\uB31C","\uB3A8"],codaChar:["","\u3131","\u3132","\u3137","\u3148","\u3147","\u3145","\u3146"],maxRequiredLength:64,bitLength:6,paddingChar:"\uBB50",useRepeatPadding:true},zr={symbol:"ddu_v1",charSet:["\uB70C","\uB568","\uC774","\uC6B0","\uC57C","!","?","."],maxRequiredLength:8,bitLength:6,paddingChar:"\uBB50",useRepeatPadding:true,usePowerOfTwo:false,encodingProfile:{bitLength:6,usePowerOfTwo:false,bitsPerPadChar:2}},$r={symbol:"oneCharSet",charSet:["A","s","q","r","0","z","3","t","y","1","5","2","4","E","B","C","Q","F","R","T","U","W","V","X","Y","Z","b","a","c","d","D","G","L","H","I","-","J","K","M","O","N","f","e","h","g","P","i","S","k","l","m","u","j","v","n","o","p","9","w","6","7","8","x","_"],paddingChar:"=",maxRequiredLength:64,bitLength:6};function Z(e){switch(e){case "ddu":return Nr;case "ddu_v1":return zr;case "oneCharSet":return $r;default:return}}chunkBCUBYE76_cjs.a(Z,"getCharSet");var Fr=65536;function Le(e,r,t,n){let o=chunkBCUBYE76_cjs.a((a,s,c,d,u)=>{if(Vr(c,t?.usePowerOfTwo)&&c>0){let h=Math.floor(Math.log2(c)),f=1<<h;return {charSet:a.length===f?a:a.slice(0,f),padding:s,requiredLength:f,bitLength:h,isPredefined:d,useRepeatPadding:u}}return {charSet:a.length===c?a:a.slice(0,c),padding:s,requiredLength:c,bitLength:c>0?Math.ceil(Math.log2(c)):0,isPredefined:d,useRepeatPadding:u}},"buildMeta");try{let a=e??t?.dduChar,s=r??t?.paddingChar;if(a){if(!s)throw new Error("[Ddu64 Constructor] paddingChar is required when dduChar is provided.");let h=typeof a=="string"?[...a]:[...a],f=t?.codaChar,m=f?!0:t?.useRepeatPadding??!1;if(f&&f.length>0){if(n){let g=f.filter(P=>!Be(P));if(g.length>0)throw new Error(`[Ddu64 Constructor] Unknown coda character(s): [${g.join(", ")}]. Coda must be empty ("") or a Hangul jongseong jamo (\u3131, \u3132, \u3133, \u2026 \u314E). Unknown coda collapses to no-coda and can create duplicate symbols.`)}h=Y(h,f);}if(n&&new Set(h).size!==h.length){let P=h.filter((C,S)=>h.indexOf(C)!==S);throw new Error(`[Ddu64 Constructor] Character set contains duplicate characters: [${[...new Set(P)].join(", ")}]`)}let y=t?.requiredLength??h.length;if(h.length<y)throw new Error("[Ddu64 Constructor] Insufficient characters.");return o(h,s,y,!1,m)}let c=t?.dduSetSymbol??de.dduSetSymbol??"ddu",d=Hr(c),u=d.codaChar?Y(d.charSet,d.codaChar):d.charSet,l=o(u,d.paddingChar,d.maxRequiredLength,!0,d.useRepeatPadding),p=d.encodingProfile;return p?(l.encodingProfile=p,l.bitLength=p.bitLength,l.usePowerOfTwo=p.usePowerOfTwo,l.bitsPerPadChar=p.bitsPerPadChar):(l.bitsPerPadChar=d.bitsPerPadChar,l.usePowerOfTwo=d.usePowerOfTwo,d.usePowerOfTwo===!1&&(l.bitLength=d.bitLength)),l}catch(a){if(n)throw a;return le(t)}}chunkBCUBYE76_cjs.a(Le,"resolveInitialCharSet");function Re(e,r,t){let n=[e,null];for(let a of n){let s=a?{...a}:le(t);try{let c=s.charSet,d=s.requiredLength,u=Array.from(new Set(c));if(u.length!==c.length){if(r){let h=c.filter((f,m)=>c.indexOf(f)!==m);throw new Error(`[Ddu64 normalizeCharSet] Character set contains duplicate characters: [${[...new Set(h)].join(", ")}]`)}c=u,s.isPredefined||(d=c.length);}if(c.length<d)throw new Error(`[Ddu64 normalizeCharSet] Insufficient characters. Required: ${d}, Has: ${c.length}`);if(d<2)throw new Error("[Ddu64 normalizeCharSet] At least 2 unique characters required.");if(c.length===0)throw new Error("[Ddu64 normalizeCharSet] Empty charset.");if(c.find(h=>h.length!==1)){if(r)throw new Error("[Ddu64 normalizeCharSet] Multi-character symbols are not supported.");continue}if(c.length>Fr){if(r)throw new Error("[Ddu64 normalizeCharSet] Charset size exceeds maximum supported size of 65536.");continue}if(s.padding.length!==1)throw new Error(`[Ddu64 normalizeCharSet] Padding length mismatch. Expected 1, got ${s.padding.length}`);if(c.includes(s.padding)){if(r)throw new Error(`[Ddu64 normalizeCharSet] Padding character "${s.padding}" conflicts with charset.`);c=c.filter(h=>h!==s.padding);}for(let h of c){if(h.includes(`
|
|
5
|
-
`)||h.includes("\r"))throw new Error("[Ddu64 normalizeCharSet] Newline and carriage return characters are reserved.");if(Ie(h))throw new Error(`[Ddu64 normalizeCharSet] Lone surrogate code unit (U+${h.charCodeAt(0).toString(16).toUpperCase()}) is not allowed; it corrupts on UTF-8/URL/JSON boundaries.`)}if(s.padding.includes(`
|
|
6
|
-
`)||s.padding.includes("\r"))throw new Error("[Ddu64 normalizeCharSet] Newline and carriage return characters are reserved.");if(Ie(s.padding))throw new Error("[Ddu64 normalizeCharSet] Padding character must not be a lone surrogate code unit.");return {charSet:c.length===d?c:c.slice(0,d),padding:s.padding,isPredefined:s.isPredefined}}catch(c){if(r)throw c}}let o=le(t);return {charSet:o.charSet.slice(0,o.requiredLength),padding:o.padding,isPredefined:true}}chunkBCUBYE76_cjs.a(Re,"normalizeCharSet");function Te(e,r,t){for(let n of Ee){for(let o of e)if(o.includes(n)){let a=`[Ddu64 Constructor] URL-Safe mode conflict: charset character "${o}" contains "${n}".`;if(t)throw new Error(a);return false}if(r.includes(n)){let o=`[Ddu64 Constructor] URL-Safe mode conflict: padding character "${r}" contains "${n}".`;if(t)throw new Error(o);return false}}return true}chunkBCUBYE76_cjs.a(Te,"isUrlSafeCompatible");function Ie(e){if(e.length!==1)return false;let r=e.charCodeAt(0);return r>=55296&&r<=57343}chunkBCUBYE76_cjs.a(Ie,"isLoneSurrogate");function Vr(e,r){return r!==void 0?r?e>0:false:e>0&&(e&e-1)===0}chunkBCUBYE76_cjs.a(Vr,"shouldUsePowerOfTwo");function Hr(e){let r=Z(e);if(!r)throw new Error(`CharSet with symbol ${e} not found`);return r}chunkBCUBYE76_cjs.a(Hr,"getCharSetOrThrow");function le(e){let r=e?.dduSetSymbol??de.dduSetSymbol??"oneCharSet",t=Z(r)??Z("oneCharSet");if(!t)throw new Error("Critical: No fallback CharSet available");return {charSet:t.codaChar?Y(t.charSet,t.codaChar):t.charSet,padding:t.paddingChar,requiredLength:t.maxRequiredLength,bitLength:t.encodingProfile?.bitLength??t.bitLength,isPredefined:true,useRepeatPadding:t.useRepeatPadding,bitsPerPadChar:t.encodingProfile?.bitsPerPadChar??t.bitsPerPadChar,usePowerOfTwo:t.encodingProfile?.usePowerOfTwo??t.usePowerOfTwo,encodingProfile:t.encodingProfile}}chunkBCUBYE76_cjs.a(le,"getFallbackCharSet");var qr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function Me(e,r,t,n){return t&&n===6&&r==="="&&e.join("")===qr}chunkBCUBYE76_cjs.a(Me,"canUseNativeBase64FastPath");function Ke(e){let r=Gr(e);if(r===null)return null;let t=0,n=r.length;for(;n>0&&r[n-1]==="=";)t++,n--;return {payload:r.slice(0,n),paddingBits:t===2?4:t===1?2:0}}chunkBCUBYE76_cjs.a(Ke,"encodeNativeBase64");function _e(e,r,t){let n=r===4?2:r===2?1:r===0?0:-1;if(n<0)return null;for(let o=0;o<e.length;o++)if(!t(e.charCodeAt(o)))return null;return jr(e+"=".repeat(n))}chunkBCUBYE76_cjs.a(_e,"decodeNativeBase64");function Gr(e){let r=e.toBase64;if(typeof r=="function")return r.call(e);let t=globalThis.Buffer;return t?.from?t.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):null}chunkBCUBYE76_cjs.a(Gr,"bytesToBase64");function jr(e){let r=Uint8Array;if(typeof r.fromBase64=="function")return r.fromBase64(e);let t=globalThis.Buffer;if(t?.from){let n=t.from(e,"base64");return new Uint8Array(n)}return null}chunkBCUBYE76_cjs.a(jr,"base64ToBytes");function J(e,r){if(!e)throw new chunkZTGECGM2_cjs.m("[Ddu64 adapter] No platform adapter available. Use encodeAsync()/decodeAsync() in browser environments, or provide an adapter via options.adapter.",r);return e}chunkBCUBYE76_cjs.a(J,"requireSyncAdapter");function Ne(e,r,t){let n=J(e.adapter,"encode");if(!n.encryptSync)throw new chunkZTGECGM2_cjs.m("[Ddu64 encrypt] Sync encryption unavailable. Use encodeAsync() in browser environments.","encode");let o=Ve(e,n,"encrypt","encode");return n.encryptSync(r,o,t)}chunkBCUBYE76_cjs.a(Ne,"encryptSyncWithAdapter");function ze(e,r,t){let n=J(e.adapter,"decode");if(!n.decryptSync)throw new chunkZTGECGM2_cjs.m("[Ddu64 decrypt] Sync decryption unavailable. Use decodeAsync() in browser environments.","decode");let o=Ve(e,n,"decrypt","decode");return n.decryptSync(r,o,t)}chunkBCUBYE76_cjs.a(ze,"decryptSyncWithAdapter");function $e(e,r,t,n){let o=J(e,"encode");if(t==="brotli"){if(!o.brotliCompressSync)throw new chunkZTGECGM2_cjs.m("[Ddu64 compress] Brotli compression is unavailable in the current runtime.","encode");return o.brotliCompressSync(r,n)}if(!o.deflateSync)throw new chunkZTGECGM2_cjs.m("[Ddu64 compress] Sync compression unavailable. Use encodeAsync() in browser environments.","encode");return o.deflateSync(r,n)}chunkBCUBYE76_cjs.a($e,"compressSyncWithAdapter");function Fe(e,r,t,n){let o=J(e,"decode");if(t==="brotli"){if(!o.brotliDecompressSync)throw new chunkZTGECGM2_cjs.m("[Ddu64 decompress] Brotli decompression is unavailable in the current runtime.","decode");return o.brotliDecompressSync(r,n)}if(!o.inflateSync)throw new chunkZTGECGM2_cjs.m("[Ddu64 decompress] Sync decompression unavailable. Use decodeAsync() in browser environments.","decode");return o.inflateSync(r,n)}chunkBCUBYE76_cjs.a(Fe,"decompressSyncWithAdapter");function Ve(e,r,t,n){if(e.encryptionKeyHash)return e.encryptionKeyHash;if(!r.deriveKeySync){let a=t==="encrypt"?"encodeAsync":"decodeAsync";throw new chunkZTGECGM2_cjs.m(`[Ddu64 ${t}] Sync key derivation unavailable. Use ${a}() in browser environments.`,n)}let o=r.deriveKeySync(e.encryptionKey,e.keyDerivation);return e.setEncryptionKeyHash(o),o}chunkBCUBYE76_cjs.a(Ve,"getSyncKeyHash");function Q(e,r){throw chunkZTGECGM2_cjs.p(e)?e:new r(chunkZTGECGM2_cjs.q(e),e)}chunkBCUBYE76_cjs.a(Q,"rethrowTyped");function He(e,r,t){try{return Ne(e,r,t)}catch(n){Q(n,chunkZTGECGM2_cjs.g);}}chunkBCUBYE76_cjs.a(He,"runEncryptSync");function qe(e,r,t){try{return ze(e,r,t)}catch(n){Q(n,chunkZTGECGM2_cjs.h);}}chunkBCUBYE76_cjs.a(qe,"runDecryptSync");function fe(e,r,t,n){try{return $e(e,r,t,n)}catch(o){Q(o,chunkZTGECGM2_cjs.e);}}chunkBCUBYE76_cjs.a(fe,"runCompressSync");function Ge(e,r,t,n){try{return Fe(e,r,t,n)}catch(o){Q(o,chunkZTGECGM2_cjs.f);}}chunkBCUBYE76_cjs.a(Ge,"runDecompressSync");async function je(e,r,t){try{let n=ee(e.adapter,"encode"),o=await Xe(e,n);return await n.encrypt(r,o,t)}catch(n){throw re(n,"encode","encrypt")}}chunkBCUBYE76_cjs.a(je,"encryptAsyncWithAdapter");async function We(e,r,t){try{let n=ee(e.adapter,"decode"),o=await Xe(e,n);return await n.decrypt(r,o,t)}catch(n){throw re(n,"decode","decrypt")}}chunkBCUBYE76_cjs.a(We,"decryptAsyncWithAdapter");async function he(e,r,t,n){try{let o=ee(e,"encode");if(t==="brotli"){if(!o.brotliCompress)throw new chunkZTGECGM2_cjs.m("[Ddu64 compress] Brotli compression is unavailable in the current runtime.","encode");return await o.brotliCompress(r,n)}return await o.deflate(r,n)}catch(o){throw re(o,"encode","compress")}}chunkBCUBYE76_cjs.a(he,"compressAsyncWithAdapter");async function Ye(e,r,t,n){try{let o=ee(e,"decode");if(t==="brotli"){if(!o.brotliDecompress)throw new chunkZTGECGM2_cjs.m("[Ddu64 decompress] Brotli decompression is unavailable in the current runtime.","decode");return await o.brotliDecompress(r,n)}return await o.inflate(r,n)}catch(o){throw re(o,"decode","decompress")}}chunkBCUBYE76_cjs.a(Ye,"decompressAsyncWithAdapter");function ee(e,r){if(!e)throw new chunkZTGECGM2_cjs.m("[Ddu64 adapter] No platform adapter available. Use @ddunigma/node or @ddunigma/node/browser, or provide an adapter via options.adapter.",r);return e}chunkBCUBYE76_cjs.a(ee,"requireAsyncAdapter");async function Xe(e,r){if(e.encryptionKeyHash)return e.encryptionKeyHash;if(e.encryptionKeyHashPromise)return e.encryptionKeyHashPromise;let t=r.deriveKey(e.encryptionKey,e.keyDerivation).then(n=>(e.setEncryptionKeyHash(n),n)).finally(()=>{e.encryptionKeyHashPromise=void 0;});return e.encryptionKeyHashPromise=t,t}chunkBCUBYE76_cjs.a(Xe,"getAsyncKeyHash");function re(e,r,t){if(chunkZTGECGM2_cjs.p(e))return e;let n=chunkZTGECGM2_cjs.q(e);switch(t){case "compress":return new chunkZTGECGM2_cjs.e(n,e);case "decompress":return new chunkZTGECGM2_cjs.f(n,e);case "encrypt":return new chunkZTGECGM2_cjs.g(n,e);case "decrypt":return new chunkZTGECGM2_cjs.h(n,e)}}chunkBCUBYE76_cjs.a(re,"toAsyncGatewayError");var Ze=new Map;function Je(e,r=false){let t=r?e.join(""):void 0;if(t!==void 0){let u=Ze.get(t);if(u)return u}let n=new Uint16Array(e.length),o=65535,a=0;for(let u=0;u<e.length;u++){let l=e[u].charCodeAt(0);n[u]=l,l>a&&(a=l),l<o&&(o=l);}let s=e.length>0?o:0,c=new Int32Array(a-s+1);c.fill(-1);for(let u=0;u<e.length;u++)c[n[u]-s]=u;let d={charCodeLookup:c,charCodes:n,lookupOffset:s};return t!==void 0&&Ze.set(t,d),d}chunkBCUBYE76_cjs.a(Je,"buildCharsetLookupTables");function _(e,r,t){let n=r-t;return n>=0&&n<e.length?e[n]:-1}chunkBCUBYE76_cjs.a(_,"lookupCharIndex");var Qe=8;function er(e,r,t,n){return Math.ceil(e/(n?1:2))*t-r}chunkBCUBYE76_cjs.a(er,"decodedBitCount");function x(e,r,t,n){if(e===void 0)return r;if(e===Number.POSITIVE_INFINITY)return Number.POSITIVE_INFINITY;if(!Number.isFinite(e)||e<=0){if(t)throw new chunkZTGECGM2_cjs.k(`[Ddu64 options] Invalid ${n}. Must be a positive finite number or Infinity.`);return r}return Math.floor(e)}chunkBCUBYE76_cjs.a(x,"normalizeLimit");function rr(e,r,t,n){if(e===0)return 0;if(r<0||r>=t)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid padding bits: ${r}`);let o=er(e,r,t,n);if(o<0)throw new chunkZTGECGM2_cjs.d("[Ddu64 decode] Invalid decoded bit length");return Math.ceil(o/Qe)}chunkBCUBYE76_cjs.a(rr,"estimateDecodedBytes");function tr(e,r){if(!r&&e.length%2!==0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid encoded length for variable charset. Expected multiple of 2, got ${e.length}`)}chunkBCUBYE76_cjs.a(tr,"assertEncodedInputAligned");function nr(e,r,t,n){if(e.length===0)return;let o=er(e.length,r,t,n);if(o<0||o%Qe!==0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid encoded bit length. Expected a whole number of bytes, got ${o} bits.`)}chunkBCUBYE76_cjs.a(nr,"assertDecodedBitLength");function or(e,r,t,n,o,a){if(r===0)return;if(e.length===0)throw new chunkZTGECGM2_cjs.d("[Ddu64 decode] Invalid padding bits without payload");let s=(1<<r)-1,c;if(t){let d=e[e.length-1],u=_(n,d.charCodeAt(0),a);if(u<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${d}" at ${e.length-1}`);c=u;}else {let d=e[e.length-2],u=e[e.length-1],l=_(n,d.charCodeAt(0),a),p=_(n,u.charCodeAt(0),a);if(l<0||p<0)throw new chunkZTGECGM2_cjs.d("[Ddu64 decode] Invalid character in final encoded chunk");c=l*o+p;}if((c&s)!==0)throw new chunkZTGECGM2_cjs.d("[Ddu64 decode] Invalid non-zero padding bits in final symbol")}chunkBCUBYE76_cjs.a(or,"assertCanonicalPadding");var N="DDS1",z="ELYSIA",$="GRISEO";var Wr=new TextEncoder;function O(e,r,t){let n=t-r.length;if(n<0)return false;for(let o=0;o<r.length;o++)if(e.charCodeAt(n+o)!==r.charCodeAt(o))return false;return true}chunkBCUBYE76_cjs.a(O,"endsWithAt");function ir(e,r,t,n=2){let o=e.length,a=r.length,s={cleanedInput:e,paddingBits:0,isEncrypted:false,pipelineVersion:2};if(a===0||o<a)return s;let d=Math.max(0,t-1).toString().length;for(let u=Math.min(d,o);u>=1;u--){let l=o-u,p=true;for(let C=l;C<o;C++){let S=e.charCodeAt(C);if(S<48||S>57){p=false;break}}if(!p||u>1&&e.charCodeAt(l)===48)continue;let h=0;for(let C=l;C<o;C++)h=h*10+(e.charCodeAt(C)-48);if(h>=t)continue;let f=l,m=false,y,g=2;f>=2&&O(e,"V4",f)?(g=4,f-=2):f>=2&&O(e,"V3",f)&&(g=3,f-=2),f>=3&&O(e,"ENC",f)&&(m=true,f-=3),f>=z.length&&O(e,z,f)?(y="deflate",f-=z.length):f>=$.length&&O(e,$,f)&&(y="brotli",f-=$.length);let P=f-a;if(P>=0&&O(e,r,f))return {cleanedInput:e.substring(0,P),paddingBits:h,compressionAlgorithm:y,isEncrypted:m,pipelineVersion:g}}if(O(e,r,o)){let u=0,l=o;for(;l>=a&&O(e,r,l);)u++,l-=a;if(u>0){let p=u*n;if(p<t)return {cleanedInput:e.substring(0,l),paddingBits:p,isEncrypted:false,pipelineVersion:2}}}return s}chunkBCUBYE76_cjs.a(ir,"parseFooter");function Yr(e){let r=e.lastIndexOf("CHK");if(r===-1)return {data:e,checksum:null};let t=e.slice(r+3);return t.length!==8||!/^[0-9a-f]+$/i.test(t)?{data:e,checksum:null}:{data:e.slice(0,r),checksum:t.toLowerCase()}}chunkBCUBYE76_cjs.a(Yr,"extractChecksum");var Xr=/^[0-9a-f]{8}$/i;function ar(e){let r=e.length;if(r>=11){let n=e.charCodeAt(r-11),o=e.charCodeAt(r-10),a=e[r-9];if(n===67&&o===75&&(a==="P"||a==="O")){let s=e.slice(r-8);if(Xr.test(s))return {data:e.slice(0,r-11),checksum:s.toLowerCase(),scope:a==="P"?"plaintext":"output"}}}let t=Yr(e);return {data:t.data,checksum:t.checksum,scope:null}}chunkBCUBYE76_cjs.a(ar,"extractScopedChecksum");function Zr(e){return e.length*2+N.length+2}chunkBCUBYE76_cjs.a(Zr,"getStreamHeaderLength");function $t(e,r){let t=r.compressionAlgorithm==="brotli"?"B":r.compressionAlgorithm==="deflate"?"D":"N",n=r.encrypted?"1":"0";return `${e}${N}${t}${n}${e}`}chunkBCUBYE76_cjs.a($t,"buildStreamHeader");function Ft(e,r){let t=Zr(r);if(e.length<t||!e.startsWith(r))return null;let n=r.length;if(e.slice(n,n+N.length)!==N)throw new Error("[wireFormat] Invalid stream header magic");let a=e[n+N.length],s=e[n+N.length+1];if(e.slice(t-r.length,t)!==r)throw new Error("[wireFormat] Invalid stream header terminator");let d=a==="B"?"brotli":a==="D"?"deflate":a==="N"?void 0:null;if(d===null)throw new Error("[wireFormat] Invalid stream header compression flag");if(s!=="0"&&s!=="1")throw new Error("[wireFormat] Invalid stream header encryption flag");return {compressionAlgorithm:d,encrypted:s==="1"}}chunkBCUBYE76_cjs.a(Ft,"parseStreamHeader");function sr(e){let{paddingBits:r,compressionAlgorithm:t,isEncrypted:n,paddingChar:o,useRepeatPadding:a,bitsPerPadChar:s=2,pipelineVersion:c=2}=e;if(!n&&c!==2)throw new Error("[wireFormat] Pipeline version markers require encryption");if(r===0&&!t&&!n&&c===2)return "";if(a&&!t&&!n&&c===2&&r>0&&r%s===0){let u=r/s;return o.repeat(u)}return o+(t==="deflate"?z:t==="brotli"?$:"")+(n?"ENC":"")+(c===4?"V4":c===3?"V3":"")+r.toString()}chunkBCUBYE76_cjs.a(sr,"buildFooter");function te(e){return Wr.encode(`ddunigma:wire:v4;enc=1;compress=${e.compressionAlgorithm??"none"}`)}chunkBCUBYE76_cjs.a(te,"buildEncryptionAAD");function dr(e,r,t){let n=r?.checksum??t.defaultChecksum,o=r?.compress!==false,a=r?.encrypt!==false,s=e;t.reportDecodeStart(e.length);let c=x(r?.maxEncodedChars,t.defaultMaxEncodedChars,true,"maxEncodedChars");if(e.length>c)throw new chunkZTGECGM2_cjs.l(`[Ddu64 decode] Encoded input exceeds limit. Length: ${e.length}, Limit: ${c} characters`,"decode");let d=r?.chunkSeparator??t.defaultChunkSeparator;s=Ue(s,d),t.urlSafe&&(s=xe(s));let u=null,l=null;if(n){let B=ar(s);if(u=B.checksum,l=B.scope,s=B.data,!u)throw new chunkZTGECGM2_cjs.i("[Ddu64 checksum] Checksum verification requested, but no checksum marker was found.")}t.shouldObfuscate(r)&&(s=t.deobfuscate(s));let{cleanedInput:p,paddingBits:h,compressionAlgorithm:f,isEncrypted:m,pipelineVersion:y}=ir(s,t.paddingChar,t.bitLength,t.bitsPerPadChar);if((r?.requireEncryption??t.defaultRequireEncryption)&&a&&!m)throw new chunkZTGECGM2_cjs.h("[Ddu64 decode] Encryption is required, but the payload has no authenticated encryption footer.");if(m&&a&&!t.encryptionKey)throw new chunkZTGECGM2_cjs.h("[Ddu64 decode] Encrypted payload requires an encryptionKey");let P=m&&y===4?te({compressionAlgorithm:f}):void 0;tr(p,t.usePowerOfTwo),or(p,h,t.usePowerOfTwo,t.dduCharCodeLookup,t.charSetSize,t.dduCharCodeLookupOffset),nr(p,h,t.bitLength,t.usePowerOfTwo);let C=x(r?.maxDecodedBytes,t.defaultMaxDecodedBytes,true,"maxDecodedBytes"),S=rr(p.length,h,t.bitLength,t.usePowerOfTwo);if(S>C)throw new chunkZTGECGM2_cjs.l(`[Ddu64 decode] Decoded output exceeds limit. Estimated: ${S} bytes, Limit: ${C} bytes`,"decode");return t.reportBitpackDecode(p.length,e.length),{decoded:t.decodeChars(p,h),extractedChecksum:u,extractedChecksumScope:l,compressionAlgorithm:f,isEncrypted:m,pipelineVersion:y,encryptionAAD:P,allowInternalDecompress:o,allowInternalDecrypt:a}}chunkBCUBYE76_cjs.a(dr,"runDecodePrelude");function cr(e){return e.omitFooter?"":sr({paddingBits:e.paddingBits,compressionAlgorithm:e.compressionAlgorithm,isEncrypted:e.isEncrypted,paddingChar:e.paddingChar,useRepeatPadding:e.useRepeatPadding&&!e.compressionAlgorithm&&!e.isEncrypted,bitsPerPadChar:e.bitsPerPadChar,pipelineVersion:e.isEncrypted?e.pipelineVersion:2})}chunkBCUBYE76_cjs.a(cr,"buildEncodeFooter");function ur(e){let r=e.encoded;if(e.shouldObfuscate(e.options)&&(r=e.getObfuscationLayer().obfuscate(r)),e.shouldChecksum&&e.checksum){let t=e.checksumScope==="plaintext"?"P":"O";r=r+"CK"+t+e.checksum;}return e.urlSafe&&(r=ke(r)),e.chunkSize&&e.chunkSize>0&&(e.assertSafeChunkSeparator(r,e.chunkSeparator),r=ve(r,e.chunkSize,e.chunkSeparator)),r}chunkBCUBYE76_cjs.a(ur,"applyPostEncoding");var pe=8192;function lr(e,r,t){let n=e.length;if(n===0)return {payload:"",paddingBits:0};let o=Math.ceil(n*8/r),a=Math.min(o,pe),s=new Uint16Array(a),c=[],d=0,u=0;if(r===6){let l=0;for(;l+2<n;l+=3){let h=e[l],f=e[l+1],m=e[l+2];s[d++]=t[h>>>2],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),s[d++]=t[(h&3)<<4|f>>>4],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),s[d++]=t[(f&15)<<2|m>>>6],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),s[d++]=t[m&63],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0);}let p=n-l;if(p===1){let h=e[l];s[d++]=t[h>>>2],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),s[d++]=t[(h&3)<<4],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),u=4;}else if(p===2){let h=e[l],f=e[l+1];s[d++]=t[h>>>2],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),s[d++]=t[(h&3)<<4|f>>>4],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),s[d++]=t[(f&15)<<2],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),u=2;}}else if(r===8)for(let l=0;l<n;l++)s[d++]=t[e[l]],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0);else {let l=(1<<r)-1,p=0,h=0;for(let f=0;f<n;f++)for(p=p<<8|e[f],h+=8;h>=r;)h-=r,s[d++]=t[p>>h&l],d===a&&(c.push(String.fromCharCode.apply(null,s)),d=0),p&=(1<<h)-1;h>0&&(u=r-h,s[d++]=t[p<<u&l]);}return d>0&&c.push(String.fromCharCode.apply(null,s.subarray(0,d))),{payload:c.length===1?c[0]:c.join(""),paddingBits:u}}chunkBCUBYE76_cjs.a(lr,"packPow2ToString");function fr(e,r,t,n,o){let a=e.length;if(a===0)return new Uint8Array(0);let s=Math.ceil((a*t-r)/8),c=new Uint8Array(s+1),d=0,u=n.length;if(t===6){let f=a-a%4;f===a&&r>0&&(f-=4);let m=0;for(;m<f;m+=4){let C=e.charCodeAt(m)-o,S=C>=0&&C<u?n[C]:-1;if(S<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[m]}" at ${m}`);let D=e.charCodeAt(m+1)-o,B=D>=0&&D<u?n[D]:-1;if(B<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[m+1]}" at ${m+1}`);let ne=e.charCodeAt(m+2)-o,oe=ne>=0&&ne<u?n[ne]:-1;if(oe<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[m+2]}" at ${m+2}`);let ie=e.charCodeAt(m+3)-o,ge=ie>=0&&ie<u?n[ie]:-1;if(ge<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[m+3]}" at ${m+3}`);c[d++]=S<<2|B>>>4,c[d++]=(B&15)<<4|oe>>>2,c[d++]=(oe&3)<<6|ge;}let y=0,g=0,P=a-1;for(;m<a;m++){let S=e.charCodeAt(m)-o,D=S>=0&&S<u?n[S]:-1;if(D<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[m]}" at ${m}`);for(y=y<<6|D,g+=6,m===P&&r>0&&(y>>=r,g-=r);g>=8;)g-=8,c[d++]=y>>g&255,y&=(1<<g)-1;}return c.subarray(0,d)}if(t===8&&r===0){for(let f=0;f<a;f++){let y=e.charCodeAt(f)-o,g=y>=0&&y<u?n[y]:-1;if(g<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[f]}" at ${f}`);c[d++]=g;}return c.subarray(0,d)}let l=0,p=0,h=a-1;for(let f=0;f<a;f++){let y=e.charCodeAt(f)-o,g=y>=0&&y<u?n[y]:-1;if(g<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[f]}" at ${f}`);for(l=l<<t|g,p+=t,f===h&&r>0&&(l>>=r,p-=r);p>=8;)p-=8,c[d++]=l>>p&255,l&=(1<<p)-1;}return c.subarray(0,d)}chunkBCUBYE76_cjs.a(fr,"unpackPow2FromString");function hr(e,r,t,n){let o=e.length;if(o===0)return {payload:"",paddingBits:0};let a=[],s=new Uint16Array(pe),c=0,d=0,u=0,l=0,p=chunkBCUBYE76_cjs.a(h=>{s[c++]=h,c===pe&&(a.push(String.fromCharCode.apply(null,s)),c=0);},"pushCode");for(let h=0;h<o;h++)for(d=d<<8|e[h],u+=8;u>=r;){u-=r;let f=d>>u,m=f/t|0;p(n[m]),p(n[f-m*t]),d&=(1<<u)-1;}if(u>0){l=r-u;let h=d<<l,f=h/t|0;p(n[f]),p(n[h-f*t]);}return c>0&&a.push(String.fromCharCode.apply(null,s.subarray(0,c))),{payload:a.length===1?a[0]:a.join(""),paddingBits:l}}chunkBCUBYE76_cjs.a(hr,"packNonPow2ToString");function pr(e,r,t,n,o,a){let s=e.length;if(s===0)return new Uint8Array(0);let c=Math.ceil(s/2),d=Math.ceil((c*t-r)/8),u=new Uint8Array(d+1),l=0,p=De(t),h=o.length,f=0,m=0;for(let y=0;y<s;y+=2){let g=e.charCodeAt(y)-a,P=g>=0&&g<h?o[g]:-1;if(P<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[y]}" at ${y}`);if(y+1>=s)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Truncated symbol pair at ${y+1}`);let C=e.charCodeAt(y+1)-a,S=C>=0&&C<h?o[C]:-1;if(S<0)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Invalid character "${e[y+1]}" at ${y+1}`);let D=P*n+S;if(D>=p)throw new chunkZTGECGM2_cjs.d(`[Ddu64 decode] Value ${D} exceeds range at position ${y}`);for(f=f<<t|D,m+=t,y+2>=s&&r>0&&(f>>=r,m-=r);m>=8;)m-=8,u[l++]=f>>m&255,f&=(1<<m)-1;}return u.subarray(0,l)}chunkBCUBYE76_cjs.a(pr,"unpackNonPow2FromString");function mr(e,r,t,n,o){if(e.length===0)return "";let a=o.canUseNativeBase64?Ke(e):null,s,c;if(a)s=a.paddingBits,c=a.payload;else if(o.bitPackConfig.usePowerOfTwo){let u=lr(e,o.bitPackConfig.bitLength,o.dduCharCodes);s=u.paddingBits,c=u.payload;}else {let u=hr(e,o.bitPackConfig.bitLength,o.bitPackConfig.charsetSize,o.dduCharCodes);s=u.paddingBits,c=u.payload;}let d=cr({paddingBits:s,compressionAlgorithm:r,isEncrypted:t,paddingChar:o.paddingChar,useRepeatPadding:o.useRepeatPadding,bitsPerPadChar:o.bitsPerPadChar,pipelineVersion:o.encryptedPipelineVersion,omitFooter:n?.omitFooter});return c+d}chunkBCUBYE76_cjs.a(mr,"encodePayload");function yr(e,r,t){if(e.length===0)return new Uint8Array(0);let o=t.canUseNativeBase64?_e(e,r,a=>_(t.dduCharCodeLookup,a,t.dduCharCodeLookupOffset)>=0):null;return o||(t.bitPackConfig.usePowerOfTwo?fr(e,r,t.bitPackConfig.bitLength,t.dduCharCodeLookup,t.dduCharCodeLookupOffset):pr(e,r,t.bitPackConfig.bitLength,t.bitPackConfig.charsetSize,t.dduCharCodeLookup,t.dduCharCodeLookupOffset))}chunkBCUBYE76_cjs.a(yr,"decodePayload");function gr(e,r){let t=new Set(e);t.add(r);let n=z+$+"ENC"+"V3"+"V4";for(let o of n)t.add(o);for(let o of "0123456789")t.add(o);return [...t]}chunkBCUBYE76_cjs.a(gr,"buildObfuscationAlphabet");function k(e,r="construct"){if(e===void 0)return;if(typeof e!="object"||e===null||Array.isArray(e))throw new chunkZTGECGM2_cjs.k("[Ddu64 options] Options must be an object.",r);let t=e;E(e.compress,"compress",r),E(t.encrypt,"encrypt",r),E(e.checksum,"checksum",r),E(t.omitFooter,"omitFooter",r),E(e.obfuscate,"obfuscate",r),E(e.requireEncryption,"requireEncryption",r),e.compressionLevel!==void 0&&(typeof e.compressionLevel!="number"||!Number.isFinite(e.compressionLevel))&&A(r,"compressionLevel must be a finite number"),e.onProgress!==void 0&&typeof e.onProgress!="function"&&A(r,"onProgress must be a function"),e.compressionAlgorithm!==void 0&&e.compressionAlgorithm!=="deflate"&&e.compressionAlgorithm!=="brotli"&&A(r,`compressionAlgorithm must be "deflate" or "brotli", got ${String(e.compressionAlgorithm)}`),e.checksumScope!==void 0&&e.checksumScope!=="plaintext"&&e.checksumScope!=="output"&&A(r,`checksumScope must be "plaintext" or "output", got ${String(e.checksumScope)}`),e.chunkSize!==void 0&&(!Number.isSafeInteger(e.chunkSize)||e.chunkSize<0)&&A(r,"chunkSize must be a non-negative safe integer (0 disables chunking)"),e.chunkSeparator!==void 0&&typeof e.chunkSeparator!="string"&&A(r,"chunkSeparator must be a string"),e.chunkSize!==void 0&&e.chunkSize>0&&e.chunkSeparator===""&&A(r,"chunkSeparator must not be empty when chunkSize is enabled"),V(e.maxDecodedBytes,"maxDecodedBytes",r),V(e.maxEncodedChars,"maxEncodedChars",r),V(e.maxDecompressedBytes,"maxDecompressedBytes",r),"maxBufferedBytes"in e&&V(e.maxBufferedBytes,"maxBufferedBytes",r),"maxBufferedChars"in e&&V(e.maxBufferedChars,"maxBufferedChars",r);let n=e;E(n.throwOnError,"throwOnError",r),E(n.urlSafe,"urlSafe",r),E(n.useRepeatPadding,"useRepeatPadding",r),E(n.usePowerOfTwo,"usePowerOfTwo",r),n.encryptionKey!==void 0&&(typeof n.encryptionKey!="string"||n.encryptionKey.length===0)&&A(r,"encryptionKey must be a non-empty string"),n.dduChar!==void 0&&typeof n.dduChar!="string"&&!(Array.isArray(n.dduChar)&&n.dduChar.every(a=>typeof a=="string"))&&A(r,"dduChar must be a string or string array"),n.paddingChar!==void 0&&typeof n.paddingChar!="string"&&A(r,"paddingChar must be a string"),n.codaChar!==void 0&&!(Array.isArray(n.codaChar)&&n.codaChar.every(a=>typeof a=="string"))&&A(r,"codaChar must be a string array"),n.requiredLength!==void 0&&(!Number.isSafeInteger(n.requiredLength)||n.requiredLength<=0)&&A(r,"requiredLength must be a positive safe integer"),n.adapter!==void 0&&(typeof n.adapter!="object"||n.adapter===null)&&A(r,"adapter must be an object");let o="keyDerivation"in e?e.keyDerivation:void 0;o!==void 0&&((typeof o!="object"||o===null)&&A(r,"keyDerivation must be an object"),o.algorithm!==void 0&&o.algorithm!=="sha256"&&o.algorithm!=="pbkdf2"&&A(r,`keyDerivation.algorithm must be "sha256" or "pbkdf2", got ${String(o.algorithm)}`),o.hash!==void 0&&o.hash!=="SHA-256"&&o.hash!=="SHA-384"&&o.hash!=="SHA-512"&&A(r,`Unsupported PBKDF2 hash: ${String(o.hash)}`),o.iterations!==void 0&&(!Number.isFinite(o.iterations)||o.iterations<=0)&&A(r,"keyDerivation.iterations must be a positive finite number"),o.salt!==void 0&&typeof o.salt!="string"&&!Cr(o.salt)&&A(r,"keyDerivation.salt must be a string or Uint8Array"));}chunkBCUBYE76_cjs.a(k,"validateRuntimeOptions");function H(e,r="encode"){if(typeof e!="string"&&!Cr(e))throw new chunkZTGECGM2_cjs.k("[Ddu64 input] Encode input must be a string or Uint8Array.",r)}chunkBCUBYE76_cjs.a(H,"validateEncodeInput");function q(e,r="decode"){if(typeof e!="string")throw new chunkZTGECGM2_cjs.k("[Ddu64 input] Decode input must be a string.",r)}chunkBCUBYE76_cjs.a(q,"validateDecodeInput");function Cr(e){return ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}chunkBCUBYE76_cjs.a(Cr,"isUint8Array");function E(e,r,t){e!==void 0&&typeof e!="boolean"&&A(t,`${r} must be a boolean`);}chunkBCUBYE76_cjs.a(E,"validateBoolean");function V(e,r,t){e!==void 0&&e!==Number.POSITIVE_INFINITY&&(!Number.isSafeInteger(e)||e<=0)&&A(t,`${r} must be a positive safe integer or Infinity`);}chunkBCUBYE76_cjs.a(V,"validatePositiveLimit");function A(e,r){throw new chunkZTGECGM2_cjs.k(`[Ddu64 options] Invalid ${r}.`,e)}chunkBCUBYE76_cjs.a(A,"invalid");function br(e,r,t){let n=e.decoded,o=e.extractedChecksumScope??r?.checksumScope??"plaintext";return o==="output"&&Dr(e,t),n=tt(e,t,n),n=nt(e,r,t,n),o==="plaintext"&&Er(e,t,n),n=ot(e,t,n),xr(t,n),n}chunkBCUBYE76_cjs.a(br,"runSyncDecodePipeline");async function Ar(e,r,t){let n=e.decoded,o=e.extractedChecksumScope??r?.checksumScope??"plaintext";if(o==="output"&&Dr(e,t),Sr(e,t)&&(v(t,n.length,55,"decrypt"),n=await t.decrypt(n,e.encryptionAAD)),wr(e)){let a=kr(r,t);v(t,n.length,70,"decompress"),n=await t.decompress(n,e.compressionAlgorithm,a);}return o==="plaintext"&&Er(e,t,n),Pr(e,t)&&(v(t,n.length,90,"decrypt"),n=await t.decrypt(n,e.encryptionAAD)),xr(t,n),n}chunkBCUBYE76_cjs.a(Ar,"runAsyncDecodePipeline");function tt(e,r,t){return Sr(e,r)?(v(r,t.length,55,"decrypt"),r.decrypt(t,e.encryptionAAD)):t}chunkBCUBYE76_cjs.a(tt,"runPreDecompressDecrypt");function nt(e,r,t,n){if(!wr(e))return n;let o=kr(r,t);return v(t,n.length,70,"decompress"),t.decompress(n,e.compressionAlgorithm,o)}chunkBCUBYE76_cjs.a(nt,"runDecompress");function ot(e,r,t){return Pr(e,r)?(v(r,t.length,90,"decrypt"),r.decrypt(t,e.encryptionAAD)):t}chunkBCUBYE76_cjs.a(ot,"runPostChecksumDecrypt");function Sr(e,r){return (e.pipelineVersion===3||e.pipelineVersion===4)&&e.isEncrypted&&!!r.encryptionKey&&e.allowInternalDecrypt}chunkBCUBYE76_cjs.a(Sr,"shouldRunPreDecompressDecrypt");function Pr(e,r){return e.pipelineVersion===2&&e.isEncrypted&&!!r.encryptionKey&&e.allowInternalDecrypt}chunkBCUBYE76_cjs.a(Pr,"shouldRunPostChecksumDecrypt");function wr(e){return !!e.compressionAlgorithm&&e.allowInternalDecompress&&(e.pipelineVersion===2||!e.isEncrypted||e.allowInternalDecrypt)}chunkBCUBYE76_cjs.a(wr,"shouldDecompress");function Dr(e,r){if(!e.extractedChecksum)return;v(r,e.decoded.length,85,"checksum");let t=U(e.decoded);if(!ce(t,e.extractedChecksum))throw new chunkZTGECGM2_cjs.i(`[Ddu64 decode] Checksum mismatch. Expected: ${e.extractedChecksum}, Got: ${t}`)}chunkBCUBYE76_cjs.a(Dr,"verifyWireChecksum");function Er(e,r,t){if(!e.extractedChecksum||!(e.pipelineVersion===2||!e.isEncrypted||e.allowInternalDecrypt))return;v(r,t.length,85,"checksum");let n=U(t);if(!ce(n,e.extractedChecksum))throw new chunkZTGECGM2_cjs.i(`[Ddu64 decode] Checksum mismatch. Expected: ${e.extractedChecksum}, Got: ${n}`)}chunkBCUBYE76_cjs.a(Er,"verifyDecodedChecksum");function kr(e,r){return x(e?.maxDecompressedBytes,r.defaultMaxDecompressedBytes,true,"maxDecompressedBytes")}chunkBCUBYE76_cjs.a(kr,"getMaxDecompressedBytes");function v(e,r,t,n){e.reportProgress({processedBytes:r,totalBytes:r,percent:t,stage:n});}chunkBCUBYE76_cjs.a(v,"reportStage");function xr(e,r){v(e,r.length,100,"done");}chunkBCUBYE76_cjs.a(xr,"reportDone");function me(e,r,t){let n=Ur(r,t),o=typeof e=="string"?K(e):e;Or(t,o.length);let a="";n.shouldChecksum&&n.checksumScope==="plaintext"&&(a=U(o));let s,c;if(n.shouldCompress){let{algo:u,level:l}=vr(r,t);Br(t,o.length);let p=t.compress(o,u,l);p.length<o.length&&(c=p.length,o=p,s=u);}let d=false;return n.shouldEncrypt&&(Ir(t,o.length),o=t.encrypt(o,t.getEncryptionAAD(s)),d=true),n.shouldChecksum&&n.checksumScope==="output"&&(a=U(o)),{encoded:t.finalize(o,s,d,a,n.shouldChecksum,n.checksumScope,n.chunkSize,n.chunkSeparator),compressedSize:c}}chunkBCUBYE76_cjs.a(me,"runSyncEncodePipeline");async function ye(e,r,t){let n=Ur(r,t),o=typeof e=="string"?K(e):e;Or(t,o.length);let a="";n.shouldChecksum&&n.checksumScope==="plaintext"&&(a=U(o));let s,c;if(n.shouldCompress){let{algo:u,level:l}=vr(r,t);Br(t,o.length);let p=await t.compress(o,u,l);p.length<o.length&&(c=p.length,o=p,s=u);}let d=false;return n.shouldEncrypt&&(Ir(t,o.length),o=await t.encrypt(o,t.getEncryptionAAD(s)),d=true),n.shouldChecksum&&n.checksumScope==="output"&&(a=U(o)),{encoded:t.finalize(o,s,d,a,n.shouldChecksum,n.checksumScope,n.chunkSize,n.chunkSeparator),compressedSize:c}}chunkBCUBYE76_cjs.a(ye,"runAsyncEncodePipeline");function vr(e,r){let t=e?.compressionAlgorithm??r.defaultCompressionAlgorithm,n=X(e?.compressionLevel??r.defaultCompressionLevel,t);return {algo:t,level:n}}chunkBCUBYE76_cjs.a(vr,"resolveCompressionParams");function Ur(e,r){return {shouldCompress:e?.compress??r.defaultCompress,shouldChecksum:e?.checksum??r.defaultChecksum,checksumScope:e?.checksumScope??r.defaultChecksumScope,shouldEncrypt:(e?.encrypt??true)&&r.hasEncryptionKey,chunkSize:e?.chunkSize??r.defaultChunkSize,chunkSeparator:e?.chunkSeparator??r.defaultChunkSeparator}}chunkBCUBYE76_cjs.a(Ur,"resolveEncodeSettings");function Or(e,r){e.reportProgress({processedBytes:0,totalBytes:r,percent:0,stage:"start"});}chunkBCUBYE76_cjs.a(Or,"reportStart");function Br(e,r){e.reportProgress({processedBytes:r,totalBytes:r,percent:20,stage:"compress"});}chunkBCUBYE76_cjs.a(Br,"reportCompress");function Ir(e,r){e.reportProgress({processedBytes:r,totalBytes:r,percent:45,stage:"encrypt"});}chunkBCUBYE76_cjs.a(Ir,"reportEncrypt");var it=64*1024*1024,at=64*1024*1024,st=256*1024*1024,Lr=28,Rr=class{static{chunkBCUBYE76_cjs.a(this,"Ddu64Core");}dduChar;dduCharCodes;paddingChar;bitLength;usePowerOfTwo;dduCharCodeLookup;dduCharCodeLookupOffset;defaultCompress;defaultMaxDecodedBytes;defaultMaxEncodedChars;defaultMaxDecompressedBytes;urlSafe;encryptionKey;keyDerivation;encryptionKeyHash;syncGatewayContext;defaultChecksum;defaultChecksumScope;defaultChunkSize;defaultChunkSeparator;defaultCompressionLevel;defaultCompressionAlgorithm;useRepeatPadding;bitsPerPadChar;bitPackConfig;canUseNativeBase64;payloadCodecContext;adapter;adapterFactory;obfuscationLayerFactory;defaultObfuscate;defaultOnProgress;defaultRequireEncryption;obfuscationLayer;constructor(r,t,n){let o=Se(r,t,n);r=o.dduChar,t=o.paddingChar,n=o.dduOptions,k(n);let a=n?.throwOnError??true;this.adapter=n?.adapter,this.adapterFactory=n?.adapterFactory,this.obfuscationLayerFactory=n?.obfuscationLayerFactory;let s,c;try{s=Le(r,t,n,a),c=Re(s,a,n);}catch(y){throw chunkZTGECGM2_cjs.p(y)?y:new chunkZTGECGM2_cjs.j(chunkZTGECGM2_cjs.q(y),y)}this.dduChar=c.charSet,this.paddingChar=c.padding;let d=c.isPredefined;this.defaultCompress=n?.compress??false,this.defaultMaxDecodedBytes=x(n?.maxDecodedBytes,it,a,"maxDecodedBytes"),this.defaultMaxDecompressedBytes=x(n?.maxDecompressedBytes,at,a,"maxDecompressedBytes"),this.defaultMaxEncodedChars=x(n?.maxEncodedChars,this.defaultMaxDecodedBytes===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:Math.max(st,this.defaultMaxDecodedBytes*4),a,"maxEncodedChars");let u=this.dduChar.length,l=we(u),p=n?.usePowerOfTwo,h=s.encodingProfile;this.usePowerOfTwo=h?.usePowerOfTwo??s.usePowerOfTwo??(p!==void 0?p&&l:l);let f=h?.bitLength??(s.isPredefined&&s.usePowerOfTwo!==void 0?s.bitLength:void 0);this.bitLength=f??Pe(u,this.usePowerOfTwo);let m=Je(this.dduChar,d);this.dduCharCodeLookup=m.charCodeLookup,this.dduCharCodeLookupOffset=m.lookupOffset,this.dduCharCodes=m.charCodes,this.urlSafe=dt(this.dduChar,this.paddingChar,n?.urlSafe??false,a),this.encryptionKey=n?.encryptionKey,this.keyDerivation=n?.keyDerivation,this.defaultChecksum=n?.checksum??false,this.defaultChecksumScope=n?.checksumScope??"output",this.defaultChunkSize=n?.chunkSize,this.defaultChunkSeparator=n?.chunkSeparator??`
|
|
7
|
-
`,this.defaultCompressionAlgorithm=n?.compressionAlgorithm??"deflate",this.defaultCompressionLevel=X(n?.compressionLevel,this.defaultCompressionAlgorithm),this.useRepeatPadding=n?.useRepeatPadding??s.useRepeatPadding??false,this.bitsPerPadChar=h?.bitsPerPadChar??s.bitsPerPadChar??2,this.defaultObfuscate=n?.obfuscate??false,this.defaultOnProgress=n?.onProgress,this.defaultRequireEncryption=n?.requireEncryption??this.encryptionKey!==void 0,this.bitPackConfig={bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,charsetSize:u},this.canUseNativeBase64=Me(this.dduChar,this.paddingChar,this.usePowerOfTwo,this.bitLength),this.payloadCodecContext={bitPackConfig:this.bitPackConfig,canUseNativeBase64:this.canUseNativeBase64,dduCharCodes:this.dduCharCodes,dduCharCodeLookup:this.dduCharCodeLookup,dduCharCodeLookupOffset:this.dduCharCodeLookupOffset,paddingChar:this.paddingChar,useRepeatPadding:this.useRepeatPadding,bitsPerPadChar:this.bitsPerPadChar,encryptedPipelineVersion:4};}encode(r,t){try{return k(t,"encode"),H(r),this.encodeInternal(r,t).encoded}catch(n){throw chunkZTGECGM2_cjs.r(n,"encode")}}decode(r,t){try{k(t,"decode"),q(r);let n=this.decodeToUint8Array(r,t);return ue(n)}catch(n){throw chunkZTGECGM2_cjs.r(n,"decode")}}decodeToUint8Array(r,t){try{return k(t,"decode"),q(r),this.decodeToUint8ArrayInternal(r,t)}catch(n){throw chunkZTGECGM2_cjs.r(n,"decode")}}decodeToUint8ArrayInternal(r,t){let n=this.decodePrelude(r,t);return br(n,t,{...this.buildDecodeBaseContext(t),decrypt:chunkBCUBYE76_cjs.a((o,a)=>qe(this.getSyncGatewayContext(),o,a),"decrypt"),decompress:chunkBCUBYE76_cjs.a((o,a,s)=>Ge(this.getAdapter(),o,a,s),"decompress")})}async encodeAsync(r,t){try{return k(t,"encode"),H(r),await this.encodeAsyncInternal(r,t)}catch(n){throw chunkZTGECGM2_cjs.r(n,"encode")}}async encodeAsyncInternal(r,t){return (await ye(r,t,{...this.buildEncodeBaseContext(t),compress:chunkBCUBYE76_cjs.a((o,a,s)=>he(this.getAdapter(),o,a,s),"compress"),encrypt:chunkBCUBYE76_cjs.a((o,a)=>je(this.getSyncGatewayContext(),o,a),"encrypt")})).encoded}async decodeAsync(r,t){try{k(t,"decode"),q(r);let n=await this.decodeToUint8ArrayAsync(r,t);return ue(n)}catch(n){throw chunkZTGECGM2_cjs.r(n,"decode")}}async decodeToUint8ArrayAsync(r,t){try{return k(t,"decode"),q(r),await this.decodeToUint8ArrayAsyncInternal(r,t)}catch(n){throw chunkZTGECGM2_cjs.r(n,"decode")}}async decodeToUint8ArrayAsyncInternal(r,t){let n=this.decodePrelude(r,t);return Ar(n,t,{...this.buildDecodeBaseContext(t),decrypt:chunkBCUBYE76_cjs.a((o,a)=>We(this.getSyncGatewayContext(),o,a),"decrypt"),decompress:chunkBCUBYE76_cjs.a((o,a,s)=>Ye(this.getAdapter(),o,a,s),"decompress")})}buildDecodeBaseContext(r){return {encryptionKey:this.encryptionKey,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,reportProgress:chunkBCUBYE76_cjs.a(t=>this.reportProgress(r,t),"reportProgress")}}getCharSetInfo(){return {charSet:[...this.dduChar],paddingChar:this.paddingChar,bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,encoding:"utf-8",defaultCompress:this.defaultCompress,defaultMaxDecodedBytes:this.defaultMaxDecodedBytes,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,urlSafe:this.urlSafe,hasEncryptionKey:!!this.encryptionKey,defaultChecksum:this.defaultChecksum,defaultChecksumScope:this.defaultChecksumScope,defaultObfuscate:this.defaultObfuscate,defaultRequireEncryption:this.defaultRequireEncryption,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm}}getStats(r,t){k(t,"encode"),H(r);let n=typeof r=="string"?K(r):r,{encoded:o,compressedSize:a}=this.encodeStatsInternal(n,t);return this.buildEncodeStats(n.length,o.length,a,t)}async getStatsAsync(r,t){k(t,"encode"),H(r);let n=typeof r=="string"?K(r):r,{encoded:o,compressedSize:a}=await this.encodeStatsAsyncInternal(n,t);return this.buildEncodeStats(n.length,o.length,a,t)}buildEncodeStats(r,t,n,o){let a=r>0?t/r:0,c=(o?.compress??this.defaultCompress)&&n!==void 0&&r>0?n/r:void 0;return {originalSize:r,encodedSize:t,compressedSize:n,compressionRatio:c,expansionRatio:a,charsetSize:this.dduChar.length,bitLength:this.bitLength}}encodeInternal(r,t){return me(r,t,{...this.buildEncodeBaseContext(t),compress:chunkBCUBYE76_cjs.a((n,o,a)=>fe(this.getAdapter(),n,o,a),"compress"),encrypt:chunkBCUBYE76_cjs.a((n,o)=>He(this.getSyncGatewayContext(),n,o),"encrypt")})}encodeStatsInternal(r,t){return me(r,t,{...this.buildEncodeBaseContext(t),compress:chunkBCUBYE76_cjs.a((n,o,a)=>fe(this.getAdapter(),n,o,a),"compress"),encrypt:chunkBCUBYE76_cjs.a(n=>new Uint8Array(n.length+Lr),"encrypt")})}async encodeStatsAsyncInternal(r,t){return ye(r,t,{...this.buildEncodeBaseContext(t),compress:chunkBCUBYE76_cjs.a((n,o,a)=>he(this.getAdapter(),n,o,a),"compress"),encrypt:chunkBCUBYE76_cjs.a(async n=>new Uint8Array(n.length+Lr),"encrypt")})}buildEncodeBaseContext(r){return {defaultCompress:this.defaultCompress,defaultChecksum:this.defaultChecksum,defaultChecksumScope:this.defaultChecksumScope,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm,hasEncryptionKey:!!this.encryptionKey,reportProgress:chunkBCUBYE76_cjs.a(t=>this.reportProgress(r,t),"reportProgress"),getEncryptionAAD:chunkBCUBYE76_cjs.a(t=>te({compressionAlgorithm:t}),"getEncryptionAAD"),finalize:chunkBCUBYE76_cjs.a((t,n,o,a,s,c,d,u)=>this.finalizeEncode(t,n,o,a,s,c,d,u,r),"finalize")}}finalizeEncode(r,t,n,o,a,s,c,d,u){this.reportProgress(u,{processedBytes:r.length,totalBytes:r.length,percent:70,stage:"encode"});let l=mr(r,t,n,u,this.getPayloadCodecContext());return l=this.applyPostEncoding(l,u,o,a,s,c,d),this.reportProgress(u,{processedBytes:r.length,totalBytes:r.length,percent:100,stage:"done"}),l}applyPostEncoding(r,t,n,o,a,s,c){return ur({encoded:r,options:t,checksum:n,shouldChecksum:o,checksumScope:a,chunkSize:s,chunkSeparator:c,urlSafe:this.urlSafe,shouldObfuscate:chunkBCUBYE76_cjs.a(d=>this.shouldObfuscate(d),"shouldObfuscate"),getObfuscationLayer:chunkBCUBYE76_cjs.a(()=>this.getObfuscationLayer(),"getObfuscationLayer"),assertSafeChunkSeparator:chunkBCUBYE76_cjs.a((d,u)=>this.assertSafeChunkSeparator(d,u),"assertSafeChunkSeparator")})}decodePrelude(r,t){return dr(r,t,{defaultChecksum:this.defaultChecksum,defaultChunkSeparator:this.defaultChunkSeparator,defaultMaxDecodedBytes:this.defaultMaxDecodedBytes,defaultMaxEncodedChars:this.defaultMaxEncodedChars,urlSafe:this.urlSafe,paddingChar:this.paddingChar,bitLength:this.bitLength,bitsPerPadChar:this.bitsPerPadChar,usePowerOfTwo:this.usePowerOfTwo,dduCharCodeLookup:this.dduCharCodeLookup,dduCharCodeLookupOffset:this.dduCharCodeLookupOffset,charSetSize:this.dduChar.length,encryptionKey:this.encryptionKey,defaultRequireEncryption:this.defaultRequireEncryption,shouldObfuscate:chunkBCUBYE76_cjs.a(n=>this.shouldObfuscate(n),"shouldObfuscate"),deobfuscate:chunkBCUBYE76_cjs.a(n=>this.getObfuscationLayer().deobfuscate(n),"deobfuscate"),decodeChars:chunkBCUBYE76_cjs.a((n,o)=>yr(n,o,this.getPayloadCodecContext()),"decodeChars"),reportDecodeStart:chunkBCUBYE76_cjs.a(n=>{this.reportProgress(t,{processedBytes:0,totalBytes:n,percent:0,stage:"start"});},"reportDecodeStart"),reportBitpackDecode:chunkBCUBYE76_cjs.a((n,o)=>{this.reportProgress(t,{processedBytes:n,totalBytes:o,percent:30,stage:"decode"});},"reportBitpackDecode")})}getPayloadCodecContext(){return this.payloadCodecContext}reportProgress(r,t){(r?.onProgress??this.defaultOnProgress)?.(t);}getAdapter(){return this.adapter===void 0&&this.adapterFactory!==void 0&&(this.adapter=this.adapterFactory()),this.adapter}getSyncGatewayContext(){if(!this.syncGatewayContext){let r={adapter:this.getAdapter(),encryptionKey:this.encryptionKey,keyDerivation:this.keyDerivation,encryptionKeyHash:this.encryptionKeyHash,setEncryptionKeyHash:chunkBCUBYE76_cjs.a(t=>{this.encryptionKeyHash=t,r.encryptionKeyHash=t;},"setEncryptionKeyHash")};this.syncGatewayContext=r;}return this.syncGatewayContext}getObfuscationLayer(){if(!this.obfuscationLayer){if(!this.obfuscationLayerFactory)throw new chunkZTGECGM2_cjs.n("[Ddu64 obfuscation] No obfuscation layer is wired. Use Ddu64Node/Ddu64Browser (batteries-included), or inject `obfuscationLayerFactory` when constructing Ddu64Core directly.");this.obfuscationLayer=this.obfuscationLayerFactory(gr(this.dduChar,this.paddingChar));}return this.obfuscationLayer}shouldObfuscate(r){return r?.obfuscate??this.defaultObfuscate}assertSafeChunkSeparator(r,t){if(!(t.length===0||this.isLineBreakSeparator(t))&&r.includes(t))throw new chunkZTGECGM2_cjs.c(`[Ddu64 chunking] Unsafe chunkSeparator "${t}" appears in encoded output. Use a separator that cannot be produced by the charset, footer, checksum, or URL-safe output.`)}isLineBreakSeparator(r){return r===`
|
|
8
|
-
`||r===`\r
|
|
9
|
-
`||r==="\r"}};function dt(e,r,t,n){try{return t?Te(e,r,n):!1}catch(o){throw chunkZTGECGM2_cjs.p(o)?o:new chunkZTGECGM2_cjs.j(chunkZTGECGM2_cjs.q(o),o)}}chunkBCUBYE76_cjs.a(dt,"validateFinalCharsetConfiguration");exports.a=Ae;exports.b=Se;exports.c=x;exports.d=Zr;exports.e=$t;exports.f=Ft;exports.g=gr;exports.h=k;exports.i=Rr;
|
package/dist/chunk-DMUAPREO.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunk4247T4B7_cjs=require('./chunk-4247T4B7.cjs'),chunkA3OZJS5G_cjs=require('./chunk-A3OZJS5G.cjs'),chunk76X5J2OF_cjs=require('./chunk-76X5J2OF.cjs'),chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');var a=class extends chunkA3OZJS5G_cjs.i{static{chunkBCUBYE76_cjs.a(this,"Ddu64Secure");}constructor(e,o,r){let t=chunkA3OZJS5G_cjs.b(e,o,r),c={...t.dduOptions,...t.dduChar!==void 0?{dduChar:t.dduChar}:{},...t.paddingChar!==void 0?{paddingChar:t.paddingChar}:{},adapter:t.dduOptions?.adapter,adapterFactory:t.dduOptions?.adapterFactory??(()=>new chunk76X5J2OF_cjs.a),obfuscationLayerFactory:t.dduOptions?.obfuscationLayerFactory??(f=>new chunk4247T4B7_cjs.a(f))};super(c);}decodeToBuffer(e,o){let r=this.decodeToUint8Array(e,o);return Buffer.from(r.buffer,r.byteOffset,r.byteLength)}async decodeToBufferAsync(e,o){let r=await this.decodeToUint8ArrayAsync(e,o);return Buffer.from(r.buffer,r.byteOffset,r.byteLength)}};exports.a=a;
|
package/dist/chunk-DVOLAE33.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {a}from'./chunk-EI7MMDWY.js';function o(){let e=globalThis;return e.Deno?.version?.deno?"deno":e.Bun?.version?"bun":e.process?.versions?.node?"node":typeof e.EdgeRuntime=="string"||typeof e.WebSocketPair<"u"&&e.crypto?.subtle?"edge":typeof e.crypto<"u"&&e.crypto?.subtle?"browser":"unknown"}a(o,"detectRuntime");export{o as a};
|
package/dist/chunk-EY5OURIG.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkBCUBYE76_cjs=require('./chunk-BCUBYE76.cjs');function o(){let e=globalThis;return e.Deno?.version?.deno?"deno":e.Bun?.version?"bun":e.process?.versions?.node?"node":typeof e.EdgeRuntime=="string"||typeof e.WebSocketPair<"u"&&e.crypto?.subtle?"edge":typeof e.crypto<"u"&&e.crypto?.subtle?"browser":"unknown"}chunkBCUBYE76_cjs.a(o,"detectRuntime");exports.a=o;
|