@beblurt/blurt-nodes-checker 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +318 -0
- package/dist/blurt-nodes-checker.min.js +23 -0
- package/lib/helpers/BLOCK_API/GET_BLOCK.d.ts +26 -0
- package/lib/helpers/BLOCK_API/GET_BLOCK.js +2 -0
- package/lib/helpers/BLOCK_API/GET_BLOCK.js.map +1 -0
- package/lib/helpers/CONDENSER_API/DYNAMIC_GLOBAL_PROPERTIES.d.ts +67 -0
- package/lib/helpers/CONDENSER_API/DYNAMIC_GLOBAL_PROPERTIES.js +2 -0
- package/lib/helpers/CONDENSER_API/DYNAMIC_GLOBAL_PROPERTIES.js.map +1 -0
- package/lib/helpers/CONDENSER_API/GET_ACCOUNT.d.ts +73 -0
- package/lib/helpers/CONDENSER_API/GET_ACCOUNT.js +2 -0
- package/lib/helpers/CONDENSER_API/GET_ACCOUNT.js.map +1 -0
- package/lib/helpers/CONDENSER_API/GET_BLOG_ENTRY.d.ts +7 -0
- package/lib/helpers/CONDENSER_API/GET_BLOG_ENTRY.js +2 -0
- package/lib/helpers/CONDENSER_API/GET_BLOG_ENTRY.js.map +1 -0
- package/lib/helpers/CONDENSER_API/GET_CONFIG.d.ts +174 -0
- package/lib/helpers/CONDENSER_API/GET_CONFIG.js +2 -0
- package/lib/helpers/CONDENSER_API/GET_CONFIG.js.map +1 -0
- package/lib/helpers/CONDENSER_API/GET_CONTENT.d.ts +54 -0
- package/lib/helpers/CONDENSER_API/GET_CONTENT.js +2 -0
- package/lib/helpers/CONDENSER_API/GET_CONTENT.js.map +1 -0
- package/lib/helpers/CONDENSER_API/GET_DISCUSSION.d.ts +39 -0
- package/lib/helpers/CONDENSER_API/GET_DISCUSSION.js +2 -0
- package/lib/helpers/CONDENSER_API/GET_DISCUSSION.js.map +1 -0
- package/lib/helpers/index.d.ts +54 -0
- package/lib/helpers/index.js +2 -0
- package/lib/helpers/index.js.map +1 -0
- package/lib/hrtime.d.ts +1 -0
- package/lib/hrtime.js +29 -0
- package/lib/hrtime.js.map +1 -0
- package/lib/index.d.ts +43 -0
- package/lib/index.js +337 -0
- package/lib/index.js.map +1 -0
- package/lib/test.d.ts +22 -0
- package/lib/test.js +53 -0
- package/lib/test.js.map +1 -0
- package/package.json +61 -0
package/README.md
ADDED
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# BLURT RPC nodes checker
|
|
2
|
+
|
|
3
|
+
ESM Typscript [BLURT blockchain](https://blurt.blog/) RPC nodes servers checker (latency, availability, methods). Checks the status of the RPC nodes servers of the BLURT blockchain at a specified interval and sends a report via a RxJS subscription. The result is stored in an array in memory and you can call it at any time.
|
|
4
|
+
|
|
5
|
+
## Getting Started
|
|
6
|
+
|
|
7
|
+
### Installation
|
|
8
|
+
|
|
9
|
+
#### Using npm:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
$ npm install @beblurt/blurt-nodes-checker --save
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
#### Using browser:
|
|
16
|
+
|
|
17
|
+
```html
|
|
18
|
+
<script type="module" src="./dist/blurt-nodes-checker.min.js"></script>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
#### From the source:
|
|
22
|
+
|
|
23
|
+
clone the repository
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
$ git clone https://gitlab.com/beblurt/blurt-nodes-checker.git
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Build for NodeJS/Angular... in `"./lib"` directory
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
$ npm run build
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Build for browser (minified) in `"./dist"` directory
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
$ npm run build-browser
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Initialisation
|
|
42
|
+
|
|
43
|
+
Initialise the BLURT nodes checker with **params**
|
|
44
|
+
|
|
45
|
+
```js
|
|
46
|
+
/** Init the checker */
|
|
47
|
+
const nodesChecker = new BlurtNodesChecker(["url1", "url2", ...])
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Params
|
|
51
|
+
- `url`: array of node url to check
|
|
52
|
+
- `options` (optional):
|
|
53
|
+
- `full` (boolean): if false perform only a `get_config` with response time (default: false)
|
|
54
|
+
- `interval` (seconds): delay in seconds between each execution (default: 900 seconds)
|
|
55
|
+
- `timeout` (seconds): timeout in seconds for node request (default: 3 seconds)
|
|
56
|
+
- `reset` (number): number max of test before resetting the counters (default: no reset)
|
|
57
|
+
|
|
58
|
+
### Functions
|
|
59
|
+
|
|
60
|
+
#### start()
|
|
61
|
+
|
|
62
|
+
Start the checking process
|
|
63
|
+
|
|
64
|
+
```js
|
|
65
|
+
/** Start the checker */
|
|
66
|
+
nodesChecker.start()
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
#### restart()
|
|
70
|
+
|
|
71
|
+
restart the checking process with the same **params**
|
|
72
|
+
|
|
73
|
+
```js
|
|
74
|
+
/** Restart the checker */
|
|
75
|
+
nodesChecker.restart()
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
#### stop()
|
|
79
|
+
|
|
80
|
+
stop the checking process
|
|
81
|
+
|
|
82
|
+
```js
|
|
83
|
+
/** Stop the checker */
|
|
84
|
+
nodesChecker.stop()
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Message subscription
|
|
88
|
+
|
|
89
|
+
#### message.subscribe()
|
|
90
|
+
|
|
91
|
+
It use RxJS to send the result of a check
|
|
92
|
+
|
|
93
|
+
```js
|
|
94
|
+
/** Subscribe results */
|
|
95
|
+
nodesChecker.message.subscribe({
|
|
96
|
+
next: async m => {
|
|
97
|
+
...
|
|
98
|
+
},
|
|
99
|
+
error: error => {
|
|
100
|
+
...
|
|
101
|
+
}
|
|
102
|
+
})
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
#### message.unsubscribe()
|
|
106
|
+
|
|
107
|
+
Unsubscribe manually from the Observable
|
|
108
|
+
|
|
109
|
+
```js
|
|
110
|
+
/** Unsubscribe results */
|
|
111
|
+
nodesChecker.message.unsubscribe()
|
|
112
|
+
})
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Example usage
|
|
116
|
+
|
|
117
|
+
Performing a full checking:
|
|
118
|
+
|
|
119
|
+
```js
|
|
120
|
+
import { BlurtNodesChecker } from '@beblurt/blurt-nodes-checker'
|
|
121
|
+
|
|
122
|
+
/** BLURT nodes url to check */
|
|
123
|
+
const nodes = [
|
|
124
|
+
"https://blurt-rpc.saboin.com",
|
|
125
|
+
"https://rpc.blurt.world",
|
|
126
|
+
"https://blurtrpc.actifit.io/",
|
|
127
|
+
"https://kentzz.blurt.world",
|
|
128
|
+
"https://rpc.blurtlatam.com/",
|
|
129
|
+
"https://rpc.blurt.live/"
|
|
130
|
+
]
|
|
131
|
+
|
|
132
|
+
/** Options */
|
|
133
|
+
const options = {
|
|
134
|
+
full: true,
|
|
135
|
+
interval: 600, // 10 minutes
|
|
136
|
+
reset: 144 // every 144 tests => 24 hours x 6 (10 minutes = 6 test per hours)
|
|
137
|
+
}
|
|
138
|
+
/** Init the checker */
|
|
139
|
+
const nodesChecker = new BlurtNodesChecker(nodes, options)
|
|
140
|
+
/** Start the checker */
|
|
141
|
+
nodesChecker.start()
|
|
142
|
+
/** Subscribe results */
|
|
143
|
+
nodesChecker.message.subscribe({
|
|
144
|
+
next: async m => {
|
|
145
|
+
console.log('=====> NEW MESSAGE', m)
|
|
146
|
+
console.log()
|
|
147
|
+
},
|
|
148
|
+
error: error => {
|
|
149
|
+
console.log('=====> ERROR MESSAGE')
|
|
150
|
+
console.log(error)
|
|
151
|
+
console.log()
|
|
152
|
+
|
|
153
|
+
/** Restart the checker */
|
|
154
|
+
nodesChecker.restart()
|
|
155
|
+
}
|
|
156
|
+
})
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Light checking
|
|
160
|
+
|
|
161
|
+
In this case, only a call to the rpc method `condenser_api.get_config` is made.
|
|
162
|
+
|
|
163
|
+
#### Result
|
|
164
|
+
```ts
|
|
165
|
+
[{
|
|
166
|
+
"url": string
|
|
167
|
+
"nb_ok": number
|
|
168
|
+
"nb_error": number
|
|
169
|
+
"nb_degraded": number
|
|
170
|
+
"error"?: string
|
|
171
|
+
"last_check": number
|
|
172
|
+
"status": "unkown"|"online"|"degraded"|"error"
|
|
173
|
+
"duration"?: number
|
|
174
|
+
"average_time"?: number
|
|
175
|
+
"version"?: string
|
|
176
|
+
"deactivated"?: boolean
|
|
177
|
+
|
|
178
|
+
"test_result": []
|
|
179
|
+
}]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
#### Exemple of result for a light checking
|
|
183
|
+
```js
|
|
184
|
+
[
|
|
185
|
+
{
|
|
186
|
+
url: 'https://blurtrpc.actifit.io/',
|
|
187
|
+
nb_ok: 1,
|
|
188
|
+
nb_error: 0,
|
|
189
|
+
nb_degraded: 0,
|
|
190
|
+
last_check: 1661768268483,
|
|
191
|
+
status: 'online',
|
|
192
|
+
test_result: [],
|
|
193
|
+
version: '0.8.2',
|
|
194
|
+
duration: 300,
|
|
195
|
+
average_time: 572
|
|
196
|
+
},
|
|
197
|
+
...
|
|
198
|
+
]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Full checking
|
|
202
|
+
|
|
203
|
+
In this case the methods below are checked:
|
|
204
|
+
|
|
205
|
+
- `condenser_api.get_config`
|
|
206
|
+
- `condenser_api.get_accounts`
|
|
207
|
+
- `block_api.get_block`
|
|
208
|
+
- `condenser_api.get_blog_entries`
|
|
209
|
+
- `condenser_api.get_content`
|
|
210
|
+
- `condenser_api.get_dynamic_global_properties`
|
|
211
|
+
- `condenser_api.get_discussions_by_blog`
|
|
212
|
+
|
|
213
|
+
#### Result
|
|
214
|
+
```ts
|
|
215
|
+
[{
|
|
216
|
+
"url": string
|
|
217
|
+
"nb_ok": number
|
|
218
|
+
"nb_error": number
|
|
219
|
+
"nb_degraded": number
|
|
220
|
+
"error"?: string
|
|
221
|
+
"last_check": number
|
|
222
|
+
"status": "unkown"|"online"|"degraded"|"error"
|
|
223
|
+
"duration"?: number
|
|
224
|
+
"average_time"?: number
|
|
225
|
+
"version"?: string
|
|
226
|
+
"deactivated"?: boolean
|
|
227
|
+
|
|
228
|
+
"test_result": [{
|
|
229
|
+
"name": string
|
|
230
|
+
"description": string
|
|
231
|
+
"method": string
|
|
232
|
+
"success": boolean
|
|
233
|
+
"duration": number
|
|
234
|
+
"error"?: string
|
|
235
|
+
"last_check": number
|
|
236
|
+
}]
|
|
237
|
+
}]
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
#### Exemple of result for a full checking
|
|
241
|
+
```js
|
|
242
|
+
[
|
|
243
|
+
{
|
|
244
|
+
url: 'https://blurtrpc.actifit.io/',
|
|
245
|
+
nb_ok: 1,
|
|
246
|
+
nb_error: 0,
|
|
247
|
+
nb_degraded: 0,
|
|
248
|
+
last_check: 1661768268483,
|
|
249
|
+
status: 'online',
|
|
250
|
+
test_result: [
|
|
251
|
+
{
|
|
252
|
+
name: 'Condenser | Get Dynamic Global Propertie',
|
|
253
|
+
description: 'Check chain global properties',
|
|
254
|
+
method: 'condenser_api.get_dynamic_global_properties',
|
|
255
|
+
success: true,
|
|
256
|
+
duration: 279,
|
|
257
|
+
last_check: 1661768268483
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
name: 'Condenser | Get Account',
|
|
261
|
+
description: 'Retrieve an account details',
|
|
262
|
+
method: 'condenser_api.get_accounts',
|
|
263
|
+
success: true,
|
|
264
|
+
duration: 314,
|
|
265
|
+
last_check: 1661768268483
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
name: 'Condenser | Get Block',
|
|
269
|
+
description: 'Get Block',
|
|
270
|
+
method: 'block_api.get_block',
|
|
271
|
+
success: true,
|
|
272
|
+
duration: 479,
|
|
273
|
+
last_check: 1661768268483
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
name: 'Condenser | Get Content',
|
|
277
|
+
description: 'Retrieve the content (post or comment))',
|
|
278
|
+
method: 'condenser_api.get_content',
|
|
279
|
+
success: true,
|
|
280
|
+
duration: 479,
|
|
281
|
+
last_check: 1661768268483
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
name: 'Condenser | Get Blog Entries',
|
|
285
|
+
description: 'Retrieve the list of blog entries for an account)',
|
|
286
|
+
method: 'condenser_api.get_blog_entries',
|
|
287
|
+
success: true,
|
|
288
|
+
duration: 481,
|
|
289
|
+
last_check: 1661768268483
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
name: 'Condenser | Get Disccusion By Blog',
|
|
293
|
+
description: 'Retrieve a list of discussions by blog)',
|
|
294
|
+
method: 'condenser_api.get_discussions_by_blog',
|
|
295
|
+
success: true,
|
|
296
|
+
duration: 685,
|
|
297
|
+
last_check: 1661768268483
|
|
298
|
+
}
|
|
299
|
+
],
|
|
300
|
+
version: '0.8.2',
|
|
301
|
+
duration: 300,
|
|
302
|
+
average_time: 572
|
|
303
|
+
},
|
|
304
|
+
...
|
|
305
|
+
]
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
## Contributing
|
|
309
|
+
|
|
310
|
+
Pull requests for new features, bug fixes, and suggestions are welcome!
|
|
311
|
+
|
|
312
|
+
## License
|
|
313
|
+
|
|
314
|
+
Copyright (C) 2022 @nalexadre (https://blurt.blog/@nalexadre)
|
|
315
|
+
|
|
316
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
|
|
317
|
+
|
|
318
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var Jt=Object.create;var Ve=Object.defineProperty;var zt=Object.getOwnPropertyDescriptor;var Yt=Object.getOwnPropertyNames;var Kt=Object.getPrototypeOf,$t=Object.prototype.hasOwnProperty;var m=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Xt=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Yt(e))!$t.call(t,o)&&o!==r&&Ve(t,o,{get:()=>e[o],enumerable:!(n=zt(e,o))||n.enumerable});return t};var Je=(t,e,r)=>(r=t!=null?Jt(Kt(t)):{},Xt(e||!t||!t.__esModule?Ve(r,"default",{value:t,enumerable:!0}):r,t));var he=m((fo,ze)=>{"use strict";ze.exports=function(e,r){return function(){for(var o=new Array(arguments.length),i=0;i<o.length;i++)o[i]=arguments[i];return e.apply(r,o)}}});var y=m((co,$e)=>{"use strict";var Qt=he(),ve=Object.prototype.toString,be=function(t){return function(e){var r=ve.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())}}(Object.create(null));function C(t){return t=t.toLowerCase(),function(r){return be(r)===t}}function ye(t){return Array.isArray(t)}function Q(t){return typeof t>"u"}function Zt(t){return t!==null&&!Q(t)&&t.constructor!==null&&!Q(t.constructor)&&typeof t.constructor.isBuffer=="function"&&t.constructor.isBuffer(t)}var Ye=C("ArrayBuffer");function en(t){var e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Ye(t.buffer),e}function rn(t){return typeof t=="string"}function tn(t){return typeof t=="number"}function Ke(t){return t!==null&&typeof t=="object"}function X(t){if(be(t)!=="object")return!1;var e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}var nn=C("Date"),on=C("File"),sn=C("Blob"),an=C("FileList");function _e(t){return ve.call(t)==="[object Function]"}function un(t){return Ke(t)&&_e(t.pipe)}function fn(t){var e="[object FormData]";return t&&(typeof FormData=="function"&&t instanceof FormData||ve.call(t)===e||_e(t.toString)&&t.toString()===e)}var cn=C("URLSearchParams");function ln(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function pn(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function xe(t,e){if(!(t===null||typeof t>"u"))if(typeof t!="object"&&(t=[t]),ye(t))for(var r=0,n=t.length;r<n;r++)e.call(null,t[r],r,t);else for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.call(null,t[o],o,t)}function me(){var t={};function e(o,i){X(t[i])&&X(o)?t[i]=me(t[i],o):X(o)?t[i]=me({},o):ye(o)?t[i]=o.slice():t[i]=o}for(var r=0,n=arguments.length;r<n;r++)xe(arguments[r],e);return t}function dn(t,e,r){return xe(e,function(o,i){r&&typeof o=="function"?t[i]=Qt(o,r):t[i]=o}),t}function hn(t){return t.charCodeAt(0)===65279&&(t=t.slice(1)),t}function mn(t,e,r,n){t.prototype=Object.create(e.prototype,n),t.prototype.constructor=t,r&&Object.assign(t.prototype,r)}function vn(t,e,r){var n,o,i,s={};e=e||{};do{for(n=Object.getOwnPropertyNames(t),o=n.length;o-- >0;)i=n[o],s[i]||(e[i]=t[i],s[i]=!0);t=Object.getPrototypeOf(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e}function bn(t,e,r){t=String(t),(r===void 0||r>t.length)&&(r=t.length),r-=e.length;var n=t.indexOf(e,r);return n!==-1&&n===r}function yn(t){if(!t)return null;var e=t.length;if(Q(e))return null;for(var r=new Array(e);e-- >0;)r[e]=t[e];return r}var _n=function(t){return function(e){return t&&e instanceof t}}(typeof Uint8Array<"u"&&Object.getPrototypeOf(Uint8Array));$e.exports={isArray:ye,isArrayBuffer:Ye,isBuffer:Zt,isFormData:fn,isArrayBufferView:en,isString:rn,isNumber:tn,isObject:Ke,isPlainObject:X,isUndefined:Q,isDate:nn,isFile:on,isBlob:sn,isFunction:_e,isStream:un,isURLSearchParams:cn,isStandardBrowserEnv:pn,forEach:xe,merge:me,extend:dn,trim:ln,stripBOM:hn,inherits:mn,toFlatObject:vn,kindOf:be,kindOfTest:C,endsWith:bn,toArray:yn,isTypedArray:_n,isFileList:an}});var Ee=m((lo,Qe)=>{"use strict";var j=y();function Xe(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}Qe.exports=function(e,r,n){if(!r)return e;var o;if(n)o=n(r);else if(j.isURLSearchParams(r))o=r.toString();else{var i=[];j.forEach(r,function(u,c){u===null||typeof u>"u"||(j.isArray(u)?c=c+"[]":u=[u],j.forEach(u,function(p){j.isDate(p)?p=p.toISOString():j.isObject(p)&&(p=JSON.stringify(p)),i.push(Xe(c)+"="+Xe(p))}))}),o=i.join("&")}if(o){var s=e.indexOf("#");s!==-1&&(e=e.slice(0,s)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}});var er=m((po,Ze)=>{"use strict";var xn=y();function Z(){this.handlers=[]}Z.prototype.use=function(e,r,n){return this.handlers.push({fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1};Z.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)};Z.prototype.forEach=function(e){xn.forEach(this.handlers,function(n){n!==null&&e(n)})};Ze.exports=Z});var tr=m((ho,rr)=>{"use strict";var En=y();rr.exports=function(e,r){En.forEach(e,function(o,i){i!==r&&i.toUpperCase()===r.toUpperCase()&&(e[r]=o,delete e[i])})}});var N=m((mo,sr)=>{"use strict";var nr=y();function I(t,e,r,n,o){Error.call(this),this.message=t,this.name="AxiosError",e&&(this.code=e),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}nr.inherits(I,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var or=I.prototype,ir={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach(function(t){ir[t]={value:t}});Object.defineProperties(I,ir);Object.defineProperty(or,"isAxiosError",{value:!0});I.from=function(t,e,r,n,o,i){var s=Object.create(or);return nr.toFlatObject(t,s,function(u){return u!==Error.prototype}),I.call(s,t.message,e,r,n,o),s.name=t.name,i&&Object.assign(s,i),s};sr.exports=I});var we=m((vo,ar)=>{"use strict";ar.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}});var Se=m((bo,ur)=>{"use strict";var T=y();function wn(t,e){e=e||new FormData;var r=[];function n(i){return i===null?"":T.isDate(i)?i.toISOString():T.isArrayBuffer(i)||T.isTypedArray(i)?typeof Blob=="function"?new Blob([i]):Buffer.from(i):i}function o(i,s){if(T.isPlainObject(i)||T.isArray(i)){if(r.indexOf(i)!==-1)throw Error("Circular reference detected in "+s);r.push(i),T.forEach(i,function(u,c){if(!T.isUndefined(u)){var f=s?s+"."+c:c,p;if(u&&!s&&typeof u=="object"){if(T.endsWith(c,"{}"))u=JSON.stringify(u);else if(T.endsWith(c,"[]")&&(p=T.toArray(u))){p.forEach(function(l){!T.isUndefined(l)&&e.append(f,n(l))});return}}o(u,f)}}),r.pop()}else e.append(s,n(i))}return o(t),e}ur.exports=wn});var cr=m((yo,fr)=>{"use strict";var ge=N();fr.exports=function(e,r,n){var o=n.config.validateStatus;!n.status||!o||o(n.status)?e(n):r(new ge("Request failed with status code "+n.status,[ge.ERR_BAD_REQUEST,ge.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}});var pr=m((_o,lr)=>{"use strict";var ee=y();lr.exports=ee.isStandardBrowserEnv()?function(){return{write:function(r,n,o,i,s,a){var u=[];u.push(r+"="+encodeURIComponent(n)),ee.isNumber(o)&&u.push("expires="+new Date(o).toGMTString()),ee.isString(i)&&u.push("path="+i),ee.isString(s)&&u.push("domain="+s),a===!0&&u.push("secure"),document.cookie=u.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var hr=m((xo,dr)=>{"use strict";dr.exports=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}});var vr=m((Eo,mr)=>{"use strict";mr.exports=function(e,r){return r?e.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):e}});var Oe=m((wo,br)=>{"use strict";var Sn=hr(),gn=vr();br.exports=function(e,r){return e&&!Sn(r)?gn(e,r):r}});var _r=m((So,yr)=>{"use strict";var Te=y(),On=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];yr.exports=function(e){var r={},n,o,i;return e&&Te.forEach(e.split(`
|
|
2
|
+
`),function(a){if(i=a.indexOf(":"),n=Te.trim(a.substr(0,i)).toLowerCase(),o=Te.trim(a.substr(i+1)),n){if(r[n]&&On.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([o]):r[n]=r[n]?r[n]+", "+o:o}}),r}});var wr=m((go,Er)=>{"use strict";var xr=y();Er.exports=xr.isStandardBrowserEnv()?function(){var e=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function o(i){var s=i;return e&&(r.setAttribute("href",s),s=r.href),r.setAttribute("href",s),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=o(window.location.href),function(s){var a=xr.isString(s)?o(s):s;return a.protocol===n.protocol&&a.host===n.host}}():function(){return function(){return!0}}()});var J=m((Oo,gr)=>{"use strict";var Re=N(),Tn=y();function Sr(t){Re.call(this,t??"canceled",Re.ERR_CANCELED),this.name="CanceledError"}Tn.inherits(Sr,Re,{__CANCEL__:!0});gr.exports=Sr});var Tr=m((To,Or)=>{"use strict";Or.exports=function(e){var r=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return r&&r[1]||""}});var Ae=m((Ro,Rr)=>{"use strict";var z=y(),Rn=cr(),An=pr(),Pn=Ee(),Cn=Oe(),Nn=_r(),qn=wr(),jn=we(),A=N(),In=J(),Dn=Tr();Rr.exports=function(e){return new Promise(function(n,o){var i=e.data,s=e.headers,a=e.responseType,u;function c(){e.cancelToken&&e.cancelToken.unsubscribe(u),e.signal&&e.signal.removeEventListener("abort",u)}z.isFormData(i)&&z.isStandardBrowserEnv()&&delete s["Content-Type"];var f=new XMLHttpRequest;if(e.auth){var p=e.auth.username||"",l=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";s.Authorization="Basic "+btoa(p+":"+l)}var d=Cn(e.baseURL,e.url);f.open(e.method.toUpperCase(),Pn(d,e.params,e.paramsSerializer),!0),f.timeout=e.timeout;function b(){if(!!f){var v="getAllResponseHeaders"in f?Nn(f.getAllResponseHeaders()):null,O=!a||a==="text"||a==="json"?f.responseText:f.response,w={data:O,status:f.status,statusText:f.statusText,headers:v,config:e,request:f};Rn(function(V){n(V),c()},function(V){o(V),c()},w),f=null}}if("onloadend"in f?f.onloadend=b:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(b)},f.onabort=function(){!f||(o(new A("Request aborted",A.ECONNABORTED,e,f)),f=null)},f.onerror=function(){o(new A("Network Error",A.ERR_NETWORK,e,f,f)),f=null},f.ontimeout=function(){var O=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",w=e.transitional||jn;e.timeoutErrorMessage&&(O=e.timeoutErrorMessage),o(new A(O,w.clarifyTimeoutError?A.ETIMEDOUT:A.ECONNABORTED,e,f)),f=null},z.isStandardBrowserEnv()){var h=(e.withCredentials||qn(d))&&e.xsrfCookieName?An.read(e.xsrfCookieName):void 0;h&&(s[e.xsrfHeaderName]=h)}"setRequestHeader"in f&&z.forEach(s,function(O,w){typeof i>"u"&&w.toLowerCase()==="content-type"?delete s[w]:f.setRequestHeader(w,O)}),z.isUndefined(e.withCredentials)||(f.withCredentials=!!e.withCredentials),a&&a!=="json"&&(f.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&f.addEventListener("progress",e.onDownloadProgress),typeof e.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(u=function(v){!f||(o(!v||v&&v.type?new In:v),f.abort(),f=null)},e.cancelToken&&e.cancelToken.subscribe(u),e.signal&&(e.signal.aborted?u():e.signal.addEventListener("abort",u))),i||(i=null);var E=Dn(d);if(E&&["http","https","file"].indexOf(E)===-1){o(new A("Unsupported protocol "+E+":",A.ERR_BAD_REQUEST,e));return}f.send(i)})}});var Pr=m((Ao,Ar)=>{Ar.exports=null});var te=m((Po,jr)=>{"use strict";var _=y(),Cr=tr(),Nr=N(),Un=we(),Bn=Se(),Ln={"Content-Type":"application/x-www-form-urlencoded"};function qr(t,e){!_.isUndefined(t)&&_.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}function Fn(){var t;return typeof XMLHttpRequest<"u"?t=Ae():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(t=Ae()),t}function kn(t,e,r){if(_.isString(t))try{return(e||JSON.parse)(t),_.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}var re={transitional:Un,adapter:Fn(),transformRequest:[function(e,r){if(Cr(r,"Accept"),Cr(r,"Content-Type"),_.isFormData(e)||_.isArrayBuffer(e)||_.isBuffer(e)||_.isStream(e)||_.isFile(e)||_.isBlob(e))return e;if(_.isArrayBufferView(e))return e.buffer;if(_.isURLSearchParams(e))return qr(r,"application/x-www-form-urlencoded;charset=utf-8"),e.toString();var n=_.isObject(e),o=r&&r["Content-Type"],i;if((i=_.isFileList(e))||n&&o==="multipart/form-data"){var s=this.env&&this.env.FormData;return Bn(i?{"files[]":e}:e,s&&new s)}else if(n||o==="application/json")return qr(r,"application/json"),kn(e);return e}],transformResponse:[function(e){var r=this.transitional||re.transitional,n=r&&r.silentJSONParsing,o=r&&r.forcedJSONParsing,i=!n&&this.responseType==="json";if(i||o&&_.isString(e)&&e.length)try{return JSON.parse(e)}catch(s){if(i)throw s.name==="SyntaxError"?Nr.from(s,Nr.ERR_BAD_RESPONSE,this,null,this.response):s}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Pr()},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};_.forEach(["delete","get","head"],function(e){re.headers[e]={}});_.forEach(["post","put","patch"],function(e){re.headers[e]=_.merge(Ln)});jr.exports=re});var Dr=m((Co,Ir)=>{"use strict";var Mn=y(),Gn=te();Ir.exports=function(e,r,n){var o=this||Gn;return Mn.forEach(n,function(s){e=s.call(o,e,r)}),e}});var Pe=m((No,Ur)=>{"use strict";Ur.exports=function(e){return!!(e&&e.__CANCEL__)}});var Fr=m((qo,Lr)=>{"use strict";var Br=y(),Ce=Dr(),Wn=Pe(),Hn=te(),Vn=J();function Ne(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new Vn}Lr.exports=function(e){Ne(e),e.headers=e.headers||{},e.data=Ce.call(e,e.data,e.headers,e.transformRequest),e.headers=Br.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),Br.forEach(["delete","get","head","post","put","patch","common"],function(o){delete e.headers[o]});var r=e.adapter||Hn.adapter;return r(e).then(function(o){return Ne(e),o.data=Ce.call(e,o.data,o.headers,e.transformResponse),o},function(o){return Wn(o)||(Ne(e),o&&o.response&&(o.response.data=Ce.call(e,o.response.data,o.response.headers,e.transformResponse))),Promise.reject(o)})}});var qe=m((jo,kr)=>{"use strict";var S=y();kr.exports=function(e,r){r=r||{};var n={};function o(f,p){return S.isPlainObject(f)&&S.isPlainObject(p)?S.merge(f,p):S.isPlainObject(p)?S.merge({},p):S.isArray(p)?p.slice():p}function i(f){if(S.isUndefined(r[f])){if(!S.isUndefined(e[f]))return o(void 0,e[f])}else return o(e[f],r[f])}function s(f){if(!S.isUndefined(r[f]))return o(void 0,r[f])}function a(f){if(S.isUndefined(r[f])){if(!S.isUndefined(e[f]))return o(void 0,e[f])}else return o(void 0,r[f])}function u(f){if(f in r)return o(e[f],r[f]);if(f in e)return o(void 0,e[f])}var c={url:s,method:s,data:s,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:u};return S.forEach(Object.keys(e).concat(Object.keys(r)),function(p){var l=c[p]||i,d=l(p);S.isUndefined(d)&&l!==u||(n[p]=d)}),n}});var je=m((Io,Mr)=>{Mr.exports={version:"0.27.2"}});var Hr=m((Do,Wr)=>{"use strict";var Jn=je().version,P=N(),Ie={};["object","boolean","number","function","string","symbol"].forEach(function(t,e){Ie[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});var Gr={};Ie.transitional=function(e,r,n){function o(i,s){return"[Axios v"+Jn+"] Transitional option '"+i+"'"+s+(n?". "+n:"")}return function(i,s,a){if(e===!1)throw new P(o(s," has been removed"+(r?" in "+r:"")),P.ERR_DEPRECATED);return r&&!Gr[s]&&(Gr[s]=!0,console.warn(o(s," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(i,s,a):!0}};function zn(t,e,r){if(typeof t!="object")throw new P("options must be an object",P.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(t),o=n.length;o-- >0;){var i=n[o],s=e[i];if(s){var a=t[i],u=a===void 0||s(a,i,t);if(u!==!0)throw new P("option "+i+" must be "+u,P.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new P("Unknown option "+i,P.ERR_BAD_OPTION)}}Wr.exports={assertOptions:zn,validators:Ie}});var $r=m((Uo,Kr)=>{"use strict";var zr=y(),Yn=Ee(),Vr=er(),Jr=Fr(),ne=qe(),Kn=Oe(),Yr=Hr(),D=Yr.validators;function U(t){this.defaults=t,this.interceptors={request:new Vr,response:new Vr}}U.prototype.request=function(e,r){typeof e=="string"?(r=r||{},r.url=e):r=e||{},r=ne(this.defaults,r),r.method?r.method=r.method.toLowerCase():this.defaults.method?r.method=this.defaults.method.toLowerCase():r.method="get";var n=r.transitional;n!==void 0&&Yr.assertOptions(n,{silentJSONParsing:D.transitional(D.boolean),forcedJSONParsing:D.transitional(D.boolean),clarifyTimeoutError:D.transitional(D.boolean)},!1);var o=[],i=!0;this.interceptors.request.forEach(function(d){typeof d.runWhen=="function"&&d.runWhen(r)===!1||(i=i&&d.synchronous,o.unshift(d.fulfilled,d.rejected))});var s=[];this.interceptors.response.forEach(function(d){s.push(d.fulfilled,d.rejected)});var a;if(!i){var u=[Jr,void 0];for(Array.prototype.unshift.apply(u,o),u=u.concat(s),a=Promise.resolve(r);u.length;)a=a.then(u.shift(),u.shift());return a}for(var c=r;o.length;){var f=o.shift(),p=o.shift();try{c=f(c)}catch(l){p(l);break}}try{a=Jr(c)}catch(l){return Promise.reject(l)}for(;s.length;)a=a.then(s.shift(),s.shift());return a};U.prototype.getUri=function(e){e=ne(this.defaults,e);var r=Kn(e.baseURL,e.url);return Yn(r,e.params,e.paramsSerializer)};zr.forEach(["delete","get","head","options"],function(e){U.prototype[e]=function(r,n){return this.request(ne(n||{},{method:e,url:r,data:(n||{}).data}))}});zr.forEach(["post","put","patch"],function(e){function r(n){return function(i,s,a){return this.request(ne(a||{},{method:e,headers:n?{"Content-Type":"multipart/form-data"}:{},url:i,data:s}))}}U.prototype[e]=r(),U.prototype[e+"Form"]=r(!0)});Kr.exports=U});var Qr=m((Bo,Xr)=>{"use strict";var $n=J();function B(t){if(typeof t!="function")throw new TypeError("executor must be a function.");var e;this.promise=new Promise(function(o){e=o});var r=this;this.promise.then(function(n){if(!!r._listeners){var o,i=r._listeners.length;for(o=0;o<i;o++)r._listeners[o](n);r._listeners=null}}),this.promise.then=function(n){var o,i=new Promise(function(s){r.subscribe(s),o=s}).then(n);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o){r.reason||(r.reason=new $n(o),e(r.reason))})}B.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};B.prototype.subscribe=function(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]};B.prototype.unsubscribe=function(e){if(!!this._listeners){var r=this._listeners.indexOf(e);r!==-1&&this._listeners.splice(r,1)}};B.source=function(){var e,r=new B(function(o){e=o});return{token:r,cancel:e}};Xr.exports=B});var et=m((Lo,Zr)=>{"use strict";Zr.exports=function(e){return function(n){return e.apply(null,n)}}});var tt=m((Fo,rt)=>{"use strict";var Xn=y();rt.exports=function(e){return Xn.isObject(e)&&e.isAxiosError===!0}});var it=m((ko,De)=>{"use strict";var nt=y(),Qn=he(),oe=$r(),Zn=qe(),eo=te();function ot(t){var e=new oe(t),r=Qn(oe.prototype.request,e);return nt.extend(r,oe.prototype,e),nt.extend(r,e),r.create=function(o){return ot(Zn(t,o))},r}var x=ot(eo);x.Axios=oe;x.CanceledError=J();x.CancelToken=Qr();x.isCancel=Pe();x.VERSION=je().version;x.toFormData=Se();x.AxiosError=N();x.Cancel=x.CanceledError;x.all=function(e){return Promise.all(e)};x.spread=et();x.isAxiosError=tt();De.exports=x;De.exports.default=x});var at=m((Mo,st)=>{st.exports=it()});var Pt=m((Go,ae)=>{var ut,ft,ct,lt,pt,dt,ht,mt,vt,ie,Ue,bt,yt,_t,L,xt,Et,wt,St,gt,Ot,Tt,Rt,At,se;(function(t){var e=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){t(r(e,r(n)))}):typeof ae=="object"&&typeof ae.exports=="object"?t(r(e,r(ae.exports))):t(r(e));function r(n,o){return n!==e&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(i,s){return n[i]=o?o(i,s):s}}})(function(t){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(n[i]=o[i])};ut=function(n,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");e(n,o);function i(){this.constructor=n}n.prototype=o===null?Object.create(o):(i.prototype=o.prototype,new i)},ft=Object.assign||function(n){for(var o,i=1,s=arguments.length;i<s;i++){o=arguments[i];for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(n[a]=o[a])}return n},ct=function(n,o){var i={};for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&o.indexOf(s)<0&&(i[s]=n[s]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(n);a<s.length;a++)o.indexOf(s[a])<0&&Object.prototype.propertyIsEnumerable.call(n,s[a])&&(i[s[a]]=n[s[a]]);return i},lt=function(n,o,i,s){var a=arguments.length,u=a<3?o:s===null?s=Object.getOwnPropertyDescriptor(o,i):s,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")u=Reflect.decorate(n,o,i,s);else for(var f=n.length-1;f>=0;f--)(c=n[f])&&(u=(a<3?c(u):a>3?c(o,i,u):c(o,i))||u);return a>3&&u&&Object.defineProperty(o,i,u),u},pt=function(n,o){return function(i,s){o(i,s,n)}},dt=function(n,o){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,o)},ht=function(n,o,i,s){function a(u){return u instanceof i?u:new i(function(c){c(u)})}return new(i||(i=Promise))(function(u,c){function f(d){try{l(s.next(d))}catch(b){c(b)}}function p(d){try{l(s.throw(d))}catch(b){c(b)}}function l(d){d.done?u(d.value):a(d.value).then(f,p)}l((s=s.apply(n,o||[])).next())})},mt=function(n,o){var i={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},s,a,u,c;return c={next:f(0),throw:f(1),return:f(2)},typeof Symbol=="function"&&(c[Symbol.iterator]=function(){return this}),c;function f(l){return function(d){return p([l,d])}}function p(l){if(s)throw new TypeError("Generator is already executing.");for(;i;)try{if(s=1,a&&(u=l[0]&2?a.return:l[0]?a.throw||((u=a.return)&&u.call(a),0):a.next)&&!(u=u.call(a,l[1])).done)return u;switch(a=0,u&&(l=[l[0]&2,u.value]),l[0]){case 0:case 1:u=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,a=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(u=i.trys,!(u=u.length>0&&u[u.length-1])&&(l[0]===6||l[0]===2)){i=0;continue}if(l[0]===3&&(!u||l[1]>u[0]&&l[1]<u[3])){i.label=l[1];break}if(l[0]===6&&i.label<u[1]){i.label=u[1],u=l;break}if(u&&i.label<u[2]){i.label=u[2],i.ops.push(l);break}u[2]&&i.ops.pop(),i.trys.pop();continue}l=o.call(n,i)}catch(d){l=[6,d],a=0}finally{s=u=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}},vt=function(n,o){for(var i in n)i!=="default"&&!Object.prototype.hasOwnProperty.call(o,i)&&se(o,n,i)},se=Object.create?function(n,o,i,s){s===void 0&&(s=i);var a=Object.getOwnPropertyDescriptor(o,i);(!a||("get"in a?!o.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return o[i]}}),Object.defineProperty(n,s,a)}:function(n,o,i,s){s===void 0&&(s=i),n[s]=o[i]},ie=function(n){var o=typeof Symbol=="function"&&Symbol.iterator,i=o&&n[o],s=0;if(i)return i.call(n);if(n&&typeof n.length=="number")return{next:function(){return n&&s>=n.length&&(n=void 0),{value:n&&n[s++],done:!n}}};throw new TypeError(o?"Object is not iterable.":"Symbol.iterator is not defined.")},Ue=function(n,o){var i=typeof Symbol=="function"&&n[Symbol.iterator];if(!i)return n;var s=i.call(n),a,u=[],c;try{for(;(o===void 0||o-- >0)&&!(a=s.next()).done;)u.push(a.value)}catch(f){c={error:f}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(c)throw c.error}}return u},bt=function(){for(var n=[],o=0;o<arguments.length;o++)n=n.concat(Ue(arguments[o]));return n},yt=function(){for(var n=0,o=0,i=arguments.length;o<i;o++)n+=arguments[o].length;for(var s=Array(n),a=0,o=0;o<i;o++)for(var u=arguments[o],c=0,f=u.length;c<f;c++,a++)s[a]=u[c];return s},_t=function(n,o,i){if(i||arguments.length===2)for(var s=0,a=o.length,u;s<a;s++)(u||!(s in o))&&(u||(u=Array.prototype.slice.call(o,0,s)),u[s]=o[s]);return n.concat(u||Array.prototype.slice.call(o))},L=function(n){return this instanceof L?(this.v=n,this):new L(n)},xt=function(n,o,i){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var s=i.apply(n,o||[]),a,u=[];return a={},c("next"),c("throw"),c("return"),a[Symbol.asyncIterator]=function(){return this},a;function c(h){s[h]&&(a[h]=function(E){return new Promise(function(v,O){u.push([h,E,v,O])>1||f(h,E)})})}function f(h,E){try{p(s[h](E))}catch(v){b(u[0][3],v)}}function p(h){h.value instanceof L?Promise.resolve(h.value.v).then(l,d):b(u[0][2],h)}function l(h){f("next",h)}function d(h){f("throw",h)}function b(h,E){h(E),u.shift(),u.length&&f(u[0][0],u[0][1])}},Et=function(n){var o,i;return o={},s("next"),s("throw",function(a){throw a}),s("return"),o[Symbol.iterator]=function(){return this},o;function s(a,u){o[a]=n[a]?function(c){return(i=!i)?{value:L(n[a](c)),done:a==="return"}:u?u(c):c}:u}},wt=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n[Symbol.asyncIterator],i;return o?o.call(n):(n=typeof ie=="function"?ie(n):n[Symbol.iterator](),i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i);function s(u){i[u]=n[u]&&function(c){return new Promise(function(f,p){c=n[u](c),a(f,p,c.done,c.value)})}}function a(u,c,f,p){Promise.resolve(p).then(function(l){u({value:l,done:f})},c)}},St=function(n,o){return Object.defineProperty?Object.defineProperty(n,"raw",{value:o}):n.raw=o,n};var r=Object.create?function(n,o){Object.defineProperty(n,"default",{enumerable:!0,value:o})}:function(n,o){n.default=o};gt=function(n){if(n&&n.__esModule)return n;var o={};if(n!=null)for(var i in n)i!=="default"&&Object.prototype.hasOwnProperty.call(n,i)&&se(o,n,i);return r(o,n),o},Ot=function(n){return n&&n.__esModule?n:{default:n}},Tt=function(n,o,i,s){if(i==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof o=="function"?n!==o||!s:!o.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?s:i==="a"?s.call(n):s?s.value:o.get(n)},Rt=function(n,o,i,s,a){if(s==="m")throw new TypeError("Private method is not writable");if(s==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof o=="function"?n!==o||!a:!o.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return s==="a"?a.call(n,i):a?a.value=i:o.set(n,i),i},At=function(n,o){if(o===null||typeof o!="object"&&typeof o!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof n=="function"?o===n:n.has(o)},t("__extends",ut),t("__assign",ft),t("__rest",ct),t("__decorate",lt),t("__param",pt),t("__metadata",dt),t("__awaiter",ht),t("__generator",mt),t("__exportStar",vt),t("__createBinding",se),t("__values",ie),t("__read",Ue),t("__spread",bt),t("__spreadArrays",yt),t("__spreadArray",_t),t("__await",L),t("__asyncGenerator",xt),t("__asyncDelegator",Et),t("__asyncValues",wt),t("__makeTemplateObject",St),t("__importStar",gt),t("__importDefault",Ot),t("__classPrivateFieldGet",Tt),t("__classPrivateFieldSet",Rt),t("__classPrivateFieldIn",At)})});var Vt=Je(at(),1);var Ct=Je(Pt(),1),{__extends:F,__assign:Wo,__rest:Ho,__decorate:Vo,__param:Jo,__metadata:zo,__awaiter:Yo,__generator:Ko,__exportStar:$o,__createBinding:Xo,__values:Y,__read:k,__spread:Qo,__spreadArrays:Zo,__spreadArray:M,__await:ei,__asyncGenerator:ri,__asyncDelegator:ti,__asyncValues:ni,__makeTemplateObject:oi,__importStar:ii,__importDefault:si,__classPrivateFieldGet:ai,__classPrivateFieldSet:ui,__classPrivateFieldIn:fi}=Ct.default;function g(t){return typeof t=="function"}function ue(t){var e=function(n){Error.call(n),n.stack=new Error().stack},r=t(e);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var fe=ue(function(t){return function(r){t(this),this.message=r?r.length+` errors occurred during unsubscription:
|
|
3
|
+
`+r.map(function(n,o){return o+1+") "+n.toString()}).join(`
|
|
4
|
+
`):"",this.name="UnsubscriptionError",this.errors=r}});function K(t,e){if(t){var r=t.indexOf(e);0<=r&&t.splice(r,1)}}var G=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,r,n,o,i;if(!this.closed){this.closed=!0;var s=this._parentage;if(s)if(this._parentage=null,Array.isArray(s))try{for(var a=Y(s),u=a.next();!u.done;u=a.next()){var c=u.value;c.remove(this)}}catch(h){e={error:h}}finally{try{u&&!u.done&&(r=a.return)&&r.call(a)}finally{if(e)throw e.error}}else s.remove(this);var f=this.initialTeardown;if(g(f))try{f()}catch(h){i=h instanceof fe?h.errors:[h]}var p=this._finalizers;if(p){this._finalizers=null;try{for(var l=Y(p),d=l.next();!d.done;d=l.next()){var b=d.value;try{Nt(b)}catch(h){i=i??[],h instanceof fe?i=M(M([],k(i)),k(h.errors)):i.push(h)}}}catch(h){n={error:h}}finally{try{d&&!d.done&&(o=l.return)&&o.call(l)}finally{if(n)throw n.error}}}if(i)throw new fe(i)}},t.prototype.add=function(e){var r;if(e&&e!==this)if(this.closed)Nt(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(e)}},t.prototype._hasParent=function(e){var r=this._parentage;return r===e||Array.isArray(r)&&r.includes(e)},t.prototype._addParent=function(e){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(e),r):r?[r,e]:e},t.prototype._removeParent=function(e){var r=this._parentage;r===e?this._parentage=null:Array.isArray(r)&&K(r,e)},t.prototype.remove=function(e){var r=this._finalizers;r&&K(r,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}();var Be=G.EMPTY;function ce(t){return t instanceof G||t&&"closed"in t&&g(t.remove)&&g(t.add)&&g(t.unsubscribe)}function Nt(t){g(t)?t():t.unsubscribe()}var R={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var W={setTimeout:function(t,e){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];var o=W.delegate;return o?.setTimeout?o.setTimeout.apply(o,M([t,e],k(r))):setTimeout.apply(void 0,M([t,e],k(r)))},clearTimeout:function(t){var e=W.delegate;return(e?.clearTimeout||clearTimeout)(t)},delegate:void 0};function qt(t){W.setTimeout(function(){var e=R.onUnhandledError;if(e)e(t);else throw t})}function Le(){}var jt=function(){return Fe("C",void 0,void 0)}();function It(t){return Fe("E",void 0,t)}function Dt(t){return Fe("N",t,void 0)}function Fe(t,e,r){return{kind:t,value:e,error:r}}var q=null;function H(t){if(R.useDeprecatedSynchronousErrorHandling){var e=!q;if(e&&(q={errorThrown:!1,error:null}),t(),e){var r=q,n=r.errorThrown,o=r.error;if(q=null,n)throw o}}else t()}function Ut(t){R.useDeprecatedSynchronousErrorHandling&&q&&(q.errorThrown=!0,q.error=t)}var Ge=function(t){F(e,t);function e(r){var n=t.call(this)||this;return n.isStopped=!1,r?(n.destination=r,ce(r)&&r.add(n)):n.destination=oo,n}return e.create=function(r,n,o){return new pe(r,n,o)},e.prototype.next=function(r){this.isStopped?Me(Dt(r),this):this._next(r)},e.prototype.error=function(r){this.isStopped?Me(It(r),this):(this.isStopped=!0,this._error(r))},e.prototype.complete=function(){this.isStopped?Me(jt,this):(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(r){this.destination.next(r)},e.prototype._error=function(r){try{this.destination.error(r)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(G);var ro=Function.prototype.bind;function ke(t,e){return ro.call(t,e)}var to=function(){function t(e){this.partialObserver=e}return t.prototype.next=function(e){var r=this.partialObserver;if(r.next)try{r.next(e)}catch(n){le(n)}},t.prototype.error=function(e){var r=this.partialObserver;if(r.error)try{r.error(e)}catch(n){le(n)}else le(e)},t.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(r){le(r)}},t}(),pe=function(t){F(e,t);function e(r,n,o){var i=t.call(this)||this,s;if(g(r)||!r)s={next:r??void 0,error:n??void 0,complete:o??void 0};else{var a;i&&R.useDeprecatedNextContext?(a=Object.create(r),a.unsubscribe=function(){return i.unsubscribe()},s={next:r.next&&ke(r.next,a),error:r.error&&ke(r.error,a),complete:r.complete&&ke(r.complete,a)}):s=r}return i.destination=new to(s),i}return e}(Ge);function le(t){R.useDeprecatedSynchronousErrorHandling?Ut(t):qt(t)}function no(t){throw t}function Me(t,e){var r=R.onStoppedNotification;r&&W.setTimeout(function(){return r(t,e)})}var oo={closed:!0,next:Le,error:no,complete:Le};var Bt=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function Lt(t){return t}function Ft(t){return t.length===0?Lt:t.length===1?t[0]:function(r){return t.reduce(function(n,o){return o(n)},r)}}var We=function(){function t(e){e&&(this._subscribe=e)}return t.prototype.lift=function(e){var r=new t;return r.source=this,r.operator=e,r},t.prototype.subscribe=function(e,r,n){var o=this,i=so(e)?e:new pe(e,r,n);return H(function(){var s=o,a=s.operator,u=s.source;i.add(a?a.call(i,u):u?o._subscribe(i):o._trySubscribe(i))}),i},t.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(r){e.error(r)}},t.prototype.forEach=function(e,r){var n=this;return r=kt(r),new r(function(o,i){var s=new pe({next:function(a){try{e(a)}catch(u){i(u),s.unsubscribe()}},error:i,complete:o});n.subscribe(s)})},t.prototype._subscribe=function(e){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(e)},t.prototype[Bt]=function(){return this},t.prototype.pipe=function(){for(var e=[],r=0;r<arguments.length;r++)e[r]=arguments[r];return Ft(e)(this)},t.prototype.toPromise=function(e){var r=this;return e=kt(e),new e(function(n,o){var i;r.subscribe(function(s){return i=s},function(s){return o(s)},function(){return n(i)})})},t.create=function(e){return new t(e)},t}();function kt(t){var e;return(e=t??R.Promise)!==null&&e!==void 0?e:Promise}function io(t){return t&&g(t.next)&&g(t.error)&&g(t.complete)}function so(t){return t&&t instanceof Ge||io(t)&&ce(t)}var Mt=ue(function(t){return function(){t(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}});var de=function(t){F(e,t);function e(){var r=t.call(this)||this;return r.closed=!1,r.currentObservers=null,r.observers=[],r.isStopped=!1,r.hasError=!1,r.thrownError=null,r}return e.prototype.lift=function(r){var n=new Gt(this,this);return n.operator=r,n},e.prototype._throwIfClosed=function(){if(this.closed)throw new Mt},e.prototype.next=function(r){var n=this;H(function(){var o,i;if(n._throwIfClosed(),!n.isStopped){n.currentObservers||(n.currentObservers=Array.from(n.observers));try{for(var s=Y(n.currentObservers),a=s.next();!a.done;a=s.next()){var u=a.value;u.next(r)}}catch(c){o={error:c}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(o)throw o.error}}}})},e.prototype.error=function(r){var n=this;H(function(){if(n._throwIfClosed(),!n.isStopped){n.hasError=n.isStopped=!0,n.thrownError=r;for(var o=n.observers;o.length;)o.shift().error(r)}})},e.prototype.complete=function(){var r=this;H(function(){if(r._throwIfClosed(),!r.isStopped){r.isStopped=!0;for(var n=r.observers;n.length;)n.shift().complete()}})},e.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(e.prototype,"observed",{get:function(){var r;return((r=this.observers)===null||r===void 0?void 0:r.length)>0},enumerable:!1,configurable:!0}),e.prototype._trySubscribe=function(r){return this._throwIfClosed(),t.prototype._trySubscribe.call(this,r)},e.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},e.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,s=o.isStopped,a=o.observers;return i||s?Be:(this.currentObservers=null,a.push(r),new G(function(){n.currentObservers=null,K(a,r)}))},e.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,s=n.isStopped;o?r.error(i):s&&r.complete()},e.prototype.asObservable=function(){var r=new We;return r.source=this,r},e.create=function(r,n){return new Gt(r,n)},e}(We);var Gt=function(t){F(e,t);function e(r,n){var o=t.call(this)||this;return o.destination=r,o.source=n,o}return e.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},e.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},e.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},e.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Be},e}(de);var $=t=>{if(typeof process=="object")return t?process.hrtime(t):process.hrtime();{let e=global.performance||{},n=(e.now||e.mozNow||e.msNow||e.oNow||e.webkitNow||function(){return new Date().getTime()}).call(e)*.001,o=Math.floor(n),i=Math.floor(n%1*1e9);return t&&(o=o-t[0],i=i-t[1],i<0&&(o--,i+=1e9)),[o,i]}};var Wt=(t,e,r)=>[{name:"Block_API | Get Block",description:"Get Block",method:"block_api.get_block",params:{block_num:t},validator:n=>!!n.block.witness},{name:"Condenser_API | Get Account",description:"Retrieve an account details",method:"condenser_api.get_accounts",params:[[e]],validator:n=>!!(Array.isArray(n)&&n.length>0)},{name:"Condenser_API | Get Blog Entries",description:"Retrieve the list of blog entries for an account)",method:"condenser_api.get_blog_entries",params:[e,0,25],validator:n=>!!(Array.isArray(n)&&n.length>0)},{name:"Condenser_API | Get Content",description:"Retrieve the content (post or comment))",method:"condenser_api.get_content",params:[e,r],validator:n=>!!n.created},{name:"Condenser_API | Get Dynamic Global Propertie",description:"Check chain global properties",method:"condenser_api.get_dynamic_global_properties",params:[],validator:n=>"head_block_number"in n&&"last_irreversible_block_num"in n},{name:"Condenser_API | Get Disccusion By Blog",description:"Retrieve a list of discussions by blog)",method:"condenser_api.get_discussions_by_blog",params:[{tag:e,limit:5,truncate_body:1}],validator:n=>!!(Array.isArray(n)&&n.length>0)}];var ao=/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:/?#[\]@!$&'()*+,=.]+$/,Ht=class{nodes=[];message=new de;timer;full=!1;interval=9e5;timeout=3e3;reset;instance=Vt.default.default.create();intercept;tests=Wt(2e7,"blurtofficial","blurt-hardfork-0-8-a-new-consensus");constructor(e,r){r&&(r.full&&typeof r.full=="boolean"&&(this.full=r.full),r.interval&&typeof r.interval=="number"&&(this.interval=r.interval*1e3),r.timeout&&typeof r.timeout=="number"&&(this.timeout=r.timeout*1e3),r.reset&&typeof r.reset=="number"&&(this.reset=r.reset));for(let n of e)new RegExp(ao).test(n)?this.nodes.push({url:n,nb_ok:0,nb_error:0,nb_degraded:0,last_check:Date.now(),status:"unkown",test_result:[]}):this.message.error(new Error(`${n} is not a valid url`))}async start(){try{this.instance.interceptors.request.use(e=>(e&&e.headers&&e.headers.starttime&&delete e.headers.starttime,e),e=>Promise.reject(e)),this.nodes.length>0&&(setTimeout(()=>{this.check()},25),this.timer=setInterval(async()=>{this.check()},this.interval))}catch(e){clearInterval(this.timer),this.message.error(e.message)}}stop(){clearInterval(this.timer)}restart(){clearInterval(this.timer),this.start()}async check(){let e=Date.now();for(let[r,n]of this.nodes.entries())if(this.nodes[r]){this.reset&&n.nb_ok+n.nb_error+n.nb_degraded===this.reset&&(this.nodes[r].nb_ok=0,this.nodes[r].nb_error=0,this.nodes[r].nb_degraded=0);let o=$(),i={method:"post",url:n.url,headers:{"Content-Type":"application/json"},data:{jsonrpc:"2.0",method:"condenser_api.get_config",params:[],id:1},timeout:this.timeout};this.instance(i).then(async s=>{let a=$(o),u=(a[0]*1e9+a[1])/1e6,c=s.data;if(c.error)throw new Error(c.error.message);if(c.result)if(this.nodes[r].nb_ok++,this.nodes[r].status="online",this.nodes[r].version=c.result.BLURT_BLOCKCHAIN_VERSION,this.nodes[r].duration=Math.round(u),this.full)for(let f of this.tests){let p=$(),l=n.test_result.findIndex(b=>b.method===f.method),d={method:"post",url:n.url,headers:{"Content-Type":"application/json"},data:{jsonrpc:"2.0",method:f.method,params:f.params,id:1},timeout:this.timeout};this.instance(d).then(b=>{let h=$(p),E=(h[0]*1e9+h[1])/1e6,v=b.data?b.data:null,O=v&&v.result&&f.validator?f.validator(v.result):!1,w={name:f.name,description:f.description,method:f.method,success:O,duration:Math.round(E),last_check:e};O?(this.nodes[r].status!=="degraded"&&(this.nodes[r].status="online"),this.nodes[r].average_time=this.nodes[r].average_time?Math.round((this.nodes[r].average_time+w.duration)/2):w.duration):(w.error=v&&v.error?v.error.message:"validation failed!",this.nodes[r].status="degraded",this.nodes[r].nb_degraded++,this.nodes[r].nb_ok>0&&this.nodes[r].nb_ok--,delete this.nodes[r].average_time),l>=0?this.nodes[r].test_result[l]=w:this.nodes[r].test_result.push(w),this.nodes[r].test_result.filter(V=>V.last_check===e).length===this.tests.length&&(this.nodes[r].last_check=e,this.sendMessage(e))}).catch(b=>{let h={name:f.name,description:f.description,method:f.method,success:!1,duration:999999,last_check:e,error:b.message};this.nodes[r].status="degraded",this.nodes[r].nb_degraded++,this.nodes[r].nb_ok--,l>=0?this.nodes[r].test_result[l]=h:this.nodes[r].test_result.push(h),delete this.nodes[r].average_time,this.nodes[r].test_result.filter(v=>v.last_check===e).length===this.tests.length&&(this.nodes[r].last_check=e,this.sendMessage(e))})}else this.nodes[r].last_check=e,this.sendMessage(e);else this.nodes[r].nb_error++,this.nodes[r].status="error",this.nodes[r].error="No result!",this.nodes[r].last_check=e,this.sendMessage(e)}).catch(s=>{this.nodes[r].nb_error++,this.nodes[r].status="error",s&&(this.nodes[r].error=s.message),this.nodes[r].last_check=e,this.sendMessage(e)})}}async sendMessage(e){let r=this.nodes.filter(n=>n.last_check===e);this.nodes.length===r.length&&this.message.next(this.nodes)}};export{Ht as BlurtNodesChecker};
|
|
5
|
+
/**
|
|
6
|
+
* @project @beblurt/blurt-nodes-checker
|
|
7
|
+
* @author @beblurt (https://blurt.blog/@beblurt)
|
|
8
|
+
* @license
|
|
9
|
+
* Copyright (C) 2022 IMT ASE Co., LTD
|
|
10
|
+
*
|
|
11
|
+
* This program is free software: you can redistribute it and/or modify
|
|
12
|
+
* it under the terms of the GNU General Public License as published by
|
|
13
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
14
|
+
* (at your option) any later version.
|
|
15
|
+
*
|
|
16
|
+
* This program is distributed in the hope that it will be useful,
|
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
+
* GNU General Public License for more details.
|
|
20
|
+
*
|
|
21
|
+
* You should have received a copy of the GNU General Public License
|
|
22
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
23
|
+
*/
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare type FEE_INFO = 3 | {
|
|
2
|
+
operation_flat_fee: number;
|
|
3
|
+
bandwidth_kbytes_fee: number;
|
|
4
|
+
};
|
|
5
|
+
export declare type TRANSACTION = {
|
|
6
|
+
ref_block_num: number;
|
|
7
|
+
ref_block_prefix: number;
|
|
8
|
+
expiration: string;
|
|
9
|
+
operations: unknown[];
|
|
10
|
+
extensions: unknown[];
|
|
11
|
+
signatures: string[];
|
|
12
|
+
};
|
|
13
|
+
export declare type BLOCK_GET_BLOCK = {
|
|
14
|
+
block: {
|
|
15
|
+
previous: string;
|
|
16
|
+
timestamp: string;
|
|
17
|
+
witness: string;
|
|
18
|
+
transaction_merkle_root: string;
|
|
19
|
+
extensions: FEE_INFO[];
|
|
20
|
+
witness_signature: string;
|
|
21
|
+
transactions: TRANSACTION[];
|
|
22
|
+
block_id: string;
|
|
23
|
+
signing_key: string;
|
|
24
|
+
transaction_ids: string[];
|
|
25
|
+
};
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GET_BLOCK.js","sourceRoot":"","sources":["../../../src/helpers/BLOCK_API/GET_BLOCK.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Large number that may be unsafe to represent natively in JavaScript.
|
|
3
|
+
*/
|
|
4
|
+
export declare type Bignum = string;
|
|
5
|
+
export declare type DYNAMIC_GLOBAL_PROPERTIES = {
|
|
6
|
+
id: number;
|
|
7
|
+
/**
|
|
8
|
+
* Current block height.
|
|
9
|
+
*/
|
|
10
|
+
head_block_number: number;
|
|
11
|
+
head_block_id: string;
|
|
12
|
+
/**
|
|
13
|
+
* UTC Server time, e.g. 2020-01-15T00:42:00
|
|
14
|
+
*/
|
|
15
|
+
time: string;
|
|
16
|
+
/**
|
|
17
|
+
* Currently elected witness.
|
|
18
|
+
*/
|
|
19
|
+
current_witness: string;
|
|
20
|
+
/**
|
|
21
|
+
* Current Supply
|
|
22
|
+
*/
|
|
23
|
+
current_supply: string;
|
|
24
|
+
/**
|
|
25
|
+
* Total asset held.
|
|
26
|
+
*/
|
|
27
|
+
total_vesting_fund_blurt: string;
|
|
28
|
+
total_vesting_shares: string;
|
|
29
|
+
total_reward_fund_blurt: string;
|
|
30
|
+
/**
|
|
31
|
+
* The running total of REWARD^2.
|
|
32
|
+
*/
|
|
33
|
+
total_reward_shares2: string;
|
|
34
|
+
pending_rewarded_vesting_shares: string;
|
|
35
|
+
pending_rewarded_vesting_blurt: string;
|
|
36
|
+
/**
|
|
37
|
+
* Maximum block size is decided by the set of active witnesses which change every round.
|
|
38
|
+
* Each witness posts what they think the maximum size should be as part of their witness
|
|
39
|
+
* properties, the median size is chosen to be the maximum block size for the round.
|
|
40
|
+
*
|
|
41
|
+
* @note the minimum value for maximum_block_size is defined by the protocol to prevent the
|
|
42
|
+
* network from getting stuck by witnesses attempting to set this too low.
|
|
43
|
+
*/
|
|
44
|
+
maximum_block_size: number;
|
|
45
|
+
/**
|
|
46
|
+
* The current absolute slot number. Equal to the total
|
|
47
|
+
* number of slots since genesis. Also equal to the total
|
|
48
|
+
* number of missed slots plus head_block_number.
|
|
49
|
+
*/
|
|
50
|
+
current_aslot: number;
|
|
51
|
+
/**
|
|
52
|
+
* Used to compute witness participation.
|
|
53
|
+
*/
|
|
54
|
+
recent_slots_filled: Bignum;
|
|
55
|
+
participation_count: number;
|
|
56
|
+
last_irreversible_block_num: number;
|
|
57
|
+
vote_power_reserve_rate: number;
|
|
58
|
+
delegation_return_period: number;
|
|
59
|
+
reverse_auction_seconds: number;
|
|
60
|
+
available_account_subsidies: number;
|
|
61
|
+
next_maintenance_time: string;
|
|
62
|
+
last_budget_time: string;
|
|
63
|
+
content_reward_percent: number;
|
|
64
|
+
vesting_reward_percent: number;
|
|
65
|
+
sps_fund_percent: number;
|
|
66
|
+
sps_interval_ledger: string;
|
|
67
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DYNAMIC_GLOBAL_PROPERTIES.js","sourceRoot":"","sources":["../../../src/helpers/CONDENSER_API/DYNAMIC_GLOBAL_PROPERTIES.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export declare type GET_ACCOUNT = {
|
|
2
|
+
id: number;
|
|
3
|
+
name: string;
|
|
4
|
+
owner: {
|
|
5
|
+
weight_threshold: number;
|
|
6
|
+
account_auths: Array<[string, number]>;
|
|
7
|
+
key_auths: Array<[string, number]>;
|
|
8
|
+
};
|
|
9
|
+
active: {
|
|
10
|
+
weight_threshold: number;
|
|
11
|
+
account_auths: Array<[string, number]>;
|
|
12
|
+
key_auths: Array<[string, number]>;
|
|
13
|
+
};
|
|
14
|
+
posting: {
|
|
15
|
+
weight_threshold: number;
|
|
16
|
+
account_auths: Array<[string, number]>;
|
|
17
|
+
key_auths: Array<[string, number]>;
|
|
18
|
+
};
|
|
19
|
+
memo_key: string;
|
|
20
|
+
json_metadata: string;
|
|
21
|
+
posting_json_metadata: string;
|
|
22
|
+
proxy: string;
|
|
23
|
+
last_owner_update: string;
|
|
24
|
+
last_account_update: string;
|
|
25
|
+
created: string;
|
|
26
|
+
mined: boolean;
|
|
27
|
+
recovery_account: string;
|
|
28
|
+
last_account_recovery: string;
|
|
29
|
+
reset_account: string;
|
|
30
|
+
comment_count: number;
|
|
31
|
+
lifetime_vote_count: number;
|
|
32
|
+
post_count: number;
|
|
33
|
+
can_vote: boolean;
|
|
34
|
+
voting_manabar: {
|
|
35
|
+
current_mana: string;
|
|
36
|
+
last_update_time: number;
|
|
37
|
+
};
|
|
38
|
+
voting_power: number;
|
|
39
|
+
balance: string;
|
|
40
|
+
savings_balance: string;
|
|
41
|
+
savings_withdraw_requests: number;
|
|
42
|
+
reward_blurt_balance: string;
|
|
43
|
+
reward_vesting_balance: string;
|
|
44
|
+
reward_vesting_blurt: string;
|
|
45
|
+
vesting_shares: string;
|
|
46
|
+
delegated_vesting_shares: string;
|
|
47
|
+
received_vesting_shares: string;
|
|
48
|
+
vesting_withdraw_rate: string;
|
|
49
|
+
post_voting_power: string;
|
|
50
|
+
next_vesting_withdrawal: string;
|
|
51
|
+
withdrawn: number;
|
|
52
|
+
to_withdraw: number;
|
|
53
|
+
withdraw_routes: number;
|
|
54
|
+
curation_rewards: number;
|
|
55
|
+
posting_rewards: number;
|
|
56
|
+
proxied_vsf_votes: Array<number>;
|
|
57
|
+
witnesses_voted_for: number;
|
|
58
|
+
last_post: string;
|
|
59
|
+
last_root_post: string;
|
|
60
|
+
last_vote_time: string;
|
|
61
|
+
post_bandwidth: number;
|
|
62
|
+
pending_claimed_accounts: number;
|
|
63
|
+
vesting_balance: string;
|
|
64
|
+
transfer_history: Array<unknown>;
|
|
65
|
+
market_history: Array<unknown>;
|
|
66
|
+
post_history: Array<unknown>;
|
|
67
|
+
vote_history: Array<unknown>;
|
|
68
|
+
other_history: Array<unknown>;
|
|
69
|
+
witness_votes: Array<string>;
|
|
70
|
+
tags_usage: Array<unknown>;
|
|
71
|
+
guest_bloggers: Array<unknown>;
|
|
72
|
+
governance_vote_expiration_ts: string;
|
|
73
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GET_ACCOUNT.js","sourceRoot":"","sources":["../../../src/helpers/CONDENSER_API/GET_ACCOUNT.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GET_BLOG_ENTRY.js","sourceRoot":"","sources":["../../../src/helpers/CONDENSER_API/GET_BLOG_ENTRY.ts"],"names":[],"mappings":""}
|