@fgv/ts-utils 1.9.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +26 -0
- package/CHANGELOG.md +14 -0
- package/dist/ts-utils.d.ts +3007 -0
- package/dist/tsdoc-metadata.json +11 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +68 -0
- package/lib/index.js.map +1 -0
- package/lib/packlets/base/brand.d.ts.map +1 -0
- package/lib/packlets/base/brand.js +24 -0
- package/lib/packlets/base/brand.js.map +1 -0
- package/lib/packlets/base/index.d.ts +7 -0
- package/lib/packlets/base/index.d.ts.map +1 -0
- package/lib/packlets/base/index.js +58 -0
- package/lib/packlets/base/index.js.map +1 -0
- package/{logger.d.ts → lib/packlets/base/logger.d.ts} +16 -1
- package/lib/packlets/base/logger.d.ts.map +1 -0
- package/lib/packlets/base/logger.js +128 -0
- package/lib/packlets/base/logger.js.map +1 -0
- package/{normalize.d.ts → lib/packlets/base/normalize.d.ts} +6 -0
- package/lib/packlets/base/normalize.d.ts.map +1 -0
- package/lib/packlets/base/normalize.js +139 -0
- package/lib/packlets/base/normalize.js.map +1 -0
- package/{result.d.ts → lib/packlets/base/result.d.ts} +16 -15
- package/lib/packlets/base/result.d.ts.map +1 -0
- package/lib/packlets/base/result.js +571 -0
- package/lib/packlets/base/result.js.map +1 -0
- package/lib/packlets/base/utils.d.ts.map +1 -0
- package/lib/packlets/base/utils.js +200 -0
- package/lib/packlets/base/utils.js.map +1 -0
- package/{converter.d.ts → lib/packlets/conversion/converter.d.ts} +11 -12
- package/lib/packlets/conversion/converter.d.ts.map +1 -0
- package/lib/packlets/conversion/converter.js +218 -0
- package/lib/packlets/conversion/converter.js.map +1 -0
- package/{converters.d.ts → lib/packlets/conversion/converters.d.ts} +52 -216
- package/lib/packlets/conversion/converters.d.ts.map +1 -0
- package/lib/packlets/conversion/converters.js +739 -0
- package/lib/packlets/conversion/converters.js.map +1 -0
- package/lib/packlets/conversion/index.d.ts +6 -0
- package/lib/packlets/conversion/index.d.ts.map +1 -0
- package/lib/packlets/conversion/index.js +56 -0
- package/lib/packlets/conversion/index.js.map +1 -0
- package/lib/packlets/conversion/objectConverter.d.ts +94 -0
- package/lib/packlets/conversion/objectConverter.d.ts.map +1 -0
- package/lib/packlets/conversion/objectConverter.js +110 -0
- package/lib/packlets/conversion/objectConverter.js.map +1 -0
- package/lib/packlets/conversion/stringConverter.d.ts +78 -0
- package/lib/packlets/conversion/stringConverter.d.ts.map +1 -0
- package/lib/packlets/conversion/stringConverter.js +97 -0
- package/lib/packlets/conversion/stringConverter.js.map +1 -0
- package/{csvHelpers.d.ts → lib/packlets/csv/csvHelpers.d.ts} +1 -1
- package/lib/packlets/csv/csvHelpers.d.ts.map +1 -0
- package/lib/packlets/csv/csvHelpers.js +69 -0
- package/lib/packlets/csv/csvHelpers.js.map +1 -0
- package/lib/packlets/csv/index.d.ts +2 -0
- package/lib/packlets/csv/index.d.ts.map +1 -0
- package/lib/packlets/csv/index.js +39 -0
- package/lib/packlets/csv/index.js.map +1 -0
- package/{extendedArray.d.ts → lib/packlets/experimental/extendedArray.d.ts} +7 -7
- package/lib/packlets/experimental/extendedArray.d.ts.map +1 -0
- package/lib/packlets/experimental/extendedArray.js +106 -0
- package/lib/packlets/experimental/extendedArray.js.map +1 -0
- package/{formatter.d.ts → lib/packlets/experimental/formatter.d.ts} +6 -6
- package/lib/packlets/experimental/formatter.d.ts.map +1 -0
- package/lib/packlets/experimental/formatter.js +75 -0
- package/lib/packlets/experimental/formatter.js.map +1 -0
- package/lib/packlets/experimental/index.d.ts +4 -0
- package/lib/packlets/experimental/index.d.ts.map +1 -0
- package/lib/packlets/experimental/index.js +41 -0
- package/lib/packlets/experimental/index.js.map +1 -0
- package/{rangeOf.d.ts → lib/packlets/experimental/rangeOf.d.ts} +21 -24
- package/lib/packlets/experimental/rangeOf.d.ts.map +1 -0
- package/lib/packlets/experimental/rangeOf.js +185 -0
- package/lib/packlets/experimental/rangeOf.js.map +1 -0
- package/{hash.d.ts → lib/packlets/hash/hash.d.ts} +1 -1
- package/lib/packlets/hash/hash.d.ts.map +1 -0
- package/lib/packlets/hash/hash.js +168 -0
- package/lib/packlets/hash/hash.js.map +1 -0
- package/lib/packlets/hash/index.d.ts +2 -0
- package/lib/packlets/hash/index.d.ts.map +1 -0
- package/lib/packlets/hash/index.js +39 -0
- package/lib/packlets/hash/index.js.map +1 -0
- package/lib/packlets/record-jar/index.d.ts +2 -0
- package/lib/packlets/record-jar/index.d.ts.map +1 -0
- package/lib/packlets/record-jar/index.js +39 -0
- package/lib/packlets/record-jar/index.js.map +1 -0
- package/{recordJarHelpers.d.ts → lib/packlets/record-jar/recordJarHelpers.d.ts} +1 -1
- package/lib/packlets/record-jar/recordJarHelpers.d.ts.map +1 -0
- package/lib/packlets/record-jar/recordJarHelpers.js +263 -0
- package/lib/packlets/record-jar/recordJarHelpers.js.map +1 -0
- package/{validation → lib/packlets/validation}/array.d.ts +2 -2
- package/lib/packlets/validation/array.d.ts.map +1 -0
- package/lib/packlets/validation/array.js +67 -0
- package/lib/packlets/validation/array.js.map +1 -0
- package/{validation → lib/packlets/validation}/boolean.d.ts +1 -1
- package/lib/packlets/validation/boolean.d.ts.map +1 -0
- package/lib/packlets/validation/boolean.js +56 -0
- package/lib/packlets/validation/boolean.js.map +1 -0
- package/lib/packlets/validation/classes.d.ts.map +1 -0
- package/lib/packlets/validation/classes.js +38 -0
- package/lib/packlets/validation/classes.js.map +1 -0
- package/lib/packlets/validation/common.d.ts.map +1 -0
- package/lib/packlets/validation/common.js +24 -0
- package/lib/packlets/validation/common.js.map +1 -0
- package/{validation → lib/packlets/validation}/field.d.ts +1 -1
- package/lib/packlets/validation/field.d.ts.map +1 -0
- package/lib/packlets/validation/field.js +71 -0
- package/lib/packlets/validation/field.js.map +1 -0
- package/{validation → lib/packlets/validation}/genericValidator.d.ts +2 -3
- package/lib/packlets/validation/genericValidator.d.ts.map +1 -0
- package/lib/packlets/validation/genericValidator.js +137 -0
- package/lib/packlets/validation/genericValidator.js.map +1 -0
- package/lib/packlets/validation/index.d.ts.map +1 -0
- package/{validation → lib/packlets/validation}/index.js +1 -1
- package/lib/packlets/validation/index.js.map +1 -0
- package/{validation → lib/packlets/validation}/number.d.ts +1 -1
- package/lib/packlets/validation/number.d.ts.map +1 -0
- package/lib/packlets/validation/number.js +54 -0
- package/lib/packlets/validation/number.js.map +1 -0
- package/{validation → lib/packlets/validation}/object.d.ts +1 -1
- package/lib/packlets/validation/object.d.ts.map +1 -0
- package/lib/packlets/validation/object.js +139 -0
- package/lib/packlets/validation/object.js.map +1 -0
- package/{validation → lib/packlets/validation}/string.d.ts +1 -1
- package/lib/packlets/validation/string.d.ts.map +1 -0
- package/lib/packlets/validation/string.js +54 -0
- package/lib/packlets/validation/string.js.map +1 -0
- package/lib/packlets/validation/traits.d.ts.map +1 -0
- package/lib/packlets/validation/traits.js +58 -0
- package/lib/packlets/validation/traits.js.map +1 -0
- package/{validation → lib/packlets/validation}/typeGuard.d.ts +1 -1
- package/lib/packlets/validation/typeGuard.d.ts.map +1 -0
- package/lib/packlets/validation/typeGuard.js +62 -0
- package/lib/packlets/validation/typeGuard.js.map +1 -0
- package/{validation → lib/packlets/validation}/validator.d.ts +15 -16
- package/lib/packlets/validation/validator.d.ts.map +1 -0
- package/lib/packlets/validation/validator.js +24 -0
- package/lib/packlets/validation/validator.js.map +1 -0
- package/{validation → lib/packlets/validation}/validatorBase.d.ts +1 -1
- package/lib/packlets/validation/validatorBase.d.ts.map +1 -0
- package/lib/packlets/validation/validatorBase.js +41 -0
- package/lib/packlets/validation/validatorBase.js.map +1 -0
- package/{validation → lib/packlets/validation}/validators.d.ts +3 -6
- package/lib/packlets/validation/validators.d.ts.map +1 -0
- package/lib/packlets/validation/validators.js +121 -0
- package/lib/packlets/validation/validators.js.map +1 -0
- package/package.json +21 -20
- package/brand.d.ts.map +0 -1
- package/brand.js +0 -24
- package/converter.d.ts.map +0 -1
- package/converter.js +0 -222
- package/converters.d.ts.map +0 -1
- package/converters.js +0 -896
- package/csvHelpers.d.ts.map +0 -1
- package/csvHelpers.js +0 -69
- package/extendedArray.d.ts.map +0 -1
- package/extendedArray.js +0 -106
- package/formatter.d.ts.map +0 -1
- package/formatter.js +0 -75
- package/hash.d.ts.map +0 -1
- package/hash.js +0 -168
- package/index.d.ts +0 -15
- package/index.d.ts.map +0 -1
- package/index.js +0 -70
- package/logger.d.ts.map +0 -1
- package/logger.js +0 -115
- package/normalize.d.ts.map +0 -1
- package/normalize.js +0 -139
- package/rangeOf.d.ts.map +0 -1
- package/rangeOf.js +0 -185
- package/recordJarHelpers.d.ts.map +0 -1
- package/recordJarHelpers.js +0 -262
- package/result.d.ts.map +0 -1
- package/result.js +0 -569
- package/utils.d.ts.map +0 -1
- package/utils.js +0 -200
- package/validation/array.d.ts.map +0 -1
- package/validation/array.js +0 -67
- package/validation/boolean.d.ts.map +0 -1
- package/validation/boolean.js +0 -59
- package/validation/classes.d.ts.map +0 -1
- package/validation/classes.js +0 -38
- package/validation/common.d.ts.map +0 -1
- package/validation/common.js +0 -24
- package/validation/field.d.ts.map +0 -1
- package/validation/field.js +0 -72
- package/validation/genericValidator.d.ts.map +0 -1
- package/validation/genericValidator.js +0 -138
- package/validation/index.d.ts.map +0 -1
- package/validation/number.d.ts.map +0 -1
- package/validation/number.js +0 -57
- package/validation/object.d.ts.map +0 -1
- package/validation/object.js +0 -143
- package/validation/string.d.ts.map +0 -1
- package/validation/string.js +0 -57
- package/validation/traits.d.ts.map +0 -1
- package/validation/traits.js +0 -58
- package/validation/typeGuard.d.ts.map +0 -1
- package/validation/typeGuard.js +0 -62
- package/validation/validator.d.ts.map +0 -1
- package/validation/validator.js +0 -24
- package/validation/validatorBase.d.ts.map +0 -1
- package/validation/validatorBase.js +0 -44
- package/validation/validators.d.ts.map +0 -1
- package/validation/validators.js +0 -119
- /package/{brand.d.ts → lib/packlets/base/brand.d.ts} +0 -0
- /package/{utils.d.ts → lib/packlets/base/utils.d.ts} +0 -0
- /package/{validation → lib/packlets/validation}/classes.d.ts +0 -0
- /package/{validation → lib/packlets/validation}/common.d.ts +0 -0
- /package/{validation → lib/packlets/validation}/index.d.ts +0 -0
- /package/{validation → lib/packlets/validation}/traits.d.ts +0 -0
package/logger.js
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NoOpLogger = exports.InMemoryLogger = exports.LoggerBase = void 0;
|
|
4
|
-
/*
|
|
5
|
-
* Copyright (c) 2020 Erik Fortune
|
|
6
|
-
*
|
|
7
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
9
|
-
* in the Software without restriction, including without limitation the rights
|
|
10
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
12
|
-
* furnished to do so, subject to the following conditions:
|
|
13
|
-
*
|
|
14
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
15
|
-
* copies or substantial portions of the Software.
|
|
16
|
-
*
|
|
17
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
-
* SOFTWARE.
|
|
24
|
-
*/
|
|
25
|
-
const result_1 = require("./result");
|
|
26
|
-
class LoggerBase {
|
|
27
|
-
constructor(logLevel) {
|
|
28
|
-
this.logLevel = 'info';
|
|
29
|
-
this.logLevel = logLevel !== null && logLevel !== void 0 ? logLevel : 'info';
|
|
30
|
-
}
|
|
31
|
-
detail(message, ...parameters) {
|
|
32
|
-
if (this.logLevel === 'detail') {
|
|
33
|
-
return this.log(message, parameters);
|
|
34
|
-
}
|
|
35
|
-
return (0, result_1.succeed)(undefined);
|
|
36
|
-
}
|
|
37
|
-
info(message, ...parameters) {
|
|
38
|
-
if ((this.logLevel === 'detail') || (this.logLevel === 'info')) {
|
|
39
|
-
return this.log(message, parameters);
|
|
40
|
-
}
|
|
41
|
-
return (0, result_1.succeed)(undefined);
|
|
42
|
-
}
|
|
43
|
-
warn(message, ...parameters) {
|
|
44
|
-
if ((this.logLevel !== 'error') && (this.logLevel !== 'silent')) {
|
|
45
|
-
return this.log(message, parameters);
|
|
46
|
-
}
|
|
47
|
-
return (0, result_1.succeed)(undefined);
|
|
48
|
-
}
|
|
49
|
-
warnAndFail(message, ...parameters) {
|
|
50
|
-
var _a;
|
|
51
|
-
const formatted = this._format(message, ...parameters);
|
|
52
|
-
if ((this.logLevel !== 'error') && (this.logLevel !== 'silent')) {
|
|
53
|
-
const result = this.log(formatted);
|
|
54
|
-
return (0, result_1.fail)((_a = result.value) !== null && _a !== void 0 ? _a : formatted);
|
|
55
|
-
}
|
|
56
|
-
return (0, result_1.fail)(formatted);
|
|
57
|
-
}
|
|
58
|
-
error(message, ...parameters) {
|
|
59
|
-
var _a;
|
|
60
|
-
const formatted = this._format(message, ...parameters);
|
|
61
|
-
if (this.logLevel !== 'silent') {
|
|
62
|
-
const result = this.log(formatted);
|
|
63
|
-
return (0, result_1.fail)((_a = result.value) !== null && _a !== void 0 ? _a : formatted);
|
|
64
|
-
}
|
|
65
|
-
return (0, result_1.fail)(formatted);
|
|
66
|
-
}
|
|
67
|
-
log(message, ...parameters) {
|
|
68
|
-
const messageString = this._format(message, ...parameters);
|
|
69
|
-
if (this.logLevel === 'silent') {
|
|
70
|
-
return this._innerSilent(messageString);
|
|
71
|
-
}
|
|
72
|
-
return this._innerLog(messageString);
|
|
73
|
-
}
|
|
74
|
-
_format(message, ...parameters) {
|
|
75
|
-
const raw = [message, ...parameters];
|
|
76
|
-
const filtered = raw.filter((m) => (m !== undefined));
|
|
77
|
-
const strings = filtered.map((m) => m.toString());
|
|
78
|
-
const joined = strings.join('');
|
|
79
|
-
return joined;
|
|
80
|
-
}
|
|
81
|
-
_innerSilent(_message) {
|
|
82
|
-
return (0, result_1.succeed)(undefined);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
exports.LoggerBase = LoggerBase;
|
|
86
|
-
class InMemoryLogger extends LoggerBase {
|
|
87
|
-
constructor(logLevel) {
|
|
88
|
-
super(logLevel);
|
|
89
|
-
this._messages = [];
|
|
90
|
-
this._silent = [];
|
|
91
|
-
}
|
|
92
|
-
get messages() { return this._messages; }
|
|
93
|
-
get silent() { return this._silent; }
|
|
94
|
-
clear() {
|
|
95
|
-
this._messages = [];
|
|
96
|
-
this._silent = [];
|
|
97
|
-
}
|
|
98
|
-
_innerLog(message) {
|
|
99
|
-
this._messages.push(message);
|
|
100
|
-
return (0, result_1.succeed)(message);
|
|
101
|
-
}
|
|
102
|
-
_innerSilent(message) {
|
|
103
|
-
this._silent.push(message);
|
|
104
|
-
return (0, result_1.succeed)(undefined);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
exports.InMemoryLogger = InMemoryLogger;
|
|
108
|
-
class NoOpLogger extends LoggerBase {
|
|
109
|
-
_innerLog(message) {
|
|
110
|
-
// no-op
|
|
111
|
-
return (0, result_1.succeed)(message);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
exports.NoOpLogger = NoOpLogger;
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxxQ0FBMkQ7QUFhM0QsTUFBc0IsVUFBVTtJQUc1QixZQUFtQixRQUFtQjtRQUYvQixhQUFRLEdBQWEsTUFBTSxDQUFDO1FBRy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxhQUFSLFFBQVEsY0FBUixRQUFRLEdBQUksTUFBTSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBaUIsRUFBRSxHQUFHLFVBQXFCO1FBQ3JELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU8sSUFBQSxnQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxJQUFJLENBQUMsT0FBaUIsRUFBRSxHQUFHLFVBQXFCO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRTtZQUM1RCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsT0FBTyxJQUFBLGdCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLElBQUksQ0FBQyxPQUFpQixFQUFFLEdBQUcsVUFBcUI7UUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxFQUFFO1lBQzdELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENB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SSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLFNBQVMsQ0FBQyxPQUFlO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBQSxnQkFBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFUyxZQUFZLENBQUMsT0FBZTtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixPQUFPLElBQUEsZ0JBQU8sRUFBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0o7QUF6QkQsd0NBeUJDO0FBRUQsTUFBYSxVQUFXLFNBQVEsVUFBVTtJQUM1QixTQUFTLENBQUMsT0FBZTtRQUMvQixRQUFRO1FBQ1IsT0FBTyxJQUFBLGdCQUFPLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztDQUNKO0FBTEQsZ0NBS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIwIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cbmltcG9ydCB7IEZhaWx1cmUsIFN1Y2Nlc3MsIGZhaWwsIHN1Y2NlZWQgfSBmcm9tICcuL3Jlc3VsdCc7XG5cbmV4cG9ydCB0eXBlIExvZ0xldmVsID0gJ2RldGFpbCd8J2luZm8nfCd3YXJuaW5nJ3wnZXJyb3InfCdzaWxlbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlciB7XG4gICAgbG9nKG1lc3NhZ2U/OiB1bmtub3duLCAuLi5wYXJhbWV0ZXJzOiB1bmtub3duW10pOiBTdWNjZXNzPHN0cmluZ3x1bmRlZmluZWQ+O1xuICAgIGRldGFpbChtZXNzYWdlPzogdW5rbm93biwgLi4ucGFyYW1ldGVyczogdW5rbm93bltdKTogU3VjY2VzczxzdHJpbmd8dW5kZWZpbmVkPjtcbiAgICBpbmZvKG1lc3NhZ2U/OiB1bmtub3duLCAuLi5wYXJhbWV0ZXJzOiB1bmtub3duW10pOiBTdWNjZXNzPHN0cmluZ3x1bmRlZmluZWQ+O1xuICAgIHdhcm4obWVzc2FnZT86IHVua25vd24sIC4uLnBhcmFtZXRlcnM6IHVua25vd25bXSk6IFN1Y2Nlc3M8c3RyaW5nfHVuZGVmaW5lZD47XG4gICAgd2FybkFuZEZhaWw8VD4obWVzc2FnZT86IHVua25vd24sIC4uLnBhcmFtZXRlcnM6IHVua25vd25bXSk6IEZhaWx1cmU8VD47XG4gICAgZXJyb3I8VD4obWVzc2FnZT86IHVua25vd24sIC4uLnBhcmFtZXRlcnM6IHVua25vd25bXSk6IEZhaWx1cmU8VD47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2dnZXJCYXNlIHtcbiAgICBwdWJsaWMgbG9nTGV2ZWw6IExvZ0xldmVsID0gJ2luZm8nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGxvZ0xldmVsPzogTG9nTGV2ZWwpIHtcbiAgICAgICAgdGhpcy5sb2dMZXZlbCA9IGxvZ0xldmVsID8/ICdpbmZvJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZGV0YWlsKG1lc3NhZ2U/OiB1bmtub3duLCAuLi5wYXJhbWV0ZXJzOiB1bmtub3duW10pOiBTdWNjZXNzPHN0cmluZ3x1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKHRoaXMubG9nTGV2ZWwgPT09ICdkZXRhaWwnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2cobWVzc2FnZSwgcGFyYW1ldGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5mbyhtZXNzYWdlPzogdW5rbm93biwgLi4ucGFyYW1ldGVyczogdW5rbm93bltdKTogU3VjY2VzczxzdHJpbmd8dW5kZWZpbmVkPiB7XG4gICAgICAgIGlmICgodGhpcy5sb2dMZXZlbCA9PT0gJ2RldGFpbCcpIHx8ICh0aGlzLmxvZ0xldmVsID09PSAnaW5mbycpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2cobWVzc2FnZSwgcGFyYW1ldGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2FybihtZXNzYWdlPzogdW5rbm93biwgLi4ucGFyYW1ldGVyczogdW5rbm93bltdKTogU3VjY2VzczxzdHJpbmd8dW5kZWZpbmVkPiB7XG4gICAgICAgIGlmICgodGhpcy5sb2dMZXZlbCAhPT0gJ2Vycm9yJykgJiYgKHRoaXMubG9nTGV2ZWwgIT09ICdzaWxlbnQnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9nKG1lc3NhZ2UsIHBhcmFtZXRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWNjZWVkKHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHdhcm5BbmRGYWlsPFQ+KG1lc3NhZ2U/OiB1bmtub3duLCAuLi5wYXJhbWV0ZXJzOiB1bmtub3duW10pOiBGYWlsdXJlPFQ+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gdGhpcy5fZm9ybWF0KG1lc3NhZ2UsIC4uLnBhcmFtZXRlcnMpO1xuICAgICAgICBpZiAoKHRoaXMubG9nTGV2ZWwgIT09ICdlcnJvcicpICYmICh0aGlzLmxvZ0xldmVsICE9PSAnc2lsZW50JykpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMubG9nKGZvcm1hdHRlZCk7XG4gICAgICAgICAgICByZXR1cm4gZmFpbChyZXN1bHQudmFsdWUgPz8gZm9ybWF0dGVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFpbChmb3JtYXR0ZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlcnJvcjxUPihtZXNzYWdlPzogdW5rbm93biwgLi4ucGFyYW1ldGVyczogdW5rbm93bltdKTogRmFpbHVyZTxUPiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IHRoaXMuX2Zvcm1hdChtZXNzYWdlLCAuLi5wYXJhbWV0ZXJzKTtcbiAgICAgICAgaWYgKHRoaXMubG9nTGV2ZWwgIT09ICdzaWxlbnQnKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmxvZyhmb3JtYXR0ZWQpO1xuICAgICAgICAgICAgcmV0dXJuIGZhaWwocmVzdWx0LnZhbHVlID8/IGZvcm1hdHRlZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhaWwoZm9ybWF0dGVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9nKG1lc3NhZ2U/OiB1bmtub3duLCAuLi5wYXJhbWV0ZXJzOiB1bmtub3duW10pOiBTdWNjZXNzPHN0cmluZ3x1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZVN0cmluZyA9IHRoaXMuX2Zvcm1hdChtZXNzYWdlLCAuLi5wYXJhbWV0ZXJzKTtcbiAgICAgICAgaWYgKHRoaXMubG9nTGV2ZWwgPT09ICdzaWxlbnQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faW5uZXJTaWxlbnQobWVzc2FnZVN0cmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2lubmVyTG9nKG1lc3NhZ2VTdHJpbmcpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZm9ybWF0KG1lc3NhZ2U/OiB1bmtub3duLCAuLi5wYXJhbWV0ZXJzOiB1bmtub3duW10pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByYXcgPSBbbWVzc2FnZSwgLi4ucGFyYW1ldGVyc107XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkID0gcmF3LmZpbHRlcigobSk6IG0gaXMgc3RyaW5nID0+IChtICE9PSB1bmRlZmluZWQpKTtcbiAgICAgICAgY29uc3Qgc3RyaW5ncyA9IGZpbHRlcmVkLm1hcCgobSkgPT4gbS50b1N0cmluZygpKTtcbiAgICAgICAgY29uc3Qgam9pbmVkID0gc3RyaW5ncy5qb2luKCcnKTtcbiAgICAgICAgcmV0dXJuIGpvaW5lZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2lubmVyU2lsZW50KF9tZXNzYWdlOiBzdHJpbmcpOiBTdWNjZXNzPHN0cmluZ3x1bmRlZmluZWQ+IHtcbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2lubmVyTG9nKG1lc3NhZ2U6IHN0cmluZyk6IFN1Y2Nlc3M8c3RyaW5nfHVuZGVmaW5lZD47XG59XG5cbmV4cG9ydCBjbGFzcyBJbk1lbW9yeUxvZ2dlciBleHRlbmRzIExvZ2dlckJhc2Uge1xuICAgIHByb3RlY3RlZCBfbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XG4gICAgcHJvdGVjdGVkIF9zaWxlbnQ6IHN0cmluZ1tdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IobG9nTGV2ZWw/OiBMb2dMZXZlbCkge1xuICAgICAgICBzdXBlcihsb2dMZXZlbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtZXNzYWdlcygpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLl9tZXNzYWdlczsgfVxuICAgIHB1YmxpYyBnZXQgc2lsZW50KCk6IHN0cmluZ1tdIHsgcmV0dXJuIHRoaXMuX3NpbGVudDsgfVxuXG4gICAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9tZXNzYWdlcyA9IFtdO1xuICAgICAgICB0aGlzLl9zaWxlbnQgPSBbXTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2lubmVyTG9nKG1lc3NhZ2U6IHN0cmluZyk6IFN1Y2Nlc3M8c3RyaW5nfHVuZGVmaW5lZD4ge1xuICAgICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xuICAgICAgICByZXR1cm4gc3VjY2VlZChtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2lubmVyU2lsZW50KG1lc3NhZ2U6IHN0cmluZyk6IFN1Y2Nlc3M8c3RyaW5nfHVuZGVmaW5lZD4ge1xuICAgICAgICB0aGlzLl9zaWxlbnQucHVzaChtZXNzYWdlKTtcbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodW5kZWZpbmVkKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOb09wTG9nZ2VyIGV4dGVuZHMgTG9nZ2VyQmFzZSB7XG4gICAgcHJvdGVjdGVkIF9pbm5lckxvZyhtZXNzYWdlOiBzdHJpbmcpOiBTdWNjZXNzPHN0cmluZ3x1bmRlZmluZWQ+IHtcbiAgICAgICAgLy8gbm8tb3BcbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQobWVzc2FnZSk7XG4gICAgfVxufVxuIl19
|
package/normalize.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../src/normalize.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAA6B,MAAM,UAAU,CAAC;AAE7D,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AACrD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnE;;;GAGG;AACH,qBAAa,UAAU;IACnB;;;;;OAKG;IACI,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IA+BvC;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,MAAM;IAexD;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;IAQjF,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IAI7D;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;CAyBrD"}
|
package/normalize.js
DELETED
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2021 Erik Fortune
|
|
4
|
-
*
|
|
5
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
* in the Software without restriction, including without limitation the rights
|
|
8
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
* furnished to do so, subject to the following conditions:
|
|
11
|
-
*
|
|
12
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
* copies or substantial portions of the Software.
|
|
14
|
-
*
|
|
15
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
* SOFTWARE.
|
|
22
|
-
*/
|
|
23
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.Normalizer = void 0;
|
|
25
|
-
const result_1 = require("./result");
|
|
26
|
-
/**
|
|
27
|
-
* Normalizes an arbitrary JSON object
|
|
28
|
-
* @public
|
|
29
|
-
*/
|
|
30
|
-
class Normalizer {
|
|
31
|
-
/**
|
|
32
|
-
* Normalizes the supplied value
|
|
33
|
-
*
|
|
34
|
-
* @param from - The value to be normalized
|
|
35
|
-
* @returns A normalized version of the value
|
|
36
|
-
*/
|
|
37
|
-
normalize(from) {
|
|
38
|
-
switch (typeof from) {
|
|
39
|
-
case 'string':
|
|
40
|
-
case 'bigint':
|
|
41
|
-
case 'boolean':
|
|
42
|
-
case 'number':
|
|
43
|
-
case 'symbol':
|
|
44
|
-
case 'undefined':
|
|
45
|
-
return this._normalizeLiteral(from);
|
|
46
|
-
case 'object':
|
|
47
|
-
if ((from === null) || (from instanceof Date) || (from instanceof RegExp)) {
|
|
48
|
-
return this._normalizeLiteral(from);
|
|
49
|
-
}
|
|
50
|
-
else if (Array.isArray(from)) {
|
|
51
|
-
return this._normalizeArray(from);
|
|
52
|
-
}
|
|
53
|
-
else if (from instanceof Map) {
|
|
54
|
-
return (0, result_1.succeed)(new Map(this._normalizeEntries(from.entries())));
|
|
55
|
-
}
|
|
56
|
-
else if (from instanceof Set) {
|
|
57
|
-
return (0, result_1.succeed)(new Set(this._normalizeEntries(from.entries())));
|
|
58
|
-
}
|
|
59
|
-
const obj = {};
|
|
60
|
-
for (const e of this._normalizeEntries(Object.entries(from))) {
|
|
61
|
-
obj[e[0]] = e[1];
|
|
62
|
-
}
|
|
63
|
-
return (0, result_1.succeed)(obj);
|
|
64
|
-
}
|
|
65
|
-
return (0, result_1.fail)(`normalize: Unexpected type - cannot normalize '${typeof from}'`);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Compares two property names from some object being normalized.
|
|
69
|
-
* @param k1 - First key to be compared.
|
|
70
|
-
* @param k2 - Second key to be compared.
|
|
71
|
-
* @returns `1` if `k1` is greater, `-1` if `k2` is greater and
|
|
72
|
-
* `0` if they are equal.
|
|
73
|
-
* @internal
|
|
74
|
-
*/
|
|
75
|
-
_compareKeys(k1, k2) {
|
|
76
|
-
const cs1 = String(k1);
|
|
77
|
-
const cs2 = String(k2);
|
|
78
|
-
if (cs1 > cs2) {
|
|
79
|
-
return 1;
|
|
80
|
-
}
|
|
81
|
-
// istanbul ignore else
|
|
82
|
-
if (cs2 > cs1) {
|
|
83
|
-
return -1;
|
|
84
|
-
}
|
|
85
|
-
// istanbul ignore next
|
|
86
|
-
return 0;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Normalizes an array of object property entries (e.g. as returned by `Object.entries()`).
|
|
90
|
-
* @remarks
|
|
91
|
-
* Converts property names (entry key) to string and then sorts as string.
|
|
92
|
-
* @param entries - The entries to be normalized.
|
|
93
|
-
* @returns A normalized sorted array of entries.
|
|
94
|
-
* @internal
|
|
95
|
-
*/
|
|
96
|
-
_normalizeEntries(entries) {
|
|
97
|
-
return Array.from(entries)
|
|
98
|
-
.sort((e1, e2) => this._compareKeys(e1[0], e2[0]))
|
|
99
|
-
.map((e) => [e[0], this.normalize(e[1])])
|
|
100
|
-
.filter((e) => e[1].isSuccess())
|
|
101
|
-
.map((e) => [e[0], e[1].orThrow()]);
|
|
102
|
-
}
|
|
103
|
-
_normalizeArray(from) {
|
|
104
|
-
return (0, result_1.mapResults)(from.map((v) => this.normalize(v)));
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Normalizes the supplied literal value
|
|
108
|
-
* @param from - The literal value to be normalized.
|
|
109
|
-
* @returns A normalized value for the literal.
|
|
110
|
-
* @internal
|
|
111
|
-
*/
|
|
112
|
-
_normalizeLiteral(from) {
|
|
113
|
-
// TODO: Apply configurable normalization rules
|
|
114
|
-
switch (typeof from) {
|
|
115
|
-
case 'string':
|
|
116
|
-
return (0, result_1.succeed)(from);
|
|
117
|
-
case 'bigint':
|
|
118
|
-
case 'boolean':
|
|
119
|
-
case 'number':
|
|
120
|
-
case 'symbol':
|
|
121
|
-
case 'undefined':
|
|
122
|
-
return (0, result_1.succeed)(from);
|
|
123
|
-
}
|
|
124
|
-
if (from === null) {
|
|
125
|
-
return (0, result_1.succeed)(from);
|
|
126
|
-
}
|
|
127
|
-
if (from instanceof Date) {
|
|
128
|
-
return (0, result_1.succeed)(from);
|
|
129
|
-
}
|
|
130
|
-
// istanbul ignore else
|
|
131
|
-
if (from instanceof RegExp) {
|
|
132
|
-
return (0, result_1.succeed)(from);
|
|
133
|
-
}
|
|
134
|
-
// istanbul ignore next
|
|
135
|
-
return (0, result_1.fail)(`cannot normalize ${JSON.stringify(from)}`);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
exports.Normalizer = Normalizer;
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25vcm1hbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7QUFFSCxxQ0FBNkQ7QUFLN0Q7OztHQUdHO0FBQ0gsTUFBYSxVQUFVO0lBQ25COzs7OztPQUtHO0lBQ0ksU0FBUyxDQUFJLElBQU87UUFDdkIsUUFBUSxPQUFPLElBQUksRUFBRTtZQUNqQixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxXQUFXO2dCQUNaLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLEtBQUssUUFBUTtnQkFDVCxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxFQUFFO29CQUN2RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDdkM7cUJBQ0ksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUF5QixDQUFDO2lCQUM3RDtxQkFDSSxJQUFJLElBQUksWUFBWSxHQUFHLEVBQUU7b0JBQzFCLE9BQU8sSUFBQSxnQkFBTyxFQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBaUIsQ0FBQyxDQUFDO2lCQUNuRjtxQkFDSSxJQUFJLElBQUksWUFBWSxHQUFHLEVBQUU7b0JBQzFCLE9BQU8sSUFBQSxnQkFBTyxFQUFDLElBQUksR0FBRyxDQUFDLElB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SUFBSSxDQUFDLENBQUM7U0FDeEI7UUFDRCx1QkFBdUI7UUFDdkIsSUFBSSxJQUFJLFlBQVksTUFBTSxFQUFFO1lBQ3hCLE9BQU8sSUFBQSxnQkFBTyxFQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsdUJBQXVCO1FBQ3ZCLE9BQU8sSUFBQSxhQUFJLEVBQUMsb0JBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDSjtBQWhIRCxnQ0FnSEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIxIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgUmVzdWx0LCBmYWlsLCBtYXBSZXN1bHRzLCBzdWNjZWVkIH0gZnJvbSAnLi9yZXN1bHQnO1xuXG5leHBvcnQgdHlwZSBFbnRyeTxUPiA9IFtzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIFRdO1xuZXhwb3J0IHR5cGUgUmVzdWx0RW50cnk8VD4gPSBbc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sLCBSZXN1bHQ8VD5dO1xuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYW4gYXJiaXRyYXJ5IEpTT04gb2JqZWN0XG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVyIHtcbiAgICAvKipcbiAgICAgKiBOb3JtYWxpemVzIHRoZSBzdXBwbGllZCB2YWx1ZVxuICAgICAqXG4gICAgICogQHBhcmFtIGZyb20gLSBUaGUgdmFsdWUgdG8gYmUgbm9ybWFsaXplZFxuICAgICAqIEByZXR1cm5zIEEgbm9ybWFsaXplZCB2ZXJzaW9uIG9mIHRoZSB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBub3JtYWxpemU8VD4oZnJvbTogVCk6IFJlc3VsdDxUPiB7XG4gICAgICAgIHN3aXRjaCAodHlwZW9mIGZyb20pIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZUxpdGVyYWwoZnJvbSk7XG4gICAgICAgICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICAgICAgICAgIGlmICgoZnJvbSA9PT0gbnVsbCkgfHwgKGZyb20gaW5zdGFuY2VvZiBEYXRlKSB8fCAoZnJvbSBpbnN0YW5jZW9mIFJlZ0V4cCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZUxpdGVyYWwoZnJvbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZnJvbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25vcm1hbGl6ZUFycmF5KGZyb20pIGFzIHVua25vd24gYXMgUmVzdWx0PFQ+O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChmcm9tIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKG5ldyBNYXAodGhpcy5fbm9ybWFsaXplRW50cmllcyhmcm9tLmVudHJpZXMoKSkpIGFzIHVua25vd24gYXMgVCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZyb20gaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQobmV3IFNldCh0aGlzLl9ub3JtYWxpemVFbnRyaWVzKGZyb20uZW50cmllcygpKSkgYXMgdW5rbm93biBhcyBUKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgb2JqOiB7IFtrZXkgaW4gbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sXTogdW5rbm93biB9ID0ge307XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBlIG9mIHRoaXMuX25vcm1hbGl6ZUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZnJvbSBhcyB1bmtub3duIGFzIG9iamVjdCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialtlWzBdXSA9IGVbMV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKG9iaiBhcyBUKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFpbChgbm9ybWFsaXplOiBVbmV4cGVjdGVkIHR5cGUgLSBjYW5ub3Qgbm9ybWFsaXplICcke3R5cGVvZiBmcm9tfSdgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wYXJlcyB0d28gcHJvcGVydHkgbmFtZXMgZnJvbSBzb21lIG9iamVjdCBiZWluZyBub3JtYWxpemVkLlxuICAgICAqIEBwYXJhbSBrMSAtIEZpcnN0IGtleSB0byBiZSBjb21wYXJlZC5cbiAgICAgKiBAcGFyYW0gazIgLSBTZWNvbmQga2V5IHRvIGJlIGNvbXBhcmVkLlxuICAgICAqIEByZXR1cm5zIGAxYCBpZiBgazFgIGlzIGdyZWF0ZXIsIGAtMWAgaWYgYGsyYCBpcyBncmVhdGVyIGFuZFxuICAgICAqIGAwYCBpZiB0aGV5IGFyZSBlcXVhbC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX2NvbXBhcmVLZXlzKGsxOiB1bmtub3duLCBrMjogdW5rbm93bik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGNzMSA9IFN0cmluZyhrMSk7XG4gICAgICAgIGNvbnN0IGNzMiA9IFN0cmluZyhrMik7XG4gICAgICAgIGlmIChjczEgPiBjczIpIHtcbiAgICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBlbHNlXG4gICAgICAgIGlmIChjczIgPiBjczEpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6ZXMgYW4gYXJyYXkgb2Ygb2JqZWN0IHByb3BlcnR5IGVudHJpZXMgKGUuZy4gYXMgcmV0dXJuZWQgYnkgYE9iamVjdC5lbnRyaWVzKClgKS5cbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIENvbnZlcnRzIHByb3BlcnR5IG5hbWVzIChlbnRyeSBrZXkpIHRvIHN0cmluZyBhbmQgdGhlbiBzb3J0cyBhcyBzdHJpbmcuXG4gICAgICogQHBhcmFtIGVudHJpZXMgLSBUaGUgZW50cmllcyB0byBiZSBub3JtYWxpemVkLlxuICAgICAqIEByZXR1cm5zIEEgbm9ybWFsaXplZCBzb3J0ZWQgYXJyYXkgb2YgZW50cmllcy5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX25vcm1hbGl6ZUVudHJpZXM8VCA9IHVua25vd24+KGVudHJpZXM6IEl0ZXJhYmxlPEVudHJ5PFQ+Pik6IEVudHJ5PFQ+W10ge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShlbnRyaWVzKVxuICAgICAgICAgICAgLnNvcnQoKGUxLCBlMikgPT4gdGhpcy5fY29tcGFyZUtleXMoZTFbMF0sIGUyWzBdKSlcbiAgICAgICAgICAgIC5tYXAoKGUpID0+IFtlWzBdLCB0aGlzLm5vcm1hbGl6ZShlWzFdKV0gYXMgUmVzdWx0RW50cnk8VD4pXG4gICAgICAgICAgICAuZmlsdGVyKChlKSA9PiBlWzFdLmlzU3VjY2VzcygpKVxuICAgICAgICAgICAgLm1hcCgoZSkgPT4gW2VbMF0sIGVbMV0ub3JUaHJvdygpXSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9ub3JtYWxpemVBcnJheShmcm9tOiB1bmtub3duW10pOiBSZXN1bHQ8dW5rbm93bltdPiB7XG4gICAgICAgIHJldHVybiBtYXBSZXN1bHRzKGZyb20ubWFwKCh2KSA9PiB0aGlzLm5vcm1hbGl6ZSh2KSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6ZXMgdGhlIHN1cHBsaWVkIGxpdGVyYWwgdmFsdWVcbiAgICAgKiBAcGFyYW0gZnJvbSAtIFRoZSBsaXRlcmFsIHZhbHVlIHRvIGJlIG5vcm1hbGl6ZWQuXG4gICAgICogQHJldHVybnMgQSBub3JtYWxpemVkIHZhbHVlIGZvciB0aGUgbGl0ZXJhbC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX25vcm1hbGl6ZUxpdGVyYWw8VD4oZnJvbTogVCk6IFJlc3VsdDxUPiB7XG4gICAgICAgIC8vIFRPRE86IEFwcGx5IGNvbmZpZ3VyYWJsZSBub3JtYWxpemF0aW9uIHJ1bGVzXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIGZyb20pIHtcbiAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZnJvbSk7XG4gICAgICAgICAgICBjYXNlICdiaWdpbnQnOlxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgICAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZyb20gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKGZyb20pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmcm9tIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZnJvbSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIGVsc2VcbiAgICAgICAgaWYgKGZyb20gaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICAgIHJldHVybiBzdWNjZWVkKGZyb20pO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHJldHVybiBmYWlsKGBjYW5ub3Qgbm9ybWFsaXplICR7SlNPTi5zdHJpbmdpZnkoZnJvbSl9YCk7XG4gICAgfVxufVxuIl19
|
package/rangeOf.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rangeOf.d.ts","sourceRoot":"","sources":["../src/rangeOf.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AAGjD;;;GAGG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjB,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;CAInC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,OAAO,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IACnD;;OAEG;IACH,SAAgB,GAAG,CAAC,EAAE,CAAC,CAAC;IACxB;;OAEG;IACH,SAAgB,GAAG,CAAC,EAAE,CAAC,CAAC;IAExB;;;;OAIG;gBACgB,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IASnC;;;;OAIG;WACW,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAI7E;;;;;;;;OAQG;WACW,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,MAAM,GAAC,SAAS;IAgB5H;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,GAAC,OAAO,GAAC,SAAS;IAU3E;;;;;;OAMG;IACI,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAC,UAAU,GAAC,SAAS;IAU/C;;;;OAIG;IACI,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO;IAI9B;;;;;;;OAOG;IACI,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAC,SAAS;IAUxC;;;;;;OAMG;IACI,qBAAqB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAC,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC;IAO/F;;;;;;OAMG;IACI,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,GAAC,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,GAAC,SAAS;IAIjG;;;;;;;OAOG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,GAAC,OAAO,GAAC,SAAS;CAG7D"}
|
package/rangeOf.js
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*
|
|
3
|
-
* Copyright (c) 2020 Erik Fortune
|
|
4
|
-
*
|
|
5
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
* in the Software without restriction, including without limitation the rights
|
|
8
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
* furnished to do so, subject to the following conditions:
|
|
11
|
-
*
|
|
12
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
* copies or substantial portions of the Software.
|
|
14
|
-
*
|
|
15
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
* SOFTWARE.
|
|
22
|
-
*/
|
|
23
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
24
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
25
|
-
};
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.RangeOf = exports.DEFAULT_RANGEOF_FORMATS = void 0;
|
|
28
|
-
const result_1 = require("./result");
|
|
29
|
-
const mustache_1 = __importDefault(require("mustache"));
|
|
30
|
-
/**
|
|
31
|
-
* Default {@link RangeOfFormats | formats} to use for both
|
|
32
|
-
* open-ended and complete {@link RangeOf | RangeOf<T>}.
|
|
33
|
-
* @public
|
|
34
|
-
*/
|
|
35
|
-
exports.DEFAULT_RANGEOF_FORMATS = {
|
|
36
|
-
minOnly: '{{min}}-',
|
|
37
|
-
maxOnly: '-{{max}}',
|
|
38
|
-
minMax: '{{min}}-{{max}}',
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Simple implementation of a possibly open-ended range of some comparable
|
|
42
|
-
* type `<T>` with test and formatting.
|
|
43
|
-
* @public
|
|
44
|
-
*/
|
|
45
|
-
class RangeOf {
|
|
46
|
-
/**
|
|
47
|
-
* Creates a new {@link RangeOf | RangeOf<T>}.
|
|
48
|
-
* @param min - Optional mininum extent of the range.
|
|
49
|
-
* @param max - Optional maximum extent of the range.
|
|
50
|
-
*/
|
|
51
|
-
constructor(min, max) {
|
|
52
|
-
if (((min !== undefined) && (max !== undefined)) &&
|
|
53
|
-
this._compare(min, max) === 'greater') {
|
|
54
|
-
throw new Error(`Inverted range - ${JSON.stringify(min)} must be <= ${JSON.stringify(max)}.`);
|
|
55
|
-
}
|
|
56
|
-
this.min = min;
|
|
57
|
-
this.max = max;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Static constructor for a {@link RangeOf | RangeOf<T>}.
|
|
61
|
-
* @param init - {@link RangeOfProperties | Range initializer}.
|
|
62
|
-
* @returns A new {@link RangeOf | RangeOf<T>}.
|
|
63
|
-
*/
|
|
64
|
-
static createRange(init) {
|
|
65
|
-
return (0, result_1.captureResult)(() => new RangeOf(init === null || init === void 0 ? void 0 : init.min, init === null || init === void 0 ? void 0 : init.max));
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Gets a formatted description of a {@link RangeOfProperties | RangeOfProperties<T>} given an
|
|
69
|
-
* optional set of formats and 'empty' value to use.
|
|
70
|
-
* @param range - The {@link RangeOfProperties | RangeOfProperties<T>} to be formatted.
|
|
71
|
-
* @param formats - Optionas {@link RangeOfFormats | formats} to use. Default is
|
|
72
|
-
* {@link DEFAULT_RANGEOF_FORMATS | DEFAULT_RANGEOF_FORMATS}.
|
|
73
|
-
* @param emptyValue - Value which represents unbounded minimum or maximum for this range. Default is `undefined`.
|
|
74
|
-
* @returns A string representation of the range.
|
|
75
|
-
*/
|
|
76
|
-
static propertiesToString(range, formats, emptyValue) {
|
|
77
|
-
formats = formats !== null && formats !== void 0 ? formats : exports.DEFAULT_RANGEOF_FORMATS;
|
|
78
|
-
if ((range.min !== undefined) && (range.min !== emptyValue)) {
|
|
79
|
-
if ((range.max !== undefined) && (range.max !== emptyValue)) {
|
|
80
|
-
return mustache_1.default.render(formats.minMax, range);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
return mustache_1.default.render(formats.minOnly, range);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else if ((range.max !== undefined) && (range.max !== emptyValue)) {
|
|
87
|
-
return mustache_1.default.render(formats.maxOnly, range);
|
|
88
|
-
}
|
|
89
|
-
return undefined;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Default comparison uses javascript built-in comparison.
|
|
93
|
-
* @param t1 - First value to be compared.
|
|
94
|
-
* @param t2 - Second value to be compared.
|
|
95
|
-
* @returns `'less'` if `t1` is less than `t2`, `'greater'` if `t1` is larger
|
|
96
|
-
* and `'equal'` if `t1` and `t2` are equal.
|
|
97
|
-
* @internal
|
|
98
|
-
*/
|
|
99
|
-
static _defaultCompare(t1, t2) {
|
|
100
|
-
if (t1 < t2) {
|
|
101
|
-
return 'less';
|
|
102
|
-
}
|
|
103
|
-
else if (t1 > t2) {
|
|
104
|
-
return 'greater';
|
|
105
|
-
}
|
|
106
|
-
return 'equal';
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Checks if a supplied value is within this range.
|
|
110
|
-
* @param t - The value to be tested.
|
|
111
|
-
* @returns `'included'` if `t` falls within the range, `'less'` if `t` falls
|
|
112
|
-
* below the minimum extent of the range and `'greater'` if `t` is above the
|
|
113
|
-
* maximum extent.
|
|
114
|
-
*/
|
|
115
|
-
check(t) {
|
|
116
|
-
if ((this.min !== undefined) && (this._compare(t, this.min) === 'less')) {
|
|
117
|
-
return 'less';
|
|
118
|
-
}
|
|
119
|
-
if ((this.max !== undefined) && (this._compare(t, this.max) !== 'less')) {
|
|
120
|
-
return 'greater';
|
|
121
|
-
}
|
|
122
|
-
return 'included';
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Determines if a supplied value is within this range.
|
|
126
|
-
* @param t - The value to be tested.
|
|
127
|
-
* @returns Returns `true` if `t` falls within the range, `false` otherwise.
|
|
128
|
-
*/
|
|
129
|
-
includes(t) {
|
|
130
|
-
return this.check(t) === 'included';
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Finds the transition value that would bring a supplied value `t` into
|
|
134
|
-
* range.
|
|
135
|
-
* @param t - The value to be tested.
|
|
136
|
-
* @returns The minimum extent of the range if `t` is below the range or
|
|
137
|
-
* the maximum extent of the range if `t` is above the range. Returns
|
|
138
|
-
* `undefined` if `t` already falls within the range.
|
|
139
|
-
*/
|
|
140
|
-
findTransition(t) {
|
|
141
|
-
switch (this.check(t)) {
|
|
142
|
-
case 'less':
|
|
143
|
-
return this.min;
|
|
144
|
-
case 'included':
|
|
145
|
-
return this.max;
|
|
146
|
-
}
|
|
147
|
-
return undefined;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Formats the minimum and maximum values of this range.
|
|
151
|
-
* @param format - A format function used to format the values.
|
|
152
|
-
* @returns A {@link RangeOfProperties | RangeOfProperties<string>} contaning the
|
|
153
|
-
* formatted representation of the {@link RangeOf.min | minimum} and {@link RangeOf.max | maximum}
|
|
154
|
-
* extent of the range, or `undefined` for an extent that is not present.
|
|
155
|
-
*/
|
|
156
|
-
toFormattedProperties(format) {
|
|
157
|
-
return {
|
|
158
|
-
min: (this.min !== undefined) ? format(this.min) : undefined,
|
|
159
|
-
max: (this.max !== undefined) ? format(this.max) : undefined,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Formats this range using the supplied format function.
|
|
164
|
-
* @param format - Format function used to format minimum and maxiumum extent values.
|
|
165
|
-
* @param formats - The {@link RangeOfFormats | format strings} used to format the range
|
|
166
|
-
* (default {@link DEFAULT_RANGEOF_FORMATS}).
|
|
167
|
-
* @returns Returns a formatted representation of this range.
|
|
168
|
-
*/
|
|
169
|
-
format(format, formats) {
|
|
170
|
-
return RangeOf.propertiesToString(this.toFormattedProperties(format), formats);
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Inner compare method can be overriden by a derived class.
|
|
174
|
-
* @param t1 - First value to compare.
|
|
175
|
-
* @param t2 - Second value to compare.
|
|
176
|
-
* @returns `'less'` if `t1` is less than `t2`, `'greater'` if `t1` is larger
|
|
177
|
-
* and `'equal'` if `t1` and `t2` are equal.
|
|
178
|
-
* @internal
|
|
179
|
-
*/
|
|
180
|
-
_compare(t1, t2) {
|
|
181
|
-
return RangeOf._defaultCompare(t1, t2);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
exports.RangeOf = RangeOf;
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2VPZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yYW5nZU9mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7Ozs7OztBQUVILHFDQUFpRDtBQUNqRCx3REFBZ0M7QUF1QmhDOzs7O0dBSUc7QUFDVSxRQUFBLHVCQUF1QixHQUFHO0lBQ25DLE9BQU8sRUFBRSxVQUFVO0lBQ25CLE9BQU8sRUFBRSxVQUFVO0lBQ25CLE1BQU0sRUFBRSxpQkFBaUI7Q0FDNUIsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFhLE9BQU87SUFVaEI7Ozs7T0FJRztJQUNILFlBQW1CLEdBQU8sRUFBRSxHQUFPO1FBQy9CLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNqRztRQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFJLElBQTJCO1FBQ3BELE9BQU8sSUFBQSxzQkFBYSxFQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFJLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxHQUFHLEVBQUUsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7Ozs7OztP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QUMsQ0FBQyxTQUFTO1NBQy9ELENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE1BQXNDLEVBQUUsT0FBd0I7UUFDMUUsT0FBTyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sUUFBUSxDQUFDLEVBQUssRUFBRSxFQUFLO1FBQzNCLE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztDQUNKO0FBNUpELDBCQTRKQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjAgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBSZXN1bHQsIGNhcHR1cmVSZXN1bHQgfSBmcm9tICcuL3Jlc3VsdCc7XG5pbXBvcnQgTXVzdGFjaGUgZnJvbSAnbXVzdGFjaGUnO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBnZW5lcmljIHJhbmdlIG9mIHNvbWUgY29tcGFyYWJsZSB0eXBlIGA8VD5gLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlT2ZQcm9wZXJ0aWVzPFQ+IHtcbiAgICByZWFkb25seSBtaW4/OiBUO1xuICAgIHJlYWRvbmx5IG1heD86IFQ7XG59XG5cbi8qKlxuICogRm9ybWF0IHN0cmluZ3MgKGluIG11c3RhY2hlIGZvcm1hdCkgdG9cbiAqIHVzZSBmb3IgYm90aCBvcGVuLWVuZGVkIGFuZCBjb21wbGV0ZVxuICoge0BsaW5rIFJhbmdlT2YgfCBSYW5nZU9mPFQ+fS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSYW5nZU9mRm9ybWF0cyB7XG4gICAgbWluT25seTogc3RyaW5nO1xuICAgIG1heE9ubHk6IHN0cmluZztcbiAgICBtaW5NYXg6IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IHtAbGluayBSYW5nZU9mRm9ybWF0cyB8IGZvcm1hdHN9IHRvIHVzZSBmb3IgYm90aFxuICogb3Blbi1lbmRlZCBhbmQgY29tcGxldGUge0BsaW5rIFJhbmdlT2YgfCBSYW5nZU9mPFQ+fS5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkFOR0VPRl9GT1JNQVRTID0ge1xuICAgIG1pbk9ubHk6ICd7e21pbn19LScsXG4gICAgbWF4T25seTogJy17e21heH19JyxcbiAgICBtaW5NYXg6ICd7e21pbn19LXt7bWF4fX0nLFxufTtcblxuLyoqXG4gKiBTaW1wbGUgaW1wbGVtZW50YXRpb24gb2YgYSBwb3NzaWJseSBvcGVuLWVuZGVkIHJhbmdlIG9mIHNvbWUgY29tcGFyYWJsZVxuICogdHlwZSBgPFQ+YCB3aXRoIHRlc3QgYW5kIGZvcm1hdHRpbmcuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBSYW5nZU9mPFQ+IGltcGxlbWVudHMgUmFuZ2VPZlByb3BlcnRpZXM8VD4ge1xuICAgIC8qKlxuICAgICAqIE1pbmltdW0gZXh0ZW50IG9mIHRoZSByYW5nZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbWluPzogVDtcbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGV4dGVudCBvZiB0aGUgcmFuZ2UuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG1heD86IFQ7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IHtAbGluayBSYW5nZU9mIHwgUmFuZ2VPZjxUPn0uXG4gICAgICogQHBhcmFtIG1pbiAtIE9wdGlvbmFsIG1pbmludW0gZXh0ZW50IG9mIHRoZSByYW5nZS5cbiAgICAgKiBAcGFyYW0gbWF4IC0gT3B0aW9uYWwgbWF4aW11bSBleHRlbnQgb2YgdGhlIHJhbmdlLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihtaW4/OiBULCBtYXg/OiBUKSB7XG4gICAgICAgIGlmICgoKG1pbiAhPT0gdW5kZWZpbmVkKSAmJiAobWF4ICE9PSB1bmRlZmluZWQpKSAmJlxuICAgICAgICAgICAgdGhpcy5fY29tcGFyZShtaW4sIG1heCkgPT09ICdncmVhdGVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZlcnRlZCByYW5nZSAtICR7SlNPTi5zdHJpbmdpZnkobWluKX0gbXVzdCBiZSA8PSAke0pTT04uc3RyaW5naWZ5KG1heCl9LmApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWluID0gbWluO1xuICAgICAgICB0aGlzLm1heCA9IG1heDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGF0aWMgY29uc3RydWN0b3IgZm9yIGEge0BsaW5rIFJhbmdlT2YgfCBSYW5nZU9mPFQ+fS5cbiAgICAgKiBAcGFyYW0gaW5pdCAtIHtAbGluayBSYW5nZU9mUHJvcGVydGllcyB8IFJhbmdlIGluaXRpYWxpemVyfS5cbiAgICAgKiBAcmV0dXJucyBBIG5ldyB7QGxpbmsgUmFuZ2VPZiB8IFJhbmdlT2Y8VD59LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlUmFuZ2U8VD4oaW5pdD86IFJhbmdlT2ZQcm9wZXJ0aWVzPFQ+KTogUmVzdWx0PFJhbmdlT2Y8VD4+IHtcbiAgICAgICAgcmV0dXJuIGNhcHR1cmVSZXN1bHQoKCkgPT4gbmV3IFJhbmdlT2Y8VD4oaW5pdD8ubWluLCBpbml0Py5tYXgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgZm9ybWF0dGVkIGRlc2NyaXB0aW9uIG9mIGEge0BsaW5rIFJhbmdlT2ZQcm9wZXJ0aWVzIHwgUmFuZ2VPZlByb3BlcnRpZXM8VD59IGdpdmVuIGFuXG4gICAgICogb3B0aW9uYWwgc2V0IG9mIGZvcm1hdHMgYW5kICdlbXB0eScgdmFsdWUgdG8gdXNlLlxuICAgICAqIEBwYXJhbSByYW5nZSAtIFRoZSB7QGxpbmsgUmFuZ2VPZlByb3BlcnRpZXMgfCBSYW5nZU9mUHJvcGVydGllczxUPn0gdG8gYmUgZm9ybWF0dGVkLlxuICAgICAqIEBwYXJhbSBmb3JtYXRzIC0gT3B0aW9uYXMge0BsaW5rIFJhbmdlT2ZGb3JtYXRzIHwgZm9ybWF0c30gdG8gdXNlLiBEZWZhdWx0IGlzXG4gICAgICoge0BsaW5rIERFRkFVTFRfUkFOR0VPRl9GT1JNQVRTIHwgREVGQVVMVF9SQU5HRU9GX0ZPUk1BVFN9LlxuICAgICAqIEBwYXJhbSBlbXB0eVZhbHVlIC0gVmFsdWUgd2hpY2ggcmVwcmVzZW50cyB1bmJvdW5kZWQgbWluaW11bSBvciBtYXhpbXVtIGZvciB0aGlzIHJhbmdlLiBEZWZhdWx0IGlzIGB1bmRlZmluZWRgLlxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByYW5nZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIHByb3BlcnRpZXNUb1N0cmluZzxUPihyYW5nZTogUmFuZ2VPZlByb3BlcnRpZXM8VD4sIGZvcm1hdHM/OiBSYW5nZU9mRm9ybWF0cywgZW1wdHlWYWx1ZT86IFQpOiBzdHJpbmd8dW5kZWZpbmVkIHtcbiAgICAgICAgZm9ybWF0cyA9IGZvcm1hdHMgPz8gREVGQVVMVF9SQU5HRU9GX0ZPUk1BVFM7XG4gICAgICAgIGlmICgocmFuZ2UubWluICE9PSB1bmRlZmluZWQpICYmIChyYW5nZS5taW4gIT09IGVtcHR5VmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoKHJhbmdlLm1heCAhPT0gdW5kZWZpbmVkKSAmJiAocmFuZ2UubWF4ICE9PSBlbXB0eVZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBNdXN0YWNoZS5yZW5kZXIoZm9ybWF0cy5taW5NYXgsIHJhbmdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBNdXN0YWNoZS5yZW5kZXIoZm9ybWF0cy5taW5Pbmx5LCByYW5nZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoKHJhbmdlLm1heCAhPT0gdW5kZWZpbmVkKSAmJiAocmFuZ2UubWF4ICE9PSBlbXB0eVZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIE11c3RhY2hlLnJlbmRlcihmb3JtYXRzLm1heE9ubHksIHJhbmdlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgY29tcGFyaXNvbiB1c2VzIGphdmFzY3JpcHQgYnVpbHQtaW4gY29tcGFyaXNvbi5cbiAgICAgKiBAcGFyYW0gdDEgLSBGaXJzdCB2YWx1ZSB0byBiZSBjb21wYXJlZC5cbiAgICAgKiBAcGFyYW0gdDIgLSBTZWNvbmQgdmFsdWUgdG8gYmUgY29tcGFyZWQuXG4gICAgICogQHJldHVybnMgYCdsZXNzJ2AgaWYgYHQxYCBpcyBsZXNzIHRoYW4gYHQyYCwgYCdncmVhdGVyJ2AgaWYgYHQxYCBpcyBsYXJnZXJcbiAgICAgKiBhbmQgYCdlcXVhbCdgIGlmIGB0MWAgYW5kIGB0MmAgYXJlIGVxdWFsLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzdGF0aWMgX2RlZmF1bHRDb21wYXJlPFQ+KHQxOiBULCB0MjogVCk6ICdsZXNzJ3wnZXF1YWwnfCdncmVhdGVyJyB7XG4gICAgICAgIGlmICh0MSA8IHQyKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2xlc3MnO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHQxID4gdDIpIHtcbiAgICAgICAgICAgIHJldHVybiAnZ3JlYXRlcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdlcXVhbCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGEgc3VwcGxpZWQgdmFsdWUgaXMgd2l0aGluIHRoaXMgcmFuZ2UuXG4gICAgICogQHBhcmFtIHQgLSBUaGUgdmFsdWUgdG8gYmUgdGVzdGVkLlxuICAgICAqIEByZXR1cm5zIGAnaW5jbHVkZWQnYCBpZiBgdGAgZmFsbHMgd2l0aGluIHRoZSByYW5nZSwgYCdsZXNzJ2AgaWYgYHRgIGZhbGxzXG4gICAgICogYmVsb3cgdGhlIG1pbmltdW0gZXh0ZW50IG9mIHRoZSByYW5nZSBhbmQgYCdncmVhdGVyJ2AgaWYgYHRgIGlzIGFib3ZlIHRoZVxuICAgICAqIG1heGltdW0gZXh0ZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBjaGVjayh0OiBUKTogJ2xlc3MnfCdpbmNsdWRlZCd8J2dyZWF0ZXInIHtcbiAgICAgICAgaWYgKCh0aGlzLm1pbiAhPT0gdW5kZWZpbmVkKSAmJiAodGhpcy5fY29tcGFyZSh0LCB0aGlzLm1pbikgPT09ICdsZXNzJykpIHtcbiAgICAgICAgICAgIHJldHVybiAnbGVzcyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0aGlzLm1heCAhPT0gdW5kZWZpbmVkKSAmJiAodGhpcy5fY29tcGFyZSh0LCB0aGlzLm1heCkgIT09ICdsZXNzJykpIHtcbiAgICAgICAgICAgIHJldHVybiAnZ3JlYXRlcic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdpbmNsdWRlZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiBhIHN1cHBsaWVkIHZhbHVlIGlzIHdpdGhpbiB0aGlzIHJhbmdlLlxuICAgICAqIEBwYXJhbSB0IC0gVGhlIHZhbHVlIHRvIGJlIHRlc3RlZC5cbiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGB0cnVlYCBpZiBgdGAgZmFsbHMgd2l0aGluIHRoZSByYW5nZSwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAgICovXG4gICAgcHVibGljIGluY2x1ZGVzKHQ6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2sodCkgPT09ICdpbmNsdWRlZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgdGhlIHRyYW5zaXRpb24gdmFsdWUgdGhhdCB3b3VsZCBicmluZyBhIHN1cHBsaWVkIHZhbHVlIGB0YCBpbnRvXG4gICAgICogcmFuZ2UuXG4gICAgICogQHBhcmFtIHQgLSBUaGUgdmFsdWUgdG8gYmUgdGVzdGVkLlxuICAgICAqIEByZXR1cm5zIFRoZSBtaW5pbXVtIGV4dGVudCBvZiB0aGUgcmFuZ2UgaWYgYHRgIGlzIGJlbG93IHRoZSByYW5nZSBvclxuICAgICAqIHRoZSBtYXhpbXVtIGV4dGVudCBvZiB0aGUgcmFuZ2UgaWYgYHRgIGlzIGFib3ZlIHRoZSByYW5nZS4gIFJldHVybnNcbiAgICAgKiBgdW5kZWZpbmVkYCBpZiBgdGAgYWxyZWFkeSBmYWxscyB3aXRoaW4gdGhlIHJhbmdlLlxuICAgICAqL1xuICAgIHB1YmxpYyBmaW5kVHJhbnNpdGlvbih0OiBUKTogVHx1bmRlZmluZWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY2hlY2sodCkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbjtcbiAgICAgICAgICAgIGNhc2UgJ2luY2x1ZGVkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXRzIHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlcyBvZiB0aGlzIHJhbmdlLlxuICAgICAqIEBwYXJhbSBmb3JtYXQgLSBBIGZvcm1hdCBmdW5jdGlvbiB1c2VkIHRvIGZvcm1hdCB0aGUgdmFsdWVzLlxuICAgICAqIEByZXR1cm5zIEEge0BsaW5rIFJhbmdlT2ZQcm9wZXJ0aWVzIHwgUmFuZ2VPZlByb3BlcnRpZXM8c3RyaW5nPn0gY29udGFuaW5nIHRoZVxuICAgICAqIGZvcm1hdHRlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUge0BsaW5rIFJhbmdlT2YubWluIHwgbWluaW11bX0gYW5kIHtAbGluayBSYW5nZU9mLm1heCB8IG1heGltdW19XG4gICAgICogZXh0ZW50IG9mIHRoZSByYW5nZSwgb3IgYHVuZGVmaW5lZGAgZm9yIGFuIGV4dGVudCB0aGF0IGlzIG5vdCBwcmVzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyB0b0Zvcm1hdHRlZFByb3BlcnRpZXMoZm9ybWF0OiAodmFsdWU6IFQpID0+IHN0cmluZ3x1bmRlZmluZWQpOiBSYW5nZU9mUHJvcGVydGllczxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1pbjogKHRoaXMubWluICE9PSB1bmRlZmluZWQpID8gZm9ybWF0KHRoaXMubWluKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG1heDogKHRoaXMubWF4ICE9PSB1bmRlZmluZWQpID8gZm9ybWF0KHRoaXMubWF4KSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXRzIHRoaXMgcmFuZ2UgdXNpbmcgdGhlIHN1cHBsaWVkIGZvcm1hdCBmdW5jdGlvbi5cbiAgICAgKiBAcGFyYW0gZm9ybWF0IC0gRm9ybWF0IGZ1bmN0aW9uIHVzZWQgdG8gZm9ybWF0IG1pbmltdW0gYW5kIG1heGl1bXVtIGV4dGVudCB2YWx1ZXMuXG4gICAgICogQHBhcmFtIGZvcm1hdHMgLSBUaGUge0BsaW5rIFJhbmdlT2ZGb3JtYXRzIHwgZm9ybWF0IHN0cmluZ3N9IHVzZWQgdG8gZm9ybWF0IHRoZSByYW5nZVxuICAgICAqIChkZWZhdWx0IHtAbGluayBERUZBVUxUX1JBTkdFT0ZfRk9STUFUU30pLlxuICAgICAqIEByZXR1cm5zIFJldHVybnMgYSBmb3JtYXR0ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhpcyByYW5nZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZm9ybWF0KGZvcm1hdDogKHZhbHVlOiBUKSA9PiBzdHJpbmd8dW5kZWZpbmVkLCBmb3JtYXRzPzogUmFuZ2VPZkZvcm1hdHMpOiBzdHJpbmd8dW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIFJhbmdlT2YucHJvcGVydGllc1RvU3RyaW5nKHRoaXMudG9Gb3JtYXR0ZWRQcm9wZXJ0aWVzKGZvcm1hdCksIGZvcm1hdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElubmVyIGNvbXBhcmUgbWV0aG9kIGNhbiBiZSBvdmVycmlkZW4gYnkgYSBkZXJpdmVkIGNsYXNzLlxuICAgICAqIEBwYXJhbSB0MSAtIEZpcnN0IHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHQyIC0gU2Vjb25kIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMgYCdsZXNzJ2AgaWYgYHQxYCBpcyBsZXNzIHRoYW4gYHQyYCwgYCdncmVhdGVyJ2AgaWYgYHQxYCBpcyBsYXJnZXJcbiAgICAgKiBhbmQgYCdlcXVhbCdgIGlmIGB0MWAgYW5kIGB0MmAgYXJlIGVxdWFsLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfY29tcGFyZSh0MTogVCwgdDI6IFQpOiAnbGVzcyd8J2VxdWFsJ3wnZ3JlYXRlcicge1xuICAgICAgICByZXR1cm4gUmFuZ2VPZi5fZGVmYXVsdENvbXBhcmUodDEsIHQyKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"recordJarHelpers.d.ts","sourceRoot":"","sources":["../src/recordJarHelpers.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,MAAM,EAAgC,MAAM,UAAU,CAAC;AAQhE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;AAEzF;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IACjD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAC3C;AAuMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAE1G;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAO5G"}
|