@rosen-bridge/rosen-extractor 6.2.2 → 6.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts +14 -20
- package/dist/lib/getRosenData/abstract/types.d.ts +13 -13
- package/dist/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.d.ts +15 -24
- package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.d.ts +15 -22
- package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.d.ts +15 -22
- package/dist/lib/getRosenData/bitcoin/types.d.ts +66 -66
- package/dist/lib/getRosenData/bitcoin/utils.d.ts +1 -1
- package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts +13 -16
- package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts +13 -16
- package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts +13 -16
- package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts +13 -16
- package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.d.ts +13 -16
- package/dist/lib/getRosenData/cardano/types.d.ts +90 -110
- package/dist/lib/getRosenData/cardano/utils.d.ts +8 -10
- package/dist/lib/getRosenData/const.d.ts +9 -9
- package/dist/lib/getRosenData/const.d.ts.map +1 -1
- package/dist/lib/getRosenData/const.js +3 -2
- package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts +22 -0
- package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts.map +1 -0
- package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.js +104 -0
- package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts +22 -0
- package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts.map +1 -0
- package/dist/lib/getRosenData/doge/DogeRosenExtractor.js +112 -0
- package/dist/lib/getRosenData/doge/types.d.ts +59 -0
- package/dist/lib/getRosenData/doge/types.d.ts.map +1 -0
- package/dist/lib/getRosenData/doge/types.js +2 -0
- package/dist/lib/getRosenData/doge/utils.d.ts +13 -0
- package/dist/lib/getRosenData/doge/utils.d.ts.map +1 -0
- package/dist/lib/getRosenData/doge/utils.js +58 -0
- package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts +15 -22
- package/dist/lib/getRosenData/ergo/ErgoRosenExtractor.d.ts +9 -13
- package/dist/lib/getRosenData/ergo/types.d.ts +24 -24
- package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.d.ts +9 -15
- package/dist/lib/getRosenData/evm/EvmRosenExtractor.d.ts +9 -15
- package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.d.ts +19 -25
- package/dist/lib/getRosenData/evm/utils.d.ts +5 -5
- package/dist/lib/index.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/lib/getRosenData/Utils.d.ts +0 -59
- package/dist/lib/getRosenData/Utils.d.ts.map +0 -1
- package/dist/lib/getRosenData/Utils.js +0 -96
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosen-bridge/rosen-extractor",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.3.1",
|
|
4
4
|
"description": "this project contains methods to get rosen data from blockchain",
|
|
5
5
|
"main": "dist/lib/index.js",
|
|
6
6
|
"types": "dist/lib/index.d.ts",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@blockfrost/blockfrost-js": "^5.4.0",
|
|
27
27
|
"@cardano-ogmios/schema": "^6.0.3",
|
|
28
28
|
"@rosen-bridge/abstract-logger": "^2.0.1",
|
|
29
|
-
"@rosen-bridge/address-codec": "^0.
|
|
29
|
+
"@rosen-bridge/address-codec": "^0.4.0",
|
|
30
30
|
"@rosen-bridge/json-bigint": "^0.1.0",
|
|
31
31
|
"@rosen-bridge/tokens": "^1.2.1",
|
|
32
32
|
"bitcoinjs-lib": "^6.1.5",
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { Metadatum } from '@cardano-ogmios/schema';
|
|
2
|
-
import { ListObject, MetadataObject } from './cardano/types';
|
|
3
|
-
declare class Utils {
|
|
4
|
-
static JsonBI: {
|
|
5
|
-
parse: (
|
|
6
|
-
text: string,
|
|
7
|
-
reviver?: ((this: any, key: string, value: any) => any) | undefined
|
|
8
|
-
) => any;
|
|
9
|
-
stringify: {
|
|
10
|
-
(
|
|
11
|
-
value: any,
|
|
12
|
-
replacer?: ((this: any, key: string, value: any) => any) | undefined,
|
|
13
|
-
space?: string | number | undefined
|
|
14
|
-
): string;
|
|
15
|
-
(
|
|
16
|
-
value: any,
|
|
17
|
-
replacer?: (string | number)[] | null | undefined,
|
|
18
|
-
space?: string | number | undefined
|
|
19
|
-
): string;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* extracts int value from Metadatum object
|
|
24
|
-
* @param val
|
|
25
|
-
* @returns : int value or undefined if parameter is not an int
|
|
26
|
-
*/
|
|
27
|
-
static getIntValue: (val: Metadatum) => string | undefined;
|
|
28
|
-
/**
|
|
29
|
-
* extracts string value from Metadatum object
|
|
30
|
-
* @param val
|
|
31
|
-
* @returns : string value or undefined if parameter is not a string
|
|
32
|
-
*/
|
|
33
|
-
static getStringValue: (val: Metadatum) => string | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* extracts list value from Metadatum object
|
|
36
|
-
* @param val
|
|
37
|
-
* @returns : list value or undefined if parameter is not a list
|
|
38
|
-
*/
|
|
39
|
-
static getListValue: (val: Metadatum) => ListObject | undefined;
|
|
40
|
-
/**
|
|
41
|
-
* extracts one of int or string from Metadatum object
|
|
42
|
-
* @param val
|
|
43
|
-
* @returns : native value or undefined if parameter is not a string or int
|
|
44
|
-
*/
|
|
45
|
-
static getNativeValue: (val: Metadatum) => string | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* extracts dictionary from Metadatum object
|
|
48
|
-
* @param val
|
|
49
|
-
* @returns : dictionary value or undefined if parameter is not a dict
|
|
50
|
-
*/
|
|
51
|
-
static getDictValue: (val: Metadatum) => MetadataObject;
|
|
52
|
-
/**
|
|
53
|
-
* Convert a Metadatum to a json
|
|
54
|
-
* @param val
|
|
55
|
-
*/
|
|
56
|
-
static ObjectToJson: (val: Metadatum) => MetadataObject;
|
|
57
|
-
}
|
|
58
|
-
export default Utils;
|
|
59
|
-
//# sourceMappingURL=Utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Utils.d.ts","sourceRoot":"","sources":["../../../lib/getRosenData/Utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,SAAS,EAGV,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAc,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGzE,cAAM,KAAK;IACT,MAAM,CAAC,MAAM;;;;;;MAGV;IAEH;;;;OAIG;IACH,MAAM,CAAC,WAAW,QAAS,SAAS,wBAIlC;IAEF;;;;OAIG;IACH,MAAM,CAAC,cAAc,QAAS,SAAS,wBAIrC;IAEF;;;;OAIG;IACH,MAAM,CAAC,YAAY,QAAS,SAAS,KAAG,UAAU,GAAG,SAAS,CAa5D;IAEF;;;;OAIG;IACH,MAAM,CAAC,cAAc,QAAS,SAAS,wBAKrC;IAEF;;;;OAIG;IACH,MAAM,CAAC,YAAY,QAAS,SAAS,KAAG,cAAc,CAoBpD;IAEF;;;OAGG;IACH,MAAM,CAAC,YAAY,QAAS,SAAS,oBAMnC;CACH;AAED,eAAe,KAAK,CAAC"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import JSONBigInt from 'json-bigint';
|
|
2
|
-
class Utils {
|
|
3
|
-
static JsonBI = JSONBigInt({
|
|
4
|
-
useNativeBigInt: true,
|
|
5
|
-
alwaysParseAsBig: true,
|
|
6
|
-
});
|
|
7
|
-
/**
|
|
8
|
-
* extracts int value from Metadatum object
|
|
9
|
-
* @param val
|
|
10
|
-
* @returns : int value or undefined if parameter is not an int
|
|
11
|
-
*/
|
|
12
|
-
static getIntValue = (val) => {
|
|
13
|
-
return Object.prototype.hasOwnProperty.call(val, 'int')
|
|
14
|
-
? val.int.toString()
|
|
15
|
-
: undefined;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* extracts string value from Metadatum object
|
|
19
|
-
* @param val
|
|
20
|
-
* @returns : string value or undefined if parameter is not a string
|
|
21
|
-
*/
|
|
22
|
-
static getStringValue = (val) => {
|
|
23
|
-
return Object.prototype.hasOwnProperty.call(val, 'string')
|
|
24
|
-
? val.string
|
|
25
|
-
: undefined;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* extracts list value from Metadatum object
|
|
29
|
-
* @param val
|
|
30
|
-
* @returns : list value or undefined if parameter is not a list
|
|
31
|
-
*/
|
|
32
|
-
static getListValue = (val) => {
|
|
33
|
-
if (Object.prototype.hasOwnProperty.call(val, 'list')) {
|
|
34
|
-
const list = val.list;
|
|
35
|
-
const res = [];
|
|
36
|
-
list.forEach((item) => {
|
|
37
|
-
const val = this.ObjectToJson(item);
|
|
38
|
-
if (val) {
|
|
39
|
-
res.push(val);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
return res;
|
|
43
|
-
}
|
|
44
|
-
return undefined;
|
|
45
|
-
};
|
|
46
|
-
/**
|
|
47
|
-
* extracts one of int or string from Metadatum object
|
|
48
|
-
* @param val
|
|
49
|
-
* @returns : native value or undefined if parameter is not a string or int
|
|
50
|
-
*/
|
|
51
|
-
static getNativeValue = (val) => {
|
|
52
|
-
const intVal = this.getIntValue(val);
|
|
53
|
-
if (intVal) return intVal;
|
|
54
|
-
const stringVal = this.getStringValue(val);
|
|
55
|
-
if (stringVal) return stringVal;
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* extracts dictionary from Metadatum object
|
|
59
|
-
* @param val
|
|
60
|
-
* @returns : dictionary value or undefined if parameter is not a dict
|
|
61
|
-
*/
|
|
62
|
-
static getDictValue = (val) => {
|
|
63
|
-
if (Object.prototype.hasOwnProperty.call(val, 'map')) {
|
|
64
|
-
const list = val.map;
|
|
65
|
-
const res = {};
|
|
66
|
-
list.forEach((item) => {
|
|
67
|
-
const key = this.getNativeValue(item.k);
|
|
68
|
-
if (key) {
|
|
69
|
-
res[key] = this.ObjectToJson(item.v);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
return res;
|
|
73
|
-
} else if (Object.prototype.hasOwnProperty.call(val, 'list')) {
|
|
74
|
-
const list = val.list;
|
|
75
|
-
const res = [];
|
|
76
|
-
list.map((item) => {
|
|
77
|
-
res.push(this.getDictValue(item));
|
|
78
|
-
});
|
|
79
|
-
return res;
|
|
80
|
-
}
|
|
81
|
-
return this.getNativeValue(val);
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Convert a Metadatum to a json
|
|
85
|
-
* @param val
|
|
86
|
-
*/
|
|
87
|
-
static ObjectToJson = (val) => {
|
|
88
|
-
const nativeValue = this.getNativeValue(val);
|
|
89
|
-
if (nativeValue) return nativeValue;
|
|
90
|
-
const listValue = this.getListValue(val);
|
|
91
|
-
if (listValue) return listValue;
|
|
92
|
-
return this.getDictValue(val);
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
export default Utils;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZ2V0Um9zZW5EYXRhL1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sVUFBVSxNQUFNLGFBQWEsQ0FBQztBQUVyQyxNQUFNLEtBQUs7SUFDVCxNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUN6QixlQUFlLEVBQUUsSUFBSTtRQUNyQixnQkFBZ0IsRUFBRSxJQUFJO0tBQ3ZCLENBQUMsQ0FBQztJQUVIOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBYyxFQUFFLEVBQUU7UUFDdEMsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQztZQUNyRCxDQUFDLENBQUUsR0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFDN0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQWMsRUFBRSxFQUFFO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7WUFDeEQsQ0FBQyxDQUFFLEdBQW9CLENBQUMsTUFBTTtZQUM5QixDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBYyxFQUEwQixFQUFFO1FBQy9ELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUNyRCxNQUFNLElBQUksR0FBSSxHQUFZLENBQUMsSUFBSSxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxHQUFlLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLElBQUksR0FBRyxFQUFFO29CQUNQLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ2Y7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQWMsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckMsSUFBSSxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxJQUFJLFNBQVM7WUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNsQyxDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQWMsRUFBa0IsRUFBRTtRQUN2RCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEdBQUksR0FBVyxDQUFDLEdBQUcsQ0FBQztZQUM5QixNQUFNLEdBQUcsR0FBZSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxHQUFHLEVBQUU7b0JBQ1AsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN0QztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxHQUFHLENBQUM7U0FDWjthQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsRUFBRTtZQUM1RCxNQUFNLElBQUksR0FBSSxHQUFZLENBQUMsSUFBSSxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxHQUFlLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxNQUFNLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBYyxFQUFFLEVBQUU7UUFDdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxJQUFJLFdBQVc7WUFBRSxPQUFPLFdBQVcsQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksU0FBUztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDLENBQUM7O0FBR0osZUFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbnQsXG4gIExpc3QsXG4gIE1ldGFkYXR1bSxcbiAgU3RyaW5nIGFzIE9nbWlvc1N0cmluZyxcbiAgTWFwLFxufSBmcm9tICdAY2FyZGFuby1vZ21pb3Mvc2NoZW1hJztcbmltcG9ydCB7IEpzb25PYmplY3QsIExpc3RPYmplY3QsIE1ldGFkYXRhT2JqZWN0IH0gZnJvbSAnLi9jYXJkYW5vL3R5cGVzJztcbmltcG9ydCBKU09OQmlnSW50IGZyb20gJ2pzb24tYmlnaW50JztcblxuY2xhc3MgVXRpbHMge1xuICBzdGF0aWMgSnNvbkJJID0gSlNPTkJpZ0ludCh7XG4gICAgdXNlTmF0aXZlQmlnSW50OiB0cnVlLFxuICAgIGFsd2F5c1BhcnNlQXNCaWc6IHRydWUsXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBleHRyYWN0cyBpbnQgdmFsdWUgZnJvbSBNZXRhZGF0dW0gb2JqZWN0XG4gICAqIEBwYXJhbSB2YWxcbiAgICogQHJldHVybnMgOiBpbnQgdmFsdWUgb3IgdW5kZWZpbmVkIGlmIHBhcmFtZXRlciBpcyBub3QgYW4gaW50XG4gICAqL1xuICBzdGF0aWMgZ2V0SW50VmFsdWUgPSAodmFsOiBNZXRhZGF0dW0pID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwgJ2ludCcpXG4gICAgICA/ICh2YWwgYXMgSW50KS5pbnQudG9TdHJpbmcoKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGV4dHJhY3RzIHN0cmluZyB2YWx1ZSBmcm9tIE1ldGFkYXR1bSBvYmplY3RcbiAgICogQHBhcmFtIHZhbFxuICAgKiBAcmV0dXJucyA6IHN0cmluZyB2YWx1ZSBvciB1bmRlZmluZWQgaWYgcGFyYW1ldGVyIGlzIG5vdCBhIHN0cmluZ1xuICAgKi9cbiAgc3RhdGljIGdldFN0cmluZ1ZhbHVlID0gKHZhbDogTWV0YWRhdHVtKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWwsICdzdHJpbmcnKVxuICAgICAgPyAodmFsIGFzIE9nbWlvc1N0cmluZykuc3RyaW5nXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgbGlzdCB2YWx1ZSBmcm9tIE1ldGFkYXR1bSBvYmplY3RcbiAgICogQHBhcmFtIHZhbFxuICAgKiBAcmV0dXJucyA6IGxpc3QgdmFsdWUgb3IgdW5kZWZpbmVkIGlmIHBhcmFtZXRlciBpcyBub3QgYSBsaXN0XG4gICAqL1xuICBzdGF0aWMgZ2V0TGlzdFZhbHVlID0gKHZhbDogTWV0YWRhdHVtKTogTGlzdE9iamVjdCB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YWwsICdsaXN0JykpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSAodmFsIGFzIExpc3QpLmxpc3Q7XG4gICAgICBjb25zdCByZXM6IExpc3RPYmplY3QgPSBbXTtcbiAgICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCB2YWwgPSB0aGlzLk9iamVjdFRvSnNvbihpdGVtKTtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgIHJlcy5wdXNoKHZhbCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgb25lIG9mIGludCBvciBzdHJpbmcgZnJvbSBNZXRhZGF0dW0gb2JqZWN0XG4gICAqIEBwYXJhbSB2YWxcbiAgICogQHJldHVybnMgOiBuYXRpdmUgdmFsdWUgb3IgdW5kZWZpbmVkIGlmIHBhcmFtZXRlciBpcyBub3QgYSBzdHJpbmcgb3IgaW50XG4gICAqL1xuICBzdGF0aWMgZ2V0TmF0aXZlVmFsdWUgPSAodmFsOiBNZXRhZGF0dW0pID0+IHtcbiAgICBjb25zdCBpbnRWYWwgPSB0aGlzLmdldEludFZhbHVlKHZhbCk7XG4gICAgaWYgKGludFZhbCkgcmV0dXJuIGludFZhbDtcbiAgICBjb25zdCBzdHJpbmdWYWwgPSB0aGlzLmdldFN0cmluZ1ZhbHVlKHZhbCk7XG4gICAgaWYgKHN0cmluZ1ZhbCkgcmV0dXJuIHN0cmluZ1ZhbDtcbiAgfTtcblxuICAvKipcbiAgICogZXh0cmFjdHMgZGljdGlvbmFyeSBmcm9tIE1ldGFkYXR1bSBvYmplY3RcbiAgICogQHBhcmFtIHZhbFxuICAgKiBAcmV0dXJucyA6IGRpY3Rpb25hcnkgdmFsdWUgb3IgdW5kZWZpbmVkIGlmIHBhcmFtZXRlciBpcyBub3QgYSBkaWN0XG4gICAqL1xuICBzdGF0aWMgZ2V0RGljdFZhbHVlID0gKHZhbDogTWV0YWRhdHVtKTogTWV0YWRhdGFPYmplY3QgPT4ge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsLCAnbWFwJykpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSAodmFsIGFzIE1hcCkubWFwO1xuICAgICAgY29uc3QgcmVzOiBKc29uT2JqZWN0ID0ge307XG4gICAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5nZXROYXRpdmVWYWx1ZShpdGVtLmspO1xuICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgcmVzW2tleV0gPSB0aGlzLk9iamVjdFRvSnNvbihpdGVtLnYpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBlbHNlIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsLCAnbGlzdCcpKSB7XG4gICAgICBjb25zdCBsaXN0ID0gKHZhbCBhcyBMaXN0KS5saXN0O1xuICAgICAgY29uc3QgcmVzOiBMaXN0T2JqZWN0ID0gW107XG4gICAgICBsaXN0Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICByZXMucHVzaCh0aGlzLmdldERpY3RWYWx1ZShpdGVtKSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldE5hdGl2ZVZhbHVlKHZhbCk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgYSBNZXRhZGF0dW0gdG8gYSBqc29uXG4gICAqIEBwYXJhbSB2YWxcbiAgICovXG4gIHN0YXRpYyBPYmplY3RUb0pzb24gPSAodmFsOiBNZXRhZGF0dW0pID0+IHtcbiAgICBjb25zdCBuYXRpdmVWYWx1ZSA9IHRoaXMuZ2V0TmF0aXZlVmFsdWUodmFsKTtcbiAgICBpZiAobmF0aXZlVmFsdWUpIHJldHVybiBuYXRpdmVWYWx1ZTtcbiAgICBjb25zdCBsaXN0VmFsdWUgPSB0aGlzLmdldExpc3RWYWx1ZSh2YWwpO1xuICAgIGlmIChsaXN0VmFsdWUpIHJldHVybiBsaXN0VmFsdWU7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGljdFZhbHVlKHZhbCk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IFV0aWxzO1xuIl19
|