@magic-xpa/mscorelib 4.1200.0-dev4120.21 → 4.1200.0-dev4120.213

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/fesm2022/magic-xpa-mscorelib.mjs +166 -50
  2. package/fesm2022/magic-xpa-mscorelib.mjs.map +1 -1
  3. package/index.d.ts +3 -0
  4. package/package.json +1 -3
  5. package/esm2022/index.mjs +0 -32
  6. package/esm2022/magic-xpa-mscorelib.mjs +0 -2
  7. package/esm2022/src/ApplicationException.mjs +0 -12
  8. package/esm2022/src/ArrayEnumerator.mjs +0 -17
  9. package/esm2022/src/BitArray.mjs +0 -16
  10. package/esm2022/src/Char.mjs +0 -5
  11. package/esm2022/src/CultureInfo.mjs +0 -4
  12. package/esm2022/src/DateTime.mjs +0 -75
  13. package/esm2022/src/Debug.mjs +0 -10
  14. package/esm2022/src/Dictionary.mjs +0 -39
  15. package/esm2022/src/Encoding.mjs +0 -114
  16. package/esm2022/src/Exception.mjs +0 -32
  17. package/esm2022/src/HashTable.mjs +0 -157
  18. package/esm2022/src/IComparable.mjs +0 -2
  19. package/esm2022/src/ISO_8859_1_Encoding.mjs +0 -38
  20. package/esm2022/src/Int32.mjs +0 -5
  21. package/esm2022/src/Int64.mjs +0 -4
  22. package/esm2022/src/List.mjs +0 -87
  23. package/esm2022/src/NChar.mjs +0 -25
  24. package/esm2022/src/NNumber.mjs +0 -28
  25. package/esm2022/src/NString.mjs +0 -149
  26. package/esm2022/src/NotImplementedException.mjs +0 -7
  27. package/esm2022/src/NumberFormatInfo.mjs +0 -8
  28. package/esm2022/src/RefParam.mjs +0 -7
  29. package/esm2022/src/Stack.mjs +0 -35
  30. package/esm2022/src/StackFrame.mjs +0 -14
  31. package/esm2022/src/StackTrace.mjs +0 -7
  32. package/esm2022/src/StringBuilder.mjs +0 -112
  33. package/esm2022/src/StringUtils.mjs +0 -77
  34. package/esm2022/src/Thread.mjs +0 -16
  35. package/esm2022/src/Utils.mjs +0 -7
  36. package/esm2022/src/WebException.mjs +0 -10
  37. package/esm2022/src/XmlConvert.mjs +0 -7
@@ -1,75 +0,0 @@
1
- import moment from 'moment';
2
- export var DateTimeKind;
3
- (function (DateTimeKind) {
4
- DateTimeKind[DateTimeKind["Local"] = 0] = "Local";
5
- DateTimeKind[DateTimeKind["Utc"] = 1] = "Utc";
6
- })(DateTimeKind || (DateTimeKind = {}));
7
- export class DateTime {
8
- dt = null;
9
- kind = null;
10
- epochTicks = 621355968000000000;
11
- ticksPerMillisecond = 10000;
12
- get Ticks() {
13
- return ((this.dt.getTime() * this.ticksPerMillisecond) + this.epochTicks) - (this.dt.getTimezoneOffset() * 600000000);
14
- }
15
- get Year() {
16
- return this.kind === DateTimeKind.Utc ? this.dt.getUTCFullYear() : this.dt.getFullYear();
17
- }
18
- get Month() {
19
- return this.kind === DateTimeKind.Utc ? this.dt.getUTCMonth() + 1 : this.dt.getMonth() + 1;
20
- }
21
- get Day() {
22
- return this.kind === DateTimeKind.Utc ? this.dt.getUTCDate() : this.dt.getDate();
23
- }
24
- get Hour() {
25
- return this.kind === DateTimeKind.Utc ? this.dt.getUTCHours() : this.dt.getHours();
26
- }
27
- get Minute() {
28
- return this.kind === DateTimeKind.Utc ? this.dt.getUTCMinutes() : this.dt.getMinutes();
29
- }
30
- get Second() {
31
- return this.kind === DateTimeKind.Utc ? this.dt.getUTCSeconds() : this.dt.getSeconds();
32
- }
33
- get Millisecond() {
34
- return this.kind === DateTimeKind.Utc ? this.dt.getUTCMilliseconds() : this.dt.getMilliseconds();
35
- }
36
- constructor(yearOrDate, month, day, hour, minute, second) {
37
- if (arguments.length === 1) {
38
- this.dt = yearOrDate;
39
- }
40
- if (arguments.length === 3) {
41
- this.dt = new Date(yearOrDate, month - 1, day);
42
- }
43
- if (arguments.length === 6) {
44
- this.dt = new Date(yearOrDate, month - 1, day, hour, minute, second);
45
- }
46
- this.kind = DateTimeKind.Local;
47
- }
48
- Format(formatString) {
49
- return moment(this.dt).format(formatString);
50
- }
51
- static get UtcNow() {
52
- let d = new DateTime(new Date());
53
- d.kind = DateTimeKind.Utc;
54
- return d;
55
- }
56
- static get Now() {
57
- let d = new DateTime(new Date());
58
- d.kind = DateTimeKind.Local;
59
- return d;
60
- }
61
- static GetTotalSecondsFromMidnight(utcTime, date) {
62
- let hh = utcTime ? date.getUTCHours() : date.getHours();
63
- let mm = utcTime ? date.getUTCMinutes() : date.getMinutes();
64
- let ss = utcTime ? date.getUTCSeconds() : date.getSeconds();
65
- return hh * 60 * 60 + mm * 60 + ss;
66
- }
67
- static GetTotalMilliSecondsFromMidnight(utcTime, date) {
68
- let hh = utcTime ? date.getUTCHours() : date.getHours();
69
- let mm = utcTime ? date.getUTCMinutes() : date.getMinutes();
70
- let ss = utcTime ? date.getUTCSeconds() : date.getSeconds();
71
- let ms = utcTime ? date.getUTCSeconds() : date.getMilliseconds();
72
- return (hh * 60 * 60 + mm * 60 + ss) * 1000 + ms;
73
- }
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0ZVRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0RhdGVUaW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQTtBQUUzQixNQUFNLENBQU4sSUFBWSxZQUdYO0FBSEQsV0FBWSxZQUFZO0lBQ3RCLGlEQUFLLENBQUE7SUFDTCw2Q0FBRyxDQUFBO0FBQ0wsQ0FBQyxFQUhXLFlBQVksS0FBWixZQUFZLFFBR3ZCO0FBR0QsTUFBTSxPQUFPLFFBQVE7SUFDWCxFQUFFLEdBQVMsSUFBSSxDQUFDO0lBQ2hCLElBQUksR0FBaUIsSUFBSSxDQUFDO0lBR2pCLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQztJQUdoQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFFN0MsSUFBSSxLQUFLO1FBR1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDeEgsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FB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LEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFJLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcclxuXHJcbmV4cG9ydCBlbnVtIERhdGVUaW1lS2luZCB7XHJcbiAgTG9jYWwsXHJcbiAgVXRjXHJcbn1cclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZSB7XHJcbiAgcHJpdmF0ZSBkdDogRGF0ZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBraW5kOiBEYXRlVGltZUtpbmQgPSBudWxsO1xyXG5cclxuICAvLyB0aGUgbnVtYmVyIG9mIC5uZXQgdGlja3MgYXQgdGhlIHVuaXggZXBvY2hcclxuICBwcml2YXRlIHJlYWRvbmx5IGVwb2NoVGlja3MgPSA2MjEzNTU5NjgwMDAwMDAwMDA7XHJcblxyXG4gIC8vIHRoZXJlIGFyZSAxMDAwMCAubmV0IHRpY2tzIHBlciBtaWxsaXNlY29uZFxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGlja3NQZXJNaWxsaXNlY29uZCA9IDEwMDAwO1xyXG5cclxuICBnZXQgVGlja3MoKTogbnVtYmVyIHtcclxuICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzc5NjY1NTkvaG93LXRvLWNvbnZlcnQtamF2YXNjcmlwdC1kYXRlLW9iamVjdC10by10aWNrc1xyXG4gICAgLy8gVE9ETyAtIGNoZWNrIGlmIHdlIG5lZWQgdGhpcyBvciB0byB1c2UgTWlzYy5nZXRTeXN0ZW1NaWxsaXNlY29uZHMoKVxyXG4gICAgcmV0dXJuICgodGhpcy5kdC5nZXRUaW1lKCkgKiB0aGlzLnRpY2tzUGVyTWlsbGlzZWNvbmQpICsgdGhpcy5lcG9jaFRpY2tzKSAtICh0aGlzLmR0LmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDAwMDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IFllYXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ0Z1bGxZZWFyKCkgOiB0aGlzLmR0LmdldEZ1bGxZZWFyKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgTW9udGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ01vbnRoKCkgKyAxIDogdGhpcy5kdC5nZXRNb250aCgpICsgMTtcclxuICB9XHJcblxyXG4gIGdldCBEYXkoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ0RhdGUoKSA6IHRoaXMuZHQuZ2V0RGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IEhvdXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ0hvdXJzKCkgOiB0aGlzLmR0LmdldEhvdXJzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgTWludXRlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5raW5kID09PSBEYXRlVGltZUtpbmQuVXRjID8gdGhpcy5kdC5nZXRVVENNaW51dGVzKCkgOiB0aGlzLmR0LmdldE1pbnV0ZXMoKTtcclxuICB9XHJcblxyXG4gIGdldCBTZWNvbmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmtpbmQgPT09IERhdGVUaW1lS2luZC5VdGMgPyB0aGlzLmR0LmdldFVUQ1NlY29uZHMoKSA6IHRoaXMuZHQuZ2V0U2Vjb25kcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IE1pbGxpc2Vjb25kKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5raW5kID09PSBEYXRlVGltZUtpbmQuVXRjID8gdGhpcy5kdC5nZXRVVENNaWxsaXNlY29uZHMoKSA6IHRoaXMuZHQuZ2V0TWlsbGlzZWNvbmRzKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoZGF0ZTogRGF0ZSk7XHJcbiAgY29uc3RydWN0b3IoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlcik7XHJcbiAgY29uc3RydWN0b3IoeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBkYXk6IG51bWJlciwgaG91ciA6IG51bWJlciwgbWludXRlIDogbnVtYmVyLCBzZWNvbmQ6IG51bWJlcik7XHJcbiAgY29uc3RydWN0b3IoeWVhck9yRGF0ZTogYW55LCBtb250aD86IG51bWJlciwgZGF5PzogbnVtYmVyLCBob3VyPzogbnVtYmVyLCBtaW51dGU/OiBudW1iZXIsIHNlY29uZD86IG51bWJlcikge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5kdCA9IDxEYXRlPnllYXJPckRhdGU7XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykge1xyXG4gICAgICB0aGlzLmR0ID0gbmV3IERhdGUoPG51bWJlcj55ZWFyT3JEYXRlLCBtb250aCAtIDEsIGRheSk7XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gNikge1xyXG4gICAgICB0aGlzLmR0ID0gbmV3IERhdGUoPG51bWJlcj55ZWFyT3JEYXRlLCBtb250aCAtIDEsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5raW5kID0gRGF0ZVRpbWVLaW5kLkxvY2FsO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcbiAgRm9ybWF0KGZvcm1hdFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBtb21lbnQodGhpcy5kdCkuZm9ybWF0KGZvcm1hdFN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZ2V0IFV0Y05vdygpOiBEYXRlVGltZSB7XHJcbiAgICBsZXQgZCA9IG5ldyBEYXRlVGltZShuZXcgRGF0ZSgpKTtcclxuICAgIGQua2luZCA9IERhdGVUaW1lS2luZC5VdGM7XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXQgTm93KCk6IERhdGVUaW1lIHtcclxuICAgIGxldCBkID0gbmV3IERhdGVUaW1lKG5ldyBEYXRlKCkpO1xyXG4gICAgZC5raW5kID0gRGF0ZVRpbWVLaW5kLkxvY2FsO1xyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgR2V0VG90YWxTZWNvbmRzRnJvbU1pZG5pZ2h0KHV0Y1RpbWU6IGJvb2xlYW4sIGRhdGU6IERhdGUpOiBudW1iZXIge1xyXG4gICAgbGV0IGhoID0gdXRjVGltZSA/IGRhdGUuZ2V0VVRDSG91cnMoKSA6IGRhdGUuZ2V0SG91cnMoKTtcclxuICAgIGxldCBtbSA9IHV0Y1RpbWUgPyBkYXRlLmdldFVUQ01pbnV0ZXMoKSA6IGRhdGUuZ2V0TWludXRlcygpO1xyXG4gICAgbGV0IHNzID0gdXRjVGltZSA/IGRhdGUuZ2V0VVRDU2Vjb25kcygpIDogZGF0ZS5nZXRTZWNvbmRzKCk7XHJcblxyXG4gICAgcmV0dXJuIGhoICogNjAgKiA2MCArIG1tICogNjAgKyBzcztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZXRUb3RhbE1pbGxpU2Vjb25kc0Zyb21NaWRuaWdodCh1dGNUaW1lOiBib29sZWFuLCBkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgIGxldCBoaCA9IHV0Y1RpbWUgPyBkYXRlLmdldFVUQ0hvdXJzKCkgOiBkYXRlLmdldEhvdXJzKCk7XHJcbiAgICBsZXQgbW0gPSB1dGNUaW1lID8gZGF0ZS5nZXRVVENNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKTtcclxuICAgIGxldCBzcyA9IHV0Y1RpbWUgPyBkYXRlLmdldFVUQ1NlY29uZHMoKSA6IGRhdGUuZ2V0U2Vjb25kcygpO1xyXG4gICAgbGV0IG1zID0gdXRjVGltZSA/IGRhdGUuZ2V0VVRDU2Vjb25kcygpIDogZGF0ZS5nZXRNaWxsaXNlY29uZHMoKTtcclxuICAgIHJldHVybiAoaGggKiA2MCAqIDYwICsgbW0gKiA2MCArIHNzKSAqIDEwMDAgICsgbXM7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
@@ -1,10 +0,0 @@
1
- export class Debug {
2
- static WriteLine(text) {
3
- console.log(text);
4
- }
5
- static Assert(assertCondtion, message) {
6
- if (!assertCondtion)
7
- alert(message);
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQXVCLEVBQUUsT0FBZ0I7UUFDckQsSUFBSSxDQUFDLGNBQWM7WUFDakIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBEZWJ1ZyB7XHJcbiAgc3RhdGljIFdyaXRlTGluZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKHRleHQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIEFzc2VydChhc3NlcnRDb25kdGlvbjogYm9vbGVhbiwgbWVzc2FnZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCFhc3NlcnRDb25kdGlvbilcclxuICAgICAgYWxlcnQobWVzc2FnZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,39 +0,0 @@
1
- import { Exception } from "./Exception";
2
- export class Dictionary {
3
- values = new Array();
4
- get_Item(key) {
5
- if (this.values.hasOwnProperty(key))
6
- return this.values[key];
7
- else
8
- return null;
9
- }
10
- set_Item(key, value) {
11
- this.values[key] = value;
12
- }
13
- Add(key, value) {
14
- if (this.values.hasOwnProperty(key))
15
- throw new Exception("An item with the same key has already been added");
16
- else
17
- this.values[key] = value;
18
- }
19
- ContainsKey(key) {
20
- return this.values.hasOwnProperty(key);
21
- }
22
- TryGetValue(key, pvalue) {
23
- if (this.values.hasOwnProperty(key)) {
24
- pvalue.value = this.values[key];
25
- return true;
26
- }
27
- else {
28
- pvalue.value = null;
29
- return false;
30
- }
31
- }
32
- Remove(key) {
33
- delete this.values[key];
34
- }
35
- get Keys() {
36
- return Object.keys(this.values);
37
- }
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvRGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRXRDLE1BQU0sT0FBTyxVQUFVO0lBQ2IsTUFBTSxHQUFhLElBQUksS0FBSyxFQUFFLENBQUM7SUFFdkMsUUFBUSxDQUFDLEdBQVc7UUFDbEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDOztZQUV4QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVcsRUFBRSxLQUFRO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVE7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7WUFDakMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDOztZQUV4RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVcsRUFBRSxNQUFtQjtRQUMxQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQztTQUNiO2FBQ0k7WUFDSCxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNwQixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlZlBhcmFtfSBmcm9tIFwiLi9SZWZQYXJhbVwiO1xyXG5pbXBvcnQge0V4Y2VwdGlvbn0gZnJvbSBcIi4vRXhjZXB0aW9uXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGljdGlvbmFyeTxWPiB7XHJcbiAgcHJpdmF0ZSB2YWx1ZXM6IEFycmF5PFY+ID0gbmV3IEFycmF5KCk7XHJcblxyXG4gIGdldF9JdGVtKGtleTogc3RyaW5nKTogViB7XHJcbiAgICBpZiAodGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWVzW2tleV07XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc2V0X0l0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBWKSB7XHJcbiAgICB0aGlzLnZhbHVlc1trZXldID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBBZGQoa2V5OiBzdHJpbmcsIHZhbHVlOiBWKSB7XHJcbiAgICBpZiAodGhpcy52YWx1ZXMuaGFzT3duUHJvcGVydHkoa2V5KSlcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbihcIkFuIGl0ZW0gd2l0aCB0aGUgc2FtZSBrZXkgaGFzIGFscmVhZHkgYmVlbiBhZGRlZFwiKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy52YWx1ZXNba2V5XSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQ29udGFpbnNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpO1xyXG4gIH1cclxuXHJcbiAgVHJ5R2V0VmFsdWUoa2V5OiBzdHJpbmcsIHB2YWx1ZTogUmVmUGFyYW08Vj4pOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnZhbHVlcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgIHB2YWx1ZS52YWx1ZSA9IHRoaXMudmFsdWVzW2tleV07XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHB2YWx1ZS52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIFJlbW92ZShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgZGVsZXRlIHRoaXMudmFsdWVzW2tleV07XHJcbiAgfVxyXG5cclxuICBnZXQgS2V5cygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy52YWx1ZXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,114 +0,0 @@
1
- import { TextDecoder, TextEncoder } from "text-encoding";
2
- export class Encoding {
3
- label;
4
- static ASCII = new Encoding("ascii");
5
- static UTF8 = new Encoding("utf-8");
6
- static Unicode = new Encoding("utf-16le");
7
- static CodePageToEncodingMap = Encoding.PopulateCodePageToEncodingMap();
8
- textEncoder = null;
9
- textDecoder = null;
10
- constructor(label) {
11
- this.label = label;
12
- this.textEncoder = new TextEncoder(label, { NONSTANDARD_allowLegacyEncoding: true });
13
- this.textDecoder = new TextDecoder(label, { NONSTANDARD_allowLegacyEncoding: true });
14
- }
15
- GetBytes(str) {
16
- if (str === null)
17
- throw new Error("Argument is null");
18
- let bytes = null;
19
- try {
20
- bytes = this.textEncoder.encode(str);
21
- }
22
- catch (ex) {
23
- bytes = new Uint8Array(str.length * 3);
24
- let bytesCount = 0;
25
- let tmpBytes;
26
- for (let i = 0; i < str.length; i++) {
27
- try {
28
- tmpBytes = this.textEncoder.encode(str[i]);
29
- bytes.set(tmpBytes, bytesCount);
30
- bytesCount += tmpBytes.length;
31
- }
32
- catch (ex) {
33
- bytes[bytesCount++] = "?".charCodeAt(0);
34
- }
35
- }
36
- bytes = bytes.subarray(0, 0 + bytesCount);
37
- }
38
- return bytes;
39
- }
40
- GetByteCount(str) {
41
- return this.GetBytes(str).length;
42
- }
43
- GetString(bytes, index, count) {
44
- let str = null;
45
- if (bytes === null)
46
- throw new Error("Argument is null");
47
- if (index < 0 || count < 0 || (index + count) > bytes.length)
48
- throw new Error("Argument out of range");
49
- bytes = bytes.subarray(index, index + count);
50
- try {
51
- str = this.textDecoder.decode(bytes);
52
- }
53
- catch (ex) {
54
- }
55
- return str;
56
- }
57
- static GetEncoding(codepage) {
58
- let label = Encoding.CodePageToEncodingMap[codepage];
59
- if (label == null)
60
- throw new Error("Invalid codepage.");
61
- return new Encoding(label);
62
- }
63
- static PopulateCodePageToEncodingMap() {
64
- let hashTable = new Object;
65
- hashTable[20106] = "DIN_66003";
66
- hashTable[20107] = "SEN_850200_B";
67
- hashTable[50932] = "_autodetect";
68
- hashTable[20108] = "NS_4551-1";
69
- hashTable[50949] = "_autodetect_kr";
70
- hashTable[950] = "big5";
71
- hashTable[50221] = "csISO2022JP";
72
- hashTable[51949] = "euc-kr";
73
- hashTable[936] = "gb2312";
74
- hashTable[52936] = "hz-gb-2312";
75
- hashTable[852] = "ibm852";
76
- hashTable[866] = "ibm866";
77
- hashTable[20105] = "irv";
78
- hashTable[50220] = "iso-2022-jp";
79
- hashTable[50222] = "iso-2022-jp";
80
- hashTable[50225] = "iso-2022-kr";
81
- hashTable[28591] = "iso-8859-1";
82
- hashTable[28592] = "iso-8859-2";
83
- hashTable[28593] = "iso-8859-3";
84
- hashTable[28594] = "iso-8859-4";
85
- hashTable[28595] = "iso-8859-5";
86
- hashTable[28596] = "iso-8859-6";
87
- hashTable[28597] = "iso-8859-7";
88
- hashTable[28598] = "iso-8859-8";
89
- hashTable[20866] = "koi8-r";
90
- hashTable[949] = "ks_c_5601";
91
- hashTable[932] = "shift-jis";
92
- hashTable[1200] = "unicode";
93
- hashTable[1201] = "unicodeFEFF";
94
- hashTable[65000] = "utf-7";
95
- hashTable[65001] = "utf-8";
96
- hashTable[1250] = "windows-1250";
97
- hashTable[1251] = "windows-1251";
98
- hashTable[1252] = "windows-1252";
99
- hashTable[1253] = "windows-1253";
100
- hashTable[1254] = "windows-1254";
101
- hashTable[1255] = "windows-1255";
102
- hashTable[1256] = "windows-1256";
103
- hashTable[1257] = "windows-1257";
104
- hashTable[1258] = "windows-1258";
105
- hashTable[874] = "windows-874";
106
- hashTable[20127] = "US-ASCII";
107
- hashTable[51932] = "x-euc";
108
- return hashTable;
109
- }
110
- toString() {
111
- return this.label;
112
- }
113
- }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5jb2RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0VuY29kaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZELE1BQU0sT0FBTyxRQUFRO0lBU0U7SUFSckIsTUFBTSxDQUFVLEtBQUssR0FBYSxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxNQUFNLENBQVUsSUFBSSxHQUFhLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sQ0FBVSxPQUFPLEdBQWEsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFN0QsTUFBTSxDQUFVLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBRWhFLFdBQVcsR0FBZ0IsSUFBSSxDQUFDO0lBQ2hDLFdBQVcsR0FBZ0IsSUFBSSxDQUFDO0lBQ2hELFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLEVBQUMsK0JBQStCLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxFQUFDLCtCQUErQixFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBRWxCLElBQUksR0FBRyxLQUFLLElBQUk7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFdEMsSUFBSSxLQUFLLEdBQWUsSUFBSSxDQUFDO1FBRTdCLElBQUk7WUFDRixLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxD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M0IsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNqQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDO1FBQy9CLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDOUIsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUUzQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBR00sUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUZXh0RGVjb2RlciwgVGV4dEVuY29kZXJ9IGZyb20gXCJ0ZXh0LWVuY29kaW5nXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRW5jb2Rpbmcge1xyXG4gIHN0YXRpYyByZWFkb25seSBBU0NJSTogRW5jb2RpbmcgPSBuZXcgRW5jb2RpbmcoXCJhc2NpaVwiKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgVVRGODogRW5jb2RpbmcgPSBuZXcgRW5jb2RpbmcoXCJ1dGYtOFwiKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgVW5pY29kZTogRW5jb2RpbmcgPSBuZXcgRW5jb2RpbmcoXCJ1dGYtMTZsZVwiKTtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IENvZGVQYWdlVG9FbmNvZGluZ01hcCA9IEVuY29kaW5nLlBvcHVsYXRlQ29kZVBhZ2VUb0VuY29kaW5nTWFwKCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgdGV4dEVuY29kZXI6IFRleHRFbmNvZGVyID0gbnVsbDtcclxuICBwcml2YXRlIHJlYWRvbmx5IHRleHREZWNvZGVyOiBUZXh0RGVjb2RlciA9IG51bGw7XHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbGFiZWw6IHN0cmluZykge1xyXG4gICAgdGhpcy50ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcihsYWJlbCwge05PTlNUQU5EQVJEX2FsbG93TGVnYWN5RW5jb2Rpbmc6IHRydWV9KTtcclxuICAgIHRoaXMudGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIobGFiZWwsIHtOT05TVEFOREFSRF9hbGxvd0xlZ2FjeUVuY29kaW5nOiB0cnVlfSk7XHJcbiAgfVxyXG5cclxuICBHZXRCeXRlcyhzdHI6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xyXG5cclxuICAgIGlmIChzdHIgPT09IG51bGwpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFyZ3VtZW50IGlzIG51bGxcIik7XHJcblxyXG4gICAgbGV0IGJ5dGVzOiBVaW50OEFycmF5ID0gbnVsbDtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBieXRlcyA9IHRoaXMudGV4dEVuY29kZXIuZW5jb2RlKHN0cik7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgLy8gSW4gQyMsIGlmIGFueSBjaGFyYWN0ZXIgaXMgbm90IHdpdGhpbiB0aGUgcmFuZ2Ugb2Ygc3BlY2lmaWVkIGNoYXJzZXQsIGl0IGlzIHJlcGxhY2VkIGJ5ICc/Jy5cclxuICAgICAgLy8gVGV4dEVuY29kZXIuZW5jb2RlKCkgdGhyb3dzIGFuIGVycm9yIGluIHN1Y2ggYSBjYXNlLlxyXG4gICAgICAvLyBXZSBjYW4gbW9kaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBUZXh0RW5jb2Rlci5lbmNvZGUoKSB0byBwdXQgJz8nIGluc3RlYWQgb2YgdGhyb3dpbmcgZXJyb3IuXHJcbiAgICAgIC8vIEJ1dCwgaXQgY2FuIGJlIHByb2JsZW1hdGljIGlmIHdlIGNoYW5nZSB0aGUgbGlicmFyeSB2ZXJzaW9uLlxyXG4gICAgICAvLyBTbywgd2Ugd2lsbCBjYXRjaCB0aGlzIGVycm9yIGFuZCBoYW5kbGUgdGhlIGVuY29kaW5nIG91cnNlbHZlcy5cclxuICAgICAgYnl0ZXMgPSBuZXcgVWludDhBcnJheShzdHIubGVuZ3RoICogMyk7XHJcbiAgICAgIGxldCBieXRlc0NvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgICBsZXQgdG1wQnl0ZXM6IFVpbnQ4QXJyYXk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKylcclxuICAgICAge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0bXBCeXRlcyA9IHRoaXMudGV4dEVuY29kZXIuZW5jb2RlKHN0cltpXSk7XHJcbiAgICAgICAgICBieXRlcy5zZXQodG1wQnl0ZXMsIGJ5dGVzQ291bnQpO1xyXG4gICAgICAgICAgYnl0ZXNDb3VudCArPSB0bXBCeXRlcy5sZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChleCkge1xyXG4gICAgICAgICAgYnl0ZXNbYnl0ZXNDb3VudCsrXSA9IFwiP1wiLmNoYXJDb2RlQXQoMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBieXRlcyA9IGJ5dGVzLnN1YmFycmF5KDAsIDAgKyBieXRlc0NvdW50KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYnl0ZXM7XHJcbiAgfVxyXG5cclxuICBHZXRCeXRlQ291bnQoc3RyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgLy8gVE9ETzogdGhpcyBpcyBub3QgdGhlIGJlc3Qgd2F5LlxyXG4gICAgcmV0dXJuIHRoaXMuR2V0Qnl0ZXMoc3RyKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBHZXRTdHJpbmcoYnl0ZXM6IFVpbnQ4QXJyYXksIGluZGV4OiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgbGV0IHN0cjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICBpZiAoYnl0ZXMgPT09IG51bGwpXHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkFyZ3VtZW50IGlzIG51bGxcIik7XHJcblxyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBjb3VudCA8IDAgfHwgKGluZGV4ICsgY291bnQpID4gYnl0ZXMubGVuZ3RoKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBvdXQgb2YgcmFuZ2VcIik7XHJcblxyXG4gICAgYnl0ZXMgPSBieXRlcy5zdWJhcnJheShpbmRleCwgaW5kZXggKyBjb3VudCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgc3RyID0gdGhpcy50ZXh0RGVjb2Rlci5kZWNvZGUoYnl0ZXMpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGV4KSB7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZXRFbmNvZGluZyhjb2RlcGFnZTogbnVtYmVyKTogRW5jb2Rpbmcge1xyXG4gICAgbGV0IGxhYmVsOiBzdHJpbmcgPSBFbmNvZGluZy5Db2RlUGFnZVRvRW5jb2RpbmdNYXBbY29kZXBhZ2VdO1xyXG5cclxuICAgIGlmIChsYWJlbCA9PSBudWxsKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGNvZGVwYWdlLlwiKTtcclxuXHJcbiAgICAgIHJldHVybiBuZXcgRW5jb2RpbmcobGFiZWwpO1xyXG4gICB9XHJcbiAgcHJpdmF0ZSBzdGF0aWMgUG9wdWxhdGVDb2RlUGFnZVRvRW5jb2RpbmdNYXAoKTogYW55IHtcclxuXHJcbiAgICBsZXQgaGFzaFRhYmxlID0gbmV3IE9iamVjdDtcclxuXHJcbiAgICAvLyBUaGVzZSBtYXAgaXMgc2ltaWxhciB0byBlbmNfbWFwX3RhYmxlIG9mIGV4cF94bWwuY3BwXHJcbiAgICBoYXNoVGFibGVbMjAxMDZdID0gXCJESU5fNjYwMDNcIjsgICAgICAgICAgICAgICAgICAgIC8vIElBNSAoR2VybWFuKVxyXG4gICAgaGFzaFRhYmxlWzIwMTA3XSA9IFwiU0VOXzg1MDIwMF9CXCI7ICAgICAgICAgICAgICAgICAvLyBJQTUgKFN3ZWRpc2gpXHJcbiAgICBoYXNoVGFibGVbNTA5MzJdID0gXCJfYXV0b2RldGVjdFwiOyAgICAgICAgICAgICAgICAgIC8vIEphcGFuZXNlIChBdXRvIFNlbGVjdClcclxuICAgIGhhc2hUYWJsZVsyMDEwOF0gPSBcIk5TXzQ1NTEtMVwiOyAgICAgICAgICAgICAgICAgICAgLy8gSUE1IChOb3J3ZWdpYW4pXHJcbiAgICBoYXNoVGFibGVbNTA5NDldID0gXCJfYXV0b2RldGVjdF9rclwiOyAgICAgICAgICAgICAgIC8vIEtvcmVhbiAoQXV0byBTZWxlY3QpXHJcbiAgICBoYXNoVGFibGVbOTUwXSA9IFwiYmlnNVwiOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENoaW5lc2UgVHJhZGl0aW9uYWwgKEJpZzUpXHJcbiAgICBoYXNoVGFibGVbNTAyMjFdID0gXCJjc0lTTzIwMjJKUFwiOyAgICAgICAgICAgICAgICAgIC8vIEphcGFuZXNlIChKSVMtQWxsb3cgMSBieXRlIEthbmEpXHJcbiAgICBoYXNoVGFibGVbNTE5NDldID0gXCJldWMta3JcIjsgICAgICAgICAgICAgICAgICAgICAgIC8vIEtvcmVhbiAoRVVDKVxyXG4gICAgaGFzaFRhYmxlWzkzNl0gPSBcImdiMjMxMlwiOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDaGluZXNlIFNpbXBsaWZpZWQgKEdCMjMxMilcclxuICAgIGhhc2hUYWJsZVs1MjkzNl0gPSBcImh6LWdiLTIzMTJcIjsgICAgICAgICAgICAgICAgICAgLy8gQ2hpbmVzZSBTaW1wbGlmaWVkIChIWilcclxuICAgIGhhc2hUYWJsZVs4NTJdID0gXCJpYm04NTJcIjsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ2VudHJhbCBFdXJvcGVhbiAoRE9TKVxyXG4gICAgaGFzaFRhYmxlWzg2Nl0gPSBcImlibTg2NlwiOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDeXJpbGxpYyBBbHBoYWJldCAoRE9TKVxyXG4gICAgaGFzaFRhYmxlWzIwMTA1XSA9IFwiaXJ2XCI7ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBJQTUgKElSVilcclxuICAgIGhhc2hUYWJsZVs1MDIyMF0gPSBcImlzby0yMDIyLWpwXCI7ICAgICAgICAgICAgICAgICAgLy8gSmFwYW5lc2UgKEpJUylcclxuICAgIGhhc2hUYWJsZVs1MDIyMl0gPSBcImlzby0yMDIyLWpwXCI7ICAgICAgICAgICAgICAgICAgLy8gSmFwYW5lc2UgKEpJUy1BbGxvdyAxIGJ5dGUgS2FuYSlcclxuICAgIGhhc2hUYWJsZVs1MDIyNV0gPSBcImlzby0yMDIyLWtyXCI7ICAgICAgICAgICAgICAgICAgLy8gS29yZWFuIChJU08pXHJcbiAgICBoYXNoVGFibGVbMjg1OTFdID0gXCJpc28tODg1OS0xXCI7ICAgICAgICAgICAgICAgICAgIC8vIFdlc3Rlcm4gQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5Ml0gPSBcImlzby04ODU5LTJcIjsgICAgICAgICAgICAgICAgICAgLy8gQ2VudHJhbCBFdXJvcGVhbiBBbHBoYWJldCAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzI4NTkzXSA9IFwiaXNvLTg4NTktM1wiOyAgICAgICAgICAgICAgICAgICAvLyBMYXRpbiAzIEFscGhhYmV0IChJU08pXHJcbiAgICBoYXNoVGFibGVbMjg1OTRdID0gXCJpc28tODg1OS00XCI7ICAgICAgICAgICAgICAgICAgIC8vIEJhbHRpYyBBbHBoYWJldCAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzI4NTk1XSA9IFwiaXNvLTg4NTktNVwiOyAgICAgICAgICAgICAgICAgICAvLyBDeXJpbGxpYyBBbHBoYWJldCAoSVNPKVxyXG4gICAgaGFzaFRhYmxlWzI4NTk2XSA9IFwiaXNvLTg4NTktNlwiOyAgICAgICAgICAgICAgICAgICAvLyBBcmFiaWMgQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5N10gPSBcImlzby04ODU5LTdcIjsgICAgICAgICAgICAgICAgICAgLy8gR3JlZWsgQWxwaGFiZXQgKElTTylcclxuICAgIGhhc2hUYWJsZVsyODU5OF0gPSBcImlzby04ODU5LThcIjsgICAgICAgICAgICAgICAgICAgLy8gSGVicmV3IEFscGhhYmV0IChJU08pXHJcbiAgICBoYXNoVGFibGVbMjA4NjZdID0gXCJrb2k4LXJcIjsgICAgICAgICAgICAgICAgICAgICAgIC8vIEN5cmlsbGljIEFscGhhYmV0IChLT0k4LVIpXHJcbiAgICBoYXNoVGFibGVbOTQ5XSA9IFwia3NfY181NjAxXCI7ICAgICAgICAgICAgICAgICAgICAgIC8vIEtvcmVhblxyXG4gICAgaGFzaFRhYmxlWzkzMl0gPSBcInNoaWZ0LWppc1wiOyAgICAgICAgICAgICAgICAgICAgICAvLyBKYXBhbmVzZSAoU2hpZnQtSklTKVxyXG4gICAgaGFzaFRhYmxlWzEyMDBdID0gXCJ1bmljb2RlXCI7ICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml2ZXJzYWwgQWxwaGFiZXRcclxuICAgIGhhc2hUYWJsZVsxMjAxXSA9IFwidW5pY29kZUZFRkZcIjsgICAgICAgICAgICAgICAgICAgLy8gVW5pdmVyc2FsIEFscGhhYmV0IChCaWctRW5kaWFuKVxyXG4gICAgaGFzaFRhYmxlWzY1MDAwXSA9IFwidXRmLTdcIjsgICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml2ZXJzYWwgQWxwaGFiZXQgKFVURi03KVxyXG4gICAgaGFzaFRhYmxlWzY1MDAxXSA9IFwidXRmLThcIjsgICAgICAgICAgICAgICAgICAgICAgICAvLyBVbml2ZXJzYWwgQWxwaGFiZXQgKFVURi04KVxyXG4gICAgaGFzaFRhYmxlWzEyNTBdID0gXCJ3aW5kb3dzLTEyNTBcIjsgICAgICAgICAgICAgICAgICAvLyBDZW50cmFsIEV1cm9wZWFuIEFscGhhYmV0IChXaW5kb3dzKVxyXG4gICAgaGFzaFRhYmxlWzEyNTFdID0gXCJ3aW5kb3dzLTEyNTFcIjsgICAgICAgICAgICAgICAgICAvLyBDeXJpbGxpYyBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsxMjUyXSA9IFwid2luZG93cy0xMjUyXCI7ICAgICAgICAgICAgICAgICAgLy8gV2VzdGVybiBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsxMjUzXSA9IFwid2luZG93cy0xMjUzXCI7ICAgICAgICAgICAgICAgICAgLy8gR3JlZWsgQWxwaGFiZXQgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbMTI1NF0gPSBcIndpbmRvd3MtMTI1NFwiOyAgICAgICAgICAgICAgICAgIC8vIFR1cmtpc2ggQWxwaGFiZXRcclxuICAgIGhhc2hUYWJsZVsxMjU1XSA9IFwid2luZG93cy0xMjU1XCI7ICAgICAgICAgICAgICAgICAgLy8gSGVicmV3IEFscGhhYmV0IChXaW5kb3dzKVxyXG4gICAgaGFzaFRhYmxlWzEyNTZdID0gXCJ3aW5kb3dzLTEyNTZcIjsgICAgICAgICAgICAgICAgICAvLyBBcmFiaWMgQWxwaGFiZXQgKFdpbmRvd3MpXHJcbiAgICBoYXNoVGFibGVbMTI1N10gPSBcIndpbmRvd3MtMTI1N1wiOyAgICAgICAgICAgICAgICAgIC8vIEJhbHRpYyBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsxMjU4XSA9IFwid2luZG93cy0xMjU4XCI7ICAgICAgICAgICAgICAgICAgLy8gVmlldG5hbWVzZSBBbHBoYWJldCAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVs4NzRdID0gXCJ3aW5kb3dzLTg3NFwiOyAgICAgICAgICAgICAgICAgICAgLy8gVGhhaSAoV2luZG93cylcclxuICAgIGhhc2hUYWJsZVsyMDEyN10gPSBcIlVTLUFTQ0lJXCI7ICAgICAgICAgICAgICAgICAgICAgLy8gdXMtYXNjaWlcclxuICAgIGhhc2hUYWJsZVs1MTkzMl0gPSBcIngtZXVjXCI7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gSmFwYW5lc2UgKEVVQylcclxuXHJcbiAgICByZXR1cm4gaGFzaFRhYmxlO1xyXG4gIH1cclxuXHJcbiAgLy8gcmV0dXJuIHRoZSBuYW1lIG9mIGVuY29kaW5nIHVzZWQgXHJcbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcclxuICB9XHJcbn1cclxuIl19
@@ -1,32 +0,0 @@
1
- import { isNullOrUndefined } from "./Utils";
2
- export class Exception {
3
- name = "Exception";
4
- message = "";
5
- stack = "";
6
- errorLevel = 1;
7
- constructor(messageOrError) {
8
- if (!isNullOrUndefined(messageOrError)) {
9
- if (messageOrError instanceof Error) {
10
- this.stack = messageOrError.stack;
11
- this.message = messageOrError.message;
12
- }
13
- else {
14
- this.message = messageOrError;
15
- this.stack = new Error().stack;
16
- }
17
- }
18
- }
19
- get Message() {
20
- return this.message;
21
- }
22
- get StackTrace() {
23
- let stackTrace = this.stack || '';
24
- let stackLines = stackTrace.split("\n").map(function (line) { return line.trim(); });
25
- stackTrace = stackLines.splice(stackLines[0] === 'Error' ? this.errorLevel + 1 : this.errorLevel).join("\n");
26
- return "\n" + stackTrace;
27
- }
28
- GetType() {
29
- return this.name;
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhjZXB0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXNjb3JlbGliL3NyYy9FeGNlcHRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTFDLE1BQU0sT0FBTyxTQUFTO0lBRXBCLElBQUksR0FBVyxXQUFXLENBQUM7SUFDM0IsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUNyQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBR25CLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFRZixZQUFZLGNBQThCO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN0QyxJQUFJLGNBQWMsWUFBWSxLQUFLLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxLQUFLLEdBQVcsY0FBZSxDQUFDLEtBQUssQ0FBQztnQkFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBVyxjQUFlLENBQUMsT0FBTyxDQUFDO2FBQ2hEO2lCQUNJO2dCQUNILElBQUksQ0FBQyxPQUFPLEdBQVcsY0FBYyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2hDO1NBQ0Y7SUFDSCxDQUFDO0lBS0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFLRCxJQUFJLFVBQVU7UUFFWixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR3JGLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdHLE9BQU8sSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBS00sT0FBTztRQUNaLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHN1bW1hcnk+XHJcbi8vLyBUaGUgYmFzZSBjbGFzcyBvZiBhbGwgZXhjZXB0aW9uc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5cclxuaW1wb3J0IHtpc051bGxPclVuZGVmaW5lZH0gZnJvbSBcIi4vVXRpbHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBFeGNlcHRpb257XHJcblxyXG4gIG5hbWU6IHN0cmluZyA9IFwiRXhjZXB0aW9uXCI7XHJcbiAgbWVzc2FnZTogc3RyaW5nID0gXCJcIjtcclxuICBzdGFjazogc3RyaW5nID0gXCJcIjtcclxuXHJcblxyXG4gIGVycm9yTGV2ZWwgPSAxO1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY29uc3RydWN0b3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1lc3NhZ2VcIiAgZGVub3RlcyB0aGUgbWVzc2FnZSBvZiBleGNlcHRpb24+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJuYW1lXCIgIGRlbm90ZXMgdGhlIHR5cGUgb2YgZXhjZXB0aW9uPjwvcGFyYW0+XHJcbiAgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZylcclxuICBjb25zdHJ1Y3RvcihlcnJvcjogRXJyb3IpXHJcbiAgY29uc3RydWN0b3IobWVzc2FnZU9yRXJyb3I6IHN0cmluZyB8IEVycm9yKSB7XHJcbiAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKG1lc3NhZ2VPckVycm9yKSkge1xyXG4gICAgICBpZiAobWVzc2FnZU9yRXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgIHRoaXMuc3RhY2sgPSAoPEVycm9yPm1lc3NhZ2VPckVycm9yKS5zdGFjaztcclxuICAgICAgICB0aGlzLm1lc3NhZ2UgPSAoPEVycm9yPm1lc3NhZ2VPckVycm9yKS5tZXNzYWdlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZSA9IDxzdHJpbmc+bWVzc2FnZU9yRXJyb3I7XHJcbiAgICAgICAgdGhpcy5zdGFjayA9IG5ldyBFcnJvcigpLnN0YWNrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCB0aGUgbWVzc2FnZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldCBNZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0IHRoZSBzdGFjayB0cmFjZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldCBTdGFja1RyYWNlKCkge1xyXG5cclxuICAgIGxldCBzdGFja1RyYWNlID0gdGhpcy5zdGFjayB8fCAnJztcclxuICAgIGxldCBzdGFja0xpbmVzID0gc3RhY2tUcmFjZS5zcGxpdChcIlxcblwiKS5tYXAoZnVuY3Rpb24gKGxpbmUpIHsgcmV0dXJuIGxpbmUudHJpbSgpOyB9KTtcclxuXHJcbiAgICAvLyBPbiBzb21lIGJyb3dzZXJzIChlLmcuIENocm9tZSksIHRoZSBzdGF0Y2sgaW5jbHVkZXMgYSB0aXRsZSBhcyBcIkVycm9yXCIsIHNvIHJlbW92ZSBpdC5cclxuICAgIHN0YWNrVHJhY2UgPSBzdGFja0xpbmVzLnNwbGljZShzdGFja0xpbmVzWzBdID09PSAnRXJyb3InID8gdGhpcy5lcnJvckxldmVsICsgMSA6IHRoaXMuZXJyb3JMZXZlbCkuam9pbihcIlxcblwiKTtcclxuXHJcbiAgICByZXR1cm4gXCJcXG5cIiArIHN0YWNrVHJhY2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGdldCB0aGUgdHlwZSBvZiBleGNlcHRpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHB1YmxpYyBHZXRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
@@ -1,157 +0,0 @@
1
- import { Array_Enumerator } from "./ArrayEnumerator";
2
- import { Exception } from "./Exception";
3
- import { Encoding } from "./Encoding";
4
- export class HashUtils {
5
- static GetHashCode(str) {
6
- let bytes = null;
7
- bytes = Encoding.UTF8.GetBytes(str);
8
- return HashUtils.getHashCode(bytes);
9
- }
10
- static getHashCode(byteArray) {
11
- let hashval;
12
- let hash1 = 5381;
13
- let hash2 = hash1;
14
- let c;
15
- for (let i = 0; i < byteArray.length; i += 2) {
16
- c = byteArray[i];
17
- hash1 = ((hash1 << 5) + hash1) ^ c;
18
- if ((i + 1) === byteArray.length)
19
- break;
20
- c = byteArray[i + 1];
21
- hash2 = ((hash2 << 5) + hash2) ^ c;
22
- hash1 = hash1 & 0xffff;
23
- hash2 = hash2 & 0xffff;
24
- }
25
- let hash3 = (hash2 * 13577);
26
- hashval = (hash1 + hash3);
27
- return (hashval);
28
- }
29
- }
30
- const HashTableLoadFactor = 0.75;
31
- export class Hashtable {
32
- _buckets = [];
33
- _elementsCount = 0;
34
- _bucketCount = 0;
35
- _loadFactor = 0;
36
- constructor(bucketCount = 8, loadFactor = HashTableLoadFactor) {
37
- this._bucketCount = bucketCount;
38
- this._loadFactor = loadFactor;
39
- if (this._bucketCount % 2 !== 0) {
40
- throw new Exception('Bucket count must be a positive number and be multiple of 2.');
41
- }
42
- }
43
- HashFunction(key) {
44
- if (typeof key.GetHashCode === 'function') {
45
- return key.GetHashCode();
46
- }
47
- else if (key.constructor === String) {
48
- return HashUtils.GetHashCode(key.toString());
49
- }
50
- else if (key.constructor === Number) {
51
- return +key;
52
- }
53
- return 0;
54
- }
55
- get Count() {
56
- return this._elementsCount;
57
- }
58
- get Values() {
59
- let array = [];
60
- this._buckets.forEach(b => b.forEach(item => {
61
- array.push(item.value);
62
- }));
63
- return new Array_Enumerator(array);
64
- }
65
- get Keys() {
66
- let array = [];
67
- this._buckets.forEach(b => b.forEach(item => {
68
- array.push(item.key);
69
- }));
70
- return new Array_Enumerator(array);
71
- }
72
- Add(key, value) {
73
- this.Insert(key, value, true);
74
- }
75
- set_Item(key, value) {
76
- this.Insert(key, value, false);
77
- }
78
- Insert(key, value, add) {
79
- let bucketIndex = this.GetBucketIndex(key);
80
- if (typeof this._buckets[bucketIndex] === "undefined") {
81
- this._buckets[bucketIndex] = [];
82
- }
83
- if (this._buckets[bucketIndex].find(x => x.key === key)) {
84
- if (add) {
85
- throw new Exception('Item with provided key already exists!');
86
- }
87
- else {
88
- this.Remove(key);
89
- return;
90
- }
91
- }
92
- this._buckets[bucketIndex].push({ key: key, value: value });
93
- this._elementsCount++;
94
- if (this._elementsCount > this._bucketCount * this._loadFactor) {
95
- this.Resize(this._bucketCount * 2);
96
- }
97
- }
98
- get_Item(key) {
99
- let bucketIndex = this.GetBucketIndex(key);
100
- let bucket = this._buckets[bucketIndex];
101
- if (!bucket) {
102
- return null;
103
- }
104
- let item = bucket.find(x => x.key === key);
105
- if (item) {
106
- return item.value;
107
- }
108
- return null;
109
- }
110
- ContainsKey(key) {
111
- let bucketIndex = this.GetBucketIndex(key);
112
- let bucket = this._buckets[bucketIndex];
113
- if (!bucket) {
114
- return false;
115
- }
116
- let itemIndex = bucket.findIndex(x => x.key === key);
117
- return (itemIndex > -1);
118
- }
119
- Remove(key) {
120
- let bucketIndex = this.GetBucketIndex(key);
121
- let bucket = this._buckets[bucketIndex];
122
- if (!bucket) {
123
- return;
124
- }
125
- let itemIndex = bucket.findIndex(x => x.key === key);
126
- if (itemIndex > -1) {
127
- bucket.splice(itemIndex, 1);
128
- this._elementsCount--;
129
- if (this._elementsCount <= this._bucketCount * (1 - this._loadFactor)) {
130
- this.Resize(this._bucketCount / 2);
131
- }
132
- }
133
- }
134
- Resize(newBucketCount) {
135
- let _oldBuckets = this._buckets;
136
- this._elementsCount = 0;
137
- this._buckets = [];
138
- this._bucketCount = newBucketCount;
139
- _oldBuckets.forEach(b => b.forEach(item => this.Add(item.key, item.value)));
140
- }
141
- GetBucketIndex(key) {
142
- let hash = this.HashFunction(key);
143
- if (hash % 1 !== 0) {
144
- throw new Exception('Key\'s hash must be an integer!');
145
- }
146
- let index = Math.abs(hash) % this._bucketCount;
147
- if (index < 0 || index >= this._bucketCount) {
148
- throw new Exception('Index exceeds bucket boundaries');
149
- }
150
- return index;
151
- }
152
- Clear() {
153
- this._elementsCount = 0;
154
- this._buckets = [];
155
- }
156
- }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGFzaFRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXNjb3JlbGliL3NyYy9IYXNoVGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxTQUFTO0lBR3BCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUM1QixJQUFJLEtBQUssR0FBZSxJQUFJLENBQUM7UUFFN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFxQjtRQUM5QyxJQUFJLE9BQWUsQ0FBQztRQUVwQixJQUFJLEtBQUssR0FBVyxJQUFJLENBQUM7UUFDekIsSUFBSSxLQUFLLEdBQVcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBUyxDQUFDO1FBRWQsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRCxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxNQUFNO2dCQUM5QixNQUFNO1lBQ1IsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFD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O1NBQ3hEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsS0FBSztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlZmVyZW5jZTogaHR0cHM6Ly9naXRodWIuY29tL3Jrb3N0cnpld3NraS9oYXNodGFibGUtdHMvYmxvYi9tYXN0ZXIvc3JjL2hhc2h0YWJsZS50c1xyXG5cclxuaW1wb3J0IHtBcnJheV9FbnVtZXJhdG9yfSBmcm9tIFwiLi9BcnJheUVudW1lcmF0b3JcIjtcclxuaW1wb3J0IHtFeGNlcHRpb259IGZyb20gXCIuL0V4Y2VwdGlvblwiO1xyXG5pbXBvcnQge0VuY29kaW5nfSBmcm9tIFwiLi9FbmNvZGluZ1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEhhc2hVdGlscyB7XHJcbiAgLy8gUGF5IGF0dGVudGlvbiB0aGF0IGluIHNlcnZlciB0aGVyZSBpcyB0aGUgc2FtZSBmdW5jdGlvbiBhbmQgaXQgbXVzdFxyXG4gIC8vIHJldHVybiB0aGUgc2FtZSBoYXNoIHZhbHVlLlxyXG4gIHN0YXRpYyBHZXRIYXNoQ29kZShzdHI6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGJ5dGVzID0gRW5jb2RpbmcuVVRGOC5HZXRCeXRlcyhzdHIpO1xyXG5cclxuICAgIHJldHVybiBIYXNoVXRpbHMuZ2V0SGFzaENvZGUoYnl0ZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0SGFzaENvZGUoYnl0ZUFycmF5OiBVaW50OEFycmF5KSB7XHJcbiAgICBsZXQgaGFzaHZhbDogbnVtYmVyO1xyXG5cclxuICAgIGxldCBoYXNoMTogbnVtYmVyID0gNTM4MTtcclxuICAgIGxldCBoYXNoMjogbnVtYmVyID0gaGFzaDE7XHJcbiAgICBsZXQgYzogbnVtYmVyO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBieXRlQXJyYXkubGVuZ3RoOyBpICs9IDIpIHtcclxuICAgICAgYyA9IGJ5dGVBcnJheVtpXTtcclxuICAgICAgaGFzaDEgPSAoKGhhc2gxIDw8IDUpICsgaGFzaDEpIF4gYztcclxuICAgICAgaWYgKChpICsgMSkgPT09IGJ5dGVBcnJheS5sZW5ndGgpXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGMgPSBieXRlQXJyYXlbaSArIDFdO1xyXG4gICAgICBoYXNoMiA9ICgoaGFzaDIgPDwgNSkgKyBoYXNoMikgXiBjO1xyXG4gICAgICBoYXNoMSA9IGhhc2gxICYgMHhmZmZmO1xyXG4gICAgICBoYXNoMiA9IGhhc2gyICYgMHhmZmZmO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBoYXNoMzogbnVtYmVyID0gKGhhc2gyICogMTM1NzcpO1xyXG4gICAgaGFzaHZhbCA9IChoYXNoMSArIGhhc2gzKTtcclxuICAgIHJldHVybiAoaGFzaHZhbCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElIYXNoQ29kZSB7XHJcbiAgR2V0SGFzaENvZGUoKTogbnVtYmVyO1xyXG59XHJcblxyXG50eXBlIEJ1Y2tldEVsZW1lbnQ8VEtleSwgVFZhbHVlPiA9IHsga2V5OiBUS2V5LCB2YWx1ZTogVFZhbHVlIH07XHJcbnR5cGUgQnVja2V0PFRLZXksIFRWYWx1ZT4gPSBbQnVja2V0RWxlbWVudDxUS2V5LCBUVmFsdWU+XTtcclxuXHJcbmNvbnN0IEhhc2hUYWJsZUxvYWRGYWN0b3IgPSAwLjc1O1xyXG5cclxuLy8gSGFzaHRhYmxlIGltcGxlbWVudGF0aW9uIGZvciBrZXkgVEtleSBhbmQgVmFsdWUgVFZhbHVlXHJcbmV4cG9ydCBjbGFzcyBIYXNodGFibGU8VEtleSBleHRlbmRzIChJSGFzaENvZGUgfCBzdHJpbmcgfCBudW1iZXIpLCBUVmFsdWU+IHtcclxuXHJcbiAgcHJpdmF0ZSBfYnVja2V0czogQnVja2V0PFRLZXksIFRWYWx1ZT5bXSA9IFtdOyAvLyB0b3RhbCBuby4gb2YgYnVja2V0c1xyXG4gIHByaXZhdGUgX2VsZW1lbnRzQ291bnQgPSAwOyAvLyB0b3RhbCBlbGVtZW50c1xyXG4gIHByaXZhdGUgX2J1Y2tldENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2xvYWRGYWN0b3I6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGJ1Y2tldENvdW50OiBudW1iZXIgPSA4LCBsb2FkRmFjdG9yOiBudW1iZXIgPSBIYXNoVGFibGVMb2FkRmFjdG9yKSB7XHJcbiAgICB0aGlzLl9idWNrZXRDb3VudCA9IGJ1Y2tldENvdW50O1xyXG4gICAgdGhpcy5fbG9hZEZhY3RvciA9IGxvYWRGYWN0b3I7XHJcblxyXG4gICAgaWYgKHRoaXMuX2J1Y2tldENvdW50ICUgMiAhPT0gMCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdCdWNrZXQgY291bnQgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBhbmQgYmUgbXVsdGlwbGUgb2YgMi4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEdlbmVyaWMgSGFzaCBmdW50aW9uXHJcbiAgcHJpdmF0ZSBIYXNoRnVuY3Rpb24oa2V5KTogbnVtYmVyIHtcclxuICAgIGlmICh0eXBlb2Yga2V5LkdldEhhc2hDb2RlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiBrZXkuR2V0SGFzaENvZGUoKTtcclxuICAgIH0gZWxzZSBpZiAoa2V5LmNvbnN0cnVjdG9yID09PSBTdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gSGFzaFV0aWxzLkdldEhhc2hDb2RlKGtleS50b1N0cmluZygpKTtcclxuICAgIH0gZWxzZSBpZiAoa2V5LmNvbnN0cnVjdG9yID09PSBOdW1iZXIpIHtcclxuICAgICAgcmV0dXJuICtrZXk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIC8vIHJldHVybnMgZWxlbWVudENvdW50XHJcbiAgZ2V0IENvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRzQ291bnQ7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5zIFZhbHVlQ29sbGVjdGlvbiAoQXJyYXkgRW51bWVyYXRvcilcclxuICBnZXQgVmFsdWVzKCk6IEFycmF5X0VudW1lcmF0b3I8VFZhbHVlPiB7XHJcbiAgICBsZXQgYXJyYXk6IEFycmF5PFRWYWx1ZT4gPSBbXTtcclxuICAgIHRoaXMuX2J1Y2tldHMuZm9yRWFjaChiID0+IGIuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgYXJyYXkucHVzaChpdGVtLnZhbHVlKTtcclxuICAgIH0pKTtcclxuICAgIHJldHVybiBuZXcgQXJyYXlfRW51bWVyYXRvcihhcnJheSk7XHJcbiAgfVxyXG5cclxuICAvLyByZXR1cm5zIEtleUNvbGxlY3Rpb24gKEFycmF5IEVudW1lcmF0b3IpXHJcbiAgZ2V0IEtleXMoKTogQXJyYXlfRW51bWVyYXRvcjxUS2V5PiB7XHJcbiAgICBsZXQgYXJyYXk6IEFycmF5PFRLZXk+ID0gW107XHJcbiAgICB0aGlzLl9idWNrZXRzLmZvckVhY2goYiA9PiBiLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGFycmF5LnB1c2goaXRlbS5rZXkpO1xyXG4gICAgfSkpO1xyXG4gICAgcmV0dXJuIG5ldyBBcnJheV9FbnVtZXJhdG9yKGFycmF5KTtcclxuICB9XHJcblxyXG4gIC8vIGFkZHMgaXRlbSB0byBIYXNodGFibGVcclxuICBBZGQoa2V5OiBUS2V5LCB2YWx1ZTogVFZhbHVlKTogdm9pZCB7XHJcbiAgICB0aGlzLkluc2VydChrZXksIHZhbHVlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIC8vIHNldHMgaXRlbSBpbiBIYXNodGFibGVcclxuICBzZXRfSXRlbShrZXk6IFRLZXksIHZhbHVlOiBUVmFsdWUpIHtcclxuICAgIHRoaXMuSW5zZXJ0KGtleSwgdmFsdWUsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8vIEluc2VydCBlbGVtZW50IGluIEhhc2h0YWJsZVxyXG4gIHByaXZhdGUgSW5zZXJ0KGtleTogVEtleSwgdmFsdWU6IFRWYWx1ZSwgYWRkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcblxyXG4gICAgaWYgKHR5cGVvZiB0aGlzLl9idWNrZXRzW2J1Y2tldEluZGV4XSA9PT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICB0aGlzLl9idWNrZXRzW2J1Y2tldEluZGV4XSA9IDxCdWNrZXQ8VEtleSwgVFZhbHVlPj48dW5rbm93bj5bXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF0uZmluZCh4ID0+IHgua2V5ID09PSBrZXkpKSB7XHJcbiAgICAgIGlmIChhZGQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXhjZXB0aW9uKCdJdGVtIHdpdGggcHJvdmlkZWQga2V5IGFscmVhZHkgZXhpc3RzIScpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuUmVtb3ZlKGtleSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF0ucHVzaCh7a2V5OiBrZXksIHZhbHVlOiB2YWx1ZX0pO1xyXG5cclxuICAgIHRoaXMuX2VsZW1lbnRzQ291bnQrKztcclxuICAgIGlmICh0aGlzLl9lbGVtZW50c0NvdW50ID4gdGhpcy5fYnVja2V0Q291bnQgKiB0aGlzLl9sb2FkRmFjdG9yKSB7XHJcbiAgICAgIHRoaXMuUmVzaXplKHRoaXMuX2J1Y2tldENvdW50ICogMik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLy8gR2V0cyB2YWx1ZSBmb3Iga2V5IFRLZXlcclxuICBnZXRfSXRlbShrZXk6IFRLZXkpOiBUVmFsdWUge1xyXG4gICAgbGV0IGJ1Y2tldEluZGV4ID0gdGhpcy5HZXRCdWNrZXRJbmRleChrZXkpO1xyXG4gICAgbGV0IGJ1Y2tldCA9IHRoaXMuX2J1Y2tldHNbYnVja2V0SW5kZXhdO1xyXG4gICAgaWYgKCFidWNrZXQpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW0gPSBidWNrZXQuZmluZCh4ID0+IHgua2V5ID09PSBrZXkpO1xyXG4gICAgaWYgKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIGlmIGtleSBUS2V5IGlzIHByZXNlbnQgaW4gSGFzaHRhYmxlXHJcbiAgQ29udGFpbnNLZXkoa2V5OiBUS2V5KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcbiAgICBsZXQgYnVja2V0ID0gdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF07XHJcbiAgICBpZiAoIWJ1Y2tldCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW1JbmRleCA9IGJ1Y2tldC5maW5kSW5kZXgoeCA9PiB4LmtleSA9PT0ga2V5KTtcclxuICAgIHJldHVybiAoaXRlbUluZGV4ID4gLTEpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVtb3ZlcyBpdGVtIHdpdGgga2V5IFRLZXkgZnJvbSBIYXNodGFibGVcclxuICBSZW1vdmUoa2V5OiBUS2V5KSB7XHJcbiAgICBsZXQgYnVja2V0SW5kZXggPSB0aGlzLkdldEJ1Y2tldEluZGV4KGtleSk7XHJcbiAgICBsZXQgYnVja2V0ID0gdGhpcy5fYnVja2V0c1tidWNrZXRJbmRleF07XHJcbiAgICBpZiAoIWJ1Y2tldCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGl0ZW1JbmRleCA9IGJ1Y2tldC5maW5kSW5kZXgoeCA9PiB4LmtleSA9PT0ga2V5KTtcclxuICAgIGlmIChpdGVtSW5kZXggPiAtMSkge1xyXG4gICAgICBidWNrZXQuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRzQ291bnQtLTtcclxuICAgICAgaWYgKHRoaXMuX2VsZW1lbnRzQ291bnQgPD0gdGhpcy5fYnVja2V0Q291bnQgKiAoMSAtIHRoaXMuX2xvYWRGYWN0b3IpKSB7XHJcbiAgICAgICAgdGhpcy5SZXNpemUodGhpcy5fYnVja2V0Q291bnQgLyAyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gUmVzaXplIGJ1Y2tldCAoSGFzaHRhYmxlKVxyXG4gIHByaXZhdGUgUmVzaXplKG5ld0J1Y2tldENvdW50OiBudW1iZXIpIHtcclxuICAgIGxldCBfb2xkQnVja2V0cyA9IHRoaXMuX2J1Y2tldHM7XHJcbiAgICB0aGlzLl9lbGVtZW50c0NvdW50ID0gMDtcclxuICAgIHRoaXMuX2J1Y2tldHMgPSBbXTtcclxuICAgIHRoaXMuX2J1Y2tldENvdW50ID0gbmV3QnVja2V0Q291bnQ7XHJcblxyXG4gICAgX29sZEJ1Y2tldHMuZm9yRWFjaChiID0+IGIuZm9yRWFjaChpdGVtID0+IHRoaXMuQWRkKGl0ZW0ua2V5LCBpdGVtLnZhbHVlKSkpO1xyXG4gIH1cclxuXHJcbi8vIHJldHVybnMgYnVja2V0SW5kZXggZm9yIGtleVxyXG4gIHByaXZhdGUgR2V0QnVja2V0SW5kZXgoa2V5OiBUS2V5KSB7XHJcbiAgICBsZXQgaGFzaCA9IHRoaXMuSGFzaEZ1bmN0aW9uKGtleSk7XHJcbiAgICBpZiAoaGFzaCAlIDEgIT09IDApIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignS2V5XFwncyBoYXNoIG11c3QgYmUgYW4gaW50ZWdlciEnKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaW5kZXggPSBNYXRoLmFicyhoYXNoKSAlIHRoaXMuX2J1Y2tldENvdW50O1xyXG5cclxuICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gdGhpcy5fYnVja2V0Q291bnQpIHtcclxuICAgICAgdGhyb3cgbmV3IEV4Y2VwdGlvbignSW5kZXggZXhjZWVkcyBidWNrZXQgYm91bmRhcmllcycpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcblxyXG4vLyBDbGVhcnMgSGFzaHRhYmxlXHJcbiAgQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbGVtZW50c0NvdW50ID0gMDtcclxuICAgIHRoaXMuX2J1Y2tldHMgPSBbXTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUNvbXBhcmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0lDb21wYXJhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElDb21wYXJhYmxlIHtcclxuICBDb21wYXJlVG8ob2JqOiBhbnkpOiBudW1iZXI7XHJcbn1cclxuIl19
@@ -1,38 +0,0 @@
1
- import { Encoding } from "./Encoding";
2
- export class ISO_8859_1_Encoding extends Encoding {
3
- static ISO_8859_1 = new ISO_8859_1_Encoding("iso_8859-1");
4
- constructor(label) {
5
- super(label);
6
- }
7
- GetBytes(str) {
8
- if (str === null)
9
- throw new Error("Argument is null");
10
- let bytes = null;
11
- bytes = new Uint8Array(str.length * 3);
12
- let bytesCount = 0;
13
- for (let i = 0; i < str.length; i++) {
14
- bytes[bytesCount++] = str[i].charCodeAt(0);
15
- }
16
- bytes = bytes.subarray(0, 0 + bytesCount);
17
- return bytes;
18
- }
19
- GetString(bytes, index, count) {
20
- let str = null;
21
- if (bytes === null)
22
- throw new Error("Argument is null");
23
- if (index < 0 || count < 0 || (index + count) > bytes.length)
24
- throw new Error("Argument out of range");
25
- bytes = bytes.subarray(index, index + count);
26
- try {
27
- str = '';
28
- for (let i = 0; i < bytes.length; i++) {
29
- str += String.fromCharCode(bytes[i]);
30
- }
31
- ;
32
- }
33
- catch (ex) {
34
- }
35
- return str;
36
- }
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNPXzg4NTlfMV9FbmNvZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21zY29yZWxpYi9zcmMvSVNPXzg4NTlfMV9FbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxRQUFRO0lBRS9DLE1BQU0sQ0FBVSxVQUFVLEdBQXdCLElBQUksbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEYsWUFBWSxLQUFhO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUVsQixJQUFJLEdBQUcsS0FBSyxJQUFJO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRDLElBQUksS0FBSyxHQUFlLElBQUksQ0FBQztRQUU3QixLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLFVBQVUsR0FBVyxDQUFDLENBQUM7UUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQ25DO1lBQ0UsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUVELEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWlCLEVBQUUsS0FBYSxFQUFFLEtBQWE7UUFDdkQsSUFBSSxHQUFHLEdBQVcsSUFBSSxDQUFDO1FBRXZCLElBQUksS0FBSyxLQUFLLElBQUk7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRXRDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNO1lBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUUzQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBRTdDLElBQUk7WUFFRixHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ1QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQ3JDO2dCQUNFLEdBQUcsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO1lBQUEsQ0FBQztTQUNIO1FBQ0QsT0FBTyxFQUFFLEVBQUU7U0FDVjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW5jb2Rpbmd9IGZyb20gXCIuL0VuY29kaW5nXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgSVNPXzg4NTlfMV9FbmNvZGluZyBleHRlbmRzIEVuY29kaW5nIHtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IElTT184ODU5XzE6IElTT184ODU5XzFfRW5jb2RpbmcgPSBuZXcgSVNPXzg4NTlfMV9FbmNvZGluZyhcImlzb184ODU5LTFcIik7XHJcbiAgY29uc3RydWN0b3IobGFiZWw6IHN0cmluZykge1xyXG4gIHN1cGVyKGxhYmVsKTtcclxuICB9XHJcblxyXG4gIEdldEJ5dGVzKHN0cjogc3RyaW5nKTogVWludDhBcnJheSB7XHJcblxyXG4gICAgaWYgKHN0ciA9PT0gbnVsbClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgaXMgbnVsbFwiKTtcclxuXHJcbiAgICBsZXQgYnl0ZXM6IFVpbnQ4QXJyYXkgPSBudWxsO1xyXG5cclxuICAgIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoc3RyLmxlbmd0aCAqIDMpO1xyXG4gICAgbGV0IGJ5dGVzQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKylcclxuICAgIHtcclxuICAgICAgYnl0ZXNbYnl0ZXNDb3VudCsrXSA9IHN0cltpXS5jaGFyQ29kZUF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIGJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoMCwgMCArIGJ5dGVzQ291bnQpO1xyXG4gICAgcmV0dXJuIGJ5dGVzO1xyXG4gIH1cclxuXHJcbiAgR2V0U3RyaW5nKGJ5dGVzOiBVaW50OEFycmF5LCBpbmRleDogbnVtYmVyLCBjb3VudDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHI6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gICAgaWYgKGJ5dGVzID09PSBudWxsKVxyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJBcmd1bWVudCBpcyBudWxsXCIpO1xyXG5cclxuICAgIGlmIChpbmRleCA8IDAgfHwgY291bnQgPCAwIHx8IChpbmRleCArIGNvdW50KSA+IGJ5dGVzLmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQXJndW1lbnQgb3V0IG9mIHJhbmdlXCIpO1xyXG5cclxuICAgIGJ5dGVzID0gYnl0ZXMuc3ViYXJyYXkoaW5kZXgsIGluZGV4ICsgY291bnQpO1xyXG5cclxuICAgIHRyeSB7XHJcblxyXG4gICAgICBzdHIgPSAnJztcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkrKylcclxuICAgICAge1xyXG4gICAgICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ5dGVzW2ldKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +0,0 @@
1
- export class Int32 {
2
- static MinValue = -2147483648;
3
- static MaxValue = 2147483647;
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50MzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0ludDMyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLE1BQU0sQ0FBQyxRQUFRLEdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDdEMsTUFBTSxDQUFDLFFBQVEsR0FBVyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW50MzIge1xyXG4gIHN0YXRpYyBNaW5WYWx1ZTogbnVtYmVyID0gLTIxNDc0ODM2NDg7XHJcbiAgc3RhdGljIE1heFZhbHVlOiBudW1iZXIgPSAyMTQ3NDgzNjQ3O1xyXG59XHJcbiJdfQ==
@@ -1,4 +0,0 @@
1
- export class Int64 {
2
- static MinValue = -9223372036854775808;
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50NjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tc2NvcmVsaWIvc3JjL0ludDY0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxLQUFLO0lBQ2hCLE1BQU0sQ0FBQyxRQUFRLEdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJbnQ2NCB7XHJcbiAgc3RhdGljIE1pblZhbHVlOiBudW1iZXIgPSAtOTIyMzM3MjAzNjg1NDc3NTgwODtcclxufVxyXG4iXX0=