@fgv/ts-utils 1.5.1 → 1.6.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/converter.d.ts +2 -2
- package/converter.js +1 -1
- package/converters.d.ts +9 -0
- package/converters.d.ts.map +1 -1
- package/converters.js +18 -6
- package/index.d.ts +2 -1
- package/index.d.ts.map +1 -1
- package/index.js +4 -2
- package/package.json +9 -6
- package/recordJarHelpers.d.ts +23 -0
- package/recordJarHelpers.d.ts.map +1 -0
- package/recordJarHelpers.js +217 -0
- package/utils.d.ts +2 -0
- package/utils.d.ts.map +1 -1
- package/utils.js +3 -1
- package/validation/array.d.ts +38 -0
- package/validation/array.d.ts.map +1 -0
- package/validation/array.js +65 -0
- package/validation/classes.d.ts +1 -0
- package/validation/classes.d.ts.map +1 -1
- package/validation/classes.js +4 -2
- package/validation/validators.d.ts +12 -1
- package/validation/validators.d.ts.map +1 -1
- package/validation/validators.js +15 -2
package/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.Validation = exports.Hash = exports.Csv = exports.Converters = exports.Normalizer = void 0;
|
|
29
|
+
exports.Validation = exports.RecordJar = exports.Hash = exports.Csv = exports.Converters = exports.Normalizer = void 0;
|
|
30
30
|
/*
|
|
31
31
|
* Copyright (c) 2020 Erik Fortune
|
|
32
32
|
*
|
|
@@ -63,6 +63,8 @@ const Csv = __importStar(require("./csvHelpers"));
|
|
|
63
63
|
exports.Csv = Csv;
|
|
64
64
|
const Hash = __importStar(require("./hash"));
|
|
65
65
|
exports.Hash = Hash;
|
|
66
|
+
const RecordJar = __importStar(require("./recordJarHelpers"));
|
|
67
|
+
exports.RecordJar = RecordJar;
|
|
66
68
|
const Validation = __importStar(require("./validation"));
|
|
67
69
|
exports.Validation = Validation;
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCwwQ0FBd0I7QUFDeEIsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQyw4Q0FBNEI7QUFDNUIsNENBQTBCO0FBQzFCLDJDQUF5QjtBQUN6QiwwQ0FBd0I7QUFDeEIseUNBQXlDO0FBQWhDLHVHQUFBLFVBQVUsT0FBQTtBQUVuQix5REFBMkM7QUFLbEMsZ0NBQVU7QUFKbkIsa0RBQW9DO0FBSWYsa0JBQUc7QUFIeEIsNkNBQStCO0FBR0wsb0JBQUk7QUFGOUIsOERBQWdEO0FBRWhCLDhCQUFTO0FBRHpDLHlEQUEyQztBQUNBLGdDQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMCBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2JyYW5kJztcbmV4cG9ydCAqIGZyb20gJy4vY29udmVydGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZXh0ZW5kZWRBcnJheSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1hdHRlcic7XG5leHBvcnQgKiBmcm9tICcuL3JhbmdlT2YnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXN1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgeyBOb3JtYWxpemVyIH0gZnJvbSAnLi9ub3JtYWxpemUnO1xuXG5pbXBvcnQgKiBhcyBDb252ZXJ0ZXJzIGZyb20gJy4vY29udmVydGVycyc7XG5pbXBvcnQgKiBhcyBDc3YgZnJvbSAnLi9jc3ZIZWxwZXJzJztcbmltcG9ydCAqIGFzIEhhc2ggZnJvbSAnLi9oYXNoJztcbmltcG9ydCAqIGFzIFJlY29yZEphciBmcm9tICcuL3JlY29yZEphckhlbHBlcnMnO1xuaW1wb3J0ICogYXMgVmFsaWRhdGlvbiBmcm9tICcuL3ZhbGlkYXRpb24nO1xuZXhwb3J0IHsgQ29udmVydGVycywgQ3N2LCBIYXNoLCBSZWNvcmRKYXIsIFZhbGlkYXRpb24gfTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fgv/ts-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Assorted Typescript Utilities",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
"type": "git",
|
|
21
21
|
"url": "git+https://github.com/DidjaRedo/ts-utils.git"
|
|
22
22
|
},
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"registry": "https://registry.npmjs.org"
|
|
25
|
+
},
|
|
23
26
|
"keywords": [
|
|
24
27
|
"typescript",
|
|
25
28
|
"json"
|
|
@@ -32,15 +35,15 @@
|
|
|
32
35
|
"homepage": "https://github.com/DidjaRedo/ts-utils#readme",
|
|
33
36
|
"devDependencies": {
|
|
34
37
|
"@jest/expect-utils": "^29.3.1",
|
|
35
|
-
"@microsoft/api-documenter": "^7.
|
|
38
|
+
"@microsoft/api-documenter": "^7.19.27",
|
|
36
39
|
"@microsoft/api-extractor": "^7.19.5",
|
|
37
40
|
"@types/jest": "^29.2.4",
|
|
38
41
|
"@types/luxon": "^3.1.0",
|
|
39
42
|
"@types/mustache": "^4.1.2",
|
|
40
|
-
"@types/node": "^18.11.
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
42
|
-
"@typescript-eslint/parser": "^5.
|
|
43
|
-
"eslint": "^8.
|
|
43
|
+
"@types/node": "^18.11.17",
|
|
44
|
+
"@typescript-eslint/eslint-plugin": "^5.47.0",
|
|
45
|
+
"@typescript-eslint/parser": "^5.47.0",
|
|
46
|
+
"eslint": "^8.30.0",
|
|
44
47
|
"eslint-config-standard": "^17.0.0-1",
|
|
45
48
|
"eslint-plugin-import": "^2.24.2",
|
|
46
49
|
"eslint-plugin-node": "^11.1.0",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Result } from './result';
|
|
2
|
+
/**
|
|
3
|
+
* Reads a record-jar from an array of strings, each of which represents one
|
|
4
|
+
* line in the source file.
|
|
5
|
+
* @param lines - the array of strings to be parsed
|
|
6
|
+
* @returns a corresponding array of `Record<string, string>`
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseRecordJarLines(lines: string[]): Result<Record<string, string>[]>;
|
|
10
|
+
/**
|
|
11
|
+
* A {@link Converter} to an array of `Record<string, string>` from an array of strings.
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export declare const recordJar: import("./converter").Converter<Record<string, string>[], unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* Reads a record-jar file from a supplied path.
|
|
17
|
+
* @param srcPath - Source path from which the file is read.
|
|
18
|
+
* @returns The contents of the file as an array of `Record<string, string>`
|
|
19
|
+
* @see https://datatracker.ietf.org/doc/html/draft-phillips-record-jar-01
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export declare function readRecordJarFileSync(srcPath: string): Result<Record<string, string>[]>;
|
|
23
|
+
//# sourceMappingURL=recordJarHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordJarHelpers.d.ts","sourceRoot":"","sources":["../src/recordJarHelpers.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,MAAM,EAAgC,MAAM,UAAU,CAAC;AAuJhE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAErF;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,oEAAuF,CAAC;AAE9G;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAOvF"}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2022 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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
24
|
+
if (k2 === undefined) k2 = k;
|
|
25
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
26
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
27
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
28
|
+
}
|
|
29
|
+
Object.defineProperty(o, k2, desc);
|
|
30
|
+
}) : (function(o, m, k, k2) {
|
|
31
|
+
if (k2 === undefined) k2 = k;
|
|
32
|
+
o[k2] = m[k];
|
|
33
|
+
}));
|
|
34
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
35
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
+
}) : function(o, v) {
|
|
37
|
+
o["default"] = v;
|
|
38
|
+
});
|
|
39
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
40
|
+
if (mod && mod.__esModule) return mod;
|
|
41
|
+
var result = {};
|
|
42
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
43
|
+
__setModuleDefault(result, mod);
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
+
exports.readRecordJarFileSync = exports.recordJar = exports.parseRecordJarLines = void 0;
|
|
48
|
+
const Converters = __importStar(require("./converters"));
|
|
49
|
+
const fs = __importStar(require("fs"));
|
|
50
|
+
const path = __importStar(require("path"));
|
|
51
|
+
const result_1 = require("./result");
|
|
52
|
+
const validation_1 = require("./validation");
|
|
53
|
+
class RecordParser {
|
|
54
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
55
|
+
constructor() {
|
|
56
|
+
this.records = [];
|
|
57
|
+
this._fields = [];
|
|
58
|
+
this._name = undefined;
|
|
59
|
+
this._body = undefined;
|
|
60
|
+
}
|
|
61
|
+
static parse(lines) {
|
|
62
|
+
return new RecordParser()._parse(lines);
|
|
63
|
+
}
|
|
64
|
+
static _parseRecordBody(from, oldBody) {
|
|
65
|
+
let body = `${oldBody !== null && oldBody !== void 0 ? oldBody : ''}${from.trim()}`;
|
|
66
|
+
const isContinuation = body.endsWith('\\');
|
|
67
|
+
if (isContinuation) {
|
|
68
|
+
body = body.slice(0, body.length - 1);
|
|
69
|
+
}
|
|
70
|
+
if (this._hasEscapes(body)) {
|
|
71
|
+
const result = this._replaceEscapes(body);
|
|
72
|
+
if (result.isFailure()) {
|
|
73
|
+
return (0, result_1.fail)(result.message);
|
|
74
|
+
}
|
|
75
|
+
body = result.value;
|
|
76
|
+
}
|
|
77
|
+
return (0, result_1.succeed)({ body, isContinuation });
|
|
78
|
+
}
|
|
79
|
+
static _hasEscapes(from) {
|
|
80
|
+
return from.includes('\\') || from.includes('&');
|
|
81
|
+
}
|
|
82
|
+
static _replaceEscapes(body) {
|
|
83
|
+
const invalid = [];
|
|
84
|
+
const escaped = body.replace(/(\\.)|(&#x[a-fA-F0-9]{2,6};)/g, (match) => {
|
|
85
|
+
switch (match) {
|
|
86
|
+
case '\\\\': return '\\';
|
|
87
|
+
case '\\&': return '&';
|
|
88
|
+
case '\\r': return '\r';
|
|
89
|
+
case '\\n': return '\n';
|
|
90
|
+
case '\\t': return '\t';
|
|
91
|
+
}
|
|
92
|
+
if (match.startsWith('&')) {
|
|
93
|
+
const hexCode = `0x${match.slice(3, match.length - 1)}`;
|
|
94
|
+
const charCode = Number.parseInt(hexCode, 16);
|
|
95
|
+
return String.fromCharCode(charCode);
|
|
96
|
+
}
|
|
97
|
+
invalid.push(match);
|
|
98
|
+
return '\\';
|
|
99
|
+
});
|
|
100
|
+
if (invalid.length > 0) {
|
|
101
|
+
return (0, result_1.fail)(`unrecognized escape "${invalid.join(', ')}" in record-jar body`);
|
|
102
|
+
}
|
|
103
|
+
return (0, result_1.succeed)(escaped);
|
|
104
|
+
}
|
|
105
|
+
_parse(lines) {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
for (let n = 0; n < lines.length; n++) {
|
|
108
|
+
const line = lines[n];
|
|
109
|
+
if (line.startsWith('%%') && !((_a = this._body) === null || _a === void 0 ? void 0 : _a.isContinuation)) {
|
|
110
|
+
const result = this._writePendingRecord();
|
|
111
|
+
if (result.isFailure()) {
|
|
112
|
+
return (0, result_1.fail)(`${n}: ${result.message}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else if (/^\s*$/.test(line)) {
|
|
116
|
+
// ignore blank lines but cancel continuation
|
|
117
|
+
if (this._body) {
|
|
118
|
+
this._body.isContinuation = false;
|
|
119
|
+
}
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
else if (((_b = this._body) === null || _b === void 0 ? void 0 : _b.isContinuation) || /^\s+/.test(line)) {
|
|
123
|
+
// explicit continuation on previous line or implicit starts with whitespace
|
|
124
|
+
if (this._body === undefined) {
|
|
125
|
+
return (0, result_1.fail)(`${n}: continuation ("${line}") without prior value.`);
|
|
126
|
+
}
|
|
127
|
+
const result = RecordParser._parseRecordBody(line, this._body.body);
|
|
128
|
+
if (result.isFailure()) {
|
|
129
|
+
return (0, result_1.fail)(`${n}: ${result.message}`);
|
|
130
|
+
}
|
|
131
|
+
this._body = result.value;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const result = this._parseField(line);
|
|
135
|
+
if (result.isFailure()) {
|
|
136
|
+
return (0, result_1.fail)(`${n}: ${result.message}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const result = this._writePendingRecord();
|
|
141
|
+
if (result.isFailure()) {
|
|
142
|
+
return (0, result_1.fail)(`${lines.length}: ${result.message}`);
|
|
143
|
+
}
|
|
144
|
+
return (0, result_1.succeed)(this.records);
|
|
145
|
+
}
|
|
146
|
+
_parseField(line) {
|
|
147
|
+
const separatorIndex = line.indexOf(':');
|
|
148
|
+
if (separatorIndex < 1) {
|
|
149
|
+
return (0, result_1.fail)(`malformed line ("${line}") in record-jar.`);
|
|
150
|
+
}
|
|
151
|
+
const parts = [
|
|
152
|
+
line.slice(0, separatorIndex),
|
|
153
|
+
line.slice(separatorIndex + 1),
|
|
154
|
+
];
|
|
155
|
+
return this._writePendingField().onSuccess(() => {
|
|
156
|
+
this._name = parts[0].trimEnd();
|
|
157
|
+
return RecordParser._parseRecordBody(parts[1]).onSuccess((body) => {
|
|
158
|
+
this._body = body;
|
|
159
|
+
return (0, result_1.succeed)(true);
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
_writePendingRecord() {
|
|
164
|
+
return this._writePendingField().onSuccess(() => {
|
|
165
|
+
const record = this._fields.length > 0 ? Object.fromEntries(this._fields) : undefined;
|
|
166
|
+
if (record !== undefined) {
|
|
167
|
+
this.records.push(record);
|
|
168
|
+
this._fields = [];
|
|
169
|
+
}
|
|
170
|
+
return (0, result_1.succeed)(undefined);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
_writePendingField() {
|
|
174
|
+
if (this._name !== undefined) {
|
|
175
|
+
if (this._body.body.length < 1) {
|
|
176
|
+
return (0, result_1.fail)('empty body value not allowed');
|
|
177
|
+
}
|
|
178
|
+
this._fields.push([this._name, this._body.body]);
|
|
179
|
+
this._name = undefined;
|
|
180
|
+
this._body = undefined;
|
|
181
|
+
}
|
|
182
|
+
return (0, result_1.succeed)(true);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Reads a record-jar from an array of strings, each of which represents one
|
|
187
|
+
* line in the source file.
|
|
188
|
+
* @param lines - the array of strings to be parsed
|
|
189
|
+
* @returns a corresponding array of `Record<string, string>`
|
|
190
|
+
* @public
|
|
191
|
+
*/
|
|
192
|
+
function parseRecordJarLines(lines) {
|
|
193
|
+
return RecordParser.parse(lines);
|
|
194
|
+
}
|
|
195
|
+
exports.parseRecordJarLines = parseRecordJarLines;
|
|
196
|
+
/**
|
|
197
|
+
* A {@link Converter} to an array of `Record<string, string>` from an array of strings.
|
|
198
|
+
* @public
|
|
199
|
+
*/
|
|
200
|
+
exports.recordJar = Converters.validated(validation_1.Validators.arrayOf(validation_1.Validators.string)).map(parseRecordJarLines);
|
|
201
|
+
/**
|
|
202
|
+
* Reads a record-jar file from a supplied path.
|
|
203
|
+
* @param srcPath - Source path from which the file is read.
|
|
204
|
+
* @returns The contents of the file as an array of `Record<string, string>`
|
|
205
|
+
* @see https://datatracker.ietf.org/doc/html/draft-phillips-record-jar-01
|
|
206
|
+
* @public
|
|
207
|
+
*/
|
|
208
|
+
function readRecordJarFileSync(srcPath) {
|
|
209
|
+
return (0, result_1.captureResult)(() => {
|
|
210
|
+
const fullPath = path.resolve(srcPath);
|
|
211
|
+
return fs.readFileSync(fullPath, 'utf8').toString().split(/\r?\n/);
|
|
212
|
+
}).onSuccess((lines) => {
|
|
213
|
+
return parseRecordJarLines(lines);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
exports.readRecordJarFileSync = readRecordJarFileSync;
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkSmFySGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWNvcmRKYXJIZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgseURBQTJDO0FBQzNDLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFFN0IscUNBQWdFO0FBQ2hFLDZDQUEwQztBQU8xQyxNQUFNLFlBQVk7SUFPZCxnRUFBZ0U7SUFDaEU7UUFQZ0IsWUFBTyxHQUE2QixFQUFFLENBQUM7UUFFN0MsWUFBTyxHQUF1QixFQUFFLENBQUM7UUFDakMsVUFBSyxHQUF1QixTQUFTLENBQUM7UUFDdEMsVUFBSyxHQUEyQixTQUFTLENBQUM7SUFHN0IsQ0FBQztJQUVqQixNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWU7UUFDL0IsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRVMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVksRUFBRSxPQUFnQjtRQUM1RCxJQUFJLElBQUksR0FBRyxHQUFHLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUM1QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksY0FBYyxFQUFFO1lBQ2hCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFD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Q0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNuQixPQUFPLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQVBELHNEQU9DIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMiBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCAqIGFzIENvbnZlcnRlcnMgZnJvbSAnLi9jb252ZXJ0ZXJzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IFJlc3VsdCwgY2FwdHVyZVJlc3VsdCwgZmFpbCwgc3VjY2VlZCB9IGZyb20gJy4vcmVzdWx0JztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICcuL3ZhbGlkYXRpb24nO1xuXG5pbnRlcmZhY2UgUmVjb3JkQm9keSB7XG4gICAgYm9keTogc3RyaW5nO1xuICAgIGlzQ29udGludWF0aW9uOiBib29sZWFuO1xufVxuXG5jbGFzcyBSZWNvcmRQYXJzZXIge1xuICAgIHB1YmxpYyByZWFkb25seSByZWNvcmRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10gPSBbXTtcblxuICAgIHByb3RlY3RlZCBfZmllbGRzOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgX25hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgX2JvZHk6IFJlY29yZEJvZHkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBwdWJsaWMgc3RhdGljIHBhcnNlKGxpbmVzOiBzdHJpbmdbXSk6IFJlc3VsdDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBSZWNvcmRQYXJzZXIoKS5fcGFyc2UobGluZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGF0aWMgX3BhcnNlUmVjb3JkQm9keShmcm9tOiBzdHJpbmcsIG9sZEJvZHk/OiBzdHJpbmcpOiBSZXN1bHQ8UmVjb3JkQm9keT4ge1xuICAgICAgICBsZXQgYm9keSA9IGAke29sZEJvZHkgPz8gJyd9JHtmcm9tLnRyaW0oKX1gO1xuICAgICAgICBjb25zdCBpc0NvbnRpbnVhdGlvbiA9IGJvZHkuZW5kc1dpdGgoJ1xcXFwnKTtcbiAgICAgICAgaWYgKGlzQ29udGludWF0aW9uKSB7XG4gICAgICAgICAgICBib2R5ID0gYm9keS5zbGljZSgwLCBib2R5Lmxlbmd0aCAtIDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9oYXNFc2NhcGVzKGJvZHkpKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9yZXBsYWNlRXNjYXBlcyhib2R5KTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBib2R5ID0gcmVzdWx0LnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWNjZWVkKHsgYm9keSwgaXNDb250aW51YXRpb24gfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBfaGFzRXNjYXBlcyhmcm9tOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZyb20uaW5jbHVkZXMoJ1xcXFwnKSB8fCBmcm9tLmluY2x1ZGVzKCcmJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBfcmVwbGFjZUVzY2FwZXMoYm9keTogc3RyaW5nKTogUmVzdWx0PHN0cmluZz4ge1xuICAgICAgICBjb25zdCBpbnZhbGlkOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjb25zdCBlc2NhcGVkID0gYm9keS5yZXBsYWNlKC8oXFxcXC4pfCgmI3hbYS1mQS1GMC05XXsyLDZ9OykvZywgKG1hdGNoKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKG1hdGNoKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnXFxcXFxcXFwnOiByZXR1cm4gJ1xcXFwnO1xuICAgICAgICAgICAgICAgIGNhc2UgJ1xcXFwmJzogcmV0dXJuICcmJztcbiAgICAgICAgICAgICAgICBjYXNlICdcXFxccic6IHJldHVybiAnXFxyJztcbiAgICAgICAgICAgICAgICBjYXNlICdcXFxcbic6IHJldHVybiAnXFxuJztcbiAgICAgICAgICAgICAgICBjYXNlICdcXFxcdCc6IHJldHVybiAnXFx0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaC5zdGFydHNXaXRoKCcmJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZXhDb2RlID0gYDB4JHttYXRjaC5zbGljZSgzLCBtYXRjaC5sZW5ndGggLSAxKX1gO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoYXJDb2RlID0gTnVtYmVyLnBhcnNlSW50KGhleENvZGUsIDE2KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjaGFyQ29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnZhbGlkLnB1c2gobWF0Y2gpO1xuICAgICAgICAgICAgcmV0dXJuICdcXFxcJztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChpbnZhbGlkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBmYWlsKGB1bnJlY29nbml6ZWQgZXNjYXBlIFwiJHtpbnZhbGlkLmpvaW4oJywgJyl9XCIgaW4gcmVjb3JkLWphciBib2R5YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQoZXNjYXBlZCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9wYXJzZShsaW5lczogc3RyaW5nW10pOiBSZXN1bHQ8UmVjb3JkPHN0cmluZywgc3RyaW5nPltdPiB7XG4gICAgICAgIGZvciAobGV0IG4gPSAwOyBuIDwgbGluZXMubGVuZ3RoOyBuKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tuXTtcbiAgICAgICAgICAgIGlmIChsaW5lLnN0YXJ0c1dpdGgoJyUlJykgJiYgIXRoaXMuX2JvZHk/LmlzQ29udGludWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fd3JpdGVQZW5kaW5nUmVjb3JkKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5pc0ZhaWx1cmUoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChgJHtufTogJHtyZXN1bHQubWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICgvXlxccyokLy50ZXN0KGxpbmUpKSB7XG4gICAgICAgICAgICAgICAgLy8gaWdub3JlIGJsYW5rIGxpbmVzIGJ1dCBjYW5jZWwgY29udGludWF0aW9uXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2JvZHkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fYm9keS5pc0NvbnRpbnVhdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMuX2JvZHk/LmlzQ29udGludWF0aW9uIHx8IC9eXFxzKy8udGVzdChsaW5lKSkge1xuICAgICAgICAgICAgICAgIC8vIGV4cGxpY2l0IGNvbnRpbnVhdGlvbiBvbiBwcmV2aW91cyBsaW5lIG9yIGltcGxpY2l0IHN0YXJ0cyB3aXRoIHdoaXRlc3BhY2VcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKGAke259OiBjb250aW51YXRpb24gKFwiJHtsaW5lfVwiKSB3aXRob3V0IHByaW9yIHZhbHVlLmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBSZWNvcmRQYXJzZXIuX3BhcnNlUmVjb3JkQm9keShsaW5lLCB0aGlzLl9ib2R5LmJvZHkpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7bn06ICR7cmVzdWx0Lm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2JvZHkgPSByZXN1bHQudmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9wYXJzZUZpZWxkKGxpbmUpO1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7bn06ICR7cmVzdWx0Lm1lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fd3JpdGVQZW5kaW5nUmVjb3JkKCk7XG4gICAgICAgIGlmIChyZXN1bHQuaXNGYWlsdXJlKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWlsKGAke2xpbmVzLmxlbmd0aH06ICR7cmVzdWx0Lm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1Y2NlZWQodGhpcy5yZWNvcmRzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3BhcnNlRmllbGQobGluZTogc3RyaW5nKTogUmVzdWx0PGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9ySW5kZXggPSBsaW5lLmluZGV4T2YoJzonKTtcbiAgICAgICAgaWYgKHNlcGFyYXRvckluZGV4IDwgMSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhaWwoYG1hbGZvcm1lZCBsaW5lIChcIiR7bGluZX1cIikgaW4gcmVjb3JkLWphci5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgICAgICAgIGxpbmUuc2xpY2UoMCwgc2VwYXJhdG9ySW5kZXgpLFxuICAgICAgICAgICAgbGluZS5zbGljZShzZXBhcmF0b3JJbmRleCArIDEpLFxuICAgICAgICBdO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl93cml0ZVBlbmRpbmdGaWVsZCgpLm9uU3VjY2VzcygoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9uYW1lID0gcGFydHNbMF0udHJpbUVuZCgpO1xuICAgICAgICAgICAgcmV0dXJuIFJlY29yZFBhcnNlci5fcGFyc2VSZWNvcmRCb2R5KHBhcnRzWzFdKS5vblN1Y2Nlc3MoKGJvZHkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9ib2R5ID0gYm9keTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3dyaXRlUGVuZGluZ1JlY29yZCgpOiBSZXN1bHQ8UmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fd3JpdGVQZW5kaW5nRmllbGQoKS5vblN1Y2Nlc3MoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gdGhpcy5fZmllbGRzLmxlbmd0aCA+IDAgPyBPYmplY3QuZnJvbUVudHJpZXModGhpcy5fZmllbGRzKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChyZWNvcmQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVjb3Jkcy5wdXNoKHJlY29yZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmllbGRzID0gW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3VjY2VlZCh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3dyaXRlUGVuZGluZ0ZpZWxkKCk6IFJlc3VsdDxib29sZWFuPiB7XG4gICAgICAgIGlmICh0aGlzLl9uYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9ib2R5IS5ib2R5Lmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFpbCgnZW1wdHkgYm9keSB2YWx1ZSBub3QgYWxsb3dlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fZmllbGRzLnB1c2goW3RoaXMuX25hbWUsIHRoaXMuX2JvZHkhLmJvZHldKTtcbiAgICAgICAgICAgIHRoaXMuX25hbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLl9ib2R5ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdWNjZWVkKHRydWUpO1xuICAgIH1cbn1cblxuLyoqXG4gKiBSZWFkcyBhIHJlY29yZC1qYXIgZnJvbSBhbiBhcnJheSBvZiBzdHJpbmdzLCBlYWNoIG9mIHdoaWNoIHJlcHJlc2VudHMgb25lXG4gKiBsaW5lIGluIHRoZSBzb3VyY2UgZmlsZS5cbiAqIEBwYXJhbSBsaW5lcyAtIHRoZSBhcnJheSBvZiBzdHJpbmdzIHRvIGJlIHBhcnNlZFxuICogQHJldHVybnMgYSBjb3JyZXNwb25kaW5nIGFycmF5IG9mIGBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+YFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWNvcmRKYXJMaW5lcyhsaW5lczogc3RyaW5nW10pOiBSZXN1bHQ8UmVjb3JkPHN0cmluZywgc3RyaW5nPltdPiB7XG4gICAgcmV0dXJuIFJlY29yZFBhcnNlci5wYXJzZShsaW5lcyk7XG59XG5cbi8qKlxuICogQSB7QGxpbmsgQ29udmVydGVyfSB0byBhbiBhcnJheSBvZiBgUmVjb3JkPHN0cmluZywgc3RyaW5nPmAgZnJvbSBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgcmVjb3JkSmFyID0gQ29udmVydGVycy52YWxpZGF0ZWQoVmFsaWRhdG9ycy5hcnJheU9mKFZhbGlkYXRvcnMuc3RyaW5nKSkubWFwKHBhcnNlUmVjb3JkSmFyTGluZXMpO1xuXG4vKipcbiAqIFJlYWRzIGEgcmVjb3JkLWphciBmaWxlIGZyb20gYSBzdXBwbGllZCBwYXRoLlxuICogQHBhcmFtIHNyY1BhdGggLSBTb3VyY2UgcGF0aCBmcm9tIHdoaWNoIHRoZSBmaWxlIGlzIHJlYWQuXG4gKiBAcmV0dXJucyBUaGUgY29udGVudHMgb2YgdGhlIGZpbGUgYXMgYW4gYXJyYXkgb2YgYFJlY29yZDxzdHJpbmcsIHN0cmluZz5gXG4gKiBAc2VlIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvZHJhZnQtcGhpbGxpcHMtcmVjb3JkLWphci0wMVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVhZFJlY29yZEphckZpbGVTeW5jKHNyY1BhdGg6IHN0cmluZyk6IFJlc3VsdDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+W10+IHtcbiAgICByZXR1cm4gY2FwdHVyZVJlc3VsdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKHNyY1BhdGgpO1xuICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKGZ1bGxQYXRoLCAndXRmOCcpLnRvU3RyaW5nKCkuc3BsaXQoL1xccj9cXG4vKTtcbiAgICB9KS5vblN1Y2Nlc3MoKGxpbmVzKSA9PiB7XG4gICAgICAgIHJldHVybiBwYXJzZVJlY29yZEphckxpbmVzKGxpbmVzKTtcbiAgICB9KTtcbn1cbiJdfQ==
|
package/utils.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare function isKeyOf<T extends object>(key: string | number | symbol,
|
|
|
17
17
|
* is not present (default `undefined`).
|
|
18
18
|
* @returns The value of the requested property, or the default value if the
|
|
19
19
|
* requested property does not exist.
|
|
20
|
+
* @public
|
|
20
21
|
*/
|
|
21
22
|
export declare function getValueOfPropertyOrDefault<T extends object>(key: string | number | symbol, item: T, defaultValue?: unknown): unknown | undefined;
|
|
22
23
|
/**
|
|
@@ -28,6 +29,7 @@ export declare function getValueOfPropertyOrDefault<T extends object>(key: strin
|
|
|
28
29
|
* @example
|
|
29
30
|
* Returns `'undefined'` (a string) if the property exists but has the value
|
|
30
31
|
* undefined but `undefined` (the literal) if the property does not exist.
|
|
32
|
+
* @public
|
|
31
33
|
*/
|
|
32
34
|
export declare function getTypeOfProperty<T extends object>(key: string | number | symbol, item: T): 'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'undefined' | 'object' | 'function' | undefined;
|
|
33
35
|
/**
|
package/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,MAAM,EAAiB,MAAM,UAAU,CAAC;AAEjD;;;;;;;GAOG;AAEH,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,CAE5F;AAED
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/utils.js
CHANGED
|
@@ -45,6 +45,7 @@ exports.isKeyOf = isKeyOf;
|
|
|
45
45
|
* is not present (default `undefined`).
|
|
46
46
|
* @returns The value of the requested property, or the default value if the
|
|
47
47
|
* requested property does not exist.
|
|
48
|
+
* @public
|
|
48
49
|
*/
|
|
49
50
|
function getValueOfPropertyOrDefault(key, item, defaultValue) {
|
|
50
51
|
return isKeyOf(key, item) ? item[key] : defaultValue;
|
|
@@ -59,6 +60,7 @@ exports.getValueOfPropertyOrDefault = getValueOfPropertyOrDefault;
|
|
|
59
60
|
* @example
|
|
60
61
|
* Returns `'undefined'` (a string) if the property exists but has the value
|
|
61
62
|
* undefined but `undefined` (the literal) if the property does not exist.
|
|
63
|
+
* @public
|
|
62
64
|
*/
|
|
63
65
|
function getTypeOfProperty(key, item) {
|
|
64
66
|
return isKeyOf(key, item) ? typeof item[key] : undefined;
|
|
@@ -160,4 +162,4 @@ function optionalMapToPossiblyEmptyRecord(src, factory) {
|
|
|
160
162
|
return (src === undefined) ? (0, result_1.succeed)({}) : mapToRecord(src, factory);
|
|
161
163
|
}
|
|
162
164
|
exports.optionalMapToPossiblyEmptyRecord = optionalMapToPossiblyEmptyRecord;
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgscUNBQWlEO0FBRWpEOzs7Ozs7O0dBT0c7QUFDSCx3REFBd0Q7QUFDeEQsU0FBZ0IsT0FBTyxDQUFtQixHQUF5QixFQUFFLElBQU87SUFDeEUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFGRCwwQkFFQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLDJCQUEyQixDQUN2QyxHQUF5QixFQUN6QixJQUFPLEVBQ1AsWUFBc0I7SUFFdEIsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztBQUN6RCxDQUFDO0FBTkQsa0VBTUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FDN0IsR0FBeUIsRUFDekIsSUFBTztJQUNQLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM3RCxDQUFDO0FBSkQsOENBSUM7QUFRRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsV0FBVyxDQUFxQyxHQUFtQixFQUFFLE9BQXNDO0lBQ3ZILE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDbkIsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3hCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDMUMsSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQztpQkFDSTtnQkFDRCxPQUFPLElBQUEsYUFBSSxFQUFDLEdBQUcsR0FBRyxLQUFLLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0o7S0FDSjtJQUNELE9BQU8sSUFBQSxnQkFBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFkRCxrQ0FjQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBcUMsR0FBNkIsRUFBRSxPQUFzQztJQUN6SSxPQUFPLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGdCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUZELGtEQUVDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGdDQUFnQyxDQUFxQyxHQUE2QixFQUFFLE9BQXNDO0lBQ3RKLE9BQU8sQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsZ0JBQU8sRUFBQyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDeEYsQ0FBQztBQUZELDRFQUVDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFdBQVcsQ0FBcUMsR0FBZ0IsRUFBRSxPQUFzQztJQUNwSCxNQUFNLE1BQU0sR0FBbUIsRUFBb0IsQ0FBQztJQUNwRCxLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtRQUNuQixJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDdEIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDeEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7YUFDckM7aUJBQ0k7Z0JBQ0QsT0FBTyxJQUFBLGFBQUksRUFBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzthQUNuRDtTQUNKO0tBQ0o7SUFDRCxPQUFPLElBQUEsZ0JBQU8sRUFBQyxNQUFNLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBZEQsa0NBY0M7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQXFDLEdBQTBCLEVBQUUsT0FBc0M7SUFDdEksT0FBTyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxnQkFBTyxFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFGRCxrREFFQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixnQ0FBZ0MsQ0FBcUMsR0FBMEIsRUFBRSxPQUFzQztJQUNuSixPQUFPLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGdCQUFPLEVBQUMsRUFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNGLENBQUM7QUFGRCw0RUFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIENvcHlyaWdodCAoYykgMjAyMCBFcmlrIEZvcnR1bmVcclxuICpcclxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxyXG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXHJcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcclxuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxyXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcclxuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcclxuICpcclxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXHJcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXHJcbiAqXHJcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcclxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXHJcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxyXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXHJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXHJcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXHJcbiAqIFNPRlRXQVJFLlxyXG4gKi9cclxuXHJcbmltcG9ydCB7IFJlc3VsdCwgZmFpbCwgc3VjY2VlZCB9IGZyb20gJy4vcmVzdWx0JztcclxuXHJcbi8qKlxyXG4gKiBIZWxwZXIgdHlwZS1ndWFyZCBmdW5jdGlvbiB0byByZXBvcnQgd2hldGhlciBhIHNwZWNpZmllZCBrZXkgaXMgcHJlc2VudCBpblxyXG4gKiBhIHN1cHBsaWVkIG9iamVjdC5cclxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgdG8gYmUgdGVzdGVkLlxyXG4gKiBAcGFyYW0gaXRlbSAtIFRoZSBvYmplY3QgdG8gYmUgdGVzdGVkLlxyXG4gKiBAcmV0dXJucyBSZXR1cm5zIGB0cnVlYCBpZiB0aGUga2V5IGlzIHByZXNlbnQsIGBmYWxzZWAgb3RoZXJ3aXNlLlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xyXG5leHBvcnQgZnVuY3Rpb24gaXNLZXlPZjxUIGV4dGVuZHMgb2JqZWN0PihrZXk6IHN0cmluZ3xudW1iZXJ8c3ltYm9sLCBpdGVtOiBUKToga2V5IGlzIGtleW9mIFQge1xyXG4gICAgcmV0dXJuIGl0ZW0uaGFzT3duUHJvcGVydHkoa2V5KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkgc3BlY2lmaWVkIGJ5IGtleSBmcm9tIGFuIGFyYml0cmFyeSBvYmplY3QsXHJcbiAqIG9yIGEgZGVmYXVsdCB2YWx1ZSBpZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgZXhpc3QuXHJcbiAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IHNwZWNpZnlpbmcgdGhlIHByb3BlcnR5IHRvIGJlIHJldHJpZXZlZC5cclxuICogQHBhcmFtIGl0ZW0gLSBUaGUgb2JqZWN0IGZyb20gd2hpY2ggdGhlIHByb3BlcnR5IGlzIHRvIGJlIHJldHJpZXZlZC5cclxuICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIEFuIG9wdGlvbmFsIGRlZmF1bHQgdmFsdWUgdG8gYmUgcmV0dXJuZWQgaWYgdGhlIHByb3BlcnR5XHJcbiAqIGlzIG5vdCBwcmVzZW50IChkZWZhdWx0IGB1bmRlZmluZWRgKS5cclxuICogQHJldHVybnMgVGhlIHZhbHVlIG9mIHRoZSByZXF1ZXN0ZWQgcHJvcGVydHksIG9yIHRoZSBkZWZhdWx0IHZhbHVlIGlmIHRoZVxyXG4gKiByZXF1ZXN0ZWQgcHJvcGVydHkgZG9lcyBub3QgZXhpc3QuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VmFsdWVPZlByb3BlcnR5T3JEZWZhdWx0PFQgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gICAga2V5OiBzdHJpbmd8bnVtYmVyfHN5bWJvbCxcclxuICAgIGl0ZW06IFQsXHJcbiAgICBkZWZhdWx0VmFsdWU/OiB1bmtub3duXHJcbik6IHVua25vd24gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIGlzS2V5T2Yoa2V5LCBpdGVtKSA/IGl0ZW1ba2V5XSA6IGRlZmF1bHRWYWx1ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIHR5cGUgb2YgYSBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkga2V5IGZyb20gYW4gYXJiaXRyYXJ5IG9iamVjdC5cclxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgc3BlY2lmeWluZyB0aGUgcHJvcGVydHkgdG8gYmUgdGVzdGVkLlxyXG4gKiBAcGFyYW0gaXRlbSAtIFRoZSBvYmplY3QgZnJvbSB3aGljaCB0aGUgcHJvcGVydHkgaXMgdG8gYmUgdGVzdGVkLlxyXG4gKiBAcmV0dXJucyBUaGUgdHlwZSBvZiB0aGUgcmVxdWVzdGVkIHByb3BlcnR5LCBvciBgdW5kZWZpbmVkYCBpZiB0aGVcclxuICogcHJvcGVydHkgZG9lcyBub3QgZXhpc3QuXHJcbiAqIEBleGFtcGxlXHJcbiAqIFJldHVybnMgYCd1bmRlZmluZWQnYCAoYSBzdHJpbmcpIGlmIHRoZSBwcm9wZXJ0eSBleGlzdHMgYnV0IGhhcyB0aGUgdmFsdWVcclxuICogdW5kZWZpbmVkIGJ1dCBgdW5kZWZpbmVkYCAodGhlIGxpdGVyYWwpIGlmIHRoZSBwcm9wZXJ0eSBkb2VzIG5vdCBleGlzdC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlT2ZQcm9wZXJ0eTxUIGV4dGVuZHMgb2JqZWN0PihcclxuICAgIGtleTogc3RyaW5nfG51bWJlcnxzeW1ib2wsXHJcbiAgICBpdGVtOiBUKTogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdiaWdpbnQnIHwgJ2Jvb2xlYW4nIHwgJ3N5bWJvbCcgfCAndW5kZWZpbmVkJyB8ICd1bmRlZmluZWQnIHwgJ29iamVjdCcgfCAnZnVuY3Rpb24nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBpc0tleU9mKGtleSwgaXRlbSkgPyB0eXBlb2YgaXRlbVtrZXldIDogdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZSBmb3IgZmFjdG9yeSBtZXRob2RzIHdoaWNoIGNvbnZlcnQgYSBrZXktdmFsdWUgcGFpciB0byBhIG5ldyB1bmlxdWUgdmFsdWUuXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbnR5cGUgS2V5ZWRUaGluZ0ZhY3Rvcnk8VFMsIFRELCBUSyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSAoa2V5OiBUSywgdGhpbmc6IFRTKSA9PiBSZXN1bHQ8VEQ+O1xyXG5cclxuLyoqXHJcbiAqIEFwcGxpZXMgYSBmYWN0b3J5IG1ldGhvZCB0byBjb252ZXJ0IGEgYFJlY29yZDxUSywgVFM+YCBpbnRvIGEgYE1hcDxUSywgVEQ+YC5cclxuICogQHBhcmFtIHNyYyAtIFRoZSBgUmVjb3JkYCB0byBiZSBjb252ZXJ0ZWQuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyBtYXAgb24gc3VjY2Vzcywgb3Ige0BsaW5rIEZhaWx1cmV9IHdpdGggYVxyXG4gKiBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3Vycy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlY29yZFRvTWFwPFRTLCBURCwgVEsgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+KHNyYzogUmVjb3JkPFRLLCBUUz4sIGZhY3Rvcnk6IEtleWVkVGhpbmdGYWN0b3J5PFRTLCBURCwgVEs+KTogUmVzdWx0PE1hcDxUSywgVEQ+PiB7XHJcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPFRLLCBURD4oKTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIHNyYykge1xyXG4gICAgICAgIGlmIChzcmNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1SZXN1bHQgPSBmYWN0b3J5KGtleSwgc3JjW2tleV0pO1xyXG4gICAgICAgICAgICBpZiAoaXRlbVJlc3VsdC5pc1N1Y2Nlc3MoKSkge1xyXG4gICAgICAgICAgICAgICAgbWFwLnNldChrZXksIGl0ZW1SZXN1bHQudmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7a2V5fTogJHtpdGVtUmVzdWx0Lm1lc3NhZ2V9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VlZChtYXApO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIGZhY3RvcnkgbWV0aG9kIHRvIGNvbnZlcnQgYW4gb3B0aW9uYWwgYFJlY29yZDxUSywgVFM+YCBpbnRvIGEgYE1hcDxUSywgVEQ+YCwgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBzcmMgLSBUaGUgYFJlY29yZGAgdG8gYmUgY29udmVydGVkLCBvciB1bmRlZmluZWQuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyBtYXAgaWYgY29udmVyc2lvbiBzdWNjZWVkcywgb3Ige0BsaW5rIFN1Y2Nlc3N9IHdpdGggYHVuZGVmaW5lZGBcclxuICogaWYgYHNyY2AgaXMgYHVuZGVmaW5lZGAuIFJldHVybnMge0BsaW5rIEZhaWx1cmV9IHdpdGggYSBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3Vycy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbmFsUmVjb3JkVG9NYXA8VFMsIFRELCBUSyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oc3JjOiBSZWNvcmQ8VEssIFRTPnx1bmRlZmluZWQsIGZhY3Rvcnk6IEtleWVkVGhpbmdGYWN0b3J5PFRTLCBURCwgVEs+KTogUmVzdWx0PE1hcDxUSywgVEQ+fHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIChzcmMgPT09IHVuZGVmaW5lZCkgPyBzdWNjZWVkKHVuZGVmaW5lZCkgOiByZWNvcmRUb01hcChzcmMsIGZhY3RvcnkpO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIGZhY3RvcnkgbWV0aG9kIHRvIGNvbnZlcnQgYW4gb3B0aW9uYWwgYFJlY29yZDxUSywgVFM+YCBpbnRvIGEgYE1hcDxUSywgVEQ+YFxyXG4gKiBAcGFyYW0gc3JjIC0gVGhlIGBSZWNvcmRgIHRvIGJlIGNvbnZlcnRlZCwgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyBtYXAgKGVtcHR5IGlmIGBzcmNgIGlzIGB1bmRlZmluZWRgKSBpZiBjb252ZXJzaW9uIHN1Y2NlZWRzLlxyXG4gKiBSZXR1cm5zIHtAbGluayBGYWlsdXJlfSB3aXRoIGEgbWVzc2FnZSBpZiBhbiBlcnJvciBvY2N1cnMuXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25hbFJlY29yZFRvUG9zc2libHlFbXB0eU1hcDxUUywgVEQsIFRLIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihzcmM6IFJlY29yZDxUSywgVFM+fHVuZGVmaW5lZCwgZmFjdG9yeTogS2V5ZWRUaGluZ0ZhY3Rvcnk8VFMsIFRELCBUSz4pOiBSZXN1bHQ8TWFwPFRLLCBURD4+IHtcclxuICAgIHJldHVybiAoc3JjID09PSB1bmRlZmluZWQpID8gc3VjY2VlZChuZXcgTWFwPFRLLCBURD4oKSkgOiByZWNvcmRUb01hcChzcmMsIGZhY3RvcnkpO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIGZhY3RvcnkgbWV0aG9kIHRvIGNvbnZlcnQgYSBgTWFwPFRLLCBUUz5gIGludG8gYSBgUmVjb3JkPFRLLCBURD5gLlxyXG4gKiBAcGFyYW0gc3JjIC0gVGhlIGBNYXBgIG9iamVjdCB0byBiZSBjb252ZXJ0ZWQuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyBgUmVjb3JkPFRLLCBURD5gIGlmIGNvbnZlcnNpb24gc3VjY2VlZHMsIG9yXHJcbiAqIHtAbGluayBGYWlsdXJlfSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UgaWYgYW4gZXJyb3Igb2NjdXJzLlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9SZWNvcmQ8VFMsIFRELCBUSyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oc3JjOiBNYXA8VEssIFRTPiwgZmFjdG9yeTogS2V5ZWRUaGluZ0ZhY3Rvcnk8VFMsIFRELCBUSz4pOiBSZXN1bHQ8UmVjb3JkPFRLLCBURD4+IHtcclxuICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPFRLLCBURD4gPSB7fSBhcyBSZWNvcmQ8VEssIFREPjtcclxuICAgIGZvciAoY29uc3Qga3ZwIG9mIHNyYykge1xyXG4gICAgICAgIGlmIChrdnBbMV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtUmVzdWx0ID0gZmFjdG9yeShrdnBbMF0sIGt2cFsxXSk7XHJcbiAgICAgICAgICAgIGlmIChpdGVtUmVzdWx0LmlzU3VjY2VzcygpKSB7XHJcbiAgICAgICAgICAgICAgICByZWNvcmRba3ZwWzBdXSA9IGl0ZW1SZXN1bHQudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChgJHtrdnBbMF19OiAke2l0ZW1SZXN1bHQubWVzc2FnZX1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdWNjZWVkKHJlY29yZCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBcHBsaWVzIGEgZmFjdG9yeSBtZXRob2QgdG8gY29udmVydCBhbiBvcHRpb25hbCBgTWFwPHN0cmluZywgVFM+YCBpbnRvIGEgYFJlY29yZDxzdHJpbmcsIFREPmAgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBzcmMgLSBUaGUgYE1hcGAgb2JqZWN0IHRvIGJlIGNvbnZlcnRlZCwgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyByZWNvcmQgaWYgY29udmVyc2lvbiBzdWNjZWVkcywgb3Ige0BsaW5rIFN1Y2Nlc3N9IHdpdGggYHVuZGVmaW5lZGAgaWZcclxuICogYHNyY2AgaXMgYHVuZGVmaW5lZGAuIFJldHVybnMge0BsaW5rIEZhaWx1cmV9IHdpdGggYSBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3Vycy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbmFsTWFwVG9SZWNvcmQ8VFMsIFRELCBUSyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oc3JjOiBNYXA8VEssIFRTPnx1bmRlZmluZWQsIGZhY3Rvcnk6IEtleWVkVGhpbmdGYWN0b3J5PFRTLCBURCwgVEs+KTogUmVzdWx0PFJlY29yZDxUSywgVEQ+fHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIChzcmMgPT09IHVuZGVmaW5lZCkgPyBzdWNjZWVkKHVuZGVmaW5lZCkgOiBtYXBUb1JlY29yZChzcmMsIGZhY3RvcnkpO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIGZhY3RvcnkgbWV0aG9kIHRvIGNvbnZlcnQgYW4gb3B0aW9uYWwgYE1hcDxzdHJpbmcsIFRTPmAgaW50byBhIGBSZWNvcmQ8c3RyaW5nLCBURD5gXHJcbiAqIEBwYXJhbSBzcmMgLSBUaGUgYE1hcGAgb2JqZWN0IHRvIGJlIGNvbnZlcnRlZCwgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyByZWNvcmQgKGVtcHR5IGlmIGBzcmNgIGlzIGB1bmRlZmluZWRgKSBpZiBjb252ZXJzaW9uIHN1Y2NlZWRzLlxyXG4gKiBSZXR1cm5zIHtAbGluayBGYWlsdXJlfSB3aXRoIGEgbWVzc2FnZSBpZiBhbiBlcnJvciBvY2N1cnMuXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25hbE1hcFRvUG9zc2libHlFbXB0eVJlY29yZDxUUywgVEQsIFRLIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihzcmM6IE1hcDxUSywgVFM+fHVuZGVmaW5lZCwgZmFjdG9yeTogS2V5ZWRUaGluZ0ZhY3Rvcnk8VFMsIFRELCBUSz4pOiBSZXN1bHQ8UmVjb3JkPFRLLCBURD4+IHtcclxuICAgIHJldHVybiAoc3JjID09PSB1bmRlZmluZWQpID8gc3VjY2VlZCh7fSBhcyBSZWNvcmQ8VEssIFREPikgOiBtYXBUb1JlY29yZChzcmMsIGZhY3RvcnkpO1xyXG59XHJcbiJdfQ==
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgscUNBQWlEO0FBRWpEOzs7Ozs7O0dBT0c7QUFDSCx3REFBd0Q7QUFDeEQsU0FBZ0IsT0FBTyxDQUFtQixHQUF5QixFQUFFLElBQU87SUFDeEUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFGRCwwQkFFQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQiwyQkFBMkIsQ0FDdkMsR0FBeUIsRUFDekIsSUFBTyxFQUNQLFlBQXNCO0lBRXRCLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7QUFDekQsQ0FBQztBQU5ELGtFQU1DO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLGlCQUFpQixDQUM3QixHQUF5QixFQUN6QixJQUFPO0lBQ1AsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzdELENBQUM7QUFKRCw4Q0FJQztBQVFEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixXQUFXLENBQXFDLEdBQW1CLEVBQUUsT0FBc0M7SUFDdkgsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUM5QixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRTtRQUNuQixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDeEIsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxJQUFJLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDeEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2xDO2lCQUNJO2dCQUNELE9BQU8sSUFBQSxhQUFJLEVBQUMsR0FBRyxHQUFHLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDaEQ7U0FDSjtLQUNKO0lBQ0QsT0FBTyxJQUFBLGdCQUFPLEVBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQWRELGtDQWNDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLG1CQUFtQixDQUFxQyxHQUE2QixFQUFFLE9BQXNDO0lBQ3pJLE9BQU8sQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsZ0JBQU8sRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBRkQsa0RBRUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsZ0NBQWdDLENBQXFDLEdBQTZCLEVBQUUsT0FBc0M7SUFDdEosT0FBTyxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxnQkFBTyxFQUFDLElBQUksR0FBRyxFQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN4RixDQUFDO0FBRkQsNEVBRUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsV0FBVyxDQUFxQyxHQUFnQixFQUFFLE9BQXNDO0lBQ3BILE1BQU0sTUFBTSxHQUFtQixFQUFvQixDQUFDO0lBQ3BELEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1FBQ25CLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUN0QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUN4QixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQzthQUNyQztpQkFDSTtnQkFDRCxPQUFPLElBQUEsYUFBSSxFQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ25EO1NBQ0o7S0FDSjtJQUNELE9BQU8sSUFBQSxnQkFBTyxFQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFkRCxrQ0FjQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBcUMsR0FBMEIsRUFBRSxPQUFzQztJQUN0SSxPQUFPLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGdCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUZELGtEQUVDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGdDQUFnQyxDQUFxQyxHQUEwQixFQUFFLE9BQXNDO0lBQ25KLE9BQU8sQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsZ0JBQU8sRUFBQyxFQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0YsQ0FBQztBQUZELDRFQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IChjKSAyMDIwIEVyaWsgRm9ydHVuZVxyXG4gKlxyXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XHJcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcclxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xyXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXHJcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xyXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxyXG4gKlxyXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcclxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cclxuICpcclxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxyXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcclxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXHJcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcclxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcclxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcclxuICogU09GVFdBUkUuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgUmVzdWx0LCBmYWlsLCBzdWNjZWVkIH0gZnJvbSAnLi9yZXN1bHQnO1xyXG5cclxuLyoqXHJcbiAqIEhlbHBlciB0eXBlLWd1YXJkIGZ1bmN0aW9uIHRvIHJlcG9ydCB3aGV0aGVyIGEgc3BlY2lmaWVkIGtleSBpcyBwcmVzZW50IGluXHJcbiAqIGEgc3VwcGxpZWQgb2JqZWN0LlxyXG4gKiBAcGFyYW0ga2V5IC0gVGhlIGtleSB0byBiZSB0ZXN0ZWQuXHJcbiAqIEBwYXJhbSBpdGVtIC0gVGhlIG9iamVjdCB0byBiZSB0ZXN0ZWQuXHJcbiAqIEByZXR1cm5zIFJldHVybnMgYHRydWVgIGlmIHRoZSBrZXkgaXMgcHJlc2VudCwgYGZhbHNlYCBvdGhlcndpc2UuXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0tleU9mPFQgZXh0ZW5kcyBvYmplY3Q+KGtleTogc3RyaW5nfG51bWJlcnxzeW1ib2wsIGl0ZW06IFQpOiBrZXkgaXMga2V5b2YgVCB7XHJcbiAgICByZXR1cm4gaXRlbS5oYXNPd25Qcm9wZXJ0eShrZXkpO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eSBzcGVjaWZpZWQgYnkga2V5IGZyb20gYW4gYXJiaXRyYXJ5IG9iamVjdCxcclxuICogb3IgYSBkZWZhdWx0IHZhbHVlIGlmIHRoZSBwcm9wZXJ0eSBkb2VzIG5vdCBleGlzdC5cclxuICogQHBhcmFtIGtleSAtIFRoZSBrZXkgc3BlY2lmeWluZyB0aGUgcHJvcGVydHkgdG8gYmUgcmV0cmlldmVkLlxyXG4gKiBAcGFyYW0gaXRlbSAtIFRoZSBvYmplY3QgZnJvbSB3aGljaCB0aGUgcHJvcGVydHkgaXMgdG8gYmUgcmV0cmlldmVkLlxyXG4gKiBAcGFyYW0gZGVmYXVsdFZhbHVlIC0gQW4gb3B0aW9uYWwgZGVmYXVsdCB2YWx1ZSB0byBiZSByZXR1cm5lZCBpZiB0aGUgcHJvcGVydHlcclxuICogaXMgbm90IHByZXNlbnQgKGRlZmF1bHQgYHVuZGVmaW5lZGApLlxyXG4gKiBAcmV0dXJucyBUaGUgdmFsdWUgb2YgdGhlIHJlcXVlc3RlZCBwcm9wZXJ0eSwgb3IgdGhlIGRlZmF1bHQgdmFsdWUgaWYgdGhlXHJcbiAqIHJlcXVlc3RlZCBwcm9wZXJ0eSBkb2VzIG5vdCBleGlzdC5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFZhbHVlT2ZQcm9wZXJ0eU9yRGVmYXVsdDxUIGV4dGVuZHMgb2JqZWN0PihcclxuICAgIGtleTogc3RyaW5nfG51bWJlcnxzeW1ib2wsXHJcbiAgICBpdGVtOiBULFxyXG4gICAgZGVmYXVsdFZhbHVlPzogdW5rbm93blxyXG4pOiB1bmtub3duIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBpc0tleU9mKGtleSwgaXRlbSkgPyBpdGVtW2tleV0gOiBkZWZhdWx0VmFsdWU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSB0eXBlIG9mIGEgcHJvcGVydHkgc3BlY2lmaWVkIGJ5IGtleSBmcm9tIGFuIGFyYml0cmFyeSBvYmplY3QuXHJcbiAqIEBwYXJhbSBrZXkgLSBUaGUga2V5IHNwZWNpZnlpbmcgdGhlIHByb3BlcnR5IHRvIGJlIHRlc3RlZC5cclxuICogQHBhcmFtIGl0ZW0gLSBUaGUgb2JqZWN0IGZyb20gd2hpY2ggdGhlIHByb3BlcnR5IGlzIHRvIGJlIHRlc3RlZC5cclxuICogQHJldHVybnMgVGhlIHR5cGUgb2YgdGhlIHJlcXVlc3RlZCBwcm9wZXJ0eSwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlXHJcbiAqIHByb3BlcnR5IGRvZXMgbm90IGV4aXN0LlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBSZXR1cm5zIGAndW5kZWZpbmVkJ2AgKGEgc3RyaW5nKSBpZiB0aGUgcHJvcGVydHkgZXhpc3RzIGJ1dCBoYXMgdGhlIHZhbHVlXHJcbiAqIHVuZGVmaW5lZCBidXQgYHVuZGVmaW5lZGAgKHRoZSBsaXRlcmFsKSBpZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgZXhpc3QuXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlT2ZQcm9wZXJ0eTxUIGV4dGVuZHMgb2JqZWN0PihcclxuICAgIGtleTogc3RyaW5nfG51bWJlcnxzeW1ib2wsXHJcbiAgICBpdGVtOiBUKTogJ3N0cmluZycgfCAnbnVtYmVyJyB8ICdiaWdpbnQnIHwgJ2Jvb2xlYW4nIHwgJ3N5bWJvbCcgfCAndW5kZWZpbmVkJyB8ICd1bmRlZmluZWQnIHwgJ29iamVjdCcgfCAnZnVuY3Rpb24nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBpc0tleU9mKGtleSwgaXRlbSkgPyB0eXBlb2YgaXRlbVtrZXldIDogdW5kZWZpbmVkO1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZSBmb3IgZmFjdG9yeSBtZXRob2RzIHdoaWNoIGNvbnZlcnQgYSBrZXktdmFsdWUgcGFpciB0byBhIG5ldyB1bmlxdWUgdmFsdWUuXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbnR5cGUgS2V5ZWRUaGluZ0ZhY3Rvcnk8VFMsIFRELCBUSyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSAoa2V5OiBUSywgdGhpbmc6IFRTKSA9PiBSZXN1bHQ8VEQ+O1xyXG5cclxuLyoqXHJcbiAqIEFwcGxpZXMgYSBmYWN0b3J5IG1ldGhvZCB0byBjb252ZXJ0IGEgYFJlY29yZDxUSywgVFM+YCBpbnRvIGEgYE1hcDxUSywgVEQ+YC5cclxuICogQHBhcmFtIHNyYyAtIFRoZSBgUmVjb3JkYCB0byBiZSBjb252ZXJ0ZWQuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyBtYXAgb24gc3VjY2Vzcywgb3Ige0BsaW5rIEZhaWx1cmV9IHdpdGggYVxyXG4gKiBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3Vycy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlY29yZFRvTWFwPFRTLCBURCwgVEsgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+KHNyYzogUmVjb3JkPFRLLCBUUz4sIGZhY3Rvcnk6IEtleWVkVGhpbmdGYWN0b3J5PFRTLCBURCwgVEs+KTogUmVzdWx0PE1hcDxUSywgVEQ+PiB7XHJcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPFRLLCBURD4oKTtcclxuICAgIGZvciAoY29uc3Qga2V5IGluIHNyYykge1xyXG4gICAgICAgIGlmIChzcmNba2V5XSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1SZXN1bHQgPSBmYWN0b3J5KGtleSwgc3JjW2tleV0pO1xyXG4gICAgICAgICAgICBpZiAoaXRlbVJlc3VsdC5pc1N1Y2Nlc3MoKSkge1xyXG4gICAgICAgICAgICAgICAgbWFwLnNldChrZXksIGl0ZW1SZXN1bHQudmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhaWwoYCR7a2V5fTogJHtpdGVtUmVzdWx0Lm1lc3NhZ2V9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VlZChtYXApO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIGZhY3RvcnkgbWV0aG9kIHRvIGNvbnZlcnQgYW4gb3B0aW9uYWwgYFJlY29yZDxUSywgVFM+YCBpbnRvIGEgYE1hcDxUSywgVEQ+YCwgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBzcmMgLSBUaGUgYFJlY29yZGAgdG8gYmUgY29udmVydGVkLCBvciB1bmRlZmluZWQuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyBtYXAgaWYgY29udmVyc2lvbiBzdWNjZWVkcywgb3Ige0BsaW5rIFN1Y2Nlc3N9IHdpdGggYHVuZGVmaW5lZGBcclxuICogaWYgYHNyY2AgaXMgYHVuZGVmaW5lZGAuIFJldHVybnMge0BsaW5rIEZhaWx1cmV9IHdpdGggYSBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3Vycy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbmFsUmVjb3JkVG9NYXA8VFMsIFRELCBUSyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oc3JjOiBSZWNvcmQ8VEssIFRTPnx1bmRlZmluZWQsIGZhY3Rvcnk6IEtleWVkVGhpbmdGYWN0b3J5PFRTLCBURCwgVEs+KTogUmVzdWx0PE1hcDxUSywgVEQ+fHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIChzcmMgPT09IHVuZGVmaW5lZCkgPyBzdWNjZWVkKHVuZGVmaW5lZCkgOiByZWNvcmRUb01hcChzcmMsIGZhY3RvcnkpO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIGZhY3RvcnkgbWV0aG9kIHRvIGNvbnZlcnQgYW4gb3B0aW9uYWwgYFJlY29yZDxUSywgVFM+YCBpbnRvIGEgYE1hcDxUSywgVEQ+YFxyXG4gKiBAcGFyYW0gc3JjIC0gVGhlIGBSZWNvcmRgIHRvIGJlIGNvbnZlcnRlZCwgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyBtYXAgKGVtcHR5IGlmIGBzcmNgIGlzIGB1bmRlZmluZWRgKSBpZiBjb252ZXJzaW9uIHN1Y2NlZWRzLlxyXG4gKiBSZXR1cm5zIHtAbGluayBGYWlsdXJlfSB3aXRoIGEgbWVzc2FnZSBpZiBhbiBlcnJvciBvY2N1cnMuXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25hbFJlY29yZFRvUG9zc2libHlFbXB0eU1hcDxUUywgVEQsIFRLIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihzcmM6IFJlY29yZDxUSywgVFM+fHVuZGVmaW5lZCwgZmFjdG9yeTogS2V5ZWRUaGluZ0ZhY3Rvcnk8VFMsIFRELCBUSz4pOiBSZXN1bHQ8TWFwPFRLLCBURD4+IHtcclxuICAgIHJldHVybiAoc3JjID09PSB1bmRlZmluZWQpID8gc3VjY2VlZChuZXcgTWFwPFRLLCBURD4oKSkgOiByZWNvcmRUb01hcChzcmMsIGZhY3RvcnkpO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIGZhY3RvcnkgbWV0aG9kIHRvIGNvbnZlcnQgYSBgTWFwPFRLLCBUUz5gIGludG8gYSBgUmVjb3JkPFRLLCBURD5gLlxyXG4gKiBAcGFyYW0gc3JjIC0gVGhlIGBNYXBgIG9iamVjdCB0byBiZSBjb252ZXJ0ZWQuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyBgUmVjb3JkPFRLLCBURD5gIGlmIGNvbnZlcnNpb24gc3VjY2VlZHMsIG9yXHJcbiAqIHtAbGluayBGYWlsdXJlfSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UgaWYgYW4gZXJyb3Igb2NjdXJzLlxyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWFwVG9SZWNvcmQ8VFMsIFRELCBUSyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oc3JjOiBNYXA8VEssIFRTPiwgZmFjdG9yeTogS2V5ZWRUaGluZ0ZhY3Rvcnk8VFMsIFRELCBUSz4pOiBSZXN1bHQ8UmVjb3JkPFRLLCBURD4+IHtcclxuICAgIGNvbnN0IHJlY29yZDogUmVjb3JkPFRLLCBURD4gPSB7fSBhcyBSZWNvcmQ8VEssIFREPjtcclxuICAgIGZvciAoY29uc3Qga3ZwIG9mIHNyYykge1xyXG4gICAgICAgIGlmIChrdnBbMV0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtUmVzdWx0ID0gZmFjdG9yeShrdnBbMF0sIGt2cFsxXSk7XHJcbiAgICAgICAgICAgIGlmIChpdGVtUmVzdWx0LmlzU3VjY2VzcygpKSB7XHJcbiAgICAgICAgICAgICAgICByZWNvcmRba3ZwWzBdXSA9IGl0ZW1SZXN1bHQudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFpbChgJHtrdnBbMF19OiAke2l0ZW1SZXN1bHQubWVzc2FnZX1gKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdWNjZWVkKHJlY29yZCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBcHBsaWVzIGEgZmFjdG9yeSBtZXRob2QgdG8gY29udmVydCBhbiBvcHRpb25hbCBgTWFwPHN0cmluZywgVFM+YCBpbnRvIGEgYFJlY29yZDxzdHJpbmcsIFREPmAgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBzcmMgLSBUaGUgYE1hcGAgb2JqZWN0IHRvIGJlIGNvbnZlcnRlZCwgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyByZWNvcmQgaWYgY29udmVyc2lvbiBzdWNjZWVkcywgb3Ige0BsaW5rIFN1Y2Nlc3N9IHdpdGggYHVuZGVmaW5lZGAgaWZcclxuICogYHNyY2AgaXMgYHVuZGVmaW5lZGAuIFJldHVybnMge0BsaW5rIEZhaWx1cmV9IHdpdGggYSBtZXNzYWdlIGlmIGFuIGVycm9yIG9jY3Vycy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbmFsTWFwVG9SZWNvcmQ8VFMsIFRELCBUSyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4oc3JjOiBNYXA8VEssIFRTPnx1bmRlZmluZWQsIGZhY3Rvcnk6IEtleWVkVGhpbmdGYWN0b3J5PFRTLCBURCwgVEs+KTogUmVzdWx0PFJlY29yZDxUSywgVEQ+fHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIChzcmMgPT09IHVuZGVmaW5lZCkgPyBzdWNjZWVkKHVuZGVmaW5lZCkgOiBtYXBUb1JlY29yZChzcmMsIGZhY3RvcnkpO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGllcyBhIGZhY3RvcnkgbWV0aG9kIHRvIGNvbnZlcnQgYW4gb3B0aW9uYWwgYE1hcDxzdHJpbmcsIFRTPmAgaW50byBhIGBSZWNvcmQ8c3RyaW5nLCBURD5gXHJcbiAqIEBwYXJhbSBzcmMgLSBUaGUgYE1hcGAgb2JqZWN0IHRvIGJlIGNvbnZlcnRlZCwgb3IgYHVuZGVmaW5lZGAuXHJcbiAqIEBwYXJhbSBmYWN0b3J5IC0gVGhlIGZhY3RvcnkgbWV0aG9kIHVzZWQgdG8gY29udmVydCBlbGVtZW50cy5cclxuICogQHJldHVybnMge0BsaW5rIFN1Y2Nlc3N9IHdpdGggdGhlIHJlc3VsdGluZyByZWNvcmQgKGVtcHR5IGlmIGBzcmNgIGlzIGB1bmRlZmluZWRgKSBpZiBjb252ZXJzaW9uIHN1Y2NlZWRzLlxyXG4gKiBSZXR1cm5zIHtAbGluayBGYWlsdXJlfSB3aXRoIGEgbWVzc2FnZSBpZiBhbiBlcnJvciBvY2N1cnMuXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25hbE1hcFRvUG9zc2libHlFbXB0eVJlY29yZDxUUywgVEQsIFRLIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPihzcmM6IE1hcDxUSywgVFM+fHVuZGVmaW5lZCwgZmFjdG9yeTogS2V5ZWRUaGluZ0ZhY3Rvcnk8VFMsIFRELCBUSz4pOiBSZXN1bHQ8UmVjb3JkPFRLLCBURD4+IHtcclxuICAgIHJldHVybiAoc3JjID09PSB1bmRlZmluZWQpID8gc3VjY2VlZCh7fSBhcyBSZWNvcmQ8VEssIFREPikgOiBtYXBUb1JlY29yZChzcmMsIGZhY3RvcnkpO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Failure } from '../result';
|
|
2
|
+
import { Validator, ValidatorOptions } from './validator';
|
|
3
|
+
import { ValidatorBase, ValidatorBaseConstructorParams } from './validatorBase';
|
|
4
|
+
/**
|
|
5
|
+
* Parameters used to construct a {@link Validation.Classes.ArrayValidator | ArrayValidator}.
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
export interface ArrayValidatorConstructorParams<T, TC = unknown> extends ValidatorBaseConstructorParams<T[], TC> {
|
|
9
|
+
validateElement: Validator<T, TC>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* An in-place {@link Validation.Validator | Validator} for `number` values.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export declare class ArrayValidator<T, TC = unknown> extends ValidatorBase<T[], TC> {
|
|
16
|
+
/**
|
|
17
|
+
* {@link Validation.ValidatorOptions | Options} which apply to this
|
|
18
|
+
* validator.
|
|
19
|
+
*/
|
|
20
|
+
readonly options: ValidatorOptions<TC>;
|
|
21
|
+
protected readonly _validateElement: Validator<T, TC>;
|
|
22
|
+
/**
|
|
23
|
+
* Constructs a new {@link Validation.Classes.ArrayValidator | ArrayValidator}.
|
|
24
|
+
* @param params - Optional {@link Validation.Classes.ArrayValidatorConstructorParams | init params} for the
|
|
25
|
+
* new {@link Validation.Classes.ArrayValidator | ArrayValidator}.
|
|
26
|
+
*/
|
|
27
|
+
constructor(params: ArrayValidatorConstructorParams<T, TC>);
|
|
28
|
+
/**
|
|
29
|
+
* Static method which validates that a supplied `unknown` value is a `array`
|
|
30
|
+
* and that every element of the array can be validated by the supplied array
|
|
31
|
+
* validator.
|
|
32
|
+
* @param from - The `unknown` value to be tested.
|
|
33
|
+
* @returns Returns `true` if `from` is an `array` of valid elements, or
|
|
34
|
+
* {@link Failure} with an error message if not.
|
|
35
|
+
*/
|
|
36
|
+
protected _validate<T>(from: unknown, context?: TC): boolean | Failure<T>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=array.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/validation/array.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAQ,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,+BAA+B,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAE,SAAQ,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;IAC7G,eAAe,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACrC;AAED;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAE,SAAQ,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;IACvE;;;OAGG;IACH,SAAgB,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE9C,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtD;;;;OAIG;gBACgB,MAAM,EAAE,+BAA+B,CAAC,CAAC,EAAE,EAAE,CAAC;IAMjE;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAY5E"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2022 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.ArrayValidator = void 0;
|
|
25
|
+
const result_1 = require("../result");
|
|
26
|
+
const validatorBase_1 = require("./validatorBase");
|
|
27
|
+
/**
|
|
28
|
+
* An in-place {@link Validation.Validator | Validator} for `number` values.
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
class ArrayValidator extends validatorBase_1.ValidatorBase {
|
|
32
|
+
/**
|
|
33
|
+
* Constructs a new {@link Validation.Classes.ArrayValidator | ArrayValidator}.
|
|
34
|
+
* @param params - Optional {@link Validation.Classes.ArrayValidatorConstructorParams | init params} for the
|
|
35
|
+
* new {@link Validation.Classes.ArrayValidator | ArrayValidator}.
|
|
36
|
+
*/
|
|
37
|
+
constructor(params) {
|
|
38
|
+
var _a;
|
|
39
|
+
super(params);
|
|
40
|
+
this._validateElement = params.validateElement;
|
|
41
|
+
this.options = (_a = params.options) !== null && _a !== void 0 ? _a : {};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Static method which validates that a supplied `unknown` value is a `array`
|
|
45
|
+
* and that every element of the array can be validated by the supplied array
|
|
46
|
+
* validator.
|
|
47
|
+
* @param from - The `unknown` value to be tested.
|
|
48
|
+
* @returns Returns `true` if `from` is an `array` of valid elements, or
|
|
49
|
+
* {@link Failure} with an error message if not.
|
|
50
|
+
*/
|
|
51
|
+
_validate(from, context) {
|
|
52
|
+
if (Array.isArray(from)) {
|
|
53
|
+
for (const elem of from) {
|
|
54
|
+
const result = this._validateElement.validate(elem, context);
|
|
55
|
+
if (!result.isSuccess()) {
|
|
56
|
+
return (0, result_1.fail)(result.message);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
return (0, result_1.fail)(`"${from}": not an array`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.ArrayValidator = ArrayValidator;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7QUFFSCxzQ0FBMEM7QUFFMUMsbURBQWdGO0FBVWhGOzs7R0FHRztBQUNILE1BQWEsY0FBZ0MsU0FBUSw2QkFBc0I7SUFTdkU7Ozs7T0FJRztJQUNILFlBQW1CLE1BQThDOztRQUM3RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQUEsTUFBTSxDQUFDLE9BQU8sbUNBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sU0FBUyxDQUFJLElBQWEsRUFBRSxPQUFZO1FBQzlDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNyQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRTtnQkFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ3JCLE9BQU8sSUFBQSxhQUFJLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUMvQjthQUNKO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBQSxhQUFJLEVBQUksSUFBSSxJQUFJLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNKO0FBeENELHdDQXdDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjIgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5pbXBvcnQgeyBGYWlsdXJlLCBmYWlsIH0gZnJvbSAnLi4vcmVzdWx0JztcbmltcG9ydCB7IFZhbGlkYXRvciwgVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gJy4vdmFsaWRhdG9yJztcbmltcG9ydCB7IFZhbGlkYXRvckJhc2UsIFZhbGlkYXRvckJhc2VDb25zdHJ1Y3RvclBhcmFtcyB9IGZyb20gJy4vdmFsaWRhdG9yQmFzZSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyB1c2VkIHRvIGNvbnN0cnVjdCBhIHtAbGluayBWYWxpZGF0aW9uLkNsYXNzZXMuQXJyYXlWYWxpZGF0b3IgfCBBcnJheVZhbGlkYXRvcn0uXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXJyYXlWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxULCBUQyA9IHVua25vd24+IGV4dGVuZHMgVmFsaWRhdG9yQmFzZUNvbnN0cnVjdG9yUGFyYW1zPFRbXSwgVEM+IHtcbiAgICB2YWxpZGF0ZUVsZW1lbnQ6IFZhbGlkYXRvcjxULCBUQz47XG59XG5cbi8qKlxuICogQW4gaW4tcGxhY2Uge0BsaW5rIFZhbGlkYXRpb24uVmFsaWRhdG9yIHwgVmFsaWRhdG9yfSBmb3IgYG51bWJlcmAgdmFsdWVzLlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY2xhc3MgQXJyYXlWYWxpZGF0b3I8VCwgVEMgPSB1bmtub3duPiBleHRlbmRzIFZhbGlkYXRvckJhc2U8VFtdLCBUQz4ge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBWYWxpZGF0aW9uLlZhbGlkYXRvck9wdGlvbnMgfCBPcHRpb25zfSB3aGljaCBhcHBseSB0byB0aGlzXG4gICAgICogdmFsaWRhdG9yLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBWYWxpZGF0b3JPcHRpb25zPFRDPjtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBfdmFsaWRhdGVFbGVtZW50OiBWYWxpZGF0b3I8VCwgVEM+O1xuXG4gICAgLyoqXG4gICAgICogQ29uc3RydWN0cyBhIG5ldyB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkFycmF5VmFsaWRhdG9yIHwgQXJyYXlWYWxpZGF0b3J9LlxuICAgICAqIEBwYXJhbSBwYXJhbXMgLSBPcHRpb25hbCB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkFycmF5VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfCBpbml0IHBhcmFtc30gZm9yIHRoZVxuICAgICAqIG5ldyB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLkFycmF5VmFsaWRhdG9yIHwgQXJyYXlWYWxpZGF0b3J9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IEFycmF5VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXM8VCwgVEM+KSB7XG4gICAgICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlRWxlbWVudCA9IHBhcmFtcy52YWxpZGF0ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHBhcmFtcy5vcHRpb25zID8/IHt9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN0YXRpYyBtZXRob2Qgd2hpY2ggdmFsaWRhdGVzIHRoYXQgYSBzdXBwbGllZCBgdW5rbm93bmAgdmFsdWUgaXMgYSBgYXJyYXlgXG4gICAgICogYW5kIHRoYXQgZXZlcnkgZWxlbWVudCBvZiB0aGUgYXJyYXkgY2FuIGJlIHZhbGlkYXRlZCBieSB0aGUgc3VwcGxpZWQgYXJyYXlcbiAgICAgKiB2YWxpZGF0b3IuXG4gICAgICogQHBhcmFtIGZyb20gLSBUaGUgYHVua25vd25gIHZhbHVlIHRvIGJlIHRlc3RlZC5cbiAgICAgKiBAcmV0dXJucyBSZXR1cm5zIGB0cnVlYCBpZiBgZnJvbWAgaXMgYW4gYGFycmF5YCBvZiB2YWxpZCBlbGVtZW50cywgb3JcbiAgICAgKiB7QGxpbmsgRmFpbHVyZX0gd2l0aCBhbiBlcnJvciBtZXNzYWdlIGlmIG5vdC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgX3ZhbGlkYXRlPFQ+KGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IGJvb2xlYW4gfCBGYWlsdXJlPFQ+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZnJvbSkpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZWxlbSBvZiBmcm9tKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fdmFsaWRhdGVFbGVtZW50LnZhbGlkYXRlKGVsZW0sIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmlzU3VjY2VzcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWlsKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFpbDxUPihgXCIke2Zyb219XCI6IG5vdCBhbiBhcnJheWApO1xuICAgIH1cbn1cbiJdfQ==
|
package/validation/classes.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { ArrayValidator, ArrayValidatorConstructorParams } from './array';
|
|
1
2
|
export { StringValidator, StringValidatorConstructorParams } from './string';
|
|
2
3
|
export { BooleanValidator, BooleanValidatorConstructorParams } from './boolean';
|
|
3
4
|
export { NumberValidator, NumberValidatorConstructorParams } from './number';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../src/validation/classes.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,eAAe,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../src/validation/classes.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC"}
|
package/validation/classes.js
CHANGED
|
@@ -21,8 +21,10 @@
|
|
|
21
21
|
* SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.ObjectValidator = exports.NumberValidator = exports.BooleanValidator = exports.StringValidator = void 0;
|
|
24
|
+
exports.ObjectValidator = exports.NumberValidator = exports.BooleanValidator = exports.StringValidator = exports.ArrayValidator = void 0;
|
|
25
25
|
/* istanbul ignore file */
|
|
26
|
+
var array_1 = require("./array");
|
|
27
|
+
Object.defineProperty(exports, "ArrayValidator", { enumerable: true, get: function () { return array_1.ArrayValidator; } });
|
|
26
28
|
var string_1 = require("./string");
|
|
27
29
|
Object.defineProperty(exports, "StringValidator", { enumerable: true, get: function () { return string_1.StringValidator; } });
|
|
28
30
|
var boolean_1 = require("./boolean");
|
|
@@ -31,4 +33,4 @@ var number_1 = require("./number");
|
|
|
31
33
|
Object.defineProperty(exports, "NumberValidator", { enumerable: true, get: function () { return number_1.NumberValidator; } });
|
|
32
34
|
var object_1 = require("./object");
|
|
33
35
|
Object.defineProperty(exports, "ObjectValidator", { enumerable: true, get: function () { return object_1.ObjectValidator; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2NsYXNzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBRUgsMEJBQTBCO0FBRTFCLGlDQUEwRTtBQUFqRSx1R0FBQSxjQUFjLE9BQUE7QUFDdkIsbUNBQTZFO0FBQXBFLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixxQ0FBZ0Y7QUFBdkUsMkdBQUEsZ0JBQWdCLE9BQUE7QUFDekIsbUNBQTZFO0FBQXBFLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixtQ0FBc0g7QUFBNUYseUdBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMSBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBmaWxlICovXG5cbmV4cG9ydCB7IEFycmF5VmFsaWRhdG9yLCBBcnJheVZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9hcnJheSc7XG5leHBvcnQgeyBTdHJpbmdWYWxpZGF0b3IsIFN0cmluZ1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9zdHJpbmcnO1xuZXhwb3J0IHsgQm9vbGVhblZhbGlkYXRvciwgQm9vbGVhblZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9ib29sZWFuJztcbmV4cG9ydCB7IE51bWJlclZhbGlkYXRvciwgTnVtYmVyVmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL251bWJlcic7XG5leHBvcnQgeyBGaWVsZFZhbGlkYXRvcnMsIE9iamVjdFZhbGlkYXRvciwgT2JqZWN0VmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMsIE9iamVjdFZhbGlkYXRvck9wdGlvbnMgfSBmcm9tICcuL29iamVjdCc7XG4iXX0=
|