@dcl/sdk 7.24.6-29505165911.commit-d270434 → 7.24.6-29864780231.commit-4d12b50
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/composite-provider.js +4 -9
- package/internal/utf8.d.ts +15 -0
- package/internal/utf8.js +172 -0
- package/network/binary-message-bus.d.ts +3 -6
- package/network/binary-message-bus.js +5 -9
- package/network/index.d.ts +2 -8
- package/network/index.js +3 -16
- package/network/message-bus-sync.d.ts +1 -14
- package/network/message-bus-sync.js +103 -161
- package/network/state.js +5 -3
- package/package.json +6 -7
- package/src/composite-provider.ts +3 -10
- package/src/internal/utf8.ts +167 -0
- package/src/network/binary-message-bus.ts +4 -9
- package/src/network/index.ts +3 -40
- package/src/network/message-bus-sync.ts +110 -174
- package/src/network/state.ts +4 -3
- package/src/text-codec.ts +59 -12
- package/text-codec.d.ts +23 -8
- package/text-codec.js +55 -13
- package/atom.d.ts +0 -19
- package/atom.js +0 -83
- package/future.d.ts +0 -8
- package/future.js +0 -26
- package/network/chunking.d.ts +0 -5
- package/network/chunking.js +0 -38
- package/network/events/implementation.d.ts +0 -93
- package/network/events/implementation.js +0 -221
- package/network/events/index.d.ts +0 -42
- package/network/events/index.js +0 -43
- package/network/events/protocol.d.ts +0 -27
- package/network/events/protocol.js +0 -66
- package/network/events/registry.d.ts +0 -8
- package/network/events/registry.js +0 -3
- package/network/server/index.d.ts +0 -14
- package/network/server/index.js +0 -219
- package/network/server/utils.d.ts +0 -18
- package/network/server/utils.js +0 -135
- package/server/env-var.d.ts +0 -15
- package/server/env-var.js +0 -31
- package/server/index.d.ts +0 -2
- package/server/index.js +0 -3
- package/server/storage/constants.d.ts +0 -23
- package/server/storage/constants.js +0 -2
- package/server/storage/index.d.ts +0 -22
- package/server/storage/index.js +0 -29
- package/server/storage/player.d.ts +0 -43
- package/server/storage/player.js +0 -92
- package/server/storage/scene.d.ts +0 -38
- package/server/storage/scene.js +0 -90
- package/server/storage-url.d.ts +0 -10
- package/server/storage-url.js +0 -29
- package/server/utils.d.ts +0 -35
- package/server/utils.js +0 -56
- package/src/atom.ts +0 -98
- package/src/ethereum-provider/text-encoding.d.ts +0 -4
- package/src/future.ts +0 -38
- package/src/network/chunking.ts +0 -45
- package/src/network/events/implementation.ts +0 -271
- package/src/network/events/index.ts +0 -48
- package/src/network/events/protocol.ts +0 -94
- package/src/network/events/registry.ts +0 -18
- package/src/network/server/index.ts +0 -301
- package/src/network/server/utils.ts +0 -189
- package/src/server/env-var.ts +0 -36
- package/src/server/index.ts +0 -2
- package/src/server/storage/constants.ts +0 -22
- package/src/server/storage/index.ts +0 -44
- package/src/server/storage/player.ts +0 -156
- package/src/server/storage/scene.ts +0 -149
- package/src/server/storage-url.ts +0 -34
- package/src/server/utils.ts +0 -73
package/composite-provider.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { compositeFromLoader } from '~sdk/all-composites';
|
|
2
2
|
import { readFile } from '~system/Runtime';
|
|
3
|
-
import { Composite
|
|
3
|
+
import { Composite } from '@dcl/ecs';
|
|
4
|
+
import { decodeUtf8 } from './internal/utf8';
|
|
4
5
|
const composites = new Map();
|
|
5
6
|
function findCached(src) {
|
|
6
7
|
return composites.get(src) ?? null;
|
|
@@ -27,14 +28,8 @@ function decodeFromBytes(content) {
|
|
|
27
28
|
// The first-byte check is a fast path; a JSON.parse failure falls back to fromBinary
|
|
28
29
|
// because a protobuf message can also begin with 0x7b.
|
|
29
30
|
if (content[0] === 0x7b /* '{' */) {
|
|
30
|
-
const TD = getGlobal('TextDecoder');
|
|
31
|
-
if (!TD) {
|
|
32
|
-
throw new Error('loadComposite: TextDecoder is not available in this runtime. ' +
|
|
33
|
-
'Use a .composite.bin file, or import `@dcl/sdk/ethereum-provider` ' +
|
|
34
|
-
'to install the TextEncoder/TextDecoder polyfill.');
|
|
35
|
-
}
|
|
36
31
|
try {
|
|
37
|
-
return Composite.fromJson(JSON.parse(
|
|
32
|
+
return Composite.fromJson(JSON.parse(decodeUtf8(content, { fatal: true })));
|
|
38
33
|
}
|
|
39
34
|
catch {
|
|
40
35
|
return Composite.fromBinary(content);
|
|
@@ -69,4 +64,4 @@ export const compositeProvider = {
|
|
|
69
64
|
return cache(src, composite);
|
|
70
65
|
}
|
|
71
66
|
};
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NvbXBvc2l0ZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUE7QUFFeEQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFBO0FBQ3BDLENBQUM7QUFFRCxTQUFTLEtBQUssQ0FBQyxHQUFXLEVBQUUsU0FBK0I7SUFDekQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLElBQUksUUFBUTtRQUFFLE9BQU8sUUFBUSxDQUFBO0lBQzdCLE1BQU0sUUFBUSxHQUF1QixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQTtJQUN2RCxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUM3QixPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsVUFBbUI7SUFDeEQsSUFBSSxVQUFVLFlBQVksVUFBVTtRQUFFLE9BQU8sU0FBUyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUM3RSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVE7UUFBRSxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFBO0lBQ3JGLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsS0FBSyxJQUFJO1FBQUUsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2hHLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLE9BQW1CO0lBQzFDLCtFQUErRTtJQUMvRSxxRkFBcUY7SUFDckYsdURBQXVEO0lBQ3ZELElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDakMsSUFBSTtZQUNGLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDNUU7UUFBQyxNQUFNO1lBQ04sT0FBTyxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQ3JDO0tBQ0Y7SUFDRCxPQUFPLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDdEMsQ0FBQztBQUVELFVBQVU7QUFDVixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBdUI7SUFDbkQsT0FBTyxFQUFFLEVBQUU7SUFDWCxrQkFBa0IsQ0FBQyxHQUFXO1FBQzVCLE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzNDLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSTtnQkFDRixNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUE7Z0JBQ25ELElBQUksU0FBUztvQkFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFBO2FBQ3JDO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxrREFBa0QsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7YUFDN0U7WUFDRCxPQUFPLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ2hDO1FBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBVztRQUM3QixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDOUIsSUFBSSxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUE7UUFFekIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDckQsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUM5QixDQUFDO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBvc2l0ZUZyb21Mb2FkZXIgfSBmcm9tICd+c2RrL2FsbC1jb21wb3NpdGVzJ1xuaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICd+c3lzdGVtL1J1bnRpbWUnXG5pbXBvcnQgeyBDb21wb3NpdGUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IGRlY29kZVV0ZjggfSBmcm9tICcuL2ludGVybmFsL3V0ZjgnXG5cbmNvbnN0IGNvbXBvc2l0ZXMgPSBuZXcgTWFwPHN0cmluZywgQ29tcG9zaXRlLlJlc291cmNlPigpXG5cbmZ1bmN0aW9uIGZpbmRDYWNoZWQoc3JjOiBzdHJpbmcpOiBDb21wb3NpdGUuUmVzb3VyY2UgfCBudWxsIHtcbiAgcmV0dXJuIGNvbXBvc2l0ZXMuZ2V0KHNyYykgPz8gbnVsbFxufVxuXG5mdW5jdGlvbiBjYWNoZShzcmM6IHN0cmluZywgY29tcG9zaXRlOiBDb21wb3NpdGUuRGVmaW5pdGlvbik6IENvbXBvc2l0ZS5SZXNvdXJjZSB7XG4gIGNvbnN0IGV4aXN0aW5nID0gZmluZENhY2hlZChzcmMpXG4gIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nXG4gIGNvbnN0IHJlc291cmNlOiBDb21wb3NpdGUuUmVzb3VyY2UgPSB7IHNyYywgY29tcG9zaXRlIH1cbiAgY29tcG9zaXRlcy5zZXQoc3JjLCByZXNvdXJjZSlcbiAgcmV0dXJuIHJlc291cmNlXG59XG5cbmZ1bmN0aW9uIGRlY29kZUZyb21Mb2FkZXIoc3JjOiBzdHJpbmcsIGZyb21Mb2FkZXI6IHVua25vd24pOiBDb21wb3NpdGUuRGVmaW5pdGlvbiB8IG51bGwge1xuICBpZiAoZnJvbUxvYWRlciBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIHJldHVybiBDb21wb3NpdGUuZnJvbUJpbmFyeShmcm9tTG9hZGVyKVxuICBpZiAodHlwZW9mIGZyb21Mb2FkZXIgPT09ICdzdHJpbmcnKSByZXR1cm4gQ29tcG9zaXRlLmZyb21Kc29uKEpTT04ucGFyc2UoZnJvbUxvYWRlcikpXG4gIGlmICh0eXBlb2YgZnJvbUxvYWRlciA9PT0gJ29iamVjdCcgJiYgZnJvbUxvYWRlciAhPT0gbnVsbCkgcmV0dXJuIENvbXBvc2l0ZS5mcm9tSnNvbihmcm9tTG9hZGVyKVxuICByZXR1cm4gbnVsbFxufVxuXG5mdW5jdGlvbiBkZWNvZGVGcm9tQnl0ZXMoY29udGVudDogVWludDhBcnJheSk6IENvbXBvc2l0ZS5EZWZpbml0aW9uIHtcbiAgLy8gLmNvbXBvc2l0ZSBmaWxlcyBhcmUgSlNPTiAoVVRGLTgpOyAuY29tcG9zaXRlLmJpbiBmaWxlcyBhcmUgcHJvdG9idWYgYmluYXJ5LlxuICAvLyBUaGUgZmlyc3QtYnl0ZSBjaGVjayBpcyBhIGZhc3QgcGF0aDsgYSBKU09OLnBhcnNlIGZhaWx1cmUgZmFsbHMgYmFjayB0byBmcm9tQmluYXJ5XG4gIC8vIGJlY2F1c2UgYSBwcm90b2J1ZiBtZXNzYWdlIGNhbiBhbHNvIGJlZ2luIHdpdGggMHg3Yi5cbiAgaWYgKGNvbnRlbnRbMF0gPT09IDB4N2IgLyogJ3snICovKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBDb21wb3NpdGUuZnJvbUpzb24oSlNPTi5wYXJzZShkZWNvZGVVdGY4KGNvbnRlbnQsIHsgZmF0YWw6IHRydWUgfSkpKVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIENvbXBvc2l0ZS5mcm9tQmluYXJ5KGNvbnRlbnQpXG4gICAgfVxuICB9XG4gIHJldHVybiBDb21wb3NpdGUuZnJvbUJpbmFyeShjb250ZW50KVxufVxuXG4vLyBAcHVibGljXG5leHBvcnQgY29uc3QgY29tcG9zaXRlUHJvdmlkZXI6IENvbXBvc2l0ZS5Qcm92aWRlciA9IHtcbiAgc2NoZW1hczogW10sXG4gIGdldENvbXBvc2l0ZU9yTnVsbChzcmM6IHN0cmluZykge1xuICAgIGNvbnN0IGZyb21Mb2FkZXIgPSBjb21wb3NpdGVGcm9tTG9hZGVyW3NyY11cbiAgICBpZiAoZnJvbUxvYWRlcikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29tcG9zaXRlID0gZGVjb2RlRnJvbUxvYWRlcihzcmMsIGZyb21Mb2FkZXIpXG4gICAgICAgIGlmIChjb21wb3NpdGUpIGNhY2hlKHNyYywgY29tcG9zaXRlKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYGNvbXBvc2l0ZVByb3ZpZGVyOiBmYWlsZWQgdG8gZGVjb2RlIGNvbXBvc2l0ZSBcIiR7c3JjfVwiYCwgZXJyKVxuICAgICAgfVxuICAgICAgZGVsZXRlIGNvbXBvc2l0ZUZyb21Mb2FkZXJbc3JjXVxuICAgIH1cblxuICAgIHJldHVybiBmaW5kQ2FjaGVkKHNyYylcbiAgfSxcblxuICBhc3luYyBsb2FkQ29tcG9zaXRlKHNyYzogc3RyaW5nKTogUHJvbWlzZTxDb21wb3NpdGUuUmVzb3VyY2U+IHtcbiAgICBjb25zdCBjYWNoZWQgPSBmaW5kQ2FjaGVkKHNyYylcbiAgICBpZiAoY2FjaGVkKSByZXR1cm4gY2FjaGVkXG5cbiAgICBjb25zdCB7IGNvbnRlbnQgfSA9IGF3YWl0IHJlYWRGaWxlKHsgZmlsZU5hbWU6IHNyYyB9KVxuICAgIGNvbnN0IGNvbXBvc2l0ZSA9IGRlY29kZUZyb21CeXRlcyhjb250ZW50KVxuICAgIHJldHVybiBjYWNoZShzcmMsIGNvbXBvc2l0ZSlcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-contained UTF-8 codec implementing the WHATWG Encoding Standard
|
|
3
|
+
* algorithms (https://encoding.spec.whatwg.org/), so SDK code never depends
|
|
4
|
+
* on the host providing `TextEncoder` / `TextDecoder` globals.
|
|
5
|
+
*/
|
|
6
|
+
export type DecodeUtf8Options = {
|
|
7
|
+
fatal?: boolean;
|
|
8
|
+
ignoreBOM?: boolean;
|
|
9
|
+
};
|
|
10
|
+
export declare function decodeUtf8(input: Uint8Array, options?: DecodeUtf8Options): string;
|
|
11
|
+
export declare function encodeUtf8(input: string): Uint8Array;
|
|
12
|
+
export declare function encodeUtf8Into(source: string, destination: Uint8Array): {
|
|
13
|
+
read: number;
|
|
14
|
+
written: number;
|
|
15
|
+
};
|
package/internal/utf8.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Self-contained UTF-8 codec implementing the WHATWG Encoding Standard
|
|
3
|
+
* algorithms (https://encoding.spec.whatwg.org/), so SDK code never depends
|
|
4
|
+
* on the host providing `TextEncoder` / `TextDecoder` globals.
|
|
5
|
+
*/
|
|
6
|
+
const REPLACEMENT_CHARACTER = 0xfffd;
|
|
7
|
+
export function decodeUtf8(input, options = {}) {
|
|
8
|
+
const fatal = options.fatal === true;
|
|
9
|
+
const start = !options.ignoreBOM && input.length >= 3 && input[0] === 0xef && input[1] === 0xbb && input[2] === 0xbf ? 3 : 0;
|
|
10
|
+
let result = '';
|
|
11
|
+
let pending = [];
|
|
12
|
+
let codePoint = 0;
|
|
13
|
+
let bytesNeeded = 0;
|
|
14
|
+
let bytesSeen = 0;
|
|
15
|
+
let lowerBoundary = 0x80;
|
|
16
|
+
let upperBoundary = 0xbf;
|
|
17
|
+
function emit(value) {
|
|
18
|
+
if (value <= 0xffff) {
|
|
19
|
+
pending.push(value);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const offset = value - 0x10000;
|
|
23
|
+
pending.push(0xd800 + (offset >> 10), 0xdc00 + (offset & 0x3ff));
|
|
24
|
+
}
|
|
25
|
+
if (pending.length >= 4096) {
|
|
26
|
+
result += String.fromCharCode(...pending);
|
|
27
|
+
pending = [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function malformed() {
|
|
31
|
+
if (fatal)
|
|
32
|
+
throw new TypeError('decodeUtf8: the encoded data is not valid utf-8');
|
|
33
|
+
emit(REPLACEMENT_CHARACTER);
|
|
34
|
+
}
|
|
35
|
+
for (let i = start; i < input.length; i++) {
|
|
36
|
+
const byte = input[i];
|
|
37
|
+
if (bytesNeeded === 0) {
|
|
38
|
+
if (byte <= 0x7f) {
|
|
39
|
+
emit(byte);
|
|
40
|
+
}
|
|
41
|
+
else if (byte >= 0xc2 && byte <= 0xdf) {
|
|
42
|
+
bytesNeeded = 1;
|
|
43
|
+
codePoint = byte & 0x1f;
|
|
44
|
+
}
|
|
45
|
+
else if (byte >= 0xe0 && byte <= 0xef) {
|
|
46
|
+
if (byte === 0xe0)
|
|
47
|
+
lowerBoundary = 0xa0;
|
|
48
|
+
if (byte === 0xed)
|
|
49
|
+
upperBoundary = 0x9f;
|
|
50
|
+
bytesNeeded = 2;
|
|
51
|
+
codePoint = byte & 0xf;
|
|
52
|
+
}
|
|
53
|
+
else if (byte >= 0xf0 && byte <= 0xf4) {
|
|
54
|
+
if (byte === 0xf0)
|
|
55
|
+
lowerBoundary = 0x90;
|
|
56
|
+
if (byte === 0xf4)
|
|
57
|
+
upperBoundary = 0x8f;
|
|
58
|
+
bytesNeeded = 3;
|
|
59
|
+
codePoint = byte & 0x7;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
malformed();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else if (byte < lowerBoundary || byte > upperBoundary) {
|
|
66
|
+
codePoint = 0;
|
|
67
|
+
bytesNeeded = 0;
|
|
68
|
+
bytesSeen = 0;
|
|
69
|
+
lowerBoundary = 0x80;
|
|
70
|
+
upperBoundary = 0xbf;
|
|
71
|
+
malformed();
|
|
72
|
+
// the spec prepends the byte back to the stream: it starts a new sequence
|
|
73
|
+
i--;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
lowerBoundary = 0x80;
|
|
77
|
+
upperBoundary = 0xbf;
|
|
78
|
+
codePoint = (codePoint << 6) | (byte & 0x3f);
|
|
79
|
+
if (++bytesSeen === bytesNeeded) {
|
|
80
|
+
emit(codePoint);
|
|
81
|
+
codePoint = 0;
|
|
82
|
+
bytesNeeded = 0;
|
|
83
|
+
bytesSeen = 0;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (bytesNeeded !== 0)
|
|
88
|
+
malformed();
|
|
89
|
+
if (pending.length > 0)
|
|
90
|
+
result += String.fromCharCode(...pending);
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
export function encodeUtf8(input) {
|
|
94
|
+
const output = new Uint8Array(utf8ByteLength(input));
|
|
95
|
+
let offset = 0;
|
|
96
|
+
for (let i = 0; i < input.length; i++) {
|
|
97
|
+
const codePoint = codePointAt(input, i);
|
|
98
|
+
if (codePoint > 0xffff)
|
|
99
|
+
i++;
|
|
100
|
+
offset = writeCodePoint(output, offset, codePoint);
|
|
101
|
+
}
|
|
102
|
+
return output;
|
|
103
|
+
}
|
|
104
|
+
export function encodeUtf8Into(source, destination) {
|
|
105
|
+
let read = 0;
|
|
106
|
+
let written = 0;
|
|
107
|
+
for (let i = 0; i < source.length; i++) {
|
|
108
|
+
const codePoint = codePointAt(source, i);
|
|
109
|
+
const size = byteSize(codePoint);
|
|
110
|
+
if (written + size > destination.length)
|
|
111
|
+
break;
|
|
112
|
+
written = writeCodePoint(destination, written, codePoint);
|
|
113
|
+
if (codePoint > 0xffff) {
|
|
114
|
+
i++;
|
|
115
|
+
read += 2;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
read += 1;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return { read, written };
|
|
122
|
+
}
|
|
123
|
+
// Reads the code point at index, replacing unpaired surrogates with U+FFFD
|
|
124
|
+
// (the USVString conversion `TextEncoder` mandates).
|
|
125
|
+
function codePointAt(input, index) {
|
|
126
|
+
const first = input.charCodeAt(index);
|
|
127
|
+
if (first >= 0xd800 && first <= 0xdbff) {
|
|
128
|
+
const second = index + 1 < input.length ? input.charCodeAt(index + 1) : 0;
|
|
129
|
+
if (second >= 0xdc00 && second <= 0xdfff)
|
|
130
|
+
return 0x10000 + ((first - 0xd800) << 10) + (second - 0xdc00);
|
|
131
|
+
return REPLACEMENT_CHARACTER;
|
|
132
|
+
}
|
|
133
|
+
if (first >= 0xdc00 && first <= 0xdfff)
|
|
134
|
+
return REPLACEMENT_CHARACTER;
|
|
135
|
+
return first;
|
|
136
|
+
}
|
|
137
|
+
function byteSize(codePoint) {
|
|
138
|
+
return codePoint <= 0x7f ? 1 : codePoint <= 0x7ff ? 2 : codePoint <= 0xffff ? 3 : 4;
|
|
139
|
+
}
|
|
140
|
+
function utf8ByteLength(input) {
|
|
141
|
+
let length = 0;
|
|
142
|
+
for (let i = 0; i < input.length; i++) {
|
|
143
|
+
const codePoint = codePointAt(input, i);
|
|
144
|
+
if (codePoint > 0xffff)
|
|
145
|
+
i++;
|
|
146
|
+
length += byteSize(codePoint);
|
|
147
|
+
}
|
|
148
|
+
return length;
|
|
149
|
+
}
|
|
150
|
+
function writeCodePoint(output, offset, codePoint) {
|
|
151
|
+
let next = offset;
|
|
152
|
+
if (codePoint <= 0x7f) {
|
|
153
|
+
output[next++] = codePoint;
|
|
154
|
+
}
|
|
155
|
+
else if (codePoint <= 0x7ff) {
|
|
156
|
+
output[next++] = 0xc0 | (codePoint >> 6);
|
|
157
|
+
output[next++] = 0x80 | (codePoint & 0x3f);
|
|
158
|
+
}
|
|
159
|
+
else if (codePoint <= 0xffff) {
|
|
160
|
+
output[next++] = 0xe0 | (codePoint >> 12);
|
|
161
|
+
output[next++] = 0x80 | ((codePoint >> 6) & 0x3f);
|
|
162
|
+
output[next++] = 0x80 | (codePoint & 0x3f);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
output[next++] = 0xf0 | (codePoint >> 18);
|
|
166
|
+
output[next++] = 0x80 | ((codePoint >> 12) & 0x3f);
|
|
167
|
+
output[next++] = 0x80 | ((codePoint >> 6) & 0x3f);
|
|
168
|
+
output[next++] = 0x80 | (codePoint & 0x3f);
|
|
169
|
+
}
|
|
170
|
+
return next;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRmOC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcm5hbC91dGY4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQTtBQU9wQyxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWlCLEVBQUUsVUFBNkIsRUFBRTtJQUMzRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQTtJQUNwQyxNQUFNLEtBQUssR0FDVCxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRWhILElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtJQUNmLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQTtJQUMxQixJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUE7SUFDakIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFBO0lBQ25CLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQTtJQUNqQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUE7SUFDeEIsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFBO0lBRXhCLFNBQVMsSUFBSSxDQUFDLEtBQWE7UUFDekIsSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDcEI7YUFBTTtZQUNMLE1BQU0sTUFBTSxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUE7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVB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R0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUE7S0FDM0M7U0FBTTtRQUNMLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUN6QyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUNsRCxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUNqRCxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUE7S0FDM0M7SUFDRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlbGYtY29udGFpbmVkIFVURi04IGNvZGVjIGltcGxlbWVudGluZyB0aGUgV0hBVFdHIEVuY29kaW5nIFN0YW5kYXJkXG4gKiBhbGdvcml0aG1zIChodHRwczovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8pLCBzbyBTREsgY29kZSBuZXZlciBkZXBlbmRzXG4gKiBvbiB0aGUgaG9zdCBwcm92aWRpbmcgYFRleHRFbmNvZGVyYCAvIGBUZXh0RGVjb2RlcmAgZ2xvYmFscy5cbiAqL1xuXG5jb25zdCBSRVBMQUNFTUVOVF9DSEFSQUNURVIgPSAweGZmZmRcblxuZXhwb3J0IHR5cGUgRGVjb2RlVXRmOE9wdGlvbnMgPSB7XG4gIGZhdGFsPzogYm9vbGVhblxuICBpZ25vcmVCT00/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVVdGY4KGlucHV0OiBVaW50OEFycmF5LCBvcHRpb25zOiBEZWNvZGVVdGY4T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgY29uc3QgZmF0YWwgPSBvcHRpb25zLmZhdGFsID09PSB0cnVlXG4gIGNvbnN0IHN0YXJ0ID1cbiAgICAhb3B0aW9ucy5pZ25vcmVCT00gJiYgaW5wdXQubGVuZ3RoID49IDMgJiYgaW5wdXRbMF0gPT09IDB4ZWYgJiYgaW5wdXRbMV0gPT09IDB4YmIgJiYgaW5wdXRbMl0gPT09IDB4YmYgPyAzIDogMFxuXG4gIGxldCByZXN1bHQgPSAnJ1xuICBsZXQgcGVuZGluZzogbnVtYmVyW10gPSBbXVxuICBsZXQgY29kZVBvaW50ID0gMFxuICBsZXQgYnl0ZXNOZWVkZWQgPSAwXG4gIGxldCBieXRlc1NlZW4gPSAwXG4gIGxldCBsb3dlckJvdW5kYXJ5ID0gMHg4MFxuICBsZXQgdXBwZXJCb3VuZGFyeSA9IDB4YmZcblxuICBmdW5jdGlvbiBlbWl0KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPD0gMHhmZmZmKSB7XG4gICAgICBwZW5kaW5nLnB1c2godmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IHZhbHVlIC0gMHgxMDAwMFxuICAgICAgcGVuZGluZy5wdXNoKDB4ZDgwMCArIChvZmZzZXQgPj4gMTApLCAweGRjMDAgKyAob2Zmc2V0ICYgMHgzZmYpKVxuICAgIH1cbiAgICBpZiAocGVuZGluZy5sZW5ndGggPj0gNDA5Nikge1xuICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ucGVuZGluZylcbiAgICAgIHBlbmRpbmcgPSBbXVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIG1hbGZvcm1lZCgpIHtcbiAgICBpZiAoZmF0YWwpIHRocm93IG5ldyBUeXBlRXJyb3IoJ2RlY29kZVV0Zjg6IHRoZSBlbmNvZGVkIGRhdGEgaXMgbm90IHZhbGlkIHV0Zi04JylcbiAgICBlbWl0KFJFUExBQ0VNRU5UX0NIQVJBQ1RFUilcbiAgfVxuXG4gIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYnl0ZSA9IGlucHV0W2ldXG4gICAgaWYgKGJ5dGVzTmVlZGVkID09PSAwKSB7XG4gICAgICBpZiAoYnl0ZSA8PSAweDdmKSB7XG4gICAgICAgIGVtaXQoYnl0ZSlcbiAgICAgIH0gZWxzZSBpZiAoYnl0ZSA+PSAweGMyICYmIGJ5dGUgPD0gMHhkZikge1xuICAgICAgICBieXRlc05lZWRlZCA9IDFcbiAgICAgICAgY29kZVBvaW50ID0gYnl0ZSAmIDB4MWZcbiAgICAgIH0gZWxzZSBpZiAoYnl0ZSA+PSAweGUwICYmIGJ5dGUgPD0gMHhlZikge1xuICAgICAgICBpZiAoYnl0ZSA9PT0gMHhlMCkgbG93ZXJCb3VuZGFyeSA9IDB4YTBcbiAgICAgICAgaWYgKGJ5dGUgPT09IDB4ZWQpIHVwcGVyQm91bmRhcnkgPSAweDlmXG4gICAgICAgIGJ5dGVzTmVlZGVkID0gMlxuICAgICAgICBjb2RlUG9pbnQgPSBieXRlICYgMHhmXG4gICAgICB9IGVsc2UgaWYgKGJ5dGUgPj0gMHhmMCAmJiBieXRlIDw9IDB4ZjQpIHtcbiAgICAgICAgaWYgKGJ5dGUgPT09IDB4ZjApIGxvd2VyQm91bmRhcnkgPSAweDkwXG4gICAgICAgIGlmIChieXRlID09PSAweGY0KSB1cHBlckJvdW5kYXJ5ID0gMHg4ZlxuICAgICAgICBieXRlc05lZWRlZCA9IDNcbiAgICAgICAgY29kZVBvaW50ID0gYnl0ZSAmIDB4N1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFsZm9ybWVkKClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGJ5dGUgPCBsb3dlckJvdW5kYXJ5IHx8IGJ5dGUgPiB1cHBlckJvdW5kYXJ5KSB7XG4gICAgICBjb2RlUG9pbnQgPSAwXG4gICAgICBieXRlc05lZWRlZCA9IDBcbiAgICAgIGJ5dGVzU2VlbiA9IDBcbiAgICAgIGxvd2VyQm91bmRhcnkgPSAweDgwXG4gICAgICB1cHBlckJvdW5kYXJ5ID0gMHhiZlxuICAgICAgbWFsZm9ybWVkKClcbiAgICAgIC8vIHRoZSBzcGVjIHByZXBlbmRzIHRoZSBieXRlIGJhY2sgdG8gdGhlIHN0cmVhbTogaXQgc3RhcnRzIGEgbmV3IHNlcXVlbmNlXG4gICAgICBpLS1cbiAgICB9IGVsc2Uge1xuICAgICAgbG93ZXJCb3VuZGFyeSA9IDB4ODBcbiAgICAgIHVwcGVyQm91bmRhcnkgPSAweGJmXG4gICAgICBjb2RlUG9pbnQgPSAoY29kZVBvaW50IDw8IDYpIHwgKGJ5dGUgJiAweDNmKVxuICAgICAgaWYgKCsrYnl0ZXNTZWVuID09PSBieXRlc05lZWRlZCkge1xuICAgICAgICBlbWl0KGNvZGVQb2ludClcbiAgICAgICAgY29kZVBvaW50ID0gMFxuICAgICAgICBieXRlc05lZWRlZCA9IDBcbiAgICAgICAgYnl0ZXNTZWVuID0gMFxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoYnl0ZXNOZWVkZWQgIT09IDApIG1hbGZvcm1lZCgpXG5cbiAgaWYgKHBlbmRpbmcubGVuZ3RoID4gMCkgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ucGVuZGluZylcbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVXRmOChpbnB1dDogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGNvbnN0IG91dHB1dCA9IG5ldyBVaW50OEFycmF5KHV0ZjhCeXRlTGVuZ3RoKGlucHV0KSlcbiAgbGV0IG9mZnNldCA9IDBcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IGNvZGVQb2ludEF0KGlucHV0LCBpKVxuICAgIGlmIChjb2RlUG9pbnQgPiAweGZmZmYpIGkrK1xuICAgIG9mZnNldCA9IHdyaXRlQ29kZVBvaW50KG91dHB1dCwgb2Zmc2V0LCBjb2RlUG9pbnQpXG4gIH1cbiAgcmV0dXJuIG91dHB1dFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVXRmOEludG8oc291cmNlOiBzdHJpbmcsIGRlc3RpbmF0aW9uOiBVaW50OEFycmF5KTogeyByZWFkOiBudW1iZXI7IHdyaXR0ZW46IG51bWJlciB9IHtcbiAgbGV0IHJlYWQgPSAwXG4gIGxldCB3cml0dGVuID0gMFxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZS5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNvZGVQb2ludCA9IGNvZGVQb2ludEF0KHNvdXJjZSwgaSlcbiAgICBjb25zdCBzaXplID0gYnl0ZVNpemUoY29kZVBvaW50KVxuICAgIGlmICh3cml0dGVuICsgc2l6ZSA+IGRlc3RpbmF0aW9uLmxlbmd0aCkgYnJlYWtcbiAgICB3cml0dGVuID0gd3JpdGVDb2RlUG9pbnQoZGVzdGluYXRpb24sIHdyaXR0ZW4sIGNvZGVQb2ludClcbiAgICBpZiAoY29kZVBvaW50ID4gMHhmZmZmKSB7XG4gICAgICBpKytcbiAgICAgIHJlYWQgKz0gMlxuICAgIH0gZWxzZSB7XG4gICAgICByZWFkICs9IDFcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsgcmVhZCwgd3JpdHRlbiB9XG59XG5cbi8vIFJlYWRzIHRoZSBjb2RlIHBvaW50IGF0IGluZGV4LCByZXBsYWNpbmcgdW5wYWlyZWQgc3Vycm9nYXRlcyB3aXRoIFUrRkZGRFxuLy8gKHRoZSBVU1ZTdHJpbmcgY29udmVyc2lvbiBgVGV4dEVuY29kZXJgIG1hbmRhdGVzKS5cbmZ1bmN0aW9uIGNvZGVQb2ludEF0KGlucHV0OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCBmaXJzdCA9IGlucHV0LmNoYXJDb2RlQXQoaW5kZXgpXG4gIGlmIChmaXJzdCA+PSAweGQ4MDAgJiYgZmlyc3QgPD0gMHhkYmZmKSB7XG4gICAgY29uc3Qgc2Vjb25kID0gaW5kZXggKyAxIDwgaW5wdXQubGVuZ3RoID8gaW5wdXQuY2hhckNvZGVBdChpbmRleCArIDEpIDogMFxuICAgIGlmIChzZWNvbmQgPj0gMHhkYzAwICYmIHNlY29uZCA8PSAweGRmZmYpIHJldHVybiAweDEwMDAwICsgKChmaXJzdCAtIDB4ZDgwMCkgPDwgMTApICsgKHNlY29uZCAtIDB4ZGMwMClcbiAgICByZXR1cm4gUkVQTEFDRU1FTlRfQ0hBUkFDVEVSXG4gIH1cbiAgaWYgKGZpcnN0ID49IDB4ZGMwMCAmJiBmaXJzdCA8PSAweGRmZmYpIHJldHVybiBSRVBMQUNFTUVOVF9DSEFSQUNURVJcbiAgcmV0dXJuIGZpcnN0XG59XG5cbmZ1bmN0aW9uIGJ5dGVTaXplKGNvZGVQb2ludDogbnVtYmVyKTogbnVtYmVyIHtcbiAgcmV0dXJuIGNvZGVQb2ludCA8PSAweDdmID8gMSA6IGNvZGVQb2ludCA8PSAweDdmZiA/IDIgOiBjb2RlUG9pbnQgPD0gMHhmZmZmID8gMyA6IDRcbn1cblxuZnVuY3Rpb24gdXRmOEJ5dGVMZW5ndGgoaW5wdXQ6IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBsZW5ndGggPSAwXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXQubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjb2RlUG9pbnQgPSBjb2RlUG9pbnRBdChpbnB1dCwgaSlcbiAgICBpZiAoY29kZVBvaW50ID4gMHhmZmZmKSBpKytcbiAgICBsZW5ndGggKz0gYnl0ZVNpemUoY29kZVBvaW50KVxuICB9XG4gIHJldHVybiBsZW5ndGhcbn1cblxuZnVuY3Rpb24gd3JpdGVDb2RlUG9pbnQob3V0cHV0OiBVaW50OEFycmF5LCBvZmZzZXQ6IG51bWJlciwgY29kZVBvaW50OiBudW1iZXIpOiBudW1iZXIge1xuICBsZXQgbmV4dCA9IG9mZnNldFxuICBpZiAoY29kZVBvaW50IDw9IDB4N2YpIHtcbiAgICBvdXRwdXRbbmV4dCsrXSA9IGNvZGVQb2ludFxuICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8PSAweDdmZikge1xuICAgIG91dHB1dFtuZXh0KytdID0gMHhjMCB8IChjb2RlUG9pbnQgPj4gNilcbiAgICBvdXRwdXRbbmV4dCsrXSA9IDB4ODAgfCAoY29kZVBvaW50ICYgMHgzZilcbiAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPD0gMHhmZmZmKSB7XG4gICAgb3V0cHV0W25leHQrK10gPSAweGUwIHwgKGNvZGVQb2ludCA+PiAxMilcbiAgICBvdXRwdXRbbmV4dCsrXSA9IDB4ODAgfCAoKGNvZGVQb2ludCA+PiA2KSAmIDB4M2YpXG4gICAgb3V0cHV0W25leHQrK10gPSAweDgwIHwgKGNvZGVQb2ludCAmIDB4M2YpXG4gIH0gZWxzZSB7XG4gICAgb3V0cHV0W25leHQrK10gPSAweGYwIHwgKGNvZGVQb2ludCA+PiAxOClcbiAgICBvdXRwdXRbbmV4dCsrXSA9IDB4ODAgfCAoKGNvZGVQb2ludCA+PiAxMikgJiAweDNmKVxuICAgIG91dHB1dFtuZXh0KytdID0gMHg4MCB8ICgoY29kZVBvaW50ID4+IDYpICYgMHgzZilcbiAgICBvdXRwdXRbbmV4dCsrXSA9IDB4ODAgfCAoY29kZVBvaW50ICYgMHgzZilcbiAgfVxuICByZXR1cm4gbmV4dFxufVxuIl19
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
export declare enum CommsMessage {
|
|
2
|
-
CRDT =
|
|
3
|
-
REQ_CRDT_STATE =
|
|
4
|
-
RES_CRDT_STATE =
|
|
5
|
-
CRDT_SERVER = 4,
|
|
6
|
-
CRDT_AUTHORITATIVE = 5,
|
|
7
|
-
CUSTOM_EVENT = 6
|
|
2
|
+
CRDT = 1,
|
|
3
|
+
REQ_CRDT_STATE = 2,
|
|
4
|
+
RES_CRDT_STATE = 3
|
|
8
5
|
}
|
|
9
6
|
export declare function BinaryMessageBus<T extends CommsMessage>(send: (message: Uint8Array, toPeerAddress?: string[]) => void): {
|
|
10
7
|
on: <K extends T>(message: K, callback: (value: Uint8Array, sender: string) => void) => void;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { ReadWriteByteBuffer } from '@dcl/ecs/dist/serialization/ByteBuffer';
|
|
2
2
|
export var CommsMessage;
|
|
3
3
|
(function (CommsMessage) {
|
|
4
|
-
CommsMessage[CommsMessage["CRDT"] =
|
|
5
|
-
CommsMessage[CommsMessage["REQ_CRDT_STATE"] =
|
|
6
|
-
CommsMessage[CommsMessage["RES_CRDT_STATE"] =
|
|
7
|
-
CommsMessage[CommsMessage["CRDT_SERVER"] = 4] = "CRDT_SERVER";
|
|
8
|
-
CommsMessage[CommsMessage["CRDT_AUTHORITATIVE"] = 5] = "CRDT_AUTHORITATIVE";
|
|
9
|
-
CommsMessage[CommsMessage["CUSTOM_EVENT"] = 6] = "CUSTOM_EVENT";
|
|
4
|
+
CommsMessage[CommsMessage["CRDT"] = 1] = "CRDT";
|
|
5
|
+
CommsMessage[CommsMessage["REQ_CRDT_STATE"] = 2] = "REQ_CRDT_STATE";
|
|
6
|
+
CommsMessage[CommsMessage["RES_CRDT_STATE"] = 3] = "RES_CRDT_STATE";
|
|
10
7
|
})(CommsMessage || (CommsMessage = {}));
|
|
11
8
|
export function BinaryMessageBus(send) {
|
|
12
9
|
const mapping = new Map();
|
|
@@ -20,9 +17,8 @@ export function BinaryMessageBus(send) {
|
|
|
20
17
|
__processMessages: (messages) => {
|
|
21
18
|
for (const message of messages) {
|
|
22
19
|
const commsMsg = decodeCommsMessage(message);
|
|
23
|
-
if (!commsMsg)
|
|
20
|
+
if (!commsMsg)
|
|
24
21
|
continue;
|
|
25
|
-
}
|
|
26
22
|
const { sender, messageType, data } = commsMsg;
|
|
27
23
|
const fn = mapping.get(messageType);
|
|
28
24
|
if (fn)
|
|
@@ -69,4 +65,4 @@ export function encodeString(s) {
|
|
|
69
65
|
buffer.writeUtf8String(s);
|
|
70
66
|
return buffer.readBuffer();
|
|
71
67
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LW1lc3NhZ2UtYnVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25ldHdvcmsvYmluYXJ5LW1lc3NhZ2UtYnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBRTVFLE1BQU0sQ0FBTixJQUFZLFlBSVg7QUFKRCxXQUFZLFlBQVk7SUFDdEIsK0NBQVEsQ0FBQTtJQUNSLG1FQUFrQixDQUFBO0lBQ2xCLG1FQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFKVyxZQUFZLEtBQVosWUFBWSxRQUl2QjtBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsSUFBNkQ7SUFFN0QsTUFBTSxPQUFPLEdBQXdELElBQUksR0FBRyxFQUFFLENBQUE7SUFDOUUsT0FBTztRQUNMLEVBQUUsRUFBRSxDQUFjLE9BQVUsRUFBRSxRQUFxRCxFQUFFLEVBQUU7WUFDckYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDaEMsQ0FBQztRQUNELElBQUksRUFBRSxDQUFjLE9BQVUsRUFBRSxLQUFpQixFQUFFLGFBQXdCLEVBQUUsRUFBRTtZQUM3RSxJQUFJLENBQUMsaUJBQWlCLENBQUksT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFBO1FBQzNELENBQUM7UUFDRCxpQkFBaUIsRUFBRSxDQUFDLFFBQXNCLEVBQUUsRUFBRTtZQUM1QyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRTtnQkFDOUIsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUksT0FBTyxDQUFDLENBQUE7Z0JBQy9DLElBQUksQ0FBQyxRQUFRO29CQUFFLFNBQVE7Z0JBQ3ZCLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQTtnQkFDOUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQTtnQkFDbkMsSUFBSSxFQUFFO29CQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUE7YUFDekI7UUFDSCxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQXlCLFdBQWMsRUFBRSxPQUFtQjtJQUMzRixNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2xELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO0lBQ3RCLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ25CLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsSUFBZ0I7SUFFaEIsSUFBSTtRQUNGLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQTtRQUNkLE1BQU0sQ0FBQyxHQUFHLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNuQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzFDLE1BQU0sSUFBSSxDQUFDLENBQUE7UUFDWCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDL0QsTUFBTSxJQUFJLFlBQVksQ0FBQTtRQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBTSxDQUFBO1FBQzlDLE1BQU0sSUFBSSxDQUFDLENBQUE7UUFDWCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBRWxDLE9BQU87WUFDTCxNQUFNO1lBQ04sV0FBVztZQUNYLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQTtLQUNGO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxDQUFBO0tBQzFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBZ0I7SUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFBO0lBQ3hDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQzlCLE9BQU8sTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFBO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLENBQVM7SUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFBO0lBQ3hDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekIsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUE7QUFDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlYWRXcml0ZUJ5dGVCdWZmZXIgfSBmcm9tICdAZGNsL2Vjcy9kaXN0L3NlcmlhbGl6YXRpb24vQnl0ZUJ1ZmZlcidcblxuZXhwb3J0IGVudW0gQ29tbXNNZXNzYWdlIHtcbiAgQ1JEVCA9IDEsXG4gIFJFUV9DUkRUX1NUQVRFID0gMixcbiAgUkVTX0NSRFRfU1RBVEUgPSAzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBCaW5hcnlNZXNzYWdlQnVzPFQgZXh0ZW5kcyBDb21tc01lc3NhZ2U+KFxuICBzZW5kOiAobWVzc2FnZTogVWludDhBcnJheSwgdG9QZWVyQWRkcmVzcz86IHN0cmluZ1tdKSA9PiB2b2lkXG4pIHtcbiAgY29uc3QgbWFwcGluZzogTWFwPFQsICh2YWx1ZTogVWludDhBcnJheSwgc2VuZGVyOiBzdHJpbmcpID0+IHZvaWQ+ID0gbmV3IE1hcCgpXG4gIHJldHVybiB7XG4gICAgb246IDxLIGV4dGVuZHMgVD4obWVzc2FnZTogSywgY2FsbGJhY2s6ICh2YWx1ZTogVWludDhBcnJheSwgc2VuZGVyOiBzdHJpbmcpID0+IHZvaWQpID0+IHtcbiAgICAgIG1hcHBpbmcuc2V0KG1lc3NhZ2UsIGNhbGxiYWNrKVxuICAgIH0sXG4gICAgZW1pdDogPEsgZXh0ZW5kcyBUPihtZXNzYWdlOiBLLCB2YWx1ZTogVWludDhBcnJheSwgdG9QZWVyQWRkcmVzcz86IHN0cmluZ1tdKSA9PiB7XG4gICAgICBzZW5kKGNyYWZ0Q29tbXNNZXNzYWdlPFQ+KG1lc3NhZ2UsIHZhbHVlKSwgdG9QZWVyQWRkcmVzcylcbiAgICB9LFxuICAgIF9fcHJvY2Vzc01lc3NhZ2VzOiAobWVzc2FnZXM6IFVpbnQ4QXJyYXlbXSkgPT4ge1xuICAgICAgZm9yIChjb25zdCBtZXNzYWdlIG9mIG1lc3NhZ2VzKSB7XG4gICAgICAgIGNvbnN0IGNvbW1zTXNnID0gZGVjb2RlQ29tbXNNZXNzYWdlPFQ+KG1lc3NhZ2UpXG4gICAgICAgIGlmICghY29tbXNNc2cpIGNvbnRpbnVlXG4gICAgICAgIGNvbnN0IHsgc2VuZGVyLCBtZXNzYWdlVHlwZSwgZGF0YSB9ID0gY29tbXNNc2dcbiAgICAgICAgY29uc3QgZm4gPSBtYXBwaW5nLmdldChtZXNzYWdlVHlwZSlcbiAgICAgICAgaWYgKGZuKSBmbihkYXRhLCBzZW5kZXIpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmFmdENvbW1zTWVzc2FnZTxUIGV4dGVuZHMgQ29tbXNNZXNzYWdlPihtZXNzYWdlVHlwZTogVCwgcGF5bG9hZDogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICBjb25zdCBtc2cgPSBuZXcgVWludDhBcnJheShwYXlsb2FkLmJ5dGVMZW5ndGggKyAxKVxuICBtc2cuc2V0KFttZXNzYWdlVHlwZV0pXG4gIG1zZy5zZXQocGF5bG9hZCwgMSlcbiAgcmV0dXJuIG1zZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlQ29tbXNNZXNzYWdlPFQgZXh0ZW5kcyBDb21tc01lc3NhZ2U+KFxuICBkYXRhOiBVaW50OEFycmF5XG4pOiB7IHNlbmRlcjogc3RyaW5nOyBtZXNzYWdlVHlwZTogVDsgZGF0YTogVWludDhBcnJheSB9IHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBsZXQgb2Zmc2V0ID0gMFxuICAgIGNvbnN0IHIgPSBuZXcgVWludDhBcnJheShkYXRhKVxuICAgIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcoci5idWZmZXIpXG4gICAgY29uc3Qgc2VuZGVyTGVuZ3RoID0gdmlldy5nZXRVaW50OChvZmZzZXQpXG4gICAgb2Zmc2V0ICs9IDFcbiAgICBjb25zdCBzZW5kZXIgPSBkZWNvZGVTdHJpbmcoZGF0YS5zdWJhcnJheSgxLCBzZW5kZXJMZW5ndGggKyAxKSlcbiAgICBvZmZzZXQgKz0gc2VuZGVyTGVuZ3RoXG4gICAgY29uc3QgbWVzc2FnZVR5cGUgPSB2aWV3LmdldFVpbnQ4KG9mZnNldCkgYXMgVFxuICAgIG9mZnNldCArPSAxXG4gICAgY29uc3QgbWVzc2FnZSA9IHIuc3ViYXJyYXkob2Zmc2V0KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbmRlcixcbiAgICAgIG1lc3NhZ2VUeXBlLFxuICAgICAgZGF0YTogbWVzc2FnZVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgQ29tbXMgbWVzc2FnZScsIGUpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVN0cmluZyhkYXRhOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgY29uc3QgYnVmZmVyID0gbmV3IFJlYWRXcml0ZUJ5dGVCdWZmZXIoKVxuICBidWZmZXIud3JpdGVCdWZmZXIoZGF0YSwgdHJ1ZSlcbiAgcmV0dXJuIGJ1ZmZlci5yZWFkVXRmOFN0cmluZygpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVTdHJpbmcoczogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIGNvbnN0IGJ1ZmZlciA9IG5ldyBSZWFkV3JpdGVCeXRlQnVmZmVyKClcbiAgYnVmZmVyLndyaXRlVXRmOFN0cmluZyhzKVxuICByZXR1cm4gYnVmZmVyLnJlYWRCdWZmZXIoKVxufVxuIl19
|
package/network/index.d.ts
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
on: <K extends import("./binary-message-bus").CommsMessage>(message: K, callback: (value: Uint8Array, sender: string) => void) => void;
|
|
4
|
-
emit: <K_1 extends import("./binary-message-bus").CommsMessage>(message: K_1, value: Uint8Array, toPeerAddress?: string[] | undefined) => void;
|
|
5
|
-
__processMessages: (messages: Uint8Array[]) => void;
|
|
6
|
-
}, eventBus: import("./events/implementation").Room<import("./events").EventSchemaRegistry>;
|
|
7
|
-
export { registerMessages, getRoom } from './events';
|
|
8
|
-
export { getFirstChild, getChildren, syncEntity, parentEntity, getParent, myProfile, removeParent, isStateSyncronized, binaryMessageBus, eventBus };
|
|
1
|
+
declare const getChildren: (parent: import("@dcl/ecs").Entity) => Iterable<import("@dcl/ecs").Entity>, syncEntity: (entityId: import("@dcl/ecs").Entity, componentIds: number[], entityEnumId?: number | undefined) => void, parentEntity: (entity: import("@dcl/ecs").Entity, parent: import("@dcl/ecs").Entity) => void, getParent: (child: import("@dcl/ecs").Entity) => import("@dcl/ecs").Entity | undefined, myProfile: import("./message-bus-sync").IProfile, removeParent: (entity: import("@dcl/ecs").Entity) => void, getFirstChild: (entity: import("@dcl/ecs").Entity) => import("@dcl/ecs").Entity, isStateSyncronized: () => boolean;
|
|
2
|
+
export { getFirstChild, getChildren, syncEntity, parentEntity, getParent, myProfile, removeParent, isStateSyncronized };
|
package/network/index.js
CHANGED
|
@@ -2,20 +2,7 @@ import { sendBinary } from '~system/CommunicationsController';
|
|
|
2
2
|
import { engine } from '@dcl/ecs';
|
|
3
3
|
import { addSyncTransport } from './message-bus-sync';
|
|
4
4
|
import { getUserData } from '~system/UserIdentity';
|
|
5
|
-
import { isServer as isServerApi } from '~system/EngineApi';
|
|
6
|
-
import { Atom } from '../atom';
|
|
7
|
-
// Create isServer atom for consistent state
|
|
8
|
-
const isServerAtom = Atom(false);
|
|
9
|
-
void isServerApi({}).then((response) => {
|
|
10
|
-
isServerAtom.swap(!!response.isServer);
|
|
11
|
-
});
|
|
12
|
-
// Helper function to check if running on server
|
|
13
|
-
export function isServer() {
|
|
14
|
-
return isServerAtom.getOrNull() ?? false;
|
|
15
|
-
}
|
|
16
5
|
// initialize sync transport for sdk engine
|
|
17
|
-
const { getChildren, syncEntity, parentEntity, getParent, myProfile, removeParent, getFirstChild, isStateSyncronized
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export { getFirstChild, getChildren, syncEntity, parentEntity, getParent, myProfile, removeParent, isStateSyncronized, binaryMessageBus, eventBus };
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV0d29yay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDbEQsT0FBTyxFQUFFLFFBQVEsSUFBSSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBRTlCLDRDQUE0QztBQUM1QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQVUsS0FBSyxDQUFDLENBQUE7QUFDekMsS0FBSyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7SUFDckMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ3hDLENBQUMsQ0FBQyxDQUFBO0FBRUYsZ0RBQWdEO0FBQ2hELE1BQU0sVUFBVSxRQUFRO0lBQ3RCLE9BQU8sWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLEtBQUssQ0FBQTtBQUMxQyxDQUFDO0FBRUQsMkNBQTJDO0FBQzNDLE1BQU0sRUFDSixXQUFXLEVBQ1gsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1QsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUE7QUFFN0Usc0NBQXNDO0FBQ3RDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFcEQsT0FBTyxFQUNMLGFBQWEsRUFDYixXQUFXLEVBQ1gsVUFBVSxFQUNWLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDVCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VuZEJpbmFyeSB9IGZyb20gJ35zeXN0ZW0vQ29tbXVuaWNhdGlvbnNDb250cm9sbGVyJ1xuaW1wb3J0IHsgZW5naW5lIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBhZGRTeW5jVHJhbnNwb3J0IH0gZnJvbSAnLi9tZXNzYWdlLWJ1cy1zeW5jJ1xuaW1wb3J0IHsgZ2V0VXNlckRhdGEgfSBmcm9tICd+c3lzdGVtL1VzZXJJZGVudGl0eSdcbmltcG9ydCB7IGlzU2VydmVyIGFzIGlzU2VydmVyQXBpIH0gZnJvbSAnfnN5c3RlbS9FbmdpbmVBcGknXG5pbXBvcnQgeyBBdG9tIH0gZnJvbSAnLi4vYXRvbSdcblxuLy8gQ3JlYXRlIGlzU2VydmVyIGF0b20gZm9yIGNvbnNpc3RlbnQgc3RhdGVcbmNvbnN0IGlzU2VydmVyQXRvbSA9IEF0b208Ym9vbGVhbj4oZmFsc2UpXG52b2lkIGlzU2VydmVyQXBpKHt9KS50aGVuKChyZXNwb25zZSkgPT4ge1xuICBpc1NlcnZlckF0b20uc3dhcCghIXJlc3BvbnNlLmlzU2VydmVyKVxufSlcblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHJ1bm5pbmcgb24gc2VydmVyXG5leHBvcnQgZnVuY3Rpb24gaXNTZXJ2ZXIoKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc1NlcnZlckF0b20uZ2V0T3JOdWxsKCkgPz8gZmFsc2Vcbn1cblxuLy8gaW5pdGlhbGl6ZSBzeW5jIHRyYW5zcG9ydCBmb3Igc2RrIGVuZ2luZVxuY29uc3Qge1xuICBnZXRDaGlsZHJlbixcbiAgc3luY0VudGl0eSxcbiAgcGFyZW50RW50aXR5LFxuICBnZXRQYXJlbnQsXG4gIG15UHJvZmlsZSxcbiAgcmVtb3ZlUGFyZW50LFxuICBnZXRGaXJzdENoaWxkLFxuICBpc1N0YXRlU3luY3Jvbml6ZWQsXG4gIGJpbmFyeU1lc3NhZ2VCdXMsXG4gIGV2ZW50QnVzXG59ID0gYWRkU3luY1RyYW5zcG9ydChlbmdpbmUsIHNlbmRCaW5hcnksIGdldFVzZXJEYXRhLCBpc1NlcnZlckFwaSwgJ25ldHdvcmsnKVxuXG4vLyBSZS1leHBvcnQgdGhlIHJvb20gbWVzc2FnaW5nIHN5c3RlbVxuZXhwb3J0IHsgcmVnaXN0ZXJNZXNzYWdlcywgZ2V0Um9vbSB9IGZyb20gJy4vZXZlbnRzJ1xuXG5leHBvcnQge1xuICBnZXRGaXJzdENoaWxkLFxuICBnZXRDaGlsZHJlbixcbiAgc3luY0VudGl0eSxcbiAgcGFyZW50RW50aXR5LFxuICBnZXRQYXJlbnQsXG4gIG15UHJvZmlsZSxcbiAgcmVtb3ZlUGFyZW50LFxuICBpc1N0YXRlU3luY3Jvbml6ZWQsXG4gIGJpbmFyeU1lc3NhZ2VCdXMsXG4gIGV2ZW50QnVzXG59XG4iXX0=
|
|
6
|
+
const { getChildren, syncEntity, parentEntity, getParent, myProfile, removeParent, getFirstChild, isStateSyncronized } = addSyncTransport(engine, sendBinary, getUserData);
|
|
7
|
+
export { getFirstChild, getChildren, syncEntity, parentEntity, getParent, myProfile, removeParent, isStateSyncronized };
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbmV0d29yay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFbEQsMkNBQTJDO0FBQzNDLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsR0FDcEgsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQTtBQUVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZW5kQmluYXJ5IH0gZnJvbSAnfnN5c3RlbS9Db21tdW5pY2F0aW9uc0NvbnRyb2xsZXInXG5pbXBvcnQgeyBlbmdpbmUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IGFkZFN5bmNUcmFuc3BvcnQgfSBmcm9tICcuL21lc3NhZ2UtYnVzLXN5bmMnXG5pbXBvcnQgeyBnZXRVc2VyRGF0YSB9IGZyb20gJ35zeXN0ZW0vVXNlcklkZW50aXR5J1xuXG4vLyBpbml0aWFsaXplIHN5bmMgdHJhbnNwb3J0IGZvciBzZGsgZW5naW5lXG5jb25zdCB7IGdldENoaWxkcmVuLCBzeW5jRW50aXR5LCBwYXJlbnRFbnRpdHksIGdldFBhcmVudCwgbXlQcm9maWxlLCByZW1vdmVQYXJlbnQsIGdldEZpcnN0Q2hpbGQsIGlzU3RhdGVTeW5jcm9uaXplZCB9ID1cbiAgYWRkU3luY1RyYW5zcG9ydChlbmdpbmUsIHNlbmRCaW5hcnksIGdldFVzZXJEYXRhKVxuXG5leHBvcnQgeyBnZXRGaXJzdENoaWxkLCBnZXRDaGlsZHJlbiwgc3luY0VudGl0eSwgcGFyZW50RW50aXR5LCBnZXRQYXJlbnQsIG15UHJvZmlsZSwgcmVtb3ZlUGFyZW50LCBpc1N0YXRlU3luY3Jvbml6ZWQgfVxuIl19
|
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
/// <reference types="@dcl/js-runtime" />
|
|
2
2
|
import { IEngine } from '@dcl/ecs';
|
|
3
3
|
import { type SendBinaryRequest, type SendBinaryResponse } from '~system/CommunicationsController';
|
|
4
|
-
import { CommsMessage } from './binary-message-bus';
|
|
5
4
|
import { GetUserDataRequest, GetUserDataResponse } from '~system/UserIdentity';
|
|
6
|
-
import { IsServerRequest, IsServerResponse } from '~system/EngineApi';
|
|
7
|
-
import { Atom } from '../atom';
|
|
8
|
-
import { Room } from './events/implementation';
|
|
9
5
|
export type IProfile = {
|
|
10
6
|
networkId: number;
|
|
11
7
|
userId: string;
|
|
12
8
|
};
|
|
13
|
-
export declare
|
|
14
|
-
export declare const DEBUG_NETWORK_MESSAGES: () => any;
|
|
15
|
-
export declare function addSyncTransport(engine: IEngine, sendBinary: (msg: SendBinaryRequest) => Promise<SendBinaryResponse>, getUserData: (value: GetUserDataRequest) => Promise<GetUserDataResponse>, isServerFn: (request: IsServerRequest) => Promise<IsServerResponse>, name: string): {
|
|
9
|
+
export declare function addSyncTransport(engine: IEngine, sendBinary: (msg: SendBinaryRequest) => Promise<SendBinaryResponse>, getUserData: (value: GetUserDataRequest) => Promise<GetUserDataResponse>): {
|
|
16
10
|
myProfile: IProfile;
|
|
17
11
|
isStateSyncronized: () => boolean;
|
|
18
|
-
binaryMessageBus: {
|
|
19
|
-
on: <K extends CommsMessage>(message: K, callback: (value: Uint8Array, sender: string) => void) => void;
|
|
20
|
-
emit: <K_1 extends CommsMessage>(message: K_1, value: Uint8Array, toPeerAddress?: string[] | undefined) => void;
|
|
21
|
-
__processMessages: (messages: Uint8Array[]) => void;
|
|
22
|
-
};
|
|
23
|
-
eventBus: Room<import("./events").EventSchemaRegistry>;
|
|
24
|
-
isRoomReadyAtom: Atom<boolean>;
|
|
25
12
|
syncEntity: (entityId: import("@dcl/ecs").Entity, componentIds: number[], entityEnumId?: number | undefined) => void;
|
|
26
13
|
getChildren: (parent: import("@dcl/ecs").Entity) => Iterable<import("@dcl/ecs").Entity>;
|
|
27
14
|
getParent: (child: import("@dcl/ecs").Entity) => import("@dcl/ecs").Entity | undefined;
|