@kontur.candy/tools 2.160.0-linux-compat.1 → 2.160.0-linux-compat.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/distr/Common/AutoValidationUtils.js +9 -0
- package/distr/Common/CandyApiClient/CandyApiClient.js +29 -14
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithCache.js +8 -20
- package/distr/Common/CandyApiClient/DigestApiClient/Decorators/DigestApiClientWithDebouncedBatching.js +4 -9
- package/distr/Common/CandyApiClient/DigestApiClient/DigestApiClient.js +8 -27
- package/distr/Common/CandyApiClient/DigestApiClient/Fakes/FakeDigestApiClient.js +8 -10
- package/distr/Common/CandyApiClient/DigestApiClient/IDigestApiClient.js +1 -1
- package/distr/Common/CandyApiClient/DigestApiClient/TestDigestApiClient.js +4 -8
- package/distr/Common/CandyApiClient/FakeCandyApiClient.js +18 -14
- package/distr/Common/CandyApiClient/ICandyApiClient.js +1 -1
- package/distr/Common/CandyApiClient/Types/ChangeSet/ServerChangeSet.js +1 -1
- package/distr/Common/CandyApiClient/Types/DraftActions/FileProperties.js +1 -1
- package/distr/Common/EndPoints.js +4 -2
- package/distr/Common/FSPrinterClient/FSPrinterClient.js +136 -0
- package/distr/Common/FSPrinterClient/FakeFSPrinterClient.js +19 -0
- package/distr/Common/FSPrinterClient/IFSPrinterClient.js +44 -0
- package/distr/Common/ModelPath/AbsoluteModelFieldPath.js +53 -0
- package/distr/Common/ModelPath/BuildIterationSequence.js +20 -1
- package/distr/Common/ModelPath/Map/Map2.js +14 -1
- package/distr/Common/ModelPath/ModelPath.js +41 -69
- package/distr/Common/ModelPath/ModelPathHelper.js +23 -1
- package/distr/Common/ModelPath/Set/Set2.js +7 -2
- package/distr/Common/PicklistApiClient/IPicklistApiClient.js +6 -0
- package/distr/Common/PicklistApiClient/PicklistApiClient.js +30 -0
- package/distr/Common/PicklistApiClient/PicklistRequestV2Builder.js +34 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestFilterColumnSerializer.js +53 -0
- package/distr/Common/PicklistApiClient/Serializers/DigestLogicalFilterSerializer.js +37 -0
- package/distr/Common/PicklistApiClient/Types/PicklistRequestV2.js +6 -0
- package/distr/Common/PicklistApiClient/Types/PicklistResultV2.js +6 -0
- package/distr/Common/StringArrayKey.js +4 -2
- package/distr/Common/getRngSchemaFilename.js +10 -4
- package/distr/Tools/src/FormWebpackConfiguration/CacheAssetsPlugin.js +3 -2
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +1 -1
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js +182 -171
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.js.map +1 -1
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js +192 -192
- package/distr/Tools/src/StaticFilesForProductionResourcesDir/client.min.js.map +1 -1
- package/package.json +2 -2
- package/distr/Common/CandyApiClient/DigestApiClient/Types/DigestResponse.js +0 -6
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FSPrinterClient = void 0;
|
|
7
|
+
var _HttpClient = require("../HttpClient/HttpClient");
|
|
8
|
+
var _AuthenticationMode = require("../HttpClient/AuthenticationMode");
|
|
9
|
+
var _utils = require("../../Engine/src/Engine/utils");
|
|
10
|
+
var _TypingUtils = require("../TypingUtils");
|
|
11
|
+
var _IFSPrinterClient = require("./IFSPrinterClient");
|
|
12
|
+
class FSPrinterClient {
|
|
13
|
+
constructor(fetchImpl, baseUrl, resourceZone, authentication, candyApiDraftClient) {
|
|
14
|
+
this.httpClient = void 0;
|
|
15
|
+
this.candyApiDraftClient = void 0;
|
|
16
|
+
this.pullingDelay = 0;
|
|
17
|
+
this.factor = 0;
|
|
18
|
+
this.timeout = 0;
|
|
19
|
+
this.defaultPullingDelay = 1200;
|
|
20
|
+
this.defaultFactor = 2;
|
|
21
|
+
this.defaultTimeout = 1000 * 60 * 10;
|
|
22
|
+
this.taskResult = void 0;
|
|
23
|
+
this.httpClient = new _HttpClient.HttpClient(fetchImpl, baseUrl, (0, _AuthenticationMode.createAuthenticationProvider)(authentication), {
|
|
24
|
+
resourceZone: resourceZone
|
|
25
|
+
});
|
|
26
|
+
this.candyApiDraftClient = candyApiDraftClient;
|
|
27
|
+
}
|
|
28
|
+
async printRSV({
|
|
29
|
+
type,
|
|
30
|
+
resultType = _IFSPrinterClient.PrinterResultTypes.Excel
|
|
31
|
+
}, requestOptions) {
|
|
32
|
+
const options = {
|
|
33
|
+
resultType: resultType,
|
|
34
|
+
rsvInfo: {
|
|
35
|
+
type: type
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
await this.print(options, requestOptions);
|
|
39
|
+
}
|
|
40
|
+
async printByRules(options) {
|
|
41
|
+
const partialFufUri = await this.getPartialFufDriveUrl(options.rules);
|
|
42
|
+
await this.print({
|
|
43
|
+
fuf: {
|
|
44
|
+
driveUri: partialFufUri
|
|
45
|
+
},
|
|
46
|
+
resultType: _IFSPrinterClient.PrinterResultTypes.Pdf,
|
|
47
|
+
...options.options
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async print(options, requestOptions) {
|
|
51
|
+
var _this$taskResult;
|
|
52
|
+
this.applyRequestOptions(requestOptions);
|
|
53
|
+
const task = await this.createTask(options);
|
|
54
|
+
await this.runMonitoringTask(task.taskId);
|
|
55
|
+
const resultUrl = (_this$taskResult = this.taskResult) === null || _this$taskResult === void 0 ? void 0 : _this$taskResult.resultUri;
|
|
56
|
+
this.resetPrintResult();
|
|
57
|
+
this.downloadDocument(resultUrl);
|
|
58
|
+
}
|
|
59
|
+
async getPartialFufDriveUrl(rules) {
|
|
60
|
+
const downloadFufHref = await this.candyApiDraftClient.getPartialFuf(rules);
|
|
61
|
+
if (downloadFufHref && downloadFufHref !== null && downloadFufHref !== void 0 && downloadFufHref.ContentUri) {
|
|
62
|
+
return downloadFufHref === null || downloadFufHref === void 0 ? void 0 : downloadFufHref.ContentUri;
|
|
63
|
+
}
|
|
64
|
+
throw new Error("downloadFufHref is not defined");
|
|
65
|
+
}
|
|
66
|
+
async getFufDriveUrl() {
|
|
67
|
+
const downloadFufHref = await this.candyApiDraftClient.getFufWithAttachments();
|
|
68
|
+
if (downloadFufHref && downloadFufHref !== null && downloadFufHref !== void 0 && downloadFufHref.Fuf.ContentUri) {
|
|
69
|
+
return downloadFufHref === null || downloadFufHref === void 0 ? void 0 : downloadFufHref.Fuf.ContentUri;
|
|
70
|
+
}
|
|
71
|
+
throw new Error("downloadFufHref is not defined");
|
|
72
|
+
}
|
|
73
|
+
async runMonitoringTask(taskId) {
|
|
74
|
+
while (!((_this$taskResult2 = this.taskResult) !== null && _this$taskResult2 !== void 0 && _this$taskResult2.resultUri)) {
|
|
75
|
+
var _this$taskResult2, _this$taskResult3;
|
|
76
|
+
await this.checkTask(taskId);
|
|
77
|
+
if (!((_this$taskResult3 = this.taskResult) !== null && _this$taskResult3 !== void 0 && _this$taskResult3.resultUri)) {
|
|
78
|
+
await (0, _utils.delay)(this.pullingDelay);
|
|
79
|
+
this.pullingDelay *= this.factor;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async checkTask(taskId, hasExpired) {
|
|
84
|
+
const taskStatus = await this.httpClient.get(`v3/tasks/${taskId}`).json();
|
|
85
|
+
if (taskStatus.errorInfo) {
|
|
86
|
+
throw new Error(taskStatus.errorInfo.userMessage);
|
|
87
|
+
}
|
|
88
|
+
if (taskStatus.resultUri) {
|
|
89
|
+
this.taskResult = taskStatus;
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (this.timeout <= this.pullingDelay) {
|
|
93
|
+
throw new Error(`Timeout ${this.timeout / 60 / 1000} min for print file has expired`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async createTask(options) {
|
|
97
|
+
const fufUrl = await this.getFufDriveUrl();
|
|
98
|
+
const optionsWithFuf = this.appendFufUrlToOptions(options, fufUrl);
|
|
99
|
+
const optionsWithSender = this.appendSenderAppToOptions(optionsWithFuf);
|
|
100
|
+
const taskInfo = await this.httpClient.post("v3/tasks").withJsonBody(optionsWithSender).json();
|
|
101
|
+
return taskInfo;
|
|
102
|
+
}
|
|
103
|
+
downloadDocument(driveUrl) {
|
|
104
|
+
var _window$open;
|
|
105
|
+
if ((0, _TypingUtils.isNullOrEmpty)(driveUrl)) {
|
|
106
|
+
var _this$taskResult4;
|
|
107
|
+
(0, _TypingUtils.reject)(`Ссылка на печать документа пустая или undefined. Трейс печати: ${(_this$taskResult4 = this.taskResult) === null || _this$taskResult4 === void 0 ? void 0 : _this$taskResult4.taskId}`);
|
|
108
|
+
}
|
|
109
|
+
(_window$open = window.open(driveUrl, "_blank", "noopener,noreferrer")) === null || _window$open === void 0 ? void 0 : _window$open.focus();
|
|
110
|
+
}
|
|
111
|
+
appendFufUrlToOptions(options, fufUrl) {
|
|
112
|
+
return {
|
|
113
|
+
...options,
|
|
114
|
+
fuf: {
|
|
115
|
+
driveUri: fufUrl
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
appendSenderAppToOptions(options) {
|
|
120
|
+
return {
|
|
121
|
+
...options,
|
|
122
|
+
senderApp: "candy-front"
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
applyRequestOptions(requestOptions) {
|
|
126
|
+
var _requestOptions$pulli, _requestOptions$facto, _requestOptions$timeo;
|
|
127
|
+
this.pullingDelay = (_requestOptions$pulli = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.pullingDelay) !== null && _requestOptions$pulli !== void 0 ? _requestOptions$pulli : this.defaultPullingDelay;
|
|
128
|
+
this.factor = (_requestOptions$facto = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.factor) !== null && _requestOptions$facto !== void 0 ? _requestOptions$facto : this.defaultFactor;
|
|
129
|
+
this.timeout = (_requestOptions$timeo = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeout) !== null && _requestOptions$timeo !== void 0 ? _requestOptions$timeo : this.defaultTimeout;
|
|
130
|
+
}
|
|
131
|
+
resetPrintResult() {
|
|
132
|
+
this.taskResult = undefined;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.FSPrinterClient = FSPrinterClient;
|
|
136
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfSHR0cENsaWVudCIsInJlcXVpcmUiLCJfQXV0aGVudGljYXRpb25Nb2RlIiwiX3V0aWxzIiwiX1R5cGluZ1V0aWxzIiwiX0lGU1ByaW50ZXJDbGllbnQiLCJGU1ByaW50ZXJDbGllbnQiLCJjb25zdHJ1Y3RvciIsImZldGNoSW1wbCIsImJhc2VVcmwiLCJyZXNvdXJjZVpvbmUiLCJhdXRoZW50aWNhdGlvbiIsImNhbmR5QXBpRHJhZnRDbGllbnQiLCJodHRwQ2xpZW50IiwicHVsbGluZ0RlbGF5IiwiZmFjdG9yIiwidGltZW91dCIsImRlZmF1bHRQdWxsaW5nRGVsYXkiLCJkZWZhdWx0RmFjdG9yIiwiZGVmYXVsdFRpbWVvdXQiLCJ0YXNrUmVzdWx0IiwiSHR0cENsaWVudCIsImNyZWF0ZUF1dGhlbnRpY2F0aW9uUHJvdmlkZXIiLCJwcmludFJTViIsInR5cGUiLCJyZXN1bHRUeXBlIiwiUHJpbnRlclJlc3VsdFR5cGVzIiwiRXhjZWwiLCJyZXF1ZXN0T3B0aW9ucyIsIm9wdGlvbnMiLCJyc3ZJbmZvIiwicHJpbnQiLCJwcmludEJ5UnVsZXMiLCJwYXJ0aWFsRnVmVXJpIiwiZ2V0UGFydGlhbEZ1ZkRyaXZlVXJsIiwicnVsZXMiLCJmdWYiLCJkcml2ZVVyaSIsIlBkZiIsIl90aGlzJHRhc2tSZXN1bHQiLCJhcHBseVJlcXVlc3RPcHRpb25zIiwidGFzayIsImNyZWF0ZVRhc2siLCJydW5Nb25pdG9yaW5nVGFzayIsInRhc2tJZCIsInJlc3VsdFVybCIsInJlc3VsdFVyaSIsInJlc2V0UHJpbnRSZXN1bHQiLCJkb3dubG9hZERvY3VtZW50IiwiZG93bmxvYWRGdWZIcmVmIiwiZ2V0UGFydGlhbEZ1ZiIsIkNvbnRlbnRVcmkiLCJFcnJvciIsImdldEZ1ZkRyaXZlVXJsIiwiZ2V0RnVmV2l0aEF0dGFjaG1lbnRzIiwiRnVmIiwiX3RoaXMkdGFza1Jlc3VsdDIiLCJfdGhpcyR0YXNrUmVzdWx0MyIsImNoZWNrVGFzayIsImRlbGF5IiwiaGFzRXhwaXJlZCIsInRhc2tTdGF0dXMiLCJnZXQiLCJqc29uIiwiZXJyb3JJbmZvIiwidXNlck1lc3NhZ2UiLCJmdWZVcmwiLCJvcHRpb25zV2l0aEZ1ZiIsImFwcGVuZEZ1ZlVybFRvT3B0aW9ucyIsIm9wdGlvbnNXaXRoU2VuZGVyIiwiYXBwZW5kU2VuZGVyQXBwVG9PcHRpb25zIiwidGFza0luZm8iLCJwb3N0Iiwid2l0aEpzb25Cb2R5IiwiZHJpdmVVcmwiLCJfd2luZG93JG9wZW4iLCJpc051bGxPckVtcHR5IiwiX3RoaXMkdGFza1Jlc3VsdDQiLCJyZWplY3QiLCJ3aW5kb3ciLCJvcGVuIiwiZm9jdXMiLCJzZW5kZXJBcHAiLCJfcmVxdWVzdE9wdGlvbnMkcHVsbGkiLCJfcmVxdWVzdE9wdGlvbnMkZmFjdG8iLCJfcmVxdWVzdE9wdGlvbnMkdGltZW8iLCJ1bmRlZmluZWQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vQ29tbW9uL0ZTUHJpbnRlckNsaWVudC9GU1ByaW50ZXJDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmV0Y2ggfSBmcm9tIFwiLi4vSHR0cENsaWVudC9GZXRjaEltcGxlbWVudGF0aW9uL0ZldGNoXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgSUh0dHBDbGllbnQgfSBmcm9tIFwiLi4vSHR0cENsaWVudC9JSHR0cENsaWVudFwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25Nb2RlLCBjcmVhdGVBdXRoZW50aWNhdGlvblByb3ZpZGVyIH0gZnJvbSBcIi4uL0h0dHBDbGllbnQvQXV0aGVudGljYXRpb25Nb2RlXCI7XG5pbXBvcnQgeyBJQ2FuZHlBcGlEcmFmdENsaWVudCB9IGZyb20gXCIuLi9DYW5keUFwaUNsaWVudC9JQ2FuZHlBcGlDbGllbnRcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcIi4uLy4uL0VuZ2luZS9zcmMvRW5naW5lL3V0aWxzXCI7XG5pbXBvcnQgeyBpc051bGxPckVtcHR5LCByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcblxuaW1wb3J0IHtcbiAgICBGU1ByaW50ZXJUYXNrUmVzdWx0LFxuICAgIEZTUHJpbnRlclRhc2tTdGF0dXMsXG4gICAgSUZTUHJpbnRlckNsaWVudCxcbiAgICBQcmludGVyT3B0aW9ucyxcbiAgICBQcmludGVyUmVxdWVzdE9wdGlvbnMsXG4gICAgUHJpbnRlclJlc3VsdFR5cGVzLFxuICAgIFByaW50QnlSdWxlc09wdGlvbnMsXG4gICAgUlNWUHJpbnRlck9wdGlvbnMsXG59IGZyb20gXCIuL0lGU1ByaW50ZXJDbGllbnRcIjtcblxuZXhwb3J0IGNsYXNzIEZTUHJpbnRlckNsaWVudCBpbXBsZW1lbnRzIElGU1ByaW50ZXJDbGllbnQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSUh0dHBDbGllbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYW5keUFwaURyYWZ0Q2xpZW50OiBJQ2FuZHlBcGlEcmFmdENsaWVudDtcblxuICAgIHByaXZhdGUgcHVsbGluZ0RlbGF5OiBudW1iZXIgPSAwO1xuICAgIHByaXZhdGUgZmFjdG9yOiBudW1iZXIgPSAwO1xuICAgIHByaXZhdGUgdGltZW91dDogbnVtYmVyID0gMDtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFB1bGxpbmdEZWxheTogbnVtYmVyID0gMTIwMDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRGYWN0b3I6IG51bWJlciA9IDI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0VGltZW91dDogbnVtYmVyID0gMTAwMCAqIDYwICogMTA7XG5cbiAgICBwcml2YXRlIHRhc2tSZXN1bHQ6IEZTUHJpbnRlclRhc2tSZXN1bHQgfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIGZldGNoSW1wbDogRmV0Y2gsXG4gICAgICAgIGJhc2VVcmw6IHN0cmluZyxcbiAgICAgICAgcmVzb3VyY2Vab25lOiB1bmRlZmluZWQgfCBzdHJpbmcsXG4gICAgICAgIGF1dGhlbnRpY2F0aW9uOiB1bmRlZmluZWQgfCBBdXRoZW50aWNhdGlvbk1vZGUsXG4gICAgICAgIGNhbmR5QXBpRHJhZnRDbGllbnQ6IElDYW5keUFwaURyYWZ0Q2xpZW50XG4gICAgKSB7XG4gICAgICAgIHRoaXMuaHR0cENsaWVudCA9IG5ldyBIdHRwQ2xpZW50KGZldGNoSW1wbCwgYmFzZVVybCwgY3JlYXRlQXV0aGVudGljYXRpb25Qcm92aWRlcihhdXRoZW50aWNhdGlvbiksIHtcbiAgICAgICAgICAgIHJlc291cmNlWm9uZTogcmVzb3VyY2Vab25lLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jYW5keUFwaURyYWZ0Q2xpZW50ID0gY2FuZHlBcGlEcmFmdENsaWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJpbnRSU1YoXG4gICAgICAgIHsgdHlwZSwgcmVzdWx0VHlwZSA9IFByaW50ZXJSZXN1bHRUeXBlcy5FeGNlbCB9OiBSU1ZQcmludGVyT3B0aW9ucyxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM/OiBQcmludGVyUmVxdWVzdE9wdGlvbnNcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uczogUHJpbnRlck9wdGlvbnMgPSB7XG4gICAgICAgICAgICByZXN1bHRUeXBlOiByZXN1bHRUeXBlLFxuICAgICAgICAgICAgcnN2SW5mbzogeyB0eXBlOiB0eXBlIH0sXG4gICAgICAgIH07XG4gICAgICAgIGF3YWl0IHRoaXMucHJpbnQob3B0aW9ucywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcmludEJ5UnVsZXMob3B0aW9uczogUHJpbnRCeVJ1bGVzT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwYXJ0aWFsRnVmVXJpID0gYXdhaXQgdGhpcy5nZXRQYXJ0aWFsRnVmRHJpdmVVcmwob3B0aW9ucy5ydWxlcyk7XG4gICAgICAgIGF3YWl0IHRoaXMucHJpbnQoe1xuICAgICAgICAgICAgZnVmOiB7XG4gICAgICAgICAgICAgICAgZHJpdmVVcmk6IHBhcnRpYWxGdWZVcmksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdWx0VHlwZTogUHJpbnRlclJlc3VsdFR5cGVzLlBkZixcbiAgICAgICAgICAgIC4uLm9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByaW50KG9wdGlvbnM6IFByaW50ZXJPcHRpb25zLCByZXF1ZXN0T3B0aW9ucz86IFByaW50ZXJSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmFwcGx5UmVxdWVzdE9wdGlvbnMocmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICBjb25zdCB0YXNrID0gYXdhaXQgdGhpcy5jcmVhdGVUYXNrKG9wdGlvbnMpO1xuICAgICAgICBhd2FpdCB0aGlzLnJ1bk1vbml0b3JpbmdUYXNrKHRhc2sudGFza0lkKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VXJsID0gdGhpcy50YXNrUmVzdWx0Py5yZXN1bHRVcmk7XG4gICAgICAgIHRoaXMucmVzZXRQcmludFJlc3VsdCgpO1xuICAgICAgICB0aGlzLmRvd25sb2FkRG9jdW1lbnQocmVzdWx0VXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldFBhcnRpYWxGdWZEcml2ZVVybChydWxlczogc3RyaW5nW10pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICBjb25zdCBkb3dubG9hZEZ1ZkhyZWYgPSBhd2FpdCB0aGlzLmNhbmR5QXBpRHJhZnRDbGllbnQuZ2V0UGFydGlhbEZ1ZihydWxlcyk7XG4gICAgICAgIGlmIChkb3dubG9hZEZ1ZkhyZWYgJiYgZG93bmxvYWRGdWZIcmVmPy5Db250ZW50VXJpKSB7XG4gICAgICAgICAgICByZXR1cm4gZG93bmxvYWRGdWZIcmVmPy5Db250ZW50VXJpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImRvd25sb2FkRnVmSHJlZiBpcyBub3QgZGVmaW5lZFwiKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGdldEZ1ZkRyaXZlVXJsKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIGNvbnN0IGRvd25sb2FkRnVmSHJlZiA9IGF3YWl0IHRoaXMuY2FuZHlBcGlEcmFmdENsaWVudC5nZXRGdWZXaXRoQXR0YWNobWVudHMoKTtcbiAgICAgICAgaWYgKGRvd25sb2FkRnVmSHJlZiAmJiBkb3dubG9hZEZ1ZkhyZWY/LkZ1Zi5Db250ZW50VXJpKSB7XG4gICAgICAgICAgICByZXR1cm4gZG93bmxvYWRGdWZIcmVmPy5GdWYuQ29udGVudFVyaTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkb3dubG9hZEZ1ZkhyZWYgaXMgbm90IGRlZmluZWRcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBydW5Nb25pdG9yaW5nVGFzayh0YXNrSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB3aGlsZSAoIXRoaXMudGFza1Jlc3VsdD8ucmVzdWx0VXJpKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNoZWNrVGFzayh0YXNrSWQpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRhc2tSZXN1bHQ/LnJlc3VsdFVyaSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGRlbGF5KHRoaXMucHVsbGluZ0RlbGF5KTtcbiAgICAgICAgICAgICAgICB0aGlzLnB1bGxpbmdEZWxheSAqPSB0aGlzLmZhY3RvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tUYXNrKHRhc2tJZDogc3RyaW5nLCBoYXNFeHBpcmVkPzogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB0YXNrU3RhdHVzID0gYXdhaXQgdGhpcy5odHRwQ2xpZW50LmdldChgdjMvdGFza3MvJHt0YXNrSWR9YCkuanNvbjxGU1ByaW50ZXJUYXNrUmVzdWx0PigpO1xuICAgICAgICBpZiAodGFza1N0YXR1cy5lcnJvckluZm8pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0YXNrU3RhdHVzLmVycm9ySW5mby51c2VyTWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhc2tTdGF0dXMucmVzdWx0VXJpKSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tSZXN1bHQgPSB0YXNrU3RhdHVzO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRpbWVvdXQgPD0gdGhpcy5wdWxsaW5nRGVsYXkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGltZW91dCAke3RoaXMudGltZW91dCAvIDYwIC8gMTAwMH0gbWluIGZvciBwcmludCBmaWxlIGhhcyBleHBpcmVkYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNyZWF0ZVRhc2sob3B0aW9uczogUHJpbnRlck9wdGlvbnMpOiBQcm9taXNlPEZTUHJpbnRlclRhc2tTdGF0dXM+IHtcbiAgICAgICAgY29uc3QgZnVmVXJsID0gYXdhaXQgdGhpcy5nZXRGdWZEcml2ZVVybCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zV2l0aEZ1ZiA9IHRoaXMuYXBwZW5kRnVmVXJsVG9PcHRpb25zKG9wdGlvbnMsIGZ1ZlVybCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNXaXRoU2VuZGVyID0gdGhpcy5hcHBlbmRTZW5kZXJBcHBUb09wdGlvbnMob3B0aW9uc1dpdGhGdWYpO1xuICAgICAgICBjb25zdCB0YXNrSW5mbyA9IGF3YWl0IHRoaXMuaHR0cENsaWVudFxuICAgICAgICAgICAgLnBvc3QoXCJ2My90YXNrc1wiKVxuICAgICAgICAgICAgLndpdGhKc29uQm9keShvcHRpb25zV2l0aFNlbmRlcilcbiAgICAgICAgICAgIC5qc29uPEZTUHJpbnRlclRhc2tTdGF0dXM+KCk7XG4gICAgICAgIHJldHVybiB0YXNrSW5mbztcbiAgICB9XG5cbiAgICBwcml2YXRlIGRvd25sb2FkRG9jdW1lbnQoZHJpdmVVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoaXNOdWxsT3JFbXB0eShkcml2ZVVybCkpIHtcbiAgICAgICAgICAgIHJlamVjdChg0KHRgdGL0LvQutCwINC90LAg0L/QtdGH0LDRgtGMINC00L7QutGD0LzQtdC90YLQsCDQv9GD0YHRgtCw0Y8g0LjQu9C4IHVuZGVmaW5lZC4g0KLRgNC10LnRgSDQv9C10YfQsNGC0Lg6ICR7dGhpcy50YXNrUmVzdWx0Py50YXNrSWR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgd2luZG93Lm9wZW4oZHJpdmVVcmwsIFwiX2JsYW5rXCIsIFwibm9vcGVuZXIsbm9yZWZlcnJlclwiKT8uZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZEZ1ZlVybFRvT3B0aW9ucyhvcHRpb25zOiBQcmludGVyT3B0aW9ucywgZnVmVXJsOiBzdHJpbmcpOiBQcmludGVyT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7IC4uLm9wdGlvbnMsIGZ1ZjogeyBkcml2ZVVyaTogZnVmVXJsIH0gfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGVuZFNlbmRlckFwcFRvT3B0aW9ucyhvcHRpb25zOiBQcmludGVyT3B0aW9ucyk6IFByaW50ZXJPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9ucywgc2VuZGVyQXBwOiBcImNhbmR5LWZyb250XCIgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5UmVxdWVzdE9wdGlvbnMocmVxdWVzdE9wdGlvbnM/OiBQcmludGVyUmVxdWVzdE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5wdWxsaW5nRGVsYXkgPSByZXF1ZXN0T3B0aW9ucz8ucHVsbGluZ0RlbGF5ID8/IHRoaXMuZGVmYXVsdFB1bGxpbmdEZWxheTtcbiAgICAgICAgdGhpcy5mYWN0b3IgPSByZXF1ZXN0T3B0aW9ucz8uZmFjdG9yID8/IHRoaXMuZGVmYXVsdEZhY3RvcjtcbiAgICAgICAgdGhpcy50aW1lb3V0ID0gcmVxdWVzdE9wdGlvbnM/LnRpbWVvdXQgPz8gdGhpcy5kZWZhdWx0VGltZW91dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0UHJpbnRSZXN1bHQoKSB7XG4gICAgICAgIHRoaXMudGFza1Jlc3VsdCA9IHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxZQUFBLEdBQUFILE9BQUE7QUFFQSxJQUFBSSxpQkFBQSxHQUFBSixPQUFBO0FBV08sTUFBTUssZUFBZSxDQUE2QjtFQWM5Q0MsV0FBV0EsQ0FDZEMsU0FBZ0IsRUFDaEJDLE9BQWUsRUFDZkMsWUFBZ0MsRUFDaENDLGNBQThDLEVBQzlDQyxtQkFBeUMsRUFDM0M7SUFBQSxLQW5CZUMsVUFBVTtJQUFBLEtBQ1ZELG1CQUFtQjtJQUFBLEtBRTVCRSxZQUFZLEdBQVcsQ0FBQztJQUFBLEtBQ3hCQyxNQUFNLEdBQVcsQ0FBQztJQUFBLEtBQ2xCQyxPQUFPLEdBQVcsQ0FBQztJQUFBLEtBRVZDLG1CQUFtQixHQUFXLElBQUk7SUFBQSxLQUNsQ0MsYUFBYSxHQUFXLENBQUM7SUFBQSxLQUN6QkMsY0FBYyxHQUFXLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUFBLEtBRWhEQyxVQUFVO0lBU2QsSUFBSSxDQUFDUCxVQUFVLEdBQUcsSUFBSVEsc0JBQVUsQ0FBQ2IsU0FBUyxFQUFFQyxPQUFPLEVBQUUsSUFBQWEsZ0RBQTRCLEVBQUNYLGNBQWMsQ0FBQyxFQUFFO01BQy9GRCxZQUFZLEVBQUVBO0lBQ2xCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0UsbUJBQW1CLEdBQUdBLG1CQUFtQjtFQUNsRDtFQUVBLE1BQWFXLFFB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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.FakeFSPrinterClient = void 0;
|
|
7
|
+
class FakeFSPrinterClient {
|
|
8
|
+
async printRSV(rsvOptions, requestOptions) {
|
|
9
|
+
return Promise.resolve();
|
|
10
|
+
}
|
|
11
|
+
async print(options) {
|
|
12
|
+
return Promise.resolve();
|
|
13
|
+
}
|
|
14
|
+
printByRules(options) {
|
|
15
|
+
return Promise.resolve();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.FakeFSPrinterClient = FakeFSPrinterClient;
|
|
19
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGYWtlRlNQcmludGVyQ2xpZW50IiwicHJpbnRSU1YiLCJyc3ZPcHRpb25zIiwicmVxdWVzdE9wdGlvbnMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInByaW50Iiwib3B0aW9ucyIsInByaW50QnlSdWxlcyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vRlNQcmludGVyQ2xpZW50L0Zha2VGU1ByaW50ZXJDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJRlNQcmludGVyQ2xpZW50LFxuICAgIFByaW50ZXJPcHRpb25zLFxuICAgIFByaW50ZXJSZXF1ZXN0T3B0aW9ucyxcbiAgICBQcmludEJ5UnVsZXNPcHRpb25zLFxuICAgIFJTVlByaW50ZXJPcHRpb25zLFxufSBmcm9tIFwiLi9JRlNQcmludGVyQ2xpZW50XCI7XG5cbmV4cG9ydCBjbGFzcyBGYWtlRlNQcmludGVyQ2xpZW50IGltcGxlbWVudHMgSUZTUHJpbnRlckNsaWVudCB7XG4gICAgcHVibGljIGFzeW5jIHByaW50UlNWKHJzdk9wdGlvbnM6IFJTVlByaW50ZXJPcHRpb25zLCByZXF1ZXN0T3B0aW9ucz86IFByaW50ZXJSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByaW50KG9wdGlvbnM6IFByaW50ZXJPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJpbnRCeVJ1bGVzKG9wdGlvbnM6IFByaW50QnlSdWxlc09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUU8sTUFBTUEsbUJBQW1CLENBQTZCO0VBQ3pELE1BQWFDLFFBQVFBLENBQUNDLFVBQTZCLEVBQUVDLGNBQXNDLEVBQWlCO0lBQ3hHLE9BQU9DLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDNUI7RUFFQSxNQUFhQyxLQUFLQSxDQUFDQyxPQUF1QixFQUFpQjtJQUN2RCxPQUFPSCxPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDO0VBQzVCO0VBRU9HLFlBQVlBLENBQUNELE9BQTRCLEVBQWlCO0lBQzdELE9BQU9ILE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7RUFDNUI7QUFDSjtBQUFDSSxPQUFBLENBQUFULG1CQUFBLEdBQUFBLG1CQUFBIn0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RsvInfoTypes = exports.PrinterResultTypes = exports.NdflInfoTypes = exports.FSPrinterTaskResultStatus = exports.EfsInfoTypes = void 0;
|
|
7
|
+
let PrinterResultTypes = /*#__PURE__*/function (PrinterResultTypes) {
|
|
8
|
+
PrinterResultTypes[PrinterResultTypes["Unknown"] = 0] = "Unknown";
|
|
9
|
+
PrinterResultTypes[PrinterResultTypes["Pdf"] = 1] = "Pdf";
|
|
10
|
+
PrinterResultTypes[PrinterResultTypes["Excel"] = 2] = "Excel";
|
|
11
|
+
PrinterResultTypes[PrinterResultTypes["Html"] = 3] = "Html";
|
|
12
|
+
PrinterResultTypes[PrinterResultTypes["Xml"] = 4] = "Xml";
|
|
13
|
+
return PrinterResultTypes;
|
|
14
|
+
}({});
|
|
15
|
+
exports.PrinterResultTypes = PrinterResultTypes;
|
|
16
|
+
let RsvInfoTypes = /*#__PURE__*/function (RsvInfoTypes) {
|
|
17
|
+
RsvInfoTypes[RsvInfoTypes["PersonsSection321"] = 2] = "PersonsSection321";
|
|
18
|
+
RsvInfoTypes[RsvInfoTypes["PersonsSection321WithContracts"] = 3] = "PersonsSection321WithContracts";
|
|
19
|
+
RsvInfoTypes[RsvInfoTypes["PersonsSection322"] = 4] = "PersonsSection322";
|
|
20
|
+
RsvInfoTypes[RsvInfoTypes["PersonsRevise"] = 5] = "PersonsRevise";
|
|
21
|
+
return RsvInfoTypes;
|
|
22
|
+
}({});
|
|
23
|
+
exports.RsvInfoTypes = RsvInfoTypes;
|
|
24
|
+
let NdflInfoTypes = /*#__PURE__*/function (NdflInfoTypes) {
|
|
25
|
+
NdflInfoTypes[NdflInfoTypes["PersonsReport"] = 0] = "PersonsReport";
|
|
26
|
+
NdflInfoTypes[NdflInfoTypes["Registry"] = 1] = "Registry";
|
|
27
|
+
NdflInfoTypes[NdflInfoTypes["SummaryTable"] = 2] = "SummaryTable";
|
|
28
|
+
NdflInfoTypes[NdflInfoTypes["Revice"] = 3] = "Revice";
|
|
29
|
+
return NdflInfoTypes;
|
|
30
|
+
}({});
|
|
31
|
+
exports.NdflInfoTypes = NdflInfoTypes;
|
|
32
|
+
let EfsInfoTypes = /*#__PURE__*/function (EfsInfoTypes) {
|
|
33
|
+
EfsInfoTypes[EfsInfoTypes["PersonsReport"] = 0] = "PersonsReport";
|
|
34
|
+
return EfsInfoTypes;
|
|
35
|
+
}({});
|
|
36
|
+
exports.EfsInfoTypes = EfsInfoTypes;
|
|
37
|
+
let FSPrinterTaskResultStatus = /*#__PURE__*/function (FSPrinterTaskResultStatus) {
|
|
38
|
+
FSPrinterTaskResultStatus["Executing"] = "Executing";
|
|
39
|
+
FSPrinterTaskResultStatus["Failed"] = "Failed";
|
|
40
|
+
FSPrinterTaskResultStatus["Success"] = "Success";
|
|
41
|
+
return FSPrinterTaskResultStatus;
|
|
42
|
+
}({}); //Пока докинул что надо для печати РСВ, дальше можно расширять по мере надобности
|
|
43
|
+
exports.FSPrinterTaskResultStatus = FSPrinterTaskResultStatus;
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcmludGVyUmVzdWx0VHlwZXMiLCJleHBvcnRzIiwiUnN2SW5mb1R5cGVzIiwiTmRmbEluZm9UeXBlcyIsIkVmc0luZm9UeXBlcyIsIkZTUHJpbnRlclRhc2tSZXN1bHRTdGF0dXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vRlNQcmludGVyQ2xpZW50L0lGU1ByaW50ZXJDbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUHJpbnRlclJlc3VsdFR5cGVzIHtcbiAgICBVbmtub3duLFxuICAgIFBkZixcbiAgICBFeGNlbCxcbiAgICBIdG1sLFxuICAgIFhtbCxcbn1cblxuZXhwb3J0IGVudW0gUnN2SW5mb1R5cGVzIHtcbiAgICBQZXJzb25zU2VjdGlvbjMyMSA9IDIsXG4gICAgUGVyc29uc1NlY3Rpb24zMjFXaXRoQ29udHJhY3RzID0gMyxcbiAgICBQZXJzb25zU2VjdGlvbjMyMiA9IDQsXG4gICAgUGVyc29uc1JldmlzZSA9IDUsXG59XG5cbmV4cG9ydCBlbnVtIE5kZmxJbmZvVHlwZXMge1xuICAgIFBlcnNvbnNSZXBvcnQgPSAwLFxuICAgIFJlZ2lzdHJ5ID0gMSxcbiAgICBTdW1tYXJ5VGFibGUgPSAyLFxuICAgIFJldmljZSA9IDMsXG59XG5cbmV4cG9ydCBlbnVtIEVmc0luZm9UeXBlcyB7XG4gICAgUGVyc29uc1JlcG9ydCA9IDAsXG59XG5cbmV4cG9ydCBlbnVtIEZTUHJpbnRlclRhc2tSZXN1bHRTdGF0dXMge1xuICAgIEV4ZWN1dGluZyA9IFwiRXhlY3V0aW5nXCIsXG4gICAgRmFpbGVkID0gXCJGYWlsZWRcIixcbiAgICBTdWNjZXNzID0gXCJTdWNjZXNzXCIsXG59XG5cbi8v0J/QvtC60LAg0LTQvtC60LjQvdGD0Lsg0YfRgtC+INC90LDQtNC+INC00LvRjyDQv9C10YfQsNGC0Lgg0KDQodCSLCDQtNCw0LvRjNGI0LUg0LzQvtC20L3QviDRgNCw0YHRiNC40YDRj9GC0Ywg0L/QviDQvNC10YDQtSDQvdCw0LTQvtCx0L3QvtGB0YLQuFxuZXhwb3J0IGludGVyZmFjZSBQcmludGVyT3B0aW9ucyB7XG4gICAgcmVzdWx0VHlwZT86IFByaW50ZXJSZXN1bHRUeXBlcztcbiAgICBmdWY/OiB7IGRyaXZlVXJpOiBzdHJpbmcgfTtcbiAgICByc3ZJbmZvPzogeyB0eXBlOiBSc3ZJbmZvVHlwZXMgfTtcbiAgICBuZGZsSW5mbz86IHsgdHlwZTogTmRmbEluZm9UeXBlcyB9O1xuICAgIGVmc0luZm8/OiB7IHR5cGU6IEVmc0luZm9UeXBlcyB9O1xuICAgIHNlbmRlckFwcD86IFwiY2FuZHktZnJvbnRcIjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSU1ZQcmludGVyT3B0aW9ucyB7XG4gICAgcmVzdWx0VHlwZT86IFByaW50ZXJSZXN1bHRUeXBlcztcbiAgICB0eXBlOiBSc3ZJbmZvVHlwZXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpbnRCeVJ1bGVzT3B0aW9ucyB7XG4gICAgcnVsZXM6IHN0cmluZ1tdO1xuICAgIG9wdGlvbnM6IFBpY2s8UHJpbnRlck9wdGlvbnMsIFwicnN2SW5mb1wiIHwgXCJuZGZsSW5mb1wiIHwgXCJlZnNJbmZvXCI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaW50ZXJSZXF1ZXN0T3B0aW9ucyB7XG4gICAgdGltZW91dD86IG51bWJlcjtcbiAgICBwdWxsaW5nRGVsYXk/OiBudW1iZXI7XG4gICAgZmFjdG9yPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGU1ByaW50ZXJDbGllbnQge1xuICAgIHByaW50KG9wdGlvbnM6IFByaW50ZXJPcHRpb25zLCByZXF1ZXN0T3B0aW9ucz86IFByaW50ZXJSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgcHJpbnRCeVJ1bGVzKG9wdGlvbnM6IFByaW50QnlSdWxlc09wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHByaW50UlNWKHJzdk9wdGlvbnM6IFJTVlByaW50ZXJPcHRpb25zLCByZXF1ZXN0T3B0aW9ucz86IFByaW50ZXJSZXF1ZXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRlNQcmludGVyVGFza1Jlc3VsdCBleHRlbmRzIEZTUHJpbnRlclRhc2tTdGF0dXMge1xuICAgIHJlc3VsdFVyaT86IHN0cmluZztcbiAgICByZXN1bHRNaW1lVHlwZT86IHN0cmluZztcbiAgICBpc1Jlc3VsdFBhcnRpYWw/OiBib29sZWFuO1xuICAgIGVycm9ySW5mbz86IHtcbiAgICAgICAgZXJyb3JDb2RlOiBzdHJpbmc7XG4gICAgICAgIGh0dHBTdGF0dXNDb2RlOiBudW1iZXI7XG4gICAgICAgIHN5c3RlbU1lc3NhZ2U6IHN0cmluZztcbiAgICAgICAgdXNlck1lc3NhZ2U6IHN0cmluZztcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZTUHJpbnRlclRhc2tTdGF0dXMge1xuICAgIHRhc2tJZDogc3RyaW5nO1xuICAgIHN0YXR1czogRlNQcmludGVyVGFza1Jlc3VsdFN0YXR1cztcbiAgICBwcm9ncmVzczogbnVtYmVyO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7SUFBWUEsa0JBQWtCLDBCQUFsQkEsa0JBQWtCO0VBQWxCQSxrQkFBa0IsQ0FBbEJBLGtCQUFrQjtFQUFsQkEsa0JBQWtCLENBQWxCQSxrQkFBa0I7RUFBbEJBLGtCQUFrQixDQUFsQkEsa0JBQWtCO0VBQWxCQSxrQkFBa0IsQ0FBbEJBLGtCQUFrQjtFQUFsQkEsa0JBQWtCLENBQWxCQSxrQkFBa0I7RUFBQSxPQUFsQkEsa0JBQWtCO0FBQUE7QUFBQUMsT0FBQSxDQUFBRCxrQkFBQSxHQUFBQSxrQkFBQTtBQUFBLElBUWxCRSxZQUFZLDBCQUFaQSxZQUFZO0VBQVpBLFlBQVksQ0FBWkEsWUFBWTtFQUFaQSxZQUFZLENBQVpBLFlBQVk7RUFBWkEsWUFBWSxDQUFaQSxZQUFZO0VBQVpBLFlBQVksQ0FBWkEsWUFBWTtFQUFBLE9BQVpBLFlBQVk7QUFBQTtBQUFBRCxPQUFBLENBQUFDLFlBQUEsR0FBQUEsWUFBQTtBQUFBLElBT1pDLGFBQWEsMEJBQWJBLGFBQWE7RUFBYkEsYUFBYSxDQUFiQSxhQUFhO0VBQWJBLGFBQWEsQ0FBYkEsYUFBYTtFQUFiQSxhQUFhLENBQWJBLGFBQWE7RUFBYkEsYUFBYSxDQUFiQSxhQUFhO0VBQUEsT0FBYkEsYUFBYTtBQUFBO0FBQUFGLE9BQUEsQ0FBQUUsYUFBQSxHQUFBQSxhQUFBO0FBQUEsSUFPYkMsWUFBWSwwQkFBWkEsWUFBWTtFQUFaQSxZQUFZLENBQVpBLFlBQVk7RUFBQSxPQUFaQSxZQUFZO0FBQUE7QUFBQUgsT0FBQSxDQUFBRyxZQUFBLEdBQUFBLFlBQUE7QUFBQSxJQUlaQyx5QkFBeUIsMEJBQXpCQSx5QkFBeUI7RUFBekJBLHlCQUF5QjtFQUF6QkEseUJBQXlCO0VBQXpCQSx5QkFBeUI7RUFBQSxPQUF6QkEseUJBQXlCO0FBQUEsT0FNckM7QUFBQUosT0FBQSxDQUFBSSx5QkFBQSxHQUFBQSx5QkFBQSJ9
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AbsoluteModelFieldPath = void 0;
|
|
7
|
+
var _CoreTypes = require("../../Engine/src/Engine/Core/CoreTypes");
|
|
8
|
+
var _hashUtils = require("../hashUtils");
|
|
9
|
+
var _TypingUtils = require("../TypingUtils");
|
|
10
|
+
var _IterableUtils = require("../IterableUtils");
|
|
11
|
+
var _EachCurrentCollision = require("./EachCurrentCollision");
|
|
12
|
+
var _ModelPath = require("./ModelPath");
|
|
13
|
+
class AbsoluteModelFieldPath {
|
|
14
|
+
constructor(path, fieldName) {
|
|
15
|
+
this.path = void 0;
|
|
16
|
+
this.field = void 0;
|
|
17
|
+
this.path = path;
|
|
18
|
+
this.field = fieldName;
|
|
19
|
+
}
|
|
20
|
+
getHash() {
|
|
21
|
+
return this.path.getHash() + (0, _hashUtils.getSimpleHashByString)(this.field);
|
|
22
|
+
}
|
|
23
|
+
isEquals(modelPath, eachCurrentCollision = _EachCurrentCollision.EachCurrentCollision.AreSame) {
|
|
24
|
+
return this.path.isEquals(modelPath.path, eachCurrentCollision) && this.field === modelPath.field;
|
|
25
|
+
}
|
|
26
|
+
static createFromString(pathWithFieldName, defaultFieldName) {
|
|
27
|
+
return this.createFrom(pathWithFieldName, path => (0, _ModelPath.createAbsolute)(path), defaultFieldName);
|
|
28
|
+
}
|
|
29
|
+
static createFromMask(pathWithFieldName, multiplicitySymbol, defaultFieldName) {
|
|
30
|
+
return this.createFrom(pathWithFieldName, path => (0, _ModelPath.createAbsoluteFromMask)(path, multiplicitySymbol), defaultFieldName);
|
|
31
|
+
}
|
|
32
|
+
static createFrom(pathWithFieldName, modelPathFactory, defaultFieldName = "value") {
|
|
33
|
+
var _match$, _ref;
|
|
34
|
+
const match = AbsoluteModelFieldPath.fieldExtractRegex.exec(pathWithFieldName);
|
|
35
|
+
const path = match != undefined ? (_match$ = match[1]) !== null && _match$ !== void 0 ? _match$ : (0, _TypingUtils.reject)() : pathWithFieldName;
|
|
36
|
+
const field = match != undefined ? (_ref = match[2]) !== null && _ref !== void 0 ? _ref : (0, _TypingUtils.reject)() : defaultFieldName;
|
|
37
|
+
return new AbsoluteModelFieldPath(modelPathFactory(path), field);
|
|
38
|
+
}
|
|
39
|
+
toString() {
|
|
40
|
+
return `${this.path.toLegacyPath()}.${this.field}`;
|
|
41
|
+
}
|
|
42
|
+
toLegacyPath() {
|
|
43
|
+
const lastToken = _IterableUtils.IterUtils.last(this.path.getPathParts());
|
|
44
|
+
const isLastTokenAnInstanceOrMultiplicity = _ModelPath.PathTokens.isInstanceTokenOrInstancesSpec(lastToken) || _ModelPath.PathTokens.isMultiToken(lastToken);
|
|
45
|
+
const slashIfRequired = isLastTokenAnInstanceOrMultiplicity && (0, _TypingUtils.isNotNullOrEmpty)(this.field) ? "/" : "";
|
|
46
|
+
const dotIfRequired = (0, _TypingUtils.isNotNullOrEmpty)(this.field) ? "." : "";
|
|
47
|
+
return `${this.path.toLegacyPath()}${slashIfRequired}${dotIfRequired}${this.field}`;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.AbsoluteModelFieldPath = AbsoluteModelFieldPath;
|
|
51
|
+
AbsoluteModelFieldPath.extraFieldNames = ["\\$errorCount", "\\$warningCount"];
|
|
52
|
+
AbsoluteModelFieldPath.fieldExtractRegex = new RegExp(`^(.*)\\.(${AbsoluteModelFieldPath.extraFieldNames.concat((0, _CoreTypes.getKnownViewModelFieldNames)()).join("|")})$`);
|
|
53
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ29yZVR5cGVzIiwicmVxdWlyZSIsIl9oYXNoVXRpbHMiLCJfVHlwaW5nVXRpbHMiLCJfSXRlcmFibGVVdGlscyIsIl9FYWNoQ3VycmVudENvbGxpc2lvbiIsIl9Nb2RlbFBhdGgiLCJBYnNvbHV0ZU1vZGVsRmllbGRQYXRoIiwiY29uc3RydWN0b3IiLCJwYXRoIiwiZmllbGROYW1lIiwiZmllbGQiLCJnZXRIYXNoIiwiZ2V0U2ltcGxlSGFzaEJ5U3RyaW5nIiwiaXNFcXVhbHMiLCJtb2RlbFBhdGgiLCJlYWNoQ3VycmVudENvbGxpc2lvbiIsIkVhY2hDdXJyZW50Q29sbGlzaW9uIiwiQXJlU2FtZSIsImNyZWF0ZUZyb21TdHJpbmciLCJwYXRoV2l0aEZpZWxkTmFtZSIsImRlZmF1bHRGaWVsZE5hbWUiLCJjcmVhdGVGcm9tIiwiY3JlYXRlQWJzb2x1dGUiLCJjcmVhdGVGcm9tTWFzayIsIm11bHRpcGxpY2l0eVN5bWJvbCIsImNyZWF0ZUFic29sdXRlRnJvbU1hc2siLCJtb2RlbFBhdGhGYWN0b3J5IiwiX21hdGNoJCIsIl9yZWYiLCJtYXRjaCIsImZpZWxkRXh0cmFjdFJlZ2V4IiwiZXhlYyIsInVuZGVmaW5lZCIsInJlamVjdCIsInRvU3RyaW5nIiwidG9MZWdhY3lQYXRoIiwibGFzdFRva2VuIiwiSXRlclV0aWxzIiwibGFzdCIsImdldFBhdGhQYXJ0cyIsImlzTGFzdFRva2VuQW5JbnN0YW5jZU9yTXVsdGlwbGljaXR5IiwiUGF0aFRva2VucyIsImlzSW5zdGFuY2VUb2tlbk9ySW5zdGFuY2VzU3BlYyIsImlzTXVsdGlUb2tlbiIsInNsYXNoSWZSZXF1aXJlZCIsImlzTm90TnVsbE9yRW1wdHkiLCJkb3RJZlJlcXVpcmVkIiwiZXhwb3J0cyIsImV4dHJhRmllbGROYW1lcyIsIlJlZ0V4cCIsImNvbmNhdCIsImdldEtub3duVmlld01vZGVsRmllbGROYW1lcyIsImpvaW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vTW9kZWxQYXRoL0Fic29sdXRlTW9kZWxGaWVsZFBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0S25vd25WaWV3TW9kZWxGaWVsZE5hbWVzLCBWaWV3TW9kZWxGaWVsZE5hbWUgfSBmcm9tIFwiLi4vLi4vRW5naW5lL3NyYy9FbmdpbmUvQ29yZS9Db3JlVHlwZXNcIjtcbmltcG9ydCB7IGdldFNpbXBsZUhhc2hCeVN0cmluZyB9IGZyb20gXCIuLi9oYXNoVXRpbHNcIjtcbmltcG9ydCB7IGlzTm90TnVsbE9yRW1wdHksIHJlamVjdCB9IGZyb20gXCIuLi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgSXRlclV0aWxzIH0gZnJvbSBcIi4uL0l0ZXJhYmxlVXRpbHNcIjtcblxuaW1wb3J0IHsgRWFjaEN1cnJlbnRDb2xsaXNpb24gfSBmcm9tIFwiLi9FYWNoQ3VycmVudENvbGxpc2lvblwiO1xuaW1wb3J0IHsgSUVxdWF0YWJsZSB9IGZyb20gXCIuL0lFcXVhdGFibGVcIjtcbmltcG9ydCB7XG4gICAgQWJzb2x1dGVNb2RlbFBhdGgsXG4gICAgQWJzb2x1dGVSZXNvbHZlZE1vZGVsUGF0aCxcbiAgICBjcmVhdGVBYnNvbHV0ZSxcbiAgICBjcmVhdGVBYnNvbHV0ZUZyb21NYXNrLFxuICAgIFBhdGhUb2tlbixcbiAgICBQYXRoVG9rZW5zLFxufSBmcm9tIFwiLi9Nb2RlbFBhdGhcIjtcblxuZXhwb3J0IHR5cGUgVmlld01vZGVsRmllbGROYW1lV2l0aEN1c3RvbUZpZWxkcyA9IFZpZXdNb2RlbEZpZWxkTmFtZSB8IFwiJGVycm9yQ291bnRcIiB8IFwiJHdhcm5pbmdDb3VudFwiIHwgXCJcIjtcblxuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kZWxGaWVsZFBhdGggaW1wbGVtZW50cyBJRXF1YXRhYmxlPEFic29sdXRlTW9kZWxGaWVsZFBhdGg+IHtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBleHRyYUZpZWxkTmFtZXMgPSBbXCJcXFxcJGVycm9yQ291bnRcIiwgXCJcXFxcJHdhcm5pbmdDb3VudFwiXTtcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBmaWVsZEV4dHJhY3RSZWdleCA9IG5ldyBSZWdFeHAoXG4gICAgICAgIGBeKC4qKVxcXFwuKCR7QWJzb2x1dGVNb2RlbEZpZWxkUGF0aC5leHRyYUZpZWxkTmFtZXMuY29uY2F0KGdldEtub3duVmlld01vZGVsRmllbGROYW1lcygpKS5qb2luKFwifFwiKX0pJGBcbiAgICApO1xuICAgIHB1YmxpYyByZWFkb25seSBwYXRoOiBBYnNvbHV0ZU1vZGVsUGF0aDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmllbGQ6IFZpZXdNb2RlbEZpZWxkTmFtZVdpdGhDdXN0b21GaWVsZHM7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aDogQWJzb2x1dGVNb2RlbFBhdGgsIGZpZWxkTmFtZTogVmlld01vZGVsRmllbGROYW1lV2l0aEN1c3RvbUZpZWxkcykge1xuICAgICAgICB0aGlzLnBhdGggPSBwYXRoO1xuICAgICAgICB0aGlzLmZpZWxkID0gZmllbGROYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRIYXNoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdGguZ2V0SGFzaCgpICsgZ2V0U2ltcGxlSGFzaEJ5U3RyaW5nKHRoaXMuZmllbGQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0VxdWFscyhcbiAgICAgICAgbW9kZWxQYXRoOiBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoLFxuICAgICAgICBlYWNoQ3VycmVudENvbGxpc2lvbjogRWFjaEN1cnJlbnRDb2xsaXNpb24gPSBFYWNoQ3VycmVudENvbGxpc2lvbi5BcmVTYW1lXG4gICAgKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhdGguaXNFcXVhbHMobW9kZWxQYXRoLnBhdGgsIGVhY2hDdXJyZW50Q29sbGlzaW9uKSAmJiB0aGlzLmZpZWxkID09PSBtb2RlbFBhdGguZmllbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tU3RyaW5nKFxuICAgICAgICBwYXRoV2l0aEZpZWxkTmFtZTogc3RyaW5nLFxuICAgICAgICBkZWZhdWx0RmllbGROYW1lPzogVmlld01vZGVsRmllbGROYW1lV2l0aEN1c3RvbUZpZWxkc1xuICAgICk6IEFic29sdXRlTW9kZWxGaWVsZFBhdGgge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVGcm9tKHBhdGhXaXRoRmllbGROYW1lLCBwYXRoID0+IGNyZWF0ZUFic29sdXRlKHBhdGgpLCBkZWZhdWx0RmllbGROYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21NYXNrKFxuICAgICAgICBwYXRoV2l0aEZpZWxkTmFtZTogc3RyaW5nLFxuICAgICAgICBtdWx0aXBsaWNpdHlTeW1ib2w6IFBhdGhUb2tlbixcbiAgICAgICAgZGVmYXVsdEZpZWxkTmFtZT86IFZpZXdNb2RlbEZpZWxkTmFtZVdpdGhDdXN0b21GaWVsZHNcbiAgICApOiBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRnJvbShcbiAgICAgICAgICAgIHBhdGhXaXRoRmllbGROYW1lLFxuICAgICAgICAgICAgcGF0aCA9PiBjcmVhdGVBYnNvbHV0ZUZyb21NYXNrKHBhdGgsIG11bHRpcGxpY2l0eVN5bWJvbCksXG4gICAgICAgICAgICBkZWZhdWx0RmllbGROYW1lXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlRnJvbTxUTW9kZWxQYXRoIGV4dGVuZHMgQWJzb2x1dGVNb2RlbFBhdGggfCBBYnNvbHV0ZVJlc29sdmVkTW9kZWxQYXRoPihcbiAgICAgICAgcGF0aFdpdGhGaWVsZE5hbWU6IHN0cmluZyxcbiAgICAgICAgbW9kZWxQYXRoRmFjdG9yeTogKHBhdGg6IHN0cmluZykgPT4gVE1vZGVsUGF0aCxcbiAgICAgICAgZGVmYXVsdEZpZWxkTmFtZTogVmlld01vZGVsRmllbGROYW1lV2l0aEN1c3RvbUZpZWxkcyA9IFwidmFsdWVcIlxuICAgICk6IEFic29sdXRlTW9kZWxGaWVsZFBhdGgge1xuICAgICAgICBjb25zdCBtYXRjaCA9IEFic29sdXRlTW9kZWxGaWVsZFBhdGguZmllbGRFeHRyYWN0UmVnZXguZXhlYyhwYXRoV2l0aEZpZWxkTmFtZSk7XG4gICAgICAgIGNvbnN0IHBhdGggPSBtYXRjaCAhPSB1bmRlZmluZWQgPyBtYXRjaFsxXSA/PyByZWplY3QoKSA6IHBhdGhXaXRoRmllbGROYW1lO1xuICAgICAgICBjb25zdCBmaWVsZCA9IG1hdGNoICE9IHVuZGVmaW5lZCA/IChtYXRjaFsyXSBhcyBWaWV3TW9kZWxGaWVsZE5hbWUgfCB1bmRlZmluZWQpID8/IHJlamVjdCgpIDogZGVmYXVsdEZpZWxkTmFtZTtcblxuICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxGaWVsZFBhdGgobW9kZWxQYXRoRmFjdG9yeShwYXRoKSwgZmllbGQpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5wYXRoLnRvTGVnYWN5UGF0aCgpfS4ke3RoaXMuZmllbGR9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9MZWdhY3lQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGxhc3RUb2tlbiA9IEl0ZXJVdGlscy5sYXN0KHRoaXMucGF0aC5nZXRQYXRoUGFydHMoKSk7XG4gICAgICAgIGNvbnN0IGlzTGFzdFRva2VuQW5JbnN0YW5jZU9yTXVsdGlwbGljaXR5ID1cbiAgICAgICAgICAgIFBhdGhUb2tlbnMuaXNJbnN0YW5jZVRva2VuT3JJbnN0YW5jZXNTcGVjKGxhc3RUb2tlbikgfHwgUGF0aFRva2Vucy5pc011bHRpVG9rZW4obGFzdFRva2VuKTtcbiAgICAgICAgY29uc3Qgc2xhc2hJZlJlcXVpcmVkID0gaXNMYXN0VG9rZW5Bbkluc3RhbmNlT3JNdWx0aXBsaWNpdHkgJiYgaXNOb3ROdWxsT3JFbXB0eSh0aGlzLmZpZWxkKSA/IFwiL1wiIDogXCJcIjtcbiAgICAgICAgY29uc3QgZG90SWZSZXF1aXJlZCA9IGlzTm90TnVsbE9yRW1wdHkodGhpcy5maWVsZCkgPyBcIi5cIiA6IFwiXCI7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnBhdGgudG9MZWdhY3lQYXRoKCl9JHtzbGFzaElmUmVxdWlyZWR9JHtkb3RJZlJlcXVpcmVkfSR7dGhpcy5maWVsZH1gO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUkscUJBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQVdPLE1BQU1NLHNCQUFzQixDQUErQztFQVF2RUMsV0FBV0EsQ0FBQ0MsSUFBdUIsRUFBRUMsU0FBNkMsRUFBRTtJQUFBLEtBSDNFRCxJQUFJO0lBQUEsS0FDSkUsS0FBSztJQUdqQixJQUFJLENBQUNGLElBQUksR0FBR0EsSUFBSTtJQUNoQixJQUFJLENBQUNFLEtBQUssR0FBR0QsU0FBUztFQUMxQjtFQUVPRSxPQUFPQSxDQUFBLEVBQVc7SUFDckIsT0FBTyxJQUFJLENBQUNILElBQUksQ0FBQ0csT0FBTyxDQUFDLENBQUMsR0FBRyxJQUFBQyxnQ0FBcUIsRUFBQyxJQUFJLENBQUNGLEtBQUssQ0FBQztFQUNsRTtFQUVPRyxRQUFRQSxDQUNYQyxTQUFpQyxFQUNqQ0Msb0JBQTBDLEdBQUdDLDBDQUFvQixDQUFDQyxPQUFPLEVBQ2xFO0lBQ1AsT0FBTyxJQUFJLENBQUNULElBQUksQ0FBQ0ssUUFBUSxDQUFDQyxTQUFTLENBQUNOLElBQUksRUFBRU8sb0JBQW9CLENBQUMsSUFBSSxJQUFJLENBQUNMLEtBQUssS0FBS0ksU0FBUyxDQUFDSixLQUFLO0VBQ3JHO0VBRUEsT0FBY1EsZ0JBQWdCQSxDQUMxQkMsaUJBQXlCLEVBQ3pCQyxnQkFBcUQs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
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.buildIterationSequence = buildIterationSequence;
|
|
7
|
+
exports.buildIterationSequenceWithInstances = buildIterationSequenceWithInstances;
|
|
7
8
|
var _ModelPath = require("./ModelPath");
|
|
8
9
|
function buildIterationSequence(modelPath) {
|
|
9
10
|
const result = [];
|
|
@@ -19,4 +20,22 @@ function buildIterationSequence(modelPath) {
|
|
|
19
20
|
}
|
|
20
21
|
return result;
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
+
function buildIterationSequenceWithInstances(modelPath) {
|
|
24
|
+
const result = [];
|
|
25
|
+
const tokens = modelPath.getPathPartsAsArray();
|
|
26
|
+
const createPathFunc = modelPath.isAbsolute() ? _ModelPath.createAbsoluteFromTokens : _ModelPath.createRelativeFromTokens;
|
|
27
|
+
let currentInstances = [];
|
|
28
|
+
for (let i = 0; i < tokens.length; i++) {
|
|
29
|
+
const token = tokens[i];
|
|
30
|
+
if (token === _ModelPath.PathTokens.each || _ModelPath.PathTokens.isInstanceToken(token)) {
|
|
31
|
+
currentInstances = currentInstances.concat(token);
|
|
32
|
+
result.push({
|
|
33
|
+
iterable: createPathFunc(tokens.slice(0, i).map(x => _ModelPath.PathTokens.isInstanceToken(x) ? _ModelPath.PathTokens.each : x)),
|
|
34
|
+
suffix: (0, _ModelPath.createRelativeFromTokens)(tokens.slice(i + 1)),
|
|
35
|
+
instances: currentInstances
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTW9kZWxQYXRoIiwicmVxdWlyZSIsImJ1aWxkSXRlcmF0aW9uU2VxdWVuY2UiLCJtb2RlbFBhdGgiLCJyZXN1bHQiLCJ0b2tlbnMiLCJnZXRQYXRoUGFydHNBc0FycmF5IiwiY3JlYXRlUGF0aEZ1bmMiLCJpc0Fic29sdXRlIiwiY3JlYXRlQWJzb2x1dGVGcm9tVG9rZW5zIiwiY3JlYXRlUmVsYXRpdmVGcm9tVG9rZW5zIiwiaSIsImxlbmd0aCIsIlBhdGhUb2tlbnMiLCJlYWNoIiwicHVzaCIsIml0ZXJhYmxlIiwic2xpY2UiLCJzdWZmaXgiLCJidWlsZEl0ZXJhdGlvblNlcXVlbmNlV2l0aEluc3RhbmNlcyIsImN1cnJlbnRJbnN0YW5jZXMiLCJ0b2tlbiIsImlzSW5zdGFuY2VUb2tlbiIsImNvbmNhdCIsIm1hcCIsIngiLCJpbnN0YW5jZXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9Db21tb24vTW9kZWxQYXRoL0J1aWxkSXRlcmF0aW9uU2VxdWVuY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBjcmVhdGVBYnNvbHV0ZUZyb21Ub2tlbnMsXG4gICAgY3JlYXRlUmVsYXRpdmVGcm9tVG9rZW5zLFxuICAgIE1vZGVsUGF0aCxcbiAgICBQYXRoVG9rZW4sXG4gICAgUGF0aFRva2VucyxcbiAgICBSZWxhdGl2ZU1vZGVsUGF0aCxcbn0gZnJvbSBcIi4vTW9kZWxQYXRoXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXRlcmF0aW9uRW50cnk8VE1vZGVsUGF0aCBleHRlbmRzIE1vZGVsUGF0aD4ge1xuICAgIGl0ZXJhYmxlOiBUTW9kZWxQYXRoO1xuICAgIHN1ZmZpeDogUmVsYXRpdmVNb2RlbFBhdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEl0ZXJhdGlvblNlcXVlbmNlPFRNb2RlbFBhdGggZXh0ZW5kcyBNb2RlbFBhdGg+KFxuICAgIG1vZGVsUGF0aDogVE1vZGVsUGF0aFxuKTogQXJyYXk8SXRlcmF0aW9uRW50cnk8VE1vZGVsUGF0aD4+IHtcbiAgICBjb25zdCByZXN1bHQ6IEFycmF5PEl0ZXJhdGlvbkVudHJ5PFRNb2RlbFBhdGg+PiA9IFtdO1xuICAgIGNvbnN0IHRva2VucyA9IG1vZGVsUGF0aC5nZXRQYXRoUGFydHNBc0FycmF5KCk7XG4gICAgY29uc3QgY3JlYXRlUGF0aEZ1bmMgPSBtb2RlbFBhdGguaXNBYnNvbHV0ZSgpID8gY3JlYXRlQWJzb2x1dGVGcm9tVG9rZW5zIDogY3JlYXRlUmVsYXRpdmVGcm9tVG9rZW5zO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmICh0b2tlbnNbaV0gPT09IFBhdGhUb2tlbnMuZWFjaCkge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIGl0ZXJhYmxlOiBjcmVhdGVQYXRoRnVuYyh0b2tlbnMuc2xpY2UoMCwgaSkpIGFzIFRNb2RlbFBhdGgsXG4gICAgICAgICAgICAgICAgc3VmZml4OiBjcmVhdGVSZWxhdGl2ZUZyb21Ub2tlbnModG9rZW5zLnNsaWNlKGkgKyAxKSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZXJhdGlvbkVudHJ5V2l0aEluc3RhbmNlczxUTW9kZWxQYXRoIGV4dGVuZHMgTW9kZWxQYXRoPiB7XG4gICAgaXRlcmFibGU6IFRNb2RlbFBhdGg7XG4gICAgc3VmZml4OiBSZWxhdGl2ZU1vZGVsUGF0aDtcbiAgICBpbnN0YW5jZXM6IFBhdGhUb2tlbltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRJdGVyYXRpb25TZXF1ZW5jZVdpdGhJbnN0YW5jZXM8VE1vZGVsUGF0aCBleHRlbmRzIE1vZGVsUGF0aD4oXG4gICAgbW9kZWxQYXRoOiBUTW9kZWxQYXRoXG4pOiBBcnJheTxJdGVyYXRpb25FbnRyeVdpdGhJbnN0YW5jZXM8VE1vZGVsUGF0aD4+IHtcbiAgICBjb25zdCByZXN1bHQ6IEFycmF5PEl0ZXJhdGlvbkVudHJ5V2l0aEluc3RhbmNlczxUTW9kZWxQYXRoPj4gPSBbXTtcbiAgICBjb25zdCB0b2tlbnMgPSBtb2RlbFBhdGguZ2V0UGF0aFBhcnRzQXNBcnJheSgpO1xuICAgIGNvbnN0IGNyZWF0ZVBhdGhGdW5jID0gbW9kZWxQYXRoLmlzQWJzb2x1dGUoKSA/IGNyZWF0ZUFic29sdXRlRnJvbVRva2VucyA6IGNyZWF0ZVJlbGF0aXZlRnJvbVRva2VucztcbiAgICBsZXQgY3VycmVudEluc3RhbmNlczogUGF0aFRva2VuW10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB0b2tlbiA9IHRva2Vuc1tpXTtcbiAgICAgICAgaWYgKHRva2VuID09PSBQYXRoVG9rZW5zLmVhY2ggfHwgUGF0aFRva2Vucy5pc0luc3RhbmNlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICBjdXJyZW50SW5zdGFuY2VzID0gY3VycmVudEluc3RhbmNlcy5jb25jYXQodG9rZW4pO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgICAgICAgIGl0ZXJhYmxlOiBjcmVhdGVQYXRoRnVuYyhcbiAgICAgICAgICAgICAgICAgICAgdG9rZW5zLnNsaWNlKDAsIGkpLm1hcCh4ID0+IChQYXRoVG9rZW5zLmlzSW5zdGFuY2VUb2tlbih4KSA/IFBhdGhUb2tlbnMuZWFjaCA6IHgpKVxuICAgICAgICAgICAgICAgICkgYXMgVE1vZGVsUGF0aCxcbiAgICAgICAgICAgICAgICBzdWZmaXg6IGNyZWF0ZVJlbGF0aXZlRnJvbVRva2Vucyh0b2tlbnMuc2xpY2UoaSArIDEpKSxcbiAgICAgICAgICAgICAgICBpbnN0YW5jZXM6IGN1cnJlbnRJbnN0YW5jZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBY08sU0FBU0Msc0JBQXNCQSxDQUNsQ0MsU0FBcUIsRUFDWTtFQUNqQyxNQUFNQyxNQUF5QyxHQUFHLEVBQUU7RUFDcEQsTUFBTUMsTUFBTSxHQUFHRixTQUFTLENBQUNHLG1CQUFtQixDQUFDLENBQUM7RUFDOUMsTUFBTUMsY0FBYyxHQUFHSixTQUFTLENBQUNLLFVBQVUsQ0FBQyxDQUFDLEdBQUdDLG1DQUF3QixHQUFHQyxtQ0FBd0I7RUFDbkcsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdOLE1BQU0sQ0FBQ08sTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwQyxJQUFJTixNQUFNLENBQUNNLENBQUMsQ0FBQyxLQUFLRSxxQkFBVSxDQUFDQyxJQUFJLEVBQUU7TUFDL0JWLE1BQU0sQ0FBQ1csSUFBSSxDQUFDO1FBQ1JDLFFBQVEsRUFBRVQsY0FBYyxDQUFDRixNQUFNLENBQUNZLEtBQUssQ0FBQyxDQUFDLEVBQUVOLENBQUMsQ0FBQyxDQUFlO1FBQzFETyxNQUFNLEVBQUUsSUFBQVIsbUNBQXdCLEVBQUNMLE1BQU0sQ0FBQ1ksS0FBSyxDQUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDO01BQ3hELENBQUMsQ0FBQztJQUNOO0VBQ0o7RUFDQSxPQUFPUCxNQUFNO0FBQ2pCO0FBUU8sU0FBU2UsbUNBQW1DQSxDQUMvQ2hCLFNBQXFCLEVBQ3lCO0VBQzlDLE1BQU1DLE1BQXNELEdBQUcsRUFBRTtFQUNqRSxNQUFNQyxNQUFNLEdBQUdGLFNBQVMsQ0FBQ0csbUJBQW1CLENBQUMsQ0FBQztFQUM5QyxNQUFNQyxjQUFjLEdBQUdKLFNBQVMsQ0FBQ0ssVUFBVSxDQUFDLENBQUMsR0FBR0MsbUNBQXdCLEdBQUdDLG1DQUF3QjtFQUNuRyxJQUFJVSxnQkFBNkIsR0FBRyxFQUFFO0VBQ3RDLEtBQUssSUFBSVQsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHTixNQUFNLENBQUNPLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEMsTUFBTVUsS0FBSyxHQUFHaEIsTUFBTSxDQUFDTSxDQUFDLENBQUM7SUFDdkIsSUFBSVUsS0FBSyxLQUFLUixxQkFBVSxDQUFDQyxJQUFJLElBQUlELHFCQUFVLENBQUNTLGVBQWUsQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7TUFDaEVELGdCQUFnQixHQUFHQSxnQkFBZ0IsQ0FBQ0csTUFBTSxDQUFDRixLQUFLLENBQUM7TUFDakRqQixNQUFNLENBQUNXLElBQUksQ0FBQztRQUNSQyxRQUFRLEVBQUVULGNBQWMsQ0FDcEJGLE1BQU0sQ0FBQ1ksS0FBSyxDQUFDLENBQUMsRUFBRU4sQ0FBQyxDQUFDLENBQUNhLEdBQUcsQ0FBQ0MsQ0FBQyxJQUFLWixxQkFBVSxDQUFDUyxlQUFlLENBQUNHLENBQUMsQ0FBQyxHQUFHWixxQkFBVSxDQUFDQyxJQUFJLEdBQUdXLENBQUUsQ0FDckYsQ0FBZTtRQUNmUCxNQUFNLEVBQUUsSUFBQVIsbUNBQXdCLEVBQUNMLE1BQU0sQ0FBQ1ksS0FBSyxDQUFDTixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckRlLFNBQVMsRUFBRU47TUFDZixDQUFDLENBQUM7SUFDTjtFQUNKO0VBQ0EsT0FBT2hCLE1BQU07QUFDakIifQ==
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Map2 = void 0;
|
|
7
7
|
var _TypingUtils = require("../../TypingUtils");
|
|
8
|
+
var _IterableUtils = require("../../IterableUtils");
|
|
8
9
|
class Map2 {
|
|
9
10
|
constructor() {
|
|
10
11
|
this.hashMap = new Map();
|
|
@@ -22,6 +23,18 @@ class Map2 {
|
|
|
22
23
|
has(key) {
|
|
23
24
|
return this.getEntryOrUndefined(key) != undefined;
|
|
24
25
|
}
|
|
26
|
+
remove(key) {
|
|
27
|
+
const hash = this.getKeyHash(key);
|
|
28
|
+
const list = this.hashMap.get(hash);
|
|
29
|
+
if (list != undefined) {
|
|
30
|
+
const removingEntry = Iterator.from(_IterableUtils.IterUtils.iterateEntries(list)).find(([index, [itemKey, itemValue]]) => this.areKeyEqual(itemKey, key));
|
|
31
|
+
if (removingEntry != undefined) {
|
|
32
|
+
list.splice(removingEntry[0], 1);
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
25
38
|
get isEmpty() {
|
|
26
39
|
return this.hashMap.size === 0;
|
|
27
40
|
}
|
|
@@ -78,4 +91,4 @@ class Map2 {
|
|
|
78
91
|
}
|
|
79
92
|
}
|
|
80
93
|
exports.Map2 = Map2;
|
|
81
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwaW5nVXRpbHMiLCJyZXF1aXJlIiwiTWFwMiIsImNvbnN0cnVjdG9yIiwiaGFzaE1hcCIsIk1hcCIsInNldCIsImtleSIsInZhbHVlIiwic2V0T3JVcGRhdGUiLCJnZXRPclNldCIsImRlZmF1bHRWYWx1ZUZhY3RvcnkiLCJrIiwidiIsImdldCIsIl90aGlzJGdldEVudHJ5T3JVbmRlZiIsImdldEVudHJ5T3JVbmRlZmluZWQiLCJoYXMiLCJ1bmRlZmluZWQiLCJpc0VtcHR5Iiwic2l6ZSIsIm5ld1ZhbHVlRmFjdG9yeSIsInVwZGF0ZVZhbHVlRmFjdG9yeSIsImhhc2giLCJnZXRLZXlIYXNoIiwibGlzdCIsInJlc3VsdCIsIml0ZW1JbmRleCIsImZpbmRJbmRleCIsIngiLCJhcmVLZXlFcXVhbCIsInB1c2giLCJfbGlzdCRpdGVtSW5kZXgiLCJlbnRyeSIsInJlamVjdCIsImtleXMiLCJJdGVyYXRvciIsImZyb20iLCJlbnRyaWVzIiwibWFwIiwiZSIsInZhbHVlcyIsImZsYXRNYXAiLCJjbGVhciIsImdldEhhc2giLCJsZWZ0IiwicmlnaHQiLCJpc0VxdWFscyIsIl90aGlzJGhhc2hNYXAkZ2V0IiwiZmluZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9Db21tb24vTW9kZWxQYXRoL01hcC9NYXAyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlamVjdCB9IGZyb20gXCIuLi8uLi9UeXBpbmdVdGlsc1wiO1xuaW1wb3J0IHsgSUVxdWF0YWJsZSB9IGZyb20gXCIuLi9JRXF1YXRhYmxlXCI7XG5cbmV4cG9ydCBjbGFzcyBNYXAyPEsgZXh0ZW5kcyBJRXF1YXRhYmxlPEs+LCBWPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBoYXNoTWFwID0gbmV3IE1hcDxudW1iZXIsIEFycmF5PFtLLCBWXT4+KCk7XG5cbiAgICBwdWJsaWMgc2V0KGtleTogSywgdmFsdWU6IFYpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPclVwZGF0ZShcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICgpID0+IHZhbHVlLFxuICAgICAgICAgICAgKCkgPT4gdmFsdWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3JTZXQoa2V5OiBLLCBkZWZhdWx0VmFsdWVGYWN0b3J5OiAoKSA9PiBWKTogViB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldE9yVXBkYXRlKGtleSwgZGVmYXVsdFZhbHVlRmFjdG9yeSwgKGssIHYpID0+IHYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQoa2V5OiBLKTogViB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEVudHJ5T3JVbmRlZmluZWQoa2V5KT8uWzFdO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXMoa2V5OiBLKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEVudHJ5T3JVbmRlZmluZWQoa2V5KSAhPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNoTWFwLnNpemUgPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINC30L3QsNGH0LXQvdC40LUg0LIg0YHQu9C+0LLQsNGA0LUg0L/QviDQutC70Y7Rh9GOLCDQtdGB0LvQuCDQt9C90LDRh9C10L3QuNGPINC90LXRgiAtLSDRg9GB0YLQvdCw0LLQuNGCINC90L7QstC+0LVcbiAgICAgKiBAcGFyYW0ga2V5INC60LvRjtGHINGB0LvQvtCy0LDRgNGPINC00LvRjyDRgNC+0LHQvdC+0LLQu9C10L3QuNGPXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlRmFjdG9yeSDQldGB0LvQuCDQt9C90LDRh9C10L3QuNGPINC90LXRgiAtLSDQsdGD0LTQtdGCINGD0YHRgtCw0L3QvtCy0LvQtdC9INGA0LXQt9GD0LvRjNGC0LDRgiDRjdGC0L7QuSDRhNGD0L3QutGG0LjQuFxuICAgICAqIEBwYXJhbSB1cGRhdGVWYWx1ZUZhY3Rvcnkg0JXRgdC70Lgg0LfQvdCw0YfQtdC90LjQtSDQtdGB0YLRjCAtLSDQsdGD0LTQtdGCINGD0YHRgtCw0L3QvtCy0LvQtdC9INGA0LXQt9GD0LvRjNGC0LDRgiDRjdGC0L7QuSDRhNGD0L3QutGG0LjQuFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRPclVwZGF0ZShrZXk6IEssIG5ld1ZhbHVlRmFjdG9yeTogKGtleTogSykgPT4gViwgdXBkYXRlVmFsdWVGYWN0b3J5OiAoa2V5OiBLLCB1cGRhdGU6IFYpID0+IFYpOiBWIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IHRoaXMuZ2V0S2V5SGFzaChrZXkpO1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5oYXNoTWFwLmdldChoYXNoKTtcbiAgICAgICAgaWYgKGxpc3QgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXdWYWx1ZUZhY3Rvcnkoa2V5KTtcbiAgICAgICAgICAgIHRoaXMuaGFzaE1hcC5zZXQoaGFzaCwgW1trZXksIHJlc3VsdF1dKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtSW5kZXggPSBsaXN0LmZpbmRJbmRleCh4ID0+IHRoaXMuYXJlS2V5RXF1YWwoeFswXSwga2V5KSk7XG4gICAgICAgICAgICBpZiAoaXRlbUluZGV4ID09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3VmFsdWVGYWN0b3J5KGtleSk7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKFtrZXksIHJlc3VsdF0pO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gbGlzdFtpdGVtSW5kZXhdID8/IHJlamVjdCgpO1xuICAgICAgICAgICAgICAgIGVudHJ5WzFdID0gdXBkYXRlVmFsdWVGYWN0b3J5KGtleSwgZW50cnlbMV0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeVsxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBrZXlzKCk6IEl0ZXJhYmxlPEs+IHtcbiAgICAgICAgcmV0dXJuIEl0ZXJhdG9yLmZyb20odGhpcy5lbnRyaWVzKCkpLm1hcChlID0+IGVbMF0pO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWx1ZXMoKTogSXRlcmFibGU8Vj4ge1xuICAgICAgICByZXR1cm4gSXRlcmF0b3IuZnJvbSh0aGlzLmVudHJpZXMoKSkubWFwKGUgPT4gZVsxXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGVudHJpZXMoKTogSXRlcmFibGU8W2tleTogSywgdmFsdWU6IFZdPiB7XG4gICAgICAgIHJldHVybiBJdGVyYXRvci5mcm9tKHRoaXMuaGFzaE1hcC52YWx1ZXMoKSkuZmxhdE1hcCh4ID0+IHgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNoTWFwLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEtleUhhc2goa2V5OiBLKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGtleS5nZXRIYXNoKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFyZUtleUVxdWFsKGxlZnQ6IEssIHJpZ2h0OiBLKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBsZWZ0LmlzRXF1YWxzKHJpZ2h0KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVudHJ5T3JVbmRlZmluZWQoa2V5OiBLKTogW0ssIFZdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IHRoaXMuZ2V0S2V5SGFzaChrZXkpO1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNoTWFwLmdldChoYXNoKT8uZmluZCh4ID0+IHRoaXMuYXJlS2V5RXF1YWwoeFswXSwga2V5KSk7XG4g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
|
|
94
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHlwaW5nVXRpbHMiLCJyZXF1aXJlIiwiX0l0ZXJhYmxlVXRpbHMiLCJNYXAyIiwiY29uc3RydWN0b3IiLCJoYXNoTWFwIiwiTWFwIiwic2V0Iiwia2V5IiwidmFsdWUiLCJzZXRPclVwZGF0ZSIsImdldE9yU2V0IiwiZGVmYXVsdFZhbHVlRmFjdG9yeSIsImsiLCJ2IiwiZ2V0IiwiX3RoaXMkZ2V0RW50cnlPclVuZGVmIiwiZ2V0RW50cnlPclVuZGVmaW5lZCIsImhhcyIsInVuZGVmaW5lZCIsInJlbW92ZSIsImhhc2giLCJnZXRLZXlIYXNoIiwibGlzdCIsInJlbW92aW5nRW50cnkiLCJJdGVyYXRvciIsImZyb20iLCJJdGVyVXRpbHMiLCJpdGVyYXRlRW50cmllcyIsImZpbmQiLCJpbmRleCIsIml0ZW1LZXkiLCJpdGVtVmFsdWUiLCJhcmVLZXlFcXVhbCIsInNwbGljZSIsImlzRW1wdHkiLCJzaXplIiwibmV3VmFsdWVGYWN0b3J5IiwidXBkYXRlVmFsdWVGYWN0b3J5IiwicmVzdWx0IiwiaXRlbUluZGV4IiwiZmluZEluZGV4IiwieCIsInB1c2giLCJfbGlzdCRpdGVtSW5kZXgiLCJlbnRyeSIsInJlamVjdCIsImtleXMiLCJlbnRyaWVzIiwibWFwIiwiZSIsInZhbHVlcyIsImZsYXRNYXAiLCJjbGVhciIsImdldEhhc2giLCJsZWZ0IiwicmlnaHQiLCJpc0VxdWFscyIsIl90aGlzJGhhc2hNYXAkZ2V0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL0NvbW1vbi9Nb2RlbFBhdGgvTWFwL01hcDIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVqZWN0IH0gZnJvbSBcIi4uLy4uL1R5cGluZ1V0aWxzXCI7XG5pbXBvcnQgeyBJRXF1YXRhYmxlIH0gZnJvbSBcIi4uL0lFcXVhdGFibGVcIjtcbmltcG9ydCB7IEl0ZXJVdGlscyB9IGZyb20gXCIuLi8uLi9JdGVyYWJsZVV0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBNYXAyPEsgZXh0ZW5kcyBJRXF1YXRhYmxlPEs+LCBWPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBoYXNoTWFwID0gbmV3IE1hcDxudW1iZXIsIEFycmF5PFtLLCBWXT4+KCk7XG5cbiAgICBwdWJsaWMgc2V0KGtleTogSywgdmFsdWU6IFYpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPclVwZGF0ZShcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICgpID0+IHZhbHVlLFxuICAgICAgICAgICAgKCkgPT4gdmFsdWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3JTZXQoa2V5OiBLLCBkZWZhdWx0VmFsdWVGYWN0b3J5OiAoKSA9PiBWKTogViB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldE9yVXBkYXRlKGtleSwgZGVmYXVsdFZhbHVlRmFjdG9yeSwgKGssIHYpID0+IHYpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQoa2V5OiBLKTogViB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEVudHJ5T3JVbmRlZmluZWQoa2V5KT8uWzFdO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXMoa2V5OiBLKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEVudHJ5T3JVbmRlZmluZWQoa2V5KSAhPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShrZXk6IEspOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgaGFzaCA9IHRoaXMuZ2V0S2V5SGFzaChrZXkpO1xuICAgICAgICBjb25zdCBsaXN0ID0gdGhpcy5oYXNoTWFwLmdldChoYXNoKTtcbiAgICAgICAgaWYgKGxpc3QgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zdCByZW1vdmluZ0VudHJ5ID0gSXRlcmF0b3IuZnJvbShJdGVyVXRpbHMuaXRlcmF0ZUVudHJpZXMobGlzdCkpLmZpbmQoKFtpbmRleCwgW2l0ZW1LZXksIGl0ZW1WYWx1ZV1dKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuYXJlS2V5RXF1YWwoaXRlbUtleSwga2V5KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChyZW1vdmluZ0VudHJ5ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGxpc3Quc3BsaWNlKHJlbW92aW5nRW50cnlbMF0sIDEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc2hNYXAuc2l6ZSA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LfQvdCw0YfQtdC90LjQtSDQsiDRgdC70L7QstCw0YDQtSDQv9C+INC60LvRjtGH0Y4sINC10YHQu9C4INC30L3QsNGH0LXQvdC40Y8g0L3QtdGCIC0tINGD0YHRgtC90LDQstC40YIg0L3QvtCy0L7QtVxuICAgICAqIEBwYXJhbSBrZXkg0LrQu9GO0Ycg0YHQu9C+0LLQsNGA0Y8g0LTQu9GPINGA0L7QsdC90L7QstC70LXQvdC40Y9cbiAgICAgKiBAcGFyYW0gbmV3VmFsdWVGYWN0b3J5INCV0YHQu9C4INC30L3QsNGH0LXQvdC40Y8g0L3QtdGCIC0tINCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L0g0YDQtdC30YPQu9GM0YLQsNGCINGN0YLQvtC5INGE0YPQvdC60YbQuNC4XG4gICAgICogQHBhcmFtIHVwZGF0ZVZhbHVlRmFjdG9yeSDQldGB0LvQuCDQt9C90LDRh9C10L3QuNC1INC10YHRgtGMIC0tINCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L0g0YDQtdC30YPQu9GM0YLQsNGCINGN0YLQvtC5INGE0YPQvdC60YbQuNC4XG4gICAgICovXG4gICAgcHVibGljIHNldE9yVXBkYXRlKGtleTogSywgbmV3VmFsdWVGYWN0b3J5OiAoa2V5OiBLKSA9PiBWLCB1cGRhdGVWYWx1ZUZhY3Rvcnk6IChrZXk6IEssIHVwZGF0ZTogVikgPT4gVik6IFYge1xuICAgICAgICBjb25zdCBoYXNoID0gdGhpcy5nZXRLZXlIYXNoKGtleSk7XG4gICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmhhc2hNYXAuZ2V0KGhhc2gpO1xuICAgICAgICBpZiAobGlzdCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IG5ld1ZhbHVlRmFjdG9yeShrZXkpO1xuICAgICAgICAgICAgdGhpcy5oYXNoTWFwLnNldChoYXNoLCBbW2tleSwgcmVzdWx0XV0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IGxpc3QuZmluZEluZGV4KHggPT4gdGhpcy5hcmVLZXlFcXVhbCh4WzBdLCBrZXkpKTtcbiAgICAgICAgICAgIGlmIChpdGVtSW5kZXggPT0gLTEpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXdWYWx1ZUZhY3Rvcnkoa2V5KTtcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2goW2tleSwgcmVzdWx0XSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBsaXN0W2l0ZW1JbmRleF0gPz8gcmVqZWN0KCk7XG4gICAgICAgICAgICAgICAgZW50cnlbMV0gPSB1cGRhdGVWYWx1ZUZhY3Rvcnkoa2V5LCBlbnRyeVsxXSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5WzFdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGtleXMoKTogSXRlcmFibGU8Sz4ge1xuICAgICAgICByZXR1cm4gSXRlcmF0b3IuZnJvbSh0aGlzLmVudHJpZXMoKSkubWFwKGUgPT4gZVswXSk7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlcygpOiBJdGVyYWJsZTxWPiB7XG4gICAgICAgIHJldHVybiBJdGVyYXRvci5mcm9tKHRoaXMuZW50cmllcygpKS5tYXAoZSA9PiBlWzFdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW50cmllcygpOiBJdGVyYWJsZTxba2V5OiBLLCB2YWx1ZTogVl0+IHtcbiAgICAgICAgcmV0dXJuIEl0ZXJhdG9yLmZyb20odGhpcy5oYXNoTWFwLnZhbHVlcygpKS5mbGF0TWFwKHggPT4geCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc2hNYXAuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0S2V5SGFzaChrZXk6IEspOiBudW1iZXIge1xuICAgICAgICByZXR1cm4ga2V5LmdldEhhc2goKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYXJlS2V5RXF1YWwobGVmdDogSywgcmlnaHQ6IEspOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGxlZnQuaXNFcXVhbHMocmlnaHQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RW50cnlPclVuZGVmaW5lZChrZXk6IEspOiBbSywgVl0gfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBoYXNoID0gdGhpcy5nZXRLZXlIYXNoKGtleSk7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc2hNYXAuZ2V0KGhhc2gpPy5maW5kKHggPT4gdGhpcy5hcmVLZXlFcXVhbCh4WzBdLCBrZXkpKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFlBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLGNBQUEsR0FBQUQsT0FBQTtBQUVPLE1BQU1FLElBQUksQ0FBNkI7RUFBQUMsWUFBQTtJQUFBLEtBQ3pCQyxPQUFPLEdBQUcsSUFBSUMsR0FBRyxDQUF3QixDQUFDO0VBQUE7RUFFcERDLEdBQUdBLENBQUNDLEdBQU0sRUFBRUMsS0FBUSxFQUFR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
|