@witnet/sdk 1.0.3 → 1.0.4

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.
Files changed (197) hide show
  1. package/.env_witnet +6 -6
  2. package/LICENSE +21 -21
  3. package/README.md +103 -103
  4. package/dist/bin/helpers.d.ts +88 -0
  5. package/dist/bin/helpers.d.ts.map +1 -0
  6. package/dist/bin/helpers.js +866 -0
  7. package/dist/index.d.ts +4 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +42 -0
  10. package/dist/lib/crypto/account.d.ts +18 -0
  11. package/dist/lib/crypto/account.d.ts.map +1 -0
  12. package/dist/lib/crypto/account.js +152 -0
  13. package/dist/lib/crypto/coinbase.d.ts +9 -0
  14. package/dist/lib/crypto/coinbase.d.ts.map +1 -0
  15. package/dist/lib/crypto/coinbase.js +39 -0
  16. package/dist/lib/crypto/index.d.ts +7 -0
  17. package/dist/lib/crypto/index.d.ts.map +1 -0
  18. package/dist/lib/crypto/index.js +28 -0
  19. package/dist/lib/crypto/interfaces.d.ts +80 -0
  20. package/dist/lib/crypto/interfaces.d.ts.map +1 -0
  21. package/dist/lib/crypto/interfaces.js +3 -0
  22. package/dist/lib/crypto/payloads/DataRequestPayload.d.ts +47 -0
  23. package/dist/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -0
  24. package/dist/lib/crypto/payloads/DataRequestPayload.js +384 -0
  25. package/dist/lib/crypto/payloads/StakePayload.d.ts +27 -0
  26. package/dist/lib/crypto/payloads/StakePayload.d.ts.map +1 -0
  27. package/dist/lib/crypto/payloads/StakePayload.js +184 -0
  28. package/dist/lib/crypto/payloads/UnstakePayload.d.ts +35 -0
  29. package/dist/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -0
  30. package/dist/lib/crypto/payloads/UnstakePayload.js +244 -0
  31. package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts +24 -0
  32. package/dist/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -0
  33. package/dist/lib/crypto/payloads/ValueTransferPayload.js +182 -0
  34. package/dist/lib/crypto/payloads.d.ts +54 -0
  35. package/dist/lib/crypto/payloads.d.ts.map +1 -0
  36. package/dist/lib/crypto/payloads.js +224 -0
  37. package/dist/lib/crypto/signer.d.ts +26 -0
  38. package/dist/lib/crypto/signer.d.ts.map +1 -0
  39. package/dist/lib/crypto/signer.js +299 -0
  40. package/dist/lib/crypto/transmitters/DataRequests.d.ts +14 -0
  41. package/dist/lib/crypto/transmitters/DataRequests.d.ts.map +1 -0
  42. package/dist/lib/crypto/transmitters/DataRequests.js +62 -0
  43. package/dist/lib/crypto/transmitters/StakeDeposits.d.ts +11 -0
  44. package/dist/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -0
  45. package/dist/lib/crypto/transmitters/StakeDeposits.js +48 -0
  46. package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts +17 -0
  47. package/dist/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -0
  48. package/dist/lib/crypto/transmitters/StakeWithdrawals.js +115 -0
  49. package/dist/lib/crypto/transmitters/ValueTransfers.d.ts +10 -0
  50. package/dist/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -0
  51. package/dist/lib/crypto/transmitters/ValueTransfers.js +47 -0
  52. package/dist/lib/crypto/transmitters.d.ts +46 -0
  53. package/dist/lib/crypto/transmitters.d.ts.map +1 -0
  54. package/dist/lib/crypto/transmitters.js +506 -0
  55. package/dist/lib/crypto/types.d.ts +127 -0
  56. package/dist/lib/crypto/types.d.ts.map +1 -0
  57. package/dist/lib/crypto/types.js +261 -0
  58. package/dist/lib/crypto/utils.d.ts +10 -0
  59. package/dist/lib/crypto/utils.d.ts.map +1 -0
  60. package/dist/lib/crypto/utils.js +97 -0
  61. package/dist/lib/crypto/wallet.d.ts +26 -0
  62. package/dist/lib/crypto/wallet.d.ts.map +1 -0
  63. package/dist/lib/crypto/wallet.js +327 -0
  64. package/dist/lib/helpers.d.ts +90 -0
  65. package/dist/lib/helpers.d.ts.map +1 -0
  66. package/dist/lib/helpers.js +1031 -0
  67. package/dist/lib/index.d.ts +5 -0
  68. package/dist/lib/index.d.ts.map +1 -0
  69. package/dist/lib/index.js +21 -0
  70. package/dist/lib/radon/artifacts.d.ts +55 -0
  71. package/dist/lib/radon/artifacts.d.ts.map +1 -0
  72. package/dist/lib/radon/artifacts.js +347 -0
  73. package/dist/lib/radon/ccdr/eth.d.ts +100 -0
  74. package/dist/lib/radon/ccdr/eth.d.ts.map +1 -0
  75. package/dist/lib/radon/ccdr/eth.js +237 -0
  76. package/dist/lib/radon/ccdr/index.d.ts +34 -0
  77. package/dist/lib/radon/ccdr/index.d.ts.map +1 -0
  78. package/dist/lib/radon/ccdr/index.js +63 -0
  79. package/dist/lib/radon/ccdr/wit.d.ts +29 -0
  80. package/dist/lib/radon/ccdr/wit.d.ts.map +1 -0
  81. package/dist/lib/radon/ccdr/wit.js +60 -0
  82. package/dist/lib/radon/filters.d.ts +14 -0
  83. package/dist/lib/radon/filters.d.ts.map +1 -0
  84. package/dist/lib/radon/filters.js +47 -0
  85. package/dist/lib/radon/index.d.ts +36 -0
  86. package/dist/lib/radon/index.d.ts.map +1 -0
  87. package/dist/lib/radon/index.js +154 -0
  88. package/dist/lib/radon/reducers.d.ts +29 -0
  89. package/dist/lib/radon/reducers.d.ts.map +1 -0
  90. package/dist/lib/radon/reducers.js +101 -0
  91. package/dist/lib/radon/retrievals.d.ts +120 -0
  92. package/dist/lib/radon/retrievals.d.ts.map +1 -0
  93. package/dist/lib/radon/retrievals.js +358 -0
  94. package/dist/lib/radon/sources.d.ts +102 -0
  95. package/dist/lib/radon/sources.d.ts.map +1 -0
  96. package/dist/lib/radon/sources.js +294 -0
  97. package/dist/lib/radon/types.d.ts +521 -0
  98. package/dist/lib/radon/types.d.ts.map +1 -0
  99. package/dist/lib/radon/types.js +1066 -0
  100. package/dist/lib/radon/utils.d.ts +55 -0
  101. package/dist/lib/radon/utils.d.ts.map +1 -0
  102. package/dist/lib/radon/utils.js +181 -0
  103. package/dist/lib/rpc/farm.d.ts +66 -0
  104. package/dist/lib/rpc/farm.d.ts.map +1 -0
  105. package/dist/lib/rpc/farm.js +808 -0
  106. package/dist/lib/rpc/index.d.ts +3 -0
  107. package/dist/lib/rpc/index.d.ts.map +1 -0
  108. package/dist/lib/rpc/index.js +19 -0
  109. package/dist/lib/rpc/node.d.ts +38 -0
  110. package/dist/lib/rpc/node.d.ts.map +1 -0
  111. package/dist/lib/rpc/node.js +335 -0
  112. package/dist/lib/rpc/nodes.d.ts +40 -0
  113. package/dist/lib/rpc/nodes.d.ts.map +1 -0
  114. package/dist/lib/rpc/nodes.js +531 -0
  115. package/dist/lib/rpc/provider.d.ts +72 -0
  116. package/dist/lib/rpc/provider.d.ts.map +1 -0
  117. package/dist/lib/rpc/provider.js +402 -0
  118. package/dist/lib/rpc/reporter.d.ts +18 -0
  119. package/dist/lib/rpc/reporter.d.ts.map +1 -0
  120. package/dist/lib/rpc/reporter.js +99 -0
  121. package/dist/lib/rpc/types.d.ts +396 -0
  122. package/dist/lib/rpc/types.d.ts.map +1 -0
  123. package/dist/lib/rpc/types.js +81 -0
  124. package/dist/lib/rpc/wallet.d.ts +72 -0
  125. package/dist/lib/rpc/wallet.d.ts.map +1 -0
  126. package/dist/lib/rpc/wallet.js +41 -0
  127. package/dist/lib/types.d.ts +19 -0
  128. package/dist/lib/types.d.ts.map +1 -0
  129. package/dist/lib/types.js +7 -0
  130. package/dist/lib/utils.d.ts +5 -0
  131. package/dist/lib/utils.d.ts.map +1 -0
  132. package/dist/lib/utils.js +51 -0
  133. package/dist/package.json +1 -1
  134. package/dist/src/bin/helpers.js +1 -1
  135. package/dist/src/index.js +1 -1
  136. package/dist/src/lib/crypto/account.js +1 -1
  137. package/dist/src/lib/crypto/coinbase.js +1 -1
  138. package/dist/src/lib/crypto/index.js +1 -1
  139. package/dist/src/lib/crypto/interfaces.js +1 -1
  140. package/dist/src/lib/crypto/payloads/DataRequestPayload.js +1 -1
  141. package/dist/src/lib/crypto/payloads/StakePayload.js +1 -1
  142. package/dist/src/lib/crypto/payloads/UnstakePayload.js +1 -1
  143. package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +1 -1
  144. package/dist/src/lib/crypto/payloads.js +1 -1
  145. package/dist/src/lib/crypto/signer.js +1 -1
  146. package/dist/src/lib/crypto/transmitters/DataRequests.js +1 -1
  147. package/dist/src/lib/crypto/transmitters/StakeDeposits.js +1 -1
  148. package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +1 -1
  149. package/dist/src/lib/crypto/transmitters/ValueTransfers.js +1 -1
  150. package/dist/src/lib/crypto/transmitters.js +1 -1
  151. package/dist/src/lib/crypto/types.js +1 -1
  152. package/dist/src/lib/crypto/utils.js +1 -1
  153. package/dist/src/lib/crypto/wallet.js +1 -1
  154. package/dist/src/lib/index.js +1 -1
  155. package/dist/src/lib/radon/ccdr/eth.js +1 -1
  156. package/dist/src/lib/radon/ccdr/index.js +1 -1
  157. package/dist/src/lib/radon/ccdr/wit.js +1 -1
  158. package/dist/src/lib/radon/filters.js +1 -1
  159. package/dist/src/lib/radon/index.js +1 -1
  160. package/dist/src/lib/radon/reducers.js +1 -1
  161. package/dist/src/lib/radon/types.js +1 -1
  162. package/dist/src/lib/radon/utils.js +1 -1
  163. package/dist/src/lib/rpc/index.js +1 -1
  164. package/dist/src/lib/rpc/nodes.js +1 -1
  165. package/dist/src/lib/rpc/provider.js +1 -1
  166. package/dist/src/lib/rpc/reporter.js +1 -1
  167. package/dist/src/lib/rpc/types.js +1 -1
  168. package/dist/src/lib/types.d.ts +1 -1
  169. package/dist/src/lib/types.d.ts.map +1 -1
  170. package/dist/src/lib/types.js +1 -1
  171. package/dist/src/lib/utils.js +1 -1
  172. package/dist/witnet/assets/index.js +1 -1
  173. package/dist/witnet/assets/modals/index.js +1 -1
  174. package/dist/witnet/assets/modals/web3/eth.js +1 -1
  175. package/dist/witnet/assets/modals/web3/ipfs.js +1 -1
  176. package/dist/witnet/assets/modals/web3/wit.js +1 -1
  177. package/dist/witnet/assets/requests.js +1 -1
  178. package/package.json +1 -1
  179. package/src/bin/cli/history.js +31 -31
  180. package/src/bin/cli/inspect.js +405 -405
  181. package/src/bin/cli/network.js +594 -594
  182. package/src/bin/cli/nodes.js +364 -364
  183. package/src/bin/cli/radon.js +815 -815
  184. package/src/bin/cli/wallet.js +1117 -1117
  185. package/src/bin/helpers.js +840 -840
  186. package/src/bin/postinstall.js +9 -9
  187. package/src/bin/toolkit.js +295 -295
  188. package/witnet/assets/_index.js +8 -8
  189. package/witnet/assets/_requests.js +25 -25
  190. package/witnet/assets/_sources.js +36 -36
  191. package/witnet/assets/_templates.js +36 -36
  192. package/witnet/assets/index.js +4 -4
  193. package/witnet/assets/modals/index.js +9 -9
  194. package/witnet/assets/modals/web3/eth.js +29 -29
  195. package/witnet/assets/modals/web3/ipfs.js +19 -19
  196. package/witnet/assets/modals/web3/wit.js +21 -21
  197. package/witnet/assets/requests.js +95 -95
@@ -0,0 +1,294 @@
1
+ var __read =
2
+ (this && this.__read) ||
3
+ ((o, n) => {
4
+ var m = typeof Symbol === "function" && o[Symbol.iterator]
5
+ if (!m) return o
6
+ var i = m.call(o),
7
+ r,
8
+ ar = [],
9
+ e
10
+ try {
11
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value)
12
+ } catch (error) {
13
+ e = { error: error }
14
+ } finally {
15
+ try {
16
+ if (r && !r.done && (m = i["return"])) m.call(i)
17
+ } finally {
18
+ if (e) throw e.error
19
+ }
20
+ }
21
+ return ar
22
+ })
23
+ var __spreadArray =
24
+ (this && this.__spreadArray) ||
25
+ ((to, from, pack) => {
26
+ if (pack || arguments.length === 2)
27
+ for (var i = 0, l = from.length, ar; i < l; i++) {
28
+ if (ar || !(i in from)) {
29
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i)
30
+ ar[i] = from[i]
31
+ }
32
+ }
33
+ return to.concat(ar || Array.prototype.slice.call(from))
34
+ })
35
+ var __importDefault =
36
+ (this && this.__importDefault) ||
37
+ ((mod) => (mod && mod.__esModule ? mod : { default: mod }))
38
+ Object.defineProperty(exports, "__esModule", { value: true })
39
+ exports.CrossChainDataSource =
40
+ exports.GraphQLQuery =
41
+ exports.HttpPost =
42
+ exports.HttpHead =
43
+ exports.HttpGet =
44
+ exports.RNG =
45
+ exports.Class =
46
+ void 0
47
+ var utils = require("./utils")
48
+ var graphql_query_compress_1 = __importDefault(
49
+ require("graphql-query-compress"),
50
+ )
51
+ var types_1 = require("./types")
52
+ var Methods
53
+ ;((Methods) => {
54
+ Methods[(Methods["None"] = 0)] = "None"
55
+ Methods[(Methods["HttpGet"] = 1)] = "HttpGet"
56
+ Methods[(Methods["HttpHead"] = 4)] = "HttpHead"
57
+ Methods[(Methods["HttpPost"] = 3)] = "HttpPost"
58
+ Methods[(Methods["RNG"] = 2)] = "RNG"
59
+ })(Methods || (Methods = {}))
60
+ var Class = /** @class */ (() => {
61
+ function Class(method, specs) {
62
+ var _a
63
+ if (
64
+ method === Methods.RNG &&
65
+ ((specs === null || specs === void 0 ? void 0 : specs.url) ||
66
+ (specs === null || specs === void 0 ? void 0 : specs.headers) ||
67
+ (specs === null || specs === void 0 ? void 0 : specs.body))
68
+ ) {
69
+ throw EvalError("\x1b[1;33mRetrieval: badly specified RNG\x1b[0m")
70
+ } else if (
71
+ !(specs === null || specs === void 0 ? void 0 : specs.url) &&
72
+ (method == Methods.HttpPost || method == Methods.HttpGet)
73
+ ) {
74
+ throw EvalError("\x1b[1;33mRetrieval: URL must be specified\x1b[0m")
75
+ } else if (
76
+ (specs === null || specs === void 0 ? void 0 : specs.body) &&
77
+ method == Methods.HttpGet
78
+ ) {
79
+ throw EvalError(
80
+ "\x1b[1;33mWitnet.Sources: body cannot be specified here\x1b[0m",
81
+ )
82
+ }
83
+ this.method = method
84
+ this.headers = []
85
+ if (specs === null || specs === void 0 ? void 0 : specs.headers) {
86
+ if (specs.headers instanceof Map) {
87
+ specs.headers.forEach((value, key) => {
88
+ var _a
89
+ return (_a = this.headers) === null || _a === void 0
90
+ ? void 0
91
+ : _a.push([key, value])
92
+ })
93
+ } else {
94
+ Object.entries(specs.headers).forEach((entry) => {
95
+ var _a
96
+ return (_a = this.headers) === null || _a === void 0
97
+ ? void 0
98
+ : _a.push(entry)
99
+ })
100
+ }
101
+ }
102
+ this.body = specs === null || specs === void 0 ? void 0 : specs.body
103
+ this.script = specs === null || specs === void 0 ? void 0 : specs.script
104
+ if (specs === null || specs === void 0 ? void 0 : specs.url) {
105
+ this.url = specs.url
106
+ if (!utils.isWildcard(specs.url)) {
107
+ var parts = utils.parseURL(specs.url)
108
+ this.schema = parts[0]
109
+ if (parts[1] !== "") this.authority = parts[1]
110
+ if (parts[2] !== "") this.path = parts[2]
111
+ if (parts[3] !== "") this.query = parts[3]
112
+ }
113
+ }
114
+ this.argsCount = Math.max.apply(
115
+ Math,
116
+ __spreadArray(
117
+ __spreadArray(
118
+ [
119
+ utils.getMaxArgsIndexFromString(
120
+ specs === null || specs === void 0 ? void 0 : specs.url,
121
+ ),
122
+ utils.getMaxArgsIndexFromString(
123
+ specs === null || specs === void 0 ? void 0 : specs.body,
124
+ ),
125
+ ],
126
+ __read(
127
+ this.headers.map((header) =>
128
+ utils.getMaxArgsIndexFromString(header[1]),
129
+ ),
130
+ ),
131
+ false,
132
+ ),
133
+ [
134
+ ((_a = specs === null || specs === void 0 ? void 0 : specs.script) ===
135
+ null || _a === void 0
136
+ ? void 0
137
+ : _a._countArgs()) || 0,
138
+ ],
139
+ false,
140
+ ),
141
+ )
142
+ this.tuples = specs === null || specs === void 0 ? void 0 : specs.tuples
143
+ }
144
+ /**
145
+ * Creates clones of this retrieval where all occurences of the specified parameter
146
+ * are replaced by the given values. Fails if the retrieval refers no parameters,
147
+ * or if the specified index is not referred by it.
148
+ * @param argIndex Index of the parameter upon which the new instances will be created.
149
+ * @param values Values used for the creation of the new sources.
150
+ * @returns An array with as many sources as spawning values were specified.
151
+ */
152
+ Class.prototype.spawn = function (argIndex, values) {
153
+ var spawned = []
154
+ if (this.argsCount == 0) {
155
+ throw new EvalError(
156
+ "\u001B[1;33mRetrieval: cannot spawn over unparameterized retrieval\u001B[0m",
157
+ )
158
+ } else if (argIndex > this.argsCount) {
159
+ throw new EvalError(
160
+ "\u001B[1;33mRetrieval: spawning parameter index out of range: "
161
+ .concat(argIndex, " > ")
162
+ .concat(this.argsCount, "\u001B[0m"),
163
+ )
164
+ }
165
+ values.forEach((value) => {
166
+ var _a
167
+ var headers = new Map()
168
+ if (this.headers) {
169
+ this.headers.forEach((header) => {
170
+ headers.set(
171
+ utils.spliceWildcards(header[0], argIndex, value, this.argsCount),
172
+ utils.spliceWildcards(header[1], argIndex, value, this.argsCount),
173
+ )
174
+ })
175
+ }
176
+ var script =
177
+ (_a = this.script) === null || _a === void 0
178
+ ? void 0
179
+ : _a._spliceWildcards(argIndex, value)
180
+ spawned.push(
181
+ new Class(this.method, {
182
+ url: utils.spliceWildcards(this.url, argIndex, value, this.argsCount),
183
+ body: utils.spliceWildcards(
184
+ this.body,
185
+ argIndex,
186
+ value,
187
+ this.argsCount,
188
+ ),
189
+ headers: headers,
190
+ script: script,
191
+ }),
192
+ )
193
+ })
194
+ return spawned
195
+ }
196
+ return Class
197
+ })()
198
+ exports.Class = Class
199
+ /**
200
+ * Creates a Witnet randomness Radon Retrieval.
201
+ * @param script (Optional) Radon Script to apply to the random seed proposed by every single witness,
202
+ * before aggregation.
203
+ */
204
+ function RNG(script) {
205
+ return new Class(Methods.RNG, { script: script })
206
+ }
207
+ exports.RNG = RNG
208
+ /**
209
+ * Creates a Witnet HTTP/GET Radon Retrieval.
210
+ * @param specs Retrieval parameters: URL, http headers (optional), Radon script (optional),
211
+ * pre-set tuples (optional to parameterized sources, only).
212
+ */
213
+ function HttpGet(specs) {
214
+ return new Class(Methods.HttpGet, {
215
+ url: specs.url,
216
+ headers: specs.headers,
217
+ script: specs.script,
218
+ tuples: specs.tuples,
219
+ })
220
+ }
221
+ exports.HttpGet = HttpGet
222
+ /**
223
+ * Creates a Witnet HTTP/HEAD Radon Retrieval.
224
+ * @param specs Retrieval parameters: URL, http headers (optional), Radon script (optional),
225
+ * pre-set tuples (optional to parameterized sources, only).
226
+ */
227
+ function HttpHead(specs) {
228
+ return new Class(Methods.HttpHead, {
229
+ url: specs.url,
230
+ headers: specs.headers,
231
+ script: specs.script,
232
+ tuples: specs.tuples,
233
+ })
234
+ }
235
+ exports.HttpHead = HttpHead
236
+ /**
237
+ * Creates a Witnet HTTP/POST Radon Retrieval.
238
+ * @param specs Retrieval parameters: URL, HTTP body (optional), HTTP headers (optional), Radon Script (optional),
239
+ * pre-set tuples (optional to parameterized sources, only).
240
+ */
241
+ function HttpPost(specs) {
242
+ return new Class(Methods.HttpPost, {
243
+ url: specs === null || specs === void 0 ? void 0 : specs.url,
244
+ headers: specs === null || specs === void 0 ? void 0 : specs.headers,
245
+ body: specs === null || specs === void 0 ? void 0 : specs.body,
246
+ script: specs === null || specs === void 0 ? void 0 : specs.script,
247
+ tuples: specs === null || specs === void 0 ? void 0 : specs.tuples,
248
+ })
249
+ }
250
+ exports.HttpPost = HttpPost
251
+ /**
252
+ * Creates a Witnet GraphQL Radon Retrieval (built on top of an HTTP/POST request).
253
+ * @param specs Retrieval parameters: URL, GraphQL query string, Radon Script (optional),
254
+ * pre-set tuples (optional to parameterized sources, only).
255
+ */
256
+ function GraphQLQuery(specs) {
257
+ return new Class(Methods.HttpPost, {
258
+ url: specs.url,
259
+ body: '{"query":"'.concat(
260
+ (0, graphql_query_compress_1.default)(specs.query).replaceAll('"', '\\"'),
261
+ '"}',
262
+ ),
263
+ headers: new Map().set("Content-Type", "application/json"),
264
+ script:
265
+ (specs === null || specs === void 0 ? void 0 : specs.script) ||
266
+ new types_1.RadonString(),
267
+ tuples: specs === null || specs === void 0 ? void 0 : specs.tuples,
268
+ })
269
+ }
270
+ exports.GraphQLQuery = GraphQLQuery
271
+ /**
272
+ * Creates a Cross Chain Data Source built on top of a HTTP/POST request.
273
+ * @param specs Retrieval parameters: RPC provider URL, RPC object encapsulating method and parameters,
274
+ * Radon Script (optional) to apply to returned value, and pre-set tuples (optional to parameterized sources, only).
275
+ */
276
+ function CrossChainDataSource(specs) {
277
+ var _a
278
+ return new Class(Methods.HttpPost, {
279
+ url: specs.url,
280
+ body: JSON.stringify({
281
+ jsonrpc: "2.0",
282
+ method: specs.rpc.method,
283
+ params: (_a = specs.rpc) === null || _a === void 0 ? void 0 : _a.params,
284
+ id: 1,
285
+ }).replaceAll("\\\\", "\\"),
286
+ headers: new Map().set("Content-Type", "application/json"),
287
+ script:
288
+ (specs === null || specs === void 0 ? void 0 : specs.script) ||
289
+ new types_1.RadonString(),
290
+ tuples: specs === null || specs === void 0 ? void 0 : specs.tuples,
291
+ })
292
+ }
293
+ exports.CrossChainDataSource = CrossChainDataSource
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcmFkb24vc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBRWhDLGtGQUFvRDtBQUNwRCxpQ0FBMEU7QUFHMUUsSUFBSyxPQU1KO0FBTkQsV0FBSyxPQUFPO0lBQ1IscUNBQVUsQ0FBQTtJQUNWLDJDQUFjLENBQUE7SUFDZCw2Q0FBZSxDQUFBO0lBQ2YsNkNBQWUsQ0FBQTtJQUNmLG1DQUFVLENBQUE7QUFDZCxDQUFDLEVBTkksT0FBTyxLQUFQLE9BQU8sUUFNWDtBQVVEO0lBWUksZUFBWSxNQUFlLEVBQUUsS0FBYTtRQUExQyxpQkFvQ0M7O1FBbkNHLElBQUksTUFBTSxLQUFLLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxHQUFHLE1BQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sQ0FBQSxLQUFJLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUEsQ0FBQyxFQUFFLENBQUM7WUFDMUUsTUFBTSxTQUFTLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUN2RSxDQUFDO2FBQU0sSUFBSSxDQUFDLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLEdBQUcsQ0FBQSxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2xGLE1BQU0sU0FBUyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDekUsQ0FBQzthQUFNLElBQUksQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxLQUFJ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UCxDQUFDO0FBYkQsb0NBYUM7QUFBQSxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILFNBQWdCLG9CQUFvQixDQUFFLEtBS3JDOztJQUNHLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtRQUMvQixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7UUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNqQixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07WUFDeEIsTUFBTSxFQUFFLE1BQUEsS0FBSyxDQUFDLEdBQUcsMENBQUUsTUFBTTtZQUN6QixFQUFFLEVBQUUsQ0FBQztTQUNSLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztRQUMzQixPQUFPLEVBQUUsSUFBSSxHQUFHLEVBQWlCLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQztRQUN6RSxNQUFNLEVBQUUsQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsTUFBTSxLQUFJLElBQUksbUJBQWEsRUFBRTtRQUM1QyxNQUFNLEVBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU07S0FDeEIsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQWxCRCxvREFrQkM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKVxuXG5pbXBvcnQgZ3JhcGhRbENvbXByZXNzIGZyb20gXCJncmFwaHFsLXF1ZXJ5LWNvbXByZXNzXCJcbmltcG9ydCB7IFJhZG9uVHlwZSBhcyBTY3JpcHQsIFJhZG9uU3RyaW5nIGFzIERlZmF1bHRTY3JpcHR9IGZyb20gXCIuL3R5cGVzXCJcbmltcG9ydCB7IENhbGwgYXMgUlBDIH0gZnJvbSBcIi4vY2NkclwiXG5cbmVudW0gTWV0aG9kcyB7XG4gICAgTm9uZSA9IDB4MCxcbiAgICBIdHRwR2V0ID0gMHgwMSxcbiAgICBIdHRwSGVhZCA9IDB4MDQsXG4gICAgSHR0cFBvc3QgPSAweDAzLFxuICAgIFJORyA9IDB4MDIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BlY3Mge1xuICAgIHVybD86IHN0cmluZyxcbiAgICBoZWFkZXJzPzogTWFwPHN0cmluZywgc3RyaW5nPixcbiAgICBib2R5Pzogc3RyaW5nLFxuICAgIHNjcmlwdD86IFNjcmlwdCxcbiAgICB0dXBsZXM/OiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4sXG59XG5cbmV4cG9ydCBjbGFzcyBDbGFzcyB7XG4gICAgcHVibGljIGFyZ3NDb3VudDogbnVtYmVyO1xuICAgIHB1YmxpYyBhdXRob3JpdHk/OiBzdHJpbmc7XG4gICAgcHVibGljIGJvZHk/OiBzdHJpbmc7XG4gICAgcHVibGljIGhlYWRlcnM/OiBzdHJpbmdbXVtdO1xuICAgIHB1YmxpYyBtZXRob2Q6IE1ldGhvZHM7XG4gICAgcHVibGljIHBhdGg/OiBzdHJpbmc7XG4gICAgcHVibGljIHF1ZXJ5Pzogc3RyaW5nO1xuICAgIHB1YmxpYyBzY2hlbWE/OiBzdHJpbmc7XG4gICAgcHVibGljIHNjcmlwdD86IFNjcmlwdDtcbiAgICBwdWJsaWMgdXJsPzogc3RyaW5nO1xuICAgIHB1YmxpYyB0dXBsZXM/OiBNYXA8c3RyaW5nLCBzdHJpbmdbXT47XG4gICAgY29uc3RydWN0b3IobWV0aG9kOiBNZXRob2RzLCBzcGVjcz86IFNwZWNzKSB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IE1ldGhvZHMuUk5HICYmIChzcGVjcz8udXJsIHx8IHNwZWNzPy5oZWFkZXJzIHx8IHNwZWNzPy5ib2R5KSkge1xuICAgICAgICAgICAgdGhyb3cgRXZhbEVycm9yKFwiXFx4MWJbMTszM21SZXRyaWV2YWw6IGJhZGx5IHNwZWNpZmllZCBSTkdcXHgxYlswbVwiKTtcbiAgICAgICAgfSBlbHNlIGlmICghc3BlY3M/LnVybCAmJiAobWV0aG9kID09IE1ldGhvZHMuSHR0cFBvc3QgfHwgbWV0aG9kID09IE1ldGhvZHMuSHR0cEdldCkpIHtcbiAgICAgICAgICAgIHRocm93IEV2YWxFcnJvcihcIlxceDFiWzE7MzNtUmV0cmlldmFsOiBVUkwgbXVzdCBiZSBzcGVjaWZpZWRcXHgxYlswbVwiKTtcbiAgICAgICAgfSBlbHNlIGlmIChzcGVjcz8uYm9keSAmJiBtZXRob2QgPT0gTWV0aG9kcy5IdHRwR2V0KSB7XG4gICAgICAgICAgICB0aHJvdyBFdmFsRXJyb3IoXCJcXHgxYlsxOzMzbVdpdG5ldC5Tb3VyY2VzOiBib2R5IGNhbm5vdCBiZSBzcGVjaWZpZWQgaGVyZVxceDFiWzBtXCIpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tZXRob2QgPSBtZXRob2RcbiAgICAgICAgdGhpcy5oZWFkZXJzID0gW11cbiAgICAgICAgaWYgKHNwZWNzPy5oZWFkZXJzKSB7XG4gICAgICAgICAgICBpZiAoc3BlY3MuaGVhZGVycyBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgICAgICAgICAgIHNwZWNzLmhlYWRlcnMuZm9yRWFjaCgodmFsdWU6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHRoaXMuaGVhZGVycz8ucHVzaChba2V5LCB2YWx1ZV0pKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhzcGVjcy5oZWFkZXJzKS5mb3JFYWNoKChlbnRyeTogYW55KSA9PiB0aGlzLmhlYWRlcnM/LnB1c2goZW50cnkpKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuYm9keSA9IHNwZWNzPy5ib2R5XG4gICAgICAgIHRoaXMuc2NyaXB0ID0gc3BlY3M/LnNjcmlwdFxuICAgICAgICBpZiAoc3BlY3M/LnVybCkge1xuICAgICAgICAgICAgdGhpcy51cmwgPSBzcGVjcy51cmxcbiAgICAgICAgICAgIGlmICghdXRpbHMuaXNXaWxkY2FyZChzcGVjcy51cmwpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHBhcnRzID0gdXRpbHMucGFyc2VVUkwoc3BlY3MudXJsKVxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZW1hID0gcGFydHNbMF1cbiAgICAgICAgICAgICAgICBpZiAocGFydHNbMV0gIT09IFwiXCIpIHRoaXMuYXV0aG9yaXR5ID0gcGFydHNbMV1cbiAgICAgICAgICAgICAgICBpZiAocGFydHNbMl0gIT09IFwiXCIpIHRoaXMucGF0aCA9IHBhcnRzWzJdXG4gICAgICAgICAgICAgICAgaWYgKHBhcnRzWzNdICE9PSBcIlwiKSB0aGlzLnF1ZXJ5ID0gcGFydHNbM11cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFyZ3NDb3VudCA9IE1hdGgubWF4KFxuICAgICAgICAgICAgdXRpbHMuZ2V0TWF4QXJnc0luZGV4RnJvbVN0cmluZyhzcGVjcz8udXJsKSxcbiAgICAgICAgICAgIHV0aWxzLmdldE1heEFyZ3NJbmRleEZyb21TdHJpbmcoc3BlY3M/LmJvZHkpLFxuICAgICAgICAgICAgLi4udGhpcy5oZWFkZXJzLm1hcChoZWFkZXIgPT4gdXRpbHMuZ2V0TWF4QXJnc0luZGV4RnJvbVN0cmluZyhoZWFkZXJbMV0pKSxcbiAgICAgICAgICAgIHNwZWNzPy5zY3JpcHQ/Ll9jb3VudEFyZ3MoKSB8fCAwLFxuICAgICAgICApXG4gICAgICAgIHRoaXMudHVwbGVzID0gc3BlY3M/LnR1cGxlc1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGNsb25lcyBvZiB0aGlzIHJldHJpZXZhbCB3aGVyZSBhbGwgb2NjdXJlbmNlcyBvZiB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlciBcbiAgICAgKiBhcmUgcmVwbGFjZWQgYnkgdGhlIGdpdmVuIHZhbHVlcy4gRmFpbHMgaWYgdGhlIHJldHJpZXZhbCByZWZlcnMgbm8gcGFyYW1ldGVycyxcbiAgICAgKiBvciBpZiB0aGUgc3BlY2lmaWVkIGluZGV4IGlzIG5vdCByZWZlcnJlZCBieSBpdC4gXG4gICAgICogQHBhcmFtIGFyZ0luZGV4IEluZGV4IG9mIHRoZSBwYXJhbWV0ZXIgdXBvbiB3aGljaCB0aGUgbmV3IGluc3RhbmNlcyB3aWxsIGJlIGNyZWF0ZWQuXG4gICAgICogQHBhcmFtIHZhbHVlcyBWYWx1ZXMgdXNlZCBmb3IgdGhlIGNyZWF0aW9uIG9mIHRoZSBuZXcgc291cmNlcy4gXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgd2l0aCBhcyBtYW55IHNvdXJjZXMgYXMgc3Bhd25pbmcgdmFsdWVzIHdlcmUgc3BlY2lmaWVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBzcGF3bihhcmdJbmRleDogbnVtYmVyLCB2YWx1ZXM6IHN0cmluZ1tdKTogQ2xhc3NbXSB7XG4gICAgICAgIGNvbnN0IHNwYXduZWQ6IENsYXNzW10gPSBbXVxuICAgICAgICBpZiAodGhpcy5hcmdzQ291bnQgPT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEV2YWxFcnJvcihgXFx4MWJbMTszM21SZXRyaWV2YWw6IGNhbm5vdCBzcGF3biBvdmVyIHVucGFyYW1ldGVyaXplZCByZXRyaWV2YWxcXHgxYlswbWApO1xuICAgICAgICB9IGVsc2UgaWYgKGFyZ0luZGV4ID4gdGhpcy5hcmdzQ291bnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFdmFsRXJyb3IoYFxceDFiWzE7MzNtUmV0cmlldmFsOiBzcGF3bmluZyBwYXJhbWV0ZXIgaW5kZXggb3V0IG9mIHJhbmdlOiAke2FyZ0luZGV4fSA+ICR7dGhpcy5hcmdzQ291bnR9XFx4MWJbMG1gKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBsZXQgaGVhZGVyczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKVxuICAgICAgICAgICAgaWYgKHRoaXMuaGVhZGVycykge1xuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVycy5mb3JFYWNoKGhlYWRlciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnMuc2V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuc3BsaWNlV2lsZGNhcmRzKGhlYWRlclswXSwgYXJnSW5kZXgsIHZhbHVlLCB0aGlzLmFyZ3NDb3VudCksXG4gICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5zcGxpY2VXaWxkY2FyZHMoaGVhZGVyWzFdLCBhcmdJbmRleCwgdmFsdWUsIHRoaXMuYXJnc0NvdW50KSxcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzY3JpcHQ6IFNjcmlwdCB8IHVuZGVmaW5lZCA9IHRoaXMuc2NyaXB0Py5fc3BsaWNlV2lsZGNhcmRzKGFyZ0luZGV4LCB2YWx1ZSk7XG4gICAgICAgICAgICBzcGF3bmVkLnB1c2gobmV3IENsYXNzKHRoaXMubWV0aG9kLCB7XG4gICAgICAgICAgICAgICAgdXJsOiB1dGlscy5zcGxpY2VXaWxkY2FyZHModGhpcy51cmwsIGFyZ0luZGV4LCB2YWx1ZSwgdGhpcy5hcmdzQ291bnQpLFxuICAgICAgICAgICAgICAgIGJvZHk6IHV0aWxzLnNwbGljZVdpbGRjYXJkcyh0aGlzLmJvZHksIGFyZ0luZGV4LCB2YWx1ZSwgdGhpcy5hcmdzQ291bnQpLFxuICAgICAgICAgICAgICAgIGhlYWRlcnMsIHNjcmlwdCxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gc3Bhd25lZFxuICAgIH1cbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgV2l0bmV0IHJhbmRvbW5lc3MgUmFkb24gUmV0cmlldmFsLlxuICogQHBhcmFtIHNjcmlwdCAoT3B0aW9uYWwpIFJhZG9uIFNjcmlwdCB0byBhcHBseSB0byB0aGUgcmFuZG9tIHNlZWQgcHJvcG9zZWQgYnkgZXZlcnkgc2luZ2xlIHdpdG5lc3MsIFxuICogYmVmb3JlIGFnZ3JlZ2F0aW9uLlxuICAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJORyAoc2NyaXB0PzogYW55KSB7IHJldHVybiBuZXcgQ2xhc3MoTWV0aG9kcy5STkcsIHsgc2NyaXB0IH0pOyB9O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBXaXRuZXQgSFRUUC9HRVQgUmFkb24gUmV0cmlldmFsLlxuICogQHBhcmFtIHNwZWNzIFJldHJpZXZhbCBwYXJhbWV0ZXJzOiBVUkwsIGh0dHAgaGVhZGVycyAob3B0aW9uYWwpLCBSYWRvbiBzY3JpcHQgKG9wdGlvbmFsKSwgXG4gKiBwcmUtc2V0IHR1cGxlcyAob3B0aW9uYWwgdG8gcGFyYW1ldGVyaXplZCBzb3VyY2VzLCBvbmx5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEh0dHBHZXQgKHNwZWNzOiB7XG4gICAgdXJsOiBzdHJpbmcsXG4gICAgaGVhZGVycz86IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gICAgc2NyaXB0PzogU2NyaXB0LFxuICAgIHR1cGxlcz86IE1hcDxzdHJpbmcsIHN0cmluZ1tdPlxufSkge1xuICAgIHJldHVybiBuZXcgQ2xhc3MoXG4gICAgICAgIE1ldGhvZHMuSHR0cEdldCwgeyBcbiAgICAgICAgICAgIHVybDogc3BlY3MudXJsLCBcbiAgICAgICAgICAgIGhlYWRlcnM6IHNwZWNzLmhlYWRlcnMsIFxuICAgICAgICAgICAgc2NyaXB0OiBzcGVjcy5zY3JpcHQsIFxuICAgICAgICAgICAgdHVwbGVzOiBzcGVjcy50dXBsZXMgXG4gICAgICAgIH1cbiAgICApO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgV2l0bmV0IEhUVFAvSEVBRCBSYWRvbiBSZXRyaWV2YWwuXG4gKiBAcGFyYW0gc3BlY3MgUmV0cmlldmFsIHBhcmFtZXRlcnM6IFVSTCwgaHR0cCBoZWFkZXJzIChvcHRpb25hbCksIFJhZG9uIHNjcmlwdCAob3B0aW9uYWwpLCBcbiAqIHByZS1zZXQgdHVwbGVzIChvcHRpb25hbCB0byBwYXJhbWV0ZXJpemVkIHNvdXJjZXMsIG9ubHkpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gSHR0cEhlYWQgKHNwZWNzOiB7XG4gICAgdXJsOiBzdHJpbmcsXG4gICAgaGVhZGVycz86IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gICAgc2NyaXB0PzogU2NyaXB0LFxuICAgIHR1cGxlcz86IE1hcDxzdHJpbmcsIHN0cmluZ1tdPlxufSkge1xuICAgIHJldHVybiBuZXcgQ2xhc3MoXG4gICAgICAgIE1ldGhvZHMuSHR0cEhlYWQsIHsgXG4gICAgICAgICAgICB1cmw6IHNwZWNzLnVybCwgXG4gICAgICAgICAgICBoZWFkZXJzOiBzcGVjcy5oZWFkZXJzLCBcbiAgICAgICAgICAgIHNjcmlwdDogc3BlY3Muc2NyaXB0LCBcbiAgICAgICAgICAgIHR1cGxlczogc3BlY3MudHVwbGVzIFxuICAgICAgICB9XG4gICAgKTtcbn07XG5cbi8qKlxuICogQ3JlYXRlcyBhIFdpdG5ldCBIVFRQL1BPU1QgUmFkb24gUmV0cmlldmFsLlxuICogQHBhcmFtIHNwZWNzIFJldHJpZXZhbCBwYXJhbWV0ZXJzOiBVUkwsIEhUVFAgYm9keSAob3B0aW9uYWwpLCBIVFRQIGhlYWRlcnMgKG9wdGlvbmFsKSwgUmFkb24gU2NyaXB0IChvcHRpb25hbCksIFxuICogcHJlLXNldCB0dXBsZXMgKG9wdGlvbmFsIHRvIHBhcmFtZXRlcml6ZWQgc291cmNlcywgb25seSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBIdHRwUG9zdCAoc3BlY3M/OiB7XG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGhlYWRlcnM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+LFxuICAgIHNjcmlwdD86IFNjcmlwdCxcbiAgICB0dXBsZXM/OiBNYXA8c3RyaW5nLCBzdHJpbmdbXT4gICBcbn0pIHtcbiAgICByZXR1cm4gbmV3IENsYXNzKFxuICAgICAgICBNZXRob2RzLkh0dHBQb3N0LCB7IFxuICAgICAgICAgICAgdXJsOiBzcGVjcz8udXJsLCBcbiAgICAgICAgICAgIGhlYWRlcnM6IHNwZWNzPy5oZWFkZXJzLCBcbiAgICAgICAgICAgIGJvZHk6IHNwZWNzPy5ib2R5LCBcbiAgICAgICAgICAgIHNjcmlwdDogc3BlY3M/LnNjcmlwdCwgXG4gICAgICAgICAgICB0dXBsZXM6IHNwZWNzPy50dXBsZXMgXG4gICAgICAgIH1cbiAgICApO1xufTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgV2l0bmV0IEdyYXBoUUwgUmFkb24gUmV0cmlldmFsIChidWlsdCBvbiB0b3Agb2YgYW4gSFRUUC9QT1NUIHJlcXVlc3QpLlxuICogQHBhcmFtIHNwZWNzIFJldHJpZXZhbCBwYXJhbWV0ZXJzOiBVUkwsIEdyYXBoUUwgcXVlcnkgc3RyaW5nLCBSYWRvbiBTY3JpcHQgKG9wdGlvbmFsKSwgXG4gKiBwcmUtc2V0IHR1cGxlcyAob3B0aW9uYWwgdG8gcGFyYW1ldGVyaXplZCBzb3VyY2VzLCBvbmx5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEdyYXBoUUxRdWVyeSAoc3BlY3M6IHsgXG4gICAgdXJsOiBzdHJpbmcsIFxuICAgIHF1ZXJ5OiBzdHJpbmcsIFxuICAgIHNjcmlwdD86IFNjcmlwdCwgIFxuICAgIHR1cGxlcz86IE1hcDxzdHJpbmcsIHN0cmluZ1tdPixcbn0pIHtcbiAgICByZXR1cm4gbmV3IENsYXNzKE1ldGhvZHMuSHR0cFBvc3QsIHtcbiAgICAgICAgdXJsOiBzcGVjcy51cmwsIFxuICAgICAgICBib2R5OiBge1xcXCJxdWVyeVxcXCI6XFxcIiR7Z3JhcGhRbENvbXByZXNzKHNwZWNzLnF1ZXJ5KS5yZXBsYWNlQWxsKCdcIicsICdcXFxcXCInKX1cXFwifWAsXG4gICAgICAgIGhlYWRlcnM6IG5ldyBNYXA8c3RyaW5nLHN0cmluZz4oKS5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpLFxuICAgICAgICBzY3JpcHQ6IHNwZWNzPy5zY3JpcHQgfHwgbmV3IERlZmF1bHRTY3JpcHQoKSxcbiAgICAgICAgdHVwbGVzOiBzcGVjcz8udHVwbGVzXG4gICAgfSk7XG59O1xuXG4vKipcbiAqIENyZWF0ZXMgYSBDcm9zcyBDaGFpbiBEYXRhIFNvdXJjZSBidWlsdCBvbiB0b3Agb2YgYSBIVFRQL1BPU1QgcmVxdWVzdC5cbiAqIEBwYXJhbSBzcGVjcyBSZXRyaWV2YWwgcGFyYW1ldGVyczogUlBDIHByb3ZpZGVyIFVSTCwgUlBDIG9iamVjdCBlbmNhcHN1bGF0aW5nIG1ldGhvZCBhbmQgcGFyYW1ldGVycywgXG4gKiBSYWRvbiBTY3JpcHQgKG9wdGlvbmFsKSB0byBhcHBseSB0byByZXR1cm5lZCB2YWx1ZSwgYW5kIHByZS1zZXQgdHVwbGVzIChvcHRpb25hbCB0byBwYXJhbWV0ZXJpemVkIHNvdXJjZXMsIG9ubHkpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ3Jvc3NDaGFpbkRhdGFTb3VyY2UgKHNwZWNzOiB7XG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcnBjOiBSUEMsXG4gICAgc2NyaXB0PzogU2NyaXB0LFxuICAgIHR1cGxlcz86IE1hcDxzdHJpbmcsIHN0cmluZ1tdPlxufSkge1xuICAgIHJldHVybiBuZXcgQ2xhc3MoTWV0aG9kcy5IdHRwUG9zdCwge1xuICAgICAgICB1cmw6IHNwZWNzLnVybCxcbiAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAganNvbnJwYzogXCIyLjBcIixcbiAgICAgICAgICAgIG1ldGhvZDogc3BlY3MucnBjLm1ldGhvZCxcbiAgICAgICAgICAgIHBhcmFtczogc3BlY3MucnBjPy5wYXJhbXMsXG4gICAgICAgICAgICBpZDogMSxcbiAgICAgICAgfSkucmVwbGFjZUFsbCgnXFxcXFxcXFwnLCAnXFxcXCcpLFxuICAgICAgICBoZWFkZXJzOiBuZXcgTWFwPHN0cmluZyxzdHJpbmc+KCkuc2V0KFwiQ29udGVudC1UeXBlXCIsIFwiYXBwbGljYXRpb24vanNvblwiKSxcbiAgICAgICAgc2NyaXB0OiBzcGVjcz8uc2NyaXB0IHx8IG5ldyBEZWZhdWx0U2NyaXB0KCksXG4gICAgICAgIHR1cGxlczogc3BlY3M/LnR1cGxlc1xuICAgIH0pO1xufTtcbiJdfQ==