@witnet/sdk 1.0.4 → 1.0.5
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/.env_witnet +6 -6
- package/LICENSE +21 -21
- package/README.md +103 -103
- package/dist/package.json +3 -4
- package/dist/src/bin/helpers.js +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/lib/crypto/account.d.ts +3 -1
- package/dist/src/lib/crypto/account.d.ts.map +1 -1
- package/dist/src/lib/crypto/account.js +7 -1
- package/dist/src/lib/crypto/coinbase.js +1 -1
- package/dist/src/lib/crypto/index.js +1 -1
- package/dist/src/lib/crypto/interfaces.d.ts +2 -0
- package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
- package/dist/src/lib/crypto/interfaces.js +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +1 -1
- package/dist/src/lib/crypto/payloads/StakePayload.js +1 -1
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +1 -1
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +1 -1
- package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads.js +12 -1
- package/dist/src/lib/crypto/signer.d.ts +1 -0
- package/dist/src/lib/crypto/signer.d.ts.map +1 -1
- package/dist/src/lib/crypto/signer.js +18 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.js +1 -1
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +1 -1
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +1 -1
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +1 -1
- package/dist/src/lib/crypto/transmitters.js +4 -4
- package/dist/src/lib/crypto/types.d.ts.map +1 -1
- package/dist/src/lib/crypto/types.js +2 -1
- package/dist/src/lib/crypto/utils.js +1 -1
- package/dist/src/lib/crypto/wallet.d.ts +3 -1
- package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
- package/dist/src/lib/crypto/wallet.js +10 -1
- package/dist/src/lib/index.js +1 -1
- package/dist/src/lib/radon/ccdr/eth.js +1 -1
- package/dist/src/lib/radon/ccdr/index.js +1 -1
- package/dist/src/lib/radon/ccdr/wit.js +1 -1
- package/dist/src/lib/radon/filters.js +1 -1
- package/dist/src/lib/radon/index.js +1 -1
- package/dist/src/lib/radon/reducers.js +1 -1
- package/dist/src/lib/radon/types.js +1 -1
- package/dist/src/lib/radon/utils.js +1 -1
- package/dist/src/lib/rpc/index.js +1 -1
- package/dist/src/lib/rpc/nodes.js +1 -1
- package/dist/src/lib/rpc/provider.js +1 -1
- package/dist/src/lib/rpc/types.d.ts +6 -4
- package/dist/src/lib/rpc/types.d.ts.map +1 -1
- package/dist/src/lib/rpc/types.js +1 -1
- package/dist/src/lib/types.d.ts +0 -1
- package/dist/src/lib/types.d.ts.map +1 -1
- package/dist/src/lib/types.js +1 -1
- package/dist/src/lib/utils.js +1 -1
- package/dist/witnet/assets/index.js +1 -1
- package/dist/witnet/assets/modals/index.js +1 -1
- package/dist/witnet/assets/modals/web3/eth.js +1 -1
- package/dist/witnet/assets/modals/web3/ipfs.js +1 -1
- package/dist/witnet/assets/modals/web3/wit.js +1 -1
- package/dist/witnet/assets/requests.js +1 -1
- package/package.json +3 -4
- package/src/bin/cli/history.js +31 -31
- package/src/bin/cli/inspect.js +405 -405
- package/src/bin/cli/network.js +594 -594
- package/src/bin/cli/nodes.js +364 -364
- package/src/bin/cli/radon.js +817 -815
- package/src/bin/cli/wallet.js +1121 -1117
- package/src/bin/helpers.js +840 -840
- package/src/bin/postinstall.js +9 -9
- package/src/bin/toolkit.js +295 -295
- package/witnet/assets/_index.js +8 -8
- package/witnet/assets/_requests.js +25 -25
- package/witnet/assets/_sources.js +36 -36
- package/witnet/assets/_templates.js +36 -36
- package/witnet/assets/index.js +4 -4
- package/witnet/assets/modals/index.js +9 -9
- package/witnet/assets/modals/web3/eth.js +29 -29
- package/witnet/assets/modals/web3/ipfs.js +19 -19
- package/witnet/assets/modals/web3/wit.js +21 -21
- package/witnet/assets/requests.js +95 -95
- package/dist/bin/helpers.d.ts +0 -88
- package/dist/bin/helpers.d.ts.map +0 -1
- package/dist/bin/helpers.js +0 -866
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -42
- package/dist/lib/crypto/account.d.ts +0 -18
- package/dist/lib/crypto/account.d.ts.map +0 -1
- package/dist/lib/crypto/account.js +0 -152
- package/dist/lib/crypto/coinbase.d.ts +0 -9
- package/dist/lib/crypto/coinbase.d.ts.map +0 -1
- package/dist/lib/crypto/coinbase.js +0 -39
- package/dist/lib/crypto/index.d.ts +0 -7
- package/dist/lib/crypto/index.d.ts.map +0 -1
- package/dist/lib/crypto/index.js +0 -28
- package/dist/lib/crypto/interfaces.d.ts +0 -80
- package/dist/lib/crypto/interfaces.d.ts.map +0 -1
- package/dist/lib/crypto/interfaces.js +0 -3
- package/dist/lib/crypto/payloads/DataRequestPayload.d.ts +0 -47
- package/dist/lib/crypto/payloads/DataRequestPayload.d.ts.map +0 -1
- package/dist/lib/crypto/payloads/DataRequestPayload.js +0 -384
- package/dist/lib/crypto/payloads/StakePayload.d.ts +0 -27
- package/dist/lib/crypto/payloads/StakePayload.d.ts.map +0 -1
- package/dist/lib/crypto/payloads/StakePayload.js +0 -184
- package/dist/lib/crypto/payloads/UnstakePayload.d.ts +0 -35
- package/dist/lib/crypto/payloads/UnstakePayload.d.ts.map +0 -1
- package/dist/lib/crypto/payloads/UnstakePayload.js +0 -244
- package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts +0 -24
- package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts.map +0 -1
- package/dist/lib/crypto/payloads/ValueTransferPayload.js +0 -182
- package/dist/lib/crypto/payloads.d.ts +0 -54
- package/dist/lib/crypto/payloads.d.ts.map +0 -1
- package/dist/lib/crypto/payloads.js +0 -224
- package/dist/lib/crypto/signer.d.ts +0 -26
- package/dist/lib/crypto/signer.d.ts.map +0 -1
- package/dist/lib/crypto/signer.js +0 -299
- package/dist/lib/crypto/transmitters/DataRequests.d.ts +0 -14
- package/dist/lib/crypto/transmitters/DataRequests.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters/DataRequests.js +0 -62
- package/dist/lib/crypto/transmitters/StakeDeposits.d.ts +0 -11
- package/dist/lib/crypto/transmitters/StakeDeposits.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters/StakeDeposits.js +0 -48
- package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts +0 -17
- package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters/StakeWithdrawals.js +0 -115
- package/dist/lib/crypto/transmitters/ValueTransfers.d.ts +0 -10
- package/dist/lib/crypto/transmitters/ValueTransfers.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters/ValueTransfers.js +0 -47
- package/dist/lib/crypto/transmitters.d.ts +0 -46
- package/dist/lib/crypto/transmitters.d.ts.map +0 -1
- package/dist/lib/crypto/transmitters.js +0 -506
- package/dist/lib/crypto/types.d.ts +0 -127
- package/dist/lib/crypto/types.d.ts.map +0 -1
- package/dist/lib/crypto/types.js +0 -261
- package/dist/lib/crypto/utils.d.ts +0 -10
- package/dist/lib/crypto/utils.d.ts.map +0 -1
- package/dist/lib/crypto/utils.js +0 -97
- package/dist/lib/crypto/wallet.d.ts +0 -26
- package/dist/lib/crypto/wallet.d.ts.map +0 -1
- package/dist/lib/crypto/wallet.js +0 -327
- package/dist/lib/helpers.d.ts +0 -90
- package/dist/lib/helpers.d.ts.map +0 -1
- package/dist/lib/helpers.js +0 -1031
- package/dist/lib/index.d.ts +0 -5
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js +0 -21
- package/dist/lib/radon/artifacts.d.ts +0 -55
- package/dist/lib/radon/artifacts.d.ts.map +0 -1
- package/dist/lib/radon/artifacts.js +0 -347
- package/dist/lib/radon/ccdr/eth.d.ts +0 -100
- package/dist/lib/radon/ccdr/eth.d.ts.map +0 -1
- package/dist/lib/radon/ccdr/eth.js +0 -237
- package/dist/lib/radon/ccdr/index.d.ts +0 -34
- package/dist/lib/radon/ccdr/index.d.ts.map +0 -1
- package/dist/lib/radon/ccdr/index.js +0 -63
- package/dist/lib/radon/ccdr/wit.d.ts +0 -29
- package/dist/lib/radon/ccdr/wit.d.ts.map +0 -1
- package/dist/lib/radon/ccdr/wit.js +0 -60
- package/dist/lib/radon/filters.d.ts +0 -14
- package/dist/lib/radon/filters.d.ts.map +0 -1
- package/dist/lib/radon/filters.js +0 -47
- package/dist/lib/radon/index.d.ts +0 -36
- package/dist/lib/radon/index.d.ts.map +0 -1
- package/dist/lib/radon/index.js +0 -154
- package/dist/lib/radon/reducers.d.ts +0 -29
- package/dist/lib/radon/reducers.d.ts.map +0 -1
- package/dist/lib/radon/reducers.js +0 -101
- package/dist/lib/radon/retrievals.d.ts +0 -120
- package/dist/lib/radon/retrievals.d.ts.map +0 -1
- package/dist/lib/radon/retrievals.js +0 -358
- package/dist/lib/radon/sources.d.ts +0 -102
- package/dist/lib/radon/sources.d.ts.map +0 -1
- package/dist/lib/radon/sources.js +0 -294
- package/dist/lib/radon/types.d.ts +0 -521
- package/dist/lib/radon/types.d.ts.map +0 -1
- package/dist/lib/radon/types.js +0 -1066
- package/dist/lib/radon/utils.d.ts +0 -55
- package/dist/lib/radon/utils.d.ts.map +0 -1
- package/dist/lib/radon/utils.js +0 -181
- package/dist/lib/rpc/farm.d.ts +0 -66
- package/dist/lib/rpc/farm.d.ts.map +0 -1
- package/dist/lib/rpc/farm.js +0 -808
- package/dist/lib/rpc/index.d.ts +0 -3
- package/dist/lib/rpc/index.d.ts.map +0 -1
- package/dist/lib/rpc/index.js +0 -19
- package/dist/lib/rpc/node.d.ts +0 -38
- package/dist/lib/rpc/node.d.ts.map +0 -1
- package/dist/lib/rpc/node.js +0 -335
- package/dist/lib/rpc/nodes.d.ts +0 -40
- package/dist/lib/rpc/nodes.d.ts.map +0 -1
- package/dist/lib/rpc/nodes.js +0 -531
- package/dist/lib/rpc/provider.d.ts +0 -72
- package/dist/lib/rpc/provider.d.ts.map +0 -1
- package/dist/lib/rpc/provider.js +0 -402
- package/dist/lib/rpc/reporter.d.ts +0 -18
- package/dist/lib/rpc/reporter.d.ts.map +0 -1
- package/dist/lib/rpc/reporter.js +0 -99
- package/dist/lib/rpc/types.d.ts +0 -396
- package/dist/lib/rpc/types.d.ts.map +0 -1
- package/dist/lib/rpc/types.js +0 -81
- package/dist/lib/rpc/wallet.d.ts +0 -72
- package/dist/lib/rpc/wallet.d.ts.map +0 -1
- package/dist/lib/rpc/wallet.js +0 -41
- package/dist/lib/types.d.ts +0 -19
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -7
- package/dist/lib/utils.d.ts +0 -5
- package/dist/lib/utils.d.ts.map +0 -1
- package/dist/lib/utils.js +0 -51
- package/dist/src/lib/rpc/reporter.d.ts +0 -17
- package/dist/src/lib/rpc/reporter.d.ts.map +0 -1
- package/dist/src/lib/rpc/reporter.js +0 -27
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
-
if (k2 === undefined) k2 = k;
|
|
19
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
-
}
|
|
23
|
-
Object.defineProperty(o, k2, desc);
|
|
24
|
-
}) : (function(o, m, k, k2) {
|
|
25
|
-
if (k2 === undefined) k2 = k;
|
|
26
|
-
o[k2] = m[k];
|
|
27
|
-
}));
|
|
28
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
-
}) : function(o, v) {
|
|
31
|
-
o["default"] = v;
|
|
32
|
-
});
|
|
33
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
34
|
-
var ownKeys = function(o) {
|
|
35
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
36
|
-
var ar = [];
|
|
37
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
38
|
-
return ar;
|
|
39
|
-
};
|
|
40
|
-
return ownKeys(o);
|
|
41
|
-
};
|
|
42
|
-
return function (mod) {
|
|
43
|
-
if (mod && mod.__esModule) return mod;
|
|
44
|
-
var result = {};
|
|
45
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
46
|
-
__setModuleDefault(result, mod);
|
|
47
|
-
return result;
|
|
48
|
-
};
|
|
49
|
-
})();
|
|
50
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
51
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
52
|
-
if (!m) return o;
|
|
53
|
-
var i = m.call(o), r, ar = [], e;
|
|
54
|
-
try {
|
|
55
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
56
|
-
}
|
|
57
|
-
catch (error) { e = { error: error }; }
|
|
58
|
-
finally {
|
|
59
|
-
try {
|
|
60
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
61
|
-
}
|
|
62
|
-
finally { if (e) throw e.error; }
|
|
63
|
-
}
|
|
64
|
-
return ar;
|
|
65
|
-
};
|
|
66
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
67
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
68
|
-
if (ar || !(i in from)) {
|
|
69
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
70
|
-
ar[i] = from[i];
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
74
|
-
};
|
|
75
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
76
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
77
|
-
};
|
|
78
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
79
|
-
exports.RadonCCDR = exports.RadonRetrieval = exports.Methods = exports.RPC = void 0;
|
|
80
|
-
exports.RNG = RNG;
|
|
81
|
-
exports.HttpGet = HttpGet;
|
|
82
|
-
exports.HttpHead = HttpHead;
|
|
83
|
-
exports.HttpPost = HttpPost;
|
|
84
|
-
exports.GraphQLQuery = GraphQLQuery;
|
|
85
|
-
exports.CrossChainDataRetrieval = CrossChainDataRetrieval;
|
|
86
|
-
var cbor_1 = require("cbor");
|
|
87
|
-
var helpers = require("../../bin/helpers");
|
|
88
|
-
var graphql_query_compress_1 = __importDefault(require("graphql-query-compress"));
|
|
89
|
-
var types_1 = require("./types");
|
|
90
|
-
/**
|
|
91
|
-
* Precompiled Remote Procedure Calls that can be included within
|
|
92
|
-
* Cross Chain Data Requests (i.e. `Witnet.Retrievals.CCDR({ .. })`,
|
|
93
|
-
* grouped by supported JSON-RPC protocol: E
|
|
94
|
-
* - JSON ETH-RPC
|
|
95
|
-
* - JSON WIT-RPC
|
|
96
|
-
*/
|
|
97
|
-
exports.RPC = __importStar(require("./ccdr"));
|
|
98
|
-
var Methods;
|
|
99
|
-
(function (Methods) {
|
|
100
|
-
Methods[Methods["None"] = 0] = "None";
|
|
101
|
-
Methods[Methods["HttpGet"] = 1] = "HttpGet";
|
|
102
|
-
Methods[Methods["HttpHead"] = 4] = "HttpHead";
|
|
103
|
-
Methods[Methods["HttpPost"] = 3] = "HttpPost";
|
|
104
|
-
Methods[Methods["RNG"] = 2] = "RNG";
|
|
105
|
-
})(Methods || (exports.Methods = Methods = {}));
|
|
106
|
-
var RadonRetrieval = /** @class */ (function () {
|
|
107
|
-
function RadonRetrieval(method, specs, samples) {
|
|
108
|
-
var _a, _b, _c, _d;
|
|
109
|
-
if (method === Methods.RNG && ((specs === null || specs === void 0 ? void 0 : specs.url) || ((_a = specs === null || specs === void 0 ? void 0 : specs.headers) === null || _a === void 0 ? void 0 : _a.size) || (specs === null || specs === void 0 ? void 0 : specs.body))) {
|
|
110
|
-
throw TypeError("RadonRetrieval: RNG accepts no URLs or headers");
|
|
111
|
-
}
|
|
112
|
-
else if (!(specs === null || specs === void 0 ? void 0 : specs.url) && (method == Methods.HttpPost || method == Methods.HttpGet)) {
|
|
113
|
-
throw TypeError("RadonRetrieval: URL must be specified");
|
|
114
|
-
}
|
|
115
|
-
else if ((specs === null || specs === void 0 ? void 0 : specs.body) && method == Methods.HttpGet) {
|
|
116
|
-
throw TypeError("RadonRetrieval: body cannot be specified in HTTP-GET queries");
|
|
117
|
-
}
|
|
118
|
-
this.method = method;
|
|
119
|
-
if (specs === null || specs === void 0 ? void 0 : specs.url) {
|
|
120
|
-
this.url = specs.url;
|
|
121
|
-
if (!helpers.isWildcard(specs.url)) {
|
|
122
|
-
try {
|
|
123
|
-
var parts = helpers.parseURL(specs.url);
|
|
124
|
-
this.schema = parts[0];
|
|
125
|
-
if (parts[1] !== "")
|
|
126
|
-
this.authority = parts[1];
|
|
127
|
-
if (parts[2] !== "")
|
|
128
|
-
this.path = parts[2];
|
|
129
|
-
if (parts[3] !== "")
|
|
130
|
-
this.query = parts[3];
|
|
131
|
-
}
|
|
132
|
-
catch (_e) { }
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
if (specs === null || specs === void 0 ? void 0 : specs.headers) {
|
|
136
|
-
if (typeof specs.headers !== 'object' || Array.isArray(specs.headers)) {
|
|
137
|
-
throw new TypeError("RadonRetrieval: HTTP headers must be of type Record<string, string>");
|
|
138
|
-
}
|
|
139
|
-
this.headers = specs === null || specs === void 0 ? void 0 : specs.headers;
|
|
140
|
-
}
|
|
141
|
-
this.body = specs === null || specs === void 0 ? void 0 : specs.body;
|
|
142
|
-
if (specs === null || specs === void 0 ? void 0 : specs.script)
|
|
143
|
-
this.script = new types_1.RadonScript(specs === null || specs === void 0 ? void 0 : specs.script);
|
|
144
|
-
this.argsCount = Math.max.apply(Math, __spreadArray(__spreadArray(__spreadArray([helpers.getWildcardsCountFromString(this === null || this === void 0 ? void 0 : this.url),
|
|
145
|
-
helpers.getWildcardsCountFromString(this === null || this === void 0 ? void 0 : this.body)], __read((_b = Object.keys((this === null || this === void 0 ? void 0 : this.headers) || {}).map(function (key) { return helpers.getWildcardsCountFromString(key); })) !== null && _b !== void 0 ? _b : []), false), __read((_c = Object.values((this === null || this === void 0 ? void 0 : this.headers) || {}).map(function (value) { return helpers.getWildcardsCountFromString(value); })) !== null && _c !== void 0 ? _c : []), false), [((_d = this.script) === null || _d === void 0 ? void 0 : _d.argsCount()) || 0], false));
|
|
146
|
-
if (samples && this.argsCount === 0) {
|
|
147
|
-
throw new TypeError("RadonRetrieval: passed samples to non-parameterized RadonRetrieval.");
|
|
148
|
-
}
|
|
149
|
-
this.samples = samples;
|
|
150
|
-
}
|
|
151
|
-
RadonRetrieval.prototype.isParameterized = function () {
|
|
152
|
-
return this.argsCount > 0;
|
|
153
|
-
};
|
|
154
|
-
/**
|
|
155
|
-
* Creates a new Radon Retrieval by orderly replacing indexed wildcards with given parameters.
|
|
156
|
-
* Fails if not parameterized, of if passing too many parameters.
|
|
157
|
-
*/
|
|
158
|
-
RadonRetrieval.prototype.foldArgs = function () {
|
|
159
|
-
var _a;
|
|
160
|
-
var args = [];
|
|
161
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
162
|
-
args[_i] = arguments[_i];
|
|
163
|
-
}
|
|
164
|
-
if (this.argsCount === 0) {
|
|
165
|
-
throw new TypeError("RadonRetrieval: cannot fold unparameterized retrieval");
|
|
166
|
-
}
|
|
167
|
-
else if (args.length > this.argsCount) {
|
|
168
|
-
throw new TypeError("RadonRetrieval: too may args passed: ".concat(args.length, " > ").concat(this.argsCount));
|
|
169
|
-
}
|
|
170
|
-
return new RadonRetrieval(this.method, {
|
|
171
|
-
url: helpers.replaceWildcards(this.url, args),
|
|
172
|
-
body: helpers.replaceWildcards(this.body, args),
|
|
173
|
-
headers: Object.fromEntries(Object.entries(this.headers || {}).map(function (_a) {
|
|
174
|
-
var _b = __read(_a, 2), key = _b[0], value = _b[1];
|
|
175
|
-
return [
|
|
176
|
-
helpers.replaceWildcards(key, args),
|
|
177
|
-
helpers.replaceWildcards(value, args),
|
|
178
|
-
];
|
|
179
|
-
})),
|
|
180
|
-
script: (_a = this.script) === null || _a === void 0 ? void 0 : _a.replaceWildcards.apply(_a, __spreadArray([], __read(args), false)),
|
|
181
|
-
});
|
|
182
|
-
};
|
|
183
|
-
/**
|
|
184
|
-
* Creates one or more clones of this retrieval, in which the index-0 wildcard
|
|
185
|
-
* will be replaced by the given values. Fails if the retrieval is not parameterized.
|
|
186
|
-
*/
|
|
187
|
-
RadonRetrieval.prototype.spawnRetrievals = function () {
|
|
188
|
-
var _this = this;
|
|
189
|
-
var values = [];
|
|
190
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
191
|
-
values[_i] = arguments[_i];
|
|
192
|
-
}
|
|
193
|
-
var _spawned = [];
|
|
194
|
-
if (this.argsCount == 0) {
|
|
195
|
-
throw new TypeError("RadonRetrieval: cannot spawn from unparameterized retrieval");
|
|
196
|
-
}
|
|
197
|
-
values.forEach(function (value) {
|
|
198
|
-
var _a;
|
|
199
|
-
_spawned.push(new RadonRetrieval(_this.method, {
|
|
200
|
-
url: helpers.spliceWildcard(_this.url, 0, value, _this.argsCount),
|
|
201
|
-
body: helpers.spliceWildcard(_this.body, 0, value, _this.argsCount),
|
|
202
|
-
headers: Object.fromEntries(Object.entries(_this.headers || {}).map(function (_a) {
|
|
203
|
-
var _b = __read(_a, 2), headerKey = _b[0], headerValue = _b[1];
|
|
204
|
-
return [
|
|
205
|
-
helpers.spliceWildcard(headerKey, 0, value, _this.argsCount),
|
|
206
|
-
helpers.spliceWildCard(headerValue, 0, value, _this.argsCount),
|
|
207
|
-
];
|
|
208
|
-
})),
|
|
209
|
-
script: (_a = _this.script) === null || _a === void 0 ? void 0 : _a.spliceWildcard(0, value)
|
|
210
|
-
}));
|
|
211
|
-
});
|
|
212
|
-
return _spawned;
|
|
213
|
-
};
|
|
214
|
-
RadonRetrieval.prototype.toJSON = function (humanize) {
|
|
215
|
-
var _a, _b;
|
|
216
|
-
var kind = ["", "HTTP-GET", "RNG", "HTTP-POST", "HTTP-HEAD"];
|
|
217
|
-
var json = {
|
|
218
|
-
kind: kind[this.method] // humanize ? Methods[this.method] : this.method,
|
|
219
|
-
};
|
|
220
|
-
if (this.url)
|
|
221
|
-
json.url = this.url;
|
|
222
|
-
if (this.headers) {
|
|
223
|
-
json.headers = Object.entries(this.headers);
|
|
224
|
-
}
|
|
225
|
-
if (this.body)
|
|
226
|
-
json.body = this.body;
|
|
227
|
-
json.script = humanize ? (_a = this.script) === null || _a === void 0 ? void 0 : _a.toString() : Array.from(helpers.fromHexString(((_b = this.script) === null || _b === void 0 ? void 0 : _b.toBytecode()) || '0x80'));
|
|
228
|
-
return json;
|
|
229
|
-
};
|
|
230
|
-
RadonRetrieval.prototype.toProtobuf = function () {
|
|
231
|
-
var _a;
|
|
232
|
-
var protobuf = {
|
|
233
|
-
kind: this.method,
|
|
234
|
-
};
|
|
235
|
-
if (this.url)
|
|
236
|
-
protobuf.url = this.url;
|
|
237
|
-
if (this.headers) {
|
|
238
|
-
protobuf.headers = Object.entries(this.headers).map(function (_a) {
|
|
239
|
-
var _b = __read(_a, 2), headerKey = _b[0], headerValue = _b[1];
|
|
240
|
-
return {
|
|
241
|
-
left: headerKey,
|
|
242
|
-
right: headerValue,
|
|
243
|
-
};
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
if (this.body) {
|
|
247
|
-
var utf8Array = helpers.toUtf8Array(this.body);
|
|
248
|
-
protobuf.body = utf8Array;
|
|
249
|
-
}
|
|
250
|
-
protobuf.script = Object.values(Uint8Array.from((0, cbor_1.encode)(((_a = this.script) === null || _a === void 0 ? void 0 : _a.encode()) || [])));
|
|
251
|
-
return protobuf;
|
|
252
|
-
};
|
|
253
|
-
RadonRetrieval.prototype.opsCount = function () {
|
|
254
|
-
var _a;
|
|
255
|
-
return countOps(((_a = this.script) === null || _a === void 0 ? void 0 : _a.encode()) || []);
|
|
256
|
-
};
|
|
257
|
-
return RadonRetrieval;
|
|
258
|
-
}());
|
|
259
|
-
exports.RadonRetrieval = RadonRetrieval;
|
|
260
|
-
var RadonCCDR = /** @class */ (function (_super) {
|
|
261
|
-
__extends(RadonCCDR, _super);
|
|
262
|
-
function RadonCCDR(rpc, script) {
|
|
263
|
-
return _super.call(this, Methods.HttpPost, {
|
|
264
|
-
url: "\\0\\",
|
|
265
|
-
body: JSON.stringify({
|
|
266
|
-
jsonrpc: "2.0",
|
|
267
|
-
methods: rpc.method,
|
|
268
|
-
params: rpc === null || rpc === void 0 ? void 0 : rpc.params,
|
|
269
|
-
id: 1,
|
|
270
|
-
}).replaceAll('\\\\', '\\'),
|
|
271
|
-
headers: { "Content-Type": "application/json;charset=UTF-8" },
|
|
272
|
-
script: script
|
|
273
|
-
}) || this;
|
|
274
|
-
}
|
|
275
|
-
RadonCCDR.prototype.isParameterized = function () {
|
|
276
|
-
return this.argsCount > 1;
|
|
277
|
-
};
|
|
278
|
-
return RadonCCDR;
|
|
279
|
-
}(RadonRetrieval));
|
|
280
|
-
exports.RadonCCDR = RadonCCDR;
|
|
281
|
-
function countOps(items) {
|
|
282
|
-
return items.length > 0 ? items.map(function (item) { return Array.isArray(item) ? countOps(item) : 1; }).reduce(function (sum, a) { return sum + a; }) : 0;
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Creates a Witnet randomness Radon RadonRetrieval.
|
|
286
|
-
* @param script (Optional) Radon Script to apply to the random seed proposed by every single witness,
|
|
287
|
-
* before aggregation.
|
|
288
|
-
*/
|
|
289
|
-
function RNG(script) {
|
|
290
|
-
var _a, _b;
|
|
291
|
-
var retrieval = new RadonRetrieval(Methods.RNG, { script: script });
|
|
292
|
-
if ((retrieval === null || retrieval === void 0 ? void 0 : retrieval.script) && ((_b = (_a = retrieval === null || retrieval === void 0 ? void 0 : retrieval.script) === null || _a === void 0 ? void 0 : _a.inputType) === null || _b === void 0 ? void 0 : _b.constructor.name) !== "RadonBytes") {
|
|
293
|
-
throw new TypeError("RNG scripts require [RadonBytes] as input type");
|
|
294
|
-
}
|
|
295
|
-
return retrieval;
|
|
296
|
-
}
|
|
297
|
-
;
|
|
298
|
-
/**
|
|
299
|
-
* Creates a Witnet HTTP/GET Radon RadonRetrieval.
|
|
300
|
-
* @param specs RadonRetrieval parameters: URL, http headers (optional), Radon script (optional),
|
|
301
|
-
* pre-set samples (optional to parameterized sources, only).
|
|
302
|
-
*/
|
|
303
|
-
function HttpGet(specs) {
|
|
304
|
-
return new RadonRetrieval(Methods.HttpGet, {
|
|
305
|
-
url: specs.url,
|
|
306
|
-
headers: specs.headers,
|
|
307
|
-
script: specs.script,
|
|
308
|
-
}, specs === null || specs === void 0 ? void 0 : specs.samples);
|
|
309
|
-
}
|
|
310
|
-
;
|
|
311
|
-
/**
|
|
312
|
-
* Creates a Witnet HTTP/HEAD Radon RadonRetrieval.
|
|
313
|
-
* @param specs RadonRetrieval parameters: URL, http headers (optional), Radon script (optional),
|
|
314
|
-
* pre-set samples (optional to parameterized sources, only).
|
|
315
|
-
*/
|
|
316
|
-
function HttpHead(specs) {
|
|
317
|
-
return new RadonRetrieval(Methods.HttpHead, {
|
|
318
|
-
url: specs.url,
|
|
319
|
-
headers: specs.headers,
|
|
320
|
-
script: specs.script,
|
|
321
|
-
}, specs === null || specs === void 0 ? void 0 : specs.samples);
|
|
322
|
-
}
|
|
323
|
-
;
|
|
324
|
-
/**
|
|
325
|
-
* Creates a Witnet HTTP/POST Radon RadonRetrieval.
|
|
326
|
-
* @param specs RadonRetrieval parameters: URL, HTTP body (optional), HTTP headers (optional), Radon Script (optional),
|
|
327
|
-
* pre-set samples (optional to parameterized sources, only).
|
|
328
|
-
*/
|
|
329
|
-
function HttpPost(specs) {
|
|
330
|
-
return new RadonRetrieval(Methods.HttpPost, {
|
|
331
|
-
url: specs === null || specs === void 0 ? void 0 : specs.url,
|
|
332
|
-
headers: specs === null || specs === void 0 ? void 0 : specs.headers,
|
|
333
|
-
body: specs === null || specs === void 0 ? void 0 : specs.body,
|
|
334
|
-
script: specs === null || specs === void 0 ? void 0 : specs.script,
|
|
335
|
-
}, specs === null || specs === void 0 ? void 0 : specs.samples);
|
|
336
|
-
}
|
|
337
|
-
;
|
|
338
|
-
/**
|
|
339
|
-
* Creates a Witnet GraphQL Radon RadonRetrieval (built on top of an HTTP/POST request).
|
|
340
|
-
* @param specs RadonRetrieval parameters: URL, GraphQL query string, Radon Script (optional),
|
|
341
|
-
* pre-set samples (optional to parameterized sources, only).
|
|
342
|
-
*/
|
|
343
|
-
function GraphQLQuery(specs) {
|
|
344
|
-
return new RadonRetrieval(Methods.HttpPost, {
|
|
345
|
-
url: specs.url,
|
|
346
|
-
body: "{\"query\":\"".concat((0, graphql_query_compress_1.default)(specs.query).replaceAll('"', '\\"'), "\"}"),
|
|
347
|
-
headers: { "Content-Type": "application/json;charset=UTF-8" },
|
|
348
|
-
script: specs === null || specs === void 0 ? void 0 : specs.script,
|
|
349
|
-
}, specs === null || specs === void 0 ? void 0 : specs.samples);
|
|
350
|
-
}
|
|
351
|
-
;
|
|
352
|
-
/**
|
|
353
|
-
* Creates a Cross Chain Data Retrievals retrieval on top of a HTTP/POST request.
|
|
354
|
-
*/
|
|
355
|
-
function CrossChainDataRetrieval(specs) {
|
|
356
|
-
return new RadonCCDR(specs.rpc, specs.script);
|
|
357
|
-
}
|
|
358
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cmlldmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmFkb24vcmV0cmlldmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeU1BLGtCQU1DO0FBT0QsMEJBY0M7QUFPRCw0QkFjQztBQU9ELDRCQWdCQztBQU9ELG9DQWVDO0FBS0QsMERBV0M7QUF0VEQsNkJBQTJDO0FBQzNDLElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0FBRTVDLGtGQUFvRDtBQUNwRCxpQ0FBK0M7QUFHL0M7Ozs7OztHQU1HO0FBQ0gsOENBQTZCO0FBRTdCLElBQVksT0FNWDtBQU5ELFdBQVksT0FBTztJQUNmLHFDQUFVLENBQUE7SUFDViwyQ0FBYyxDQUFBO0lBQ2QsNkNBQWUsQ0FBQTtJQUNmLDZDQUFlLENBQUE7SUFDZixtQ0FBVSxDQUFBO0FBQ2QsQ0FBQyxFQU5XLE9BQU8sdUJBQVAsT0FBTyxRQU1sQjtBQVNEO0lBZUksd0JBQVksTUFBZSxFQUFFLEtBQWEsRUFBRSxPQUFrQzs7UUFDMUUsSUFBSSxNQUFNLEtBQUssT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEdBQUcsTUFBSSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLDBDQUFFLElBQUksQ0FBQSxLQUFJLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUEsQ0FBQyxFQUFFLENBQUM7WUFDaEYsTUFBTSxTQUFTLENBQUMsZ0RBQWdELENBQUMsQ0FBQztRQUN0RSxDQUFDO2FBQU0sSUFBSSxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEdBQUcsQ0FBQSxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xGLE1BQU0sU0FBUyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDN0QsQ0FBQzthQUFNLElBQUksQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxLQUFJLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEQsTUFBTSxTQUFTLENBQUMsOERBQThELENBQUMsQ0FBQTtRQUNuRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDcEIsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUE7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQztvQkFDRCxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ3RCLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7d0JBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQzlDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7d0JBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBQ3pDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUU7d0JBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQzlDLENBQUM7Z0JBQUMsV0FBTSxDQUFDLENBQUEsQ0FBQztZQUNkLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3BFLE1BQU0sSUFBSSxTQUFTLENBQUMscUVBQXFFLENBQUMsQ0FBQTtZQUM5RixDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxDQUFBO1FBQ2pDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUE7UUFDdkIsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTTtZQUFFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxtQkFBVyxDQUFDLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNLENBQUMsQ0FBQTtRQUMvRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLE9BQVIsSUFBSSw2Q0FDakIsT0FBTyxDQUFDLDJCQUEyQixDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxHQUFHLENBQUM7WUFDOUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxJQUFJLENBQUMsVUFDNUMsTUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sS0FBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxPQUFPLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLEVBQXhDLENBQXdDLENBQUMsbUNBQUksRUFBRSxrQkFDM0YsTUFBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sS0FBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxPQUFPLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLEVBQTFDLENBQTBDLENBQUMsbUNBQUksRUFBRSxZQUNwRyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxFQUFFLEtBQUksQ0FBQyxVQUNoQyxDQUFBO1FBQ0QsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksU0FBUyxDQUFDLHFFQUFxRSxDQUFDLENBQUE7UUFDOUYsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQzFCLENBQUM7SUFFTSx3Q0FBZSxHQUF0QjtRQUNJLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGlDQUFRLEdBQWY7O1FBQWdCLGNBQWlCO2FBQWpCLFVBQWlCLEVBQWpCLHFCQUFpQixFQUFqQixJQUFpQjtZQUFqQix5QkFBaUI7O1FBQzdCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksU0FBUyxDQUFDLHVEQUF1RCxDQUFDLENBQUE7UUFDaEYsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLFNBQVMsQ0FBQywrQ0FBd0MsSUFBSSxDQUFDLE1BQU0sZ0JBQU0sSUFBSSxDQUFDLFNBQVMsQ0FBRSxDQUFDLENBQUE7UUFDbEcsQ0FBQztRQUNELE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNuQyxHQUFHLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO1lBQzdDLElBQUksRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7WUFDL0MsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLEVBQVk7b0JBQVosS0FBQSxhQUFZLEVBQVgsR0FBRyxRQUFBLEVBQUUsS0FBSyxRQUFBO2dCQUFNLE9BQUE7b0JBQ2pGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUNuQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztpQkFDeEM7WUFIb0YsQ0FHcEYsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxFQUFFLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsZ0JBQWdCLG9DQUFJLElBQUksVUFBQztTQUNqRCxDQUFDLENBQUE7SUFDTixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0ksd0NBQWUsR0FBdEI7UUFBQSxpQkFpQkM7UUFqQnNCLGdCQUFtQjthQUFuQixVQUFtQixFQUFuQixxQkFBbUIsRUFBbkIsSUFBbUI7WUFBbkIsMkJBQW1COztRQUN0QyxJQUFNLFFBQVEsR0FBcUIsRUFBRSxDQUFBO1FBQ3JDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksU0FBUyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBQSxLQUFLOztZQUNoQixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLEtBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQzFDLEdBQUcsRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFJLENBQUMsU0FBUyxDQUFDO2dCQUMvRCxJQUFJLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQztnQkFDakUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLEVBQXdCO3dCQUF4QixLQUFBLGFBQXdCLEVBQXZCLFNBQVMsUUFBQSxFQUFFLFdBQVcsUUFBQTtvQkFBTSxPQUFBO3dCQUM3RixPQUFPLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUksQ0FBQyxTQUFTLENBQUM7d0JBQzNELE9BQU8sQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQztxQkFDaEU7Z0JBSGdHLENBR2hHLENBQUMsQ0FBQztnQkFDSCxNQUFNLEVBQUUsTUFBQSxLQUFJLENBQUMsTUFBTSwwQ0FBRSxjQUFjLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQzthQUNoRCxDQUFDLENBQUMsQ0FBQTtRQUNQLENBQUMsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxRQUFRLENBQUE7SUFDbkIsQ0FBQztJQUVNLCtCQUFNLEdBQWIsVUFBYyxRQUFrQjs7UUFDNUIsSUFBTSxJQUFJLEdBQUcsQ0FBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFFLENBQUE7UUFDaEUsSUFBSSxJQUFJLEdBQVE7WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxpREFBaUQ7U0FDNUUsQ0FBQTtRQUNELElBQUksSUFBSSxDQUFDLEdBQUc7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7UUFDakMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFVBQVUsRUFBRSxLQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDekgsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRU0sbUNBQVUsR0FBakI7O1FBQ0ksSUFBSSxRQUFRLEdBQVE7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUE7UUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQUUsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFBO1FBQ3JDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsUUFBUSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBQyxFQUF3QjtvQkFBeEIsS0FBQSxhQUF3QixFQUF2QixTQUFTLFFBQUEsRUFBRSxXQUFXLFFBQUE7Z0JBQVEsT0FBTztvQkFDdkYsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLFdBQVc7aUJBQ3JCLENBQUE7WUFBQSxDQUFDLENBQUMsQ0FBQTtRQUNQLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2hELFFBQVEsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFBO1FBQzdCLENBQUM7UUFDRCxRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFBLGFBQVUsRUFBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsTUFBTSxFQUFFLEtBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3pGLE9BQU8sUUFBUSxDQUFBO0lBQ25CLENBQUM7SUFFTSxpQ0FBUSxHQUFmOztRQUNJLE9BQU8sUUFBUSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxNQUFNLEVBQUUsS0FBSSxFQUFFLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBQ0wscUJBQUM7QUFBRCxDQUFDLEFBNUlELElBNElDO0FBNUlZLHdDQUFjO0FBOEkzQjtJQUErQiw2QkFBYztJQUN6QyxtQkFBYSxHQUFrQixFQUFFLE1BQWlCO1FBQzlDLE9BQUEsTUFBSyxZQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDcEIsR0FBRyxFQUFFLE9BQU87WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDakIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNO2dCQUNuQixNQUFNLEVBQUUsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU07Z0JBQ25CLEVBQUUsRUFBRSxDQUFDO2FBQ1IsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQzNCLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxnQ0FBZ0MsRUFBRTtZQUM3RCxNQUFNLFFBQUE7U0FDVCxDQUFDLFNBQUE7SUFDTixDQUFDO0lBQ00sbUNBQWUsR0FBdEI7UUFDSSxPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFDTCxnQkFBQztBQUFELENBQUMsQUFqQkQsQ0FBK0IsY0FBYyxHQWlCNUM7QUFqQlksOEJBQVM7QUFtQnRCLFNBQVMsUUFBUSxDQUFDLEtBQVk7SUFDMUIsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUF4QyxDQUF3QyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsR0FBRyxFQUFFLENBQUMsSUFBSyxPQUFBLEdBQUcsR0FBRyxDQUFDLEVBQVAsQ0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN6SCxDQUFDO0FBRUQ7Ozs7SUFJSTtBQUNKLFNBQWdCLEdBQUcsQ0FBRSxNQUFpQjs7SUFDbEMsSUFBTSxTQUFTLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sUUFBQSxFQUFFLENBQUMsQ0FBQztJQUM5RCxJQUFJLENBQUEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLE1BQU0sS0FBSSxDQUFBLE1BQUEsTUFBQSxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsTUFBTSwwQ0FBRSxTQUFTLDBDQUFFLFdBQVcsQ0FBQyxJQUFJLE1BQUssWUFBWSxFQUFFLENBQUM7UUFDdkYsTUFBTSxJQUFJLFNBQVMsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO0lBQ3pFLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQTtBQUNwQixDQUFDO0FBQUEsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxTQUFnQixPQUFPLENBQUUsS0FLeEI7SUFDRyxPQUFPLElBQUksY0FBYyxDQUNyQixPQUFPLENBQUMsT0FBTyxFQUFFO1FBQ2IsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1FBQ2QsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUN2QixFQUNELEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLENBQ2pCLENBQUM7QUFDTixDQUFDO0FBQUEsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQUUsS0FLekI7SUFDRyxPQUFPLElBQUksY0FBYyxDQUNyQixPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ2QsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1FBQ2QsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1FBQ3RCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUN2QixFQUNELEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLENBQ2pCLENBQUM7QUFDTixDQUFDO0FBQUEsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxTQUFnQixRQUFRLENBQUUsS0FNekI7SUFDRyxPQUFPLElBQUksY0FBYyxDQUNyQixPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ2QsR0FBRyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxHQUFHO1FBQ2YsT0FBTyxFQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPO1FBQ3ZCLElBQUksRUFBRSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSTtRQUNqQixNQUFNLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU07S0FDeEIsRUFDRCxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxDQUNqQixDQUFDO0FBQ04sQ0FBQztBQUFBLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFFLEtBSzdCO0lBQ0csT0FBTyxJQUFJLGNBQWMsQ0FDckIsT0FBTyxDQUFDLFFBQVEsRUFBRTtRQUNkLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztRQUNkLElBQUksRUFBRSx1QkFBZ0IsSUFBQSxnQ0FBZSxFQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxRQUFLO1FBQzlFLE9BQU8sRUFBRSxFQUFFLGNBQWMsRUFBRSxnQ0FBZ0MsRUFBRTtRQUM3RCxNQUFNLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU07S0FDeEIsRUFDRCxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTyxDQUNqQixDQUFDO0FBQ04sQ0FBQztBQUFBLENBQUM7QUFFRjs7R0FFRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLEtBU3ZDO0lBQ0csT0FBTyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5jb2RlIGFzIGNib3JFbmNvZGUgfSBmcm9tIFwiY2JvclwiXG5jb25zdCBoZWxwZXJzID0gcmVxdWlyZShcIi4uLy4uL2Jpbi9oZWxwZXJzXCIpXG5cbmltcG9ydCBncmFwaFFsQ29tcHJlc3MgZnJvbSBcImdyYXBocWwtcXVlcnktY29tcHJlc3NcIlxuaW1wb3J0IHsgUmFkb25BbnksIFJhZG9uU2NyaXB0IH0gZnJvbSBcIi4vdHlwZXNcIlxuaW1wb3J0IHsgQ3Jvc3NDaGFpblJQQyB9IGZyb20gXCIuL2NjZHJcIlxuXG4vKipcbiAqIFByZWNvbXBpbGVkIFJlbW90ZSBQcm9jZWR1cmUgQ2FsbHMgdGhhdCBjYW4gYmUgaW5jbHVkZWQgd2l0aGluXG4gKiBDcm9zcyBDaGFpbiBEYXRhIFJlcXVlc3RzIChpLmUuIGBXaXRuZXQuUmV0cmlldmFscy5DQ0RSKHsgLi4gfSlgLCBcbiAqIGdyb3VwZWQgYnkgc3VwcG9ydGVkIEpTT04tUlBDIHByb3RvY29sOiBFXG4gKiAtIEpTT04gRVRILVJQQyBcbiAqIC0gSlNPTiBXSVQtUlBDIFxuICovXG5leHBvcnQgKiBhcyBSUEMgZnJvbSBcIi4vY2NkclwiXG5cbmV4cG9ydCBlbnVtIE1ldGhvZHMge1xuICAgIE5vbmUgPSAweDAsXG4gICAgSHR0cEdldCA9IDB4MDEsXG4gICAgSHR0cEhlYWQgPSAweDA0LFxuICAgIEh0dHBQb3N0ID0gMHgwMyxcbiAgICBSTkcgPSAweDAyLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNwZWNzIHtcbiAgICB1cmw/OiBzdHJpbmcsXG4gICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgYm9keT86IHN0cmluZyxcbiAgICBzY3JpcHQ/OiBSYWRvbkFueSxcbn1cblxuZXhwb3J0IGNsYXNzIFJhZG9uUmV0cmlldmFsIHtcbiAgICBcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXJnc0NvdW50OiBudW1iZXI7XG4gICAgcHVibGljIHJlYWRvbmx5IG1ldGhvZDogTWV0aG9kcztcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXV0aG9yaXR5Pzogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBib2R5Pzogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBwdWJsaWMgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgcXVlcnk/OiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IHNjaGVtYT86IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2NyaXB0PzogUmFkb25TY3JpcHQ7XG4gICAgcHVibGljIHJlYWRvbmx5IHVybD86IHN0cmluZztcblxuICAgIHB1YmxpYyByZWFkb25seSBzYW1wbGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAgIFxuICAgIGNvbnN0cnVjdG9yKG1ldGhvZDogTWV0aG9kcywgc3BlY3M/OiBTcGVjcywgc2FtcGxlcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPikge1xuICAgICAgICBpZiAobWV0aG9kID09PSBNZXRob2RzLlJORyAmJiAoc3BlY3M/LnVybCB8fCBzcGVjcz8uaGVhZGVycz8uc2l6ZSB8fCBzcGVjcz8uYm9keSkpIHtcbiAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcihcIlJhZG9uUmV0cmlldmFsOiBSTkcgYWNjZXB0cyBubyBVUkxzIG9yIGhlYWRlcnNcIik7XG4gICAgICAgIH0gZWxzZSBpZiAoIXNwZWNzPy51cmwgJiYgKG1ldGhvZCA9PSBNZXRob2RzLkh0dHBQb3N0IHx8IG1ldGhvZCA9PSBNZXRob2RzLkh0dHBHZXQpKSB7XG4gICAgICAgICAgICB0aHJvdyBUeXBlRXJyb3IoXCJSYWRvblJldHJpZXZhbDogVVJMIG11c3QgYmUgc3BlY2lmaWVkXCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHNwZWNzPy5ib2R5ICYmIG1ldGhvZCA9PSBNZXRob2RzLkh0dHBHZXQpIHtcbiAgICAgICAgICAgIHRocm93IFR5cGVFcnJvcihcIlJhZG9uUmV0cmlldmFsOiBib2R5IGNhbm5vdCBiZSBzcGVjaWZpZWQgaW4gSFRUUC1HRVQgcXVlcmllc1wiKVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubWV0aG9kID0gbWV0aG9kXG4gICAgICAgIGlmIChzcGVjcz8udXJsKSB7XG4gICAgICAgICAgICB0aGlzLnVybCA9IHNwZWNzLnVybFxuICAgICAgICAgICAgaWYgKCFoZWxwZXJzLmlzV2lsZGNhcmQoc3BlY3MudXJsKSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwYXJ0cyA9IGhlbHBlcnMucGFyc2VVUkwoc3BlY3MudXJsKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVtYSA9IHBhcnRzWzBdXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0c1sxXSAhPT0gXCJcIikgdGhpcy5hdXRob3JpdHkgPSBwYXJ0c1sxXVxuICAgICAgICAgICAgICAgICAgICBpZiAocGFydHNbMl0gIT09IFwiXCIpIHRoaXMucGF0aCA9IHBhcnRzWzJdXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJ0c1szXSAhPT0gXCJcIikgdGhpcy5xdWVyeSA9IHBhcnRzWzNdXG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzcGVjcz8uaGVhZGVycykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBzcGVjcy5oZWFkZXJzICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHNwZWNzLmhlYWRlcnMpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlJhZG9uUmV0cmlldmFsOiBIVFRQIGhlYWRlcnMgbXVzdCBiZSBvZiB0eXBlIFJlY29yZDxzdHJpbmcsIHN0cmluZz5cIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGVhZGVycyA9IHNwZWNzPy5oZWFkZXJzXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ib2R5ID0gc3BlY3M/LmJvZHlcbiAgICAgICAgaWYgKHNwZWNzPy5zY3JpcHQpIHRoaXMuc2NyaXB0ID0gbmV3IFJhZG9uU2NyaXB0KHNwZWNzPy5zY3JpcHQpXG4gICAgICAgIHRoaXMuYXJnc0NvdW50ID0gTWF0aC5tYXgoXG4gICAgICAgICAgICBoZWxwZXJzLmdldFdpbGRjYXJkc0NvdW50RnJvbVN0cmluZyh0aGlzPy51cmwpLFxuICAgICAgICAgICAgaGVscGVycy5nZXRXaWxkY2FyZHNDb3VudEZyb21TdHJpbmcodGhpcz8uYm9keSksXG4gICAgICAgICAgICAuLi5PYmplY3Qua2V5cyh0aGlzPy5oZWFkZXJzIHx8IHt9KS5tYXAoa2V5ID0+IGhlbHBlcnMuZ2V0V2lsZGNhcmRzQ291bnRGcm9tU3RyaW5nKGtleSkpID8/IFtdLFxuICAgICAgICAgICAgLi4uT2JqZWN0LnZhbHVlcyh0aGlzPy5oZWFkZXJzIHx8IHt9KS5tYXAodmFsdWUgPT4gaGVscGVycy5nZXRXaWxkY2FyZHNDb3VudEZyb21TdHJpbmcodmFsdWUpKSA/PyBbXSxcbiAgICAgICAgICAgIHRoaXMuc2NyaXB0Py5hcmdzQ291bnQoKSB8fCAwLFxuICAgICAgICApXG4gICAgICAgIGlmIChzYW1wbGVzICYmIHRoaXMuYXJnc0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUmFkb25SZXRyaWV2YWw6IHBhc3NlZCBzYW1wbGVzIHRvIG5vbi1wYXJhbWV0ZXJpemVkIFJhZG9uUmV0cmlldmFsLlwiKVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2FtcGxlcyA9IHNhbXBsZXNcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGlzUGFyYW1ldGVyaXplZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJnc0NvdW50ID4gMFxuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgbmV3IFJhZG9uIFJldHJpZXZhbCBieSBvcmRlcmx5IHJlcGxhY2luZyBpbmRleGVkIHdpbGRjYXJkcyB3aXRoIGdpdmVuIHBhcmFtZXRlcnMuXG4gICAgICogRmFpbHMgaWYgbm90IHBhcmFtZXRlcml6ZWQsIG9mIGlmIHBhc3NpbmcgdG9vIG1hbnkgcGFyYW1ldGVycy4gXG4gICAgICovXG4gICAgcHVibGljIGZvbGRBcmdzKC4uLmFyZ3M6IHN0cmluZ1tdKTogUmFkb25SZXRyaWV2YWwge1xuICAgICAgICBpZiAodGhpcy5hcmdzQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFJhZG9uUmV0cmlldmFsOiBjYW5ub3QgZm9sZCB1bnBhcmFtZXRlcml6ZWQgcmV0cmlldmFsYClcbiAgICAgICAgfSBlbHNlIGlmIChhcmdzLmxlbmd0aCA+IHRoaXMuYXJnc0NvdW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGBSYWRvblJldHJpZXZhbDogdG9vIG1heSBhcmdzIHBhc3NlZDogJHthcmdzLmxlbmd0aH0gPiAke3RoaXMuYXJnc0NvdW50fWApXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBSYWRvblJldHJpZXZhbCh0aGlzLm1ldGhvZCwge1xuICAgICAgICAgICAgdXJsOiBoZWxwZXJzLnJlcGxhY2VXaWxkY2FyZHModGhpcy51cmwsIGFyZ3MpLFxuICAgICAgICAgICAgYm9keTogaGVscGVycy5yZXBsYWNlV2lsZGNhcmRzKHRoaXMuYm9keSwgYXJncyksXG4gICAgICAgICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModGhpcy5oZWFkZXJzIHx8IHt9KS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW1xuICAgICAgICAgICAgICAgIGhlbHBlcnMucmVwbGFjZVdpbGRjYXJkcyhrZXksIGFyZ3MpLFxuICAgICAgICAgICAgICAgIGhlbHBlcnMucmVwbGFjZVdpbGRjYXJkcyh2YWx1ZSwgYXJncyksXG4gICAgICAgICAgICBdKSksXG4gICAgICAgICAgICBzY3JpcHQ6IHRoaXMuc2NyaXB0Py5yZXBsYWNlV2lsZGNhcmRzKC4uLmFyZ3MpLFxuICAgICAgICB9KVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIG9uZSBvciBtb3JlIGNsb25lcyBvZiB0aGlzIHJldHJpZXZhbCwgaW4gd2hpY2ggdGhlIGluZGV4LTAgd2lsZGNhcmRcbiAgICAgKiB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBnaXZlbiB2YWx1ZXMuIEZhaWxzIGlmIHRoZSByZXRyaWV2YWwgaXMgbm90IHBhcmFtZXRlcml6ZWQuXG4gICAgICovXG4gICAgcHVibGljIHNwYXduUmV0cmlldmFscyguLi52YWx1ZXM6IHN0cmluZ1tdKTogUmFkb25SZXRyaWV2YWxbXSB7XG4gICAgICAgIGNvbnN0IF9zcGF3bmVkOiBSYWRvblJldHJpZXZhbFtdID0gW11cbiAgICAgICAgaWYgKHRoaXMuYXJnc0NvdW50ID09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYFJhZG9uUmV0cmlldmFsOiBjYW5ub3Qgc3Bhd24gZnJvbSB1bnBhcmFtZXRlcml6ZWQgcmV0cmlldmFsYCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICAgICAgX3NwYXduZWQucHVzaChuZXcgUmFkb25SZXRyaWV2YWwodGhpcy5tZXRob2QsIHtcbiAgICAgICAgICAgICAgICB1cmw6IGhlbHBlcnMuc3BsaWNlV2lsZGNhcmQodGhpcy51cmwsIDAsIHZhbHVlLCB0aGlzLmFyZ3NDb3VudCksXG4gICAgICAgICAgICAgICAgYm9keTogaGVscGVycy5zcGxpY2VXaWxkY2FyZCh0aGlzLmJvZHksIDAsIHZhbHVlLCB0aGlzLmFyZ3NDb3VudCksXG4gICAgICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHRoaXMuaGVhZGVycyB8fCB7fSkubWFwKChbaGVhZGVyS2V5LCBoZWFkZXJWYWx1ZV0pID0+IFtcbiAgICAgICAgICAgICAgICAgICAgaGVscGVycy5zcGxpY2VXaWxkY2FyZChoZWFkZXJLZXksIDAsIHZhbHVlLCB0aGlzLmFyZ3NDb3VudCksXG4gICAgICAgICAgICAgICAgICAgIGhlbHBlcnMuc3BsaWNlV2lsZENhcmQoaGVhZGVyVmFsdWUsIDAsIHZhbHVlLCB0aGlzLmFyZ3NDb3VudCksXG4gICAgICAgICAgICAgICAgXSkpLFxuICAgICAgICAgICAgICAgIHNjcmlwdDogdGhpcy5zY3JpcHQ/LnNwbGljZVdpbGRjYXJkKDAsIHZhbHVlKVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBfc3Bhd25lZFxuICAgIH1cblxuICAgIHB1YmxpYyB0b0pTT04oaHVtYW5pemU/OiBib29sZWFuKTogYW55IHtcbiAgICAgICAgY29uc3Qga2luZCA9IFsgXCJcIiwgXCJIVFRQLUdFVFwiLCBcIlJOR1wiLCBcIkhUVFAtUE9TVFwiLCBcIkhUVFAtSEVBRFwiIF1cbiAgICAgICAgbGV0IGpzb246IGFueSA9IHtcbiAgICAgICAgICAgIGtpbmQ6IGtpbmRbdGhpcy5tZXRob2RdIC8vIGh1bWFuaXplID8gTWV0aG9kc1t0aGlzLm1ldGhvZF0gOiB0aGlzLm1ldGhvZCxcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy51cmwpIGpzb24udXJsID0gdGhpcy51cmxcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVycykge1xuICAgICAgICAgICAganNvbi5oZWFkZXJzID0gT2JqZWN0LmVudHJpZXModGhpcy5oZWFkZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5ib2R5KSBqc29uLmJvZHkgPSB0aGlzLmJvZHlcbiAgICAgICAganNvbi5zY3JpcHQgPSBodW1hbml6ZSA/IHRoaXMuc2NyaXB0Py50b1N0cmluZygpIDogQXJyYXkuZnJvbShoZWxwZXJzLmZyb21IZXhTdHJpbmcodGhpcy5zY3JpcHQ/LnRvQnl0ZWNvZGUoKSB8fCAnMHg4MCcpKVxuICAgICAgICByZXR1cm4ganNvblxuICAgIH1cblxuICAgIHB1YmxpYyB0b1Byb3RvYnVmKCk6IGFueSB7XG4gICAgICAgIGxldCBwcm90b2J1ZjogYW55ID0ge1xuICAgICAgICAgICAga2luZDogdGhpcy5tZXRob2QsXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXJsKSBwcm90b2J1Zi51cmwgPSB0aGlzLnVybFxuICAgICAgICBpZiAodGhpcy5oZWFkZXJzKSB7XG4gICAgICAgICAgICBwcm90b2J1Zi5oZWFkZXJzID0gT2JqZWN0LmVudHJpZXModGhpcy5oZWFkZXJzKS5tYXAoKFtoZWFkZXJLZXksIGhlYWRlclZhbHVlXSkgPT4geyByZXR1cm4geyBcbiAgICAgICAgICAgICAgICBsZWZ0OiBoZWFkZXJLZXksIFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBoZWFkZXJWYWx1ZSxcbiAgICAgICAgICAgIH19KVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmJvZHkpIHtcbiAgICAgICAgICAgIGNvbnN0IHV0ZjhBcnJheSA9IGhlbHBlcnMudG9VdGY4QXJyYXkodGhpcy5ib2R5KVxuICAgICAgICAgICAgcHJvdG9idWYuYm9keSA9IHV0ZjhBcnJheVxuICAgICAgICB9XG4gICAgICAgIHByb3RvYnVmLnNjcmlwdCA9IE9iamVjdC52YWx1ZXMoVWludDhBcnJheS5mcm9tKGNib3JFbmNvZGUodGhpcy5zY3JpcHQ/LmVuY29kZSgpIHx8IFtdKSkpXG4gICAgICAgIHJldHVybiBwcm90b2J1ZlxuICAgIH1cblxuICAgIHB1YmxpYyBvcHNDb3VudCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gY291bnRPcHModGhpcy5zY3JpcHQ/LmVuY29kZSgpIHx8IFtdKVxuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJhZG9uQ0NEUiBleHRlbmRzIFJhZG9uUmV0cmlldmFsIHtcbiAgICBjb25zdHJ1Y3RvciAocnBjOiBDcm9zc0NoYWluUlBDLCBzY3JpcHQ/OiBSYWRvbkFueSkge1xuICAgICAgICBzdXBlcihNZXRob2RzLkh0dHBQb3N0LCB7XG4gICAgICAgICAgICB1cmw6IFwiXFxcXDBcXFxcXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgICAgICAgICBtZXRob2RzOiBycGMubWV0aG9kLFxuICAgICAgICAgICAgICAgIHBhcmFtczogcnBjPy5wYXJhbXMsXG4gICAgICAgICAgICAgICAgaWQ6IDEsXG4gICAgICAgICAgICB9KS5yZXBsYWNlQWxsKCdcXFxcXFxcXCcsICdcXFxcJyksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04XCIgfSxcbiAgICAgICAgICAgIHNjcmlwdFxuICAgICAgICB9KVxuICAgIH1cbiAgICBwdWJsaWMgaXNQYXJhbWV0ZXJpemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcmdzQ291bnQgPiAxXG4gICAgfVxufVxuXG5mdW5jdGlvbiBjb3VudE9wcyhpdGVtczogYW55W10pOiBudW1iZXIge1xuICAgIHJldHVybiBpdGVtcy5sZW5ndGggPiAwID8gaXRlbXMubWFwKGl0ZW0gPT4gQXJyYXkuaXNBcnJheShpdGVtKSA/IGNvdW50T3BzKGl0ZW0pIDogMSkucmVkdWNlKChzdW0sIGEpID0+IHN1bSArIGEpIDogMFxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBXaXRuZXQgcmFuZG9tbmVzcyBSYWRvbiBSYWRvblJldHJpZXZhbC5cbiAqIEBwYXJhbSBzY3JpcHQgKE9wdGlvbmFsKSBSYWRvbiBTY3JpcHQgdG8gYXBwbHkgdG8gdGhlIHJhbmRvbSBzZWVkIHByb3Bvc2VkIGJ5IGV2ZXJ5IHNpbmdsZSB3aXRuZXNzLCBcbiAqIGJlZm9yZSBhZ2dyZWdhdGlvbi5cbiAgKi9cbmV4cG9ydCBmdW5jdGlvbiBSTkcgKHNjcmlwdD86IFJhZG9uQW55KSB7IFxuICAgIGNvbnN0IHJldHJpZXZhbCA9IG5ldyBSYWRvblJldHJpZXZhbChNZXRob2RzLlJORywgeyBzY3JpcHQgfSk7IFxuICAgIGlmIChyZXRyaWV2YWw/LnNjcmlwdCAmJiByZXRyaWV2YWw/LnNjcmlwdD8uaW5wdXRUeXBlPy5jb25zdHJ1Y3Rvci5uYW1lICE9PSBcIlJhZG9uQnl0ZXNcIikge1xuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUk5HIHNjcmlwdHMgcmVxdWlyZSBbUmFkb25CeXRlc10gYXMgaW5wdXQgdHlwZVwiKVxuICAgIH1cbiAgICByZXR1cm4gcmV0cmlldmFsXG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBXaXRuZXQgSFRUUC9HRVQgUmFkb24gUmFkb25SZXRyaWV2YWwuXG4gKiBAcGFyYW0gc3BlY3MgUmFkb25SZXRyaWV2YWwgcGFyYW1ldGVyczogVVJMLCBodHRwIGhlYWRlcnMgKG9wdGlvbmFsKSwgUmFkb24gc2NyaXB0IChvcHRpb25hbCksIFxuICogcHJlLXNldCBzYW1wbGVzIChvcHRpb25hbCB0byBwYXJhbWV0ZXJpemVkIHNvdXJjZXMsIG9ubHkpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gSHR0cEdldCAoc3BlY3M6IHtcbiAgICB1cmw6IHN0cmluZyxcbiAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBzY3JpcHQ/OiBSYWRvbkFueSxcbiAgICBzYW1wbGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+XG59KSB7XG4gICAgcmV0dXJuIG5ldyBSYWRvblJldHJpZXZhbChcbiAgICAgICAgTWV0aG9kcy5IdHRwR2V0LCB7IFxuICAgICAgICAgICAgdXJsOiBzcGVjcy51cmwsIFxuICAgICAgICAgICAgaGVhZGVyczogc3BlY3MuaGVhZGVycywgXG4gICAgICAgICAgICBzY3JpcHQ6IHNwZWNzLnNjcmlwdCwgXG4gICAgICAgIH0sXG4gICAgICAgIHNwZWNzPy5zYW1wbGVzLFxuICAgICk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBXaXRuZXQgSFRUUC9IRUFEIFJhZG9uIFJhZG9uUmV0cmlldmFsLlxuICogQHBhcmFtIHNwZWNzIFJhZG9uUmV0cmlldmFsIHBhcmFtZXRlcnM6IFVSTCwgaHR0cCBoZWFkZXJzIChvcHRpb25hbCksIFJhZG9uIHNjcmlwdCAob3B0aW9uYWwpLCBcbiAqIHByZS1zZXQgc2FtcGxlcyAob3B0aW9uYWwgdG8gcGFyYW1ldGVyaXplZCBzb3VyY2VzLCBvbmx5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEh0dHBIZWFkIChzcGVjczoge1xuICAgIHVybDogc3RyaW5nLFxuICAgIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIHNjcmlwdD86IFJhZG9uQW55LFxuICAgIHNhbXBsZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT5cbn0pIHtcbiAgICByZXR1cm4gbmV3IFJhZG9uUmV0cmlldmFsKFxuICAgICAgICBNZXRob2RzLkh0dHBIZWFkLCB7IFxuICAgICAgICAgICAgdXJsOiBzcGVjcy51cmwsIFxuICAgICAgICAgICAgaGVhZGVyczogc3BlY3MuaGVhZGVycywgXG4gICAgICAgICAgICBzY3JpcHQ6IHNwZWNzLnNjcmlwdCwgXG4gICAgICAgIH0sXG4gICAgICAgIHNwZWNzPy5zYW1wbGVzLFxuICAgICk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBXaXRuZXQgSFRUUC9QT1NUIFJhZG9uIFJhZG9uUmV0cmlldmFsLlxuICogQHBhcmFtIHNwZWNzIFJhZG9uUmV0cmlldmFsIHBhcmFtZXRlcnM6IFVSTCwgSFRUUCBib2R5IChvcHRpb25hbCksIEhUVFAgaGVhZGVycyAob3B0aW9uYWwpLCBSYWRvbiBTY3JpcHQgKG9wdGlvbmFsKSwgXG4gKiBwcmUtc2V0IHNhbXBsZXMgKG9wdGlvbmFsIHRvIHBhcmFtZXRlcml6ZWQgc291cmNlcywgb25seSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBIdHRwUG9zdCAoc3BlY3M/OiB7XG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIHNjcmlwdD86IFJhZG9uQW55LFxuICAgIHNhbXBsZXM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT5cbn0pIHtcbiAgICByZXR1cm4gbmV3IFJhZG9uUmV0cmlldmFsKFxuICAgICAgICBNZXRob2RzLkh0dHBQb3N0LCB7IFxuICAgICAgICAgICAgdXJsOiBzcGVjcz8udXJsLCBcbiAgICAgICAgICAgIGhlYWRlcnM6IHNwZWNzPy5oZWFkZXJzLCBcbiAgICAgICAgICAgIGJvZHk6IHNwZWNzPy5ib2R5LCBcbiAgICAgICAgICAgIHNjcmlwdDogc3BlY3M/LnNjcmlwdCwgXG4gICAgICAgIH0sXG4gICAgICAgIHNwZWNzPy5zYW1wbGVzLFxuICAgICk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBXaXRuZXQgR3JhcGhRTCBSYWRvbiBSYWRvblJldHJpZXZhbCAoYnVpbHQgb24gdG9wIG9mIGFuIEhUVFAvUE9TVCByZXF1ZXN0KS5cbiAqIEBwYXJhbSBzcGVjcyBSYWRvblJldHJpZXZhbCBwYXJhbWV0ZXJzOiBVUkwsIEdyYXBoUUwgcXVlcnkgc3RyaW5nLCBSYWRvbiBTY3JpcHQgKG9wdGlvbmFsKSwgXG4gKiBwcmUtc2V0IHNhbXBsZXMgKG9wdGlvbmFsIHRvIHBhcmFtZXRlcml6ZWQgc291cmNlcywgb25seSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBHcmFwaFFMUXVlcnkgKHNwZWNzOiB7IFxuICAgIHVybDogc3RyaW5nLCBcbiAgICBxdWVyeTogc3RyaW5nLCBcbiAgICBzY3JpcHQ/OiBSYWRvbkFueSxcbiAgICBzYW1wbGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+XG59KSB7XG4gICAgcmV0dXJuIG5ldyBSYWRvblJldHJpZXZhbChcbiAgICAgICAgTWV0aG9kcy5IdHRwUG9zdCwge1xuICAgICAgICAgICAgdXJsOiBzcGVjcy51cmwsIFxuICAgICAgICAgICAgYm9keTogYHtcXFwicXVlcnlcXFwiOlxcXCIke2dyYXBoUWxDb21wcmVzcyhzcGVjcy5xdWVyeSkucmVwbGFjZUFsbCgnXCInLCAnXFxcXFwiJyl9XFxcIn1gLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOFwiIH0sXG4gICAgICAgICAgICBzY3JpcHQ6IHNwZWNzPy5zY3JpcHQsXG4gICAgICAgIH0sIFxuICAgICAgICBzcGVjcz8uc2FtcGxlc1xuICAgICk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBDcm9zcyBDaGFpbiBEYXRhIFJldHJpZXZhbHMgcmV0cmlldmFsIG9uIHRvcCBvZiBhIEhUVFAvUE9TVCByZXF1ZXN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ3Jvc3NDaGFpbkRhdGFSZXRyaWV2YWwoc3BlY3MgOiB7XG4gICAgLyoqXG4gICAgICogQ3Jvc3NDaGFpblJQQyBvYmplY3QgZW5jYXBzdWxhdGluZyBSUEMgbWV0aG9kIGFuZCBwYXJhbWV0ZXJzLlxuICAgICAqL1xuICAgIHJwYzogQ3Jvc3NDaGFpblJQQyxcbiAgICAvKipcbiAgICAgKiBSYWRvblNjcmlwdCB0byByZWR1Y2UgcmV0dXJuZWQgdmFsdWUuXG4gICAgICovXG4gICAgc2NyaXB0PzogUmFkb25Bbnlcbn0pIHtcbiAgICByZXR1cm4gbmV3IFJhZG9uQ0NEUihzcGVjcy5ycGMsIHNwZWNzLnNjcmlwdClcbn1cbiJdfQ==
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import type { Call as RPC } from "./ccdr"
|
|
2
|
-
import type { RadonType as Script } from "./types"
|
|
3
|
-
declare enum Methods {
|
|
4
|
-
None = 0,
|
|
5
|
-
HttpGet = 1,
|
|
6
|
-
HttpHead = 4,
|
|
7
|
-
HttpPost = 3,
|
|
8
|
-
RNG = 2,
|
|
9
|
-
}
|
|
10
|
-
export interface Specs {
|
|
11
|
-
url?: string
|
|
12
|
-
headers?: Map<string, string>
|
|
13
|
-
body?: string
|
|
14
|
-
script?: Script
|
|
15
|
-
tuples?: Map<string, string[]>
|
|
16
|
-
}
|
|
17
|
-
export declare class Class {
|
|
18
|
-
argsCount: number
|
|
19
|
-
authority?: string
|
|
20
|
-
body?: string
|
|
21
|
-
headers?: string[][]
|
|
22
|
-
method: Methods
|
|
23
|
-
path?: string
|
|
24
|
-
query?: string
|
|
25
|
-
schema?: string
|
|
26
|
-
script?: Script
|
|
27
|
-
url?: string
|
|
28
|
-
tuples?: Map<string, string[]>
|
|
29
|
-
constructor(method: Methods, specs?: Specs)
|
|
30
|
-
/**
|
|
31
|
-
* Creates clones of this retrieval where all occurences of the specified parameter
|
|
32
|
-
* are replaced by the given values. Fails if the retrieval refers no parameters,
|
|
33
|
-
* or if the specified index is not referred by it.
|
|
34
|
-
* @param argIndex Index of the parameter upon which the new instances will be created.
|
|
35
|
-
* @param values Values used for the creation of the new sources.
|
|
36
|
-
* @returns An array with as many sources as spawning values were specified.
|
|
37
|
-
*/
|
|
38
|
-
spawn(argIndex: number, values: string[]): Class[]
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Creates a Witnet randomness Radon Retrieval.
|
|
42
|
-
* @param script (Optional) Radon Script to apply to the random seed proposed by every single witness,
|
|
43
|
-
* before aggregation.
|
|
44
|
-
*/
|
|
45
|
-
export declare function RNG(script?: any): Class
|
|
46
|
-
/**
|
|
47
|
-
* Creates a Witnet HTTP/GET Radon Retrieval.
|
|
48
|
-
* @param specs Retrieval parameters: URL, http headers (optional), Radon script (optional),
|
|
49
|
-
* pre-set tuples (optional to parameterized sources, only).
|
|
50
|
-
*/
|
|
51
|
-
export declare function HttpGet(specs: {
|
|
52
|
-
url: string
|
|
53
|
-
headers?: Map<string, string>
|
|
54
|
-
script?: Script
|
|
55
|
-
tuples?: Map<string, string[]>
|
|
56
|
-
}): Class
|
|
57
|
-
/**
|
|
58
|
-
* Creates a Witnet HTTP/HEAD Radon Retrieval.
|
|
59
|
-
* @param specs Retrieval parameters: URL, http headers (optional), Radon script (optional),
|
|
60
|
-
* pre-set tuples (optional to parameterized sources, only).
|
|
61
|
-
*/
|
|
62
|
-
export declare function HttpHead(specs: {
|
|
63
|
-
url: string
|
|
64
|
-
headers?: Map<string, string>
|
|
65
|
-
script?: Script
|
|
66
|
-
tuples?: Map<string, string[]>
|
|
67
|
-
}): Class
|
|
68
|
-
/**
|
|
69
|
-
* Creates a Witnet HTTP/POST Radon Retrieval.
|
|
70
|
-
* @param specs Retrieval parameters: URL, HTTP body (optional), HTTP headers (optional), Radon Script (optional),
|
|
71
|
-
* pre-set tuples (optional to parameterized sources, only).
|
|
72
|
-
*/
|
|
73
|
-
export declare function HttpPost(specs?: {
|
|
74
|
-
url: string
|
|
75
|
-
body: string
|
|
76
|
-
headers?: Map<string, string>
|
|
77
|
-
script?: Script
|
|
78
|
-
tuples?: Map<string, string[]>
|
|
79
|
-
}): Class
|
|
80
|
-
/**
|
|
81
|
-
* Creates a Witnet GraphQL Radon Retrieval (built on top of an HTTP/POST request).
|
|
82
|
-
* @param specs Retrieval parameters: URL, GraphQL query string, Radon Script (optional),
|
|
83
|
-
* pre-set tuples (optional to parameterized sources, only).
|
|
84
|
-
*/
|
|
85
|
-
export declare function GraphQLQuery(specs: {
|
|
86
|
-
url: string
|
|
87
|
-
query: string
|
|
88
|
-
script?: Script
|
|
89
|
-
tuples?: Map<string, string[]>
|
|
90
|
-
}): Class
|
|
91
|
-
/**
|
|
92
|
-
* Creates a Cross Chain Data Source built on top of a HTTP/POST request.
|
|
93
|
-
* @param specs Retrieval parameters: RPC provider URL, RPC object encapsulating method and parameters,
|
|
94
|
-
* Radon Script (optional) to apply to returned value, and pre-set tuples (optional to parameterized sources, only).
|
|
95
|
-
*/
|
|
96
|
-
export declare function CrossChainDataSource(specs: {
|
|
97
|
-
url: string
|
|
98
|
-
rpc: RPC
|
|
99
|
-
script?: Script
|
|
100
|
-
tuples?: Map<string, string[]>
|
|
101
|
-
}): Class
|
|
102
|
-
//# sourceMappingURL=sources.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/lib/radon/sources.ts"],"names":[],"mappings":"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"}
|