@rosen-bridge/utils 0.0.1 → 0.2.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.
Files changed (38) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/lib/constants.d.ts +0 -1
  3. package/dist/lib/constants.d.ts.map +1 -1
  4. package/dist/lib/constants.js +1 -2
  5. package/dist/lib/downloadRosenAssets.d.ts +6 -3
  6. package/dist/lib/downloadRosenAssets.d.ts.map +1 -1
  7. package/dist/lib/downloadRosenAssets.js +15 -10
  8. package/dist/lib/downloadTssBinary.d.ts +13 -0
  9. package/dist/lib/downloadTssBinary.d.ts.map +1 -0
  10. package/dist/lib/downloadTssBinary.js +45 -0
  11. package/dist/lib/index.d.ts +1 -0
  12. package/dist/lib/index.d.ts.map +1 -1
  13. package/dist/lib/index.js +2 -1
  14. package/dist/lib/types/index.d.ts +1 -0
  15. package/dist/lib/types/index.d.ts.map +1 -1
  16. package/dist/lib/types/index.js +1 -1
  17. package/dist/lib/utils/github.d.ts +318 -6
  18. package/dist/lib/utils/github.d.ts.map +1 -1
  19. package/dist/lib/utils/github.js +53 -9
  20. package/dist/lib/utils/rosen.d.ts +5 -0
  21. package/dist/lib/utils/rosen.d.ts.map +1 -1
  22. package/dist/lib/utils/rosen.js +6 -1
  23. package/dist/tsconfig.build.tsbuildinfo +1 -1
  24. package/dist/tsconfig.tsbuildinfo +1 -0
  25. package/lib/constants.ts +0 -1
  26. package/lib/downloadRosenAssets.ts +21 -10
  27. package/lib/downloadTssBinary.ts +61 -0
  28. package/lib/index.ts +1 -0
  29. package/lib/types/index.ts +2 -0
  30. package/lib/utils/github.ts +74 -8
  31. package/lib/utils/rosen.ts +7 -0
  32. package/package.json +3 -4
  33. package/tests/data/octokit.data.ts +88 -1
  34. package/tests/downloadRosenAssets.spec.ts +39 -9
  35. package/tests/downloadTssBinary.spec.ts +153 -0
  36. package/tests/mocks/octokit.mock.ts +20 -2
  37. package/tests/utils/github.spec.ts +192 -20
  38. package/tests/utils/rosen.spec.ts +39 -1
@@ -1,18 +1,19 @@
1
1
  import { Octokit } from 'octokit';
2
2
  import { isValidAssetName } from './rosen';
3
- import { CONTRACT_REPO_NAME, DEFAULT_RELEASES_FETCHING_PAGE_SIZE, ROSEN_BRIDGE_ORGANIZATION, } from '../constants';
3
+ import { DEFAULT_RELEASES_FETCHING_PAGE_SIZE, ROSEN_BRIDGE_ORGANIZATION, } from '../constants';
4
4
  /**
5
5
  * Fetch a page of releases from Github Api in each iteration until there are no
6
6
  * more releases.
7
+ * @param repoName
7
8
  * @param pageSize
8
9
  */
9
- async function* fetchReleasesPage(pageSize = DEFAULT_RELEASES_FETCHING_PAGE_SIZE) {
10
+ async function* fetchReleasesPage(repoName, pageSize = DEFAULT_RELEASES_FETCHING_PAGE_SIZE) {
10
11
  const octokit = new Octokit();
11
12
  let currentPage = 1;
12
13
  while (true) {
13
14
  const releasesPage = await octokit.rest.repos.listReleases({
14
15
  owner: ROSEN_BRIDGE_ORGANIZATION,
15
- repo: CONTRACT_REPO_NAME,
16
+ repo: repoName,
16
17
  per_page: pageSize,
17
18
  page: currentPage,
18
19
  });
@@ -28,10 +29,11 @@ async function* fetchReleasesPage(pageSize = DEFAULT_RELEASES_FETCHING_PAGE_SIZE
28
29
  /**
29
30
  * Find the last release matching the predicate. If all releases are iterated and
30
31
  * no matching release is found, return null.
32
+ * @param repoName
31
33
  * @param predicate
32
34
  */
33
- const findLastRelease = async (predicate = () => true) => {
34
- const releasesPageIterator = fetchReleasesPage();
35
+ const findLastRelease = async (repoName, predicate = () => true) => {
36
+ const releasesPageIterator = fetchReleasesPage(repoName);
35
37
  for await (const releasesPage of releasesPageIterator) {
36
38
  const foundRelease = releasesPage.find(predicate);
37
39
  if (foundRelease) {
@@ -40,6 +42,20 @@ const findLastRelease = async (predicate = () => true) => {
40
42
  }
41
43
  return null;
42
44
  };
45
+ /**
46
+ * get a GitHub release by its tag
47
+ * @param repoName
48
+ * @param tag
49
+ */
50
+ const getReleaseByTag = async (repoName, tag) => {
51
+ const octokit = new Octokit();
52
+ const release = await octokit.rest.repos.getReleaseByTag({
53
+ owner: ROSEN_BRIDGE_ORGANIZATION,
54
+ repo: repoName,
55
+ tag,
56
+ });
57
+ return release.data;
58
+ };
43
59
  /**
44
60
  * Return a function which checks if a release has at least one asset for a
45
61
  * specific chain type
@@ -53,17 +69,45 @@ const hasAssetForChainType = (chainType) => (release) => release.assets.map((ass
53
69
  * @param chainType
54
70
  */
55
71
  const isStableReleaseForChainType = (chainType) => (release) => !release.prerelease && hasAssetForChainType(chainType)(release);
72
+ /**
73
+ * Return a function which checks if tagPrefix is matched with release tag_name
74
+ * @param tagPrefix
75
+ */
76
+ const hasMatchedTagPrefix = (tagPrefix) => (release) => {
77
+ const regex = new RegExp(`^${tagPrefix}`);
78
+ return regex.test(release.tag_name);
79
+ };
80
+ /**
81
+ * Return a function which checks if a release is a stable (that is, non-prerelease),
82
+ * and tagPrefix is matched with release tag_name
83
+ * @param tagPrefix
84
+ */
85
+ const isStableReleaseForRegexTagType = (tagPrefix) => (release) => !release.prerelease && hasMatchedTagPrefix(tagPrefix)(release);
56
86
  /**
57
87
  * Find latest release (prerelease or non-prerelease) having some asset matching
58
88
  * a specific chain type
89
+ * @param repoName
59
90
  * @param chainType
60
91
  */
61
- const findLatestRelease = async (chainType) => findLastRelease(hasAssetForChainType(chainType));
92
+ const findLatestRelease = async (repoName, chainType) => findLastRelease(repoName, hasAssetForChainType(chainType));
62
93
  /**
63
94
  * Find latest stable (that is, non-prerelease) release having some asset matching
64
95
  * a specific chain type
96
+ * @param repoName
65
97
  * @param chainType
66
98
  */
67
- const findLatestStableRelease = async (chainType) => findLastRelease(isStableReleaseForChainType(chainType));
68
- export { fetchReleasesPage, findLastRelease, findLatestRelease, findLatestStableRelease, hasAssetForChainType, isStableReleaseForChainType, };
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dpdGh1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUzQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLG1DQUFtQyxFQUNuQyx5QkFBeUIsR0FDMUIsTUFBTSxjQUFjLENBQUM7QUFJdEI7Ozs7R0FJRztBQUNILEtBQUssU0FBUyxDQUFDLENBQUMsaUJBQWlCLENBQy9CLFFBQVEsR0FBRyxtQ0FBbUM7SUFFOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUU5QixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFFcEIsT0FBTyxJQUFJLEVBQUU7UUFDWCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUN6RCxLQUFLLEVBQUUseUJBQXlCO1lBQ2hDLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFLFdBQVc7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM1QixNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDeEIsV0FBVyxJQUFJLENBQUMsQ0FBQztTQUNsQjthQUFNO1lBQ0wsT0FBTztTQUNSO0tBQ0Y7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sZUFBZSxHQUFHLEtBQUssRUFDM0IsWUFBaUQsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUMzRCxFQUFFO0lBQ0YsTUFBTSxvQkFBb0IsR0FBRyxpQkFBaUIsRUFBRSxDQUFDO0lBRWpELElBQUksS0FBSyxFQUFFLE1BQU0sWUFBWSxJQUFJLG9CQUFvQixFQUFFO1FBQ3JELE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFbEQsSUFBSSxZQUFZLEVBQUU7WUFDaEIsT0FBTyxZQUFZLENBQUM7U0FDckI7S0FDRjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFNLG9CQUFvQixHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFzQixFQUFFLEVBQUUsQ0FDN0UsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUU5RTs7OztHQUlHO0FBQ0gsTUFBTSwyQkFBMkIsR0FDL0IsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQXNCLEVBQUUsRUFBRSxDQUNoRCxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFcEU7Ozs7R0FJRztBQUNILE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLFNBQWlCLEVBQUUsRUFBRSxDQUNwRCxlQUFlLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUVuRDs7OztHQUlHO0FBQ0gsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLEVBQUUsU0FBaUIsRUFBRSxFQUFFLENBQzFELGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBRTFELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLDJCQUEyQixHQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2N0b2tpdCB9IGZyb20gJ29jdG9raXQnO1xuXG5pbXBvcnQgeyBpc1ZhbGlkQXNzZXROYW1lIH0gZnJvbSAnLi9yb3Nlbic7XG5cbmltcG9ydCB7XG4gIENPTlRSQUNUX1JFUE9fTkFNRSxcbiAgREVGQVVMVF9SRUxFQVNFU19GRVRDSElOR19QQUdFX1NJWkUsXG4gIFJPU0VOX0JSSURHRV9PUkdBTklaQVRJT04sXG59IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IEdpdGh1YlJlbGVhc2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogRmV0Y2ggYSBwYWdlIG9mIHJlbGVhc2VzIGZyb20gR2l0aHViIEFwaSBpbiBlYWNoIGl0ZXJhdGlvbiB1bnRpbCB0aGVyZSBhcmUgbm9cbiAqIG1vcmUgcmVsZWFzZXMuXG4gKiBAcGFyYW0gcGFnZVNpemVcbiAqL1xuYXN5bmMgZnVuY3Rpb24qIGZldGNoUmVsZWFzZXNQYWdlKFxuICBwYWdlU2l6ZSA9IERFRkFVTFRfUkVMRUFTRVNfRkVUQ0hJTkdfUEFHRV9TSVpFXG4pIHtcbiAgY29uc3Qgb2N0b2tpdCA9IG5ldyBPY3Rva2l0KCk7XG5cbiAgbGV0IGN1cnJlbnRQYWdlID0gMTtcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHJlbGVhc2VzUGFnZSA9IGF3YWl0IG9jdG9raXQucmVzdC5yZXBvcy5saXN0UmVsZWFzZXMoe1xuICAgICAgb3duZXI6IFJPU0VOX0JSSURHRV9PUkdBTklaQVRJT04sXG4gICAgICByZXBvOiBDT05UUkFDVF9SRVBPX05BTUUsXG4gICAgICBwZXJfcGFnZTogcGFnZVNpemUsXG4gICAgICBwYWdlOiBjdXJyZW50UGFnZSxcbiAgICB9KTtcblxuICAgIGlmIChyZWxlYXNlc1BhZ2UuZGF0YS5sZW5ndGgpIHtcbiAgICAgIHlpZWxkIHJlbGVhc2VzUGFnZS5kYXRhO1xuICAgICAgY3VycmVudFBhZ2UgKz0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEZpbmQgdGhlIGxhc3QgcmVsZWFzZSBtYXRjaGluZyB0aGUgcHJlZGljYXRlLiBJZiBhbGwgcmVsZWFzZXMgYXJlIGl0ZXJhdGVkIGFuZFxuICogbm8gbWF0Y2hpbmcgcmVsZWFzZSBpcyBmb3VuZCwgcmV0dXJuIG51bGwuXG4gKiBAcGFyYW0gcHJlZGljYXRlXG4gKi9cbmNvbnN0IGZpbmRMYXN0UmVsZWFzZSA9IGFzeW5jIChcbiAgcHJlZGljYXRlOiAocmVsZWFzZTogR2l0aHViUmVsZWFzZSkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbikgPT4ge1xuICBjb25zdCByZWxlYXNlc1BhZ2VJdGVyYXRvciA9IGZldGNoUmVsZWFzZXNQYWdlKCk7XG5cbiAgZm9yIGF3YWl0IChjb25zdCByZWxlYXNlc1BhZ2Ugb2YgcmVsZWFzZXNQYWdlSXRlcmF0b3IpIHtcbiAgICBjb25zdCBmb3VuZFJlbGVhc2UgPSByZWxlYXNlc1BhZ2UuZmluZChwcmVkaWNhdGUpO1xuXG4gICAgaWYgKGZvdW5kUmVsZWFzZSkge1xuICAgICAgcmV0dXJuIGZvdW5kUmVsZWFzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG4vKipcbiAqIFJldHVybiBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiBhIHJlbGVhc2UgaGFzIGF0IGxlYXN0IG9uZSBhc3NldCBmb3IgYVxuICogc3BlY2lmaWMgY2hhaW4gdHlwZVxuICogQHBhcmFtIGNoYWluVHlwZVxuICogQHBhcmFtIHJlbGVhc2VcbiAqL1xuY29uc3QgaGFzQXNzZXRGb3JDaGFpblR5cGUgPSAoY2hhaW5UeXBlOiBzdHJpbmcpID0+IChyZWxlYXNlOiBHaXRodWJSZWxlYXNlKSA9PlxuICByZWxlYXNlLmFzc2V0cy5tYXAoKGFzc2V0KSA9PiBhc3NldC5uYW1lKS5zb21lKGlzVmFsaWRBc3NldE5hbWUoY2hhaW5UeXBlKSk7XG5cbi8qKlxuICogUmV0dXJuIGEgZnVuY3Rpb24gd2hpY2ggY2hlY2tzIGlmIGEgcmVsZWFzZSBpcyBhIHN0YWJsZSAodGhhdCBpcywgbm9uLXByZXJlbGVhc2UpXG4gKiBhbmQgaGFzIHNvbWUgYXNzZXQgbWF0Y2hpbmcgYSBzcGVjaWZpYyBjaGFpbiB0eXBlXG4gKiBAcGFyYW0gY2hhaW5UeXBlXG4gKi9cbmNvbnN0IGlzU3RhYmxlUmVsZWFzZUZvckNoYWluVHlwZSA9XG4gIChjaGFpblR5cGU6IHN0cmluZykgPT4gKHJlbGVhc2U6IEdpdGh1YlJlbGVhc2UpID0+XG4gICAgIXJlbGVhc2UucHJlcmVsZWFzZSAmJiBoYXNBc3NldEZvckNoYWluVHlwZShjaGFpblR5cGUpKHJlbGVhc2UpO1xuXG4vKipcbiAqIEZpbmQgbGF0ZXN0IHJlbGVhc2UgKHByZXJlbGVhc2Ugb3Igbm9uLXByZXJlbGVhc2UpIGhhdmluZyBzb21lIGFzc2V0IG1hdGNoaW5nXG4gKiBhIHNwZWNpZmljIGNoYWluIHR5cGVcbiAqIEBwYXJhbSBjaGFpblR5cGVcbiAqL1xuY29uc3QgZmluZExhdGVzdFJlbGVhc2UgPSBhc3luYyAoY2hhaW5UeXBlOiBzdHJpbmcpID0+XG4gIGZpbmRMYXN0UmVsZWFzZShoYXNBc3NldEZvckNoYWluVHlwZShjaGFpblR5cGUpKTtcblxuLyoqXG4gKiBGaW5kIGxhdGVzdCBzdGFibGUgKHRoYXQgaXMsIG5vbi1wcmVyZWxlYXNlKSByZWxlYXNlIGhhdmluZyBzb21lIGFzc2V0IG1hdGNoaW5nXG4gKiBhIHNwZWNpZmljIGNoYWluIHR5cGVcbiAqIEBwYXJhbSBjaGFpblR5cGVcbiAqL1xuY29uc3QgZmluZExhdGVzdFN0YWJsZVJlbGVhc2UgPSBhc3luYyAoY2hhaW5UeXBlOiBzdHJpbmcpID0+XG4gIGZpbmRMYXN0UmVsZWFzZShpc1N0YWJsZVJlbGVhc2VGb3JDaGFpblR5cGUoY2hhaW5UeXBlKSk7XG5cbmV4cG9ydCB7XG4gIGZldGNoUmVsZWFzZXNQYWdlLFxuICBmaW5kTGFzdFJlbGVhc2UsXG4gIGZpbmRMYXRlc3RSZWxlYXNlLFxuICBmaW5kTGF0ZXN0U3RhYmxlUmVsZWFzZSxcbiAgaGFzQXNzZXRGb3JDaGFpblR5cGUsXG4gIGlzU3RhYmxlUmVsZWFzZUZvckNoYWluVHlwZSxcbn07XG4iXX0=
99
+ const findLatestStableRelease = async (repoName, chainType) => findLastRelease(repoName, isStableReleaseForChainType(chainType));
100
+ /**
101
+ * Find the latest stable (that is, non-prerelease) release that tagPrefix is matched with release tag_name
102
+ * @param repoName
103
+ * @param tagPrefix
104
+ */
105
+ const findLatestStableReleaseByPrefixTag = async (repoName, tagPrefix) => findLastRelease(repoName, isStableReleaseForRegexTagType(tagPrefix));
106
+ /**
107
+ * Find the latest release that tagPrefix is matched with release tag_name
108
+ * @param repoName
109
+ * @param tagPrefix
110
+ */
111
+ const findLatestReleaseByPrefixTag = async (repoName, tagPrefix) => findLastRelease(repoName, hasMatchedTagPrefix(tagPrefix));
112
+ export { fetchReleasesPage, findLastRelease, findLatestRelease, findLatestStableRelease, findLatestStableReleaseByPrefixTag, findLatestReleaseByPrefixTag, getReleaseByTag, hasAssetForChainType, isStableReleaseForChainType, isStableReleaseForRegexTagType, hasMatchedTagPrefix, };
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dpdGh1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWxDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUUzQyxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHlCQUF5QixHQUMxQixNQUFNLGNBQWMsQ0FBQztBQUl0Qjs7Ozs7R0FLRztBQUNILEtBQUssU0FBUyxDQUFDLENBQUMsaUJBQWlCLENBQy9CLFFBQXVCLEVBQ3ZCLFFBQVEsR0FBRyxtQ0FBbUM7SUFFOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUU5QixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFFcEIsT0FBTyxJQUFJLEVBQUU7UUFDWCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUN6RCxLQUFLLEVBQUUseUJBQXlCO1lBQ2hDLElBQUksRUFBRSxRQUFRO1lBQ2QsUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFLFdBQVc7U0FDbEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUM1QixNQUFNLFlBQVksQ0FBQyxJQUFJLENBQUM7WUFDeEIsV0FBVyxJQUFJLENBQUMsQ0FBQztTQUNsQjthQUFNO1lBQ0wsT0FBTztTQUNSO0tBQ0Y7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLGVBQWUsR0FBRyxLQUFLLEVBQzNCLFFBQXVCLEVBQ3ZCLFlBQWlELEdBQUcsRUFBRSxDQUFDLElBQUksRUFDM0QsRUFBRTtJQUNGLE1BQU0sb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFekQsSUFBSSxLQUFLLEVBQUUsTUFB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QyxFQUNsQyw0QkFBNEIsRUFDNUIsZUFBZSxFQUNmLG9CQUFvQixFQUNwQiwyQkFBMkIsRUFDM0IsOEJBQThCLEVBQzlCLG1CQUFtQixHQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2N0b2tpdCB9IGZyb20gJ29jdG9raXQnO1xuXG5pbXBvcnQgeyBpc1ZhbGlkQXNzZXROYW1lIH0gZnJvbSAnLi9yb3Nlbic7XG5cbmltcG9ydCB7XG4gIERFRkFVTFRfUkVMRUFTRVNfRkVUQ0hJTkdfUEFHRV9TSVpFLFxuICBST1NFTl9CUklER0VfT1JHQU5JWkFUSU9OLFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBHaXRodWJSZWxlYXNlLCBTdXBwb3J0ZWRSZXBvIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEZldGNoIGEgcGFnZSBvZiByZWxlYXNlcyBmcm9tIEdpdGh1YiBBcGkgaW4gZWFjaCBpdGVyYXRpb24gdW50aWwgdGhlcmUgYXJlIG5vXG4gKiBtb3JlIHJlbGVhc2VzLlxuICogQHBhcmFtIHJlcG9OYW1lXG4gKiBAcGFyYW0gcGFnZVNpemVcbiAqL1xuYXN5bmMgZnVuY3Rpb24qIGZldGNoUmVsZWFzZXNQYWdlKFxuICByZXBvTmFtZTogU3VwcG9ydGVkUmVwbyxcbiAgcGFnZVNpemUgPSBERUZBVUxUX1JFTEVBU0VTX0ZFVENISU5HX1BBR0VfU0laRVxuKSB7XG4gIGNvbnN0IG9jdG9raXQgPSBuZXcgT2N0b2tpdCgpO1xuXG4gIGxldCBjdXJyZW50UGFnZSA9IDE7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCByZWxlYXNlc1BhZ2UgPSBhd2FpdCBvY3Rva2l0LnJlc3QucmVwb3MubGlzdFJlbGVhc2VzKHtcbiAgICAgIG93bmVyOiBST1NFTl9CUklER0VfT1JHQU5JWkFUSU9OLFxuICAgICAgcmVwbzogcmVwb05hbWUsXG4gICAgICBwZXJfcGFnZTogcGFnZVNpemUsXG4gICAgICBwYWdlOiBjdXJyZW50UGFnZSxcbiAgICB9KTtcblxuICAgIGlmIChyZWxlYXNlc1BhZ2UuZGF0YS5sZW5ndGgpIHtcbiAgICAgIHlpZWxkIHJlbGVhc2VzUGFnZS5kYXRhO1xuICAgICAgY3VycmVudFBhZ2UgKz0gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEZpbmQgdGhlIGxhc3QgcmVsZWFzZSBtYXRjaGluZyB0aGUgcHJlZGljYXRlLiBJZiBhbGwgcmVsZWFzZXMgYXJlIGl0ZXJhdGVkIGFuZFxuICogbm8gbWF0Y2hpbmcgcmVsZWFzZSBpcyBmb3VuZCwgcmV0dXJuIG51bGwuXG4gKiBAcGFyYW0gcmVwb05hbWVcbiAqIEBwYXJhbSBwcmVkaWNhdGVcbiAqL1xuY29uc3QgZmluZExhc3RSZWxlYXNlID0gYXN5bmMgKFxuICByZXBvTmFtZTogU3VwcG9ydGVkUmVwbyxcbiAgcHJlZGljYXRlOiAocmVsZWFzZTogR2l0aHViUmVsZWFzZSkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWVcbikgPT4ge1xuICBjb25zdCByZWxlYXNlc1BhZ2VJdGVyYXRvciA9IGZldGNoUmVsZWFzZXNQYWdlKHJlcG9OYW1lKTtcblxuICBmb3IgYXdhaXQgKGNvbnN0IHJlbGVhc2VzUGFnZSBvZiByZWxlYXNlc1BhZ2VJdGVyYXRvcikge1xuICAgIGNvbnN0IGZvdW5kUmVsZWFzZSA9IHJlbGVhc2VzUGFnZS5maW5kKHByZWRpY2F0ZSk7XG5cbiAgICBpZiAoZm91bmRSZWxlYXNlKSB7XG4gICAgICByZXR1cm4gZm91bmRSZWxlYXNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbi8qKlxuICogZ2V0IGEgR2l0SHViIHJlbGVhc2UgYnkgaXRzIHRhZ1xuICogQHBhcmFtIHJlcG9OYW1lXG4gKiBAcGFyYW0gdGFnXG4gKi9cbmNvbnN0IGdldFJlbGVhc2VCeVRhZyA9IGFzeW5jIChyZXBvTmFtZTogU3VwcG9ydGVkUmVwbywgdGFnOiBzdHJpbmcpID0+IHtcbiAgY29uc3Qgb2N0b2tpdCA9IG5ldyBPY3Rva2l0KCk7XG4gIGNvbnN0IHJlbGVhc2UgPSBhd2FpdCBvY3Rva2l0LnJlc3QucmVwb3MuZ2V0UmVsZWFzZUJ5VGFnKHtcbiAgICBvd25lcjogUk9TRU5fQlJJREdFX09SR0FOSVpBVElPTixcbiAgICByZXBvOiByZXBvTmFtZSxcbiAgICB0YWcsXG4gIH0pO1xuXG4gIHJldHVybiByZWxlYXNlLmRhdGE7XG59O1xuXG4vKipcbiAqIFJldHVybiBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiBhIHJlbGVhc2UgaGFzIGF0IGxlYXN0IG9uZSBhc3NldCBmb3IgYVxuICogc3BlY2lmaWMgY2hhaW4gdHlwZVxuICogQHBhcmFtIGNoYWluVHlwZVxuICogQHBhcmFtIHJlbGVhc2VcbiAqL1xuY29uc3QgaGFzQXNzZXRGb3JDaGFpblR5cGUgPSAoY2hhaW5UeXBlOiBzdHJpbmcpID0+IChyZWxlYXNlOiBHaXRodWJSZWxlYXNlKSA9PlxuICByZWxlYXNlLmFzc2V0cy5tYXAoKGFzc2V0KSA9PiBhc3NldC5uYW1lKS5zb21lKGlzVmFsaWRBc3NldE5hbWUoY2hhaW5UeXBlKSk7XG5cbi8qKlxuICogUmV0dXJuIGEgZnVuY3Rpb24gd2hpY2ggY2hlY2tzIGlmIGEgcmVsZWFzZSBpcyBhIHN0YWJsZSAodGhhdCBpcywgbm9uLXByZXJlbGVhc2UpXG4gKiBhbmQgaGFzIHNvbWUgYXNzZXQgbWF0Y2hpbmcgYSBzcGVjaWZpYyBjaGFpbiB0eXBlXG4gKiBAcGFyYW0gY2hhaW5UeXBlXG4gKi9cbmNvbnN0IGlzU3RhYmxlUmVsZWFzZUZvckNoYWluVHlwZSA9XG4gIChjaGFpblR5cGU6IHN0cmluZykgPT4gKHJlbGVhc2U6IEdpdGh1YlJlbGVhc2UpID0+XG4gICAgIXJlbGVhc2UucHJlcmVsZWFzZSAmJiBoYXNBc3NldEZvckNoYWluVHlwZShjaGFpblR5cGUpKHJlbGVhc2UpO1xuXG4vKipcbiAqIFJldHVybiBhIGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBpZiB0YWdQcmVmaXggaXMgbWF0Y2hlZCB3aXRoIHJlbGVhc2UgdGFnX25hbWVcbiAqIEBwYXJhbSB0YWdQcmVmaXhcbiAqL1xuY29uc3QgaGFzTWF0Y2hlZFRhZ1ByZWZpeCA9ICh0YWdQcmVmaXg6IHN0cmluZykgPT4gKHJlbGVhc2U6IEdpdGh1YlJlbGVhc2UpID0+IHtcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBeJHt0YWdQcmVmaXh9YCk7XG4gIHJldHVybiByZWdleC50ZXN0KHJlbGVhc2UudGFnX25hbWUpO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gYSBmdW5jdGlvbiB3aGljaCBjaGVja3MgaWYgYSByZWxlYXNlIGlzIGEgc3RhYmxlICh0aGF0IGlzLCBub24tcHJlcmVsZWFzZSksXG4gKiBhbmQgdGFnUHJlZml4IGlzIG1hdGNoZWQgd2l0aCByZWxlYXNlIHRhZ19uYW1lXG4gKiBAcGFyYW0gdGFnUHJlZml4XG4gKi9cbmNvbnN0IGlzU3RhYmxlUmVsZWFzZUZvclJlZ2V4VGFnVHlwZSA9XG4gICh0YWdQcmVmaXg6IHN0cmluZykgPT4gKHJlbGVhc2U6IEdpdGh1YlJlbGVhc2UpID0+XG4gICAgIXJlbGVhc2UucHJlcmVsZWFzZSAmJiBoYXNNYXRjaGVkVGFnUHJlZml4KHRhZ1ByZWZpeCkocmVsZWFzZSk7XG5cbi8qKlxuICogRmluZCBsYXRlc3QgcmVsZWFzZSAocHJlcmVsZWFzZSBvciBub24tcHJlcmVsZWFzZSkgaGF2aW5nIHNvbWUgYXNzZXQgbWF0Y2hpbmdcbiAqIGEgc3BlY2lmaWMgY2hhaW4gdHlwZVxuICogQHBhcmFtIHJlcG9OYW1lXG4gKiBAcGFyYW0gY2hhaW5UeXBlXG4gKi9cbmNvbnN0IGZpbmRMYXRlc3RSZWxlYXNlID0gYXN5bmMgKHJlcG9OYW1lOiBTdXBwb3J0ZWRSZXBvLCBjaGFpblR5cGU6IHN0cmluZykgPT5cbiAgZmluZExhc3RSZWxlYXNlKHJlcG9OYW1lLCBoYXNBc3NldEZvckNoYWluVHlwZShjaGFpblR5cGUpKTtcblxuLyoqXG4gKiBGaW5kIGxhdGVzdCBzdGFibGUgKHRoYXQgaXMsIG5vbi1wcmVyZWxlYXNlKSByZWxlYXNlIGhhdmluZyBzb21lIGFzc2V0IG1hdGNoaW5nXG4gKiBhIHNwZWNpZmljIGNoYWluIHR5cGVcbiAqIEBwYXJhbSByZXBvTmFtZVxuICogQHBhcmFtIGNoYWluVHlwZVxuICovXG5jb25zdCBmaW5kTGF0ZXN0U3RhYmxlUmVsZWFzZSA9IGFzeW5jIChcbiAgcmVwb05hbWU6IFN1cHBvcnRlZFJlcG8sXG4gIGNoYWluVHlwZTogc3RyaW5nXG4pID0+IGZpbmRMYXN0UmVsZWFzZShyZXBvTmFtZSwgaXNTdGFibGVSZWxlYXNlRm9yQ2hhaW5UeXBlKGNoYWluVHlwZSkpO1xuXG4vKipcbiAqIEZpbmQgdGhlIGxhdGVzdCBzdGFibGUgKHRoYXQgaXMsIG5vbi1wcmVyZWxlYXNlKSByZWxlYXNlIHRoYXQgdGFnUHJlZml4IGlzIG1hdGNoZWQgd2l0aCByZWxlYXNlIHRhZ19uYW1lXG4gKiBAcGFyYW0gcmVwb05hbWVcbiAqIEBwYXJhbSB0YWdQcmVmaXhcbiAqL1xuY29uc3QgZmluZExhdGVzdFN0YWJsZVJlbGVhc2VCeVByZWZpeFRhZyA9IGFzeW5jIChcbiAgcmVwb05hbWU6IFN1cHBvcnRlZFJlcG8sXG4gIHRhZ1ByZWZpeDogc3RyaW5nXG4pID0+IGZpbmRMYXN0UmVsZWFzZShyZXBvTmFtZSwgaXNTdGFibGVSZWxlYXNlRm9yUmVnZXhUYWdUeXBlKHRhZ1ByZWZpeCkpO1xuXG4vKipcbiAqIEZpbmQgdGhlIGxhdGVzdCByZWxlYXNlIHRoYXQgdGFnUHJlZml4IGlzIG1hdGNoZWQgd2l0aCByZWxlYXNlIHRhZ19uYW1lXG4gKiBAcGFyYW0gcmVwb05hbWVcbiAqIEBwYXJhbSB0YWdQcmVmaXhcbiAqL1xuY29uc3QgZmluZExhdGVzdFJlbGVhc2VCeVByZWZpeFRhZyA9IGFzeW5jIChcbiAgcmVwb05hbWU6IFN1cHBvcnRlZFJlcG8sXG4gIHRhZ1ByZWZpeDogc3RyaW5nXG4pID0+IGZpbmRMYXN0UmVsZWFzZShyZXBvTmFtZSwgaGFzTWF0Y2hlZFRhZ1ByZWZpeCh0YWdQcmVmaXgpKTtcblxuZXhwb3J0IHtcbiAgZmV0Y2hSZWxlYXNlc1BhZ2UsXG4gIGZpbmRMYXN0UmVsZWFzZSxcbiAgZmluZExhdGVzdFJlbGVhc2UsXG4gIGZpbmRMYXRlc3RTdGFibGVSZWxlYXNlLFxuICBmaW5kTGF0ZXN0U3RhYmxlUmVsZWFzZUJ5UHJlZml4VGFnLFxuICBmaW5kTGF0ZXN0UmVsZWFzZUJ5UHJlZml4VGFnLFxuICBnZXRSZWxlYXNlQnlUYWcsXG4gIGhhc0Fzc2V0Rm9yQ2hhaW5UeXBlLFxuICBpc1N0YWJsZVJlbGVhc2VGb3JDaGFpblR5cGUsXG4gIGlzU3RhYmxlUmVsZWFzZUZvclJlZ2V4VGFnVHlwZSxcbiAgaGFzTWF0Y2hlZFRhZ1ByZWZpeCxcbn07XG4iXX0=
@@ -4,6 +4,11 @@
4
4
  * @param chainType
5
5
  */
6
6
  export declare const isValidAssetName: (chainType: string) => (assetName: string) => boolean;
7
+ /**
8
+ * Check if an OS name is a valid supported tss OS
9
+ * @param OSName
10
+ */
11
+ export declare const isValidOS: (OSName: string) => (releaseAssetName: string) => boolean;
7
12
  /**
8
13
  * Remove chain type and tag from the asset name and optionally replaces them
9
14
  * with a suffix
@@ -1 +1 @@
1
- {"version":3,"file":"rosen.d.ts","sourceRoot":"","sources":["../../../lib/utils/rosen.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,cAAe,MAAM,iBAAiB,MAAM,YACI,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,cACjB,MAAM,sBACG,MAAM,WAKzB,CAAC"}
1
+ {"version":3,"file":"rosen.d.ts","sourceRoot":"","sources":["../../../lib/utils/rosen.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,cAAe,MAAM,iBAAiB,MAAM,YACI,CAAC;AAE9E;;;GAGG;AACH,eAAO,MAAM,SAAS,WAAY,MAAM,wBAAwB,MAAM,YACJ,CAAC;AAEnE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,cACjB,MAAM,sBACG,MAAM,WAKzB,CAAC"}
@@ -4,6 +4,11 @@
4
4
  * @param chainType
5
5
  */
6
6
  export const isValidAssetName = (chainType) => (assetName) => new RegExp(`(contracts-.+|tokensMap)-${chainType}-.+.json`).test(assetName);
7
+ /**
8
+ * Check if an OS name is a valid supported tss OS
9
+ * @param OSName
10
+ */
11
+ export const isValidOS = (OSName) => (releaseAssetName) => new RegExp(`(rosenTss-${OSName}-.+).zip`).test(releaseAssetName);
7
12
  /**
8
13
  * Remove chain type and tag from the asset name and optionally replaces them
9
14
  * with a suffix
@@ -11,4 +16,4 @@ export const isValidAssetName = (chainType) => (assetName) => new RegExp(`(contr
11
16
  * @param alternativeSuffix a suffix which will be added before `.json` (if provided)
12
17
  */
13
18
  export const truncateAssetName = (assetName, alternativeSuffix) => assetName.replace(/(contracts-.+?|tokensMap)-.+.json/, alternativeSuffix ? `$1-${alternativeSuffix}.json` : '$1.json');
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvcm9zZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FDM0UsSUFBSSxNQUFNLENBQUMsNEJBQTRCLFNBQVMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTlFOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDL0IsU0FBaUIsRUFDakIsaUJBQTBCLEVBQzFCLEVBQUUsQ0FDRixTQUFTLENBQUMsT0FBTyxDQUNmLG1DQUFtQyxFQUNuQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxpQkFBaUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIGlmIGFuIGFzc2V0IG5hbWUgaXMgYSB2YWxpZCBSb3NlbiBhc3NldCBuYW1lIGFuZCBtYXRjaGVzIGEgc3BlY2lmaWNcbiAqIGNoYWluIHR5cGVcbiAqIEBwYXJhbSBjaGFpblR5cGVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzVmFsaWRBc3NldE5hbWUgPSAoY2hhaW5UeXBlOiBzdHJpbmcpID0+IChhc3NldE5hbWU6IHN0cmluZykgPT5cbiAgbmV3IFJlZ0V4cChgKGNvbnRyYWN0cy0uK3x0b2tlbnNNYXApLSR7Y2hhaW5UeXBlfS0uKy5qc29uYCkudGVzdChhc3NldE5hbWUpO1xuXG4vKipcbiAqIFJlbW92ZSBjaGFpbiB0eXBlIGFuZCB0YWcgZnJvbSB0aGUgYXNzZXQgbmFtZSBhbmQgb3B0aW9uYWxseSByZXBsYWNlcyB0aGVtXG4gKiB3aXRoIGEgc3VmZml4XG4gKiBAcGFyYW0gYXNzZXROYW1lXG4gKiBAcGFyYW0gYWx0ZXJuYXRpdmVTdWZmaXggYSBzdWZmaXggd2hpY2ggd2lsbCBiZSBhZGRlZCBiZWZvcmUgYC5qc29uYCAoaWYgcHJvdmlkZWQpXG4gKi9cbmV4cG9ydCBjb25zdCB0cnVuY2F0ZUFzc2V0TmFtZSA9IChcbiAgYXNzZXROYW1lOiBzdHJpbmcsXG4gIGFsdGVybmF0aXZlU3VmZml4Pzogc3RyaW5nXG4pID0+XG4gIGFzc2V0TmFtZS5yZXBsYWNlKFxuICAgIC8oY29udHJhY3RzLS4rP3x0b2tlbnNNYXApLS4rLmpzb24vLFxuICAgIGFsdGVybmF0aXZlU3VmZml4ID8gYCQxLSR7YWx0ZXJuYXRpdmVTdWZmaXh9Lmpzb25gIDogJyQxLmpzb24nXG4gICk7XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvcm9zZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FDM0UsSUFBSSxNQUFNLENBQUMsNEJBQTRCLFNBQVMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTlFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBd0IsRUFBRSxFQUFFLENBQ3hFLElBQUksTUFBTSxDQUFDLGFBQWEsTUFBTSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUVuRTs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQy9CLFNBQWlCLEVBQ2pCLGlCQUEwQixFQUMxQixFQUFFLENBQ0YsU0FBUyxDQUFDLE9BQU8sQ0FDZixtQ0FBbUMsRUFDbkMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0saUJBQWlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVjayBpZiBhbiBhc3NldCBuYW1lIGlzIGEgdmFsaWQgUm9zZW4gYXNzZXQgbmFtZSBhbmQgbWF0Y2hlcyBhIHNwZWNpZmljXG4gKiBjaGFpbiB0eXBlXG4gKiBAcGFyYW0gY2hhaW5UeXBlXG4gKi9cbmV4cG9ydCBjb25zdCBpc1ZhbGlkQXNzZXROYW1lID0gKGNoYWluVHlwZTogc3RyaW5nKSA9PiAoYXNzZXROYW1lOiBzdHJpbmcpID0+XG4gIG5ldyBSZWdFeHAoYChjb250cmFjdHMtLit8dG9rZW5zTWFwKS0ke2NoYWluVHlwZX0tLisuanNvbmApLnRlc3QoYXNzZXROYW1lKTtcblxuLyoqXG4gKiBDaGVjayBpZiBhbiBPUyBuYW1lIGlzIGEgdmFsaWQgc3VwcG9ydGVkIHRzcyBPU1xuICogQHBhcmFtIE9TTmFtZVxuICovXG5leHBvcnQgY29uc3QgaXNWYWxpZE9TID0gKE9TTmFtZTogc3RyaW5nKSA9PiAocmVsZWFzZUFzc2V0TmFtZTogc3RyaW5nKSA9PlxuICBuZXcgUmVnRXhwKGAocm9zZW5Uc3MtJHtPU05hbWV9LS4rKS56aXBgKS50ZXN0KHJlbGVhc2VBc3NldE5hbWUpO1xuXG4vKipcbiAqIFJlbW92ZSBjaGFpbiB0eXBlIGFuZCB0YWcgZnJvbSB0aGUgYXNzZXQgbmFtZSBhbmQgb3B0aW9uYWxseSByZXBsYWNlcyB0aGVtXG4gKiB3aXRoIGEgc3VmZml4XG4gKiBAcGFyYW0gYXNzZXROYW1lXG4gKiBAcGFyYW0gYWx0ZXJuYXRpdmVTdWZmaXggYSBzdWZmaXggd2hpY2ggd2lsbCBiZSBhZGRlZCBiZWZvcmUgYC5qc29uYCAoaWYgcHJvdmlkZWQpXG4gKi9cbmV4cG9ydCBjb25zdCB0cnVuY2F0ZUFzc2V0TmFtZSA9IChcbiAgYXNzZXROYW1lOiBzdHJpbmcsXG4gIGFsdGVybmF0aXZlU3VmZml4Pzogc3RyaW5nXG4pID0+XG4gIGFzc2V0TmFtZS5yZXBsYWNlKFxuICAgIC8oY29udHJhY3RzLS4rP3x0b2tlbnNNYXApLS4rLmpzb24vLFxuICAgIGFsdGVybmF0aXZlU3VmZml4ID8gYCQxLSR7YWx0ZXJuYXRpdmVTdWZmaXh9Lmpzb25gIDogJyQxLmpzb24nXG4gICk7XG4iXX0=