@dcl/asset-packs 2.3.0 → 2.3.2-20250506093725.commit-19a869d

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 (62) hide show
  1. package/bin/index.js +3744 -1611
  2. package/catalog.json +127 -1
  3. package/dist/admin-toolkit-ui/Active.d.ts +11 -0
  4. package/dist/admin-toolkit-ui/Active.js +32 -0
  5. package/dist/admin-toolkit-ui/Button.d.ts +22 -9
  6. package/dist/admin-toolkit-ui/Button.js +45 -28
  7. package/dist/admin-toolkit-ui/Card.d.ts +6 -0
  8. package/dist/admin-toolkit-ui/Card.js +22 -0
  9. package/dist/admin-toolkit-ui/Error.d.ts +9 -0
  10. package/dist/admin-toolkit-ui/Error.js +31 -0
  11. package/dist/admin-toolkit-ui/Header.d.ts +8 -0
  12. package/dist/admin-toolkit-ui/Header.js +17 -0
  13. package/dist/admin-toolkit-ui/Loading.d.ts +11 -0
  14. package/dist/admin-toolkit-ui/Loading.js +31 -0
  15. package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.d.ts +7 -0
  16. package/dist/admin-toolkit-ui/ModerationControl/AddUserInput.js +67 -0
  17. package/dist/admin-toolkit-ui/ModerationControl/AdminList.d.ts +10 -0
  18. package/dist/admin-toolkit-ui/ModerationControl/AdminList.js +192 -0
  19. package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.d.ts +8 -0
  20. package/dist/admin-toolkit-ui/ModerationControl/RemoveAdminConfirmation.js +75 -0
  21. package/dist/admin-toolkit-ui/ModerationControl/api.d.ts +12 -0
  22. package/dist/admin-toolkit-ui/ModerationControl/api.js +28 -0
  23. package/dist/admin-toolkit-ui/ModerationControl/index.d.ts +23 -0
  24. package/dist/admin-toolkit-ui/ModerationControl/index.js +37 -0
  25. package/dist/admin-toolkit-ui/SmartItemsControl.js +34 -56
  26. package/dist/admin-toolkit-ui/TextAnnouncementsControl.js +50 -59
  27. package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.d.ts +7 -0
  28. package/dist/admin-toolkit-ui/VideoControl/LiveStream/DeleteStreamKey.js +62 -0
  29. package/dist/admin-toolkit-ui/{VideoControl.d.ts → VideoControl/LiveStream/GenerateStreamKey.d.ts} +2 -3
  30. package/dist/admin-toolkit-ui/VideoControl/LiveStream/GenerateStreamKey.js +41 -0
  31. package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.d.ts +11 -0
  32. package/dist/admin-toolkit-ui/VideoControl/LiveStream/ShowStreamKey.js +112 -0
  33. package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.d.ts +10 -0
  34. package/dist/admin-toolkit-ui/VideoControl/LiveStream/index.js +62 -0
  35. package/dist/admin-toolkit-ui/VideoControl/VideoUrl.d.ts +9 -0
  36. package/dist/admin-toolkit-ui/VideoControl/VideoUrl.js +125 -0
  37. package/dist/admin-toolkit-ui/VideoControl/VolumeControl.d.ts +8 -0
  38. package/dist/admin-toolkit-ui/VideoControl/VolumeControl.js +82 -0
  39. package/dist/admin-toolkit-ui/VideoControl/api.d.ts +12 -0
  40. package/dist/admin-toolkit-ui/VideoControl/api.js +17 -0
  41. package/dist/admin-toolkit-ui/VideoControl/index.d.ts +28 -0
  42. package/dist/admin-toolkit-ui/VideoControl/index.js +107 -0
  43. package/dist/admin-toolkit-ui/VideoControl/utils.d.ts +28 -0
  44. package/dist/admin-toolkit-ui/VideoControl/utils.js +87 -0
  45. package/dist/admin-toolkit-ui/fetch-utils.d.ts +14 -0
  46. package/dist/admin-toolkit-ui/fetch-utils.js +41 -0
  47. package/dist/admin-toolkit-ui/index.d.ts +11 -0
  48. package/dist/admin-toolkit-ui/index.js +200 -272
  49. package/dist/admin-toolkit-ui/types.d.ts +0 -2
  50. package/dist/admin-toolkit-ui/types.js +1 -1
  51. package/dist/admin-toolkit-ui/utils.d.ts +10 -2
  52. package/dist/admin-toolkit-ui/utils.js +31 -51
  53. package/dist/bin/index.js +3744 -1611
  54. package/dist/definitions.d.ts +18 -17
  55. package/dist/definitions.js +12 -10
  56. package/dist/enums.d.ts +5 -0
  57. package/dist/enums.js +7 -1
  58. package/dist/id.d.ts +2 -4
  59. package/dist/scene-entrypoint.js +1 -1
  60. package/dist/triggers.js +15 -10
  61. package/package.json +6 -6
  62. package/dist/admin-toolkit-ui/VideoControl.js +0 -297
@@ -16,9 +16,7 @@ export type State = {
16
16
  panelOpen: boolean;
17
17
  activeTab: TabType;
18
18
  videoControl: {
19
- shareScreenUrl?: string;
20
19
  selectedVideoPlayer: number | undefined;
21
- linkAllVideoPlayers?: boolean;
22
20
  };
23
21
  smartItemsControl: {
24
22
  selectedSmartItem: number | undefined;
@@ -7,4 +7,4 @@ export var TabType;
7
7
  TabType["MODERATION_CONTROL"] = "ModerationControl";
8
8
  TabType["REWARDS_CONTROL"] = "RewardsControl";
9
9
  })(TabType || (TabType = {}));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxPQU9YO0FBUEQsV0FBWSxPQUFPO0lBQ2pCLHdCQUFhLENBQUE7SUFDYix5Q0FBOEIsQ0FBQTtJQUM5QixvREFBeUMsQ0FBQTtJQUN6QyxnRUFBcUQsQ0FBQTtJQUNyRCxtREFBd0MsQ0FBQTtJQUN4Qyw2Q0FBa0MsQ0FBQTtBQUNwQyxDQUFDLEVBUFcsT0FBTyxLQUFQLE9BQU8sUUFPbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHkgfSBmcm9tICdAZGNsL2VjcydcblxuLy8gVGFiIGVudW0gZm9yIHR5cGUgc2FmZXR5XG5leHBvcnQgZW51bSBUYWJUeXBlIHtcbiAgTk9ORSA9ICdOb25lJyxcbiAgVklERU9fQ09OVFJPTCA9ICdWaWRlb0NvbnRyb2wnLFxuICBTTUFSVF9JVEVNU19DT05UUk9MID0gJ1NtYXJ0SXRlbXNDb250cm9sJyxcbiAgVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCA9ICdUZXh0QW5ub3VuY2VtZW50Q29udHJvbCcsXG4gIE1PREVSQVRJT05fQ09OVFJPTCA9ICdNb2RlcmF0aW9uQ29udHJvbCcsXG4gIFJFV0FSRFNfQ09OVFJPTCA9ICdSZXdhcmRzQ29udHJvbCcsXG59XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGVkU21hcnRJdGVtID0geyB2aXNpYmxlOiBib29sZWFuOyBzZWxlY3RlZEFjdGlvbjogc3RyaW5nIH1cblxuZXhwb3J0IHR5cGUgU3RhdGUgPSB7XG4gIGFkbWluVG9vbGtpdFVpRW50aXR5OiBFbnRpdHlcbiAgcGFuZWxPcGVuOiBib29sZWFuXG4gIGFjdGl2ZVRhYjogVGFiVHlwZVxuICB2aWRlb0NvbnRyb2w6IHtcbiAgICBzaGFyZVNjcmVlblVybD86IHN0cmluZ1xuICAgIHNlbGVjdGVkVmlkZW9QbGF5ZXI6IG51bWJlciB8IHVuZGVmaW5lZFxuICAgIGxpbmtBbGxWaWRlb1BsYXllcnM/OiBib29sZWFuXG4gIH1cbiAgc21hcnRJdGVtc0NvbnRyb2w6IHtcbiAgICBzZWxlY3RlZFNtYXJ0SXRlbTogbnVtYmVyIHwgdW5kZWZpbmVkXG4gICAgc21hcnRJdGVtczogTWFwPEVudGl0eSwgU2VsZWN0ZWRTbWFydEl0ZW0+XG4gIH1cbiAgdGV4dEFubm91bmNlbWVudENvbnRyb2w6IHtcbiAgICBlbnRpdHk6IEVudGl0eSB8IHVuZGVmaW5lZFxuICAgIHRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgIG1lc3NhZ2VSYXRlVHJhY2tlcjogTWFwPHN0cmluZywgbnVtYmVyPlxuICAgIGFubm91bmNlbWVudHM6IHtcbiAgICAgIGVudGl0eTogRW50aXR5XG4gICAgICB0aW1lc3RhbXA6IG51bWJlclxuICAgIH1bXVxuICAgIG1heEFubm91bmNlbWVudHM6IG51bWJlclxuICB9XG4gIHJld2FyZHNDb250cm9sOiB7XG4gICAgc2VsZWN0ZWRSZXdhcmRJdGVtOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgfVxufVxuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxPQU9YO0FBUEQsV0FBWSxPQUFPO0lBQ2pCLHdCQUFhLENBQUE7SUFDYix5Q0FBOEIsQ0FBQTtJQUM5QixvREFBeUMsQ0FBQTtJQUN6QyxnRUFBcUQsQ0FBQTtJQUNyRCxtREFBd0MsQ0FBQTtJQUN4Qyw2Q0FBa0MsQ0FBQTtBQUNwQyxDQUFDLEVBUFcsT0FBTyxLQUFQLE9BQU8sUUFPbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHkgfSBmcm9tICdAZGNsL2VjcydcblxuLy8gVGFiIGVudW0gZm9yIHR5cGUgc2FmZXR5XG5leHBvcnQgZW51bSBUYWJUeXBlIHtcbiAgTk9ORSA9ICdOb25lJyxcbiAgVklERU9fQ09OVFJPTCA9ICdWaWRlb0NvbnRyb2wnLFxuICBTTUFSVF9JVEVNU19DT05UUk9MID0gJ1NtYXJ0SXRlbXNDb250cm9sJyxcbiAgVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCA9ICdUZXh0QW5ub3VuY2VtZW50Q29udHJvbCcsXG4gIE1PREVSQVRJT05fQ09OVFJPTCA9ICdNb2RlcmF0aW9uQ29udHJvbCcsXG4gIFJFV0FSRFNfQ09OVFJPTCA9ICdSZXdhcmRzQ29udHJvbCcsXG59XG5cbmV4cG9ydCB0eXBlIFNlbGVjdGVkU21hcnRJdGVtID0geyB2aXNpYmxlOiBib29sZWFuOyBzZWxlY3RlZEFjdGlvbjogc3RyaW5nIH1cblxuZXhwb3J0IHR5cGUgU3RhdGUgPSB7XG4gIGFkbWluVG9vbGtpdFVpRW50aXR5OiBFbnRpdHlcbiAgcGFuZWxPcGVuOiBib29sZWFuXG4gIGFjdGl2ZVRhYjogVGFiVHlwZVxuICB2aWRlb0NvbnRyb2w6IHtcbiAgICBzZWxlY3RlZFZpZGVvUGxheWVyOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgfVxuICBzbWFydEl0ZW1zQ29udHJvbDoge1xuICAgIHNlbGVjdGVkU21hcnRJdGVtOiBudW1iZXIgfCB1bmRlZmluZWRcbiAgICBzbWFydEl0ZW1zOiBNYXA8RW50aXR5LCBTZWxlY3RlZFNtYXJ0SXRlbT5cbiAgfVxuICB0ZXh0QW5ub3VuY2VtZW50Q29udHJvbDoge1xuICAgIGVudGl0eTogRW50aXR5IHwgdW5kZWZpbmVkXG4gICAgdGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgbWVzc2FnZVJhdGVUcmFja2VyOiBNYXA8c3RyaW5nLCBudW1iZXI+XG4gICAgYW5ub3VuY2VtZW50czoge1xuICAgICAgZW50aXR5OiBFbnRpdHlcbiAgICAgIHRpbWVzdGFtcDogbnVtYmVyXG4gICAgfVtdXG4gICAgbWF4QW5ub3VuY2VtZW50czogbnVtYmVyXG4gIH1cbiAgcmV3YXJkc0NvbnRyb2w6IHtcbiAgICBzZWxlY3RlZFJld2FyZEl0ZW06IG51bWJlciB8IHVuZGVmaW5lZFxuICB9XG59XG4iXX0=
@@ -1,2 +1,10 @@
1
- export declare function getSceneDeployment(): Promise<any>;
2
- export declare function getSceneOwners(): Promise<any>;
1
+ import { IEngine } from '@dcl/ecs';
2
+ export declare function setInterval(engine: IEngine, fn: () => void, ms: number): (dt: number) => void;
3
+ export declare function clearInterval(engine: IEngine, fn: (t: number) => void): void;
4
+ export declare function toCamelCase<T extends Record<string, any> | any[]>(obj: T): T extends any[] ? any[] : {
5
+ [K in keyof T as CamelCaseString<K & string>]: T[K];
6
+ };
7
+ export type CamelCaseString<S extends string> = S extends `${infer P}_${infer Q}` ? `${P}${Capitalize<CamelCaseString<Q>>}` : S;
8
+ export type CamelCase<T> = {
9
+ [K in keyof T as CamelCaseString<string & K>]: T[K] extends Record<string, any> ? CamelCase<T[K]> : T[K] extends Array<infer U> ? U extends Record<string, any> ? Array<CamelCase<U>> : T[K] : T[K];
10
+ };
@@ -1,58 +1,38 @@
1
- import { getRealm, getSceneInformation } from '~system/Runtime';
2
- import { LAND_MANAGER_URL } from './constants';
3
- export async function getSceneDeployment() {
4
- try {
5
- const realm = await getRealm({});
6
- const sceneInfo = await getSceneInformation({});
7
- const { realmInfo } = realm;
8
- const { urn: sceneUrn } = sceneInfo;
9
- if (realmInfo && realmInfo.realmName !== 'LocalPreview') {
10
- const deploymentResponse = await fetch(`${realmInfo.baseUrl}/content/deployments/?entityId=${sceneUrn}`);
11
- const data = await deploymentResponse.json();
12
- const deployment = data?.['deployments']?.shift();
13
- return deployment;
1
+ export function setInterval(engine, fn, ms) {
2
+ let timer = 0;
3
+ function intervalSystem(dt) {
4
+ timer += dt;
5
+ if (timer * 1000 >= ms) {
6
+ timer = 0;
7
+ fn();
14
8
  }
15
9
  }
16
- catch (error) {
17
- console.error('Error getting scene deployment', error);
18
- }
19
- return null;
10
+ engine.addSystem(intervalSystem);
11
+ return intervalSystem;
12
+ }
13
+ export function clearInterval(engine, fn) {
14
+ engine.removeSystem(fn);
20
15
  }
21
- export async function getSceneOwners() {
22
- try {
23
- const deployment = await getSceneDeployment();
24
- if (deployment?.sceneBasePosition) {
25
- const sceneOwnersResponse = await fetch(LAND_MANAGER_URL, {
26
- method: 'POST',
27
- body: JSON.stringify({
28
- query: `{
29
- parcels(
30
- where: {
31
- x: ${deployment.sceneBasePosition[0]},
32
- y: ${deployment.sceneBasePosition[1]}
33
- }
34
- ) {
35
- id
36
- x
37
- y
38
- owners {
39
- id
40
- address
41
- }
16
+ export function toCamelCase(obj) {
17
+ if (Array.isArray(obj)) {
18
+ return obj.map(item => {
19
+ if (typeof item === 'object' && item !== null) {
20
+ return toCamelCase(item);
42
21
  }
43
- }`,
44
- }),
45
- });
46
- const { data: sceneOwnersData } = await sceneOwnersResponse.json();
47
- const owners = sceneOwnersData.parcels
48
- .shift()
49
- ?.owners.map((owner) => owner.address.toLowerCase()) || [];
50
- return owners;
51
- }
22
+ return item;
23
+ });
52
24
  }
53
- catch (error) {
54
- console.error('Error getting scene owners', error);
25
+ const result = {};
26
+ for (const key in obj) {
27
+ const camelKey = key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
28
+ const value = obj[key];
29
+ if (typeof value === 'object' && value !== null) {
30
+ result[camelKey] = toCamelCase(value);
31
+ }
32
+ else {
33
+ result[camelKey] = value;
34
+ }
55
35
  }
56
- return [];
36
+ return result;
57
37
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRTlDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCO0lBQ3RDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLE1BQU0sbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDL0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQTtRQUMzQixNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLFNBQVMsQ0FBQTtRQUVuQyxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsU0FBUyxLQUFLLGNBQWMsRUFBRSxDQUFDO1lBQ3hELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxLQUFLLENBQ3BDLEdBQUcsU0FBUyxDQUFDLE9BQU8sa0NBQWtDLFFBQVEsRUFBRSxDQUNqRSxDQUFBO1lBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQTtZQUVqRCxPQUFPLFVBQVUsQ0FBQTtRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWM7SUFDbEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxVQUFVLEdBQUcsTUFBTSxrQkFBa0IsRUFBRSxDQUFBO1FBRTdDLElBQUksVUFBVSxFQUFFLGlCQUFpQixFQUFFLENBQUM7WUFDbEMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDeEQsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7b0JBQ25CLEtBQUssRUFBRTs7O3FCQUdJLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7cUJBQy9CLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7Ozs7O1lBV3hDO2lCQUNILENBQUM7YUFDSCxDQUFDLENBQUE7WUFFRixNQUFNLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDbEUsTUFBTSxNQUFNLEdBQ1YsZUFBZSxDQUFDLE9BQU87aUJBQ3BCLEtBQUssRUFBRTtnQkFDUixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUE7WUFFbkUsT0FBTyxNQUFNLENBQUE7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRSZWFsbSwgZ2V0U2NlbmVJbmZvcm1hdGlvbiB9IGZyb20gJ35zeXN0ZW0vUnVudGltZSdcbmltcG9ydCB7IExBTkRfTUFOQUdFUl9VUkwgfSBmcm9tICcuL2NvbnN0YW50cydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNjZW5lRGVwbG95bWVudCgpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZWFsbSA9IGF3YWl0IGdldFJlYWxtKHt9KVxuICAgIGNvbnN0IHNjZW5lSW5mbyA9IGF3YWl0IGdldFNjZW5lSW5mb3JtYXRpb24oe30pXG4gICAgY29uc3QgeyByZWFsbUluZm8gfSA9IHJlYWxtXG4gICAgY29uc3QgeyB1cm46IHNjZW5lVXJuIH0gPSBzY2VuZUluZm9cblxuICAgIGlmIChyZWFsbUluZm8gJiYgcmVhbG1JbmZvLnJlYWxtTmFtZSAhPT0gJ0xvY2FsUHJldmlldycpIHtcbiAgICAgIGNvbnN0IGRlcGxveW1lbnRSZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICBgJHtyZWFsbUluZm8uYmFzZVVybH0vY29udGVudC9kZXBsb3ltZW50cy8/ZW50aXR5SWQ9JHtzY2VuZVVybn1gLFxuICAgICAgKVxuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGRlcGxveW1lbnRSZXNwb25zZS5qc29uKClcbiAgICAgIGNvbnN0IGRlcGxveW1lbnQgPSBkYXRhPy5bJ2RlcGxveW1lbnRzJ10/LnNoaWZ0KClcblxuICAgICAgcmV0dXJuIGRlcGxveW1lbnRcbiAgICB9XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgZ2V0dGluZyBzY2VuZSBkZXBsb3ltZW50JywgZXJyb3IpXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2NlbmVPd25lcnMoKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGVwbG95bWVudCA9IGF3YWl0IGdldFNjZW5lRGVwbG95bWVudCgpXG5cbiAgICBpZiAoZGVwbG95bWVudD8uc2NlbmVCYXNlUG9zaXRpb24pIHtcbiAgICAgIGNvbnN0IHNjZW5lT3duZXJzUmVzcG9uc2UgPSBhd2FpdCBmZXRjaChMQU5EX01BTkFHRVJfVVJMLCB7XG4gICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgcXVlcnk6IGB7XG4gICAgICAgICAgICBwYXJjZWxzKFxuICAgICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICAgIHg6ICR7ZGVwbG95bWVudC5zY2VuZUJhc2VQb3NpdGlvblswXX0sXG4gICAgICAgICAgICAgICAgeTogJHtkZXBsb3ltZW50LnNjZW5lQmFzZVBvc2l0aW9uWzFdfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgeFxuICAgICAgICAgICAgICB5XG4gICAgICAgICAgICAgIG93bmVycyB7XG4gICAgICAgICAgICAgICAgaWRcbiAgICAgICAgICAgICAgICBhZGRyZXNzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9YCxcbiAgICAgICAgfSksXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB7IGRhdGE6IHNjZW5lT3duZXJzRGF0YSB9ID0gYXdhaXQgc2NlbmVPd25lcnNSZXNwb25zZS5qc29uKClcbiAgICAgIGNvbnN0IG93bmVycyA9XG4gICAgICAgIHNjZW5lT3duZXJzRGF0YS5wYXJjZWxzXG4gICAgICAgICAgLnNoaWZ0KClcbiAgICAgICAgICA/Lm93bmVycy5tYXAoKG93bmVyOiBhbnkpID0+IG93bmVyLmFkZHJlc3MudG9Mb3dlckNhc2UoKSkgfHwgW11cblxuICAgICAgcmV0dXJuIG93bmVyc1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBnZXR0aW5nIHNjZW5lIG93bmVycycsIGVycm9yKVxuICB9XG5cbiAgcmV0dXJuIFtdXG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsV0FBVyxDQUFDLE1BQWUsRUFBRSxFQUFjLEVBQUUsRUFBVTtJQUNyRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUE7SUFDYixTQUFTLGNBQWMsQ0FBQyxFQUFVO1FBQ2hDLEtBQUssSUFBSSxFQUFFLENBQUE7UUFDWCxJQUFJLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdkIsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUNULEVBQUUsRUFBRSxDQUFBO1FBQ04sQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2hDLE9BQU8sY0FBYyxDQUFBO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQWUsRUFBRSxFQUF1QjtJQUNwRSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ3pCLENBQUM7QUFNRCxNQUFNLFVBQVUsV0FBVyxDQUF3QyxHQUFNO0lBQ3ZFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzFCLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUMsQ0FBUSxDQUFBO0lBQ1gsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLEVBQVMsQ0FBQTtJQUN4QixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUE7UUFDOUUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXRCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQTtRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbmdpbmUgfSBmcm9tICdAZGNsL2VjcydcblxuZXhwb3J0IGZ1bmN0aW9uIHNldEludGVydmFsKGVuZ2luZTogSUVuZ2luZSwgZm46ICgpID0+IHZvaWQsIG1zOiBudW1iZXIpIHtcbiAgbGV0IHRpbWVyID0gMFxuICBmdW5jdGlvbiBpbnRlcnZhbFN5c3RlbShkdDogbnVtYmVyKSB7XG4gICAgdGltZXIgKz0gZHRcbiAgICBpZiAodGltZXIgKiAxMDAwID49IG1zKSB7XG4gICAgICB0aW1lciA9IDBcbiAgICAgIGZuKClcbiAgICB9XG4gIH1cbiAgZW5naW5lLmFkZFN5c3RlbShpbnRlcnZhbFN5c3RlbSlcbiAgcmV0dXJuIGludGVydmFsU3lzdGVtXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckludGVydmFsKGVuZ2luZTogSUVuZ2luZSwgZm46ICh0OiBudW1iZXIpID0+IHZvaWQpIHtcbiAgZW5naW5lLnJlbW92ZVN5c3RlbShmbilcbn1cblxuXG5cblxuLy8gR2VuZXJpYyBmdW5jdGlvbiB0byBjb252ZXJ0IHNuYWtlX2Nhc2UgdG8gY2FtZWxDYXNlXG5leHBvcnQgZnVuY3Rpb24gdG9DYW1lbENhc2U8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4gfCBhbnlbXT4ob2JqOiBUKTogVCBleHRlbmRzIGFueVtdID8gYW55W10gOiB7IFtLIGluIGtleW9mIFQgYXMgQ2FtZWxDYXNlU3RyaW5nPEsgJiBzdHJpbmc+XTogVFtLXSB9IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmoubWFwKGl0ZW0gPT4ge1xuICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiBpdGVtICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0b0NhbWVsQ2FzZShpdGVtKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGl0ZW1cbiAgICB9KSBhcyBhbnlcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHt9IGFzIGFueVxuICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICBjb25zdCBjYW1lbEtleSA9IGtleS5yZXBsYWNlKC9fKFthLXpdKS9nLCAoXywgbGV0dGVyKSA9PiBsZXR0ZXIudG9VcHBlckNhc2UoKSlcbiAgICBjb25zdCB2YWx1ZSA9IG9ialtrZXldXG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0W2NhbWVsS2V5XSA9IHRvQ2FtZWxDYXNlKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRbY2FtZWxLZXldID0gdmFsdWVcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vLyBUeXBlIGhlbHBlciBmb3IgY29udmVydGluZyBzbmFrZV9jYXNlIHRvIGNhbWVsQ2FzZVxuZXhwb3J0IHR5cGUgQ2FtZWxDYXNlU3RyaW5nPFMgZXh0ZW5kcyBzdHJpbmc+ID0gUyBleHRlbmRzIGAke2luZmVyIFB9XyR7aW5mZXIgUX1gXG4gID8gYCR7UH0ke0NhcGl0YWxpemU8Q2FtZWxDYXNlU3RyaW5nPFE+Pn1gXG4gIDogU1xuXG4vLyBUeXBlIGhlbHBlciBmb3IgY29udmVydGluZyBhbiBlbnRpcmUgb2JqZWN0IGZyb20gc25ha2VfY2FzZSB0byBjYW1lbENhc2VcbmV4cG9ydCB0eXBlIENhbWVsQ2FzZTxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVCBhcyBDYW1lbENhc2VTdHJpbmc8c3RyaW5nICYgSz5dOiBUW0tdIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PlxuICAgID8gQ2FtZWxDYXNlPFRbS10+XG4gICAgOiBUW0tdIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT5cbiAgICAgID8gVSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICAgICAgPyBBcnJheTxDYW1lbENhc2U8VT4+XG4gICAgICAgIDogVFtLXVxuICAgICAgOiBUW0tdXG59Il19