@jamiephan/casclib 0.0.0-dev.5 → 0.0.1

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/README.md CHANGED
@@ -58,8 +58,16 @@ import { Storage, File } from '@jamiephan/casclib';
58
58
  // CommonJS
59
59
  const { Storage, File } = require('@jamiephan/casclib');
60
60
 
61
- // Advanced: Direct binding access
62
- import { CascStorageBinding, CascStorage, CascFile } from '@jamiephan/casclib/bindings';
61
+ // Advanced: Direct binding access (low-level API)
62
+ import { CascStorageBinding, CascStorage, CascFile } from '@jamiephan/casclib';
63
+
64
+ // Import constants and enums
65
+ import {
66
+ CASC_OPEN_BY_NAME,
67
+ CASC_LOCALE_ENUS,
68
+ CascStorageInfoClass,
69
+ CascFileInfoClass
70
+ } from '@jamiephan/casclib';
63
71
  ```
64
72
 
65
73
  ### Opening a CASC Storage
@@ -231,6 +239,31 @@ storage.open('/path/to/heroes/HeroesData');
231
239
  storage.open('/path/to/heroes/HeroesData', { flags: 0 });
232
240
  ```
233
241
 
242
+ ##### `openEx(params: string, options?: CascOpenStorageExOptions): void`
243
+ Opens a CASC storage with extended parameters.
244
+
245
+ **Parameters:**
246
+ - `params`: Path or parameter string
247
+ - `options`: Extended opening options
248
+ - `localPath`: Local path to storage
249
+ - `codeName`: Product code name
250
+ - `region`: Server region
251
+ - `localeMask`: Locale mask for filtering files
252
+ - `flags`: Opening flags
253
+ - `buildKey`: Specific build key
254
+ - `cdnHostUrl`: CDN host URL
255
+ - `online`: Whether to use online mode
256
+
257
+ **Example:**
258
+ ```typescript
259
+ storage.openEx('/path/to/storage', {
260
+ localPath: '/path/to/storage',
261
+ codeName: 'hero',
262
+ region: 'us',
263
+ flags: 0
264
+ });
265
+ ```
266
+
234
267
  ##### `openOnline(path: string, options?: StorageOpenOptions): void`
235
268
  Opens an online CASC storage.
236
269
 
@@ -275,7 +308,7 @@ Closes the storage and releases resources.
275
308
  const closed = storage.close();
276
309
  ```
277
310
 
278
- ##### `getStorageInfo(infoClass: number): StorageInfo`
311
+ ##### `getStorageInfo(infoClass: number): CascStorageInfo`
279
312
  Gets storage information.
280
313
 
281
314
  **Parameters:**
@@ -341,7 +374,7 @@ if (info) {
341
374
 
342
375
  #### File Finding
343
376
 
344
- ##### `findFirstFile(mask?: string, listFile?: string): FindData | null`
377
+ ##### `findFirstFile(mask?: string, listFile?: string): CascFindData | null`
345
378
  Finds the first file matching the mask.
346
379
 
347
380
  **Parameters:**
@@ -358,7 +391,7 @@ if (findData) {
358
391
  }
359
392
  ```
360
393
 
361
- ##### `findNextFile(): FindData | null`
394
+ ##### `findNextFile(): CascFindData | null`
362
395
  Finds the next file in the search.
363
396
 
364
397
  **Returns:** Find data object or `null` if no more files
@@ -512,7 +545,7 @@ Gets the file size in bytes (64-bit).
512
545
  const size = file.getSize64();
513
546
  ```
514
547
 
515
- ##### `getFileInfo(infoClass: number): FileInfoResult`
548
+ ##### `getFileInfo(infoClass: number): CascFileInfoResult`
516
549
  Gets detailed file information.
517
550
 
518
551
  **Parameters:**
@@ -599,43 +632,165 @@ interface FileOpenOptions {
599
632
  flags?: number;
600
633
  }
601
634
 
635
+ interface CascOpenStorageExOptions {
636
+ localPath?: string;
637
+ codeName?: string;
638
+ region?: string;
639
+ localeMask?: number;
640
+ flags?: number;
641
+ buildKey?: string;
642
+ cdnHostUrl?: string;
643
+ online?: boolean;
644
+ }
645
+
602
646
  interface FileInfo {
603
647
  name: string;
604
648
  size: number;
605
649
  }
606
650
 
607
- interface FindData {
651
+ interface CascFindData {
608
652
  fileName: string;
653
+ ckey: Buffer;
654
+ ekey: Buffer;
655
+ tagBitMask: number;
609
656
  fileSize: number;
610
- localeFlags: number;
657
+ plainName: string | null;
611
658
  fileDataId: number;
659
+ localeFlags: number;
612
660
  contentFlags: number;
613
- // ... additional fields
661
+ spanCount: number;
662
+ available: boolean;
663
+ nameType: CascNameType;
614
664
  }
615
665
 
616
- interface StorageInfo {
617
- // Storage-specific information
666
+ interface CascStorageInfo {
667
+ fileCount?: number;
668
+ features?: number;
669
+ codeName?: string;
670
+ buildNumber?: number;
618
671
  }
619
672
 
620
- interface FileInfoResult {
621
- // File-specific information
673
+ interface CascFileInfoResult {
674
+ ckey?: Buffer;
675
+ ekey?: Buffer;
676
+ dataFileName?: string;
677
+ storageOffset?: number;
678
+ segmentOffset?: number;
679
+ tagBitMask?: number;
680
+ fileNameHash?: number;
681
+ contentSize?: number;
682
+ encodedSize?: number;
683
+ segmentIndex?: number;
684
+ spanCount?: number;
685
+ fileDataId?: number;
686
+ localeFlags?: number;
687
+ contentFlags?: number;
622
688
  }
623
689
  ```
624
690
 
691
+ ## Enums
692
+
693
+ ```typescript
694
+ enum CascStorageInfoClass {
695
+ LocalFileCount = 0,
696
+ TotalFileCount = 1,
697
+ Features = 2,
698
+ InstalledLocales = 3,
699
+ Product = 4,
700
+ Tags = 5,
701
+ PathProduct = 6
702
+ }
703
+
704
+ enum CascFileInfoClass {
705
+ ContentKey = 0,
706
+ EncodedKey = 1,
707
+ FullInfo = 2,
708
+ SpanInfo = 3
709
+ }
710
+
711
+ enum CascNameType {
712
+ Full = 0,
713
+ DataId = 1,
714
+ CKey = 2,
715
+ EKey = 3
716
+ }
717
+ ```
718
+
719
+ ## Constants
720
+
721
+ The package exports numerous constants from CascLib. Here are some commonly used ones:
722
+
723
+ ### File Open Flags
724
+ ```typescript
725
+ CASC_OPEN_BY_NAME // Open file by name
726
+ CASC_OPEN_BY_CKEY // Open file by content key
727
+ CASC_OPEN_BY_EKEY // Open file by encoded key
728
+ CASC_OPEN_BY_FILEID // Open file by file ID
729
+ CASC_STRICT_DATA_CHECK // Enable strict data checking
730
+ CASC_OVERCOME_ENCRYPTED // Try to overcome encryption
731
+ ```
732
+
733
+ ### Locale Flags
734
+ ```typescript
735
+ CASC_LOCALE_ALL // All locales
736
+ CASC_LOCALE_ENUS // English (US)
737
+ CASC_LOCALE_KOKR // Korean
738
+ CASC_LOCALE_FRFR // French
739
+ CASC_LOCALE_DEDE // German
740
+ CASC_LOCALE_ZHCN // Chinese (Simplified)
741
+ CASC_LOCALE_ESES // Spanish (Spain)
742
+ CASC_LOCALE_ZHTW // Chinese (Traditional)
743
+ CASC_LOCALE_ENGB // English (GB)
744
+ // ... and more
745
+ ```
746
+
747
+ ### Content Flags
748
+ ```typescript
749
+ CASC_CFLAG_INSTALL // Install file
750
+ CASC_CFLAG_LOAD_ON_WINDOWS // Load on Windows
751
+ CASC_CFLAG_LOAD_ON_MAC // Load on macOS
752
+ CASC_CFLAG_ENCRYPTED // File is encrypted
753
+ CASC_CFLAG_NO_COMPRESSION // No compression
754
+ // ... and more
755
+ ```
756
+
757
+ ### Feature Flags
758
+ ```typescript
759
+ CASC_FEATURE_FILE_NAMES // Storage has file names
760
+ CASC_FEATURE_FILE_DATA_IDS // Storage has file data IDs
761
+ CASC_FEATURE_LOCALE_FLAGS // Storage has locale flags
762
+ CASC_FEATURE_ONLINE // Online storage
763
+ // ... and more
764
+ ```
765
+
766
+ ### File Positioning
767
+ ```typescript
768
+ FILE_BEGIN // Beginning of file
769
+ FILE_CURRENT // Current position
770
+ FILE_END // End of file
771
+ ```
772
+
773
+ See [lib/bindings.ts](lib/bindings.ts) for a complete list of available constants.
774
+
625
775
  ## Advanced Usage
626
776
 
627
777
  ### Direct Binding Access
628
778
 
629
- For advanced users who need direct access to the native bindings:
779
+ For advanced users who need direct access to the native bindings with exact CascLib.h function names:
630
780
 
631
781
  ```typescript
632
- import { CascStorageBinding, CascStorage, CascFile } from '@jamiephan/casclib/bindings';
633
- import * as constants from '@jamiephan/casclib';
782
+ import {
783
+ CascStorageBinding,
784
+ CascStorage,
785
+ CascFile,
786
+ CASC_OPEN_BY_NAME
787
+ } from '@jamiephan/casclib';
634
788
 
789
+ // Use the low-level binding interface directly
635
790
  const storage: CascStorage = new CascStorageBinding();
636
791
  storage.CascOpenStorage('/path/to/storage', 0);
637
792
 
638
- const file: CascFile = storage.CascOpenFile('filename.txt', constants.CASC_OPEN_BY_NAME);
793
+ const file: CascFile = storage.CascOpenFile('filename.txt', CASC_OPEN_BY_NAME);
639
794
  const size = file.CascGetFileSize64();
640
795
  const content = file.readFileAll();
641
796
  file.CascCloseFile();
@@ -643,6 +798,36 @@ file.CascCloseFile();
643
798
  storage.CascCloseStorage();
644
799
  ```
645
800
 
801
+ ### Utility Functions
802
+
803
+ The package also exports some utility functions:
804
+
805
+ ```typescript
806
+ import {
807
+ CascOpenLocalFile,
808
+ GetCascError,
809
+ SetCascError,
810
+ CascCdnGetDefault,
811
+ CascCdnDownload
812
+ } from '@jamiephan/casclib';
813
+
814
+ // Open a local file directly (outside of storage)
815
+ const localFile = CascOpenLocalFile('/path/to/file.txt');
816
+
817
+ // Get the last CASC error code
818
+ const errorCode = GetCascError();
819
+
820
+ // Get default CDN URL
821
+ const defaultCdn = CascCdnGetDefault();
822
+
823
+ // Download from CDN
824
+ const data = CascCdnDownload(
825
+ 'http://us.patch.battle.net:1119',
826
+ 'hero',
827
+ 'some-file.idx'
828
+ );
829
+ ```
830
+
646
831
  ### Binding Naming Convention
647
832
 
648
833
  The low-level bindings use **exact names from CascLib.h**:
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../lib/bindings.ts"],"names":[],"mappings":"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"}
@@ -35,10 +35,8 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.CASC_LOCALE_ITIT = exports.CASC_LOCALE_PTBR = exports.CASC_LOCALE_RURU = exports.CASC_LOCALE_ESMX = exports.CASC_LOCALE_ENTW = exports.CASC_LOCALE_ENCN = exports.CASC_LOCALE_ENGB = exports.CASC_LOCALE_ZHTW = exports.CASC_LOCALE_ESES = exports.CASC_LOCALE_ZHCN = exports.CASC_LOCALE_DEDE = exports.CASC_LOCALE_FRFR = exports.CASC_LOCALE_RESERVED = exports.CASC_LOCALE_KOKR = exports.CASC_LOCALE_ENUS = exports.CASC_LOCALE_UNKNOWN1 = exports.CASC_LOCALE_NONE = exports.CASC_LOCALE_ALL_WOW = exports.CASC_LOCALE_ALL = exports.CASC_OPEN_CKEY_ONCE = exports.CASC_OVERCOME_ENCRYPTED = exports.CASC_STRICT_DATA_CHECK = exports.CASC_OPEN_FLAGS_MASK = exports.CASC_OPEN_TYPE_MASK = exports.CASC_OPEN_BY_FILEID = exports.CASC_OPEN_BY_EKEY = exports.CASC_OPEN_BY_CKEY = exports.CASC_OPEN_BY_NAME = exports.CascProgressDownloadingArchiveIndexes = exports.CascProgressLoadingIndexes = exports.CascProgressDownloadingFile = exports.CascProgressLoadingManifest = exports.CascProgressLoadingFile = exports.CASC_PARAM_SEPARATOR = exports.CASC_FILEID_FORMAT = exports.FILE_END = exports.FILE_CURRENT = exports.FILE_BEGIN = exports.CASCLIB_VERSION_STRING = exports.CASCLIB_VERSION = exports.CascCdnDownload = exports.CascCdnGetDefault = exports.SetCascError = exports.GetCascError = exports.CascOpenLocalFile = exports.CascFileBinding = exports.CascStorageBinding = exports.CascNameType = exports.CascFileInfoClass = exports.CascStorageInfoClass = void 0;
37
37
  exports.CASC_KEY_LENGTH = exports.CASC_FEATURE_FORCE_DOWNLOAD = exports.CASC_FEATURE_ONLINE = exports.CASC_FEATURE_DATA_FILES = exports.CASC_FEATURE_DATA_ARCHIVES = exports.CASC_FEATURE_CONTENT_FLAGS = exports.CASC_FEATURE_LOCALE_FLAGS = exports.CASC_FEATURE_FILE_DATA_IDS = exports.CASC_FEATURE_FNAME_HASHES_OPTIONAL = exports.CASC_FEATURE_FNAME_HASHES = exports.CASC_FEATURE_TAGS = exports.CASC_FEATURE_ROOT_CKEY = exports.CASC_FEATURE_FILE_NAMES = exports.CascFileSpanInfo = exports.CascFileFullInfo = exports.CascFileEncodedKey = exports.CascFileContentKey = exports.CascStoragePathProduct = exports.CascStorageTags = exports.CascStorageProduct = exports.CascStorageInstalledLocales = exports.CascStorageFeatures = exports.CascStorageTotalFileCount = exports.CascStorageLocalFileCount = exports.CASC_INVALID_SIZE64 = exports.CASC_INVALID_OFFS64 = exports.CASC_INVALID_ID = exports.CASC_INVALID_POS = exports.CASC_INVALID_SIZE = exports.CASC_INVALID_INDEX = exports.SHA1_STRING_SIZE = exports.SHA1_HASH_SIZE = exports.MD5_STRING_SIZE = exports.MD5_HASH_SIZE = exports.CASC_CFLAG_NO_COMPRESSION = exports.CASC_CFLAG_BUNDLE = exports.CASC_CFLAG_UNCMN_RESOLUTION = exports.CASC_CFLAG_NO_NAME_HASH = exports.CASC_CFLAG_ENCRYPTED = exports.CASC_CFLAG_ARM64 = exports.CASC_CFLAG_UPDATE_PLUGIN = exports.CASC_CFLAG_DONT_LOAD = exports.CASC_CFLAG_LOW_VIOLENCE = exports.CASC_CFLAG_X86_64 = exports.CASC_CFLAG_X86_32 = exports.CASC_CFLAG_LOAD_ON_MAC = exports.CASC_CFLAG_LOAD_ON_WINDOWS = exports.CASC_CFLAG_INSTALL = exports.CASC_LOCALE_PTPT = void 0;
38
- // Native bindings for CascLib
39
38
  const path = __importStar(require("path"));
40
39
  const bindings = require('node-gyp-build')(path.join(__dirname, '..'));
41
- // Storage info classes
42
40
  var CascStorageInfoClass;
43
41
  (function (CascStorageInfoClass) {
44
42
  CascStorageInfoClass[CascStorageInfoClass["LocalFileCount"] = 0] = "LocalFileCount";
@@ -49,7 +47,6 @@ var CascStorageInfoClass;
49
47
  CascStorageInfoClass[CascStorageInfoClass["Tags"] = 5] = "Tags";
50
48
  CascStorageInfoClass[CascStorageInfoClass["PathProduct"] = 6] = "PathProduct";
51
49
  })(CascStorageInfoClass || (exports.CascStorageInfoClass = CascStorageInfoClass = {}));
52
- // File info classes
53
50
  var CascFileInfoClass;
54
51
  (function (CascFileInfoClass) {
55
52
  CascFileInfoClass[CascFileInfoClass["ContentKey"] = 0] = "ContentKey";
@@ -57,7 +54,6 @@ var CascFileInfoClass;
57
54
  CascFileInfoClass[CascFileInfoClass["FullInfo"] = 2] = "FullInfo";
58
55
  CascFileInfoClass[CascFileInfoClass["SpanInfo"] = 3] = "SpanInfo";
59
56
  })(CascFileInfoClass || (exports.CascFileInfoClass = CascFileInfoClass = {}));
60
- // Name type enum
61
57
  var CascNameType;
62
58
  (function (CascNameType) {
63
59
  CascNameType[CascNameType["Full"] = 0] = "Full";
@@ -67,30 +63,23 @@ var CascNameType;
67
63
  })(CascNameType || (exports.CascNameType = CascNameType = {}));
68
64
  exports.CascStorageBinding = bindings.Storage;
69
65
  exports.CascFileBinding = bindings.File;
70
- // Utility functions
71
66
  exports.CascOpenLocalFile = bindings.CascOpenLocalFile;
72
67
  exports.GetCascError = bindings.GetCascError;
73
68
  exports.SetCascError = bindings.SetCascError;
74
- // CDN functions
75
69
  exports.CascCdnGetDefault = bindings.CascCdnGetDefault;
76
70
  exports.CascCdnDownload = bindings.CascCdnDownload;
77
- // Version constants
78
71
  exports.CASCLIB_VERSION = bindings.CASCLIB_VERSION || 0x0300;
79
72
  exports.CASCLIB_VERSION_STRING = "3.0";
80
- // File positioning constants
81
73
  exports.FILE_BEGIN = bindings.FILE_BEGIN;
82
74
  exports.FILE_CURRENT = bindings.FILE_CURRENT;
83
75
  exports.FILE_END = bindings.FILE_END;
84
- // Other useful constants
85
76
  exports.CASC_FILEID_FORMAT = bindings.CASC_FILEID_FORMAT;
86
77
  exports.CASC_PARAM_SEPARATOR = bindings.CASC_PARAM_SEPARATOR;
87
- // Progress message constants
88
78
  exports.CascProgressLoadingFile = bindings.CascProgressLoadingFile;
89
79
  exports.CascProgressLoadingManifest = bindings.CascProgressLoadingManifest;
90
80
  exports.CascProgressDownloadingFile = bindings.CascProgressDownloadingFile;
91
81
  exports.CascProgressLoadingIndexes = bindings.CascProgressLoadingIndexes;
92
82
  exports.CascProgressDownloadingArchiveIndexes = bindings.CascProgressDownloadingArchiveIndexes;
93
- // Open flags
94
83
  exports.CASC_OPEN_BY_NAME = bindings.CASC_OPEN_BY_NAME;
95
84
  exports.CASC_OPEN_BY_CKEY = bindings.CASC_OPEN_BY_CKEY;
96
85
  exports.CASC_OPEN_BY_EKEY = bindings.CASC_OPEN_BY_EKEY;
@@ -100,7 +89,6 @@ exports.CASC_OPEN_FLAGS_MASK = bindings.CASC_OPEN_FLAGS_MASK;
100
89
  exports.CASC_STRICT_DATA_CHECK = bindings.CASC_STRICT_DATA_CHECK;
101
90
  exports.CASC_OVERCOME_ENCRYPTED = bindings.CASC_OVERCOME_ENCRYPTED;
102
91
  exports.CASC_OPEN_CKEY_ONCE = bindings.CASC_OPEN_CKEY_ONCE;
103
- // Locale flags
104
92
  exports.CASC_LOCALE_ALL = bindings.CASC_LOCALE_ALL;
105
93
  exports.CASC_LOCALE_ALL_WOW = bindings.CASC_LOCALE_ALL_WOW;
106
94
  exports.CASC_LOCALE_NONE = bindings.CASC_LOCALE_NONE;
@@ -121,7 +109,6 @@ exports.CASC_LOCALE_RURU = bindings.CASC_LOCALE_RURU;
121
109
  exports.CASC_LOCALE_PTBR = bindings.CASC_LOCALE_PTBR;
122
110
  exports.CASC_LOCALE_ITIT = bindings.CASC_LOCALE_ITIT;
123
111
  exports.CASC_LOCALE_PTPT = bindings.CASC_LOCALE_PTPT;
124
- // Content flags
125
112
  exports.CASC_CFLAG_INSTALL = bindings.CASC_CFLAG_INSTALL;
126
113
  exports.CASC_CFLAG_LOAD_ON_WINDOWS = bindings.CASC_CFLAG_LOAD_ON_WINDOWS;
127
114
  exports.CASC_CFLAG_LOAD_ON_MAC = bindings.CASC_CFLAG_LOAD_ON_MAC;
@@ -136,19 +123,16 @@ exports.CASC_CFLAG_NO_NAME_HASH = bindings.CASC_CFLAG_NO_NAME_HASH;
136
123
  exports.CASC_CFLAG_UNCMN_RESOLUTION = bindings.CASC_CFLAG_UNCMN_RESOLUTION;
137
124
  exports.CASC_CFLAG_BUNDLE = bindings.CASC_CFLAG_BUNDLE;
138
125
  exports.CASC_CFLAG_NO_COMPRESSION = bindings.CASC_CFLAG_NO_COMPRESSION;
139
- // Hash sizes
140
126
  exports.MD5_HASH_SIZE = bindings.MD5_HASH_SIZE;
141
127
  exports.MD5_STRING_SIZE = bindings.MD5_STRING_SIZE;
142
128
  exports.SHA1_HASH_SIZE = bindings.SHA1_HASH_SIZE;
143
129
  exports.SHA1_STRING_SIZE = bindings.SHA1_STRING_SIZE;
144
- // Invalid values
145
130
  exports.CASC_INVALID_INDEX = bindings.CASC_INVALID_INDEX;
146
131
  exports.CASC_INVALID_SIZE = bindings.CASC_INVALID_SIZE;
147
132
  exports.CASC_INVALID_POS = bindings.CASC_INVALID_POS;
148
133
  exports.CASC_INVALID_ID = bindings.CASC_INVALID_ID;
149
134
  exports.CASC_INVALID_OFFS64 = bindings.CASC_INVALID_OFFS64;
150
135
  exports.CASC_INVALID_SIZE64 = bindings.CASC_INVALID_SIZE64;
151
- // Storage info constants
152
136
  exports.CascStorageLocalFileCount = bindings.CascStorageLocalFileCount;
153
137
  exports.CascStorageTotalFileCount = bindings.CascStorageTotalFileCount;
154
138
  exports.CascStorageFeatures = bindings.CascStorageFeatures;
@@ -156,12 +140,10 @@ exports.CascStorageInstalledLocales = bindings.CascStorageInstalledLocales;
156
140
  exports.CascStorageProduct = bindings.CascStorageProduct;
157
141
  exports.CascStorageTags = bindings.CascStorageTags;
158
142
  exports.CascStoragePathProduct = bindings.CascStoragePathProduct;
159
- // File info constants
160
143
  exports.CascFileContentKey = bindings.CascFileContentKey;
161
144
  exports.CascFileEncodedKey = bindings.CascFileEncodedKey;
162
145
  exports.CascFileFullInfo = bindings.CascFileFullInfo;
163
146
  exports.CascFileSpanInfo = bindings.CascFileSpanInfo;
164
- // Feature flags
165
147
  exports.CASC_FEATURE_FILE_NAMES = bindings.CASC_FEATURE_FILE_NAMES;
166
148
  exports.CASC_FEATURE_ROOT_CKEY = bindings.CASC_FEATURE_ROOT_CKEY;
167
149
  exports.CASC_FEATURE_TAGS = bindings.CASC_FEATURE_TAGS;
@@ -174,6 +156,5 @@ exports.CASC_FEATURE_DATA_ARCHIVES = bindings.CASC_FEATURE_DATA_ARCHIVES;
174
156
  exports.CASC_FEATURE_DATA_FILES = bindings.CASC_FEATURE_DATA_FILES;
175
157
  exports.CASC_FEATURE_ONLINE = bindings.CASC_FEATURE_ONLINE;
176
158
  exports.CASC_FEATURE_FORCE_DOWNLOAD = bindings.CASC_FEATURE_FORCE_DOWNLOAD;
177
- // Key length
178
159
  exports.CASC_KEY_LENGTH = bindings.CASC_KEY_LENGTH;
179
160
  //# sourceMappingURL=bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../lib/bindings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6B;AAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AAGvE,IAAY,oBAQX;AARD,WAAY,oBAAoB;IAC9B,mFAAkB,CAAA;IAClB,mFAAkB,CAAA;IAClB,uEAAY,CAAA;IACZ,uFAAoB,CAAA;IACpB,qEAAW,CAAA;IACX,+DAAQ,CAAA;IACR,6EAAe,CAAA;AACjB,CAAC,EARW,oBAAoB,oCAApB,oBAAoB,QAQ/B;AAGD,IAAY,iBAKX;AALD,WAAY,iBAAiB;IAC3B,qEAAc,CAAA;IACd,qEAAc,CAAA;IACd,iEAAY,CAAA;IACZ,iEAAY,CAAA;AACd,CAAC,EALW,iBAAiB,iCAAjB,iBAAiB,QAK5B;AAGD,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,+CAAQ,CAAA;IACR,mDAAU,CAAA;IACV,+CAAQ,CAAA;IACR,+CAAQ,CAAA;AACV,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AA+IY,QAAA,kBAAkB,GAA0B,QAAQ,CAAC,OAAO,CAAC;AAC7D,QAAA,eAAe,GAAuB,QAAQ,CAAC,IAAI,CAAC;AAGpD,QAAA,iBAAiB,GAAmD,QAAQ,CAAC,iBAAiB,CAAC;AAC/F,QAAA,YAAY,GAAiB,QAAQ,CAAC,YAAY,CAAC;AACnD,QAAA,YAAY,GAA4B,QAAQ,CAAC,YAAY,CAAC;AAG9D,QAAA,iBAAiB,GAAwB,QAAQ,CAAC,iBAAiB,CAAC;AACpE,QAAA,eAAe,GAA6E,QAAQ,CAAC,eAAe,CAAC;AAGrH,QAAA,eAAe,GAAW,QAAQ,CAAC,eAAe,IAAI,MAAM,CAAC;AAC7D,QAAA,sBAAsB,GAAW,KAAK,CAAC;AAGvC,QAAA,UAAU,GAAW,QAAQ,CAAC,UAAU,CAAC;AACzC,QAAA,YAAY,GAAW,QAAQ,CAAC,YAAY,CAAC;AAC7C,QAAA,QAAQ,GAAW,QAAQ,CAAC,QAAQ,CAAC;AAGrC,QAAA,kBAAkB,GAAW,QAAQ,CAAC,kBAAkB,CAAC;AACzD,QAAA,oBAAoB,GAAW,QAAQ,CAAC,oBAAoB,CAAC;AAG7D,QAAA,uBAAuB,GAAW,QAAQ,CAAC,uBAAuB,CAAC;AACnE,QAAA,2BAA2B,GAAW,QAAQ,CAAC,2BAA2B,CAAC;AAC3E,QAAA,2BAA2B,GAAW,QAAQ,CAAC,2BAA2B,CAAC;AAC3E,QAAA,0BAA0B,GAAW,QAAQ,CAAC,0BAA0B,CAAC;AACzE,QAAA,qCAAqC,GAAW,QAAQ,CAAC,qCAAqC,CAAC;AAG/F,QAAA,iBAAiB,GAAW,QAAQ,CAAC,iBAAiB,CAAC;AACvD,QAAA,iBAAiB,GAAW,QAAQ,CAAC,iBAAiB,CAAC;AACvD,QAAA,iBAAiB,GAAW,QAAQ,CAAC,iBAAiB,CAAC;AACvD,QAAA,mBAAmB,GAAW,QAAQ,CAAC,mBAAmB,CAAC;AAC3D,QAAA,mBAAmB,GAAW,QAAQ,CAAC,mBAAmB,CAAC;AAC3D,QAAA,oBAAoB,GAAW,QAAQ,CAAC,oBAAoB,CAAC;AAC7D,QAAA,sBAAsB,GAAW,QAAQ,CAAC,sBAAsB,CAAC;AACjE,QAAA,uBAAuB,GAAW,QAAQ,CAAC,uBAAuB,CAAC;AACnE,QAAA,mBAAmB,GAAW,QAAQ,CAAC,mBAAmB,CAAC;AAG3D,QAAA,eAAe,GAAW,QAAQ,CAAC,eAAe,CAAC;AACnD,QAAA,mBAAmB,GAAW,QAAQ,CAAC,mBAAmB,CAAC;AAC3D,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,oBAAoB,GAAW,QAAQ,CAAC,oBAAoB,CAAC;AAC7D,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,oBAAoB,GAAW,QAAQ,CAAC,oBAAoB,CAAC;AAC7D,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AAGrD,QAAA,kBAAkB,GAAW,QAAQ,CAAC,kBAAkB,CAAC;AACzD,QAAA,0BAA0B,GAAW,QAAQ,CAAC,0BAA0B,CAAC;AACzE,QAAA,sBAAsB,GAAW,QAAQ,CAAC,sBAAsB,CAAC;AACjE,QAAA,iBAAiB,GAAW,QAAQ,CAAC,iBAAiB,CAAC;AACvD,QAAA,iBAAiB,GAAW,QAAQ,CAAC,iBAAiB,CAAC;AACvD,QAAA,uBAAuB,GAAW,QAAQ,CAAC,uBAAuB,CAAC;AACnE,QAAA,oBAAoB,GAAW,QAAQ,CAAC,oBAAoB,CAAC;AAC7D,QAAA,wBAAwB,GAAW,QAAQ,CAAC,wBAAwB,CAAC;AACrE,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,oBAAoB,GAAW,QAAQ,CAAC,oBAAoB,CAAC;AAC7D,QAAA,uBAAuB,GAAW,QAAQ,CAAC,uBAAuB,CAAC;AACnE,QAAA,2BAA2B,GAAW,QAAQ,CAAC,2BAA2B,CAAC;AAC3E,QAAA,iBAAiB,GAAW,QAAQ,CAAC,iBAAiB,CAAC;AACvD,QAAA,yBAAyB,GAAW,QAAQ,CAAC,yBAAyB,CAAC;AAGvE,QAAA,aAAa,GAAW,QAAQ,CAAC,aAAa,CAAC;AAC/C,QAAA,eAAe,GAAW,QAAQ,CAAC,eAAe,CAAC;AACnD,QAAA,cAAc,GAAW,QAAQ,CAAC,cAAc,CAAC;AACjD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AAGrD,QAAA,kBAAkB,GAAW,QAAQ,CAAC,kBAAkB,CAAC;AACzD,QAAA,iBAAiB,GAAW,QAAQ,CAAC,iBAAiB,CAAC;AACvD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,eAAe,GAAW,QAAQ,CAAC,eAAe,CAAC;AACnD,QAAA,mBAAmB,GAAW,QAAQ,CAAC,mBAAmB,CAAC;AAC3D,QAAA,mBAAmB,GAAW,QAAQ,CAAC,mBAAmB,CAAC;AAG3D,QAAA,yBAAyB,GAAW,QAAQ,CAAC,yBAAyB,CAAC;AACvE,QAAA,yBAAyB,GAAW,QAAQ,CAAC,yBAAyB,CAAC;AACvE,QAAA,mBAAmB,GAAW,QAAQ,CAAC,mBAAmB,CAAC;AAC3D,QAAA,2BAA2B,GAAW,QAAQ,CAAC,2BAA2B,CAAC;AAC3E,QAAA,kBAAkB,GAAW,QAAQ,CAAC,kBAAkB,CAAC;AACzD,QAAA,eAAe,GAAW,QAAQ,CAAC,eAAe,CAAC;AACnD,QAAA,sBAAsB,GAAW,QAAQ,CAAC,sBAAsB,CAAC;AAGjE,QAAA,kBAAkB,GAAW,QAAQ,CAAC,kBAAkB,CAAC;AACzD,QAAA,kBAAkB,GAAW,QAAQ,CAAC,kBAAkB,CAAC;AACzD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AACrD,QAAA,gBAAgB,GAAW,QAAQ,CAAC,gBAAgB,CAAC;AAGrD,QAAA,uBAAuB,GAAW,QAAQ,CAAC,uBAAuB,CAAC;AACnE,QAAA,sBAAsB,GAAW,QAAQ,CAAC,sBAAsB,CAAC;AACjE,QAAA,iBAAiB,GAAW,QAAQ,CAAC,iBAAiB,CAAC;AACvD,QAAA,yBAAyB,GAAW,QAAQ,CAAC,yBAAyB,CAAC;AACvE,QAAA,kCAAkC,GAAW,QAAQ,CAAC,kCAAkC,CAAC;AACzF,QAAA,0BAA0B,GAAW,QAAQ,CAAC,0BAA0B,CAAC;AACzE,QAAA,yBAAyB,GAAW,QAAQ,CAAC,yBAAyB,CAAC;AACvE,QAAA,0BAA0B,GAAW,QAAQ,CAAC,0BAA0B,CAAC;AACzE,QAAA,0BAA0B,GAAW,QAAQ,CAAC,0BAA0B,CAAC;AACzE,QAAA,uBAAuB,GAAW,QAAQ,CAAC,uBAAuB,CAAC;AACnE,QAAA,mBAAmB,GAAW,QAAQ,CAAC,mBAAmB,CAAC;AAC3D,QAAA,2BAA2B,GAAW,QAAQ,CAAC,2BAA2B,CAAC;AAG3E,QAAA,eAAe,GAAW,QAAQ,CAAC,eAAe,CAAC"}
@@ -0,0 +1,111 @@
1
+ // ESM wrapper for bindings
2
+ // This file is auto-generated by generate-esm.js
3
+ import { createRequire } from 'module';
4
+ const require = createRequire(import.meta.url);
5
+
6
+ // Import the CommonJS module
7
+ const cjs = require('./bindings.js');
8
+
9
+ // Re-export all named exports
10
+ export const CascStorageInfoClass = cjs.CascStorageInfoClass;
11
+ export const CascFileInfoClass = cjs.CascFileInfoClass;
12
+ export const CascNameType = cjs.CascNameType;
13
+ export const CascStorageBinding = cjs.CascStorageBinding;
14
+ export const CascFileBinding = cjs.CascFileBinding;
15
+ export const CascOpenLocalFile = cjs.CascOpenLocalFile;
16
+ export const GetCascError = cjs.GetCascError;
17
+ export const SetCascError = cjs.SetCascError;
18
+ export const CascCdnGetDefault = cjs.CascCdnGetDefault;
19
+ export const CascCdnDownload = cjs.CascCdnDownload;
20
+ export const CASCLIB_VERSION = cjs.CASCLIB_VERSION;
21
+ export const CASCLIB_VERSION_STRING = cjs.CASCLIB_VERSION_STRING;
22
+ export const FILE_BEGIN = cjs.FILE_BEGIN;
23
+ export const FILE_CURRENT = cjs.FILE_CURRENT;
24
+ export const FILE_END = cjs.FILE_END;
25
+ export const CASC_FILEID_FORMAT = cjs.CASC_FILEID_FORMAT;
26
+ export const CASC_PARAM_SEPARATOR = cjs.CASC_PARAM_SEPARATOR;
27
+ export const CascProgressLoadingFile = cjs.CascProgressLoadingFile;
28
+ export const CascProgressLoadingManifest = cjs.CascProgressLoadingManifest;
29
+ export const CascProgressDownloadingFile = cjs.CascProgressDownloadingFile;
30
+ export const CascProgressLoadingIndexes = cjs.CascProgressLoadingIndexes;
31
+ export const CascProgressDownloadingArchiveIndexes = cjs.CascProgressDownloadingArchiveIndexes;
32
+ export const CASC_OPEN_BY_NAME = cjs.CASC_OPEN_BY_NAME;
33
+ export const CASC_OPEN_BY_CKEY = cjs.CASC_OPEN_BY_CKEY;
34
+ export const CASC_OPEN_BY_EKEY = cjs.CASC_OPEN_BY_EKEY;
35
+ export const CASC_OPEN_BY_FILEID = cjs.CASC_OPEN_BY_FILEID;
36
+ export const CASC_OPEN_TYPE_MASK = cjs.CASC_OPEN_TYPE_MASK;
37
+ export const CASC_OPEN_FLAGS_MASK = cjs.CASC_OPEN_FLAGS_MASK;
38
+ export const CASC_STRICT_DATA_CHECK = cjs.CASC_STRICT_DATA_CHECK;
39
+ export const CASC_OVERCOME_ENCRYPTED = cjs.CASC_OVERCOME_ENCRYPTED;
40
+ export const CASC_OPEN_CKEY_ONCE = cjs.CASC_OPEN_CKEY_ONCE;
41
+ export const CASC_LOCALE_ALL = cjs.CASC_LOCALE_ALL;
42
+ export const CASC_LOCALE_ALL_WOW = cjs.CASC_LOCALE_ALL_WOW;
43
+ export const CASC_LOCALE_NONE = cjs.CASC_LOCALE_NONE;
44
+ export const CASC_LOCALE_UNKNOWN1 = cjs.CASC_LOCALE_UNKNOWN1;
45
+ export const CASC_LOCALE_ENUS = cjs.CASC_LOCALE_ENUS;
46
+ export const CASC_LOCALE_KOKR = cjs.CASC_LOCALE_KOKR;
47
+ export const CASC_LOCALE_RESERVED = cjs.CASC_LOCALE_RESERVED;
48
+ export const CASC_LOCALE_FRFR = cjs.CASC_LOCALE_FRFR;
49
+ export const CASC_LOCALE_DEDE = cjs.CASC_LOCALE_DEDE;
50
+ export const CASC_LOCALE_ZHCN = cjs.CASC_LOCALE_ZHCN;
51
+ export const CASC_LOCALE_ESES = cjs.CASC_LOCALE_ESES;
52
+ export const CASC_LOCALE_ZHTW = cjs.CASC_LOCALE_ZHTW;
53
+ export const CASC_LOCALE_ENGB = cjs.CASC_LOCALE_ENGB;
54
+ export const CASC_LOCALE_ENCN = cjs.CASC_LOCALE_ENCN;
55
+ export const CASC_LOCALE_ENTW = cjs.CASC_LOCALE_ENTW;
56
+ export const CASC_LOCALE_ESMX = cjs.CASC_LOCALE_ESMX;
57
+ export const CASC_LOCALE_RURU = cjs.CASC_LOCALE_RURU;
58
+ export const CASC_LOCALE_PTBR = cjs.CASC_LOCALE_PTBR;
59
+ export const CASC_LOCALE_ITIT = cjs.CASC_LOCALE_ITIT;
60
+ export const CASC_LOCALE_PTPT = cjs.CASC_LOCALE_PTPT;
61
+ export const CASC_CFLAG_INSTALL = cjs.CASC_CFLAG_INSTALL;
62
+ export const CASC_CFLAG_LOAD_ON_WINDOWS = cjs.CASC_CFLAG_LOAD_ON_WINDOWS;
63
+ export const CASC_CFLAG_LOAD_ON_MAC = cjs.CASC_CFLAG_LOAD_ON_MAC;
64
+ export const CASC_CFLAG_X86_32 = cjs.CASC_CFLAG_X86_32;
65
+ export const CASC_CFLAG_X86_64 = cjs.CASC_CFLAG_X86_64;
66
+ export const CASC_CFLAG_LOW_VIOLENCE = cjs.CASC_CFLAG_LOW_VIOLENCE;
67
+ export const CASC_CFLAG_DONT_LOAD = cjs.CASC_CFLAG_DONT_LOAD;
68
+ export const CASC_CFLAG_UPDATE_PLUGIN = cjs.CASC_CFLAG_UPDATE_PLUGIN;
69
+ export const CASC_CFLAG_ARM64 = cjs.CASC_CFLAG_ARM64;
70
+ export const CASC_CFLAG_ENCRYPTED = cjs.CASC_CFLAG_ENCRYPTED;
71
+ export const CASC_CFLAG_NO_NAME_HASH = cjs.CASC_CFLAG_NO_NAME_HASH;
72
+ export const CASC_CFLAG_UNCMN_RESOLUTION = cjs.CASC_CFLAG_UNCMN_RESOLUTION;
73
+ export const CASC_CFLAG_BUNDLE = cjs.CASC_CFLAG_BUNDLE;
74
+ export const CASC_CFLAG_NO_COMPRESSION = cjs.CASC_CFLAG_NO_COMPRESSION;
75
+ export const MD5_HASH_SIZE = cjs.MD5_HASH_SIZE;
76
+ export const MD5_STRING_SIZE = cjs.MD5_STRING_SIZE;
77
+ export const SHA1_HASH_SIZE = cjs.SHA1_HASH_SIZE;
78
+ export const SHA1_STRING_SIZE = cjs.SHA1_STRING_SIZE;
79
+ export const CASC_INVALID_INDEX = cjs.CASC_INVALID_INDEX;
80
+ export const CASC_INVALID_SIZE = cjs.CASC_INVALID_SIZE;
81
+ export const CASC_INVALID_POS = cjs.CASC_INVALID_POS;
82
+ export const CASC_INVALID_ID = cjs.CASC_INVALID_ID;
83
+ export const CASC_INVALID_OFFS64 = cjs.CASC_INVALID_OFFS64;
84
+ export const CASC_INVALID_SIZE64 = cjs.CASC_INVALID_SIZE64;
85
+ export const CascStorageLocalFileCount = cjs.CascStorageLocalFileCount;
86
+ export const CascStorageTotalFileCount = cjs.CascStorageTotalFileCount;
87
+ export const CascStorageFeatures = cjs.CascStorageFeatures;
88
+ export const CascStorageInstalledLocales = cjs.CascStorageInstalledLocales;
89
+ export const CascStorageProduct = cjs.CascStorageProduct;
90
+ export const CascStorageTags = cjs.CascStorageTags;
91
+ export const CascStoragePathProduct = cjs.CascStoragePathProduct;
92
+ export const CascFileContentKey = cjs.CascFileContentKey;
93
+ export const CascFileEncodedKey = cjs.CascFileEncodedKey;
94
+ export const CascFileFullInfo = cjs.CascFileFullInfo;
95
+ export const CascFileSpanInfo = cjs.CascFileSpanInfo;
96
+ export const CASC_FEATURE_FILE_NAMES = cjs.CASC_FEATURE_FILE_NAMES;
97
+ export const CASC_FEATURE_ROOT_CKEY = cjs.CASC_FEATURE_ROOT_CKEY;
98
+ export const CASC_FEATURE_TAGS = cjs.CASC_FEATURE_TAGS;
99
+ export const CASC_FEATURE_FNAME_HASHES = cjs.CASC_FEATURE_FNAME_HASHES;
100
+ export const CASC_FEATURE_FNAME_HASHES_OPTIONAL = cjs.CASC_FEATURE_FNAME_HASHES_OPTIONAL;
101
+ export const CASC_FEATURE_FILE_DATA_IDS = cjs.CASC_FEATURE_FILE_DATA_IDS;
102
+ export const CASC_FEATURE_LOCALE_FLAGS = cjs.CASC_FEATURE_LOCALE_FLAGS;
103
+ export const CASC_FEATURE_CONTENT_FLAGS = cjs.CASC_FEATURE_CONTENT_FLAGS;
104
+ export const CASC_FEATURE_DATA_ARCHIVES = cjs.CASC_FEATURE_DATA_ARCHIVES;
105
+ export const CASC_FEATURE_DATA_FILES = cjs.CASC_FEATURE_DATA_FILES;
106
+ export const CASC_FEATURE_ONLINE = cjs.CASC_FEATURE_ONLINE;
107
+ export const CASC_FEATURE_FORCE_DOWNLOAD = cjs.CASC_FEATURE_FORCE_DOWNLOAD;
108
+ export const CASC_KEY_LENGTH = cjs.CASC_KEY_LENGTH;
109
+
110
+ // Re-export default
111
+ export default cjs.default || cjs;
@@ -0,0 +1,54 @@
1
+ import { CascFindData, CascStorageInfo, CascFileInfoResult, CascOpenStorageExOptions, CascFile } from './bindings';
2
+ export interface StorageOpenOptions {
3
+ flags?: number;
4
+ }
5
+ export interface FileInfo {
6
+ name: string;
7
+ size: number;
8
+ }
9
+ export interface FileOpenOptions {
10
+ flags?: number;
11
+ }
12
+ export declare class Storage {
13
+ private storage;
14
+ constructor();
15
+ open(path: string, options?: StorageOpenOptions): void;
16
+ openOnline(path: string, options?: StorageOpenOptions): void;
17
+ openEx(params: string, options?: CascOpenStorageExOptions): void;
18
+ close(): boolean;
19
+ openFile(filename: string, options?: FileOpenOptions): File;
20
+ getFileInfo(filename: string): FileInfo | null;
21
+ fileExists(filename: string): boolean;
22
+ getStorageInfo(infoClass: number): CascStorageInfo;
23
+ findFirstFile(mask?: string, listFile?: string): CascFindData | null;
24
+ findNextFile(): CascFindData | null;
25
+ findClose(): boolean;
26
+ addEncryptionKey(keyName: number, key: Buffer): boolean;
27
+ addStringEncryptionKey(keyName: number, keyStr: string): boolean;
28
+ importKeysFromString(keyList: string): boolean;
29
+ importKeysFromFile(filePath: string): boolean;
30
+ findEncryptionKey(keyName: number): Buffer | null;
31
+ getNotFoundEncryptionKey(): number | null;
32
+ }
33
+ export declare class File {
34
+ private file;
35
+ constructor(file: CascFile);
36
+ read(bytesToRead?: number): Buffer;
37
+ readAll(): Buffer;
38
+ getSize(): number;
39
+ getSize64(): number;
40
+ getPosition(): number;
41
+ getPosition64(): number;
42
+ setPosition(position: number): number;
43
+ setPosition64(position: number, moveMethod?: number): number;
44
+ getFileInfo(infoClass: number): CascFileInfoResult;
45
+ setFileFlags(flags: number): boolean;
46
+ close(): boolean;
47
+ }
48
+ export * from './bindings';
49
+ declare const _default: {
50
+ Storage: typeof Storage;
51
+ File: typeof File;
52
+ };
53
+ export default _default;
54
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,eAAe,EACf,kBAAkB,EAElB,wBAAwB,EAExB,QAAQ,EACT,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,kBAAkB;IAEjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,MAAM,WAAW,QAAQ;IAEvB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;CACd;AAKD,MAAM,WAAW,eAAe;IAE9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAMD,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAAc;;IAW7B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAiCtD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAS5D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,IAAI;IAOhE,KAAK,IAAI,OAAO;IAUhB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IAU3D,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAS9C,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IASrC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe;IAUlD,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAQpE,YAAY,IAAI,YAAY,GAAG,IAAI;IAQnC,SAAS,IAAI,OAAO;IAUpB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAUvD,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAShE,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAS9C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAS7C,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQjD,wBAAwB,IAAI,MAAM,GAAG,IAAI;CAG1C;AAMD,qBAAa,IAAI;IACf,OAAO,CAAC,IAAI,CAAW;gBAEX,IAAI,EAAE,QAAQ;IAS1B,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;IAQlC,OAAO,IAAI,MAAM;IAQjB,OAAO,IAAI,MAAM;IAQjB,SAAS,IAAI,MAAM;IAQnB,WAAW,IAAI,MAAM;IAQrB,aAAa,IAAI,MAAM;IASvB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAUrC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAS5D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB;IASlD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQpC,KAAK,IAAI,OAAO;CAGjB;AAGD,cAAc,YAAY,CAAC;;;;;AAG3B,wBAGE"}