@dcl/sdk 7.6.8-12415739875.commit-c9a0fe7 → 7.6.8-12529128672.commit-d6adcb3

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/index.js CHANGED
@@ -18,6 +18,7 @@ export async function onUpdate(deltaTime) {
18
18
  * Function that is called before the first update and after the evaluation of the code.
19
19
  */
20
20
  export async function onStart() {
21
+ const rendererMessageInspector = globalThis.rendererMessageInspector;
21
22
  const response = await crdtGetState({ data: new Uint8Array() });
22
23
  // when this condition is true something like `main.crdt` was pre-loaded from the runtime, we don't need to instance the main.composite
23
24
  if (!response.hasEntities) {
@@ -34,10 +35,13 @@ export async function onStart() {
34
35
  }
35
36
  if (!!rendererTransport.onmessage) {
36
37
  if (response && response.data && response.data.length) {
38
+ if (rendererMessageInspector) {
39
+ rendererMessageInspector({ message: response.data, type: 'first-receive' });
40
+ }
37
41
  for (const byteArray of response.data) {
38
42
  rendererTransport.onmessage(byteArray);
39
43
  }
40
44
  }
41
45
  }
42
46
  }
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEVBQThFO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUV4RCx3QkFBd0I7QUFDeEIsWUFBWTtBQUNaLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFBO0FBQ2hGLE1BQU0sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtBQUV0QyxNQUFNLENBQUMsS0FBSyxVQUFVLFFBQVEsQ0FBQyxTQUFpQjtJQUM5QyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDYixNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDOUIsTUFBTSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDN0IsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsT0FBTztJQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUUvRCx1SUFBdUk7SUFDdkksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDekIsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUM1RSxJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJO2dCQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO2FBQzdEO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO2dCQUM3RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ25CO1NBQ0Y7S0FDRjtJQUVELElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtRQUNqQyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JELEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtnQkFDckMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2FBQ3ZDO1NBQ0Y7S0FDRjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGFscGhhIFRISVMgRklMRSBJTklUSUFMSVpFUyBUSEUgREVDRU5UUkFMQU5EIFJVTlRJTUUuIFdJTEwgQ0hBTkdFIFNPT04gKi9cbmltcG9ydCB7IENvbXBvc2l0ZSwgZW5naW5lIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBjcmR0R2V0U3RhdGUsIGNyZHRTZW5kVG9SZW5kZXJlciwgc2VuZEJhdGNoIH0gZnJvbSAnfnN5c3RlbS9FbmdpbmVBcGknXG5pbXBvcnQgeyBjcmVhdGVSZW5kZXJlclRyYW5zcG9ydCB9IGZyb20gJy4vaW50ZXJuYWwvdHJhbnNwb3J0cy9yZW5kZXJlclRyYW5zcG9ydCdcbmltcG9ydCB7IHBvbGxFdmVudHMgfSBmcm9tICcuL29ic2VydmFibGVzJ1xuaW1wb3J0IHsgY29tcG9zaXRlUHJvdmlkZXIgfSBmcm9tICcuL2NvbXBvc2l0ZS1wcm92aWRlcidcblxuLy8gQXR0YWNoIENSRFQgdHJhbnNwb3J0XG4vLyBAaW50ZXJuYWxcbmV4cG9ydCBjb25zdCByZW5kZXJlclRyYW5zcG9ydCA9IGNyZWF0ZVJlbmRlcmVyVHJhbnNwb3J0KHsgY3JkdFNlbmRUb1JlbmRlcmVyIH0pXG5lbmdpbmUuYWRkVHJhbnNwb3J0KHJlbmRlcmVyVHJhbnNwb3J0KVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gb25VcGRhdGUoZGVsdGFUaW1lOiBudW1iZXIpIHtcbiAgZW5naW5lLnNlYWwoKVxuICBhd2FpdCBlbmdpbmUudXBkYXRlKGRlbHRhVGltZSlcbiAgYXdhaXQgcG9sbEV2ZW50cyhzZW5kQmF0Y2gpXG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBGdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBiZWZvcmUgdGhlIGZpcnN0IHVwZGF0ZSBhbmQgYWZ0ZXIgdGhlIGV2YWx1YXRpb24gb2YgdGhlIGNvZGUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvblN0YXJ0KCkge1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNyZHRHZXRTdGF0ZSh7IGRhdGE6IG5ldyBVaW50OEFycmF5KCkgfSlcblxuICAvLyB3aGVuIHRoaXMgY29uZGl0aW9uIGlzIHRydWUgc29tZXRoaW5nIGxpa2UgYG1haW4uY3JkdGAgd2FzIHByZS1sb2FkZWQgZnJvbSB0aGUgcnVudGltZSwgd2UgZG9uJ3QgbmVlZCB0byBpbnN0YW5jZSB0aGUgbWFpbi5jb21wb3NpdGVcbiAgaWYgKCFyZXNwb25zZS5oYXNFbnRpdGllcykge1xuICAgIGNvbnN0IG1haW5Db21wb3NpdGUgPSBjb21wb3NpdGVQcm92aWRlci5nZXRDb21wb3NpdGVPck51bGwoJ21haW4uY29tcG9zaXRlJylcbiAgICBpZiAobWFpbkNvbXBvc2l0ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgQ29tcG9zaXRlLmluc3RhbmNlKGVuZ2luZSwgbWFpbkNvbXBvc2l0ZSwgY29tcG9zaXRlUHJvdmlkZXIpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFdhcm5pbmc6IG1haW4uY29tcG9zaXRlIGNvdWxkbid0IGJlIGluc3RhbmNlZC5gKVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoISFyZW5kZXJlclRyYW5zcG9ydC5vbm1lc3NhZ2UpIHtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZGF0YSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aCkge1xuICAgICAgZm9yIChjb25zdCBieXRlQXJyYXkgb2YgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICByZW5kZXJlclRyYW5zcG9ydC5vbm1lc3NhZ2UoYnl0ZUFycmF5KVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEVBQThFO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUE4QixNQUFNLHlDQUF5QyxDQUFBO0FBQzdHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFeEQsd0JBQXdCO0FBQ3hCLFlBQVk7QUFDWixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQTtBQUNoRixNQUFNLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUE7QUFFdEMsTUFBTSxDQUFDLEtBQUssVUFBVSxRQUFRLENBQUMsU0FBaUI7SUFDOUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ2IsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQzlCLE1BQU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQzdCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU87SUFDM0IsTUFBTSx3QkFBd0IsR0FBZ0MsVUFBa0IsQ0FBQyx3QkFBd0IsQ0FBQTtJQUN6RyxNQUFNLFFBQVEsR0FBRyxNQUFNLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUUvRCx1SUFBdUk7SUFDdkksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDekIsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUM1RSxJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJO2dCQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO2FBQzdEO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFBO2dCQUM3RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ25CO1NBQ0Y7S0FDRjtJQUVELElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtRQUNqQyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JELElBQUksd0JBQXdCLEVBQUU7Z0JBQzVCLHdCQUF3QixDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUE7YUFDNUU7WUFDRCxLQUFLLE1BQU0sU0FBUyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQTthQUN2QztTQUNGO0tBQ0Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBhbHBoYSBUSElTIEZJTEUgSU5JVElBTElaRVMgVEhFIERFQ0VOVFJBTEFORCBSVU5USU1FLiBXSUxMIENIQU5HRSBTT09OICovXG5pbXBvcnQgeyBDb21wb3NpdGUsIGVuZ2luZSB9IGZyb20gJ0BkY2wvZWNzJ1xuaW1wb3J0IHsgY3JkdEdldFN0YXRlLCBjcmR0U2VuZFRvUmVuZGVyZXIsIHNlbmRCYXRjaCB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuaW1wb3J0IHsgY3JlYXRlUmVuZGVyZXJUcmFuc3BvcnQsIEVuZ2luZUFwaVJlbmRlcmVySW5zcGVjdG9yIH0gZnJvbSAnLi9pbnRlcm5hbC90cmFuc3BvcnRzL3JlbmRlcmVyVHJhbnNwb3J0J1xuaW1wb3J0IHsgcG9sbEV2ZW50cyB9IGZyb20gJy4vb2JzZXJ2YWJsZXMnXG5pbXBvcnQgeyBjb21wb3NpdGVQcm92aWRlciB9IGZyb20gJy4vY29tcG9zaXRlLXByb3ZpZGVyJ1xuXG4vLyBBdHRhY2ggQ1JEVCB0cmFuc3BvcnRcbi8vIEBpbnRlcm5hbFxuZXhwb3J0IGNvbnN0IHJlbmRlcmVyVHJhbnNwb3J0ID0gY3JlYXRlUmVuZGVyZXJUcmFuc3BvcnQoeyBjcmR0U2VuZFRvUmVuZGVyZXIgfSlcbmVuZ2luZS5hZGRUcmFuc3BvcnQocmVuZGVyZXJUcmFuc3BvcnQpXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvblVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xuICBlbmdpbmUuc2VhbCgpXG4gIGF3YWl0IGVuZ2luZS51cGRhdGUoZGVsdGFUaW1lKVxuICBhd2FpdCBwb2xsRXZlbnRzKHNlbmRCYXRjaClcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqIEZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdXBkYXRlIGFuZCBhZnRlciB0aGUgZXZhbHVhdGlvbiBvZiB0aGUgY29kZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9uU3RhcnQoKSB7XG4gIGNvbnN0IHJlbmRlcmVyTWVzc2FnZUluc3BlY3RvcjogRW5naW5lQXBpUmVuZGVyZXJJbnNwZWN0b3IgPSAoZ2xvYmFsVGhpcyBhcyBhbnkpLnJlbmRlcmVyTWVzc2FnZUluc3BlY3RvclxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNyZHRHZXRTdGF0ZSh7IGRhdGE6IG5ldyBVaW50OEFycmF5KCkgfSlcblxuICAvLyB3aGVuIHRoaXMgY29uZGl0aW9uIGlzIHRydWUgc29tZXRoaW5nIGxpa2UgYG1haW4uY3JkdGAgd2FzIHByZS1sb2FkZWQgZnJvbSB0aGUgcnVudGltZSwgd2UgZG9uJ3QgbmVlZCB0byBpbnN0YW5jZSB0aGUgbWFpbi5jb21wb3NpdGVcbiAgaWYgKCFyZXNwb25zZS5oYXNFbnRpdGllcykge1xuICAgIGNvbnN0IG1haW5Db21wb3NpdGUgPSBjb21wb3NpdGVQcm92aWRlci5nZXRDb21wb3NpdGVPck51bGwoJ21haW4uY29tcG9zaXRlJylcbiAgICBpZiAobWFpbkNvbXBvc2l0ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgQ29tcG9zaXRlLmluc3RhbmNlKGVuZ2luZSwgbWFpbkNvbXBvc2l0ZSwgY29tcG9zaXRlUHJvdmlkZXIpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFdhcm5pbmc6IG1haW4uY29tcG9zaXRlIGNvdWxkbid0IGJlIGluc3RhbmNlZC5gKVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoISFyZW5kZXJlclRyYW5zcG9ydC5vbm1lc3NhZ2UpIHtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZGF0YSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aCkge1xuICAgICAgaWYgKHJlbmRlcmVyTWVzc2FnZUluc3BlY3Rvcikge1xuICAgICAgICByZW5kZXJlck1lc3NhZ2VJbnNwZWN0b3IoeyBtZXNzYWdlOiByZXNwb25zZS5kYXRhLCB0eXBlOiAnZmlyc3QtcmVjZWl2ZScgfSlcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgYnl0ZUFycmF5IG9mIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgcmVuZGVyZXJUcmFuc3BvcnQub25tZXNzYWdlKGJ5dGVBcnJheSlcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,10 @@
1
1
  /// <reference types="@dcl/js-runtime" />
2
2
  import { Transport } from '@dcl/ecs';
3
3
  import type { CrdtSendToRendererRequest, CrdtSendToResponse } from '~system/EngineApi';
4
+ export type EngineApiRendererInspector = ((data: {
5
+ message: Uint8Array[];
6
+ type: 'send' | 'receive' | 'first-receive';
7
+ }) => void) | undefined;
4
8
  export type EngineApiForTransport = {
5
9
  crdtSendToRenderer(body: CrdtSendToRendererRequest): Promise<CrdtSendToResponse>;
6
10
  };
@@ -1,10 +1,17 @@
1
1
  import { MAX_STATIC_COMPONENT } from '@dcl/ecs/dist/components/component-number';
2
2
  export function createRendererTransport(engineApi) {
3
3
  async function sendToRenderer(message) {
4
+ const rendererMessageInspector = globalThis.rendererMessageInspector;
5
+ if (rendererMessageInspector) {
6
+ rendererMessageInspector({ message: [message], type: 'send' });
7
+ }
4
8
  const response = await engineApi.crdtSendToRenderer({
5
9
  data: new Uint8Array(message)
6
10
  });
7
11
  if (response && response.data && response.data.length) {
12
+ if (rendererMessageInspector) {
13
+ rendererMessageInspector({ message: response.data, type: 'receive' });
14
+ }
8
15
  if (rendererTransport.onmessage) {
9
16
  for (const byteArray of response.data) {
10
17
  rendererTransport.onmessage(byteArray);
@@ -37,4 +44,4 @@ export function createRendererTransport(engineApi) {
37
44
  };
38
45
  return rendererTransport;
39
46
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXJUcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvdHJhbnNwb3J0cy9yZW5kZXJlclRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQU9oRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBZ0M7SUFDdEUsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUFtQjtRQUMvQyxNQUFNLFFBQVEsR0FBRyxNQUFNLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztZQUNsRCxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO1NBQzlCLENBQUMsQ0FBQTtRQUNGLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckQsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7Z0JBQy9CLEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDckMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2lCQUN2QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBYztRQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDaEIsSUFBSTtnQkFDRixNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTthQUM5QjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLHlDQUF5QztnQkFDekMsc0NBQXNDO2dCQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUNwQixRQUFRLENBQUE7YUFDVDtRQUNILENBQUM7UUFDRCxNQUFNLENBQUMsT0FBeUI7WUFDOUIsa0RBQWtEO1lBQ2xEO1lBQ0UsOENBQThDO1lBQzdDLE9BQWUsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLEVBQ25EO2dCQUNBLE9BQU8sS0FBSyxDQUFBO2FBQ2I7WUFFRCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFDbEIsQ0FBQztRQUNELElBQUksRUFBRSxVQUFVO0tBQ2pCLENBQUE7SUFFRCxPQUFPLGlCQUFpQixDQUFBO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc3BvcnQsIFRyYW5zcG9ydE1lc3NhZ2UgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1BWF9TVEFUSUNfQ09NUE9ORU5UIH0gZnJvbSAnQGRjbC9lY3MvZGlzdC9jb21wb25lbnRzL2NvbXBvbmVudC1udW1iZXInXG5pbXBvcnQgdHlwZSB7IENyZHRTZW5kVG9SZW5kZXJlclJlcXVlc3QsIENyZHRTZW5kVG9SZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuXG5leHBvcnQgdHlwZSBFbmdpbmVBcGlGb3JUcmFuc3BvcnQgPSB7XG4gIGNyZHRTZW5kVG9SZW5kZXJlcihib2R5OiBDcmR0U2VuZFRvUmVuZGVyZXJSZXF1ZXN0KTogUHJvbWlzZTxDcmR0U2VuZFRvUmVzcG9uc2U+XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZW5kZXJlclRyYW5zcG9ydChlbmdpbmVBcGk6IEVuZ2luZUFwaUZvclRyYW5zcG9ydCk6IFRyYW5zcG9ydCB7XG4gIGFzeW5jIGZ1bmN0aW9uIHNlbmRUb1JlbmRlcmVyKG1lc3NhZ2U6IFVpbnQ4QXJyYXkpIHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGVuZ2luZUFwaS5jcmR0U2VuZFRvUmVuZGVyZXIoe1xuICAgICAgZGF0YTogbmV3IFVpbnQ4QXJyYXkobWVzc2FnZSlcbiAgICB9KVxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5kYXRhICYmIHJlc3BvbnNlLmRhdGEubGVuZ3RoKSB7XG4gICAgICBpZiAocmVuZGVyZXJUcmFuc3BvcnQub25tZXNzYWdlKSB7XG4gICAgICAgIGZvciAoY29uc3QgYnl0ZUFycmF5IG9mIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICByZW5kZXJlclRyYW5zcG9ydC5vbm1lc3NhZ2UoYnl0ZUFycmF5KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVuZGVyZXJUcmFuc3BvcnQ6IFRyYW5zcG9ydCA9IHtcbiAgICBhc3luYyBzZW5kKG1lc3NhZ2UpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHNlbmRUb1JlbmRlcmVyKG1lc3NhZ2UpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyB0aGlzIGlzIHRoZSBjb25zb2xlLmVycm9yIG9mIHRoZSBzY2VuZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgICAgICBkZWJ1Z2dlclxuICAgICAgfVxuICAgIH0sXG4gICAgZmlsdGVyKG1lc3NhZ2U6IFRyYW5zcG9ydE1lc3NhZ2UpIHtcbiAgICAgIC8vIE9ubHkgc2VuZCByZW5kZXJlciBjb21wb25lbnRzIChQcm90byBHZW5lcmF0ZWQpXG4gICAgICBpZiAoXG4gICAgICAgIC8vIGZpbHRlciBvdXQgbWVzc2FnZXMgZm9yIG5vbi1jb3JlIGNvbXBvbmVudHNcbiAgICAgICAgKG1lc3NhZ2UgYXMgYW55KS5jb21wb25lbnRJZCA+IE1BWF9TVEFUSUNfQ09NUE9ORU5UXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAhIW1lc3NhZ2VcbiAgICB9LFxuICAgIHR5cGU6ICdyZW5kZXJlcidcbiAgfVxuXG4gIHJldHVybiByZW5kZXJlclRyYW5zcG9ydFxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyZXJUcmFuc3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW50ZXJuYWwvdHJhbnNwb3J0cy9yZW5kZXJlclRyYW5zcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQTtBQVdoRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBZ0M7SUFDdEUsS0FBSyxVQUFVLGNBQWMsQ0FBQyxPQUFtQjtRQUMvQyxNQUFNLHdCQUF3QixHQUFnQyxVQUFrQixDQUFDLHdCQUF3QixDQUFBO1FBRXpHLElBQUksd0JBQXdCLEVBQUU7WUFDNUIsd0JBQXdCLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQTtTQUMvRDtRQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLGtCQUFrQixDQUFDO1lBQ2xELElBQUksRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUM7U0FDOUIsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyRCxJQUFJLHdCQUF3QixFQUFFO2dCQUM1Qix3QkFBd0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFBO2FBQ3RFO1lBRUQsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUU7Z0JBQy9CLEtBQUssTUFBTSxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDckMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFBO2lCQUN2QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxpQkFBaUIsR0FBYztRQUNuQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDaEIsSUFBSTtnQkFDRixNQUFNLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTthQUM5QjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLHlDQUF5QztnQkFDekMsc0NBQXNDO2dCQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO2dCQUNwQixRQUFRLENBQUE7YUFDVDtRQUNILENBQUM7UUFDRCxNQUFNLENBQUMsT0FBeUI7WUFDOUIsa0RBQWtEO1lBQ2xEO1lBQ0UsOENBQThDO1lBQzdDLE9BQWUsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLEVBQ25EO2dCQUNBLE9BQU8sS0FBSyxDQUFBO2FBQ2I7WUFFRCxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFDbEIsQ0FBQztRQUNELElBQUksRUFBRSxVQUFVO0tBQ2pCLENBQUE7SUFFRCxPQUFPLGlCQUFpQixDQUFBO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc3BvcnQsIFRyYW5zcG9ydE1lc3NhZ2UgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IE1BWF9TVEFUSUNfQ09NUE9ORU5UIH0gZnJvbSAnQGRjbC9lY3MvZGlzdC9jb21wb25lbnRzL2NvbXBvbmVudC1udW1iZXInXG5pbXBvcnQgdHlwZSB7IENyZHRTZW5kVG9SZW5kZXJlclJlcXVlc3QsIENyZHRTZW5kVG9SZXNwb25zZSB9IGZyb20gJ35zeXN0ZW0vRW5naW5lQXBpJ1xuXG5leHBvcnQgdHlwZSBFbmdpbmVBcGlSZW5kZXJlckluc3BlY3RvciA9XG4gIHwgKChkYXRhOiB7IG1lc3NhZ2U6IFVpbnQ4QXJyYXlbXTsgdHlwZTogJ3NlbmQnIHwgJ3JlY2VpdmUnIHwgJ2ZpcnN0LXJlY2VpdmUnIH0pID0+IHZvaWQpXG4gIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCB0eXBlIEVuZ2luZUFwaUZvclRyYW5zcG9ydCA9IHtcbiAgY3JkdFNlbmRUb1JlbmRlcmVyKGJvZHk6IENyZHRTZW5kVG9SZW5kZXJlclJlcXVlc3QpOiBQcm9taXNlPENyZHRTZW5kVG9SZXNwb25zZT5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlbmRlcmVyVHJhbnNwb3J0KGVuZ2luZUFwaTogRW5naW5lQXBpRm9yVHJhbnNwb3J0KTogVHJhbnNwb3J0IHtcbiAgYXN5bmMgZnVuY3Rpb24gc2VuZFRvUmVuZGVyZXIobWVzc2FnZTogVWludDhBcnJheSkge1xuICAgIGNvbnN0IHJlbmRlcmVyTWVzc2FnZUluc3BlY3RvcjogRW5naW5lQXBpUmVuZGVyZXJJbnNwZWN0b3IgPSAoZ2xvYmFsVGhpcyBhcyBhbnkpLnJlbmRlcmVyTWVzc2FnZUluc3BlY3RvclxuXG4gICAgaWYgKHJlbmRlcmVyTWVzc2FnZUluc3BlY3Rvcikge1xuICAgICAgcmVuZGVyZXJNZXNzYWdlSW5zcGVjdG9yKHsgbWVzc2FnZTogW21lc3NhZ2VdLCB0eXBlOiAnc2VuZCcgfSlcbiAgICB9XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBlbmdpbmVBcGkuY3JkdFNlbmRUb1JlbmRlcmVyKHtcbiAgICAgIGRhdGE6IG5ldyBVaW50OEFycmF5KG1lc3NhZ2UpXG4gICAgfSlcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuZGF0YSAmJiByZXNwb25zZS5kYXRhLmxlbmd0aCkge1xuICAgICAgaWYgKHJlbmRlcmVyTWVzc2FnZUluc3BlY3Rvcikge1xuICAgICAgICByZW5kZXJlck1lc3NhZ2VJbnNwZWN0b3IoeyBtZXNzYWdlOiByZXNwb25zZS5kYXRhLCB0eXBlOiAncmVjZWl2ZScgfSlcbiAgICAgIH1cblxuICAgICAgaWYgKHJlbmRlcmVyVHJhbnNwb3J0Lm9ubWVzc2FnZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGJ5dGVBcnJheSBvZiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgcmVuZGVyZXJUcmFuc3BvcnQub25tZXNzYWdlKGJ5dGVBcnJheSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlbmRlcmVyVHJhbnNwb3J0OiBUcmFuc3BvcnQgPSB7XG4gICAgYXN5bmMgc2VuZChtZXNzYWdlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzZW5kVG9SZW5kZXJlcihtZXNzYWdlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgLy8gdGhpcyBpcyB0aGUgY29uc29sZS5lcnJvciBvZiB0aGUgc2NlbmVcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgICAgZGVidWdnZXJcbiAgICAgIH1cbiAgICB9LFxuICAgIGZpbHRlcihtZXNzYWdlOiBUcmFuc3BvcnRNZXNzYWdlKSB7XG4gICAgICAvLyBPbmx5IHNlbmQgcmVuZGVyZXIgY29tcG9uZW50cyAoUHJvdG8gR2VuZXJhdGVkKVxuICAgICAgaWYgKFxuICAgICAgICAvLyBmaWx0ZXIgb3V0IG1lc3NhZ2VzIGZvciBub24tY29yZSBjb21wb25lbnRzXG4gICAgICAgIChtZXNzYWdlIGFzIGFueSkuY29tcG9uZW50SWQgPiBNQVhfU1RBVElDX0NPTVBPTkVOVFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gISFtZXNzYWdlXG4gICAgfSxcbiAgICB0eXBlOiAncmVuZGVyZXInXG4gIH1cblxuICByZXR1cm4gcmVuZGVyZXJUcmFuc3BvcnRcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@dcl/sdk",
3
3
  "description": "",
4
- "version": "7.6.8-12415739875.commit-c9a0fe7",
4
+ "version": "7.6.8-12529128672.commit-d6adcb3",
5
5
  "author": "Decentraland",
6
6
  "dependencies": {
7
- "@dcl/ecs": "7.6.8-12415739875.commit-c9a0fe7",
7
+ "@dcl/ecs": "7.6.8-12529128672.commit-d6adcb3",
8
8
  "@dcl/ecs-math": "2.1.0",
9
9
  "@dcl/explorer": "1.0.164509-20240802172549.commit-fb95b9b",
10
- "@dcl/js-runtime": "7.6.8-12415739875.commit-c9a0fe7",
11
- "@dcl/react-ecs": "7.6.8-12415739875.commit-c9a0fe7",
12
- "@dcl/sdk-commands": "7.6.8-12415739875.commit-c9a0fe7",
10
+ "@dcl/js-runtime": "7.6.8-12529128672.commit-d6adcb3",
11
+ "@dcl/react-ecs": "7.6.8-12529128672.commit-d6adcb3",
12
+ "@dcl/sdk-commands": "7.6.8-12529128672.commit-d6adcb3",
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": "c9a0fe76107e97476e7c04c0184360b719543f47"
38
+ "commit": "d6adcb304e6e3df4207e35172a722c2b02401ab7"
39
39
  }
package/src/index.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /** @alpha THIS FILE INITIALIZES THE DECENTRALAND RUNTIME. WILL CHANGE SOON */
2
2
  import { Composite, engine } from '@dcl/ecs'
3
3
  import { crdtGetState, crdtSendToRenderer, sendBatch } from '~system/EngineApi'
4
- import { createRendererTransport } from './internal/transports/rendererTransport'
4
+ import { createRendererTransport, EngineApiRendererInspector } from './internal/transports/rendererTransport'
5
5
  import { pollEvents } from './observables'
6
6
  import { compositeProvider } from './composite-provider'
7
7
 
@@ -21,6 +21,7 @@ export async function onUpdate(deltaTime: number) {
21
21
  * Function that is called before the first update and after the evaluation of the code.
22
22
  */
23
23
  export async function onStart() {
24
+ const rendererMessageInspector: EngineApiRendererInspector = (globalThis as any).rendererMessageInspector
24
25
  const response = await crdtGetState({ data: new Uint8Array() })
25
26
 
26
27
  // when this condition is true something like `main.crdt` was pre-loaded from the runtime, we don't need to instance the main.composite
@@ -38,6 +39,9 @@ export async function onStart() {
38
39
 
39
40
  if (!!rendererTransport.onmessage) {
40
41
  if (response && response.data && response.data.length) {
42
+ if (rendererMessageInspector) {
43
+ rendererMessageInspector({ message: response.data, type: 'first-receive' })
44
+ }
41
45
  for (const byteArray of response.data) {
42
46
  rendererTransport.onmessage(byteArray)
43
47
  }
@@ -2,16 +2,29 @@ import { Transport, TransportMessage } from '@dcl/ecs'
2
2
  import { MAX_STATIC_COMPONENT } from '@dcl/ecs/dist/components/component-number'
3
3
  import type { CrdtSendToRendererRequest, CrdtSendToResponse } from '~system/EngineApi'
4
4
 
5
+ export type EngineApiRendererInspector =
6
+ | ((data: { message: Uint8Array[]; type: 'send' | 'receive' | 'first-receive' }) => void)
7
+ | undefined
8
+
5
9
  export type EngineApiForTransport = {
6
10
  crdtSendToRenderer(body: CrdtSendToRendererRequest): Promise<CrdtSendToResponse>
7
11
  }
8
12
 
9
13
  export function createRendererTransport(engineApi: EngineApiForTransport): Transport {
10
14
  async function sendToRenderer(message: Uint8Array) {
15
+ const rendererMessageInspector: EngineApiRendererInspector = (globalThis as any).rendererMessageInspector
16
+
17
+ if (rendererMessageInspector) {
18
+ rendererMessageInspector({ message: [message], type: 'send' })
19
+ }
11
20
  const response = await engineApi.crdtSendToRenderer({
12
21
  data: new Uint8Array(message)
13
22
  })
14
23
  if (response && response.data && response.data.length) {
24
+ if (rendererMessageInspector) {
25
+ rendererMessageInspector({ message: response.data, type: 'receive' })
26
+ }
27
+
15
28
  if (rendererTransport.onmessage) {
16
29
  for (const byteArray of response.data) {
17
30
  rendererTransport.onmessage(byteArray)