@rosen-bridge/rosen-extractor 6.3.0 → 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.
Files changed (39) hide show
  1. package/dist/lib/getRosenData/abstract/AbstractRosenDataExtractor.d.ts +14 -20
  2. package/dist/lib/getRosenData/abstract/types.d.ts +13 -13
  3. package/dist/lib/getRosenData/bitcoin/BitcoinEsploraRosenExtractor.d.ts +15 -24
  4. package/dist/lib/getRosenData/bitcoin/BitcoinRosenExtractor.d.ts +15 -22
  5. package/dist/lib/getRosenData/bitcoin/BitcoinRpcRosenExtractor.d.ts +15 -22
  6. package/dist/lib/getRosenData/bitcoin/types.d.ts +66 -66
  7. package/dist/lib/getRosenData/bitcoin/utils.d.ts +1 -1
  8. package/dist/lib/getRosenData/cardano/CardanoBlockFrostRosenExtractor.d.ts +13 -16
  9. package/dist/lib/getRosenData/cardano/CardanoGraphQLRosenExtractor.d.ts +13 -16
  10. package/dist/lib/getRosenData/cardano/CardanoKoiosRosenExtractor.d.ts +13 -16
  11. package/dist/lib/getRosenData/cardano/CardanoOgmiosRosenExtractor.d.ts +13 -16
  12. package/dist/lib/getRosenData/cardano/CardanoRosenExtractor.d.ts +13 -16
  13. package/dist/lib/getRosenData/cardano/types.d.ts +90 -110
  14. package/dist/lib/getRosenData/cardano/utils.d.ts +8 -10
  15. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts +22 -0
  16. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.d.ts.map +1 -0
  17. package/dist/lib/getRosenData/doge/DogeEsploraRosenExtractor.js +104 -0
  18. package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts +22 -0
  19. package/dist/lib/getRosenData/doge/DogeRosenExtractor.d.ts.map +1 -0
  20. package/dist/lib/getRosenData/doge/DogeRosenExtractor.js +112 -0
  21. package/dist/lib/getRosenData/doge/types.d.ts +59 -0
  22. package/dist/lib/getRosenData/doge/types.d.ts.map +1 -0
  23. package/dist/lib/getRosenData/doge/types.js +2 -0
  24. package/dist/lib/getRosenData/doge/utils.d.ts +13 -0
  25. package/dist/lib/getRosenData/doge/utils.d.ts.map +1 -0
  26. package/dist/lib/getRosenData/doge/utils.js +58 -0
  27. package/dist/lib/getRosenData/ergo/ErgoNodeRosenExtractor.d.ts +15 -22
  28. package/dist/lib/getRosenData/ergo/ErgoRosenExtractor.d.ts +9 -13
  29. package/dist/lib/getRosenData/ergo/types.d.ts +24 -24
  30. package/dist/lib/getRosenData/evm/EvmEthersRosenExtractor.d.ts +9 -15
  31. package/dist/lib/getRosenData/evm/EvmRosenExtractor.d.ts +9 -15
  32. package/dist/lib/getRosenData/evm/EvmRpcRosenExtractor.d.ts +19 -25
  33. package/dist/lib/getRosenData/evm/utils.d.ts +5 -5
  34. package/dist/lib/index.d.ts +1 -1
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +2 -2
  37. package/dist/lib/getRosenData/Utils.d.ts +0 -59
  38. package/dist/lib/getRosenData/Utils.d.ts.map +0 -1
  39. 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.0",
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.3.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