@dcl/sdk 7.5.8-11036269524.commit-5e2fb86 → 7.5.8-11038473646.commit-b63a9c4
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/network/filter.js
CHANGED
@@ -1,10 +1,11 @@
|
|
1
|
-
import {
|
1
|
+
import { EntityUtils, RESERVED_STATIC_ENTITIES, CrdtMessageType, SyncComponents as _SyncComponents, NetworkEntity as _NetworkEntity, NetworkParent as _NetworkParent } from '@dcl/ecs';
|
2
|
+
import { NOT_SYNC_COMPONENTS_IDS } from './state';
|
2
3
|
export function syncFilter(engine) {
|
3
4
|
const NetworkEntity = engine.getComponent(_NetworkEntity.componentId);
|
4
5
|
const SyncComponents = engine.getComponent(_SyncComponents.componentId);
|
5
6
|
return function (message) {
|
6
7
|
const componentId = message.componentId;
|
7
|
-
if (
|
8
|
+
if (NOT_SYNC_COMPONENTS_IDS.includes(componentId)) {
|
8
9
|
return false;
|
9
10
|
}
|
10
11
|
const [entityId] = EntityUtils.fromEntityId(message.entityId);
|
@@ -38,4 +39,4 @@ export function syncFilter(engine) {
|
|
38
39
|
return false;
|
39
40
|
};
|
40
41
|
}
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25ldHdvcmsvZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixjQUFjLElBQUksZUFBZSxFQUNqQyxhQUFhLElBQUksY0FBYyxFQUMvQixhQUFhLElBQUksY0FBYyxFQUVoQyxNQUFNLFVBQVUsQ0FBQTtBQUNqQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFakQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFlO0lBQ3hDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBMEIsQ0FBQTtJQUM5RixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQTJCLENBQUE7SUFFakcsT0FBTyxVQUFVLE9BQWdEO1FBQy9ELE1BQU0sV0FBVyxHQUFJLE9BQWUsQ0FBQyxXQUFXLENBQUE7UUFFaEQsSUFBSSx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakQsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUU3RCwwQ0FBMEM7UUFDMUMsSUFBSSxRQUFRLEdBQUcsd0JBQXdCLEVBQUU7WUFDdkMsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3pELCtCQUErQjtRQUMvQixJQUNFLE9BQU8sQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLHFCQUFxQjtZQUN0RCxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFDM0Q7WUFDQSxPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDdkQsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUV2QixrQkFBa0I7UUFDbEIsSUFBSyxPQUFlLENBQUMsU0FBUyxJQUFJLENBQUMsRUFBRTtZQUNuQyxPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsSUFBSSxXQUFXLEtBQUssYUFBYSxDQUFDLFdBQVcsRUFBRTtZQUM3QyxPQUFPLEtBQUssQ0FBQTtTQUNiO1FBRUQscUZBQXFGO1FBQ3JGLElBQUksV0FBVyxLQUFLLGNBQWMsQ0FBQyxXQUFXLElBQUksV0FBVyxLQUFLLGNBQWMsQ0FBQyxXQUFXLEVBQUU7WUFDNUYsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELElBQUksV0FBVyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzFELE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUMsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBUcmFuc3BvcnRNZXNzYWdlLFxuICBFbnRpdHlVdGlscyxcbiAgUkVTRVJWRURfU1RBVElDX0VOVElUSUVTLFxuICBDcmR0TWVzc2FnZVR5cGUsXG4gIFN5bmNDb21wb25lbnRzIGFzIF9TeW5jQ29tcG9uZW50cyxcbiAgTmV0d29ya0VudGl0eSBhcyBfTmV0d29ya0VudGl0eSxcbiAgTmV0d29ya1BhcmVudCBhcyBfTmV0d29ya1BhcmVudCxcbiAgSUVuZ2luZVxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE5PVF9TWU5DX0NPTVBPTkVOVFNfSURTIH0gZnJvbSAnLi9zdGF0ZSdcblxuZXhwb3J0IGZ1bmN0aW9uIHN5bmNGaWx0ZXIoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IE5ldHdvcmtFbnRpdHkgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KF9OZXR3b3JrRW50aXR5LmNvbXBvbmVudElkKSBhcyB0eXBlb2YgX05ldHdvcmtFbnRpdHlcbiAgY29uc3QgU3luY0NvbXBvbmVudHMgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KF9TeW5jQ29tcG9uZW50cy5jb21wb25lbnRJZCkgYXMgdHlwZW9mIF9TeW5jQ29tcG9uZW50c1xuXG4gIHJldHVybiBmdW5jdGlvbiAobWVzc2FnZTogT21pdDxUcmFuc3BvcnRNZXNzYWdlLCAnbWVzc2FnZUJ1ZmZlcic+KSB7XG4gICAgY29uc3QgY29tcG9uZW50SWQgPSAobWVzc2FnZSBhcyBhbnkpLmNvbXBvbmVudElkXG5cbiAgICBpZiAoTk9UX1NZTkNfQ09NUE9ORU5UU19JRFMuaW5jbHVkZXMoY29tcG9uZW50SWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBjb25zdCBbZW50aXR5SWRdID0gRW50aXR5VXRpbHMuZnJvbUVudGl0eUlkKG1lc3NhZ2UuZW50aXR5SWQpXG5cbiAgICAvLyBmaWx0ZXIgbWVzc2FnZXMgZnJvbSByZXNlcnZlZCBlbnRpdGllcy5cbiAgICBpZiAoZW50aXR5SWQgPCBSRVNFUlZFRF9TVEFUSUNfRU5USVRJRVMpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IG5ldHdvcmsgPSBOZXR3b3JrRW50aXR5LmdldE9yTnVsbChtZXNzYWdlLmVudGl0eUlkKVxuICAgIC8vIERlbGV0ZSBOZXR3b3JrIEVudGl0eSBBbHdheXNcbiAgICBpZiAoXG4gICAgICBtZXNzYWdlLnR5cGUgPT09IENyZHRNZXNzYWdlVHlwZS5ERUxFVEVfRU5USVRZX05FVFdPUksgfHxcbiAgICAgIChuZXR3b3JrICYmIG1lc3NhZ2UudHlwZSA9PT0gQ3JkdE1lc3NhZ2VUeXBlLkRFTEVURV9FTlRJVFkpXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGNvbnN0IHN5bmMgPSBTeW5jQ29tcG9uZW50cy5nZXRPck51bGwobWVzc2FnZS5lbnRpdHlJZClcbiAgICBpZiAoIXN5bmMpIHJldHVybiBmYWxzZVxuXG4gICAgLy8gRmlyc3QgY29tcG9uZW50XG4gICAgaWYgKChtZXNzYWdlIGFzIGFueSkudGltZXN0YW1wIDw9IDEpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudElkID09PSBOZXR3b3JrRW50aXR5LmNvbXBvbmVudElkKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0aGUgbmV0d29yayBwYXJlbnQgb3Igc3luY0NvbXBvbmVudHMgd2Ugc2hvdWxkIGFsd2F5cyBzeW5jXG4gICAgaWYgKGNvbXBvbmVudElkID09PSBfTmV0d29ya1BhcmVudC5jb21wb25lbnRJZCB8fCBjb21wb25lbnRJZCA9PT0gU3luY0NvbXBvbmVudHMuY29tcG9uZW50SWQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGNvbXBvbmVudElkICYmIHN5bmMuY29tcG9uZW50SWRzLmluY2x1ZGVzKGNvbXBvbmVudElkKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxufVxuIl19
|
@@ -56,6 +56,7 @@ export function addSyncTransport(engine, sendBinary, getUserData) {
|
|
56
56
|
const players = definePlayerHelper(engine);
|
57
57
|
let requestCrdtStateWhenConnected = false;
|
58
58
|
players.onEnterScene((player) => {
|
59
|
+
DEBUG_NETWORK_MESSAGES() && console.log('[onEnterScene]', player.userId);
|
59
60
|
if (player.userId === myProfile.userId && !requestCrdtStateWhenConnected) {
|
60
61
|
if (RealmInfo.getOrNull(engine.RootEntity)?.isConnectedSceneRoom) {
|
61
62
|
DEBUG_NETWORK_MESSAGES() && console.log('Requesting state');
|
@@ -75,6 +76,7 @@ export function addSyncTransport(engine, sendBinary, getUserData) {
|
|
75
76
|
}
|
76
77
|
});
|
77
78
|
players.onLeaveScene((userId) => {
|
79
|
+
DEBUG_NETWORK_MESSAGES() && console.log('[onLeaveScene]', userId);
|
78
80
|
if (userId === myProfile.userId) {
|
79
81
|
requestCrdtStateWhenConnected = false;
|
80
82
|
}
|
@@ -119,4 +121,4 @@ function encodeCRDTState(address, data) {
|
|
119
121
|
serializedMessage.set(data, addressBuffer.byteLength + 1);
|
120
122
|
return serializedMessage;
|
121
123
|
}
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1idXMtc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXR3b3JrL21lc3NhZ2UtYnVzLXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFHckUsK0NBQStDO0FBQy9DLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsTUFBZSxFQUNmLFVBQW1FLEVBQ25FLFdBQXdFO0lBRXhFLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxFQUFFLENBQUUsVUFBa0IsQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUE7SUFDdkYsZUFBZTtJQUNmLE1BQU0sU0FBUyxHQUFhLEVBQWMsQ0FBQTtJQUMxQyxZQUFZLENBQUMsU0FBVSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBRXJDLGVBQWU7SUFDZixNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFeEQsbUVBQW1FO0lBQ25FLE1BQU0sK0JBQStCLEdBQWlCLEVBQUUsQ0FBQTtJQUN4RCxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQywrQkFB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QUUsQ0FBQyxDQUFDLENBQUE7SUFDdkMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3pELE9BQU8saUJBQWlCLENBQUE7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbmdpbmUsIFRyYW5zcG9ydCwgUmVhbG1JbmZvIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyB0eXBlIFNlbmRCaW5hcnlSZXF1ZXN0LCB0eXBlIFNlbmRCaW5hcnlSZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vQ29tbXVuaWNhdGlvbnNDb250cm9sbGVyJ1xuXG5pbXBvcnQgeyBzeW5jRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXInXG5pbXBvcnQgeyBlbmdpbmVUb0NyZHQgfSBmcm9tICcuL3N0YXRlJ1xuaW1wb3J0IHsgQmluYXJ5TWVzc2FnZUJ1cywgQ29tbXNNZXNzYWdlLCBkZWNvZGVTdHJpbmcsIGVuY29kZVN0cmluZyB9IGZyb20gJy4vYmluYXJ5LW1lc3NhZ2UtYnVzJ1xuaW1wb3J0IHsgZmV0Y2hQcm9maWxlIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IGVudGl0eVV0aWxzIH0gZnJvbSAnLi9lbnRpdGllcydcbmltcG9ydCB7IEdldFVzZXJEYXRhUmVxdWVzdCwgR2V0VXNlckRhdGFSZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vVXNlcklkZW50aXR5J1xuaW1wb3J0IHsgZGVmaW5lUGxheWVySGVscGVyIH0gZnJvbSAnLi4vcGxheWVycydcbmltcG9ydCB7IHNlcmlhbGl6ZUNyZHRNZXNzYWdlcyB9IGZyb20gJy4uL2ludGVybmFsL3RyYW5zcG9ydHMvbG9nZ2VyJ1xuXG5leHBvcnQgdHlwZSBJUHJvZmlsZSA9IHsgbmV0d29ya0lkOiBudW1iZXI7IHVzZXJJZDogc3RyaW5nIH1cbi8vIHVzZXIgdGhhdCB3ZSBhc2tlZCBmb3IgdGhlIGluaXRhbCBjcmR0IHN0YXRlXG5leHBvcnQgZnVuY3Rpb24gYWRkU3luY1RyYW5zcG9ydChcbiAgZW5naW5lOiBJRW5naW5lLFxuICBzZW5kQmluYXJ5OiAobXNnOiBTZW5kQmluYXJ5UmVxdWVzdCkgPT4gUHJvbWlzZTxTZW5kQmluYXJ5UmVzcG9uc2U+LFxuICBnZXRVc2VyRGF0YTogKHZhbHVlOiBHZXRVc2VyRGF0YVJlcXVlc3QpID0+IFByb21pc2U8R2V0VXNlckRhdGFSZXNwb25zZT5cbikge1xuICBjb25zdCBERUJVR19ORVRXT1JLX01FU1NBR0VTID0gKCkgPT4gKGdsb2JhbFRoaXMgYXMgYW55KS5ERUJVR19ORVRXT1JLX01FU1NBR0VTID8/IHRydWVcbiAgLy8gUHJvZmlsZSBJbmZvXG4gIGNvbnN0IG15UHJvZmlsZTogSVByb2ZpbGUgPSB7fSBhcyBJUHJvZmlsZVxuICBmZXRjaFByb2ZpbGUobXlQcm9maWxlISwgZ2V0VXNlckRhdGEpXG5cbiAgLy8gRW50aXR5IHV0aWxzXG4gIGNvbnN0IGVudGl0eURlZmluaXRpb25zID0gZW50aXR5VXRpbHMoZW5naW5lLCBteVByb2ZpbGUpXG5cbiAgLy8gTGlzdCBvZiBNZXNzYWdlQnVzcyBtZXNzc2FnZXMgdG8gYmUgc2VudCBvbiBldmVyeSBmcmFtZSB0byBjb21tc1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZUJ1c01lc3NhZ2VzVG9TZW5kOiBVaW50OEFycmF5W10gPSBbXVxuICBjb25zdCBiaW5hcnlNZXNzYWdlQnVzID0gQmluYXJ5TWVzc2FnZUJ1cygobWVzc2FnZSkgPT4gcGVuZGluZ01lc3NhZ2VCdXNNZXNzYWdlc1RvU2VuZC5wdXNoKG1lc3NhZ2UpKVxuXG4gIGZ1bmN0aW9uIGdldE1lc3NhZ2VzVG9TZW5kKCkge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gWy4uLnBlbmRpbmdNZXNzYWdlQnVzTWVzc2FnZXNUb1NlbmRdXG4gICAgcGVuZGluZ01lc3NhZ2VCdXNNZXNzYWdlc1RvU2VuZC5sZW5ndGggPSAwXG4gICAgcmV0dXJuIG1lc3NhZ2VzXG4gIH1cblxuICBsZXQgdHJhbnNwb3J0SW5pdGlhbHplZCA9IGZhbHNlXG4gIC8vIEFkZCBTeW5jIFRyYW5zcG9ydFxuICBjb25zdCB0cmFuc3BvcnQ6IFRyYW5zcG9ydCA9IHtcbiAgICBmaWx0ZXI6IHN5bmNGaWx0ZXIoZW5naW5lKSxcbiAgICBzZW5kOiBhc3luYyAobWVzc2FnZTogVWludDhBcnJheSkgPT4ge1xuICAgICAgaWYgKG1lc3NhZ2UuYnl0ZUxlbmd0aCAmJiB0cmFuc3BvcnRJbml0aWFsemVkKSB7XG4gICAgICAgIERFQlVHX05FVFdPUktfTUVTU0FHRVMoKSAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKC4uLkFycmF5LmZyb20oc2VyaWFsaXplQ3JkdE1lc3NhZ2VzKCdbTmV0d29ya01lc3NhZ2Ugc2VudF06JywgbWVzc2FnZSwgZW5naW5lKSkpXG4gICAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuZW1pdChDb21tc01lc3NhZ2UuQ1JEVCwgbWVzc2FnZSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gZ2V0TWVzc2FnZXNUb1NlbmQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZW5kQmluYXJ5KHsgZGF0YTogbWVzc2FnZXMgfSlcbiAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuX19wcm9jZXNzTWVzc2FnZXMocmVzcG9uc2UuZGF0YSlcbiAgICAgIHRyYW5zcG9ydEluaXRpYWx6ZWQgPSB0cnVlXG4gICAgfSxcbiAgICB0eXBlOiAnbmV0d29yaydcbiAgfVxuICBlbmdpbmUuYWRkVHJhbnNwb3J0KHRyYW5zcG9ydClcbiAgLy8gRW5kIGFkZCBzeW5jIHRyYW5zcG9ydFxuXG4gIC8vIElmIHdlIGRvbnQgaGF2ZSBhbnkgc3RhdGUgaW5pdGlhbGl6ZWQsIGFuZCByZWNpZXZlIGEgc3RhdGUgbWVzc2FnZS5cbiAgYmluYXJ5TWVzc2FnZUJ1cy5vbihDb21tc01lc3NhZ2UuUkVTX0NSRFRfU1RBVEUsICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgc2VuZGVyLCBkYXRhIH0gPSBkZWNvZGVDUkRUU3RhdGUodmFsdWUpXG4gICAgaWYgKHNlbmRlciAhPT0gbXlQcm9maWxlLnVzZXJJZCkgcmV0dXJuXG4gICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdbUHJvY2Vzc2luZyBDUkRUIFN0YXRlXScsIGRhdGEuYnl0ZUxlbmd0aClcbiAgICB0cmFuc3BvcnQub25tZXNzYWdlIShkYXRhKVxuICB9KVxuXG4gIGJpbmFyeU1lc3NhZ2VCdXMub24oQ29tbXNNZXNzYWdlLlJFUV9DUkRUX1NUQVRFLCAobWVzc2FnZSwgdXNlcklkKSA9PiB7XG4gICAgdHJhbnNwb3J0Lm9ubWVzc2FnZSEobWVzc2FnZSlcbiAgICBiaW5hcnlNZXNzYWdlQnVzLmVtaXQoQ29tbXNNZXNzYWdlLlJFU19DUkRUX1NUQVRFLCBlbmNvZGVDUkRUU3RhdGUodXNlcklkLCBlbmdpbmVUb0NyZHQoZW5naW5lKSkpXG4gIH0pXG5cbiAgY29uc3QgcGxheWVycyA9IGRlZmluZVBsYXllckhlbHBlcihlbmdpbmUpXG5cbiAgbGV0IHJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkID0gZmFsc2VcblxuICBwbGF5ZXJzLm9uRW50ZXJTY2VuZSgocGxheWVyKSA9PiB7XG4gICAgaWYgKHBsYXllci51c2VySWQgPT09IG15UHJvZmlsZS51c2VySWQgJiYgIXJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoUmVhbG1JbmZvLmdldE9yTnVsbChlbmdpbmUuUm9vdEVudGl0eSk/LmlzQ29ubmVjdGVkU2NlbmVSb29tKSB7XG4gICAgICAgIERFQlVHX05FVFdPUktfTUVTU0FHRVMoKSAmJiBjb25zb2xlLmxvZygnUmVxdWVzdGluZyBzdGF0ZScpXG4gICAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuZW1pdChDb21tc01lc3NhZ2UuUkVRX0NSRFRfU1RBVEUsIGVuZ2luZVRvQ3JkdChlbmdpbmUpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdXYWl0aW5nIHRvIGJlIGNvbm5ldGVkJylcbiAgICAgICAgcmVxdWVzdENyZHRTdGF0ZVdoZW5Db25uZWN0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIFJlYWxtSW5mby5vbkNoYW5nZShlbmdpbmUuUm9vdEVudGl0eSwgKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlPy5pc0Nvbm5lY3RlZFNjZW5lUm9vbSAmJiByZXF1ZXN0Q3JkdFN0YXRlV2hlbkNvbm5lY3RlZCkge1xuICAgICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIHN0YXRlLicpXG4gICAgICByZXF1ZXN0Q3JkdFN0YXRlV2hlbkNvbm5lY3RlZCA9IGZhbHNlXG4gICAgICBiaW5hcnlNZXNzYWdlQnVzLmVtaXQoQ29tbXNNZXNzYWdlLlJFUV9DUkRUX1NUQVRFLCBlbmdpbmVUb0NyZHQoZW5naW5lKSlcbiAgICB9XG4gIH0pXG5cbiAgcGxheWVycy5vbkxlYXZlU2NlbmUoKHVzZXJJZCkgPT4ge1xuICAgIGlmICh1c2VySWQgPT09IG15UHJvZmlsZS51c2VySWQpIHtcbiAgICAgIHJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkID0gZmFsc2VcbiAgICB9XG4gIH0pXG5cbiAgLy8gUHJvY2VzcyBDUkRUIG1lc3NhZ2VzIGhlcmVcbiAgYmluYXJ5TWVzc2FnZUJ1cy5vbihDb21tc01lc3NhZ2UuQ1JEVCwgKHZhbHVlKSA9PiB7XG4gICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmXG4gICAgICBjb25zb2xlLmxvZyhBcnJheS5mcm9tKHNlcmlhbGl6ZUNyZHRNZXNzYWdlcygnW05ldHdvcmtNZXNzYWdlIHJlY2VpdmVkXTonLCB2YWx1ZSwgZW5naW5lKSkpXG4gICAgdHJhbnNwb3J0Lm9ubWVzc2FnZSEodmFsdWUpXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICAuLi5lbnRpdHlEZWZpbml0aW9ucyxcbiAgICBteVByb2ZpbGVcbiAgfVxufVxuXG4vKipcbiAqIE1lc3NhZ2VzIFByb3RvY29sIEVuY29kaW5nXG4gKlxuICogQ1JEVDogUGxhaW4gVWludDhBcnJheVxuICpcbiAqIENSRFRfU1RBVEVfUkVTIHsgc2VuZGVyOiBzdHJpbmcsIGRhdGE6IFVpbnQ4QXJyYXl9XG4gKi9cbmZ1bmN0aW9uIGRlY29kZUNSRFRTdGF0ZShkYXRhOiBVaW50OEFycmF5KSB7XG4gIGxldCBvZmZzZXQgPSAwXG4gIGNvbnN0IHIgPSBuZXcgVWludDhBcnJheShkYXRhKVxuICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KHIuYnVmZmVyKVxuICBjb25zdCBzZW5kZXJMZW5ndGggPSB2aWV3LmdldFVpbnQ4KG9mZnNldClcbiAgb2Zmc2V0ICs9IDFcbiAgY29uc3Qgc2VuZGVyID0gZGVjb2RlU3RyaW5nKGRhdGEuc3ViYXJyYXkoMSwgc2VuZGVyTGVuZ3RoICsgMSkpXG4gIG9mZnNldCArPSBzZW5kZXJMZW5ndGhcbiAgY29uc3Qgc3RhdGUgPSByLnN1YmFycmF5KG9mZnNldClcblxuICByZXR1cm4geyBzZW5kZXIsIGRhdGE6IHN0YXRlIH1cbn1cblxuZnVuY3Rpb24gZW5jb2RlQ1JEVFN0YXRlKGFkZHJlc3M6IHN0cmluZywgZGF0YTogVWludDhBcnJheSkge1xuICAvLyBhZGRyZXNzIHRvIHVpbnQ4YXJyYXlcbiAgY29uc3QgYWRkcmVzc0J1ZmZlciA9IGVuY29kZVN0cmluZyhhZGRyZXNzKVxuICBjb25zdCBhZGRyZXNzT2Zmc2V0ID0gMVxuICBjb25zdCBtZXNzYWdlTGVuZ3RoID0gYWRkcmVzc09mZnNldCArIGFkZHJlc3NCdWZmZXIuYnl0ZUxlbmd0aCArIGRhdGEuYnl0ZUxlbmd0aFxuXG4gIGNvbnN0IHNlcmlhbGl6ZWRNZXNzYWdlID0gbmV3IFVpbnQ4QXJyYXkobWVzc2FnZUxlbmd0aClcbiAgc2VyaWFsaXplZE1lc3NhZ2Uuc2V0KG5ldyBVaW50OEFycmF5KFthZGRyZXNzQnVmZmVyLmJ5dGVMZW5ndGhdKSwgMClcbiAgc2VyaWFsaXplZE1lc3NhZ2Uuc2V0KGFkZHJlc3NCdWZmZXIsIDEpXG4gIHNlcmlhbGl6ZWRNZXNzYWdlLnNldChkYXRhLCBhZGRyZXNzQnVmZmVyLmJ5dGVMZW5ndGggKyAxKVxuICByZXR1cm4gc2VyaWFsaXplZE1lc3NhZ2Vcbn1cbiJdfQ==
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1idXMtc3luYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9uZXR3b3JrL21lc3NhZ2UtYnVzLXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFHckUsK0NBQStDO0FBQy9DLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsTUFBZSxFQUNmLFVBQW1FLEVBQ25FLFdBQXdFO0lBRXhFLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxFQUFFLENBQUUsVUFBa0IsQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUE7SUFDdkYsZUFBZTtJQUNmLE1BQU0sU0FBUyxHQUFhLEVBQWMsQ0FBQTtJQUMxQyxZQUFZLENBQUMsU0FBVSxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBRXJDLGVBQWU7SUFDZixNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFeEQsbUVBQW1FO0lBQ25FLE1BQU0sK0JBQStCLEdBQWlCLEVBQUUsQ0FBQTtJQUN4RCxNQUFNLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQywrQkFB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VSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ3ZELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3BFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdkMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3pELE9BQU8saUJBQWlCLENBQUE7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFbmdpbmUsIFRyYW5zcG9ydCwgUmVhbG1JbmZvIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyB0eXBlIFNlbmRCaW5hcnlSZXF1ZXN0LCB0eXBlIFNlbmRCaW5hcnlSZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vQ29tbXVuaWNhdGlvbnNDb250cm9sbGVyJ1xuXG5pbXBvcnQgeyBzeW5jRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXInXG5pbXBvcnQgeyBlbmdpbmVUb0NyZHQgfSBmcm9tICcuL3N0YXRlJ1xuaW1wb3J0IHsgQmluYXJ5TWVzc2FnZUJ1cywgQ29tbXNNZXNzYWdlLCBkZWNvZGVTdHJpbmcsIGVuY29kZVN0cmluZyB9IGZyb20gJy4vYmluYXJ5LW1lc3NhZ2UtYnVzJ1xuaW1wb3J0IHsgZmV0Y2hQcm9maWxlIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IGVudGl0eVV0aWxzIH0gZnJvbSAnLi9lbnRpdGllcydcbmltcG9ydCB7IEdldFVzZXJEYXRhUmVxdWVzdCwgR2V0VXNlckRhdGFSZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vVXNlcklkZW50aXR5J1xuaW1wb3J0IHsgZGVmaW5lUGxheWVySGVscGVyIH0gZnJvbSAnLi4vcGxheWVycydcbmltcG9ydCB7IHNlcmlhbGl6ZUNyZHRNZXNzYWdlcyB9IGZyb20gJy4uL2ludGVybmFsL3RyYW5zcG9ydHMvbG9nZ2VyJ1xuXG5leHBvcnQgdHlwZSBJUHJvZmlsZSA9IHsgbmV0d29ya0lkOiBudW1iZXI7IHVzZXJJZDogc3RyaW5nIH1cbi8vIHVzZXIgdGhhdCB3ZSBhc2tlZCBmb3IgdGhlIGluaXRhbCBjcmR0IHN0YXRlXG5leHBvcnQgZnVuY3Rpb24gYWRkU3luY1RyYW5zcG9ydChcbiAgZW5naW5lOiBJRW5naW5lLFxuICBzZW5kQmluYXJ5OiAobXNnOiBTZW5kQmluYXJ5UmVxdWVzdCkgPT4gUHJvbWlzZTxTZW5kQmluYXJ5UmVzcG9uc2U+LFxuICBnZXRVc2VyRGF0YTogKHZhbHVlOiBHZXRVc2VyRGF0YVJlcXVlc3QpID0+IFByb21pc2U8R2V0VXNlckRhdGFSZXNwb25zZT5cbikge1xuICBjb25zdCBERUJVR19ORVRXT1JLX01FU1NBR0VTID0gKCkgPT4gKGdsb2JhbFRoaXMgYXMgYW55KS5ERUJVR19ORVRXT1JLX01FU1NBR0VTID8/IHRydWVcbiAgLy8gUHJvZmlsZSBJbmZvXG4gIGNvbnN0IG15UHJvZmlsZTogSVByb2ZpbGUgPSB7fSBhcyBJUHJvZmlsZVxuICBmZXRjaFByb2ZpbGUobXlQcm9maWxlISwgZ2V0VXNlckRhdGEpXG5cbiAgLy8gRW50aXR5IHV0aWxzXG4gIGNvbnN0IGVudGl0eURlZmluaXRpb25zID0gZW50aXR5VXRpbHMoZW5naW5lLCBteVByb2ZpbGUpXG5cbiAgLy8gTGlzdCBvZiBNZXNzYWdlQnVzcyBtZXNzc2FnZXMgdG8gYmUgc2VudCBvbiBldmVyeSBmcmFtZSB0byBjb21tc1xuICBjb25zdCBwZW5kaW5nTWVzc2FnZUJ1c01lc3NhZ2VzVG9TZW5kOiBVaW50OEFycmF5W10gPSBbXVxuICBjb25zdCBiaW5hcnlNZXNzYWdlQnVzID0gQmluYXJ5TWVzc2FnZUJ1cygobWVzc2FnZSkgPT4gcGVuZGluZ01lc3NhZ2VCdXNNZXNzYWdlc1RvU2VuZC5wdXNoKG1lc3NhZ2UpKVxuXG4gIGZ1bmN0aW9uIGdldE1lc3NhZ2VzVG9TZW5kKCkge1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gWy4uLnBlbmRpbmdNZXNzYWdlQnVzTWVzc2FnZXNUb1NlbmRdXG4gICAgcGVuZGluZ01lc3NhZ2VCdXNNZXNzYWdlc1RvU2VuZC5sZW5ndGggPSAwXG4gICAgcmV0dXJuIG1lc3NhZ2VzXG4gIH1cblxuICBsZXQgdHJhbnNwb3J0SW5pdGlhbHplZCA9IGZhbHNlXG4gIC8vIEFkZCBTeW5jIFRyYW5zcG9ydFxuICBjb25zdCB0cmFuc3BvcnQ6IFRyYW5zcG9ydCA9IHtcbiAgICBmaWx0ZXI6IHN5bmNGaWx0ZXIoZW5naW5lKSxcbiAgICBzZW5kOiBhc3luYyAobWVzc2FnZTogVWludDhBcnJheSkgPT4ge1xuICAgICAgaWYgKG1lc3NhZ2UuYnl0ZUxlbmd0aCAmJiB0cmFuc3BvcnRJbml0aWFsemVkKSB7XG4gICAgICAgIERFQlVHX05FVFdPUktfTUVTU0FHRVMoKSAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKC4uLkFycmF5LmZyb20oc2VyaWFsaXplQ3JkdE1lc3NhZ2VzKCdbTmV0d29ya01lc3NhZ2Ugc2VudF06JywgbWVzc2FnZSwgZW5naW5lKSkpXG4gICAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuZW1pdChDb21tc01lc3NhZ2UuQ1JEVCwgbWVzc2FnZSlcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gZ2V0TWVzc2FnZXNUb1NlbmQoKVxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZW5kQmluYXJ5KHsgZGF0YTogbWVzc2FnZXMgfSlcbiAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuX19wcm9jZXNzTWVzc2FnZXMocmVzcG9uc2UuZGF0YSlcbiAgICAgIHRyYW5zcG9ydEluaXRpYWx6ZWQgPSB0cnVlXG4gICAgfSxcbiAgICB0eXBlOiAnbmV0d29yaydcbiAgfVxuICBlbmdpbmUuYWRkVHJhbnNwb3J0KHRyYW5zcG9ydClcbiAgLy8gRW5kIGFkZCBzeW5jIHRyYW5zcG9ydFxuXG4gIC8vIElmIHdlIGRvbnQgaGF2ZSBhbnkgc3RhdGUgaW5pdGlhbGl6ZWQsIGFuZCByZWNpZXZlIGEgc3RhdGUgbWVzc2FnZS5cbiAgYmluYXJ5TWVzc2FnZUJ1cy5vbihDb21tc01lc3NhZ2UuUkVTX0NSRFRfU1RBVEUsICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHsgc2VuZGVyLCBkYXRhIH0gPSBkZWNvZGVDUkRUU3RhdGUodmFsdWUpXG4gICAgaWYgKHNlbmRlciAhPT0gbXlQcm9maWxlLnVzZXJJZCkgcmV0dXJuXG4gICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdbUHJvY2Vzc2luZyBDUkRUIFN0YXRlXScsIGRhdGEuYnl0ZUxlbmd0aClcbiAgICB0cmFuc3BvcnQub25tZXNzYWdlIShkYXRhKVxuICB9KVxuXG4gIGJpbmFyeU1lc3NhZ2VCdXMub24oQ29tbXNNZXNzYWdlLlJFUV9DUkRUX1NUQVRFLCAobWVzc2FnZSwgdXNlcklkKSA9PiB7XG4gICAgdHJhbnNwb3J0Lm9ubWVzc2FnZSEobWVzc2FnZSlcbiAgICBiaW5hcnlNZXNzYWdlQnVzLmVtaXQoQ29tbXNNZXNzYWdlLlJFU19DUkRUX1NUQVRFLCBlbmNvZGVDUkRUU3RhdGUodXNlcklkLCBlbmdpbmVUb0NyZHQoZW5naW5lKSkpXG4gIH0pXG5cbiAgY29uc3QgcGxheWVycyA9IGRlZmluZVBsYXllckhlbHBlcihlbmdpbmUpXG5cbiAgbGV0IHJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkID0gZmFsc2VcblxuICBwbGF5ZXJzLm9uRW50ZXJTY2VuZSgocGxheWVyKSA9PiB7XG4gICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdbb25FbnRlclNjZW5lXScsIHBsYXllci51c2VySWQpXG4gICAgaWYgKHBsYXllci51c2VySWQgPT09IG15UHJvZmlsZS51c2VySWQgJiYgIXJlcXVlc3RDcmR0U3RhdGVXaGVuQ29ubmVjdGVkKSB7XG4gICAgICBpZiAoUmVhbG1JbmZvLmdldE9yTnVsbChlbmdpbmUuUm9vdEVudGl0eSk/LmlzQ29ubmVjdGVkU2NlbmVSb29tKSB7XG4gICAgICAgIERFQlVHX05FVFdPUktfTUVTU0FHRVMoKSAmJiBjb25zb2xlLmxvZygnUmVxdWVzdGluZyBzdGF0ZScpXG4gICAgICAgIGJpbmFyeU1lc3NhZ2VCdXMuZW1pdChDb21tc01lc3NhZ2UuUkVRX0NSRFRfU1RBVEUsIGVuZ2luZVRvQ3JkdChlbmdpbmUpKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdXYWl0aW5nIHRvIGJlIGNvbm5ldGVkJylcbiAgICAgICAgcmVxdWVzdENyZHRTdGF0ZVdoZW5Db25uZWN0ZWQgPSB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIFJlYWxtSW5mby5vbkNoYW5nZShlbmdpbmUuUm9vdEVudGl0eSwgKHZhbHVlKSA9PiB7XG4gICAgaWYgKHZhbHVlPy5pc0Nvbm5lY3RlZFNjZW5lUm9vbSAmJiByZXF1ZXN0Q3JkdFN0YXRlV2hlbkNvbm5lY3RlZCkge1xuICAgICAgREVCVUdfTkVUV09SS19NRVNTQUdFUygpICYmIGNvbnNvbGUubG9nKCdSZXF1ZXN0aW5nIHN0YXRlLicpXG4gICAgICByZXF1ZXN0Q3JkdFN0YXRlV2hlbkNvbm5lY3RlZCA9IGZhbHNlXG4gICAgICBiaW5hcnlNZXNzYWdlQnVzLmVtaXQoQ29tbXNNZXNzYWdlLlJFUV9DUkRUX1NUQVRFLCBlbmdpbmVUb0NyZHQoZW5naW5lKSlcbiAgICB9XG4gIH0pXG5cbiAgcGxheWVycy5vbkxlYXZlU2NlbmUoKHVzZXJJZCkgPT4ge1xuICAgIERFQlVHX05FVFdPUktfTUVTU0FHRVMoKSAmJiBjb25zb2xlLmxvZygnW29uTGVhdmVTY2VuZV0nLCB1c2VySWQpXG4gICAgaWYgKHVzZXJJZCA9PT0gbXlQcm9maWxlLnVzZXJJZCkge1xuICAgICAgcmVxdWVzdENyZHRTdGF0ZVdoZW5Db25uZWN0ZWQgPSBmYWxzZVxuICAgIH1cbiAgfSlcblxuICAvLyBQcm9jZXNzIENSRFQgbWVzc2FnZXMgaGVyZVxuICBiaW5hcnlNZXNzYWdlQnVzLm9uKENvbW1zTWVzc2FnZS5DUkRULCAodmFsdWUpID0+IHtcbiAgICBERUJVR19ORVRXT1JLX01FU1NBR0VTKCkgJiZcbiAgICAgIGNvbnNvbGUubG9nKEFycmF5LmZyb20oc2VyaWFsaXplQ3JkdE1lc3NhZ2VzKCdbTmV0d29ya01lc3NhZ2UgcmVjZWl2ZWRdOicsIHZhbHVlLCBlbmdpbmUpKSlcbiAgICB0cmFuc3BvcnQub25tZXNzYWdlISh2YWx1ZSlcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIC4uLmVudGl0eURlZmluaXRpb25zLFxuICAgIG15UHJvZmlsZVxuICB9XG59XG5cbi8qKlxuICogTWVzc2FnZXMgUHJvdG9jb2wgRW5jb2RpbmdcbiAqXG4gKiBDUkRUOiBQbGFpbiBVaW50OEFycmF5XG4gKlxuICogQ1JEVF9TVEFURV9SRVMgeyBzZW5kZXI6IHN0cmluZywgZGF0YTogVWludDhBcnJheX1cbiAqL1xuZnVuY3Rpb24gZGVjb2RlQ1JEVFN0YXRlKGRhdGE6IFVpbnQ4QXJyYXkpIHtcbiAgbGV0IG9mZnNldCA9IDBcbiAgY29uc3QgciA9IG5ldyBVaW50OEFycmF5KGRhdGEpXG4gIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcoci5idWZmZXIpXG4gIGNvbnN0IHNlbmRlckxlbmd0aCA9IHZpZXcuZ2V0VWludDgob2Zmc2V0KVxuICBvZmZzZXQgKz0gMVxuICBjb25zdCBzZW5kZXIgPSBkZWNvZGVTdHJpbmcoZGF0YS5zdWJhcnJheSgxLCBzZW5kZXJMZW5ndGggKyAxKSlcbiAgb2Zmc2V0ICs9IHNlbmRlckxlbmd0aFxuICBjb25zdCBzdGF0ZSA9IHIuc3ViYXJyYXkob2Zmc2V0KVxuXG4gIHJldHVybiB7IHNlbmRlciwgZGF0YTogc3RhdGUgfVxufVxuXG5mdW5jdGlvbiBlbmNvZGVDUkRUU3RhdGUoYWRkcmVzczogc3RyaW5nLCBkYXRhOiBVaW50OEFycmF5KSB7XG4gIC8vIGFkZHJlc3MgdG8gdWludDhhcnJheVxuICBjb25zdCBhZGRyZXNzQnVmZmVyID0gZW5jb2RlU3RyaW5nKGFkZHJlc3MpXG4gIGNvbnN0IGFkZHJlc3NPZmZzZXQgPSAxXG4gIGNvbnN0IG1lc3NhZ2VMZW5ndGggPSBhZGRyZXNzT2Zmc2V0ICsgYWRkcmVzc0J1ZmZlci5ieXRlTGVuZ3RoICsgZGF0YS5ieXRlTGVuZ3RoXG5cbiAgY29uc3Qgc2VyaWFsaXplZE1lc3NhZ2UgPSBuZXcgVWludDhBcnJheShtZXNzYWdlTGVuZ3RoKVxuICBzZXJpYWxpemVkTWVzc2FnZS5zZXQobmV3IFVpbnQ4QXJyYXkoW2FkZHJlc3NCdWZmZXIuYnl0ZUxlbmd0aF0pLCAwKVxuICBzZXJpYWxpemVkTWVzc2FnZS5zZXQoYWRkcmVzc0J1ZmZlciwgMSlcbiAgc2VyaWFsaXplZE1lc3NhZ2Uuc2V0KGRhdGEsIGFkZHJlc3NCdWZmZXIuYnl0ZUxlbmd0aCArIDEpXG4gIHJldHVybiBzZXJpYWxpemVkTWVzc2FnZVxufVxuIl19
|
package/network/state.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
1
|
import { IEngine } from '@dcl/ecs';
|
2
2
|
export declare const NOT_SYNC_COMPONENTS: (import("@dcl/ecs").AudioSourceComponentDefinitionExtended | import("@dcl/ecs").GrowOnlyValueSetComponentDefinition<import("@dcl/ecs").PBAudioEvent> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBEngineInfo> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBGltfContainerLoadingState> | import("@dcl/ecs").GrowOnlyValueSetComponentDefinition<import("@dcl/ecs").PBPointerEventsResult> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBRaycastResult> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBRealmInfo> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBTweenState> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBUiDropdown> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBUiDropdownResult> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBUiInput> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBUiInputResult> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBUiText> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBUiTransform> | import("@dcl/ecs").GrowOnlyValueSetComponentDefinition<import("@dcl/ecs").PBVideoEvent> | import("@dcl/ecs").LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").PBVideoPlayer>)[];
|
3
|
+
export declare const NOT_SYNC_COMPONENTS_IDS: number[];
|
3
4
|
export declare function engineToCrdt(engine: IEngine): Uint8Array;
|
package/network/state.js
CHANGED
@@ -18,7 +18,7 @@ export const NOT_SYNC_COMPONENTS = [
|
|
18
18
|
UiTransform,
|
19
19
|
UiText
|
20
20
|
];
|
21
|
-
const NOT_SYNC_COMPONENTS_IDS = NOT_SYNC_COMPONENTS.map(($) => $.componentId);
|
21
|
+
export const NOT_SYNC_COMPONENTS_IDS = NOT_SYNC_COMPONENTS.map(($) => $.componentId);
|
22
22
|
export function engineToCrdt(engine) {
|
23
23
|
const crdtBuffer = new ReadWriteByteBuffer();
|
24
24
|
const networkBuffer = new ReadWriteByteBuffer();
|
@@ -50,4 +50,4 @@ export function engineToCrdt(engine) {
|
|
50
50
|
}
|
51
51
|
return networkBuffer.toBinary();
|
52
52
|
}
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV0d29yay9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGVBQWUsRUFFZixxQkFBcUIsRUFDckIsNEJBQTRCLEVBRTVCLGFBQWEsSUFBSSxjQUFjLEVBRS9CLFVBQVUsRUFDVixVQUFVLEVBQ1YsV0FBVyxFQUNYLFVBQVUsRUFDVix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsT0FBTyxFQUNQLGFBQWEsRUFDYixNQUFNLEVBQ04sV0FBVyxFQUNYLFdBQVcsRUFDWixNQUFNLFVBQVUsQ0FBQTtBQUVqQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxVQUFVO0lBQ1YsV0FBVztJQUNYLFVBQVU7SUFDVixVQUFVO0lBQ1YsV0FBVztJQUNYLFVBQVU7SUFDVix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixTQUFTO0lBQ1QsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixPQUFPO0lBQ1AsYUFBYTtJQUNiLFdBQVc7SUFDWCxNQUFNO0NBQ1AsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBRXBGLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBZTtJQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUE7SUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFBO0lBQy9DLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBbUIsQ0FBQTtJQUV2RixLQUFLLE1BQU0scUJBQXFCLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFO1FBQzNELElBQUksdUJBQXVCLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZFLFNBQVE7U0FDVDtRQUNELHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pFLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDakQsT0FBTyxlQUFlLENBQUE7UUFDeEIsQ0FBQyxDQUFDLENBQUE7S0FDSDtJQUVELElBQUksTUFBZ0MsQ0FBQTtJQUNwQyxPQUFPLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO1FBQzNELElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsYUFBYSxFQUFFO1lBQ2pELE1BQU0sT0FBTyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUUsQ0FBQTtZQUN2RCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUMvRCxJQUFJLGFBQWEsRUFBRTtnQkFDakIsNEJBQTRCLENBQUMsS0FBSyxDQUNoQyxhQUFhLENBQUMsUUFBUSxFQUN0QixPQUFPLENBQUMsU0FBUyxFQUNqQixPQUFPLENBQUMsV0FBVyxFQUNuQixhQUFhLENBQUMsU0FBUyxFQUN2QixPQUFPLENBQUMsSUFBSSxFQUNaLGFBQWEsQ0FDZCxDQUFBO2FBQ0Y7aUJBQU07Z0JBQ0wscUJBQXFCLENBQUMsS0FBSyxDQUN6QixPQUFPLENBQUMsUUFBUSxFQUNoQixPQUFPLENBQUMsU0FBUyxFQUNqQixPQUFPLENBQUMsV0FBVyxFQUNuQixPQUFPLENBQUMsSUFBSSxFQUNaLGFBQWEsQ0FDZCxDQUFBO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsVUFBVSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUM5QztLQUNGO0lBRUQsT0FBTyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUE7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWRXcml0ZUJ5dGVCdWZmZXIgfSBmcm9tICdAZGNsL2Vjcy9kaXN0L3NlcmlhbGl6YXRpb24vQnl0ZUJ1ZmZlcidcbmltcG9ydCB7XG4gIENyZHRNZXNzYWdlSGVhZGVyLFxuICBDcmR0TWVzc2FnZVByb3RvY29sLFxuICBDcmR0TWVzc2FnZVR5cGUsXG4gIElFbmdpbmUsXG4gIFB1dENvbXBvbmVudE9wZXJhdGlvbixcbiAgUHV0TmV0d29ya0NvbXBvbmVudE9wZXJhdGlvbixcbiAgU3luY0NvbXBvbmVudHMgYXMgX1N5bmNDb21wb25lbnRzLFxuICBOZXR3b3JrRW50aXR5IGFzIF9OZXR3b3JrRW50aXR5LFxuICBJTmV0b3dya0VudGl0eSxcbiAgVmlkZW9FdmVudCxcbiAgQXVkaW9FdmVudCxcbiAgQXVkaW9Tb3VyY2UsXG4gIEVuZ2luZUluZm8sXG4gIEdsdGZDb250YWluZXJMb2FkaW5nU3RhdGUsXG4gIFBvaW50ZXJFdmVudHNSZXN1bHQsXG4gIFJheWNhc3RSZXN1bHQsXG4gIFJlYWxtSW5mbyxcbiAgVHdlZW5TdGF0ZSxcbiAgVWlEcm9wZG93bixcbiAgVWlEcm9wZG93blJlc3VsdCxcbiAgVWlJbnB1dCxcbiAgVWlJbnB1dFJlc3VsdCxcbiAgVWlUZXh0LFxuICBVaVRyYW5zZm9ybSxcbiAgVmlkZW9QbGF5ZXJcbn0gZnJvbSAnQGRjbC9lY3MnXG5cbmV4cG9ydCBjb25zdCBOT1RfU1lOQ19DT01QT05FTlRTID0gW1xuICBWaWRlb0V2ZW50LFxuICBWaWRlb1BsYXllcixcbiAgVHdlZW5TdGF0ZSxcbiAgQXVkaW9FdmVudCxcbiAgQXVkaW9Tb3VyY2UsXG4gIEVuZ2luZUluZm8sXG4gIEdsdGZDb250YWluZXJMb2FkaW5nU3RhdGUsXG4gIFBvaW50ZXJFdmVudHNSZXN1bHQsXG4gIFJheWNhc3RSZXN1bHQsXG4gIFJlYWxtSW5mbyxcbiAgVWlEcm9wZG93bixcbiAgVWlEcm9wZG93blJlc3VsdCxcbiAgVWlJbnB1dCxcbiAgVWlJbnB1dFJlc3VsdCxcbiAgVWlUcmFuc2Zvcm0sXG4gIFVpVGV4dFxuXVxuXG5leHBvcnQgY29uc3QgTk9UX1NZTkNfQ09NUE9ORU5UU19JRFMgPSBOT1RfU1lOQ19DT01QT05FTlRTLm1hcCgoJCkgPT4gJC5jb21wb25lbnRJZClcblxuZXhwb3J0IGZ1bmN0aW9uIGVuZ2luZVRvQ3JkdChlbmdpbmU6IElFbmdpbmUpOiBVaW50OEFycmF5IHtcbiAgY29uc3QgY3JkdEJ1ZmZlciA9IG5ldyBSZWFkV3JpdGVCeXRlQnVmZmVyKClcbiAgY29uc3QgbmV0d29ya0J1ZmZlciA9IG5ldyBSZWFkV3JpdGVCeXRlQnVmZmVyKClcbiAgY29uc3QgTmV0d29ya0VudGl0eSA9IGVuZ2luZS5nZXRDb21wb25lbnQoX05ldHdvcmtFbnRpdHkuY29tcG9uZW50SWQpIGFzIElOZXRvd3JrRW50aXR5XG5cbiAgZm9yIChjb25zdCBpdENvbXBvbmVudERlZmluaXRpb24gb2YgZW5naW5lLmNvbXBvbmVudHNJdGVyKCkpIHtcbiAgICBpZiAoTk9UX1NZTkNfQ09NUE9ORU5UU19JRFMuaW5jbHVkZXMoaXRDb21wb25lbnREZWZpbml0aW9uLmNvbXBvbmVudElkKSkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaXRDb21wb25lbnREZWZpbml0aW9uLmR1bXBDcmR0U3RhdGVUb0J1ZmZlcihjcmR0QnVmZmVyLCAoZW50aXR5KSA9PiB7XG4gICAgICBjb25zdCBpc05ldHdvcmtFbnRpdHkgPSBOZXR3b3JrRW50aXR5LmhhcyhlbnRpdHkpXG4gICAgICByZXR1cm4gaXNOZXR3b3JrRW50aXR5XG4gICAgfSlcbiAgfVxuXG4gIGxldCBoZWFkZXI6IENyZHRNZXNzYWdlSGVhZGVyIHwgbnVsbFxuICB3aGlsZSAoKGhlYWRlciA9IENyZHRNZXNzYWdlUHJvdG9jb2wuZ2V0SGVhZGVyKGNyZHRCdWZmZXIpKSkge1xuICAgIGlmIChoZWFkZXIudHlwZSA9PT0gQ3JkdE1lc3NhZ2VUeXBlLlBVVF9DT01QT05FTlQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBQdXRDb21wb25lbnRPcGVyYXRpb24ucmVhZChjcmR0QnVmZmVyKSFcbiAgICAgIGNvbnN0IG5ldHdvcmtFbnRpdHkgPSBOZXR3b3JrRW50aXR5LmdldE9yTnVsbChtZXNzYWdlLmVudGl0eUlkKVxuICAgICAgaWYgKG5ldHdvcmtFbnRpdHkpIHtcbiAgICAgICAgUHV0TmV0d29ya0NvbXBvbmVudE9wZXJhdGlvbi53cml0ZShcbiAgICAgICAgICBuZXR3b3JrRW50aXR5LmVudGl0eUlkLFxuICAgICAgICAgIG1lc3NhZ2UudGltZXN0YW1wLFxuICAgICAgICAgIG1lc3NhZ2UuY29tcG9uZW50SWQsXG4gICAgICAgICAgbmV0d29ya0VudGl0eS5uZXR3b3JrSWQsXG4gICAgICAgICAgbWVzc2FnZS5kYXRhLFxuICAgICAgICAgIG5ldHdvcmtCdWZmZXJcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgUHV0Q29tcG9uZW50T3BlcmF0aW9uLndyaXRlKFxuICAgICAgICAgIG1lc3NhZ2UuZW50aXR5SWQsXG4gICAgICAgICAgbWVzc2FnZS50aW1lc3RhbXAsXG4gICAgICAgICAgbWVzc2FnZS5jb21wb25lbnRJZCxcbiAgICAgICAgICBtZXNzYWdlLmRhdGEsXG4gICAgICAgICAgbmV0d29ya0J1ZmZlclxuICAgICAgICApXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNyZHRCdWZmZXIuaW5jcmVtZW50UmVhZE9mZnNldChoZWFkZXIubGVuZ3RoKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXR3b3JrQnVmZmVyLnRvQmluYXJ5KClcbn1cbiJdfQ==
|
package/package.json
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"name": "@dcl/sdk",
|
3
3
|
"description": "",
|
4
|
-
"version": "7.5.8-
|
4
|
+
"version": "7.5.8-11038473646.commit-b63a9c4",
|
5
5
|
"author": "Decentraland",
|
6
6
|
"dependencies": {
|
7
|
-
"@dcl/ecs": "7.5.8-
|
7
|
+
"@dcl/ecs": "7.5.8-11038473646.commit-b63a9c4",
|
8
8
|
"@dcl/ecs-math": "2.0.2",
|
9
9
|
"@dcl/explorer": "1.0.164509-20240802172549.commit-fb95b9b",
|
10
|
-
"@dcl/js-runtime": "7.5.8-
|
11
|
-
"@dcl/react-ecs": "7.5.8-
|
12
|
-
"@dcl/sdk-commands": "7.5.8-
|
10
|
+
"@dcl/js-runtime": "7.5.8-11038473646.commit-b63a9c4",
|
11
|
+
"@dcl/react-ecs": "7.5.8-11038473646.commit-b63a9c4",
|
12
|
+
"@dcl/sdk-commands": "7.5.8-11038473646.commit-b63a9c4",
|
13
13
|
"text-encoding": "0.7.0"
|
14
14
|
},
|
15
15
|
"keywords": [],
|
@@ -35,5 +35,5 @@
|
|
35
35
|
},
|
36
36
|
"types": "./index.d.ts",
|
37
37
|
"typings": "./index.d.ts",
|
38
|
-
"commit": "
|
38
|
+
"commit": "b63a9c4ef1bb8c30a681e37e1882e0052a7c9716"
|
39
39
|
}
|
package/src/network/filter.ts
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
import {
|
2
2
|
TransportMessage,
|
3
|
-
PointerEventsResult,
|
4
|
-
GltfContainerLoadingState,
|
5
3
|
EntityUtils,
|
6
4
|
RESERVED_STATIC_ENTITIES,
|
7
5
|
CrdtMessageType,
|
@@ -10,6 +8,7 @@ import {
|
|
10
8
|
NetworkParent as _NetworkParent,
|
11
9
|
IEngine
|
12
10
|
} from '@dcl/ecs'
|
11
|
+
import { NOT_SYNC_COMPONENTS_IDS } from './state'
|
13
12
|
|
14
13
|
export function syncFilter(engine: IEngine) {
|
15
14
|
const NetworkEntity = engine.getComponent(_NetworkEntity.componentId) as typeof _NetworkEntity
|
@@ -18,7 +17,7 @@ export function syncFilter(engine: IEngine) {
|
|
18
17
|
return function (message: Omit<TransportMessage, 'messageBuffer'>) {
|
19
18
|
const componentId = (message as any).componentId
|
20
19
|
|
21
|
-
if (
|
20
|
+
if (NOT_SYNC_COMPONENTS_IDS.includes(componentId)) {
|
22
21
|
return false
|
23
22
|
}
|
24
23
|
|
@@ -73,6 +73,7 @@ export function addSyncTransport(
|
|
73
73
|
let requestCrdtStateWhenConnected = false
|
74
74
|
|
75
75
|
players.onEnterScene((player) => {
|
76
|
+
DEBUG_NETWORK_MESSAGES() && console.log('[onEnterScene]', player.userId)
|
76
77
|
if (player.userId === myProfile.userId && !requestCrdtStateWhenConnected) {
|
77
78
|
if (RealmInfo.getOrNull(engine.RootEntity)?.isConnectedSceneRoom) {
|
78
79
|
DEBUG_NETWORK_MESSAGES() && console.log('Requesting state')
|
@@ -93,6 +94,7 @@ export function addSyncTransport(
|
|
93
94
|
})
|
94
95
|
|
95
96
|
players.onLeaveScene((userId) => {
|
97
|
+
DEBUG_NETWORK_MESSAGES() && console.log('[onLeaveScene]', userId)
|
96
98
|
if (userId === myProfile.userId) {
|
97
99
|
requestCrdtStateWhenConnected = false
|
98
100
|
}
|
package/src/network/state.ts
CHANGED
@@ -46,7 +46,7 @@ export const NOT_SYNC_COMPONENTS = [
|
|
46
46
|
UiText
|
47
47
|
]
|
48
48
|
|
49
|
-
const NOT_SYNC_COMPONENTS_IDS = NOT_SYNC_COMPONENTS.map(($) => $.componentId)
|
49
|
+
export const NOT_SYNC_COMPONENTS_IDS = NOT_SYNC_COMPONENTS.map(($) => $.componentId)
|
50
50
|
|
51
51
|
export function engineToCrdt(engine: IEngine): Uint8Array {
|
52
52
|
const crdtBuffer = new ReadWriteByteBuffer()
|