@kepler.gl/utils 3.0.0-alpha.1 → 3.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/dist/aggregate-utils.js +1 -21
- package/dist/arrow-data-container.d.ts +54 -0
- package/dist/arrow-data-container.js +360 -0
- package/dist/color-utils.d.ts +4 -0
- package/dist/color-utils.js +12 -21
- package/dist/data-container-interface.d.ts +18 -0
- package/dist/data-container-interface.js +0 -20
- package/dist/data-container-utils.d.ts +1 -0
- package/dist/data-container-utils.js +10 -22
- package/dist/data-row.js +7 -22
- package/dist/data-scale-utils.js +7 -22
- package/dist/data-utils.js +3 -21
- package/dist/dataset-utils.d.ts +2 -2
- package/dist/dataset-utils.js +15 -28
- package/dist/dom-to-image.js +7 -22
- package/dist/dom-utils.js +6 -22
- package/dist/effect-utils.d.ts +12 -2
- package/dist/effect-utils.js +122 -55
- package/dist/export-map-html.js +7 -23
- package/dist/export-utils.js +1 -21
- package/dist/filter-utils.js +6 -21
- package/dist/format.js +6 -22
- package/dist/gl-utils.js +1 -21
- package/dist/h3-utils.js +6 -22
- package/dist/index.d.ts +4 -3
- package/dist/index.js +43 -26
- package/dist/indexed-data-container.js +1 -21
- package/dist/locale-utils.js +1 -21
- package/dist/map-info-utils.js +6 -22
- package/dist/map-style-utils/mapbox-gl-style-editor.js +1 -21
- package/dist/map-style-utils/mapbox-utils.js +7 -22
- package/dist/map-utils.js +1 -21
- package/dist/mapbox-utils.js +7 -22
- package/dist/noop.js +3 -21
- package/dist/notifications-utils.js +1 -21
- package/dist/observe-dimensions.d.ts +1 -1
- package/dist/observe-dimensions.js +5 -25
- package/dist/plot.js +7 -22
- package/dist/projection-utils.js +6 -22
- package/dist/row-data-container.js +1 -21
- package/dist/searcher-utils.js +7 -22
- package/dist/split-map-utils.js +1 -21
- package/dist/time.js +6 -22
- package/dist/utils.d.ts +6 -0
- package/dist/utils.js +28 -22
- package/package.json +10 -9
package/dist/time.js
CHANGED
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
Object.defineProperty(exports, "__esModule", {
|
@@ -25,7 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
25
5
|
});
|
26
6
|
exports.getTimelineFromFilter = exports.getTimelineFromAnimationConfig = exports.SAMPLE_TIMELINE = exports.TIMELINE_MODES = void 0;
|
27
7
|
|
28
|
-
var _utils = require("./utils");
|
8
|
+
var _utils = require("./utils");
|
9
|
+
|
10
|
+
// SPDX-License-Identifier: MIT
|
11
|
+
// Copyright contributors to the kepler.gl project
|
12
|
+
var TIMELINE_MODES = {
|
29
13
|
inner: 'inner',
|
30
14
|
outer: 'outer'
|
31
15
|
};
|
@@ -102,4 +86,4 @@ var getTimelineFromFilter = function getTimelineFromFilter(filter) {
|
|
102
86
|
};
|
103
87
|
|
104
88
|
exports.getTimelineFromFilter = getTimelineFromFilter;
|
105
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
89
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90aW1lLnRzIl0sIm5hbWVzIjpbIlRJTUVMSU5FX01PREVTIiwiaW5uZXIiLCJvdXRlciIsIlNBTVBMRV9USU1FTElORSIsInZhbHVlIiwiZG9tYWluIiwic3BlZWQiLCJlbmFibGVJbnRlcmFjdGlvbiIsImlzQW5pbWF0aW5nIiwic3RlcCIsIm1vZGUiLCJnZXRUaW1lbGluZUZyb21BbmltYXRpb25Db25maWciLCJhbmltYXRpb25Db25maWciLCJjdXJyZW50VGltZSIsInRpbWVTdGVwcyIsImRlZmF1bHRUaW1lRm9ybWF0IiwidGltZUZvcm1hdCIsInRpbWV6b25lIiwibWFya3MiLCJnZXRUaW1lbGluZUZyb21GaWx0ZXIiLCJmaWx0ZXIiLCJhbmltYXRpb25XaW5kb3ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7QUFMQTtBQUNBO0FBTU8sSUFBTUEsY0FBYyxHQUFHO0FBQzVCQyxFQUFBQSxLQUFLLEVBQUUsT0FEcUI7QUFFNUJDLEVBQUFBLEtBQUssRUFBRTtBQUZxQixDQUF2Qjs7QUFLQSxJQUFNQyxlQUFlLEdBQUc7QUFDN0I7QUFDQUMsRUFBQUEsS0FBSyxFQUFFLENBQUMsQ0FBRCxFQUFJLEVBQUosQ0FGc0I7QUFFYjtBQUNoQkMsRUFBQUEsTUFBTSxFQUFFLENBQUMsQ0FBRCxFQUFJLEdBQUosQ0FIcUI7QUFHWDtBQUNsQkMsRUFBQUEsS0FBSyxFQUFFLENBSnNCO0FBSzdCQyxFQUFBQSxpQkFBaUIsRUFBRSxLQUxVO0FBS0g7QUFDMUJDLEVBQUFBLFdBQVcsRUFBRSxLQU5nQjtBQU83QkMsRUFBQUEsSUFBSSxFQUFFLElBUHVCO0FBUTdCO0FBQ0FDLEVBQUFBLElBQUksRUFBRVYsY0FBYyxDQUFDQyxLQVRRLENBVTdCOztBQVY2QixDQUF4Qjs7O0FBYUEsSUFBTVUsOEJBQThCLEdBQUcsU0FBakNBLDhCQUFpQyxDQUFDQyxlQUFELEVBQWdEO0FBQUEsTUFFMUZDLFdBRjBGLEdBVXhGRCxlQVZ3RixDQUUxRkMsV0FGMEY7QUFBQSxNQUcxRlIsTUFIMEYsR0FVeEZPLGVBVndGLENBRzFGUCxNQUgwRjtBQUFBLE1BSTFGQyxLQUowRixHQVV4Rk0sZUFWd0YsQ0FJMUZOLEtBSjBGO0FBQUEsTUFLMUZFLFdBTDBGLEdBVXhGSSxlQVZ3RixDQUsxRkosV0FMMEY7QUFBQSxNQU0xRk0sU0FOMEYsR0FVeEZGLGVBVndGLENBTTFGRSxTQU4wRjtBQUFBLE1BTzFGQyxpQkFQMEYsR0FVeEZILGVBVndGLENBTzFGRyxpQkFQMEY7QUFBQSxNQVExRkMsVUFSMEYsR0FVeEZKLGVBVndGLENBUTFGSSxVQVIwRjtBQUFBLE1BUzFGQyxRQVQwRixHQVV4RkwsZUFWd0YsQ0FTMUZLLFFBVDBGO0FBWTVGLFNBQU87QUFDTDtBQUNBYixJQUFBQSxLQUFLLEVBQUUsb0JBQVFTLFdBQVIsQ0FGRjtBQUdMTixJQUFBQSxpQkFBaUIsRUFBRSxJQUhkO0FBSUw7QUFDQUYsSUFBQUEsTUFBTSxFQUFOQSxNQUxLO0FBTUxDLElBQUFBLEtBQUssRUFBTEEsS0FOSztBQU9MRSxJQUFBQSxXQUFXLEVBQUVBLFdBQVcsSUFBSSxLQVB2QjtBQVFMTSxJQUFBQSxTQUFTLEVBQVRBLFNBUks7QUFTTEMsSUFBQUEsaUJBQWlCLEVBQWpCQSxpQkFUSztBQVVMQyxJQUFBQSxVQUFVLEVBQVZBLFVBVks7QUFXTEMsSUFBQUEsUUFBUSxFQUFSQSxRQVhLO0FBWUxDLElBQUFBLEtBQUssRUFBRTtBQVpGLEdBQVA7QUFjRCxDQTFCTTs7OztBQTRCQSxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXdCLENBQUNDLE1BQUQsRUFBdUM7QUFBQSxNQUV4RWhCLEtBRndFLEdBYXRFZ0IsTUFic0UsQ0FFeEVoQixLQUZ3RTtBQUFBLE1BR3hFQyxNQUh3RSxHQWF0RWUsTUFic0UsQ0FHeEVmLE1BSHdFO0FBQUEsTUFJeEVDLEtBSndFLEdBYXRFYyxNQWJzRSxDQUl4RWQsS0FKd0U7QUFBQSxNQUt4RUUsV0FMd0UsR0FhdEVZLE1BYnNFLENBS3hFWixXQUx3RTtBQUFBLE1BTXhFQyxJQU53RSxHQWF0RVcsTUFic0UsQ0FNeEVYLElBTndFO0FBQUEsTUFReEVLLFNBUndFLEdBYXRFTSxNQWJzRSxDQVF4RU4sU0FSd0U7QUFBQSxNQVN4RUMsaUJBVHdFLEdBYXRFSyxNQWJzRSxDQVN4RUwsaUJBVHdFO0FBQUEsTUFVeEVDLFVBVndFLEdBYXRFSSxNQWJzRSxDQVV4RUosVUFWd0U7QUFBQSxNQVd4RUMsUUFYd0UsR0FhdEVHLE1BYnNFLENBV3hFSCxRQVh3RTtBQUFBLE1BWXhFSSxlQVp3RSxHQWF0RUQsTUFic0UsQ0FZeEVDLGVBWndFO0FBZTFFLFNBQU87QUFDTGpCLElBQUFBLEtBQUssRUFBTEEsS0FESztBQUVMRyxJQUFBQSxpQkFBaUIsRUFBRSxJQUZkO0FBR0xGLElBQUFBLE1BQU0sRUFBTkEsTUFISztBQUlMQyxJQUFBQSxLQUFLLEVBQUxBLEtBSks7QUFLTEUsSUFBQUEsV0FBVyxFQUFYQSxXQUxLO0FBTUxDLElBQUFBLElBQUksRUFBSkEsSUFOSztBQU9MSyxJQUFBQSxTQUFTLEVBQVRBLFNBUEs7QUFRTEMsSUFBQUEsaUJBQWlCLEVBQWpCQSxpQkFSSztBQVNMQyxJQUFBQSxVQUFVLEVBQVZBLFVBVEs7QUFVTEMsSUFBQUEsUUFBUSxFQUFSQSxRQVZLO0FBV0xJLElBQUFBLGVBQWUsRUFBZkEsZUFYSztBQVlMSCxJQUFBQSxLQUFLLEVBQUU7QUFaRixHQUFQO0FBY0QsQ0E3Qk0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge0FuaW1hdGlvbkNvbmZpZywgVGltZWxpbmUsIFRpbWVSYW5nZUZpbHRlcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7dG9BcnJheX0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBUSU1FTElORV9NT0RFUyA9IHtcbiAgaW5uZXI6ICdpbm5lcicsXG4gIG91dGVyOiAnb3V0ZXInXG59O1xuXG5leHBvcnQgY29uc3QgU0FNUExFX1RJTUVMSU5FID0ge1xuICAvLyB2YWx1ZTogWzE1XSwgLy8gcmVwcmVzZW50IDE1JSBvZiB0aGUgYWxsIHdpZHRoXG4gIHZhbHVlOiBbNSwgMTVdLCAvLyByZXByZXNlbnQgc3RhcnQgYXQgNSUgYW5kIGVuZHMgYXQgMTUlXG4gIGRvbWFpbjogWzEsIDEwMF0sIC8vIHJlcHJlc2VudCB0aGUgdG90YWwgZG9tYWluXG4gIHNwZWVkOiAxLFxuICBlbmFibGVJbnRlcmFjdGlvbjogZmFsc2UsIC8vIGNhbiB1c2UgaW50ZXJhY3Qgd2l0aCB0aGlzIHRpbWVsaW5lXG4gIGlzQW5pbWF0aW5nOiBmYWxzZSxcbiAgc3RlcDogbnVsbCxcbiAgLy8gQHRvZG86IGdpdXNlcHBlIGNvdmVyVHlwZTogJ2lubmVyJyB8ICdvdXRlcidcbiAgbW9kZTogVElNRUxJTkVfTU9ERVMuaW5uZXJcbiAgLy8gIC4uLi5cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUaW1lbGluZUZyb21BbmltYXRpb25Db25maWcgPSAoYW5pbWF0aW9uQ29uZmlnOiBBbmltYXRpb25Db25maWcpOiBUaW1lbGluZSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjdXJyZW50VGltZSxcbiAgICBkb21haW4sXG4gICAgc3BlZWQsXG4gICAgaXNBbmltYXRpbmcsXG4gICAgdGltZVN0ZXBzLFxuICAgIGRlZmF1bHRUaW1lRm9ybWF0LFxuICAgIHRpbWVGb3JtYXQsXG4gICAgdGltZXpvbmVcbiAgfSA9IGFuaW1hdGlvbkNvbmZpZztcblxuICByZXR1cm4ge1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICB2YWx1ZTogdG9BcnJheShjdXJyZW50VGltZSksXG4gICAgZW5hYmxlSW50ZXJhY3Rpb246IHRydWUsXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGRvbWFpbixcbiAgICBzcGVlZCxcbiAgICBpc0FuaW1hdGluZzogaXNBbmltYXRpbmcgfHwgZmFsc2UsXG4gICAgdGltZVN0ZXBzLFxuICAgIGRlZmF1bHRUaW1lRm9ybWF0LFxuICAgIHRpbWVGb3JtYXQsXG4gICAgdGltZXpvbmUsXG4gICAgbWFya3M6IG51bGxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRUaW1lbGluZUZyb21GaWx0ZXIgPSAoZmlsdGVyOiBUaW1lUmFuZ2VGaWx0ZXIpOiBUaW1lbGluZSA9PiB7XG4gIGNvbnN0IHtcbiAgICB2YWx1ZSxcbiAgICBkb21haW4sXG4gICAgc3BlZWQsXG4gICAgaXNBbmltYXRpbmcsXG4gICAgc3RlcCxcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgdGltZVN0ZXBzLFxuICAgIGRlZmF1bHRUaW1lRm9ybWF0LFxuICAgIHRpbWVGb3JtYXQsXG4gICAgdGltZXpvbmUsXG4gICAgYW5pbWF0aW9uV2luZG93XG4gIH0gPSBmaWx0ZXI7XG5cbiAgcmV0dXJuIHtcbiAgICB2YWx1ZSxcbiAgICBlbmFibGVJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICBkb21haW4sXG4gICAgc3BlZWQsXG4gICAgaXNBbmltYXRpbmcsXG4gICAgc3RlcCxcbiAgICB0aW1lU3RlcHMsXG4gICAgZGVmYXVsdFRpbWVGb3JtYXQsXG4gICAgdGltZUZvcm1hdCxcbiAgICB0aW1lem9uZSxcbiAgICBhbmltYXRpb25XaW5kb3csXG4gICAgbWFya3M6IG51bGxcbiAgfTtcbn07XG4iXX0=
|
package/dist/utils.d.ts
CHANGED
@@ -4,6 +4,12 @@
|
|
4
4
|
* @returns {string} hash string
|
5
5
|
*/
|
6
6
|
export declare function generateHashId(count?: number): string;
|
7
|
+
/**
|
8
|
+
* Generate a hash string based on string
|
9
|
+
* @param str
|
10
|
+
* @returns
|
11
|
+
*/
|
12
|
+
export declare function generateHashIdFromString(str: string): string;
|
7
13
|
/**
|
8
14
|
* Detect chrome
|
9
15
|
* @returns {boolean} - yes or no
|
package/dist/utils.js
CHANGED
@@ -1,23 +1,3 @@
|
|
1
|
-
// Copyright (c) 2023 Uber Technologies, Inc.
|
2
|
-
//
|
3
|
-
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
-
// of this software and associated documentation files (the "Software"), to deal
|
5
|
-
// in the Software without restriction, including without limitation the rights
|
6
|
-
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
-
// copies of the Software, and to permit persons to whom the Software is
|
8
|
-
// furnished to do so, subject to the following conditions:
|
9
|
-
//
|
10
|
-
// The above copyright notice and this permission notice shall be included in
|
11
|
-
// all copies or substantial portions of the Software.
|
12
|
-
//
|
13
|
-
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
-
// THE SOFTWARE.
|
20
|
-
|
21
1
|
"use strict";
|
22
2
|
|
23
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
@@ -26,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
26
6
|
value: true
|
27
7
|
});
|
28
8
|
exports.generateHashId = generateHashId;
|
9
|
+
exports.generateHashIdFromString = generateHashIdFromString;
|
29
10
|
exports.isChrome = isChrome;
|
30
11
|
exports.capitalizeFirstLetter = capitalizeFirstLetter;
|
31
12
|
exports.camelToTitle = camelToTitle;
|
@@ -66,6 +47,31 @@ function generateHashId() {
|
|
66
47
|
var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;
|
67
48
|
return Math.random().toString(36).substr(count);
|
68
49
|
}
|
50
|
+
/**
|
51
|
+
* Generate a hash string based on string
|
52
|
+
* @param str
|
53
|
+
* @returns
|
54
|
+
*/
|
55
|
+
|
56
|
+
|
57
|
+
function generateHashIdFromString(str) {
|
58
|
+
// generate hash string based on string
|
59
|
+
var hash = 0;
|
60
|
+
var i;
|
61
|
+
var chr;
|
62
|
+
var len;
|
63
|
+
if (str.length === 0) return hash.toString();
|
64
|
+
|
65
|
+
for (i = 0, len = str.length; i < len; i++) {
|
66
|
+
chr = str.charCodeAt(i); // eslint-disable-next-line no-bitwise
|
67
|
+
|
68
|
+
hash = (hash << 5) - hash + chr; // eslint-disable-next-line no-bitwise
|
69
|
+
|
70
|
+
hash |= 0; // Convert to 32bit integer
|
71
|
+
}
|
72
|
+
|
73
|
+
return hash.toString(36);
|
74
|
+
}
|
69
75
|
/**
|
70
76
|
* Detect chrome
|
71
77
|
* @returns {boolean} - yes or no
|
@@ -255,7 +261,7 @@ function hasPortableWidth(breakPointValues) {
|
|
255
261
|
function isTest() {
|
256
262
|
var _process, _process$env;
|
257
263
|
|
258
|
-
return ((_process = process) === null || _process === void 0 ? void 0 : (_process$env = _process.env) === null || _process$env === void 0 ? void 0 : _process$env.NODE_ENV) === 'test';
|
264
|
+
return typeof process !== 'undefined' && ((_process = process) === null || _process === void 0 ? void 0 : (_process$env = _process.env) === null || _process$env === void 0 ? void 0 : _process$env.NODE_ENV) === 'test';
|
259
265
|
}
|
260
266
|
/**
|
261
267
|
* Filters an object by an arbitrary predicate
|
@@ -296,4 +302,4 @@ function arrayDifference(source) {
|
|
296
302
|
}, []);
|
297
303
|
};
|
298
304
|
}
|
299
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJnZW5lcmF0ZUhhc2hJZCIsImNvdW50IiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwic3Vic3RyIiwiaXNDaHJvbWUiLCJ3aW5kb3ciLCJjaHJvbWUiLCJ3ZWJzdG9yZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsInN0ciIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJjYW1lbFRvVGl0bGUiLCJicmVha1dvcmQiLCJyZXBsYWNlIiwiY2FtZWxpemUiLCJtYXRjaCIsImluZGV4IiwiTnVtYmVyIiwidG9Mb3dlckNhc2UiLCJ0b0FycmF5IiwiaXRlbSIsIkFycmF5IiwiaXNBcnJheSIsImluc2VydFZhbHVlIiwib2JqIiwia2V5IiwidmFsdWUiLCJsZW5ndGgiLCJpc09iamVjdCIsImlzUGxhaW5PYmplY3QiLCJPYmplY3QiLCJzZXRQYXRoIiwibmV4dCIsImhhc093blByb3BlcnR5Iiwic2V0IiwicGF0aCIsImdldEVycm9yIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJyYXlJbnNlcnQiLCJhcnIiLCJ2YWwiLCJoYXNNb2JpbGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJtb2JpbGVXaWR0aCIsIm1hdGNoTWVkaWEiLCJwYWxtIiwibWF0Y2hlcyIsImhhc1BvcnRhYmxlV2lkdGgiLCJkZXNrIiwiaXNUZXN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUiLCJwcmVkaWNhdGUiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjIiwiZW50cnkiLCJpc0Z1bmN0aW9uIiwiZnVuYyIsImZpbmRCeUlkIiwiaWQiLCJmaW5kIiwiYSIsImFycmF5RGlmZmVyZW5jZSIsInNvdXJjZSIsImNvbXBhcmUiLCJlbGVtZW50IiwiZm91bmRFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7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Q08sU0FBU0csZUFBVCxDQUFpREMsTUFBakQsRUFBcUY7QUFDMUYsU0FBTyxVQUFBQyxPQUFPO0FBQUEsV0FDWkQsTUFBTSxDQUFDVixNQUFQLENBQWMsVUFBQ0MsR0FBRCxFQUFNVyxPQUFOLEVBQWtCO0FBQzlCLFVBQU1DLFlBQVksR0FBR1IsUUFBUSxDQUFDTyxPQUFPLENBQUNOLEVBQVQsQ0FBUixDQUFxQkssT0FBckIsQ0FBckI7QUFDQSxhQUFPRSxZQUFZLGlEQUFPWixHQUFQLElBQVlZLFlBQVosS0FBNEJaLEdBQS9DO0FBQ0QsS0FIRCxFQUdHLEVBSEgsQ0FEWTtBQUFBLEdBQWQ7QUFLRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbi8qKlxuICogR2VuZXJhdGUgYSBoYXNoIHN0cmluZyBiYXNlZCBvbiBudW1iZXIgb2YgY2hhcmFjdGVyXG4gKiBAcGFyYW0ge251bWJlcn0gY291bnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGhhc2ggc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUhhc2hJZChjb3VudDogbnVtYmVyID0gNik6IHN0cmluZyB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpXG4gICAgLnRvU3RyaW5nKDM2KVxuICAgIC5zdWJzdHIoY291bnQpO1xufVxuXG4vKipcbiAqIERldGVjdCBjaHJvbWVcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHllcyBvciBub1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDaHJvbWUoKTogYm9vbGVhbiB7XG4gIC8vIENocm9tZSAxK1xuICByZXR1cm4gd2luZG93LmNocm9tZSAmJiB3aW5kb3cuY2hyb21lLndlYnN0b3JlO1xufVxuXG4vKipcbiAqIENhcGl0YWxpemUgZmlyc3QgbGV0dGVyIG9mIGEgc3RyaW5nXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHN0cikge1xuICByZXR1cm4gdHlwZW9mIHN0ciA9PT0gJ3N0cmluZycgPyBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSkgOiBzdHI7XG59XG5cbi8qKlxuICogQ29udmVydCBjYW1lbCBzdHlsZSBuYW1lcyB0byB0aXRsZVxuICogc3Ryb2tlQ29sb3IgLT4gU3Ryb2tlIENvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FtZWxUb1RpdGxlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgYnJlYWtXb3JkID0gc3RyLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xuICByZXR1cm4gY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGJyZWFrV29yZCk7XG59XG5cbi8qKlxuICogQ29udmVydCBuYW1lcyB0byBjYW1lbCBzdHlsZVxuICogU3Ryb2tlIENvbG9yIC0+IHN0cm9rZUNvbG9yXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5leHBvcnQgY29uc3QgY2FtZWxpemUgPSAoc3RyOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoLyg/Ol5cXHd8W0EtWl18XFxiXFx3fFxccyspL2csIChtYXRjaCwgaW5kZXgpID0+IHtcbiAgICBpZiAoTnVtYmVyKG1hdGNoKSA9PT0gMCkgcmV0dXJuICcnOyAvLyBvciBpZiAoL1xccysvLnRlc3QobWF0Y2gpKSBmb3Igd2hpdGUgc3BhY2VzXG4gICAgcmV0dXJuIGluZGV4ID09PSAwID8gbWF0Y2gudG9Mb3dlckNhc2UoKSA6IG1hdGNoLnRvVXBwZXJDYXNlKCk7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBDb252ZXJ0cyBub24tYXJyYXlzIHRvIGFycmF5cy4gIExlYXZlcyBhcnJheXMgYWxvbmUuICBDb252ZXJ0c1xuICogdW5kZWZpbmVkIHZhbHVlcyB0byBlbXB0eSBhcnJheXMgKFtdIGluc3RlYWQgb2YgW3VuZGVmaW5lZF0pLlxuICogT3RoZXJ3aXNlLCBqdXN0IHJldHVybnMgW2l0ZW1dIGZvciBub24tYXJyYXkgaXRlbXMuXG4gKlxuICogQHBhcmFtIHsqfSBpdGVtXG4gKiBAcmV0dXJucyB7YXJyYXl9IGJvb20hIG11Y2ggYXJyYXkuIHZlcnkgaW5kZXhlZC4gc28gdXNlZnVsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9BcnJheTxUPihpdGVtOiBUIHwgVFtdKTogVFtdIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcbiAgICByZXR1cm4gaXRlbTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3VuZGVmaW5lZCcgfHwgaXRlbSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHJldHVybiBbaXRlbV07XG59XG5cbi8qKlxuICogaW1tdXRhYmx5IGluc2VydCB2YWx1ZSB0byBhbiBBcnJheSBvciBPYmplY3RcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBvYmpcbiAqIEBwYXJhbSB7TnVtYmVyfFN0cmluZ30ga2V5XG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKiBAcmV0dXJucyB7QXJyYXl8T2JqZWN0fVxuICovXG5leHBvcnQgY29uc3QgaW5zZXJ0VmFsdWUgPSA8VCBleHRlbmRzIGFueVtdIHwgb2JqZWN0PihcbiAgb2JqOiBULFxuICBrZXk6IG51bWJlciB8IHN0cmluZyxcbiAgdmFsdWU6IGFueVxuKTogVCA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikgJiYgdHlwZW9mIGtleSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gWy4uLm9iai5zbGljZSgwLCBrZXkpLCB2YWx1ZSwgLi4ub2JqLnNsaWNlKGtleSArIDEsIG9iai5sZW5ndGgpXSBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIHsuLi5vYmosIFtrZXldOiB2YWx1ZX07XG59O1xuXG4vKipcbiAqIGNoZWNrIGlmIHZhbHVlIGlzIGEgbG9vc2Ugb2JqZWN0IGluY2x1ZGluZyBhIHBsYWluIG9iamVjdCwgYXJyYXksIGZ1bmN0aW9uXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdCh2YWx1ZSk6IGJvb2xlYW4ge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKTtcbn1cblxuLyoqXG4gKiB3aGV0aGVyIGlzIGFuIG9iamVjdFxuICogQHJldHVybnMge2Jvb2xlYW59IC0geWVzIG9yIG5vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BsYWluT2JqZWN0KG9iajogdW5rbm93bik6IG9iaiBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiBvYmogPT09IE9iamVjdChvYmopICYmIHR5cGVvZiBvYmogIT09ICdmdW5jdGlvbicgJiYgIUFycmF5LmlzQXJyYXkob2JqKTtcbn1cblxuY29uc3Qgc2V0UGF0aCA9IDxUIGV4dGVuZHMgYW55W10gfCBvYmplY3Q+KFxuICBba2V5LCAuLi5uZXh0XTogKHN0cmluZyB8IG51bWJlcilbXSxcbiAgdmFsdWU6IGFueSxcbiAgb2JqOiBvYmplY3QgfCBhbnlbXVxuKTogVCA9PiB7XG4gIC8vIGlzIE9iamVjdCBhbGxvd3MganMgb2JqZWN0LCBhcnJheSBhbmQgZnVuY3Rpb25cbiAgaWYgKCFpc09iamVjdChvYmopKSB7XG4gICAgcmV0dXJuIG9iaiBhcyBUO1xuICB9XG5cbiAgaWYgKG5leHQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGluc2VydFZhbHVlKG9iaiwga2V5LCB2YWx1ZSkgYXMgVDtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIGluc2VydFZhbHVlKG9iaiwga2V5LCBzZXRQYXRoKG5leHQsIHZhbHVlLCBvYmouaGFzT3duUHJvcGVydHkoa2V5KSA/IG9ialtrZXldIDoge30pKTtcbn07XG5cbi8qKlxuICogSW1tdXRhYmxlIHZlcnNpb24gb2YgXy5zZXRcbiAqIEBwYXJhbSB7QXJyYXk8U3RyaW5nfE51bWJlcj59IHBhdGhcbiAqIEBwYXJhbSB7Kn0gdmFsdWVcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmpcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCBjb25zdCBzZXQgPSA8VCBleHRlbmRzIGFueVtdIHwgb2JqZWN0PihwYXRoOiAoc3RyaW5nIHwgbnVtYmVyKVtdLCB2YWx1ZTogYW55LCBvYmo6IFQpOiBUID0+XG4gIG9iaiA9PT0gbnVsbCA/IG9iaiA6IHNldFBhdGgocGF0aCwgdmFsdWUsIG9iaik7XG5cbnR5cGUgRXJyb3JPYmplY3QgPSB7XG4gIGVycm9yPzogYW55O1xuICBlcnI/OiBhbnk7XG4gIG1lc3NhZ2U/OiBhbnk7XG59O1xuXG4vKipcbiAqIEdldCBlcnJvciBpbmZvcm1hdGlvbiBvZiB1bmtub3duIHR5cGVcbiAqIEV4dHJhY3RzIGFzIG11Y2ggaHVtYW4gcmVhZGFibGUgaW5mb3JtYXRpb24gYXMgcG9zc2libGVcbiAqIEVuc3VyZSByZXN1bHQgaXMgYW4gRXJyb3Igb2JqZWN0IHN1aXRhYmxlIGZvciB0aHJvdyBvciBwcm9taXNlIHJlamVjdGlvblxuICpcbiAqIEBwcml2YXRlXG4gKiBAcGFyYW0geyp9ICBlcnIgLSBVbmtub3duIGVycm9yXG4gKiBAcmV0dXJuIHtzdHJpbmd9IC0gaHVtYW4gcmVhZGFibGUgZXJyb3IgbXNnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFcnJvcihlcnI/OiBFcnJvciB8IEVycm9yT2JqZWN0IHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFlcnIpIHtcbiAgICByZXR1cm4gJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcbiAgfVxuXG4gIGlmICh0eXBlb2YgZXJyID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBlcnI7XG4gIH0gZWxzZSBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICByZXR1cm4gZXJyLm1lc3NhZ2U7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGVyciA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZXJyLmVycm9yXG4gICAgICA/IGdldEVycm9yKGVyci5lcnJvcilcbiAgICAgIDogZXJyLmVyclxuICAgICAgPyBnZXRFcnJvcihlcnIuZXJyKVxuICAgICAgOiBlcnIubWVzc2FnZVxuICAgICAgPyBnZXRFcnJvcihlcnIubWVzc2FnZSlcbiAgICAgIDogSlNPTi5zdHJpbmdpZnkoZXJyKTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcnJheUluc2VydDxUPihhcnI6IFRbXSwgaW5kZXg6IG51bWJlciwgdmFsOiBUKTogVFtdIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGFycikpIHtcbiAgICByZXR1cm4gYXJyO1xuICB9XG5cbiAgcmV0dXJuIFsuLi5hcnIuc2xpY2UoMCwgaW5kZXgpLCB2YWwsIC4uLmFyci5zbGljZShpbmRleCldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzTW9iaWxlV2lkdGgoYnJlYWtQb2ludFZhbHVlczoge3BhbG06IG51bWJlcjsgZGVzazogbnVtYmVyfSk6IGJvb2xlYW4ge1xuICBjb25zdCBtb2JpbGVXaWR0aCA9IHdpbmRvdy5tYXRjaE1lZGlhKGAobWF4LXdpZHRoOiAke2JyZWFrUG9pbnRWYWx1ZXMucGFsbX1weClgKTtcbiAgcmV0dXJuIG1vYmlsZVdpZHRoLm1hdGNoZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNQb3J0YWJsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXM6IHtwYWxtOiBudW1iZXI7IGRlc2s6IG51bWJlcn0pOiBib29sZWFuIHtcbiAgY29uc3QgbW9iaWxlV2lkdGggPSB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHticmVha1BvaW50VmFsdWVzLmRlc2t9cHgpYCk7XG4gIHJldHVybiBtb2JpbGVXaWR0aC5tYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUZXN0KCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcHJvY2Vzcz8uZW52Py5OT0RFX0VOViA9PT0gJ3Rlc3QnO1xufVxuXG4vKipcbiAqIEZpbHRlcnMgYW4gb2JqZWN0IGJ5IGFuIGFyYml0cmFyeSBwcmVkaWNhdGVcbiAqIFJldHVybnMgYSBuZXcgb2JqZWN0IGNvbnRhaW5pbmcgYWxsIGVsZW1lbnRzIHRoYXQgbWF0Y2ggdGhlIHByZWRpY2F0ZVxuICogQHBhcmFtIHtPYmplY3R9IG9iaiBPYmplY3QgdG8gYmUgZmlsdGVyZWRcbiAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSBQcmVkaWNhdGUgYnkgd2hpY2ggdGhlIG9iamVjdCB3aWxsIGJlIGZpbHRlcmVkXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUob2JqLCBwcmVkaWNhdGUpIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKFxuICAgIChhY2MsIGVudHJ5KSA9PiAocHJlZGljYXRlKGVudHJ5WzBdLCBlbnRyeVsxXSkgPyB7Li4uYWNjLCBbZW50cnlbMF1dOiBlbnRyeVsxXX0gOiBhY2MpLFxuICAgIHt9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmMpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEJ5SWQoaWQ6IHN0cmluZyk6IDxYIGV4dGVuZHMge2lkOiBzdHJpbmd9PihhcnI6IFhbXSkgPT4gWCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBhcnIgPT4gYXJyLmZpbmQoYSA9PiBhLmlkID09PSBpZCk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhcnJheSBkaWZmZXJlbmNlIGZyb21cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5RGlmZmVyZW5jZTxYIGV4dGVuZHMge2lkOiBzdHJpbmd9Pihzb3VyY2U6IFhbXSk6IChjb21wYXJlOiBYW10pID0+IFhbXSB7XG4gIHJldHVybiBjb21wYXJlID0+XG4gICAgc291cmNlLnJlZHVjZSgoYWNjLCBlbGVtZW50KSA9PiB7XG4gICAgICBjb25zdCBmb3VuZEVsZW1lbnQgPSBmaW5kQnlJZChlbGVtZW50LmlkKShjb21wYXJlKTtcbiAgICAgIHJldHVybiBmb3VuZEVsZW1lbnQgPyBbLi4uYWNjLCBmb3VuZEVsZW1lbnRdIDogYWNjO1xuICAgIH0sIFtdIGFzIFhbXSk7XG59XG4iXX0=
|
305
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlscy50cyJdLCJuYW1lcyI6WyJnZW5lcmF0ZUhhc2hJZCIsImNvdW50IiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwic3Vic3RyIiwiZ2VuZXJhdGVIYXNoSWRGcm9tU3RyaW5nIiwic3RyIiwiaGFzaCIsImkiLCJjaHIiLCJsZW4iLCJsZW5ndGgiLCJjaGFyQ29kZUF0IiwiaXNDaHJvbWUiLCJ3aW5kb3ciLCJjaHJvbWUiLCJ3ZWJzdG9yZSIsImNhcGl0YWxpemVGaXJzdExldHRlciIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJjYW1lbFRvVGl0bGUiLCJicmVha1dvcmQiLCJyZXBsYWNlIiwiY2FtZWxpemUiLCJtYXRjaCIsImluZGV4IiwiTnVtYmVyIiwidG9Mb3dlckNhc2UiLCJ0b0FycmF5IiwiaXRlbSIsIkFycmF5IiwiaXNBcnJheSIsImluc2VydFZhbHVlIiwib2JqIiwia2V5IiwidmFsdWUiLCJpc09iamVjdCIsImlzUGxhaW5PYmplY3QiLCJPYmplY3QiLCJzZXRQYXRoIiwibmV4dCIsImhhc093blByb3BlcnR5Iiwic2V0IiwicGF0aCIsImdldEVycm9yIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwiYXJyYXlJbnNlcnQiLCJhcnIiLCJ2YWwiLCJoYXNNb2JpbGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJtb2JpbGVXaWR0aCIsIm1hdGNoTWVkaWEiLCJwYWxtIiwibWF0Y2hlcyIsImhhc1BvcnRhYmxlV2lkdGgiLCJkZXNrIiwiaXNUZXN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZmlsdGVyT2JqZWN0QnlQcmVkaWNhdGUiLCJwcmVkaWNhdGUiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjIiwiZW50cnkiLCJpc0Z1bmN0aW9uIiwiZnVuYyIsImZpbmRCeUlkIiwiaWQiLCJmaW5kIiwiYSIsImFycmF5RGlmZmVyZW5jZSIsInNvdXJjZSIs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LEdBQS9DO0FBQ0QsS0FIRCxFQUdHLEVBSEgsQ0FEWTtBQUFBLEdBQWQ7QUFLRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbi8qKlxuICogR2VuZXJhdGUgYSBoYXNoIHN0cmluZyBiYXNlZCBvbiBudW1iZXIgb2YgY2hhcmFjdGVyXG4gKiBAcGFyYW0ge251bWJlcn0gY291bnRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IGhhc2ggc3RyaW5nXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUhhc2hJZChjb3VudDogbnVtYmVyID0gNik6IHN0cmluZyB7XG4gIHJldHVybiBNYXRoLnJhbmRvbSgpXG4gICAgLnRvU3RyaW5nKDM2KVxuICAgIC5zdWJzdHIoY291bnQpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgaGFzaCBzdHJpbmcgYmFzZWQgb24gc3RyaW5nXG4gKiBAcGFyYW0gc3RyXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVIYXNoSWRGcm9tU3RyaW5nKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gZ2VuZXJhdGUgaGFzaCBzdHJpbmcgYmFzZWQgb24gc3RyaW5nXG4gIGxldCBoYXNoID0gMDtcbiAgbGV0IGk7XG4gIGxldCBjaHI7XG4gIGxldCBsZW47XG4gIGlmIChzdHIubGVuZ3RoID09PSAwKSByZXR1cm4gaGFzaC50b1N0cmluZygpO1xuICBmb3IgKGkgPSAwLCBsZW4gPSBzdHIubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBjaHIgPSBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYml0d2lzZVxuICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBjaHI7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWJpdHdpc2VcbiAgICBoYXNoIHw9IDA7IC8vIENvbnZlcnQgdG8gMzJiaXQgaW50ZWdlclxuICB9XG4gIHJldHVybiBoYXNoLnRvU3RyaW5nKDM2KTtcbn1cblxuLyoqXG4gKiBEZXRlY3QgY2hyb21lXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB5ZXMgb3Igbm9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ2hyb21lKCk6IGJvb2xlYW4ge1xuICAvLyBDaHJvbWUgMStcbiAgcmV0dXJuIHdpbmRvdy5jaHJvbWUgJiYgd2luZG93LmNocm9tZS53ZWJzdG9yZTtcbn1cblxuLyoqXG4gKiBDYXBpdGFsaXplIGZpcnN0IGxldHRlciBvZiBhIHN0cmluZ1xuICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemVGaXJzdExldHRlcihzdHIpIHtcbiAgcmV0dXJuIHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnID8gc3RyLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgc3RyLnNsaWNlKDEpIDogc3RyO1xufVxuXG4vKipcbiAqIENvbnZlcnQgY2FtZWwgc3R5bGUgbmFtZXMgdG8gdGl0bGVcbiAqIHN0cm9rZUNvbG9yIC0+IFN0cm9rZSBDb2xvclxuICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsVG9UaXRsZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGJyZWFrV29yZCA9IHN0ci5yZXBsYWNlKC8oW0EtWl0pL2csICcgJDEnKTtcbiAgcmV0dXJuIGNhcGl0YWxpemVGaXJzdExldHRlcihicmVha1dvcmQpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgbmFtZXMgdG8gY2FtZWwgc3R5bGVcbiAqIFN0cm9rZSBDb2xvciAtPiBzdHJva2VDb2xvclxuICogQHBhcmFtIHtzdHJpbmd9IHN0clxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZXhwb3J0IGNvbnN0IGNhbWVsaXplID0gKHN0cjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oPzpeXFx3fFtBLVpdfFxcYlxcd3xcXHMrKS9nLCAobWF0Y2gsIGluZGV4KSA9PiB7XG4gICAgaWYgKE51bWJlcihtYXRjaCkgPT09IDApIHJldHVybiAnJzsgLy8gb3IgaWYgKC9cXHMrLy50ZXN0KG1hdGNoKSkgZm9yIHdoaXRlIHNwYWNlc1xuICAgIHJldHVybiBpbmRleCA9PT0gMCA/IG1hdGNoLnRvTG93ZXJDYXNlKCkgOiBtYXRjaC50b1VwcGVyQ2FzZSgpO1xuICB9KTtcbn07XG5cbi8qKlxuICogQ29udmVydHMgbm9uLWFycmF5cyB0byBhcnJheXMuICBMZWF2ZXMgYXJyYXlzIGFsb25lLiAgQ29udmVydHNcbiAqIHVuZGVmaW5lZCB2YWx1ZXMgdG8gZW1wdHkgYXJyYXlzIChbXSBpbnN0ZWFkIG9mIFt1bmRlZmluZWRdKS5cbiAqIE90aGVyd2lzZSwganVzdCByZXR1cm5zIFtpdGVtXSBmb3Igbm9uLWFycmF5IGl0ZW1zLlxuICpcbiAqIEBwYXJhbSB7Kn0gaXRlbVxuICogQHJldHVybnMge2FycmF5fSBib29tISBtdWNoIGFycmF5LiB2ZXJ5IGluZGV4ZWQuIHNvIHVzZWZ1bC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvQXJyYXk8VD4oaXRlbTogVCB8IFRbXSk6IFRbXSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGl0ZW0pKSB7XG4gICAgcmV0dXJuIGl0ZW07XG4gIH1cblxuICBpZiAodHlwZW9mIGl0ZW0gPT09ICd1bmRlZmluZWQnIHx8IGl0ZW0gPT09IG51bGwpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICByZXR1cm4gW2l0ZW1dO1xufVxuXG4vKipcbiAqIGltbXV0YWJseSBpbnNlcnQgdmFsdWUgdG8gYW4gQXJyYXkgb3IgT2JqZWN0XG4gKiBAcGFyYW0ge0FycmF5fE9iamVjdH0gb2JqXG4gKiBAcGFyYW0ge051bWJlcnxTdHJpbmd9IGtleVxuICogQHBhcmFtIHsqfSB2YWx1ZVxuICogQHJldHVybnMge0FycmF5fE9iamVjdH1cbiAqL1xuZXhwb3J0IGNvbnN0IGluc2VydFZhbHVlID0gPFQgZXh0ZW5kcyBhbnlbXSB8IG9iamVjdD4oXG4gIG9iajogVCxcbiAga2V5OiBudW1iZXIgfCBzdHJpbmcsXG4gIHZhbHVlOiBhbnlcbik6IFQgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShvYmopICYmIHR5cGVvZiBrZXkgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIFsuLi5vYmouc2xpY2UoMCwga2V5KSwgdmFsdWUsIC4uLm9iai5zbGljZShrZXkgKyAxLCBvYmoubGVuZ3RoKV0gYXMgVDtcbiAgfVxuXG4gIHJldHVybiB7Li4ub2JqLCBba2V5XTogdmFsdWV9O1xufTtcblxuLyoqXG4gKiBjaGVjayBpZiB2YWx1ZSBpcyBhIGxvb3NlIG9iamVjdCBpbmNsdWRpbmcgYSBwbGFpbiBvYmplY3QsIGFycmF5LCBmdW5jdGlvblxuICogQHBhcmFtIHsqfSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5cbi8qKlxuICogd2hldGhlciBpcyBhbiBvYmplY3RcbiAqIEByZXR1cm5zIHtib29sZWFufSAtIHllcyBvciBub1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmo6IHVua25vd24pOiBvYmogaXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICByZXR1cm4gb2JqID09PSBPYmplY3Qob2JqKSAmJiB0eXBlb2Ygb2JqICE9PSAnZnVuY3Rpb24nICYmICFBcnJheS5pc0FycmF5KG9iaik7XG59XG5cbmNvbnN0IHNldFBhdGggPSA8VCBleHRlbmRzIGFueVtdIHwgb2JqZWN0PihcbiAgW2tleSwgLi4ubmV4dF06IChzdHJpbmcgfCBudW1iZXIpW10sXG4gIHZhbHVlOiBhbnksXG4gIG9iajogb2JqZWN0IHwgYW55W11cbik6IFQgPT4ge1xuICAvLyBpcyBPYmplY3QgYWxsb3dzIGpzIG9iamVjdCwgYXJyYXkgYW5kIGZ1bmN0aW9uXG4gIGlmICghaXNPYmplY3Qob2JqKSkge1xuICAgIHJldHVybiBvYmogYXMgVDtcbiAgfVxuXG4gIGlmIChuZXh0Lmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBpbnNlcnRWYWx1ZShvYmosIGtleSwgdmFsdWUpIGFzIFQ7XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBpbnNlcnRWYWx1ZShvYmosIGtleSwgc2V0UGF0aChuZXh0LCB2YWx1ZSwgb2JqLmhhc093blByb3BlcnR5KGtleSkgPyBvYmpba2V5XSA6IHt9KSk7XG59O1xuXG4vKipcbiAqIEltbXV0YWJsZSB2ZXJzaW9uIG9mIF8uc2V0XG4gKiBAcGFyYW0ge0FycmF5PFN0cmluZ3xOdW1iZXI+fSBwYXRoXG4gKiBAcGFyYW0geyp9IHZhbHVlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG4vLyBAdHMtaWdub3JlXG5leHBvcnQgY29uc3Qgc2V0ID0gPFQgZXh0ZW5kcyBhbnlbXSB8IG9iamVjdD4ocGF0aDogKHN0cmluZyB8IG51bWJlcilbXSwgdmFsdWU6IGFueSwgb2JqOiBUKTogVCA9PlxuICBvYmogPT09IG51bGwgPyBvYmogOiBzZXRQYXRoKHBhdGgsIHZhbHVlLCBvYmopO1xuXG50eXBlIEVycm9yT2JqZWN0ID0ge1xuICBlcnJvcj86IGFueTtcbiAgZXJyPzogYW55O1xuICBtZXNzYWdlPzogYW55O1xufTtcblxuLyoqXG4gKiBHZXQgZXJyb3IgaW5mb3JtYXRpb24gb2YgdW5rbm93biB0eXBlXG4gKiBFeHRyYWN0cyBhcyBtdWNoIGh1bWFuIHJlYWRhYmxlIGluZm9ybWF0aW9uIGFzIHBvc3NpYmxlXG4gKiBFbnN1cmUgcmVzdWx0IGlzIGFuIEVycm9yIG9iamVjdCBzdWl0YWJsZSBmb3IgdGhyb3cgb3IgcHJvbWlzZSByZWplY3Rpb25cbiAqXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIHsqfSAgZXJyIC0gVW5rbm93biBlcnJvclxuICogQHJldHVybiB7c3RyaW5nfSAtIGh1bWFuIHJlYWRhYmxlIGVycm9yIG1zZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3IoZXJyPzogRXJyb3IgfCBFcnJvck9iamVjdCB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghZXJyKSB7XG4gICAgcmV0dXJuICdTb21ldGhpbmcgd2VudCB3cm9uZyc7XG4gIH1cblxuICBpZiAodHlwZW9mIGVyciA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZXJyO1xuICB9IGVsc2UgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIGVyci5tZXNzYWdlO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBlcnIgPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGVyci5lcnJvclxuICAgICAgPyBnZXRFcnJvcihlcnIuZXJyb3IpXG4gICAgICA6IGVyci5lcnJcbiAgICAgID8gZ2V0RXJyb3IoZXJyLmVycilcbiAgICAgIDogZXJyLm1lc3NhZ2VcbiAgICAgID8gZ2V0RXJyb3IoZXJyLm1lc3NhZ2UpXG4gICAgICA6IEpTT04uc3RyaW5naWZ5KGVycik7XG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlJbnNlcnQ8VD4oYXJyOiBUW10sIGluZGV4OiBudW1iZXIsIHZhbDogVCk6IFRbXSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShhcnIpKSB7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHJldHVybiBbLi4uYXJyLnNsaWNlKDAsIGluZGV4KSwgdmFsLCAuLi5hcnIuc2xpY2UoaW5kZXgpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc01vYmlsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXM6IHtwYWxtOiBudW1iZXI7IGRlc2s6IG51bWJlcn0pOiBib29sZWFuIHtcbiAgY29uc3QgbW9iaWxlV2lkdGggPSB3aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHticmVha1BvaW50VmFsdWVzLnBhbG19cHgpYCk7XG4gIHJldHVybiBtb2JpbGVXaWR0aC5tYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzOiB7cGFsbTogbnVtYmVyOyBkZXNrOiBudW1iZXJ9KTogYm9vbGVhbiB7XG4gIGNvbnN0IG1vYmlsZVdpZHRoID0gd2luZG93Lm1hdGNoTWVkaWEoYChtYXgtd2lkdGg6ICR7YnJlYWtQb2ludFZhbHVlcy5kZXNrfXB4KWApO1xuICByZXR1cm4gbW9iaWxlV2lkdGgubWF0Y2hlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVzdCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzPy5lbnY/Lk5PREVfRU5WID09PSAndGVzdCc7XG59XG5cbi8qKlxuICogRmlsdGVycyBhbiBvYmplY3QgYnkgYW4gYXJiaXRyYXJ5IHByZWRpY2F0ZVxuICogUmV0dXJucyBhIG5ldyBvYmplY3QgY29udGFpbmluZyBhbGwgZWxlbWVudHMgdGhhdCBtYXRjaCB0aGUgcHJlZGljYXRlXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqIE9iamVjdCB0byBiZSBmaWx0ZXJlZFxuICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIFByZWRpY2F0ZSBieSB3aGljaCB0aGUgb2JqZWN0IHdpbGwgYmUgZmlsdGVyZWRcbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPYmplY3RCeVByZWRpY2F0ZShvYmosIHByZWRpY2F0ZSkge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXG4gICAgKGFjYywgZW50cnkpID0+IChwcmVkaWNhdGUoZW50cnlbMF0sIGVudHJ5WzFdKSA/IHsuLi5hY2MsIFtlbnRyeVswXV06IGVudHJ5WzFdfSA6IGFjYyksXG4gICAge31cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24oZnVuYyk6IGJvb2xlYW4ge1xuICByZXR1cm4gdHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQnlJZChpZDogc3RyaW5nKTogPFggZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KGFycjogWFtdKSA9PiBYIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGFyciA9PiBhcnIuZmluZChhID0+IGEuaWQgPT09IGlkKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFycmF5IGRpZmZlcmVuY2UgZnJvbVxuICovXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlEaWZmZXJlbmNlPFggZXh0ZW5kcyB7aWQ6IHN0cmluZ30+KHNvdXJjZTogWFtdKTogKGNvbXBhcmU6IFhbXSkgPT4gWFtdIHtcbiAgcmV0dXJuIGNvbXBhcmUgPT5cbiAgICBzb3VyY2UucmVkdWNlKChhY2MsIGVsZW1lbnQpID0+IHtcbiAgICAgIGNvbnN0IGZvdW5kRWxlbWVudCA9IGZpbmRCeUlkKGVsZW1lbnQuaWQpKGNvbXBhcmUpO1xuICAgICAgcmV0dXJuIGZvdW5kRWxlbWVudCA/IFsuLi5hY2MsIGZvdW5kRWxlbWVudF0gOiBhY2M7XG4gICAgfSwgW10gYXMgWFtdKTtcbn1cbiJdfQ==
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kepler.gl/utils",
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
4
|
-
"version": "3.0.0
|
4
|
+
"version": "3.0.0",
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
6
6
|
"license": "MIT",
|
7
7
|
"main": "dist/index.js",
|
@@ -20,9 +20,9 @@
|
|
20
20
|
},
|
21
21
|
"scripts": {
|
22
22
|
"build": "rm -fr dist && babel src --out-dir dist --source-maps inline --extensions '.ts,.tsx,.js,.jsx' --ignore '**/*.d.ts'",
|
23
|
-
"build:umd": "webpack --config ./webpack/umd.js --progress --env.prod",
|
23
|
+
"build:umd": "NODE_OPTIONS=--openssl-legacy-provider webpack --config ./webpack/umd.js --progress --env.prod",
|
24
24
|
"build:types": "tsc --project ./tsconfig.production.json",
|
25
|
-
"prepublish": "
|
25
|
+
"prepublish": "babel-node ../../scripts/license-header/bin --license ../../FILE-HEADER && yarn build && yarn build:types",
|
26
26
|
"stab": "mkdir -p dist && touch dist/index.js"
|
27
27
|
},
|
28
28
|
"files": [
|
@@ -30,10 +30,11 @@
|
|
30
30
|
"umd"
|
31
31
|
],
|
32
32
|
"dependencies": {
|
33
|
-
"
|
34
|
-
"@kepler.gl/
|
35
|
-
"@
|
36
|
-
"@luma.gl/
|
33
|
+
"apache-arrow": "^13.0.0",
|
34
|
+
"@kepler.gl/constants": "3.0.0",
|
35
|
+
"@kepler.gl/types": "3.0.0",
|
36
|
+
"@luma.gl/constants": "^8.5.20",
|
37
|
+
"@luma.gl/core": "^8.5.20",
|
37
38
|
"@mapbox/geo-viewport": "^0.4.1",
|
38
39
|
"@turf/boolean-within": "^6.0.1",
|
39
40
|
"@turf/helpers": "^6.1.4",
|
@@ -66,14 +67,14 @@
|
|
66
67
|
"instrument": false
|
67
68
|
},
|
68
69
|
"engines": {
|
69
|
-
"node": ">=
|
70
|
+
"node": ">=18.18.2"
|
70
71
|
},
|
71
72
|
"maintainers": [
|
72
73
|
"Shan He <heshan0131@gmail.com>",
|
73
74
|
"Giuseppe Macri <gmacri@uber.com>"
|
74
75
|
],
|
75
76
|
"volta": {
|
76
|
-
"node": "
|
77
|
+
"node": "18.18.2",
|
77
78
|
"yarn": "1.22.17"
|
78
79
|
}
|
79
80
|
}
|