@dcl/sdk 7.29.1-35862852104.commit-1f44e80 → 7.29.1-35901015152.commit-d1b7b96
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/internal/transports/rendererTransport.js +2 -5
- package/network/binary-message-bus.d.ts +3 -6
- package/network/binary-message-bus.js +5 -9
- package/network/index.d.ts +2 -8
- package/network/index.js +3 -16
- package/network/message-bus-sync.d.ts +3 -16
- package/network/message-bus-sync.js +103 -161
- package/network/state.js +5 -3
- package/observables.d.ts +0 -4
- package/observables.js +1 -6
- package/package.json +6 -6
- package/platform/index.d.ts +0 -16
- package/platform/index.js +1 -42
- package/players/index.d.ts +1 -0
- package/players/index.js +4 -6
- package/src/internal/transports/rendererTransport.ts +1 -4
- package/src/network/binary-message-bus.ts +4 -9
- package/src/network/index.ts +3 -40
- package/src/network/message-bus-sync.ts +112 -176
- package/src/network/state.ts +4 -3
- package/src/observables.ts +0 -10
- package/src/platform/index.ts +0 -47
- package/src/players/index.ts +4 -5
- package/src/testing/runtime.ts +0 -3
- package/testing/runtime.js +1 -4
- package/atom.d.ts +0 -19
- package/atom.js +0 -83
- package/future.d.ts +0 -8
- package/future.js +0 -26
- package/internal/language-events.d.ts +0 -1
- package/internal/language-events.js +0 -8
- package/network/chunking.d.ts +0 -5
- package/network/chunking.js +0 -38
- package/network/events/implementation.d.ts +0 -93
- package/network/events/implementation.js +0 -221
- package/network/events/index.d.ts +0 -42
- package/network/events/index.js +0 -43
- package/network/events/protocol.d.ts +0 -27
- package/network/events/protocol.js +0 -66
- package/network/events/registry.d.ts +0 -8
- package/network/events/registry.js +0 -3
- package/network/server/index.d.ts +0 -14
- package/network/server/index.js +0 -219
- package/network/server/utils.d.ts +0 -18
- package/network/server/utils.js +0 -135
- package/server/env-var.d.ts +0 -15
- package/server/env-var.js +0 -31
- package/server/index.d.ts +0 -2
- package/server/index.js +0 -3
- package/server/storage/constants.d.ts +0 -79
- package/server/storage/constants.js +0 -19
- package/server/storage/index.d.ts +0 -45
- package/server/storage/index.js +0 -51
- package/server/storage/player.d.ts +0 -45
- package/server/storage/player.js +0 -198
- package/server/storage/scene.d.ts +0 -40
- package/server/storage/scene.js +0 -188
- package/server/storage/value-cache.d.ts +0 -1
- package/server/storage/value-cache.js +0 -52
- package/server/storage/write-queue.d.ts +0 -1
- package/server/storage/write-queue.js +0 -71
- package/server/storage-url.d.ts +0 -13
- package/server/storage-url.js +0 -42
- package/server/utils.d.ts +0 -35
- package/server/utils.js +0 -61
- package/src/atom.ts +0 -98
- package/src/future.ts +0 -38
- package/src/internal/language-events.ts +0 -8
- package/src/network/chunking.ts +0 -45
- package/src/network/events/implementation.ts +0 -271
- package/src/network/events/index.ts +0 -48
- package/src/network/events/protocol.ts +0 -94
- package/src/network/events/registry.ts +0 -18
- package/src/network/server/index.ts +0 -301
- package/src/network/server/utils.ts +0 -189
- package/src/server/env-var.ts +0 -36
- package/src/server/index.ts +0 -12
- package/src/server/storage/constants.ts +0 -111
- package/src/server/storage/index.ts +0 -74
- package/src/server/storage/player.ts +0 -289
- package/src/server/storage/scene.ts +0 -270
- package/src/server/storage/value-cache.ts +0 -92
- package/src/server/storage/write-queue.ts +0 -131
- package/src/server/storage-url.ts +0 -49
- package/src/server/utils.ts +0 -76
package/network/state.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReadWriteByteBuffer } from '@dcl/ecs/dist/serialization/ByteBuffer';
|
|
2
2
|
import { CrdtMessageProtocol, CrdtMessageType, PutComponentOperation, PutNetworkComponentOperation, NetworkEntity as _NetworkEntity, VideoEvent, AudioEvent, EngineInfo, GltfContainerLoadingState, PhysicsCombinedForce, PhysicsCombinedImpulse, PointerEventsResult, RaycastResult, RealmInfo, TweenState, UiDropdown, UiDropdownResult, UiInput, UiInputResult, UiText, UiTransform, TriggerAreaResult } from '@dcl/ecs';
|
|
3
|
-
import { LIVEKIT_MAX_SIZE } from '
|
|
3
|
+
import { LIVEKIT_MAX_SIZE } from '@dcl/ecs/dist/systems/crdt';
|
|
4
4
|
export const NOT_SYNC_COMPONENTS = [
|
|
5
5
|
VideoEvent,
|
|
6
6
|
TweenState,
|
|
@@ -42,7 +42,8 @@ export function engineToCrdt(engine) {
|
|
|
42
42
|
continue;
|
|
43
43
|
}
|
|
44
44
|
itComponentDefinition.dumpCrdtStateToBuffer(crdtBuffer, (entity) => {
|
|
45
|
-
|
|
45
|
+
const isNetworkEntity = NetworkEntity.has(entity);
|
|
46
|
+
return isNetworkEntity;
|
|
46
47
|
});
|
|
47
48
|
}
|
|
48
49
|
let header;
|
|
@@ -60,6 +61,7 @@ export function engineToCrdt(engine) {
|
|
|
60
61
|
networkBuffer.resetBuffer();
|
|
61
62
|
}
|
|
62
63
|
// If the message itself is larger than the limit, we need to handle it specially
|
|
64
|
+
// For now, we'll skip it to prevent infinite loops
|
|
63
65
|
if (messageSize / 1024 > LIVEKIT_MAX_SIZE) {
|
|
64
66
|
console.error(`Message too large (${messageSize} bytes), skipping component ${message.componentId} for entity ${message.entityId}`);
|
|
65
67
|
continue;
|
|
@@ -79,4 +81,4 @@ export function engineToCrdt(engine) {
|
|
|
79
81
|
}
|
|
80
82
|
return chunks;
|
|
81
83
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV0d29yay9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGVBQWUsRUFFZixxQkFBcUIsRUFDckIsNEJBQTRCLEVBRTVCLGFBQWEsSUFBSSxjQUFjLEVBRS9CLFVBQVUsRUFDVixVQUFVLEVBQ1YsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDcEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUNuQixhQUFhLEVBQ2IsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFDUCxhQUFhLEVBQ2IsTUFBTSxFQUNOLFdBQVcsRUFDWCxpQkFBaUIsRUFFbEIsTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFN0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW1DO0lBQ2pFLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVix5QkFBeUI7SUFDekIsb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLFNBQVM7SUFDVCxVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxhQUFhO0lBQ2IsV0FBVztJQUNYLE1BQU07SUFDTixpQkFBaUI7Q0FDbEIsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ3BGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFhO0lBQ2pELHFCQUFxQjtJQUNyQiwwQkFBMEI7Q0FDM0IsQ0FBQTtBQUVELE1B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Q0FBQTthQUNGO1NBQ0Y7YUFBTTtZQUNMLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7U0FDOUM7S0FDRjtJQUVELDRDQUE0QztJQUM1QyxJQUFJLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0tBQ3RDO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVhZFdyaXRlQnl0ZUJ1ZmZlciB9IGZyb20gJ0BkY2wvZWNzL2Rpc3Qvc2VyaWFsaXphdGlvbi9CeXRlQnVmZmVyJ1xuaW1wb3J0IHtcbiAgQ3JkdE1lc3NhZ2VIZWFkZXIsXG4gIENyZHRNZXNzYWdlUHJvdG9jb2wsXG4gIENyZHRNZXNzYWdlVHlwZSxcbiAgSUVuZ2luZSxcbiAgUHV0Q29tcG9uZW50T3BlcmF0aW9uLFxuICBQdXROZXR3b3JrQ29tcG9uZW50T3BlcmF0aW9uLFxuICBTeW5jQ29tcG9uZW50cyBhcyBfU3luY0NvbXBvbmVudHMsXG4gIE5ldHdvcmtFbnRpdHkgYXMgX05ldHdvcmtFbnRpdHksXG4gIElOZXRvd3JrRW50aXR5LFxuICBWaWRlb0V2ZW50LFxuICBBdWRpb0V2ZW50LFxuICBFbmdpbmVJbmZvLFxuICBHbHRmQ29udGFpbmVyTG9hZGluZ1N0YXRlLFxuICBQaHlzaWNzQ29tYmluZWRGb3JjZSxcbiAgUGh5c2ljc0NvbWJpbmVkSW1wdWxzZSxcbiAgUG9pbnRlckV2ZW50c1Jlc3VsdCxcbiAgUmF5Y2FzdFJlc3VsdCxcbiAgUmVhbG1JbmZvLFxuICBUd2VlblN0YXRlLFxuICBVaURyb3Bkb3duLFxuICBVaURyb3Bkb3duUmVzdWx0LFxuICBVaUlucHV0LFxuICBVaUlucHV0UmVzdWx0LFxuICBVaVRleHQsXG4gIFVpVHJhbnNmb3JtLFxuICBUcmlnZ2VyQXJlYVJlc3VsdCxcbiAgQ29tcG9uZW50RGVmaW5pdGlvblxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IExJVkVLSVRfTUFYX1NJWkUgfSBmcm9tICdAZGNsL2Vjcy9kaXN0L3N5c3RlbXMvY3JkdCdcblxuZXhwb3J0IGNvbnN0IE5PVF9TWU5DX0NPTVBPTkVOVFM6IENvbXBvbmVudERlZmluaXRpb248dW5rbm93bj5bXSA9IFtcbiAgVmlkZW9FdmVudCxcbiAgVHdlZW5TdGF0ZSxcbiAgQXVkaW9FdmVudCxcbiAgRW5naW5lSW5mbyxcbiAgR2x0ZkNvbnRhaW5lckxvYWRpbmdTdGF0ZSxcbiAgUGh5c2ljc0NvbWJpbmVkRm9yY2UsXG4gIFBoeXNpY3NDb21iaW5lZEltcHVsc2UsXG4gIFBvaW50ZXJFdmVudHNSZXN1bHQsXG4gIFJheWNhc3RSZXN1bHQsXG4gIFJlYWxtSW5mbyxcbiAgVWlEcm9wZG93bixcbiAgVWlEcm9wZG93blJlc3VsdCxcbiAgVWlJbnB1dCxcbiAgVWlJbnB1dFJlc3VsdCxcbiAgVWlUcmFuc2Zvcm0sXG4gIFVpVGV4dCxcbiAgVHJpZ2dlckFyZWFSZXN1bHRcbl1cblxuZXhwb3J0IGNvbnN0IE5PVF9TWU5DX0NPTVBPTkVOVFNfSURTID0gTk9UX1NZTkNfQ09NUE9ORU5UUy5tYXAoKCQpID0+ICQuY29tcG9uZW50SWQpXG5leHBvcnQgY29uc3QgTk9UX1NZTkNfQ09NUE9ORU5UU19OQU1FUzogc3RyaW5nW10gPSBbXG4gICdhc3NldC1wYWNrczo6U2NyaXB0JywgLy8gQ29tcG9uZW50TmFtZSBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2Fzc2V0LXBhY2tzL2Jsb2IvbWFpbi9zcmMvZW51bXMudHNcbiAgJ2Fzc2V0LXBhY2tzOjpBY3Rpb25UeXBlcydcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFN5bmNDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnREZWZpbml0aW9uPHVua25vd24+KTogYm9vbGVhbiB7XG4gIHJldHVybiAhKFxuICAgIE5PVF9TWU5DX0NPTVBPTkVOVFNfSURTLmluY2x1ZGVzKGNvbXBvbmVudC5jb21wb25lbnRJZCkgfHxcbiAgICBOT1RfU1lOQ19DT01QT05FTlRTX05BTUVTLmluY2x1ZGVzKGNvbXBvbmVudC5jb21wb25lbnROYW1lKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXN5bmNlZENvbXBvbmVudHMoZW5naW5lOiBJRW5naW5lKTogQ29tcG9uZW50RGVmaW5pdGlvbjx1bmtub3duPltdIHtcbiAgcmV0dXJuIFsuLi5OT1RfU1lOQ19DT01QT05FTlRTLCAuLi5OT1RfU1lOQ19DT01QT05FTlRTX05BTUVTLm1hcCgoJCkgPT4gZW5naW5lLmdldENvbXBvbmVudE9yTnVsbCgkKSldLmZpbHRlcihcbiAgICBCb29sZWFuXG4gICkgYXMgQ29tcG9uZW50RGVmaW5pdGlvbjx1bmtub3duPltdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmdpbmVUb0NyZHQoZW5naW5lOiBJRW5naW5lKTogVWludDhBcnJheVtdIHtcbiAgY29uc3QgY3JkdEJ1ZmZlciA9IG5ldyBSZWFkV3JpdGVCeXRlQnVmZmVyKClcbiAgY29uc3QgbmV0d29ya0J1ZmZlciA9IG5ldyBSZWFkV3JpdGVCeXRlQnVmZmVyKClcbiAgY29uc3QgTmV0d29ya0VudGl0eSA9IGVuZ2luZS5nZXRDb21wb25lbnQoX05ldHdvcmtFbnRpdHkuY29tcG9uZW50SWQpIGFzIElOZXRvd3JrRW50aXR5XG4gIGNvbnN0IGNodW5rczogVWludDhBcnJheVtdID0gW11cblxuICBmb3IgKGNvbnN0IGl0Q29tcG9uZW50RGVmaW5pdGlvbiBvZiBlbmdpbmUuY29tcG9uZW50c0l0ZXIoKSkge1xuICAgIGlmICghc2hvdWxkU3luY0NvbXBvbmVudChpdENvbXBvbmVudERlZmluaXRpb24pKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpdENvbXBvbmVudERlZmluaXRpb24uZHVtcENyZHRTdGF0ZVRvQnVmZmVyKGNyZHRCdWZmZXIsIChlbnRpdHkpID0+IHtcbiAgICAgIGNvbnN0IGlzTmV0d29ya0VudGl0eSA9IE5ldHdvcmtFbnRpdHkuaGFzKGVudGl0eSlcbiAgICAgIHJldHVybiBpc05ldHdvcmtFbnRpdHlcbiAgICB9KVxuICB9XG5cbiAgbGV0IGhlYWRlcjogQ3JkdE1lc3NhZ2VIZWFkZXIgfCBudWxsXG4gIHdoaWxlICgoaGVhZGVyID0gQ3JkdE1lc3NhZ2VQcm90b2NvbC5nZXRIZWFkZXIoY3JkdEJ1ZmZlcikpKSB7XG4gICAgaWYgKGhlYWRlci50eXBlID09PSBDcmR0TWVzc2FnZVR5cGUuUFVUX0NPTVBPTkVOVCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IFB1dENvbXBvbmVudE9wZXJhdGlvbi5yZWFkKGNyZHRCdWZmZXIpIVxuICAgICAgY29uc3QgbmV0d29ya0VudGl0eSA9IE5ldHdvcmtFbnRpdHkuZ2V0T3JOdWxsKG1lc3NhZ2UuZW50aXR5SWQpXG5cbiAgICAgIC8vIENoZWNrIGlmIGFkZGluZyB0aGlzIG1lc3NhZ2Ugd291bGQgZXhjZWVkIHRoZSBzaXplIGxpbWl0XG4gICAgICBjb25zdCBjdXJyZW50QnVmZmVyU2l6ZSA9IG5ldHdvcmtCdWZmZXIudG9CaW5hcnkoKS5ieXRlTGVuZ3RoXG4gICAgICBjb25zdCBtZXNzYWdlU2l6ZSA9IG1lc3NhZ2UuZGF0YS5ieXRlTGVuZ3RoXG5cbiAgICAgIGlmICgoY3VycmVudEJ1ZmZlclNpemUgKyBtZXNzYWdlU2l6ZSkgLyAxMDI0ID4gTElWRUtJVF9NQVhfU0laRSkge1xuICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBidWZmZXIgaGFzIGNvbnRlbnQsIHNhdmUgaXQgYXMgYSBjaHVua1xuICAgICAgICBpZiAoY3VycmVudEJ1ZmZlclNpemUgPiAwKSB7XG4gICAgICAgICAgY2h1bmtzLnB1c2gobmV0d29ya0J1ZmZlci50b0NvcGllZEJpbmFyeSgpKVxuICAgICAgICAgIG5ldHdvcmtCdWZmZXIucmVzZXRCdWZmZXIoKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIG1lc3NhZ2UgaXRzZWxmIGlzIGxhcmdlciB0aGFuIHRoZSBsaW1pdCwgd2UgbmVlZCB0byBoYW5kbGUgaXQgc3BlY2lhbGx5XG4gICAgICAgIC8vIEZvciBub3csIHdlJ2xsIHNraXAgaXQgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuICAgICAgICBpZiAobWVzc2FnZVNpemUgLyAxMDI0ID4gTElWRUtJVF9NQVhfU0laRSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBgTWVzc2FnZSB0b28gbGFyZ2UgKCR7bWVzc2FnZVNpemV9IGJ5dGVzKSwgc2tpcHBpbmcgY29tcG9uZW50ICR7bWVzc2FnZS5jb21wb25lbnRJZH0gZm9yIGVudGl0eSAke21lc3NhZ2UuZW50aXR5SWR9YFxuICAgICAgICAgIClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXR3b3JrRW50aXR5KSB7XG4gICAgICAgIFB1dE5ldHdvcmtDb21wb25lbnRPcGVyYXRpb24ud3JpdGUoXG4gICAgICAgICAgbmV0d29ya0VudGl0eS5lbnRpdHlJZCxcbiAgICAgICAgICBtZXNzYWdlLnRpbWVzdGFtcCxcbiAgICAgICAgICBtZXNzYWdlLmNvbXBvbmVudElkLFxuICAgICAgICAgIG5ldHdvcmtFbnRpdHkubmV0d29ya0lkLFxuICAgICAgICAgIG1lc3NhZ2UuZGF0YSxcbiAgICAgICAgICBuZXR3b3JrQnVmZmVyXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY3JkdEJ1ZmZlci5pbmNyZW1lbnRSZWFkT2Zmc2V0KGhlYWRlci5sZW5ndGgpXG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIGFueSByZW1haW5pbmcgZGF0YSBhcyB0aGUgZmluYWwgY2h1bmtcbiAgaWYgKG5ldHdvcmtCdWZmZXIuY3VycmVudFdyaXRlT2Zmc2V0KCkgPiAwKSB7XG4gICAgY2h1bmtzLnB1c2gobmV0d29ya0J1ZmZlci50b0JpbmFyeSgpKVxuICB9XG5cbiAgcmV0dXJuIGNodW5rc1xufVxuIl19
|
package/observables.d.ts
CHANGED
|
@@ -29,10 +29,6 @@ export interface IEvents {
|
|
|
29
29
|
sender: string;
|
|
30
30
|
message: string;
|
|
31
31
|
};
|
|
32
|
-
/** Triggered when the player switches the client language. `locale` is a BCP-47 tag */
|
|
33
|
-
localeChanged: {
|
|
34
|
-
locale: string;
|
|
35
|
-
};
|
|
36
32
|
/**
|
|
37
33
|
* This is triggered once the scene should start.
|
|
38
34
|
*/
|
package/observables.js
CHANGED
|
@@ -2,7 +2,6 @@ import { Observable } from './internal/Observable';
|
|
|
2
2
|
import { AvatarBase, AvatarEmoteCommand, AvatarEquippedData, PlayerIdentityData, PointerEventsResult, RealmInfo, engine } from '@dcl/ecs';
|
|
3
3
|
import { subscribe } from '~system/EngineApi';
|
|
4
4
|
import players from './players';
|
|
5
|
-
import { localeChangedEvents } from './internal/language-events';
|
|
6
5
|
/**
|
|
7
6
|
* @internal
|
|
8
7
|
* This function generates a callback that is passed to the Observable
|
|
@@ -99,10 +98,6 @@ export async function pollEvents(sendBatch) {
|
|
|
99
98
|
onCommsMessage.notifyObservers(data);
|
|
100
99
|
break;
|
|
101
100
|
}
|
|
102
|
-
case 'localeChanged': {
|
|
103
|
-
localeChangedEvents.notifyObservers(data);
|
|
104
|
-
break;
|
|
105
|
-
}
|
|
106
101
|
}
|
|
107
102
|
}
|
|
108
103
|
}
|
|
@@ -250,4 +245,4 @@ function processObservables() {
|
|
|
250
245
|
engine.addSystem(observableSystem);
|
|
251
246
|
return { subscribe };
|
|
252
247
|
}
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2xELE9BQU8sRUFDTCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUVsQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLFNBQVMsRUFFVCxNQUFNLEVBQ1AsTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUE7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUErRmhFOzs7O0dBSUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLFNBQXdCO0lBQ2hELE9BQU8sR0FBRyxFQUFFO1FBQ1YsSUFBSSxTQUFTLEtBQUssT0FBTyxFQUFFO1lBQ3pCLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDdkQ7YUFBTTtZQUNMLHdCQUF3QixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtTQUMvQztJQUNILENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQTBCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFDL0c7OzhNQUU4TTtBQUM5TSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUE7QUFFbEQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUEwQixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO0FBRS9HOzs4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QWtDLENBQUE7SUFFdEMsU0FBUyxnQkFBZ0I7UUFDdkIsSUFBSSxVQUFVLElBQUksY0FBYyxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1NBQzdDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLFVBQVUsR0FBRyxJQUFJLENBQUE7WUFDakIsc0JBQXNCLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1NBQzNDO1FBQ0QsSUFBSSxjQUFjO1lBQUUsT0FBTTtRQUMxQixjQUFjLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUE7SUFDN0UsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUVsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUE7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuL2ludGVybmFsL09ic2VydmFibGUnXG5pbXBvcnQge1xuICBBdmF0YXJCYXNlLFxuICBBdmF0YXJFbW90ZUNvbW1hbmQsXG4gIEF2YXRhckVxdWlwcGVkRGF0YSxcbiAgRW50aXR5LFxuICBQbGF5ZXJJZGVudGl0eURhdGEsXG4gIFBvaW50ZXJFdmVudHNSZXN1bHQsXG4gIFJlYWxtSW5mbyxcbiAgVmVjdG9yM1R5cGUsXG4gIGVuZ2luZVxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1hbnlFbnRpdHlBY3Rpb24sIFNlbmRCYXRjaFJlc3BvbnNlLCBzdWJzY3JpYmUgfSBmcm9tICd+c3lzdGVtL0VuZ2luZUFwaSdcbmltcG9ydCBwbGF5ZXJzIGZyb20gJy4vcGxheWVycydcbmltcG9ydCB7IGxvY2FsZUNoYW5nZWRFdmVudHMgfSBmcm9tICcuL2ludGVybmFsL2xhbmd1YWdlLWV2ZW50cydcblxuLy8vIC0tLSBFVkVOVFMgLS0tXG5cbi8qKiBAcHVibGljICovXG5leHBvcnQgdHlwZSBJRXZlbnROYW1lcyA9IGtleW9mIElFdmVudHNcblxuLyoqXG4gKiBAcHVibGljXG4gKiBOb3RlOiBEb24ndCB1c2UgYG9uYCBwcmVmaXggZm9yIElFdmVudHMgdG8gYXZvaWQgcmVkdW5kYW5jeSB3aXRoIGBldmVudC5vbihcIm9uRXZlbnROYW1lXCIpYCBzeW50YXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50cyB7XG4gIHBsYXllckV4cHJlc3Npb246IHtcbiAgICBleHByZXNzaW9uSWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBlbnRlcnMgdGhlIHNjZW5lXG4gICAqL1xuICBvbkVudGVyU2NlbmU6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBsZWF2ZXMgdGhlIHNjZW5lXG4gICAqL1xuICBvbkxlYXZlU2NlbmU6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZ2V0cyB0cmlnZ2VyZWQgYWZ0ZXIgcmVjZWl2aW5nIGEgY29tbXMgbWVzc2FnZS5cbiAgICovXG4gIGNvbW1zOiB7XG4gICAgc2VuZGVyOiBzdHJpbmdcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiB0aGUgcGxheWVyIHN3aXRjaGVzIHRoZSBjbGllbnQgbGFuZ3VhZ2UuIGBsb2NhbGVgIGlzIGEgQkNQLTQ3IHRhZyAqL1xuICBsb2NhbGVDaGFuZ2VkOiB7XG4gICAgbG9jYWxlOiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIHRyaWdnZXJlZCBvbmNlIHRoZSBzY2VuZSBzaG91bGQgc3RhcnQuXG4gICAqL1xuICBzY2VuZVN0YXJ0OiB1bmtub3duXG5cbiAgLyoqIFRoaXMgaXMgdHJpZ2dlcmVkIGF0IGxlYXN0IGZvciBlYWNoIHZpZGVvU3RhdHVzIGNoYW5nZSAqL1xuICB2aWRlb0V2ZW50OiB7XG4gICAgY29tcG9uZW50SWQ6IHN0cmluZ1xuICAgIHZpZGVvQ2xpcElkOiBzdHJpbmdcbiAgICAvKiogU3RhdHVzLCBjYW4gYmUgTk9ORSA9IDAsIEVSUk9SID0gMSwgTE9BRElORyA9IDIsIFJFQURZID0gMywgUExBWUlORyA9IDQsQlVGRkVSSU5HID0gNSAqL1xuICAgIHZpZGVvU3RhdHVzOiBudW1iZXJcbiAgICAvKiogQ3VycmVudCBvZmZzZXQgcG9zaXRpb24gaW4gc2Vjb25kcyAqL1xuICAgIGN1cnJlbnRPZmZzZXQ6IG51bWJlclxuICAgIC8qKiBWaWRlbyBsZW5ndGggaW4gc2Vjb25kcy4gQ2FuIGJlIC0xICovXG4gICAgdG90YWxWaWRlb0xlbmd0aDogbnVtYmVyXG4gIH1cblxuICAvKiogVGhpcyBpcyB0cmlnZ2VyIGV2ZXJ5dGltZSBhIHByb2ZpbGUgaXMgY2hhbmdlZCAqL1xuICBwcm9maWxlQ2hhbmdlZDoge1xuICAgIGV0aEFkZHJlc3M6IHN0cmluZ1xuICAgIHZlcnNpb246IG51bWJlclxuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBlZXIncyBhdmF0YXIgaXMgY29ubmVjdGVkIGFuZCB2aXNpYmxlICovXG4gIHBsYXllckNvbm5lY3RlZDoge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gIH1cblxuICAvKiogVHJpZ2dlcmVkIHdoZW4gcGVlciBkaXNjb25uZWN0IGFuZC9vciBpdCBhdmF0YXIgaXMgc2V0IGludmlzaWJsZSBieSBjb21tcyAqL1xuICBwbGF5ZXJEaXNjb25uZWN0ZWQ6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIGN1cnJlbnQgcmVhbG0gb3IgaXNsYW5kIGNoYW5nZXMgKi9cbiAgb25SZWFsbUNoYW5nZWQ6IHtcbiAgICBkb21haW46IHN0cmluZ1xuICAgIHJvb206IHN0cmluZ1xuICAgIHNlcnZlck5hbWU6IHN0cmluZ1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBvdGhlciBwbGF5ZXIncyBhdmF0YXIgaXMgY2xpY2tlZCAqL1xuICBwbGF5ZXJDbGlja2VkOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgICByYXk6IHtcbiAgICAgIG9yaWdpbjogVmVjdG9yM1R5cGVcbiAgICAgIGRpcmVjdGlvbjogVmVjdG9yM1R5cGVcbiAgICAgIGRpc3RhbmNlOiBudW1iZXJcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIFRoaXMgZnVuY3Rpb24gZ2VuZXJhdGVzIGEgY2FsbGJhY2sgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIE9ic2VydmFibGVcbiAqIGNvbnN0cnVjdG9yIHRvIHN1YnNjcmliZSB0byB0aGUgZXZlbnRzIG9mIHRoZSBEZWNlbnRyYWxhbmRJbnRlcmZhY2VcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3Vic2NyaWJlcihldmVudE5hbWU6IGtleW9mIElFdmVudHMpIHtcbiAgcmV0dXJuICgpID0+IHtcbiAgICBpZiAoZXZlbnROYW1lID09PSAnY29tbXMnKSB7XG4gICAgICBzdWJzY3JpYmUoeyBldmVudElkOiBldmVudE5hbWUgfSkuY2F0Y2goY29uc29sZS5lcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgU0RLN0NvbXBvbmVudHNPYnNlcnZhYmxlPy5zdWJzY3JpYmUoZXZlbnROYW1lKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFRoZXNlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkIGFmdGVyIHlvdXIgY2hhcmFjdGVyIGVudGVycyB0aGUgc2NlbmUuXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25FbnRlclNjZW5lT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uRW50ZXJTY2VuZSddPihjcmVhdGVTdWJzY3JpYmVyKCdvbkVudGVyU2NlbmUnKSlcbi8qKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC4gVXNlIG9uRW50ZXJTY2VuZU9ic2VydmFibGUgaW5zdGVhZC4gKi9cbmV4cG9ydCBjb25zdCBvbkVudGVyU2NlbmUgPSBvbkVudGVyU2NlbmVPYnNlcnZhYmxlXG5cbi8qKlxuICogVGhlc2UgZXZlbnRzIGFyZSB0cmlnZ2VyZWQgYWZ0ZXIgeW91ciBjaGFyYWN0ZXIgbGVhdmVzIHRoZSBzY2VuZS5cbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1snb25MZWF2ZVNjZW5lJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ29uTGVhdmVTY2VuZScpKVxuXG4vKiogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuIFVzZSBvbkxlYXZlU2NlbmVPYnNlcnZhYmxlIGluc3RlYWQuICovXG5leHBvcnQgY29uc3Qgb25MZWF2ZVNjZW5lID0gb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZVxuXG4vKipcbiAqIFRoaXMgZXZlbnQgaXMgdHJpZ2dlcmVkIGFmdGVyIGFsbCB0aGUgcmVzb3VyY2VzIG9mIHRoZSBzY2VuZSB3ZXJlIGxvYWRlZCAobW9kZWxzLCB0ZXh0dXJlcywgZXRjLi4uKVxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uU2NlbmVSZWFkeU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydzY2VuZVN0YXJ0J10+KGNyZWF0ZVN1YnNjcmliZXIoJ3NjZW5lU3RhcnQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJFeHByZXNzaW9uT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3BsYXllckV4cHJlc3Npb24nXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckV4cHJlc3Npb24nKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblZpZGVvRXZlbnQgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWyd2aWRlb0V2ZW50J10+KGNyZWF0ZVN1YnNjcmliZXIoJ3ZpZGVvRXZlbnQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25Qcm9maWxlQ2hhbmdlZCA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3Byb2ZpbGVDaGFuZ2VkJ10+KGNyZWF0ZVN1YnNjcmliZXIoJ3Byb2ZpbGVDaGFuZ2VkJykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyQ29ubmVjdGVkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3BsYXllckNvbm5lY3RlZCddPihcbiAgY3JlYXRlU3Vic2NyaWJlcigncGxheWVyQ29ubmVjdGVkJylcbilcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJEaXNjb25uZWN0ZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyRGlzY29ubmVjdGVkJ10+KFxuICBjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJEaXNjb25uZWN0ZWQnKVxuKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblJlYWxtQ2hhbmdlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydvblJlYWxtQ2hhbmdlZCddPihjcmVhdGVTdWJzY3JpYmVyKCdvblJlYWxtQ2hhbmdlZCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckNsaWNrZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sncGxheWVyQ2xpY2tlZCddPihjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJDbGlja2VkJykpXG5cbi8qKlxuICogQGludGVybmFsXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25Db21tc01lc3NhZ2UgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydjb21tcyddPihjcmVhdGVTdWJzY3JpYmVyKCdjb21tcycpKVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGRlcHJlY2F0ZWQgdGhpcyBpcyBhbiBPTEQgQVBJLlxuICogVGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBTREs2IHNlbmRCYXRjaCB0byBwb2xsIGV2ZW50cyBmcm9tIHRoZSByZW5kZXJlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcG9sbEV2ZW50cyhzZW5kQmF0Y2g6IChib2R5OiBNYW55RW50aXR5QWN0aW9uKSA9PiBQcm9taXNlPFNlbmRCYXRjaFJlc3BvbnNlPikge1xuICBjb25zdCB7IGV2ZW50cyB9ID0gYXdhaXQgc2VuZEJhdGNoKHsgYWN0aW9uczogW10gfSlcbiAgZm9yIChjb25zdCBlIG9mIGV2ZW50cykge1xuICAgIGlmIChlLmdlbmVyaWMpIHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGUuZ2VuZXJpYy5ldmVudERhdGEpXG4gICAgICBzd2l0Y2ggKGUuZ2VuZXJpYy5ldmVudElkKSB7XG4gICAgICAgIGNhc2UgJ2NvbW1zJzoge1xuICAgICAgICAgIG9uQ29tbXNNZXNzYWdlLm5vdGlmeU9ic2VydmVycyhkYXRhIGFzIElFdmVudHNbJ2NvbW1zJ10pXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdsb2NhbGVDaGFuZ2VkJzoge1xuICAgICAgICAgIGxvY2FsZUNoYW5nZWRFdmVudHMubm90aWZ5T2JzZXJ2ZXJzKGRhdGEgYXMgSUV2ZW50c1snbG9jYWxlQ2hhbmdlZCddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuY29uc3QgU0RLN0NvbXBvbmVudHNPYnNlcnZhYmxlID0gcHJvY2Vzc09ic2VydmFibGVzKClcbmZ1bmN0aW9uIHByb2Nlc3NPYnNlcnZhYmxlcygpIHtcbiAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IG5ldyBTZXQ8a2V5b2YgSUV2ZW50cz4oKVxuXG4gIGZ1bmN0aW9uIHN1YnNjcmliZShldmVudE5hbWU6IGtleW9mIElFdmVudHMpIHtcbiAgICBpZiAoc3Vic2NyaXB0aW9ucy5oYXMoZXZlbnROYW1lKSkgcmV0dXJuXG4gICAgc3dpdGNoIChldmVudE5hbWUpIHtcbiAgICAgIGNhc2UgJ3BsYXllckNsaWNrZWQnOiB7XG4gICAgICAgIHN1YnNjcmliZVBsYXllckNsaWNrKClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ29uRW50ZXJTY2VuZSc6XG4gICAgICBjYXNlICdwbGF5ZXJDb25uZWN0ZWQnOiB7XG4gICAgICAgIHN1YnNjcmliZUVudGVyU2NlbmUoKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnb25MZWF2ZVNjZW5lJzpcbiAgICAgIGNhc2UgJ3BsYXllckRpc2Nvbm5lY3RlZCc6IHtcbiAgICAgICAgc3Vic2NyaWJlTGVhdmVTY2VuZSgpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdvblJlYWxtQ2hhbmdlZCc6IHtcbiAgICAgICAgc3Vic2NyaWJlUmVhbG1DaGFuZ2UoKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAncGxheWVyRXhwcmVzc2lvbic6IHtcbiAgICAgICAgc3Vic2NyaWJlUGxheWVyRXhwcmVzc2lvbigpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdwcm9maWxlQ2hhbmdlZCc6IHtcbiAgICAgICAgc3Vic2NyaWJlUHJvZmlsZUNoYW5nZSgpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICAgIHN1YnNjcmlwdGlvbnMuYWRkKGV2ZW50TmFtZSlcbiAgfVxuICAvKipcbiAgICogUExBWUVSIEVOVEVSL0NPTk5FQ1RFRCBvYnNlcnZhYmxlXG4gICAqL1xuICBmdW5jdGlvbiBzdWJzY3JpYmVFbnRlclNjZW5lKCkge1xuICAgIHBsYXllcnMub25FbnRlclNjZW5lKChwbGF5ZXIpID0+IHtcbiAgICAgIGlmIChzdWJzY3JpcHRpb25zLmhhcygnb25FbnRlclNjZW5lJykpIHtcbiAgICAgICAgb25FbnRlclNjZW5lT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyB1c2VySWQ6IHBsYXllci51c2VySWQgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnMuaGFzKCdwbGF5ZXJDb25uZWN0ZWQnKSkge1xuICAgICAgICBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHsgdXNlcklkOiBwbGF5ZXIudXNlcklkIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICAvKipcbiAgICogUExBWUVSIExFQVZFL0RJU0NPTk5FQ1RFRCBvYnNlcnZhYmxlXG4gICAqL1xuICBmdW5jdGlvbiBzdWJzY3JpYmVMZWF2ZVNjZW5lKCkge1xuICAgIHBsYXllcnMub25MZWF2ZVNjZW5lKCh1c2VySWQpID0+IHtcbiAgICAgIGlmIChzdWJzY3JpcHRpb25zLmhhcygnb25MZWF2ZVNjZW5lJykpIHtcbiAgICAgICAgb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyB1c2VySWQgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnMuaGFzKCdwbGF5ZXJEaXNjb25uZWN0ZWQnKSkge1xuICAgICAgICBvblBsYXllckRpc2Nvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHsgdXNlcklkIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICAvKipcbiAgICogUkVBTE0gQ0hBTkdFIG9ic2VydmFibGVcbiAgICovXG4gIGZ1bmN0aW9uIHN1YnNjcmliZVJlYWxtQ2hhbmdlKCkge1xuICAgIFJlYWxtSW5mby5vbkNoYW5nZShlbmdpbmUuUm9vdEVudGl0eSwgKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgb25SZWFsbUNoYW5nZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyh7XG4gICAgICAgICAgZG9tYWluOiB2YWx1ZS5iYXNlVXJsLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiB2YWx1ZS5yZWFsbU5hbWUsXG4gICAgICAgICAgcm9vbTogdmFsdWUucm9vbSA/PyAnJyxcbiAgICAgICAgICBzZXJ2ZXJOYW1lOiB2YWx1ZS5yZWFsbU5hbWVcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8qKlxuICAgKiBQTEFZRVIvQVZBVEFSIENMSUNLRUQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlUGxheWVyQ2xpY2soKSB7XG4gICAgY29uc3QgcGxheWVyRW50aXRpZXMgPSBuZXcgU2V0PEVudGl0eT4oKVxuICAgIGVuZ2luZS5hZGRTeXN0ZW0oKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBbZW50aXR5XSBvZiBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKFBsYXllcklkZW50aXR5RGF0YSkpIHtcbiAgICAgICAgaWYgKHBsYXllckVudGl0aWVzLmhhcyhlbnRpdHkpKSBjb250aW51ZVxuICAgICAgICBwbGF5ZXJFbnRpdGllcy5hZGQoZW50aXR5KVxuXG4gICAgICAgIFBvaW50ZXJFdmVudHNSZXN1bHQub25DaGFuZ2UoZW50aXR5LCAoZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhPy5oaXQpIHtcbiAgICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHtcbiAgICAgICAgICAgICAgdXNlcklkOiBQbGF5ZXJJZGVudGl0eURhdGEuZ2V0T3JOdWxsKGVudGl0eSk/LmFkZHJlc3MgPz8gJycsXG4gICAgICAgICAgICAgIHJheToge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogZGF0YS5oaXQuZGlyZWN0aW9uISxcbiAgICAgICAgICAgICAgICBkaXN0YW5jZTogZGF0YS5oaXQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIG9yaWdpbjogZGF0YS5oaXQuZ2xvYmFsT3JpZ2luIVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBsYXllciBleHByZXNzaW9uIG9ic2VydmFibGVcbiAgICovXG4gIGZ1bmN0aW9uIHN1YnNjcmliZVBsYXllckV4cHJlc3Npb24oKSB7XG4gICAgQXZhdGFyRW1vdGVDb21tYW5kLm9uQ2hhbmdlKGVuZ2luZS5QbGF5ZXJFbnRpdHksICh2YWx1ZSkgPT4ge1xuICAgICAgb25QbGF5ZXJFeHByZXNzaW9uT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyBleHByZXNzaW9uSWQ6IHZhbHVlPy5lbW90ZVVybiA/PyAnJyB9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUFJPRklMRSBDSEFOR0Ugb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlUHJvZmlsZUNoYW5nZSgpIHtcbiAgICBBdmF0YXJCYXNlLm9uQ2hhbmdlKGVuZ2luZS5QbGF5ZXJFbnRpdHksICgpID0+IHtcbiAgICAgIGlmICghcHJvZmlsZUFkZHJlc3MpIHJldHVyblxuICAgICAgb25Qcm9maWxlQ2hhbmdlZC5ub3RpZnlPYnNlcnZlcnMoeyBldGhBZGRyZXNzOiBwcm9maWxlQWRkcmVzcywgdmVyc2lvbjogMCB9KVxuICAgIH0pXG5cbiAgICBBdmF0YXJFcXVpcHBlZERhdGEub25DaGFuZ2UoZW5naW5lLlBsYXllckVudGl0eSwgKCkgPT4ge1xuICAgICAgaWYgKCFwcm9maWxlQWRkcmVzcykgcmV0dXJuXG4gICAgICBvblByb2ZpbGVDaGFuZ2VkLm5vdGlmeU9ic2VydmVycyh7IGV0aEFkZHJlc3M6IHByb2ZpbGVBZGRyZXNzLCB2ZXJzaW9uOiAwIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8vIEZsYWcgdG8gY2FsbCBvbmNlIHRoZSBzY2VuZSBpcyBpbml0YWxpemVkLlxuICBsZXQgc2NlbmVSZWFkeSA9IGZhbHNlXG4gIGxldCBwcm9maWxlQWRkcmVzczogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgZnVuY3Rpb24gb2JzZXJ2YWJsZVN5c3RlbSgpIHtcbiAgICBpZiAoc2NlbmVSZWFkeSAmJiBwcm9maWxlQWRkcmVzcykge1xuICAgICAgcmV0dXJuIGVuZ2luZS5yZW1vdmVTeXN0ZW0ob2JzZXJ2YWJsZVN5c3RlbSlcbiAgICB9XG4gICAgaWYgKCFzY2VuZVJlYWR5KSB7XG4gICAgICBzY2VuZVJlYWR5ID0gdHJ1ZVxuICAgICAgb25TY2VuZVJlYWR5T2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoe30pXG4gICAgfVxuICAgIGlmIChwcm9maWxlQWRkcmVzcykgcmV0dXJuXG4gICAgcHJvZmlsZUFkZHJlc3MgPSBQbGF5ZXJJZGVudGl0eURhdGEuZ2V0T3JOdWxsKGVuZ2luZS5QbGF5ZXJFbnRpdHkpPy5hZGRyZXNzXG4gIH1cblxuICBlbmdpbmUuYWRkU3lzdGVtKG9ic2VydmFibGVTeXN0ZW0pXG5cbiAgcmV0dXJuIHsgc3Vic2NyaWJlIH1cbn1cbiJdfQ==
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvb2JzZXJ2YWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2xELE9BQU8sRUFDTCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUVsQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLFNBQVMsRUFFVCxNQUFNLEVBQ1AsTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUF1QyxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRixPQUFPLE9BQU8sTUFBTSxXQUFXLENBQUE7QUEwRi9COzs7O0dBSUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLFNBQXdCO0lBQ2hELE9BQU8sR0FBRyxFQUFFO1FBQ1YsSUFBSSxTQUFTLEtBQUssT0FBTyxFQUFFO1lBQ3pCLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDdkQ7YUFBTTtZQUNMLHdCQUF3QixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtTQUMvQztJQUNILENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxVQUFVLENBQTBCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUE7QUFDL0c7OzhNQUU4TTtBQUM5TSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUE7QUFFbEQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksVUFBVSxDQUEwQixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO0FBRS9HOzs4TUFFOE07QUFDOU0sTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixD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QUU7WUFDZixVQUFVLEdBQUcsSUFBSSxDQUFBO1lBQ2pCLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtTQUMzQztRQUNELElBQUksY0FBYztZQUFFLE9BQU07UUFDMUIsY0FBYyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTyxDQUFBO0lBQzdFLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFFbEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFBO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAnLi9pbnRlcm5hbC9PYnNlcnZhYmxlJ1xuaW1wb3J0IHtcbiAgQXZhdGFyQmFzZSxcbiAgQXZhdGFyRW1vdGVDb21tYW5kLFxuICBBdmF0YXJFcXVpcHBlZERhdGEsXG4gIEVudGl0eSxcbiAgUGxheWVySWRlbnRpdHlEYXRhLFxuICBQb2ludGVyRXZlbnRzUmVzdWx0LFxuICBSZWFsbUluZm8sXG4gIFZlY3RvcjNUeXBlLFxuICBlbmdpbmVcbn0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBNYW55RW50aXR5QWN0aW9uLCBTZW5kQmF0Y2hSZXNwb25zZSwgc3Vic2NyaWJlIH0gZnJvbSAnfnN5c3RlbS9FbmdpbmVBcGknXG5pbXBvcnQgcGxheWVycyBmcm9tICcuL3BsYXllcnMnXG5cbi8vLyAtLS0gRVZFTlRTIC0tLVxuXG4vKiogQHB1YmxpYyAqL1xuZXhwb3J0IHR5cGUgSUV2ZW50TmFtZXMgPSBrZXlvZiBJRXZlbnRzXG5cbi8qKlxuICogQHB1YmxpY1xuICogTm90ZTogRG9uJ3QgdXNlIGBvbmAgcHJlZml4IGZvciBJRXZlbnRzIHRvIGF2b2lkIHJlZHVuZGFuY3kgd2l0aCBgZXZlbnQub24oXCJvbkV2ZW50TmFtZVwiKWAgc3ludGF4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElFdmVudHMge1xuICBwbGF5ZXJFeHByZXNzaW9uOiB7XG4gICAgZXhwcmVzc2lvbklkOiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgZW50ZXJzIHRoZSBzY2VuZVxuICAgKi9cbiAgb25FbnRlclNjZW5lOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGdldHMgdHJpZ2dlcmVkIHdoZW4gdGhlIHVzZXIgbGVhdmVzIHRoZSBzY2VuZVxuICAgKi9cbiAgb25MZWF2ZVNjZW5lOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGdldHMgdHJpZ2dlcmVkIGFmdGVyIHJlY2VpdmluZyBhIGNvbW1zIG1lc3NhZ2UuXG4gICAqL1xuICBjb21tczoge1xuICAgIHNlbmRlcjogc3RyaW5nXG4gICAgbWVzc2FnZTogc3RyaW5nXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBpcyB0cmlnZ2VyZWQgb25jZSB0aGUgc2NlbmUgc2hvdWxkIHN0YXJ0LlxuICAgKi9cbiAgc2NlbmVTdGFydDogdW5rbm93blxuXG4gIC8qKiBUaGlzIGlzIHRyaWdnZXJlZCBhdCBsZWFzdCBmb3IgZWFjaCB2aWRlb1N0YXR1cyBjaGFuZ2UgKi9cbiAgdmlkZW9FdmVudDoge1xuICAgIGNvbXBvbmVudElkOiBzdHJpbmdcbiAgICB2aWRlb0NsaXBJZDogc3RyaW5nXG4gICAgLyoqIFN0YXR1cywgY2FuIGJlIE5PTkUgPSAwLCBFUlJPUiA9IDEsIExPQURJTkcgPSAyLCBSRUFEWSA9IDMsIFBMQVlJTkcgPSA0LEJVRkZFUklORyA9IDUgKi9cbiAgICB2aWRlb1N0YXR1czogbnVtYmVyXG4gICAgLyoqIEN1cnJlbnQgb2Zmc2V0IHBvc2l0aW9uIGluIHNlY29uZHMgKi9cbiAgICBjdXJyZW50T2Zmc2V0OiBudW1iZXJcbiAgICAvKiogVmlkZW8gbGVuZ3RoIGluIHNlY29uZHMuIENhbiBiZSAtMSAqL1xuICAgIHRvdGFsVmlkZW9MZW5ndGg6IG51bWJlclxuICB9XG5cbiAgLyoqIFRoaXMgaXMgdHJpZ2dlciBldmVyeXRpbWUgYSBwcm9maWxlIGlzIGNoYW5nZWQgKi9cbiAgcHJvZmlsZUNoYW5nZWQ6IHtcbiAgICBldGhBZGRyZXNzOiBzdHJpbmdcbiAgICB2ZXJzaW9uOiBudW1iZXJcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBwZWVyJ3MgYXZhdGFyIGlzIGNvbm5lY3RlZCBhbmQgdmlzaWJsZSAqL1xuICBwbGF5ZXJDb25uZWN0ZWQ6IHtcbiAgICB1c2VySWQ6IHN0cmluZ1xuICB9XG5cbiAgLyoqIFRyaWdnZXJlZCB3aGVuIHBlZXIgZGlzY29ubmVjdCBhbmQvb3IgaXQgYXZhdGFyIGlzIHNldCBpbnZpc2libGUgYnkgY29tbXMgKi9cbiAgcGxheWVyRGlzY29ubmVjdGVkOiB7XG4gICAgdXNlcklkOiBzdHJpbmdcbiAgfVxuXG4gIC8qKiBUcmlnZ2VyZWQgd2hlbiBjdXJyZW50IHJlYWxtIG9yIGlzbGFuZCBjaGFuZ2VzICovXG4gIG9uUmVhbG1DaGFuZ2VkOiB7XG4gICAgZG9tYWluOiBzdHJpbmdcbiAgICByb29tOiBzdHJpbmdcbiAgICBzZXJ2ZXJOYW1lOiBzdHJpbmdcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nXG4gIH1cblxuICAvKiogVHJpZ2dlcmVkIHdoZW4gb3RoZXIgcGxheWVyJ3MgYXZhdGFyIGlzIGNsaWNrZWQgKi9cbiAgcGxheWVyQ2xpY2tlZDoge1xuICAgIHVzZXJJZDogc3RyaW5nXG4gICAgcmF5OiB7XG4gICAgICBvcmlnaW46IFZlY3RvcjNUeXBlXG4gICAgICBkaXJlY3Rpb246IFZlY3RvcjNUeXBlXG4gICAgICBkaXN0YW5jZTogbnVtYmVyXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBUaGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyBhIGNhbGxiYWNrIHRoYXQgaXMgcGFzc2VkIHRvIHRoZSBPYnNlcnZhYmxlXG4gKiBjb25zdHJ1Y3RvciB0byBzdWJzY3JpYmUgdG8gdGhlIGV2ZW50cyBvZiB0aGUgRGVjZW50cmFsYW5kSW50ZXJmYWNlXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN1YnNjcmliZXIoZXZlbnROYW1lOiBrZXlvZiBJRXZlbnRzKSB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NvbW1zJykge1xuICAgICAgc3Vic2NyaWJlKHsgZXZlbnRJZDogZXZlbnROYW1lIH0pLmNhdGNoKGNvbnNvbGUuZXJyb3IpXG4gICAgfSBlbHNlIHtcbiAgICAgIFNESzdDb21wb25lbnRzT2JzZXJ2YWJsZT8uc3Vic2NyaWJlKGV2ZW50TmFtZSlcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBUaGVzZSBldmVudHMgYXJlIHRyaWdnZXJlZCBhZnRlciB5b3VyIGNoYXJhY3RlciBlbnRlcnMgdGhlIHNjZW5lLlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uRW50ZXJTY2VuZU9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydvbkVudGVyU2NlbmUnXT4oY3JlYXRlU3Vic2NyaWJlcignb25FbnRlclNjZW5lJykpXG4vKiogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuIFVzZSBvbkVudGVyU2NlbmVPYnNlcnZhYmxlIGluc3RlYWQuICovXG5leHBvcnQgY29uc3Qgb25FbnRlclNjZW5lID0gb25FbnRlclNjZW5lT2JzZXJ2YWJsZVxuXG4vKipcbiAqIFRoZXNlIGV2ZW50cyBhcmUgdHJpZ2dlcmVkIGFmdGVyIHlvdXIgY2hhcmFjdGVyIGxlYXZlcyB0aGUgc2NlbmUuXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ29uTGVhdmVTY2VuZSddPihjcmVhdGVTdWJzY3JpYmVyKCdvbkxlYXZlU2NlbmUnKSlcblxuLyoqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLiBVc2Ugb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZSBpbnN0ZWFkLiAqL1xuZXhwb3J0IGNvbnN0IG9uTGVhdmVTY2VuZSA9IG9uTGVhdmVTY2VuZU9ic2VydmFibGVcblxuLyoqXG4gKiBUaGlzIGV2ZW50IGlzIHRyaWdnZXJlZCBhZnRlciBhbGwgdGhlIHJlc291cmNlcyBvZiB0aGUgc2NlbmUgd2VyZSBsb2FkZWQgKG1vZGVscywgdGV4dHVyZXMsIGV0Yy4uLilcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblNjZW5lUmVhZHlPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1snc2NlbmVTdGFydCddPihjcmVhdGVTdWJzY3JpYmVyKCdzY2VuZVN0YXJ0JykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyRXhwcmVzc2lvbk9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydwbGF5ZXJFeHByZXNzaW9uJ10+KFxuICBjcmVhdGVTdWJzY3JpYmVyKCdwbGF5ZXJFeHByZXNzaW9uJylcbilcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25WaWRlb0V2ZW50ID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1sndmlkZW9FdmVudCddPihjcmVhdGVTdWJzY3JpYmVyKCd2aWRlb0V2ZW50JykpXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUHJvZmlsZUNoYW5nZWQgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydwcm9maWxlQ2hhbmdlZCddPihjcmVhdGVTdWJzY3JpYmVyKCdwcm9maWxlQ2hhbmdlZCcpKVxuXG4vKipcbiAqIEBwdWJsaWNcbiAqIEBkZXByZWNhdGVkIFRoaXMgZnVuY3Rpb24gaXMgYW4gaW5oZXJpdGFuY2Ugb2YgRUNTNiwgaXQncyBoZXJlIHRlbXBvcmFyeSBmb3IgdGhlIGZlYXR1cmUgcGFyaXR5LCBwbGVhc2UgcmVhZCB0aGUgbmV3cyBhbmQgZG9jcyB0byBrbm93IGhvdyBoYW5kbGUgd2hlbiBpdCdzIHJlbW92ZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTxJRXZlbnRzWydwbGF5ZXJDb25uZWN0ZWQnXT4oXG4gIGNyZWF0ZVN1YnNjcmliZXIoJ3BsYXllckNvbm5lY3RlZCcpXG4pXG5cbi8qKlxuICogQHB1YmxpY1xuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyRGlzY29ubmVjdGVkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3BsYXllckRpc2Nvbm5lY3RlZCddPihcbiAgY3JlYXRlU3Vic2NyaWJlcigncGxheWVyRGlzY29ubmVjdGVkJylcbilcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25SZWFsbUNoYW5nZWRPYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1snb25SZWFsbUNoYW5nZWQnXT4oY3JlYXRlU3Vic2NyaWJlcignb25SZWFsbUNoYW5nZWQnKSlcblxuLyoqXG4gKiBAcHVibGljXG4gKiBAZGVwcmVjYXRlZCBUaGlzIGZ1bmN0aW9uIGlzIGFuIGluaGVyaXRhbmNlIG9mIEVDUzYsIGl0J3MgaGVyZSB0ZW1wb3JhcnkgZm9yIHRoZSBmZWF0dXJlIHBhcml0eSwgcGxlYXNlIHJlYWQgdGhlIG5ld3MgYW5kIGRvY3MgdG8ga25vdyBob3cgaGFuZGxlIHdoZW4gaXQncyByZW1vdmVkLlxuICovXG5leHBvcnQgY29uc3Qgb25QbGF5ZXJDbGlja2VkT2JzZXJ2YWJsZSA9IG5ldyBPYnNlcnZhYmxlPElFdmVudHNbJ3BsYXllckNsaWNrZWQnXT4oY3JlYXRlU3Vic2NyaWJlcigncGxheWVyQ2xpY2tlZCcpKVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICogQGRlcHJlY2F0ZWQgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbmhlcml0YW5jZSBvZiBFQ1M2LCBpdCdzIGhlcmUgdGVtcG9yYXJ5IGZvciB0aGUgZmVhdHVyZSBwYXJpdHksIHBsZWFzZSByZWFkIHRoZSBuZXdzIGFuZCBkb2NzIHRvIGtub3cgaG93IGhhbmRsZSB3aGVuIGl0J3MgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IG9uQ29tbXNNZXNzYWdlID0gbmV3IE9ic2VydmFibGU8SUV2ZW50c1snY29tbXMnXT4oY3JlYXRlU3Vic2NyaWJlcignY29tbXMnKSlcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEBkZXByZWNhdGVkIHRoaXMgaXMgYW4gT0xEIEFQSS5cbiAqIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgU0RLNiBzZW5kQmF0Y2ggdG8gcG9sbCBldmVudHMgZnJvbSB0aGUgcmVuZGVyZXJcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBvbGxFdmVudHMoc2VuZEJhdGNoOiAoYm9keTogTWFueUVudGl0eUFjdGlvbikgPT4gUHJvbWlzZTxTZW5kQmF0Y2hSZXNwb25zZT4pIHtcbiAgY29uc3QgeyBldmVudHMgfSA9IGF3YWl0IHNlbmRCYXRjaCh7IGFjdGlvbnM6IFtdIH0pXG4gIGZvciAoY29uc3QgZSBvZiBldmVudHMpIHtcbiAgICBpZiAoZS5nZW5lcmljKSB7XG4gICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShlLmdlbmVyaWMuZXZlbnREYXRhKVxuICAgICAgc3dpdGNoIChlLmdlbmVyaWMuZXZlbnRJZCkge1xuICAgICAgICBjYXNlICdjb21tcyc6IHtcbiAgICAgICAgICBvbkNvbW1zTWVzc2FnZS5ub3RpZnlPYnNlcnZlcnMoZGF0YSBhcyBJRXZlbnRzWydjb21tcyddKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuY29uc3QgU0RLN0NvbXBvbmVudHNPYnNlcnZhYmxlID0gcHJvY2Vzc09ic2VydmFibGVzKClcbmZ1bmN0aW9uIHByb2Nlc3NPYnNlcnZhYmxlcygpIHtcbiAgY29uc3Qgc3Vic2NyaXB0aW9ucyA9IG5ldyBTZXQ8a2V5b2YgSUV2ZW50cz4oKVxuXG4gIGZ1bmN0aW9uIHN1YnNjcmliZShldmVudE5hbWU6IGtleW9mIElFdmVudHMpIHtcbiAgICBpZiAoc3Vic2NyaXB0aW9ucy5oYXMoZXZlbnROYW1lKSkgcmV0dXJuXG4gICAgc3dpdGNoIChldmVudE5hbWUpIHtcbiAgICAgIGNhc2UgJ3BsYXllckNsaWNrZWQnOiB7XG4gICAgICAgIHN1YnNjcmliZVBsYXllckNsaWNrKClcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ29uRW50ZXJTY2VuZSc6XG4gICAgICBjYXNlICdwbGF5ZXJDb25uZWN0ZWQnOiB7XG4gICAgICAgIHN1YnNjcmliZUVudGVyU2NlbmUoKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAnb25MZWF2ZVNjZW5lJzpcbiAgICAgIGNhc2UgJ3BsYXllckRpc2Nvbm5lY3RlZCc6IHtcbiAgICAgICAgc3Vic2NyaWJlTGVhdmVTY2VuZSgpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdvblJlYWxtQ2hhbmdlZCc6IHtcbiAgICAgICAgc3Vic2NyaWJlUmVhbG1DaGFuZ2UoKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgY2FzZSAncGxheWVyRXhwcmVzc2lvbic6IHtcbiAgICAgICAgc3Vic2NyaWJlUGxheWVyRXhwcmVzc2lvbigpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdwcm9maWxlQ2hhbmdlZCc6IHtcbiAgICAgICAgc3Vic2NyaWJlUHJvZmlsZUNoYW5nZSgpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICAgIHN1YnNjcmlwdGlvbnMuYWRkKGV2ZW50TmFtZSlcbiAgfVxuICAvKipcbiAgICogUExBWUVSIEVOVEVSL0NPTk5FQ1RFRCBvYnNlcnZhYmxlXG4gICAqL1xuICBmdW5jdGlvbiBzdWJzY3JpYmVFbnRlclNjZW5lKCkge1xuICAgIHBsYXllcnMub25FbnRlclNjZW5lKChwbGF5ZXIpID0+IHtcbiAgICAgIGlmIChzdWJzY3JpcHRpb25zLmhhcygnb25FbnRlclNjZW5lJykpIHtcbiAgICAgICAgb25FbnRlclNjZW5lT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyB1c2VySWQ6IHBsYXllci51c2VySWQgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnMuaGFzKCdwbGF5ZXJDb25uZWN0ZWQnKSkge1xuICAgICAgICBvblBsYXllckNvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHsgdXNlcklkOiBwbGF5ZXIudXNlcklkIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICAvKipcbiAgICogUExBWUVSIExFQVZFL0RJU0NPTk5FQ1RFRCBvYnNlcnZhYmxlXG4gICAqL1xuICBmdW5jdGlvbiBzdWJzY3JpYmVMZWF2ZVNjZW5lKCkge1xuICAgIHBsYXllcnMub25MZWF2ZVNjZW5lKCh1c2VySWQpID0+IHtcbiAgICAgIGlmIChzdWJzY3JpcHRpb25zLmhhcygnb25MZWF2ZVNjZW5lJykpIHtcbiAgICAgICAgb25MZWF2ZVNjZW5lT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyB1c2VySWQgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHN1YnNjcmlwdGlvbnMuaGFzKCdwbGF5ZXJEaXNjb25uZWN0ZWQnKSkge1xuICAgICAgICBvblBsYXllckRpc2Nvbm5lY3RlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHsgdXNlcklkIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICAvKipcbiAgICogUkVBTE0gQ0hBTkdFIG9ic2VydmFibGVcbiAgICovXG4gIGZ1bmN0aW9uIHN1YnNjcmliZVJlYWxtQ2hhbmdlKCkge1xuICAgIFJlYWxtSW5mby5vbkNoYW5nZShlbmdpbmUuUm9vdEVudGl0eSwgKHZhbHVlKSA9PiB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgb25SZWFsbUNoYW5nZWRPYnNlcnZhYmxlLm5vdGlmeU9ic2VydmVycyh7XG4gICAgICAgICAgZG9tYWluOiB2YWx1ZS5iYXNlVXJsLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiB2YWx1ZS5yZWFsbU5hbWUsXG4gICAgICAgICAgcm9vbTogdmFsdWUucm9vbSA/PyAnJyxcbiAgICAgICAgICBzZXJ2ZXJOYW1lOiB2YWx1ZS5yZWFsbU5hbWVcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIC8qKlxuICAgKiBQTEFZRVIvQVZBVEFSIENMSUNLRUQgb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlUGxheWVyQ2xpY2soKSB7XG4gICAgY29uc3QgcGxheWVyRW50aXRpZXMgPSBuZXcgU2V0PEVudGl0eT4oKVxuICAgIGVuZ2luZS5hZGRTeXN0ZW0oKCkgPT4ge1xuICAgICAgZm9yIChjb25zdCBbZW50aXR5XSBvZiBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKFBsYXllcklkZW50aXR5RGF0YSkpIHtcbiAgICAgICAgaWYgKHBsYXllckVudGl0aWVzLmhhcyhlbnRpdHkpKSBjb250aW51ZVxuICAgICAgICBwbGF5ZXJFbnRpdGllcy5hZGQoZW50aXR5KVxuXG4gICAgICAgIFBvaW50ZXJFdmVudHNSZXN1bHQub25DaGFuZ2UoZW50aXR5LCAoZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhPy5oaXQpIHtcbiAgICAgICAgICAgIG9uUGxheWVyQ2xpY2tlZE9ic2VydmFibGUubm90aWZ5T2JzZXJ2ZXJzKHtcbiAgICAgICAgICAgICAgdXNlcklkOiBQbGF5ZXJJZGVudGl0eURhdGEuZ2V0T3JOdWxsKGVudGl0eSk/LmFkZHJlc3MgPz8gJycsXG4gICAgICAgICAgICAgIHJheToge1xuICAgICAgICAgICAgICAgIGRpcmVjdGlvbjogZGF0YS5oaXQuZGlyZWN0aW9uISxcbiAgICAgICAgICAgICAgICBkaXN0YW5jZTogZGF0YS5oaXQubGVuZ3RoLFxuICAgICAgICAgICAgICAgIG9yaWdpbjogZGF0YS5oaXQuZ2xvYmFsT3JpZ2luIVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBsYXllciBleHByZXNzaW9uIG9ic2VydmFibGVcbiAgICovXG4gIGZ1bmN0aW9uIHN1YnNjcmliZVBsYXllckV4cHJlc3Npb24oKSB7XG4gICAgQXZhdGFyRW1vdGVDb21tYW5kLm9uQ2hhbmdlKGVuZ2luZS5QbGF5ZXJFbnRpdHksICh2YWx1ZSkgPT4ge1xuICAgICAgb25QbGF5ZXJFeHByZXNzaW9uT2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoeyBleHByZXNzaW9uSWQ6IHZhbHVlPy5lbW90ZVVybiA/PyAnJyB9KVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUFJPRklMRSBDSEFOR0Ugb2JzZXJ2YWJsZVxuICAgKi9cbiAgZnVuY3Rpb24gc3Vic2NyaWJlUHJvZmlsZUNoYW5nZSgpIHtcbiAgICBBdmF0YXJCYXNlLm9uQ2hhbmdlKGVuZ2luZS5QbGF5ZXJFbnRpdHksICgpID0+IHtcbiAgICAgIGlmICghcHJvZmlsZUFkZHJlc3MpIHJldHVyblxuICAgICAgb25Qcm9maWxlQ2hhbmdlZC5ub3RpZnlPYnNlcnZlcnMoeyBldGhBZGRyZXNzOiBwcm9maWxlQWRkcmVzcywgdmVyc2lvbjogMCB9KVxuICAgIH0pXG5cbiAgICBBdmF0YXJFcXVpcHBlZERhdGEub25DaGFuZ2UoZW5naW5lLlBsYXllckVudGl0eSwgKCkgPT4ge1xuICAgICAgaWYgKCFwcm9maWxlQWRkcmVzcykgcmV0dXJuXG4gICAgICBvblByb2ZpbGVDaGFuZ2VkLm5vdGlmeU9ic2VydmVycyh7IGV0aEFkZHJlc3M6IHByb2ZpbGVBZGRyZXNzLCB2ZXJzaW9uOiAwIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8vIEZsYWcgdG8gY2FsbCBvbmNlIHRoZSBzY2VuZSBpcyBpbml0YWxpemVkLlxuICBsZXQgc2NlbmVSZWFkeSA9IGZhbHNlXG4gIGxldCBwcm9maWxlQWRkcmVzczogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgZnVuY3Rpb24gb2JzZXJ2YWJsZVN5c3RlbSgpIHtcbiAgICBpZiAoc2NlbmVSZWFkeSAmJiBwcm9maWxlQWRkcmVzcykge1xuICAgICAgcmV0dXJuIGVuZ2luZS5yZW1vdmVTeXN0ZW0ob2JzZXJ2YWJsZVN5c3RlbSlcbiAgICB9XG4gICAgaWYgKCFzY2VuZVJlYWR5KSB7XG4gICAgICBzY2VuZVJlYWR5ID0gdHJ1ZVxuICAgICAgb25TY2VuZVJlYWR5T2JzZXJ2YWJsZS5ub3RpZnlPYnNlcnZlcnMoe30pXG4gICAgfVxuICAgIGlmIChwcm9maWxlQWRkcmVzcykgcmV0dXJuXG4gICAgcHJvZmlsZUFkZHJlc3MgPSBQbGF5ZXJJZGVudGl0eURhdGEuZ2V0T3JOdWxsKGVuZ2luZS5QbGF5ZXJFbnRpdHkpPy5hZGRyZXNzXG4gIH1cblxuICBlbmdpbmUuYWRkU3lzdGVtKG9ic2VydmFibGVTeXN0ZW0pXG5cbiAgcmV0dXJuIHsgc3Vic2NyaWJlIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/sdk",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "7.29.1-
|
|
4
|
+
"version": "7.29.1-35901015152.commit-d1b7b96",
|
|
5
5
|
"author": "Decentraland",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@dcl/ecs": "7.29.1-
|
|
7
|
+
"@dcl/ecs": "7.29.1-35901015152.commit-d1b7b96",
|
|
8
8
|
"@dcl/ecs-math": "2.1.0",
|
|
9
|
-
"@dcl/js-runtime": "7.29.1-
|
|
10
|
-
"@dcl/react-ecs": "7.29.1-
|
|
11
|
-
"@dcl/sdk-commands": "7.29.1-
|
|
9
|
+
"@dcl/js-runtime": "7.29.1-35901015152.commit-d1b7b96",
|
|
10
|
+
"@dcl/react-ecs": "7.29.1-35901015152.commit-d1b7b96",
|
|
11
|
+
"@dcl/sdk-commands": "7.29.1-35901015152.commit-d1b7b96"
|
|
12
12
|
},
|
|
13
13
|
"keywords": [],
|
|
14
14
|
"license": "Apache-2.0",
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
},
|
|
34
34
|
"types": "./index.d.ts",
|
|
35
35
|
"typings": "./index.d.ts",
|
|
36
|
-
"commit": "
|
|
36
|
+
"commit": "d1b7b964cd184465c1b65118e47b5dc6be68a184"
|
|
37
37
|
}
|
package/platform/index.d.ts
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
import { Observable } from '../internal/Observable';
|
|
2
1
|
export type Platform = 'mobile' | 'desktop' | 'web';
|
|
3
|
-
/**
|
|
4
|
-
* Triggered when the player switches the client language mid-session.
|
|
5
|
-
* Older clients never emit it.
|
|
6
|
-
* @public
|
|
7
|
-
*/
|
|
8
|
-
export declare const onPlayerLanguageChanged: Observable<{
|
|
9
|
-
language: string;
|
|
10
|
-
}>;
|
|
11
2
|
export declare function getPlatform(): Platform | null;
|
|
12
3
|
export declare function isMobile(): boolean;
|
|
13
4
|
export declare function isDesktop(): boolean;
|
|
14
5
|
export declare function isWeb(): boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Player's client language as a BCP-47 tag (e.g. `'es'`, `'pt-BR'`).
|
|
17
|
-
* Returns `'en'` until the explorer responds, and on clients that don't report a locale.
|
|
18
|
-
* Use `onPlayerLanguageChanged` to react to mid-session changes.
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
export declare function getPlayerLanguage(): string;
|
package/platform/index.js
CHANGED
|
@@ -1,40 +1,8 @@
|
|
|
1
1
|
import { getExplorerInformation } from '~system/Runtime';
|
|
2
|
-
import { subscribe } from '~system/EngineApi';
|
|
3
|
-
import { Observable } from '../internal/Observable';
|
|
4
|
-
import { localeChangedEvents } from '../internal/language-events';
|
|
5
2
|
const VALID_PLATFORMS = new Set(['mobile', 'desktop', 'web']);
|
|
6
|
-
const DEFAULT_LANGUAGE = 'en';
|
|
7
|
-
const BCP47_TAG = /^[a-zA-Z]{2,3}(-[a-zA-Z0-9]{2,8})*$/;
|
|
8
3
|
let platform = null;
|
|
9
|
-
let language = DEFAULT_LANGUAGE;
|
|
10
|
-
let languageSetByEvent = false;
|
|
11
|
-
/**
|
|
12
|
-
* Triggered when the player switches the client language mid-session.
|
|
13
|
-
* Older clients never emit it.
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
export const onPlayerLanguageChanged = new Observable();
|
|
17
|
-
function normalizeLocale(locale) {
|
|
18
|
-
const tag = (locale ?? '').trim().replace(/_/g, '-');
|
|
19
|
-
return BCP47_TAG.test(tag) ? tag : DEFAULT_LANGUAGE;
|
|
20
|
-
}
|
|
21
|
-
function setLanguage(next) {
|
|
22
|
-
if (next === language)
|
|
23
|
-
return;
|
|
24
|
-
language = next;
|
|
25
|
-
onPlayerLanguageChanged.notifyObservers({ language });
|
|
26
|
-
}
|
|
27
|
-
localeChangedEvents.add((event) => {
|
|
28
|
-
languageSetByEvent = true;
|
|
29
|
-
setLanguage(normalizeLocale(event.locale));
|
|
30
|
-
});
|
|
31
|
-
subscribe({ eventId: 'localeChanged' }).catch(console.error);
|
|
32
4
|
void getExplorerInformation({})
|
|
33
5
|
.then((response) => {
|
|
34
|
-
// a mid-session change that arrived first is more recent than this response
|
|
35
|
-
if (!languageSetByEvent) {
|
|
36
|
-
setLanguage(normalizeLocale(response.configurations?.['locale']));
|
|
37
|
-
}
|
|
38
6
|
const normalized = response.platform.toLowerCase();
|
|
39
7
|
if (VALID_PLATFORMS.has(normalized)) {
|
|
40
8
|
platform = normalized;
|
|
@@ -58,13 +26,4 @@ export function isDesktop() {
|
|
|
58
26
|
export function isWeb() {
|
|
59
27
|
return getPlatform() === 'web';
|
|
60
28
|
}
|
|
61
|
-
|
|
62
|
-
* Player's client language as a BCP-47 tag (e.g. `'es'`, `'pt-BR'`).
|
|
63
|
-
* Returns `'en'` until the explorer responds, and on clients that don't report a locale.
|
|
64
|
-
* Use `onPlayerLanguageChanged` to react to mid-session changes.
|
|
65
|
-
* @public
|
|
66
|
-
*/
|
|
67
|
-
export function getPlayerLanguage() {
|
|
68
|
-
return language;
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGxhdGZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUlqRSxNQUFNLGVBQWUsR0FBZ0IsSUFBSSxHQUFHLENBQVMsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFbEYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUE7QUFDN0IsTUFBTSxTQUFTLEdBQUcscUNBQXFDLENBQUE7QUFFdkQsSUFBSSxRQUFRLEdBQW9CLElBQUksQ0FBQTtBQUNwQyxJQUFJLFFBQVEsR0FBVyxnQkFBZ0IsQ0FBQTtBQUN2QyxJQUFJLGtCQUFrQixHQUFHLEtBQUssQ0FBQTtBQUU5Qjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxVQUFVLEVBQXdCLENBQUE7QUFFN0UsU0FBUyxlQUFlLENBQUMsTUFBMEI7SUFDakQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNwRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUE7QUFDckQsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQVk7SUFDL0IsSUFBSSxJQUFJLEtBQUssUUFBUTtRQUFFLE9BQU07SUFDN0IsUUFBUSxHQUFHLElBQUksQ0FBQTtJQUNmLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7QUFDdkQsQ0FBQztBQUVELG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2hDLGtCQUFrQixHQUFHLElBQUksQ0FBQTtJQUN6QixXQUFXLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0FBQzVDLENBQUMsQ0FBQyxDQUFBO0FBQ0YsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUU1RCxLQUFLLHNCQUFzQixDQUFDLEVBQUUsQ0FBQztLQUM1QixJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtJQUNqQiw0RUFBNEU7SUFDNUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1FBQ3ZCLFdBQVcsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNsRTtJQUNELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDbEQsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ25DLFFBQVEsR0FBRyxVQUFzQixDQUFBO0tBQ2xDO1NBQU07UUFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixRQUFRLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQTtLQUNoRTtBQUNILENBQUMsQ0FBQztLQUNELEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO0lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUM3RCxDQUFDLENBQUMsQ0FBQTtBQUVKLE1BQU0sVUFBVSxXQUFXO0lBQ3pCLE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixPQUFPLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FBQTtBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVM7SUFDdkIsT0FBTyxXQUFXLEVBQUUsS0FBSyxTQUFTLENBQUE7QUFDcEMsQ0FBQztBQUVELE1BQU0sVUFBVSxLQUFLO0lBQ25CLE9BQU8sV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFBO0FBQ2hDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEV4cGxvcmVySW5mb3JtYXRpb24gfSBmcm9tICd+c3lzdGVtL1J1bnRpbWUnXG5pbXBvcnQgeyBzdWJzY3JpYmUgfSBmcm9tICd+c3lzdGVtL0VuZ2luZUFwaSdcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICcuLi9pbnRlcm5hbC9PYnNlcnZhYmxlJ1xuaW1wb3J0IHsgbG9jYWxlQ2hhbmdlZEV2ZW50cyB9IGZyb20gJy4uL2ludGVybmFsL2xhbmd1YWdlLWV2ZW50cydcblxuZXhwb3J0IHR5cGUgUGxhdGZvcm0gPSAnbW9iaWxlJyB8ICdkZXNrdG9wJyB8ICd3ZWInXG5cbmNvbnN0IFZBTElEX1BMQVRGT1JNUzogU2V0PHN0cmluZz4gPSBuZXcgU2V0PHN0cmluZz4oWydtb2JpbGUnLCAnZGVza3RvcCcsICd3ZWInXSlcblxuY29uc3QgREVGQVVMVF9MQU5HVUFHRSA9ICdlbidcbmNvbnN0IEJDUDQ3X1RBRyA9IC9eW2EtekEtWl17MiwzfSgtW2EtekEtWjAtOV17Miw4fSkqJC9cblxubGV0IHBsYXRmb3JtOiBQbGF0Zm9ybSB8IG51bGwgPSBudWxsXG5sZXQgbGFuZ3VhZ2U6IHN0cmluZyA9IERFRkFVTFRfTEFOR1VBR0VcbmxldCBsYW5ndWFnZVNldEJ5RXZlbnQgPSBmYWxzZVxuXG4vKipcbiAqIFRyaWdnZXJlZCB3aGVuIHRoZSBwbGF5ZXIgc3dpdGNoZXMgdGhlIGNsaWVudCBsYW5ndWFnZSBtaWQtc2Vzc2lvbi5cbiAqIE9sZGVyIGNsaWVudHMgbmV2ZXIgZW1pdCBpdC5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IG9uUGxheWVyTGFuZ3VhZ2VDaGFuZ2VkID0gbmV3IE9ic2VydmFibGU8eyBsYW5ndWFnZTogc3RyaW5nIH0+KClcblxuZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlKGxvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgdGFnID0gKGxvY2FsZSA/PyAnJykudHJpbSgpLnJlcGxhY2UoL18vZywgJy0nKVxuICByZXR1cm4gQkNQNDdfVEFHLnRlc3QodGFnKSA/IHRhZyA6IERFRkFVTFRfTEFOR1VBR0Vcbn1cblxuZnVuY3Rpb24gc2V0TGFuZ3VhZ2UobmV4dDogc3RyaW5nKSB7XG4gIGlmIChuZXh0ID09PSBsYW5ndWFnZSkgcmV0dXJuXG4gIGxhbmd1YWdlID0gbmV4dFxuICBvblBsYXllckxhbmd1YWdlQ2hhbmdlZC5ub3RpZnlPYnNlcnZlcnMoeyBsYW5ndWFnZSB9KVxufVxuXG5sb2NhbGVDaGFuZ2VkRXZlbnRzLmFkZCgoZXZlbnQpID0+IHtcbiAgbGFuZ3VhZ2VTZXRCeUV2ZW50ID0gdHJ1ZVxuICBzZXRMYW5ndWFnZShub3JtYWxpemVMb2NhbGUoZXZlbnQubG9jYWxlKSlcbn0pXG5zdWJzY3JpYmUoeyBldmVudElkOiAnbG9jYWxlQ2hhbmdlZCcgfSkuY2F0Y2goY29uc29sZS5lcnJvcilcblxudm9pZCBnZXRFeHBsb3JlckluZm9ybWF0aW9uKHt9KVxuICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAvLyBhIG1pZC1zZXNzaW9uIGNoYW5nZSB0aGF0IGFycml2ZWQgZmlyc3QgaXMgbW9yZSByZWNlbnQgdGhhbiB0aGlzIHJlc3BvbnNlXG4gICAgaWYgKCFsYW5ndWFnZVNldEJ5RXZlbnQpIHtcbiAgICAgIHNldExhbmd1YWdlKG5vcm1hbGl6ZUxvY2FsZShyZXNwb25zZS5jb25maWd1cmF0aW9ucz8uWydsb2NhbGUnXSkpXG4gICAgfVxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSByZXNwb25zZS5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKFZBTElEX1BMQVRGT1JNUy5oYXMobm9ybWFsaXplZCkpIHtcbiAgICAgIHBsYXRmb3JtID0gbm9ybWFsaXplZCBhcyBQbGF0Zm9ybVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBVbmtub3duIHBsYXRmb3JtIHZhbHVlOiBcIiR7cmVzcG9uc2UucGxhdGZvcm19XCJgKVxuICAgIH1cbiAgfSlcbiAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBnZXQgZXhwbG9yZXIgaW5mb3JtYXRpb246JywgZXJyb3IpXG4gIH0pXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQbGF0Zm9ybSgpOiBQbGF0Zm9ybSB8IG51bGwge1xuICByZXR1cm4gcGxhdGZvcm1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0UGxhdGZvcm0oKSA9PT0gJ21vYmlsZSdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVza3RvcCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldFBsYXRmb3JtKCkgPT09ICdkZXNrdG9wJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNXZWIoKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRQbGF0Zm9ybSgpID09PSAnd2ViJ1xufVxuXG4vKipcbiAqIFBsYXllcidzIGNsaWVudCBsYW5ndWFnZSBhcyBhIEJDUC00NyB0YWcgKGUuZy4gYCdlcydgLCBgJ3B0LUJSJ2ApLlxuICogUmV0dXJucyBgJ2VuJ2AgdW50aWwgdGhlIGV4cGxvcmVyIHJlc3BvbmRzLCBhbmQgb24gY2xpZW50cyB0aGF0IGRvbid0IHJlcG9ydCBhIGxvY2FsZS5cbiAqIFVzZSBgb25QbGF5ZXJMYW5ndWFnZUNoYW5nZWRgIHRvIHJlYWN0IHRvIG1pZC1zZXNzaW9uIGNoYW5nZXMuXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQbGF5ZXJMYW5ndWFnZSgpOiBzdHJpbmcge1xuICByZXR1cm4gbGFuZ3VhZ2Vcbn1cbiJdfQ==
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGxhdGZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFJeEQsTUFBTSxlQUFlLEdBQWdCLElBQUksR0FBRyxDQUFTLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBRWxGLElBQUksUUFBUSxHQUFvQixJQUFJLENBQUE7QUFDcEMsS0FBSyxzQkFBc0IsQ0FBQyxFQUFFLENBQUM7S0FDNUIsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7SUFDakIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNsRCxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDbkMsUUFBUSxHQUFHLFVBQXNCLENBQUE7S0FDbEM7U0FBTTtRQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFBO0tBQ2hFO0FBQ0gsQ0FBQyxDQUFDO0tBQ0QsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQzdELENBQUMsQ0FBQyxDQUFBO0FBRUosTUFBTSxVQUFVLFdBQVc7SUFDekIsT0FBTyxRQUFRLENBQUE7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRO0lBQ3RCLE9BQU8sV0FBVyxFQUFFLEtBQUssUUFBUSxDQUFBO0FBQ25DLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLFdBQVcsRUFBRSxLQUFLLFNBQVMsQ0FBQTtBQUNwQyxDQUFDO0FBRUQsTUFBTSxVQUFVLEtBQUs7SUFDbkIsT0FBTyxXQUFXLEVBQUUsS0FBSyxLQUFLLENBQUE7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEV4cGxvcmVySW5mb3JtYXRpb24gfSBmcm9tICd+c3lzdGVtL1J1bnRpbWUnXG5cbmV4cG9ydCB0eXBlIFBsYXRmb3JtID0gJ21vYmlsZScgfCAnZGVza3RvcCcgfCAnd2ViJ1xuXG5jb25zdCBWQUxJRF9QTEFURk9STVM6IFNldDxzdHJpbmc+ID0gbmV3IFNldDxzdHJpbmc+KFsnbW9iaWxlJywgJ2Rlc2t0b3AnLCAnd2ViJ10pXG5cbmxldCBwbGF0Zm9ybTogUGxhdGZvcm0gfCBudWxsID0gbnVsbFxudm9pZCBnZXRFeHBsb3JlckluZm9ybWF0aW9uKHt9KVxuICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gcmVzcG9uc2UucGxhdGZvcm0udG9Mb3dlckNhc2UoKVxuICAgIGlmIChWQUxJRF9QTEFURk9STVMuaGFzKG5vcm1hbGl6ZWQpKSB7XG4gICAgICBwbGF0Zm9ybSA9IG5vcm1hbGl6ZWQgYXMgUGxhdGZvcm1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihgVW5rbm93biBwbGF0Zm9ybSB2YWx1ZTogXCIke3Jlc3BvbnNlLnBsYXRmb3JtfVwiYClcbiAgICB9XG4gIH0pXG4gIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gZ2V0IGV4cGxvcmVyIGluZm9ybWF0aW9uOicsIGVycm9yKVxuICB9KVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGxhdGZvcm0oKTogUGxhdGZvcm0gfCBudWxsIHtcbiAgcmV0dXJuIHBsYXRmb3JtXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc01vYmlsZSgpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldFBsYXRmb3JtKCkgPT09ICdtb2JpbGUnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc2t0b3AoKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRQbGF0Zm9ybSgpID09PSAnZGVza3RvcCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzV2ViKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0UGxhdGZvcm0oKSA9PT0gJ3dlYidcbn1cbiJdfQ==
|
package/players/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ type GetPlayerDataRes = {
|
|
|
11
11
|
avatar?: PBAvatarBase;
|
|
12
12
|
wearables: PBAvatarEquippedData['wearableUrns'];
|
|
13
13
|
emotes: PBAvatarEquippedData['emoteUrns'];
|
|
14
|
+
forceRender: PBAvatarEquippedData['forceRender'];
|
|
14
15
|
position: TransformType['position'] | undefined;
|
|
15
16
|
};
|
|
16
17
|
export declare function definePlayerHelper(engine: IEngine): {
|
package/players/index.js
CHANGED
|
@@ -64,11 +64,9 @@ export function definePlayerHelper(engine) {
|
|
|
64
64
|
isGuest: !!playerData?.isGuest,
|
|
65
65
|
userId: playerData?.address ?? '',
|
|
66
66
|
avatar: avatarData ?? undefined,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
wearables: [...(wearablesData?.wearableUrns ?? [])],
|
|
71
|
-
emotes: [...(wearablesData?.emoteUrns ?? [])],
|
|
67
|
+
wearables: wearablesData?.wearableUrns ?? [],
|
|
68
|
+
emotes: wearablesData?.emoteUrns ?? [],
|
|
69
|
+
forceRender: wearablesData?.forceRender ?? [],
|
|
72
70
|
position: Transform.getOrNull(userEntity)?.position
|
|
73
71
|
};
|
|
74
72
|
}
|
|
@@ -78,4 +76,4 @@ const players = definePlayerHelper(engine);
|
|
|
78
76
|
const { getPlayer, onEnterScene, onLeaveScene } = players;
|
|
79
77
|
export { getPlayer, onEnterScene, onLeaveScene };
|
|
80
78
|
export default players;
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGxheWVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqRSxPQUFPLEVBQ0wsa0JBQWtCLElBQUksdUJBQXVCLEVBQzdDLFVBQVUsSUFBSSxnQkFBZ0IsRUFDOUIsa0JBQWtCLElBQUksd0JBQXdCLEVBRzlDLFNBQVMsSUFBSSxlQUFlLEVBQzdCLE1BQU0sMEJBQTBCLENBQUE7QUFpQmpDLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUFlO0lBQ2hELE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN6QyxNQUFNLGtCQUFrQixHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzFELE1BQU0sa0JBQWtCLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0QsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUE7SUFFaEQsTUFBTSxjQUFjLEdBQTJDLEVBQUUsQ0FBQTtJQUNqRSxNQUFNLGNBQWMsR0FBaUMsRUFBRSxDQUFBO0lBRXZELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ3BCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFBO1FBQ2xGLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsSUFBSTtZQUFFLE9BQU07UUFFbEQsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLE9BQU8sRUFBRTtZQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDL0IsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO2dCQUU1Qyx3QkFBd0I7Z0JBQ3hCLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRTtvQkFDekIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUUsQ0FBQyxDQUFDLENBQUE7aUJBQzdFO2dCQUVELHFDQUFxQztnQkFDckMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDcEMsSUFBSSxDQUFDLEtBQUssSUFBSSxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO3dCQUN4QyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQyxDQUFDLENBQUE7d0JBQy9ELGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7cUJBQzlCO2dCQUNILENBQUMsQ0FBQyxDQUFBO2FBQ0g7U0FDRjtJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsT0FBTztRQUNMLFlBQVksQ0FBQyxFQUFzQztZQUNqRCxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3pCLENBQUM7UUFDRCxZQUFZLENBQUMsRUFBNEI7WUFDdkMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN6QixDQUFDO1FBQ0Q7O1dBRUc7UUFDSCxTQUFTLENBQUMsSUFBdUI7WUFDL0IsU0FBUyxTQUFTO2dCQUNoQixJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU07b0JBQUUsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFBO2dCQUM3QyxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO29CQUN2RSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTt3QkFDaEMsT0FBTyxNQUFNLENBQUE7cUJBQ2Q7aUJBQ0Y7Z0JBQ0QsT0FBTyxTQUFTLENBQUE7WUFDbEIsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLFNBQVMsRUFBRSxDQUFBO1lBQzlCLElBQUksQ0FBQyxVQUFVO2dCQUFFLE9BQU8sSUFBSSxDQUFBO1lBRTVCLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUMzRCxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ25ELE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUU5RCxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsYUFBYTtnQkFBRSxPQUFPLElBQUksQ0FBQTtZQUU3RCxPQUFPO2dCQUNMLE1BQU0sRUFBRSxVQUFVO2dCQUNsQixJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFO2dCQUM1QixPQUFPLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPO2dCQUM5QixNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sSUFBSSxFQUFFO2dCQUNqQyxNQUFNLEVBQUUsVUFBVSxJQUFJLFNBQVM7Z0JBQy9CLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxJQUFJLEVBQUU7Z0JBQzVDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxJQUFJLEVBQUU7Z0JBQ3RDLFdBQVcsRUFBRSxhQUFhLEVBQUUsV0FBVyxJQUFJLEVBQUU7Z0JBQzdDLFFBQVEsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVE7YUFDcEQsQ0FBQTtRQUNILENBQUM7S0FDRixDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQzFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQTtBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQTtBQUNoRCxlQUFlLE9BQU8sQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eSwgSUVuZ2luZSwgVHJhbnNmb3JtVHlwZSwgZW5naW5lIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQge1xuICBQbGF5ZXJJZGVudGl0eURhdGEgYXMgZGVmaW5lUGxheWVySWRlbml0eURhdGEsXG4gIEF2YXRhckJhc2UgYXMgZGVmaW5lQXZhdGFyQmFzZSxcbiAgQXZhdGFyRXF1aXBwZWREYXRhIGFzIGRlZmluZUF2YXRhckVxdWlwcGVkRGF0YSxcbiAgUEJBdmF0YXJCYXNlLFxuICBQQkF2YXRhckVxdWlwcGVkRGF0YSxcbiAgVHJhbnNmb3JtIGFzIGRlZmluZVRyYW5zZm9ybVxufSBmcm9tICdAZGNsL2Vjcy9kaXN0L2NvbXBvbmVudHMnXG5cbnR5cGUgR2V0UGxheWVyRGF0YVJlcSA9IHtcbiAgdXNlcklkOiBzdHJpbmdcbn1cbnR5cGUgR2V0UGxheWVyRGF0YVJlcyA9IHtcbiAgZW50aXR5OiBFbnRpdHlcbiAgbmFtZTogc3RyaW5nXG4gIGlzR3Vlc3Q6IGJvb2xlYW5cbiAgdXNlcklkOiBzdHJpbmdcbiAgYXZhdGFyPzogUEJBdmF0YXJCYXNlXG4gIHdlYXJhYmxlczogUEJBdmF0YXJFcXVpcHBlZERhdGFbJ3dlYXJhYmxlVXJucyddXG4gIGVtb3RlczogUEJBdmF0YXJFcXVpcHBlZERhdGFbJ2Vtb3RlVXJucyddXG4gIGZvcmNlUmVuZGVyOiBQQkF2YXRhckVxdWlwcGVkRGF0YVsnZm9yY2VSZW5kZXInXVxuICBwb3NpdGlvbjogVHJhbnNmb3JtVHlwZVsncG9zaXRpb24nXSB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lUGxheWVySGVscGVyKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCBUcmFuc2Zvcm0gPSBkZWZpbmVUcmFuc2Zvcm0oZW5naW5lKVxuICBjb25zdCBQbGF5ZXJJZGVudGl0eURhdGEgPSBkZWZpbmVQbGF5ZXJJZGVuaXR5RGF0YShlbmdpbmUpXG4gIGNvbnN0IEF2YXRhckVxdWlwcGVkRGF0YSA9IGRlZmluZUF2YXRhckVxdWlwcGVkRGF0YShlbmdpbmUpXG4gIGNvbnN0IEF2YXRhckJhc2UgPSBkZWZpbmVBdmF0YXJCYXNlKGVuZ2luZSlcbiAgY29uc3QgcGxheWVyRW50aXRpZXMgPSBuZXcgTWFwPEVudGl0eSwgc3RyaW5nPigpXG5cbiAgY29uc3Qgb25FbnRlclNjZW5lQ2I6ICgocGxheWVyOiBHZXRQbGF5ZXJEYXRhUmVzKSA9PiB2b2lkKVtdID0gW11cbiAgY29uc3Qgb25MZWF2ZVNjZW5lQ2I6ICgodXNlcklkOiBzdHJpbmcpID0+IHZvaWQpW10gPSBbXVxuXG4gIGVuZ2luZS5hZGRTeXN0ZW0oKCkgPT4ge1xuICAgIGNvbnN0IHBsYXllcnMgPSBBcnJheS5mcm9tKGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoUGxheWVySWRlbnRpdHlEYXRhLCBBdmF0YXJCYXNlKSlcbiAgICBpZiAocGxheWVycy5sZW5ndGggPT09IHBsYXllckVudGl0aWVzLnNpemUpIHJldHVyblxuXG4gICAgZm9yIChjb25zdCBbZW50aXR5LCBpZGVudGl0eV0gb2YgcGxheWVycykge1xuICAgICAgaWYgKCFwbGF5ZXJFbnRpdGllcy5oYXMoZW50aXR5KSkge1xuICAgICAgICBwbGF5ZXJFbnRpdGllcy5zZXQoZW50aXR5LCBpZGVudGl0eS5hZGRyZXNzKVxuXG4gICAgICAgIC8vIENhbGwgb25FbnRlciBjYWxsYmFja1xuICAgICAgICBpZiAob25FbnRlclNjZW5lQ2IubGVuZ3RoKSB7XG4gICAgICAgICAgb25FbnRlclNjZW5lQ2IuZm9yRWFjaCgoY2IpID0+IGNiKGdldFBsYXllcih7IHVzZXJJZDogaWRlbnRpdHkuYWRkcmVzcyB9KSEpKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIGNoYW5nZXMvcmVtb3ZlIGNhbGxiYWNrc1xuICAgICAgICBBdmF0YXJCYXNlLm9uQ2hhbmdlKGVudGl0eSwgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgaWYgKCF2YWx1ZSAmJiBwbGF5ZXJFbnRpdGllcy5nZXQoZW50aXR5KSkge1xuICAgICAgICAgICAgb25MZWF2ZVNjZW5lQ2IuZm9yRWFjaCgoY2IpID0+IGNiKHBsYXllckVudGl0aWVzLmdldChlbnRpdHkpISkpXG4gICAgICAgICAgICBwbGF5ZXJFbnRpdGllcy5kZWxldGUoZW50aXR5KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBvbkVudGVyU2NlbmUoY2I6IChwbGF5ZXI6IEdldFBsYXllckRhdGFSZXMpID0+IHZvaWQpIHtcbiAgICAgIG9uRW50ZXJTY2VuZUNiLnB1c2goY2IpXG4gICAgfSxcbiAgICBvbkxlYXZlU2NlbmUoY2I6ICh1c2VySWQ6IHN0cmluZykgPT4gdm9pZCkge1xuICAgICAgb25MZWF2ZVNjZW5lQ2IucHVzaChjYilcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGluZm8gb2YgdGhlIHBsYXllciBpZiBpdCdzIGluIHRoZSBzY2VuZS5cbiAgICAgKi9cbiAgICBnZXRQbGF5ZXIodXNlcj86IEdldFBsYXllckRhdGFSZXEpOiBHZXRQbGF5ZXJEYXRhUmVzIHwgbnVsbCB7XG4gICAgICBmdW5jdGlvbiBnZXRFbnRpdHkoKSB7XG4gICAgICAgIGlmICghdXNlcj8udXNlcklkKSByZXR1cm4gZW5naW5lLlBsYXllckVudGl0eVxuICAgICAgICBmb3IgKGNvbnN0IFtlbnRpdHksIGRhdGFdIG9mIGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoUGxheWVySWRlbnRpdHlEYXRhKSkge1xuICAgICAgICAgIGlmIChkYXRhLmFkZHJlc3MgPT09IHVzZXIudXNlcklkKSB7XG4gICAgICAgICAgICByZXR1cm4gZW50aXR5XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cblxuICAgICAgY29uc3QgdXNlckVudGl0eSA9IGdldEVudGl0eSgpXG4gICAgICBpZiAoIXVzZXJFbnRpdHkpIHJldHVybiBudWxsXG5cbiAgICAgIGNvbnN0IHBsYXllckRhdGEgPSBQbGF5ZXJJZGVudGl0eURhdGEuZ2V0T3JOdWxsKHVzZXJFbnRpdHkpXG4gICAgICBjb25zdCBhdmF0YXJEYXRhID0gQXZhdGFyQmFzZS5nZXRPck51bGwodXNlckVudGl0eSlcbiAgICAgIGNvbnN0IHdlYXJhYmxlc0RhdGEgPSBBdmF0YXJFcXVpcHBlZERhdGEuZ2V0T3JOdWxsKHVzZXJFbnRpdHkpXG5cbiAgICAgIGlmICghcGxheWVyRGF0YSAmJiAhYXZhdGFyRGF0YSAmJiAhd2VhcmFibGVzRGF0YSkgcmV0dXJuIG51bGxcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZW50aXR5OiB1c2VyRW50aXR5LFxuICAgICAgICBuYW1lOiBhdmF0YXJEYXRhPy5uYW1lID8/ICcnLFxuICAgICAgICBpc0d1ZXN0OiAhIXBsYXllckRhdGE/LmlzR3Vlc3QsXG4gICAgICAgIHVzZXJJZDogcGxheWVyRGF0YT8uYWRkcmVzcyA/PyAnJyxcbiAgICAgICAgYXZhdGFyOiBhdmF0YXJEYXRhID8/IHVuZGVmaW5lZCxcbiAgICAgICAgd2VhcmFibGVzOiB3ZWFyYWJsZXNEYXRhPy53ZWFyYWJsZVVybnMgPz8gW10sXG4gICAgICAgIGVtb3Rlczogd2VhcmFibGVzRGF0YT8uZW1vdGVVcm5zID8/IFtdLFxuICAgICAgICBmb3JjZVJlbmRlcjogd2VhcmFibGVzRGF0YT8uZm9yY2VSZW5kZXIgPz8gW10sXG4gICAgICAgIHBvc2l0aW9uOiBUcmFuc2Zvcm0uZ2V0T3JOdWxsKHVzZXJFbnRpdHkpPy5wb3NpdGlvblxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBwbGF5ZXJzID0gZGVmaW5lUGxheWVySGVscGVyKGVuZ2luZSlcbmNvbnN0IHsgZ2V0UGxheWVyLCBvbkVudGVyU2NlbmUsIG9uTGVhdmVTY2VuZSB9ID0gcGxheWVyc1xuXG5leHBvcnQgeyBnZXRQbGF5ZXIsIG9uRW50ZXJTY2VuZSwgb25MZWF2ZVNjZW5lIH1cbmV4cG9ydCBkZWZhdWx0IHBsYXllcnNcbiJdfQ==
|
|
@@ -41,10 +41,7 @@ export function createRendererTransport(engineApi: EngineApiForTransport): Trans
|
|
|
41
41
|
}
|
|
42
42
|
return !!message
|
|
43
43
|
},
|
|
44
|
-
type: 'renderer'
|
|
45
|
-
// The renderer/host is the authority for reserved-range entities (avatars,
|
|
46
|
-
// root/player/camera): it is the only transport allowed to mutate or delete them.
|
|
47
|
-
allowReservedEntities: true
|
|
44
|
+
type: 'renderer'
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
return rendererTransport
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { ReadWriteByteBuffer } from '@dcl/ecs/dist/serialization/ByteBuffer'
|
|
2
2
|
|
|
3
3
|
export enum CommsMessage {
|
|
4
|
-
CRDT =
|
|
5
|
-
REQ_CRDT_STATE =
|
|
6
|
-
RES_CRDT_STATE =
|
|
7
|
-
CRDT_SERVER = 4,
|
|
8
|
-
CRDT_AUTHORITATIVE = 5,
|
|
9
|
-
CUSTOM_EVENT = 6
|
|
4
|
+
CRDT = 1,
|
|
5
|
+
REQ_CRDT_STATE = 2,
|
|
6
|
+
RES_CRDT_STATE = 3
|
|
10
7
|
}
|
|
11
8
|
|
|
12
9
|
export function BinaryMessageBus<T extends CommsMessage>(
|
|
@@ -23,9 +20,7 @@ export function BinaryMessageBus<T extends CommsMessage>(
|
|
|
23
20
|
__processMessages: (messages: Uint8Array[]) => {
|
|
24
21
|
for (const message of messages) {
|
|
25
22
|
const commsMsg = decodeCommsMessage<T>(message)
|
|
26
|
-
if (!commsMsg)
|
|
27
|
-
continue
|
|
28
|
-
}
|
|
23
|
+
if (!commsMsg) continue
|
|
29
24
|
const { sender, messageType, data } = commsMsg
|
|
30
25
|
const fn = mapping.get(messageType)
|
|
31
26
|
if (fn) fn(data, sender)
|
package/src/network/index.ts
CHANGED
|
@@ -2,46 +2,9 @@ import { sendBinary } from '~system/CommunicationsController'
|
|
|
2
2
|
import { engine } from '@dcl/ecs'
|
|
3
3
|
import { addSyncTransport } from './message-bus-sync'
|
|
4
4
|
import { getUserData } from '~system/UserIdentity'
|
|
5
|
-
import { isServer as isServerApi } from '~system/EngineApi'
|
|
6
|
-
import { Atom } from '../atom'
|
|
7
|
-
|
|
8
|
-
// Create isServer atom for consistent state
|
|
9
|
-
const isServerAtom = Atom<boolean>(false)
|
|
10
|
-
void isServerApi({}).then((response) => {
|
|
11
|
-
isServerAtom.swap(!!response.isServer)
|
|
12
|
-
})
|
|
13
|
-
|
|
14
|
-
// Helper function to check if running on server
|
|
15
|
-
export function isServer(): boolean {
|
|
16
|
-
return isServerAtom.getOrNull() ?? false
|
|
17
|
-
}
|
|
18
5
|
|
|
19
6
|
// initialize sync transport for sdk engine
|
|
20
|
-
const {
|
|
21
|
-
|
|
22
|
-
syncEntity,
|
|
23
|
-
parentEntity,
|
|
24
|
-
getParent,
|
|
25
|
-
myProfile,
|
|
26
|
-
removeParent,
|
|
27
|
-
getFirstChild,
|
|
28
|
-
isStateSyncronized,
|
|
29
|
-
binaryMessageBus,
|
|
30
|
-
eventBus
|
|
31
|
-
} = addSyncTransport(engine, sendBinary, getUserData, isServerApi, 'network')
|
|
32
|
-
|
|
33
|
-
// Re-export the room messaging system
|
|
34
|
-
export { registerMessages, getRoom } from './events'
|
|
7
|
+
const { getChildren, syncEntity, parentEntity, getParent, myProfile, removeParent, getFirstChild, isStateSyncronized } =
|
|
8
|
+
addSyncTransport(engine, sendBinary, getUserData)
|
|
35
9
|
|
|
36
|
-
export {
|
|
37
|
-
getFirstChild,
|
|
38
|
-
getChildren,
|
|
39
|
-
syncEntity,
|
|
40
|
-
parentEntity,
|
|
41
|
-
getParent,
|
|
42
|
-
myProfile,
|
|
43
|
-
removeParent,
|
|
44
|
-
isStateSyncronized,
|
|
45
|
-
binaryMessageBus,
|
|
46
|
-
eventBus
|
|
47
|
-
}
|
|
10
|
+
export { getFirstChild, getChildren, syncEntity, parentEntity, getParent, myProfile, removeParent, isStateSyncronized }
|