@dcl/sdk 7.14.1-19936146810.commit-178bdd0 → 7.14.1-20045215093.commit-89d4260
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/entities.js +3 -3
- package/network/filter.js +4 -3
- package/network/state.d.ts +5 -2
- package/network/state.js +12 -2
- package/package.json +6 -6
- package/src/network/entities.ts +2 -2
- package/src/network/filter.ts +3 -3
- package/src/network/state.ts +20 -3
package/network/entities.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NetworkEntity as _NetworkEntity, NetworkParent as _NetworkParent, Transform as _Transform, SyncComponents as _SyncComponents } from '@dcl/ecs';
|
|
2
|
-
import {
|
|
2
|
+
import { getDesyncedComponents } from './state';
|
|
3
3
|
export function entityUtils(engine, profile) {
|
|
4
4
|
const NetworkEntity = engine.getComponent(_NetworkEntity.componentId);
|
|
5
5
|
const NetworkParent = engine.getComponent(_NetworkParent.componentId);
|
|
@@ -29,7 +29,7 @@ export function entityUtils(engine, profile) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
for (const component of
|
|
32
|
+
for (const component of getDesyncedComponents(engine)) {
|
|
33
33
|
if (componentsIdsMutable.includes(component.componentId)) {
|
|
34
34
|
console.log(`⚠️ ${component.componentName} can't be sync through the network!`);
|
|
35
35
|
componentsIdsMutable = componentsIdsMutable.filter(($) => $ !== component.componentId);
|
|
@@ -110,4 +110,4 @@ export function entityUtils(engine, profile) {
|
|
|
110
110
|
getFirstChild
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV0d29yay9lbnRpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsYUFBYSxJQUFJLGNBQWMsRUFFL0IsYUFBYSxJQUFJLGNBQWMsRUFDL0IsU0FBUyxJQUFJLFVBQVUsRUFDdkIsY0FBYyxJQUFJLGVBQWUsRUFJbEMsTUFBTSxVQUFVLENBQUE7QUFFakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFBO0FBSTdDLE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBZSxFQUFFLE9BQWlCO0lBQzVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBbUIsQ0FBQTtJQUN2RixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQW1CLENBQUE7SUFDdkYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUF1QixDQUFBO0lBQ25GLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBb0IsQ0FBQTtJQUUxRjs7T0FFRztJQUNILFNBQVMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsWUFBc0IsRUFBRSxZQUFxQjtRQUNqRixJQUFJLG9CQUFvQixHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQTtRQUM1QywwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFBO1NBQ3hGO1FBRUQsaUdBQWlHO1FBQ2pHLE1BQU0sWUFBWSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFL0QsNkdBQTZHO1FBQzdHLDJGQUEyRjtRQUMzRixzQ0FBc0M7UUFDdEMsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQzlCLFlBQVksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO1lBQzFCLFlBQVksQ0FBQyxRQUFRLEdBQUcsWUFBc0IsQ0FBQTtZQUU5QyxxQ0FBcUM7WUFDckMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ2hFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxZQUFZLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFFBQVEsRUFBRTtvQkFDOUYsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO2lCQUMvRTthQUNGO1NBQ0Y7UUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLG1CQUFtQixFQUFFO1lBQzNDLElBQUksb0JBQW9CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxhQUFhLHFDQUFxQyxDQUFDLENBQUE7Z0JBQy9FLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTthQUN2RjtTQUNGO1FBRUQsb0dBQW9HO1FBQ3BHLGFBQWEsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ3JELGNBQWMsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQTtJQUNsRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDL0MsSUFBSSxPQUFPLEVBQUU7WUFDWCxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDcEUsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsU0FBUyxFQUFFO29CQUNsRixNQUFNLE1BQU0sQ0FBQTtpQkFDYjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsTUFBYztRQUNuQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxTQUFTLENBQUMsS0FBYTtRQUM5QixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxTQUFTLENBQUE7UUFDN0IsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDckUsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNsRixPQUFPLE1BQU0sQ0FBQTthQUNkO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxZQUFZLENBQUMsTUFBYyxFQUFFLE1BQWM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFBO1NBQ3RFO1FBRUQsa0NBQWtDO1FBQ2xDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBRTlDLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQ3pCO2FBQU07WUFDTCxnR0FBZ0c7WUFDaEcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUM3QjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsWUFBWSxDQUFDLE1BQWM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUUvQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1NBQ3RDO1FBRUQsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsT0FBTztRQUNMLFVBQVU7UUFDVixXQUFXO1FBQ1gsU0FBUztRQUNULFlBQVk7UUFDWixZQUFZO1FBQ1osYUFBYTtLQUNkLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5LFxuICBJRW5naW5lLFxuICBOZXR3b3JrRW50aXR5IGFzIF9OZXR3b3JrRW50aXR5LFxuICBJTmV0b3dya0VudGl0eSxcbiAgTmV0d29ya1BhcmVudCBhcyBfTmV0d29ya1BhcmVudCxcbiAgVHJhbnNmb3JtIGFzIF9UcmFuc2Zvcm0sXG4gIFN5bmNDb21wb25lbnRzIGFzIF9TeW5jQ29tcG9uZW50cyxcbiAgSU5ldG93cmtQYXJlbnQsXG4gIFRyYW5zZm9ybUNvbXBvbmVudCxcbiAgSVN5bmNDb21wb25lbnRzXG59IGZyb20gJ0BkY2wvZWNzJ1xuaW1wb3J0IHsgSVByb2ZpbGUgfSBmcm9tICcuL21lc3NhZ2UtYnVzLXN5bmMnXG5pbXBvcnQgeyBOT1RfU1lOQ19DT01QT05FTlRTIH0gZnJvbSAnLi9zdGF0ZSdcblxuZXhwb3J0IHR5cGUgU3luY0VudGl0eSA9IChlbnRpdHlJZDogRW50aXR5LCBjb21wb25lbnRJZHM6IG51bWJlcltdLCBlbnRpdHlFbnVtSWQ/OiBudW1iZXIpID0+IHZvaWRcblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eVV0aWxzKGVuZ2luZTogSUVuZ2luZSwgcHJvZmlsZTogSVByb2ZpbGUpIHtcbiAgY29uc3QgTmV0d29ya0VudGl0eSA9IGVuZ2luZS5nZXRDb21wb25lbnQoX05ldHdvcmtFbnRpdHkuY29tcG9uZW50SWQpIGFzIElOZXRvd3JrRW50aXR5XG4gIGNvbnN0IE5ldHdvcmtQYXJlbnQgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KF9OZXR3b3JrUGFyZW50LmNvbXBvbmVudElkKSBhcyBJTmV0b3dya1BhcmVudFxuICBjb25zdCBUcmFuc2Zvcm0gPSBlbmdpbmUuZ2V0Q29tcG9uZW50KF9UcmFuc2Zvcm0uY29tcG9uZW50SWQpIGFzIFRyYW5zZm9ybUNvbXBvbmVudFxuICBjb25zdCBTeW5jQ29tcG9uZW50cyA9IGVuZ2luZS5nZXRDb21wb25lbnQoX1N5bmNDb21wb25lbnRzLmNvbXBvbmVudElkKSBhcyBJU3luY0NvbXBvbmVudHNcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV0d29yayBlbnRpdHkgKHN5bmMpIHRocm91Z2ggY29tbXMsIGFuZCBzeW5jIHRoZSByZWNlaXZlZCBjb21wb25lbnRzXG4gICAqL1xuICBmdW5jdGlvbiBzeW5jRW50aXR5KGVudGl0eUlkOiBFbnRpdHksIGNvbXBvbmVudElkczogbnVtYmVyW10sIGVudGl0eUVudW1JZD86IG51bWJlcikge1xuICAgIGxldCBjb21wb25lbnRzSWRzTXV0YWJsZSA9IFsuLi5jb21wb25lbnRJZHNdXG4gICAgLy8gUHJvZmlsZSBub3QgaW5pdGlhbGl6ZWRcbiAgICBpZiAoIXByb2ZpbGU/Lm5ldHdvcmtJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm9maWxlIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBzeW5jRW50aXR5IGluc2lkZSB0aGUgbWFpbigpIGZ1bmN0aW9uLicpXG4gICAgfVxuXG4gICAgLy8gV2UgdXNlIHRoZSBuZXR3b3JrSWQgZ2VuZXJhdGVkIGJ5IHRoZSB1c2VyIGFkZHJlc3MgdG8gaWRlbnRpZnkgdGhpcyBlbnRpdHkgdGhyb3VnaCB0aGUgbmV0d29ya1xuICAgIGNvbnN0IG5ldHdvcmtWYWx1ZSA9IHsgZW50aXR5SWQsIG5ldHdvcmtJZDogcHJvZmlsZS5uZXR3b3JrSWQgfVxuXG4gICAgLy8gSWYgdGhlcmUgaXMgYW4gZW50aXR5RW51bUlkLCBpdCBtZWFucyBpcyB0aGUgc2FtZSBlbnRpdHkgZm9yIGFsbCB0aGUgY2xpZW50cyBjcmVhdGVkIG9uIHRoZSBtYWluIGZ1bmNpdG9uLlxuICAgIC8vIFNvIHRoZSBuZXR3b3JrSWQgc2hvdWxkIGJlIHRoZSBzYW1lIGluIGFsbCB0aGUgY2xpZW50cyB0byBhdm9pZCByZS1jcmVhdGluZyB0aGlzIGVudGl0eS5cbiAgICAvLyBGb3IgdGhpcyBjYXNlIHdlIHVzZSBuZXR3b3JrSWQgPSAwLlxuICAgIGlmIChlbnRpdHlFbnVtSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV0d29ya1ZhbHVlLm5ldHdvcmtJZCA9IDBcbiAgICAgIG5ldHdvcmtWYWx1ZS5lbnRpdHlJZCA9IGVudGl0eUVudW1JZCBhcyBFbnRpdHlcblxuICAgICAgLy8gQ2hlY2sgaWYgdGhpcyBlbnVtIGlzIGFscmVhZHkgdXNlZFxuICAgICAgZm9yIChjb25zdCBbXywgbmV0d29ya10gb2YgZW5naW5lLmdldEVudGl0aWVzV2l0aChOZXR3b3JrRW50aXR5KSkge1xuICAgICAgICBpZiAobmV0d29yay5uZXR3b3JrSWQgPT09IG5ldHdvcmtWYWx1ZS5uZXR3b3JrSWQgJiYgbmV0d29yay5lbnRpdHlJZCA9PT0gbmV0d29ya1ZhbHVlLmVudGl0eUlkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdzeW5jRW50aXR5IGZhaWxlZCBiZWNhdXNlIHRoZSBpZCBwcm92aWRlZCBpcyBhbHJlYWR5IGluIHVzZScpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNvbXBvbmVudCBvZiBOT1RfU1lOQ19DT01QT05FTlRTKSB7XG4gICAgICBpZiAoY29tcG9uZW50c0lkc011dGFibGUuaW5jbHVkZXMoY29tcG9uZW50LmNvbXBvbmVudElkKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhg4pqg77iPICR7Y29tcG9uZW50LmNvbXBvbmVudE5hbWV9IGNhbid0IGJlIHN5bmMgdGhyb3VnaCB0aGUgbmV0d29yayFgKVxuICAgICAgICBjb21wb25lbnRzSWRzTXV0YWJsZSA9IGNvbXBvbmVudHNJZHNNdXRhYmxlLmZpbHRlcigoJCkgPT4gJCAhPT0gY29tcG9uZW50LmNvbXBvbmVudElkKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGlzIGEgZW50aXR5IGNyZWF0ZWQgaW4gcnVudGltZSAod2hhdCB3ZSBjYWxsZWQgZHluYW1pYy9ydW50aW1lIGVudGl0aWVzKS5cbiAgICBOZXR3b3JrRW50aXR5LmNyZWF0ZU9yUmVwbGFjZShlbnRpdHlJZCwgbmV0d29ya1ZhbHVlKVxuICAgIFN5bmNDb21wb25lbnRzLmNyZWF0ZU9yUmVwbGFjZShlbnRpdHlJZCwgeyBjb21wb25lbnRJZHM6IGNvbXBvbmVudHNJZHNNdXRhYmxlIH0pXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBhbGwgdGhlIGNoaWxkcmVucyBvZiB0aGUgZ2l2ZW4gZW50aXR5LlxuICAgKiBmb3IgKGNvbnN0IGNoaWxkcmVuIG9mIGdldENoaWxkcmVuKHBhcmVudCkpIHsgY29uc29sZS5sb2coY2hpbGRyZW4pIH1cbiAgICogb3IganVzdCA9PiBjb25zdCBjaGlsZHJlbnM6IEVudGl0eVtdID0gQXJyYXkuZnJvbShnZXRDaGlsZHJlbihwYXJlbnQpKVxuICAgKi9cbiAgZnVuY3Rpb24qIGdldENoaWxkcmVuKHBhcmVudDogRW50aXR5KTogSXRlcmFibGU8RW50aXR5PiB7XG4gICAgY29uc3QgbmV0d29yayA9IE5ldHdvcmtFbnRpdHkuZ2V0T3JOdWxsKHBhcmVudClcbiAgICBpZiAobmV0d29yaykge1xuICAgICAgZm9yIChjb25zdCBbZW50aXR5LCBwYXJlbnRdIG9mIGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoTmV0d29ya1BhcmVudCkpIHtcbiAgICAgICAgaWYgKHBhcmVudC5lbnRpdHlJZCA9PT0gbmV0d29yay5lbnRpdHlJZCAmJiBwYXJlbnQubmV0d29ya0lkID09PSBuZXR3b3JrLm5ldHdvcmtJZCkge1xuICAgICAgICAgIHlpZWxkIGVudGl0eVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Rmlyc3RDaGlsZChlbnRpdHk6IEVudGl0eSkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGdldENoaWxkcmVuKGVudGl0eSkpWzBdXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcGFyZW50IGVudGl0eSBvZiB0aGUgZ2l2ZW4gZW50aXR5LlxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0UGFyZW50KGNoaWxkOiBFbnRpdHkpOiBFbnRpdHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHBhcmVudCA9IE5ldHdvcmtQYXJlbnQuZ2V0T3JOdWxsKGNoaWxkKVxuICAgIGlmICghcGFyZW50KSByZXR1cm4gdW5kZWZpbmVkXG4gICAgZm9yIChjb25zdCBbZW50aXR5LCBuZXR3b3JrXSBvZiBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKE5ldHdvcmtFbnRpdHkpKSB7XG4gICAgICBpZiAocGFyZW50Lm5ldHdvcmtJZCA9PT0gbmV0d29yay5uZXR3b3JrSWQgJiYgcGFyZW50LmVudGl0eUlkID09PSBuZXR3b3JrLmVudGl0eUlkKSB7XG4gICAgICAgIHJldHVybiBlbnRpdHlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIG5ldHdvcmsgcGFyZW50aW5nIHRvIHN5bmMgZW50aXRpZXMuXG4gICAqIEVxdWl2YWxlbnQgdG8gVHJhbnNmb3JtLnBhcmVudCBmb3IgbG9jYWwgZW50aXRpZXNcbiAgICovXG4gIGZ1bmN0aW9uIHBhcmVudEVudGl0eShlbnRpdHk6IEVudGl0eSwgcGFyZW50OiBFbnRpdHkpIHtcbiAgICBjb25zdCBuZXR3b3JrID0gTmV0d29ya0VudGl0eS5nZXRPck51bGwocGFyZW50KVxuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbnRpdHkgaXMgbm90IHN5bmMuIENhbGwgc3luY0VudGl0eSBvbiB0aGUgcGFyZW50LicpXG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIG5ldHdvcmsgcGFyZW50IGNvbXBvbmVudFxuICAgIE5ldHdvcmtQYXJlbnQuY3JlYXRlT3JSZXBsYWNlKGVudGl0eSwgbmV0d29yaylcblxuICAgIC8vIElmIHdlIGRvbnQgaGF2ZSBhIHRyYW5zZm9ybSBmb3IgdGhpcyBlbnRpdHksIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdG8gc2VuZCBpdCB0byB0aGUgcmVuZGVyZXJcbiAgICBpZiAoIVRyYW5zZm9ybS5nZXRPck51bGwoZW50aXR5KSkge1xuICAgICAgVHJhbnNmb3JtLmNyZWF0ZShlbnRpdHkpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlIGZvcmNlIHRvIHNlbmQgYSB0aWNrIHVwZGF0ZSBvZiB0aGUgdHJhbnNmb3JtIHNvIHdlIGNhbiBzZW5kIHRoZSBORVcgcGFyZW50IHRvIHRoZSByZW5kZXJlclxuICAgICAgVHJhbnNmb3JtLmdldE11dGFibGUoZW50aXR5KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBuZXR3b3JrIHBhcmVudGluZyBmcm9tIGFuIGVudGl0eVxuICAgKi9cbiAgZnVuY3Rpb24gcmVtb3ZlUGFyZW50KGVudGl0eTogRW50aXR5KSB7XG4gICAgY29uc3QgbmV0d29yayA9IE5ldHdvcmtFbnRpdHkuZ2V0T3JOdWxsKGVudGl0eSlcblxuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbnRpdHkgaXMgbm90IHN5bmMnKVxuICAgIH1cblxuICAgIE5ldHdvcmtQYXJlbnQuZGVsZXRlRnJvbShlbnRpdHkpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN5bmNFbnRpdHksXG4gICAgZ2V0Q2hpbGRyZW4sXG4gICAgZ2V0UGFyZW50LFxuICAgIHBhcmVudEVudGl0eSxcbiAgICByZW1vdmVQYXJlbnQsXG4gICAgZ2V0Rmlyc3RDaGlsZFxuICB9XG59XG4iXX0=
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV0d29yay9lbnRpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsYUFBYSxJQUFJLGNBQWMsRUFFL0IsYUFBYSxJQUFJLGNBQWMsRUFDL0IsU0FBUyxJQUFJLFVBQVUsRUFDdkIsY0FBYyxJQUFJLGVBQWUsRUFJbEMsTUFBTSxVQUFVLENBQUE7QUFFakIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFBO0FBSS9DLE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBZSxFQUFFLE9BQWlCO0lBQzVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBbUIsQ0FBQTtJQUN2RixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQW1CLENBQUE7SUFDdkYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUF1QixDQUFBO0lBQ25GLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBb0IsQ0FBQTtJQUUxRjs7T0FFRztJQUNILFNBQVMsVUFBVSxDQUFDLFFBQWdCLEVBQUUsWUFBc0IsRUFBRSxZQUFxQjtRQUNqRixJQUFJLG9CQUFvQixHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQTtRQUM1QywwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFBO1NBQ3hGO1FBRUQsaUdBQWlHO1FBQ2pHLE1BQU0sWUFBWSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFL0QsNkdBQTZHO1FBQzdHLDJGQUEyRjtRQUMzRixzQ0FBc0M7UUFDdEMsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQzlCLFlBQVksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFBO1lBQzFCLFlBQVksQ0FBQyxRQUFRLEdBQUcsWUFBc0IsQ0FBQTtZQUU5QyxxQ0FBcUM7WUFDckMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ2hFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxZQUFZLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLFFBQVEsRUFBRTtvQkFDOUYsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO2lCQUMvRTthQUNGO1NBQ0Y7UUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3JELElBQUksb0JBQW9CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLFNBQVMsQ0FBQyxhQUFhLHFDQUFxQyxDQUFDLENBQUE7Z0JBQy9FLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTthQUN2RjtTQUNGO1FBRUQsb0dBQW9HO1FBQ3BHLGFBQWEsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFBO1FBQ3JELGNBQWMsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQTtJQUNsRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFjO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDL0MsSUFBSSxPQUFPLEVBQUU7WUFDWCxLQUFLLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDcEUsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsU0FBUyxFQUFFO29CQUNsRixNQUFNLE1BQU0sQ0FBQTtpQkFDYjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUyxhQUFhLENBQUMsTUFBYztRQUNuQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxTQUFTLENBQUMsS0FBYTtRQUM5QixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxTQUFTLENBQUE7UUFDN0IsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDckUsSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNsRixPQUFPLE1BQU0sQ0FBQTthQUNkO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsQ0FBQTtJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxZQUFZLENBQUMsTUFBYyxFQUFFLE1BQWM7UUFDbEQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFBO1NBQ3RFO1FBRUQsa0NBQWtDO1FBQ2xDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBRTlDLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1NBQ3pCO2FBQU07WUFDTCxnR0FBZ0c7WUFDaEcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUM3QjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsWUFBWSxDQUFDLE1BQWM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUUvQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1NBQ3RDO1FBRUQsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsT0FBTztRQUNMLFVBQVU7UUFDVixXQUFXO1FBQ1gsU0FBUztRQUNULFlBQVk7UUFDWixZQUFZO1FBQ1osYUFBYTtLQUNkLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5LFxuICBJRW5naW5lLFxuICBOZXR3b3JrRW50aXR5IGFzIF9OZXR3b3JrRW50aXR5LFxuICBJTmV0b3dya0VudGl0eSxcbiAgTmV0d29ya1BhcmVudCBhcyBfTmV0d29ya1BhcmVudCxcbiAgVHJhbnNmb3JtIGFzIF9UcmFuc2Zvcm0sXG4gIFN5bmNDb21wb25lbnRzIGFzIF9TeW5jQ29tcG9uZW50cyxcbiAgSU5ldG93cmtQYXJlbnQsXG4gIFRyYW5zZm9ybUNvbXBvbmVudCxcbiAgSVN5bmNDb21wb25lbnRzXG59IGZyb20gJ0BkY2wvZWNzJ1xuaW1wb3J0IHsgSVByb2ZpbGUgfSBmcm9tICcuL21lc3NhZ2UtYnVzLXN5bmMnXG5pbXBvcnQgeyBnZXREZXN5bmNlZENvbXBvbmVudHMgfSBmcm9tICcuL3N0YXRlJ1xuXG5leHBvcnQgdHlwZSBTeW5jRW50aXR5ID0gKGVudGl0eUlkOiBFbnRpdHksIGNvbXBvbmVudElkczogbnVtYmVyW10sIGVudGl0eUVudW1JZD86IG51bWJlcikgPT4gdm9pZFxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5VXRpbHMoZW5naW5lOiBJRW5naW5lLCBwcm9maWxlOiBJUHJvZmlsZSkge1xuICBjb25zdCBOZXR3b3JrRW50aXR5ID0gZW5naW5lLmdldENvbXBvbmVudChfTmV0d29ya0VudGl0eS5jb21wb25lbnRJZCkgYXMgSU5ldG93cmtFbnRpdHlcbiAgY29uc3QgTmV0d29ya1BhcmVudCA9IGVuZ2luZS5nZXRDb21wb25lbnQoX05ldHdvcmtQYXJlbnQuY29tcG9uZW50SWQpIGFzIElOZXRvd3JrUGFyZW50XG4gIGNvbnN0IFRyYW5zZm9ybSA9IGVuZ2luZS5nZXRDb21wb25lbnQoX1RyYW5zZm9ybS5jb21wb25lbnRJZCkgYXMgVHJhbnNmb3JtQ29tcG9uZW50XG4gIGNvbnN0IFN5bmNDb21wb25lbnRzID0gZW5naW5lLmdldENvbXBvbmVudChfU3luY0NvbXBvbmVudHMuY29tcG9uZW50SWQpIGFzIElTeW5jQ29tcG9uZW50c1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXR3b3JrIGVudGl0eSAoc3luYykgdGhyb3VnaCBjb21tcywgYW5kIHN5bmMgdGhlIHJlY2VpdmVkIGNvbXBvbmVudHNcbiAgICovXG4gIGZ1bmN0aW9uIHN5bmNFbnRpdHkoZW50aXR5SWQ6IEVudGl0eSwgY29tcG9uZW50SWRzOiBudW1iZXJbXSwgZW50aXR5RW51bUlkPzogbnVtYmVyKSB7XG4gICAgbGV0IGNvbXBvbmVudHNJZHNNdXRhYmxlID0gWy4uLmNvbXBvbmVudElkc11cbiAgICAvLyBQcm9maWxlIG5vdCBpbml0aWFsaXplZFxuICAgIGlmICghcHJvZmlsZT8ubmV0d29ya0lkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Byb2ZpbGUgbm90IGluaXRpYWxpemVkLiBDYWxsIHN5bmNFbnRpdHkgaW5zaWRlIHRoZSBtYWluKCkgZnVuY3Rpb24uJylcbiAgICB9XG5cbiAgICAvLyBXZSB1c2UgdGhlIG5ldHdvcmtJZCBnZW5lcmF0ZWQgYnkgdGhlIHVzZXIgYWRkcmVzcyB0byBpZGVudGlmeSB0aGlzIGVudGl0eSB0aHJvdWdoIHRoZSBuZXR3b3JrXG4gICAgY29uc3QgbmV0d29ya1ZhbHVlID0geyBlbnRpdHlJZCwgbmV0d29ya0lkOiBwcm9maWxlLm5ldHdvcmtJZCB9XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhbiBlbnRpdHlFbnVtSWQsIGl0IG1lYW5zIGlzIHRoZSBzYW1lIGVudGl0eSBmb3IgYWxsIHRoZSBjbGllbnRzIGNyZWF0ZWQgb24gdGhlIG1haW4gZnVuY2l0b24uXG4gICAgLy8gU28gdGhlIG5ldHdvcmtJZCBzaG91bGQgYmUgdGhlIHNhbWUgaW4gYWxsIHRoZSBjbGllbnRzIHRvIGF2b2lkIHJlLWNyZWF0aW5nIHRoaXMgZW50aXR5LlxuICAgIC8vIEZvciB0aGlzIGNhc2Ugd2UgdXNlIG5ldHdvcmtJZCA9IDAuXG4gICAgaWYgKGVudGl0eUVudW1JZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBuZXR3b3JrVmFsdWUubmV0d29ya0lkID0gMFxuICAgICAgbmV0d29ya1ZhbHVlLmVudGl0eUlkID0gZW50aXR5RW51bUlkIGFzIEVudGl0eVxuXG4gICAgICAvLyBDaGVjayBpZiB0aGlzIGVudW0gaXMgYWxyZWFkeSB1c2VkXG4gICAgICBmb3IgKGNvbnN0IFtfLCBuZXR3b3JrXSBvZiBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKE5ldHdvcmtFbnRpdHkpKSB7XG4gICAgICAgIGlmIChuZXR3b3JrLm5ldHdvcmtJZCA9PT0gbmV0d29ya1ZhbHVlLm5ldHdvcmtJZCAmJiBuZXR3b3JrLmVudGl0eUlkID09PSBuZXR3b3JrVmFsdWUuZW50aXR5SWQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N5bmNFbnRpdHkgZmFpbGVkIGJlY2F1c2UgdGhlIGlkIHByb3ZpZGVkIGlzIGFscmVhZHkgaW4gdXNlJylcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIGdldERlc3luY2VkQ29tcG9uZW50cyhlbmdpbmUpKSB7XG4gICAgICBpZiAoY29tcG9uZW50c0lkc011dGFibGUuaW5jbHVkZXMoY29tcG9uZW50LmNvbXBvbmVudElkKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhg4pqg77iPICR7Y29tcG9uZW50LmNvbXBvbmVudE5hbWV9IGNhbid0IGJlIHN5bmMgdGhyb3VnaCB0aGUgbmV0d29yayFgKVxuICAgICAgICBjb21wb25lbnRzSWRzTXV0YWJsZSA9IGNvbXBvbmVudHNJZHNNdXRhYmxlLmZpbHRlcigoJCkgPT4gJCAhPT0gY29tcG9uZW50LmNvbXBvbmVudElkKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGlzIGEgZW50aXR5IGNyZWF0ZWQgaW4gcnVudGltZSAod2hhdCB3ZSBjYWxsZWQgZHluYW1pYy9ydW50aW1lIGVudGl0aWVzKS5cbiAgICBOZXR3b3JrRW50aXR5LmNyZWF0ZU9yUmVwbGFjZShlbnRpdHlJZCwgbmV0d29ya1ZhbHVlKVxuICAgIFN5bmNDb21wb25lbnRzLmNyZWF0ZU9yUmVwbGFjZShlbnRpdHlJZCwgeyBjb21wb25lbnRJZHM6IGNvbXBvbmVudHNJZHNNdXRhYmxlIH0pXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBhbGwgdGhlIGNoaWxkcmVucyBvZiB0aGUgZ2l2ZW4gZW50aXR5LlxuICAgKiBmb3IgKGNvbnN0IGNoaWxkcmVuIG9mIGdldENoaWxkcmVuKHBhcmVudCkpIHsgY29uc29sZS5sb2coY2hpbGRyZW4pIH1cbiAgICogb3IganVzdCA9PiBjb25zdCBjaGlsZHJlbnM6IEVudGl0eVtdID0gQXJyYXkuZnJvbShnZXRDaGlsZHJlbihwYXJlbnQpKVxuICAgKi9cbiAgZnVuY3Rpb24qIGdldENoaWxkcmVuKHBhcmVudDogRW50aXR5KTogSXRlcmFibGU8RW50aXR5PiB7XG4gICAgY29uc3QgbmV0d29yayA9IE5ldHdvcmtFbnRpdHkuZ2V0T3JOdWxsKHBhcmVudClcbiAgICBpZiAobmV0d29yaykge1xuICAgICAgZm9yIChjb25zdCBbZW50aXR5LCBwYXJlbnRdIG9mIGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoTmV0d29ya1BhcmVudCkpIHtcbiAgICAgICAgaWYgKHBhcmVudC5lbnRpdHlJZCA9PT0gbmV0d29yay5lbnRpdHlJZCAmJiBwYXJlbnQubmV0d29ya0lkID09PSBuZXR3b3JrLm5ldHdvcmtJZCkge1xuICAgICAgICAgIHlpZWxkIGVudGl0eVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Rmlyc3RDaGlsZChlbnRpdHk6IEVudGl0eSkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKGdldENoaWxkcmVuKGVudGl0eSkpWzBdXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcGFyZW50IGVudGl0eSBvZiB0aGUgZ2l2ZW4gZW50aXR5LlxuICAgKi9cbiAgZnVuY3Rpb24gZ2V0UGFyZW50KGNoaWxkOiBFbnRpdHkpOiBFbnRpdHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHBhcmVudCA9IE5ldHdvcmtQYXJlbnQuZ2V0T3JOdWxsKGNoaWxkKVxuICAgIGlmICghcGFyZW50KSByZXR1cm4gdW5kZWZpbmVkXG4gICAgZm9yIChjb25zdCBbZW50aXR5LCBuZXR3b3JrXSBvZiBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKE5ldHdvcmtFbnRpdHkpKSB7XG4gICAgICBpZiAocGFyZW50Lm5ldHdvcmtJZCA9PT0gbmV0d29yay5uZXR3b3JrSWQgJiYgcGFyZW50LmVudGl0eUlkID09PSBuZXR3b3JrLmVudGl0eUlkKSB7XG4gICAgICAgIHJldHVybiBlbnRpdHlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIG5ldHdvcmsgcGFyZW50aW5nIHRvIHN5bmMgZW50aXRpZXMuXG4gICAqIEVxdWl2YWxlbnQgdG8gVHJhbnNmb3JtLnBhcmVudCBmb3IgbG9jYWwgZW50aXRpZXNcbiAgICovXG4gIGZ1bmN0aW9uIHBhcmVudEVudGl0eShlbnRpdHk6IEVudGl0eSwgcGFyZW50OiBFbnRpdHkpIHtcbiAgICBjb25zdCBuZXR3b3JrID0gTmV0d29ya0VudGl0eS5nZXRPck51bGwocGFyZW50KVxuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbnRpdHkgaXMgbm90IHN5bmMuIENhbGwgc3luY0VudGl0eSBvbiB0aGUgcGFyZW50LicpXG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIG5ldHdvcmsgcGFyZW50IGNvbXBvbmVudFxuICAgIE5ldHdvcmtQYXJlbnQuY3JlYXRlT3JSZXBsYWNlKGVudGl0eSwgbmV0d29yaylcblxuICAgIC8vIElmIHdlIGRvbnQgaGF2ZSBhIHRyYW5zZm9ybSBmb3IgdGhpcyBlbnRpdHksIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdG8gc2VuZCBpdCB0byB0aGUgcmVuZGVyZXJcbiAgICBpZiAoIVRyYW5zZm9ybS5nZXRPck51bGwoZW50aXR5KSkge1xuICAgICAgVHJhbnNmb3JtLmNyZWF0ZShlbnRpdHkpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFdlIGZvcmNlIHRvIHNlbmQgYSB0aWNrIHVwZGF0ZSBvZiB0aGUgdHJhbnNmb3JtIHNvIHdlIGNhbiBzZW5kIHRoZSBORVcgcGFyZW50IHRvIHRoZSByZW5kZXJlclxuICAgICAgVHJhbnNmb3JtLmdldE11dGFibGUoZW50aXR5KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBuZXR3b3JrIHBhcmVudGluZyBmcm9tIGFuIGVudGl0eVxuICAgKi9cbiAgZnVuY3Rpb24gcmVtb3ZlUGFyZW50KGVudGl0eTogRW50aXR5KSB7XG4gICAgY29uc3QgbmV0d29yayA9IE5ldHdvcmtFbnRpdHkuZ2V0T3JOdWxsKGVudGl0eSlcblxuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFbnRpdHkgaXMgbm90IHN5bmMnKVxuICAgIH1cblxuICAgIE5ldHdvcmtQYXJlbnQuZGVsZXRlRnJvbShlbnRpdHkpXG4gIH1cblxuICByZXR1cm4ge1xuICAgIHN5bmNFbnRpdHksXG4gICAgZ2V0Q2hpbGRyZW4sXG4gICAgZ2V0UGFyZW50LFxuICAgIHBhcmVudEVudGl0eSxcbiAgICByZW1vdmVQYXJlbnQsXG4gICAgZ2V0Rmlyc3RDaGlsZFxuICB9XG59XG4iXX0=
|
package/network/filter.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { EntityUtils, RESERVED_STATIC_ENTITIES, CrdtMessageType, SyncComponents as _SyncComponents, NetworkEntity as _NetworkEntity, NetworkParent as _NetworkParent } from '@dcl/ecs';
|
|
2
|
-
import {
|
|
2
|
+
import { shouldSyncComponent } from './state';
|
|
3
3
|
export function syncFilter(engine) {
|
|
4
4
|
const NetworkEntity = engine.getComponent(_NetworkEntity.componentId);
|
|
5
5
|
const SyncComponents = engine.getComponent(_SyncComponents.componentId);
|
|
6
6
|
return function (message) {
|
|
7
7
|
const componentId = message.componentId;
|
|
8
|
-
|
|
8
|
+
const component = componentId ? engine.getComponentOrNull(componentId) : null;
|
|
9
|
+
if (component && !shouldSyncComponent(component)) {
|
|
9
10
|
return false;
|
|
10
11
|
}
|
|
11
12
|
const [entityId] = EntityUtils.fromEntityId(message.entityId);
|
|
@@ -39,4 +40,4 @@ export function syncFilter(engine) {
|
|
|
39
40
|
return false;
|
|
40
41
|
};
|
|
41
42
|
}
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25ldHdvcmsvZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxXQUFXLEVBQ1gsd0JBQXdCLEVBQ3hCLGVBQWUsRUFDZixjQUFjLElBQUksZUFBZSxFQUNqQyxhQUFhLElBQUksY0FBYyxFQUMvQixhQUFhLElBQUksY0FBYyxFQUVoQyxNQUFNLFVBQVUsQ0FBQTtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFFN0MsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFlO0lBQ3hDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBMEIsQ0FBQTtJQUM5RixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQTJCLENBQUE7SUFFakcsT0FBTyxVQUFVLE9BQWdEO1FBQy9ELE1BQU0sV0FBVyxHQUFJLE9BQWUsQ0FBQyxXQUFXLENBQUE7UUFDaEQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUM3RSxJQUFJLFNBQVMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hELE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFN0QsMENBQTBDO1FBQzFDLElBQUksUUFBUSxHQUFHLHdCQUF3QixFQUFFO1lBQ3ZDLE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFFRCxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN6RCwrQkFBK0I7UUFDL0IsSUFDRSxPQUFPLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxxQkFBcUI7WUFDdEQsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQzNEO1lBQ0EsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3ZELElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFFdkIsa0JBQWtCO1FBQ2xCLElBQUssT0FBZSxDQUFDLFNBQVMsSUFBSSxDQUFDLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUE7U0FDWjtRQUVELElBQUksV0FBVyxLQUFLLGFBQWEsQ0FBQyxXQUFXLEVBQUU7WUFDN0MsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUVELHFGQUFxRjtRQUNyRixJQUFJLFdBQVcsS0FBSyxjQUFjLENBQUMsV0FBVyxJQUFJLFdBQVcsS0FBSyxjQUFjLENBQUMsV0FBVyxFQUFFO1lBQzVGLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFFRCxJQUFJLFdBQVcsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMxRCxPQUFPLElBQUksQ0FBQTtTQUNaO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDLENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgVHJhbnNwb3J0TWVzc2FnZSxcbiAgRW50aXR5VXRpbHMsXG4gIFJFU0VSVkVEX1NUQVRJQ19FTlRJVElFUyxcbiAgQ3JkdE1lc3NhZ2VUeXBlLFxuICBTeW5jQ29tcG9uZW50cyBhcyBfU3luY0NvbXBvbmVudHMsXG4gIE5ldHdvcmtFbnRpdHkgYXMgX05ldHdvcmtFbnRpdHksXG4gIE5ldHdvcmtQYXJlbnQgYXMgX05ldHdvcmtQYXJlbnQsXG4gIElFbmdpbmVcbn0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBzaG91bGRTeW5jQ29tcG9uZW50IH0gZnJvbSAnLi9zdGF0ZSdcblxuZXhwb3J0IGZ1bmN0aW9uIHN5bmNGaWx0ZXIoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IE5ldHdvcmtFbnRpdHkgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KF9OZXR3b3JrRW50aXR5LmNvbXBvbmVudElkKSBhcyB0eXBlb2YgX05ldHdvcmtFbnRpdHlcbiAgY29uc3QgU3luY0NvbXBvbmVudHMgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KF9TeW5jQ29tcG9uZW50cy5jb21wb25lbnRJZCkgYXMgdHlwZW9mIF9TeW5jQ29tcG9uZW50c1xuXG4gIHJldHVybiBmdW5jdGlvbiAobWVzc2FnZTogT21pdDxUcmFuc3BvcnRNZXNzYWdlLCAnbWVzc2FnZUJ1ZmZlcic+KSB7XG4gICAgY29uc3QgY29tcG9uZW50SWQgPSAobWVzc2FnZSBhcyBhbnkpLmNvbXBvbmVudElkXG4gICAgY29uc3QgY29tcG9uZW50ID0gY29tcG9uZW50SWQgPyBlbmdpbmUuZ2V0Q29tcG9uZW50T3JOdWxsKGNvbXBvbmVudElkKSA6IG51bGxcbiAgICBpZiAoY29tcG9uZW50ICYmICFzaG91bGRTeW5jQ29tcG9uZW50KGNvbXBvbmVudCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IFtlbnRpdHlJZF0gPSBFbnRpdHlVdGlscy5mcm9tRW50aXR5SWQobWVzc2FnZS5lbnRpdHlJZClcblxuICAgIC8vIGZpbHRlciBtZXNzYWdlcyBmcm9tIHJlc2VydmVkIGVudGl0aWVzLlxuICAgIGlmIChlbnRpdHlJZCA8IFJFU0VSVkVEX1NUQVRJQ19FTlRJVElFUykge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgbmV0d29yayA9IE5ldHdvcmtFbnRpdHkuZ2V0T3JOdWxsKG1lc3NhZ2UuZW50aXR5SWQpXG4gICAgLy8gRGVsZXRlIE5ldHdvcmsgRW50aXR5IEFsd2F5c1xuICAgIGlmIChcbiAgICAgIG1lc3NhZ2UudHlwZSA9PT0gQ3JkdE1lc3NhZ2VUeXBlLkRFTEVURV9FTlRJVFlfTkVUV09SSyB8fFxuICAgICAgKG5ldHdvcmsgJiYgbWVzc2FnZS50eXBlID09PSBDcmR0TWVzc2FnZVR5cGUuREVMRVRFX0VOVElUWSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgY29uc3Qgc3luYyA9IFN5bmNDb21wb25lbnRzLmdldE9yTnVsbChtZXNzYWdlLmVudGl0eUlkKVxuICAgIGlmICghc3luYykgcmV0dXJuIGZhbHNlXG5cbiAgICAvLyBGaXJzdCBjb21wb25lbnRcbiAgICBpZiAoKG1lc3NhZ2UgYXMgYW55KS50aW1lc3RhbXAgPD0gMSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoY29tcG9uZW50SWQgPT09IE5ldHdvcmtFbnRpdHkuY29tcG9uZW50SWQpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGlzIGEgY2hhbmdlIGluIHRoZSBuZXR3b3JrIHBhcmVudCBvciBzeW5jQ29tcG9uZW50cyB3ZSBzaG91bGQgYWx3YXlzIHN5bmNcbiAgICBpZiAoY29tcG9uZW50SWQgPT09IF9OZXR3b3JrUGFyZW50LmNvbXBvbmVudElkIHx8IGNvbXBvbmVudElkID09PSBTeW5jQ29tcG9uZW50cy5jb21wb25lbnRJZCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoY29tcG9uZW50SWQgJiYgc3luYy5jb21wb25lbnRJZHMuaW5jbHVkZXMoY29tcG9uZW50SWQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG4iXX0=
|
package/network/state.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { IEngine } from '@dcl/ecs';
|
|
2
|
-
export declare const NOT_SYNC_COMPONENTS:
|
|
1
|
+
import { IEngine, ComponentDefinition } from '@dcl/ecs';
|
|
2
|
+
export declare const NOT_SYNC_COMPONENTS: ComponentDefinition<unknown>[];
|
|
3
3
|
export declare const NOT_SYNC_COMPONENTS_IDS: number[];
|
|
4
|
+
export declare const NOT_SYNC_COMPONENTS_NAMES: string[];
|
|
5
|
+
export declare function shouldSyncComponent(component: ComponentDefinition<unknown>): boolean;
|
|
6
|
+
export declare function getDesyncedComponents(engine: IEngine): ComponentDefinition<unknown>[];
|
|
4
7
|
export declare function engineToCrdt(engine: IEngine): Uint8Array[];
|
package/network/state.js
CHANGED
|
@@ -18,13 +18,23 @@ export const NOT_SYNC_COMPONENTS = [
|
|
|
18
18
|
UiText
|
|
19
19
|
];
|
|
20
20
|
export const NOT_SYNC_COMPONENTS_IDS = NOT_SYNC_COMPONENTS.map(($) => $.componentId);
|
|
21
|
+
export const NOT_SYNC_COMPONENTS_NAMES = [
|
|
22
|
+
'asset-packs::Script' // ComponentName from: https://github.com/decentraland/asset-packs/blob/main/src/enums.ts
|
|
23
|
+
];
|
|
24
|
+
export function shouldSyncComponent(component) {
|
|
25
|
+
return !(NOT_SYNC_COMPONENTS_IDS.includes(component.componentId) ||
|
|
26
|
+
NOT_SYNC_COMPONENTS_NAMES.includes(component.componentName));
|
|
27
|
+
}
|
|
28
|
+
export function getDesyncedComponents(engine) {
|
|
29
|
+
return [...NOT_SYNC_COMPONENTS, ...NOT_SYNC_COMPONENTS_NAMES.map(($) => engine.getComponentOrNull($))].filter(Boolean);
|
|
30
|
+
}
|
|
21
31
|
export function engineToCrdt(engine) {
|
|
22
32
|
const crdtBuffer = new ReadWriteByteBuffer();
|
|
23
33
|
const networkBuffer = new ReadWriteByteBuffer();
|
|
24
34
|
const NetworkEntity = engine.getComponent(_NetworkEntity.componentId);
|
|
25
35
|
const chunks = [];
|
|
26
36
|
for (const itComponentDefinition of engine.componentsIter()) {
|
|
27
|
-
if (
|
|
37
|
+
if (!shouldSyncComponent(itComponentDefinition)) {
|
|
28
38
|
continue;
|
|
29
39
|
}
|
|
30
40
|
itComponentDefinition.dumpCrdtStateToBuffer(crdtBuffer, (entity) => {
|
|
@@ -67,4 +77,4 @@ export function engineToCrdt(engine) {
|
|
|
67
77
|
}
|
|
68
78
|
return chunks;
|
|
69
79
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV0d29yay9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLGVBQWUsRUFFZixxQkFBcUIsRUFDckIsNEJBQTRCLEVBRTVCLGFBQWEsSUFBSSxjQUFjLEVBRS9CLFVBQVUsRUFDVixVQUFVLEVBQ1YsVUFBVSxFQUNWLHlCQUF5QixFQUN6QixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsYUFBYSxFQUNiLE1BQU0sRUFDTixXQUFXLEVBRVosTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFN0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW1DO0lBQ2pFLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVix5QkFBeUI7SUFDekIsbUJBQW1CO0lBQ25CLGFBQWE7SUFDYixTQUFTO0lBQ1QsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixPQUFPO0lBQ1AsYUFBYTtJQUNiLFdBQVc7SUFDWCxNQUFNO0NBQ1AsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ3BGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFhO0lBQ2pELHFCQUFxQixDQUFDLHlGQUF5RjtDQUNoSCxDQUFBO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFNBQXVDO0lBQ3pFLE9BQU8sQ0FBQyxDQUNOLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMs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QUNGO0lBRUQsNENBQTRDO0lBQzVDLElBQUksYUFBYSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQzFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7S0FDdEM7SUFFRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWFkV3JpdGVCeXRlQnVmZmVyIH0gZnJvbSAnQGRjbC9lY3MvZGlzdC9zZXJpYWxpemF0aW9uL0J5dGVCdWZmZXInXG5pbXBvcnQge1xuICBDcmR0TWVzc2FnZUhlYWRlcixcbiAgQ3JkdE1lc3NhZ2VQcm90b2NvbCxcbiAgQ3JkdE1lc3NhZ2VUeXBlLFxuICBJRW5naW5lLFxuICBQdXRDb21wb25lbnRPcGVyYXRpb24sXG4gIFB1dE5ldHdvcmtDb21wb25lbnRPcGVyYXRpb24sXG4gIFN5bmNDb21wb25lbnRzIGFzIF9TeW5jQ29tcG9uZW50cyxcbiAgTmV0d29ya0VudGl0eSBhcyBfTmV0d29ya0VudGl0eSxcbiAgSU5ldG93cmtFbnRpdHksXG4gIFZpZGVvRXZlbnQsXG4gIEF1ZGlvRXZlbnQsXG4gIEVuZ2luZUluZm8sXG4gIEdsdGZDb250YWluZXJMb2FkaW5nU3RhdGUsXG4gIFBvaW50ZXJFdmVudHNSZXN1bHQsXG4gIFJheWNhc3RSZXN1bHQsXG4gIFJlYWxtSW5mbyxcbiAgVHdlZW5TdGF0ZSxcbiAgVWlEcm9wZG93bixcbiAgVWlEcm9wZG93blJlc3VsdCxcbiAgVWlJbnB1dCxcbiAgVWlJbnB1dFJlc3VsdCxcbiAgVWlUZXh0LFxuICBVaVRyYW5zZm9ybSxcbiAgQ29tcG9uZW50RGVmaW5pdGlvblxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IExJVkVLSVRfTUFYX1NJWkUgfSBmcm9tICdAZGNsL2Vjcy9kaXN0L3N5c3RlbXMvY3JkdCdcblxuZXhwb3J0IGNvbnN0IE5PVF9TWU5DX0NPTVBPTkVOVFM6IENvbXBvbmVudERlZmluaXRpb248dW5rbm93bj5bXSA9IFtcbiAgVmlkZW9FdmVudCxcbiAgVHdlZW5TdGF0ZSxcbiAgQXVkaW9FdmVudCxcbiAgRW5naW5lSW5mbyxcbiAgR2x0ZkNvbnRhaW5lckxvYWRpbmdTdGF0ZSxcbiAgUG9pbnRlckV2ZW50c1Jlc3VsdCxcbiAgUmF5Y2FzdFJlc3VsdCxcbiAgUmVhbG1JbmZvLFxuICBVaURyb3Bkb3duLFxuICBVaURyb3Bkb3duUmVzdWx0LFxuICBVaUlucHV0LFxuICBVaUlucHV0UmVzdWx0LFxuICBVaVRyYW5zZm9ybSxcbiAgVWlUZXh0XG5dXG5cbmV4cG9ydCBjb25zdCBOT1RfU1lOQ19DT01QT05FTlRTX0lEUyA9IE5PVF9TWU5DX0NPTVBPTkVOVFMubWFwKCgkKSA9PiAkLmNvbXBvbmVudElkKVxuZXhwb3J0IGNvbnN0IE5PVF9TWU5DX0NPTVBPTkVOVFNfTkFNRVM6IHN0cmluZ1tdID0gW1xuICAnYXNzZXQtcGFja3M6OlNjcmlwdCcgLy8gQ29tcG9uZW50TmFtZSBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vZGVjZW50cmFsYW5kL2Fzc2V0LXBhY2tzL2Jsb2IvbWFpbi9zcmMvZW51bXMudHNcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFN5bmNDb21wb25lbnQoY29tcG9uZW50OiBDb21wb25lbnREZWZpbml0aW9uPHVua25vd24+KTogYm9vbGVhbiB7XG4gIHJldHVybiAhKFxuICAgIE5PVF9TWU5DX0NPTVBPTkVOVFNfSURTLmluY2x1ZGVzKGNvbXBvbmVudC5jb21wb25lbnRJZCkgfHxcbiAgICBOT1RfU1lOQ19DT01QT05FTlRTX05BTUVTLmluY2x1ZGVzKGNvbXBvbmVudC5jb21wb25lbnROYW1lKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXN5bmNlZENvbXBvbmVudHMoZW5naW5lOiBJRW5naW5lKTogQ29tcG9uZW50RGVmaW5pdGlvbjx1bmtub3duPltdIHtcbiAgcmV0dXJuIFsuLi5OT1RfU1lOQ19DT01QT05FTlRTLCAuLi5OT1RfU1lOQ19DT01QT05FTlRTX05BTUVTLm1hcCgoJCkgPT4gZW5naW5lLmdldENvbXBvbmVudE9yTnVsbCgkKSldLmZpbHRlcihcbiAgICBCb29sZWFuXG4gICkgYXMgQ29tcG9uZW50RGVmaW5pdGlvbjx1bmtub3duPltdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmdpbmVUb0NyZHQoZW5naW5lOiBJRW5naW5lKTogVWludDhBcnJheVtdIHtcbiAgY29uc3QgY3JkdEJ1ZmZlciA9IG5ldyBSZWFkV3JpdGVCeXRlQnVmZmVyKClcbiAgY29uc3QgbmV0d29ya0J1ZmZlciA9IG5ldyBSZWFkV3JpdGVCeXRlQnVmZmVyKClcbiAgY29uc3QgTmV0d29ya0VudGl0eSA9IGVuZ2luZS5nZXRDb21wb25lbnQoX05ldHdvcmtFbnRpdHkuY29tcG9uZW50SWQpIGFzIElOZXRvd3JrRW50aXR5XG4gIGNvbnN0IGNodW5rczogVWludDhBcnJheVtdID0gW11cblxuICBmb3IgKGNvbnN0IGl0Q29tcG9uZW50RGVmaW5pdGlvbiBvZiBlbmdpbmUuY29tcG9uZW50c0l0ZXIoKSkge1xuICAgIGlmICghc2hvdWxkU3luY0NvbXBvbmVudChpdENvbXBvbmVudERlZmluaXRpb24pKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpdENvbXBvbmVudERlZmluaXRpb24uZHVtcENyZHRTdGF0ZVRvQnVmZmVyKGNyZHRCdWZmZXIsIChlbnRpdHkpID0+IHtcbiAgICAgIGNvbnN0IGlzTmV0d29ya0VudGl0eSA9IE5ldHdvcmtFbnRpdHkuaGFzKGVudGl0eSlcbiAgICAgIHJldHVybiBpc05ldHdvcmtFbnRpdHlcbiAgICB9KVxuICB9XG5cbiAgbGV0IGhlYWRlcjogQ3JkdE1lc3NhZ2VIZWFkZXIgfCBudWxsXG4gIHdoaWxlICgoaGVhZGVyID0gQ3JkdE1lc3NhZ2VQcm90b2NvbC5nZXRIZWFkZXIoY3JkdEJ1ZmZlcikpKSB7XG4gICAgaWYgKGhlYWRlci50eXBlID09PSBDcmR0TWVzc2FnZVR5cGUuUFVUX0NPTVBPTkVOVCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IFB1dENvbXBvbmVudE9wZXJhdGlvbi5yZWFkKGNyZHRCdWZmZXIpIVxuICAgICAgY29uc3QgbmV0d29ya0VudGl0eSA9IE5ldHdvcmtFbnRpdHkuZ2V0T3JOdWxsKG1lc3NhZ2UuZW50aXR5SWQpXG5cbiAgICAgIC8vIENoZWNrIGlmIGFkZGluZyB0aGlzIG1lc3NhZ2Ugd291bGQgZXhjZWVkIHRoZSBzaXplIGxpbWl0XG4gICAgICBjb25zdCBjdXJyZW50QnVmZmVyU2l6ZSA9IG5ldHdvcmtCdWZmZXIudG9CaW5hcnkoKS5ieXRlTGVuZ3RoXG4gICAgICBjb25zdCBtZXNzYWdlU2l6ZSA9IG1lc3NhZ2UuZGF0YS5ieXRlTGVuZ3RoXG5cbiAgICAgIGlmICgoY3VycmVudEJ1ZmZlclNpemUgKyBtZXNzYWdlU2l6ZSkgLyAxMDI0ID4gTElWRUtJVF9NQVhfU0laRSkge1xuICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBidWZmZXIgaGFzIGNvbnRlbnQsIHNhdmUgaXQgYXMgYSBjaHVua1xuICAgICAgICBpZiAoY3VycmVudEJ1ZmZlclNpemUgPiAwKSB7XG4gICAgICAgICAgY2h1bmtzLnB1c2gobmV0d29ya0J1ZmZlci50b0NvcGllZEJpbmFyeSgpKVxuICAgICAgICAgIG5ldHdvcmtCdWZmZXIucmVzZXRCdWZmZXIoKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIG1lc3NhZ2UgaXRzZWxmIGlzIGxhcmdlciB0aGFuIHRoZSBsaW1pdCwgd2UgbmVlZCB0byBoYW5kbGUgaXQgc3BlY2lhbGx5XG4gICAgICAgIC8vIEZvciBub3csIHdlJ2xsIHNraXAgaXQgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuICAgICAgICBpZiAobWVzc2FnZVNpemUgLyAxMDI0ID4gTElWRUtJVF9NQVhfU0laRSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBgTWVzc2FnZSB0b28gbGFyZ2UgKCR7bWVzc2FnZVNpemV9IGJ5dGVzKSwgc2tpcHBpbmcgY29tcG9uZW50ICR7bWVzc2FnZS5jb21wb25lbnRJZH0gZm9yIGVudGl0eSAke21lc3NhZ2UuZW50aXR5SWR9YFxuICAgICAgICAgIClcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXR3b3JrRW50aXR5KSB7XG4gICAgICAgIFB1dE5ldHdvcmtDb21wb25lbnRPcGVyYXRpb24ud3JpdGUoXG4gICAgICAgICAgbmV0d29ya0VudGl0eS5lbnRpdHlJZCxcbiAgICAgICAgICBtZXNzYWdlLnRpbWVzdGFtcCxcbiAgICAgICAgICBtZXNzYWdlLmNvbXBvbmVudElkLFxuICAgICAgICAgIG5ldHdvcmtFbnRpdHkubmV0d29ya0lkLFxuICAgICAgICAgIG1lc3NhZ2UuZGF0YSxcbiAgICAgICAgICBuZXR3b3JrQnVmZmVyXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY3JkdEJ1ZmZlci5pbmNyZW1lbnRSZWFkT2Zmc2V0KGhlYWRlci5sZW5ndGgpXG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIGFueSByZW1haW5pbmcgZGF0YSBhcyB0aGUgZmluYWwgY2h1bmtcbiAgaWYgKG5ldHdvcmtCdWZmZXIuY3VycmVudFdyaXRlT2Zmc2V0KCkgPiAwKSB7XG4gICAgY2h1bmtzLnB1c2gobmV0d29ya0J1ZmZlci50b0JpbmFyeSgpKVxuICB9XG5cbiAgcmV0dXJuIGNodW5rc1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/sdk",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "7.14.1-
|
|
4
|
+
"version": "7.14.1-20045215093.commit-89d4260",
|
|
5
5
|
"author": "Decentraland",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@dcl/ecs": "7.14.1-
|
|
7
|
+
"@dcl/ecs": "7.14.1-20045215093.commit-89d4260",
|
|
8
8
|
"@dcl/ecs-math": "2.1.0",
|
|
9
9
|
"@dcl/explorer": "1.0.164509-20240802172549.commit-fb95b9b",
|
|
10
|
-
"@dcl/js-runtime": "7.14.1-
|
|
11
|
-
"@dcl/react-ecs": "7.14.1-
|
|
12
|
-
"@dcl/sdk-commands": "7.14.1-
|
|
10
|
+
"@dcl/js-runtime": "7.14.1-20045215093.commit-89d4260",
|
|
11
|
+
"@dcl/react-ecs": "7.14.1-20045215093.commit-89d4260",
|
|
12
|
+
"@dcl/sdk-commands": "7.14.1-20045215093.commit-89d4260",
|
|
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": "89d426007b332d3ae47c6d00f44138046533f854"
|
|
39
39
|
}
|
package/src/network/entities.ts
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
ISyncComponents
|
|
12
12
|
} from '@dcl/ecs'
|
|
13
13
|
import { IProfile } from './message-bus-sync'
|
|
14
|
-
import {
|
|
14
|
+
import { getDesyncedComponents } from './state'
|
|
15
15
|
|
|
16
16
|
export type SyncEntity = (entityId: Entity, componentIds: number[], entityEnumId?: number) => void
|
|
17
17
|
|
|
@@ -49,7 +49,7 @@ export function entityUtils(engine: IEngine, profile: IProfile) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
for (const component of
|
|
52
|
+
for (const component of getDesyncedComponents(engine)) {
|
|
53
53
|
if (componentsIdsMutable.includes(component.componentId)) {
|
|
54
54
|
console.log(`⚠️ ${component.componentName} can't be sync through the network!`)
|
|
55
55
|
componentsIdsMutable = componentsIdsMutable.filter(($) => $ !== component.componentId)
|
package/src/network/filter.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
NetworkParent as _NetworkParent,
|
|
9
9
|
IEngine
|
|
10
10
|
} from '@dcl/ecs'
|
|
11
|
-
import {
|
|
11
|
+
import { shouldSyncComponent } from './state'
|
|
12
12
|
|
|
13
13
|
export function syncFilter(engine: IEngine) {
|
|
14
14
|
const NetworkEntity = engine.getComponent(_NetworkEntity.componentId) as typeof _NetworkEntity
|
|
@@ -16,8 +16,8 @@ export function syncFilter(engine: IEngine) {
|
|
|
16
16
|
|
|
17
17
|
return function (message: Omit<TransportMessage, 'messageBuffer'>) {
|
|
18
18
|
const componentId = (message as any).componentId
|
|
19
|
-
|
|
20
|
-
if (
|
|
19
|
+
const component = componentId ? engine.getComponentOrNull(componentId) : null
|
|
20
|
+
if (component && !shouldSyncComponent(component)) {
|
|
21
21
|
return false
|
|
22
22
|
}
|
|
23
23
|
|
package/src/network/state.ts
CHANGED
|
@@ -22,11 +22,12 @@ import {
|
|
|
22
22
|
UiInput,
|
|
23
23
|
UiInputResult,
|
|
24
24
|
UiText,
|
|
25
|
-
UiTransform
|
|
25
|
+
UiTransform,
|
|
26
|
+
ComponentDefinition
|
|
26
27
|
} from '@dcl/ecs'
|
|
27
28
|
import { LIVEKIT_MAX_SIZE } from '@dcl/ecs/dist/systems/crdt'
|
|
28
29
|
|
|
29
|
-
export const NOT_SYNC_COMPONENTS = [
|
|
30
|
+
export const NOT_SYNC_COMPONENTS: ComponentDefinition<unknown>[] = [
|
|
30
31
|
VideoEvent,
|
|
31
32
|
TweenState,
|
|
32
33
|
AudioEvent,
|
|
@@ -44,6 +45,22 @@ export const NOT_SYNC_COMPONENTS = [
|
|
|
44
45
|
]
|
|
45
46
|
|
|
46
47
|
export const NOT_SYNC_COMPONENTS_IDS = NOT_SYNC_COMPONENTS.map(($) => $.componentId)
|
|
48
|
+
export const NOT_SYNC_COMPONENTS_NAMES: string[] = [
|
|
49
|
+
'asset-packs::Script' // ComponentName from: https://github.com/decentraland/asset-packs/blob/main/src/enums.ts
|
|
50
|
+
]
|
|
51
|
+
|
|
52
|
+
export function shouldSyncComponent(component: ComponentDefinition<unknown>): boolean {
|
|
53
|
+
return !(
|
|
54
|
+
NOT_SYNC_COMPONENTS_IDS.includes(component.componentId) ||
|
|
55
|
+
NOT_SYNC_COMPONENTS_NAMES.includes(component.componentName)
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function getDesyncedComponents(engine: IEngine): ComponentDefinition<unknown>[] {
|
|
60
|
+
return [...NOT_SYNC_COMPONENTS, ...NOT_SYNC_COMPONENTS_NAMES.map(($) => engine.getComponentOrNull($))].filter(
|
|
61
|
+
Boolean
|
|
62
|
+
) as ComponentDefinition<unknown>[]
|
|
63
|
+
}
|
|
47
64
|
|
|
48
65
|
export function engineToCrdt(engine: IEngine): Uint8Array[] {
|
|
49
66
|
const crdtBuffer = new ReadWriteByteBuffer()
|
|
@@ -52,7 +69,7 @@ export function engineToCrdt(engine: IEngine): Uint8Array[] {
|
|
|
52
69
|
const chunks: Uint8Array[] = []
|
|
53
70
|
|
|
54
71
|
for (const itComponentDefinition of engine.componentsIter()) {
|
|
55
|
-
if (
|
|
72
|
+
if (!shouldSyncComponent(itComponentDefinition)) {
|
|
56
73
|
continue
|
|
57
74
|
}
|
|
58
75
|
itComponentDefinition.dumpCrdtStateToBuffer(crdtBuffer, (entity) => {
|