OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated commits / 17fab95

keet 4.15.0 — OTA update from 4.14.1
Captured: 2026-05-14 Source: AppImage mount /tmp/.mount_Keet.AqNht9x/resources/app/node_modules Headline changes vs 4.14.1: - dispatch schema bumped 12→13, new op #60 @keet-private-id/shorten-device-attestation - new ABI 29 (stable) with feature flags: ROOM_MARK_UNREAD, STRIP_ATTACHMENT_METADATA, SHORTEN_ATTESTATION - ABI 30 reserved (empty placeholder) - @holepunchto/keet-package REMOVED (obfuscator-generation tooling) - keet-core 4.14.4 → 4.15.7 (50 files changed) - keet-store 6.14.30 → 6.15.28 (55 files changed) - keet-identity-key 3.1.0 → 3.2.0 (chain-shortening support) - keet-indexing, keet-registry, keet-push, hyperdiscovery, hyperindex, keet-call, keet-editor, keet-translations, keet-unread-anchors, keet-registry-client all bumped Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
17fab953e7a3cf9f2f71fa6ee3b8df63c12f6072
by fleeky <fleeky@tabertron> · 2026-05-14T21:21:22.000Z

Changed files (213) +12381 -10765

@holepunchto/hyperdiscovery/package.json +3 -3
……@@ -1,13 +1,13 @@
11{
22 "name": "@holepunchto/hyperdiscovery",
3 "version": "1.1.1",
3 "version": "1.2.0",
44 "description": "Peer discovery powered by HyperDHT",
55 "main": "index.js",
66 "dependencies": {
77 "b4a": "^1.6.7",
8 "compact-encoding": "^2.16.1",
8 "compact-encoding": "^3.0.0",
99 "hypercore-crypto": "^3.6.0",
10 "hyperdb": "^5.0.0",
10 "hyperdb": "^6.6.3",
1111 "hyperdht": "^6.20.5",
1212 "hyperschema": "^1.12.1",
1313 "protomux": "^3.10.1",
@holepunchto/hyperindex/package.json +2 -2
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/hyperindex",
3 "version": "2.3.5",
3 "version": "2.4.0",
44 "description": "Indexing and aggregation on Hyperbee",
55 "main": "index.js",
66 "files": [
……@@ -27,6 +27,7 @@
2727 "homepage": "https://github.com/holepunchto/hyperindex#readme",
2828 "devDependencies": {
2929 "brittle": "^3.2.1",
30 "compact-encoding": "^3.0.1",
3031 "hyperbee": "^2.12.0",
3132 "hypercore": "^10.9.2",
3233 "random-access-memory": "^6.2.0",
……@@ -37,7 +38,6 @@
3738 },
3839 "dependencies": {
3940 "b4a": "^1.6.6",
40 "compact-encoding": "^2.11.0",
4141 "index-encoder": "3.3.1",
4242 "mutexify": "^1.4.0",
4343 "ready-resource": "^1.0.0",
@holepunchto/keet-call/client/call/remotes-map.js +19 -15
……@@ -15,26 +15,26 @@ module.exports = class extends t {
1515 clients() {
1616 return this._clientsBySwarmId.values()
1717 }
18 updateStatus(t, e, s = null, l = null) {
19 let a = this._statusById.get(e)
20 const d = null === t ? null : this._clientsBySwarmId.get(t) || null
21 a ||
22 ((a = { ready: !1, stream: new MediaStream(), videoMuted: !1 !== s, audioMuted: !1 !== l }),
23 this._statusById.set(e, a))
24 let u = !1
25 ;(null !== s && ((u = u || a.videoMuted !== s), (a.videoMuted = s)),
26 null !== l && ((u = u || a.audioMuted !== l), (a.audioMuted = l)))
27 const n = null !== d && null !== a.stream
28 if (n) {
29 const t = d.remoteStreams.get(e)
18 updateStatus(t, e, s = null, a = null) {
19 let d = this._statusById.get(e)
20 const l = null === t ? null : this._clientsBySwarmId.get(t) || null
21 d ||
22 ((d = { ready: !1, stream: new MediaStream(), videoMuted: !1 !== s, audioMuted: !1 !== a }),
23 this._statusById.set(e, d))
24 let n = !1
25 ;(null !== s && ((n = n || d.videoMuted !== s), (d.videoMuted = s)),
26 null !== a && ((n = n || d.audioMuted !== a), (d.audioMuted = a)))
27 const i = null !== l && null !== d.stream
28 if (i) {
29 const t = l.remoteStreams.get(e)
3030 if (t) {
31 const e = a.stream
31 const e = d.stream
3232 t.getTracks().forEach((t) => {
3333 e.getTrackById(t.id) || e.addTrack(t)
3434 })
35 } else d.remoteStreams.set(e, a.stream)
35 } else l.remoteStreams.set(e, d.stream)
3636 }
37 return (a.ready !== n && ((u = !0), (a.ready = n)), u && this.emit("change", e, a), a)
37 return (d.ready !== i && ((n = !0), (d.ready = i)), n && this.emit("change", e, d), d)
3838 }
3939 getStatus(t) {
4040 let e = this._statusById.get(t)
……@@ -43,4 +43,8 @@ module.exports = class extends t {
4343 deleteStatus(t) {
4444 this._statusById.delete(t)
4545 }
46 emitChangeOnTrackAdded(t) {
47 const e = this._statusById.get(t)
48 e && e.ready && 0 !== e.stream.getVideoTracks().length && this.emit("change", t, e)
49 }
4650}
@holepunchto/keet-call/client/call/webrtc.js +2 -1
……@@ -89,7 +89,8 @@ module.exports = class extends e {
8989 : "2" === t.mid &&
9090 ((this._screenTransceiver = t),
9191 null !== this.remoteScreenStreamId &&
92 this._remotes.getStatus(this.remoteScreenStreamId).stream.addTrack(e)),
92 (this._remotes.getStatus(this.remoteScreenStreamId).stream.addTrack(e),
93 this._remotes.emitChangeOnTrackAdded(this.remoteScreenStreamId))),
9394 this.isPolite && this._trackReady.notify(),
9495 this._maybeEmitReady())
9596 }
@holepunchto/keet-call/package.json +1 -1
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-call",
3 "version": "10.3.3",
3 "version": "10.3.4",
44 "description": "Track management and relaying for Keet",
55 "main": "client/index.js",
66 "files": [
@holepunchto/keet-core-schemas/node_modules/compact-encoding/.gitattributes +1 -0
……@@ -0,0 +1 @@
1* text=auto eol=lf
@holepunchto/keet-core-schemas/node_modules/compact-encoding/.github/workflows/test-node.yml +23 -0
……@@ -0,0 +1,23 @@
1name: Build Status
2on:
3 push:
4 branches:
5 - main
6 pull_request:
7 branches:
8 - main
9jobs:
10 build:
11 strategy:
12 matrix:
13 node-version: [lts/*]
14 os: [ubuntu-latest, macos-latest, windows-latest]
15 runs-on: ${{ matrix.os }}
16 steps:
17 - uses: actions/checkout@v2
18 - name: Use Node.js ${{ matrix.node-version }}
19 uses: actions/setup-node@v2
20 with:
21 node-version: ${{ matrix.node-version }}
22 - run: npm install
23 - run: npm test
@holepunchto/keet-core-schemas/node_modules/compact-encoding/.prettierrc +1 -0
……@@ -0,0 +1 @@
1prettier-config-holepunch
@holepunchto/keet-core-schemas/node_modules/compact-encoding/LICENSE +201 -0
……@@ -0,0 +1,201 @@
1 Apache License
2 Version 2.0, January 2004
3 http://www.apache.org/licenses/
4
5 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
7 1. Definitions.
8
9 "License" shall mean the terms and conditions for use, reproduction,
10 and distribution as defined by Sections 1 through 9 of this document.
11
12 "Licensor" shall mean the copyright owner or entity authorized by
13 the copyright owner that is granting the License.
14
15 "Legal Entity" shall mean the union of the acting entity and all
16 other entities that control, are controlled by, or are under common
17 control with that entity. For the purposes of this definition,
18 "control" means (i) the power, direct or indirect, to cause the
19 direction or management of such entity, whether by contract or
20 otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 outstanding shares, or (iii) beneficial ownership of such entity.
22
23 "You" (or "Your") shall mean an individual or Legal Entity
24 exercising permissions granted by this License.
25
26 "Source" form shall mean the preferred form for making modifications,
27 including but not limited to software source code, documentation
28 source, and configuration files.
29
30 "Object" form shall mean any form resulting from mechanical
31 transformation or translation of a Source form, including but
32 not limited to compiled object code, generated documentation,
33 and conversions to other media types.
34
35 "Work" shall mean the work of authorship, whether in Source or
36 Object form, made available under the License, as indicated by a
37 copyright notice that is included in or attached to the work
38 (an example is provided in the Appendix below).
39
40 "Derivative Works" shall mean any work, whether in Source or Object
41 form, that is based on (or derived from) the Work and for which the
42 editorial revisions, annotations, elaborations, or other modifications
43 represent, as a whole, an original work of authorship. For the purposes
44 of this License, Derivative Works shall not include works that remain
45 separable from, or merely link (or bind by name) to the interfaces of,
46 the Work and Derivative Works thereof.
47
48 "Contribution" shall mean any work of authorship, including
49 the original version of the Work and any modifications or additions
50 to that Work or Derivative Works thereof, that is intentionally
51 submitted to Licensor for inclusion in the Work by the copyright owner
52 or by an individual or Legal Entity authorized to submit on behalf of
53 the copyright owner. For the purposes of this definition, "submitted"
54 means any form of electronic, verbal, or written communication sent
55 to the Licensor or its representatives, including but not limited to
56 communication on electronic mailing lists, source code control systems,
57 and issue tracking systems that are managed by, or on behalf of, the
58 Licensor for the purpose of discussing and improving the Work, but
59 excluding communication that is conspicuously marked or otherwise
60 designated in writing by the copyright owner as "Not a Contribution."
61
62 "Contributor" shall mean Licensor and any individual or Legal Entity
63 on behalf of whom a Contribution has been received by Licensor and
64 subsequently incorporated within the Work.
65
66 2. Grant of Copyright License. Subject to the terms and conditions of
67 this License, each Contributor hereby grants to You a perpetual,
68 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 copyright license to reproduce, prepare Derivative Works of,
70 publicly display, publicly perform, sublicense, and distribute the
71 Work and such Derivative Works in Source or Object form.
72
73 3. Grant of Patent License. Subject to the terms and conditions of
74 this License, each Contributor hereby grants to You a perpetual,
75 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 (except as stated in this section) patent license to make, have made,
77 use, offer to sell, sell, import, and otherwise transfer the Work,
78 where such license applies only to those patent claims licensable
79 by such Contributor that are necessarily infringed by their
80 Contribution(s) alone or by combination of their Contribution(s)
81 with the Work to which such Contribution(s) was submitted. If You
82 institute patent litigation against any entity (including a
83 cross-claim or counterclaim in a lawsuit) alleging that the Work
84 or a Contribution incorporated within the Work constitutes direct
85 or contributory patent infringement, then any patent licenses
86 granted to You under this License for that Work shall terminate
87 as of the date such litigation is filed.
88
89 4. Redistribution. You may reproduce and distribute copies of the
90 Work or Derivative Works thereof in any medium, with or without
91 modifications, and in Source or Object form, provided that You
92 meet the following conditions:
93
94 (a) You must give any other recipients of the Work or
95 Derivative Works a copy of this License; and
96
97 (b) You must cause any modified files to carry prominent notices
98 stating that You changed the files; and
99
100 (c) You must retain, in the Source form of any Derivative Works
101 that You distribute, all copyright, patent, trademark, and
102 attribution notices from the Source form of the Work,
103 excluding those notices that do not pertain to any part of
104 the Derivative Works; and
105
106 (d) If the Work includes a "NOTICE" text file as part of its
107 distribution, then any Derivative Works that You distribute must
108 include a readable copy of the attribution notices contained
109 within such NOTICE file, excluding those notices that do not
110 pertain to any part of the Derivative Works, in at least one
111 of the following places: within a NOTICE text file distributed
112 as part of the Derivative Works; within the Source form or
113 documentation, if provided along with the Derivative Works; or,
114 within a display generated by the Derivative Works, if and
115 wherever such third-party notices normally appear. The contents
116 of the NOTICE file are for informational purposes only and
117 do not modify the License. You may add Your own attribution
118 notices within Derivative Works that You distribute, alongside
119 or as an addendum to the NOTICE text from the Work, provided
120 that such additional attribution notices cannot be construed
121 as modifying the License.
122
123 You may add Your own copyright statement to Your modifications and
124 may provide additional or different license terms and conditions
125 for use, reproduction, or distribution of Your modifications, or
126 for any such Derivative Works as a whole, provided Your use,
127 reproduction, and distribution of the Work otherwise complies with
128 the conditions stated in this License.
129
130 5. Submission of Contributions. Unless You explicitly state otherwise,
131 any Contribution intentionally submitted for inclusion in the Work
132 by You to the Licensor shall be under the terms and conditions of
133 this License, without any additional terms or conditions.
134 Notwithstanding the above, nothing herein shall supersede or modify
135 the terms of any separate license agreement you may have executed
136 with Licensor regarding such Contributions.
137
138 6. Trademarks. This License does not grant permission to use the trade
139 names, trademarks, service marks, or product names of the Licensor,
140 except as required for reasonable and customary use in describing the
141 origin of the Work and reproducing the content of the NOTICE file.
142
143 7. Disclaimer of Warranty. Unless required by applicable law or
144 agreed to in writing, Licensor provides the Work (and each
145 Contributor provides its Contributions) on an "AS IS" BASIS,
146 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 implied, including, without limitation, any warranties or conditions
148 of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 PARTICULAR PURPOSE. You are solely responsible for determining the
150 appropriateness of using or redistributing the Work and assume any
151 risks associated with Your exercise of permissions under this License.
152
153 8. Limitation of Liability. In no event and under no legal theory,
154 whether in tort (including negligence), contract, or otherwise,
155 unless required by applicable law (such as deliberate and grossly
156 negligent acts) or agreed to in writing, shall any Contributor be
157 liable to You for damages, including any direct, indirect, special,
158 incidental, or consequential damages of any character arising as a
159 result of this License or out of the use or inability to use the
160 Work (including but not limited to damages for loss of goodwill,
161 work stoppage, computer failure or malfunction, or any and all
162 other commercial damages or losses), even if such Contributor
163 has been advised of the possibility of such damages.
164
165 9. Accepting Warranty or Additional Liability. While redistributing
166 the Work or Derivative Works thereof, You may choose to offer,
167 and charge a fee for, acceptance of support, warranty, indemnity,
168 or other liability obligations and/or rights consistent with this
169 License. However, in accepting such obligations, You may act only
170 on Your own behalf and on Your sole responsibility, not on behalf
171 of any other Contributor, and only if You agree to indemnify,
172 defend, and hold each Contributor harmless for any liability
173 incurred by, or claims asserted against, such Contributor by reason
174 of your accepting any such warranty or additional liability.
175
176 END OF TERMS AND CONDITIONS
177
178 APPENDIX: How to apply the Apache License to your work.
179
180 To apply the Apache License to your work, attach the following
181 boilerplate notice, with the fields enclosed by brackets "[]"
182 replaced with your own identifying information. (Don't include
183 the brackets!) The text should be enclosed in the appropriate
184 comment syntax for the file format. We also recommend that a
185 file or class name and description of purpose be included on the
186 same "printed page" as the copyright notice for easier
187 identification within third-party archives.
188
189 Copyright [yyyy] [name of copyright owner]
190
191 Licensed under the Apache License, Version 2.0 (the "License");
192 you may not use this file except in compliance with the License.
193 You may obtain a copy of the License at
194
195 http://www.apache.org/licenses/LICENSE-2.0
196
197 Unless required by applicable law or agreed to in writing, software
198 distributed under the License is distributed on an "AS IS" BASIS,
199 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 See the License for the specific language governing permissions and
201 limitations under the License.
@holepunchto/keet-core-schemas/node_modules/compact-encoding/NOTICE +13 -0
……@@ -0,0 +1,13 @@
1Copyright 2023 Holepunch Inc
2
3Licensed under the Apache License, Version 2.0 (the "License");
4you may not use this file except in compliance with the License.
5You may obtain a copy of the License at
6
7 http://www.apache.org/licenses/LICENSE-2.0
8
9Unless required by applicable law or agreed to in writing, software
10distributed under the License is distributed on an "AS IS" BASIS,
11WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12See the License for the specific language governing permissions and
13limitations under the License.
@holepunchto/keet-core-schemas/node_modules/compact-encoding/README.md +165 -0
……@@ -0,0 +1,165 @@
1# compact-encoding
2
3A series of compact encoding schemes for building small and fast parsers and serializers
4
5```
6npm install compact-encoding
7```
8
9## Usage
10
11```js
12const cenc = require('compact-encoding')
13
14const state = cenc.state()
15
16// use preencode to figure out how big a buffer is needed
17cenc.uint.preencode(state, 42)
18cenc.string.preencode(state, 'hi')
19
20console.log(state) // { start: 0, end: 4, buffer: null }
21
22state.buffer = Buffer.allocUnsafe(state.end)
23
24// then use encode to actually encode it to the buffer
25cenc.uint.encode(state, 42)
26cenc.string.encode(state, 'hi')
27
28// to decode it simply use decode instead
29
30state.start = 0
31cenc.uint.decode(state) // 42
32cenc.string.decode(state) // 'hi'
33```
34
35## Encoder API
36
37#### `state`
38
39Should be an object that looks like this `{ start, end, buffer }`.
40
41You can also get a blank state object using `cenc.state()`.
42
43- `start` is the byte offset to start encoding/decoding at.
44- `end` is the byte offset indicating the end of the buffer.
45- `buffer` should be either a Node.js Buffer or Uint8Array.
46
47#### `enc.preencode(state, val)`
48
49Does a fast preencode dry-run that only sets state.end.
50Use this to figure out how big of a buffer you need.
51
52#### `enc.encode(state, val)`
53
54Encodes `val` into `state.buffer` at position `state.start`.
55Updates `state.start` to point after the encoded value when done.
56
57#### `val = enc.decode(state)`
58
59Decodes a value from `state.buffer` as position `state.start`.
60Updates `state.start` to point after the decoded value when done in the buffer.
61
62## Helpers
63
64If you are just encoding to a buffer or decoding from one you can use the `encode` and `decode` helpers
65to reduce your boilerplate
66
67```js
68const buf = cenc.encode(cenc.bool, true)
69const bool = cenc.decode(cenc.bool, buf)
70```
71
72## Bundled encodings
73
74The following encodings are bundled as they are primitives that can be used
75to build others on top. Feel free to PR more that are missing.
76
77- `cenc.raw` - Pass through encodes a buffer, i.e. a basic copy.
78- `cenc.uint` - Encodes a uint using the smallest fixed size encoding with a prefix to signal which one. Useful for uints that can be a wide range of values.
79- `cenc.uint8` - Encodes a fixed size uint8.
80- `cenc.uint16` - Encodes a fixed size uint16. Useful for things like ports.
81- `cenc.uint24` - Encodes a fixed size uint24. Useful for message framing.
82- `cenc.uint32` - Encodes a fixed size uint32. Useful for very large message framing.
83- `cenc.uint40` - Encodes a fixed size uint40.
84- `cenc.uint48` - Encodes a fixed size uint48.
85- `cenc.uint56` - Encodes a fixed size uint56.
86- `cenc.uint64` - Encodes a fixed size uint64.
87- `cenc.int` - Encodes an int using `cenc.uint` with ZigZag encoding.
88- `cenc.int8` - Encodes a fixed size int8 using `cenc.uint8` with ZigZag encoding.
89- `cenc.int16` - Encodes a fixed size int16 using `cenc.uint16` with ZigZag encoding.
90- `cenc.int24` - Encodes a fixed size int24 using `cenc.uint24` with ZigZag encoding.
91- `cenc.int32` - Encodes a fixed size int32 using `cenc.uint32` with ZigZag encoding.
92- `cenc.int40` - Encodes a fixed size int40 using `cenc.uint40` with ZigZag encoding.
93- `cenc.int48` - Encodes a fixed size int48 using `cenc.uint48` with ZigZag encoding.
94- `cenc.int56` - Encodes a fixed size int56 using `cenc.uint56` with ZigZag encoding.
95- `cenc.int64` - Encodes a fixed size int64 using `cenc.uint64` with ZigZag encoding.
96- `cenc.biguint64` - Encodes a fixed size biguint64.
97- `cenc.bigint64` - Encodes a fixed size bigint64 using `cenc.biguint64` with ZigZag encoding.
98- `cenc.biguint` - Encodes a biguint with its word count uint prefixed.
99- `cenc.bigint` - Encodes a bigint using `cenc.biguint` with ZigZag encoding.
100- `cenc.float32` - Encodes a fixed size float32.
101- `cenc.float64` - Encodes a fixed size float64.
102- `cenc.buffer` - Encodes a buffer with its length uint prefixed. When decoding an empty buffer, `null` is returned.
103- `cenc.raw.buffer` - Encodes a buffer without a length prefixed.
104- `cenc.arraybuffer` - Encodes an arraybuffer with its length uint prefixed.
105- `cenc.raw.arraybuffer` - Encodes an arraybuffer without a length prefixed.
106- `cenc.uint8array` - Encodes a uint8array with its element length uint prefixed.
107- `cenc.raw.uint8array` - Encodes a uint8array without a length prefixed.
108- `cenc.uint16array` - Encodes a uint16array with its element length uint prefixed.
109- `cenc.raw.uint16array` - Encodes a uint16array without a length prefixed.
110- `cenc.uint32array` - Encodes a uint32array with its element length uint prefixed.
111- `cenc.raw.uint32array` - Encodes a uint32array without a length prefixed.
112- `cenc.int8array` - Encodes a int8array with its element length uint prefixed.
113- `cenc.raw.int8array` - Encodes a int8array without a length prefixed.
114- `cenc.int16array` - Encodes a int16array with its element length uint prefixed.
115- `cenc.raw.int16array` - Encodes a int16array without a length prefixed.
116- `cenc.int32array` - Encodes a int32array with its element length uint prefixed.
117- `cenc.raw.int32array` - Encodes a int32array without a length prefixed.
118- `cenc.biguint64array` - Encodes a biguint64array with its element length uint prefixed.
119- `cenc.raw.biguint64array` - Encodes a biguint64array without a length prefixed.
120- `cenc.bigint64array` - Encodes a bigint64array with its element length uint prefixed.
121- `cenc.raw.bigint64array` - Encodes a bigint64array without a length prefixed.
122- `cenc.float32array` - Encodes a float32array with its element length uint prefixed.
123- `cenc.raw.float32array` - Encodes a float32array without a length prefixed.
124- `cenc.float64array` - Encodes a float64array with its element length uint prefixed.
125- `cenc.raw.float64array` - Encodes a float64array without a length prefixed.
126- `cenc.bool` - Encodes a boolean as 1 or 0.
127- `cenc.string`, `cenc.utf8` - Encodes a utf-8 string, similar to buffer.
128- `cenc.raw.string`, `cenc.raw.utf8` - Encodes a utf-8 string without a length prefixed.
129- `cenc.string.fixed(n)`, `cenc.utf8.fixed(n)` - Encodes a fixed sized utf-8 string.
130- `cenc.ascii` - Encodes an ascii string.
131- `cenc.raw.ascii` - Encodes an ascii string without a length prefixed.
132- `cenc.ascii.fixed(n)` - Encodes a fixed size ascii string.
133- `cenc.hex` - Encodes a hex string.
134- `cenc.raw.hex` - Encodes a hex string without a length prefixed.
135- `cenc.hex.fixed(n)` - Encodes a fixed size hex string.
136- `cenc.base64` - Encodes a base64 string.
137- `cenc.raw.base64` - Encodes a base64 string without a length prefixed.
138- `cenc.base64.fixed(n)` - Encodes a fixed size base64 string.
139- `cenc.utf16le`, `cenc.ucs2` - Encodes a utf16le string.
140- `cenc.raw.utf16le`, `cenc.raw.ucs2` - Encodes a utf16le string without a length prefixed.
141- `cenc.utf16le.fixed(n)`, `cenc.ucs2.fixed(n)` - Encodes a fixed size utf16le string.
142- `cenc.fixed32` - Encodes a fixed 32 byte buffer.
143- `cenc.fixed64` - Encodes a fixed 64 byte buffer.
144- `cenc.fixed(n)` - Makes a fixed sized encoder.
145- `cenc.date(d)` - Encodes a date object.
146- `cenc.array(enc)` - Makes an array encoder from another encoder. Arrays are uint prefixed with their length.
147- `cenc.raw.array(enc)` - Makes an array encoder from another encoder, without a length prefixed.
148- `cenc.json` - Encodes a JSON value as utf-8.
149- `cenc.raw.json` - Encodes a JSON value as utf-8 without a length prefixed.
150- `cenc.ndjson` - Encodes a JSON value as newline delimited utf-8.
151- `cenc.raw.ndjson` - Encodes a JSON value as newline delimited utf-8 without a length prefixed.
152- `cenc.any` - Encodes any JSON representable value into a self described buffer. Like JSON + buffer, but using compact types. Useful for schemaless codecs.
153- `cenc.port` - Encodes a port number for network addresses.
154- `cenc.ipv4` - Encodes an IPv4 network address.
155- `cenc.ipv4Address` Encodes an IPv4 network address and a port number.
156- `cenc.ipv6` - Encodes an IPv6 network address.
157- `cenc.ipv6Address` Encodes an IPv6 network address and a port number.
158- `cenc.ip` - Encodes a dual IPv4/6 network address.
159- `cenc.ipAddress` Encodes a dual IPv4/6 network address and a port number.
160- `cenc.from(enc)` - Makes a compact encoder from a [codec](https://github.com/mafintosh/codecs) or [abstract-encoding](https://github.com/mafintosh/abstract-encoding).
161- `cenc.none` - Helper for when you want to just express nothing
162
163## License
164
165Apache 2.0
@holepunchto/keet-core-schemas/node_modules/compact-encoding/endian.js +1 -0
……@@ -0,0 +1 @@
1const r=exports.LE=255===new Uint8Array(new Uint16Array([255]).buffer)[0];exports.BE=!r;
@holepunchto/keet-core-schemas/node_modules/compact-encoding/index.js +1 -0
……@@ -0,0 +1 @@
1const e=require("b4a"),{BE:t}=require("./endian");exports.state=function(e=0,t=0,r=null){return{start:e,end:t,buffer:r}};const r=exports.raw=require("./raw"),n=exports.uint={preencode(e,t){e.end+=t<=252?1:t<=65535?3:t<=4294967295?5:9},encode(e,t){t<=252?o.encode(e,t):t<=65535?(e.buffer[e.start++]=253,d.encode(e,t)):t<=4294967295?(e.buffer[e.start++]=254,c.encode(e,t)):(e.buffer[e.start++]=255,i.encode(e,t))},decode(e){const t=o.decode(e);return t<=252?t:253===t?d.decode(e):254===t?c.decode(e):i.decode(e)}},o=exports.uint8={preencode(e,t){e.end+=1},encode(e,t){R(t),e.buffer[e.start++]=t},decode(e){if(e.start>=e.end)throw new Error("Out of bounds");return e.buffer[e.start++]}},d=exports.uint16={preencode(e,t){e.end+=2},encode(e,t){R(t),e.buffer[e.start++]=t,e.buffer[e.start++]=t>>>8},decode(e){if(e.end-e.start<2)throw new Error("Out of bounds");return e.buffer[e.start++]+256*e.buffer[e.start++]}},s=exports.uint24={preencode(e,t){e.end+=3},encode(e,t){R(t),e.buffer[e.start++]=t,e.buffer[e.start++]=t>>>8,e.buffer[e.start++]=t>>>16},decode(e){if(e.end-e.start<3)throw new Error("Out of bounds");return e.buffer[e.start++]+256*e.buffer[e.start++]+65536*e.buffer[e.start++]}},c=exports.uint32={preencode(e,t){e.end+=4},encode(e,t){R(t),e.buffer[e.start++]=t,e.buffer[e.start++]=t>>>8,e.buffer[e.start++]=t>>>16,e.buffer[e.start++]=t>>>24},decode(e){if(e.end-e.start<4)throw new Error("Out of bounds");return e.buffer[e.start++]+256*e.buffer[e.start++]+65536*e.buffer[e.start++]+16777216*e.buffer[e.start++]}},f=exports.uint40={preencode(e,t){e.end+=5},encode(e,t){R(t);const r=Math.floor(t/256);o.encode(e,t),c.encode(e,r)},decode(e){if(e.end-e.start<5)throw new Error("Out of bounds");return o.decode(e)+256*c.decode(e)}},u=exports.uint48={preencode(e,t){e.end+=6},encode(e,t){R(t);const r=Math.floor(t/65536);d.encode(e,t),c.encode(e,r)},decode(e){if(e.end-e.start<6)throw new Error("Out of bounds");return d.decode(e)+65536*c.decode(e)}},a=exports.uint56={preencode(e,t){e.end+=7},encode(e,t){R(t);const r=Math.floor(t/16777216);s.encode(e,t),c.encode(e,r)},decode(e){if(e.end-e.start<7)throw new Error("Out of bounds");return s.decode(e)+16777216*c.decode(e)}},i=exports.uint64={preencode(e,t){e.end+=8},encode(e,t){R(t);const r=Math.floor(t/4294967296);c.encode(e,t),c.encode(e,r)},decode(e){if(e.end-e.start<8)throw new Error("Out of bounds");return c.decode(e)+4294967296*c.decode(e)}},p=exports.int=k(n);exports.int8=k(o),exports.int16=k(d),exports.int24=k(s),exports.int32=k(c),exports.int40=k(f),exports.int48=k(u),exports.int56=k(a),exports.int64=k(i);const b=exports.biguint64={preencode(e,t){e.end+=8},encode(e,t){new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8).setBigUint64(0,t,!0),e.start+=8},decode(e){if(e.end-e.start<8)throw new Error("Out of bounds");const t=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8).getBigUint64(0,!0);return e.start+=8,t}};exports.bigint64=q(b);const l=exports.biguint={preencode(e,t){let r=0;for(let e=t;e;e>>=64n)r++;n.preencode(e,r),e.end+=8*r},encode(e,t){let r=0;for(let e=t;e;e>>=64n)r++;n.encode(e,r);const o=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8*r);for(let e=t,r=0;e;e>>=64n,r+=8)o.setBigUint64(r,BigInt.asUintN(64,e),!0);e.start+=8*r},decode(e){const t=n.decode(e);if(e.end-e.start<8*t)throw new Error("Out of bounds");const r=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8*t);let o=0n;for(let e=t-1;e>=0;e--)o=(o<<64n)+r.getBigUint64(8*e,!0);return e.start+=8*t,o}};exports.bigint=q(l),exports.lexint=require("./lexint"),exports.float32={preencode(e,t){e.end+=4},encode(e,t){new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,4).setFloat32(0,t,!0),e.start+=4},decode(e){if(e.end-e.start<4)throw new Error("Out of bounds");const t=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,4).getFloat32(0,!0);return e.start+=4,t}},exports.float64={preencode(e,t){e.end+=8},encode(e,t){new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8).setFloat64(0,t,!0),e.start+=8},decode(e){if(e.end-e.start<8)throw new Error("Out of bounds");const t=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8).getFloat64(0,!0);return e.start+=8,t}};const x=exports.buffer={preencode(e,t){t?y.preencode(e,t):e.end++},encode(e,t){t?y.encode(e,t):e.buffer[e.start++]=0},decode(e){const t=n.decode(e);if(0===t)return null;if(e.end-e.start<t)throw new Error("Out of bounds");return e.buffer.subarray(e.start,e.start+=t)}};function w(e,r){const o=e.BYTES_PER_ELEMENT;return{preencode(e,t){n.preencode(e,t.length),e.end+=t.byteLength},encode(e,o){n.encode(e,o.length);const d=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);t&&r&&r(d),e.buffer.set(d,e.start),e.start+=o.byteLength},decode(d){const s=n.decode(d);let c=d.buffer.subarray(d.start,d.start+=s*o);if(c.byteLength!==s*o)throw new Error("Out of bounds");return c.byteOffset%o!==0&&(c=new Uint8Array(c)),t&&r&&r(c),new e(c.buffer,c.byteOffset,c.byteLength/o)}}}exports.binary={...x,preencode(e,t){"string"==typeof t?g.preencode(e,t):x.preencode(e,t)},encode(e,t){"string"==typeof t?g.encode(e,t):x.encode(e,t)}},exports.arraybuffer={preencode(e,t){n.preencode(e,t.byteLength),e.end+=t.byteLength},encode(e,t){n.encode(e,t.byteLength);const r=new Uint8Array(t);e.buffer.set(r,e.start),e.start+=t.byteLength},decode(e){const t=n.decode(e),r=new ArrayBuffer(t);return new Uint8Array(r).set(e.buffer.subarray(e.start,e.start+=t)),r}};const y=exports.uint8array=w(Uint8Array);function h(t){return{preencode(r,o){const d=e.byteLength(o,t);n.preencode(r,d),r.end+=d},encode(r,o){const d=e.byteLength(o,t);n.encode(r,d),e.write(r.buffer,o,r.start,t),r.start+=d},decode(r){const o=n.decode(r);if(r.end-r.start<o)throw new Error("Out of bounds");return e.toString(r.buffer,t,r.start,r.start+=o)},fixed:r=>({preencode(e){e.end+=r},encode(n,o){e.write(n.buffer,o,n.start,r,t),n.start+=r},decode(n){if(n.end-n.start<r)throw new Error("Out of bounds");return e.toString(n.buffer,t,n.start,n.start+=r)}})}}exports.uint16array=w(Uint16Array,e.swap16),exports.uint32array=w(Uint32Array,e.swap32),exports.int8array=w(Int8Array),exports.int16array=w(Int16Array,e.swap16),exports.int32array=w(Int32Array,e.swap32),exports.biguint64array=w(BigUint64Array,e.swap64),exports.bigint64array=w(BigInt64Array,e.swap64),exports.float32array=w(Float32Array,e.swap32),exports.float64array=w(Float64Array,e.swap64);const g=exports.string=exports.utf8=h("utf-8");exports.ascii=h("ascii"),exports.hex=h("hex"),exports.base64=h("base64"),exports.ucs2=exports.utf16le=h("utf16le"),exports.bool={preencode(e,t){e.end++},encode(e,t){e.buffer[e.start++]=t?1:0},decode(e){if(e.start>=e.end)throw Error("Out of bounds");return 1===e.buffer[e.start++]}};const O=exports.fixed=function(e){return{preencode(t,r){if(r.byteLength!==e)throw new Error("Incorrect buffer size");t.end+=e},encode(t,r){t.buffer.set(r,t.start),t.start+=e},decode(t){if(t.end-t.start<e)throw new Error("Out of bounds");return t.buffer.subarray(t.start,t.start+=e)}}};exports.fixed32=O(32),exports.fixed64=O(64),exports.array=function(e){return{preencode(t,r){n.preencode(t,r.length);for(let n=0;n<r.length;n++)e.preencode(t,r[n])},encode(t,r){n.encode(t,r.length);for(let n=0;n<r.length;n++)e.encode(t,r[n])},decode(t){const r=n.decode(t);if(r>1048576)throw new Error("Array is too big");const o=new Array(r);for(let n=0;n<r;n++)o[n]=e.decode(t);return o}}},exports.frame=function(e){const t=exports.state();return{preencode(t,r){const o=t.end;e.preencode(t,r),n.preencode(t,t.end-o)},encode(r,o){t.end=0,e.preencode(t,o),n.encode(r,t.end),e.encode(r,o)},decode(t){const r=t.end,o=n.decode(t);t.end=t.start+o;const d=e.decode(t);return t.start=t.end,t.end=r,d}}},exports.date={preencode(e,t){p.preencode(e,t.getTime())},encode(e,t){p.encode(e,t.getTime())},decode:(e,t)=>new Date(p.decode(e))},exports.json={preencode(e,t){g.preencode(e,JSON.stringify(t))},encode(e,t){g.encode(e,JSON.stringify(t))},decode:e=>JSON.parse(g.decode(e))},exports.ndjson={preencode(e,t){g.preencode(e,JSON.stringify(t)+"\n")},encode(e,t){g.encode(e,JSON.stringify(t)+"\n")},decode:e=>JSON.parse(g.decode(e))},exports.none={preencode(e,t){},encode(e,t){},decode:e=>null};const E={preencode(e,t){n.preencode(e,t.length);for(let r=0;r<t.length;r++)S.preencode(e,t[r])},encode(e,t){n.encode(e,t.length);for(let r=0;r<t.length;r++)S.encode(e,t[r])},decode(e){const t=[];let r=n.decode(e);for(;r-- >0;)t.push(S.decode(e));return t}},A={preencode(e,t){const r=Object.keys(t);n.preencode(e,r.length);for(const n of r)g.preencode(e,n),S.preencode(e,t[n])},encode(e,t){const r=Object.keys(t);n.encode(e,r.length);for(const n of r)g.encode(e,n),S.encode(e,t[n])},decode(e){let t=n.decode(e);const r={};for(;t-- >0;)r[g.decode(e)]=S.decode(e);return r}},L=[exports.none,exports.bool,exports.string,exports.buffer,exports.uint,exports.int,exports.float64,E,A,exports.date],S=exports.any={preencode(e,t){const r=V(t);n.preencode(e,r),L[r].preencode(e,t)},encode(e,t){const r=V(t);n.encode(e,r),L[r].encode(e,t)},decode(e){const t=n.decode(e);if(t>=L.length)throw new Error("Unknown type: "+t);return L[t].decode(e)}},U=exports.port=d,j=(e,t)=>({preencode(t,r){e.preencode(t,r.host),U.preencode(t,r.port)},encode(t,r){e.encode(t,r.host),U.encode(t,r.port)},decode:r=>({host:e.decode(r),family:t,port:U.decode(r)})}),B=exports.ipv4={preencode(e){e.end+=4},encode(e,t){const r=e.start+4;let n=0;for(;n<t.length;){let r,o=0;for(;n<t.length&&46!==(r=t.charCodeAt(n++));)o=10*o+(r-48);e.buffer[e.start++]=o}e.start=r},decode(e){if(e.end-e.start<4)throw new Error("Out of bounds");return e.buffer[e.start++]+"."+e.buffer[e.start++]+"."+e.buffer[e.start++]+"."+e.buffer[e.start++]}};exports.ipv4Address=j(B,4);const D=exports.ipv6={preencode(e){e.end+=16},encode(e,t){const r=e.start+16;let n=0,o=null;for(;n<t.length;){let r,d=0;for(;n<t.length&&58!==(r=t.charCodeAt(n++));)r>=48&&r<=57?d=16*d+(r-48):r>=65&&r<=70?d=16*d+(r-65+10):r>=97&&r<=102&&(d=16*d+(r-97+10));e.buffer[e.start++]=d>>>8,e.buffer[e.start++]=d,n<t.length&&58===t.charCodeAt(n)&&(n++,o=e.start)}if(null!==o){const t=r-e.start;e.buffer.copyWithin(o+t,o).fill(0,o,o+t)}e.start=r},decode(e){if(e.end-e.start<16)throw new Error("Out of bounds");return(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)}};exports.ipv6Address=j(D,6);const m=exports.ip={preencode(e,t){const r=t.includes(":")?6:4;o.preencode(e,r),4===r?B.preencode(e):D.preencode(e)},encode(e,t){const r=t.includes(":")?6:4;o.encode(e,r),4===r?B.encode(e,t):D.encode(e,t)},decode:e=>4===o.decode(e)?B.decode(e):D.decode(e)};exports.ipAddress={preencode(e,t){m.preencode(e,t.host),U.preencode(e,t.port)},encode(e,t){m.encode(e,t.host),U.encode(e,t.port)},decode(e){const t=o.decode(e);return{host:4===t?B.decode(e):D.decode(e),family:t,port:U.decode(e)}}};const N=exports.record=function(e,t){return{preencode(r,o){const d=Object.keys(o);n.preencode(r,d.length);for(const n of d)e.preencode(r,n),t.preencode(r,o[n])},encode(r,o){const d=Object.keys(o);n.encode(r,d.length);for(const n of d)e.encode(r,n),t.encode(r,o[n])},decode(r){const o=Object.create(null),d=n.decode(r);for(let n=0;n<d;n++)o[e.decode(r)]=t.decode(r);return o}}};function V(t){if(null==t)return 0;if("boolean"==typeof t)return 1;if("string"==typeof t)return 2;if(e.isBuffer(t))return 3;if("number"==typeof t)return Number.isInteger(t)?t>=0?4:5:6;if(Array.isArray(t))return 7;if(t instanceof Date)return 9;if("object"==typeof t)return 8;throw new Error("Unsupported type for "+t)}function I(e){switch(e){case"ascii":return r.ascii;case"utf-8":case"utf8":return r.utf8;case"hex":return r.hex;case"base64":return r.base64;case"utf16-le":case"utf16le":case"ucs-2":case"ucs2":return r.ucs2;case"ndjson":return r.ndjson;case"json":return r.json;default:return r.binary}}function F(e){let t=null,n=null;return{preencode(r,o){t=o,n=e.encode(o),r.end+=n.byteLength},encode(o,d){r.encode(o,d===t?n:e.encode(d)),t=n=null},decode:t=>e.decode(r.decode(t))}}function J(e){return{preencode(t,r){t.end+=e.encodingLength(r)},encode(t,r){e.encode(r,t.buffer,t.start),t.start+=e.encode.bytes},decode(t){const r=e.decode(t.buffer,t.start,t.end);return t.start+=e.decode.bytes,r}}}function k(e){return{preencode(t,r){e.preencode(t,M(r))},encode(t,r){e.encode(t,M(r))},decode:t=>v(e.decode(t))}}function v(e){return 0===e?e:1&e?-(e+1)/2:e/2}function M(e){return e<0?2*-e-1:0===e?0:2*e}function q(e){return{preencode(t,r){e.preencode(t,C(r))},encode(t,r){e.encode(t,C(r))},decode:t=>T(e.decode(t))}}function T(e){return 0n===e?e:0n==(1n&e)?e/2n:-(e+1n)/2n}function C(e){return e<0n?2n*-e-1n:0n===e?0n:2n*e}function R(e){if(e>=0==0)throw new Error("uint must be positive")}exports.stringRecord=N(g,g),exports.from=function(e){return"string"==typeof e?I(e):e.preencode?e:e.encodingLength?J(e):F(e)},exports.encode=function(t,r){const n=exports.state();return t.preencode(n,r),n.buffer=e.allocUnsafe(n.end),t.encode(n,r),n.buffer},exports.decode=function(e,t){return e.decode(exports.state(0,t.byteLength,t))};
@holepunchto/keet-core-schemas/node_modules/compact-encoding/lexint.js +1 -0
……@@ -0,0 +1 @@
1function t(r,f){f<251?r.end++:f<256?r.end+=2:f<65536?r.end+=3:f<16777216?r.end+=4:f<4294967296?r.end+=5:(r.end++,t(r,Math.floor(Math.log(f)/Math.log(2))-32),r.end+=6)}function r(t,f){const e=f-251;if(f<251)t.buffer[t.start++]=f;else if(f<256)t.buffer[t.start++]=251,t.buffer[t.start++]=e;else if(f<65536)t.buffer[t.start++]=252,t.buffer[t.start++]=e>>8&255,t.buffer[t.start++]=255&e;else if(f<16777216)t.buffer[t.start++]=253,t.buffer[t.start++]=e>>16,t.buffer[t.start++]=e>>8&255,t.buffer[t.start++]=255&e;else if(f<4294967296)t.buffer[t.start++]=254,t.buffer[t.start++]=e>>24,t.buffer[t.start++]=e>>16&255,t.buffer[t.start++]=e>>8&255,t.buffer[t.start++]=255&e;else{const f=Math.floor(Math.log(e)/Math.log(2))-32;t.buffer[t.start++]=255,r(t,f);const s=e/Math.pow(2,f-11);for(let r=5;r>=0;r--)t.buffer[t.start++]=s/Math.pow(2,8*r)&255}}function f(t){const r=251;if(t.end-t.start<1)throw new Error("Out of bounds");const e=t.buffer[t.start++];if(e<r)return e;if(t.end-t.start<e-r+1)throw new Error("Out of bounds.");if(e<252)return t.buffer[t.start++]+r;if(e<253)return(t.buffer[t.start++]<<8)+t.buffer[t.start++]+r;if(e<254)return(t.buffer[t.start++]<<16)+(t.buffer[t.start++]<<8)+t.buffer[t.start++]+r;if(e<255)return 16777216*t.buffer[t.start++]+(t.buffer[t.start++]<<16)+(t.buffer[t.start++]<<8)+t.buffer[t.start++]+r;const s=f(t);if(t.end-t.start<6)throw new Error("Out of bounds");let u=0;for(let r=5;r>=0;r--)u+=t.buffer[t.start++]*Math.pow(2,8*r);return u*Math.pow(2,s-11)+r}module.exports={preencode:t,encode:r,decode:f};
@holepunchto/keet-core-schemas/node_modules/compact-encoding/package.json +28 -0
……@@ -0,0 +1,28 @@
1{
2 "name": "compact-encoding",
3 "version": "2.19.2",
4 "description": "A series of compact encoding schemes for building small and fast parsers and serializers",
5 "main": "index.js",
6 "dependencies": {
7 "b4a": "^1.3.0"
8 },
9 "devDependencies": {
10 "brittle": "^3.0.0",
11 "prettier": "^3.6.2",
12 "prettier-config-holepunch": "^1.0.0"
13 },
14 "scripts": {
15 "format": "prettier . --write",
16 "test": "prettier . --check && brittle test.js"
17 },
18 "repository": {
19 "type": "git",
20 "url": "https://github.com/holepunchto/compact-encoding.git"
21 },
22 "author": "Mathias Buus (@mafintosh)",
23 "license": "Apache-2.0",
24 "bugs": {
25 "url": "https://github.com/holepunchto/compact-encoding/issues"
26 },
27 "homepage": "https://github.com/holepunchto/compact-encoding"
28}
@holepunchto/keet-core-schemas/node_modules/compact-encoding/raw.js +1 -0
……@@ -0,0 +1 @@
1const e=require("b4a"),{BE:r}=require("./endian");exports=module.exports={preencode(e,r){e.end+=r.byteLength},encode(e,r){e.buffer.set(r,e.start),e.start+=r.byteLength},decode(e){const r=e.buffer.subarray(e.start,e.end);return e.start=e.end,r}};const t=exports.buffer={preencode(e,r){r?o.preencode(e,r):e.end++},encode(e,r){r?o.encode(e,r):e.buffer[e.start++]=0},decode(e){const r=e.buffer.subarray(e.start);return 0===r.byteLength?null:(e.start=e.end,r)}};function n(e,t){const n=e.BYTES_PER_ELEMENT;return{preencode(e,r){e.end+=r.byteLength},encode(e,n){const o=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);r&&t&&t(o),e.buffer.set(o,e.start),e.start+=n.byteLength},decode(o){let s=o.buffer.subarray(o.start);return s.byteOffset%n!==0&&(s=new Uint8Array(s)),r&&t&&t(s),o.start=o.end,new e(s.buffer,s.byteOffset,s.byteLength/n)}}}exports.binary={...t,preencode(e,r){"string"==typeof r?a.preencode(e,r):t.preencode(e,r)},encode(e,r){"string"==typeof r?a.encode(e,r):t.encode(e,r)}},exports.arraybuffer={preencode(e,r){e.end+=r.byteLength},encode(e,r){const t=new Uint8Array(r);e.buffer.set(t,e.start),e.start+=r.byteLength},decode(e){const r=new ArrayBuffer(e.end-e.start);return new Uint8Array(r).set(e.buffer.subarray(e.start)),e.start=e.end,r}};const o=exports.uint8array=n(Uint8Array);function s(r){return{preencode(t,n){t.end+=e.byteLength(n,r)},encode(t,n){t.start+=e.write(t.buffer,n,t.start,r)},decode(t){const n=e.toString(t.buffer,r,t.start);return t.start=t.end,n}}}exports.uint16array=n(Uint16Array,e.swap16),exports.uint32array=n(Uint32Array,e.swap32),exports.int8array=n(Int8Array),exports.int16array=n(Int16Array,e.swap16),exports.int32array=n(Int32Array,e.swap32),exports.biguint64array=n(BigUint64Array,e.swap64),exports.bigint64array=n(BigInt64Array,e.swap64),exports.float32array=n(Float32Array,e.swap32),exports.float64array=n(Float64Array,e.swap64);const a=exports.string=exports.utf8=s("utf-8");exports.ascii=s("ascii"),exports.hex=s("hex"),exports.base64=s("base64"),exports.ucs2=exports.utf16le=s("utf16le"),exports.array=function(e){return{preencode(r,t){for(const n of t)e.preencode(r,n)},encode(r,t){for(const n of t)e.encode(r,n)},decode(r){const t=[];for(;r.start<r.end;)t.push(e.decode(r));return t}}},exports.json={preencode(e,r){a.preencode(e,JSON.stringify(r))},encode(e,r){a.encode(e,JSON.stringify(r))},decode:e=>JSON.parse(a.decode(e))},exports.ndjson={preencode(e,r){a.preencode(e,JSON.stringify(r)+"\n")},encode(e,r){a.encode(e,JSON.stringify(r)+"\n")},decode:e=>JSON.parse(a.decode(e))};
@holepunchto/keet-core-schemas/node_modules/compact-encoding/test.js +1 -0
……@@ -0,0 +1 @@
1const e=require("./"),t=require("brittle"),a=require("b4a");t("uint",function(t){const n=e.state();e.uint.preencode(n,42),t.alike(n,e.state(0,1)),e.uint.preencode(n,4200),t.alike(n,e.state(0,4)),e.uint.preencode(n,Number.MAX_SAFE_INTEGER),t.alike(n,e.state(0,13)),n.buffer=a.alloc(n.end),e.uint.encode(n,42),t.alike(n,e.state(1,13,a.from([42,0,0,0,0,0,0,0,0,0,0,0,0]))),e.uint.encode(n,4200),t.alike(n,e.state(4,13,a.from([42,253,104,16,0,0,0,0,0,0,0,0,0]))),e.uint.encode(n,Number.MAX_SAFE_INTEGER),t.alike(n,e.state(13,13,a.from([42,253,104,16,255,255,255,255,255,255,255,31,0]))),n.start=0,t.is(e.uint.decode(n),42),t.is(e.uint.decode(n),4200),t.is(e.uint.decode(n),Number.MAX_SAFE_INTEGER),t.is(n.start,n.end),t.exception(()=>e.uint.decode(n))}),t("int",function(t){const n=e.state();e.int.preencode(n,42),t.alike(n,e.state(0,1)),e.int.preencode(n,-4200),t.alike(n,e.state(0,4)),n.buffer=a.alloc(n.end),e.int.encode(n,42),t.alike(n,e.state(1,4,a.from([84,0,0,0]))),e.int.encode(n,-4200),t.alike(n,e.state(4,4,a.from([84,253,207,32]))),n.start=0,t.is(e.int.decode(n),42),t.is(e.int.decode(n),-4200),t.is(n.start,n.end),t.exception(()=>e.int.decode(n))}),t("float64",function(t){const n=e.state();e.float64.preencode(n,162.2377294),t.alike(n,e.state(0,8)),n.buffer=a.alloc(n.end),t.alike(n,e.state(0,8,a.from([0,0,0,0,0,0,0,0]))),e.float64.encode(n,162.2377294),t.alike(n,e.state(8,8,a.from([135,201,175,122,155,71,100,64]))),n.start=0,t.is(e.float64.decode(n),162.2377294),t.is(n.start,n.end),t.exception(()=>e.float64.decode(n)),n.start=0,n.end=0,n.buffer=null,e.int.preencode(n,0),e.float64.preencode(n,162.2377294),t.alike(n,e.state(0,9)),n.buffer=a.alloc(n.end),t.alike(n,e.state(0,9,a.from([0,0,0,0,0,0,0,0,0]))),e.int.encode(n,0),e.float64.encode(n,162.2377294),t.alike(n,e.state(9,9,a.from([0,135,201,175,122,155,71,100,64]))),n.start=0,t.is(e.int.decode(n),0),t.is(e.float64.decode(n),162.2377294),t.is(n.start,n.end);const o=a.alloc(10);n.start=0,n.buffer=o.subarray(1),t.alike(n,e.state(0,9,a.from([0,0,0,0,0,0,0,0,0]))),e.int.encode(n,0),e.float64.encode(n,162.2377294),t.alike(n,e.state(9,9,a.from([0,135,201,175,122,155,71,100,64]))),t.alike(o,a.from([0,0,135,201,175,122,155,71,100,64])),n.start=0,t.is(e.int.decode(n),0),t.is(e.float64.decode(n),162.2377294),t.is(n.start,n.end),n.start=0,n.end=0,n.buffer=null,e.float64.preencode(n,162.2377294),n.buffer=a.alloc(n.end),e.float64.encode(n,0),t.alike(n,e.state(8,8,a.from([0,0,0,0,0,0,0,0]))),n.start=0,t.is(e.float64.decode(n),0),t.is(n.start,n.end),n.start=0,n.end=0,n.buffer=null,e.float64.preencode(n,1/0),n.buffer=a.alloc(n.end),e.float64.encode(n,1/0),t.alike(n,e.state(8,8,a.from([0,0,0,0,0,0,240,127]))),n.start=0,t.is(e.float64.decode(n),1/0),t.is(n.start,n.end),n.start=0,n.end=0,n.buffer=null,e.float64.preencode(n,.1+.2),n.buffer=a.alloc(n.end),e.float64.encode(n,.1+.2),t.alike(n,e.state(8,8,a.from([52,51,51,51,51,51,211,63]))),n.start=0,t.is(e.float64.decode(n),.1+.2),t.is(n.start,n.end)}),t("biguint64",function(t){const n=e.state(),o=0x0102030405060708n;e.biguint64.preencode(n,o),t.alike(n,e.state(0,8)),n.buffer=a.alloc(n.end),e.biguint64.encode(n,o),t.alike(n,e.state(8,8,a.from([8,7,6,5,4,3,2,1]))),n.start=0,t.is(e.biguint64.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.biguint64.decode(n))}),t("bigint64",function(t){const n=e.state(),o=-0x0102030405060708n;e.bigint64.preencode(n,o),t.alike(n,e.state(0,8)),n.buffer=a.alloc(n.end),e.bigint64.encode(n,o),t.alike(n,e.state(8,8,a.from([15,14,12,10,8,6,4,2]))),n.start=0,t.is(e.bigint64.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.bigint64.decode(n))}),t("biguint",function(t){const n=e.state(),o=0x0102030405060708090a0b0cn;e.biguint.preencode(n,o),t.alike(n,e.state(0,17)),n.buffer=a.alloc(n.end),e.biguint.encode(n,o),t.alike(n,e.state(17,17,a.from([2,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0]))),n.start=0,t.is(e.biguint.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.biguint.decode(n))}),t("bigint",function(t){const n=e.state(),o=-0x0102030405060708090a0b0cn;e.bigint.preencode(n,o),t.alike(n,e.state(0,17)),n.buffer=a.alloc(n.end),e.bigint.encode(n,o),t.alike(n,e.state(17,17,a.from([2,23,22,20,18,16,14,12,10,8,6,4,2,0,0,0,0]))),n.start=0,t.is(e.bigint.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.bigint.decode(n))}),t("buffer",function(t){const n=e.state();e.buffer.preencode(n,a.from("hi")),t.alike(n,e.state(0,3)),e.buffer.preencode(n,a.from("hello")),t.alike(n,e.state(0,9)),e.buffer.preencode(n,null),t.alike(n,e.state(0,10)),n.buffer=a.alloc(n.end),e.buffer.encode(n,a.from("hi")),t.alike(n,e.state(3,10,a.from("hi\0\0\0\0\0\0\0"))),e.buffer.encode(n,a.from("hello")),t.alike(n,e.state(9,10,a.from("hihello\0"))),e.buffer.encode(n,null),t.alike(n,e.state(10,10,a.from("hihello\0"))),n.start=0,t.alike(e.buffer.decode(n),a.from("hi")),t.alike(e.buffer.decode(n),a.from("hello")),t.is(e.buffer.decode(n),null),t.is(n.start,n.end),t.exception(()=>e.buffer.decode(n))}),t("arraybuffer",function(t){const n=e.state(),o=new ArrayBuffer(4);a.from(o).fill("a");const r=new ArrayBuffer(8);a.from(r).fill("b"),e.arraybuffer.preencode(n,o),t.alike(n,e.state(0,5)),e.arraybuffer.preencode(n,r),t.alike(n,e.state(0,14)),n.buffer=a.alloc(n.end),e.arraybuffer.encode(n,o),t.alike(n,e.state(5,14,a.from("aaaa\0\0\0\0\0\0\0\0\0"))),e.arraybuffer.encode(n,r),t.alike(n,e.state(14,14,a.from("aaaa\bbbbbbbbb"))),n.start=0,t.alike(e.arraybuffer.decode(n),o),t.alike(e.arraybuffer.decode(n),r),t.is(n.start,n.end),t.exception(()=>e.arraybuffer.decode(n))}),t("raw",function(t){const n=e.state();e.raw.preencode(n,a.from("hi")),t.alike(n,e.state(0,2)),n.buffer=a.alloc(n.end),e.raw.encode(n,a.from("hi")),t.alike(n,e.state(2,2,a.from("hi"))),n.start=0,t.alike(e.raw.decode(n),a.from("hi")),t.is(n.start,n.end)}),t("raw uint8array",function(t){const n=e.state();e.raw.uint8array.preencode(n,Uint8Array.of(1,2)),t.alike(n,e.state(0,2)),e.raw.uint8array.preencode(n,Uint8Array.of(3,4)),t.alike(n,e.state(0,4)),n.buffer=a.alloc(n.end),e.raw.uint8array.encode(n,Uint8Array.of(1,2)),t.alike(n,e.state(2,4,a.from([1,2,0,0]))),e.raw.uint8array.encode(n,Uint8Array.of(3,4)),t.alike(n,e.state(4,4,a.from([1,2,3,4]))),n.start=0,t.alike(e.raw.uint8array.decode(n),Uint8Array.of(1,2,3,4)),t.alike(e.raw.uint8array.decode(n),Uint8Array.of())}),t("uint16array",function(t){const n=e.state();e.uint16array.preencode(n,new Uint16Array([1,2,3])),t.alike(n,e.state(0,7)),n.buffer=a.alloc(n.end),e.uint16array.encode(n,new Uint16Array([1,2,3])),t.alike(n,e.state(7,7,a.from([3,1,0,2,0,3,0]))),n.start=0,t.alike(e.uint16array.decode(n),new Uint16Array([1,2,3])),t.is(n.start,n.end),t.exception(()=>e.uint16array.decode(n))}),t("uint32array",function(t){const n=e.state();e.uint32array.preencode(n,new Uint32Array([1])),t.alike(n,e.state(0,5)),e.uint32array.preencode(n,new Uint32Array([42,43])),t.alike(n,e.state(0,14)),n.buffer=a.alloc(n.end),e.uint32array.encode(n,new Uint32Array([1])),t.alike(n,e.state(5,14,a.from([1,1,0,0,0,0,0,0,0,0,0,0,0,0]))),e.uint32array.encode(n,new Uint32Array([42,43])),t.alike(n,e.state(14,14,a.from([1,1,0,0,0,2,42,0,0,0,43,0,0,0]))),n.start=0,t.alike(e.uint32array.decode(n),new Uint32Array([1])),t.alike(e.uint32array.decode(n),new Uint32Array([42,43])),t.is(n.start,n.end),t.exception(()=>e.uint32array.decode(n))}),t("int16array",function(t){const n=e.state();e.int16array.preencode(n,new Int16Array([1,-2,3])),t.alike(n,e.state(0,7)),n.buffer=a.alloc(n.end),e.int16array.encode(n,new Int16Array([1,-2,3])),t.alike(n,e.state(7,7,a.from([3,1,0,254,255,3,0]))),n.start=0,t.alike(e.int16array.decode(n),new Int16Array([1,-2,3])),t.is(n.start,n.end),t.exception(()=>e.int16array.decode(n))}),t("int32array",function(t){const n=e.state();e.int32array.preencode(n,new Int32Array([1,-2,3])),t.alike(n,e.state(0,13)),n.buffer=a.alloc(n.end),e.int32array.encode(n,new Int32Array([1,-2,3])),t.alike(n,e.state(13,13,a.from([3,1,0,0,0,254,255,255,255,3,0,0,0]))),n.start=0,t.alike(e.int32array.decode(n),new Int32Array([1,-2,3])),t.is(n.start,n.end),t.exception(()=>e.int32array.decode(n))}),t("biguint64array",function(t){const n=e.state(),o=new BigUint64Array([0x01020304n,0x05060708n,0x090a0b0cn]);e.biguint64array.preencode(n,o),t.alike(n,e.state(0,25)),n.buffer=a.alloc(n.end),e.biguint64array.encode(n,o),t.alike(n,e.state(25,25,a.from([3,4,3,2,1,0,0,0,0,8,7,6,5,0,0,0,0,12,11,10,9,0,0,0,0]))),n.start=0,t.alike(e.biguint64array.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.biguint64array.decode(n))}),t("bigint64array",function(t){const n=e.state(),o=new BigInt64Array([-0x01020304n,0x05060708n,-0x090a0b0cn]);e.bigint64array.preencode(n,o),t.alike(n,e.state(0,25)),n.buffer=a.alloc(n.end),e.bigint64array.encode(n,o),t.alike(n,e.state(25,25,a.from([3,252,252,253,254,255,255,255,255,8,7,6,5,0,0,0,0,244,244,245,246,255,255,255,255]))),n.start=0,t.alike(e.bigint64array.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.bigint64array.decode(n))}),t("float32array",function(t){const n=e.state();e.float32array.preencode(n,new Float32Array([1.1,-2.2,3.3])),t.alike(n,e.state(0,13)),n.buffer=a.alloc(n.end),e.float32array.encode(n,new Float32Array([1.1,-2.2,3.3])),t.alike(n,e.state(13,13,a.from([3,205,204,140,63,205,204,12,192,51,51,83,64]))),n.start=0,t.alike(e.float32array.decode(n),new Float32Array([1.1,-2.2,3.3])),t.is(n.start,n.end),t.exception(()=>e.float32array.decode(n))}),t("float64array",function(t){const n=e.state();e.float64array.preencode(n,new Float64Array([1.1,-2.2,3.3])),t.alike(n,e.state(0,25)),n.buffer=a.alloc(n.end),e.float64array.encode(n,new Float64Array([1.1,-2.2,3.3])),t.alike(n,e.state(25,25,a.from([3,154,153,153,153,153,153,241,63,154,153,153,153,153,153,1,192,102,102,102,102,102,102,10,64]))),n.start=0,t.alike(e.float64array.decode(n),new Float64Array([1.1,-2.2,3.3])),t.is(n.start,n.end),t.exception(()=>e.float64array.decode(n))}),t("string",function(t){const n=e.state();e.string.preencode(n,"🌾"),t.alike(n,e.state(0,5)),e.string.preencode(n,"høsten er fin"),t.alike(n,e.state(0,20)),n.buffer=a.alloc(n.end),e.string.encode(n,"🌾"),t.alike(n,e.state(5,20,a.from("🌾\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"))),e.string.encode(n,"høsten er fin"),t.alike(n,e.state(20,20,a.from("🌾høsten er fin"))),n.start=0,t.is(e.string.decode(n),"🌾"),t.is(e.string.decode(n),"høsten er fin"),t.is(n.start,n.end),t.exception(()=>e.string.decode(n))}),t("raw string",function(t){const n=e.state();e.raw.string.preencode(n,"hello"),t.alike(n,e.state(0,5)),e.raw.string.preencode(n," world"),t.alike(n,e.state(0,11)),n.buffer=a.alloc(n.end),e.raw.string.encode(n,"hello"),e.raw.string.encode(n," world"),t.alike(n,e.state(11,11,a.from("hello world"))),n.start=0,t.is(e.raw.string.decode(n),"hello world"),t.is(e.raw.string.decode(n),"")}),t("fixed32",function(t){const n=e.state();e.fixed32.preencode(n,a.alloc(32).fill("a")),t.alike(n,e.state(0,32)),e.fixed32.preencode(n,a.alloc(32).fill("b")),t.alike(n,e.state(0,64)),n.buffer=a.alloc(n.end),e.fixed32.encode(n,a.alloc(32).fill("a")),t.alike(n,e.state(32,64,a.alloc(64).fill("a",0,32))),e.fixed32.encode(n,a.alloc(32).fill("b")),t.alike(n,e.state(64,64,a.alloc(64).fill("a",0,32).fill("b",32,64))),n.start=0,t.alike(e.fixed32.decode(n),a.alloc(32).fill("a")),t.alike(e.fixed32.decode(n),a.alloc(32).fill("b")),t.is(n.start,n.end),t.exception(()=>e.fixed32.decode(n))}),t("fixed64",function(t){const n=e.state();e.fixed64.preencode(n,a.alloc(64).fill("a")),t.alike(n,e.state(0,64)),e.fixed64.preencode(n,a.alloc(64).fill("b")),t.alike(n,e.state(0,128)),n.buffer=a.alloc(n.end),e.fixed64.encode(n,a.alloc(64).fill("a")),t.alike(n,e.state(64,128,a.alloc(128).fill("a",0,64))),e.fixed64.encode(n,a.alloc(64).fill("b")),t.alike(n,e.state(128,128,a.alloc(128).fill("a",0,64).fill("b",64,128))),n.start=0,t.alike(e.fixed64.decode(n),a.alloc(64).fill("a")),t.alike(e.fixed64.decode(n),a.alloc(64).fill("b")),t.is(n.start,n.end),t.exception(()=>e.fixed64.decode(n))}),t("fixed n",function(t){const n=e.state(),o=e.fixed(3);o.preencode(n,a.alloc(3).fill("a")),t.alike(n,e.state(0,3)),o.preencode(n,a.alloc(3).fill("b")),t.alike(n,e.state(0,6)),n.buffer=a.alloc(n.end),o.encode(n,a.alloc(3).fill("a")),t.alike(n,e.state(3,6,a.alloc(6).fill("a",0,3))),o.encode(n,a.alloc(3).fill("b")),t.alike(n,e.state(6,6,a.alloc(6).fill("a",0,3).fill("b",3,6))),n.start=0,t.alike(o.decode(n),a.alloc(3).fill("a")),t.alike(o.decode(n),a.alloc(3).fill("b")),t.is(n.start,n.end),t.exception(()=>o.decode(n)),n.start=4,t.exception(()=>o.decode(n))}),t("error for incorrect buffer sizes when encoding fixed-length buffers",function(t){const n=a.from("aa","hex"),o=a.from("aa".repeat(500),"hex");t.exception(()=>e.encode(e.fixed32,n),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed64,n),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed(100),n),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed32,o),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed64,o),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed(100),o),/Incorrect buffer size/)}),t("array",function(t){const n=e.state(),o=e.array(e.bool);o.preencode(n,[!0,!1,!0]),t.alike(n,e.state(0,4)),o.preencode(n,[!1,!1,!0,!0]),t.alike(n,e.state(0,9)),n.buffer=a.alloc(n.end),o.encode(n,[!0,!1,!0]),t.alike(n,e.state(4,9,a.from([3,1,0,1,0,0,0,0,0]))),o.encode(n,[!1,!1,!0,!0]),t.alike(n,e.state(9,9,a.from([3,1,0,1,4,0,0,1,1]))),n.start=0,t.alike(o.decode(n),[!0,!1,!0]),t.alike(o.decode(n),[!1,!1,!0,!0]),t.is(n.start,n.end),t.exception(()=>o.decode(n))}),t("raw array",function(t){const n=e.state(),o=e.raw.array(e.bool);o.preencode(n,[!0]),t.alike(n,e.state(0,1)),o.preencode(n,[!0]),t.alike(n,e.state(0,2)),n.buffer=a.alloc(n.end),o.encode(n,[!0]),t.alike(n,e.state(1,2,a.from([1,0]))),o.encode(n,[!0]),t.alike(n,e.state(2,2,a.from([1,1]))),n.start=0,t.alike(o.decode(n),[!0,!0]),t.alike(o.decode(n),[])}),t("json",function(t){const n=e.state();e.json.preencode(n,{a:1,b:2}),t.alike(n,e.state(0,14)),n.buffer=a.alloc(n.end),e.json.encode(n,{a:1,b:2}),t.alike(n,e.state(14,14,a.concat([a.from([13]),a.from('{"a":1,"b":2}')]))),n.start=0,t.alike(e.json.decode(n),{a:1,b:2}),t.exception(()=>e.json.decode(n))}),t("raw json",function(t){const n=e.state();e.raw.json.preencode(n,{a:1,b:2}),t.alike(n,e.state(0,13)),n.buffer=a.alloc(n.end),e.raw.json.encode(n,{a:1,b:2}),t.alike(n,e.state(13,13,a.from('{"a":1,"b":2}'))),n.start=0,t.alike(e.raw.json.decode(n),{a:1,b:2}),t.exception(()=>e.json.decode(n))}),t("lexint: big numbers",function(t){t.plan(1);let n,o=e.encode(e.lexint,0),r=1;for(n=1;n<Number.MAX_VALUE;n+=r){const t=e.encode(e.lexint,n);if(a.compare(t,o)<1)break;o=t,r=1+Math.pow(245,Math.ceil(Math.log(n)/Math.log(256)))}t.is(n,1/0)}),t("lexint: range precision",function(t){t.plan(2);const a=1e55,n=10000000000001e42,o=e.encode(e.lexint,a).toString("hex"),r=e.encode(e.lexint,n).toString("hex");t.not(a,n),t.not(o,r)}),t("lexint: range precision",function(t){let n=e.encode(e.lexint,0);for(let o=0,r=1e55;o<1e3;r=1e55+1e46*++o){const o=e.encode(e.lexint,r);a.compare(o,n)<1&&t.fail("cur <= prev"),n=o}t.ok(!0),t.end()}),t("lexint: small numbers",function(t){let n=e.encode(e.lexint,0);for(let o=1;o<1048576;o++){const r=e.encode(e.lexint,o);a.compare(r,n)<1&&t.fail("cur <= prev"),n=r}t.ok(!0),t.end()}),t("lexint: throws",function(t){t.exception(()=>{e.decode(e.lexint,a.alloc(1,251))});let n=252;const o=e.state();e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),n<<=8,o.start=0,o.end=0,o.buffer=null,e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),n<<=8,o.start=0,o.end=0,o.buffer=null,e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),n*=256,o.start=0,o.end=0,o.buffer=null,e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),n*=65536,o.start=0,o.end=0,o.buffer=null,e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),t.end()}),t("lexint: unpack",function(t){let a,n=1;for(a=1;a<Number.MAX_VALUE;a+=n){const t=e.encode(e.lexint,a);o(a,e.decode(e.lexint,t)),n=1+Math.pow(245,Math.ceil(Math.log(a)/Math.log(256)))}function o(e,a){const n=e+" !=~ "+a;/e\+\d+$/.test(e)||/e\+\d+$/.test(a)?String(e).slice(0,8)===String(a).slice(0,8)&&/e\+(\d+)$/.exec(e)[1]===/e\+(\d+)$/.exec(a)[1]||t.fail(n):String(e).slice(0,8)===String(a).slice(0,8)&&String(e).length===String(a).length||t.fail(n)}t.is(a,1/0),t.end()}),t("date",function(t){const a=new Date;t.alike(e.decode(e.date,e.encode(e.date,a)),a)}),t("any",function(t){const a={hello:"world",num:42,neg:-42,arr:[{yes:1},{no:!1}],nest:{},today:new Date,float:.54};t.alike(e.decode(e.any,e.encode(e.any,a)),a);const n=new Array(3);t.alike(e.decode(e.any,e.encode(e.any,n)),[null,null,null])}),t("framed",function(t){const n=e.frame(e.uint);t.alike(e.encode(n,42),a.from([1,42])),t.alike(e.decode(n,a.from([1,42])),42),t.alike(e.encode(n,4200),a.from([3,253,104,16])),t.alike(e.decode(n,a.from([3,253,104,16])),4200)}),t("port",function(t){const a=Buffer.from([52,18]);t.alike(e.encode(e.port,4660),a),t.alike(e.decode(e.port,a),4660)}),t("ipv4",function(t){const a="1.2.3.4",n=Buffer.from([1,2,3,4]);t.alike(e.encode(e.ipv4,a),n),t.alike(e.decode(e.ipv4,n),a)}),t("ipv4 + port",function(t){const a="1.2.3.4";t.alike(e.decode(e.ipv4Address,e.encode(e.ipv4Address,{host:a,port:1234})),{host:a,family:4,port:1234})}),t("ipv6",function(t){const a="1:2:3:4:5:6:7:8",n=Buffer.from([0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8]);t.alike(e.encode(e.ipv6,a),n),t.alike(e.decode(e.ipv6,n),a),t.test("abbreviated",function(t){const a=Buffer.from([0,1,0,2,0,0,0,0,0,0,0,0,0,7,0,8]);t.alike(e.encode(e.ipv6,"1:2::7:8"),a),t.alike(e.decode(e.ipv6,a),"1:2:0:0:0:0:7:8")}),t.test("prefix abbreviated",function(t){const a=Buffer.from([0,0,0,0,0,0,0,0,0,5,0,6,0,7,0,8]);t.alike(e.encode(e.ipv6,"::5:6:7:8"),a),t.alike(e.decode(e.ipv6,a),"0:0:0:0:5:6:7:8")}),t.test("suffix abbreviated",function(t){const a=Buffer.from([0,1,0,2,0,3,0,4,0,0,0,0,0,0,0,0]);t.alike(e.encode(e.ipv6,"1:2:3:4::"),a),t.alike(e.decode(e.ipv6,a),"1:2:3:4:0:0:0:0")}),t.test("any",function(t){const a=Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);t.alike(e.encode(e.ipv6,"::"),a),t.alike(e.decode(e.ipv6,a),"0:0:0:0:0:0:0:0")}),t.test("lowercase hex",function(t){const a=Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,205]);t.alike(e.encode(e.ipv6,"::abcd"),a),t.alike(e.decode(e.ipv6,a),"0:0:0:0:0:0:0:abcd")}),t.test("uppercase hex",function(t){const a=Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,205]);t.alike(e.encode(e.ipv6,"::ABCD"),a),t.alike(e.decode(e.ipv6,a),"0:0:0:0:0:0:0:abcd")})}),t("ipv6 + port",function(t){const a="1:2:3:4:5:6:7:8";t.alike(e.decode(e.ipv6Address,e.encode(e.ipv6Address,{host:a,port:1234})),{host:a,family:6,port:1234})}),t("dual ip",function(t){{const a="1.2.3.4";t.alike(e.decode(e.ip,e.encode(e.ip,a)),a,"ipv4")}{const a="1:2:3:4:5:6:7:8";t.alike(e.decode(e.ip,e.encode(e.ip,a)),a,"ipv6")}}),t("dual ip + port",function(t){const a=1234;{const n="1.2.3.4";t.alike(e.decode(e.ipAddress,e.encode(e.ipAddress,{host:n,port:a})),{host:n,family:4,port:a},"ipv4")}{const n="1:2:3:4:5:6:7:8";t.alike(e.decode(e.ipAddress,e.encode(e.ipAddress,{host:n,port:a})),{host:n,family:6,port:a},"ipv6")}}),t("record",function(t){const a=e.record(e.string,e.string);t.alike(e.decode(a,e.encode(a,{a:"hello",b:"world"})),Object.assign(Object.create(null),{a:"hello",b:"world"}))}),t("record - nested",function(t){const a=e.record(e.string,e.record(e.string,e.string));t.alike(e.decode(a,e.encode(a,{a:{b:"record"},c:{d:"nested",e:"test"}})),Object.assign(Object.create(null),{a:Object.assign(Object.create(null),{b:"record"}),c:Object.assign(Object.create(null),{d:"nested",e:"test"})}))}),t("stringRecord",function(t){t.alike(e.decode(e.stringRecord,e.encode(e.stringRecord,{a:"hello",b:"world"})),Object.assign(Object.create(null),{a:"hello",b:"world"}))});
@holepunchto/keet-core/env.json +6 -10
……@@ -2,27 +2,27 @@
22 "nightly": {
33 "bundles": {
44 "key": "yssst9xdnypg7dbbkc3a4hrusnyb8n4n7e3a9yw469fuuf4i4tso",
5 "length": 206
5 "length": 221
66 },
77 "config": {
88 "key": "5hdn7otebmiachsu4u5d86rp8ejhhmrrm6sstg198fun6rmf41qo",
9 "length": 13
9 "length": 14
1010 }
1111 },
1212 "internal": {
1313 "bundles": {
1414 "key": "yssst9xdnypg7dbbkc3a4hrusnyb8n4n7e3a9yw469fuuf4i4tso",
15 "length": 206
15 "length": 221
1616 },
1717 "config": {
1818 "key": "5hdn7otebmiachsu4u5d86rp8ejhhmrrm6sstg198fun6rmf41qo",
19 "length": 13
19 "length": 14
2020 }
2121 },
2222 "production": {
2323 "bundles": {
2424 "key": "eu5e6dieybhbshpzo6nxy8pwycb341qdywkbwqmtjmww174bfnjo",
25 "length": 206
25 "length": 221
2626 },
2727 "config": {
2828 "key": "w94a4mrokgp4hu757rhipc3isrxstiyupnpabat357hh6jutwrro",
……@@ -30,13 +30,9 @@
3030 }
3131 },
3232 "prerelease": {
33 "bundles": {
34 "key": "yssst9xdnypg7dbbkc3a4hrusnyb8n4n7e3a9yw469fuuf4i4tso",
35 "length": 206
36 },
3733 "config": {
3834 "key": "3i34itm8zqhweq4oxjw3ebg1kyhywqn9359shn9sr1twmm7jdpuo",
39 "length": 10
35 "length": 11
4036 }
4137 }
4238}
@holepunchto/keet-core/index.js +542 -406
……@@ -1,102 +1,104 @@
11const e = require("keet-identity-key"),
2 t = require("hypercore-storage"),
3 i = require("hypercore-id-encoding"),
4 s = require("ready-resource"),
5 r = require("ready-guard"),
6 o = require("hyperswarm"),
7 a = require("hyperdht"),
8 n = require("corestore"),
9 l = require("hypercore"),
10 c = require("hyperblobs"),
11 h = require("autobase"),
12 d = require("scope-lock"),
13 y = require("rache"),
14 u = require("protomux-wakeup"),
15 p = require("promaphore"),
16 m = require("safety-catch"),
17 g = require("task-backoff"),
18 b = require("hypercore-crypto"),
19 w = require("compact-encoding"),
20 f = require("z32"),
21 v = require("b4a"),
22 k = require("fs"),
23 P = require("path"),
2 { ProofEncoding: t } = require("keet-identity-key/lib/encoding"),
3 i = require("hypercore-storage"),
4 s = require("hypercore-id-encoding"),
5 r = require("ready-resource"),
6 o = require("ready-guard"),
7 a = require("hyperswarm"),
8 n = require("hyperdht"),
9 l = require("corestore"),
10 c = require("hypercore"),
11 h = require("hyperblobs"),
12 d = require("autobase"),
13 y = require("scope-lock"),
14 u = require("rache"),
15 p = require("protomux-wakeup"),
16 m = require("promaphore"),
17 g = require("safety-catch"),
18 b = require("task-backoff"),
19 w = require("hypercore-crypto"),
20 f = require("compact-encoding"),
21 v = require("z32"),
22 k = require("b4a"),
23 P = require("fs"),
24 K = require("path"),
2425 _ = require("blind-peering"),
25 K = require("multi-profile-store"),
26 T = require("hyperconf")
27;(l.enable(l.SMALL_WANTS), l.setRecoveryPeers && l.setRecoveryPeers([]))
28const R = require("@holepunchto/keet-push"),
29 L = require("@holepunchto/keet-unread-anchors"),
30 { generateMnemonic: E } = require("bip39-mnemonic"),
31 { HyperDiscoveryClient: C } = require("@holepunchto/hyperdiscovery"),
32 B = require("@holepunchto/keet-indexing"),
33 x = require("./schema/versions"),
34 I = require("./lib/api/v1"),
35 D = require("./lib/api/v2"),
36 S = require("./lib/core/crypto"),
37 A = require("./lib/core/local"),
38 q = require("./lib/core/files"),
39 O = require("./lib/core/tasks"),
40 M = require("./lib/core/sync"),
41 V = require("./lib/core/migrations/3/apply"),
42 { SwarmWorker: U } = require("./lib/core/swarm"),
26 T = require("multi-profile-store"),
27 R = require("hyperconf")
28;(c.enable(c.SMALL_WANTS), c.setRecoveryPeers && c.setRecoveryPeers([]))
29const L = require("@holepunchto/keet-push"),
30 E = require("@holepunchto/keet-unread-anchors"),
31 { generateMnemonic: C } = require("bip39-mnemonic"),
32 { HyperDiscoveryClient: B } = require("@holepunchto/hyperdiscovery"),
33 x = require("@holepunchto/keet-indexing"),
34 D = require("./schema/versions"),
35 { FEATURES: I } = D,
36 S = require("./lib/api/v1"),
37 A = require("./lib/api/v2"),
38 O = require("./lib/core/crypto"),
39 q = require("./lib/core/local"),
40 V = require("./lib/core/files"),
41 M = require("./lib/core/tasks"),
42 U = require("./lib/core/sync"),
43 N = require("./lib/core/migrations/3/apply"),
44 { SwarmWorker: F } = require("./lib/core/swarm"),
4345 {
44 getWriterKey: N,
45 getInvitationId: F,
46 createInvitation: W,
47 generateRoomCapabilities: $,
48 generateIdentityPairingName: j,
49 generateRoomPairingName: G,
46 getWriterKey: W,
47 getInvitationId: j,
48 createInvitation: $,
49 generateRoomCapabilities: G,
50 generateIdentityPairingName: H,
51 generateRoomPairingName: J,
5052 } = require("./lib/core/invitations"),
51 { getMemberForDeviceKey: H } = require("./lib/core/contract/query"),
52 { restoreAvatar: J } = require("./lib/core/contract/avatars"),
53 { RoomStatus: Y } = require("./lib/core/contract/identity/private"),
54 { DEBUG_FLAGS: z, DHT_SETTINGS: X } = require("./lib/core/debug/debugging"),
55 { KeetContract: Q } = require("./lib/core/contract"),
56 { KeetContractError: Z } = require("./lib/core/contract/errors.js"),
57 ee = require("./lib/core/log"),
53 { getMemberForDeviceKey: Y } = require("./lib/core/contract/query"),
54 { restoreAvatar: z } = require("./lib/core/contract/avatars"),
55 { RoomStatus: Q } = require("./lib/core/contract/identity/private"),
56 { DEBUG_FLAGS: X, DHT_SETTINGS: Z } = require("./lib/core/debug/debugging"),
57 { KeetContract: ee } = require("./lib/core/contract"),
58 { KeetContractError: te } = require("./lib/core/contract/errors.js"),
59 ie = require("./lib/core/log"),
5860 {
5961 contract: {
60 hyperdispatch: { decode: te, DispatchError: ie },
61 hyperschema: { getEnum: se, getEncoding: re, encode: oe, decode: ae },
62 hyperdispatch: { decode: se, DispatchError: re },
63 hyperschema: { getEnum: oe, getEncoding: ae, encode: ne, decode: le },
6264 },
6365 local: {
64 hyperschema: { getEnum: ne },
66 hyperschema: { getEnum: ce },
6567 },
66 config: { hyperconf: le },
68 config: { hyperconf: he },
6769 } = require("./schema/spec"),
68 ce = re("@keet-private-id/profile-discovery-record"),
69 he = se("@keet/build-type"),
70 de = require("./lib/core/users"),
71 ye = require("protomux-rpc-client"),
72 { KeetErrorManager: ue, KeetErrorV2: pe } = require("./lib/errors"),
73 { Version: me } = require("bare-semver"),
74 { roomMigrationsStats: ge } = require("./lib/core/contract/stats/local"),
75 be = require("./lib/bundle"),
76 we = ne("@local/keet-state"),
77 fe = 2592e6,
78 ve = "keet-swarm-keypair",
79 ke = "keet-core",
80 Pe = "keet-unreads",
81 _e = "keet-bundles",
82 Ke = 1e4,
83 Te = 3e3,
84 Re = 4,
85 Le = 5e3,
86 Ee = v.alloc(32),
87 Ce = 1,
88 Be = 500,
89 xe = 9,
90 Ie = 1728e5,
91 De = 5,
92 Se = 10,
93 Ae = 1711547109544,
94 qe = require("./lib/env"),
95 Oe = 64,
96 Me = 3,
97 Ve = 30,
98 Ue = 4
99class Ne {
70 de = ae("@keet-private-id/profile-discovery-record"),
71 ye = oe("@keet/build-type"),
72 ue = require("./lib/core/users"),
73 pe = require("protomux-rpc-client"),
74 { KeetErrorManager: me, KeetErrorV2: ge } = require("./lib/errors"),
75 { Version: be } = require("bare-semver"),
76 { roomMigrationsStats: we } = require("./lib/core/contract/stats/local"),
77 fe = require("./lib/bundle"),
78 ve = ce("@local/keet-state"),
79 ke = 2592e6,
80 Pe = "keet-swarm-keypair",
81 Ke = "keet-core",
82 _e = "keet-unreads",
83 Te = "keet-bundles",
84 Re = 1e4,
85 Le = 3e3,
86 Ee = 4,
87 Ce = 5e3,
88 Be = k.alloc(32),
89 xe = 1,
90 De = 500,
91 Ie = 9,
92 Se = 1728e5,
93 Ae = 5,
94 Oe = 10,
95 qe = 1711547109544,
96 Ve = require("./lib/env"),
97 Me = 64,
98 Ue = 3,
99 Ne = 30,
100 Fe = 4
101class We {
100102 constructor(e, t) {
101103 ;((this.keet = e),
102104 (this.roomId = t),
……@@ -125,7 +127,7 @@ class Ne {
125127 return i && !(await this.keet.internalDryRun(this.room, this.room.view, [s]))
126128 ? this._noop()
127129 : ((this.length = await this.append(s)),
128 !this.pushLength && Ge(e) && (this.pushLength = this.length),
130 !this.pushLength && Je(e) && (this.pushLength = this.length),
129131 this.length)
130132 }
131133 async append(e) {
……@@ -154,16 +156,16 @@ class Ne {
154156 (this.shouldPush = !1))
155157 }
156158}
157class Fe extends s {
158 constructor(e, t, s, r, o) {
159class je extends r {
160 constructor(e, t, i, r, o) {
159161 ;(super(),
160162 (this.keet = e),
161163 (this.id = t),
162 (this.key = s),
164 (this.key = i),
163165 (this.base = o),
164166 (this.externalBlobs = null),
165167 (this.discoveryKey = r),
166 (this.discoveryId = i.encode(this.discoveryKey)),
168 (this.discoveryId = s.encode(this.discoveryKey)),
167169 (this.view = this.base.view),
168170 (this.db = this.view.db),
169171 (this.core = this.view.core),
……@@ -173,11 +175,11 @@ class Fe extends s {
173175 this.keet.push && (this.push = this.keet.push.room(this.key, this.discoveryKey)),
174176 (this.refs = 0),
175177 (this.idleTicks = 0),
176 (this._pushLock = new d({ debounce: !0 })),
177 this.ready().catch(Je))
178 (this._pushLock = new y({ debounce: !0 })),
179 this.ready().catch(ze))
178180 }
179181 get deviceId() {
180 return i.encode(this.deviceKey)
182 return s.encode(this.deviceKey)
181183 }
182184 get deviceKey() {
183185 return this.base.local.key
……@@ -185,12 +187,7 @@ class Fe extends s {
185187 get encryptionKey() {
186188 return this.base.encryptionKey
187189 }
188 async getStats() {
189 const [e, t, s] = await Promise.all([
190 this.keet.local.get("@local/rooms", { roomKey: this.key }),
191 this.keet.local.get("@local/room-preferences", { roomKey: this.key }),
192 this.keet.local.get("@local/writers-by-room-key", { roomKey: this.key }),
193 ])
190 getQuickStats() {
194191 return {
195192 view: {
196193 peers: this.view.core.peers.length,
……@@ -216,14 +213,55 @@ class Fe extends s {
216213 flushing: !!this.base.flushing,
217214 advancing: !!this.base._advancing,
218215 },
216 }
217 }
218 async getStats() {
219 const [e, t, i] = await Promise.all([
220 this.keet.local.get("@local/rooms", { roomKey: this.key }),
221 this.keet.local.get("@local/room-preferences", { roomKey: this.key }),
222 this.keet.local.get("@local/writers-by-room-key", { roomKey: this.key }),
223 ]),
224 { view: r, system: o, base: a } = this.getQuickStats()
225 return {
226 view: r,
227 system: o,
228 base: a,
219229 writer: {
220 key: s.key ? i.encode(s.key) : null,
221 roomKey: s?.roomKey ? i.encode(s.roomKey) : null,
230 key: i.key ? s.encode(i.key) : null,
231 roomKey: i?.roomKey ? s.encode(i.roomKey) : null,
222232 },
223233 status: e?.status,
224234 preferences: t?.status,
225235 }
226236 }
237 async _createDeviceAttestation(e, t) {
238 const i = await this.keet.internalEnterLocalTransaction()
239 try {
240 const s = this.keet.internalAttestData(e, t)
241 return (
242 await i.insert("@local/device-attestations", {
243 deviceKey: e,
244 proof: s,
245 createdAt: Date.now(),
246 }),
247 await i.flush(),
248 s
249 )
250 } finally {
251 await this.keet.internalExitLocalTransaction()
252 }
253 }
254 async _attestedPushNotify(e) {
255 const t = this.deviceKey,
256 [i, s] = await Promise.all([
257 this.keet.local.get("@local/identity"),
258 this.keet.local.get("@local/device-attestations", { deviceKey: t }),
259 ]),
260 r = s?.createdAt || 0,
261 o = i.proofShortenedAt || 0,
262 a = !s || r < o ? await this._createDeviceAttestation(t, i) : s.proof
263 await this.push.send(this.base.local, e, { version: 1, attest: a })
264 }
227265 async _safePushNotify(e) {
228266 if (
229267 (this._pushLengths || (this._pushLengths = []),
……@@ -235,7 +273,7 @@ class Fe extends s {
235273 const t = this._pushLengths
236274 this._pushLengths = null
237275 try {
238 await this.push.send(this.base.local, t)
276 await this._attestedPushNotify(t)
239277 } catch (e) {
240278 this.keet.onerror(e, { roomKey: this.key })
241279 }
……@@ -258,7 +296,7 @@ class Fe extends s {
258296 const t = await this.db.get("@keet/devices", { key: e.core.key })
259297 t && (await this.db.get("@keet/members", { key: t.memberKey }))
260298 } catch (e) {
261 m(e)
299 g(e)
262300 }
263301 }),
264302 this.base.local.on("remote-contiguous-length", this._handleSentLengthChanged.bind(this)),
……@@ -267,8 +305,8 @@ class Fe extends s {
267305 }),
268306 this.db.get("@keet/room-config").then((e) => {
269307 this.keet.logger.debug("opened id: " + this.id + " title: " + e?.title)
270 }, m),
271 (this.externalBlobs = new c(
308 }, g),
309 (this.externalBlobs = new h(
272310 this.keet.store.get({
273311 name: this.id + "/blobs",
274312 encryptionKey: this.encryptionKey,
……@@ -342,7 +380,7 @@ class Fe extends s {
342380 e || this.keet.onlineBoot.opened || (await this.keet.onlineBoot.ready())
343381 const [t, i] = await Promise.all([
344382 this.db.get("@keet/system-digest"),
345 H(this.db, this.deviceKey),
383 Y(this.db, this.deviceKey),
346384 ])
347385 if (!i?.status.isModerator || t?.abi.version >= this.keet.abi.autoupgrade) return
348386 await this.keet.internalDispatchUpgrade(this.id, this.keet.abi.autoupgrade)
……@@ -358,9 +396,9 @@ class Fe extends s {
358396 this.keet.onlineBoot.opened || (await this.keet.onlineBoot.ready())
359397 const [e, t] = await Promise.all([
360398 this.keet.local.get("@local/identity"),
361 H(this.db, this.deviceKey),
399 Y(this.db, this.deviceKey),
362400 ])
363 if (this.closing || !e || !t || v.equals(this.key, e.privateProfileKey)) return
401 if (this.closing || !e || !t || k.equals(this.key, e.privateProfileKey)) return
364402 const i = await this.keet.local.get("@local/rooms", { roomKey: e.privateProfileKey })
365403 if (this.closing) return
366404 if (t.profile.timestamp >= i.selfMember.profile.timestamp) return
……@@ -385,7 +423,7 @@ class Fe extends s {
385423 return
386424 const e = await this.keet.local.get("@local/room-metadata", { roomKey: this.key })
387425 if (this.closing || e.repairs >= 1) return
388 if (this.base.linearizer.size > Be) return
426 if (this.base.linearizer.size > De) return
389427 const t = await this.db.get("@keet-private-id/identity")
390428 if (this.closing || t) return
391429 if (((e.repairs = 1), await this.base.repair(), this.closing)) return
……@@ -401,7 +439,7 @@ class Fe extends s {
401439 }
402440 async _internalEncodeOperation(e, t, { view: i = this.view, timestamp: s = Date.now() } = {}) {
403441 const r = await i.db.get("@keet/system-digest")
404 if (!this.keet.isValidBuildType(r)) throw pe.INVALID_BUILD_TYPE()
442 if (!this.keet.isValidBuildType(r)) throw ge.INVALID_BUILD_TYPE()
405443 return (
406444 await this.keet.contractBundles.loadBundle(r ? r.abi.version : this.keet.abi.autoupgrade)
407445 ).encodeOperation(e, { header: { timestamp: s }, ...t })
……@@ -412,7 +450,7 @@ class Fe extends s {
412450 r = []
413451 let o = !1
414452 for (const { type: e, op: a } of i)
415 (r.push(this._internalEncodeOperation(e, a, { ...t, timestamp: s })), Ge(e) && (o = !0))
453 (r.push(this._internalEncodeOperation(e, a, { ...t, timestamp: s })), Je(e) && (o = !0))
416454 return { encoded: await Promise.all(r), timestamp: s, shouldPush: o }
417455 }
418456 async _postAppend({ encoded: e = [], pushLength: t = 0, timestamp: i = Date.now() }) {
……@@ -436,69 +474,69 @@ class Fe extends s {
436474 return this.dispatchBatch([{ type: e, op: t }], i)
437475 }
438476}
439module.exports = class extends s {
440 constructor(e, i = {}) {
477module.exports = class extends r {
478 constructor(e, t = {}) {
441479 if (
442480 (super(),
443481 (this.dir = e),
444 (this.opts = i),
445 (this.isMobile = !!i.mobile),
446 (this.isTesting = !!i.testing),
447 (this.appVersion = i.appVersion ? me.parse(i.appVersion) : null),
448 (this.forceBuildType = !!i.forceBuildType),
449 !i.buildType)
482 (this.opts = t),
483 (this.isMobile = !!t.mobile),
484 (this.isTesting = !!t.testing),
485 (this.appVersion = t.appVersion ? be.parse(t.appVersion) : null),
486 (this.forceBuildType = !!t.forceBuildType),
487 !t.buildType)
450488 )
451 throw pe.INVALID_BUILD_TYPE()
452 ;((this.buildType = He(i.buildType)),
453 (this.logger = new ee(i.logger)),
489 throw ge.INVALID_BUILD_TYPE()
490 ;((this.buildType = Ye(t.buildType)),
491 (this.logger = new ie(t.logger)),
454492 this.isTesting && this.logger.mute())
455 const s = qe(i.buildType)
456 ;((this.isNightly = this.buildType === he.Nightly),
457 (this.isExperimental = this.isTesting ? (i.experimental ?? this.isNightly) : this.isNightly),
458 (this.offlineBoot = new r()),
459 (this.onlineBoot = new r()),
493 const s = Ve(t.buildType)
494 ;((this.isNightly = this.buildType === ye.Nightly),
495 (this.isExperimental = this.isTesting ? (t.experimental ?? this.isNightly) : this.isNightly),
496 (this.offlineBoot = new o()),
497 (this.onlineBoot = new o()),
460498 (this.debug = {}),
461 (this.versions = x),
462 (this.abi = i.testingABI || {
463 max: this.isExperimental ? x.EXPERIMENTAL : x.STABLE,
464 autoupgrade: this.isExperimental ? x.EXPERIMENTAL : x.AUTOUPGRADE,
465 production: x.STABLE,
499 (this.versions = D),
500 (this.abi = t.testingABI || {
501 max: this.isExperimental ? D.EXPERIMENTAL : D.STABLE,
502 autoupgrade: this.isExperimental ? D.EXPERIMENTAL : D.AUTOUPGRADE,
503 production: D.STABLE,
466504 }),
467 (this.logout = i.logout),
468 (this.storage = new t(e, i.storage)),
469 (this.rootCorestore = new n(this.storage, {
470 globalCache: new y({ maxSize: i.maxCacheSize }),
505 (this.logout = t.logout),
506 (this.storage = new i(e, t.storage)),
507 (this.rootCorestore = new l(this.storage, {
508 globalCache: new u({ maxSize: t.maxCacheSize }),
471509 manifestVersion: 2,
472510 })),
473 (this.store = this.rootCorestore.namespace(ke)),
511 (this.store = this.rootCorestore.namespace(Ke)),
474512 this.rootCorestore.watch(this._handleCoreOpen.bind(this)),
475 (this.local = A.rocks(this.storage.rocks.columnFamily("keet/local-database"))),
513 (this.local = q.rocks(this.storage.rocks.columnFamily("keet/local-database"))),
476514 (this.discovery = null),
477 (this.gatekeepers = i.gatekeepers || []),
515 (this.gatekeepers = t.gatekeepers || []),
478516 (this.push = null),
479 (this.protomuxWakeup = new u(this._handleWakeup.bind(this))),
480 (this.backoff = new g()),
517 (this.protomuxWakeup = new p(this._handleWakeup.bind(this))),
518 (this.backoff = new b()),
481519 (this.rooms = new Map()),
482520 (this.activeRooms = new Set()),
483 (this._transactionLock = new d()),
521 (this._transactionLock = new y()),
484522 (this._tx = null),
485523 (this.hyperconf = null),
486524 (this.config = null),
487525 (this.configMinVersion = null),
488 (this.errorManager = new ue(this, this.opts)),
489 (this.swarmWorker = new U(this, this.opts.swarmWorker)),
490 (this.files = new q(this, this.opts)),
491 (this._onerror = i.onerror || m),
526 (this.errorManager = new me(this, this.opts)),
527 (this.swarmWorker = new F(this, this.opts.swarmWorker)),
528 (this.files = new V(this, this.opts)),
529 (this._onerror = t.onerror || g),
492530 (this.onerror = this.errorManager
493531 ? (e, t = {}) => {
494532 const i = this.errorManager.normalize(e, t)
495533 ;(this.errorManager.add(i), this.logger.error(i), this._onerror(i))
496534 }
497535 : this._onerror),
498 (this.apiV1 = new I(this, i)),
536 (this.apiV1 = new S(this, t)),
499537 (this.backendAPI = this.apiV1),
500538 (this.api = this.backendAPI.api.core),
501 (this.blindPeeringOpts = i.blindPeeringOpts || {}),
539 (this.blindPeeringOpts = t.blindPeeringOpts || {}),
502540 (this.contractBundles = null),
503541 (this.tasks = null),
504542 (this.swarm = null),
……@@ -510,22 +548,23 @@ module.exports = class extends s {
510548 (this.discoveryCore = null),
511549 (this.discoveryCoreSession = null),
512550 (this.push = null),
513 (this.state = we.RESUME),
514 (this._bundlesKey = i.bundlesKey || s.bundles.key),
515 (this._bundlesLength = i.bundlesLength || s.bundles.length),
516 (this._hyperconfKey = i.hyperconfKey || s.config.key),
517 (this._hyperconfLength = i.hyperconfLength || s.config.length),
551 (this.state = ve.RESUME),
552 (this._bundlesKey = t.bundlesKey || s.bundles.key),
553 (this._bundlesLength = t.bundlesLength || s.bundles.length),
554 (this._hyperconfKey = t.hyperconfKey || s.config.key),
555 (this._hyperconfLength = t.hyperconfLength || s.config.length),
518556 (this._disabledRooms = this.isTesting ? new Set() : null),
519557 (this._verifiedRooms = this.isTesting ? new Set() : null),
520 (this._relayKeys = this.isTesting ? i.blindRelays || [] : null),
521 (this._blindPeerKeys = this.isTesting ? i.blindMirroring || [] : null),
522 (this._gatekeeperKeys = this.isTesting ? i.gatekeepers || [] : null),
523 (this._discoveryBootstrapKeys = this.isTesting ? i.discoveryBootstrapKeys || [] : null),
524 (this._disableUnreadSync = (this.isTesting && i.disableUnreadSync) || !1),
558 (this._relayKeys = this.isTesting ? t.blindRelays || [] : null),
559 (this._blindPeerKeys = this.isTesting ? t.blindMirroring || [] : null),
560 (this._gatekeeperKeys = this.isTesting ? t.gatekeepers || [] : null),
561 (this._discoveryBootstrapKeys = this.isTesting ? t.discoveryBootstrapKeys || [] : null),
562 (this._disableUnreadSync = (this.isTesting && t.disableUnreadSync) || !1),
563 (this._otaResyncPrivateProfileBump = (this.isTesting && t.otaResyncPrivateProfileBump) || 0),
525564 (this._migratedFrom = 0),
526 (this._unreadsLock = new d({ debounce: !0 })),
527 (this._dhtOpts = i.dht),
528 (this._swarmOpts = i.swarm),
565 (this._unreadsLock = new y({ debounce: !0 })),
566 (this._dhtOpts = t.dht),
567 (this._swarmOpts = t.swarm),
529568 (this._pendingTasks = []),
530569 (this._swarmTasks = []),
531570 (this._runningTasks = new Set()),
……@@ -534,29 +573,29 @@ module.exports = class extends s {
534573 (this._pendingCandidates = new Map()),
535574 (this._swarming = new Map()),
536575 (this._pendingTraces = []),
537 (this._cacheLock = new d({ debounce: !0 })),
538 (this._gcEnabled = !1 !== i.gc),
539 (this._gcIdleTicks = i.gcIdleTicks || 4),
540 (this._gcInterval = i.gcInterval || Le),
576 (this._cacheLock = new y({ debounce: !0 })),
577 (this._gcEnabled = !1 !== t.gc),
578 (this._gcIdleTicks = t.gcIdleTicks || 4),
579 (this._gcInterval = t.gcInterval || Ce),
541580 (this._gcTimer = null),
542581 (this._gcClosingRooms = new Set()),
543582 (this._boundAutobaseTrace = this._autobaseTrace.bind(this)),
544 (this.internalPairingTimeout = i.pairingTimeout || Te),
545 (this._profileDiscoveryTimeout = i.profileDiscoveryTimeout || Ke),
583 (this.internalPairingTimeout = t.pairingTimeout || Le),
584 (this._profileDiscoveryTimeout = t.profileDiscoveryTimeout || Re),
546585 (this.migrationStatus = null),
547 (this._roomMigrations = new p(5)),
548 (this._discoveryLock = new d({ debounce: !0 })),
549 (this._discoverySemaphore = new p(Se)),
586 (this._roomMigrations = new m(5)),
587 (this._discoveryLock = new y({ debounce: !0 })),
588 (this._discoverySemaphore = new m(Oe)),
550589 (this._discovering = new Map()),
551 (this.internalFastJoinSemaphore = new p(4)),
590 (this.internalFastJoinSemaphore = new m(4)),
552591 (this.debugRunningFastJoins = 0),
553592 (this.debugMaxRunningFastJoins = 0),
554 (this._rejectAnonymousProfiles = !1 !== i.rejectAnonymousProfiles),
555 (this._registryOpts = this.isTesting ? i.userRegistry : null),
593 (this._rejectAnonymousProfiles = !1 !== t.rejectAnonymousProfiles),
594 (this._registryOpts = this.isTesting ? t.userRegistry : null),
556595 (this.rpcClient = null),
557596 (this.userRegistry = null),
558 (this.ackThreshold = i.ackThreshold),
559 (this.ackInterval = i.ackInterval),
597 (this.ackThreshold = t.ackThreshold),
598 (this.ackInterval = t.ackInterval),
560599 (this.stats = {
561600 ops: 0,
562601 appends: 0,
……@@ -566,9 +605,9 @@ module.exports = class extends s {
566605 downloaded: 0,
567606 bytesDownloaded: 0,
568607 }),
569 (this.debugForceMigrationFailure = i.debugForceMigrationFailure || null),
570 (this.debugJoinPeer = i.debugJoinPeer || this._debugJoinPeer.bind(this)),
571 (this.debugLeavePeer = i.debugLeavePeer || this._debugLeavePeer.bind(this)),
608 (this.debugForceMigrationFailure = t.debugForceMigrationFailure || null),
609 (this.debugJoinPeer = t.debugJoinPeer || this._debugJoinPeer.bind(this)),
610 (this.debugLeavePeer = t.debugLeavePeer || this._debugLeavePeer.bind(this)),
572611 this.ready().catch(this.onerror))
573612 }
574613 async backendReady() {
……@@ -578,25 +617,25 @@ module.exports = class extends s {
578617 return this.rootCorestore.storage.readOnly || !1
579618 }
580619 get suspended() {
581 return this.state === we.SUSPEND
620 return this.state === ve.SUSPEND
582621 }
583622 async _openNetworking() {
584623 const e = await this.getDHTSettings()
585 ;((this.swarm = new o({
624 ;((this.swarm = new a({
586625 deferRandomPunch: !0,
587 dht: new a({ ...e, ...this._swarmOpts, ...this._dhtOpts }),
588 maxPeers: Ve,
626 dht: new n({ ...e, ...this._swarmOpts, ...this._dhtOpts }),
627 maxPeers: Ne,
589628 ...this._swarmOpts,
590629 relayThrough: this._relayThrough.bind(this),
591 keyPair: await this.rootCorestore.createKeyPair(ve),
630 keyPair: await this.rootCorestore.createKeyPair(Pe),
592631 })),
593 (this.swarmId = i.encode(this.swarm.keyPair.publicKey)),
632 (this.swarmId = s.encode(this.swarm.keyPair.publicKey)),
594633 this.swarm.on("connection", this._handleConnection.bind(this)),
595634 (this.discovery = this._discoveryBootstrapKeys.length
596 ? new C(this._discoveryBootstrapKeys[0], { dht: this.swarm.dht })
635 ? new B(this._discoveryBootstrapKeys[0], { dht: this.swarm.dht })
597636 : null),
598 (this.rpcClient = new ye(this.swarm.dht, {
599 suspended: this.state === we.SUSPEND,
637 (this.rpcClient = new pe(this.swarm.dht, {
638 suspended: this.state === ve.SUSPEND,
600639 relayThrough: this._relayThrough.bind(this),
601640 })),
602641 (this.blindPeering = new _(this.swarm.dht, this.store, {
……@@ -607,7 +646,7 @@ module.exports = class extends s {
607646 ...this.blindPeeringOpts,
608647 })),
609648 this._gatekeeperKeys.length > 0 &&
610 (this.push = new R(this._gatekeeperKeys, { dht: this.swarm.dht })),
649 (this.push = new L(this._gatekeeperKeys, { dht: this.swarm.dht })),
611650 await this.swarmWorker.ready(),
612651 await this.files.ready(),
613652 this.readOnly && (this.blindPeering.suspend(), this.swarm.suspend()))
……@@ -616,9 +655,9 @@ module.exports = class extends s {
616655 if (!this.offlineBoot.enter()) return
617656 ;(await this._ensureDebugState(),
618657 await this.store.ready(),
619 (this.hyperconf = new T(le, this.store.get(this._hyperconfKey), {
658 (this.hyperconf = new R(he, this.store.get(this._hyperconfKey), {
620659 minLength: this._hyperconfLength,
621 production: this.buildType === he.Production,
660 production: this.buildType === ye.Production,
622661 })),
623662 this.hyperconf.on("update", this._handleConfigUpdated.bind(this)),
624663 await this.hyperconf.ready(),
……@@ -627,11 +666,11 @@ module.exports = class extends s {
627666 (this.abi.autoupgrade = this.config.versions.autoupgrade))
628667 const e = await this.local.get("@local/environment"),
629668 t = !!e && e.latestOfflineAbi < this.abi.production
630 ;((this.contractBundles = new be(this, _e, { hydrate: t })),
669 ;((this.contractBundles = new fe(this, Te, { hydrate: t })),
631670 await this.contractBundles.ready(),
632671 t && (await this._bumpLocalAbiVersion()),
633672 await this._openNetworking(),
634 (this.tasks = new O(this)),
673 (this.tasks = new M(this)),
635674 await this.tasks.ready(),
636675 this._gcEnabled &&
637676 (this._gcTimer = setInterval(this._closeIdleRooms.bind(this), this._gcInterval)),
……@@ -655,7 +694,7 @@ module.exports = class extends s {
655694 }
656695 ;(this._migratedFrom > 0 && (await this._maybeRunPostMigrations(this._migratedFrom)),
657696 this._registryOpts &&
658 ((this.userRegistry = new de(this, this._registryOpts)), await this.userRegistry.ready()),
697 ((this.userRegistry = new ue(this, this._registryOpts)), await this.userRegistry.ready()),
659698 this.onlineBoot.exit())
660699 }
661700 }
……@@ -671,7 +710,7 @@ module.exports = class extends s {
671710 this._gcTimer && clearInterval(this._gcTimer),
672711 this.backoff.destroy(),
673712 this.internalTimeLog("keet-close", "destroyed backoff"),
674 this.state === we.SUSPEND && (await this.store.resume()),
713 this.state === ve.SUSPEND && (await this.store.resume()),
675714 this.internalTimeLog("keet-close", "resumed from suspend"),
676715 this.internalVerboseLog("Closing active calls"),
677716 await this.backendAPI.closeActiveCalls(),
……@@ -760,11 +799,11 @@ module.exports = class extends s {
760799 const e = await this.internalEnterLocalTransaction()
761800 try {
762801 const t = (await e.get("@local/debug")) || {}
763 t.flags || (t.flags = z)
802 t.flags || (t.flags = X)
764803 const i = new Set(),
765804 s = {}
766805 for (const e of t.flags) (i.add(e.key), (s[e.key] = e.value))
767 for (const { key: e, value: s, description: r } of z)
806 for (const { key: e, value: s, description: r } of X)
768807 i.has(e) || t.flags.push({ key: e, value: s, description: r })
769808 ;(await e.insert("@local/debug", t), await e.flush(), (this.debug = { ...s }))
770809 } finally {
……@@ -774,17 +813,17 @@ module.exports = class extends s {
774813 isValidBuildType(e) {
775814 if (!e) return !0
776815 if (this.isTesting && !this.forceBuildType) return !0
777 const t = he.Production === this.buildType
816 const t = ye.Production === this.buildType
778817 return !((!t && !e.settings.buildType) || (!t && e.settings.buildType !== this.buildType))
779818 }
780819 async _ensureBuildType() {
781820 if (this.isTesting && !this.forceBuildType) return
782 const e = he.Production === this.buildType,
821 const e = ye.Production === this.buildType,
783822 t = await this.internalEnterLocalTransaction()
784823 try {
785824 const [i, s] = await Promise.all([t.get("@local/identity"), t.get("@local/environment")])
786 if (!e && i && !s?.buildType) throw pe.INVALID_BUILD_TYPE()
787 if (s && s.buildType !== this.buildType) throw pe.INVALID_BUILD_TYPE()
825 if (!e && i && !s?.buildType) throw ge.INVALID_BUILD_TYPE()
826 if (s && s.buildType !== this.buildType) throw ge.INVALID_BUILD_TYPE()
788827 if (s) return
789828 ;(await t.insert("@local/environment", { buildType: this.buildType }), await t.flush())
790829 } catch (e) {
……@@ -829,7 +868,7 @@ module.exports = class extends s {
829868 ((this.config = this.hyperconf.current),
830869 this.internalVerboseLog(
831870 "OTA config updated, dkey:",
832 i.encode(this.hyperconf.core.discoveryKey),
871 s.encode(this.hyperconf.core.discoveryKey),
833872 "length:",
834873 this.hyperconf.core.length,
835874 ),
……@@ -837,10 +876,12 @@ module.exports = class extends s {
837876 (this._relayKeys = this.config.services.blindRelays),
838877 (this._gatekeeperKeys = this.config.services.gatekeepers),
839878 (this._discoveryBootstrapKeys = this.config.services.discovery),
840 l.setRecoveryPeers && l.setRecoveryPeers(this.config.services.blindPeers),
841 (this._disabledRooms = new Set(this.config.rooms.disabled.map((e) => i.encode(e)))),
842 (this._verifiedRooms = new Set(this.config.rooms.verified?.map((e) => i.encode(e)))),
879 c.setRecoveryPeers && c.setRecoveryPeers(this.config.services.blindPeers),
880 (this._disabledRooms = new Set(this.config.rooms.disabled.map((e) => s.encode(e)))),
881 (this._verifiedRooms = new Set(this.config.rooms.verified?.map((e) => s.encode(e)))),
843882 (this._disableUnreadSync = !0 === this.config.profile?.disableUnreadSync),
883 (this._otaResyncPrivateProfileBump = this.config.profile?.otaResyncPrivateProfileBump || 0),
884 this._maybeOtaResyncPrivateProfile().catch(this.onerror),
844885 this._maybeUpgradeOpenRooms().catch(this.onerror),
845886 this.config.services.userRegistries?.length &&
846887 (this._registryOpts = this.config.services.userRegistries[0]),
……@@ -848,7 +889,7 @@ module.exports = class extends s {
848889 this.config.versions.minVersion)
849890 ) {
850891 const { major: e, minor: t, patch: i } = this.config.versions.minVersion
851 this.configMinVersion = new me(e, t, i)
892 this.configMinVersion = new be(e, t, i)
852893 }
853894 ;(this.config.versions.autoupgrade > 0 &&
854895 (this.abi.autoupgrade = this.config.versions.autoupgrade),
……@@ -863,7 +904,7 @@ module.exports = class extends s {
863904 if (!(e < t)) return
864905 const i = [],
865906 s = async function (e, t) {
866 const [i, s] = await Promise.all([e.db.get("@keet/system-digest"), H(e.db, e.deviceKey)])
907 const [i, s] = await Promise.all([e.db.get("@keet/system-digest"), Y(e.db, e.deviceKey)])
867908 !s?.status.isModerator ||
868909 i?.abi.version >= t ||
869910 (await this.internalDispatchUpgrade(e.id, t))
……@@ -871,8 +912,22 @@ module.exports = class extends s {
871912 for (const [e, r] of this.rooms.entries()) i.push(s(r, t))
872913 return await Promise.all(i)
873914 }
915 async _maybeOtaResyncPrivateProfile() {
916 this.onlineBoot.opened || (await this.onlineBoot.ready())
917 const e = this._otaResyncPrivateProfileBump || 0,
918 t = await this.internalEnterLocalTransaction()
919 try {
920 if (!(e > ((await t.get("@local/ota-actions"))?.otaResyncPrivateProfileBump || 0))) return
921 if (null === (await this.internalResyncPrivateProfile())) return
922 ;(await t.insert("@local/ota-actions", { otaResyncPrivateProfileBump: e }), await t.flush())
923 } catch (e) {
924 this.onerror(e)
925 } finally {
926 await this.internalExitLocalTransaction()
927 }
928 }
874929 shouldForceUpdate() {
875 const e = this.config.versions.forceUpdate > x.FORCE_UPDATE,
930 const e = this.config.versions.forceUpdate > D.FORCE_UPDATE,
876931 t =
877932 this.configMinVersion && this.appVersion
878933 ? this.configMinVersion.compare(this.appVersion)
……@@ -894,8 +949,8 @@ module.exports = class extends s {
894949 }
895950 }
896951 _handleCoreOpen(e) {
897 const t = new l({ core: e, weak: !0 }),
898 i = new d({ debounce: !0 })
952 const t = new c({ core: e, weak: !0 }),
953 i = new y({ debounce: !0 })
899954 ;(t.on("verification-error", (e) => {
900955 this.onerror(e, { coreKey: t.key, prefix: "CORE_VERIFICATION_ERROR" })
901956 }),
……@@ -987,12 +1042,12 @@ module.exports = class extends s {
9871042 } finally {
9881043 await this.internalExitLocalTransaction()
9891044 }
990 const s = await this.local.find("@local/room-migrations-by-priority").toArray(),
1045 const i = await this.local.find("@local/room-migrations-by-priority").toArray(),
9911046 r = [],
9921047 o = [],
9931048 a = []
994 for (const e of s)
995 this._disabledRooms.has(i.encode(e.roomKey))
1049 for (const e of i)
1050 this._disabledRooms.has(s.encode(e.roomKey))
9961051 ? a.push(e)
9971052 : e.v3?.privateProfile
9981053 ? r.push(e)
……@@ -1002,7 +1057,7 @@ module.exports = class extends s {
10021057 try {
10031058 for (const t of a) {
10041059 const i = await e.get("@local/room-migrations", { roomKey: t.roomKey })
1005 ;(await e.delete("@local/room-migrations", t), await ge(e, null, i))
1060 ;(await e.delete("@local/room-migrations", t), await we(e, null, i))
10061061 }
10071062 await e.flush()
10081063 } finally {
……@@ -1028,12 +1083,12 @@ module.exports = class extends s {
10281083 try {
10291084 e.timestamp = Date.now()
10301085 const i = await t.get("@local/room-migrations", e)
1031 ;(await t.insert("@local/room-migrations", e), await ge(t, e, i), await t.flush())
1086 ;(await t.insert("@local/room-migrations", e), await we(t, e, i), await t.flush())
10321087 } finally {
10331088 await this.internalExitLocalTransaction()
10341089 }
10351090 }
1036 const s = Date.now() - e.timestamp > Ie
1091 const s = Date.now() - e.timestamp > Se
10371092 let r = !1,
10381093 o = !1
10391094 try {
……@@ -1049,8 +1104,8 @@ module.exports = class extends s {
10491104 try {
10501105 const t = await a.get("@local/room-migrations", e)
10511106 ;(o
1052 ? (i || (e.errored = !r), await a.insert("@local/room-migrations", e), await ge(a, e, t))
1053 : (await a.delete("@local/room-migrations", e), await ge(a, null, t)),
1107 ? (i || (e.errored = !r), await a.insert("@local/room-migrations", e), await we(a, e, t))
1108 : (await a.delete("@local/room-migrations", e), await we(a, null, t)),
10541109 await a.flush())
10551110 } finally {
10561111 await this.internalExitLocalTransaction()
……@@ -1131,11 +1186,11 @@ module.exports = class extends s {
11311186 capabilities: { discoveryKeyPair: { publicKey: t } },
11321187 })
11331188 if (!e) continue
1134 const s = i.encode(e.discoveryKey)
1135 if (this._discovering.has(s)) continue
1189 const i = s.encode(e.discoveryKey)
1190 if (this._discovering.has(i)) continue
11361191 const r = this.internalOpenExistingRoom(e.roomKey)
1137 ;(this._discovering.set(s, { updated: !1, room: r, roomInfo: e }),
1138 this._startDiscoverySwarming(e.capabilities.swarmTopic, s) ||
1192 ;(this._discovering.set(i, { updated: !1, room: r, roomInfo: e }),
1193 this._startDiscoverySwarming(e.capabilities.swarmTopic, i) ||
11391194 this.internalReleaseRoom(r))
11401195 }
11411196 await e.flush()
……@@ -1170,22 +1225,22 @@ module.exports = class extends s {
11701225 this._refreshDiscoverySwarming()
11711226 }
11721227 async internalBlobsActiveInRoom(e) {
1173 const t = i.encode(e),
1174 s = this.rooms.get(t)
1175 if (!s) return
1228 const t = s.encode(e),
1229 i = this.rooms.get(t)
1230 if (!i) return
11761231 const r = await this.local.get("@local/rooms", { roomKey: e })
11771232 if (!r) return
11781233 const { capabilities: o } = r
11791234 if (!o || !o.mailboxKeyPair) return
11801235 try {
1181 await s.ready()
1236 await i.ready()
11821237 } catch {
11831238 return
11841239 }
1185 if (!s.externalBlobs) return
1240 if (!i.externalBlobs) return
11861241 const a = await this._getMirrorKeys(e, r)
1187 s.closing ||
1188 this.blindPeering.addCoreBackground(s.externalBlobs.core, {
1242 i.closing ||
1243 this.blindPeering.addCoreBackground(i.externalBlobs.core, {
11891244 target: o.mailboxKeyPair.publicKey,
11901245 keys: a,
11911246 pick: 1,
……@@ -1216,12 +1271,12 @@ module.exports = class extends s {
12161271 }
12171272 _handleConnection(e) {
12181273 if (this.closing) return void e.on("error", () => {})
1219 const t = i.encode(e.publicKey),
1220 s = i.encode(e.remotePublicKey),
1274 const t = s.encode(e.publicKey),
1275 i = s.encode(e.remotePublicKey),
12211276 r = Date.now()
12221277 let o = 0
12231278 this.internalVerboseLog(
1224 `got ${e.isInitiator ? "client" : "server"} connection from ${t} to ${s}`,
1279 `got ${e.isInitiator ? "client" : "server"} connection from ${t} to ${i}`,
12251280 )
12261281 let a = null
12271282 ;(e.once("error", (e) => {
……@@ -1229,7 +1284,7 @@ module.exports = class extends s {
12291284 }),
12301285 e.once("close", () => {
12311286 this.internalVerboseLog(
1232 `connection closed to ${s}, with err: ${a} (${Date.now() - r} ms ${o} bytes recv)`,
1287 `connection closed to ${i}, with err: ${a} (${Date.now() - r} ms ${o} bytes recv)`,
12331288 )
12341289 }),
12351290 e.on("data", (e) => {
……@@ -1240,7 +1295,7 @@ module.exports = class extends s {
12401295 }
12411296 async _createInitialIdentity() {
12421297 const t = e.generateMnemonic(),
1243 i = this.tasks.restoreIdentity(Ee, { mnemonic: t, recover: !1 })
1298 i = this.tasks.restoreIdentity(Be, { mnemonic: t, recover: !1 })
12441299 await i.run()
12451300 }
12461301 async _loadIdentity() {
……@@ -1253,9 +1308,48 @@ module.exports = class extends s {
12531308 return
12541309 const t = await this.local.get("@local/rooms", { roomKey: e.privateProfileKey })
12551310 ;((this.privateProfile = await this.internalOpenPrivateProfile({ opening: !0 })),
1311 this._shortenDeviceAttestations().catch(this.onerror),
12561312 this.swarmWorker.startActiveSwarming(t.capabilities.swarmTopic),
12571313 await this.internalRefreshUnreads())
12581314 }
1315 async internalResyncPrivateProfile() {
1316 if (!this.privateProfile) return null
1317 const e = []
1318 for await (const t of this.privateProfile.db.find("@keet-private-id/rooms"))
1319 (await this.local.get("@local/rooms", { roomKey: t.roomKey })) || e.push(t)
1320 for (const t of e) this.tasks.joinRoomKeys(t.roomKey, { keys: t }).runBackground()
1321 }
1322 async _shortenDeviceAttestations() {
1323 const e = await this.local.get("@local/identity")
1324 if (!e) return
1325 const i = s.encode(e.privateProfileKey)
1326 if (!(await this.internalFeatureSupported(i, I.SHORTEN_ATTESTATION))) return
1327 const r = this.privateProfile.base.local.key,
1328 o = f.decode(t, e.deviceProof).chain.length
1329 for await (const i of this.privateProfile.db.find("@keet-private-id/device-identities")) {
1330 const s = k.equals(i.deviceKey, r),
1331 a = f.decode(t, i.deviceProof),
1332 n = a.chain.length,
1333 l = a.chain[n - 1].publicKey
1334 if (!s && o + 1 < n) {
1335 const t = He(e, i.deviceKey, l)
1336 await this.privateProfile.dispatch("@keet-private-id/shorten-device-attestation", {
1337 deviceKey: i.deviceKey,
1338 deviceProof: t.deviceProof,
1339 writerProof: t.privateProfileIdentity.proof,
1340 })
1341 }
1342 if (s && f.decode(t, i.deviceProof).chain.length < o) {
1343 const t = await this.internalEnterLocalTransaction()
1344 try {
1345 const s = { ...e, deviceProof: i.deviceProof, proofShortenedAt: Date.now() }
1346 ;(await t.insert("@local/identity", s), await t.flush())
1347 } finally {
1348 await this.internalExitLocalTransaction()
1349 }
1350 }
1351 }
1352 }
12591353 async internalDispatchUpgrade(e, t) {
12601354 if (!e || !t) return
12611355 const i = this.internalOpenExistingRoom(e)
……@@ -1311,7 +1405,7 @@ module.exports = class extends s {
13111405 if (i?.profile.avatar) {
13121406 const t = this.internalOpenExistingRoom(e)
13131407 try {
1314 await J(t.blobs, i.profile.avatar)
1408 await z(t.blobs, i.profile.avatar)
13151409 } finally {
13161410 this.internalReleaseRoom(t)
13171411 }
……@@ -1329,18 +1423,18 @@ module.exports = class extends s {
13291423 let i = null
13301424 t.internal || (i = (e, i) => this._cacheRoomReads(t.key, e, i))
13311425 const s = { autoUpdate: !0, extension: !1, trace: i },
1332 r = B.autobaseOpen(e, t),
1333 o = Q.bee(e, { hyperdb: s })
1426 r = x.autobaseOpen(e, t),
1427 o = ee.bee(e, { hyperdb: s })
13341428 return { ...o, core: o.cores.db, legacy: r, roomKey: t.key }
13351429 }
13361430 _autobaseClose(e) {
13371431 return Promise.all([e.db.close(), e.blobs.close(), e.legacy.close()])
13381432 }
13391433 async _autobaseUpdate(e, t) {
1340 const s = new M(this, e, t.base, t)
1341 await s.run()
1342 const r = i.encode(t.base.discoveryKey)
1343 s.runPostUpdate()
1434 const i = new U(this, e, t.base, t)
1435 await i.run()
1436 const r = s.encode(t.base.discoveryKey)
1437 i.runPostUpdate()
13441438 const o = this._discovering.get(r)
13451439 o && ((o.updated = !0), this.swarmWorker.notifyDiscoveryUpdate(r))
13461440 }
……@@ -1350,7 +1444,7 @@ module.exports = class extends s {
13501444 let h = !1,
13511445 d = 0
13521446 if (!(a.length > 0)) {
1353 if (((d = await V.autobaseApply(e, n, i)), d === e.length)) return !0
1447 if (((d = await N.autobaseApply(e, n, i)), d === e.length)) return !0
13541448 h = n.core.length > 0
13551449 }
13561450 const y = o.transaction(),
……@@ -1362,12 +1456,15 @@ module.exports = class extends s {
13621456 if (h) {
13631457 const t = e[d]
13641458 if (s || t?.optimistic) return !0
1365 ;(i.preferFastForward(), await V.migrate(this.store, i.base, n, y, u, this.contractBundles))
1459 ;(i.preferFastForward(), await N.migrate(this.store, i.base, n, y, u, this.contractBundles))
13661460 }
13671461 const r = await y.get("@keet/system-digest")
1368 if (r && r.abi.version > this.abi.production) {
1369 if (s) return !1
1370 i.interrupt({ unsupportedABI: r.abi.version, digest: r, nodes: e })
1462 if (r) {
1463 const t = this.isNightly ? this.abi.max : this.abi.production
1464 if (r.abi.version > t) {
1465 if (s) return !1
1466 i.interrupt({ unsupportedABI: r.abi.version, digest: r, nodes: e })
1467 }
13711468 }
13721469 g = r ? r.abi.version : this.abi.autoupgrade
13731470 let o = await this.contractBundles.loadBundle(g),
……@@ -1375,27 +1472,28 @@ module.exports = class extends s {
13751472 y.setDefinition(o.spec.contract.hyperdb)
13761473 for (let r = d; r < e.length; r++) {
13771474 const n = e[r]
1378 if (!(w.decode(w.uint, n.value) < 2))
1475 if (!(f.decode(f.uint, n.value) < 2))
13791476 try {
1380 const e = te(n.value),
1381 r = $e(y, u, n, i, t, a, { dryRun: s, trace: c, abi: this.abi })
1382 ;(await a.dispatch(e, r),
1383 e &&
1384 "@keet/upgrade" === e.name &&
1385 ((g = e.value.version),
1477 const r = se(n.value)
1478 this._maybeLogAutobaseApply(r, s, e.length, g, l)
1479 const h = Ge(y, u, n, i, t, a, { dryRun: s, trace: c, abi: this.abi })
1480 ;(await a.dispatch(r, h),
1481 r &&
1482 "@keet/upgrade" === r.name &&
1483 ((g = r.value.version),
13861484 (o = await this.contractBundles.loadBundle(g)),
13871485 (a = await this.contractBundles.loadRouter(g)),
13881486 y.setDefinition(o.spec.contract.hyperdb)))
13891487 } catch (e) {
1390 if (Z.isContractError(e)) throw e
1391 if (ie.isDispatchError(e)) throw Z.DISPATCH_ERROR(e.message)
1488 if (te.isContractError(e)) throw e
1489 if (re.isDispatchError(e)) throw te.DISPATCH_ERROR(e.message)
13921490 throw e
13931491 }
13941492 }
13951493 } catch (t) {
13961494 "BUNDLE_NOT_AVAILABLE" === t.code
13971495 ? i.interrupt({ unsupportedABI: t.abi, digest: null, nodes: e })
1398 : Z.isContractError(t)
1496 : te.isContractError(t)
13991497 ? ((m = !0), (t.abi = g), (t.roomKey = l), (s && !this.isTesting) || this.onerror(t))
14001498 : (p = t)
14011499 }
……@@ -1409,6 +1507,26 @@ module.exports = class extends s {
14091507 throw p
14101508 return b
14111509 }
1510 _maybeLogAutobaseApply(e, t, i, r, o) {
1511 try {
1512 const a = s.encode(o),
1513 n = this.rooms.get(a),
1514 l = n ? n.getQuickStats() : null
1515 this.logger.verboseDebug("[autobaseApply]", {
1516 "op.name": e.name,
1517 "op.id": e.id,
1518 dryRun: t,
1519 "nodes.length": i,
1520 abi: r,
1521 roomId: a,
1522 "roomStats.view": l?.view,
1523 "roomStats.system": l?.system,
1524 "roomStats.base": l?.base,
1525 })
1526 } catch (e) {
1527 console.error("Failed to log autobase apply", e)
1528 }
1529 }
14121530 _autobaseTrace({ type: e, value: t }) {
14131531 if ("@keet/add-device" !== e) return
14141532 const { request: i, response: s, invitation: r } = t,
……@@ -1422,17 +1540,21 @@ module.exports = class extends s {
14221540 this.onlineBoot.opened || (await this.onlineBoot.ready())
14231541 const s = await this.local.get("@local/identity"),
14241542 r = await this.local.get("@local/rooms", { roomKey: s.privateProfileKey })
1425 v.equals(e, r.capabilities.mailboxKeyPair.publicKey) ||
1543 k.equals(e, r.capabilities.mailboxKeyPair.publicKey) ||
14261544 this.tasks
14271545 .joinRoomResponse(t.publicKey, { mailbox: e, keyPair: t, response: i })
14281546 .runBackground()
14291547 }
14301548 async _backgroundDrain(e) {
14311549 let t = await e.next()
1432 for (; !t.done && !this.closing; ) {
1433 const i = await t.value
1434 if (this.closing) return
1435 t = await e.next(i)
1550 try {
1551 for (; !t.done && !this.closing; ) {
1552 const i = await t.value
1553 if (this.closing) return
1554 t = await e.next(i)
1555 }
1556 } finally {
1557 !t.done && e.return && (await e.return())
14361558 }
14371559 }
14381560 async _safeLoadLegacyUnreads() {
……@@ -1468,26 +1590,26 @@ module.exports = class extends s {
14681590 e &&
14691591 (yield this.privateProfile.internalEnsureUpgraded({ opening: !0 }),
14701592 (e = yield this.privateProfile.db.get("@keet/system-digest")),
1471 x.isFeatureSupported(e.abi.version, x.FEATURES.UNREADS) && (yield this._unreadsLock.lock()))
1593 D.isFeatureSupported(e.abi.version, D.FEATURES.UNREADS) && (yield this._unreadsLock.lock()))
14721594 )
14731595 try {
14741596 const t = []
14751597 let i = !0
1476 const s = x.isFeatureSupported(e.abi.version, x.FEATURES.V2_UNREADS)
1598 const s = D.isFeatureSupported(e.abi.version, D.FEATURES.V2_UNREADS)
14771599 ? "@keet-private-id/unreads-v2"
14781600 : "@keet-private-id/unreads",
14791601 r = yield this.privateProfile.db.find(s).toArray()
14801602 for (const { deviceKey: e, key: s } of r)
1481 (v.equals(e, this.privateProfile.base.local.key) && (i = !1), t.push(s))
1482 if (this.unreads && ze(t, this.unreads.keys)) return
1603 (k.equals(e, this.privateProfile.base.local.key) && (i = !1), t.push(s))
1604 if (this.unreads && Xe(t, this.unreads.keys)) return
14831605 this.unreads && (yield this.unreads.close(), (this.unreads = null))
14841606 const o = this.privateProfile,
14851607 a = o.base.encryptionKey,
14861608 n = this.store.namespace(o.key),
1487 l = n.namespace(Pe)
1609 l = n.namespace(_e)
14881610 yield n.close()
14891611 const c = yield o.base.wakeupCapability && o.base.wakeupCapability.key
1490 ;((this.unreads = new L(l, t, {
1612 ;((this.unreads = new E(l, t, {
14911613 blindPeering: this.blindPeering,
14921614 encryptionKey: a,
14931615 target: c,
……@@ -1527,7 +1649,7 @@ module.exports = class extends s {
15271649 this.discoveryCore && (await this.discoveryCore.close()),
15281650 (this.discoveryCore = this.store.get({
15291651 keyPair: e.profileDiscoveryKeyPair,
1530 valueEncoding: ce,
1652 valueEncoding: de,
15311653 encryptionKey: t,
15321654 manifest: i,
15331655 })),
……@@ -1554,7 +1676,7 @@ module.exports = class extends s {
15541676 let s = !1
15551677 if (t)
15561678 for (const r of t.base.heads())
1557 e && v.equals(r.key, e.key)
1679 e && k.equals(r.key, e.key)
15581680 ? ((s = !0), i.push({ key: r.key, length: Math.max(r.length, e.length) }))
15591681 : i.push(r)
15601682 return (e && !s && i.push(e), i)
……@@ -1578,7 +1700,7 @@ module.exports = class extends s {
15781700 e.refs -= 1
15791701 }
15801702 internalOpenExistingRoom(e, t = {}) {
1581 return this.internalOpenRoom(i.decode(e), null, t)
1703 return this.internalOpenRoom(s.decode(e), null, t)
15821704 }
15831705 async internalOpenPrivateProfile({ opening: e = !1 } = {}) {
15841706 e || this.onlineBoot.opened || (await this.onlineBoot.ready())
……@@ -1586,7 +1708,7 @@ module.exports = class extends s {
15861708 i = this.internalOpenExistingRoom(t.privateProfileKey, { bigBatches: !0 })
15871709 return (
15881710 await i.ready(),
1589 (this.privateProfile && v.equals(i.key, this.privateProfile.key)) ||
1711 (this.privateProfile && k.equals(i.key, this.privateProfile.key)) ||
15901712 (this.privateProfile && this.internalReleaseRoom(this.privateProfile),
15911713 (this.privateProfile = this.internalOpenExistingRoom(t.privateProfileKey, {
15921714 bigBatches: !0,
……@@ -1605,25 +1727,25 @@ module.exports = class extends s {
16051727 }
16061728 }
16071729 async internalFeatureSupported(e, t) {
1608 const s = i.decode(e),
1609 r = await this.local.get("@local/rooms", { roomKey: s })
1730 const i = s.decode(e),
1731 r = await this.local.get("@local/rooms", { roomKey: i })
16101732 return !!r && this.versions.isFeatureSupported(r.digest.abi.version, t)
16111733 }
1612 internalOpenRoom(e, t, { fastForwardTo: s, mailbox: r, keyPair: o, bigBatches: a } = {}) {
1734 internalOpenRoom(e, t, { fastForwardTo: i, mailbox: r, keyPair: o, bigBatches: a } = {}) {
16131735 if (this.closing) throw new Error("Keet is closing")
1614 const n = i.encode(e),
1736 const n = s.encode(e),
16151737 l = this.rooms.get(n)
16161738 if (l) return ((l.idleTicks = 0), (l.refs += 1), l)
1617 const c = b.discoveryKey(e),
1618 d = this.store.namespace(c)
1739 const c = w.discoveryKey(e),
1740 h = this.store.namespace(c)
16191741 let y = null,
16201742 u = null,
16211743 p = null
16221744 ;(r || ((u = this.internalGetMailbox(e)), u.catch(this.onerror)),
16231745 o || ((y = this.internalGetKeyPair(e)), y.catch(this.onerror)),
16241746 t || ((p = this.internalGetEncryptionKey(e)), p.catch(this.onerror)),
1625 r && (r = { key: r, discoveryKey: b.discoveryKey(r) }))
1626 const m = new h(d, e, {
1747 r && (r = { key: r, discoveryKey: w.discoveryKey(r) }))
1748 const m = new d(h, e, {
16271749 backoff: this.backoff,
16281750 update: this._autobaseUpdate.bind(this),
16291751 apply: this._autobaseApply.bind(this),
……@@ -1632,7 +1754,7 @@ module.exports = class extends s {
16321754 encryptionKey: t || p,
16331755 wakeupCapability: r || u,
16341756 keyPair: o || y,
1635 fastForward: !this.debug.disableFastForward && s,
1757 fastForward: !this.debug.disableFastForward && i,
16361758 ackThreshold: this.ackThreshold,
16371759 ackInterval: this.ackInterval,
16381760 wakeup: this.protomuxWakeup,
……@@ -1651,7 +1773,7 @@ module.exports = class extends s {
16511773 ;(this.logger.warn("[autobase error] room=", m.id, "error=", t),
16521774 this.onerror(t, { roomKey: e, prefix: "AUTOBASE_ERROR" }))
16531775 }))
1654 const g = new Fe(this, n, e, c, m)
1776 const g = new je(this, n, e, c, m)
16551777 return (this.rooms.set(n, g), (g.refs += 1), g)
16561778 }
16571779 async updateDevice({ name: e } = {}) {
……@@ -1697,12 +1819,12 @@ module.exports = class extends s {
16971819 : await i.close())
16981820 }
16991821 async internalCreateRoom(e = {}) {
1700 const t = e.seed || b.randomBytes(32),
1701 i = e.keyPair || b.keyPair(),
1702 s = e.encryptionKey || b.randomBytes(32),
1703 r = N(i.publicKey),
1704 o = b.discoveryKey(r),
1705 a = $(r, t),
1822 const t = e.seed || w.randomBytes(32),
1823 i = e.keyPair || w.keyPair(),
1824 s = e.encryptionKey || w.randomBytes(32),
1825 r = W(i.publicKey),
1826 o = w.discoveryKey(r),
1827 a = G(r, t),
17061828 n = a.mailboxKeyPair.publicKey,
17071829 l = await this.internalEnterLocalTransaction()
17081830 try {
……@@ -1741,7 +1863,7 @@ module.exports = class extends s {
17411863 await h.run(),
17421864 this.discovery &&
17431865 this.discovery.subscribe(a.discoveryKeyPair.publicKey, { since: Date.now() }),
1744 this.swarmWorker.refresh().catch(Je),
1866 this.swarmWorker.refresh().catch(ze),
17451867 this.internalOpenExistingRoom(r)
17461868 )
17471869 }
……@@ -1764,7 +1886,7 @@ module.exports = class extends s {
17641886 }
17651887 await this.privateProfile.dispatch("@keet-private-id/update-room-status", {
17661888 roomKey: e,
1767 key: Y.IsActive,
1889 key: Q.IsActive,
17681890 status: { isActive: !1 },
17691891 })
17701892 }
……@@ -1810,23 +1932,23 @@ module.exports = class extends s {
18101932 : this.internalCreateMemberUpdate(e)
18111933 : null
18121934 }
1813 internalCreateDeviceUpdate(t, i, { isPrivateProfile: s = !1, buildType: r = null } = {}) {
1814 const o = t.identity
1815 let a = null
1816 t.privateProfile?.selfDevice && s && (a = t.privateProfile.selfDevice.profile.name)
1817 const n = t.privateProfile?.digest.settings.buildType,
1818 l = he.Production === n
1935 internalAttestData(t, i) {
1936 return e.attestData(t, i.deviceKeyPair, i.deviceProof)
1937 }
1938 internalCreateDeviceUpdate(e, t, { isPrivateProfile: i = !1, buildType: s = null } = {}) {
1939 const r = e.identity
1940 let o = null
1941 e.privateProfile?.selfDevice && i && (o = e.privateProfile.selfDevice.profile.name)
1942 const a = e.privateProfile?.digest.settings.buildType,
1943 n = ye.Production === a
18191944 return {
18201945 profile: {
18211946 swarmKey: this.swarm.keyPair.publicKey,
1822 name: a,
1947 name: o,
18231948 isMobile: this.isMobile,
1824 buildType: l && null === r ? null : n,
1825 },
1826 attestation: {
1827 memberKey: o.publicKey,
1828 proof: e.attestData(i, o.deviceKeyPair, o.deviceProof),
1949 buildType: n && null === s ? null : a,
18291950 },
1951 attestation: { memberKey: r.publicKey, proof: this.internalAttestData(t, r) },
18301952 }
18311953 }
18321954 internalCreateMemberUpdate(t, { profile: i } = {}) {
……@@ -1834,7 +1956,7 @@ module.exports = class extends s {
18341956 r = t.privateProfile?.capabilities.mailboxKeyPair.publicKey || i.mailbox,
18351957 o = t.identity,
18361958 a = { ...s, ...i, mailbox: r, timestamp: Date.now() },
1837 n = oe("@keet/member-profile", a)
1959 n = ne("@keet/member-profile", a)
18381960 return {
18391961 profile: a,
18401962 attestation: {
……@@ -1854,26 +1976,26 @@ module.exports = class extends s {
18541976 }
18551977 internalDecodeInvitation(e) {
18561978 try {
1857 const t = "string" == typeof e ? f.decode(e) : e
1858 return ae("@keet/sendable-invitation", t)
1979 const t = "string" == typeof e ? v.decode(e) : e
1980 return le("@keet/sendable-invitation", t)
18591981 } catch {
1860 throw pe.INVALID_INVITE(`Invalid invite: ${e}`)
1982 throw ge.INVALID_INVITE(`Invalid invite: ${e}`)
18611983 }
18621984 }
18631985 internalDecodeContactInfo(e) {
18641986 try {
1865 const t = v.isBuffer(e) ? e : v.from(e, "base64")
1866 return ae("@keet/member-contact-info", t)
1987 const t = k.isBuffer(e) ? e : k.from(e, "base64")
1988 return le("@keet/member-contact-info", t)
18671989 } catch {
1868 throw pe.INVALID_CONTACT_INFO(`Invalid contact info: ${e}`)
1990 throw ge.INVALID_CONTACT_INFO(`Invalid contact info: ${e}`)
18691991 }
18701992 }
18711993 internalEncodeContactInfo(e) {
1872 return oe("@keet/member-contact-info", e)
1994 return ne("@keet/member-contact-info", e)
18731995 }
18741996 internalCreateContactInfoStruct(t, i, s = {}) {
18751997 const r = { ...i.selfMember.profile, ...s },
1876 o = oe("@keet/member-profile", r),
1998 o = ne("@keet/member-profile", r),
18771999 a = {
18782000 profile: r,
18792001 attestation: {
……@@ -1884,45 +2006,57 @@ module.exports = class extends s {
18842006 return this.internalEncodeContactInfo(a)
18852007 }
18862008 async wakeup() {
1887 ;((this.state = we.WAKEUP), this.opened || (await this.ready()))
2009 ;((this.state = ve.WAKEUP),
2010 this.internalVerboseLog("[Keet Core]", "await .ready"),
2011 this.opened || (await this.ready()))
18882012 const e = [this.resume(), this.swarmWorker.background()]
1889 await Promise.allSettled(e)
2013 ;(this.internalVerboseLog("[Keet Core]", "await all promise"),
2014 await Promise.allSettled(e),
2015 this.internalVerboseLog("[Keet Core]", "promise settled"))
18902016 }
18912017 async presuspend() {
1892 ;((this.state = we.PRESUSPEND),
2018 ;((this.state = ve.PRESUSPEND),
18932019 this.opened || (await this.ready()),
18942020 this.swarmWorker.setServerMode(!1))
18952021 }
18962022 async suspend() {
1897 if ((this.internalVerboseLog("Core, suspend called"), this.state === we.SUSPEND)) return
1898 ;((this.state = we.SUSPEND),
2023 if ((this.internalVerboseLog("[Keet Core]", "suspend called"), this.state === ve.SUSPEND))
2024 return
2025 ;((this.state = ve.SUSPEND),
18992026 this.opened || (await this.ready()),
1900 this.internalVerboseLog("Core, suspend post ready"))
2027 this.internalVerboseLog("[Keet Core]", "suspend post ready"))
19012028 const e = [this._flushDHTCache()]
19022029 ;(this.blindPeering &&
1903 (this.internalVerboseLog("Core, suspend adding blind peering"),
2030 (this.internalVerboseLog("[Keet Core]", "suspend adding blind peering"),
19042031 e.push(this.blindPeering.suspend())),
1905 this.push && (this.internalVerboseLog("Core, suspend push"), e.push(this.push.suspend())),
2032 this.push &&
2033 (this.internalVerboseLog("[Keet Core]", "suspend push"), e.push(this.push.suspend())),
19062034 this.discovery &&
1907 (this.internalVerboseLog("Core, suspend discovery"), e.push(this.discovery.suspend())),
2035 (this.internalVerboseLog("[Keet Core]", "suspend discovery"),
2036 e.push(this.discovery.suspend())),
19082037 await Promise.allSettled(e),
1909 this.internalVerboseLog("Core, all done"),
2038 this.internalVerboseLog("[Keet Core]", "all done"),
19102039 await this.rpcClient.suspend(),
1911 this.internalVerboseLog("Core, rpc suspended"),
2040 this.internalVerboseLog("[Keet Core]", "rpc suspended"),
19122041 await this.swarm.suspend(),
1913 this.internalVerboseLog("Core, swarm suspend"),
2042 this.internalVerboseLog("[Keet Core]", "swarm suspend"),
19142043 await this.files.server.suspend(),
1915 this.internalVerboseLog("Core, files suspend"),
2044 this.internalVerboseLog("[Keet Core]", "files suspend"),
19162045 await this.store.suspend(),
1917 this.internalVerboseLog("Core, store suspended, all done"))
2046 this.internalVerboseLog("[Keet Core]", "store suspended, all done"))
19182047 }
19192048 async resume() {
1920 if (this.state === we.RESUME) return
1921 ;((this.state = we.RESUME),
2049 if ((this.internalVerboseLog("[Keet Core]", "resume called"), this.state === ve.RESUME)) return
2050 ;((this.state = ve.RESUME),
2051 this.internalVerboseLog("[Keet Core]", "await this.ready"),
19222052 this.opened || (await this.ready()),
2053 this.internalVerboseLog("[Keet Core]", "resume store"),
19232054 await this.store.resume(),
2055 this.internalVerboseLog("[Keet Core]", "resume file server"),
19242056 await this.files.server.resume(),
2057 this.internalVerboseLog("[Keet Core]", "resume swarm"),
19252058 this.readOnly || (await this.swarm.resume()),
2059 this.internalVerboseLog("[Keet Core]", "resume rpc client"),
19262060 await this.rpcClient.resume())
19272061 const e = []
19282062 ;(this.blindPeering && !this.readOnly && e.push(this.blindPeering.resume()),
……@@ -1930,7 +2064,9 @@ module.exports = class extends s {
19302064 this.discovery && e.push(this.discovery.resume()),
19312065 this.swarmWorker.setServerMode(!0),
19322066 e.push(this.swarmWorker.unbackground()),
1933 await Promise.allSettled(e))
2067 this.internalVerboseLog("[Keet Core]", "await all promises"),
2068 await Promise.allSettled(e),
2069 this.internalVerboseLog("[Keet Core]", "all promises settled"))
19342070 }
19352071 async _createInvitation(e, t) {
19362072 let {
……@@ -1945,23 +2081,23 @@ module.exports = class extends s {
19452081 if ("2h" === i) i = Date.now() + 72e5
19462082 else if ("2d" === i) i = Date.now() + 1728e5
19472083 else {
1948 if ("2w" !== i) throw pe.UNKNOWN_EXPIRATION(`Unknown expiration: ${i}`, { roomKey: e.key })
2084 if ("2w" !== i) throw ge.UNKNOWN_EXPIRATION(`Unknown expiration: ${i}`, { roomKey: e.key })
19492085 i = Date.now() + 12096e5
19502086 }
19512087 await e.ready()
19522088 const [{ seed: l }, c, h] = await Promise.all([
19532089 e.db.get("@keet/room-capabilities"),
1954 H(e.db, e.deviceKey),
2090 Y(e.db, e.deviceKey),
19552091 e.db.get("@keet/system-digest"),
19562092 ])
19572093 if ((r || s) && !c.status.isModerator)
1958 throw pe.MODERATORS_ONLY("Only moderators can create moderator invitations", {
2094 throw ge.MODERATORS_ONLY("Only moderators can create moderator invitations", {
19592095 roomKey: e.key,
19602096 })
1961 const d = $(e.key, l),
2097 const d = G(e.key, l),
19622098 y = this.swarm.dht.toArray({ limit: 3 })
19632099 if (n)
1964 return oe("@keet/sendable-invitation", {
2100 return ne("@keet/sendable-invitation", {
19652101 readonly: {
19662102 roomKey: e.key,
19672103 encryptionKey: e.encryptionKey,
……@@ -1971,7 +2107,7 @@ module.exports = class extends s {
19712107 additionalNodes: y,
19722108 })
19732109 const u = { key: e.key, encryptionKey: e.encryptionKey, fastForwardTo: e.base.getSystemKey() },
1974 { invitation: p, seed: m } = W(u, {
2110 { invitation: p, seed: m } = $(u, {
19752111 requiresConfirmation: a,
19762112 expiration: i,
19772113 canModerate: r,
……@@ -1991,16 +2127,16 @@ module.exports = class extends s {
19912127 o
19922128 ? (w.identity = { mailbox: b, invitationSeed: m, anchor: g, identityPublicKey: o })
19932129 : (w.room = { mailbox: b, invitationSeed: m, anchor: g }),
1994 oe("@keet/sendable-invitation", w)
2130 ne("@keet/sendable-invitation", w)
19952131 )
19962132 }
19972133 async createRoomInvitation(e, t = {}) {
19982134 this.opened || (await this.ready())
1999 const s = i.decode(e),
2000 r = this.internalOpenExistingRoom(s)
2135 const i = s.decode(e),
2136 r = this.internalOpenExistingRoom(i)
20012137 try {
20022138 const e = await this._createInvitation(r, t)
2003 return f.encode(e)
2139 return v.encode(e)
20042140 } finally {
20052141 this.internalReleaseRoom(r)
20062142 }
……@@ -2018,18 +2154,18 @@ module.exports = class extends s {
20182154 requiresConfirmation: !0,
20192155 identityPublicKey: e.publicKey,
20202156 })
2021 return f.encode(i)
2157 return v.encode(i)
20222158 } finally {
20232159 this.internalReleaseRoom(t)
20242160 }
20252161 }
2026 async _startPairing(e, { deviceKeyPair: t, buildType: s = null } = {}) {
2162 async _startPairing(e, { deviceKeyPair: t, buildType: i = null } = {}) {
20272163 this.onlineBoot.opened || (await this.onlineBoot.ready())
2028 const r = F(e.invitationSeed),
2164 const r = j(e.invitationSeed),
20292165 o = e.invitationSeed,
20302166 a = e.mailbox,
20312167 n = e.anchor,
2032 l = { key: null, seedId: i.encode(o) },
2168 l = { key: null, seedId: s.encode(o) },
20332169 c = await this.local.get("@local/rooms-by-mailbox", {
20342170 capabilities: { mailboxKeyPair: { publicKey: a } },
20352171 })
……@@ -2038,9 +2174,9 @@ module.exports = class extends s {
20382174 if (c.selfMember?.status.isRemoved) throw new Error("Removed member cannot rejoin")
20392175 h = await this.local.get("@local/room-preferences", { roomKey: c.roomKey })
20402176 }
2041 if (h && h.status.isActive && !h.status.isReadOnly) return ((l.key = i.encode(c.roomKey)), l)
2042 const d = b.keyPair(),
2043 y = await this.store.createKeyPair(G(d.publicKey)),
2177 if (h && h.status.isActive && !h.status.isReadOnly) return ((l.key = s.encode(c.roomKey)), l)
2178 const d = w.keyPair(),
2179 y = await this.store.createKeyPair(J(d.publicKey)),
20442180 u = this.store.get({ keyPair: y, active: !1 })
20452181 await u.ready()
20462182 const p = { key: u.key, length: 1 }
……@@ -2055,11 +2191,11 @@ module.exports = class extends s {
20552191 initiator: p,
20562192 responseKeyPair: d,
20572193 invitationSeed: o,
2058 buildType: s,
2194 buildType: i,
20592195 },
2060 w = await this.privateProfile.db.find("@keet-private-id/pending-invitations").toArray()
2061 for (const e of w)
2062 v.equals(e.mailbox, g.mailbox) &&
2196 b = await this.privateProfile.db.find("@keet-private-id/pending-invitations").toArray()
2197 for (const e of b)
2198 k.equals(e.mailbox, g.mailbox) &&
20632199 (await this.privateProfile.dispatch("@keet-private-id/remove-pending-invitation", e))
20642200 return (
20652201 await this.privateProfile.dispatch("@keet-private-id/add-pending-invitation", {
……@@ -2068,9 +2204,9 @@ module.exports = class extends s {
20682204 l
20692205 )
20702206 }
2071 async _openReadOnlyRoom({ roomKey: e, encryptionKey: t, seed: s, fastForwardTo: r }) {
2207 async _openReadOnlyRoom({ roomKey: e, encryptionKey: t, seed: i, fastForwardTo: r }) {
20722208 this.onlineBoot.opened || (await this.onlineBoot.ready())
2073 const { mailboxKeyPair: o, swarmTopic: a } = $(e, s),
2209 const { mailboxKeyPair: o, swarmTopic: a } = G(e, i),
20742210 n = this.internalOpenRoom(e, t, { mailbox: o.publicKey, fastForwardTo: { key: r } })
20752211 return (
20762212 await n.ready(),
……@@ -2081,8 +2217,8 @@ module.exports = class extends s {
20812217 fastForwardTo: r,
20822218 isReadOnly: !0,
20832219 }),
2084 this.swarmWorker.startDiscoverySwarming(a, { roomId: i.encode(e) }),
2085 { key: i.encode(e), seedId: i.encode(s) }
2220 this.swarmWorker.startDiscoverySwarming(a, { roomId: s.encode(e) }),
2221 { key: s.encode(e), seedId: s.encode(i) }
20862222 )
20872223 }
20882224 async startPairingRoom(e, t) {
……@@ -2090,10 +2226,10 @@ module.exports = class extends s {
20902226 const i = this.internalDecodeInvitation(e),
20912227 s = await this.local.get("@local/rooms", { roomKey: this.privateProfile.key }),
20922228 r = i.buildType,
2093 o = s.digest.settings.buildType || he.Production
2094 if (r && r !== o) throw pe.INVALID_BUILD_TYPE()
2229 o = s.digest.settings.buildType || ye.Production
2230 if (r && r !== o) throw ge.INVALID_BUILD_TYPE()
20952231 if (i.readonly) return this._openReadOnlyRoom(i.readonly)
2096 if (!i.room) throw pe.INVALID_INVITATION_TYPE("Invalid room invitation")
2232 if (!i.room) throw ge.INVALID_INVITATION_TYPE("Invalid room invitation")
20972233 return this._startPairing(i.room, { ...t, buildType: r })
20982234 }
20992235 async startPairingIdentity(e) {
……@@ -2101,10 +2237,10 @@ module.exports = class extends s {
21012237 const t = this.internalDecodeInvitation(e),
21022238 i = await this.local.get("@local/rooms", { roomKey: this.privateProfile.key }),
21032239 s = t.buildType,
2104 r = i.digest.settings.buildType || he.Production
2105 if (s && s !== r) throw pe.INVALID_BUILD_TYPE()
2106 if (!t.identity) throw pe.INVALID_INVITATION_TYPE("Invalid device sync invitation")
2107 const o = j(t.identity.identityPublicKey),
2240 r = i.digest.settings.buildType || ye.Production
2241 if (s && s !== r) throw ge.INVALID_BUILD_TYPE()
2242 if (!t.identity) throw ge.INVALID_INVITATION_TYPE("Invalid device sync invitation")
2243 const o = H(t.identity.identityPublicKey),
21082244 a = await this.store.createKeyPair(o)
21092245 return this._startPairing(t.identity, { deviceKeyPair: a, buildType: s })
21102246 }
……@@ -2137,7 +2273,7 @@ module.exports = class extends s {
21372273 async getRecoveryPhrase() {
21382274 this.onlineBoot.opened || (await this.onlineBoot.ready())
21392275 const e = (await this.local.get("@local/identity")).entropy
2140 return e ? E({ entropy: e }) : null
2276 return e ? C({ entropy: e }) : null
21412277 }
21422278 async getEncryptedRecoveryPhrase(e) {
21432279 if ("string" != typeof e) throw new Error("Password required")
……@@ -2145,27 +2281,27 @@ module.exports = class extends s {
21452281 const t = await this.getRecoveryPhrase()
21462282 if ("string" != typeof t) throw new Error("Recovery phrase reading failed")
21472283 if (0 === t.length) throw new Error("Recovery phrase reading failed")
2148 return S.encryptPhrase(t, e)
2284 return O.encryptPhrase(t, e)
21492285 }
21502286 decryptEncryptedRecoveryPhrase(e, t) {
21512287 if (!ArrayBuffer.isView(e)) throw new Error("Encrypted phrase should be an ArrayBuffer view")
21522288 if (0 === e.byteLength) throw new Error("Encrypted phrase should not be empty")
21532289 if ("string" != typeof t) throw new Error("Password required")
21542290 if (0 === t.length) throw new Error("Password should not be empty")
2155 return S.decryptPhrase(e, t)
2291 return O.decryptPhrase(e, t)
21562292 }
21572293 freeRecoveryPhrase(e) {
2158 S.free(e)
2294 O.free(e)
21592295 }
21602296 async storeRecoveryPhrase(t) {
21612297 this.onlineBoot.opened || (await this.onlineBoot.ready())
21622298 const i = await e.from({ mnemonic: t }),
21632299 s = await this.local.get("@local/identity"),
21642300 r = await this.local.get("@local/rooms", { roomKey: s.privateProfileKey })
2165 if (!v.equals(s.publicKey, i.identityPublicKey)) throw new Error("Wrong recovery phrase")
2301 if (!k.equals(s.publicKey, i.identityPublicKey)) throw new Error("Wrong recovery phrase")
21662302 if (!r.identity.discoveryCoreKey) {
21672303 if ((await this.internalCreateDiscoveryCore(i), this.discoveryCore.length > 0)) {
2168 const e = Math.floor((Date.now() - Ae) / 1e3)
2304 const e = Math.floor((Date.now() - qe) / 1e3)
21692305 await this.discoveryCore.truncate(this.discoveryCore.length, e)
21702306 }
21712307 ;(await this.discoveryCore.append({
……@@ -2194,7 +2330,7 @@ module.exports = class extends s {
21942330 async restoreIdentity(t, { create: i = !0 } = {}) {
21952331 this.onlineBoot.opened || (await this.onlineBoot.ready())
21962332 const [s] = await Promise.all([this.local.get("@local/identity"), e.from({ mnemonic: t })]),
2197 r = b.discoveryKey(s.privateProfileKey),
2333 r = w.discoveryKey(s.privateProfileKey),
21982334 o = this.tasks.restoreIdentity(r, {
21992335 mnemonic: t,
22002336 recover: !1 === i,
……@@ -2217,11 +2353,11 @@ module.exports = class extends s {
22172353 let o = null
22182354 if (r.identity) {
22192355 const i = await this.local.get("@local/identity")
2220 if (!v.equals(i.privateProfileKey, e))
2356 if (!k.equals(i.privateProfileKey, e))
22212357 throw new Error(
22222358 "Accepting an identity device join request on a room that is not your private profile",
22232359 )
2224 o = je(i, t, r.identity.devicePublicKey)
2360 o = He(i, t, r.identity.devicePublicKey)
22252361 }
22262362 await i.dispatch("@keet/accept-join-request", { deviceKey: t, identity: o })
22272363 } finally {
……@@ -2290,7 +2426,7 @@ module.exports = class extends s {
22902426 }
22912427 async _flushDHTCache() {
22922428 if (this.readOnly) return
2293 const e = this.swarm.dht.toArray({ limit: Oe })
2429 const e = this.swarm.dht.toArray({ limit: Me })
22942430 try {
22952431 await this._setCachedDHTNodes(e)
22962432 } catch (e) {
……@@ -2301,10 +2437,10 @@ module.exports = class extends s {
23012437 const e = (await this.local.get("@local/hyperdht")) || {}
23022438 return {
23032439 nodes: e.nodes || [],
2304 concurrency: e.concurrency || X.concurrency,
2305 maxWindow: e.maxWindow || X.maxWindow,
2306 randomPunchInterval: e.randomPunchInterval || X.randomPunchInterval,
2307 connectionKeepAlive: e.connectionKeepAlive || X.connectionKeepAlive,
2440 concurrency: e.concurrency || Z.concurrency,
2441 maxWindow: e.maxWindow || Z.maxWindow,
2442 randomPunchInterval: e.randomPunchInterval || Z.randomPunchInterval,
2443 connectionKeepAlive: e.connectionKeepAlive || Z.connectionKeepAlive,
23082444 }
23092445 }
23102446 async _setCachedDHTNodes(e) {
……@@ -2317,7 +2453,7 @@ module.exports = class extends s {
23172453 }
23182454 }
23192455 batch(e) {
2320 return new Ne(this, e)
2456 return new We(this, e)
23212457 }
23222458 async dispatch(e, t, i) {
23232459 this.opened || (await this.ready())
……@@ -2344,63 +2480,63 @@ module.exports = class extends s {
23442480 throw new Error("Must confirm self destruction")
23452481 ;(await this.ready(), await this.close())
23462482 const t = Math.random().toString(16).slice(2),
2347 i = P.join(this.dir, "gc", t)
2483 i = K.join(this.dir, "gc", t)
23482484 try {
2349 await k.promises.mkdir(i, { recursive: !0 })
2485 await P.promises.mkdir(i, { recursive: !0 })
23502486 } catch {}
23512487 for (const e of ["cores", "db", "cache", "app-references"])
23522488 try {
2353 await k.promises.rename(P.join(this.dir, e), P.join(i, e))
2489 await P.promises.rename(K.join(this.dir, e), K.join(i, e))
23542490 } catch {}
2355 await k.promises.rm(i, { recursive: !0 })
2491 await P.promises.rm(i, { recursive: !0 })
23562492 }
23572493 static from(e, t) {
2358 const i = K.migrate(e),
2494 const i = T.migrate(e),
23592495 s = i.active() || i.create({ name: "default" })
2360 i.gc({ delay: fe })
2496 i.gc({ delay: ke })
23612497 const r = new this(s.storage, {
23622498 ...t,
23632499 logout: async () => {
23642500 ;(i.remove(s),
23652501 await new Promise((e) => setTimeout(e, 1e3)),
23662502 await r.close(),
2367 i.gc({ delay: fe }))
2503 i.gc({ delay: ke }))
23682504 },
23692505 })
23702506 return { profiles: i, keet: r }
23712507 }
23722508 static registerRPC(e, t, i) {
2373 return new D(e, t, i)
2509 return new A(e, t, i)
23742510 }
23752511}
2376const We = {
2377 interrupt: Je,
2378 addWriter: Je,
2379 removeWriter: Je,
2380 ackWriter: Je,
2381 preferFastForward: Je,
2382 removeable: Ye,
2512const $e = {
2513 interrupt: ze,
2514 addWriter: ze,
2515 removeWriter: ze,
2516 ackWriter: ze,
2517 preferFastForward: ze,
2518 removeable: Qe,
23832519 createAnchor: (e, t) => ({ key: e, length: t }),
23842520}
2385function $e(e, t, i, s, r, o, { abi: a, trace: n, dryRun: l = !1 } = {}) {
2386 return new Q.OpContext(e, t, {
2521function Ge(e, t, i, s, r, o, { abi: a, trace: n, dryRun: l = !1 } = {}) {
2522 return new ee.OpContext(e, t, {
23872523 fork: r.core.fork,
23882524 writer: { key: i.from.key, seq: i.length - 1 },
23892525 genesis: 0 === r.core.length,
23902526 bootstrap: s.bootstrap,
23912527 router: o,
2392 hostcalls: l ? We : s,
2528 hostcalls: l ? $e : s,
23932529 dryRun: l,
23942530 abi: a,
23952531 trace: n,
23962532 })
23972533}
2398function je(t, i, s) {
2534function He(t, i, s) {
23992535 const r = e.attestDevice(s, t.deviceKeyPair, t.deviceProof),
24002536 o = e.attestData(i, t.deviceKeyPair, t.deviceProof)
24012537 return { privateProfileIdentity: { memberKey: t.publicKey, proof: o }, deviceProof: r }
24022538}
2403function Ge(e) {
2539function Je(e) {
24042540 return (
24052541 "@keet/add-chat-message" === e ||
24062542 "@keet/start-call" === e ||
……@@ -2409,24 +2545,24 @@ function Ge(e) {
24092545 "@keet/end-call" === e
24102546 )
24112547}
2412function He(e) {
2548function Ye(e) {
24132549 switch (e) {
24142550 case "nightly":
2415 return he.Nightly
2551 return ye.Nightly
24162552 case "internal":
2417 return he.Internal
2553 return ye.Internal
24182554 case "production":
2419 return he.Production
2555 return ye.Production
24202556 default:
2421 throw pe.INVALID_BUILD_TYPE()
2557 throw ge.INVALID_BUILD_TYPE()
24222558 }
24232559}
2424function Je() {}
2425function Ye() {
2560function ze() {}
2561function Qe() {
24262562 return !0
24272563}
2428function ze(e, t) {
2564function Xe(e, t) {
24292565 if (e.length !== t.length) return !1
2430 for (let i = 0; i < e.length; i++) if (!v.equals(e[i], t[i])) return !1
2566 for (let i = 0; i < e.length; i++) if (!k.equals(e[i], t[i])) return !1
24312567 return !0
24322568}
@holepunchto/keet-core/lib/api/v1/api.json +7 -0
……@@ -557,6 +557,13 @@
557557 {
558558 "name": "cancelDownload"
559559 },
560 {
561 "name": "readFileStream",
562 "subscription": true
563 },
564 {
565 "name": "saveToDisk"
566 },
560567 {
561568 "name": "clearFile"
562569 },
@holepunchto/keet-core/lib/api/v1/decode.js +34 -29
……@@ -1,7 +1,7 @@
11const e = require("hypercore-id-encoding"),
22 t = require("b4a")
33function n({ start: e, length: t, content: n, preview: r }) {
4 return (r?.file && (r.file = d(r.file)), { range: { start: e, length: t }, url: n, preview: r })
4 return (r?.file && (r.file = a(r.file)), { range: { start: e, length: t }, url: n, preview: r })
55}
66function r(t) {
77 if (!t) return null
……@@ -10,8 +10,8 @@ function r(t) {
1010}
1111function i(t) {
1212 if (!t) return null
13 const { id: n, key: r, path: i, version: l, size: d } = t
14 return { id: n, key: n ? e.decode(n) : r, path: i, version: l, size: d }
13 const { id: n, key: r, path: i, version: l, size: a } = t
14 return { id: n, key: n ? e.decode(n) : r, path: i, version: l, size: a }
1515}
1616function l(e) {
1717 return e
……@@ -23,14 +23,14 @@ function l(e) {
2323 }
2424 : {}
2525}
26function d(e) {
26function a(e) {
2727 return e && (e.pointer || e.preview)
2828 ? (e.metadata?.userdata && (e.metadata.userdata = t.from(e.metadata.userdata, "base64")),
29 { ...e, pointer: l(e.pointer), preview: a(e.preview) })
29 { ...e, pointer: l(e.pointer), preview: d(e.preview) })
3030 : null
3131}
32function a(e) {
33 return e ? { small: d(e.small), medium: d(e.medium), large: d(e.large) } : null
32function d(e) {
33 return e ? { small: a(e.small), medium: a(e.medium), large: a(e.large) } : null
3434}
3535function o(t, r) {
3636 const i =
……@@ -44,7 +44,7 @@ function o(t, r) {
4444 language: e.language,
4545 text: e.text,
4646 })) || null,
47 a = {
47 d = {
4848 httpLink: r?.httpLinks?.map(n),
4949 pearLink: r?.pearLinks?.map(n),
5050 mention: i,
……@@ -70,15 +70,15 @@ function o(t, r) {
7070 const c = !0 === r.forwarded,
7171 u = []
7272 for (const e of r?.files || []) {
73 const t = d(e)
73 const t = a(e)
7474 t && u.push(t)
7575 }
76 return { text: t, replyTo: s, forwarded: c, display: a, files: u, event: o }
76 return { text: t, replyTo: s, forwarded: c, display: d, files: u, event: o }
7777}
78function s({ gt: t, gte: n, lt: r, lte: i, limit: l, reverse: d } = {}) {
78function s({ gt: t, gte: n, lt: r, lte: i, limit: l, reverse: a } = {}) {
7979 return {
8080 limit: l,
81 reverse: d,
81 reverse: a,
8282 gt: t ? { key: e.decode(t) } : null,
8383 gte: n ? { key: e.decode(n) } : null,
8484 lt: r ? { key: e.decode(r) } : null,
……@@ -99,39 +99,44 @@ function c(e, t) {
9999 )
100100}
101101function u(
102 { reverse: e = !0, limit: t = 50, gt: n, gte: r, lt: i, lte: l, type: d } = {
102 { reverse: e = !0, limit: t = 50, gt: n, gte: r, lt: i, lte: l, type: a } = {
103103 reverse: !0,
104104 limit: 50,
105105 },
106106) {
107 const a = { reverse: e, limit: t }
107 const d = { reverse: e, limit: t }
108108 return (
109 Number.isInteger(n) && (a.gt = d ? { id: n, type: d } : { id: n }),
110 Number.isInteger(r) && (a.gte = d ? { id: r, type: d } : { id: r }),
111 Number.isInteger(i) && (a.lt = d ? { id: i, type: d } : { id: i }),
112 Number.isInteger(l) && (a.lte = d ? { id: l, type: d } : { id: l }),
113 d &&
114 (e && !a.lte && (a.lte = { type: d }),
115 e || a.gte || (a.gte = { type: d }),
116 a.lte && !a.gte && (a.gte = { type: d }),
117 a.gte && !a.lte && (a.lte = { type: d })),
118 a
109 Number.isInteger(n) && (d.gt = a ? { id: n, type: a } : { id: n }),
110 Number.isInteger(r) && (d.gte = a ? { id: r, type: a } : { id: r }),
111 Number.isInteger(i) && (d.lt = a ? { id: i, type: a } : { id: i }),
112 Number.isInteger(l) && (d.lte = a ? { id: l, type: a } : { id: l }),
113 a &&
114 (e && !d.lte && (d.lte = { type: a }),
115 e || d.gte || (d.gte = { type: a }),
116 d.lte && !d.gte && (d.gte = { type: a }),
117 d.gte && !d.lte && (d.lte = { type: a })),
118 d
119119 )
120120}
121121function g(t) {
122122 return { key: e.decode(t.deviceId), seq: t.seq }
123123}
124124function p(e) {
125 return e ? { ...e, avatar: a(e.avatar), blindPeers: y(e.blindPeers) } : null
125 return e ? { ...e, avatar: d(e.avatar), blindPeers: y(e.blindPeers) } : null
126126}
127127function m(e) {
128 return e ? { disableReadReceipts: !0 === e.disableReadReceipts } : null
128 return e
129 ? {
130 disableReadReceipts: !0 === e.disableReadReceipts,
131 stripAttachmentMetadata: !0 === e.stripAttachmentMetadata,
132 }
133 : null
129134}
130135function y(t) {
131136 return t && Array.isArray(t) ? t.map((t) => e.decode(t)) : []
132137}
133138function b({ memberId: t, blindWriters: n, displayName: r, avatar: i }) {
134 return { memberKey: e.decode(t), blindWriters: f(n), displayName: r, avatar: a(i) }
139 return { memberKey: e.decode(t), blindWriters: f(n), displayName: r, avatar: d(i) }
135140}
136141function f(t) {
137142 return t && Array.isArray(t)
……@@ -143,8 +148,8 @@ module.exports = {
143148 decodeChatRangeOptions: c,
144149 decodeKeyRangeOptions: s,
145150 decodeChatMessage: o,
146 decodeImageFile: a,
147 decodeFile: d,
151 decodeImageFile: d,
152 decodeFile: a,
148153 decodeMessageId: g,
149154 decodeConfig: p,
150155 decodeUserSettings: m,
@holepunchto/keet-core/lib/api/v1/encode.js +162 -133
……@@ -3,9 +3,9 @@ const e = require("hypercore-id-encoding"),
33 getCapabilitiesForRole: t,
44 MemberRoles: n,
55 DISPLAY_TYPES: a,
6 GENERIC_EVENTS: s,
6 GENERIC_EVENTS: r,
77 } = require("@holepunchto/keet-core-api"),
8 r = require("b4a"),
8 s = require("b4a"),
99 {
1010 contract: {
1111 hyperschema: { getEnum: i },
……@@ -32,22 +32,22 @@ function c(t) {
3232}
3333function m(t) {
3434 if (!t) return null
35 const { key: n, path: a, version: s, size: r } = t
36 return { id: e.encode(n), path: a, version: s, size: r }
35 const { key: n, path: a, version: r, size: s } = t
36 return { id: e.encode(n), path: a, version: r, size: s }
3737}
3838function u(e) {
3939 if (!e) return null
40 const { inlined: t, blob: n, externalBlob: a, externalDrive: s } = e
40 const { inlined: t, blob: n, externalBlob: a, externalDrive: r } = e
4141 return {
4242 blob: n,
43 inlined: t ? r.toString(t, "base64") : null,
43 inlined: t ? s.toString(t, "base64") : null,
4444 externalBlob: c(a),
45 externalDrive: m(s),
45 externalDrive: m(r),
4646 }
4747}
4848function p(e) {
4949 return e
50 ? (e.metadata?.userdata && (e.metadata.userdata = r.toString(e.metadata.userdata, "base64")),
50 ? (e.metadata?.userdata && (e.metadata.userdata = s.toString(e.metadata.userdata, "base64")),
5151 {
5252 hash: e.hash,
5353 entry: e.entry,
……@@ -75,55 +75,73 @@ function g(e) {
7575 return e ? { small: p(e.small), medium: p(e.medium), large: p(e.large) } : null
7676}
7777function f(t) {
78 if (!t) return null
79 const { memberJoined: n, memberLeft: a, memberRemoved: s } = t,
80 r = n?.memberKey || a?.memberKey || s?.memberKey,
81 i = r ? { memberId: e.encode(r) } : null
82 return { ...t, memberJoined: n && i, memberLeft: a && i, memberRemoved: s && i }
83}
84function b({ record: t, member: n, memberId: r, localRoom: i }) {
85 const { event: o, message: l, reactions: c = {}, labels: m = {} } = t,
86 u = f(o)
87 l && l.replyTo && (l.replyTo = d(l.replyTo))
88 let y = null
89 ;(u && u.memberJoined && (y = { type: s.MEMBER_JOINED, value: u.memberJoined.memberId }),
90 u && u.memberLeft && (y = { type: s.MEMBER_LEFT, value: u.memberLeft.memberId }),
91 u && u.titleChanged && (y = { type: s.ROOM_TITLE_CHANGED, value: u.titleChanged }),
92 u && u.callStarted && (y = { type: s.CALL_STARTED, value: null }),
93 u && u.callHangup && (y = { type: s.CALL_HANGUP, value: null }),
94 u && u.callMissed && (y = { type: s.CALL_MISSED, value: null }))
95 const g = j(t)
78 if (!t?.memberKey) return t
79 const { memberKey: n, ...a } = t
80 return { ...a, memberId: e.encode(n) }
81}
82function b(e) {
83 return e
84 ? {
85 ...e,
86 memberJoined: f(e.memberJoined),
87 memberLeft: f(e.memberLeft),
88 memberRemoved: f(e.memberRemoved),
89 }
90 : null
91}
92function v(e) {
93 if (e)
94 return e.memberJoined
95 ? { type: r.MEMBER_JOINED, value: e.memberJoined.memberId }
96 : e.memberLeft
97 ? { type: r.MEMBER_LEFT, value: e.memberLeft.memberId }
98 : e.titleChanged
99 ? { type: r.ROOM_TITLE_CHANGED, value: e.titleChanged }
100 : e.callStarted
101 ? { type: r.CALL_STARTED, value: null }
102 : e.callHangup
103 ? { type: r.CALL_HANGUP, value: null }
104 : e.callMissed
105 ? { type: r.CALL_MISSED, value: null }
106 : void 0
107}
108function I({ record: t, member: n, memberId: r, localRoom: s }) {
109 const { event: i, message: o, reactions: l = {}, labels: c = {} } = t,
110 m = b(i),
111 u = v(m),
112 y = U(t)
96113 return (
97 l && l.files && (l.files = l.files.map(p)),
114 o?.replyTo && (o.replyTo = d(o.replyTo)),
115 o?.files && (o.files = o.files.map(p)),
98116 {
99117 timestamp: t.timestamp,
100118 editedAt: t.editedAt,
101119 memberId: r || e.encode(n?.key || t.oplog.key),
102 member: n ? M(n, i?.selfMember?.key) : null,
120 member: n ? D(n, s?.selfMember?.key) : null,
103121 id: d(t.oplog),
104122 deleted: t.status.isDeleted,
105123 thread: t.id.thread,
106124 clock: t.id.index,
107 message: { ...l, generic: u },
108 reactions: c,
109 labels: m,
125 message: { ...o, generic: m },
126 reactions: l,
127 labels: c,
110128 read: t.read,
111129 seq: t.id.index,
112 event: y,
113 replyTo: l && l.replyTo ? l.replyTo : null,
114 forwarded: !0 === l?.forwarded,
130 event: u,
131 replyTo: o && o.replyTo ? o.replyTo : null,
132 forwarded: !0 === o?.forwarded,
115133 chat: {
116 text: l ? l.text : null,
134 text: o ? o.text : null,
117135 edited: t.status.isEdited,
118 display: g,
119 mentions: g.filter((e) => e.type === a.MENTION),
136 display: y,
137 mentions: y.filter((e) => e.type === a.MENTION),
120138 },
121 files: l && l.files ? l.files : [],
122 file: l && l.files ? l.files[0] : null,
139 files: o && o.files ? o.files : [],
140 file: o && o.files ? o.files[0] : null,
123141 }
124142 )
125143}
126function v(e) {
144function k(e) {
127145 return e
128146 ? {
129147 total: e.total,
……@@ -132,13 +150,13 @@ function v(e) {
132150 }
133151 : { total: 0, reactions: [] }
134152}
135function I(e) {
153function K(e) {
136154 return e.map((e) => e.reaction)
137155}
138function k(t) {
156function h(t) {
139157 return { sender: e.encode(t.sender), clock: t.clock, reaction: t.reaction }
140158}
141function K(t) {
159function A(t) {
142160 return {
143161 roomId: e.encode(t.roomKey),
144162 discoveryId: e.encode(t.discoveryKey),
……@@ -146,11 +164,11 @@ function K(t) {
146164 recipient: t.dm ? e.encode(t.dm) : null,
147165 }
148166}
149function h({ roomInfo: t, preferences: n, lastMessageMember: a, storageInfo: s, fileStats: r }) {
167function M({ roomInfo: t, preferences: n, lastMessageMember: a, storageInfo: r, fileStats: s }) {
150168 const i = t.dm?.length ? e.encode(t.dm[0]) : null
151169 let o = null
152170 return (
153 t.lastMessage && (o = { chat: b({ record: t.lastMessage, memberId: a?.memberId }), member: a }),
171 t.lastMessage && (o = { chat: I({ record: t.lastMessage, memberId: a?.memberId }), member: a }),
154172 {
155173 roomId: e.encode(t.roomKey),
156174 discoveryId: e.encode(t.discoveryKey),
……@@ -158,21 +176,21 @@ function h({ roomInfo: t, preferences: n, lastMessageMember: a, storageInfo: s,
158176 stats: t.stats,
159177 fork: t.fork,
160178 self: {
161 sentLength: s ? s.hints.remoteContiguousLength : 0,
179 sentLength: r ? r.hints.remoteContiguousLength : 0,
162180 deviceId: t.selfDevice ? e.encode(t.selfDevice.key) : null,
163 member: t.selfMember ? M(t.selfMember, t.selfMember.key) : null,
181 member: t.selfMember ? D(t.selfMember, t.selfMember.key) : null,
164182 },
165 digest: T(t.digest),
166 config: C(t.config, t.digest),
183 digest: N(t.digest),
184 config: S(t.config, t.digest),
167185 preferences: n,
168186 lastMessage: o,
169187 dmMemberId: i,
170 fileStats: r ? { total: r.total } : null,
171 activeCall: A(t.activeCall),
188 fileStats: s ? { total: s.total } : null,
189 activeCall: R(t.activeCall),
172190 }
173191 )
174192}
175function A(t) {
193function R(t) {
176194 return t
177195 ? {
178196 callId: e.encode(t.callKey),
……@@ -180,7 +198,7 @@ function A(t) {
180198 }
181199 : null
182200}
183function M(t, n) {
201function D(t, n) {
184202 return t
185203 ? {
186204 memberId: e.encode(t.key),
……@@ -189,16 +207,16 @@ function M(t, n) {
189207 status: t.status,
190208 displayName: t.profile.displayName,
191209 inactive: !t.status.isActive,
192 capabilities: Y(t.status),
210 capabilities: Q(t.status),
193211 avatar: g(t.profile.avatar),
194 local: !!n && r.equals(t.key, n),
212 local: !!n && s.equals(t.key, n),
195213 pushNotifications: !0,
196214 username: t.profile.username,
197215 canDM: !!t.profile.mailbox,
198216 }
199217 : null
200218}
201function R(t) {
219function E(t) {
202220 return {
203221 id: { memberId: e.encode(t.memberKey), roomId: e.encode(t.keys.key) },
204222 roomId: e.encode(t.keys.key),
……@@ -213,7 +231,7 @@ function R(t) {
213231 sentAt: t.sentAt,
214232 }
215233}
216function D(t) {
234function T(t) {
217235 const n = e.encode(t.id)
218236 return {
219237 id: n,
……@@ -223,24 +241,27 @@ function D(t) {
223241 expires: -1,
224242 }
225243}
226function E(t) {
244function L(t) {
227245 if (!t) return null
228246 const n = t.request,
229247 a = n.deviceKey,
230 s = n.device.profile.name,
231 r = n.identity.devicePublicKey
232 return { deviceName: s, deviceId: e.encode(a), identityDeviceId: e.encode(r) }
248 r = n.device.profile.name,
249 s = n.identity.devicePublicKey
250 return { deviceName: r, deviceId: e.encode(a), identityDeviceId: e.encode(s) }
233251}
234function T(e) {
252function N(e) {
235253 return { ...e }
236254}
237function L(t) {
255function w(t) {
238256 return t ? t.map(e.encode) : null
239257}
240function N(e) {
241 return { disableReadReceipts: e?.disableReadReceipts || !1 }
258function C(e) {
259 return {
260 disableReadReceipts: e?.disableReadReceipts || !1,
261 stripAttachmentMetadata: e?.stripAttachmentMetadata || !1,
262 }
242263}
243function w(e) {
264function x(e) {
244265 return {
245266 concurrency: e.concurrency,
246267 maxWindow: e.maxWindow,
……@@ -248,42 +269,45 @@ function w(e) {
248269 connectionKeepAlive: e.connectionKeepAlive,
249270 }
250271}
251function C(e, t, n = []) {
272function S(e, t, n = []) {
252273 return e
253274 ? {
254275 ...e,
255276 avatar: g(e.avatar),
256 roomType: V(t.settings.roomType),
277 roomType: X(t.settings.roomType),
257278 experimental: t.settings.isExperimental,
258279 locked: t.settings.isJoiningDisabled,
259280 frozen: t.settings.isAppendingDisabled,
260281 isMembershipEventsDisabled: t.settings.isMembershipEventsDisabled,
261282 pinnedMessages: n,
262283 canCall: String(!t.settings.isCallingDisabled),
263 blindPeers: L(e.blindPeers),
284 blindPeers: w(e.blindPeers),
264285 }
265286 : {}
266287}
267function x(t) {
268 return t
269 ? {
270 memberId: e.encode(t.attestation.memberKey),
271 displayName: t.profile.displayName,
272 username: t.profile.username,
273 avatar: g(t.profile.avatar),
274 contactInfo: r.toString(t.contactInfo, "base64"),
275 count: t.count,
276 }
277 : null
288function B(t) {
289 if (!t) return null
290 let n = null
291 return (
292 t.contactInfo && (n = s.toString(t.contactInfo, "base64")),
293 {
294 memberId: e.encode(t.attestation.memberKey),
295 displayName: t.profile.displayName,
296 username: t.profile.username,
297 avatar: g(t.profile.avatar),
298 count: t.count,
299 contactInfo: n,
300 }
301 )
278302}
279function S(t) {
303function O(t) {
280304 return t ? { username: t.username, memberId: t.memberKey ? e.encode(t.memberKey) : null } : null
281305}
282function B(t, n, a, s) {
283 let r = null
306function P(t, n, a, r) {
307 let s = null
284308 return (
285309 a &&
286 (r = {
310 (s = {
287311 id: e.encode(a.roomKey),
288312 status: {
289313 isAccepted: !!a && 0 === a.stats.members.pending,
……@@ -292,16 +316,21 @@ function B(t, n, a, s) {
292316 }),
293317 {
294318 memberId: t,
295 activeRoom: r,
296 pendingRequest: s ? R(s) : null,
319 activeRoom: s,
320 pendingRequest: r ? E(r) : null,
297321 contactStatus: { isBlocked: !!n?.status?.isBlocked },
298322 }
299323 )
300324}
301function O(t) {
302 return t ? { roomId: t.roomKey ? e.encode(t.roomKey) : null } : {}
325function _(t) {
326 return t
327 ? {
328 roomId: t.roomKey ? e.encode(t.roomKey) : null,
329 coreId: t.coreKey ? e.encode(t.coreKey) : null,
330 }
331 : {}
303332}
304function P(t) {
333function q(t) {
305334 return {
306335 code: t.code,
307336 message: t.message,
……@@ -310,10 +339,10 @@ function P(t) {
310339 isContractError: !0 === t.isContractError,
311340 isKeetError: !0 === t.isKeetError,
312341 roomId: t.roomKey ? e.encode(t.roomKey) : null,
313 details: O(t.details),
342 details: _(t.details),
314343 }
315344}
316function _(e, t, n) {
345function H(e, t, n) {
317346 const a = n?.displayName || ""
318347 return {
319348 id: e.messageId,
……@@ -330,13 +359,13 @@ function _(e, t, n) {
330359 userInfo: {
331360 roomKey: e.roomId,
332361 messageType: e.messageType,
333 isDmRoom: Q(t.roomType) === o.DirectMessage,
334 isBroadcast: Q(t.roomType) === o.Broadcast,
362 isDmRoom: Z(t.roomType) === o.DirectMessage,
363 isBroadcast: Z(t.roomType) === o.Broadcast,
335364 profileName: a,
336365 },
337366 }
338367}
339function q(t) {
368function J(t) {
340369 if (!t) return null
341370 const n = 1 === t.version
342371 return {
……@@ -345,28 +374,28 @@ function q(t) {
345374 discoveryId: n ? e.encode(t.discoveryKey) : null,
346375 createdAt: t.createdAt,
347376 endedAt: t.endedAt,
348 members: t.members ? t.members.map(H) : [],
377 members: t.members ? t.members.map(F) : [],
349378 }
350379}
351function H(t) {
380function F(t) {
352381 return {
353382 callId: e.encode(t.callKey),
354383 memberId: e.encode(t.memberKey),
355384 createdAt: t.createdAt,
356 devices: t.devices ? t.devices.map(J) : [],
385 devices: t.devices ? t.devices.map(j) : [],
357386 }
358387}
359function J(t) {
388function j(t) {
360389 return {
361390 callId: e.encode(t.callKey),
362391 memberId: e.encode(t.memberKey),
363392 deviceId: e.encode(t.deviceKey),
364393 swarmId: e.encode(t.swarmKey),
365394 createdAt: t.createdAt,
366 streams: t.streams ? t.streams.map(F) : [],
395 streams: t.streams ? t.streams.map(G) : [],
367396 }
368397}
369function F(t) {
398function G(t) {
370399 return {
371400 callId: e.encode(t.callKey),
372401 streamId: e.encode(t.streamKey),
……@@ -374,21 +403,21 @@ function F(t) {
374403 createdAt: t.createdAt,
375404 }
376405}
377function j(e) {
406function U(e) {
378407 if (!e?.message?.display) return []
379408 let t = []
380409 return (
381410 e.message.display.mention &&
382 ((e.message.display.mention = G(e.message.display.mention)),
411 ((e.message.display.mention = W(e.message.display.mention)),
383412 (t = t.concat(e.message.display.mention))),
384413 e.message.display.translation &&
385 ((e.message.display.translation = U(e.message.display.translation)),
414 ((e.message.display.translation = z(e.message.display.translation)),
386415 (t = t.concat(e.message.display.translation))),
387416 e.message.display.httpLink &&
388 ((e.message.display.httpLink = e.message.display.httpLink.map(z)),
417 ((e.message.display.httpLink = e.message.display.httpLink.map(V)),
389418 (t = t.concat(e.message.display.httpLink))),
390419 e.message.display.pearLink &&
391 ((e.message.display.pearLink = e.message.display.pearLink.map(W)),
420 ((e.message.display.pearLink = e.message.display.pearLink.map(Y)),
392421 (t = t.concat(e.message.display.pearLink))),
393422 e.message.display.bold &&
394423 ((e.message.display.bold = e.message.display.bold.map((e) => ({ ...e, type: a.BOLD }))),
……@@ -421,7 +450,7 @@ function j(e) {
421450 t
422451 )
423452}
424function G(t) {
453function W(t) {
425454 return Array.isArray(t)
426455 ? t.map((t) => ({
427456 type: a.MENTION,
……@@ -431,7 +460,7 @@ function G(t) {
431460 }))
432461 : []
433462}
434function U(e) {
463function z(e) {
435464 return Array.isArray(e)
436465 ? e.map((e) => ({
437466 type: a.TRANSLATION,
……@@ -442,10 +471,10 @@ function U(e) {
442471 }))
443472 : []
444473}
445function W(e) {
446 return { ...z(e), type: a.PEAR_LINK }
474function Y(e) {
475 return { ...V(e), type: a.PEAR_LINK }
447476}
448function z(e) {
477function V(e) {
449478 return (
450479 e?.preview?.file && (e.preview.file = p(e.preview.file)),
451480 {
……@@ -457,11 +486,11 @@ function z(e) {
457486 }
458487 )
459488}
460function Y(e) {
489function Q(e) {
461490 const a = e.isAdmin ? n.ADMIN : e.isModerator ? n.MODERATOR : n.PEER
462491 return t(a)
463492}
464function V(e) {
493function X(e) {
465494 switch (e) {
466495 case o.Default:
467496 return "0"
……@@ -473,7 +502,7 @@ function V(e) {
473502 throw new Error("Incompatible legacy room type:", e)
474503 }
475504}
476function Q(e) {
505function Z(e) {
477506 switch (e) {
478507 case "0":
479508 default:
……@@ -485,29 +514,29 @@ function Q(e) {
485514 }
486515}
487516module.exports = {
488 encodeReaction: k,
489 encodeIdentityPairingRequest: E,
490 encodePrivateRoomRecord: K,
491 encodeDmRequest: R,
492 encodeRoomRecord: h,
493 encodeMemberRecord: M,
494 encodeInvitationRecord: D,
495 encodeChatMessage: b,
517 encodeReaction: h,
518 encodeIdentityPairingRequest: L,
519 encodePrivateRoomRecord: A,
520 encodeDmRequest: E,
521 encodeRoomRecord: M,
522 encodeMemberRecord: D,
523 encodeInvitationRecord: T,
524 encodeChatMessage: I,
496525 encodeImageFile: g,
497526 encodeFile: p,
498527 encodeFileEntry: y,
499 encodeReactionsDigest: v,
500 encodeMyReactions: I,
501 encodeDigest: T,
502 encodeConfig: C,
503 encodeUserSettings: N,
528 encodeReactionsDigest: k,
529 encodeMyReactions: K,
530 encodeDigest: N,
531 encodeConfig: S,
532 encodeUserSettings: C,
504533 encodeMessageId: d,
505534 encodeDevice: l,
506 encodeUser: x,
507 encodeContactInfo: B,
508 encodeReservation: S,
509 encodeErrorRecord: P,
510 encodeNotification: _,
511 encodeHyperDHTSettings: w,
512 encodeCallRecord: q,
535 encodeUser: B,
536 encodeContactInfo: P,
537 encodeReservation: O,
538 encodeErrorRecord: q,
539 encodeNotification: H,
540 encodeHyperDHTSettings: x,
541 encodeCallRecord: J,
513542}
@holepunchto/keet-core/lib/api/v1/index.js +290 -243
……@@ -6,7 +6,7 @@ const e = require("path"),
66 r = require("safety-catch"),
77 n = require("b4a"),
88 a = require("uncaughts"),
9 { Readable: c, Transform: h, pipeline: d } = require("streamx"),
9 { Readable: c, Transform: d, pipeline: h } = require("streamx"),
1010 { Session: l, HeapSnapshot: u } = require("bare-inspector"),
1111 m = require("bare-fs"),
1212 p = require("process-top")(),
……@@ -23,8 +23,8 @@ const e = require("path"),
2323 {
2424 encodeRoomRecord: k,
2525 encodeConfig: _,
26 encodeDevice: w,
27 encodeMemberRecord: v,
26 encodeDevice: v,
27 encodeMemberRecord: w,
2828 encodeInvitationRecord: R,
2929 encodeFile: S,
3030 encodeIdentityPairingRequest: M,
……@@ -33,8 +33,8 @@ const e = require("path"),
3333 encodeUser: E,
3434 encodeContactInfo: K,
3535 encodeImageFile: D,
36 encodeReservation: q,
37 encodeFileEntry: P,
36 encodeReservation: P,
37 encodeFileEntry: q,
3838 encodeUserSettings: F,
3939 encodeErrorRecord: x,
4040 encodeNotification: A,
……@@ -58,51 +58,52 @@ const e = require("path"),
5858 X = y("@keet/label-type"),
5959 $ = y("@keet/member-label-type"),
6060 Q = y("@keet/system-settings-keys"),
61 { ContactRequestStatus: Z, RoomStatus: ee } = require("../../core/contract/identity/private.js"),
62 { Config: te, CONFIG_INDEX_TO_KEY: se } = require("../../core/contract/config"),
63 { Settings: ie } = require("../../core/contract/internal"),
61 Z = y("@keet-private-id/user-settings-key"),
62 { ContactRequestStatus: ee, RoomStatus: te } = require("../../core/contract/identity/private.js"),
63 { Config: se, CONFIG_INDEX_TO_KEY: ie } = require("../../core/contract/config"),
64 { Settings: oe } = require("../../core/contract/internal"),
6465 {
65 getChatMessages: oe,
66 getChatMessage: re,
67 getReactions: ne,
68 isDMRead: ae,
69 getCalls: ce,
66 getChatMessages: re,
67 getChatMessage: ne,
68 getReactions: ae,
69 isDMRead: ce,
70 getCalls: de,
7071 } = require("./helpers.js"),
7172 { MemberStatus: he } = require("../../core/contract/members/index.js"),
7273 {
73 MemberRoles: de,
74 DM_STATUSES: le,
75 isValidPreferenceKey: ue,
76 getPreferenceKeyName: me,
77 CHAT_MESSAGE_REPORT_COUNT: pe,
78 PREFERENCES: be,
79 GENERIC_EVENTS: ge,
74 MemberRoles: le,
75 DM_STATUSES: ue,
76 isValidPreferenceKey: me,
77 getPreferenceKeyName: pe,
78 CHAT_MESSAGE_REPORT_COUNT: be,
79 PREFERENCES: ge,
80 GENERIC_EVENTS: ye,
8081 } = require("@holepunchto/keet-core-api"),
81 { restoreAvatar: ye } = require("../../core/contract/avatars.js"),
82 { getMemberForDeviceKey: fe } = require("../../core/contract/query.js"),
83 ke = require("compact-encoding"),
84 { DEBUG_FLAG_INDEX_BY_KEY: _e, DHT_SETTINGS: we } = require("../../core/debug/debugging.js"),
85 ve = require("./inspector.js"),
86 { FEATURES: Re } = require("../../../schema/versions"),
87 Se = require("./calls.js"),
88 Me = f("@local/keet-state"),
89 Ie = 6e5,
90 Ce = 2e4,
91 Ee = "preferences_v1.json",
92 Ke = "keet",
93 De = "recent-rooms",
82 { restoreAvatar: fe } = require("../../core/contract/avatars.js"),
83 { getMemberForDeviceKey: ke } = require("../../core/contract/query.js"),
84 _e = require("compact-encoding"),
85 { DEBUG_FLAG_INDEX_BY_KEY: ve, DHT_SETTINGS: we } = require("../../core/debug/debugging.js"),
86 Re = require("./inspector.js"),
87 { FEATURES: Se } = require("../../../schema/versions"),
88 Me = require("./calls.js"),
89 Ie = f("@local/keet-state"),
90 Ce = 6e5,
91 Ee = 2e4,
92 Ke = "preferences_v1.json",
93 De = "keet",
94 Pe = "recent-rooms",
9495 qe = "favorite-rooms",
95 Pe = "dm-rooms",
96 Fe = "chat-changed",
97 xe = "identity",
98 Ae = "private-profile",
99 Be = "identity-pairing-requests",
100 Le = "migration-status",
101 Ue = "room-preferences",
102 Te = "unreads",
103 Ne = "errors",
104 Oe = "force-updates",
105 je = {
96 Fe = "dm-rooms",
97 xe = "chat-changed",
98 Ae = "identity",
99 Be = "private-profile",
100 Le = "identity-pairing-requests",
101 Ue = "migration-status",
102 Te = "room-preferences",
103 Ne = "unreads",
104 Oe = "errors",
105 je = "force-updates",
106 He = {
106107 "keet-core": require("../../../package.json").version,
107108 autobase: require("autobase/package.json").version,
108109 hypercore: require("hypercore/package.json").version,
……@@ -112,7 +113,7 @@ const e = require("path"),
112113 "keet-push": require("@holepunchto/keet-push/package.json").version,
113114 corestore: require("corestore/package.json").version,
114115 }
115class He {
116class Ve {
116117 constructor(e, t) {
117118 ;((this.api = e), (this.id = t), (this.subscriptions = []))
118119 }
……@@ -161,7 +162,7 @@ class He {
161162 )
162163 }
163164}
164class Ve {
165class Ge {
165166 constructor(e) {
166167 this.keet = e
167168 }
……@@ -234,13 +235,13 @@ class Ve {
234235 }
235236 }
236237}
237class Ge {
238class ze {
238239 constructor(e, { onerror: t = r } = {}) {
239240 ;((this.keet = e),
240 (this.context = new Ve(this.keet)),
241 (this.context = new Ge(this.keet)),
241242 (this._onerror = t),
242243 (this._subscriptions = new Map()),
243 (this._profileSubscriptions = new He(this, null, { isProfileSub: !0 })),
244 (this._profileSubscriptions = new Ve(this, null, { isProfileSub: !0 })),
244245 this.keet.on("room-interrupted", this._handleRoomInterrupted.bind(this)),
245246 this.keet.on("room-changed", this._handleRoomChanged.bind(this)),
246247 this.keet.on("identity-changed", this._handleIdentityChanged.bind(this)),
……@@ -421,6 +422,8 @@ class Ge {
421422 ])),
422423 (this.startDownload = this.context.create(this._startDownload.bind(this), ["files"])),
423424 (this.cancelDownload = this.context.create(this._cancelDownload.bind(this), ["files"])),
425 (this.readFileStream = this.context.create(this._readFileStream.bind(this), ["files"])),
426 (this.saveToDisk = this.context.create(this._saveToDisk.bind(this), ["files"])),
424427 (this.sendFile = this._timed(this._sendFile.bind(this))),
425428 (this.sendFiles = this._timed(this._sendFiles.bind(this))),
426429 (this.refreshFileLinks = this._timed(this._refreshFileLinks.bind(this))),
……@@ -485,6 +488,7 @@ class Ge {
485488 (this.updateConfig = this._timed(this._updateConfig.bind(this))),
486489 (this.disableMembershipEvents = this._timed(this._disableMembershipEvents.bind(this))),
487490 (this.enableMembershipEvents = this._timed(this._enableMembershipEvents.bind(this))),
491 (this.setRoomUnread = this._timed(this._setRoomUnread.bind(this))),
488492 (this.getLinkInfo = this._timed(this._getLinkInfo.bind(this))),
489493 (this.lookupUsername = this._timed(this._lookupUsername.bind(this))),
490494 (this.lookupUserByMemberId = this._timed(this._lookupUserByMemberId.bind(this))),
……@@ -522,32 +526,32 @@ class Ge {
522526 }
523527 _disableMembershipEvents(e) {
524528 return this.keet.dispatch(e, "@keet/update-system-settings", {
525 key: ie.IsMembershipEventsDisabled,
529 key: oe.IsMembershipEventsDisabled,
526530 settings: { isMembershipEventsDisabled: !0 },
527531 })
528532 }
529533 _enableMembershipEvents(e) {
530534 return this.keet.dispatch(e, "@keet/update-system-settings", {
531 key: ie.IsMembershipEventsDisabled,
535 key: oe.IsMembershipEventsDisabled,
532536 settings: { isMembershipEventsDisabled: !1 },
533537 })
534538 }
535 _addKeetSubscription(e = Ke, t) {
539 _addKeetSubscription(e = De, t) {
536540 return this._addRoomSubscription(e, t)
537541 }
538542 _addRoomSubscription(e, t, { isProfileSub: s = !1, _isRoomSub: i = !0 } = {}) {
539543 if (null === e && s) return this._profileSubscriptions.add(t)
540544 let o = this._subscriptions.get(e)
541 return (o || ((o = new He(this, e)), this._subscriptions.set(e, o)), o.add(t))
545 return (o || ((o = new Ve(this, e)), this._subscriptions.set(e, o)), o.add(t))
542546 }
543547 _refreshSubscriptionsById(e) {
544548 const t =
545 e === this.keet.privateProfile?.id ? this._subscriptions.get(Ae) : this._subscriptions.get(e)
549 e === this.keet.privateProfile?.id ? this._subscriptions.get(Be) : this._subscriptions.get(e)
546550 t && t.refresh()
547551 }
548552 _handleIdentityPairingRequest(e) {
549553 ;(this._identityPairingRequestsByDeviceId.set(s.encode(e.deviceKey), e),
550 this._refreshSubscriptionsById(Be))
554 this._refreshSubscriptionsById(Le))
551555 }
552556 _handleRoomInterrupted(e, { unsupportedABI: t, digest: s }) {
553557 const i = this._subscriptions.get(e)
……@@ -565,19 +569,19 @@ class Ge {
565569 }
566570 }
567571 _handleRecentRoomsChanged(...e) {
568 const t = this._subscriptions.get(De)
572 const t = this._subscriptions.get(Pe)
569573 t && t.push(e)
570574 }
571575 _handleDmRoomsChanged() {
572 const e = this._subscriptions.get(Pe)
576 const e = this._subscriptions.get(Fe)
573577 e && e.refresh()
574578 }
575579 _handleRoomPreferencesChanged(...e) {
576 const t = this._subscriptions.get(Ue)
580 const t = this._subscriptions.get(Te)
577581 t && t.push(e)
578582 }
579583 _handleUnreadAnchorsChanged() {
580 const e = this._subscriptions.get(Te)
584 const e = this._subscriptions.get(Ne)
581585 e && e.refresh()
582586 }
583587 _handleRoomSentMessageLengthChanged(e) {
……@@ -585,12 +589,12 @@ class Ge {
585589 t && t.refresh({ name: "room-info" })
586590 }
587591 _handleIdentityChanged() {
588 this._refreshSubscriptionsById(xe)
592 this._refreshSubscriptionsById(Ae)
589593 }
590594 async _handleChatChanged(...e) {
591595 try {
592596 this.keet.onlineBoot.opened || (await this.keet.onlineBoot.ready())
593 const t = this._subscriptions.get(Fe)
597 const t = this._subscriptions.get(xe)
594598 if (!t) return
595599 const [s, i] = e
596600 if (s === this.keet.privateProfile.id) return
……@@ -600,15 +604,15 @@ class Ge {
600604 }
601605 }
602606 _handleMigrationStatus(e) {
603 const t = this._subscriptions.get(Le)
607 const t = this._subscriptions.get(Ue)
604608 t && t.push(e)
605609 }
606610 _handleKeetError(e) {
607 const t = this._subscriptions.get(Ne)
611 const t = this._subscriptions.get(Oe)
608612 t && t.push(e)
609613 }
610614 _handleForceUpdate() {
611 const e = this._subscriptions.get(Oe)
615 const e = this._subscriptions.get(je)
612616 e && e.refresh()
613617 }
614618 _handleVerifiedRoomsChanged() {
……@@ -623,7 +627,7 @@ class Ge {
623627 t && t.push(e)
624628 }
625629 getVersion() {
626 return { buildType: this.keet.buildType, abi: this.keet.abi, modules: je }
630 return { buildType: this.keet.buildType, abi: this.keet.abi, modules: He }
627631 }
628632 async _getSystemDigest({ db: e }) {
629633 return await e.get("@keet/system-digest")
……@@ -649,7 +653,7 @@ class Ge {
649653 })
650654 }
651655 subscribeForceUpdates() {
652 return this._addKeetSubscription(Oe, {
656 return this._addKeetSubscription(je, {
653657 query: () => ({ showBanner: this.keet.shouldForceUpdate() }),
654658 })
655659 }
……@@ -703,8 +707,8 @@ class Ge {
703707 i.get("@keet-private-id/settings"),
704708 ]),
705709 a = []
706 for (const e of r) e.status.isActive && a.push({ ...w(e), confirmed: !0 })
707 const c = v(o.selfMember, o.selfMember.key)
710 for (const e of r) e.status.isActive && a.push({ ...v(e), confirmed: !0 })
711 const c = w(o.selfMember, o.selfMember.key)
708712 return (
709713 (c.hasDiscoveryKey = !!o.identity.discoveryCoreKey),
710714 (c.anonymous = !1),
……@@ -715,6 +719,7 @@ class Ge {
715719 (c.local = { deviceId: s.encode(t.deviceKey) }),
716720 (c.settings = F(n)),
717721 (c.isLoggedOut = o.selfDevice && !o.selfDevice.status.isActive),
722 (c.version = o?.digest.abi.version),
718723 c
719724 )
720725 }
……@@ -722,7 +727,7 @@ class Ge {
722727 return e.dispatch("@keet/remove-device", { key: s.decode(t) })
723728 }
724729 subscribeIdentity() {
725 return this._addKeetSubscription(xe, { query: () => this.getIdentity() })
730 return this._addKeetSubscription(Ae, { query: () => this.getIdentity() })
726731 }
727732 async _restoreIdentity(e, t = {}) {
728733 await this.keet.restoreIdentity(e, t)
……@@ -763,7 +768,7 @@ class Ge {
763768 return (this.keet.internalReleaseRoom(e), 0 === t.length ? null : M(t[0]))
764769 }
765770 subscribeIdentityPairingRequests(...e) {
766 return this._addKeetSubscription(xe, { query: () => this.getIdentityPairingRequest() })
771 return this._addKeetSubscription(Ae, { query: () => this.getIdentityPairingRequest() })
767772 }
768773 async _updateIdentityProfile({ displayName: e, avatar: t }) {
769774 await this.updateMember(e, t)
……@@ -780,6 +785,14 @@ class Ge {
780785 async _updateUserSettings(e, t) {
781786 this.keet.onlineBoot.opened || (await this.keet.onlineBoot.ready())
782787 const s = { [e]: t }
788 if (
789 e === Z.stripAttachmentMetadata &&
790 !(await this.keet.internalFeatureSupported(
791 this.keet.privateProfile.id,
792 Se.STRIP_ATTACHMENT_METADATA,
793 ))
794 )
795 throw new Error("Stripping attachment metadata not supported")
783796 return this.keet.privateProfile.dispatch("@keet-private-id/update-settings", {
784797 key: e,
785798 settings: z(s),
……@@ -800,7 +813,7 @@ class Ge {
800813 }
801814 }
802815 async _createRoom(e = {}) {
803 const t = await this.keet.createRoom(tt(e))
816 const t = await this.keet.createRoom(st(e))
804817 return s.encode(t)
805818 }
806819 _pairRoom(...e) {
……@@ -822,10 +835,10 @@ class Ge {
822835 }
823836 }
824837 subscribePendingRooms() {
825 return this._addKeetSubscription(xe, { query: () => this.getPendingRooms() })
838 return this._addKeetSubscription(Ae, { query: () => this.getPendingRooms() })
826839 }
827840 subscribePushNotificationChanges() {
828 return this._addKeetSubscription(Ue, {
841 return this._addKeetSubscription(Te, {
829842 map: function (e) {
830843 const [t, o, r] = e,
831844 n = r || i.discoveryKey(o)
……@@ -869,11 +882,8 @@ class Ge {
869882 return e.linearizer.size
870883 }
871884 async _resyncPrivateProfile() {
872 this.keet.onlineBoot.opened || (await this.keet.onlineBoot.ready())
873 const e = []
874 for await (const t of this.keet.privateProfile.db.find("@keet-private-id/rooms"))
875 (await this.keet.local.get("@local/rooms", { roomKey: t.roomKey })) || e.push(t)
876 for (const t of e) this.keet.tasks.joinRoomKeys(t.roomKey, { keys: t }).runBackground()
885 ;(this.keet.onlineBoot.opened || (await this.keet.onlineBoot.ready()),
886 await this.keet.internalResyncPrivateProfile())
877887 }
878888 bookmark(...e) {
879889 throw (console.log("bookmark", ...e), new Error("Missing required method: bookmark"))
……@@ -910,8 +920,8 @@ class Ge {
910920 const o = s.decode(t),
911921 r = await e.get("@local/rooms", { roomKey: o })
912922 if (!r) return null
913 let n = v(r.lastMember)
914 const [a, c, h] = await Promise.all([
923 let n = w(r.lastMember)
924 const [a, c, d] = await Promise.all([
915925 e.get("@local/room-preferences", { roomKey: r.roomKey }),
916926 r.lastMessage && !n
917927 ? e.get("@local/devices", { device: { key: r.lastMessage.oplog.key } })
……@@ -924,12 +934,17 @@ class Ge {
924934 (n = { id: s.encode(t.key), memberId: s.encode(t.key), displayName: t.profile.displayName })
925935 }
926936 if (r.lastMessage) {
927 const e = ae(r, r.lastMessage.id)
937 const e = ce(r, r.lastMessage.id)
928938 r.lastMessage.read = e
929939 }
930 const d = r.selfDevice ? i.discoveryKey(r.selfDevice.key) : null,
931 l = d ? await this.keet.storage.getInfo(d, { hints: !0, auth: !1, head: !1 }) : null,
932 u = k({ roomInfo: r, preferences: a, lastMessageMember: n, storageInfo: l, fileStats: h })
940 if (r.lastMessage?.event?.memberRemoved) {
941 const t = await e.get("@local/members", { key: r.lastMessage.event.memberRemoved.memberKey }),
942 s = t?.profile?.displayName
943 r.lastMessage.event.memberRemoved.displayName = s
944 }
945 const h = r.selfDevice ? i.discoveryKey(r.selfDevice.key) : null,
946 l = h ? await this.keet.storage.getInfo(h, { hints: !0, auth: !1, head: !1 }) : null,
947 u = k({ roomInfo: r, preferences: a, lastMessageMember: n, storageInfo: l, fileStats: d })
933948 return ((u.isVerified = this.keet.isRoomVerified(t)), u)
934949 }
935950 async _searchRooms({ local: e }) {
……@@ -956,7 +971,7 @@ class Ge {
956971 return e.get("@local/rooms", { discoveryKey: s.decode(t) })
957972 }
958973 subscribeRecentRooms(e) {
959 return this._addKeetSubscription(De, {
974 return this._addKeetSubscription(Pe, {
960975 map: function (e) {
961976 const [t, s, i] = e
962977 return { type: t, timestamp: s, roomId: i }
……@@ -977,13 +992,13 @@ class Ge {
977992 return this._addRoomSubscription(e, { query: () => this.getRoomInfo(e, t), name: "room-info" })
978993 }
979994 subscribeUnreadActivity(e = {}) {
980 return this._addKeetSubscription(Fe, {
995 return this._addKeetSubscription(xe, {
981996 map: ({ roomId: t, index: s }) =>
982997 t ? (e.includeLength || e.includeIndex ? { roomId: t, index: s } : { roomId: t }) : null,
983998 })
984999 }
9851000 subscribeErrors() {
986 return this._addKeetSubscription(Ne, { map: (e) => x(e) })
1001 return this._addKeetSubscription(Oe, { map: (e) => x(e) })
9871002 }
9881003 subscribeNotifications() {
9891004 const e = this.subscribeUnreadActivity({ includeIndex: !0 }),
……@@ -1008,11 +1023,11 @@ class Ge {
10081023 if (i !== this._callRingingRoomId) continue
10091024 const e = await this.getChatMessage(i, o)
10101025 if (this.keet.closing) return
1011 e?.event?.type === ge.CALL_HANGUP && (yield { type: ge.CALL_HANGUP })
1026 e?.event?.type === ye.CALL_HANGUP && (yield { type: ye.CALL_HANGUP })
10121027 }
10131028 if (this._processingNotifications) continue
10141029 if (this.keet.backendAPI.api.call.callIsActive) continue
1015 const e = await this.getRoomPreferences(i, be.IS_FULLY_MUTED)
1030 const e = await this.getRoomPreferences(i, ge.IS_FULLY_MUTED)
10161031 if (this.keet.closing) return
10171032 if (e || this._processingNotifications) continue
10181033 const [r, n, a] = await Promise.all([
……@@ -1021,23 +1036,23 @@ class Ge {
10211036 this.keet.local.get("@local/identity"),
10221037 ])
10231038 if (this.keet.closing) return
1024 if (!n || Math.abs(Date.now() - n.timestamp) > Ie) continue
1039 if (!n || Math.abs(Date.now() - n.timestamp) > Ce) continue
10251040 const c = await this.getBlockedMembers()
10261041 if (this.keet.closing) return
10271042 if (c.some((e) => e.memberId === n.memberId) || this._processingNotifications) continue
10281043 if (a && s.encode(a.publicKey) === n.memberId) continue
1029 const h = `${n.id.deviceId}/b${n.id.seq}`,
1030 d = t(n),
1044 const d = `${n.id.deviceId}/b${n.id.seq}`,
1045 h = t(n),
10311046 l = (n.files.length > 0 && n.files[0].metadata?.mimetype) || "",
10321047 u = await this.getMember(i, n.memberId)
10331048 if (this.keet.closing) return
10341049 const m = n.chat?.text || "",
1035 p = et(r.roomType) === W.DirectMessage
1036 if (!this._processingNotifications && (m || d)) {
1037 if (p && "call" === d) {
1038 if (Math.abs(Date.now() - n.timestamp) > Ce) continue
1050 p = tt(r.roomType) === W.DirectMessage
1051 if (!this._processingNotifications && (m || h)) {
1052 if (p && "call" === h) {
1053 if (Math.abs(Date.now() - n.timestamp) > Ee) continue
10391054 if (!(await this.getActiveCalls(i)).length) continue
1040 yield { type: ge.CALL_STARTED }
1055 yield { type: ye.CALL_STARTED }
10411056 }
10421057 const e = await this.getRoomInfo(i)
10431058 if (this.keet.closing) return
……@@ -1045,12 +1060,12 @@ class Ge {
10451060 s = n.message?.generic?.locationShared
10461061 yield A(
10471062 {
1048 messageId: h,
1063 messageId: d,
10491064 roomId: i,
10501065 avatar: t,
10511066 location: s,
10521067 messageText: m,
1053 messageType: d,
1068 messageType: h,
10541069 fileType: l,
10551070 },
10561071 r,
……@@ -1059,7 +1074,7 @@ class Ge {
10591074 }
10601075 }
10611076 function t(e) {
1062 return e.event?.type === ge.CALL_STARTED
1077 return e.event?.type === ye.CALL_STARTED
10631078 ? "call"
10641079 : e.files?.length > 0
10651080 ? "file"
……@@ -1068,8 +1083,19 @@ class Ge {
10681083 : ""
10691084 }
10701085 }
1071 setRoomUnread(...e) {
1072 throw (console.log("setRoomUnread", ...e), new Error("Missing required method: setRoomUnread"))
1086 async _setRoomUnread(e, t = !0) {
1087 this.keet.onlineBoot.opened || (await this.keet.onlineBoot.ready())
1088 const { privateProfileKey: i } = await this.keet.local.get("@local/identity"),
1089 o = await this.keet.local.get("@local/rooms", { roomKey: i })
1090 if (!o) return
1091 const { isFeatureSupported: r, FEATURES: n } = this.keet.versions
1092 if (!r(o.digest.abi.version, n.ROOM_MARK_UNREAD))
1093 throw new Error("Manual unread is not supported")
1094 await this.keet.privateProfile.dispatch("@keet-private-id/update-room-status", {
1095 roomKey: s.decode(e),
1096 key: te.IsUnread,
1097 status: { isUnread: t },
1098 })
10731099 }
10741100 bumpRoomPriority(...e) {
10751101 throw (
……@@ -1085,13 +1111,13 @@ class Ge {
10851111 }
10861112 async _getDevice({ db: e }, t) {
10871113 const s = await e.findOne("@keet/devices", O({ gte: t, lte: t }))
1088 return s ? w(s) : null
1114 return s ? v(s) : null
10891115 }
10901116 async _getDevices({ db: e }, t) {
1091 return (await e.find("@keet/devices", O(t)).toArray()).map((e) => w(e))
1117 return (await e.find("@keet/devices", O(t)).toArray()).map((e) => v(e))
10921118 }
10931119 async moveIndexer(e, t, i) {
1094 if (!(await this.keet.internalFeatureSupported(e, Re.MOVE_INDEXER)))
1120 if (!(await this.keet.internalFeatureSupported(e, Se.MOVE_INDEXER)))
10951121 throw new Error("Move indexer not supported")
10961122 const o = s.decode(t),
10971123 r = s.decode(i)
……@@ -1136,15 +1162,15 @@ class Ge {
11361162 return !!(await e.get("@keet/muted-members", { key: i }))
11371163 }
11381164 async _getMemberByDeviceId({ myKey: e, snapshot: t, blobsSnapshot: i }, o) {
1139 const r = await fe(t, s.decode(o))
1140 return r ? (await ye(i, r.profile.avatar), v(r, e)) : null
1165 const r = await ke(t, s.decode(o))
1166 return r ? (await fe(i, r.profile.avatar), w(r, e)) : null
11411167 }
11421168 async _getMemberBySwarmId({ myKey: e, snapshot: t, blobsSnapshot: i }, o) {
11431169 const r = s.decode(o),
11441170 n = await t.get("@keet/devices-by-swarm-key", { profile: { swarmKey: r } })
11451171 if (!n) return null
1146 const a = await fe(t, n.key)
1147 return a ? (await ye(i, a.profile.avatar), v(a, e)) : null
1172 const a = await ke(t, n.key)
1173 return a ? (await fe(i, a.profile.avatar), w(a, e)) : null
11481174 }
11491175 async _getMemberCount({ db: e }) {
11501176 const t = await e.get("@keet/threads", { id: 0 })
……@@ -1154,7 +1180,7 @@ class Ge {
11541180 const i = [],
11551181 o = s.decode(t),
11561182 r = { gte: { memberKey: o }, lte: { memberKey: o } }
1157 for await (const t of e.find("@keet/devices-by-member-key", r)) i.push(w(t))
1183 for await (const t of e.find("@keet/devices-by-member-key", r)) i.push(v(t))
11581184 return i
11591185 }
11601186 getCurrentDeviceId(e) {
……@@ -1168,12 +1194,12 @@ class Ge {
11681194 async _getMember({ roomId: e, myKey: t, base: i, snapshot: o, blobsSnapshot: r }, n, a = {}) {
11691195 const c = s.decode(n)
11701196 if (!0 === a.swarmId) return this.getMemberBySwarmId(e, n)
1171 const h = await o.get("@keet/members", { key: c })
1172 return h ? (await ye(r, h.profile.avatar), v(h, t)) : null
1197 const d = await o.get("@keet/members", { key: c })
1198 return d ? (await fe(r, d.profile.avatar), w(d, t)) : null
11731199 }
11741200 async _getActiveMember({ myKey: e, snapshot: t, blobsSnapshot: i }, o) {
11751201 const r = await t.get("@keet/active-members", { key: s.decode(o) })
1176 return r ? (await ye(i, r.profile.avatar), v(r, e)) : null
1202 return r ? (await fe(i, r.profile.avatar), w(r, e)) : null
11771203 }
11781204 async _removeMember(e, t) {
11791205 const i = s.decode(e),
……@@ -1186,19 +1212,19 @@ class Ge {
11861212 }
11871213 async _getMembers({ myKey: e, snapshot: t, blobsSnapshot: s }, i = {}) {
11881214 const o = await t.find("@keet/members", O(i)).toArray()
1189 return Promise.all(o.map(async (t) => (await ye(s, t.profile.avatar), v(t, e))))
1215 return Promise.all(o.map(async (t) => (await fe(s, t.profile.avatar), w(t, e))))
11901216 }
11911217 async _getActiveMembers({ myKey: e, snapshot: t, blobsSnapshot: s }, i = {}) {
11921218 const o = await t.find("@keet/active-members", O(i)).toArray()
1193 return Promise.all(o.map(async (t) => (await ye(s, t.profile.avatar), v(t, e))))
1219 return Promise.all(o.map(async (t) => (await fe(s, t.profile.avatar), w(t, e))))
11941220 }
11951221 async _getModerators({ myKey: e, snapshot: t, blobsSnapshot: s }, i = {}) {
11961222 const o = await t.find("@keet/moderators", O(i)).toArray()
1197 return Promise.all(o.map(async (t) => (await ye(s, t.profile.avatar), v(t, e))))
1223 return Promise.all(o.map(async (t) => (await fe(s, t.profile.avatar), w(t, e))))
11981224 }
11991225 async _waitUntilJoined({ roomKey: e, local: t }) {
12001226 const s = await t.get("@local/rooms", { roomKey: e })
1201 return s ? v(s.selfMember) : null
1227 return s ? w(s.selfMember) : null
12021228 }
12031229 getMemberForDevice(...e) {
12041230 throw (
……@@ -1230,14 +1256,14 @@ class Ge {
12301256 _changeMemberRole(e, { memberId: t, role: i }) {
12311257 return this.keet.dispatch(e, "@keet/change-member-role", {
12321258 key: s.decode(t),
1233 isAdmin: i === de.ADMIN,
1234 isModerator: i === de.ADMIN || i === de.MODERATOR,
1259 isAdmin: i === le.ADMIN,
1260 isModerator: i === le.ADMIN || i === le.MODERATOR,
12351261 })
12361262 }
12371263 async _getSearchMembers({ myKey: e, db: t, blobsSnapshot: s }, i, { limit: o = 50 } = {}) {
12381264 i = i.toLowerCase()
12391265 const r = await t.find("@keet/members-by-member-name", { gte: { name: i }, limit: o }).toArray()
1240 return (await Promise.all(r.map(async (t) => (await ye(s, t.profile.avatar), v(t, e))))).filter(
1266 return (await Promise.all(r.map(async (t) => (await fe(s, t.profile.avatar), w(t, e))))).filter(
12411267 (e) => e.name.startsWith(i),
12421268 )
12431269 }
……@@ -1266,7 +1292,7 @@ class Ge {
12661292 return K(i, r, n, a)
12671293 }
12681294 subscribeContactInfo(e) {
1269 return this._addRoomSubscription(Pe, {
1295 return this._addRoomSubscription(Fe, {
12701296 query: async () => {
12711297 const t = this.keet.local.snapshot()
12721298 try {
……@@ -1296,7 +1322,7 @@ class Ge {
12961322 }))
12971323 }
12981324 subscribeBlockedMembers() {
1299 return this._addRoomSubscription(Ae, { query: () => this.getBlockedMembers() })
1325 return this._addRoomSubscription(Be, { query: () => this.getBlockedMembers() })
13001326 }
13011327 getConnectedMembers(...e) {
13021328 throw (
……@@ -1308,41 +1334,41 @@ class Ge {
13081334 return (console.log("subscribeConnectedMembers", ...e), new c())
13091335 }
13101336 async _updateConfig(e, t, s) {
1311 const i = Ze(t)
1337 const i = et(t)
13121338 if (0 !== i) {
1313 const t = { [se[i - 1]]: s }
1339 const t = { [ie[i - 1]]: s }
13141340 await this.keet.dispatch(e, "@keet/update-room-config", { key: i, config: H(t) })
13151341 } else if ("roomType" === t) {
1316 const t = et(s)
1342 const t = tt(s)
13171343 if (0 === t) throw new Error("Invalid room type")
13181344 await this.keet.dispatch(e, "@keet/update-system-settings", {
1319 key: ie.RoomType,
1345 key: oe.RoomType,
13201346 settings: { roomType: t },
13211347 })
13221348 } else {
13231349 if ("canCall" !== t) throw new Error("Invalid config key")
13241350 await this.keet.dispatch(e, "@keet/update-system-settings", {
1325 key: ie.IsCallingDisabled,
1351 key: oe.IsCallingDisabled,
13261352 settings: { isCallingDisabled: "false" === s },
13271353 })
13281354 }
13291355 }
13301356 async _updateRoomPreferences({ profile: e }, t, i, o) {
1331 if (!ue(i)) throw new Error(`invalid preference key: ${i}`)
1357 if (!me(i)) throw new Error(`invalid preference key: ${i}`)
13321358 const r = s.decode(t)
13331359 await this.keet.dispatch(e.id, "@keet-private-id/update-room-status", {
13341360 roomKey: r,
1335 key: Qe(i),
1336 status: { [me(i)]: o },
1361 key: Ze(i),
1362 status: { [pe(i)]: o },
13371363 })
13381364 }
13391365 async _updateRoomSettings(e, t, i) {
13401366 if (
13411367 t === Q.IsAttachmentsDisabled &&
1342 !(await this.keet.internalFeatureSupported(e, Re.DISABLE_FILE_ATTACHMENTS))
1368 !(await this.keet.internalFeatureSupported(e, Se.DISABLE_FILE_ATTACHMENTS))
13431369 )
13441370 throw new Error("Disabling file attachments not supported")
1345 if (t === Q.IsLinksDisabled && !(await this.keet.internalFeatureSupported(e, Re.DISABLE_LINKS)))
1371 if (t === Q.IsLinksDisabled && !(await this.keet.internalFeatureSupported(e, Se.DISABLE_LINKS)))
13461372 throw new Error("Disabling links not supported")
13471373 const o = s.decode(e)
13481374 return this.keet.dispatch(o, "@keet/update-system-settings", { key: t, settings: i })
……@@ -1361,7 +1387,7 @@ class Ge {
13611387 r = await e.get("@local/room-preferences", { roomKey: o })
13621388 if (!r) return null
13631389 const { status: n } = r
1364 return ue(i) ? (i ? n[me(i)] : n) : null
1390 return me(i) ? (i ? n[pe(i)] : n) : null
13651391 }
13661392 async _getConfig({ roomKey: e, local: t }, s) {
13671393 const i = await t.get("@local/rooms", { roomKey: e })
……@@ -1378,13 +1404,13 @@ class Ge {
13781404 r = await this.keet.local.get("@local/rooms", { roomKey: o })
13791405 if (!r) return
13801406 const n = T(t, i),
1381 a = st(n),
1382 { isFeatureSupported: c, FEATURES: h } = this.keet.versions,
1383 d = c(r.digest.abi.version, h.MULTI_FILES)
1384 if (n.files.length && !d) throw new Error("multi files not supported")
1407 a = it(n),
1408 { isFeatureSupported: c, FEATURES: d } = this.keet.versions,
1409 h = c(r.digest.abi.version, d.MULTI_FILES)
1410 if (n.files.length && !h) throw new Error("multi files not supported")
13851411 const l = this.keet.batch(e)
13861412 return 0 !== (await l.dispatch("@keet/add-chat-message", { timestamp: Date.now(), message: n }))
1387 ? ((a.files.length || a.pearLink.length || a.httpLink.length) && (await it(l, a)),
1413 ? ((a.files.length || a.pearLink.length || a.httpLink.length) && (await ot(l, a)),
13881414 await l.flush())
13891415 : void 0
13901416 }
……@@ -1394,13 +1420,13 @@ class Ge {
13941420 if (!n) return
13951421 const a = N(t),
13961422 c = T(i, o),
1397 h = st(c),
1398 { isFeatureSupported: d, FEATURES: l } = this.keet.versions,
1399 u = d(n.digest.abi.version, l.MULTI_FILES)
1423 d = it(c),
1424 { isFeatureSupported: h, FEATURES: l } = this.keet.versions,
1425 u = h(n.digest.abi.version, l.MULTI_FILES)
14001426 if (c.files.length && !u) throw new Error("multi files not supported")
14011427 const m = this.keet.batch(e)
14021428 0 !== (await m.dispatch("@keet/update-chat-message", { oplog: a, message: c })) &&
1403 ((h.files.length || h.pearLink.length || h.httpLink.length) && (await it(m, h, a)),
1429 ((d.files.length || d.pearLink.length || d.httpLink.length) && (await ot(m, d, a)),
14041430 await m.flush())
14051431 }
14061432 async _removeChatMessage(
……@@ -1424,16 +1450,16 @@ class Ge {
14241450 a,
14251451 c,
14261452 ) {
1427 const [h, d] = await Promise.all([
1453 const [d, h] = await Promise.all([
14281454 this.keet.local.get("@local/rooms", { roomKey: e }),
14291455 this.keet.local.get("@local/rooms", { roomKey: s.decode(c) }),
14301456 ])
1431 if (!h || !d) return
1457 if (!d || !h) return
14321458 const { isFeatureSupported: l, FEATURES: u } = this.keet.versions
1433 if (!l(h.digest.abi.version, u.FORWARDED_MESSAGE))
1434 throw new Error("Message forwarding not supported")
14351459 if (!l(d.digest.abi.version, u.FORWARDED_MESSAGE))
14361460 throw new Error("Message forwarding not supported")
1461 if (!l(h.digest.abi.version, u.FORWARDED_MESSAGE))
1462 throw new Error("Message forwarding not supported")
14371463 const m = await o.get("@keet/chat-by-message-id", { oplog: N(a) })
14381464 if (!m) throw new Error("Source message not found")
14391465 if (!m.message.text) throw new Error("Source message has no text")
……@@ -1457,27 +1483,27 @@ class Ge {
14571483 return this.keet.dispatch(e, "@keet/pin-chat-message", { oplog: N(t), isPinned: !1 })
14581484 }
14591485 async startCall(e, t = {}) {
1460 const o = await this.keet.internalFeatureSupported(e, Re.CALLS_V2)
1486 const o = await this.keet.internalFeatureSupported(e, Se.CALLS_V2)
14611487 if ((this.keet.backendAPI.call.setSkipJoinLeave(o), !o)) return this.addCallStartedEvent(e)
14621488 const r = s.decode(e),
14631489 { version: n, callId: a, encryptionId: c } = t
14641490 if (!n) throw new Error("Call version required")
14651491 if (2 === n && !a) throw new Error("Calls v2 requires callId")
1466 const h = await this.keet.local.get("@local/rooms", { roomKey: r }),
1467 d = 2 === n ? s.decode(a) : i.randomBytes(32),
1468 l = c ? s.decode(c) : h.encryptionKey,
1469 u = 1 === n ? h.discoveryKey : null,
1492 const d = await this.keet.local.get("@local/rooms", { roomKey: r }),
1493 h = 2 === n ? s.decode(a) : i.randomBytes(32),
1494 l = c ? s.decode(c) : d.encryptionKey,
1495 u = 1 === n ? d.discoveryKey : null,
14701496 m = Array.isArray(t?.streams) ? t.streams : []
14711497 return this.keet.dispatch(e, "@keet/start-call", {
14721498 version: n,
1473 callKey: d,
1499 callKey: h,
14741500 encryptionKey: l,
14751501 discoveryKey: u,
14761502 streams: m.map((e) => s.decode(e)),
14771503 })
14781504 }
14791505 async joinCall(e, t, i = []) {
1480 const o = await this.keet.internalFeatureSupported(e, Re.CALLS_V2)
1506 const o = await this.keet.internalFeatureSupported(e, Se.CALLS_V2)
14811507 if ((this.keet.backendAPI.call.setSkipJoinLeave(o), o))
14821508 return this.keet.dispatch(e, "@keet/join-call", {
14831509 callKey: s.decode(t),
……@@ -1485,11 +1511,11 @@ class Ge {
14851511 })
14861512 }
14871513 async leaveCall(e, t) {
1488 if (await this.keet.internalFeatureSupported(e, Re.CALLS_V2))
1514 if (await this.keet.internalFeatureSupported(e, Se.CALLS_V2))
14891515 return this.keet.dispatch(e, "@keet/leave-call", { callKey: s.decode(t) })
14901516 }
14911517 async endCall(e, t) {
1492 if (!(await this.keet.internalFeatureSupported(e, Re.CALLS_V2))) {
1518 if (!(await this.keet.internalFeatureSupported(e, Se.CALLS_V2))) {
14931519 const t = s.decode(e)
14941520 if (!(await this.keet.local.get("@local/rooms", { roomKey: t })).dm) return
14951521 return this.addCallHangupEvent(e)
……@@ -1497,7 +1523,7 @@ class Ge {
14971523 return this.keet.dispatch(e, "@keet/end-call", { callKey: s.decode(t) })
14981524 }
14991525 async addCallStream(e, t, i) {
1500 if (!(await this.keet.internalFeatureSupported(e, Re.CALLS_V2)))
1526 if (!(await this.keet.internalFeatureSupported(e, Se.CALLS_V2)))
15011527 throw new Error("Calls v2 is not supported")
15021528 return this.keet.dispatch(e, "@keet/add-call-stream", {
15031529 callKey: s.decode(t),
……@@ -1505,7 +1531,7 @@ class Ge {
15051531 })
15061532 }
15071533 async removeCallStream(e, t, i) {
1508 if (!(await this.keet.internalFeatureSupported(e, Re.CALLS_V2)))
1534 if (!(await this.keet.internalFeatureSupported(e, Se.CALLS_V2)))
15091535 throw new Error("Calls v2 is not supported")
15101536 return this.keet.dispatch(e, "@keet/remove-call-stream", {
15111537 callKey: s.decode(t),
……@@ -1513,10 +1539,10 @@ class Ge {
15131539 })
15141540 }
15151541 async _getActiveCalls({ snapshot: e }) {
1516 return ce(e, "@keet/active-calls-by-timestamp")
1542 return de(e, "@keet/active-calls-by-timestamp")
15171543 }
15181544 async _getCalls({ snapshot: e }) {
1519 return ce(e, "@keet/calls-by-timestamp")
1545 return de(e, "@keet/calls-by-timestamp")
15201546 }
15211547 subscribeActiveCalls(e, ...t) {
15221548 return this._addRoomSubscription(e, { query: () => this.getActiveCalls(e, ...t) })
……@@ -1554,7 +1580,7 @@ class Ge {
15541580 }
15551581 async _getChatMessage({ roomKey: e, local: t, snapshot: s, blobsSnapshot: i, files: o }, r) {
15561582 return (
1557 await oe(
1583 await re(
15581584 async function () {
15591585 const t = U(e, { gte: r, lte: r })
15601586 return await s.findOne("@keet/chat", t)
……@@ -1569,7 +1595,7 @@ class Ge {
15691595 }
15701596 async _getChatMessageById({ roomKey: e, local: t, snapshot: s, blobsSnapshot: i, files: o }, r) {
15711597 return (
1572 await oe(
1598 await re(
15731599 async function () {
15741600 return await s.get("@keet/chat-by-message-id", { oplog: N(r) })
15751601 },
……@@ -1582,7 +1608,7 @@ class Ge {
15821608 )[0]
15831609 }
15841610 async _getChatMessages({ roomKey: e, local: t, snapshot: s, blobsSnapshot: i, files: o }, r) {
1585 return await oe(
1611 return await re(
15861612 async function () {
15871613 const t = U(e, r)
15881614 return await s.find("@keet/chat", t).toArray()
……@@ -1598,7 +1624,7 @@ class Ge {
15981624 { roomKey: e, local: t, snapshot: s, blobsSnapshot: i, files: o },
15991625 r,
16001626 ) {
1601 return await oe(
1627 return await re(
16021628 async function () {
16031629 return await s.find("@keet/pinned-chat-messages", r).toArray()
16041630 },
……@@ -1639,19 +1665,19 @@ class Ge {
16391665 { limit: a = 1e3, reverse: c = !0 } = {},
16401666 ) {
16411667 if (!n || !n.length) return []
1642 const h = await s.get("@local/rooms", { roomKey: t })
1643 if (!h) return []
1668 const d = await s.get("@local/rooms", { roomKey: t })
1669 if (!d) return []
16441670 if (!(n = n.map((e) => e.replace(/\s/g, "").toLowerCase()).filter((e) => e)).length) return []
1645 const d = []
1671 const h = []
16461672 for await (const s of e.find("@keet/chat", { limit: a, reverse: c })) {
16471673 if (!s.message?.text) continue
16481674 const a = s.message.text.replace(/\s/g, "").toLowerCase()
16491675 if (n.every((e) => a.indexOf(e) > -1)) {
1650 const n = re(t, e, i, h, o, s)
1651 ;(n.catch(r), d.push(n))
1676 const n = ne(t, e, i, d, o, s)
1677 ;(n.catch(r), h.push(n))
16521678 }
16531679 }
1654 return Promise.all(d)
1680 return Promise.all(h)
16551681 }
16561682 createChatSearchStream(e, t, s) {
16571683 return c.from(this._createChatSearchGenerator(e, t, s))
……@@ -1665,8 +1691,8 @@ class Ge {
16651691 const a = this.keet.internalOpenExistingRoom(r)
16661692 await a.ready()
16671693 const c = a.db.snapshot(),
1668 h = a.blobs.snapshot(),
1669 d = this.keet.local.snapshot(),
1694 d = a.blobs.snapshot(),
1695 h = this.keet.local.snapshot(),
16701696 l = this.keet.files,
16711697 u = c.find("@keet/chat", { limit: i, reverse: o })
16721698 try {
……@@ -1677,21 +1703,35 @@ class Ge {
16771703 } catch (e) {
16781704 this.keet.onerror(e)
16791705 } finally {
1680 ;(await d.close(), await c.close(), await h.close(), this.keet.internalReleaseRoom(a))
1706 ;(await h.close(), await c.close(), await d.close(), this.keet.internalReleaseRoom(a))
16811707 }
16821708 async function m(e) {
1683 if (!e.message?.text) return
1684 const i = e.message.text.replace(/\s/g, "").toLowerCase()
1685 if (!t.every((e) => i.indexOf(e) > -1)) return
1686 const o = await re(r, c, h, n, l, e)
1687 if (o.labels.flagged || o.labels.flags >= pe) return
1709 const t = p(e.message?.text),
1710 i = !!e.message?.files.length
1711 if (!i && !b(t)) return
1712 const o = await ne(r, c, d, n, l, e)
1713 if (
1714 i &&
1715 !b(t) &&
1716 !(function (e) {
1717 return e.files.some((e) => b(p(e.metadata?.name)))
1718 })(o)
1719 )
1720 return
1721 if (o.labels.flagged || o.labels.flags >= be) return
16881722 const a = s.decode(o.memberId)
1689 return (await d.get("@local/blocked-contacts", { memberKey: a })) ||
1723 return (await h.get("@local/blocked-contacts", { memberKey: a })) ||
16901724 (await c.get("@keet/muted-members", { key: a })) ||
16911725 o.reactions.digest.reactions.find((e) => "⚠️" === e.text)
16921726 ? void 0
16931727 : o
16941728 }
1729 function p(e) {
1730 return e ? e.replace(/\s/g, "").toLowerCase() : ""
1731 }
1732 function b(e) {
1733 return !!e && t.every((t) => e.indexOf(t) > -1)
1734 }
16951735 }
16961736 _sendDMFromContact(e, { message: t = null } = {}) {
16971737 return this.keet.sendContactRequestFromContact(e, { message: t })
……@@ -1711,7 +1751,7 @@ class Ge {
17111751 return this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status", {
17121752 memberKey: s.decode(e),
17131753 roomKey: s.decode(t),
1714 key: Z.IsSeen,
1754 key: ee.IsSeen,
17151755 status: { isSeen: o },
17161756 })
17171757 }
……@@ -1719,15 +1759,15 @@ class Ge {
17191759 if (!e) return []
17201760 const i =
17211761 {
1722 [le.ACCEPTED]: "@keet-private-id/accepted-contact-requests-v2",
1723 [le.REJECTED]: "@keet-private-id/rejected-contact-requests-v2",
1724 [le.PENDING]: "@keet-private-id/pending-contact-requests-v2",
1725 [le.DISCARDED]: "@keet-private-id/discarded-contact-requests-v2",
1762 [ue.ACCEPTED]: "@keet-private-id/accepted-contact-requests-v2",
1763 [ue.REJECTED]: "@keet-private-id/rejected-contact-requests-v2",
1764 [ue.PENDING]: "@keet-private-id/pending-contact-requests-v2",
1765 [ue.DISCARDED]: "@keet-private-id/discarded-contact-requests-v2",
17261766 }[t] || "@keet-private-id/pending-contact-requests-v2"
17271767 return (await e.find(i, { reverse: s }).toArray()).map(I)
17281768 }
17291769 subscribeDmRequestsByStatus(e, t = {}) {
1730 return this._addRoomSubscription(Ae, { query: () => this.getDmRequestsByStatus(e, t) })
1770 return this._addRoomSubscription(Be, { query: () => this.getDmRequestsByStatus(e, t) })
17311771 }
17321772 async _getPrivateMailboxRecords({ profile: e }, t = {}) {
17331773 console.warn("Deprecated: getPrivateMailboxRecords")
……@@ -1767,7 +1807,7 @@ class Ge {
17671807 this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status", {
17681808 memberKey: s.decode(e),
17691809 roomKey: s.decode(t),
1770 key: Z.IsAccepted,
1810 key: ee.IsAccepted,
17711811 status: { isAccepted: !0 },
17721812 })
17731813 )
……@@ -1778,7 +1818,7 @@ class Ge {
17781818 this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status", {
17791819 memberKey: s.decode(e),
17801820 roomKey: s.decode(t),
1781 key: Z.IsRejected,
1821 key: ee.IsRejected,
17821822 status: { isRejected: !0 },
17831823 })
17841824 )
……@@ -1789,7 +1829,7 @@ class Ge {
17891829 this.keet.privateProfile.dispatch("@keet-private-id/update-contact-request-status", {
17901830 memberKey: s.decode(e),
17911831 roomKey: s.decode(t),
1792 key: Z.IsDiscarded,
1832 key: ee.IsDiscarded,
17931833 status: { isDiscarded: !0 },
17941834 })
17951835 )
……@@ -1821,7 +1861,7 @@ class Ge {
18211861 }
18221862 async _getReactions({ roomKey: e, snapshot: t, local: s }, i) {
18231863 const o = N(i)
1824 return ne({ roomKey: e, snapshot: t, local: s, oplog: o })
1864 return ae({ roomKey: e, snapshot: t, local: s, oplog: o })
18251865 }
18261866 subscribeReactions(e, t) {
18271867 return this._addRoomSubscription(e, { query: () => this.getReactions(e, t) })
……@@ -1866,12 +1906,12 @@ class Ge {
18661906 limit: n <= 50 ? n : 50,
18671907 reverse: !0,
18681908 }),
1869 h = []
1870 for await (const { id: e } of c) h.push(d(e))
1871 return await Promise.all(h)
1872 async function d(t) {
1909 d = []
1910 for await (const { id: e } of c) d.push(h(e))
1911 return await Promise.all(d)
1912 async function h(t) {
18731913 const r = await s.findOne("@keet/chat", { gte: { id: t }, lte: { id: t } })
1874 return re(e, s, i, a, o, r)
1914 return ne(e, s, i, a, o, r)
18751915 }
18761916 }
18771917 _addChatReport(e, t) {
……@@ -1898,9 +1938,9 @@ class Ge {
18981938 }
18991939 subscribeAddFile(e, t, i) {
19001940 const o = s.decode(e)
1901 return d(
1941 return h(
19021942 this.keet.files.subscribeAddFile(o, t, i),
1903 new h({
1943 new d({
19041944 transform(e, t) {
19051945 t(null, { ...e, result: S(e.result) })
19061946 },
……@@ -1979,14 +2019,14 @@ class Ge {
19792019 }
19802020 async _getFileEntry({ roomKey: e, files: t }, s) {
19812021 const i = await t.getFileEntry(e, j(s))
1982 return P(i)
2022 return q(i)
19832023 }
19842024 async _getLocalFiles({ roomKey: e, files: t, blobsSnapshot: s }) {
19852025 const i = await t.getLocalFiles(e)
19862026 return Promise.all(
19872027 i.map(async (i) => {
19882028 const o = await t.getFileEntryWithPreview(e, i.file, { loadBlob: (e) => s.get(e) })
1989 return { ...S(o.file), entry: P(o) }
2029 return { ...S(o.file), entry: q(o) }
19902030 }),
19912031 )
19922032 }
……@@ -2000,7 +2040,7 @@ class Ge {
20002040 ...S(r.file),
20012041 id: i.id,
20022042 messageId: { deviceId: s.encode(i.oplog.key), seq: i.oplog.seq },
2003 entry: P(r),
2043 entry: q(r),
20042044 }
20052045 }),
20062046 )
……@@ -2011,6 +2051,12 @@ class Ge {
20112051 _cancelDownload({ roomKey: e, files: t }, s) {
20122052 return t.cancelDownload(e, s)
20132053 }
2054 _readFileStream({ roomKey: e, files: t }, s) {
2055 return t.readFileStream(e, j(s))
2056 }
2057 _saveToDisk({ roomKey: e, files: t }, s, i) {
2058 return t.saveToDisk(e, j(s), i)
2059 }
20142060 async _clearFile({ roomId: e, roomKey: t, files: s }, i) {
20152061 ;(i.preview?.large?.pointer?.externalBlob && (await s.clearFile(t, j(i.preview.large))),
20162062 await s.clearFile(t, j(i)),
……@@ -2035,7 +2081,7 @@ class Ge {
20352081 }
20362082 getStats() {
20372083 return {
2038 suspended: this.keet.state === Me.SUSPEND,
2084 suspended: this.keet.state === Ie.SUSPEND,
20392085 connections: this.keet.swarm.connections.size,
20402086 openRooms: this.keet.rooms.size,
20412087 openCores: this.keet.store.cores.size,
……@@ -2089,18 +2135,18 @@ class Ge {
20892135 i = await this.keet.userRegistry.getReservationsByKey(t)
20902136 if (!i || !i.length) return null
20912137 const o = i[0]
2092 return q(o)
2138 return P(o)
20932139 }
20942140 subscribeUsername() {
20952141 const e = this.keet.userRegistry.subscribeUsername()
2096 return d(
2142 return h(
20972143 e,
2098 new h({
2144 new d({
20992145 transform(e, t) {
21002146 if (!e) return t(null)
21012147 t(null, {
21022148 status: e.status,
2103 reservation: q(e.reservation),
2149 reservation: P(e.reservation),
21042150 record: E(e.record),
21052151 error: e.error,
21062152 })
……@@ -2112,7 +2158,7 @@ class Ge {
21122158 return this.keet.userRegistry.isAvailable(e)
21132159 }
21142160 subscribeSystemUpdateRequest() {
2115 return this._addKeetSubscription(Le, {
2161 return this._addKeetSubscription(Ue, {
21162162 query: () => this.keet.migrationStatus || { remaining: 0 },
21172163 })
21182164 }
……@@ -2130,7 +2176,7 @@ class Ge {
21302176 return e?.flags || []
21312177 }
21322178 async updateDebugFlag(e, t) {
2133 const s = _e.get(e)
2179 const s = ve.get(e)
21342180 if (!(s >= 0)) return
21352181 const i = await this.keet.internalEnterLocalTransaction()
21362182 try {
……@@ -2141,9 +2187,9 @@ class Ge {
21412187 }
21422188 }
21432189 createErrorStream() {
2144 return d(
2190 return h(
21452191 this.keet.local.find("@local/errors"),
2146 new h({
2192 new d({
21472193 transform(e, t) {
21482194 t(null, x(e))
21492195 },
……@@ -2208,7 +2254,7 @@ class Ge {
22082254 return this.keet.unreads.get(t)
22092255 }
22102256 _subscribeUnreadAnchor(e) {
2211 return this._addKeetSubscription(Te, { query: () => this.getUnreadAnchor(e) })
2257 return this._addKeetSubscription(Ne, { query: () => this.getUnreadAnchor(e) })
22122258 }
22132259 async _setRoomFavorite(e, t = !0) {
22142260 this.keet.onlineBoot.opened || (await this.keet.onlineBoot.ready())
……@@ -2220,12 +2266,12 @@ class Ge {
22202266 throw new Error("Favorite rooms is not supported")
22212267 await this.keet.privateProfile.dispatch("@keet-private-id/update-room-status", {
22222268 roomKey: s.decode(e),
2223 key: ee.IsFavorite,
2269 key: te.IsFavorite,
22242270 status: { isFavorite: t },
22252271 })
22262272 }
22272273}
2228class ze {
2274class Je {
22292275 constructor(e) {
22302276 this.keet = e
22312277 }
……@@ -2233,9 +2279,9 @@ class ze {
22332279 return (await this.keet.ready(), s.encode(this.keet.swarm.keyPair.publicKey))
22342280 }
22352281}
2236class Je {
2282class We {
22372283 constructor(t) {
2238 ;((this.keet = t), (this.preferences = new b(e.join(t.dir, Ee))), (this._subs = []))
2284 ;((this.keet = t), (this.preferences = new b(e.join(t.dir, Ke))), (this._subs = []))
22392285 }
22402286 async _bump() {
22412287 const e = await this.preferences.list()
……@@ -2267,7 +2313,7 @@ class Je {
22672313 return (this._subs.push(t), t)
22682314 }
22692315}
2270class We {
2316class Ye {
22712317 constructor(e, { onerror: t = r } = {}) {
22722318 ;((this.keet = e),
22732319 (this._status = null),
……@@ -2340,7 +2386,7 @@ class We {
23402386 }
23412387 }
23422388}
2343class Ye {
2389class Xe {
23442390 constructor() {
23452391 ;((this.subscriptions = []),
23462392 (this._handleError = this._handleError.bind(this)),
……@@ -2363,9 +2409,9 @@ class Ye {
23632409 return (this.subscriptions.push(s), s)
23642410 }
23652411}
2366class Xe {
2412class $e {
23672413 constructor(e) {
2368 ;((this.keet = e), (this.inspector = new ve()))
2414 ;((this.keet = e), (this.inspector = new Re()))
23692415 }
23702416 _getCurrentRoom() {
23712417 let e = null
……@@ -2391,9 +2437,10 @@ class Xe {
23912437 hash(e) {
23922438 return i.hash(e)
23932439 }
2394 generateSyntheticError(e) {
2395 if (!e) throw new Error("KEET_CORE_ERROR_UNHANDLED")
2396 this.keet.onerror(new Error("KEET_CORE_ERROR_HANDLED"))
2440 generateSyntheticError(e, t = {}) {
2441 const s = new Error(t.message ?? t.code ?? "KEET_SYNTHETIC_ERROR")
2442 if (((s.code = t.code ?? s.message), Object.assign(s, t), !e)) throw s
2443 this.keet.onerror(s)
23972444 }
23982445 async heapSnapshot(
23992446 e = "/tmp/keet-heapsnapshot-" + Bare.pid + "." + Date.now() + ".heapsnapshot",
……@@ -2410,44 +2457,44 @@ class Xe {
24102457 await this.keet.unreads.reset()
24112458 }
24122459}
2413class $e {
2460class Qe {
24142461 constructor(e) {
24152462 ;((this._rpcClient = e.rpcClient), (this.keet = e))
24162463 }
24172464 send(e) {
24182465 if (this.keet.buildType === J.Production)
24192466 return this._rpcClient.makeRequest(this.keet.config.services.feedback, "send", e, {
2420 requestEncoding: ke.json,
2467 requestEncoding: _e.json,
24212468 })
24222469 }
24232470}
2424function Qe(e) {
2471function Ze(e) {
24252472 switch (e) {
24262473 case 1:
2427 return ee.IsFullyMuted
2474 return te.IsFullyMuted
24282475 case 2:
2429 return ee.IsMentionsOnlyMuted
2476 return te.IsMentionsOnlyMuted
24302477 default:
24312478 return 0
24322479 }
24332480}
2434function Ze(e) {
2481function et(e) {
24352482 switch (e) {
24362483 case "title":
2437 return te.Title
2484 return se.Title
24382485 case "avatar":
2439 return te.Avatar
2486 return se.Avatar
24402487 case "description":
2441 return te.Description
2488 return se.Description
24422489 case "supportedLanguages":
2443 return te.SupportedLanguages
2490 return se.SupportedLanguages
24442491 case "blindPeers":
2445 return te.BlindPeers
2492 return se.BlindPeers
24462493 default:
24472494 return 0
24482495 }
24492496}
2450function et(e) {
2497function tt(e) {
24512498 switch (e) {
24522499 case "0":
24532500 default:
……@@ -2458,16 +2505,16 @@ function et(e) {
24582505 return W.DirectMessage
24592506 }
24602507}
2461function tt(e = {}) {
2508function st(e = {}) {
24622509 return {
24632510 config: { title: e.config?.title, description: e.config?.description },
24642511 settings: {
2465 roomType: et(e.config?.roomType),
2512 roomType: tt(e.config?.roomType),
24662513 isCallingDisabled: "false" === e.config?.canCall,
24672514 },
24682515 }
24692516}
2470function st(e) {
2517function it(e) {
24712518 const t = { files: [], httpLink: [], pearLink: [] },
24722519 s = e.files || []
24732520 for (let e = 0; e < s.length; e++) {
……@@ -2491,7 +2538,7 @@ function st(e) {
24912538 return ((e.preview.file.preview = null), t)
24922539 }
24932540}
2494async function it(e, { files: t, httpLink: s, pearLink: i }, o = null) {
2541async function ot(e, { files: t, httpLink: s, pearLink: i }, o = null) {
24952542 const r = o || { key: e.key, seq: e.length - 1 }
24962543 if (t.length)
24972544 for (const { index: s, preview: i } of t)
……@@ -2521,7 +2568,7 @@ module.exports = class extends t {
25212568 (this.keet = e),
25222569 (this.opts = t),
25232570 (this.api = {
2524 core: new Ge(e, t),
2571 core: new ze(e, t),
25252572 swarm: null,
25262573 preferences: null,
25272574 network: null,
……@@ -2544,12 +2591,12 @@ module.exports = class extends t {
25442591 }
25452592 async _open() {
25462593 ;(await this.keet.ready(),
2547 (this.api.swarm = new ze(this.keet, this.opts)),
2548 (this.api.preferences = new Je(this.keet, this.opts)),
2549 (this.api.network = new We(this.keet, this.opts)),
2550 (this.api.error = new Ye(this.keet, this.opts)),
2551 (this.api.debug = new Xe(this.keet, this.opts)),
2552 (this.api.feedback = new $e(this.keet)))
2594 (this.api.swarm = new Je(this.keet, this.opts)),
2595 (this.api.preferences = new We(this.keet, this.opts)),
2596 (this.api.network = new Ye(this.keet, this.opts)),
2597 (this.api.error = new Xe(this.keet, this.opts)),
2598 (this.api.debug = new $e(this.keet, this.opts)),
2599 (this.api.feedback = new Qe(this.keet)))
25532600 const { isFeatureSupported: e, FEATURES: t } = this.keet.versions
25542601 ;((this.call = this.api.call =
25552602 new g(this.keet.swarm, { skipJoinLeave: e(this.keet.abi.autoupgrade, t.CALLS_V2) })),
……@@ -2578,7 +2625,7 @@ module.exports = class extends t {
25782625 r = s?.deviceKey || null
25792626 if (!s && !o) return
25802627 const n = { joinPeer: this.keet.debugJoinPeer, leavePeer: this.keet.debugLeavePeer },
2581 a = new Se(this.keet.swarm, { call: i, prev: o, deviceKey: r, debug: n })
2628 a = new Me(this.keet.swarm, { call: i, prev: o, deviceKey: r, debug: n })
25822629 if ((a.refresh(), a.ended)) return this.callsByRoomId.delete(e)
25832630 this.callsByRoomId.set(e, a)
25842631 }
@holepunchto/keet-core/lib/api/v1/inspector.js +17 -17
……@@ -1,9 +1,9 @@
1const { Console: s, Server: e } = require("bare-inspector"),
1const { Console: e, Server: s } = require("bare-inspector"),
22 { once: o } = require("bare-events")
3class l {
4 constructor({ port: s = 0, host: e = "localhost" } = {}) {
5 ;((this.port = s),
6 (this.host = e),
3class r {
4 constructor({ port: e = 0, host: s = "127.0.0.1" } = {}) {
5 ;((this.port = e),
6 (this.host = s),
77 (this._server = null),
88 (this._url = null),
99 (this._bareConsole = null),
……@@ -13,35 +13,35 @@ class l {
1313 return this._url
1414 }
1515 _overrideConsole() {
16 this._bareConsole || (this._bareConsole = new s())
17 const e = {}
18 for (const s of Object.keys(this._bareConsole))
19 e[s] = (...e) => {
20 ;(this._bareConsole[s](...e), this._oldConsole[s](...e))
16 this._bareConsole || (this._bareConsole = new e())
17 const s = {}
18 for (const e of Object.keys(this._bareConsole))
19 s[e] = (...s) => {
20 ;(this._bareConsole[e](...s), this._oldConsole[e](...s))
2121 }
22 global.console = e
22 global.console = s
2323 }
2424 _resetConsole() {
2525 global.console = this._oldConsole
2626 }
2727 async enable() {
28 ;((this._server = new e(this.port, this.host)),
28 ;((this._server = new s(this.port, this.host)),
2929 this._server.on("close", () => {
3030 this._resetConsole()
3131 }),
3232 await o(this._server, "listening"),
3333 this._overrideConsole())
34 const { port: s } = this._server.address()
34 const { port: e } = this._server.address()
3535 return (
36 (this._url = `devtools://devtools/bundled/js_app.html?ws=localhost:${s}`),
36 (this._url = `devtools://devtools/bundled/js_app.html?ws=127.0.0.1:${e}`),
3737 console.log(`Keet core inspector url: ${this._url}`),
3838 this._url
3939 )
4040 }
4141 async disable() {
4242 this._server &&
43 (await new Promise((s) => {
44 this._server.close(s)
43 (await new Promise((e) => {
44 this._server.close(e)
4545 }),
4646 (this._server = null),
4747 this._resetConsole(),
……@@ -49,4 +49,4 @@ class l {
4949 (this._url = null))
5050 }
5151}
52module.exports = l
52module.exports = r
@holepunchto/keet-core/lib/api/v2/debug/index.js +2 -2
……@@ -15,13 +15,13 @@ class c extends s {
1515 }
1616 async _open() {
1717 ;(console.log(0),
18 (this._server = new o.Server(0, "localhost")),
18 (this._server = new o.Server(0, "127.0.0.1")),
1919 console.log(1),
2020 await new Promise((e) => this._server.once("listening", e)),
2121 console.log(2))
2222 const { port: e } = this._server.address()
2323 ;(console.log(5),
24 (this.url = `devtools://devtools/bundled/js_app.html?ws=localhost:${e}`),
24 (this.url = `devtools://devtools/bundled/js_app.html?ws=127.0.0.1:${e}`),
2525 console.log(`Keet core inspector url: ${this.url}`),
2626 console.log(6))
2727 }
@holepunchto/keet-core/lib/bundle/index.js +15 -11
……@@ -5,14 +5,15 @@ const e = require("ready-resource"),
55 i = require("hypercore/messages"),
66 o = require("bare-zlib"),
77 { EXPERIMENTAL: n } = require("../../schema/versions"),
8 { KeetContractError: u } = require("../core/contract/errors"),
9 a = require("../core/contract/index.js"),
10 c = require("compact-encoding"),
11 h = c.array(i.wire.data),
8 { KeetContractError: a } = require("../core/contract/errors"),
9 u = require("./patch"),
10 c = require("../core/contract/index.js"),
11 h = require("compact-encoding"),
12 l = h.array(i.wire.data),
1213 d = 12,
13 l = 25,
14 b = 25,
1415 _ = "/lib/contract/index.js",
15 b = "/lib/core/contract/index.js"
16 p = "/lib/core/contract/index.js"
1617function y(e) {
1718 return new Promise((r, t) => {
1819 o.gunzip(e, (e, s) => {
……@@ -39,7 +40,7 @@ module.exports = class extends e {
3940 let e = []
4041 try {
4142 const r = require("./latest-bundle.trace.js")
42 e = c.decode(h, await y(r))
43 e = h.decode(l, await y(r))
4344 } catch (e) {
4445 this.keet.onerror(e, { prefix: "TRACE_LOAD_ERROR" })
4546 }
……@@ -60,12 +61,15 @@ module.exports = class extends e {
6061 }
6162 async loadBundle(e) {
6263 if (this._bundles[e]) return this._bundles[e]
63 if (e >= n) return ((this._bundles[e] = a), a)
64 if (e >= n) return ((this._bundles[e] = c), c)
6465 const r = e < d ? d : e,
65 t = r >= l ? b : _,
66 t = r >= b ? p : _,
6667 s = await this._bee.findABI(r)
67 if (!s) throw u.BUNDLE_NOT_AVAILABLE(r)
68 const i = await this._bee.load(new URL("../..", module.url), t, s)
68 if (!s) throw a.BUNDLE_NOT_AVAILABLE(r)
69 const i = await this._bee.load(new URL("../..", module.url), t, s, {
70 map: (r, t) =>
71 "/lib/core/contract/helpers.js" !== r || (28 !== e && 29 !== e) ? t : u.helpers,
72 })
6973 return ((this._bundles[e] = i.exports), this._bundles[e])
7074 }
7175 async loadRouter(e) {
@holepunchto/keet-core/lib/bundle/latest-bundle.trace.js +1 -1
……@@ -1,6 +1,6 @@
11const b4a = require("b4a")
22
33module.exports = b4a.from(
4 "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e7p+WPKDbqnc2txbulia3Q1m128tX51aWF/uro/POuXq5j1nOli9m+su+FFuNghya7udmdajoBgf1bbubjlb93buNqe3qzeWL90u1HfvFK4UDw/j3Xubd1YOlxc373rX7qzfLN+5VPDXK3e7N1fcWxd2j655R43abDBTvbG6t3Vre/3a3sLe6uHewvTt9s3W+t0re3e7xfJMt3S7trt2/ShcKYVbs3utpdyuX3Ve3bvbulC/dKMd1bt3Lu6O701fXF1efdRZ23p1dq2+FKxULx3drrv3xndvTM/4hyuPbpR222s3rxbudeKlrcL48u745uK99YJXW3x0L56Jy6vX713e9vaOZsej4MJDZ7vVXuxcdu+FuavlnWjh3q2rW4eRt7zdvR4WLoxfOVpYPVwKne3y2sxK9dr16Wt3tovTC8sz5aMlIPk+qM50gsNoJ6wFtbY3vZvLBZ1OeerS1OXK1oWVxaPb7fH2nUvX1ldnw72tS49WvMW4fHdvam+vufZoq9WtLN/aGS+WjraaW5ur8cbheHl7+079erQ3E21dL25fvn1rtdU4ai0tNoLCbqNbaBRbue3DYG91Krh9u/OwGxytTrtrtzadq9HV6wuNGxevzR560zcLO0f1S8WH/l5r72599mjv6u3K2mp15kFpZ/PexqV2adqplTa6nbvRxWJ3oXI9atSurRbuTTuF8JK/52+Xty87wdHt1Si4EjdyYWsmuH2z0l2KvMLN602vMlsa3+5ciR7ONOLLe9Pl6dkHW1dWOqtbD+5eql67EF+dKec2px6UussLj7q3g+vXbq893FqvPbiz3Anv3li6svzQubH2aA8wnMgvPbx1O9yMrjp7dspKQUvMSxdS4GBfGo7TdgCnLSmc9lpV4rS3q7uOW2i2tyo7a8tbu5XLCxuV8m5up1Penp2+FR7dW9+7OL1281Ln8Mq1Kw9Kdx7enF04dO4uNu5U9h607+7V62vt1ZmVK2v3rnu5+NZi48KrmzcelV99OHN5x90q5x5di4pT4fVHd8pT7sKV+pVrlzer08GFB87F+G5pcS0obF5zrux2bkxv1Gcbu11nunlhdrt556hYu9CcqtWul/2p1fVcfHd8YWZx4VbtaHH9aiHo7NTq7WDt6vajw1zh0eqD1sP4zs2txuruwhV/urR3/dqm36gc3okv7swE3uY64MxX7j14ePfy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",
4 "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cjM5H5/cbbbvZh23OnNu+lfH+y/RgRO11trj7dWroGd/bd+N1wcbh5N4MLv9fPWxvfL5aOfodXrc+rp2PNgOD3obLzcD7/7j1eFKNXg+eD10ribH57uN+2my3Wp83Ln6eLZ1f9Lw+1uv90k1cY/2779c+O2XtY9xuP5kX4wnW9Mv3n20uutexs37693Wc+zvXMz2o8b6x82X5tHzdmRfuMfVg97e/sre7UVnpblTdV+2e5PxY686DZ/jy6gf9if+ytXqajidussby1+6rfWDrZebycfJ7cbeydFa1G5tvB74W4l7115ut0fHr63xrLtzffmx47y0Rq2zo+T0+aN7cXE72I/b1bi137n4cnN9NB6+jLe3hmHjajhrDDvj1YvnsH20HN7cTJ9m4cvRind8fWbvxrv7zeHh5721Z3/lvHH5MtjoPAXtcftusPbS3r3pHh/1qo/O5dn96cbEWbH7zulsehd/7sya3f142N87atyv2I1oI2gHF+7FFzt8uTmKw81kuBqNq+HNeXe2HfuN8/2R311zPl5MN+On6jD50l5xV9YeW5sH06PW491Gb2892a26q2fLj85sp/k6uwn3926On1on/cfbnWl0d7i9ufNkHx6/tpHCiQPn6fomOot37Xb9g/Whg1bljfUPi4tWr5imbSNN25M0bWO62dyetr5uNQ6WG85uuFMNeofR49qK/7K9svZxenW71v7ajvfb7tdde/PmavfM3Vo5i4+Xm88Ha7sbg9NppzpqjK/XVg++jHYPD7e++Inf2qperCed6/Ox17rynbWunUxWgsc113mJ9pY3XjZX17prve5hqzl5DU+Pzg6qk87NfsPfaGz3R887m1vu9v3p5/bmKDmcnK7cDzdv1r3D5/W7i7X75dnjaeem1XN7ves75/yxeX50shPeHz9tvbSdL1/PT2bhhh1dr2x/vhxMu4df93ebL4/jz7dfVr947eTp4PHx5DZ43rvbGJ0t700Odu8Pwln18hqJ1c6G/7mz03h57kWvzep4NNyZNj+/tD72v+xWe3vuUefoaLa83PCQ+O54/a3bW3/Ffz29+2g3ZyfTFhK8053+6VVjY3U8HV59uT+fNPbOZyujL5Ovx9eHq+c3+18/3rSvo6Qxu5727JXhdfP1cPns5OJiNnnc3llunHjN5c9Xa9PL0WDHWY3Xl29Ww+fh1+vB8W7r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",
55 "base64",
66)
@holepunchto/keet-core/lib/bundle/patch.js +4 -0
……@@ -0,0 +1,4 @@
1const n = require("b4a")
2exports.helpers = n.from(
3 "\nconst {\n contract: {\n hyperschema: { getEnum: getContractEnum }\n }\n} = require('../../../schema/spec')\n\nconst BuildType = getContractEnum('@keet/build-type')\n\n// helpers\n\nfunction isValidBuildType(buildType, invBuildType) {\n const deviceBuildType = buildType || BuildType.Production\n const invitationBuildType = invBuildType || BuildType.Production\n return deviceBuildType === invitationBuildType\n}\n\nmodule.exports = {\n isValidBuildType\n}\n",
4)
@holepunchto/keet-core/lib/core/contract/helpers.js +1 -1
……@@ -5,6 +5,6 @@ const {
55 } = require("../../../schema/spec"),
66 t = e("@keet/build-type")
77function c(e, c) {
8 return !(e !== t.Production || c) || e === c
8 return (e || t.Production) === (c || t.Production)
99}
1010module.exports = { isValidBuildType: c }
@holepunchto/keet-core/lib/core/contract/identity/private.js +231 -206
……@@ -1,47 +1,50 @@
11const e = require("b4a"),
2 t = require("compact-encoding"),
3 { ProofEncoding: i } = require("keet-identity-key/lib/encoding"),
24 {
35 contract: {
4 hyperschema: { encode: t },
6 hyperschema: { encode: a },
57 },
68 } = require("../../../../schema/spec"),
79 {
8 verifyAttestation: i,
9 verifyDeviceResponse: a,
10 decryptContactRequest: s,
11 generateMailboxKeyPair: r,
12 generateRoomCapabilities: o,
10 verifyAttestation: s,
11 verifyDeviceResponse: r,
12 decryptContactRequest: o,
13 generateMailboxKeyPair: n,
14 generateRoomCapabilities: d,
15 verifyIdentityProofs: c,
1316 } = require("../../invitations"),
14 n = require("../registration"),
15 { KeetContractError: c } = require("../errors"),
16 { isMemberActive: d, getMemberForDeviceKey: y } = require("../query"),
17 y = require("../registration"),
18 { KeetContractError: l } = require("../errors"),
19 { isMemberActive: u, getMemberForDeviceKey: k } = require("../query"),
1720 {
18 profileRoomStats: l,
19 profileContactStats: u,
20 profileContactRequestStats: m,
21 profileRoomStats: m,
22 profileContactStats: v,
23 profileContactRequestStats: p,
2124 } = require("../stats/profile"),
22 { isValidBuildType: k } = require("../helpers"),
23 p = ["isActive", "isFullyMuted", "isMentionsOnlyMuted", "isFavorite"],
24 v = { IsActive: 1, IsFullyMuted: 2, IsMentionsOnlyMuted: 3, IsFavorite: 4 },
25 w = ["isBlocked"],
26 f = { IsBlocked: 1 },
27 b = ["isPending", "isAccepted", "isRejected", "isDiscarded", "isSeen"],
28 g = { IsPending: 1, IsAccepted: 2, IsRejected: 3, IsDiscarded: 4, IsSeen: 5 }
29async function K({ sharedRooms: e, blockedContacts: t }, { db: i, writer: a }) {
30 const [s, r] = await Promise.all([y(i, a.key), i.get("@keet-private-id/counters")])
31 if (!d(s)) throw c.ABORT()
25 { isValidBuildType: w } = require("../helpers"),
26 f = ["isActive", "isFullyMuted", "isMentionsOnlyMuted", "isFavorite", "isUnread"],
27 b = { IsActive: 1, IsFullyMuted: 2, IsMentionsOnlyMuted: 3, IsFavorite: 4, IsUnread: 5 },
28 g = ["isBlocked"],
29 K = { IsBlocked: 1 },
30 h = ["isPending", "isAccepted", "isRejected", "isDiscarded", "isSeen"],
31 A = { IsPending: 1, IsAccepted: 2, IsRejected: 3, IsDiscarded: 4, IsSeen: 5 }
32async function R({ sharedRooms: e, blockedContacts: t }, { db: i, writer: a }) {
33 const [s, r] = await Promise.all([k(i, a.key), i.get("@keet-private-id/counters")])
34 if (!u(s)) throw l.ABORT()
3235 for (let t = 0; t < e.length; t++) {
33 const { roomKey: a, initiator: s, fastForwardTo: r, encryptionKey: n, seed: c } = e[t],
34 d = {
36 const { roomKey: a, initiator: s, fastForwardTo: r, encryptionKey: o, seed: n } = e[t],
37 c = {
3538 roomKey: a,
36 encryptionKey: n,
37 mailbox: o(a, c).mailboxKeyPair.publicKey,
39 encryptionKey: o,
40 mailbox: d(a, n).mailboxKeyPair.publicKey,
3841 clock: t + 1,
3942 status: { isActive: !0, isFullyMuted: !1, isMentionsOnlyMuted: !1 },
4043 initiator: s,
4144 fastForwardTo: r,
4245 identitySwap: null,
4346 }
44 await i.insert("@keet-private-id/rooms", d)
47 await i.insert("@keet-private-id/rooms", c)
4548 }
4649 for (let e = 0; e < t.length; e++) {
4750 const a = r ? r.contacts + 1 : 0,
……@@ -49,204 +52,225 @@ async function K({ sharedRooms: e, blockedContacts: t }, { db: i, writer: a }) {
4952 await i.insert("@keet-private-id/contacts", s)
5053 }
5154}
52async function A({ identity: t }, { db: i, writer: a }) {
53 const [s, r] = await Promise.all([y(i, a.key), i.get("@keet-private-id/identity")])
54 if (!d(s) || !r || !e.equals(t.publicKey, r.publicKey)) throw c.ABORT()
55async function O({ deviceKey: a, deviceProof: s, writerProof: r }, { db: o, writer: n }) {
56 const [d, y] = await Promise.all([
57 k(o, n.key),
58 o.get("@keet-private-id/device-identities", { deviceKey: a }),
59 ])
60 if (!u(d)) throw l.ABORT()
61 if (!y) throw l.ABORT()
62 const m = t.decode(i, y.deviceProof),
63 v = t.decode(i, s)
64 if (!e.equals(m.identity, v.identity)) throw l.ABORT()
65 if (v.chain.length >= m.chain.length) throw l.ABORT()
66 const p = m.chain[m.chain.length - 1].publicKey,
67 w = { ...y.privateProfileIdentity, proof: r },
68 f = { publicKey: m.identity, writerKey: y.deviceKey, devicePublicKey: p }
69 if (!c(f, { deviceProof: s, privateProfileIdentity: w })) throw l.ABORT()
70 await o.insert("@keet-private-id/device-identities", {
71 deviceKey: y.deviceKey,
72 privateProfileIdentity: w,
73 deviceProof: s,
74 })
75}
76async function T({ identity: t }, { db: i, writer: a }) {
77 const [s, r] = await Promise.all([k(i, a.key), i.get("@keet-private-id/identity")])
78 if (!u(s) || !r || !e.equals(t.publicKey, r.publicKey)) throw l.ABORT()
5579 ;(t.discoveryCoreKey && (r.discoveryCoreKey = t.discoveryCoreKey),
5680 await i.insert("@keet-private-id/identity", r))
5781}
58async function R({ key: e, settings: t }, { db: i, writer: a }) {
59 const [s, r] = await Promise.all([y(i, a.key), i.get("@keet-private-id/settings")])
60 if (!d(s)) throw c.ABORT()
82async function B({ key: e, settings: t }, { db: i, writer: a }) {
83 const [s, r] = await Promise.all([k(i, a.key), i.get("@keet-private-id/settings")])
84 if (!u(s)) throw l.ABORT()
6185 const o = { ...r, [e]: t[e] }
6286 await i.insert("@keet-private-id/settings", o)
6387}
64async function h({ invitation: e }, { db: t, writer: i }) {
65 const [a, s] = await Promise.all([y(t, i.key), t.get("@keet/system-digest")])
66 if (!d(a)) throw c.ABORT()
88async function P({ invitation: e }, { db: t, writer: i }) {
89 const [a, s] = await Promise.all([k(t, i.key), t.get("@keet/system-digest")])
90 if (!u(a)) throw l.ABORT()
6791 const r = s.settings.buildType,
6892 o = e.buildType
69 if (!k(r, o)) throw c.INVALID_BUILD_TYPE()
93 if (!w(r, o)) throw l.INVALID_BUILD_TYPE()
7094 await t.insert("@keet-private-id/pending-invitations", e)
7195}
72async function O({ id: e }, { db: t, writer: i }) {
73 const a = await y(t, i.key)
74 if (!d(a)) throw c.ABORT()
96async function q({ id: e }, { db: t, writer: i }) {
97 const a = await k(t, i.key)
98 if (!u(a)) throw l.ABORT()
7599 await t.delete("@keet-private-id/pending-invitations", { id: e })
76100}
77async function T({ blindResponse: t }, { db: i, writer: s, hostcalls: o }) {
78 const n = await i.get("@keet/room-capabilities")
79 if (!n) throw c.ABORT()
101async function x({ blindResponse: t }, { db: i, writer: a, hostcalls: s }) {
102 const o = await i.get("@keet/room-capabilities")
103 if (!o) throw l.ABORT()
80104 let d = null
81105 try {
82 const e = r(o.key, n.seed)
83 d = a(e, t)
106 const e = n(s.key, o.seed)
107 d = r(e, t)
84108 } catch (e) {
85 throw c.ABORT()
109 throw l.ABORT()
86110 }
87 if (!d) throw c.ABORT()
88 const { id: y, response: u } = d,
89 { roomKeys: m } = u
90 if (!m.key || !m.encryptionKey) throw c.ABORT()
91 const [k, p, v, w] = await Promise.all([
92 i.get("@keet-private-id/pending-invitations", { id: y }),
93 i.get("@keet-private-id/rooms", { roomKey: m.key }),
111 if (!d) throw l.ABORT()
112 const { id: c, response: y } = d,
113 { roomKeys: u } = y
114 if (!u.key || !u.encryptionKey) throw l.ABORT()
115 const [k, v, p, w] = await Promise.all([
116 i.get("@keet-private-id/pending-invitations", { id: c }),
117 i.get("@keet-private-id/rooms", { roomKey: u.key }),
94118 i.get("@keet-private-id/counters"),
95119 i.get("@keet/system-digest"),
96120 ])
97 if (!k) throw c.ABORT()
98 const f = v ? v.rooms + 1 : 0,
99 b = p
100 let g = p
121 if (!k) throw l.ABORT()
122 const f = p ? p.rooms + 1 : 0,
123 b = v
124 let g = v
101125 if (
102126 (g
103127 ? (!g.status.isActive || w.abi.version >= 12) &&
104128 ((g.clock = f), (g.status.isActive = !0), (g.status.isReadOnly = !1))
105129 : (g = {
106130 clock: f,
107 roomKey: m.key,
108 encryptionKey: m.encryptionKey,
109 fastForwardTo: m.fastForwardTo,
131 roomKey: u.key,
132 encryptionKey: u.encryptionKey,
133 fastForwardTo: u.fastForwardTo,
110134 status: { isActive: !0, isReadOnly: !1 },
111135 initiator: k.initiator,
112136 mailbox: k.mailbox,
113137 identitySwapV2: k.identity,
114138 }),
115139 await i.insert("@keet-private-id/rooms", g),
116 await l(i, g, b),
140 await m(i, g, b),
117141 w.abi.version < 11)
118142 )
119 await i.delete("@keet-private-id/pending-invitations", { id: y })
143 await i.delete("@keet-private-id/pending-invitations", { id: c })
120144 else
121145 for await (const t of i.find("@keet-private-id/pending-invitations"))
122146 e.equals(t.mailbox, g.mailbox) && (await i.delete("@keet-private-id/pending-invitations", t))
123 await o.ackWriter(s.key)
147 await s.ackWriter(a.key)
124148}
125async function B({ header: e, ...t }, { db: i, writer: a }) {
126 const [s, r, o, n, u] = await Promise.all([
127 y(i, a.key),
149async function I({ header: e, ...t }, { db: i, writer: a }) {
150 const [s, r, o, n, d] = await Promise.all([
151 k(i, a.key),
128152 i.get("@keet-private-id/rooms", { roomKey: t.roomKey }),
129153 i.get("@keet-private-id/stats"),
130154 i.get("@keet-private-id/counters"),
131155 i.get("@keet/system-digest"),
132156 ])
133 if (!u || !d(s)) throw c.ABORT()
134 const m = r
135 let k = 0
136 u.abi.version < 10 ? (r ? (k = r.clock) : o && (k = o.rooms + 1)) : n && (k = n.rooms + 1)
137 let p = r?.status.isReadOnly
138 !p && t.isReadOnly && (p = !0)
139 const v = { ...t, clock: k, status: { isActive: !0, isReadOnly: p }, contact: t.dm }
140 ;(await i.insert("@keet-private-id/rooms", v), await l(i, v, m))
157 if (!d || !u(s)) throw l.ABORT()
158 const c = r
159 let y = 0
160 d.abi.version < 10 ? (r ? (y = r.clock) : o && (y = o.rooms + 1)) : n && (y = n.rooms + 1)
161 let v = r?.status.isReadOnly
162 !v && t.isReadOnly && (v = !0)
163 const p = { ...t, clock: y, status: { isActive: !0, isReadOnly: v }, contact: t.dm }
164 ;(await i.insert("@keet-private-id/rooms", p), await m(i, p, c))
141165}
142async function q({ roomKey: e }, { db: t, writer: i }) {
143 const a = await y(t, i.key)
144 if (d(a)) return t.delete("@keet-private-id/rooms", { roomKey: e })
166async function S({ roomKey: e }, { db: t, writer: i }) {
167 const a = await k(t, i.key)
168 if (u(a)) return t.delete("@keet-private-id/rooms", { roomKey: e })
145169}
146async function P({ header: t, roomKey: i, key: a, status: s }, { db: r, writer: o }) {
147 const [n, u, m, k] = await Promise.all([
148 y(r, o.key),
170async function M({ header: t, roomKey: i, key: a, status: s }, { db: r, writer: o }) {
171 const [n, d, c, y] = await Promise.all([
172 k(r, o.key),
149173 r.get("@keet-private-id/rooms", { roomKey: i }),
150174 r.get("@keet-private-id/counters"),
151175 r.get("@keet/system-digest"),
152176 ])
153 if (!d(n) || !u) throw c.ABORT()
154 if (!L(a)) throw c.ABORT()
155 const p = u,
156 v = E(a),
157 w = m.rooms + 1
177 if (!u(n) || !d) throw l.ABORT()
178 if (!N(a)) throw l.ABORT()
179 const v = d,
180 p = _(a),
181 w = c.rooms + 1
158182 if (
159 ((u.status = { ...u.status, [v]: s[v] }),
160 (u.clock = w),
161 !u.status.isActive && k.abi.version >= 12)
183 ((d.status = { ...d.status, [p]: s[p] }),
184 (d.clock = w),
185 !d.status.isActive && y.abi.version >= 12)
162186 )
163187 for await (const t of r.find("@keet-private-id/pending-invitations"))
164 e.equals(t.mailbox, u.mailbox) && (await r.delete("@keet-private-id/pending-invitations", t))
165 ;(await r.insert("@keet-private-id/rooms", u), await l(r, u, p))
188 e.equals(t.mailbox, d.mailbox) && (await r.delete("@keet-private-id/pending-invitations", t))
189 ;(await r.insert("@keet-private-id/rooms", d), await m(r, d, v))
166190}
167async function x(
191async function C(
168192 { contact: { memberKey: e, mailbox: t, roomKey: i, status: a } },
169193 { db: s, writer: r },
170194) {
171 const [o, n, l] = await Promise.all([
172 y(s, r.key),
195 const [o, n, d] = await Promise.all([
196 k(s, r.key),
173197 s.get("@keet-private-id/contacts", { memberKey: e }),
174198 s.get("@keet-private-id/counters"),
175199 ])
176 if (!d(o)) throw c.ABORT()
177 const m = n,
178 k = l ? l.contacts + 1 : 0
179 let p = n
180 ;(p
181 ? ((p.mailbox = t), (p.status = a), (p.clock = k))
182 : (p = { memberKey: e, mailbox: t, status: a, clock: k }),
183 await s.insert("@keet-private-id/contacts", p),
184 await u(s, p, m))
200 if (!u(o)) throw l.ABORT()
201 const c = n,
202 y = d ? d.contacts + 1 : 0
203 let m = n
204 ;(m
205 ? ((m.mailbox = t), (m.status = a), (m.clock = y))
206 : (m = { memberKey: e, mailbox: t, status: a, clock: y }),
207 await s.insert("@keet-private-id/contacts", m),
208 await v(s, m, c))
185209}
186async function I({ memberKey: e, key: t, status: i }, { db: a, writer: s }) {
210async function F({ memberKey: e, key: t, status: i }, { db: a, writer: s }) {
187211 const [r, o, n] = await Promise.all([
188 y(a, s.key),
212 k(a, s.key),
189213 a.get("@keet-private-id/contacts", { memberKey: e }),
190214 a.get("@keet-private-id/counters"),
191215 ])
192 if (!d(r) || !o) throw c.ABORT()
193 if (!_(t)) throw c.ABORT()
194 const l = o,
195 m = W(t)
196 ;((o.status = { ...o.status, [m]: i[m] }),
216 if (!u(r) || !o) throw l.ABORT()
217 if (!z(t)) throw l.ABORT()
218 const d = o,
219 c = Y(t)
220 ;((o.status = { ...o.status, [c]: i[c] }),
197221 (o.clock = n ? n.contacts + 1 : 0),
198222 await a.insert("@keet-private-id/contacts", o),
199 await u(a, o, l))
223 await v(a, o, d))
200224}
201async function S({ memberKey: e }, { db: t, writer: i }) {
225async function D({ memberKey: e }, { db: t, writer: i }) {
202226 const [a, s] = await Promise.all([
203 y(t, i.key),
227 k(t, i.key),
204228 t.get("@keet-private-id/contacts", { memberKey: e }),
205229 ])
206 if (!d(a) || !s) throw c.ABORT
230 if (!u(a) || !s) throw l.ABORT
207231 await t.delete("@keet-private-id/contacts", s)
208232}
209async function M({ blindRequest: e, header: a }, { db: o, hostcalls: n, writer: d }) {
210 const y = await o.get("@keet/room-capabilities")
211 if (!y) throw c.ABORT()
212 let l = null
233async function j({ blindRequest: e, header: t }, { db: i, hostcalls: r, writer: d }) {
234 const c = await i.get("@keet/room-capabilities")
235 if (!c) throw l.ABORT()
236 let y = null
213237 try {
214 const t = r(n.key, y.seed)
215 l = s(t, e)
238 const t = n(r.key, c.seed)
239 y = o(t, e)
216240 } catch (e) {
217 throw c.ABORT()
241 throw l.ABORT()
218242 }
219 if (!l) throw c.ABORT()
220 const { body: u, attestation: k } = l,
221 { sender: p, keys: v, mailbox: w, message: f } = u,
243 if (!y) throw l.ABORT()
244 const { body: u, attestation: k } = y,
245 { sender: m, keys: v, mailbox: w, message: f } = u,
222246 [b, g, K] = await Promise.all([
223 o.get("@keet-private-id/contacts", { memberKey: p.attestation.memberKey }),
224 o.get("@keet-private-id/stats"),
225 o.get("@keet/system-digest"),
247 i.get("@keet-private-id/contacts", { memberKey: m.attestation.memberKey }),
248 i.get("@keet-private-id/stats"),
249 i.get("@keet/system-digest"),
226250 ])
227 if (b && b.status.isBlocked) throw c.ABORT()
228 if (b && b.roomKey && K.abi.version < 12) throw c.ABORT()
229 const A = t("@keet-private-id/contact-request-body", u),
230 R = t("@keet/member-profile", p.profile)
231 if (!i(k, A)) throw c.ABORT()
232 if (!i(p.attestation, R)) throw c.ABORT()
233 let h = !0
234 const O = a.timestamp,
235 T = o.find("@keet-private-id/pending-contact-requests-by-member", {
236 gte: { memberKey: p.attestation.memberKey },
237 lte: { memberKey: p.attestation.memberKey },
251 if (b && b.status.isBlocked) throw l.ABORT()
252 if (b && b.roomKey && K.abi.version < 12) throw l.ABORT()
253 const h = a("@keet-private-id/contact-request-body", u),
254 A = a("@keet/member-profile", m.profile)
255 if (!s(k, h)) throw l.ABORT()
256 if (!s(m.attestation, A)) throw l.ABORT()
257 let R = !0
258 const O = t.timestamp,
259 T = i.find("@keet-private-id/pending-contact-requests-by-member", {
260 gte: { memberKey: m.attestation.memberKey },
261 lte: { memberKey: m.attestation.memberKey },
238262 })
239263 for await (const e of T)
240264 e.sentAt > O
241 ? (h = !1)
265 ? (R = !1)
242266 : ((e.status.isPending = !1),
243267 (e.status.isDiscarded = !0),
244 await o.insert("@keet-private-id/contact-requests-v2", e))
245 if (!h) return
268 await i.insert("@keet-private-id/contact-requests-v2", e))
269 if (!R) return
246270 const B = g?.contactRequests || 0,
247 q = {
248 memberKey: p.attestation.memberKey,
249 sender: p.profile,
271 P = {
272 memberKey: m.attestation.memberKey,
273 sender: m.profile,
250274 status: { isPending: !0 },
251275 clock: B,
252276 keys: v,
……@@ -254,24 +278,24 @@ async function M({ blindRequest: e, header: a }, { db: o, hostcalls: n, writer:
254278 message: f,
255279 sentAt: O,
256280 }
257 ;(await o.insert("@keet-private-id/contact-requests-v2", q),
258 await m(o, q, null),
259 await n.ackWriter(d.key))
281 ;(await i.insert("@keet-private-id/contact-requests-v2", P),
282 await p(i, P, null),
283 await r.ackWriter(d.key))
260284}
261async function C({ memberKey: e, roomKey: t, key: i, status: a }, { db: s, writer: r }) {
262 if (!t) throw c.ABORT()
263 const [o, n, m] = await Promise.all([
264 y(s, r.key),
285async function E({ memberKey: e, roomKey: t, key: i, status: a }, { db: s, writer: r }) {
286 if (!t) throw l.ABORT()
287 const [o, n, d] = await Promise.all([
288 k(s, r.key),
265289 s.get("@keet-private-id/contact-requests-v2", { memberKey: e, keys: { key: t } }),
266290 s.get("@keet-private-id/counters"),
267291 ])
268 if (!d(o) || !n) throw c.ABORT()
269 if (!U(i)) throw c.ABORT()
270 const k = N(i),
271 p = n.sender,
272 v = !n.status.isAccepted && i === g.IsAccepted,
273 w = i === g.IsSeen
274 if (!w && n.status.isAccepted) throw c.ABORT()
292 if (!u(o) || !n) throw l.ABORT()
293 if (!H(i)) throw l.ABORT()
294 const c = G(i),
295 y = n.sender,
296 p = !n.status.isAccepted && i === A.IsAccepted,
297 w = i === A.IsSeen
298 if (!w && n.status.isAccepted) throw l.ABORT()
275299 const f = {
276300 isPending: !1,
277301 isAccepted: !1,
……@@ -281,74 +305,75 @@ async function C({ memberKey: e, roomKey: t, key: i, status: a }, { db: s, write
281305 },
282306 b = w ? n.status : f
283307 if (
284 ((n.status = { ...b, [k]: a[k] }),
308 ((n.status = { ...b, [c]: a[c] }),
285309 (n.status.isAccepted || n.status.isRejected || n.status.isDiscarded) &&
286310 (n.status.isPending = !1),
287311 await s.insert("@keet-private-id/contact-requests-v2", n),
288 !v)
312 !p)
289313 )
290314 return
291 const K = (m?.rooms || 0) + 1,
292 A = (m?.contacts || 0) + 1,
293 R = {
294 clock: K,
315 const g = (d?.rooms || 0) + 1,
316 K = (d?.contacts || 0) + 1,
317 h = {
318 clock: g,
295319 roomKey: n.keys.key,
296320 encryptionKey: n.keys.encryptionKey,
297321 mailbox: n.mailbox,
298322 status: { isActive: !0 },
299323 },
300 h = { memberKey: n.memberKey, mailbox: p.mailbox, clock: A, status: { isBlocked: !1 } }
301 ;(await s.insert("@keet-private-id/rooms", R),
302 await l(s, R, null),
303 await s.insert("@keet-private-id/contacts", h),
304 await u(s, h, null))
324 R = { memberKey: n.memberKey, mailbox: y.mailbox, clock: K, status: { isBlocked: !1 } }
325 ;(await s.insert("@keet-private-id/rooms", h),
326 await m(s, h, null),
327 await s.insert("@keet-private-id/contacts", R),
328 await v(s, R, null))
305329}
306async function F({ memberKey: e }, { db: t, writer: i }) {}
307async function D({ key: e }, { db: t, writer: i }) {
308 const a = await y(t, i.key)
309 if (!d(a)) throw c.ABORT()
330async function U({ memberKey: e }, { db: t, writer: i }) {}
331async function V({ key: e }, { db: t, writer: i }) {
332 const a = await k(t, i.key)
333 if (!u(a)) throw l.ABORT()
310334 await t.insert("@keet-private-id/unreads-v2", { deviceKey: i.key, key: e })
311335}
312async function j({ key: e }, { db: t, writer: i }) {
313 const a = await y(t, i.key)
314 if (!d(a)) throw c.ABORT()
336async function L({ key: e }, { db: t, writer: i }) {
337 const a = await k(t, i.key)
338 if (!u(a)) throw l.ABORT()
315339 await t.delete("@keet-private-id/unreads-v2", { deviceKey: i.key, key: e })
316340}
317function V(e) {
318 ;(e.add("@keet-private-id/run-v3-migration", K),
319 e.add("@keet-private-id/update-identity", A),
320 e.add("@keet-private-id/update-settings", R),
321 e.add("@keet-private-id/add-room", B),
322 e.add("@keet-private-id/remove-room", q),
323 e.add("@keet-private-id/update-room-status", P),
324 e.add("@keet-private-id/add-pending-invitation", h),
325 e.add("@keet-private-id/remove-pending-invitation", O),
326 e.add("@keet-private-id/resolve-pending-invitation", T),
327 e.add("@keet-private-id/add-contact", x),
328 e.add("@keet-private-id/update-contact-status", I),
329 e.add("@keet-private-id/remove-contact", S),
330 e.add("@keet-private-id/add-contact-request", M),
331 e.add("@keet-private-id/update-contact-request-status", C),
332 e.add("@keet-private-id/activate-contact-room", F),
333 e.add("@keet-private-id/add-unreads-key", D),
334 e.add("@keet-private-id/remove-unreads-key", j))
335}
336function E(e) {
337 return p[e - 1]
338}
339function L(e) {
340 return e >= 1 && e <= p.length
341}
342341function W(e) {
343 return w[e - 1]
342 ;(e.add("@keet-private-id/run-v3-migration", R),
343 e.add("@keet-private-id/shorten-device-attestation", O),
344 e.add("@keet-private-id/update-identity", T),
345 e.add("@keet-private-id/update-settings", B),
346 e.add("@keet-private-id/add-room", I),
347 e.add("@keet-private-id/remove-room", S),
348 e.add("@keet-private-id/update-room-status", M),
349 e.add("@keet-private-id/add-pending-invitation", P),
350 e.add("@keet-private-id/remove-pending-invitation", q),
351 e.add("@keet-private-id/resolve-pending-invitation", x),
352 e.add("@keet-private-id/add-contact", C),
353 e.add("@keet-private-id/update-contact-status", F),
354 e.add("@keet-private-id/remove-contact", D),
355 e.add("@keet-private-id/add-contact-request", j),
356 e.add("@keet-private-id/update-contact-request-status", E),
357 e.add("@keet-private-id/activate-contact-room", U),
358 e.add("@keet-private-id/add-unreads-key", V),
359 e.add("@keet-private-id/remove-unreads-key", L))
344360}
345361function _(e) {
346 return e >= 1 && e <= w.length
362 return f[e - 1]
347363}
348364function N(e) {
349 return b[e - 1]
365 return e >= 1 && e <= f.length
366}
367function Y(e) {
368 return g[e - 1]
369}
370function z(e) {
371 return e >= 1 && e <= g.length
372}
373function G(e) {
374 return h[e - 1]
350375}
351function U(e) {
352 return e >= 1 && e <= b.length
376function H(e) {
377 return e >= 1 && e <= h.length
353378}
354module.exports = { [n]: V, RoomStatus: v, ContactStatus: f, ContactRequestStatus: g }
379module.exports = { [y]: W, RoomStatus: b, ContactStatus: K, ContactRequestStatus: A }
@holepunchto/keet-core/lib/core/contract/members/index.js +20 -21
……@@ -246,12 +246,12 @@ async function P({ invitation: e }, { db: t, writer: i, hostcalls: a }) {
246246 t.insert("@keet/invitations", e)
247247 )
248248}
249async function x({ id: e }, { db: t, writer: i }) {
249async function E({ id: e }, { db: t, writer: i }) {
250250 const [a, s] = await Promise.all([u(t, i.key), t.get("@keet/invitations", { id: e })])
251251 if (!l(a) || !a.status.isModerator || !s) throw f.ABORT()
252252 ;((s.isActive = !1), await t.insert("@keet/invitations", s))
253253}
254async function E({ deviceKey: e, fromDeviceKey: i }, { db: a, writer: s, hostcalls: r }) {
254async function x({ deviceKey: e, fromDeviceKey: i }, { db: a, writer: s, hostcalls: r }) {
255255 const [n, o, d] = await Promise.all([u(a, s.key), u(a, e), u(a, i)])
256256 if (!l(n)) throw f.ABORT()
257257 if (!t.equals(n.key, o.key)) throw f.ABORT()
……@@ -273,14 +273,14 @@ async function E({ deviceKey: e, fromDeviceKey: i }, { db: a, writer: s, hostcal
273273 await a.insert("@keet/devices", c),
274274 await a.insert("@keet/devices", m))
275275}
276async function D(e, { db: t, writer: i, hostcalls: a }) {
276async function _(e, { db: t, writer: i, hostcalls: a }) {
277277 const [s, r] = await Promise.all([t.get("@keet/devices", { key: i.key }), u(t, i.key)])
278278 if (!s.status.isActive || !l(r) || !r.status.canAdmin) throw f.ABORT()
279279 ;(await a.addWriter(i.key, { indexer: !0 }),
280280 (s.status.isIndexing = !0),
281281 await t.insert("@keet/devices", s))
282282}
283async function _(e, { db: t, writer: i, hostcalls: a }) {
283async function D(e, { db: t, writer: i, hostcalls: a }) {
284284 const [s, r] = await Promise.all([t.get("@keet/devices", { key: i.key }), u(t, i.key)])
285285 if (!s.status.isActive || !l(r) || !r.status.canAdmin) throw f.ABORT()
286286 ;(await a.addWriter(i.key, { indexer: !1 }),
……@@ -310,7 +310,7 @@ async function W({ profile: e }, { db: i, writer: a }) {
310310 if (!(r.status.isActive && l(s) && r && t.equals(r.key, a.key))) throw f.ABORT()
311311 ;((r.profile = e), await i.insert("@keet/devices", r))
312312}
313async function j({ key: e }, { db: i, writer: a, hostcalls: s }) {
313async function L({ key: e }, { db: i, writer: a, hostcalls: s }) {
314314 const [r, n, o] = await Promise.all([
315315 u(i, a.key),
316316 i.get("@keet/devices", { key: e }),
……@@ -324,7 +324,7 @@ async function j({ key: e }, { db: i, writer: a, hostcalls: s }) {
324324 await i.insert("@keet/devices", n),
325325 await y(i, o, n, d))
326326}
327async function L({ memberKey: e, key: t, status: i }, { db: a, writer: s }) {
327async function j({ memberKey: e, key: t, status: i }, { db: a, writer: s }) {
328328 const [r, n] = await Promise.all([u(a, s.key), a.get("@keet/members", { key: e })])
329329 if (!l(r)) throw f.INACTIVE_MEMBER()
330330 if (!n) throw f.TARGET_MEMBER_NOT_FOUND()
……@@ -355,7 +355,7 @@ async function V({ key: e, isModerator: t, isAdmin: i }, { db: a, writer: s, hos
355355 (o.status.isModerator = t || i),
356356 await a.insert("@keet/members", o))
357357}
358async function C({ header: e, key: i }, { db: a, writer: s, hostcalls: r }) {
358async function Y({ header: e, key: i }, { db: a, writer: s, hostcalls: r }) {
359359 const [n, o, d, c, v] = await Promise.all([
360360 u(a, s.key),
361361 a.get("@keet/members", { key: i }),
……@@ -369,9 +369,8 @@ async function C({ header: e, key: i }, { db: a, writer: s, hostcalls: r }) {
369369 if (!o) throw f.TARGET_MEMBER_NOT_FOUND()
370370 const b = { ...o, status: { ...o.status } },
371371 p = t.equals(n.key, o.key),
372 A = n.status.isModerator,
373 h = o.status.isAdmin
374 if (!p && h) throw f.ABORT()
372 A = n.status.isModerator
373 if (o.status.isAdmin && !p) throw f.SELF_ONLY()
375374 if (!p && !A) throw f.MODERATORS_ONLY()
376375 ;((o.status.isActive = !1),
377376 (o.status.isModerator = !1),
……@@ -391,23 +390,23 @@ async function C({ header: e, key: i }, { db: a, writer: s, hostcalls: r }) {
391390 )
392391 return
393392 if (d.abi.version >= 11 && d.settings.isMembershipEventsDisabled) return
394 const g = p ? { memberLeft: { memberKey: o.key } } : { memberRemoved: { memberKey: o.key } }
395 await w(a, s, g, e.timestamp)
393 const h = p ? { memberLeft: { memberKey: o.key } } : { memberRemoved: { memberKey: o.key } }
394 await w(a, s, h, e.timestamp)
396395}
397function U(e) {
396function C(e) {
398397 ;(e.add("@keet/add-device", N),
399398 e.add("@keet/update-device", W),
400 e.add("@keet/remove-device", j),
401 e.add("@keet/start-indexing", D),
402 e.add("@keet/stop-indexing", _),
399 e.add("@keet/remove-device", L),
400 e.add("@keet/start-indexing", _),
401 e.add("@keet/stop-indexing", D),
403402 e.add("@keet/accept-join-request", q),
404403 e.add("@keet/reject-join-request", I),
405404 e.add("@keet/update-member", S),
406405 e.add("@keet/change-member-role", V),
407 e.add("@keet/change-member-status", L),
408 e.add("@keet/remove-member", C),
406 e.add("@keet/change-member-status", j),
407 e.add("@keet/remove-member", Y),
409408 e.add("@keet/add-invitation", P),
410 e.add("@keet/remove-invitation", x),
411 e.add("@keet/move-indexer", E))
409 e.add("@keet/remove-invitation", E),
410 e.add("@keet/move-indexer", x))
412411}
413module.exports = { [b]: U, MemberStatus: h, addDevice: R, addMember: T }
412module.exports = { [b]: C, MemberStatus: h, addDevice: R, addMember: T }
@holepunchto/keet-core/lib/core/contract/members/legacy.js +5 -5
……@@ -4,8 +4,8 @@ const e = require("compact-encoding"),
44 ;(e.fixed32.preencode(i, d.deviceKey),
55 e.fixed32.preencode(i, d.noisePublicKey),
66 d.attestation
7 ? e.buffer.preencode(i, d.attestation)
8 : (d.deviceName || d.identityDevicePublicKey) && e.buffer.preencode(i, null))
7 ? e.optionalBuffer.preencode(i, d.attestation)
8 : (d.deviceName || d.identityDevicePublicKey) && e.optionalBuffer.preencode(i, null))
99 let c = 0
1010 ;(d.deviceName && (c |= 1),
1111 d.identityDevicePublicKey && (c |= 2),
……@@ -17,8 +17,8 @@ const e = require("compact-encoding"),
1717 ;(e.fixed32.encode(i, d.deviceKey),
1818 e.fixed32.encode(i, d.noisePublicKey),
1919 d.attestation
20 ? e.buffer.encode(i, d.attestation)
21 : (d.deviceName || d.identityDevicePublicKey) && e.buffer.encode(i, null))
20 ? e.optionalBuffer.encode(i, d.attestation)
21 : (d.deviceName || d.identityDevicePublicKey) && e.optionalBuffer.encode(i, null))
2222 let c = 0
2323 ;(d.deviceName && (c |= 1),
2424 d.identityDevicePublicKey && (c |= 2),
……@@ -30,7 +30,7 @@ const e = require("compact-encoding"),
3030 const d = {
3131 deviceKey: e.fixed32.decode(i),
3232 noisePublicKey: e.fixed32.decode(i),
33 attestation: i.start < i.end ? e.buffer.decode(i) : null,
33 attestation: i.start < i.end ? e.optionalBuffer.decode(i) : null,
3434 deviceName: null,
3535 identityDevicePublicKey: null,
3636 }
@holepunchto/keet-core/lib/core/files/index.js +65 -45
……@@ -1,13 +1,14 @@
11const e = require("path"),
22 t = require("fs"),
33 a = require("hypercore-blob-server"),
4 i = require("ready-resource"),
5 r = require("safety-catch"),
6 l = require("hypercore-id-encoding"),
7 { pipelinePromise: o, Readable: n } = require("streamx"),
8 s = require("b4a"),
9 c = 6048e5
10module.exports = class extends i {
4 i = require("hyperblobs"),
5 r = require("ready-resource"),
6 l = require("safety-catch"),
7 o = require("hypercore-id-encoding"),
8 { pipelinePromise: n, Readable: s } = require("streamx"),
9 c = require("b4a"),
10 d = 6048e5
11module.exports = class extends r {
1112 constructor(e, t = {}) {
1213 ;(super(),
1314 (this.keet = e),
……@@ -17,7 +18,7 @@ module.exports = class extends i {
1718 resolve: this._resolveEncryptionKey.bind(this),
1819 })),
1920 (this._activeDownloads = new Map()),
20 (this._onerror = t.onerror || r),
21 (this._onerror = t.onerror || l),
2122 this.ready().catch(this._onerror))
2223 }
2324 _open() {
……@@ -41,7 +42,8 @@ module.exports = class extends i {
4142 )
4243 }
4344 _getLinkOptions(e) {
44 if (!e.pointer.externalBlob && !e.pointer.externalDrive) throw new Error("Invalid file pointer")
45 if (!e.pointer?.externalBlob && !e.pointer?.externalDrive)
46 throw new Error("Invalid file pointer")
4547 return e.pointer.externalBlob
4648 ? {
4749 collection: "@local/blob-files",
……@@ -58,14 +60,14 @@ module.exports = class extends i {
5860 }
5961 }
6062 async _clearAllFiles(e, t, a, { leaving: i = !1 } = {}) {
61 const l = t ? "@local/blob-files" : "@local/drive-files",
63 const r = t ? "@local/blob-files" : "@local/drive-files",
6264 o = t ? "@local/blob-files-by-room" : "@local/drive-files-by-room",
6365 n = []
6466 for await (const t of e.find(o, { gte: { roomKey: a }, lte: { roomKey: a } })) {
6567 if (t.cleared) continue
6668 const { key: a, opts: o } = this._getLinkOptions(t.file),
6769 s = this.server.clear(a, o)
68 ;(s.catch(r), n.push(s), i ? await e.delete(l, t) : await e.insert(l, { ...t, cleared: !0 }))
70 ;(s.catch(l), n.push(s), i ? await e.delete(r, t) : await e.insert(r, { ...t, cleared: !0 }))
6971 }
7072 return (await Promise.allSettled(n))
7173 .filter((e) => "fulfilled" === e.status)
……@@ -77,8 +79,8 @@ module.exports = class extends i {
7779 const i = []
7880 for (const e of a) {
7981 const { key: t, opts: a } = this._getLinkOptions(e.file),
80 l = this.server.clear(t, a)
81 ;(l.catch(r), i.push(l))
82 r = this.server.clear(t, a)
83 ;(r.catch(l), i.push(r))
8284 }
8385 return {
8486 recordsToClear: a,
……@@ -89,7 +91,7 @@ module.exports = class extends i {
8991 }
9092 async _createFile(e, t, a) {
9193 const i = { metadata: a, pointer: { externalBlob: { key: e.externalBlobs.key, blob: t } } }
92 i.metadata?.userdata && (i.metadata.userdata = s.from(i.metadata.userdata, "base64"))
94 i.metadata?.userdata && (i.metadata.userdata = c.from(i.metadata.userdata, "base64"))
9395 const r = await this.keet.internalEnterLocalTransaction()
9496 try {
9597 const t = {
……@@ -109,42 +111,42 @@ module.exports = class extends i {
109111 async saveFile(a, i, r) {
110112 this.opened || (await this.ready())
111113 const l = e.basename(i),
112 n = this.keet.internalOpenExistingRoom(a)
114 o = this.keet.internalOpenExistingRoom(a)
113115 try {
114116 await this.keet.internalBlobsActiveInRoom(a)
115117 const e = t.createReadStream(i),
116 s = n.externalBlobs.createWriteStream(r)
117 return (await o(e, s), this._createFile(n, s.id, { name: l, ...r }))
118 s = o.externalBlobs.createWriteStream(r)
119 return (await n(e, s), this._createFile(o, s.id, { name: l, ...r }))
118120 } finally {
119 this.keet.internalReleaseRoom(n)
121 this.keet.internalReleaseRoom(o)
120122 }
121123 }
122 subscribeAddFile(a, i, l = {}) {
124 subscribeAddFile(a, i, r = {}) {
123125 const o = e.basename(i),
124 s = this,
125 c = new n()
126 n = this,
127 c = new s()
126128 return (
127 t.stat(i, (e, n) => {
129 t.stat(i, (e, s) => {
128130 if (c.destroyed) return
129131 if (e) return c.destroy(e)
130132 let d = 0
131 const y = n.size,
133 const y = s.size,
132134 h = t.createReadStream(i),
133 w = s.keet.internalOpenExistingRoom(a),
134 p = w.externalBlobs.createWriteStream(l)
135 this.keet.internalBlobsActiveInRoom(a).catch(r)
136 let f = setInterval(() => {
135 p = n.keet.internalOpenExistingRoom(a),
136 w = p.externalBlobs.createWriteStream(r)
137 this.keet.internalBlobsActiveInRoom(a).catch(l)
138 let b = setInterval(() => {
137139 c.destroyed || (d < y && c.push({ bytesAdded: d, byteLength: y, result: null }))
138 }, l?.debounceTime ?? 500)
139 ;(h.pipe(p),
140 }, r?.debounceTime ?? 500)
141 ;(h.pipe(w),
140142 h.on("data", (e) => {
141143 d += e.byteLength
142144 }),
143145 h.on("error", (e) => c.destroy(e)),
144 p.on("close", async () => {
145 if ((f && clearInterval(f), (f = null), !c.destroyed))
146 w.on("close", async () => {
147 if ((b && clearInterval(b), (b = null), !c.destroyed))
146148 try {
147 const e = await s._createFile(w, p.id, { name: o, ...l })
149 const e = await n._createFile(p, w.id, { name: o, ...r })
148150 ;(c.push({ bytesAdded: d, byteLength: y, result: e }), c.push(null))
149151 } catch (e) {
150152 c.destroy(e)
……@@ -154,13 +156,13 @@ module.exports = class extends i {
154156 h.destroy(e)
155157 }),
156158 c.on("close", () => {
157 ;(f && clearInterval(f),
158 (f = null),
159 ;(b && clearInterval(b),
160 (b = null),
159161 h.destroy(),
160 p.destroy(),
161 s.keet.internalReleaseRoom(w))
162 w.destroy(),
163 n.keet.internalReleaseRoom(p))
162164 }),
163 l.onFileStat && l.onFileStat())
165 r.onFileStat && r.onFileStat())
164166 }),
165167 c
166168 )
……@@ -191,7 +193,7 @@ module.exports = class extends i {
191193 return { bytesCleared: a + i }
192194 }
193195 async clearOldFiles() {
194 const e = Date.now() - c,
196 const e = Date.now() - d,
195197 t = new Set(),
196198 a = await this._findAndClearOldFiles("@local/blob-files-by-last-accessed", e),
197199 i = await this._findAndClearOldFiles("@local/drive-files-by-last-accessed", e),
……@@ -200,11 +202,11 @@ module.exports = class extends i {
200202 for (const e of a.recordsToClear)
201203 (await r.insert("@local/blob-files", { ...e, cleared: !0 }),
202204 await this._updateFileStats(r, { ...e, cleared: !0 }),
203 t.add(l.encode(e.roomKey)))
205 t.add(o.encode(e.roomKey)))
204206 for (const e of i.recordsToClear)
205207 (await r.insert("@local/drive-files", { ...e, cleared: !0 }),
206208 await this._updateFileStats(r, { ...e, cleared: !0 }),
207 t.add(l.encode(e.roomKey)))
209 t.add(o.encode(e.roomKey)))
208210 ;(await r.insert("@local/file-gc-info", { lastCleared: Date.now() }), await r.flush())
209211 } finally {
210212 await this.keet.internalExitLocalTransaction()
……@@ -217,16 +219,16 @@ module.exports = class extends i {
217219 try {
218220 await this.keet.internalBlobsActiveInRoom(t)
219221 const r = await i.get(e, { roomKey: t, file: a })
220 let o = r?.encryptionKey
221 if (!o) {
222 let l = r?.encryptionKey
223 if (!l) {
222224 const e = await i.get("@local/rooms", { roomKey: t })
223 o = e?.encryptionKey
225 l = e?.encryptionKey
224226 }
225227 const n = {
226228 ...r,
227229 cleared: r?.cleared ?? !1,
228230 roomKey: t,
229 encryptionKey: o,
231 encryptionKey: l,
230232 file: a,
231233 lastAccessed: Date.now(),
232234 }
……@@ -234,7 +236,7 @@ module.exports = class extends i {
234236 await i.insert(e, n),
235237 r || (await this._updateFileStats(i, n)),
236238 await i.flush(),
237 r || this.keet.emit("local-files-changed", l.encode(t)),
239 r || this.keet.emit("local-files-changed", o.encode(t)),
238240 n
239241 )
240242 } finally {
……@@ -347,6 +349,24 @@ module.exports = class extends i {
347349 this._activeDownloads.get(t) === a && this._activeDownloads.delete(t)
348350 }))
349351 }
352 async readFileStream(e, t) {
353 if (!t.pointer.externalBlob) throw new Error("Only external blob files support streaming")
354 this.opened || (await this.ready())
355 const a = t.pointer.externalBlob.blob,
356 r = t.pointer.externalBlob.key,
357 { collection: o } = this._getLinkOptions(t),
358 n = await this._ensureLocalFile(o, e, t),
359 s = this.store.get({ key: r, encryptionKey: n.encryptionKey, encrypted: !0, active: !1 })
360 await s.ready()
361 const c = new i(s).createReadStream(a)
362 return (c.once("close", () => s.close().catch(l)), c)
363 }
364 async saveToDisk(e, a, i) {
365 this.opened || (await this.ready())
366 const r = await this.readFileStream(e, a),
367 l = t.createWriteStream(i)
368 await n(r, l)
369 }
350370 async refreshLinks(e) {
351371 this.opened || (await this.ready())
352372 const t = []
@holepunchto/keet-core/lib/core/sync/index.js +7 -3
……@@ -57,9 +57,13 @@ module.exports = class extends t {
5757 }
5858 if (this._updater.updates.cache) {
5959 const e = this._updater.updates.cache
60 ;(e.device &&
61 (await t.insert("@local/devices", { roomKey: this.base.key, device: e.device })),
62 e.member && (await t.insert("@local/members", e.member)))
60 if (
61 (e.device &&
62 (await t.insert("@local/devices", { roomKey: this.base.key, device: e.device })),
63 e.member && (await t.insert("@local/members", e.member)),
64 e.otherMembers)
65 )
66 for (const s of e.otherMembers) await t.insert("@local/members", s)
6367 }
6468 const r = await t.get("@local/rooms", this._updater.roomInfo)
6569 if (!r) {
@holepunchto/keet-core/lib/core/sync/loader.js +7 -5
……@@ -367,10 +367,12 @@ module.exports = class extends t {
367367 n ? this._loadFiles(a) : null,
368368 ])
369369 if (!r) throw s.CORRUPT("Last chat message does not have a member")
370 return (
371 r.profile.avatar && (await l(this.inputBlobs, r.profile.avatar)),
372 d && (e.message.files = d),
373 { message: e, reactions: i, device: o, member: r }
374 )
370 ;(r.profile.avatar && (await l(this.inputBlobs, r.profile.avatar)), d && (e.message.files = d))
371 const g = []
372 if (e.event?.memberRemoved?.memberKey) {
373 const t = await this.input.get("@keet/members", { key: e.event.memberRemoved.memberKey })
374 t && (t.profile.avatar && (await l(this.inputBlobs, t.profile.avatar)), g.push(t))
375 }
376 return { message: e, reactions: i, device: o, member: r, otherMembers: g }
375377 }
376378}
@holepunchto/keet-core/lib/core/sync/updater.js +2 -1
……@@ -119,7 +119,7 @@ module.exports = class extends e {
119119 (this.roomInfo.lastMessage = e.message),
120120 (this.roomInfo.lastMember = e.member),
121121 (this.roomInfo.lastMessageReactions = e.reactions),
122 (this.updates.cache = { member: e.member, device: e.device }))
122 (this.updates.cache = { member: e.member, otherMembers: e.otherMembers, device: e.device }))
123123 const t = this.currentRoomInfo?.lastMessage
124124 ;(t && f(t, e.message)) || (this.updates.chat = e.message)
125125 }
……@@ -290,6 +290,7 @@ module.exports = class extends e {
290290 )
291291 }
292292 async _loadPrivateProfileChanges() {
293 if (!0 === this.keet.debugDisableSynching) return
293294 let e = null
294295 if (this.isCurrentPrivateProfile && this.roomInfo.selfDevice) {
295296 const t = this.changes.get(a.DB_VIEW_NAME)
@holepunchto/keet-core/lib/core/users/index.js +2 -2
……@@ -43,10 +43,10 @@ class o extends t {
4343 this._lookupOwn(t).catch(this.keet.onerror),
4444 this._keetRegistry.reserved.core.once("append", this._boundLookupOwn))
4545 }
46 async _emit(e, t = null, s = null) {
46 _emit(e, t = null, s = null) {
4747 for (const i of this._subs) {
4848 if (this.keet.closing) return
49 i.push({ status: h(e), reservation: t, record: this._encode(s) })
49 i.push({ status: h(e), reservation: t, record: s })
5050 }
5151 }
5252 async _catch(e) {
@holepunchto/keet-core/lib/push/index.js +69 -65
……@@ -12,8 +12,10 @@ const e = require("hypercore-id-encoding"),
1212 } = require("../../schema/spec"),
1313 c = r("@keet/room-type"),
1414 s = require("../core/local"),
15 u = require("keet-identity-key")
16function d(e) {
15 u = require("keet-identity-key"),
16 { ProofEncoding: d } = require("keet-identity-key/lib/encoding"),
17 m = require("compact-encoding")
18function y(e) {
1719 return "@keet/start-call" === e.name
1820 ? "call"
1921 : "@keet/join-call" === e.name
……@@ -22,7 +24,7 @@ function d(e) {
2224 ? "call_hangup"
2325 : void 0
2426}
25function m(e) {
27function f(e) {
2628 return "@keet/start-call" === e.name
2729 ? "Message for call"
2830 : "@keet/join-call" === e.name
……@@ -31,7 +33,7 @@ function m(e) {
3133 ? "Message for call hangup"
3234 : void 0
3335}
34function y(e, l) {
36function p(e, l) {
3537 switch (e) {
3638 case c.Default:
3739 return (l("Room type is default"), "0")
……@@ -43,18 +45,18 @@ function y(e, l) {
4345 throw new Error("Incompatible legacy room type:", e)
4446 }
4547}
46function f(e, l, t) {
48function g(e, l, t) {
4749 try {
4850 return !!u.verify(e, l, { expectedIdentity: t })
4951 } catch {
5052 return !1
5153 }
5254}
53module.exports = async function (r, c, { log: u = () => {}, profile: p = !0 } = {}) {
54 const g = t.open(r).active()
55 if (!g && p) return (u("no active profile is made"), null)
56 const { version: k, discoveryKey: h, proof: v } = a.decode(c),
57 b = new l(g ? g.storage : r, {
55module.exports = async function (r, c, { log: u = () => {}, profile: k = !0 } = {}) {
56 const h = t.open(r).active()
57 if (!h && k) return (u("no active profile is made"), null)
58 const { version: v, discoveryKey: b, proof: x } = a.decode(c),
59 K = new l(h ? h.storage : r, {
5860 readOnly: !0,
5961 blockCache: !1,
6062 tableCacheIndexAndFilterBlocks: !1,
……@@ -64,55 +66,57 @@ module.exports = async function (r, c, { log: u = () => {}, profile: p = !0 } =
6466 filterPolicy: null,
6567 })
6668 try {
67 const l = s.rocks(b.rocks.columnFamily("keet/local-database"))
69 const l = s.rocks(K.rocks.columnFamily("keet/local-database"))
6870 ;(await l.ready(), u("Keet local database is ready"))
6971 const [t, r] = await Promise.all([
70 l.get("@local/rooms-by-discovery-key", { discoveryKey: h }),
72 l.get("@local/rooms-by-discovery-key", { discoveryKey: b }),
7173 l.get("@local/identity"),
7274 ])
7375 if (!t || t.status.isRemoved) return (u("Room member was removed from room"), null)
7476 const c = await l.get("@local/room-preferences", { roomKey: t.roomKey })
7577 if (c && (!c.status.isActive || c.status.isFullyMuted)) return null
76 const p = await a.receive(b, t.roomKey, v, k),
77 g = 1 === k ? p?.result : p,
78 x = 1 === k ? p?.attest : null
79 if ((u("Receiving notification"), !g)) return null
80 if ((u("Notification is good"), !g.block)) return null
81 if ((u("Notification was not blocked"), !g.newer)) return null
82 const K = g.key,
83 w = g.discoveryKey,
84 M = o(n.from(g.proof.block.value), {
78 const k = await a.receive(K, t.roomKey, x, v),
79 h = 1 === v ? k?.result : k,
80 w = 1 === v ? k?.attest : null,
81 M = w ? m.decode(d, w) : null
82 if ((u("Receiving notification"), !h)) return null
83 if ((u("Notification is good"), !h.block)) return null
84 if ((u("Notification was not blocked"), !h.newer)) return null
85 const q = h.key,
86 T = h.discoveryKey,
87 I = o(n.from(h.proof.block.value), {
8588 autobase: t.roomKey,
8689 encryptionKey: t.encryptionKey,
87 key: K,
88 manifest: g.proof.manifest,
89 index: g.block.index,
90 key: q,
91 manifest: h.proof.manifest,
92 index: h.block.index,
9093 }),
91 [T, q] = await Promise.all([l.get("@local/devices", { device: { key: K } }), M]),
92 I = T?.device,
93 R = i(q),
94 [j, D] = await Promise.all([
95 I ? l.get("@local/contacts", { memberKey: I.memberKey }) : null,
96 I ? l.get("@local/members", { key: I.memberKey }) : null,
94 [R, j] = await Promise.all([l.get("@local/devices", { device: { key: q } }), I]),
95 D = R?.device,
96 F = i(j),
97 B = M?.identity || D?.memberKey,
98 [P, A] = await Promise.all([
99 B ? l.get("@local/contacts", { memberKey: B }) : null,
100 B ? l.get("@local/members", { key: B }) : null,
97101 ]),
98 F = !!j?.status.isBlocked
99 u("Blocked?: ", F)
100 const B = x ? f(x, K, r.publicKey) : D && n.equals(D.key, r.publicKey)
102 E = !!P?.status.isBlocked
103 u("Blocked?: ", E)
104 const S = w ? g(w, q, r.publicKey) : A && n.equals(A.key, r.publicKey)
101105 u(
102 `Member exists ?: ${null !== D} and keys are equal?: ${null !== D && n.equals(D.key, r.publicKey)}`,
106 `Member exists ?: ${null !== A} and keys are equal?: ${null !== A && n.equals(A.key, r.publicKey)}`,
103107 )
104 const A = D ? D.profile.displayName : null,
105 P = D ? D.profile.avatar : null,
106 S = t ? t.config.avatar : null,
107 E = t ? t.digest.abi.version : 0
108 let N = null
109 switch (R.name) {
108 const N = A ? A.profile.displayName : null,
109 _ = A ? A.profile.avatar : null,
110 C = t ? t.config.avatar : null,
111 O = t ? t.digest.abi.version : 0
112 let $ = null
113 switch (F.name) {
110114 case "@keet/add-chat-message": {
111 const l = R.value.header.timestamp,
112 a = R.value.message
115 const l = F.value.header.timestamp,
116 a = F.value.message
113117 if (a?.files && a.files.length > 0) {
114118 const e = a.files[0]
115 ;((N = {
119 ;(($ = {
116120 timestamp: l,
117121 type: "file",
118122 chatText: null,
……@@ -122,7 +126,7 @@ module.exports = async function (r, c, { log: u = () => {}, profile: p = !0 } =
122126 }),
123127 u("Message for file"))
124128 } else if (a?.event?.locationShared)
125 ((N = {
129 (($ = {
126130 timestamp: l,
127131 type: "location",
128132 chatText: a.text,
……@@ -132,7 +136,7 @@ module.exports = async function (r, c, { log: u = () => {}, profile: p = !0 } =
132136 }),
133137 u("Message for location"))
134138 else if (a.text)
135 ((N = {
139 (($ = {
136140 timestamp: l,
137141 type: "text",
138142 chatText: a.text,
……@@ -141,9 +145,9 @@ module.exports = async function (r, c, { log: u = () => {}, profile: p = !0 } =
141145 location: null,
142146 }),
143147 u("Message for text"))
144 else if (a.event.callStarted && E < 23) {
148 else if (a.event.callStarted && O < 23) {
145149 if (Math.abs(Date.now() - l) > 12e4) return
146 ;((N = {
150 ;(($ = {
147151 timestamp: l,
148152 type: "call",
149153 chatText: null,
……@@ -152,9 +156,9 @@ module.exports = async function (r, c, { log: u = () => {}, profile: p = !0 } =
152156 location: null,
153157 }),
154158 u("Message for call"))
155 } else if (a.event.callHangup && E < 23) {
159 } else if (a.event.callHangup && O < 23) {
156160 if (Math.abs(Date.now() - l) > 12e4) return
157 ;((N = {
161 ;(($ = {
158162 timestamp: l,
159163 type: "call_hangup",
160164 chatText: null,
……@@ -170,16 +174,16 @@ module.exports = async function (r, c, { log: u = () => {}, profile: p = !0 } =
170174 case "@keet/join-call":
171175 case "@keet/leave-call":
172176 case "@keet/end-call": {
173 if (E < 23) return
174 const l = R.value.header.timestamp
177 if (O < 23) return
178 const l = F.value.header.timestamp
175179 if (Math.abs(Date.now() - l) > 12e4) return
176 const t = d(R),
177 a = m(R)
178 ;((N = {
180 const t = y(F),
181 a = f(F)
182 ;(($ = {
179183 timestamp: l,
180184 type: t,
181185 chatText: null,
182 callId: e.encode(R.value.callKey),
186 callId: e.encode(F.value.callKey),
183187 fileType: null,
184188 location: null,
185189 }),
……@@ -187,27 +191,27 @@ module.exports = async function (r, c, { log: u = () => {}, profile: p = !0 } =
187191 break
188192 }
189193 }
190 const _ = {
194 const z = {
191195 id: null,
192 sender: { id: e.encode(K), length: g.length, blocked: F, self: B, name: A, memberAvatar: P },
196 sender: { id: e.encode(q), length: h.length, blocked: E, self: S, name: N, memberAvatar: _ },
193197 room: {
194198 key: t.roomKey,
195199 title: t.config.title,
196 type: y(t.digest.settings.roomType, u),
197 roomAvatar: S,
200 type: p(t.digest.settings.roomType, u),
201 roomAvatar: C,
198202 },
199 proof: { discoveryKey: w, data: g.proof },
200 index: g.block.index,
201 message: N,
203 proof: { discoveryKey: T, data: h.proof },
204 index: h.block.index,
205 message: $,
202206 }
203207 return (
204 (_.id = _.sender.id + (-1 !== _.index ? "/b" + _.index : "/l" + _.sender.length)),
208 (z.id = z.sender.id + (-1 !== z.index ? "/b" + z.index : "/l" + z.sender.length)),
205209 u("Returning result"),
206 _
210 z
207211 )
208212 } catch (e) {
209213 return (u("Error:", e), null)
210214 } finally {
211 ;(await b.close(), u("Storage closed"))
215 ;(await K.close(), u("Storage closed"))
212216 }
213217}
@holepunchto/keet-core/lib/rpc/client.js +117 -106
……@@ -31,8 +31,8 @@ module.exports = function (s) {
3131 k = s.register(27, { request: e, response: e }),
3232 D = s.register(28, { request: e, response: e }),
3333 U = s.register(29, { request: e, response: e }),
34 E = s.register(30, { request: e, response: e }),
35 T = s.register(31, { request: e, response: e }),
34 T = s.register(30, { request: e, response: e }),
35 E = s.register(31, { request: e, response: e }),
3636 B = s.register(32, { request: e, response: e }),
3737 L = s.register(33, { request: e, response: e }),
3838 x = s.register(34, { request: e, response: e }),
……@@ -85,8 +85,8 @@ module.exports = function (s) {
8585 ke = s.register(81, { request: e, response: e }),
8686 De = s.register(82, { request: e, response: e }),
8787 Ue = s.register(83, { request: e, response: e }),
88 Ee = s.register(84, { request: e, response: e }),
89 Te = s.register(85, { request: e, response: e }),
88 Te = s.register(84, { request: e, response: e }),
89 Ee = s.register(85, { request: e, response: e }),
9090 Be = s.register(86, { request: e, response: e }),
9191 Le = s.register(87, { request: e, response: e }),
9292 xe = s.register(88, { request: e, response: e }),
……@@ -139,8 +139,8 @@ module.exports = function (s) {
139139 kr = s.register(135, { request: e, response: e }),
140140 Dr = s.register(136, { request: e, response: e }),
141141 Ur = s.register(137, { request: e, response: e }),
142 Er = s.register(138, { request: e, response: e }),
143 Tr = s.register(139, { request: e, response: e }),
142 Tr = s.register(138, { request: e, response: e }),
143 Er = s.register(139, { request: e, response: e }),
144144 Br = s.register(140, { request: e, response: e }),
145145 Lr = s.register(141, { request: e, response: e }),
146146 xr = s.register(142, { request: e, response: e }),
……@@ -193,8 +193,8 @@ module.exports = function (s) {
193193 ks = s.register(189, { request: e, response: e }),
194194 Ds = s.register(190, { request: e, response: e }),
195195 Us = s.register(191, { request: e, response: e }),
196 Es = s.register(192, { request: e, response: e }),
197 Ts = s.register(193, { request: e, response: e }),
196 Ts = s.register(192, { request: e, response: e }),
197 Es = s.register(193, { request: e, response: e }),
198198 Bs = s.register(194, { request: e, response: e }),
199199 Ls = s.register(195, { request: e, response: e }),
200200 xs = s.register(196, { request: e, response: e }),
……@@ -247,8 +247,8 @@ module.exports = function (s) {
247247 kt = s.register(243, { request: e, response: e }),
248248 Dt = s.register(244, { request: e, response: e }),
249249 Ut = s.register(245, { request: e, response: e }),
250 Et = s.register(246, { request: e, response: e }),
251 Tt = s.register(247, { request: e, response: e }),
250 Tt = s.register(246, { request: e, response: e }),
251 Et = s.register(247, { request: e, response: e }),
252252 Bt = s.register(248, { request: e, response: e }),
253253 Lt = s.register(249, { request: e, response: e }),
254254 xt = s.register(250, { request: e, response: e }),
……@@ -259,7 +259,9 @@ module.exports = function (s) {
259259 Kt = s.register(255, { request: e, response: e }),
260260 Vt = s.register(256, { request: e, response: e }),
261261 Jt = s.register(257, { request: e, response: e }),
262 Ot = s.register(258, { request: e, response: e })
262 Ot = s.register(258, { request: e, response: e }),
263 Wt = s.register(259, { request: e, response: e }),
264 Gt = s.register(260, { request: e, response: e })
263265 return {
264266 swarm: {
265267 ready: (...e) => {
……@@ -390,12 +392,12 @@ module.exports = function (s) {
390392 },
391393 subscribePendingRooms: (...e) => {
392394 const s = Array.from(e),
393 t = E.createRequestStream()
395 t = T.createRequestStream()
394396 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
395397 },
396398 subscribePushNotificationChanges: (...e) => {
397399 const s = Array.from(e),
398 t = T.createRequestStream()
400 t = E.createRequestStream()
399401 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
400402 },
401403 subscribeActivateRoom: (...e) => {
……@@ -624,12 +626,12 @@ module.exports = function (s) {
624626 },
625627 subscribeContactInfo: (...e) => {
626628 const s = Array.from(e),
627 t = Ee.createRequestStream()
629 t = Te.createRequestStream()
628630 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
629631 },
630632 getSelfContactInfo: (...e) => {
631633 const r = Array.from(e)
632 return Te.request(r)
634 return Ee.request(r)
633635 },
634636 blockMember: (...e) => {
635637 const r = Array.from(e)
……@@ -851,11 +853,11 @@ module.exports = function (s) {
851853 },
852854 getDmByMemberId: (...e) => {
853855 const r = Array.from(e)
854 return Er.request(r)
856 return Tr.request(r)
855857 },
856858 getDmRequestsByStatus: (...e) => {
857859 const r = Array.from(e)
858 return Tr.request(r)
860 return Er.request(r)
859861 },
860862 subscribeDmRequestsByStatus: (...e) => {
861863 const s = Array.from(e),
……@@ -983,398 +985,407 @@ module.exports = function (s) {
983985 const r = Array.from(e)
984986 return cs.request(r)
985987 },
988 readFileStream: (...e) => {
989 const s = Array.from(e),
990 t = ms.createRequestStream()
991 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
992 },
993 saveToDisk: (...e) => {
994 const r = Array.from(e)
995 return gs.request(r)
996 },
986997 clearFile: (...e) => {
987998 const r = Array.from(e)
988 return ms.request(r)
999 return ps.request(r)
9891000 },
9901001 unclearFile: (...e) => {
9911002 const r = Array.from(e)
992 return gs.request(r)
1003 return ys.request(r)
9931004 },
9941005 getFileCleared: (...e) => {
9951006 const r = Array.from(e)
996 return ps.request(r)
1007 return fs.request(r)
9971008 },
9981009 subscribeFileCleared: (...e) => {
9991010 const s = Array.from(e),
1000 t = ys.createRequestStream()
1011 t = As.createRequestStream()
10011012 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
10021013 },
10031014 subscribeFiles: (...e) => {
10041015 const s = Array.from(e),
1005 t = fs.createRequestStream()
1016 t = ds.createRequestStream()
10061017 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
10071018 },
10081019 getStats: (...e) => {
10091020 const r = Array.from(e)
1010 return As.request(r)
1021 return bs.request(r)
10111022 },
10121023 subscribeProgress: (...e) => {
10131024 const s = Array.from(e),
1014 t = ds.createRequestStream()
1025 t = Rs.createRequestStream()
10151026 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
10161027 },
10171028 subscribeSystemUpdateRequest: (...e) => {
10181029 const s = Array.from(e),
1019 t = bs.createRequestStream()
1030 t = ls.createRequestStream()
10201031 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
10211032 },
10221033 lookupUsername: (...e) => {
10231034 const r = Array.from(e)
1024 return Rs.request(r)
1035 return Ss.request(r)
10251036 },
10261037 lookupUserByMemberId: (...e) => {
10271038 const r = Array.from(e)
1028 return ls.request(r)
1039 return ws.request(r)
10291040 },
10301041 subscribeUsername: (...e) => {
10311042 const s = Array.from(e),
1032 t = Ss.createRequestStream()
1043 t = vs.createRequestStream()
10331044 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
10341045 },
10351046 registerUsername: (...e) => {
10361047 const r = Array.from(e)
1037 return ws.request(r)
1048 return Ms.request(r)
10381049 },
10391050 updateUsername: (...e) => {
10401051 const r = Array.from(e)
1041 return vs.request(r)
1052 return hs.request(r)
10421053 },
10431054 searchUsername: (...e) => {
10441055 const r = Array.from(e)
1045 return Ms.request(r)
1056 return Cs.request(r)
10461057 },
10471058 getReservationsByKey: (...e) => {
10481059 const r = Array.from(e)
1049 return hs.request(r)
1060 return Ps.request(r)
10501061 },
10511062 checkUsername: (...e) => {
10521063 const r = Array.from(e)
1053 return Cs.request(r)
1064 return Is.request(r)
10541065 },
10551066 updateRoomPreferences: (...e) => {
10561067 const r = Array.from(e)
1057 return Ps.request(r)
1068 return Fs.request(r)
10581069 },
10591070 getRoomPreferences: (...e) => {
10601071 const r = Array.from(e)
1061 return Is.request(r)
1072 return ks.request(r)
10621073 },
10631074 audit: (...e) => {
10641075 const r = Array.from(e)
1065 return Fs.request(r)
1076 return Ds.request(r)
10661077 },
10671078 close: (...e) => {
10681079 const r = Array.from(e)
1069 return ks.request(r)
1080 return Us.request(r)
10701081 },
10711082 suspend: (...e) => {
10721083 const r = Array.from(e)
1073 return Ds.request(r)
1084 return Ts.request(r)
10741085 },
10751086 resume: (...e) => {
10761087 const r = Array.from(e)
1077 return Us.request(r)
1088 return Es.request(r)
10781089 },
10791090 getDebugFlags: (...e) => {
10801091 const r = Array.from(e)
1081 return Es.request(r)
1092 return Bs.request(r)
10821093 },
10831094 updateDebugFlag: (...e) => {
10841095 const r = Array.from(e)
1085 return Ts.request(r)
1096 return Ls.request(r)
10861097 },
10871098 repair: (...e) => {
10881099 const r = Array.from(e)
1089 return Bs.request(r)
1100 return xs.request(r)
10901101 },
10911102 rotateWriter: (...e) => {
10921103 const r = Array.from(e)
1093 return Ls.request(r)
1104 return Ns.request(r)
10941105 },
10951106 getRoomStats: (...e) => {
10961107 const r = Array.from(e)
1097 return xs.request(r)
1108 return js.request(r)
10981109 },
10991110 compact: (...e) => {
11001111 const r = Array.from(e)
1101 return Ns.request(r)
1112 return zs.request(r)
11021113 },
11031114 setUnread: (...e) => {
11041115 const r = Array.from(e)
1105 return js.request(r)
1116 return Hs.request(r)
11061117 },
11071118 getUnread: (...e) => {
11081119 const r = Array.from(e)
1109 return zs.request(r)
1120 return Ks.request(r)
11101121 },
11111122 getUnreadAnchor: (...e) => {
11121123 const r = Array.from(e)
1113 return Hs.request(r)
1124 return Vs.request(r)
11141125 },
11151126 setUnreadAnchor: (...e) => {
11161127 const r = Array.from(e)
1117 return Ks.request(r)
1128 return Js.request(r)
11181129 },
11191130 subscribeUnreadAnchor: (...e) => {
11201131 const s = Array.from(e),
1121 t = Vs.createRequestStream()
1132 t = Os.createRequestStream()
11221133 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
11231134 },
11241135 subscribeSentLength: (...e) => {
11251136 const s = Array.from(e),
1126 t = Js.createRequestStream()
1137 t = Ws.createRequestStream()
11271138 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
11281139 },
11291140 createErrorStream: (...e) => {
11301141 const s = Array.from(e),
1131 t = Os.createRequestStream()
1142 t = Gs.createRequestStream()
11321143 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
11331144 },
11341145 boot: (...e) => {
11351146 const r = Array.from(e)
1136 return Ws.request(r)
1147 return Qs.request(r)
11371148 },
11381149 subscribeErrors: (...e) => {
11391150 const s = Array.from(e),
1140 t = Gs.createRequestStream()
1151 t = Xs.createRequestStream()
11411152 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
11421153 },
11431154 setCallRingingId: (...e) => {
11441155 const r = Array.from(e)
1145 return Qs.request(r)
1156 return Ys.request(r)
11461157 },
11471158 subscribeNotifications: (...e) => {
11481159 const s = Array.from(e),
1149 t = Xs.createRequestStream()
1160 t = Zs.createRequestStream()
11501161 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
11511162 },
11521163 getDHTSettings: (...e) => {
11531164 const r = Array.from(e)
1154 return Ys.request(r)
1165 return $s.request(r)
11551166 },
11561167 updateDHTSettings: (...e) => {
11571168 const r = Array.from(e)
1158 return Zs.request(r)
1169 return _s.request(r)
11591170 },
11601171 setRoomFavorite: (...e) => {
11611172 const r = Array.from(e)
1162 return $s.request(r)
1173 return et.request(r)
11631174 },
11641175 clearOldFiles: (...e) => {
11651176 const r = Array.from(e)
1166 return _s.request(r)
1177 return rt.request(r)
11671178 },
11681179 },
11691180 preferences: {
11701181 subscribe: (...e) => {
11711182 const s = Array.from(e),
1172 t = et.createRequestStream()
1183 t = st.createRequestStream()
11731184 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
11741185 },
11751186 update: (...e) => {
11761187 const r = Array.from(e)
1177 return rt.request(r)
1188 return tt.request(r)
11781189 },
11791190 query: (...e) => {
11801191 const r = Array.from(e)
1181 return st.request(r)
1192 return ot.request(r)
11821193 },
11831194 },
11841195 call: {
11851196 authorize: (...e) => {
11861197 const r = Array.from(e)
1187 return tt.request(r)
1198 return nt.request(r)
11881199 },
11891200 deauthorize: (...e) => {
11901201 const r = Array.from(e)
1191 return ot.request(r)
1202 return ut.request(r)
11921203 },
11931204 joinPeer: (...e) => {
11941205 const r = Array.from(e)
1195 return nt.request(r)
1206 return at.request(r)
11961207 },
11971208 leavePeer: (...e) => {
11981209 const r = Array.from(e)
1199 return ut.request(r)
1210 return qt.request(r)
12001211 },
12011212 requestTrack: (...e) => {
12021213 const r = Array.from(e)
1203 return at.request(r)
1214 return it.request(r)
12041215 },
12051216 unrequestTrack: (...e) => {
12061217 const r = Array.from(e)
1207 return qt.request(r)
1218 return ct.request(r)
12081219 },
12091220 signalMedia: (...e) => {
12101221 const r = Array.from(e)
1211 return it.request(r)
1222 return mt.request(r)
12121223 },
12131224 getRequestedTracks: (...e) => {
12141225 const r = Array.from(e)
1215 return ct.request(r)
1226 return gt.request(r)
12161227 },
12171228 subscribeRequestedTracks: (...e) => {
12181229 const s = Array.from(e),
1219 t = mt.createRequestStream()
1230 t = pt.createRequestStream()
12201231 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
12211232 },
12221233 subscribeMediaSignals: (...e) => {
12231234 const s = Array.from(e),
1224 t = gt.createRequestStream()
1235 t = yt.createRequestStream()
12251236 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
12261237 },
12271238 subscribeProxyUpdates: (...e) => {
12281239 const s = Array.from(e),
1229 t = pt.createRequestStream()
1240 t = ft.createRequestStream()
12301241 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
12311242 },
12321243 shareTrack: (...e) => {
12331244 const r = Array.from(e)
1234 return yt.request(r)
1245 return At.request(r)
12351246 },
12361247 unshareTrack: (...e) => {
12371248 const r = Array.from(e)
1238 return ft.request(r)
1249 return dt.request(r)
12391250 },
12401251 relayTrack: (...e) => {
12411252 const r = Array.from(e)
1242 return At.request(r)
1253 return bt.request(r)
12431254 },
12441255 unrelayTrack: (...e) => {
12451256 const r = Array.from(e)
1246 return dt.request(r)
1257 return Rt.request(r)
12471258 },
12481259 subscribeAvailableTracks: (...e) => {
12491260 const s = Array.from(e),
1250 t = bt.createRequestStream()
1261 t = lt.createRequestStream()
12511262 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
12521263 },
12531264 getAvailableTracks: (...e) => {
12541265 const r = Array.from(e)
1255 return Rt.request(r)
1266 return St.request(r)
12561267 },
12571268 setPresent: (...e) => {
12581269 const r = Array.from(e)
1259 return lt.request(r)
1270 return wt.request(r)
12601271 },
12611272 setNotPresent: (...e) => {
12621273 const r = Array.from(e)
1263 return St.request(r)
1274 return vt.request(r)
12641275 },
12651276 subscribePresence: (...e) => {
12661277 const s = Array.from(e),
1267 t = wt.createRequestStream()
1278 t = Mt.createRequestStream()
12681279 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
12691280 },
12701281 getPresence: (...e) => {
12711282 const r = Array.from(e)
1272 return vt.request(r)
1283 return ht.request(r)
12731284 },
12741285 },
12751286 tracing: {
12761287 start: (...e) => {
12771288 const r = Array.from(e)
1278 return Mt.request(r)
1289 return Ct.request(r)
12791290 },
12801291 addFrontendTrace: (...e) => {
12811292 const r = Array.from(e)
1282 return ht.request(r)
1293 return Pt.request(r)
12831294 },
12841295 },
12851296 console: {
12861297 log: (...e) => {
12871298 const r = Array.from(e)
1288 return Ct.request(r)
1299 return It.request(r)
12891300 },
12901301 warn: (...e) => {
12911302 const r = Array.from(e)
1292 return Pt.request(r)
1303 return Ft.request(r)
12931304 },
12941305 error: (...e) => {
12951306 const r = Array.from(e)
1296 return It.request(r)
1307 return kt.request(r)
12971308 },
12981309 },
12991310 network: {
13001311 subscribe: (...e) => {
13011312 const s = Array.from(e),
1302 t = Ft.createRequestStream()
1313 t = Dt.createRequestStream()
13031314 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
13041315 },
13051316 query: (...e) => {
13061317 const r = Array.from(e)
1307 return kt.request(r)
1318 return Ut.request(r)
13081319 },
13091320 subscribeDebug: (...e) => {
13101321 const s = Array.from(e),
1311 t = Dt.createRequestStream()
1322 t = Tt.createRequestStream()
13121323 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
13131324 },
13141325 debug: (...e) => {
13151326 const r = Array.from(e)
1316 return Ut.request(r)
1327 return Et.request(r)
13171328 },
13181329 },
13191330 error: {
13201331 subscribe: (...e) => {
13211332 const s = Array.from(e),
1322 t = Et.createRequestStream()
1333 t = Bt.createRequestStream()
13231334 return (t.write(s), t.end(), t.on("error", (e) => r(e)), t)
13241335 },
13251336 },
13261337 debug: {
13271338 getCurrentRoomStats: (...e) => {
13281339 const r = Array.from(e)
1329 return Tt.request(r)
1340 return Lt.request(r)
13301341 },
13311342 enableInspector: (...e) => {
13321343 const r = Array.from(e)
1333 return Bt.request(r)
1344 return xt.request(r)
13341345 },
13351346 disableInspector: (...e) => {
13361347 const r = Array.from(e)
1337 return Lt.request(r)
1348 return Nt.request(r)
13381349 },
13391350 getInspectorKey: (...e) => {
13401351 const r = Array.from(e)
1341 return xt.request(r)
1352 return jt.request(r)
13421353 },
13431354 processTop: (...e) => {
13441355 const r = Array.from(e)
1345 return Nt.request(r)
1356 return zt.request(r)
13461357 },
13471358 heapSnapshot: (...e) => {
13481359 const r = Array.from(e)
1349 return jt.request(r)
1360 return Ht.request(r)
13501361 },
13511362 hash: (...e) => {
13521363 const r = Array.from(e)
1353 return zt.request(r)
1364 return Kt.request(r)
13541365 },
13551366 generateSyntheticError: (...e) => {
13561367 const r = Array.from(e)
1357 return Ht.request(r)
1368 return Vt.request(r)
13581369 },
13591370 resetUnreads: (...e) => {
13601371 const r = Array.from(e)
1361 return Kt.request(r)
1372 return Jt.request(r)
13621373 },
13631374 },
13641375 pear: {
13651376 teardown: (...e) => {
13661377 const r = Array.from(e)
1367 return Vt.request(r)
1378 return Ot.request(r)
13681379 },
13691380 selfDestruct: (...e) => {
13701381 const r = Array.from(e)
1371 return Jt.request(r)
1382 return Wt.request(r)
13721383 },
13731384 },
13741385 feedback: {
13751386 send: (...e) => {
13761387 const r = Array.from(e)
1377 return Ot.request(r)
1388 return Gt.request(r)
13781389 },
13791390 },
13801391 }
@holepunchto/keet-core/lib/rpc/server.js +105 -89
……@@ -954,10 +954,26 @@ module.exports = function (t, o) {
954954 o.register(167, { request: e, response: e, onrequest: (e) => t.api.core.getFiles(...e) }),
955955 o.register(168, { request: e, response: e, onrequest: (e) => t.api.core.startDownload(...e) }),
956956 o.register(169, { request: e, response: e, onrequest: (e) => t.api.core.cancelDownload(...e) }),
957 o.register(170, { request: e, response: e, onrequest: (e) => t.api.core.clearFile(...e) }),
958 o.register(171, { request: e, response: e, onrequest: (e) => t.api.core.unclearFile(...e) }),
959 o.register(172, { request: e, response: e, onrequest: (e) => t.api.core.getFileCleared(...e) }),
960 o.register(173, {
957 o.register(170, {
958 request: e,
959 response: e,
960 dedup: !0,
961 onstream: async (e) => {
962 try {
963 for await (const o of e) {
964 const n = t.api.core.readFileStream(...o)
965 r(n, e).on("error", s)
966 }
967 } catch (r) {
968 e.destroy(r)
969 }
970 },
971 }),
972 o.register(171, { request: e, response: e, onrequest: (e) => t.api.core.saveToDisk(...e) }),
973 o.register(172, { request: e, response: e, onrequest: (e) => t.api.core.clearFile(...e) }),
974 o.register(173, { request: e, response: e, onrequest: (e) => t.api.core.unclearFile(...e) }),
975 o.register(174, { request: e, response: e, onrequest: (e) => t.api.core.getFileCleared(...e) }),
976 o.register(175, {
961977 request: e,
962978 response: e,
963979 dedup: !0,
……@@ -972,7 +988,7 @@ module.exports = function (t, o) {
972988 }
973989 },
974990 }),
975 o.register(174, {
991 o.register(176, {
976992 request: e,
977993 response: e,
978994 dedup: !0,
……@@ -987,8 +1003,8 @@ module.exports = function (t, o) {
9871003 }
9881004 },
9891005 }),
990 o.register(175, { request: e, response: e, onrequest: (e) => t.api.core.getStats(...e) }),
991 o.register(176, {
1006 o.register(177, { request: e, response: e, onrequest: (e) => t.api.core.getStats(...e) }),
1007 o.register(178, {
9921008 request: e,
9931009 response: e,
9941010 dedup: !0,
……@@ -1003,7 +1019,7 @@ module.exports = function (t, o) {
10031019 }
10041020 },
10051021 }),
1006 o.register(177, {
1022 o.register(179, {
10071023 request: e,
10081024 response: e,
10091025 dedup: !0,
……@@ -1018,13 +1034,13 @@ module.exports = function (t, o) {
10181034 }
10191035 },
10201036 }),
1021 o.register(178, { request: e, response: e, onrequest: (e) => t.api.core.lookupUsername(...e) }),
1022 o.register(179, {
1037 o.register(180, { request: e, response: e, onrequest: (e) => t.api.core.lookupUsername(...e) }),
1038 o.register(181, {
10231039 request: e,
10241040 response: e,
10251041 onrequest: (e) => t.api.core.lookupUserByMemberId(...e),
10261042 }),
1027 o.register(180, {
1043 o.register(182, {
10281044 request: e,
10291045 response: e,
10301046 dedup: !0,
……@@ -1039,56 +1055,56 @@ module.exports = function (t, o) {
10391055 }
10401056 },
10411057 }),
1042 o.register(181, {
1058 o.register(183, {
10431059 request: e,
10441060 response: e,
10451061 onrequest: (e) => t.api.core.registerUsername(...e),
10461062 }),
1047 o.register(182, { request: e, response: e, onrequest: (e) => t.api.core.updateUsername(...e) }),
1048 o.register(183, { request: e, response: e, onrequest: (e) => t.api.core.searchUsername(...e) }),
1049 o.register(184, {
1063 o.register(184, { request: e, response: e, onrequest: (e) => t.api.core.updateUsername(...e) }),
1064 o.register(185, { request: e, response: e, onrequest: (e) => t.api.core.searchUsername(...e) }),
1065 o.register(186, {
10501066 request: e,
10511067 response: e,
10521068 onrequest: (e) => t.api.core.getReservationsByKey(...e),
10531069 }),
1054 o.register(185, { request: e, response: e, onrequest: (e) => t.api.core.checkUsername(...e) }),
1055 o.register(186, {
1070 o.register(187, { request: e, response: e, onrequest: (e) => t.api.core.checkUsername(...e) }),
1071 o.register(188, {
10561072 request: e,
10571073 response: e,
10581074 onrequest: (e) => t.api.core.updateRoomPreferences(...e),
10591075 }),
1060 o.register(187, {
1076 o.register(189, {
10611077 request: e,
10621078 response: e,
10631079 onrequest: (e) => t.api.core.getRoomPreferences(...e),
10641080 }),
1065 o.register(188, { request: e, response: e, onrequest: (e) => t.api.core.audit(...e) }),
1066 o.register(189, { request: e, response: e, onrequest: (e) => t.api.core.close(...e) }),
1067 o.register(190, { request: e, response: e, onrequest: (e) => t.api.core.suspend(...e) }),
1068 o.register(191, { request: e, response: e, onrequest: (e) => t.api.core.resume(...e) }),
1069 o.register(192, { request: e, response: e, onrequest: (e) => t.api.core.getDebugFlags(...e) }),
1070 o.register(193, {
1081 o.register(190, { request: e, response: e, onrequest: (e) => t.api.core.audit(...e) }),
1082 o.register(191, { request: e, response: e, onrequest: (e) => t.api.core.close(...e) }),
1083 o.register(192, { request: e, response: e, onrequest: (e) => t.api.core.suspend(...e) }),
1084 o.register(193, { request: e, response: e, onrequest: (e) => t.api.core.resume(...e) }),
1085 o.register(194, { request: e, response: e, onrequest: (e) => t.api.core.getDebugFlags(...e) }),
1086 o.register(195, {
10711087 request: e,
10721088 response: e,
10731089 onrequest: (e) => t.api.core.updateDebugFlag(...e),
10741090 }),
1075 o.register(194, { request: e, response: e, onrequest: (e) => t.api.core.repair(...e) }),
1076 o.register(195, { request: e, response: e, onrequest: (e) => t.api.core.rotateWriter(...e) }),
1077 o.register(196, { request: e, response: e, onrequest: (e) => t.api.core.getRoomStats(...e) }),
1078 o.register(197, { request: e, response: e, onrequest: (e) => t.api.core.compact(...e) }),
1079 o.register(198, { request: e, response: e, onrequest: (e) => t.api.core.setUnread(...e) }),
1080 o.register(199, { request: e, response: e, onrequest: (e) => t.api.core.getUnread(...e) }),
1081 o.register(200, {
1091 o.register(196, { request: e, response: e, onrequest: (e) => t.api.core.repair(...e) }),
1092 o.register(197, { request: e, response: e, onrequest: (e) => t.api.core.rotateWriter(...e) }),
1093 o.register(198, { request: e, response: e, onrequest: (e) => t.api.core.getRoomStats(...e) }),
1094 o.register(199, { request: e, response: e, onrequest: (e) => t.api.core.compact(...e) }),
1095 o.register(200, { request: e, response: e, onrequest: (e) => t.api.core.setUnread(...e) }),
1096 o.register(201, { request: e, response: e, onrequest: (e) => t.api.core.getUnread(...e) }),
1097 o.register(202, {
10821098 request: e,
10831099 response: e,
10841100 onrequest: (e) => t.api.core.getUnreadAnchor(...e),
10851101 }),
1086 o.register(201, {
1102 o.register(203, {
10871103 request: e,
10881104 response: e,
10891105 onrequest: (e) => t.api.core.setUnreadAnchor(...e),
10901106 }),
1091 o.register(202, {
1107 o.register(204, {
10921108 request: e,
10931109 response: e,
10941110 dedup: !0,
……@@ -1103,7 +1119,7 @@ module.exports = function (t, o) {
11031119 }
11041120 },
11051121 }),
1106 o.register(203, {
1122 o.register(205, {
11071123 request: e,
11081124 response: e,
11091125 dedup: !0,
……@@ -1118,7 +1134,7 @@ module.exports = function (t, o) {
11181134 }
11191135 },
11201136 }),
1121 o.register(204, {
1137 o.register(206, {
11221138 request: e,
11231139 response: e,
11241140 dedup: !0,
……@@ -1133,8 +1149,8 @@ module.exports = function (t, o) {
11331149 }
11341150 },
11351151 }),
1136 o.register(205, { request: e, response: e, onrequest: (e) => t.api.core.boot(...e) }),
1137 o.register(206, {
1152 o.register(207, { request: e, response: e, onrequest: (e) => t.api.core.boot(...e) }),
1153 o.register(208, {
11381154 request: e,
11391155 response: e,
11401156 dedup: !0,
……@@ -1149,12 +1165,12 @@ module.exports = function (t, o) {
11491165 }
11501166 },
11511167 }),
1152 o.register(207, {
1168 o.register(209, {
11531169 request: e,
11541170 response: e,
11551171 onrequest: (e) => t.api.core.setCallRingingId(...e),
11561172 }),
1157 o.register(208, {
1173 o.register(210, {
11581174 request: e,
11591175 response: e,
11601176 dedup: !0,
……@@ -1169,19 +1185,19 @@ module.exports = function (t, o) {
11691185 }
11701186 },
11711187 }),
1172 o.register(209, { request: e, response: e, onrequest: (e) => t.api.core.getDHTSettings(...e) }),
1173 o.register(210, {
1188 o.register(211, { request: e, response: e, onrequest: (e) => t.api.core.getDHTSettings(...e) }),
1189 o.register(212, {
11741190 request: e,
11751191 response: e,
11761192 onrequest: (e) => t.api.core.updateDHTSettings(...e),
11771193 }),
1178 o.register(211, {
1194 o.register(213, {
11791195 request: e,
11801196 response: e,
11811197 onrequest: (e) => t.api.core.setRoomFavorite(...e),
11821198 }),
1183 o.register(212, { request: e, response: e, onrequest: (e) => t.api.core.clearOldFiles(...e) }),
1184 o.register(213, {
1199 o.register(214, { request: e, response: e, onrequest: (e) => t.api.core.clearOldFiles(...e) }),
1200 o.register(215, {
11851201 request: e,
11861202 response: e,
11871203 dedup: !0,
……@@ -1196,21 +1212,21 @@ module.exports = function (t, o) {
11961212 }
11971213 },
11981214 }),
1199 o.register(214, { request: e, response: e, onrequest: (e) => t.api.preferences.update(...e) }),
1200 o.register(215, { request: e, response: e, onrequest: (e) => t.api.preferences.query(...e) }),
1201 o.register(216, { request: e, response: e, onrequest: (e) => t.api.call.authorize(...e) }),
1202 o.register(217, { request: e, response: e, onrequest: (e) => t.api.call.deauthorize(...e) }),
1203 o.register(218, { request: e, response: e, onrequest: (e) => t.api.call.joinPeer(...e) }),
1204 o.register(219, { request: e, response: e, onrequest: (e) => t.api.call.leavePeer(...e) }),
1205 o.register(220, { request: e, response: e, onrequest: (e) => t.api.call.requestTrack(...e) }),
1206 o.register(221, { request: e, response: e, onrequest: (e) => t.api.call.unrequestTrack(...e) }),
1207 o.register(222, { request: e, response: e, onrequest: (e) => t.api.call.signalMedia(...e) }),
1208 o.register(223, {
1215 o.register(216, { request: e, response: e, onrequest: (e) => t.api.preferences.update(...e) }),
1216 o.register(217, { request: e, response: e, onrequest: (e) => t.api.preferences.query(...e) }),
1217 o.register(218, { request: e, response: e, onrequest: (e) => t.api.call.authorize(...e) }),
1218 o.register(219, { request: e, response: e, onrequest: (e) => t.api.call.deauthorize(...e) }),
1219 o.register(220, { request: e, response: e, onrequest: (e) => t.api.call.joinPeer(...e) }),
1220 o.register(221, { request: e, response: e, onrequest: (e) => t.api.call.leavePeer(...e) }),
1221 o.register(222, { request: e, response: e, onrequest: (e) => t.api.call.requestTrack(...e) }),
1222 o.register(223, { request: e, response: e, onrequest: (e) => t.api.call.unrequestTrack(...e) }),
1223 o.register(224, { request: e, response: e, onrequest: (e) => t.api.call.signalMedia(...e) }),
1224 o.register(225, {
12091225 request: e,
12101226 response: e,
12111227 onrequest: (e) => t.api.call.getRequestedTracks(...e),
12121228 }),
1213 o.register(224, {
1229 o.register(226, {
12141230 request: e,
12151231 response: e,
12161232 dedup: !0,
……@@ -1225,7 +1241,7 @@ module.exports = function (t, o) {
12251241 }
12261242 },
12271243 }),
1228 o.register(225, {
1244 o.register(227, {
12291245 request: e,
12301246 response: e,
12311247 dedup: !0,
……@@ -1240,7 +1256,7 @@ module.exports = function (t, o) {
12401256 }
12411257 },
12421258 }),
1243 o.register(226, {
1259 o.register(228, {
12441260 request: e,
12451261 response: e,
12461262 dedup: !0,
……@@ -1255,11 +1271,11 @@ module.exports = function (t, o) {
12551271 }
12561272 },
12571273 }),
1258 o.register(227, { request: e, response: e, onrequest: (e) => t.api.call.shareTrack(...e) }),
1259 o.register(228, { request: e, response: e, onrequest: (e) => t.api.call.unshareTrack(...e) }),
1260 o.register(229, { request: e, response: e, onrequest: (e) => t.api.call.relayTrack(...e) }),
1261 o.register(230, { request: e, response: e, onrequest: (e) => t.api.call.unrelayTrack(...e) }),
1262 o.register(231, {
1274 o.register(229, { request: e, response: e, onrequest: (e) => t.api.call.shareTrack(...e) }),
1275 o.register(230, { request: e, response: e, onrequest: (e) => t.api.call.unshareTrack(...e) }),
1276 o.register(231, { request: e, response: e, onrequest: (e) => t.api.call.relayTrack(...e) }),
1277 o.register(232, { request: e, response: e, onrequest: (e) => t.api.call.unrelayTrack(...e) }),
1278 o.register(233, {
12631279 request: e,
12641280 response: e,
12651281 dedup: !0,
……@@ -1274,14 +1290,14 @@ module.exports = function (t, o) {
12741290 }
12751291 },
12761292 }),
1277 o.register(232, {
1293 o.register(234, {
12781294 request: e,
12791295 response: e,
12801296 onrequest: (e) => t.api.call.getAvailableTracks(...e),
12811297 }),
1282 o.register(233, { request: e, response: e, onrequest: (e) => t.api.call.setPresent(...e) }),
1283 o.register(234, { request: e, response: e, onrequest: (e) => t.api.call.setNotPresent(...e) }),
1284 o.register(235, {
1298 o.register(235, { request: e, response: e, onrequest: (e) => t.api.call.setPresent(...e) }),
1299 o.register(236, { request: e, response: e, onrequest: (e) => t.api.call.setNotPresent(...e) }),
1300 o.register(237, {
12851301 request: e,
12861302 response: e,
12871303 dedup: !0,
……@@ -1296,17 +1312,17 @@ module.exports = function (t, o) {
12961312 }
12971313 },
12981314 }),
1299 o.register(236, { request: e, response: e, onrequest: (e) => t.api.call.getPresence(...e) }),
1300 o.register(237, { request: e, response: e, onrequest: (e) => t.api.tracing.start(...e) }),
1301 o.register(238, {
1315 o.register(238, { request: e, response: e, onrequest: (e) => t.api.call.getPresence(...e) }),
1316 o.register(239, { request: e, response: e, onrequest: (e) => t.api.tracing.start(...e) }),
1317 o.register(240, {
13021318 request: e,
13031319 response: e,
13041320 onrequest: (e) => t.api.tracing.addFrontendTrace(...e),
13051321 }),
1306 o.register(239, { request: e, response: e, onrequest: (e) => t.api.console.log(...e) }),
1307 o.register(240, { request: e, response: e, onrequest: (e) => t.api.console.warn(...e) }),
1308 o.register(241, { request: e, response: e, onrequest: (e) => t.api.console.error(...e) }),
1309 o.register(242, {
1322 o.register(241, { request: e, response: e, onrequest: (e) => t.api.console.log(...e) }),
1323 o.register(242, { request: e, response: e, onrequest: (e) => t.api.console.warn(...e) }),
1324 o.register(243, { request: e, response: e, onrequest: (e) => t.api.console.error(...e) }),
1325 o.register(244, {
13101326 request: e,
13111327 response: e,
13121328 dedup: !0,
……@@ -1321,8 +1337,8 @@ module.exports = function (t, o) {
13211337 }
13221338 },
13231339 }),
1324 o.register(243, { request: e, response: e, onrequest: (e) => t.api.network.query(...e) }),
1325 o.register(244, {
1340 o.register(245, { request: e, response: e, onrequest: (e) => t.api.network.query(...e) }),
1341 o.register(246, {
13261342 request: e,
13271343 response: e,
13281344 dedup: !0,
……@@ -1337,8 +1353,8 @@ module.exports = function (t, o) {
13371353 }
13381354 },
13391355 }),
1340 o.register(245, { request: e, response: e, onrequest: (e) => t.api.network.debug(...e) }),
1341 o.register(246, {
1356 o.register(247, { request: e, response: e, onrequest: (e) => t.api.network.debug(...e) }),
1357 o.register(248, {
13421358 request: e,
13431359 response: e,
13441360 dedup: !0,
……@@ -1353,36 +1369,36 @@ module.exports = function (t, o) {
13531369 }
13541370 },
13551371 }),
1356 o.register(247, {
1372 o.register(249, {
13571373 request: e,
13581374 response: e,
13591375 onrequest: (e) => t.api.debug.getCurrentRoomStats(...e),
13601376 }),
1361 o.register(248, {
1377 o.register(250, {
13621378 request: e,
13631379 response: e,
13641380 onrequest: (e) => t.api.debug.enableInspector(...e),
13651381 }),
1366 o.register(249, {
1382 o.register(251, {
13671383 request: e,
13681384 response: e,
13691385 onrequest: (e) => t.api.debug.disableInspector(...e),
13701386 }),
1371 o.register(250, {
1387 o.register(252, {
13721388 request: e,
13731389 response: e,
13741390 onrequest: (e) => t.api.debug.getInspectorKey(...e),
13751391 }),
1376 o.register(251, { request: e, response: e, onrequest: (e) => t.api.debug.processTop(...e) }),
1377 o.register(252, { request: e, response: e, onrequest: (e) => t.api.debug.heapSnapshot(...e) }),
1378 o.register(253, { request: e, response: e, onrequest: (e) => t.api.debug.hash(...e) }),
1379 o.register(254, {
1392 o.register(253, { request: e, response: e, onrequest: (e) => t.api.debug.processTop(...e) }),
1393 o.register(254, { request: e, response: e, onrequest: (e) => t.api.debug.heapSnapshot(...e) }),
1394 o.register(255, { request: e, response: e, onrequest: (e) => t.api.debug.hash(...e) }),
1395 o.register(256, {
13801396 request: e,
13811397 response: e,
13821398 onrequest: (e) => t.api.debug.generateSyntheticError(...e),
13831399 }),
1384 o.register(255, { request: e, response: e, onrequest: (e) => t.api.debug.resetUnreads(...e) }),
1385 o.register(256, { request: e, response: e, onrequest: (e) => t.api.pear.teardown(...e) }),
1386 o.register(257, { request: e, response: e, onrequest: (e) => t.api.pear.selfDestruct(...e) }),
1387 o.register(258, { request: e, response: e, onrequest: (e) => t.api.feedback.send(...e) }))
1400 o.register(257, { request: e, response: e, onrequest: (e) => t.api.debug.resetUnreads(...e) }),
1401 o.register(258, { request: e, response: e, onrequest: (e) => t.api.pear.teardown(...e) }),
1402 o.register(259, { request: e, response: e, onrequest: (e) => t.api.pear.selfDestruct(...e) }),
1403 o.register(260, { request: e, response: e, onrequest: (e) => t.api.feedback.send(...e) }))
13881404}
@holepunchto/keet-core/package.json +13 -14
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-core",
3 "version": "4.14.4",
3 "version": "4.15.7",
44 "description": "A version of keet-core built with rocksdb and hyperdb",
55 "main": "index.js",
66 "imports": {
……@@ -83,12 +83,12 @@
8383 "homepage": "https://github.com/holepunchto/keet-core#readme",
8484 "dependencies": {
8585 "@holepunchto/hyperdiscovery": "^1.1.0",
86 "@holepunchto/hyperindex": "2.3.5",
86 "@holepunchto/hyperindex": "2.4.0",
8787 "@holepunchto/keet-call": "^10.3.3",
8888 "@holepunchto/keet-core-api": "^2.0.0",
8989 "@holepunchto/keet-debug-helper": "^2.0.3",
9090 "@holepunchto/keet-default-config": "^3.0.0",
91 "@holepunchto/keet-indexing": "6.3.2",
91 "@holepunchto/keet-indexing": "6.4.0",
9292 "@holepunchto/keet-push": "^4.0.0",
9393 "@holepunchto/keet-registry": "^3.3.1",
9494 "@holepunchto/keet-registry-client": "^5.0.0",
……@@ -102,15 +102,15 @@
102102 "bare-events": "^2.8.2",
103103 "bare-file-logger": "^1.2.1",
104104 "bare-fs": "^4.4.4",
105 "bare-inspector": "^4.0.3",
105 "bare-inspector": "^6.0.1",
106106 "bare-logger": "^2.0.2",
107 "bare-performance": "^1.3.0",
107 "bare-performance": "^2.0.0",
108108 "bare-semver": "^1.0.2",
109109 "bare-zlib": "^1.3.1",
110110 "bip39-mnemonic": "^2.4.0",
111111 "blind-peering": "^2.0.1",
112112 "bundlebee": "^1.2.0",
113 "compact-encoding": "^2.16.1",
113 "compact-encoding": "^3.0.0",
114114 "corestore": "^7.6.0",
115115 "db-lock": "^1.2.0",
116116 "deterministic-sealed-box": "^1.0.0",
……@@ -124,7 +124,7 @@
124124 "hypercore-id-encoding": "^1.3.0",
125125 "hypercore-proof-queue": "^2.0.2",
126126 "hypercore-storage": "^2.0.0",
127 "hyperdb": "^5.0.0",
127 "hyperdb": "^6.6.3",
128128 "hyperdht": "^6.28.0",
129129 "hyperdispatch": "^1.1.0",
130130 "hyperschema": "^1.10.4",
……@@ -142,7 +142,7 @@
142142 "rocksdb-native": "^3.5.10",
143143 "safety-catch": "^1.0.2",
144144 "scope-lock": "^1.2.4",
145 "sentry-bare": "^0.1.0",
145 "sentry-bare": "^0.2.0",
146146 "sodium-native": "^5.0.1",
147147 "suspendify": "^1.7.0",
148148 "task-backoff": "^1.0.1",
……@@ -153,24 +153,23 @@
153153 "z32": "^1.1.0"
154154 },
155155 "devDependencies": {
156 "@holepunchto/keet-fcm-gatekeeper": "^1.0.0",
157 "@hyperswarm/rpc": "^3.4.1",
158 "@holepunchto/hyperschema-regen": "^2.0.7",
156 "@holepunchto/hyperschema-regen": "^3.0.0",
159157 "@holepunchto/keet-package": "^3.0.0",
160158 "@holepunchto/keet-registry-service": "^6.0.0",
159 "@hyperswarm/rpc": "^3.4.1",
161160 "@hyperswarm/testnet": "^3.1.4",
162161 "bare-channel": "^5.2.0",
163 "bare-fetch": "^2.2.1",
162 "bare-fetch": "^3.0.0",
164163 "bare-path": "^3.0.0",
165164 "bare-process": "^4.2.1",
166 "bare-subprocess": "^5.1.0",
165 "bare-subprocess": "^6.0.0",
167166 "blind-peer": "^3.2.0",
168167 "brittle": "^3.7.0",
169168 "graceful-goodbye": "^1.3.3",
170169 "hyperbee": "^2.20.4",
171170 "hyperbee2": "^2.9.1",
172171 "hypercore": "^11.26.0",
173 "hyperdrive": "^12.2.0",
172 "hyperdrive": "^13.3.2",
174173 "hypermininet": "^1.4.0",
175174 "lunte": "^1.3.0",
176175 "math-random-seed": "^2.0.0",
@holepunchto/keet-core/schema/builder/contract/hyperdispatch.js +5 -1
……@@ -106,5 +106,9 @@ module.exports = function (e) {
106106 t.register({ name: "add-call-stream", requestType: "@keet/add-call-stream" }),
107107 t.register({ name: "remove-call-stream", requestType: "@keet/remove-call-stream" }),
108108 t.register({ name: "test-crash", requestType: "@keet/test-crash-operation" }),
109 t.register({ name: "test-dispatch-error", requestType: "@keet/test-dispatch-error-operation" }))
109 t.register({ name: "test-dispatch-error", requestType: "@keet/test-dispatch-error-operation" }),
110 r.register({
111 name: "shorten-device-attestation",
112 requestType: "@keet-private-id/shorten-device-attestation-operation",
113 }))
110114}
@holepunchto/keet-core/schema/builder/local/hyperdb.js +7 -1
……@@ -3,6 +3,7 @@ module.exports = function (o) {
33 const i = o.namespace("local")
44 ;(i.require(e.join(__dirname, "../../../lib/core/hyperdb/local/local.js")),
55 i.collections.register({ name: "stats", schema: "@local/stats", key: [] }),
6 i.collections.register({ name: "ota-actions", schema: "@local/ota-actions", key: [] }),
67 i.collections.register({ name: "migrations", schema: "@local/migration-status", key: [] }),
78 i.collections.register({
89 name: "room-migration-stats",
……@@ -213,5 +214,10 @@ module.exports = function (o) {
213214 map: "roomsByFavoriteAndTimestampMap",
214215 },
215216 }),
216 i.collections.register({ name: "environment", schema: "@local/environment-record", key: [] }))
217 i.collections.register({ name: "environment", schema: "@local/environment-record", key: [] }),
218 i.collections.register({
219 name: "device-attestations",
220 schema: "@local/device-attestation",
221 key: ["deviceKey"],
222 }))
217223}
@holepunchto/keet-core/schema/config/index.js +8 -1
……@@ -15,6 +15,7 @@ module.exports = function (e) {
1515 { name: "autoupgrade", type: "uint" },
1616 { name: "forceUpdate", type: "uint" },
1717 { name: "minVersion", type: "@config/semver" },
18 { name: "stable", type: "uint" },
1819 ],
1920 }),
2021 r.register({
……@@ -44,7 +45,13 @@ module.exports = function (e) {
4445 { name: "verified", type: "fixed32", array: !0 },
4546 ],
4647 }),
47 r.register({ name: "profile", fields: [{ name: "disableUnreadSync", type: "bool" }] }),
48 r.register({
49 name: "profile",
50 fields: [
51 { name: "disableUnreadSync", type: "bool" },
52 { name: "otaResyncPrivateProfileBump", type: "uint" },
53 ],
54 }),
4855 r.register({ name: "debug", fields: [{ name: "unlockHash", type: "fixed32" }] }),
4956 r.register({
5057 name: "keet-config",
@holepunchto/keet-core/schema/config/internal.js +3 -2
……@@ -38,7 +38,7 @@ module.exports = function (a) {
3838 r = ["2c64e9baa7529518937c541567cb2a0da371239937ab9cd1a85c372c18b396f2"].map((a) =>
3939 e.decode(a),
4040 ),
41 i = ["39720256e9d51be850afe8596c2aca8c4ad1e2d539a16c1470652791b7be2d10"].map((a) =>
41 i = ["8298d53151dc2147c604447ec5268f1eea818192d4231b757563020428493ec5"].map((a) =>
4242 e.decode(a),
4343 ),
4444 p = e.decode("05f1ec96118a019d1a02bea752745d47b6a8c562aca3cb65d6ba76a1641fc83b"),
……@@ -49,8 +49,9 @@ module.exports = function (a) {
4949 versions: {
5050 minimum: 14,
5151 forceUpdate: 1,
52 autoupgrade: 26,
52 autoupgrade: 28,
5353 minVersion: { major: 4, minor: 12, patch: 3 },
54 stable: 29,
5455 },
5556 services: {
5657 userRegistries: d,
@holepunchto/keet-core/schema/config/production.js +1 -1
……@@ -49,7 +49,7 @@ module.exports = function (c) {
4949 minimum: 14,
5050 forceUpdate: 1,
5151 autoupgrade: 23,
52 minVersion: { major: 4, minor: 12, patch: 3 },
52 minVersion: { major: 4, minor: 14, patch: 0 },
5353 },
5454 services: {
5555 userRegistries: o,
@holepunchto/keet-core/schema/contract/index.js +22 -2
……@@ -1210,6 +1210,7 @@ module.exports = function (e) {
12101210 { name: "isMentionsOnlyMuted", type: "bool" },
12111211 { name: "isReadOnly", type: "bool" },
12121212 { name: "isFavorite", type: "bool" },
1213 { name: "isUnread", type: "bool" },
12131214 ],
12141215 }),
12151216 a.register({
……@@ -1365,8 +1366,18 @@ module.exports = function (e) {
13651366 name: "remove-unreads-key-operation",
13661367 fields: [i, { name: "key", type: "@keet/core-key", required: !0 }],
13671368 }),
1368 a.register({ name: "settings", fields: [{ name: "disableReadReceipts", type: "bool" }] }),
1369 a.register({ name: "user-settings-key", strings: !0, enum: ["disableReadReceipts"] }),
1369 a.register({
1370 name: "settings",
1371 fields: [
1372 { name: "disableReadReceipts", type: "bool" },
1373 { name: "stripAttachmentMetadata", type: "bool" },
1374 ],
1375 }),
1376 a.register({
1377 name: "user-settings-key",
1378 strings: !0,
1379 enum: ["disableReadReceipts", "stripAttachmentMetadata"],
1380 }),
13701381 a.register({
13711382 name: "update-settings-operation",
13721383 fields: [
……@@ -1374,5 +1385,14 @@ module.exports = function (e) {
13741385 { name: "key", type: "@keet-private-id/user-settings-key", required: !0 },
13751386 { name: "settings", type: "@keet-private-id/settings", required: !0 },
13761387 ],
1388 }),
1389 a.register({
1390 name: "shorten-device-attestation-operation",
1391 fields: [
1392 i,
1393 { name: "deviceKey", type: "@keet/device-key", required: !0 },
1394 { name: "deviceProof", type: "buffer", required: !0 },
1395 { name: "writerProof", type: "buffer", required: !0 },
1396 ],
13771397 }))
13781398}
@holepunchto/keet-core/schema/local/index.js +13 -0
……@@ -18,6 +18,10 @@ module.exports = function (t) {
1818 { name: "activeRooms", type: "uint", required: !0 },
1919 ],
2020 }),
21 r.register({
22 name: "ota-actions",
23 fields: [{ name: "otaResyncPrivateProfileBump", type: "uint" }],
24 }),
2125 r.register({
2226 name: "migration-status",
2327 fields: [{ name: "version", type: "uint", required: !0 }],
……@@ -67,6 +71,7 @@ module.exports = function (t) {
6771 { name: "entropy", type: "buffer" },
6872 { name: "swap", type: "@keet-private-id/identity-swap" },
6973 { name: "swapV2", type: "@keet-private-id/identity-swap-v2" },
74 { name: "proofShortenedAt", type: "uint" },
7075 ],
7176 }),
7277 r.register({
……@@ -355,5 +360,13 @@ module.exports = function (t) {
355360 { name: "buildType", type: "@keet/build-type", required: !0 },
356361 { name: "latestOfflineAbi", type: "uint" },
357362 ],
363 }),
364 r.register({
365 name: "device-attestation",
366 fields: [
367 { name: "deviceKey", type: "@keet/device-key", required: !0 },
368 { name: "proof", type: "buffer", required: !0 },
369 { name: "createdAt", type: "uint", required: !0 },
370 ],
358371 }))
359372}
@holepunchto/keet-core/schema/spec/api/hrpc/messages.js +365 -272
……@@ -1,6 +1,6 @@
11const { c: e } = require("hyperschema/runtime"),
2 d = 6
3let o = 6
2 d = 7
3let o = 7
44const n = {
55 preencode(d, o) {
66 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.length))
……@@ -204,7 +204,7 @@ const n = {
204204 ;(v.preencode(d, o.pointer),
205205 d.end++,
206206 o.metadata && g.preencode(d, o.metadata),
207 o.preview && Op.preencode(d, o.preview),
207 o.preview && zp.preencode(d, o.preview),
208208 o.hash && e.fixed32.preencode(d, o.hash))
209209 },
210210 encode(d, o) {
……@@ -212,7 +212,7 @@ const n = {
212212 ;(v.encode(d, o.pointer),
213213 e.uint.encode(d, n),
214214 o.metadata && g.encode(d, o.metadata),
215 o.preview && Op.encode(d, o.preview),
215 o.preview && zp.encode(d, o.preview),
216216 o.hash && e.fixed32.encode(d, o.hash))
217217 },
218218 decode(d) {
……@@ -221,7 +221,7 @@ const n = {
221221 return {
222222 pointer: o,
223223 metadata: 1 & n ? g.decode(d) : null,
224 preview: 2 & n ? Op.decode(d) : null,
224 preview: 2 & n ? zp.decode(d) : null,
225225 hash: 4 & n ? e.fixed32.decode(d) : null,
226226 }
227227 },
……@@ -355,7 +355,7 @@ const n = {
355355 return { isMuted: !!(1 & o), isBanned: !!(2 & o), isShadowBanned: !!(4 & o) }
356356 },
357357 },
358 I = {
358 S = {
359359 preencode(d, o) {
360360 e.uint.preencode(d, o.version)
361361 },
……@@ -364,7 +364,7 @@ const n = {
364364 },
365365 decode: (d) => ({ version: e.uint.decode(d) }),
366366 },
367 S = {
367 I = {
368368 preencode(d, o) {
369369 ;(e.uint.preencode(d, o.total), e.uint.preencode(d, o.active))
370370 },
……@@ -421,11 +421,11 @@ const n = {
421421 },
422422 decode: (d) => ({ clock: e.uint.decode(d) }),
423423 },
424 E = e.frame(S),
424 E = e.frame(I),
425425 B = e.frame(F),
426426 N = e.frame(L),
427427 O = e.frame(j),
428 V = {
428 U = {
429429 preencode(e, d) {
430430 ;(E.preencode(e, d.devices),
431431 B.preencode(e, d.members),
……@@ -442,7 +442,7 @@ const n = {
442442 files: O.decode(e),
443443 }),
444444 },
445 U = { Default: 1, Broadcast: 2, DirectMessage: 3 },
445 V = { Default: 1, Broadcast: 2, DirectMessage: 3 },
446446 J = {
447447 preencode(e, d) {
448448 e.end++
……@@ -499,7 +499,7 @@ const n = {
499499 }
500500 },
501501 },
502 W = e.frame(I),
502 W = e.frame(S),
503503 H = e.frame(z),
504504 G = {
505505 preencode(d, o) {
……@@ -588,7 +588,7 @@ const n = {
588588 preencode(d, o) {
589589 ;(d.end++,
590590 o.title && e.string.preencode(d, o.title),
591 o.avatar && Vp.preencode(d, o.avatar),
591 o.avatar && Wp.preencode(d, o.avatar),
592592 o.description && e.string.preencode(d, o.description),
593593 o.supportedLanguages && $.preencode(d, o.supportedLanguages),
594594 o.blindPeers && _.preencode(d, o.blindPeers))
……@@ -602,7 +602,7 @@ const n = {
602602 (o.blindPeers ? 16 : 0)
603603 ;(e.uint.encode(d, n),
604604 o.title && e.string.encode(d, o.title),
605 o.avatar && Vp.encode(d, o.avatar),
605 o.avatar && Wp.encode(d, o.avatar),
606606 o.description && e.string.encode(d, o.description),
607607 o.supportedLanguages && $.encode(d, o.supportedLanguages),
608608 o.blindPeers && _.encode(d, o.blindPeers))
……@@ -611,7 +611,7 @@ const n = {
611611 const o = e.uint.decode(d)
612612 return {
613613 title: 1 & o ? e.string.decode(d) : null,
614 avatar: 2 & o ? Vp.decode(d) : null,
614 avatar: 2 & o ? Wp.decode(d) : null,
615615 description: 4 & o ? e.string.decode(d) : null,
616616 supportedLanguages: 8 & o ? $.decode(d) : null,
617617 blindPeers: 16 & o ? _.decode(d) : null,
……@@ -673,7 +673,7 @@ const n = {
673673 ;(e.fixed32.preencode(d, o.key),
674674 e.fixed32.preencode(d, o.memberKey),
675675 se.preencode(d, o.status),
676 Up.preencode(d, o.profile),
676 Hp.preencode(d, o.profile),
677677 d.end++,
678678 o.invitation && pe.preencode(d, o.invitation))
679679 },
……@@ -682,7 +682,7 @@ const n = {
682682 ;(e.fixed32.encode(d, o.key),
683683 e.fixed32.encode(d, o.memberKey),
684684 se.encode(d, o.status),
685 Up.encode(d, o.profile),
685 Hp.encode(d, o.profile),
686686 e.uint.encode(d, n),
687687 o.invitation && pe.encode(d, o.invitation))
688688 },
……@@ -690,7 +690,7 @@ const n = {
690690 key: e.fixed32.decode(d),
691691 memberKey: e.fixed32.decode(d),
692692 status: se.decode(d),
693 profile: Up.decode(d),
693 profile: Hp.decode(d),
694694 invitation: 1 & e.uint.decode(d) ? pe.decode(d) : null,
695695 }),
696696 },
……@@ -700,7 +700,7 @@ const n = {
700700 d.end++,
701701 o.mailbox && e.fixed32.preencode(d, o.mailbox),
702702 o.displayName && e.string.preencode(d, o.displayName),
703 o.avatar && Jp.preencode(d, o.avatar),
703 o.avatar && Gp.preencode(d, o.avatar),
704704 o.username && e.string.preencode(d, o.username))
705705 },
706706 encode(d, o) {
……@@ -710,7 +710,7 @@ const n = {
710710 e.uint.encode(d, n),
711711 o.mailbox && e.fixed32.encode(d, o.mailbox),
712712 o.displayName && e.string.encode(d, o.displayName),
713 o.avatar && Jp.encode(d, o.avatar),
713 o.avatar && Gp.encode(d, o.avatar),
714714 o.username && e.string.encode(d, o.username))
715715 },
716716 decode(d) {
……@@ -720,7 +720,7 @@ const n = {
720720 timestamp: o,
721721 mailbox: 1 & n ? e.fixed32.decode(d) : null,
722722 displayName: 2 & n ? e.string.decode(d) : null,
723 avatar: 4 & n ? Jp.decode(d) : null,
723 avatar: 4 & n ? Gp.decode(d) : null,
724724 username: 8 & n ? e.string.decode(d) : null,
725725 }
726726 },
……@@ -765,12 +765,12 @@ const n = {
765765 },
766766 xe = {
767767 preencode(e, d) {
768 ;(zp.preencode(e, d.profile), ie.preencode(e, d.attestation))
768 ;(Qp.preencode(e, d.profile), ie.preencode(e, d.attestation))
769769 },
770770 encode(e, d) {
771 ;(zp.encode(e, d.profile), ie.encode(e, d.attestation))
771 ;(Qp.encode(e, d.profile), ie.encode(e, d.attestation))
772772 },
773 decode: (e) => ({ profile: zp.decode(e), attestation: ie.decode(e) }),
773 decode: (e) => ({ profile: Qp.decode(e), attestation: ie.decode(e) }),
774774 },
775775 be = me,
776776 ve = {
……@@ -889,25 +889,25 @@ const n = {
889889 },
890890 decode: (d) => ({ device: Me.decode(d), member: 1 & e.uint.decode(d) ? Ce.decode(d) : null }),
891891 },
892 Ie = e.frame(qe),
893 Se = e.frame(De),
892 Se = e.frame(qe),
893 Ie = e.frame(De),
894894 Fe = {
895895 preencode(e, d) {
896896 ;(e.end++,
897 d.withInvitation && Ie.preencode(e, d.withInvitation),
898 d.withMemberProof && Se.preencode(e, d.withMemberProof))
897 d.withInvitation && Se.preencode(e, d.withInvitation),
898 d.withMemberProof && Ie.preencode(e, d.withMemberProof))
899899 },
900900 encode(d, o) {
901901 const n = (o.withInvitation ? 1 : 0) | (o.withMemberProof ? 2 : 0)
902902 ;(e.uint.encode(d, n),
903 o.withInvitation && Ie.encode(d, o.withInvitation),
904 o.withMemberProof && Se.encode(d, o.withMemberProof))
903 o.withInvitation && Se.encode(d, o.withInvitation),
904 o.withMemberProof && Ie.encode(d, o.withMemberProof))
905905 },
906906 decode(d) {
907907 const o = e.uint.decode(d)
908908 return {
909 withInvitation: 1 & o ? Ie.decode(d) : null,
910 withMemberProof: 2 & o ? Se.decode(d) : null,
909 withInvitation: 1 & o ? Se.decode(d) : null,
910 withMemberProof: 2 & o ? Ie.decode(d) : null,
911911 }
912912 },
913913 },
……@@ -956,7 +956,7 @@ const n = {
956956 },
957957 Ne = Le,
958958 Oe = e.frame(Be),
959 Ve = {
959 Ue = {
960960 preencode(d, o) {
961961 ;(e.fixed32.preencode(d, o.id),
962962 Ne.preencode(d, o.response),
……@@ -986,16 +986,16 @@ const n = {
986986 }
987987 },
988988 },
989 Ue = oe,
990 Je = e.frame(Ve),
989 Ve = oe,
990 Je = e.frame(Ue),
991991 ze = {
992992 preencode(e, d) {
993 ;(Ue.preencode(e, d.header), Je.preencode(e, d.invitation))
993 ;(Ve.preencode(e, d.header), Je.preencode(e, d.invitation))
994994 },
995995 encode(e, d) {
996 ;(Ue.encode(e, d.header), Je.encode(e, d.invitation))
996 ;(Ve.encode(e, d.header), Je.encode(e, d.invitation))
997997 },
998 decode: (e) => ({ header: Ue.decode(e), invitation: Je.decode(e) }),
998 decode: (e) => ({ header: Ve.decode(e), invitation: Je.decode(e) }),
999999 },
10001000 We = oe,
10011001 He = {
……@@ -1132,13 +1132,13 @@ const n = {
11321132 rd = oe,
11331133 td = {
11341134 preencode(e, d) {
1135 ;(rd.preencode(e, d.header), e.end++, d.profile && Wp.preencode(e, d.profile))
1135 ;(rd.preencode(e, d.header), e.end++, d.profile && Xp.preencode(e, d.profile))
11361136 },
11371137 encode(d, o) {
11381138 const n = o.profile ? 1 : 0
1139 ;(rd.encode(d, o.header), e.uint.encode(d, n), o.profile && Wp.encode(d, o.profile))
1139 ;(rd.encode(d, o.header), e.uint.encode(d, n), o.profile && Xp.encode(d, o.profile))
11401140 },
1141 decode: (d) => ({ header: rd.decode(d), profile: 1 & e.uint.decode(d) ? Wp.decode(d) : null }),
1141 decode: (d) => ({ header: rd.decode(d), profile: 1 & e.uint.decode(d) ? Xp.decode(d) : null }),
11421142 },
11431143 id = oe,
11441144 ad = {
……@@ -1219,7 +1219,7 @@ const n = {
12191219 hd.preencode(d, o.status),
12201220 Kd.preencode(d, o.profile),
12211221 d.end++,
1222 o.proofs && Hp.preencode(d, o.proofs))
1222 o.proofs && Yp.preencode(d, o.proofs))
12231223 },
12241224 encode(d, o) {
12251225 const n = o.proofs ? 1 : 0
……@@ -1227,13 +1227,13 @@ const n = {
12271227 hd.encode(d, o.status),
12281228 Kd.encode(d, o.profile),
12291229 e.uint.encode(d, n),
1230 o.proofs && Hp.encode(d, o.proofs))
1230 o.proofs && Yp.encode(d, o.proofs))
12311231 },
12321232 decode: (d) => ({
12331233 key: e.fixed32.decode(d),
12341234 status: hd.decode(d),
12351235 profile: Kd.decode(d),
1236 proofs: 1 & e.uint.decode(d) ? Hp.decode(d) : null,
1236 proofs: 1 & e.uint.decode(d) ? Yp.decode(d) : null,
12371237 }),
12381238 },
12391239 Pd = {
……@@ -1294,7 +1294,7 @@ const n = {
12941294 }),
12951295 },
12961296 Dd = oe,
1297 Id = {
1297 Sd = {
12981298 preencode(d, o) {
12991299 ;(Dd.preencode(d, o.header), e.fixed32.preencode(d, o.key), d.end++)
13001300 },
……@@ -1309,15 +1309,15 @@ const n = {
13091309 return { header: o, key: n, isModerator: !!(1 & c), isAdmin: !!(2 & c) }
13101310 },
13111311 },
1312 Sd = oe,
1312 Id = oe,
13131313 Fd = {
13141314 preencode(d, o) {
1315 ;(Sd.preencode(d, o.header), e.fixed32.preencode(d, o.key))
1315 ;(Id.preencode(d, o.header), e.fixed32.preencode(d, o.key))
13161316 },
13171317 encode(d, o) {
1318 ;(Sd.encode(d, o.header), e.fixed32.encode(d, o.key))
1318 ;(Id.encode(d, o.header), e.fixed32.encode(d, o.key))
13191319 },
1320 decode: (d) => ({ header: Sd.decode(d), key: e.fixed32.decode(d) }),
1320 decode: (d) => ({ header: Id.decode(d), key: e.fixed32.decode(d) }),
13211321 },
13221322 Ld = {
13231323 preencode(d, o) {
……@@ -1354,8 +1354,8 @@ const n = {
13541354 },
13551355 },
13561356 Od = e.frame(jd),
1357 Vd = e.frame(Ed),
1358 Ud = e.frame(Nd),
1357 Ud = e.frame(Ed),
1358 Vd = e.frame(Nd),
13591359 Jd = e.frame(Bd),
13601360 zd = {
13611361 preencode(d, n) {
……@@ -1372,10 +1372,10 @@ const n = {
13721372 (o >= 3 && n.locationShared ? 512 : 0)
13731373 ;(e.uint.preencode(d, c),
13741374 n.memberJoined && Od.preencode(d, n.memberJoined),
1375 n.memberLeft && Vd.preencode(d, n.memberLeft),
1376 n.titleChanged && Ud.preencode(d, n.titleChanged),
1375 n.memberLeft && Ud.preencode(d, n.memberLeft),
1376 n.titleChanged && Vd.preencode(d, n.titleChanged),
13771377 n.memberRemoved && Jd.preencode(d, n.memberRemoved),
1378 o >= 3 && n.locationShared && Gp.preencode(d, n.locationShared))
1378 o >= 3 && n.locationShared && Zp.preencode(d, n.locationShared))
13791379 },
13801380 encode(d, n) {
13811381 const c =
……@@ -1391,30 +1391,30 @@ const n = {
13911391 (o >= 3 && n.locationShared ? 512 : 0)
13921392 ;(e.uint.encode(d, c),
13931393 n.memberJoined && Od.encode(d, n.memberJoined),
1394 n.memberLeft && Vd.encode(d, n.memberLeft),
1395 n.titleChanged && Ud.encode(d, n.titleChanged),
1394 n.memberLeft && Ud.encode(d, n.memberLeft),
1395 n.titleChanged && Vd.encode(d, n.titleChanged),
13961396 n.memberRemoved && Jd.encode(d, n.memberRemoved),
1397 o >= 3 && n.locationShared && Gp.encode(d, n.locationShared))
1397 o >= 3 && n.locationShared && Zp.encode(d, n.locationShared))
13981398 },
13991399 decode(d) {
14001400 const n = e.uint.decode(d)
14011401 return {
14021402 memberJoined: 1 & n ? Od.decode(d) : null,
1403 memberLeft: 2 & n ? Vd.decode(d) : null,
1404 titleChanged: 4 & n ? Ud.decode(d) : null,
1403 memberLeft: 2 & n ? Ud.decode(d) : null,
1404 titleChanged: 4 & n ? Vd.decode(d) : null,
14051405 callStarted: !!(8 & n),
14061406 callHangup: !!(16 & n),
14071407 callMissed: !!(32 & n),
14081408 roomAvatarChanged: !!(64 & n),
14091409 invitationCreated: !!(128 & n),
14101410 memberRemoved: 256 & n ? Jd.decode(d) : null,
1411 locationShared: o >= 3 && 512 & n ? Gp.decode(d) : null,
1411 locationShared: o >= 3 && 512 & n ? Zp.decode(d) : null,
14121412 }
14131413 },
14141414 },
14151415 Wd = {
14161416 preencode(e, d) {
1417 ;(e.end++, o >= 3 && d.locationShared && Qp.preencode(e, d.locationShared))
1417 ;(e.end++, o >= 3 && d.locationShared && $p.preencode(e, d.locationShared))
14181418 },
14191419 encode(d, n) {
14201420 const c =
……@@ -1422,7 +1422,7 @@ const n = {
14221422 (n.callHangup ? 2 : 0) |
14231423 (n.callMissed ? 4 : 0) |
14241424 (o >= 3 && n.locationShared ? 8 : 0)
1425 ;(e.uint.encode(d, c), o >= 3 && n.locationShared && Qp.encode(d, n.locationShared))
1425 ;(e.uint.encode(d, c), o >= 3 && n.locationShared && $p.encode(d, n.locationShared))
14261426 },
14271427 decode(d) {
14281428 const n = e.uint.decode(d)
……@@ -1430,7 +1430,7 @@ const n = {
14301430 callStarted: !!(1 & n),
14311431 callHangup: !!(2 & n),
14321432 callMissed: !!(4 & n),
1433 locationShared: o >= 3 && 8 & n ? Qp.decode(d) : null,
1433 locationShared: o >= 3 && 8 & n ? $p.decode(d) : null,
14341434 }
14351435 },
14361436 },
……@@ -1739,7 +1739,7 @@ const n = {
17391739 },
17401740 decode: (d) => ({ thread: e.uint.decode(d), index: e.uint.decode(d) }),
17411741 },
1742 Mo = e.frame(V),
1742 Mo = e.frame(U),
17431743 Co = {
17441744 preencode(d, o) {
17451745 ;(e.uint.preencode(d, o.id),
……@@ -1769,8 +1769,8 @@ const n = {
17691769 },
17701770 },
17711771 Do = e.frame(Ao),
1772 Io = e.frame(wo),
1773 So = e.frame(zd),
1772 So = e.frame(wo),
1773 Io = e.frame(zd),
17741774 Fo = {
17751775 preencode(d, o) {
17761776 ;(qo.preencode(d, o.id),
……@@ -1780,8 +1780,8 @@ const n = {
17801780 d.end++,
17811781 o.editedAt && e.uint.preencode(d, o.editedAt),
17821782 Do.preencode(d, o.status),
1783 o.message && Io.preencode(d, o.message),
1784 o.event && So.preencode(d, o.event))
1783 o.message && So.preencode(d, o.message),
1784 o.event && Io.preencode(d, o.event))
17851785 },
17861786 encode(d, o) {
17871787 const n = (o.editedAt ? 1 : 0) | (o.message ? 2 : 0) | (o.event ? 4 : 0)
……@@ -1792,8 +1792,8 @@ const n = {
17921792 e.uint.encode(d, n),
17931793 o.editedAt && e.uint.encode(d, o.editedAt),
17941794 Do.encode(d, o.status),
1795 o.message && Io.encode(d, o.message),
1796 o.event && So.encode(d, o.event))
1795 o.message && So.encode(d, o.message),
1796 o.event && Io.encode(d, o.event))
17971797 },
17981798 decode(d) {
17991799 const o = qo.decode(d),
……@@ -1808,14 +1808,14 @@ const n = {
18081808 timestamp: t,
18091809 editedAt: 1 & i ? e.uint.decode(d) : 0,
18101810 status: Do.decode(d),
1811 message: 2 & i ? Io.decode(d) : null,
1812 event: 4 & i ? So.decode(d) : null,
1811 message: 2 & i ? So.decode(d) : null,
1812 event: 4 & i ? Io.decode(d) : null,
18131813 }
18141814 },
18151815 },
18161816 Lo = Do,
18171817 jo = e.frame(To),
1818 Eo = So,
1818 Eo = Io,
18191819 Bo = {
18201820 preencode(d, o) {
18211821 ;(qo.preencode(d, o.id),
……@@ -1860,7 +1860,7 @@ const n = {
18601860 },
18611861 No = oe,
18621862 Oo = e.frame(ko),
1863 Vo = {
1863 Uo = {
18641864 preencode(e, d) {
18651865 ;(No.preencode(e, d.header), Oo.preencode(e, d.message))
18661866 },
……@@ -1869,15 +1869,15 @@ const n = {
18691869 },
18701870 decode: (e) => ({ header: No.decode(e), message: Oo.decode(e) }),
18711871 },
1872 Uo = oe,
1872 Vo = oe,
18731873 Jo = {
18741874 preencode(e, d) {
1875 ;(Uo.preencode(e, d.header), c.preencode(e, d.oplog))
1875 ;(Vo.preencode(e, d.header), c.preencode(e, d.oplog))
18761876 },
18771877 encode(e, d) {
1878 ;(Uo.encode(e, d.header), c.encode(e, d.oplog))
1878 ;(Vo.encode(e, d.header), c.encode(e, d.oplog))
18791879 },
1880 decode: (e) => ({ header: Uo.decode(e), oplog: c.decode(e) }),
1880 decode: (e) => ({ header: Vo.decode(e), oplog: c.decode(e) }),
18811881 },
18821882 zo = oe,
18831883 Wo = Oo,
……@@ -1922,7 +1922,7 @@ const n = {
19221922 ;(Zo.preencode(d, o.header),
19231923 c.preencode(d, o.oplog),
19241924 e.uint.preencode(d, o.index),
1925 Xp.preencode(d, o.preview),
1925 _p.preencode(d, o.preview),
19261926 d.end++,
19271927 o.displayType && Yo.preencode(d, o.displayType))
19281928 },
……@@ -1931,7 +1931,7 @@ const n = {
19311931 ;(Zo.encode(d, o.header),
19321932 c.encode(d, o.oplog),
19331933 e.uint.encode(d, o.index),
1934 Xp.encode(d, o.preview),
1934 _p.encode(d, o.preview),
19351935 e.uint.encode(d, n),
19361936 o.displayType && Yo.encode(d, o.displayType))
19371937 },
……@@ -1939,7 +1939,7 @@ const n = {
19391939 header: Zo.decode(d),
19401940 oplog: c.decode(d),
19411941 index: e.uint.decode(d),
1942 preview: Xp.decode(d),
1942 preview: _p.decode(d),
19431943 displayType: 1 & e.uint.decode(d) ? Yo.decode(d) : 0,
19441944 }),
19451945 },
……@@ -2032,19 +2032,19 @@ const n = {
20322032 ;(e.fixed32.preencode(d, o.memberKey),
20332033 e.string.preencode(d, o.displayName),
20342034 d.end++,
2035 o.avatar && Yp.preencode(d, o.avatar))
2035 o.avatar && eu.preencode(d, o.avatar))
20362036 },
20372037 encode(d, o) {
20382038 const n = o.avatar ? 1 : 0
20392039 ;(e.fixed32.encode(d, o.memberKey),
20402040 e.string.encode(d, o.displayName),
20412041 e.uint.encode(d, n),
2042 o.avatar && Yp.encode(d, o.avatar))
2042 o.avatar && eu.encode(d, o.avatar))
20432043 },
20442044 decode: (d) => ({
20452045 memberKey: e.fixed32.decode(d),
20462046 displayName: e.string.decode(d),
2047 avatar: 1 & e.uint.decode(d) ? Yp.decode(d) : null,
2047 avatar: 1 & e.uint.decode(d) ? eu.decode(d) : null,
20482048 }),
20492049 },
20502050 ln = {
……@@ -2202,15 +2202,15 @@ const n = {
22022202 },
22032203 decode: (d) => ({ header: Mn.decode(d), key: e.uint.decode(d), settings: Cn.decode(d) }),
22042204 },
2205 In = oe,
2206 Sn = {
2205 Sn = oe,
2206 In = {
22072207 preencode(d, o) {
2208 ;(In.preencode(d, o.header), e.uint.preencode(d, o.value))
2208 ;(Sn.preencode(d, o.header), e.uint.preencode(d, o.value))
22092209 },
22102210 encode(d, o) {
2211 ;(In.encode(d, o.header), e.uint.encode(d, o.value))
2211 ;(Sn.encode(d, o.header), e.uint.encode(d, o.value))
22122212 },
2213 decode: (d) => ({ header: In.decode(d), value: e.uint.decode(d) }),
2213 decode: (d) => ({ header: Sn.decode(d), value: e.uint.decode(d) }),
22142214 },
22152215 Fn = {
22162216 preencode(d, o) {
……@@ -2263,7 +2263,7 @@ const n = {
22632263 decode: (e) => ({ header: Bn.decode(e), oplog: c.decode(e), label: jn.decode(e) }),
22642264 },
22652265 On = oe,
2266 Vn = {
2266 Un = {
22672267 preencode(e, d) {
22682268 ;(On.preencode(e, d.header), c.preencode(e, d.oplog), jn.preencode(e, d.label))
22692269 },
……@@ -2272,7 +2272,7 @@ const n = {
22722272 },
22732273 decode: (e) => ({ header: On.decode(e), oplog: c.decode(e), label: jn.decode(e) }),
22742274 },
2275 Un = {
2275 Vn = {
22762276 preencode(d, o) {
22772277 ;(jn.preencode(d, o.label), e.uint.preencode(d, o.count))
22782278 },
……@@ -2281,7 +2281,7 @@ const n = {
22812281 },
22822282 decode: (d) => ({ label: jn.decode(d), count: e.uint.decode(d) }),
22832283 },
2284 Jn = e.array(e.frame(Un)),
2284 Jn = e.array(e.frame(Vn)),
22852285 zn = {
22862286 preencode(d, o) {
22872287 ;(qo.preencode(d, o.id),
……@@ -2342,7 +2342,7 @@ const n = {
23422342 Xn = {
23432343 preencode(d, o) {
23442344 ;(e.fixed32.preencode(d, o.memberKey),
2345 Zp.preencode(d, o.status),
2345 du.preencode(d, o.status),
23462346 d.end++,
23472347 o.mailbox && e.fixed32.preencode(d, o.mailbox),
23482348 o.roomKey && e.fixed32.preencode(d, o.roomKey))
……@@ -2350,14 +2350,14 @@ const n = {
23502350 encode(d, o) {
23512351 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
23522352 ;(e.fixed32.encode(d, o.memberKey),
2353 Zp.encode(d, o.status),
2353 du.encode(d, o.status),
23542354 e.uint.encode(d, n),
23552355 o.mailbox && e.fixed32.encode(d, o.mailbox),
23562356 o.roomKey && e.fixed32.encode(d, o.roomKey))
23572357 },
23582358 decode(d) {
23592359 const o = e.fixed32.decode(d),
2360 n = Zp.decode(d),
2360 n = du.decode(d),
23612361 c = e.uint.decode(d)
23622362 return {
23632363 memberKey: o,
……@@ -2595,7 +2595,8 @@ const n = {
25952595 (n.isFullyMuted ? 2 : 0) |
25962596 (n.isMentionsOnlyMuted ? 4 : 0) |
25972597 (n.isReadOnly ? 8 : 0) |
2598 (o >= 3 && n.isFavorite ? 16 : 0)
2598 (o >= 3 && n.isFavorite ? 16 : 0) |
2599 (o >= 7 && n.isUnread ? 32 : 0)
25992600 e.uint.encode(d, c)
26002601 },
26012602 decode(d) {
……@@ -2606,6 +2607,7 @@ const n = {
26062607 isMentionsOnlyMuted: !!(4 & n),
26072608 isReadOnly: !!(8 & n),
26082609 isFavorite: o >= 3 && !!(16 & n),
2610 isUnread: o >= 7 && !!(32 & n),
26092611 }
26102612 },
26112613 },
……@@ -2754,7 +2756,7 @@ const n = {
27542756 preencode(d, o) {
27552757 ;(e.fixed32.preencode(d, o.memberKey),
27562758 e.uint.preencode(d, o.clock),
2757 $p.preencode(d, o.status),
2759 ou.preencode(d, o.status),
27582760 d.end++,
27592761 o.mailbox && e.fixed32.preencode(d, o.mailbox),
27602762 o.roomKey && e.fixed32.preencode(d, o.roomKey))
……@@ -2763,7 +2765,7 @@ const n = {
27632765 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
27642766 ;(e.fixed32.encode(d, o.memberKey),
27652767 e.uint.encode(d, o.clock),
2766 $p.encode(d, o.status),
2768 ou.encode(d, o.status),
27672769 e.uint.encode(d, n),
27682770 o.mailbox && e.fixed32.encode(d, o.mailbox),
27692771 o.roomKey && e.fixed32.encode(d, o.roomKey))
……@@ -2771,7 +2773,7 @@ const n = {
27712773 decode(d) {
27722774 const o = e.fixed32.decode(d),
27732775 n = e.uint.decode(d),
2774 c = $p.decode(d),
2776 c = ou.decode(d),
27752777 r = e.uint.decode(d)
27762778 return {
27772779 memberKey: o,
……@@ -2783,15 +2785,15 @@ const n = {
27832785 },
27842786 },
27852787 Dc = oe,
2786 Ic = e.frame(Xn),
2787 Sc = {
2788 Sc = e.frame(Xn),
2789 Ic = {
27882790 preencode(e, d) {
2789 ;(Dc.preencode(e, d.header), Ic.preencode(e, d.contact))
2791 ;(Dc.preencode(e, d.header), Sc.preencode(e, d.contact))
27902792 },
27912793 encode(e, d) {
2792 ;(Dc.encode(e, d.header), Ic.encode(e, d.contact))
2794 ;(Dc.encode(e, d.header), Sc.encode(e, d.contact))
27932795 },
2794 decode: (e) => ({ header: Dc.decode(e), contact: Ic.decode(e) }),
2796 decode: (e) => ({ header: Dc.decode(e), contact: Sc.decode(e) }),
27952797 },
27962798 Fc = oe,
27972799 Lc = {
……@@ -2799,19 +2801,19 @@ const n = {
27992801 ;(Fc.preencode(d, o.header),
28002802 e.fixed32.preencode(d, o.memberKey),
28012803 e.uint.preencode(d, o.key),
2802 _p.preencode(d, o.status))
2804 nu.preencode(d, o.status))
28032805 },
28042806 encode(d, o) {
28052807 ;(Fc.encode(d, o.header),
28062808 e.fixed32.encode(d, o.memberKey),
28072809 e.uint.encode(d, o.key),
2808 _p.encode(d, o.status))
2810 nu.encode(d, o.status))
28092811 },
28102812 decode: (d) => ({
28112813 header: Fc.decode(d),
28122814 memberKey: e.fixed32.decode(d),
28132815 key: e.uint.decode(d),
2814 status: _p.decode(d),
2816 status: nu.decode(d),
28152817 }),
28162818 },
28172819 jc = oe,
……@@ -2858,27 +2860,27 @@ const n = {
28582860 }
28592861 },
28602862 },
2861 Vc = Pe,
2862 Uc = e.frame(i),
2863 Uc = Pe,
2864 Vc = e.frame(i),
28632865 Jc = {
28642866 preencode(d, o) {
2865 ;(Vc.preencode(d, o.sender),
2866 Uc.preencode(d, o.keys),
2867 ;(Uc.preencode(d, o.sender),
2868 Vc.preencode(d, o.keys),
28672869 e.fixed32.preencode(d, o.mailbox),
28682870 d.end++,
28692871 o.message && e.string.preencode(d, o.message))
28702872 },
28712873 encode(d, o) {
28722874 const n = o.message ? 1 : 0
2873 ;(Vc.encode(d, o.sender),
2874 Uc.encode(d, o.keys),
2875 ;(Uc.encode(d, o.sender),
2876 Vc.encode(d, o.keys),
28752877 e.fixed32.encode(d, o.mailbox),
28762878 e.uint.encode(d, n),
28772879 o.message && e.string.encode(d, o.message))
28782880 },
28792881 decode: (d) => ({
2880 sender: Vc.decode(d),
2881 keys: Uc.decode(d),
2882 sender: Uc.decode(d),
2883 keys: Vc.decode(d),
28822884 mailbox: e.fixed32.decode(d),
28832885 message: 1 & e.uint.decode(d) ? e.string.decode(d) : null,
28842886 }),
……@@ -2895,7 +2897,7 @@ const n = {
28952897 },
28962898 Hc = me,
28972899 Gc = e.frame(Oc),
2898 Qc = Uc,
2900 Qc = Vc,
28992901 Xc = {
29002902 preencode(d, o) {
29012903 ;(e.fixed32.preencode(d, o.memberKey),
……@@ -3060,22 +3062,45 @@ const n = {
30603062 preencode(e, d) {
30613063 e.end++
30623064 },
3063 encode(d, o) {
3064 const n = o.disableReadReceipts ? 1 : 0
3065 e.uint.encode(d, n)
3065 encode(d, n) {
3066 const c = (n.disableReadReceipts ? 1 : 0) | (o >= 7 && n.stripAttachmentMetadata ? 2 : 0)
3067 e.uint.encode(d, c)
30663068 },
3067 decode: (d) => ({ disableReadReceipts: !!(1 & e.uint.decode(d)) }),
3069 decode(d) {
3070 const n = e.uint.decode(d)
3071 return { disableReadReceipts: !!(1 & n), stripAttachmentMetadata: o >= 7 && !!(2 & n) }
3072 },
3073 },
3074 sr = {
3075 disableReadReceipts: "disableReadReceipts",
3076 stripAttachmentMetadata: "stripAttachmentMetadata",
30683077 },
3069 sr = { disableReadReceipts: "disableReadReceipts" },
30703078 pr = {
30713079 preencode(e, d) {
30723080 e.end++
30733081 },
30743082 encode(d, o) {
3075 if ("disableReadReceipts" !== o) throw new Error("Unknown enum")
3076 e.uint.encode(d, 1)
3083 switch (o) {
3084 case "disableReadReceipts":
3085 e.uint.encode(d, 1)
3086 break
3087 case "stripAttachmentMetadata":
3088 e.uint.encode(d, 2)
3089 break
3090 default:
3091 throw new Error("Unknown enum")
3092 }
3093 },
3094 decode(d) {
3095 switch (e.uint.decode(d)) {
3096 case 1:
3097 return "disableReadReceipts"
3098 case 2:
3099 return "stripAttachmentMetadata"
3100 default:
3101 return null
3102 }
30773103 },
3078 decode: (d) => (1 === e.uint.decode(d) ? "disableReadReceipts" : null),
30793104 },
30803105 ur = oe,
30813106 lr = e.frame(ar),
……@@ -3123,7 +3148,7 @@ const n = {
31233148 },
31243149 decode: (d) => ({ rooms: e.uint.decode(d), activeRooms: e.uint.decode(d) }),
31253150 },
3126 xr = I,
3151 xr = S,
31273152 br = _,
31283153 vr = {
31293154 preencode(e, d) {
……@@ -3229,45 +3254,52 @@ const n = {
32293254 qr = gc,
32303255 Mr = e.frame(xc),
32313256 Cr = {
3232 preencode(d, o) {
3233 ;(e.fixed32.preencode(d, o.publicKey),
3234 e.fixed32.preencode(d, o.privateProfileKey),
3235 t.preencode(d, o.deviceKeyPair),
3236 e.buffer.preencode(d, o.deviceProof),
3237 Ar.preencode(d, o.status),
3257 preencode(d, n) {
3258 ;(e.fixed32.preencode(d, n.publicKey),
3259 e.fixed32.preencode(d, n.privateProfileKey),
3260 t.preencode(d, n.deviceKeyPair),
3261 e.buffer.preencode(d, n.deviceProof),
3262 Ar.preencode(d, n.status),
32383263 d.end++,
3239 o.entropy && e.buffer.preencode(d, o.entropy),
3240 o.swap && qr.preencode(d, o.swap),
3241 o.swapV2 && Mr.preencode(d, o.swapV2))
3264 n.entropy && e.buffer.preencode(d, n.entropy),
3265 n.swap && qr.preencode(d, n.swap),
3266 n.swapV2 && Mr.preencode(d, n.swapV2),
3267 o >= 7 && n.proofShortenedAt && e.uint.preencode(d, n.proofShortenedAt))
32423268 },
3243 encode(d, o) {
3244 const n = (o.entropy ? 1 : 0) | (o.swap ? 2 : 0) | (o.swapV2 ? 4 : 0)
3245 ;(e.fixed32.encode(d, o.publicKey),
3246 e.fixed32.encode(d, o.privateProfileKey),
3247 t.encode(d, o.deviceKeyPair),
3248 e.buffer.encode(d, o.deviceProof),
3249 Ar.encode(d, o.status),
3250 e.uint.encode(d, n),
3251 o.entropy && e.buffer.encode(d, o.entropy),
3252 o.swap && qr.encode(d, o.swap),
3253 o.swapV2 && Mr.encode(d, o.swapV2))
3269 encode(d, n) {
3270 const c =
3271 (n.entropy ? 1 : 0) |
3272 (n.swap ? 2 : 0) |
3273 (n.swapV2 ? 4 : 0) |
3274 (o >= 7 && n.proofShortenedAt ? 8 : 0)
3275 ;(e.fixed32.encode(d, n.publicKey),
3276 e.fixed32.encode(d, n.privateProfileKey),
3277 t.encode(d, n.deviceKeyPair),
3278 e.buffer.encode(d, n.deviceProof),
3279 Ar.encode(d, n.status),
3280 e.uint.encode(d, c),
3281 n.entropy && e.buffer.encode(d, n.entropy),
3282 n.swap && qr.encode(d, n.swap),
3283 n.swapV2 && Mr.encode(d, n.swapV2),
3284 o >= 7 && n.proofShortenedAt && e.uint.encode(d, n.proofShortenedAt))
32543285 },
32553286 decode(d) {
3256 const o = e.fixed32.decode(d),
3257 n = e.fixed32.decode(d),
3258 c = t.decode(d),
3259 r = e.buffer.decode(d),
3260 i = Ar.decode(d),
3261 a = e.uint.decode(d)
3287 const n = e.fixed32.decode(d),
3288 c = e.fixed32.decode(d),
3289 r = t.decode(d),
3290 i = e.buffer.decode(d),
3291 a = Ar.decode(d),
3292 s = e.uint.decode(d)
32623293 return {
3263 publicKey: o,
3264 privateProfileKey: n,
3265 deviceKeyPair: c,
3266 deviceProof: r,
3267 status: i,
3268 entropy: 1 & a ? e.buffer.decode(d) : null,
3269 swap: 2 & a ? qr.decode(d) : null,
3270 swapV2: 4 & a ? Mr.decode(d) : null,
3294 publicKey: n,
3295 privateProfileKey: c,
3296 deviceKeyPair: r,
3297 deviceProof: i,
3298 status: a,
3299 entropy: 1 & s ? e.buffer.decode(d) : null,
3300 swap: 2 & s ? qr.decode(d) : null,
3301 swapV2: 4 & s ? Mr.decode(d) : null,
3302 proofShortenedAt: o >= 7 && 8 & s ? e.uint.decode(d) : 0,
32713303 }
32723304 },
32733305 },
……@@ -3284,7 +3316,7 @@ const n = {
32843316 TestSlowTask: 10,
32853317 TestErrorTask: 11,
32863318 },
3287 Ir = {
3319 Sr = {
32883320 preencode(e, d) {
32893321 e.end++
32903322 },
……@@ -3294,7 +3326,7 @@ const n = {
32943326 },
32953327 decode: (d) => e.uint.decode(d),
32963328 },
3297 Sr = {
3329 Ir = {
32983330 preencode(d, o) {
32993331 ;(e.fixed32.preencode(d, o.roomKey),
33003332 e.buffer.preencode(d, o.encryptionKey),
……@@ -3389,8 +3421,8 @@ const n = {
33893421 },
33903422 decode: (e) => ({ keys: Nr.decode(e) }),
33913423 },
3392 Vr = e.frame(Kn),
3393 Ur = {
3424 Ur = e.frame(Kn),
3425 Vr = {
33943426 preencode(d, o) {
33953427 ;(e.fixed32.preencode(d, o.roomKey),
33963428 e.buffer.preencode(d, o.encryptionKey),
……@@ -3399,7 +3431,7 @@ const n = {
33993431 o.initiator && n.preencode(d, o.initiator),
34003432 o.mailbox && e.fixed32.preencode(d, o.mailbox),
34013433 o.keyPair && t.preencode(d, o.keyPair),
3402 o.genesis && Vr.preencode(d, o.genesis))
3434 o.genesis && Ur.preencode(d, o.genesis))
34033435 },
34043436 encode(d, o) {
34053437 const c =
……@@ -3416,7 +3448,7 @@ const n = {
34163448 o.initiator && n.encode(d, o.initiator),
34173449 o.mailbox && e.fixed32.encode(d, o.mailbox),
34183450 o.keyPair && t.encode(d, o.keyPair),
3419 o.genesis && Vr.encode(d, o.genesis))
3451 o.genesis && Ur.encode(d, o.genesis))
34203452 },
34213453 decode(d) {
34223454 const o = e.fixed32.decode(d),
……@@ -3429,7 +3461,7 @@ const n = {
34293461 initiator: 2 & r ? n.decode(d) : null,
34303462 mailbox: 4 & r ? e.fixed32.decode(d) : null,
34313463 keyPair: 8 & r ? t.decode(d) : null,
3432 genesis: 16 & r ? Vr.decode(d) : null,
3464 genesis: 16 & r ? Ur.decode(d) : null,
34333465 isPrivateProfile: !!(32 & r),
34343466 }
34353467 },
……@@ -3515,7 +3547,7 @@ const n = {
35153547 decode: (d) => ({ key: e.fixed32.decode(d), isPrivateProfile: !!(1 & e.uint.decode(d)) }),
35163548 },
35173549 Xr = e.frame(Wr),
3518 Yr = e.frame(Ur),
3550 Yr = e.frame(Vr),
35193551 Zr = e.frame(Jr),
35203552 $r = e.frame(zr),
35213553 _r = e.frame(Lr),
……@@ -3698,7 +3730,7 @@ const n = {
36983730 n.lastMember && ht.preencode(d, n.lastMember),
36993731 n.version && e.uint.preencode(d, n.version),
37003732 o >= 3 && n.preferences && Kt.preencode(d, n.preferences),
3701 o >= 4 && n.activeCall && eu.preencode(d, n.activeCall))
3733 o >= 4 && n.activeCall && cu.preencode(d, n.activeCall))
37023734 },
37033735 encode(d, n) {
37043736 const c =
……@@ -3735,7 +3767,7 @@ const n = {
37353767 n.lastMember && ht.encode(d, n.lastMember),
37363768 n.version && e.uint.encode(d, n.version),
37373769 o >= 3 && n.preferences && Kt.encode(d, n.preferences),
3738 o >= 4 && n.activeCall && eu.encode(d, n.activeCall))
3770 o >= 4 && n.activeCall && cu.encode(d, n.activeCall))
37393771 },
37403772 decode(d) {
37413773 const n = e.fixed32.decode(d),
……@@ -3772,7 +3804,7 @@ const n = {
37723804 lastMember: 128 & m ? ht.decode(d) : null,
37733805 version: 256 & m ? e.uint.decode(d) : 0,
37743806 preferences: o >= 3 && 512 & m ? Kt.decode(d) : null,
3775 activeCall: o >= 4 && 1024 & m ? eu.decode(d) : null,
3807 activeCall: o >= 4 && 1024 & m ? cu.decode(d) : null,
37763808 }
37773809 },
37783810 },
……@@ -3852,7 +3884,7 @@ const n = {
38523884 decode: (d) => ({ key: e.fixed32.decode(d), profile: Mt.decode(d) }),
38533885 },
38543886 Dt = mt,
3855 It = {
3887 St = {
38563888 preencode(d, o) {
38573889 ;(e.fixed32.preencode(d, o.roomKey), Dt.preencode(d, o.device))
38583890 },
……@@ -3861,10 +3893,10 @@ const n = {
38613893 },
38623894 decode: (d) => ({ roomKey: e.fixed32.decode(d), device: Dt.decode(d) }),
38633895 },
3864 St = h,
3896 It = h,
38653897 Ft = {
38663898 preencode(d, n) {
3867 ;(St.preencode(d, n.file),
3899 ;(It.preencode(d, n.file),
38683900 e.fixed32.preencode(d, n.roomKey),
38693901 d.end++,
38703902 n.encryptionKey && e.buffer.preencode(d, n.encryptionKey),
……@@ -3878,7 +3910,7 @@ const n = {
38783910 (n.own ? 4 : 0) |
38793911 (o >= 4 && n.lastAccessed ? 8 : 0) |
38803912 (o >= 4 && n.version ? 16 : 0)
3881 ;(St.encode(d, n.file),
3913 ;(It.encode(d, n.file),
38823914 e.fixed32.encode(d, n.roomKey),
38833915 e.uint.encode(d, c),
38843916 n.encryptionKey && e.buffer.encode(d, n.encryptionKey),
……@@ -3886,7 +3918,7 @@ const n = {
38863918 o >= 4 && n.version && e.uint.encode(d, n.version))
38873919 },
38883920 decode(d) {
3889 const n = St.decode(d),
3921 const n = It.decode(d),
38903922 c = e.fixed32.decode(d),
38913923 r = e.uint.decode(d)
38923924 return {
……@@ -3976,7 +4008,7 @@ const n = {
39764008 },
39774009 decode: (d) => ({ roomKey: e.fixed32.decode(d), count: e.uint.decode(d) }),
39784010 },
3979 Vt = {
4011 Ut = {
39804012 preencode(d, o) {
39814013 ;(d.end++,
39824014 o.roomKey && e.fixed32.preencode(d, o.roomKey),
……@@ -3996,7 +4028,7 @@ const n = {
39964028 }
39974029 },
39984030 },
3999 Ut = e.frame(Vt),
4031 Vt = e.frame(Ut),
40004032 Jt = {
40014033 preencode(d, o) {
40024034 ;(e.string.preencode(d, o.code),
……@@ -4004,7 +4036,7 @@ const n = {
40044036 e.string.preencode(d, o.stack),
40054037 e.uint.preencode(d, o.timestamp),
40064038 d.end++,
4007 o.details && Ut.preencode(d, o.details))
4039 o.details && Vt.preencode(d, o.details))
40084040 },
40094041 encode(d, o) {
40104042 const n = o.details ? 1 : 0
……@@ -4013,14 +4045,14 @@ const n = {
40134045 e.string.encode(d, o.stack),
40144046 e.uint.encode(d, o.timestamp),
40154047 e.uint.encode(d, n),
4016 o.details && Ut.encode(d, o.details))
4048 o.details && Vt.encode(d, o.details))
40174049 },
40184050 decode: (d) => ({
40194051 code: e.string.decode(d),
40204052 message: e.string.decode(d),
40214053 stack: e.string.decode(d),
40224054 timestamp: e.uint.decode(d),
4023 details: 1 & e.uint.decode(d) ? Ut.decode(d) : null,
4055 details: 1 & e.uint.decode(d) ? Vt.decode(d) : null,
40244056 }),
40254057 },
40264058 zt = { RESUME: 1, WAKEUP: 2, PRESUSPEND: 3, SUSPEND: 4 },
……@@ -4254,26 +4286,26 @@ const n = {
42544286 },
42554287 decode: (e) => ({ header: Ci.decode(e) }),
42564288 },
4257 Ii = Zt,
4258 Si = Oo,
4289 Si = Zt,
4290 Ii = Oo,
42594291 Fi = {
42604292 preencode(d, o) {
4261 ;(Ii.preencode(d, o.header),
4293 ;(Si.preencode(d, o.header),
42624294 e.fixed32.preencode(d, o.roomKey),
42634295 c.preencode(d, o.id),
4264 Si.preencode(d, o.message))
4296 Ii.preencode(d, o.message))
42654297 },
42664298 encode(d, o) {
4267 ;(Ii.encode(d, o.header),
4299 ;(Si.encode(d, o.header),
42684300 e.fixed32.encode(d, o.roomKey),
42694301 c.encode(d, o.id),
4270 Si.encode(d, o.message))
4302 Ii.encode(d, o.message))
42714303 },
42724304 decode: (d) => ({
4273 header: Ii.decode(d),
4305 header: Si.decode(d),
42744306 roomKey: e.fixed32.decode(d),
42754307 id: c.decode(d),
4276 message: Si.decode(d),
4308 message: Ii.decode(d),
42774309 }),
42784310 },
42794311 Li = _t,
……@@ -4306,22 +4338,22 @@ const n = {
43064338 },
43074339 decode: (e) => ({ header: Ni.decode(e) }),
43084340 },
4309 Vi = Zt,
4310 Ui = {
4341 Ui = Zt,
4342 Vi = {
43114343 preencode(d, o) {
4312 ;(Vi.preencode(d, o.header),
4344 ;(Ui.preencode(d, o.header),
43134345 e.fixed32.preencode(d, o.roomKey),
43144346 c.preencode(d, o.id),
43154347 e.string.preencode(d, o.reaction))
43164348 },
43174349 encode(d, o) {
4318 ;(Vi.encode(d, o.header),
4350 ;(Ui.encode(d, o.header),
43194351 e.fixed32.encode(d, o.roomKey),
43204352 c.encode(d, o.id),
43214353 e.string.encode(d, o.reaction))
43224354 },
43234355 decode: (d) => ({
4324 header: Vi.decode(d),
4356 header: Ui.decode(d),
43254357 roomKey: e.fixed32.decode(d),
43264358 id: c.decode(d),
43274359 reaction: e.string.decode(d),
……@@ -4601,12 +4633,12 @@ const n = {
46014633 Aa = se,
46024634 qa = {
46034635 preencode(d, o) {
4604 ;(e.fixed32.preencode(d, o.key), Aa.preencode(d, o.status), du.preencode(d, o.profile))
4636 ;(e.fixed32.preencode(d, o.key), Aa.preencode(d, o.status), ru.preencode(d, o.profile))
46054637 },
46064638 encode(d, o) {
4607 ;(e.fixed32.encode(d, o.key), Aa.encode(d, o.status), du.encode(d, o.profile))
4639 ;(e.fixed32.encode(d, o.key), Aa.encode(d, o.status), ru.encode(d, o.profile))
46084640 },
4609 decode: (d) => ({ key: e.fixed32.decode(d), status: Aa.decode(d), profile: du.decode(d) }),
4641 decode: (d) => ({ key: e.fixed32.decode(d), status: Aa.decode(d), profile: ru.decode(d) }),
46104642 },
46114643 Ma = {
46124644 preencode(d, o) {
……@@ -4619,7 +4651,7 @@ const n = {
46194651 },
46204652 Ca = Ma,
46214653 Da = e.array(c),
4622 Ia = {
4654 Sa = {
46234655 preencode(d, o) {
46244656 ;(e.fixed32.preencode(d, o.roomKey),
46254657 e.uint.preencode(d, o.start),
……@@ -4646,7 +4678,7 @@ const n = {
46464678 isBottom: !!(1 & e.uint.decode(d)),
46474679 }),
46484680 },
4649 Sa = {
4681 Ia = {
46504682 preencode(d, o) {
46514683 ;(e.uint.preencode(d, o.sent), d.end++, o.edited && e.uint.preencode(d, o.edited))
46524684 },
……@@ -4659,10 +4691,10 @@ const n = {
46594691 edited: 1 & e.uint.decode(d) ? e.uint.decode(d) : 0,
46604692 }),
46614693 },
4662 Fa = e.frame(Sa),
4694 Fa = e.frame(Ia),
46634695 La = Do,
4664 ja = Io,
4665 Ea = So,
4696 ja = So,
4697 Ea = Io,
46664698 Ba = {
46674699 preencode(d, o) {
46684700 ;(c.preencode(d, o.id),
……@@ -4701,7 +4733,7 @@ const n = {
47014733 },
47024734 Na = e.frame(Ba),
47034735 Oa = vd,
4704 Va = {
4736 Ua = {
47054737 preencode(d, o) {
47064738 ;(Na.preencode(d, o.chat), e.fixed32.preencode(d, o.memberKey), Oa.preencode(d, o.role))
47074739 },
……@@ -4710,15 +4742,15 @@ const n = {
47104742 },
47114743 decode: (d) => ({ chat: Na.decode(d), memberKey: e.fixed32.decode(d), role: Oa.decode(d) }),
47124744 },
4713 Ua = Na,
4745 Va = Na,
47144746 Ja = {
47154747 preencode(e, d) {
4716 Ua.preencode(e, d.chat)
4748 Va.preencode(e, d.chat)
47174749 },
47184750 encode(e, d) {
4719 Ua.encode(e, d.chat)
4751 Va.encode(e, d.chat)
47204752 },
4721 decode: (e) => ({ chat: Ua.decode(e) }),
4753 decode: (e) => ({ chat: Va.decode(e) }),
47224754 },
47234755 za = Da,
47244756 Wa = {
……@@ -4943,15 +4975,15 @@ const n = {
49434975 },
49444976 decode: (d) => ({ header: Ms.decode(d), roomKey: e.fixed32.decode(d), request: Cs.decode(d) }),
49454977 },
4946 Is = _t,
4947 Ss = {
4978 Ss = _t,
4979 Is = {
49484980 preencode(e, d) {
4949 Is.preencode(e, d.header)
4981 Ss.preencode(e, d.header)
49504982 },
49514983 encode(e, d) {
4952 Is.encode(e, d.header)
4984 Ss.encode(e, d.header)
49534985 },
4954 decode: (e) => ({ header: Is.decode(e) }),
4986 decode: (e) => ({ header: Ss.decode(e) }),
49554987 },
49564988 Fs = Zt,
49574989 Ls = {
……@@ -4995,8 +5027,8 @@ const n = {
49955027 }),
49965028 },
49975029 Os = j,
4998 Vs = j,
4999 Us = {
5030 Us = j,
5031 Vs = {
50005032 preencode(e, d) {
50015033 e.end++
50025034 },
……@@ -5009,7 +5041,7 @@ const n = {
50095041 return { isConfirmed: !!(1 & o), isLoggedOut: !!(2 & o) }
50105042 },
50115043 },
5012 Js = e.frame(Us),
5044 Js = e.frame(Vs),
50135045 zs = _,
50145046 Ws = {
50155047 preencode(d, o) {
……@@ -5426,7 +5458,7 @@ const n = {
54265458 return { callKey: n, selfDeviceKey: o >= 4 && 1 & c ? e.fixed32.decode(d) : null }
54275459 },
54285460 },
5429 Ip = {
5461 Sp = {
54305462 preencode(d, o) {
54315463 e.uint.preencode(d, o.lastCleared)
54325464 },
……@@ -5435,7 +5467,7 @@ const n = {
54355467 },
54365468 decode: (d) => ({ lastCleared: e.uint.decode(d) }),
54375469 },
5438 Sp = { Nightly: "Nightly", Internal: "Internal", Production: "Production" },
5470 Ip = { Nightly: "Nightly", Internal: "Internal", Production: "Production" },
54395471 Fp = {
54405472 preencode(e, d) {
54415473 e.end++
……@@ -5506,35 +5538,90 @@ const n = {
55065538 return { buildType: n, latestOfflineAbi: o >= 6 && 1 & c ? e.uint.decode(d) : 0 }
55075539 },
55085540 },
5509 Op = e.frame(P),
5510 Vp = Op,
5511 Up = e.frame(fe),
5512 Jp = Op,
5513 zp = Up,
5514 Wp = Up,
5515 Hp = e.frame(Pd),
5516 Gp = e.frame(lp),
5517 Qp = Gp,
5518 Xp = Op,
5519 Yp = Op,
5520 Zp = e.frame(Mc),
5541 Op = oe,
5542 Up = {
5543 preencode(d, o) {
5544 ;(Op.preencode(d, o.header),
5545 e.fixed32.preencode(d, o.deviceKey),
5546 e.buffer.preencode(d, o.deviceProof),
5547 e.buffer.preencode(d, o.writerProof))
5548 },
5549 encode(d, o) {
5550 ;(Op.encode(d, o.header),
5551 e.fixed32.encode(d, o.deviceKey),
5552 e.buffer.encode(d, o.deviceProof),
5553 e.buffer.encode(d, o.writerProof))
5554 },
5555 decode: (d) => ({
5556 header: Op.decode(d),
5557 deviceKey: e.fixed32.decode(d),
5558 deviceProof: e.buffer.decode(d),
5559 writerProof: e.buffer.decode(d),
5560 }),
5561 },
5562 Vp = {
5563 preencode(d, n) {
5564 ;(d.end++,
5565 o >= 7 &&
5566 n.otaResyncPrivateProfileBump &&
5567 e.uint.preencode(d, n.otaResyncPrivateProfileBump))
5568 },
5569 encode(d, n) {
5570 const c = o >= 7 && n.otaResyncPrivateProfileBump ? 1 : 0
5571 ;(e.uint.encode(d, c),
5572 o >= 7 && n.otaResyncPrivateProfileBump && e.uint.encode(d, n.otaResyncPrivateProfileBump))
5573 },
5574 decode(d) {
5575 const n = e.uint.decode(d)
5576 return { otaResyncPrivateProfileBump: o >= 7 && 1 & n ? e.uint.decode(d) : 0 }
5577 },
5578 },
5579 Jp = {
5580 preencode(d, o) {
5581 ;(e.fixed32.preencode(d, o.deviceKey),
5582 e.buffer.preencode(d, o.proof),
5583 e.uint.preencode(d, o.createdAt))
5584 },
5585 encode(d, o) {
5586 ;(e.fixed32.encode(d, o.deviceKey),
5587 e.buffer.encode(d, o.proof),
5588 e.uint.encode(d, o.createdAt))
5589 },
5590 decode: (d) => ({
5591 deviceKey: e.fixed32.decode(d),
5592 proof: e.buffer.decode(d),
5593 createdAt: e.uint.decode(d),
5594 }),
5595 },
5596 zp = e.frame(P),
5597 Wp = zp,
5598 Hp = e.frame(fe),
5599 Gp = zp,
5600 Qp = Hp,
5601 Xp = Hp,
5602 Yp = e.frame(Pd),
5603 Zp = e.frame(lp),
55215604 $p = Zp,
5522 _p = Zp,
5523 eu = e.frame(Dp),
5524 du = Up
5525function ou(e) {
5605 _p = zp,
5606 eu = zp,
5607 du = e.frame(Mc),
5608 ou = du,
5609 nu = du,
5610 cu = e.frame(Dp),
5611 ru = Hp
5612function tu(e) {
55265613 o = e
55275614}
5528function nu(d, n, c = 6) {
5529 return ((o = c), e.encode(tu(d), n))
5615function iu(d, n, c = 7) {
5616 return ((o = c), e.encode(pu(d), n))
55305617}
5531function cu(d, n, c = 6) {
5532 return ((o = c), e.decode(tu(d), n))
5618function au(d, n, c = 7) {
5619 return ((o = c), e.decode(pu(d), n))
55335620}
5534function ru(e) {
5621function su(e) {
55355622 switch (e) {
55365623 case "@keet/room-type":
5537 return U
5624 return V
55385625 case "@keet/room-supported-language":
55395626 return Y
55405627 case "@keet/display-type":
……@@ -5554,12 +5641,12 @@ function ru(e) {
55545641 case "@keet/member-label-type":
55555642 return op
55565643 case "@keet/build-type":
5557 return Sp
5644 return Ip
55585645 default:
55595646 throw new Error("Enum not found " + e)
55605647 }
55615648}
5562function tu(e) {
5649function pu(e) {
55635650 switch (e) {
55645651 case "@keet/head":
55655652 return n
……@@ -5600,9 +5687,9 @@ function tu(e) {
56005687 case "@keet/member-moderation-status":
56015688 return D
56025689 case "@keet/abi":
5603 return I
5604 case "@keet/device-stats":
56055690 return S
5691 case "@keet/device-stats":
5692 return I
56065693 case "@keet/member-stats":
56075694 return F
56085695 case "@keet/chat-stats":
……@@ -5610,7 +5697,7 @@ function tu(e) {
56105697 case "@keet/file-stats":
56115698 return j
56125699 case "@keet/stats":
5613 return V
5700 return U
56145701 case "@keet/room-type":
56155702 return J
56165703 case "@keet/system-settings":
……@@ -5668,7 +5755,7 @@ function tu(e) {
56685755 case "@keet/invitation-metadata":
56695756 return Be
56705757 case "@keet/invitation":
5671 return Ve
5758 return Ue
56725759 case "@keet/add-invitation-operation":
56735760 return ze
56745761 case "@keet/remove-invitation-operation":
……@@ -5710,7 +5797,7 @@ function tu(e) {
57105797 case "@keet/change-member-status-operation":
57115798 return Cd
57125799 case "@keet/change-member-role-operation":
5713 return Id
5800 return Sd
57145801 case "@keet/remove-member-operation":
57155802 return Fd
57165803 case "@keet/member-activity":
……@@ -5758,7 +5845,7 @@ function tu(e) {
57585845 case "@keet/full-chat-message-record":
57595846 return Bo
57605847 case "@keet/add-chat-message-operation":
5761 return Vo
5848 return Uo
57625849 case "@keet/remove-chat-message-operation":
57635850 return Jo
57645851 case "@keet/update-chat-message-operation":
……@@ -5798,7 +5885,7 @@ function tu(e) {
57985885 case "@keet/update-system-settings-operation":
57995886 return Dn
58005887 case "@keet/test-increment-operation":
5801 return Sn
5888 return In
58025889 case "@keet/test-collection-record-1":
58035890 return Fn
58045891 case "@keet/label-type":
……@@ -5808,9 +5895,9 @@ function tu(e) {
58085895 case "@keet/add-chat-label-operation":
58095896 return Nn
58105897 case "@keet/remove-chat-label-operation":
5811 return Vn
5812 case "@keet/chat-label-summary":
58135898 return Un
5899 case "@keet/chat-label-summary":
5900 return Vn
58145901 case "@keet/chat-label-digest":
58155902 return zn
58165903 case "@keet/update-read-length-operation":
……@@ -5862,7 +5949,7 @@ function tu(e) {
58625949 case "@keet-private-id/contact-record":
58635950 return Cc
58645951 case "@keet-private-id/add-contact-operation":
5865 return Sc
5952 return Ic
58665953 case "@keet-private-id/update-contact-status-operation":
58675954 return Lc
58685955 case "@keet-private-id/remove-contact-operation":
……@@ -5918,9 +6005,9 @@ function tu(e) {
59186005 case "@local/identity-record":
59196006 return Cr
59206007 case "@local/tasks":
5921 return Ir
5922 case "@local/room-keys":
59236008 return Sr
6009 case "@local/room-keys":
6010 return Ir
59246011 case "@local/join-room-invitation-task":
59256012 return Lr
59266013 case "@local/join-room-response-task":
……@@ -5932,7 +6019,7 @@ function tu(e) {
59326019 case "@local/join-room-keys-task":
59336020 return Or
59346021 case "@local/create-room-task":
5935 return Ur
6022 return Vr
59366023 case "@local/leave-room-task":
59376024 return Jr
59386025 case "@local/clear-room-task":
……@@ -5964,7 +6051,7 @@ function tu(e) {
59646051 case "@local/member":
59656052 return Ct
59666053 case "@local/device":
5967 return It
6054 return St
59686055 case "@local/file":
59696056 return Ft
59706057 case "@local/debug-flag":
……@@ -5976,7 +6063,7 @@ function tu(e) {
59766063 case "@local/unread":
59776064 return Ot
59786065 case "@local/error-record-details":
5979 return Vt
6066 return Ut
59806067 case "@local/error-record":
59816068 return Jt
59826069 case "@local/keet-state":
……@@ -6030,7 +6117,7 @@ function tu(e) {
60306117 case "@api/core/remove-chat-message-response":
60316118 return Oi
60326119 case "@api/core/add-chat-reaction-request":
6033 return Ui
6120 return Vi
60346121 case "@api/core/add-chat-reaction-response":
60356122 return zi
60366123 case "@api/core/remove-chat-reaction-request":
……@@ -6082,13 +6169,13 @@ function tu(e) {
60826169 case "@api/core/member-list-remove":
60836170 return Ca
60846171 case "@api/core/chat-reset":
6085 return Ia
6086 case "@api/core/message-timestamps":
60876172 return Sa
6173 case "@api/core/message-timestamps":
6174 return Ia
60886175 case "@api/core/message":
60896176 return Ba
60906177 case "@api/core/message-info":
6091 return Va
6178 return Ua
60926179 case "@api/core/message-info-chat":
60936180 return Ja
60946181 case "@api/core/message-info-member":
……@@ -6132,7 +6219,7 @@ function tu(e) {
61326219 case "@api/core/reject-join-request-request":
61336220 return Ds
61346221 case "@api/core/reject-join-request-response":
6135 return Ss
6222 return Is
61366223 case "@api/core/stop-pairing-request":
61376224 return Ls
61386225 case "@api/core/stop-pairing-response":
……@@ -6142,9 +6229,9 @@ function tu(e) {
61426229 case "@api/core/want-identity":
61436230 return Os
61446231 case "@api/core/unwant-identity":
6145 return Vs
6146 case "@api/core/identity-status":
61476232 return Us
6233 case "@api/core/identity-status":
6234 return Vs
61486235 case "@api/core/identity":
61496236 return Ws
61506237 case "@api/core/identity-member":
……@@ -6196,7 +6283,7 @@ function tu(e) {
61966283 case "@local/active-call":
61976284 return Dp
61986285 case "@local/file-gc-info":
6199 return Ip
6286 return Sp
62006287 case "@keet/build-type":
62016288 return Fp
62026289 case "@keet/test-crash-operation":
……@@ -6205,12 +6292,18 @@ function tu(e) {
62056292 return Bp
62066293 case "@local/environment-record":
62076294 return Np
6295 case "@keet-private-id/shorten-device-attestation-operation":
6296 return Up
6297 case "@local/ota-actions":
6298 return Vp
6299 case "@local/device-attestation":
6300 return Jp
62086301 default:
62096302 throw new Error("Encoder not found " + e)
62106303 }
62116304}
6212function iu(e, d = 6) {
6213 const n = tu(e)
6305function uu(e, d = 7) {
6306 const n = pu(e)
62146307 return {
62156308 preencode(e, c) {
62166309 ;((o = d), n.preencode(e, c))
……@@ -6221,14 +6314,14 @@ function iu(e, d = 6) {
62216314 decode: (e) => ((o = d), n.decode(e)),
62226315 }
62236316}
6224const au = iu
6317const lu = uu
62256318module.exports = {
6226 resolveStruct: au,
6227 getStruct: iu,
6228 getEnum: ru,
6229 getEncoding: tu,
6230 encode: nu,
6231 decode: cu,
6232 setVersion: ou,
6319 resolveStruct: lu,
6320 getStruct: uu,
6321 getEnum: su,
6322 getEncoding: pu,
6323 encode: iu,
6324 decode: au,
6325 setVersion: tu,
62336326 version: o,
62346327}
@holepunchto/keet-core/schema/spec/api/hyperschema/index.js +365 -272
……@@ -1,6 +1,6 @@
11const { c: e } = require("hyperschema/runtime"),
2 d = 6
3let o = 6
2 d = 7
3let o = 7
44const n = {
55 preencode(d, o) {
66 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.length))
……@@ -204,7 +204,7 @@ const n = {
204204 ;(v.preencode(d, o.pointer),
205205 d.end++,
206206 o.metadata && g.preencode(d, o.metadata),
207 o.preview && Op.preencode(d, o.preview),
207 o.preview && zp.preencode(d, o.preview),
208208 o.hash && e.fixed32.preencode(d, o.hash))
209209 },
210210 encode(d, o) {
……@@ -212,7 +212,7 @@ const n = {
212212 ;(v.encode(d, o.pointer),
213213 e.uint.encode(d, n),
214214 o.metadata && g.encode(d, o.metadata),
215 o.preview && Op.encode(d, o.preview),
215 o.preview && zp.encode(d, o.preview),
216216 o.hash && e.fixed32.encode(d, o.hash))
217217 },
218218 decode(d) {
……@@ -221,7 +221,7 @@ const n = {
221221 return {
222222 pointer: o,
223223 metadata: 1 & n ? g.decode(d) : null,
224 preview: 2 & n ? Op.decode(d) : null,
224 preview: 2 & n ? zp.decode(d) : null,
225225 hash: 4 & n ? e.fixed32.decode(d) : null,
226226 }
227227 },
……@@ -355,7 +355,7 @@ const n = {
355355 return { isMuted: !!(1 & o), isBanned: !!(2 & o), isShadowBanned: !!(4 & o) }
356356 },
357357 },
358 I = {
358 S = {
359359 preencode(d, o) {
360360 e.uint.preencode(d, o.version)
361361 },
……@@ -364,7 +364,7 @@ const n = {
364364 },
365365 decode: (d) => ({ version: e.uint.decode(d) }),
366366 },
367 S = {
367 I = {
368368 preencode(d, o) {
369369 ;(e.uint.preencode(d, o.total), e.uint.preencode(d, o.active))
370370 },
……@@ -421,11 +421,11 @@ const n = {
421421 },
422422 decode: (d) => ({ clock: e.uint.decode(d) }),
423423 },
424 E = e.frame(S),
424 E = e.frame(I),
425425 B = e.frame(F),
426426 N = e.frame(L),
427427 O = e.frame(j),
428 V = {
428 U = {
429429 preencode(e, d) {
430430 ;(E.preencode(e, d.devices),
431431 B.preencode(e, d.members),
……@@ -442,7 +442,7 @@ const n = {
442442 files: O.decode(e),
443443 }),
444444 },
445 U = { Default: 1, Broadcast: 2, DirectMessage: 3 },
445 V = { Default: 1, Broadcast: 2, DirectMessage: 3 },
446446 J = {
447447 preencode(e, d) {
448448 e.end++
……@@ -499,7 +499,7 @@ const n = {
499499 }
500500 },
501501 },
502 W = e.frame(I),
502 W = e.frame(S),
503503 H = e.frame(z),
504504 G = {
505505 preencode(d, o) {
……@@ -588,7 +588,7 @@ const n = {
588588 preencode(d, o) {
589589 ;(d.end++,
590590 o.title && e.string.preencode(d, o.title),
591 o.avatar && Vp.preencode(d, o.avatar),
591 o.avatar && Wp.preencode(d, o.avatar),
592592 o.description && e.string.preencode(d, o.description),
593593 o.supportedLanguages && $.preencode(d, o.supportedLanguages),
594594 o.blindPeers && _.preencode(d, o.blindPeers))
……@@ -602,7 +602,7 @@ const n = {
602602 (o.blindPeers ? 16 : 0)
603603 ;(e.uint.encode(d, n),
604604 o.title && e.string.encode(d, o.title),
605 o.avatar && Vp.encode(d, o.avatar),
605 o.avatar && Wp.encode(d, o.avatar),
606606 o.description && e.string.encode(d, o.description),
607607 o.supportedLanguages && $.encode(d, o.supportedLanguages),
608608 o.blindPeers && _.encode(d, o.blindPeers))
……@@ -611,7 +611,7 @@ const n = {
611611 const o = e.uint.decode(d)
612612 return {
613613 title: 1 & o ? e.string.decode(d) : null,
614 avatar: 2 & o ? Vp.decode(d) : null,
614 avatar: 2 & o ? Wp.decode(d) : null,
615615 description: 4 & o ? e.string.decode(d) : null,
616616 supportedLanguages: 8 & o ? $.decode(d) : null,
617617 blindPeers: 16 & o ? _.decode(d) : null,
……@@ -673,7 +673,7 @@ const n = {
673673 ;(e.fixed32.preencode(d, o.key),
674674 e.fixed32.preencode(d, o.memberKey),
675675 se.preencode(d, o.status),
676 Up.preencode(d, o.profile),
676 Hp.preencode(d, o.profile),
677677 d.end++,
678678 o.invitation && pe.preencode(d, o.invitation))
679679 },
……@@ -682,7 +682,7 @@ const n = {
682682 ;(e.fixed32.encode(d, o.key),
683683 e.fixed32.encode(d, o.memberKey),
684684 se.encode(d, o.status),
685 Up.encode(d, o.profile),
685 Hp.encode(d, o.profile),
686686 e.uint.encode(d, n),
687687 o.invitation && pe.encode(d, o.invitation))
688688 },
……@@ -690,7 +690,7 @@ const n = {
690690 key: e.fixed32.decode(d),
691691 memberKey: e.fixed32.decode(d),
692692 status: se.decode(d),
693 profile: Up.decode(d),
693 profile: Hp.decode(d),
694694 invitation: 1 & e.uint.decode(d) ? pe.decode(d) : null,
695695 }),
696696 },
……@@ -700,7 +700,7 @@ const n = {
700700 d.end++,
701701 o.mailbox && e.fixed32.preencode(d, o.mailbox),
702702 o.displayName && e.string.preencode(d, o.displayName),
703 o.avatar && Jp.preencode(d, o.avatar),
703 o.avatar && Gp.preencode(d, o.avatar),
704704 o.username && e.string.preencode(d, o.username))
705705 },
706706 encode(d, o) {
……@@ -710,7 +710,7 @@ const n = {
710710 e.uint.encode(d, n),
711711 o.mailbox && e.fixed32.encode(d, o.mailbox),
712712 o.displayName && e.string.encode(d, o.displayName),
713 o.avatar && Jp.encode(d, o.avatar),
713 o.avatar && Gp.encode(d, o.avatar),
714714 o.username && e.string.encode(d, o.username))
715715 },
716716 decode(d) {
……@@ -720,7 +720,7 @@ const n = {
720720 timestamp: o,
721721 mailbox: 1 & n ? e.fixed32.decode(d) : null,
722722 displayName: 2 & n ? e.string.decode(d) : null,
723 avatar: 4 & n ? Jp.decode(d) : null,
723 avatar: 4 & n ? Gp.decode(d) : null,
724724 username: 8 & n ? e.string.decode(d) : null,
725725 }
726726 },
……@@ -765,12 +765,12 @@ const n = {
765765 },
766766 xe = {
767767 preencode(e, d) {
768 ;(zp.preencode(e, d.profile), ie.preencode(e, d.attestation))
768 ;(Qp.preencode(e, d.profile), ie.preencode(e, d.attestation))
769769 },
770770 encode(e, d) {
771 ;(zp.encode(e, d.profile), ie.encode(e, d.attestation))
771 ;(Qp.encode(e, d.profile), ie.encode(e, d.attestation))
772772 },
773 decode: (e) => ({ profile: zp.decode(e), attestation: ie.decode(e) }),
773 decode: (e) => ({ profile: Qp.decode(e), attestation: ie.decode(e) }),
774774 },
775775 be = me,
776776 ve = {
……@@ -889,25 +889,25 @@ const n = {
889889 },
890890 decode: (d) => ({ device: Me.decode(d), member: 1 & e.uint.decode(d) ? Ce.decode(d) : null }),
891891 },
892 Ie = e.frame(qe),
893 Se = e.frame(De),
892 Se = e.frame(qe),
893 Ie = e.frame(De),
894894 Fe = {
895895 preencode(e, d) {
896896 ;(e.end++,
897 d.withInvitation && Ie.preencode(e, d.withInvitation),
898 d.withMemberProof && Se.preencode(e, d.withMemberProof))
897 d.withInvitation && Se.preencode(e, d.withInvitation),
898 d.withMemberProof && Ie.preencode(e, d.withMemberProof))
899899 },
900900 encode(d, o) {
901901 const n = (o.withInvitation ? 1 : 0) | (o.withMemberProof ? 2 : 0)
902902 ;(e.uint.encode(d, n),
903 o.withInvitation && Ie.encode(d, o.withInvitation),
904 o.withMemberProof && Se.encode(d, o.withMemberProof))
903 o.withInvitation && Se.encode(d, o.withInvitation),
904 o.withMemberProof && Ie.encode(d, o.withMemberProof))
905905 },
906906 decode(d) {
907907 const o = e.uint.decode(d)
908908 return {
909 withInvitation: 1 & o ? Ie.decode(d) : null,
910 withMemberProof: 2 & o ? Se.decode(d) : null,
909 withInvitation: 1 & o ? Se.decode(d) : null,
910 withMemberProof: 2 & o ? Ie.decode(d) : null,
911911 }
912912 },
913913 },
……@@ -956,7 +956,7 @@ const n = {
956956 },
957957 Ne = Le,
958958 Oe = e.frame(Be),
959 Ve = {
959 Ue = {
960960 preencode(d, o) {
961961 ;(e.fixed32.preencode(d, o.id),
962962 Ne.preencode(d, o.response),
……@@ -986,16 +986,16 @@ const n = {
986986 }
987987 },
988988 },
989 Ue = oe,
990 Je = e.frame(Ve),
989 Ve = oe,
990 Je = e.frame(Ue),
991991 ze = {
992992 preencode(e, d) {
993 ;(Ue.preencode(e, d.header), Je.preencode(e, d.invitation))
993 ;(Ve.preencode(e, d.header), Je.preencode(e, d.invitation))
994994 },
995995 encode(e, d) {
996 ;(Ue.encode(e, d.header), Je.encode(e, d.invitation))
996 ;(Ve.encode(e, d.header), Je.encode(e, d.invitation))
997997 },
998 decode: (e) => ({ header: Ue.decode(e), invitation: Je.decode(e) }),
998 decode: (e) => ({ header: Ve.decode(e), invitation: Je.decode(e) }),
999999 },
10001000 We = oe,
10011001 He = {
……@@ -1132,13 +1132,13 @@ const n = {
11321132 rd = oe,
11331133 td = {
11341134 preencode(e, d) {
1135 ;(rd.preencode(e, d.header), e.end++, d.profile && Wp.preencode(e, d.profile))
1135 ;(rd.preencode(e, d.header), e.end++, d.profile && Xp.preencode(e, d.profile))
11361136 },
11371137 encode(d, o) {
11381138 const n = o.profile ? 1 : 0
1139 ;(rd.encode(d, o.header), e.uint.encode(d, n), o.profile && Wp.encode(d, o.profile))
1139 ;(rd.encode(d, o.header), e.uint.encode(d, n), o.profile && Xp.encode(d, o.profile))
11401140 },
1141 decode: (d) => ({ header: rd.decode(d), profile: 1 & e.uint.decode(d) ? Wp.decode(d) : null }),
1141 decode: (d) => ({ header: rd.decode(d), profile: 1 & e.uint.decode(d) ? Xp.decode(d) : null }),
11421142 },
11431143 id = oe,
11441144 ad = {
……@@ -1219,7 +1219,7 @@ const n = {
12191219 hd.preencode(d, o.status),
12201220 Kd.preencode(d, o.profile),
12211221 d.end++,
1222 o.proofs && Hp.preencode(d, o.proofs))
1222 o.proofs && Yp.preencode(d, o.proofs))
12231223 },
12241224 encode(d, o) {
12251225 const n = o.proofs ? 1 : 0
……@@ -1227,13 +1227,13 @@ const n = {
12271227 hd.encode(d, o.status),
12281228 Kd.encode(d, o.profile),
12291229 e.uint.encode(d, n),
1230 o.proofs && Hp.encode(d, o.proofs))
1230 o.proofs && Yp.encode(d, o.proofs))
12311231 },
12321232 decode: (d) => ({
12331233 key: e.fixed32.decode(d),
12341234 status: hd.decode(d),
12351235 profile: Kd.decode(d),
1236 proofs: 1 & e.uint.decode(d) ? Hp.decode(d) : null,
1236 proofs: 1 & e.uint.decode(d) ? Yp.decode(d) : null,
12371237 }),
12381238 },
12391239 Pd = {
……@@ -1294,7 +1294,7 @@ const n = {
12941294 }),
12951295 },
12961296 Dd = oe,
1297 Id = {
1297 Sd = {
12981298 preencode(d, o) {
12991299 ;(Dd.preencode(d, o.header), e.fixed32.preencode(d, o.key), d.end++)
13001300 },
……@@ -1309,15 +1309,15 @@ const n = {
13091309 return { header: o, key: n, isModerator: !!(1 & c), isAdmin: !!(2 & c) }
13101310 },
13111311 },
1312 Sd = oe,
1312 Id = oe,
13131313 Fd = {
13141314 preencode(d, o) {
1315 ;(Sd.preencode(d, o.header), e.fixed32.preencode(d, o.key))
1315 ;(Id.preencode(d, o.header), e.fixed32.preencode(d, o.key))
13161316 },
13171317 encode(d, o) {
1318 ;(Sd.encode(d, o.header), e.fixed32.encode(d, o.key))
1318 ;(Id.encode(d, o.header), e.fixed32.encode(d, o.key))
13191319 },
1320 decode: (d) => ({ header: Sd.decode(d), key: e.fixed32.decode(d) }),
1320 decode: (d) => ({ header: Id.decode(d), key: e.fixed32.decode(d) }),
13211321 },
13221322 Ld = {
13231323 preencode(d, o) {
……@@ -1354,8 +1354,8 @@ const n = {
13541354 },
13551355 },
13561356 Od = e.frame(jd),
1357 Vd = e.frame(Ed),
1358 Ud = e.frame(Nd),
1357 Ud = e.frame(Ed),
1358 Vd = e.frame(Nd),
13591359 Jd = e.frame(Bd),
13601360 zd = {
13611361 preencode(d, n) {
……@@ -1372,10 +1372,10 @@ const n = {
13721372 (o >= 3 && n.locationShared ? 512 : 0)
13731373 ;(e.uint.preencode(d, c),
13741374 n.memberJoined && Od.preencode(d, n.memberJoined),
1375 n.memberLeft && Vd.preencode(d, n.memberLeft),
1376 n.titleChanged && Ud.preencode(d, n.titleChanged),
1375 n.memberLeft && Ud.preencode(d, n.memberLeft),
1376 n.titleChanged && Vd.preencode(d, n.titleChanged),
13771377 n.memberRemoved && Jd.preencode(d, n.memberRemoved),
1378 o >= 3 && n.locationShared && Gp.preencode(d, n.locationShared))
1378 o >= 3 && n.locationShared && Zp.preencode(d, n.locationShared))
13791379 },
13801380 encode(d, n) {
13811381 const c =
……@@ -1391,30 +1391,30 @@ const n = {
13911391 (o >= 3 && n.locationShared ? 512 : 0)
13921392 ;(e.uint.encode(d, c),
13931393 n.memberJoined && Od.encode(d, n.memberJoined),
1394 n.memberLeft && Vd.encode(d, n.memberLeft),
1395 n.titleChanged && Ud.encode(d, n.titleChanged),
1394 n.memberLeft && Ud.encode(d, n.memberLeft),
1395 n.titleChanged && Vd.encode(d, n.titleChanged),
13961396 n.memberRemoved && Jd.encode(d, n.memberRemoved),
1397 o >= 3 && n.locationShared && Gp.encode(d, n.locationShared))
1397 o >= 3 && n.locationShared && Zp.encode(d, n.locationShared))
13981398 },
13991399 decode(d) {
14001400 const n = e.uint.decode(d)
14011401 return {
14021402 memberJoined: 1 & n ? Od.decode(d) : null,
1403 memberLeft: 2 & n ? Vd.decode(d) : null,
1404 titleChanged: 4 & n ? Ud.decode(d) : null,
1403 memberLeft: 2 & n ? Ud.decode(d) : null,
1404 titleChanged: 4 & n ? Vd.decode(d) : null,
14051405 callStarted: !!(8 & n),
14061406 callHangup: !!(16 & n),
14071407 callMissed: !!(32 & n),
14081408 roomAvatarChanged: !!(64 & n),
14091409 invitationCreated: !!(128 & n),
14101410 memberRemoved: 256 & n ? Jd.decode(d) : null,
1411 locationShared: o >= 3 && 512 & n ? Gp.decode(d) : null,
1411 locationShared: o >= 3 && 512 & n ? Zp.decode(d) : null,
14121412 }
14131413 },
14141414 },
14151415 Wd = {
14161416 preencode(e, d) {
1417 ;(e.end++, o >= 3 && d.locationShared && Qp.preencode(e, d.locationShared))
1417 ;(e.end++, o >= 3 && d.locationShared && $p.preencode(e, d.locationShared))
14181418 },
14191419 encode(d, n) {
14201420 const c =
……@@ -1422,7 +1422,7 @@ const n = {
14221422 (n.callHangup ? 2 : 0) |
14231423 (n.callMissed ? 4 : 0) |
14241424 (o >= 3 && n.locationShared ? 8 : 0)
1425 ;(e.uint.encode(d, c), o >= 3 && n.locationShared && Qp.encode(d, n.locationShared))
1425 ;(e.uint.encode(d, c), o >= 3 && n.locationShared && $p.encode(d, n.locationShared))
14261426 },
14271427 decode(d) {
14281428 const n = e.uint.decode(d)
……@@ -1430,7 +1430,7 @@ const n = {
14301430 callStarted: !!(1 & n),
14311431 callHangup: !!(2 & n),
14321432 callMissed: !!(4 & n),
1433 locationShared: o >= 3 && 8 & n ? Qp.decode(d) : null,
1433 locationShared: o >= 3 && 8 & n ? $p.decode(d) : null,
14341434 }
14351435 },
14361436 },
……@@ -1739,7 +1739,7 @@ const n = {
17391739 },
17401740 decode: (d) => ({ thread: e.uint.decode(d), index: e.uint.decode(d) }),
17411741 },
1742 Mo = e.frame(V),
1742 Mo = e.frame(U),
17431743 Co = {
17441744 preencode(d, o) {
17451745 ;(e.uint.preencode(d, o.id),
……@@ -1769,8 +1769,8 @@ const n = {
17691769 },
17701770 },
17711771 Do = e.frame(Ao),
1772 Io = e.frame(wo),
1773 So = e.frame(zd),
1772 So = e.frame(wo),
1773 Io = e.frame(zd),
17741774 Fo = {
17751775 preencode(d, o) {
17761776 ;(qo.preencode(d, o.id),
……@@ -1780,8 +1780,8 @@ const n = {
17801780 d.end++,
17811781 o.editedAt && e.uint.preencode(d, o.editedAt),
17821782 Do.preencode(d, o.status),
1783 o.message && Io.preencode(d, o.message),
1784 o.event && So.preencode(d, o.event))
1783 o.message && So.preencode(d, o.message),
1784 o.event && Io.preencode(d, o.event))
17851785 },
17861786 encode(d, o) {
17871787 const n = (o.editedAt ? 1 : 0) | (o.message ? 2 : 0) | (o.event ? 4 : 0)
……@@ -1792,8 +1792,8 @@ const n = {
17921792 e.uint.encode(d, n),
17931793 o.editedAt && e.uint.encode(d, o.editedAt),
17941794 Do.encode(d, o.status),
1795 o.message && Io.encode(d, o.message),
1796 o.event && So.encode(d, o.event))
1795 o.message && So.encode(d, o.message),
1796 o.event && Io.encode(d, o.event))
17971797 },
17981798 decode(d) {
17991799 const o = qo.decode(d),
……@@ -1808,14 +1808,14 @@ const n = {
18081808 timestamp: t,
18091809 editedAt: 1 & i ? e.uint.decode(d) : 0,
18101810 status: Do.decode(d),
1811 message: 2 & i ? Io.decode(d) : null,
1812 event: 4 & i ? So.decode(d) : null,
1811 message: 2 & i ? So.decode(d) : null,
1812 event: 4 & i ? Io.decode(d) : null,
18131813 }
18141814 },
18151815 },
18161816 Lo = Do,
18171817 jo = e.frame(To),
1818 Eo = So,
1818 Eo = Io,
18191819 Bo = {
18201820 preencode(d, o) {
18211821 ;(qo.preencode(d, o.id),
……@@ -1860,7 +1860,7 @@ const n = {
18601860 },
18611861 No = oe,
18621862 Oo = e.frame(ko),
1863 Vo = {
1863 Uo = {
18641864 preencode(e, d) {
18651865 ;(No.preencode(e, d.header), Oo.preencode(e, d.message))
18661866 },
……@@ -1869,15 +1869,15 @@ const n = {
18691869 },
18701870 decode: (e) => ({ header: No.decode(e), message: Oo.decode(e) }),
18711871 },
1872 Uo = oe,
1872 Vo = oe,
18731873 Jo = {
18741874 preencode(e, d) {
1875 ;(Uo.preencode(e, d.header), c.preencode(e, d.oplog))
1875 ;(Vo.preencode(e, d.header), c.preencode(e, d.oplog))
18761876 },
18771877 encode(e, d) {
1878 ;(Uo.encode(e, d.header), c.encode(e, d.oplog))
1878 ;(Vo.encode(e, d.header), c.encode(e, d.oplog))
18791879 },
1880 decode: (e) => ({ header: Uo.decode(e), oplog: c.decode(e) }),
1880 decode: (e) => ({ header: Vo.decode(e), oplog: c.decode(e) }),
18811881 },
18821882 zo = oe,
18831883 Wo = Oo,
……@@ -1922,7 +1922,7 @@ const n = {
19221922 ;(Zo.preencode(d, o.header),
19231923 c.preencode(d, o.oplog),
19241924 e.uint.preencode(d, o.index),
1925 Xp.preencode(d, o.preview),
1925 _p.preencode(d, o.preview),
19261926 d.end++,
19271927 o.displayType && Yo.preencode(d, o.displayType))
19281928 },
……@@ -1931,7 +1931,7 @@ const n = {
19311931 ;(Zo.encode(d, o.header),
19321932 c.encode(d, o.oplog),
19331933 e.uint.encode(d, o.index),
1934 Xp.encode(d, o.preview),
1934 _p.encode(d, o.preview),
19351935 e.uint.encode(d, n),
19361936 o.displayType && Yo.encode(d, o.displayType))
19371937 },
……@@ -1939,7 +1939,7 @@ const n = {
19391939 header: Zo.decode(d),
19401940 oplog: c.decode(d),
19411941 index: e.uint.decode(d),
1942 preview: Xp.decode(d),
1942 preview: _p.decode(d),
19431943 displayType: 1 & e.uint.decode(d) ? Yo.decode(d) : 0,
19441944 }),
19451945 },
……@@ -2032,19 +2032,19 @@ const n = {
20322032 ;(e.fixed32.preencode(d, o.memberKey),
20332033 e.string.preencode(d, o.displayName),
20342034 d.end++,
2035 o.avatar && Yp.preencode(d, o.avatar))
2035 o.avatar && eu.preencode(d, o.avatar))
20362036 },
20372037 encode(d, o) {
20382038 const n = o.avatar ? 1 : 0
20392039 ;(e.fixed32.encode(d, o.memberKey),
20402040 e.string.encode(d, o.displayName),
20412041 e.uint.encode(d, n),
2042 o.avatar && Yp.encode(d, o.avatar))
2042 o.avatar && eu.encode(d, o.avatar))
20432043 },
20442044 decode: (d) => ({
20452045 memberKey: e.fixed32.decode(d),
20462046 displayName: e.string.decode(d),
2047 avatar: 1 & e.uint.decode(d) ? Yp.decode(d) : null,
2047 avatar: 1 & e.uint.decode(d) ? eu.decode(d) : null,
20482048 }),
20492049 },
20502050 ln = {
……@@ -2202,15 +2202,15 @@ const n = {
22022202 },
22032203 decode: (d) => ({ header: Mn.decode(d), key: e.uint.decode(d), settings: Cn.decode(d) }),
22042204 },
2205 In = oe,
2206 Sn = {
2205 Sn = oe,
2206 In = {
22072207 preencode(d, o) {
2208 ;(In.preencode(d, o.header), e.uint.preencode(d, o.value))
2208 ;(Sn.preencode(d, o.header), e.uint.preencode(d, o.value))
22092209 },
22102210 encode(d, o) {
2211 ;(In.encode(d, o.header), e.uint.encode(d, o.value))
2211 ;(Sn.encode(d, o.header), e.uint.encode(d, o.value))
22122212 },
2213 decode: (d) => ({ header: In.decode(d), value: e.uint.decode(d) }),
2213 decode: (d) => ({ header: Sn.decode(d), value: e.uint.decode(d) }),
22142214 },
22152215 Fn = {
22162216 preencode(d, o) {
……@@ -2263,7 +2263,7 @@ const n = {
22632263 decode: (e) => ({ header: Bn.decode(e), oplog: c.decode(e), label: jn.decode(e) }),
22642264 },
22652265 On = oe,
2266 Vn = {
2266 Un = {
22672267 preencode(e, d) {
22682268 ;(On.preencode(e, d.header), c.preencode(e, d.oplog), jn.preencode(e, d.label))
22692269 },
……@@ -2272,7 +2272,7 @@ const n = {
22722272 },
22732273 decode: (e) => ({ header: On.decode(e), oplog: c.decode(e), label: jn.decode(e) }),
22742274 },
2275 Un = {
2275 Vn = {
22762276 preencode(d, o) {
22772277 ;(jn.preencode(d, o.label), e.uint.preencode(d, o.count))
22782278 },
……@@ -2281,7 +2281,7 @@ const n = {
22812281 },
22822282 decode: (d) => ({ label: jn.decode(d), count: e.uint.decode(d) }),
22832283 },
2284 Jn = e.array(e.frame(Un)),
2284 Jn = e.array(e.frame(Vn)),
22852285 zn = {
22862286 preencode(d, o) {
22872287 ;(qo.preencode(d, o.id),
……@@ -2342,7 +2342,7 @@ const n = {
23422342 Xn = {
23432343 preencode(d, o) {
23442344 ;(e.fixed32.preencode(d, o.memberKey),
2345 Zp.preencode(d, o.status),
2345 du.preencode(d, o.status),
23462346 d.end++,
23472347 o.mailbox && e.fixed32.preencode(d, o.mailbox),
23482348 o.roomKey && e.fixed32.preencode(d, o.roomKey))
……@@ -2350,14 +2350,14 @@ const n = {
23502350 encode(d, o) {
23512351 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
23522352 ;(e.fixed32.encode(d, o.memberKey),
2353 Zp.encode(d, o.status),
2353 du.encode(d, o.status),
23542354 e.uint.encode(d, n),
23552355 o.mailbox && e.fixed32.encode(d, o.mailbox),
23562356 o.roomKey && e.fixed32.encode(d, o.roomKey))
23572357 },
23582358 decode(d) {
23592359 const o = e.fixed32.decode(d),
2360 n = Zp.decode(d),
2360 n = du.decode(d),
23612361 c = e.uint.decode(d)
23622362 return {
23632363 memberKey: o,
……@@ -2595,7 +2595,8 @@ const n = {
25952595 (n.isFullyMuted ? 2 : 0) |
25962596 (n.isMentionsOnlyMuted ? 4 : 0) |
25972597 (n.isReadOnly ? 8 : 0) |
2598 (o >= 3 && n.isFavorite ? 16 : 0)
2598 (o >= 3 && n.isFavorite ? 16 : 0) |
2599 (o >= 7 && n.isUnread ? 32 : 0)
25992600 e.uint.encode(d, c)
26002601 },
26012602 decode(d) {
……@@ -2606,6 +2607,7 @@ const n = {
26062607 isMentionsOnlyMuted: !!(4 & n),
26072608 isReadOnly: !!(8 & n),
26082609 isFavorite: o >= 3 && !!(16 & n),
2610 isUnread: o >= 7 && !!(32 & n),
26092611 }
26102612 },
26112613 },
……@@ -2754,7 +2756,7 @@ const n = {
27542756 preencode(d, o) {
27552757 ;(e.fixed32.preencode(d, o.memberKey),
27562758 e.uint.preencode(d, o.clock),
2757 $p.preencode(d, o.status),
2759 ou.preencode(d, o.status),
27582760 d.end++,
27592761 o.mailbox && e.fixed32.preencode(d, o.mailbox),
27602762 o.roomKey && e.fixed32.preencode(d, o.roomKey))
……@@ -2763,7 +2765,7 @@ const n = {
27632765 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
27642766 ;(e.fixed32.encode(d, o.memberKey),
27652767 e.uint.encode(d, o.clock),
2766 $p.encode(d, o.status),
2768 ou.encode(d, o.status),
27672769 e.uint.encode(d, n),
27682770 o.mailbox && e.fixed32.encode(d, o.mailbox),
27692771 o.roomKey && e.fixed32.encode(d, o.roomKey))
……@@ -2771,7 +2773,7 @@ const n = {
27712773 decode(d) {
27722774 const o = e.fixed32.decode(d),
27732775 n = e.uint.decode(d),
2774 c = $p.decode(d),
2776 c = ou.decode(d),
27752777 r = e.uint.decode(d)
27762778 return {
27772779 memberKey: o,
……@@ -2783,15 +2785,15 @@ const n = {
27832785 },
27842786 },
27852787 Dc = oe,
2786 Ic = e.frame(Xn),
2787 Sc = {
2788 Sc = e.frame(Xn),
2789 Ic = {
27882790 preencode(e, d) {
2789 ;(Dc.preencode(e, d.header), Ic.preencode(e, d.contact))
2791 ;(Dc.preencode(e, d.header), Sc.preencode(e, d.contact))
27902792 },
27912793 encode(e, d) {
2792 ;(Dc.encode(e, d.header), Ic.encode(e, d.contact))
2794 ;(Dc.encode(e, d.header), Sc.encode(e, d.contact))
27932795 },
2794 decode: (e) => ({ header: Dc.decode(e), contact: Ic.decode(e) }),
2796 decode: (e) => ({ header: Dc.decode(e), contact: Sc.decode(e) }),
27952797 },
27962798 Fc = oe,
27972799 Lc = {
……@@ -2799,19 +2801,19 @@ const n = {
27992801 ;(Fc.preencode(d, o.header),
28002802 e.fixed32.preencode(d, o.memberKey),
28012803 e.uint.preencode(d, o.key),
2802 _p.preencode(d, o.status))
2804 nu.preencode(d, o.status))
28032805 },
28042806 encode(d, o) {
28052807 ;(Fc.encode(d, o.header),
28062808 e.fixed32.encode(d, o.memberKey),
28072809 e.uint.encode(d, o.key),
2808 _p.encode(d, o.status))
2810 nu.encode(d, o.status))
28092811 },
28102812 decode: (d) => ({
28112813 header: Fc.decode(d),
28122814 memberKey: e.fixed32.decode(d),
28132815 key: e.uint.decode(d),
2814 status: _p.decode(d),
2816 status: nu.decode(d),
28152817 }),
28162818 },
28172819 jc = oe,
……@@ -2858,27 +2860,27 @@ const n = {
28582860 }
28592861 },
28602862 },
2861 Vc = Pe,
2862 Uc = e.frame(i),
2863 Uc = Pe,
2864 Vc = e.frame(i),
28632865 Jc = {
28642866 preencode(d, o) {
2865 ;(Vc.preencode(d, o.sender),
2866 Uc.preencode(d, o.keys),
2867 ;(Uc.preencode(d, o.sender),
2868 Vc.preencode(d, o.keys),
28672869 e.fixed32.preencode(d, o.mailbox),
28682870 d.end++,
28692871 o.message && e.string.preencode(d, o.message))
28702872 },
28712873 encode(d, o) {
28722874 const n = o.message ? 1 : 0
2873 ;(Vc.encode(d, o.sender),
2874 Uc.encode(d, o.keys),
2875 ;(Uc.encode(d, o.sender),
2876 Vc.encode(d, o.keys),
28752877 e.fixed32.encode(d, o.mailbox),
28762878 e.uint.encode(d, n),
28772879 o.message && e.string.encode(d, o.message))
28782880 },
28792881 decode: (d) => ({
2880 sender: Vc.decode(d),
2881 keys: Uc.decode(d),
2882 sender: Uc.decode(d),
2883 keys: Vc.decode(d),
28822884 mailbox: e.fixed32.decode(d),
28832885 message: 1 & e.uint.decode(d) ? e.string.decode(d) : null,
28842886 }),
……@@ -2895,7 +2897,7 @@ const n = {
28952897 },
28962898 Hc = me,
28972899 Gc = e.frame(Oc),
2898 Qc = Uc,
2900 Qc = Vc,
28992901 Xc = {
29002902 preencode(d, o) {
29012903 ;(e.fixed32.preencode(d, o.memberKey),
……@@ -3060,22 +3062,45 @@ const n = {
30603062 preencode(e, d) {
30613063 e.end++
30623064 },
3063 encode(d, o) {
3064 const n = o.disableReadReceipts ? 1 : 0
3065 e.uint.encode(d, n)
3065 encode(d, n) {
3066 const c = (n.disableReadReceipts ? 1 : 0) | (o >= 7 && n.stripAttachmentMetadata ? 2 : 0)
3067 e.uint.encode(d, c)
30663068 },
3067 decode: (d) => ({ disableReadReceipts: !!(1 & e.uint.decode(d)) }),
3069 decode(d) {
3070 const n = e.uint.decode(d)
3071 return { disableReadReceipts: !!(1 & n), stripAttachmentMetadata: o >= 7 && !!(2 & n) }
3072 },
3073 },
3074 sr = {
3075 disableReadReceipts: "disableReadReceipts",
3076 stripAttachmentMetadata: "stripAttachmentMetadata",
30683077 },
3069 sr = { disableReadReceipts: "disableReadReceipts" },
30703078 pr = {
30713079 preencode(e, d) {
30723080 e.end++
30733081 },
30743082 encode(d, o) {
3075 if ("disableReadReceipts" !== o) throw new Error("Unknown enum")
3076 e.uint.encode(d, 1)
3083 switch (o) {
3084 case "disableReadReceipts":
3085 e.uint.encode(d, 1)
3086 break
3087 case "stripAttachmentMetadata":
3088 e.uint.encode(d, 2)
3089 break
3090 default:
3091 throw new Error("Unknown enum")
3092 }
3093 },
3094 decode(d) {
3095 switch (e.uint.decode(d)) {
3096 case 1:
3097 return "disableReadReceipts"
3098 case 2:
3099 return "stripAttachmentMetadata"
3100 default:
3101 return null
3102 }
30773103 },
3078 decode: (d) => (1 === e.uint.decode(d) ? "disableReadReceipts" : null),
30793104 },
30803105 ur = oe,
30813106 lr = e.frame(ar),
……@@ -3123,7 +3148,7 @@ const n = {
31233148 },
31243149 decode: (d) => ({ rooms: e.uint.decode(d), activeRooms: e.uint.decode(d) }),
31253150 },
3126 xr = I,
3151 xr = S,
31273152 br = _,
31283153 vr = {
31293154 preencode(e, d) {
……@@ -3229,45 +3254,52 @@ const n = {
32293254 qr = gc,
32303255 Mr = e.frame(xc),
32313256 Cr = {
3232 preencode(d, o) {
3233 ;(e.fixed32.preencode(d, o.publicKey),
3234 e.fixed32.preencode(d, o.privateProfileKey),
3235 t.preencode(d, o.deviceKeyPair),
3236 e.buffer.preencode(d, o.deviceProof),
3237 Ar.preencode(d, o.status),
3257 preencode(d, n) {
3258 ;(e.fixed32.preencode(d, n.publicKey),
3259 e.fixed32.preencode(d, n.privateProfileKey),
3260 t.preencode(d, n.deviceKeyPair),
3261 e.buffer.preencode(d, n.deviceProof),
3262 Ar.preencode(d, n.status),
32383263 d.end++,
3239 o.entropy && e.buffer.preencode(d, o.entropy),
3240 o.swap && qr.preencode(d, o.swap),
3241 o.swapV2 && Mr.preencode(d, o.swapV2))
3264 n.entropy && e.buffer.preencode(d, n.entropy),
3265 n.swap && qr.preencode(d, n.swap),
3266 n.swapV2 && Mr.preencode(d, n.swapV2),
3267 o >= 7 && n.proofShortenedAt && e.uint.preencode(d, n.proofShortenedAt))
32423268 },
3243 encode(d, o) {
3244 const n = (o.entropy ? 1 : 0) | (o.swap ? 2 : 0) | (o.swapV2 ? 4 : 0)
3245 ;(e.fixed32.encode(d, o.publicKey),
3246 e.fixed32.encode(d, o.privateProfileKey),
3247 t.encode(d, o.deviceKeyPair),
3248 e.buffer.encode(d, o.deviceProof),
3249 Ar.encode(d, o.status),
3250 e.uint.encode(d, n),
3251 o.entropy && e.buffer.encode(d, o.entropy),
3252 o.swap && qr.encode(d, o.swap),
3253 o.swapV2 && Mr.encode(d, o.swapV2))
3269 encode(d, n) {
3270 const c =
3271 (n.entropy ? 1 : 0) |
3272 (n.swap ? 2 : 0) |
3273 (n.swapV2 ? 4 : 0) |
3274 (o >= 7 && n.proofShortenedAt ? 8 : 0)
3275 ;(e.fixed32.encode(d, n.publicKey),
3276 e.fixed32.encode(d, n.privateProfileKey),
3277 t.encode(d, n.deviceKeyPair),
3278 e.buffer.encode(d, n.deviceProof),
3279 Ar.encode(d, n.status),
3280 e.uint.encode(d, c),
3281 n.entropy && e.buffer.encode(d, n.entropy),
3282 n.swap && qr.encode(d, n.swap),
3283 n.swapV2 && Mr.encode(d, n.swapV2),
3284 o >= 7 && n.proofShortenedAt && e.uint.encode(d, n.proofShortenedAt))
32543285 },
32553286 decode(d) {
3256 const o = e.fixed32.decode(d),
3257 n = e.fixed32.decode(d),
3258 c = t.decode(d),
3259 r = e.buffer.decode(d),
3260 i = Ar.decode(d),
3261 a = e.uint.decode(d)
3287 const n = e.fixed32.decode(d),
3288 c = e.fixed32.decode(d),
3289 r = t.decode(d),
3290 i = e.buffer.decode(d),
3291 a = Ar.decode(d),
3292 s = e.uint.decode(d)
32623293 return {
3263 publicKey: o,
3264 privateProfileKey: n,
3265 deviceKeyPair: c,
3266 deviceProof: r,
3267 status: i,
3268 entropy: 1 & a ? e.buffer.decode(d) : null,
3269 swap: 2 & a ? qr.decode(d) : null,
3270 swapV2: 4 & a ? Mr.decode(d) : null,
3294 publicKey: n,
3295 privateProfileKey: c,
3296 deviceKeyPair: r,
3297 deviceProof: i,
3298 status: a,
3299 entropy: 1 & s ? e.buffer.decode(d) : null,
3300 swap: 2 & s ? qr.decode(d) : null,
3301 swapV2: 4 & s ? Mr.decode(d) : null,
3302 proofShortenedAt: o >= 7 && 8 & s ? e.uint.decode(d) : 0,
32713303 }
32723304 },
32733305 },
……@@ -3284,7 +3316,7 @@ const n = {
32843316 TestSlowTask: 10,
32853317 TestErrorTask: 11,
32863318 },
3287 Ir = {
3319 Sr = {
32883320 preencode(e, d) {
32893321 e.end++
32903322 },
……@@ -3294,7 +3326,7 @@ const n = {
32943326 },
32953327 decode: (d) => e.uint.decode(d),
32963328 },
3297 Sr = {
3329 Ir = {
32983330 preencode(d, o) {
32993331 ;(e.fixed32.preencode(d, o.roomKey),
33003332 e.buffer.preencode(d, o.encryptionKey),
……@@ -3389,8 +3421,8 @@ const n = {
33893421 },
33903422 decode: (e) => ({ keys: Nr.decode(e) }),
33913423 },
3392 Vr = e.frame(Kn),
3393 Ur = {
3424 Ur = e.frame(Kn),
3425 Vr = {
33943426 preencode(d, o) {
33953427 ;(e.fixed32.preencode(d, o.roomKey),
33963428 e.buffer.preencode(d, o.encryptionKey),
……@@ -3399,7 +3431,7 @@ const n = {
33993431 o.initiator && n.preencode(d, o.initiator),
34003432 o.mailbox && e.fixed32.preencode(d, o.mailbox),
34013433 o.keyPair && t.preencode(d, o.keyPair),
3402 o.genesis && Vr.preencode(d, o.genesis))
3434 o.genesis && Ur.preencode(d, o.genesis))
34033435 },
34043436 encode(d, o) {
34053437 const c =
……@@ -3416,7 +3448,7 @@ const n = {
34163448 o.initiator && n.encode(d, o.initiator),
34173449 o.mailbox && e.fixed32.encode(d, o.mailbox),
34183450 o.keyPair && t.encode(d, o.keyPair),
3419 o.genesis && Vr.encode(d, o.genesis))
3451 o.genesis && Ur.encode(d, o.genesis))
34203452 },
34213453 decode(d) {
34223454 const o = e.fixed32.decode(d),
……@@ -3429,7 +3461,7 @@ const n = {
34293461 initiator: 2 & r ? n.decode(d) : null,
34303462 mailbox: 4 & r ? e.fixed32.decode(d) : null,
34313463 keyPair: 8 & r ? t.decode(d) : null,
3432 genesis: 16 & r ? Vr.decode(d) : null,
3464 genesis: 16 & r ? Ur.decode(d) : null,
34333465 isPrivateProfile: !!(32 & r),
34343466 }
34353467 },
……@@ -3515,7 +3547,7 @@ const n = {
35153547 decode: (d) => ({ key: e.fixed32.decode(d), isPrivateProfile: !!(1 & e.uint.decode(d)) }),
35163548 },
35173549 Xr = e.frame(Wr),
3518 Yr = e.frame(Ur),
3550 Yr = e.frame(Vr),
35193551 Zr = e.frame(Jr),
35203552 $r = e.frame(zr),
35213553 _r = e.frame(Lr),
……@@ -3698,7 +3730,7 @@ const n = {
36983730 n.lastMember && ht.preencode(d, n.lastMember),
36993731 n.version && e.uint.preencode(d, n.version),
37003732 o >= 3 && n.preferences && Kt.preencode(d, n.preferences),
3701 o >= 4 && n.activeCall && eu.preencode(d, n.activeCall))
3733 o >= 4 && n.activeCall && cu.preencode(d, n.activeCall))
37023734 },
37033735 encode(d, n) {
37043736 const c =
……@@ -3735,7 +3767,7 @@ const n = {
37353767 n.lastMember && ht.encode(d, n.lastMember),
37363768 n.version && e.uint.encode(d, n.version),
37373769 o >= 3 && n.preferences && Kt.encode(d, n.preferences),
3738 o >= 4 && n.activeCall && eu.encode(d, n.activeCall))
3770 o >= 4 && n.activeCall && cu.encode(d, n.activeCall))
37393771 },
37403772 decode(d) {
37413773 const n = e.fixed32.decode(d),
……@@ -3772,7 +3804,7 @@ const n = {
37723804 lastMember: 128 & m ? ht.decode(d) : null,
37733805 version: 256 & m ? e.uint.decode(d) : 0,
37743806 preferences: o >= 3 && 512 & m ? Kt.decode(d) : null,
3775 activeCall: o >= 4 && 1024 & m ? eu.decode(d) : null,
3807 activeCall: o >= 4 && 1024 & m ? cu.decode(d) : null,
37763808 }
37773809 },
37783810 },
……@@ -3852,7 +3884,7 @@ const n = {
38523884 decode: (d) => ({ key: e.fixed32.decode(d), profile: Mt.decode(d) }),
38533885 },
38543886 Dt = mt,
3855 It = {
3887 St = {
38563888 preencode(d, o) {
38573889 ;(e.fixed32.preencode(d, o.roomKey), Dt.preencode(d, o.device))
38583890 },
……@@ -3861,10 +3893,10 @@ const n = {
38613893 },
38623894 decode: (d) => ({ roomKey: e.fixed32.decode(d), device: Dt.decode(d) }),
38633895 },
3864 St = h,
3896 It = h,
38653897 Ft = {
38663898 preencode(d, n) {
3867 ;(St.preencode(d, n.file),
3899 ;(It.preencode(d, n.file),
38683900 e.fixed32.preencode(d, n.roomKey),
38693901 d.end++,
38703902 n.encryptionKey && e.buffer.preencode(d, n.encryptionKey),
……@@ -3878,7 +3910,7 @@ const n = {
38783910 (n.own ? 4 : 0) |
38793911 (o >= 4 && n.lastAccessed ? 8 : 0) |
38803912 (o >= 4 && n.version ? 16 : 0)
3881 ;(St.encode(d, n.file),
3913 ;(It.encode(d, n.file),
38823914 e.fixed32.encode(d, n.roomKey),
38833915 e.uint.encode(d, c),
38843916 n.encryptionKey && e.buffer.encode(d, n.encryptionKey),
……@@ -3886,7 +3918,7 @@ const n = {
38863918 o >= 4 && n.version && e.uint.encode(d, n.version))
38873919 },
38883920 decode(d) {
3889 const n = St.decode(d),
3921 const n = It.decode(d),
38903922 c = e.fixed32.decode(d),
38913923 r = e.uint.decode(d)
38923924 return {
……@@ -3976,7 +4008,7 @@ const n = {
39764008 },
39774009 decode: (d) => ({ roomKey: e.fixed32.decode(d), count: e.uint.decode(d) }),
39784010 },
3979 Vt = {
4011 Ut = {
39804012 preencode(d, o) {
39814013 ;(d.end++,
39824014 o.roomKey && e.fixed32.preencode(d, o.roomKey),
……@@ -3996,7 +4028,7 @@ const n = {
39964028 }
39974029 },
39984030 },
3999 Ut = e.frame(Vt),
4031 Vt = e.frame(Ut),
40004032 Jt = {
40014033 preencode(d, o) {
40024034 ;(e.string.preencode(d, o.code),
……@@ -4004,7 +4036,7 @@ const n = {
40044036 e.string.preencode(d, o.stack),
40054037 e.uint.preencode(d, o.timestamp),
40064038 d.end++,
4007 o.details && Ut.preencode(d, o.details))
4039 o.details && Vt.preencode(d, o.details))
40084040 },
40094041 encode(d, o) {
40104042 const n = o.details ? 1 : 0
……@@ -4013,14 +4045,14 @@ const n = {
40134045 e.string.encode(d, o.stack),
40144046 e.uint.encode(d, o.timestamp),
40154047 e.uint.encode(d, n),
4016 o.details && Ut.encode(d, o.details))
4048 o.details && Vt.encode(d, o.details))
40174049 },
40184050 decode: (d) => ({
40194051 code: e.string.decode(d),
40204052 message: e.string.decode(d),
40214053 stack: e.string.decode(d),
40224054 timestamp: e.uint.decode(d),
4023 details: 1 & e.uint.decode(d) ? Ut.decode(d) : null,
4055 details: 1 & e.uint.decode(d) ? Vt.decode(d) : null,
40244056 }),
40254057 },
40264058 zt = { RESUME: 1, WAKEUP: 2, PRESUSPEND: 3, SUSPEND: 4 },
……@@ -4254,26 +4286,26 @@ const n = {
42544286 },
42554287 decode: (e) => ({ header: Ci.decode(e) }),
42564288 },
4257 Ii = Zt,
4258 Si = Oo,
4289 Si = Zt,
4290 Ii = Oo,
42594291 Fi = {
42604292 preencode(d, o) {
4261 ;(Ii.preencode(d, o.header),
4293 ;(Si.preencode(d, o.header),
42624294 e.fixed32.preencode(d, o.roomKey),
42634295 c.preencode(d, o.id),
4264 Si.preencode(d, o.message))
4296 Ii.preencode(d, o.message))
42654297 },
42664298 encode(d, o) {
4267 ;(Ii.encode(d, o.header),
4299 ;(Si.encode(d, o.header),
42684300 e.fixed32.encode(d, o.roomKey),
42694301 c.encode(d, o.id),
4270 Si.encode(d, o.message))
4302 Ii.encode(d, o.message))
42714303 },
42724304 decode: (d) => ({
4273 header: Ii.decode(d),
4305 header: Si.decode(d),
42744306 roomKey: e.fixed32.decode(d),
42754307 id: c.decode(d),
4276 message: Si.decode(d),
4308 message: Ii.decode(d),
42774309 }),
42784310 },
42794311 Li = _t,
……@@ -4306,22 +4338,22 @@ const n = {
43064338 },
43074339 decode: (e) => ({ header: Ni.decode(e) }),
43084340 },
4309 Vi = Zt,
4310 Ui = {
4341 Ui = Zt,
4342 Vi = {
43114343 preencode(d, o) {
4312 ;(Vi.preencode(d, o.header),
4344 ;(Ui.preencode(d, o.header),
43134345 e.fixed32.preencode(d, o.roomKey),
43144346 c.preencode(d, o.id),
43154347 e.string.preencode(d, o.reaction))
43164348 },
43174349 encode(d, o) {
4318 ;(Vi.encode(d, o.header),
4350 ;(Ui.encode(d, o.header),
43194351 e.fixed32.encode(d, o.roomKey),
43204352 c.encode(d, o.id),
43214353 e.string.encode(d, o.reaction))
43224354 },
43234355 decode: (d) => ({
4324 header: Vi.decode(d),
4356 header: Ui.decode(d),
43254357 roomKey: e.fixed32.decode(d),
43264358 id: c.decode(d),
43274359 reaction: e.string.decode(d),
……@@ -4601,12 +4633,12 @@ const n = {
46014633 Aa = se,
46024634 qa = {
46034635 preencode(d, o) {
4604 ;(e.fixed32.preencode(d, o.key), Aa.preencode(d, o.status), du.preencode(d, o.profile))
4636 ;(e.fixed32.preencode(d, o.key), Aa.preencode(d, o.status), ru.preencode(d, o.profile))
46054637 },
46064638 encode(d, o) {
4607 ;(e.fixed32.encode(d, o.key), Aa.encode(d, o.status), du.encode(d, o.profile))
4639 ;(e.fixed32.encode(d, o.key), Aa.encode(d, o.status), ru.encode(d, o.profile))
46084640 },
4609 decode: (d) => ({ key: e.fixed32.decode(d), status: Aa.decode(d), profile: du.decode(d) }),
4641 decode: (d) => ({ key: e.fixed32.decode(d), status: Aa.decode(d), profile: ru.decode(d) }),
46104642 },
46114643 Ma = {
46124644 preencode(d, o) {
……@@ -4619,7 +4651,7 @@ const n = {
46194651 },
46204652 Ca = Ma,
46214653 Da = e.array(c),
4622 Ia = {
4654 Sa = {
46234655 preencode(d, o) {
46244656 ;(e.fixed32.preencode(d, o.roomKey),
46254657 e.uint.preencode(d, o.start),
……@@ -4646,7 +4678,7 @@ const n = {
46464678 isBottom: !!(1 & e.uint.decode(d)),
46474679 }),
46484680 },
4649 Sa = {
4681 Ia = {
46504682 preencode(d, o) {
46514683 ;(e.uint.preencode(d, o.sent), d.end++, o.edited && e.uint.preencode(d, o.edited))
46524684 },
……@@ -4659,10 +4691,10 @@ const n = {
46594691 edited: 1 & e.uint.decode(d) ? e.uint.decode(d) : 0,
46604692 }),
46614693 },
4662 Fa = e.frame(Sa),
4694 Fa = e.frame(Ia),
46634695 La = Do,
4664 ja = Io,
4665 Ea = So,
4696 ja = So,
4697 Ea = Io,
46664698 Ba = {
46674699 preencode(d, o) {
46684700 ;(c.preencode(d, o.id),
……@@ -4701,7 +4733,7 @@ const n = {
47014733 },
47024734 Na = e.frame(Ba),
47034735 Oa = vd,
4704 Va = {
4736 Ua = {
47054737 preencode(d, o) {
47064738 ;(Na.preencode(d, o.chat), e.fixed32.preencode(d, o.memberKey), Oa.preencode(d, o.role))
47074739 },
……@@ -4710,15 +4742,15 @@ const n = {
47104742 },
47114743 decode: (d) => ({ chat: Na.decode(d), memberKey: e.fixed32.decode(d), role: Oa.decode(d) }),
47124744 },
4713 Ua = Na,
4745 Va = Na,
47144746 Ja = {
47154747 preencode(e, d) {
4716 Ua.preencode(e, d.chat)
4748 Va.preencode(e, d.chat)
47174749 },
47184750 encode(e, d) {
4719 Ua.encode(e, d.chat)
4751 Va.encode(e, d.chat)
47204752 },
4721 decode: (e) => ({ chat: Ua.decode(e) }),
4753 decode: (e) => ({ chat: Va.decode(e) }),
47224754 },
47234755 za = Da,
47244756 Wa = {
……@@ -4943,15 +4975,15 @@ const n = {
49434975 },
49444976 decode: (d) => ({ header: Ms.decode(d), roomKey: e.fixed32.decode(d), request: Cs.decode(d) }),
49454977 },
4946 Is = _t,
4947 Ss = {
4978 Ss = _t,
4979 Is = {
49484980 preencode(e, d) {
4949 Is.preencode(e, d.header)
4981 Ss.preencode(e, d.header)
49504982 },
49514983 encode(e, d) {
4952 Is.encode(e, d.header)
4984 Ss.encode(e, d.header)
49534985 },
4954 decode: (e) => ({ header: Is.decode(e) }),
4986 decode: (e) => ({ header: Ss.decode(e) }),
49554987 },
49564988 Fs = Zt,
49574989 Ls = {
……@@ -4995,8 +5027,8 @@ const n = {
49955027 }),
49965028 },
49975029 Os = j,
4998 Vs = j,
4999 Us = {
5030 Us = j,
5031 Vs = {
50005032 preencode(e, d) {
50015033 e.end++
50025034 },
……@@ -5009,7 +5041,7 @@ const n = {
50095041 return { isConfirmed: !!(1 & o), isLoggedOut: !!(2 & o) }
50105042 },
50115043 },
5012 Js = e.frame(Us),
5044 Js = e.frame(Vs),
50135045 zs = _,
50145046 Ws = {
50155047 preencode(d, o) {
……@@ -5426,7 +5458,7 @@ const n = {
54265458 return { callKey: n, selfDeviceKey: o >= 4 && 1 & c ? e.fixed32.decode(d) : null }
54275459 },
54285460 },
5429 Ip = {
5461 Sp = {
54305462 preencode(d, o) {
54315463 e.uint.preencode(d, o.lastCleared)
54325464 },
……@@ -5435,7 +5467,7 @@ const n = {
54355467 },
54365468 decode: (d) => ({ lastCleared: e.uint.decode(d) }),
54375469 },
5438 Sp = { Nightly: "Nightly", Internal: "Internal", Production: "Production" },
5470 Ip = { Nightly: "Nightly", Internal: "Internal", Production: "Production" },
54395471 Fp = {
54405472 preencode(e, d) {
54415473 e.end++
……@@ -5506,35 +5538,90 @@ const n = {
55065538 return { buildType: n, latestOfflineAbi: o >= 6 && 1 & c ? e.uint.decode(d) : 0 }
55075539 },
55085540 },
5509 Op = e.frame(P),
5510 Vp = Op,
5511 Up = e.frame(fe),
5512 Jp = Op,
5513 zp = Up,
5514 Wp = Up,
5515 Hp = e.frame(Pd),
5516 Gp = e.frame(lp),
5517 Qp = Gp,
5518 Xp = Op,
5519 Yp = Op,
5520 Zp = e.frame(Mc),
5541 Op = oe,
5542 Up = {
5543 preencode(d, o) {
5544 ;(Op.preencode(d, o.header),
5545 e.fixed32.preencode(d, o.deviceKey),
5546 e.buffer.preencode(d, o.deviceProof),
5547 e.buffer.preencode(d, o.writerProof))
5548 },
5549 encode(d, o) {
5550 ;(Op.encode(d, o.header),
5551 e.fixed32.encode(d, o.deviceKey),
5552 e.buffer.encode(d, o.deviceProof),
5553 e.buffer.encode(d, o.writerProof))
5554 },
5555 decode: (d) => ({
5556 header: Op.decode(d),
5557 deviceKey: e.fixed32.decode(d),
5558 deviceProof: e.buffer.decode(d),
5559 writerProof: e.buffer.decode(d),
5560 }),
5561 },
5562 Vp = {
5563 preencode(d, n) {
5564 ;(d.end++,
5565 o >= 7 &&
5566 n.otaResyncPrivateProfileBump &&
5567 e.uint.preencode(d, n.otaResyncPrivateProfileBump))
5568 },
5569 encode(d, n) {
5570 const c = o >= 7 && n.otaResyncPrivateProfileBump ? 1 : 0
5571 ;(e.uint.encode(d, c),
5572 o >= 7 && n.otaResyncPrivateProfileBump && e.uint.encode(d, n.otaResyncPrivateProfileBump))
5573 },
5574 decode(d) {
5575 const n = e.uint.decode(d)
5576 return { otaResyncPrivateProfileBump: o >= 7 && 1 & n ? e.uint.decode(d) : 0 }
5577 },
5578 },
5579 Jp = {
5580 preencode(d, o) {
5581 ;(e.fixed32.preencode(d, o.deviceKey),
5582 e.buffer.preencode(d, o.proof),
5583 e.uint.preencode(d, o.createdAt))
5584 },
5585 encode(d, o) {
5586 ;(e.fixed32.encode(d, o.deviceKey),
5587 e.buffer.encode(d, o.proof),
5588 e.uint.encode(d, o.createdAt))
5589 },
5590 decode: (d) => ({
5591 deviceKey: e.fixed32.decode(d),
5592 proof: e.buffer.decode(d),
5593 createdAt: e.uint.decode(d),
5594 }),
5595 },
5596 zp = e.frame(P),
5597 Wp = zp,
5598 Hp = e.frame(fe),
5599 Gp = zp,
5600 Qp = Hp,
5601 Xp = Hp,
5602 Yp = e.frame(Pd),
5603 Zp = e.frame(lp),
55215604 $p = Zp,
5522 _p = Zp,
5523 eu = e.frame(Dp),
5524 du = Up
5525function ou(e) {
5605 _p = zp,
5606 eu = zp,
5607 du = e.frame(Mc),
5608 ou = du,
5609 nu = du,
5610 cu = e.frame(Dp),
5611 ru = Hp
5612function tu(e) {
55265613 o = e
55275614}
5528function nu(d, n, c = 6) {
5529 return ((o = c), e.encode(tu(d), n))
5615function iu(d, n, c = 7) {
5616 return ((o = c), e.encode(pu(d), n))
55305617}
5531function cu(d, n, c = 6) {
5532 return ((o = c), e.decode(tu(d), n))
5618function au(d, n, c = 7) {
5619 return ((o = c), e.decode(pu(d), n))
55335620}
5534function ru(e) {
5621function su(e) {
55355622 switch (e) {
55365623 case "@keet/room-type":
5537 return U
5624 return V
55385625 case "@keet/room-supported-language":
55395626 return Y
55405627 case "@keet/display-type":
……@@ -5554,12 +5641,12 @@ function ru(e) {
55545641 case "@keet/member-label-type":
55555642 return op
55565643 case "@keet/build-type":
5557 return Sp
5644 return Ip
55585645 default:
55595646 throw new Error("Enum not found " + e)
55605647 }
55615648}
5562function tu(e) {
5649function pu(e) {
55635650 switch (e) {
55645651 case "@keet/head":
55655652 return n
……@@ -5600,9 +5687,9 @@ function tu(e) {
56005687 case "@keet/member-moderation-status":
56015688 return D
56025689 case "@keet/abi":
5603 return I
5604 case "@keet/device-stats":
56055690 return S
5691 case "@keet/device-stats":
5692 return I
56065693 case "@keet/member-stats":
56075694 return F
56085695 case "@keet/chat-stats":
……@@ -5610,7 +5697,7 @@ function tu(e) {
56105697 case "@keet/file-stats":
56115698 return j
56125699 case "@keet/stats":
5613 return V
5700 return U
56145701 case "@keet/room-type":
56155702 return J
56165703 case "@keet/system-settings":
……@@ -5668,7 +5755,7 @@ function tu(e) {
56685755 case "@keet/invitation-metadata":
56695756 return Be
56705757 case "@keet/invitation":
5671 return Ve
5758 return Ue
56725759 case "@keet/add-invitation-operation":
56735760 return ze
56745761 case "@keet/remove-invitation-operation":
……@@ -5710,7 +5797,7 @@ function tu(e) {
57105797 case "@keet/change-member-status-operation":
57115798 return Cd
57125799 case "@keet/change-member-role-operation":
5713 return Id
5800 return Sd
57145801 case "@keet/remove-member-operation":
57155802 return Fd
57165803 case "@keet/member-activity":
……@@ -5758,7 +5845,7 @@ function tu(e) {
57585845 case "@keet/full-chat-message-record":
57595846 return Bo
57605847 case "@keet/add-chat-message-operation":
5761 return Vo
5848 return Uo
57625849 case "@keet/remove-chat-message-operation":
57635850 return Jo
57645851 case "@keet/update-chat-message-operation":
……@@ -5798,7 +5885,7 @@ function tu(e) {
57985885 case "@keet/update-system-settings-operation":
57995886 return Dn
58005887 case "@keet/test-increment-operation":
5801 return Sn
5888 return In
58025889 case "@keet/test-collection-record-1":
58035890 return Fn
58045891 case "@keet/label-type":
……@@ -5808,9 +5895,9 @@ function tu(e) {
58085895 case "@keet/add-chat-label-operation":
58095896 return Nn
58105897 case "@keet/remove-chat-label-operation":
5811 return Vn
5812 case "@keet/chat-label-summary":
58135898 return Un
5899 case "@keet/chat-label-summary":
5900 return Vn
58145901 case "@keet/chat-label-digest":
58155902 return zn
58165903 case "@keet/update-read-length-operation":
……@@ -5862,7 +5949,7 @@ function tu(e) {
58625949 case "@keet-private-id/contact-record":
58635950 return Cc
58645951 case "@keet-private-id/add-contact-operation":
5865 return Sc
5952 return Ic
58665953 case "@keet-private-id/update-contact-status-operation":
58675954 return Lc
58685955 case "@keet-private-id/remove-contact-operation":
……@@ -5918,9 +6005,9 @@ function tu(e) {
59186005 case "@local/identity-record":
59196006 return Cr
59206007 case "@local/tasks":
5921 return Ir
5922 case "@local/room-keys":
59236008 return Sr
6009 case "@local/room-keys":
6010 return Ir
59246011 case "@local/join-room-invitation-task":
59256012 return Lr
59266013 case "@local/join-room-response-task":
……@@ -5932,7 +6019,7 @@ function tu(e) {
59326019 case "@local/join-room-keys-task":
59336020 return Or
59346021 case "@local/create-room-task":
5935 return Ur
6022 return Vr
59366023 case "@local/leave-room-task":
59376024 return Jr
59386025 case "@local/clear-room-task":
……@@ -5964,7 +6051,7 @@ function tu(e) {
59646051 case "@local/member":
59656052 return Ct
59666053 case "@local/device":
5967 return It
6054 return St
59686055 case "@local/file":
59696056 return Ft
59706057 case "@local/debug-flag":
……@@ -5976,7 +6063,7 @@ function tu(e) {
59766063 case "@local/unread":
59776064 return Ot
59786065 case "@local/error-record-details":
5979 return Vt
6066 return Ut
59806067 case "@local/error-record":
59816068 return Jt
59826069 case "@local/keet-state":
……@@ -6030,7 +6117,7 @@ function tu(e) {
60306117 case "@api/core/remove-chat-message-response":
60316118 return Oi
60326119 case "@api/core/add-chat-reaction-request":
6033 return Ui
6120 return Vi
60346121 case "@api/core/add-chat-reaction-response":
60356122 return zi
60366123 case "@api/core/remove-chat-reaction-request":
……@@ -6082,13 +6169,13 @@ function tu(e) {
60826169 case "@api/core/member-list-remove":
60836170 return Ca
60846171 case "@api/core/chat-reset":
6085 return Ia
6086 case "@api/core/message-timestamps":
60876172 return Sa
6173 case "@api/core/message-timestamps":
6174 return Ia
60886175 case "@api/core/message":
60896176 return Ba
60906177 case "@api/core/message-info":
6091 return Va
6178 return Ua
60926179 case "@api/core/message-info-chat":
60936180 return Ja
60946181 case "@api/core/message-info-member":
……@@ -6132,7 +6219,7 @@ function tu(e) {
61326219 case "@api/core/reject-join-request-request":
61336220 return Ds
61346221 case "@api/core/reject-join-request-response":
6135 return Ss
6222 return Is
61366223 case "@api/core/stop-pairing-request":
61376224 return Ls
61386225 case "@api/core/stop-pairing-response":
……@@ -6142,9 +6229,9 @@ function tu(e) {
61426229 case "@api/core/want-identity":
61436230 return Os
61446231 case "@api/core/unwant-identity":
6145 return Vs
6146 case "@api/core/identity-status":
61476232 return Us
6233 case "@api/core/identity-status":
6234 return Vs
61486235 case "@api/core/identity":
61496236 return Ws
61506237 case "@api/core/identity-member":
……@@ -6196,7 +6283,7 @@ function tu(e) {
61966283 case "@local/active-call":
61976284 return Dp
61986285 case "@local/file-gc-info":
6199 return Ip
6286 return Sp
62006287 case "@keet/build-type":
62016288 return Fp
62026289 case "@keet/test-crash-operation":
……@@ -6205,12 +6292,18 @@ function tu(e) {
62056292 return Bp
62066293 case "@local/environment-record":
62076294 return Np
6295 case "@keet-private-id/shorten-device-attestation-operation":
6296 return Up
6297 case "@local/ota-actions":
6298 return Vp
6299 case "@local/device-attestation":
6300 return Jp
62086301 default:
62096302 throw new Error("Encoder not found " + e)
62106303 }
62116304}
6212function iu(e, d = 6) {
6213 const n = tu(e)
6305function uu(e, d = 7) {
6306 const n = pu(e)
62146307 return {
62156308 preencode(e, c) {
62166309 ;((o = d), n.preencode(e, c))
……@@ -6221,14 +6314,14 @@ function iu(e, d = 6) {
62216314 decode: (e) => ((o = d), n.decode(e)),
62226315 }
62236316}
6224const au = iu
6317const lu = uu
62256318module.exports = {
6226 resolveStruct: au,
6227 getStruct: iu,
6228 getEnum: ru,
6229 getEncoding: tu,
6230 encode: nu,
6231 decode: cu,
6232 setVersion: ou,
6319 resolveStruct: lu,
6320 getStruct: uu,
6321 getEnum: su,
6322 getEncoding: pu,
6323 encode: iu,
6324 decode: au,
6325 setVersion: tu,
62336326 version: o,
62346327}
@holepunchto/keet-core/schema/spec/api/hyperschema/schema.json +91 -1
……@@ -1,5 +1,5 @@
11{
2 "version": 6,
2 "version": 7,
33 "schema": [
44 {
55 "name": "public-key",
……@@ -3796,6 +3796,11 @@
37963796 "name": "isFavorite",
37973797 "type": "bool",
37983798 "version": 3
3799 },
3800 {
3801 "name": "isUnread",
3802 "type": "bool",
3803 "version": 7
37993804 }
38003805 ]
38013806 },
……@@ -4409,6 +4414,11 @@
44094414 "name": "disableReadReceipts",
44104415 "type": "bool",
44114416 "version": 1
4417 },
4418 {
4419 "name": "stripAttachmentMetadata",
4420 "type": "bool",
4421 "version": 7
44124422 }
44134423 ]
44144424 },
……@@ -4420,6 +4430,10 @@
44204430 {
44214431 "key": "disableReadReceipts",
44224432 "version": 1
4433 },
4434 {
4435 "key": "stripAttachmentMetadata",
4436 "version": 7
44234437 }
44244438 ],
44254439 "strings": true
……@@ -4696,6 +4710,11 @@
46964710 "name": "swapV2",
46974711 "type": "@keet-private-id/identity-swap-v2",
46984712 "version": 1
4713 },
4714 {
4715 "name": "proofShortenedAt",
4716 "type": "uint",
4717 "version": 7
46994718 }
47004719 ]
47014720 },
……@@ -8080,6 +8099,77 @@
80808099 "version": 6
80818100 }
80828101 ]
8102 },
8103 {
8104 "name": "shorten-device-attestation-operation",
8105 "namespace": "keet-private-id",
8106 "compact": false,
8107 "flagsPosition": -1,
8108 "fields": [
8109 {
8110 "name": "header",
8111 "required": true,
8112 "type": "@keet/operation-header",
8113 "version": 7
8114 },
8115 {
8116 "name": "deviceKey",
8117 "required": true,
8118 "type": "@keet/device-key",
8119 "version": 7
8120 },
8121 {
8122 "name": "deviceProof",
8123 "required": true,
8124 "type": "buffer",
8125 "version": 7
8126 },
8127 {
8128 "name": "writerProof",
8129 "required": true,
8130 "type": "buffer",
8131 "version": 7
8132 }
8133 ]
8134 },
8135 {
8136 "name": "ota-actions",
8137 "namespace": "local",
8138 "compact": false,
8139 "flagsPosition": 0,
8140 "fields": [
8141 {
8142 "name": "otaResyncPrivateProfileBump",
8143 "type": "uint",
8144 "version": 7
8145 }
8146 ]
8147 },
8148 {
8149 "name": "device-attestation",
8150 "namespace": "local",
8151 "compact": false,
8152 "flagsPosition": -1,
8153 "fields": [
8154 {
8155 "name": "deviceKey",
8156 "required": true,
8157 "type": "@keet/device-key",
8158 "version": 7
8159 },
8160 {
8161 "name": "proof",
8162 "required": true,
8163 "type": "buffer",
8164 "version": 7
8165 },
8166 {
8167 "name": "createdAt",
8168 "required": true,
8169 "type": "uint",
8170 "version": 7
8171 }
8172 ]
80838173 }
80848174 ]
80858175}
@holepunchto/keet-core/schema/spec/config/hyperconf/index.js +14 -14
……@@ -1,22 +1,22 @@
11const o = require("../hyperschema"),
2 U = require("hyperconf/runtime"),
3 d = o.getEncoding("@config/keet-config"),
4 s = e(
5 d,
6 U.b4a.from(
7 "CA4HFwEDBAwDC/2IAz8Bwdf7MOoNiStwh63v4euvhB1sw4cMcwo40mS9JJ/f/7ABQhRuwr3PX8TvUmi1ybxJTO7ToKjLiyn/ap0g7YbbLJLkVobzZEaSwMoXDf2jR2df2WqVskOkG+QlPuL1XDxSUwPNk2Sd+XmE6wXbzAErGnCEO8wASM5KT3vuT/gihUsC09MeR6o2SxeeKfOvILau/u2lPAxfiw1reo00DWfQyJnA2z96XG0uEWnh1UFTqConLdHUGrD2y8DDVF2e+dwU7xMMQ3QXuEqwUVU1LP/VUNeZloucwf7WZHNA1+s2TGmoY5wWCYAuNsdgE+ws43F7d8NzkFsydXQ8wb6OAqfTBL/NWkoJL8z7HUKWDwHjCRkZHLkjN+mYhbbd4ckqW0zgDhKIlLDCpyuB35aR2dHQcs514Hk8KCje32iAKtYVGZPDNgfp3uq3HlcTcNJlTk9UwWdZ/mv2bPvhD+a0zWsMNkwFs5ZzFvJ5l5RjJa7PIYUs2mLSQKjS0iT7iqlxgjH4A7cqnXXUTgD09mPjDx6+/Y/GgiRq+/PF8/mb/Lg223je7d7B/oJzQVrzKppRFrbFmJMvbLqLafulJqv5Q4YhhY/9KNMz8WfUPyGjujNzDTmdtJhn6HHk1R0kvcnoycdpOUD5c3To3MVEF/BMEyM+3adgOZa0oKY1yBns13oo1LTw2pzobtxhPYPaPZSYm0RgJE6WAkTXA8bvvtTZOXIvECOYiGXMQdX6AnMfYyQIeV4TxGixlh3o2gJKUPVRMGUBUKvUB0WuQpMY8UYybd2ycWhTLHxrIcrP3UpD1Tnga9UYp4k6JuskyX5T+U05KEKzwLP93LkDoIg6xWkeZ+TJ02nvIzJcTuLQFAZwtDPA+ET+OCZMAihCzZt2tdKHZ7RiUx3+so4qaRpuCw7eZr1FdSsBZVFPvsiERyHrA4+8xBKvDraRdL2IgGH0GXRb0BE2dxDgupjg2wovsSrhohui0T11owwd/6/7fP4ICxWu+uX6GMK3rUP6zIiCtdYU/UUmLzPpyfEVS+bcxPmPOKtNv+dRRXkHsU2sPHbR7WVKplxpDCloATlyAlbp1RvoUK/oWWwqyoxK0eLVOaFsFHBlJ5G3vi0QASxk6bqnUpUYk3xUFWfLKg2jcSOZN6uc0ahcNywYs5byBfHslhGKAZ0aAr6nUnRdR7aoxWKso8tl1rp2oWQfyDsiAQHmif3c+Rw8sq2lt7U0d03jP8IwKPjY6gG4tF2d1O/jcyEBzyWoHGWLqPMhjXEwrYJD8EqaJLzUbzAsncqVWrOsFaU=",
2 d = require("hyperconf/runtime"),
3 e = o.getEncoding("@config/keet-config"),
4 n = c(
5 e,
6 d.b4a.from(
7 "CA4HFwEDBA4AC/2IAz8Bwdf7MOoNiStwh63v4euvhB1sw4cMcwo40mS9JJ/f/7ABQhRuwr3PX8TvUmi1ybxJTO7ToKjLiyn/ap0g7YbbLJLkVobzZEaSwMoXDf2jR2df2WqVskOkG+QlPuL1XDxSUwPNk2Sd+XmE6wXbzAErGnCEO8wASM5KT3vuT/gihUsC09MeR6o2SxeeKfOvILau/u2lPAxfiw1reo00DWfQyJnA2z96XG0uEWnh1UFTqConLdHUGrD2y8DDVF2e+dwU7xMMQ3QXuEqwUVU1LP/VUNeZloucwf7WZHNA1+s2TGmoY5wWCYAuNsdgE+ws43F7d8NzkFsydXQ8wb6OAqfTBL/NWkoJL8z7HUKWDwHjCRkZHLkjN+mYhbbd4ckqW0zgDhKIlLDCpyuB35aR2dHQcs514Hk8KCje32iAKtYVGZPDNgfp3uq3HlcTcNJlTk9UwWdZ/mv2bPvhD+a0zWsMNkwFs5ZzFvJ5l5RjJa7PIYUs2mLSQKjS0iT7iqlxgjH4A7cqnXXUTgD09mPjDx6+/Y/GgiRq+/PF8/mb/Lg223je7d7B/oJzQVrzKppRFrbFmJMvbLqLafulJqv5Q4YhhY/9KNMz8WfUPyGjujNzDTmdtJhn6HHk1R0kvcnoycdpOUD5c3To3MVEF/BMEyM+3adgOZa0oKY1yBns13oo1LTw2pzobtxhPYPaPZSYm0RgJE6WAkTXA8bvvtTZOXIvECOYiGXMQdX6AnMfYyQIeV4TxGixlh3o2gJKUPVRMGUBUKvUB0WuQpMY8UYybd2ycWhTLHxrIcrP3UpD1Tnga9UYp4k6JuskyX5T+U05KEKzwLP93LkDoIg6xWkeZ+TJ02nvIzJcTuLQFAZwtDPA+ET+OCZMAihCzZt2tdKHZ7RiUx3+so4qaRpuCw7eZr1FdSsBZVFPvsiERyHrA4+8xBKvDraRdL2IgGH0GXRb0BE2dxDgupjg2wovsSrhohui0T11owwd/6/7fP4ICxWu+uX6GMK3rUP6zIiCtdYU/UUmLzPpyfEVS+bcxPmPOKtNv+dRRXkHsU2sPHbR7WVKplxpDCloATlyAlbp1RvoUK/oWWwqyoxK0eLVOaFsFHBlJ5G3vi0QASxk6bqnUpUYk3xUFWfLKg2jcSOZN6uc0ahcNywYs5byBfHslhGKAZ0aAr6nUnRdR7aoxWKso8tl1rp2oWQfyDsiAQHmif3c+Rw8sq2lt7U0d03jP8IwKPjY6gG4tF2d1O/jcyEBzyWoHGWLqPMhjXEwrYJD8EqaJLzUbzAsncqVWrOsFaU=",
88 "base64",
99 ),
1010 ),
11 w = o.getEncoding("@config/keet-config"),
12 c = e(
13 w,
14 U.b4a.from(
15 "CA4HGgEDBAwDC/2IAz8BwWgTaeAmuPfSLEPTf7BNfdT1SwdR30VrxZMU50LQ6wv8G8jcXqQ3BvaYClXfUjuYUkkLuK2I8LZHi1tVCl49OJzd9q27SePd1zGsb/rHzXd/eB8k8G7Og0o4ja5tYcCLoAOGa8TwJ0Nk3lTya0m43RmXxbh4m/hhHdn/KM1tY+B2CBVhxCMFAowShkuoLFRzv1AzKjpqtXQPlKTB8n0cUHGOnlfvXt5S2oiOMxee8ZjqY78a4gVkijLZJURVITqLlsQMQ3QXuEqwUVU1LP/VUNeZloucwf7WZHNA1+s2TGmoY5wWCYAuNsdgE+ws43F7d8NzkFsydXQ8wb6OAqfTBL/NWkoJL8z7HUKWDwHjCRkZHLkjN+mYhbbd4ckqW0zgDhKIlLDCpyuB35aR2dHQcs514Hk8KCje32iAKtYVGZPDNgfp3uq3HlcTcNJlTk9UwWdZ/mv2bPvhD+a0zWsMNkwFs5ZzFvJ5l5RjJa7PIYUs2mLSQKjS0iT7iqlxgjH4A7cqnXXUTgD09mPjDx6+/Y/GgiRq+/PF8/mb/Lg223je7d7B/oJzQVrzKppRFrbFmJMvbLqLafulJqv5Q4YhhY/9KNMz8WfUPyGjujNzDTmdtJhn6HHk1R0kvcnoycdpOUD5c3To3MVEF/BMEyM+3adgOZa0oKY1yBns13oo1LTw2pzobtxhPYPaPZSYm0RgJE6WAkTXA8bvvtTZOXIvECOYiGXMQdX6AnMfYyQIeV4TxGixlh3o2gJKUPVRMGUBUKvUB0WuQpMY8UYybd2ycWhTLHxrIcrP3UpD1Tnga9UYp4k6JuskyX5T+U05KEKzwLP93LkDoIg6xWkeZ+TJ02nvIzJcTuLQFAZwtDPA+ET+OCZMAihCzZt2tdKHZ7RiUx3+so4qaRpuCw7eZr1FdSsBZVFPvsiERyHrA4+8xBKvDraRdL2IgGH0GXRb0BE2dxDgupjg2wovsSrhohui0T11owwd/6/7fP4ICxWu+uX6GMK3rUP6zIiCtdYU/UUmLzPpyfEVS+bcxPmPOKtNv+dRRXkHsU2sPHbR7WVKplxpDCloATlyAlbp1RvoUK/oWWwqyoxK0eLVOaFsFHBlJ5G3vi0QASxk6bqnUpUYk3xUFWfLKg2jcSOZN6uc0ahcNywYs5byBfHslhGKAZ0aAr6nUnRdR7aoxWKso8tl1rp2oWQfyDsiAQHmif3c+Rw8sq2lt7U0d03jP8IwKPjY6gG4tF2d1O/jcyEBzyWoHGWLqPMhjXEwrYJD8EqaJLzUbzAsncqVWrOsFaU=",
11 U = o.getEncoding("@config/keet-config"),
12 r = c(
13 U,
14 d.b4a.from(
15 "CQ4PHAEDBAwDHQv9iAM/AcFoE2ngJrj30ixD03+wTX3U9UsHUd9Fa8WTFOdC0OsL/BvI3F6kNwb2mApV31I7mFJJC7itiPC2R4tbVQpePTic3fatu0nj3dcxrG/6x813f3gfJPBuzoNKOI2ubWHAi6ADhmvE8CdDZN5U8mtJuN0Zl8W4eJv4YR3Z/yjNbWPgdggVYcQjBQKMEoZLqCxUc79QMyo6arV0D5SkwfJ9HFBxjp5X717eUtqIjjMXnvGY6mO/GuIFZIoy2SVEVSE6i5bEDEN0F7hKsFFVNSz/1VDXmZaLnMH+1mRzQNfrNkxpqGOcFgmALjbHYBPsLONxe3fDc5BbMnV0PMG+jgKn0wS/zVpKCS/M+x1Clg8B4wkZGRy5IzfpmIW23eHJKltM4A4SiJSwwqcrgd+WkdnR0HLOdeB5PCgo3t9ogCrWFRmTwzYH6d7qtx5XE3DSZU5PVMFnWf5r9mz74Q/mtM1rDDZMBbOWcxbyeZeUYyWuzyGFLNpi0kCo0tIk+4qpcYIx+AO3Kp111E4A9PZj4w8evv2PxoIkavvzxfP5m/y4Ntt43u3ewf6Cc0Fa8yqaURa2xZiTL2y6i2n7pSar+UOGIYWP/SjTM/Fn1D8ho7ozcw05nbSYZ+hx5NUdJL3J6MnHaTlA+XN06NzFRBfwTBMjPt2nYDmWtKCmNcgZ7Nd6KNS08Nqc6G7cYT2D2j2UmJtEYCROlgJE1wPG777U2TlyLxAjmIhlzEHV+gJzH2MkCHleE8RosZYd6NoCSlD1UTBlAVCr1AdFrkKTGPFGMm3dsnFoUyx8ayHKz91KQ9U54GvVGKeJOibrJMl+U/lNOShCs8Cz/dy5A6CIOsVpHmfkydNp7yMyXE7i0BQGcLQzwPhE/jgmTAIoQs2bdrXSh2e0YlMd/rKOKmkabgsO3ma9RXUrAWVRT77IhEch6wOPvMQSrw62kXS9iIBh9Bl0W9ARNncQ4LqY4NsKL7Eq4aIbotE9daMMHf+v+3z+CAsVrvrl+hjCt61D+syIgrXWFP1FJi8z6cnxFUvm3MT5jzirTb/nUUV5B7FNrDx20e1lSqZcaQwpaAGCmNUxUdwhR8YERH7FJo8e6oGBktQjG3V1YwIEKEk+xQEsZOm6p1KVGJN8VBVnyyoNo3EjmTernNGoXDcsGLOW8gXx7JYRigGdGgK+p1J0XUe2qMVirKPLZda6dqFkH8g7QwMB5on93PkcPLKtpbe1NHdN4z/CMCj42OoBuLRdndTv43MB46SNAWk6B708S9TrYknXzIary+v3wFBA/jkyrKoP4z0hAc8lqBxli6jzIY1xMK2CQ/BKmiS81G8wLJ3KlVqzrBWl",
1616 "base64",
1717 ),
1818 )
19function e(o, U) {
20 return o.decode({ start: 0, end: U.byteLength, buffer: U })
19function c(o, d) {
20 return o.decode({ start: 0, end: d.byteLength, buffer: d })
2121}
22module.exports = { production: s, development: c, productionEncoding: d, developmentEncoding: w }
22module.exports = { production: n, development: r, productionEncoding: e, developmentEncoding: U }
@holepunchto/keet-core/schema/spec/config/hyperschema/index.js +57 -45
……@@ -1,24 +1,27 @@
11const { c: e } = require("hyperschema/runtime"),
2 d = 6
3let n = 6
2 d = 7
3let n = 7
44const o = {
55 preencode(d, o) {
66 ;(e.uint.preencode(d, o.minimum),
77 d.end++,
88 o.autoupgrade && e.uint.preencode(d, o.autoupgrade),
99 n >= 3 && o.forceUpdate && e.uint.preencode(d, o.forceUpdate),
10 n >= 4 && o.minVersion && R.preencode(d, o.minVersion))
10 n >= 4 && o.minVersion && x.preencode(d, o.minVersion),
11 n >= 7 && o.stable && e.uint.preencode(d, o.stable))
1112 },
1213 encode(d, o) {
1314 const c =
1415 (o.autoupgrade ? 1 : 0) |
1516 (n >= 3 && o.forceUpdate ? 2 : 0) |
16 (n >= 4 && o.minVersion ? 4 : 0)
17 (n >= 4 && o.minVersion ? 4 : 0) |
18 (n >= 7 && o.stable ? 8 : 0)
1719 ;(e.uint.encode(d, o.minimum),
1820 e.uint.encode(d, c),
1921 o.autoupgrade && e.uint.encode(d, o.autoupgrade),
2022 n >= 3 && o.forceUpdate && e.uint.encode(d, o.forceUpdate),
21 n >= 4 && o.minVersion && R.encode(d, o.minVersion))
23 n >= 4 && o.minVersion && x.encode(d, o.minVersion),
24 n >= 7 && o.stable && e.uint.encode(d, o.stable))
2225 },
2326 decode(d) {
2427 const o = e.uint.decode(d),
……@@ -27,7 +30,8 @@ const o = {
2730 minimum: o,
2831 autoupgrade: 1 & c ? e.uint.decode(d) : 0,
2932 forceUpdate: n >= 3 && 2 & c ? e.uint.decode(d) : 0,
30 minVersion: n >= 4 && 4 & c ? R.decode(d) : null,
33 minVersion: n >= 4 && 4 & c ? x.decode(d) : null,
34 stable: n >= 7 && 8 & c ? e.uint.decode(d) : 0,
3135 }
3236 },
3337 },
……@@ -120,14 +124,14 @@ const o = {
120124 m = e.frame(o),
121125 g = e.frame(l),
122126 v = e.frame(b),
123 k = {
127 y = {
124128 preencode(e, d) {
125129 ;(m.preencode(e, d.versions),
126130 e.end++,
127131 d.services && g.preencode(e, d.services),
128132 d.rooms && v.preencode(e, d.rooms),
129 n >= 2 && d.profile && U.preencode(e, d.profile),
130 n >= 5 && d.debug && V.preencode(e, d.debug))
133 n >= 2 && d.profile && h.preencode(e, d.profile),
134 n >= 5 && d.debug && U.preencode(e, d.debug))
131135 },
132136 encode(d, o) {
133137 const c =
……@@ -139,8 +143,8 @@ const o = {
139143 e.uint.encode(d, c),
140144 o.services && g.encode(d, o.services),
141145 o.rooms && v.encode(d, o.rooms),
142 n >= 2 && o.profile && U.encode(d, o.profile),
143 n >= 5 && o.debug && V.encode(d, o.debug))
146 n >= 2 && o.profile && h.encode(d, o.profile),
147 n >= 5 && o.debug && U.encode(d, o.debug))
144148 },
145149 decode(d) {
146150 const o = m.decode(d),
……@@ -149,25 +153,33 @@ const o = {
149153 versions: o,
150154 services: 1 & c ? g.decode(d) : null,
151155 rooms: 2 & c ? v.decode(d) : null,
152 profile: n >= 2 && 4 & c ? U.decode(d) : null,
153 debug: n >= 5 && 8 & c ? V.decode(d) : null,
156 profile: n >= 2 && 4 & c ? h.decode(d) : null,
157 debug: n >= 5 && 8 & c ? U.decode(d) : null,
154158 }
155159 },
156160 },
157 y = {
158 preencode(e, d) {
159 e.end++
161 k = {
162 preencode(d, o) {
163 ;(d.end++,
164 n >= 7 &&
165 o.otaResyncPrivateProfileBump &&
166 e.uint.preencode(d, o.otaResyncPrivateProfileBump))
160167 },
161168 encode(d, o) {
162 const c = n >= 2 && o.disableUnreadSync ? 1 : 0
163 e.uint.encode(d, c)
169 const c =
170 (n >= 2 && o.disableUnreadSync ? 1 : 0) | (n >= 7 && o.otaResyncPrivateProfileBump ? 2 : 0)
171 ;(e.uint.encode(d, c),
172 n >= 7 && o.otaResyncPrivateProfileBump && e.uint.encode(d, o.otaResyncPrivateProfileBump))
164173 },
165174 decode(d) {
166175 const o = e.uint.decode(d)
167 return { disableUnreadSync: n >= 2 && !!(1 & o) }
176 return {
177 disableUnreadSync: n >= 2 && !!(1 & o),
178 otaResyncPrivateProfileBump: n >= 7 && 2 & o ? e.uint.decode(d) : 0,
179 }
168180 },
169181 },
170 x = {
182 P = {
171183 preencode(d, n) {
172184 ;(e.uint.preencode(d, n.major), e.uint.preencode(d, n.minor), e.uint.preencode(d, n.patch))
173185 },
……@@ -176,7 +188,7 @@ const o = {
176188 },
177189 decode: (d) => ({ major: e.uint.decode(d), minor: e.uint.decode(d), patch: e.uint.decode(d) }),
178190 },
179 h = {
191 R = {
180192 preencode(d, o) {
181193 ;(d.end++, n >= 5 && o.unlockHash && e.fixed32.preencode(d, o.unlockHash))
182194 },
……@@ -189,22 +201,22 @@ const o = {
189201 return { unlockHash: n >= 5 && 1 & o ? e.fixed32.decode(d) : null }
190202 },
191203 },
192 R = e.frame(x),
193 U = e.frame(y),
194 V = e.frame(h)
195function E(e) {
204 x = e.frame(P),
205 h = e.frame(k),
206 U = e.frame(R)
207function V(e) {
196208 n = e
197209}
198function H(d, o, c = 6) {
199 return ((n = c), e.encode(S(d), o))
210function B(d, o, c = 7) {
211 return ((n = c), e.encode(w(d), o))
200212}
201function P(d, o, c = 6) {
202 return ((n = c), e.decode(S(d), o))
213function E(d, o, c = 7) {
214 return ((n = c), e.decode(w(d), o))
203215}
204function w(e) {
216function H(e) {
205217 throw new Error("Enum not found " + e)
206218}
207function S(e) {
219function w(e) {
208220 switch (e) {
209221 case "@config/versions":
210222 return o
……@@ -215,19 +227,19 @@ function S(e) {
215227 case "@config/rooms":
216228 return b
217229 case "@config/keet-config":
218 return k
219 case "@config/profile":
220230 return y
231 case "@config/profile":
232 return k
221233 case "@config/semver":
222 return x
234 return P
223235 case "@config/debug":
224 return h
236 return R
225237 default:
226238 throw new Error("Encoder not found " + e)
227239 }
228240}
229function j(e, d = 6) {
230 const o = S(e)
241function S(e, d = 7) {
242 const o = w(e)
231243 return {
232244 preencode(e, c) {
233245 ;((n = d), o.preencode(e, c))
……@@ -238,14 +250,14 @@ function j(e, d = 6) {
238250 decode: (e) => ((n = d), o.decode(e)),
239251 }
240252}
241const q = j
253const j = S
242254module.exports = {
243 resolveStruct: q,
244 getStruct: j,
245 getEnum: w,
246 getEncoding: S,
247 encode: H,
248 decode: P,
249 setVersion: E,
255 resolveStruct: j,
256 getStruct: S,
257 getEnum: H,
258 getEncoding: w,
259 encode: B,
260 decode: E,
261 setVersion: V,
250262 version: n,
251263}
@holepunchto/keet-core/schema/spec/config/hyperschema/schema.json +11 -1
……@@ -1,5 +1,5 @@
11{
2 "version": 6,
2 "version": 7,
33 "schema": [
44 {
55 "name": "versions",
……@@ -27,6 +27,11 @@
2727 "name": "minVersion",
2828 "type": "@config/semver",
2929 "version": 4
30 },
31 {
32 "name": "stable",
33 "type": "uint",
34 "version": 7
3035 }
3136 ]
3237 },
……@@ -170,6 +175,11 @@
170175 "name": "disableUnreadSync",
171176 "type": "bool",
172177 "version": 2
178 },
179 {
180 "name": "otaResyncPrivateProfileBump",
181 "type": "uint",
182 "version": 7
173183 }
174184 ]
175185 },
@holepunchto/keet-core/schema/spec/contract/hyperdb/messages.js +480 -431
……@@ -1,5 +1,5 @@
11const { c: e } = require("hyperschema/runtime"),
2 d = 20
2 d = 21
33let n = d
44const o = {
55 preencode(d, n) {
……@@ -204,7 +204,7 @@ const o = {
204204 ;(k.preencode(d, n.pointer),
205205 d.end++,
206206 n.metadata && v.preencode(d, n.metadata),
207 n.preview && ei.preencode(d, n.preview),
207 n.preview && ni.preencode(d, n.preview),
208208 n.hash && e.fixed32.preencode(d, n.hash))
209209 },
210210 encode(d, n) {
……@@ -212,7 +212,7 @@ const o = {
212212 ;(k.encode(d, n.pointer),
213213 e.uint.encode(d, o),
214214 n.metadata && v.encode(d, n.metadata),
215 n.preview && ei.encode(d, n.preview),
215 n.preview && ni.encode(d, n.preview),
216216 n.hash && e.fixed32.encode(d, n.hash))
217217 },
218218 decode(d) {
……@@ -221,7 +221,7 @@ const o = {
221221 return {
222222 pointer: n,
223223 metadata: 1 & o ? v.decode(d) : null,
224 preview: 2 & o ? ei.decode(d) : null,
224 preview: 2 & o ? ni.decode(d) : null,
225225 hash: 4 & o ? e.fixed32.decode(d) : null,
226226 }
227227 },
……@@ -349,7 +349,7 @@ const o = {
349349 }
350350 },
351351 },
352 F = {
352 M = {
353353 preencode(e, d) {
354354 e.end++
355355 },
……@@ -362,7 +362,7 @@ const o = {
362362 return { isMuted: !!(1 & n), isBanned: !!(2 & n), isShadowBanned: !!(4 & n) }
363363 },
364364 },
365 M = {
365 F = {
366366 preencode(d, n) {
367367 e.uint.preencode(d, n.version)
368368 },
……@@ -438,26 +438,26 @@ const o = {
438438 B = e.frame(q),
439439 N = e.frame(L),
440440 j = e.frame(I),
441 V = e.frame(E),
442 O = {
441 U = e.frame(E),
442 V = {
443443 preencode(e, d) {
444444 ;(B.preencode(e, d.devices),
445445 N.preencode(e, d.members),
446446 j.preencode(e, d.chat),
447 V.preencode(e, d.files))
447 U.preencode(e, d.files))
448448 },
449449 encode(e, d) {
450 ;(B.encode(e, d.devices), N.encode(e, d.members), j.encode(e, d.chat), V.encode(e, d.files))
450 ;(B.encode(e, d.devices), N.encode(e, d.members), j.encode(e, d.chat), U.encode(e, d.files))
451451 },
452452 decode: (e) => ({
453453 devices: B.decode(e),
454454 members: N.decode(e),
455455 chat: j.decode(e),
456 files: V.decode(e),
456 files: U.decode(e),
457457 }),
458458 },
459 J = { Default: 1, Broadcast: 2, DirectMessage: 3 },
460 U = {
459 O = { Default: 1, Broadcast: 2, DirectMessage: 3 },
460 J = {
461461 preencode(e, d) {
462462 e.end++
463463 },
……@@ -480,8 +480,8 @@ const o = {
480480 (n >= 19 && o.isLinksDisabled ? 128 : 0) |
481481 (n >= 20 && o.buildType ? 256 : 0)
482482 ;(e.uint.preencode(d, c),
483 o.roomType && U.preencode(d, o.roomType),
484 n >= 20 && o.buildType && Vt.preencode(d, o.buildType))
483 o.roomType && J.preencode(d, o.roomType),
484 n >= 20 && o.buildType && Ut.preencode(d, o.buildType))
485485 },
486486 encode(d, o) {
487487 const c =
……@@ -495,13 +495,13 @@ const o = {
495495 (n >= 19 && o.isLinksDisabled ? 128 : 0) |
496496 (n >= 20 && o.buildType ? 256 : 0)
497497 ;(e.uint.encode(d, c),
498 o.roomType && U.encode(d, o.roomType),
499 n >= 20 && o.buildType && Vt.encode(d, o.buildType))
498 o.roomType && J.encode(d, o.roomType),
499 n >= 20 && o.buildType && Ut.encode(d, o.buildType))
500500 },
501501 decode(d) {
502502 const o = e.uint.decode(d)
503503 return {
504 roomType: 1 & o ? U.decode(d) : 0,
504 roomType: 1 & o ? J.decode(d) : 0,
505505 isExperimental: !!(2 & o),
506506 isJoiningDisabled: !!(4 & o),
507507 isAppendingDisabled: !!(8 & o),
……@@ -509,11 +509,11 @@ const o = {
509509 isMembershipEventsDisabled: !!(32 & o),
510510 isAttachmentsDisabled: n >= 19 && !!(64 & o),
511511 isLinksDisabled: n >= 19 && !!(128 & o),
512 buildType: n >= 20 && 256 & o ? Vt.decode(d) : null,
512 buildType: n >= 20 && 256 & o ? Ut.decode(d) : null,
513513 }
514514 },
515515 },
516 z = e.frame(M),
516 z = e.frame(F),
517517 G = e.frame(H),
518518 Q = {
519519 preencode(d, n) {
……@@ -558,9 +558,9 @@ const o = {
558558 preencode(d, o) {
559559 ;(d.end++,
560560 o.title && e.string.preencode(d, o.title),
561 o.avatar && di.preencode(d, o.avatar),
561 o.avatar && oi.preencode(d, o.avatar),
562562 o.description && e.string.preencode(d, o.description),
563 n >= 11 && o.supportedLanguages && ni.preencode(d, o.supportedLanguages),
563 n >= 11 && o.supportedLanguages && ci.preencode(d, o.supportedLanguages),
564564 n >= 13 && o.blindPeers && Y.preencode(d, o.blindPeers))
565565 },
566566 encode(d, o) {
……@@ -572,18 +572,18 @@ const o = {
572572 (n >= 13 && o.blindPeers ? 16 : 0)
573573 ;(e.uint.encode(d, c),
574574 o.title && e.string.encode(d, o.title),
575 o.avatar && di.encode(d, o.avatar),
575 o.avatar && oi.encode(d, o.avatar),
576576 o.description && e.string.encode(d, o.description),
577 n >= 11 && o.supportedLanguages && ni.encode(d, o.supportedLanguages),
577 n >= 11 && o.supportedLanguages && ci.encode(d, o.supportedLanguages),
578578 n >= 13 && o.blindPeers && Y.encode(d, o.blindPeers))
579579 },
580580 decode(d) {
581581 const o = e.uint.decode(d)
582582 return {
583583 title: 1 & o ? e.string.decode(d) : null,
584 avatar: 2 & o ? di.decode(d) : null,
584 avatar: 2 & o ? oi.decode(d) : null,
585585 description: 4 & o ? e.string.decode(d) : null,
586 supportedLanguages: n >= 11 && 8 & o ? ni.decode(d) : null,
586 supportedLanguages: n >= 11 && 8 & o ? ci.decode(d) : null,
587587 blindPeers: n >= 13 && 16 & o ? Y.decode(d) : null,
588588 }
589589 },
……@@ -643,7 +643,7 @@ const o = {
643643 ;(e.fixed32.preencode(d, n.key),
644644 e.fixed32.preencode(d, n.memberKey),
645645 re.preencode(d, n.status),
646 oi.preencode(d, n.profile),
646 ti.preencode(d, n.profile),
647647 d.end++,
648648 n.invitation && ie.preencode(d, n.invitation))
649649 },
……@@ -652,7 +652,7 @@ const o = {
652652 ;(e.fixed32.encode(d, n.key),
653653 e.fixed32.encode(d, n.memberKey),
654654 re.encode(d, n.status),
655 oi.encode(d, n.profile),
655 ti.encode(d, n.profile),
656656 e.uint.encode(d, o),
657657 n.invitation && ie.encode(d, n.invitation))
658658 },
……@@ -660,7 +660,7 @@ const o = {
660660 key: e.fixed32.decode(d),
661661 memberKey: e.fixed32.decode(d),
662662 status: re.decode(d),
663 profile: oi.decode(d),
663 profile: ti.decode(d),
664664 invitation: 1 & e.uint.decode(d) ? ie.decode(d) : null,
665665 }),
666666 },
……@@ -670,7 +670,7 @@ const o = {
670670 d.end++,
671671 n.mailbox && e.fixed32.preencode(d, n.mailbox),
672672 n.displayName && e.string.preencode(d, n.displayName),
673 n.avatar && ci.preencode(d, n.avatar),
673 n.avatar && ri.preencode(d, n.avatar),
674674 n.username && e.string.preencode(d, n.username))
675675 },
676676 encode(d, n) {
……@@ -680,7 +680,7 @@ const o = {
680680 e.uint.encode(d, o),
681681 n.mailbox && e.fixed32.encode(d, n.mailbox),
682682 n.displayName && e.string.encode(d, n.displayName),
683 n.avatar && ci.encode(d, n.avatar),
683 n.avatar && ri.encode(d, n.avatar),
684684 n.username && e.string.encode(d, n.username))
685685 },
686686 decode(d) {
……@@ -690,7 +690,7 @@ const o = {
690690 timestamp: n,
691691 mailbox: 1 & o ? e.fixed32.decode(d) : null,
692692 displayName: 2 & o ? e.string.decode(d) : null,
693 avatar: 4 & o ? ci.decode(d) : null,
693 avatar: 4 & o ? ri.decode(d) : null,
694694 username: 8 & o ? e.string.decode(d) : null,
695695 }
696696 },
……@@ -700,7 +700,7 @@ const o = {
700700 ;(d.end++,
701701 o.swarmKey && e.fixed32.preencode(d, o.swarmKey),
702702 o.name && e.string.preencode(d, o.name),
703 n >= 20 && o.buildType && Vt.preencode(d, o.buildType))
703 n >= 20 && o.buildType && Ut.preencode(d, o.buildType))
704704 },
705705 encode(d, o) {
706706 const c =
……@@ -711,7 +711,7 @@ const o = {
711711 ;(e.uint.encode(d, c),
712712 o.swarmKey && e.fixed32.encode(d, o.swarmKey),
713713 o.name && e.string.encode(d, o.name),
714 n >= 20 && o.buildType && Vt.encode(d, o.buildType))
714 n >= 20 && o.buildType && Ut.encode(d, o.buildType))
715715 },
716716 decode(d) {
717717 const o = e.uint.decode(d)
……@@ -719,7 +719,7 @@ const o = {
719719 swarmKey: 1 & o ? e.fixed32.decode(d) : null,
720720 name: 2 & o ? e.string.decode(d) : null,
721721 isMobile: !!(4 & o),
722 buildType: n >= 20 && 8 & o ? Vt.decode(d) : null,
722 buildType: n >= 20 && 8 & o ? Ut.decode(d) : null,
723723 }
724724 },
725725 },
……@@ -735,12 +735,12 @@ const o = {
735735 },
736736 fe = {
737737 preencode(e, d) {
738 ;(ti.preencode(e, d.profile), ce.preencode(e, d.attestation))
738 ;(ii.preencode(e, d.profile), ce.preencode(e, d.attestation))
739739 },
740740 encode(e, d) {
741 ;(ti.encode(e, d.profile), ce.encode(e, d.attestation))
741 ;(ii.encode(e, d.profile), ce.encode(e, d.attestation))
742742 },
743 decode: (e) => ({ profile: ti.decode(e), attestation: ce.decode(e) }),
743 decode: (e) => ({ profile: ii.decode(e), attestation: ce.decode(e) }),
744744 },
745745 me = {
746746 preencode(d, n) {
……@@ -856,7 +856,7 @@ const o = {
856856 },
857857 Ce = e.frame(me),
858858 De = e.frame(be),
859 Fe = {
859 Me = {
860860 preencode(e, d) {
861861 ;(Ce.preencode(e, d.signedKeys), e.end++, d.identity && De.preencode(e, d.identity))
862862 },
……@@ -869,11 +869,11 @@ const o = {
869869 identity: 1 & e.uint.decode(d) ? De.decode(d) : null,
870870 }),
871871 },
872 Me = {
872 Fe = {
873873 preencode(d, o) {
874874 ;(d.end++,
875875 o.expiration && e.uint.preencode(d, o.expiration),
876 n >= 20 && o.buildType && Vt.preencode(d, o.buildType))
876 n >= 20 && o.buildType && Ut.preencode(d, o.buildType))
877877 },
878878 encode(d, o) {
879879 const c =
……@@ -884,7 +884,7 @@ const o = {
884884 (n >= 20 && o.buildType ? 16 : 0)
885885 ;(e.uint.encode(d, c),
886886 o.expiration && e.uint.encode(d, o.expiration),
887 n >= 20 && o.buildType && Vt.encode(d, o.buildType))
887 n >= 20 && o.buildType && Ut.encode(d, o.buildType))
888888 },
889889 decode(d) {
890890 const o = e.uint.decode(d)
……@@ -893,12 +893,12 @@ const o = {
893893 requiresConfirmation: !!(2 & o),
894894 canModerate: !!(4 & o),
895895 canAdmin: !!(8 & o),
896 buildType: n >= 20 && 16 & o ? Vt.decode(d) : null,
896 buildType: n >= 20 && 16 & o ? Ut.decode(d) : null,
897897 }
898898 },
899899 },
900900 qe = Ce,
901 Le = e.frame(Me),
901 Le = e.frame(Fe),
902902 Ie = {
903903 preencode(d, n) {
904904 ;(e.fixed32.preencode(d, n.id),
……@@ -941,7 +941,7 @@ const o = {
941941 decode: (e) => ({ header: Ee.decode(e), invitation: Be.decode(e) }),
942942 },
943943 je = _,
944 Ve = {
944 Ue = {
945945 preencode(d, n) {
946946 ;(je.preencode(d, n.header), e.fixed32.preencode(d, n.id))
947947 },
……@@ -950,7 +950,7 @@ const o = {
950950 },
951951 decode: (d) => ({ header: je.decode(d), id: e.fixed32.decode(d) }),
952952 },
953 Oe = {
953 Ve = {
954954 preencode(d, n) {
955955 ;(e.fixed32.preencode(d, n.mailbox),
956956 e.fixed32.preencode(d, n.invitationSeed),
……@@ -967,7 +967,7 @@ const o = {
967967 anchor: o.decode(d),
968968 }),
969969 },
970 Je = {
970 Oe = {
971971 preencode(d, n) {
972972 ;(e.fixed32.preencode(d, n.mailbox),
973973 e.fixed32.preencode(d, n.invitationSeed),
……@@ -987,7 +987,7 @@ const o = {
987987 identityPublicKey: e.fixed32.decode(d),
988988 }),
989989 },
990 Ue = {
990 Je = {
991991 preencode(d, n) {
992992 e.fixed32.preencode(d, n.mailbox)
993993 },
……@@ -996,9 +996,9 @@ const o = {
996996 },
997997 decode: (d) => ({ mailbox: e.fixed32.decode(d) }),
998998 },
999 He = e.frame(Oe),
1000 ze = e.frame(Je),
1001 Ge = e.frame(Ue),
999 He = e.frame(Ve),
1000 ze = e.frame(Oe),
1001 Ge = e.frame(Je),
10021002 Qe = e.array(e.ipv4Address),
10031003 We = {
10041004 preencode(e, d) {
……@@ -1006,9 +1006,9 @@ const o = {
10061006 d.room && He.preencode(e, d.room),
10071007 d.identity && ze.preencode(e, d.identity),
10081008 d.contact && Ge.preencode(e, d.contact),
1009 n >= 6 && d.readonly && ri.preencode(e, d.readonly),
1009 n >= 6 && d.readonly && ai.preencode(e, d.readonly),
10101010 n >= 11 && d.additionalNodes && Qe.preencode(e, d.additionalNodes),
1011 n >= 20 && d.buildType && Vt.preencode(e, d.buildType))
1011 n >= 20 && d.buildType && Ut.preencode(e, d.buildType))
10121012 },
10131013 encode(d, o) {
10141014 const c =
……@@ -1022,9 +1022,9 @@ const o = {
10221022 o.room && He.encode(d, o.room),
10231023 o.identity && ze.encode(d, o.identity),
10241024 o.contact && Ge.encode(d, o.contact),
1025 n >= 6 && o.readonly && ri.encode(d, o.readonly),
1025 n >= 6 && o.readonly && ai.encode(d, o.readonly),
10261026 n >= 11 && o.additionalNodes && Qe.encode(d, o.additionalNodes),
1027 n >= 20 && o.buildType && Vt.encode(d, o.buildType))
1027 n >= 20 && o.buildType && Ut.encode(d, o.buildType))
10281028 },
10291029 decode(d) {
10301030 const o = e.uint.decode(d)
……@@ -1032,9 +1032,9 @@ const o = {
10321032 room: 1 & o ? He.decode(d) : null,
10331033 identity: 2 & o ? ze.decode(d) : null,
10341034 contact: 4 & o ? Ge.decode(d) : null,
1035 readonly: n >= 6 && 8 & o ? ri.decode(d) : null,
1035 readonly: n >= 6 && 8 & o ? ai.decode(d) : null,
10361036 additionalNodes: n >= 11 && 16 & o ? Qe.decode(d) : null,
1037 buildType: n >= 20 && 32 & o ? Vt.decode(d) : null,
1037 buildType: n >= 20 && 32 & o ? Ut.decode(d) : null,
10381038 }
10391039 },
10401040 },
……@@ -1051,13 +1051,13 @@ const o = {
10511051 Ze = _,
10521052 $e = {
10531053 preencode(e, d) {
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && ii.preencode(e, d.profile))
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && si.preencode(e, d.profile))
10551055 },
10561056 encode(d, n) {
10571057 const o = n.profile ? 1 : 0
1058 ;(Ze.encode(d, n.header), e.uint.encode(d, o), n.profile && ii.encode(d, n.profile))
1058 ;(Ze.encode(d, n.header), e.uint.encode(d, o), n.profile && si.encode(d, n.profile))
10591059 },
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? ii.decode(d) : null }),
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? si.decode(d) : null }),
10611061 },
10621062 _e = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({}) },
10631063 ed = _e,
……@@ -1128,7 +1128,7 @@ const o = {
11281128 ud.preencode(d, n.status),
11291129 ld.preencode(d, n.profile),
11301130 d.end++,
1131 n.proofs && ai.preencode(d, n.proofs))
1131 n.proofs && pi.preencode(d, n.proofs))
11321132 },
11331133 encode(d, n) {
11341134 const o = n.proofs ? 1 : 0
……@@ -1136,13 +1136,13 @@ const o = {
11361136 ud.encode(d, n.status),
11371137 ld.encode(d, n.profile),
11381138 e.uint.encode(d, o),
1139 n.proofs && ai.encode(d, n.proofs))
1139 n.proofs && pi.encode(d, n.proofs))
11401140 },
11411141 decode: (d) => ({
11421142 key: e.fixed32.decode(d),
11431143 status: ud.decode(d),
11441144 profile: ld.decode(d),
1145 proofs: 1 & e.uint.decode(d) ? ai.decode(d) : null,
1145 proofs: 1 & e.uint.decode(d) ? pi.decode(d) : null,
11461146 }),
11471147 },
11481148 md = {
……@@ -1181,7 +1181,7 @@ const o = {
11811181 decode: (e) => ({ header: yd.decode(e), member: bd.decode(e) }),
11821182 },
11831183 kd = _,
1184 vd = e.frame(F),
1184 vd = e.frame(M),
11851185 gd = {
11861186 preencode(d, n) {
11871187 ;(kd.preencode(d, n.header),
……@@ -1263,8 +1263,8 @@ const o = {
12631263 },
12641264 Cd = e.frame(Pd),
12651265 Dd = e.frame(Sd),
1266 Fd = e.frame(Rd),
1267 Md = {
1266 Md = e.frame(Rd),
1267 Fd = {
12681268 preencode(d, o) {
12691269 const c =
12701270 (o.memberJoined ? 1 : 0) |
……@@ -1280,9 +1280,9 @@ const o = {
12801280 ;(e.uint.preencode(d, c),
12811281 o.memberJoined && Cd.preencode(d, o.memberJoined),
12821282 o.memberLeft && Dd.preencode(d, o.memberLeft),
1283 o.titleChanged && Fd.preencode(d, o.titleChanged),
1284 n >= 3 && o.memberRemoved && si.preencode(d, o.memberRemoved),
1285 n >= 18 && o.locationShared && pi.preencode(d, o.locationShared))
1283 o.titleChanged && Md.preencode(d, o.titleChanged),
1284 n >= 3 && o.memberRemoved && ui.preencode(d, o.memberRemoved),
1285 n >= 18 && o.locationShared && li.preencode(d, o.locationShared))
12861286 },
12871287 encode(d, o) {
12881288 const c =
……@@ -1299,29 +1299,29 @@ const o = {
12991299 ;(e.uint.encode(d, c),
13001300 o.memberJoined && Cd.encode(d, o.memberJoined),
13011301 o.memberLeft && Dd.encode(d, o.memberLeft),
1302 o.titleChanged && Fd.encode(d, o.titleChanged),
1303 n >= 3 && o.memberRemoved && si.encode(d, o.memberRemoved),
1304 n >= 18 && o.locationShared && pi.encode(d, o.locationShared))
1302 o.titleChanged && Md.encode(d, o.titleChanged),
1303 n >= 3 && o.memberRemoved && ui.encode(d, o.memberRemoved),
1304 n >= 18 && o.locationShared && li.encode(d, o.locationShared))
13051305 },
13061306 decode(d) {
13071307 const o = e.uint.decode(d)
13081308 return {
13091309 memberJoined: 1 & o ? Cd.decode(d) : null,
13101310 memberLeft: 2 & o ? Dd.decode(d) : null,
1311 titleChanged: 4 & o ? Fd.decode(d) : null,
1311 titleChanged: 4 & o ? Md.decode(d) : null,
13121312 callStarted: !!(8 & o),
13131313 callHangup: !!(16 & o),
13141314 callMissed: !!(32 & o),
13151315 roomAvatarChanged: n >= 3 && !!(64 & o),
13161316 invitationCreated: n >= 3 && !!(128 & o),
1317 memberRemoved: n >= 3 && 256 & o ? si.decode(d) : null,
1318 locationShared: n >= 18 && 512 & o ? pi.decode(d) : null,
1317 memberRemoved: n >= 3 && 256 & o ? ui.decode(d) : null,
1318 locationShared: n >= 18 && 512 & o ? li.decode(d) : null,
13191319 }
13201320 },
13211321 },
13221322 qd = {
13231323 preencode(e, d) {
1324 ;(e.end++, n >= 18 && d.locationShared && ui.preencode(e, d.locationShared))
1324 ;(e.end++, n >= 18 && d.locationShared && fi.preencode(e, d.locationShared))
13251325 },
13261326 encode(d, o) {
13271327 const c =
……@@ -1329,7 +1329,7 @@ const o = {
13291329 (o.callHangup ? 2 : 0) |
13301330 (o.callMissed ? 4 : 0) |
13311331 (n >= 18 && o.locationShared ? 8 : 0)
1332 ;(e.uint.encode(d, c), n >= 18 && o.locationShared && ui.encode(d, o.locationShared))
1332 ;(e.uint.encode(d, c), n >= 18 && o.locationShared && fi.encode(d, o.locationShared))
13331333 },
13341334 decode(d) {
13351335 const o = e.uint.decode(d)
……@@ -1337,7 +1337,7 @@ const o = {
13371337 callStarted: !!(1 & o),
13381338 callHangup: !!(2 & o),
13391339 callMissed: !!(4 & o),
1340 locationShared: n >= 18 && 8 & o ? ui.decode(d) : null,
1340 locationShared: n >= 18 && 8 & o ? fi.decode(d) : null,
13411341 }
13421342 },
13431343 },
……@@ -1371,14 +1371,14 @@ const o = {
13711371 decode: (d) => ({ range: Bd.decode(d), memberKey: e.fixed32.decode(d) }),
13721372 },
13731373 jd = h,
1374 Vd = e.array(e.uint),
1375 Od = {
1374 Ud = e.array(e.uint),
1375 Vd = {
13761376 preencode(d, o) {
13771377 ;(d.end++,
13781378 o.title && e.string.preencode(d, o.title),
13791379 o.description && e.string.preencode(d, o.description),
13801380 o.file && jd.preencode(d, o.file),
1381 n >= 7 && o.files && Vd.preencode(d, o.files))
1381 n >= 7 && o.files && Ud.preencode(d, o.files))
13821382 },
13831383 encode(d, o) {
13841384 const c =
……@@ -1387,7 +1387,7 @@ const o = {
13871387 o.title && e.string.encode(d, o.title),
13881388 o.description && e.string.encode(d, o.description),
13891389 o.file && jd.encode(d, o.file),
1390 n >= 7 && o.files && Vd.encode(d, o.files))
1390 n >= 7 && o.files && Ud.encode(d, o.files))
13911391 },
13921392 decode(d) {
13931393 const o = e.uint.decode(d)
……@@ -1395,30 +1395,30 @@ const o = {
13951395 title: 1 & o ? e.string.decode(d) : null,
13961396 description: 2 & o ? e.string.decode(d) : null,
13971397 file: 4 & o ? jd.decode(d) : null,
1398 files: n >= 7 && 8 & o ? Vd.decode(d) : null,
1398 files: n >= 7 && 8 & o ? Ud.decode(d) : null,
13991399 }
14001400 },
14011401 },
1402 Jd = Id,
1403 Ud = e.frame(Od),
1402 Od = Id,
1403 Jd = e.frame(Vd),
14041404 Hd = {
14051405 preencode(d, n) {
1406 ;(Jd.preencode(d, n.range),
1406 ;(Od.preencode(d, n.range),
14071407 e.string.preencode(d, n.url),
14081408 d.end++,
1409 n.preview && Ud.preencode(d, n.preview))
1409 n.preview && Jd.preencode(d, n.preview))
14101410 },
14111411 encode(d, n) {
14121412 const o = n.preview ? 1 : 0
1413 ;(Jd.encode(d, n.range),
1413 ;(Od.encode(d, n.range),
14141414 e.string.encode(d, n.url),
14151415 e.uint.encode(d, o),
1416 n.preview && Ud.encode(d, n.preview))
1416 n.preview && Jd.encode(d, n.preview))
14171417 },
14181418 decode: (d) => ({
1419 range: Jd.decode(d),
1419 range: Od.decode(d),
14201420 url: e.string.decode(d),
1421 preview: 1 & e.uint.decode(d) ? Ud.decode(d) : null,
1421 preview: 1 & e.uint.decode(d) ? Jd.decode(d) : null,
14221422 }),
14231423 },
14241424 zd = e.array(e.frame(Nd)),
……@@ -1453,7 +1453,7 @@ const o = {
14531453 o.emoji && Zd.preencode(d, o.emoji),
14541454 o.codeBlock && $d.preencode(d, o.codeBlock),
14551455 o.strike && _d.preencode(d, o.strike),
1456 n >= 11 && o.translation && li.preencode(d, o.translation))
1456 n >= 11 && o.translation && mi.preencode(d, o.translation))
14571457 },
14581458 encode(d, o) {
14591459 const c =
……@@ -1477,7 +1477,7 @@ const o = {
14771477 o.emoji && Zd.encode(d, o.emoji),
14781478 o.codeBlock && $d.encode(d, o.codeBlock),
14791479 o.strike && _d.encode(d, o.strike),
1480 n >= 11 && o.translation && li.encode(d, o.translation))
1480 n >= 11 && o.translation && mi.encode(d, o.translation))
14811481 },
14821482 decode(d) {
14831483 const o = e.uint.decode(d)
……@@ -1491,7 +1491,7 @@ const o = {
14911491 emoji: 64 & o ? Zd.decode(d) : null,
14921492 codeBlock: 128 & o ? $d.decode(d) : null,
14931493 strike: 256 & o ? _d.decode(d) : null,
1494 translation: n >= 11 && 512 & o ? li.decode(d) : null,
1494 translation: n >= 11 && 512 & o ? mi.decode(d) : null,
14951495 }
14961496 },
14971497 },
……@@ -1538,7 +1538,7 @@ const o = {
15381538 }
15391539 },
15401540 },
1541 tn = Vd,
1541 tn = Ud,
15421542 rn = nn,
15431543 an = {
15441544 preencode(d, n) {
……@@ -1636,7 +1636,7 @@ const o = {
16361636 },
16371637 decode: (d) => ({ thread: e.uint.decode(d), index: e.uint.decode(d) }),
16381638 },
1639 mn = e.frame(O),
1639 mn = e.frame(V),
16401640 yn = {
16411641 preencode(d, n) {
16421642 ;(e.uint.preencode(d, n.id),
……@@ -1667,7 +1667,7 @@ const o = {
16671667 },
16681668 bn = e.frame(ln),
16691669 xn = e.frame(an),
1670 kn = e.frame(Md),
1670 kn = e.frame(Fd),
16711671 vn = {
16721672 preencode(d, n) {
16731673 ;(fn.preencode(d, n.id),
……@@ -1778,7 +1778,7 @@ const o = {
17781778 },
17791779 Cn = _,
17801780 Dn = Tn,
1781 Fn = {
1781 Mn = {
17821782 preencode(e, d) {
17831783 ;(Cn.preencode(e, d.header), c.preencode(e, d.oplog), Dn.preencode(e, d.message))
17841784 },
……@@ -1787,17 +1787,17 @@ const o = {
17871787 },
17881788 decode: (e) => ({ header: Cn.decode(e), oplog: c.decode(e), message: Dn.decode(e) }),
17891789 },
1790 Mn = _,
1790 Fn = _,
17911791 qn = {
17921792 preencode(e, d) {
1793 ;(Mn.preencode(e, d.header), c.preencode(e, d.oplog), e.end++)
1793 ;(Fn.preencode(e, d.header), c.preencode(e, d.oplog), e.end++)
17941794 },
17951795 encode(d, n) {
17961796 const o = n.isPinned ? 1 : 0
1797 ;(Mn.encode(d, n.header), c.encode(d, n.oplog), e.uint.encode(d, o))
1797 ;(Fn.encode(d, n.header), c.encode(d, n.oplog), e.uint.encode(d, o))
17981798 },
17991799 decode: (d) => ({
1800 header: Mn.decode(d),
1800 header: Fn.decode(d),
18011801 oplog: c.decode(d),
18021802 isPinned: !!(1 & e.uint.decode(d)),
18031803 }),
……@@ -1866,45 +1866,45 @@ const o = {
18661866 },
18671867 decode: (d) => ({ header: Nn.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
18681868 },
1869 Vn = _,
1870 On = {
1869 Un = _,
1870 Vn = {
18711871 preencode(d, n) {
1872 ;(Vn.preencode(d, n.header), c.preencode(d, n.oplog), e.string.preencode(d, n.reaction))
1872 ;(Un.preencode(d, n.header), c.preencode(d, n.oplog), e.string.preencode(d, n.reaction))
18731873 },
18741874 encode(d, n) {
1875 ;(Vn.encode(d, n.header), c.encode(d, n.oplog), e.string.encode(d, n.reaction))
1875 ;(Un.encode(d, n.header), c.encode(d, n.oplog), e.string.encode(d, n.reaction))
18761876 },
1877 decode: (d) => ({ header: Vn.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
1877 decode: (d) => ({ header: Un.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
18781878 },
1879 Jn = _,
1880 Un = e.frame(Z),
1879 On = _,
1880 Jn = e.frame(Z),
18811881 Hn = {
18821882 preencode(d, n) {
1883 ;(Jn.preencode(d, n.header), e.uint.preencode(d, n.key), Un.preencode(d, n.config))
1883 ;(On.preencode(d, n.header), e.uint.preencode(d, n.key), Jn.preencode(d, n.config))
18841884 },
18851885 encode(d, n) {
1886 ;(Jn.encode(d, n.header), e.uint.encode(d, n.key), Un.encode(d, n.config))
1886 ;(On.encode(d, n.header), e.uint.encode(d, n.key), Jn.encode(d, n.config))
18871887 },
1888 decode: (d) => ({ header: Jn.decode(d), key: e.uint.decode(d), config: Un.decode(d) }),
1888 decode: (d) => ({ header: On.decode(d), key: e.uint.decode(d), config: Jn.decode(d) }),
18891889 },
18901890 zn = {
18911891 preencode(d, n) {
18921892 ;(e.fixed32.preencode(d, n.memberKey),
18931893 e.string.preencode(d, n.displayName),
18941894 d.end++,
1895 n.avatar && fi.preencode(d, n.avatar))
1895 n.avatar && yi.preencode(d, n.avatar))
18961896 },
18971897 encode(d, n) {
18981898 const o = n.avatar ? 1 : 0
18991899 ;(e.fixed32.encode(d, n.memberKey),
19001900 e.string.encode(d, n.displayName),
19011901 e.uint.encode(d, o),
1902 n.avatar && fi.encode(d, n.avatar))
1902 n.avatar && yi.encode(d, n.avatar))
19031903 },
19041904 decode: (d) => ({
19051905 memberKey: e.fixed32.decode(d),
19061906 displayName: e.string.decode(d),
1907 avatar: 1 & e.uint.decode(d) ? fi.decode(d) : null,
1907 avatar: 1 & e.uint.decode(d) ? yi.decode(d) : null,
19081908 }),
19091909 },
19101910 Gn = {
……@@ -1950,7 +1950,7 @@ const o = {
19501950 Xn = _,
19511951 Yn = e.frame(Q),
19521952 Zn = e.frame(W),
1953 $n = Un,
1953 $n = Jn,
19541954 _n = e.frame(Wn),
19551955 eo = xe,
19561956 no = e.array(e.frame(le)),
……@@ -2020,7 +2020,7 @@ const o = {
20202020 so = {
20212021 preencode(d, n) {
20222022 ;(e.fixed32.preencode(d, n.memberKey),
2023 mi.preencode(d, n.status),
2023 bi.preencode(d, n.status),
20242024 d.end++,
20252025 n.mailbox && e.fixed32.preencode(d, n.mailbox),
20262026 n.roomKey && e.fixed32.preencode(d, n.roomKey))
……@@ -2028,14 +2028,14 @@ const o = {
20282028 encode(d, n) {
20292029 const o = (n.mailbox ? 1 : 0) | (n.roomKey ? 2 : 0)
20302030 ;(e.fixed32.encode(d, n.memberKey),
2031 mi.encode(d, n.status),
2031 bi.encode(d, n.status),
20322032 e.uint.encode(d, o),
20332033 n.mailbox && e.fixed32.encode(d, n.mailbox),
20342034 n.roomKey && e.fixed32.encode(d, n.roomKey))
20352035 },
20362036 decode(d) {
20372037 const n = e.fixed32.decode(d),
2038 o = mi.decode(d),
2038 o = bi.decode(d),
20392039 c = e.uint.decode(d)
20402040 return {
20412041 memberKey: n,
……@@ -2144,7 +2144,7 @@ const o = {
21442144 o.preencode(d, c.inviter),
21452145 d.end++,
21462146 c.identity && go.preencode(d, c.identity),
2147 n >= 20 && c.buildType && Vt.preencode(d, c.buildType))
2147 n >= 20 && c.buildType && Ut.preencode(d, c.buildType))
21482148 },
21492149 encode(d, c) {
21502150 const t = (c.identity ? 1 : 0) | (n >= 20 && c.buildType ? 2 : 0)
……@@ -2156,7 +2156,7 @@ const o = {
21562156 o.encode(d, c.inviter),
21572157 e.uint.encode(d, t),
21582158 c.identity && go.encode(d, c.identity),
2159 n >= 20 && c.buildType && Vt.encode(d, c.buildType))
2159 n >= 20 && c.buildType && Ut.encode(d, c.buildType))
21602160 },
21612161 decode(d) {
21622162 const c = e.fixed32.decode(d),
……@@ -2174,7 +2174,7 @@ const o = {
21742174 initiator: s,
21752175 inviter: p,
21762176 identity: 1 & u ? go.decode(d) : null,
2177 buildType: n >= 20 && 2 & u ? Vt.decode(d) : null,
2177 buildType: n >= 20 && 2 & u ? Ut.decode(d) : null,
21782178 }
21792179 },
21802180 },
……@@ -2250,7 +2250,8 @@ const o = {
22502250 (o.isFullyMuted ? 2 : 0) |
22512251 (o.isMentionsOnlyMuted ? 4 : 0) |
22522252 (n >= 9 && o.isReadOnly ? 8 : 0) |
2253 (n >= 18 && o.isFavorite ? 16 : 0)
2253 (n >= 18 && o.isFavorite ? 16 : 0) |
2254 (n >= 21 && o.isUnread ? 32 : 0)
22542255 e.uint.encode(d, c)
22552256 },
22562257 decode(d) {
……@@ -2261,23 +2262,24 @@ const o = {
22612262 isMentionsOnlyMuted: !!(4 & o),
22622263 isReadOnly: n >= 9 && !!(8 & o),
22632264 isFavorite: n >= 18 && !!(16 & o),
2265 isUnread: n >= 21 && !!(32 & o),
22642266 }
22652267 },
22662268 },
2267 Fo = e.frame(Do),
2268 Mo = e.frame(Co),
2269 Mo = e.frame(Do),
2270 Fo = e.frame(Co),
22692271 qo = go,
22702272 Lo = {
22712273 preencode(d, c) {
22722274 ;(e.fixed32.preencode(d, c.roomKey),
22732275 e.buffer.preencode(d, c.encryptionKey),
22742276 e.fixed32.preencode(d, c.mailbox),
2275 Fo.preencode(d, c.status),
2277 Mo.preencode(d, c.status),
22762278 e.uint.preencode(d, c.clock),
22772279 d.end++,
22782280 c.initiator && o.preencode(d, c.initiator),
22792281 c.fastForwardTo && e.fixed32.preencode(d, c.fastForwardTo),
2280 c.identitySwap && Mo.preencode(d, c.identitySwap),
2282 c.identitySwap && Fo.preencode(d, c.identitySwap),
22812283 n >= 6 && c.identitySwapV2 && qo.preencode(d, c.identitySwapV2),
22822284 n >= 10 && c.contact && e.fixed32.preencode(d, c.contact))
22832285 },
……@@ -2291,12 +2293,12 @@ const o = {
22912293 ;(e.fixed32.encode(d, c.roomKey),
22922294 e.buffer.encode(d, c.encryptionKey),
22932295 e.fixed32.encode(d, c.mailbox),
2294 Fo.encode(d, c.status),
2296 Mo.encode(d, c.status),
22952297 e.uint.encode(d, c.clock),
22962298 e.uint.encode(d, t),
22972299 c.initiator && o.encode(d, c.initiator),
22982300 c.fastForwardTo && e.fixed32.encode(d, c.fastForwardTo),
2299 c.identitySwap && Mo.encode(d, c.identitySwap),
2301 c.identitySwap && Fo.encode(d, c.identitySwap),
23002302 n >= 6 && c.identitySwapV2 && qo.encode(d, c.identitySwapV2),
23012303 n >= 10 && c.contact && e.fixed32.encode(d, c.contact))
23022304 },
……@@ -2304,7 +2306,7 @@ const o = {
23042306 const c = e.fixed32.decode(d),
23052307 t = e.buffer.decode(d),
23062308 r = e.fixed32.decode(d),
2307 i = Fo.decode(d),
2309 i = Mo.decode(d),
23082310 a = e.uint.decode(d),
23092311 s = e.uint.decode(d)
23102312 return {
……@@ -2315,7 +2317,7 @@ const o = {
23152317 clock: a,
23162318 initiator: 1 & s ? o.decode(d) : null,
23172319 fastForwardTo: 2 & s ? e.fixed32.decode(d) : null,
2318 identitySwap: 4 & s ? Mo.decode(d) : null,
2320 identitySwap: 4 & s ? Fo.decode(d) : null,
23192321 identitySwapV2: n >= 6 && 8 & s ? qo.decode(d) : null,
23202322 contact: n >= 10 && 16 & s ? e.fixed32.decode(d) : null,
23212323 }
……@@ -2377,28 +2379,28 @@ const o = {
23772379 decode: (d) => ({ header: Bo.decode(d), discoveryKey: e.fixed32.decode(d) }),
23782380 },
23792381 jo = _,
2380 Vo = Fo,
2381 Oo = {
2382 Uo = Mo,
2383 Vo = {
23822384 preencode(d, n) {
23832385 ;(jo.preencode(d, n.header),
23842386 e.fixed32.preencode(d, n.roomKey),
23852387 e.uint.preencode(d, n.key),
2386 Vo.preencode(d, n.status))
2388 Uo.preencode(d, n.status))
23872389 },
23882390 encode(d, n) {
23892391 ;(jo.encode(d, n.header),
23902392 e.fixed32.encode(d, n.roomKey),
23912393 e.uint.encode(d, n.key),
2392 Vo.encode(d, n.status))
2394 Uo.encode(d, n.status))
23932395 },
23942396 decode: (d) => ({
23952397 header: jo.decode(d),
23962398 roomKey: e.fixed32.decode(d),
23972399 key: e.uint.decode(d),
2398 status: Vo.decode(d),
2400 status: Uo.decode(d),
23992401 }),
24002402 },
2401 Jo = {
2403 Oo = {
24022404 preencode(e, d) {
24032405 e.end++
24042406 },
……@@ -2408,11 +2410,11 @@ const o = {
24082410 },
24092411 decode: (d) => ({ isBlocked: !!(1 & e.uint.decode(d)) }),
24102412 },
2411 Uo = {
2413 Jo = {
24122414 preencode(d, n) {
24132415 ;(e.fixed32.preencode(d, n.memberKey),
24142416 e.uint.preencode(d, n.clock),
2415 yi.preencode(d, n.status),
2417 xi.preencode(d, n.status),
24162418 d.end++,
24172419 n.mailbox && e.fixed32.preencode(d, n.mailbox),
24182420 n.roomKey && e.fixed32.preencode(d, n.roomKey))
……@@ -2421,7 +2423,7 @@ const o = {
24212423 const o = (n.mailbox ? 1 : 0) | (n.roomKey ? 2 : 0)
24222424 ;(e.fixed32.encode(d, n.memberKey),
24232425 e.uint.encode(d, n.clock),
2424 yi.encode(d, n.status),
2426 xi.encode(d, n.status),
24252427 e.uint.encode(d, o),
24262428 n.mailbox && e.fixed32.encode(d, n.mailbox),
24272429 n.roomKey && e.fixed32.encode(d, n.roomKey))
……@@ -2429,7 +2431,7 @@ const o = {
24292431 decode(d) {
24302432 const n = e.fixed32.decode(d),
24312433 o = e.uint.decode(d),
2432 c = yi.decode(d),
2434 c = xi.decode(d),
24332435 t = e.uint.decode(d)
24342436 return {
24352437 memberKey: n,
……@@ -2457,19 +2459,19 @@ const o = {
24572459 ;(Qo.preencode(d, n.header),
24582460 e.fixed32.preencode(d, n.memberKey),
24592461 e.uint.preencode(d, n.key),
2460 bi.preencode(d, n.status))
2462 ki.preencode(d, n.status))
24612463 },
24622464 encode(d, n) {
24632465 ;(Qo.encode(d, n.header),
24642466 e.fixed32.encode(d, n.memberKey),
24652467 e.uint.encode(d, n.key),
2466 bi.encode(d, n.status))
2468 ki.encode(d, n.status))
24672469 },
24682470 decode: (d) => ({
24692471 header: Qo.decode(d),
24702472 memberKey: e.fixed32.decode(d),
24712473 key: e.uint.decode(d),
2472 status: bi.decode(d),
2474 status: ki.decode(d),
24732475 }),
24742476 },
24752477 Xo = _,
……@@ -2688,7 +2690,7 @@ const o = {
26882690 ;(mc.preencode(d, o.header),
26892691 c.preencode(d, o.oplog),
26902692 e.uint.preencode(d, o.index),
2691 xi.preencode(d, o.preview),
2693 vi.preencode(d, o.preview),
26922694 d.end++,
26932695 n >= 7 && o.displayType && Sc.preencode(d, o.displayType))
26942696 },
……@@ -2697,7 +2699,7 @@ const o = {
26972699 ;(mc.encode(d, o.header),
26982700 c.encode(d, o.oplog),
26992701 e.uint.encode(d, o.index),
2700 xi.encode(d, o.preview),
2702 vi.encode(d, o.preview),
27012703 e.uint.encode(d, t),
27022704 n >= 7 && o.displayType && Sc.encode(d, o.displayType))
27032705 },
……@@ -2705,7 +2707,7 @@ const o = {
27052707 const o = mc.decode(d),
27062708 t = c.decode(d),
27072709 r = e.uint.decode(d),
2708 i = xi.decode(d),
2710 i = vi.decode(d),
27092711 a = d.start < d.end ? e.uint.decode(d) : 0
27102712 return {
27112713 header: o,
……@@ -2864,29 +2866,29 @@ const o = {
28642866 },
28652867 decode: (d) => ({ key: e.uint.decode(d), value: e.uint.decode(d) }),
28662868 },
2867 Fc = _,
2868 Mc = {
2869 Mc = _,
2870 Fc = {
28692871 preencode(d, o) {
2870 ;(Fc.preencode(d, o.header),
2872 ;(Mc.preencode(d, o.header),
28712873 e.uint.preencode(d, o.from),
28722874 e.uint.preencode(d, o.to),
28732875 d.end++,
2874 n >= 20 && o.buildType && Vt.preencode(d, o.buildType))
2876 n >= 20 && o.buildType && Ut.preencode(d, o.buildType))
28752877 },
28762878 encode(d, o) {
28772879 const c = n >= 20 && o.buildType ? 1 : 0
2878 ;(Fc.encode(d, o.header),
2880 ;(Mc.encode(d, o.header),
28792881 e.uint.encode(d, o.from),
28802882 e.uint.encode(d, o.to),
28812883 e.uint.encode(d, c),
2882 n >= 20 && o.buildType && Vt.encode(d, o.buildType))
2884 n >= 20 && o.buildType && Ut.encode(d, o.buildType))
28832885 },
28842886 decode(d) {
2885 const o = Fc.decode(d),
2887 const o = Mc.decode(d),
28862888 c = e.uint.decode(d),
28872889 t = e.uint.decode(d),
28882890 r = d.start < d.end ? e.uint.decode(d) : 0
2889 return { header: o, from: c, to: t, buildType: n >= 20 && 1 & r ? Vt.decode(d) : null }
2891 return { header: o, from: c, to: t, buildType: n >= 20 && 1 & r ? Ut.decode(d) : null }
28902892 },
28912893 },
28922894 qc = {
……@@ -2971,25 +2973,25 @@ const o = {
29712973 },
29722974 decode: (d) => ({ deviceKey: e.fixed32.decode(d), key: e.fixed32.decode(d) }),
29732975 },
2974 Vc = _,
2975 Oc = {
2976 Uc = _,
2977 Vc = {
29762978 preencode(d, n) {
2977 ;(Vc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
2979 ;(Uc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
29782980 },
29792981 encode(d, n) {
2980 ;(Vc.encode(d, n.header), e.fixed32.encode(d, n.key))
2982 ;(Uc.encode(d, n.header), e.fixed32.encode(d, n.key))
29812983 },
2982 decode: (d) => ({ header: Vc.decode(d), key: e.fixed32.decode(d) }),
2984 decode: (d) => ({ header: Uc.decode(d), key: e.fixed32.decode(d) }),
29832985 },
2984 Jc = _,
2985 Uc = {
2986 Oc = _,
2987 Jc = {
29862988 preencode(d, n) {
2987 ;(Jc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
2989 ;(Oc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
29882990 },
29892991 encode(d, n) {
2990 ;(Jc.encode(d, n.header), e.fixed32.encode(d, n.key))
2992 ;(Oc.encode(d, n.header), e.fixed32.encode(d, n.key))
29912993 },
2992 decode: (d) => ({ header: Jc.decode(d), key: e.fixed32.decode(d) }),
2994 decode: (d) => ({ header: Oc.decode(d), key: e.fixed32.decode(d) }),
29932995 },
29942996 Hc = { Flag: 1 },
29952997 zc = {
……@@ -3117,24 +3119,48 @@ const o = {
31173119 e.end++
31183120 },
31193121 encode(d, o) {
3120 const c = n >= 13 && o.disableReadReceipts ? 1 : 0
3122 const c =
3123 (n >= 13 && o.disableReadReceipts ? 1 : 0) | (n >= 21 && o.stripAttachmentMetadata ? 2 : 0)
31213124 e.uint.encode(d, c)
31223125 },
31233126 decode(d) {
31243127 const o = e.uint.decode(d)
3125 return { disableReadReceipts: n >= 13 && !!(1 & o) }
3128 return {
3129 disableReadReceipts: n >= 13 && !!(1 & o),
3130 stripAttachmentMetadata: n >= 21 && !!(2 & o),
3131 }
31263132 },
31273133 },
3128 tt = { disableReadReceipts: "disableReadReceipts" },
3134 tt = {
3135 disableReadReceipts: "disableReadReceipts",
3136 stripAttachmentMetadata: "stripAttachmentMetadata",
3137 },
31293138 rt = {
31303139 preencode(e, d) {
31313140 e.end++
31323141 },
31333142 encode(d, n) {
3134 if ("disableReadReceipts" !== n) throw new Error("Unknown enum")
3135 e.uint.encode(d, 1)
3143 switch (n) {
3144 case "disableReadReceipts":
3145 e.uint.encode(d, 1)
3146 break
3147 case "stripAttachmentMetadata":
3148 e.uint.encode(d, 2)
3149 break
3150 default:
3151 throw new Error("Unknown enum")
3152 }
3153 },
3154 decode(d) {
3155 switch (e.uint.decode(d)) {
3156 case 1:
3157 return "disableReadReceipts"
3158 case 2:
3159 return "stripAttachmentMetadata"
3160 default:
3161 return null
3162 }
31363163 },
3137 decode: (d) => (1 === e.uint.decode(d) ? "disableReadReceipts" : null),
31383164 },
31393165 it = _,
31403166 at = e.frame(ct),
……@@ -3331,18 +3357,18 @@ const o = {
33313357 },
33323358 decode: (d) => ({ header: Ct.decode(d), callKey: e.fixed32.decode(d) }),
33333359 },
3334 Ft = _,
3335 Mt = {
3360 Mt = _,
3361 Ft = {
33363362 preencode(d, n) {
3337 ;(Ft.preencode(d, n.header),
3363 ;(Mt.preencode(d, n.header),
33383364 e.fixed32.preencode(d, n.callKey),
33393365 e.fixed32.preencode(d, n.streamKey))
33403366 },
33413367 encode(d, n) {
3342 ;(Ft.encode(d, n.header), e.fixed32.encode(d, n.callKey), e.fixed32.encode(d, n.streamKey))
3368 ;(Mt.encode(d, n.header), e.fixed32.encode(d, n.callKey), e.fixed32.encode(d, n.streamKey))
33433369 },
33443370 decode: (d) => ({
3345 header: Ft.decode(d),
3371 header: Mt.decode(d),
33463372 callKey: e.fixed32.decode(d),
33473373 streamKey: e.fixed32.decode(d),
33483374 }),
……@@ -3472,7 +3498,7 @@ const o = {
34723498 }),
34733499 },
34743500 jt = { Nightly: "Nightly", Internal: "Internal", Production: "Production" },
3475 Vt = {
3501 Ut = {
34763502 preencode(e, d) {
34773503 e.end++
34783504 },
……@@ -3504,64 +3530,85 @@ const o = {
35043530 }
35053531 },
35063532 },
3507 Ot = _,
3508 Jt = {
3533 Vt = _,
3534 Ot = {
35093535 preencode(e, d) {
3510 Ot.preencode(e, d.header)
3536 Vt.preencode(e, d.header)
35113537 },
35123538 encode(e, d) {
3513 Ot.encode(e, d.header)
3539 Vt.encode(e, d.header)
35143540 },
3515 decode: (e) => ({ header: Ot.decode(e) }),
3541 decode: (e) => ({ header: Vt.decode(e) }),
35163542 },
3517 Ut = _,
3543 Jt = _,
35183544 Ht = {
35193545 preencode(e, d) {
3520 Ut.preencode(e, d.header)
3546 Jt.preencode(e, d.header)
35213547 },
35223548 encode(e, d) {
3523 Ut.encode(e, d.header)
3549 Jt.encode(e, d.header)
35243550 },
3525 decode: (e) => ({ header: Ut.decode(e) }),
3551 decode: (e) => ({ header: Jt.decode(e) }),
3552 },
3553 zt = _,
3554 Gt = {
3555 preencode(d, n) {
3556 ;(zt.preencode(d, n.header),
3557 e.fixed32.preencode(d, n.deviceKey),
3558 e.buffer.preencode(d, n.deviceProof),
3559 e.buffer.preencode(d, n.writerProof))
3560 },
3561 encode(d, n) {
3562 ;(zt.encode(d, n.header),
3563 e.fixed32.encode(d, n.deviceKey),
3564 e.buffer.encode(d, n.deviceProof),
3565 e.buffer.encode(d, n.writerProof))
3566 },
3567 decode: (d) => ({
3568 header: zt.decode(d),
3569 deviceKey: e.fixed32.decode(d),
3570 deviceProof: e.buffer.decode(d),
3571 writerProof: e.buffer.decode(d),
3572 }),
35263573 },
3527 zt = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({ key: null }) },
3528 Gt = he,
3529 Qt = {
3574 Qt = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({ key: null }) },
3575 Wt = he,
3576 Xt = {
35303577 preencode(d, n) {
3531 ;(e.fixed32.preencode(d, n.id), Gt.preencode(d, n.request))
3578 ;(e.fixed32.preencode(d, n.id), Wt.preencode(d, n.request))
35323579 },
35333580 encode(d, n) {
3534 ;(e.fixed32.encode(d, n.id), Gt.encode(d, n.request))
3581 ;(e.fixed32.encode(d, n.id), Wt.encode(d, n.request))
35353582 },
3536 decode: (d) => ({ deviceKey: null, id: e.fixed32.decode(d), request: Gt.decode(d) }),
3583 decode: (d) => ({ deviceKey: null, id: e.fixed32.decode(d), request: Wt.decode(d) }),
35373584 },
3538 Wt = re,
3539 Xt = ie,
3540 Yt = {
3585 Yt = re,
3586 Zt = ie,
3587 $t = {
35413588 preencode(d, n) {
35423589 ;(e.fixed32.preencode(d, n.memberKey),
3543 Wt.preencode(d, n.status),
3544 ki.preencode(d, n.profile),
3590 Yt.preencode(d, n.status),
3591 gi.preencode(d, n.profile),
35453592 d.end++,
3546 n.invitation && Xt.preencode(d, n.invitation))
3593 n.invitation && Zt.preencode(d, n.invitation))
35473594 },
35483595 encode(d, n) {
35493596 const o = n.invitation ? 1 : 0
35503597 ;(e.fixed32.encode(d, n.memberKey),
3551 Wt.encode(d, n.status),
3552 ki.encode(d, n.profile),
3598 Yt.encode(d, n.status),
3599 gi.encode(d, n.profile),
35533600 e.uint.encode(d, o),
3554 n.invitation && Xt.encode(d, n.invitation))
3601 n.invitation && Zt.encode(d, n.invitation))
35553602 },
35563603 decode: (d) => ({
35573604 key: null,
35583605 memberKey: e.fixed32.decode(d),
3559 status: Wt.decode(d),
3560 profile: ki.decode(d),
3561 invitation: 1 & e.uint.decode(d) ? Xt.decode(d) : null,
3606 status: Yt.decode(d),
3607 profile: gi.decode(d),
3608 invitation: 1 & e.uint.decode(d) ? Zt.decode(d) : null,
35623609 }),
35633610 },
3564 Zt = {
3611 _t = {
35653612 preencode(d, n) {
35663613 ;(d.end++,
35673614 n.profileAttestation && e.buffer.preencode(d, n.profileAttestation),
……@@ -3582,18 +3629,18 @@ const o = {
35823629 }
35833630 },
35843631 },
3585 $t = ad,
3586 _t = ue,
3587 er = {
3632 er = ad,
3633 dr = ue,
3634 nr = {
35883635 preencode(e, d) {
3589 ;($t.preencode(e, d.status), _t.preencode(e, d.profile))
3636 ;(er.preencode(e, d.status), dr.preencode(e, d.profile))
35903637 },
35913638 encode(e, d) {
3592 ;($t.encode(e, d.status), _t.encode(e, d.profile))
3639 ;(er.encode(e, d.status), dr.encode(e, d.profile))
35933640 },
3594 decode: (e) => ({ key: null, status: $t.decode(e), profile: _t.decode(e) }),
3641 decode: (e) => ({ key: null, status: er.decode(e), profile: dr.decode(e) }),
35953642 },
3596 dr = {
3643 or = {
35973644 preencode(d, n) {
35983645 e.uint.preencode(d, n.mentions)
35993646 },
……@@ -3602,25 +3649,25 @@ const o = {
36023649 },
36033650 decode: (d) => ({ key: null, mentions: e.uint.decode(d) }),
36043651 },
3605 nr = Ce,
3606 or = Le,
3607 cr = {
3652 cr = Ce,
3653 tr = Le,
3654 rr = {
36083655 preencode(e, d) {
3609 ;(nr.preencode(e, d.response),
3610 or.preencode(e, d.metadata),
3656 ;(cr.preencode(e, d.response),
3657 tr.preencode(e, d.metadata),
36113658 e.end++,
36123659 d.anchor && o.preencode(e, d.anchor))
36133660 },
36143661 encode(d, n) {
36153662 const c = (n.anchor ? 1 : 0) | (n.isActive ? 2 : 0)
3616 ;(nr.encode(d, n.response),
3617 or.encode(d, n.metadata),
3663 ;(cr.encode(d, n.response),
3664 tr.encode(d, n.metadata),
36183665 e.uint.encode(d, c),
36193666 n.anchor && o.encode(d, n.anchor))
36203667 },
36213668 decode(d) {
3622 const n = nr.decode(d),
3623 c = or.decode(d),
3669 const n = cr.decode(d),
3670 c = tr.decode(d),
36243671 t = e.uint.decode(d)
36253672 return {
36263673 id: null,
……@@ -3631,20 +3678,20 @@ const o = {
36313678 }
36323679 },
36333680 },
3634 tr = mn,
3635 rr = {
3681 ir = mn,
3682 ar = {
36363683 preencode(d, n) {
36373684 ;(e.uint.preencode(d, n.count),
36383685 d.end++,
36393686 n.parent && c.preencode(d, n.parent),
3640 n.stats && tr.preencode(d, n.stats))
3687 n.stats && ir.preencode(d, n.stats))
36413688 },
36423689 encode(d, n) {
36433690 const o = (n.parent ? 1 : 0) | (n.stats ? 2 : 0)
36443691 ;(e.uint.encode(d, n.count),
36453692 e.uint.encode(d, o),
36463693 n.parent && c.encode(d, n.parent),
3647 n.stats && tr.encode(d, n.stats))
3694 n.stats && ir.encode(d, n.stats))
36483695 },
36493696 decode(d) {
36503697 const n = e.uint.decode(d),
……@@ -3653,15 +3700,15 @@ const o = {
36533700 id: 0,
36543701 count: n,
36553702 parent: 1 & o ? c.decode(d) : null,
3656 stats: 2 & o ? tr.decode(d) : null,
3703 stats: 2 & o ? ir.decode(d) : null,
36573704 }
36583705 },
36593706 },
3660 ir = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({ thread: 0, index: 0 }) },
3661 ar = bn,
3662 sr = xn,
3663 pr = kn,
3664 ur = {
3707 sr = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({ thread: 0, index: 0 }) },
3708 pr = bn,
3709 ur = xn,
3710 lr = kn,
3711 fr = {
36653712 preencode(d, n) {
36663713 ;(fn.preencode(d, n.id),
36673714 c.preencode(d, n.oplog),
……@@ -3669,9 +3716,9 @@ const o = {
36693716 e.uint.preencode(d, n.timestamp),
36703717 d.end++,
36713718 n.editedAt && e.uint.preencode(d, n.editedAt),
3672 ar.preencode(d, n.status),
3673 n.message && sr.preencode(d, n.message),
3674 n.event && pr.preencode(d, n.event))
3719 pr.preencode(d, n.status),
3720 n.message && ur.preencode(d, n.message),
3721 n.event && lr.preencode(d, n.event))
36753722 },
36763723 encode(d, n) {
36773724 const o = (n.editedAt ? 1 : 0) | (n.message ? 2 : 0) | (n.event ? 4 : 0)
……@@ -3681,9 +3728,9 @@ const o = {
36813728 e.uint.encode(d, n.timestamp),
36823729 e.uint.encode(d, o),
36833730 n.editedAt && e.uint.encode(d, n.editedAt),
3684 ar.encode(d, n.status),
3685 n.message && sr.encode(d, n.message),
3686 n.event && pr.encode(d, n.event))
3731 pr.encode(d, n.status),
3732 n.message && ur.encode(d, n.message),
3733 n.event && lr.encode(d, n.event))
36873734 },
36883735 decode(d) {
36893736 const n = fn.decode(d),
……@@ -3697,19 +3744,19 @@ const o = {
36973744 clock: t,
36983745 timestamp: r,
36993746 editedAt: 1 & i ? e.uint.decode(d) : 0,
3700 status: ar.decode(d),
3701 message: 2 & i ? sr.decode(d) : null,
3702 event: 4 & i ? pr.decode(d) : null,
3747 status: pr.decode(d),
3748 message: 2 & i ? ur.decode(d) : null,
3749 event: 4 & i ? lr.decode(d) : null,
37033750 }
37043751 },
37053752 },
3706 lr = ir,
3707 fr = En,
3708 mr = {
3753 mr = sr,
3754 yr = En,
3755 br = {
37093756 preencode(d, o) {
37103757 ;(fn.preencode(d, o.id),
37113758 e.uint.preencode(d, o.total),
3712 fr.preencode(d, o.reactions),
3759 yr.preencode(d, o.reactions),
37133760 d.end++,
37143761 n >= 11 && o.editedAt && e.uint.preencode(d, o.editedAt))
37153762 },
……@@ -3717,20 +3764,20 @@ const o = {
37173764 const c = n >= 11 && o.editedAt ? 1 : 0
37183765 ;(fn.encode(d, o.id),
37193766 e.uint.encode(d, o.total),
3720 fr.encode(d, o.reactions),
3767 yr.encode(d, o.reactions),
37213768 e.uint.encode(d, c),
37223769 n >= 11 && o.editedAt && e.uint.encode(d, o.editedAt))
37233770 },
37243771 decode(d) {
37253772 const o = fn.decode(d),
37263773 c = e.uint.decode(d),
3727 t = fr.decode(d),
3774 t = yr.decode(d),
37283775 r = d.start < d.end ? e.uint.decode(d) : 0
37293776 return { id: o, total: c, reactions: t, editedAt: n >= 11 && 1 & r ? e.uint.decode(d) : 0 }
37303777 },
37313778 },
3732 yr = ir,
3733 br = {
3779 xr = sr,
3780 kr = {
37343781 preencode(d, n) {
37353782 ;(fn.preencode(d, n.id), e.uint.preencode(d, n.clock))
37363783 },
……@@ -3739,28 +3786,28 @@ const o = {
37393786 },
37403787 decode: (d) => ({ id: fn.decode(d), sender: null, clock: e.uint.decode(d), reaction: null }),
37413788 },
3742 xr = P,
3743 kr = h,
3744 vr = {
3789 vr = P,
3790 gr = h,
3791 hr = {
37453792 preencode(d, o) {
37463793 ;(c.preencode(d, o.oplog),
3747 xr.preencode(d, o.status),
3748 kr.preencode(d, o.file),
3794 vr.preencode(d, o.status),
3795 gr.preencode(d, o.file),
37493796 d.end++,
37503797 n >= 14 && o.version && e.uint.preencode(d, o.version))
37513798 },
37523799 encode(d, o) {
37533800 const t = n >= 14 && o.version ? 1 : 0
37543801 ;(c.encode(d, o.oplog),
3755 xr.encode(d, o.status),
3756 kr.encode(d, o.file),
3802 vr.encode(d, o.status),
3803 gr.encode(d, o.file),
37573804 e.uint.encode(d, t),
37583805 n >= 14 && o.version && e.uint.encode(d, o.version))
37593806 },
37603807 decode(d) {
37613808 const o = c.decode(d),
3762 t = xr.decode(d),
3763 r = kr.decode(d),
3809 t = vr.decode(d),
3810 r = gr.decode(d),
37643811 i = d.start < d.end ? e.uint.decode(d) : 0
37653812 return {
37663813 id: 0,
……@@ -3771,8 +3818,8 @@ const o = {
37713818 }
37723819 },
37733820 },
3774 gr = go,
3775 hr = {
3821 Kr = go,
3822 wr = {
37763823 preencode(d, c) {
37773824 ;(e.fixed32.preencode(d, c.invitationSeed),
37783825 e.fixed32.preencode(d, c.mailbox),
……@@ -3780,8 +3827,8 @@ const o = {
37803827 o.preencode(d, c.initiator),
37813828 o.preencode(d, c.inviter),
37823829 d.end++,
3783 c.identity && gr.preencode(d, c.identity),
3784 n >= 20 && c.buildType && Vt.preencode(d, c.buildType))
3830 c.identity && Kr.preencode(d, c.identity),
3831 n >= 20 && c.buildType && Ut.preencode(d, c.buildType))
37853832 },
37863833 encode(d, c) {
37873834 const t = (c.identity ? 1 : 0) | (n >= 20 && c.buildType ? 2 : 0)
……@@ -3791,8 +3838,8 @@ const o = {
37913838 o.encode(d, c.initiator),
37923839 o.encode(d, c.inviter),
37933840 e.uint.encode(d, t),
3794 c.identity && gr.encode(d, c.identity),
3795 n >= 20 && c.buildType && Vt.encode(d, c.buildType))
3841 c.identity && Kr.encode(d, c.identity),
3842 n >= 20 && c.buildType && Ut.encode(d, c.buildType))
37963843 },
37973844 decode(d) {
37983845 const c = e.fixed32.decode(d),
……@@ -3808,25 +3855,25 @@ const o = {
38083855 responseKeyPair: i,
38093856 initiator: a,
38103857 inviter: s,
3811 identity: 1 & p ? gr.decode(d) : null,
3812 buildType: n >= 20 && 2 & p ? Vt.decode(d) : null,
3858 identity: 1 & p ? Kr.decode(d) : null,
3859 buildType: n >= 20 && 2 & p ? Ut.decode(d) : null,
38133860 }
38143861 },
38153862 },
3816 Kr = Fo,
3817 wr = Mo,
3818 Ar = go,
3819 Tr = {
3863 Ar = Mo,
3864 Tr = Fo,
3865 Pr = go,
3866 Sr = {
38203867 preencode(d, c) {
38213868 ;(e.buffer.preencode(d, c.encryptionKey),
38223869 e.fixed32.preencode(d, c.mailbox),
3823 Kr.preencode(d, c.status),
3870 Ar.preencode(d, c.status),
38243871 e.uint.preencode(d, c.clock),
38253872 d.end++,
38263873 c.initiator && o.preencode(d, c.initiator),
38273874 c.fastForwardTo && e.fixed32.preencode(d, c.fastForwardTo),
3828 c.identitySwap && wr.preencode(d, c.identitySwap),
3829 n >= 6 && c.identitySwapV2 && Ar.preencode(d, c.identitySwapV2),
3875 c.identitySwap && Tr.preencode(d, c.identitySwap),
3876 n >= 6 && c.identitySwapV2 && Pr.preencode(d, c.identitySwapV2),
38303877 n >= 10 && c.contact && e.fixed32.preencode(d, c.contact))
38313878 },
38323879 encode(d, c) {
……@@ -3838,19 +3885,19 @@ const o = {
38383885 (n >= 10 && c.contact ? 16 : 0)
38393886 ;(e.buffer.encode(d, c.encryptionKey),
38403887 e.fixed32.encode(d, c.mailbox),
3841 Kr.encode(d, c.status),
3888 Ar.encode(d, c.status),
38423889 e.uint.encode(d, c.clock),
38433890 e.uint.encode(d, t),
38443891 c.initiator && o.encode(d, c.initiator),
38453892 c.fastForwardTo && e.fixed32.encode(d, c.fastForwardTo),
3846 c.identitySwap && wr.encode(d, c.identitySwap),
3847 n >= 6 && c.identitySwapV2 && Ar.encode(d, c.identitySwapV2),
3893 c.identitySwap && Tr.encode(d, c.identitySwap),
3894 n >= 6 && c.identitySwapV2 && Pr.encode(d, c.identitySwapV2),
38483895 n >= 10 && c.contact && e.fixed32.encode(d, c.contact))
38493896 },
38503897 decode(d) {
38513898 const c = e.buffer.decode(d),
38523899 t = e.fixed32.decode(d),
3853 r = Kr.decode(d),
3900 r = Ar.decode(d),
38543901 i = e.uint.decode(d),
38553902 a = e.uint.decode(d)
38563903 return {
……@@ -3861,16 +3908,16 @@ const o = {
38613908 clock: i,
38623909 initiator: 1 & a ? o.decode(d) : null,
38633910 fastForwardTo: 2 & a ? e.fixed32.decode(d) : null,
3864 identitySwap: 4 & a ? wr.decode(d) : null,
3865 identitySwapV2: n >= 6 && 8 & a ? Ar.decode(d) : null,
3911 identitySwap: 4 & a ? Tr.decode(d) : null,
3912 identitySwapV2: n >= 6 && 8 & a ? Pr.decode(d) : null,
38663913 contact: n >= 10 && 16 & a ? e.fixed32.decode(d) : null,
38673914 }
38683915 },
38693916 },
3870 Pr = {
3917 Rr = {
38713918 preencode(d, n) {
38723919 ;(e.uint.preencode(d, n.clock),
3873 vi.preencode(d, n.status),
3920 hi.preencode(d, n.status),
38743921 d.end++,
38753922 n.mailbox && e.fixed32.preencode(d, n.mailbox),
38763923 n.roomKey && e.fixed32.preencode(d, n.roomKey))
……@@ -3878,14 +3925,14 @@ const o = {
38783925 encode(d, n) {
38793926 const o = (n.mailbox ? 1 : 0) | (n.roomKey ? 2 : 0)
38803927 ;(e.uint.encode(d, n.clock),
3881 vi.encode(d, n.status),
3928 hi.encode(d, n.status),
38823929 e.uint.encode(d, o),
38833930 n.mailbox && e.fixed32.encode(d, n.mailbox),
38843931 n.roomKey && e.fixed32.encode(d, n.roomKey))
38853932 },
38863933 decode(d) {
38873934 const n = e.uint.decode(d),
3888 o = vi.decode(d),
3935 o = hi.decode(d),
38893936 c = e.uint.decode(d)
38903937 return {
38913938 memberKey: null,
……@@ -3896,15 +3943,15 @@ const o = {
38963943 }
38973944 },
38983945 },
3899 Sr = ue,
3900 Rr = cc,
3901 Cr = _o,
3902 Dr = {
3946 Cr = ue,
3947 Dr = cc,
3948 Mr = _o,
3949 Fr = {
39033950 preencode(d, o) {
39043951 ;(e.uint.preencode(d, o.clock),
3905 Sr.preencode(d, o.sender),
3906 Rr.preencode(d, o.status),
3907 Cr.preencode(d, o.keys),
3952 Cr.preencode(d, o.sender),
3953 Dr.preencode(d, o.status),
3954 Mr.preencode(d, o.keys),
39083955 e.fixed32.preencode(d, o.mailbox),
39093956 d.end++,
39103957 o.message && e.string.preencode(d, o.message),
……@@ -3913,9 +3960,9 @@ const o = {
39133960 encode(d, o) {
39143961 const c = (o.message ? 1 : 0) | (n >= 11 && o.sentAt ? 2 : 0)
39153962 ;(e.uint.encode(d, o.clock),
3916 Sr.encode(d, o.sender),
3917 Rr.encode(d, o.status),
3918 Cr.encode(d, o.keys),
3963 Cr.encode(d, o.sender),
3964 Dr.encode(d, o.status),
3965 Mr.encode(d, o.keys),
39193966 e.fixed32.encode(d, o.mailbox),
39203967 e.uint.encode(d, c),
39213968 o.message && e.string.encode(d, o.message),
……@@ -3923,9 +3970,9 @@ const o = {
39233970 },
39243971 decode(d) {
39253972 const o = e.uint.decode(d),
3926 c = Sr.decode(d),
3927 t = Rr.decode(d),
3928 r = Cr.decode(d),
3973 c = Cr.decode(d),
3974 t = Dr.decode(d),
3975 r = Mr.decode(d),
39293976 i = e.fixed32.decode(d),
39303977 a = e.uint.decode(d)
39313978 return {
……@@ -3940,7 +3987,7 @@ const o = {
39403987 }
39413988 },
39423989 },
3943 Fr = {
3990 qr = {
39443991 preencode(d, n) {
39453992 e.uint.preencode(d, n.value)
39463993 },
……@@ -3949,7 +3996,7 @@ const o = {
39493996 },
39503997 decode: (d) => ({ key: 0, value: e.uint.decode(d) }),
39513998 },
3952 Mr = {
3999 Lr = {
39534000 preencode(d, n) {
39544001 ;(ce.preencode(d, n.privateProfileIdentity), e.buffer.preencode(d, n.deviceProof))
39554002 },
……@@ -3962,7 +4009,7 @@ const o = {
39624009 deviceProof: e.buffer.decode(d),
39634010 }),
39644011 },
3965 qr = {
4012 Ir = {
39664013 preencode(d, n) {
39674014 ;(d.end++,
39684015 n.encryptionKey && e.buffer.preencode(d, n.encryptionKey),
……@@ -3983,15 +4030,15 @@ const o = {
39834030 }
39844031 },
39854032 },
3986 Lr = ue,
3987 Ir = cc,
3988 Er = _o,
3989 Br = {
4033 Er = ue,
4034 Br = cc,
4035 Nr = _o,
4036 jr = {
39904037 preencode(d, o) {
39914038 ;(e.uint.preencode(d, o.clock),
3992 Lr.preencode(d, o.sender),
3993 Ir.preencode(d, o.status),
3994 Er.preencode(d, o.keys),
4039 Er.preencode(d, o.sender),
4040 Br.preencode(d, o.status),
4041 Nr.preencode(d, o.keys),
39954042 e.fixed32.preencode(d, o.mailbox),
39964043 d.end++,
39974044 o.message && e.string.preencode(d, o.message),
……@@ -4000,9 +4047,9 @@ const o = {
40004047 encode(d, o) {
40014048 const c = (o.message ? 1 : 0) | (n >= 11 && o.sentAt ? 2 : 0)
40024049 ;(e.uint.encode(d, o.clock),
4003 Lr.encode(d, o.sender),
4004 Ir.encode(d, o.status),
4005 Er.encode(d, o.keys),
4050 Er.encode(d, o.sender),
4051 Br.encode(d, o.status),
4052 Nr.encode(d, o.keys),
40064053 e.fixed32.encode(d, o.mailbox),
40074054 e.uint.encode(d, c),
40084055 o.message && e.string.encode(d, o.message),
……@@ -4010,9 +4057,9 @@ const o = {
40104057 },
40114058 decode(d) {
40124059 const o = e.uint.decode(d),
4013 c = Lr.decode(d),
4014 t = Ir.decode(d),
4015 r = Er.decode(d),
4060 c = Er.decode(d),
4061 t = Br.decode(d),
4062 r = Nr.decode(d),
40164063 i = e.fixed32.decode(d),
40174064 a = e.uint.decode(d)
40184065 return {
……@@ -4027,7 +4074,7 @@ const o = {
40274074 }
40284075 },
40294076 },
4030 Nr = {
4077 Ur = {
40314078 preencode(d, n) {
40324079 e.fixed32.preencode(d, n.key)
40334080 },
……@@ -4036,8 +4083,8 @@ const o = {
40364083 },
40374084 decode: (d) => ({ deviceKey: null, key: e.fixed32.decode(d) }),
40384085 },
4039 jr = ir,
4040 Vr = {
4086 Vr = sr,
4087 Or = {
40414088 preencode(d, n) {
40424089 ;(fn.preencode(d, n.id), e.uint.preencode(d, n.clock))
40434090 },
……@@ -4046,13 +4093,13 @@ const o = {
40464093 },
40474094 decode: (d) => ({ id: fn.decode(d), sender: null, clock: e.uint.decode(d), label: 0 }),
40484095 },
4049 Or = ir,
4050 Jr = $c,
4051 Ur = {
4096 Jr = sr,
4097 Hr = $c,
4098 zr = {
40524099 preencode(d, o) {
40534100 ;(fn.preencode(d, o.id),
40544101 e.uint.preencode(d, o.total),
4055 Jr.preencode(d, o.labels),
4102 Hr.preencode(d, o.labels),
40564103 e.uint.preencode(d, o.editedAt),
40574104 d.end++,
40584105 n >= 15 && o.flagsClock && e.uint.preencode(d, o.flagsClock),
……@@ -4065,7 +4112,7 @@ const o = {
40654112 (n >= 16 && o.isDeleted ? 4 : 0)
40664113 ;(fn.encode(d, o.id),
40674114 e.uint.encode(d, o.total),
4068 Jr.encode(d, o.labels),
4115 Hr.encode(d, o.labels),
40694116 e.uint.encode(d, o.editedAt),
40704117 e.uint.encode(d, c),
40714118 n >= 15 && o.flagsClock && e.uint.encode(d, o.flagsClock),
……@@ -4074,7 +4121,7 @@ const o = {
40744121 decode(d) {
40754122 const o = fn.decode(d),
40764123 c = e.uint.decode(d),
4077 t = Jr.decode(d),
4124 t = Hr.decode(d),
40784125 r = e.uint.decode(d),
40794126 i = d.start < d.end ? e.uint.decode(d) : 0
40804127 return {
……@@ -4088,7 +4135,7 @@ const o = {
40884135 }
40894136 },
40904137 },
4091 Hr = {
4138 Gr = {
40924139 preencode(d, n) {
40934140 e.uint.preencode(d, n.length)
40944141 },
……@@ -4097,8 +4144,8 @@ const o = {
40974144 },
40984145 decode: (d) => ({ memberKey: null, length: e.uint.decode(d) }),
40994146 },
4100 zr = zt,
4101 Gr = {
4147 Qr = Qt,
4148 Wr = {
41024149 preencode(d, n) {
41034150 e.uint.preencode(d, n.clock)
41044151 },
……@@ -4107,29 +4154,29 @@ const o = {
41074154 },
41084155 decode: (d) => ({ key: null, sender: null, clock: e.uint.decode(d), label: 0 }),
41094156 },
4110 Qr = bt,
4111 Wr = {
4157 Xr = bt,
4158 Yr = {
41124159 preencode(d, n) {
41134160 ;(e.uint.preencode(d, n.total),
4114 Qr.preencode(d, n.labels),
4161 Xr.preencode(d, n.labels),
41154162 e.uint.preencode(d, n.editedAt),
41164163 e.uint.preencode(d, n.flagsClock))
41174164 },
41184165 encode(d, n) {
41194166 ;(e.uint.encode(d, n.total),
4120 Qr.encode(d, n.labels),
4167 Xr.encode(d, n.labels),
41214168 e.uint.encode(d, n.editedAt),
41224169 e.uint.encode(d, n.flagsClock))
41234170 },
41244171 decode: (d) => ({
41254172 key: null,
41264173 total: e.uint.decode(d),
4127 labels: Qr.decode(d),
4174 labels: Xr.decode(d),
41284175 editedAt: e.uint.decode(d),
41294176 flagsClock: e.uint.decode(d),
41304177 }),
41314178 },
4132 Xr = {
4179 Zr = {
41334180 preencode(d, o) {
41344181 ;(e.buffer.preencode(d, o.encryptionKey),
41354182 e.uint.preencode(d, o.createdAt),
……@@ -4164,7 +4211,7 @@ const o = {
41644211 }
41654212 },
41664213 },
4167 Yr = {
4214 $r = {
41684215 preencode(d, n) {
41694216 e.uint.preencode(d, n.createdAt)
41704217 },
……@@ -4173,7 +4220,7 @@ const o = {
41734220 },
41744221 decode: (d) => ({ callKey: null, memberKey: null, createdAt: e.uint.decode(d) }),
41754222 },
4176 Zr = {
4223 _r = {
41774224 preencode(d, o) {
41784225 ;(e.fixed32.preencode(d, o.memberKey),
41794226 e.uint.preencode(d, o.createdAt),
……@@ -4200,7 +4247,7 @@ const o = {
42004247 }
42014248 },
42024249 },
4203 $r = {
4250 ei = {
42044251 preencode(d, n) {
42054252 ;(e.fixed32.preencode(d, n.deviceKey), e.uint.preencode(d, n.createdAt))
42064253 },
……@@ -4214,40 +4261,40 @@ const o = {
42144261 createdAt: e.uint.decode(d),
42154262 }),
42164263 },
4217 _r = Nr,
4218 ei = e.frame(A),
4219 di = ei,
4220 ni = e.array(Ec),
4221 oi = e.frame(pe),
4222 ci = ei,
4223 ti = oi,
4224 ri = e.frame(Kc),
4225 ii = oi,
4226 ai = e.frame(md),
4227 si = e.frame(bc),
4228 pi = e.frame(kt),
4229 ui = pi,
4230 li = e.array(e.frame(Nc)),
4231 fi = ei,
4232 mi = e.frame(Jo),
4233 yi = mi,
4234 bi = mi,
4235 xi = ei,
4236 ki = oi,
4237 vi = mi
4238function gi(e) {
4264 di = Ur,
4265 ni = e.frame(A),
4266 oi = ni,
4267 ci = e.array(Ec),
4268 ti = e.frame(pe),
4269 ri = ni,
4270 ii = ti,
4271 ai = e.frame(Kc),
4272 si = ti,
4273 pi = e.frame(md),
4274 ui = e.frame(bc),
4275 li = e.frame(kt),
4276 fi = li,
4277 mi = e.array(e.frame(Nc)),
4278 yi = ni,
4279 bi = e.frame(Oo),
4280 xi = bi,
4281 ki = bi,
4282 vi = ni,
4283 gi = ti,
4284 hi = bi
4285function Ki(e) {
42394286 n = e
42404287}
4241function hi(d, o, c = 20) {
4242 return ((n = c), e.encode(Ai(d), o))
4288function wi(d, o, c = 21) {
4289 return ((n = c), e.encode(Pi(d), o))
42434290}
4244function Ki(d, o, c = 20) {
4245 return ((n = c), e.decode(Ai(d), o))
4291function Ai(d, o, c = 21) {
4292 return ((n = c), e.decode(Pi(d), o))
42464293}
4247function wi(e) {
4294function Ti(e) {
42484295 switch (e) {
42494296 case "@keet/room-type":
4250 return J
4297 return O
42514298 case "@keet/display-type":
42524299 return Pc
42534300 case "@keet/system-settings-keys":
……@@ -4266,7 +4313,7 @@ function wi(e) {
42664313 throw new Error("Enum not found " + e)
42674314 }
42684315}
4269function Ai(e) {
4316function Pi(e) {
42704317 switch (e) {
42714318 case "@keet/head":
42724319 return o
……@@ -4305,9 +4352,9 @@ function Ai(e) {
43054352 case "@keet/member-status":
43064353 return D
43074354 case "@keet/member-moderation-status":
4308 return F
4309 case "@keet/abi":
43104355 return M
4356 case "@keet/abi":
4357 return F
43114358 case "@keet/device-stats":
43124359 return q
43134360 case "@keet/member-stats":
……@@ -4317,9 +4364,9 @@ function Ai(e) {
43174364 case "@keet/file-stats":
43184365 return E
43194366 case "@keet/stats":
4320 return O
4367 return V
43214368 case "@keet/room-type":
4322 return U
4369 return J
43234370 case "@keet/system-settings":
43244371 return H
43254372 case "@keet/system-digest":
……@@ -4365,21 +4412,21 @@ function Ai(e) {
43654412 case "@keet/device-request":
43664413 return Re
43674414 case "@keet/device-response":
4368 return Fe
4369 case "@keet/invitation-metadata":
43704415 return Me
4416 case "@keet/invitation-metadata":
4417 return Fe
43714418 case "@keet/invitation":
43724419 return Ie
43734420 case "@keet/add-invitation-operation":
43744421 return Ne
43754422 case "@keet/remove-invitation-operation":
4376 return Ve
4423 return Ue
43774424 case "@keet/sendable-room-invitation":
4378 return Oe
4425 return Ve
43794426 case "@keet/sendable-identity-invitation":
4380 return Je
4427 return Oe
43814428 case "@keet/sendable-contact-invitation":
4382 return Ue
4429 return Je
43834430 case "@keet/sendable-invitation":
43844431 return We
43854432 case "@keet/add-device-operation":
……@@ -4419,7 +4466,7 @@ function Ai(e) {
44194466 case "@keet/title-changed-chat-event":
44204467 return Rd
44214468 case "@keet/chat-event":
4422 return Md
4469 return Fd
44234470 case "@keet/sendable-event":
44244471 return qd
44254472 case "@keet/display-range":
……@@ -4429,7 +4476,7 @@ function Ai(e) {
44294476 case "@keet/mention-display-item":
44304477 return Nd
44314478 case "@keet/link-preview":
4432 return Od
4479 return Vd
44334480 case "@keet/display-link-item":
44344481 return Hd
44354482 case "@keet/display":
……@@ -4455,7 +4502,7 @@ function Ai(e) {
44554502 case "@keet/remove-chat-message-operation":
44564503 return Rn
44574504 case "@keet/update-chat-message-operation":
4458 return Fn
4505 return Mn
44594506 case "@keet/pin-chat-message-operation":
44604507 return qn
44614508 case "@keet/reaction":
……@@ -4467,7 +4514,7 @@ function Ai(e) {
44674514 case "@keet/add-reaction-operation":
44684515 return jn
44694516 case "@keet/remove-reaction-operation":
4470 return On
4517 return Vn
44714518 case "@keet/update-room-config-operation":
44724519 return Hn
44734520 case "@keet/group-member":
……@@ -4517,11 +4564,11 @@ function Ai(e) {
45174564 case "@keet-private-id/remove-room-operation":
45184565 return No
45194566 case "@keet-private-id/update-room-status-operation":
4520 return Oo
4567 return Vo
45214568 case "@keet-private-id/contact-status":
4522 return Jo
4569 return Oo
45234570 case "@keet-private-id/contact-record":
4524 return Uo
4571 return Jo
45254572 case "@keet-private-id/add-contact-operation":
45264573 return Go
45274574 case "@keet-private-id/update-contact-status-operation":
……@@ -4567,7 +4614,7 @@ function Ai(e) {
45674614 case "@keet/test-collection-record-1":
45684615 return Dc
45694616 case "@keet/migrate-abi-operation":
4570 return Mc
4617 return Fc
45714618 case "@keet/system-settings-keys":
45724619 return Lc
45734620 case "@keet/room-supported-language":
……@@ -4577,9 +4624,9 @@ function Ai(e) {
45774624 case "@keet-private-id/unreads":
45784625 return jc
45794626 case "@keet-private-id/add-unreads-key-operation":
4580 return Oc
4627 return Vc
45814628 case "@keet-private-id/remove-unreads-key-operation":
4582 return Uc
4629 return Jc
45834630 case "@keet/label-type":
45844631 return zc
45854632 case "@keet/chat-label":
……@@ -4627,7 +4674,7 @@ function Ai(e) {
46274674 case "@keet/end-call":
46284675 return Dt
46294676 case "@keet/add-call-stream":
4630 return Mt
4677 return Ft
46314678 case "@keet/remove-call-stream":
46324679 return Lt
46334680 case "@keet/call-record":
……@@ -4639,91 +4686,93 @@ function Ai(e) {
46394686 case "@keet/call-stream-record":
46404687 return Nt
46414688 case "@keet/build-type":
4642 return Vt
4689 return Ut
46434690 case "@keet/test-crash-operation":
4644 return Jt
4691 return Ot
46454692 case "@keet/test-dispatch-error-operation":
46464693 return Ht
4694 case "@keet-private-id/shorten-device-attestation-operation":
4695 return Gt
46474696 case "@keet/blind-peer/hyperdb#1":
4648 return zt
4649 case "@keet/join-request/hyperdb#4":
46504697 return Qt
4698 case "@keet/join-request/hyperdb#4":
4699 return Xt
46514700 case "@keet/device/hyperdb#5":
4652 return Yt
4701 return $t
46534702 case "@keet/member-proofs/hyperdb#10":
4654 return Zt
4703 return _t
46554704 case "@keet/member/hyperdb#11":
4656 return er
4705 return nr
46574706 case "@keet/member-activity/hyperdb#17":
4658 return dr
4707 return or
46594708 case "@keet/invitation/hyperdb#18":
4660 return cr
4661 case "@keet/thread/hyperdb#19":
46624709 return rr
4710 case "@keet/thread/hyperdb#19":
4711 return ar
46634712 case "@keet/message-index-id/hyperdb#21":
4664 return ir
4713 return sr
46654714 case "@keet/chat-message-record/hyperdb#21":
4666 return ur
4715 return fr
46674716 case "@keet/message-index-id/hyperdb#25":
4668 return lr
4669 case "@keet/reactions-digest/hyperdb#25":
46704717 return mr
4718 case "@keet/reactions-digest/hyperdb#25":
4719 return br
46714720 case "@keet/message-index-id/hyperdb#26":
4672 return yr
4721 return xr
46734722 case "@keet/reaction/hyperdb#26":
4674 return br
4723 return kr
46754724 case "@keet/file-record/hyperdb#28":
4676 return vr
4677 case "@keet-private-id/pending-invitation/hyperdb#35":
46784725 return hr
4726 case "@keet-private-id/pending-invitation/hyperdb#35":
4727 return wr
46794728 case "@keet-private-id/room/hyperdb#36":
4680 return Tr
4729 return Sr
46814730 case "@keet-private-id/contact-record/hyperdb#38":
4682 return Pr
4731 return Rr
46834732 case "@keet-private-id/contact-request-record/hyperdb#40":
4684 return Dr
4685 case "@keet/test-collection-record-1/hyperdb#46":
46864733 return Fr
4734 case "@keet/test-collection-record-1/hyperdb#46":
4735 return qr
46874736 case "@keet/device-identity/hyperdb#50":
4688 return Mr
4737 return Lr
46894738 case "@keet/room-keys/hyperdb#51":
4690 return qr
4739 return Ir
46914740 case "@keet-private-id/contact-request-record/hyperdb#51":
4692 return Br
4741 return jr
46934742 case "@keet-private-id/unreads/hyperdb#59":
4694 return Nr
4743 return Ur
46954744 case "@keet/message-index-id/hyperdb#60":
4696 return jr
4697 case "@keet/chat-label/hyperdb#60":
46984745 return Vr
4699 case "@keet/message-index-id/hyperdb#61":
4746 case "@keet/chat-label/hyperdb#60":
47004747 return Or
4748 case "@keet/message-index-id/hyperdb#61":
4749 return Jr
47014750 case "@keet/chat-label-digest/hyperdb#61":
4702 return Ur
4751 return zr
47034752 case "@keet/read-length/hyperdb#62":
4704 return Hr
4753 return Gr
47054754 case "@keet/tmp-removed-member/hyperdb#63":
4706 return zr
4755 return Qr
47074756 case "@keet/member-label/hyperdb#66":
4708 return Gr
4709 case "@keet/member-label-digest/hyperdb#67":
47104757 return Wr
4758 case "@keet/member-label-digest/hyperdb#67":
4759 return Yr
47114760 case "@keet/call-record/hyperdb#69":
4712 return Xr
4761 return Zr
47134762 case "@keet/call-member-record/hyperdb#72":
4714 return Yr
4763 return $r
47154764 case "@keet/call-device-record/hyperdb#73":
4716 return Zr
4765 return _r
47174766 case "@keet/call-stream-record/hyperdb#75":
4718 return $r
4767 return ei
47194768 case "@keet-private-id/unreads/hyperdb#77":
4720 return _r
4769 return di
47214770 default:
47224771 throw new Error("Encoder not found " + e)
47234772 }
47244773}
4725function Ti(e, d = 20) {
4726 const o = Ai(e)
4774function Si(e, d = 21) {
4775 const o = Pi(e)
47274776 return {
47284777 preencode(e, c) {
47294778 ;((n = d), o.preencode(e, c))
……@@ -4734,14 +4783,14 @@ function Ti(e, d = 20) {
47344783 decode: (e) => ((n = d), o.decode(e)),
47354784 }
47364785}
4737const Pi = Ti
4786const Ri = Si
47384787module.exports = {
4739 resolveStruct: Pi,
4740 getStruct: Ti,
4741 getEnum: wi,
4742 getEncoding: Ai,
4743 encode: hi,
4744 decode: Ki,
4745 setVersion: gi,
4788 resolveStruct: Ri,
4789 getStruct: Si,
4790 getEnum: Ti,
4791 getEncoding: Pi,
4792 encode: wi,
4793 decode: Ai,
4794 setVersion: Ki,
47464795 version: n,
47474796}
@holepunchto/keet-core/schema/spec/contract/hyperdispatch/dispatch.json +7 -1
……@@ -1,5 +1,5 @@
11{
2 "version": 12,
2 "version": 13,
33 "offset": 2,
44 "schema": [
55 {
……@@ -349,6 +349,12 @@
349349 "name": "@keet/test-dispatch-error",
350350 "requestType": "@keet/test-dispatch-error-operation",
351351 "version": 12
352 },
353 {
354 "id": 60,
355 "name": "@keet-private-id/shorten-device-attestation",
356 "requestType": "@keet-private-id/shorten-device-attestation-operation",
357 "version": 13
352358 }
353359 ]
354360}
@holepunchto/keet-core/schema/spec/contract/hyperdispatch/index.js +32 -13
……@@ -61,7 +61,8 @@ class h {
6161 (this._handler57 = null),
6262 (this._handler58 = null),
6363 (this._handler59 = null),
64 (this._missing = 58))
64 (this._handler60 = null),
65 (this._missing = 59))
6566 }
6667 add(e, t) {
6768 switch (e) {
……@@ -239,6 +240,9 @@ class h {
239240 case "@keet/test-dispatch-error":
240241 this._handler59 = t
241242 break
243 case "@keet-private-id/shorten-device-attestation":
244 this._handler60 = t
245 break
242246 default:
243247 throw r.NONEXISTENT_ROUTE(e)
244248 }
……@@ -311,7 +315,11 @@ class h {
311315 a(null !== this._handler56, 'Missing handler for "@keet/add-call-stream"'),
312316 a(null !== this._handler57, 'Missing handler for "@keet/remove-call-stream"'),
313317 a(null !== this._handler58, 'Missing handler for "@keet/test-crash"'),
314 a(null !== this._handler59, 'Missing handler for "@keet/test-dispatch-error"'))
318 a(null !== this._handler59, 'Missing handler for "@keet/test-dispatch-error"'),
319 a(
320 null !== this._handler60,
321 'Missing handler for "@keet-private-id/shorten-device-attestation"',
322 ))
315323 }
316324 async dispatch(e, a) {
317325 ;(this._missing > 0 && this._checkAll(), d(l))
……@@ -433,6 +441,8 @@ class h {
433441 return this._handler58(n.value, a)
434442 case 59:
435443 return this._handler59(n.value, a)
444 case 60:
445 return this._handler60(n.value, a)
436446 default:
437447 throw r.HANDLER_NOT_FOUND_BY_ID(n.id)
438448 }
……@@ -440,7 +450,7 @@ class h {
440450}
441451function c(a, r, { version: n = l } = {}) {
442452 const i = { buffer: null, start: 0, end: 0 },
443 s = pe(a)
453 s = _e(a)
444454 return (
445455 d(n),
446456 e.uint.preencode(i, s.id),
……@@ -454,7 +464,7 @@ function c(a, r, { version: n = l } = {}) {
454464function u(t, { version: a = l } = {}) {
455465 const r = { buffer: t, start: 0, end: t.length },
456466 n = e.uint.decode(r),
457 i = _e(n)
467 i = ge(n)
458468 d(a)
459469 const s = i.enc.decode(r)
460470 return { id: n, name: i.name, value: s }
……@@ -466,8 +476,8 @@ const o = { name: "@keet/genesis", id: 2, enc: s("@keet/genesis-operation") },
466476 id: 4,
467477 enc: s("@keet/update-system-settings-operation"),
468478 },
469 m = { name: "@keet/add-blind-peer", id: 5, enc: s("@keet/add-blind-peer-operation") },
470 p = { name: "@keet/remove-blind-peer", id: 6, enc: s("@keet/remove-blind-peer-operation") },
479 p = { name: "@keet/add-blind-peer", id: 5, enc: s("@keet/add-blind-peer-operation") },
480 m = { name: "@keet/remove-blind-peer", id: 6, enc: s("@keet/remove-blind-peer-operation") },
471481 _ = { name: "@keet/add-device", id: 7, enc: s("@keet/add-device-operation") },
472482 g = { name: "@keet/update-device", id: 8, enc: s("@keet/update-device-operation") },
473483 b = { name: "@keet/start-indexing", id: 9, enc: s("@keet/start-indexing-operation") },
……@@ -588,8 +598,13 @@ const o = { name: "@keet/genesis", id: 2, enc: s("@keet/genesis-operation") },
588598 oe = { name: "@keet/add-call-stream", id: 56, enc: s("@keet/add-call-stream") },
589599 ke = { name: "@keet/remove-call-stream", id: 57, enc: s("@keet/remove-call-stream") },
590600 ve = { name: "@keet/test-crash", id: 58, enc: s("@keet/test-crash-operation") },
591 me = { name: "@keet/test-dispatch-error", id: 59, enc: s("@keet/test-dispatch-error-operation") }
592function pe(e) {
601 pe = { name: "@keet/test-dispatch-error", id: 59, enc: s("@keet/test-dispatch-error-operation") },
602 me = {
603 name: "@keet-private-id/shorten-device-attestation",
604 id: 60,
605 enc: s("@keet-private-id/shorten-device-attestation-operation"),
606 }
607function _e(e) {
593608 switch (e) {
594609 case "@keet/genesis":
595610 return o
……@@ -598,9 +613,9 @@ function pe(e) {
598613 case "@keet/update-system-settings":
599614 return v
600615 case "@keet/add-blind-peer":
601 return m
602 case "@keet/remove-blind-peer":
603616 return p
617 case "@keet/remove-blind-peer":
618 return m
604619 case "@keet/add-device":
605620 return _
606621 case "@keet/update-device":
……@@ -706,12 +721,14 @@ function pe(e) {
706721 case "@keet/test-crash":
707722 return ve
708723 case "@keet/test-dispatch-error":
724 return pe
725 case "@keet-private-id/shorten-device-attestation":
709726 return me
710727 default:
711728 throw r.ROUTE_NOT_FOUND_BY_NAME(e)
712729 }
713730}
714function _e(e) {
731function ge(e) {
715732 switch (e) {
716733 case 2:
717734 return o
……@@ -720,9 +737,9 @@ function _e(e) {
720737 case 4:
721738 return v
722739 case 5:
723 return m
724 case 6:
725740 return p
741 case 6:
742 return m
726743 case 7:
727744 return _
728745 case 8:
……@@ -828,6 +845,8 @@ function _e(e) {
828845 case 58:
829846 return ve
830847 case 59:
848 return pe
849 case 60:
831850 return me
832851 default:
833852 throw r.HANDLER_NOT_FOUND_BY_ID(e)
@holepunchto/keet-core/schema/spec/contract/hyperdispatch/messages.js +1991 -1942
……@@ -1,87 +1,87 @@
11const { c: e } = require("hyperschema/runtime"),
2 d = 20
3let n = d
4const o = {
5 preencode(d, n) {
6 ;(e.fixed32.preencode(d, n.key), e.uint.preencode(d, n.length))
2 d = 21
3let o = d
4const n = {
5 preencode(d, o) {
6 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.length))
77 },
8 encode(d, n) {
9 ;(e.fixed32.encode(d, n.key), e.uint.encode(d, n.length))
8 encode(d, o) {
9 ;(e.fixed32.encode(d, o.key), e.uint.encode(d, o.length))
1010 },
1111 decode: (d) => ({ key: e.fixed32.decode(d), length: e.uint.decode(d) }),
1212 },
1313 c = {
14 preencode(d, n) {
15 ;(e.fixed32.preencode(d, n.key), e.uint.preencode(d, n.seq))
14 preencode(d, o) {
15 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.seq))
1616 },
17 encode(d, n) {
18 ;(e.fixed32.encode(d, n.key), e.uint.encode(d, n.seq))
17 encode(d, o) {
18 ;(e.fixed32.encode(d, o.key), e.uint.encode(d, o.seq))
1919 },
2020 decode: (d) => ({ key: e.fixed32.decode(d), seq: e.uint.decode(d) }),
2121 },
2222 r = {
23 preencode(d, n) {
24 ;(e.fixed32.preencode(d, n.publicKey), e.fixed32.preencode(d, n.secretKey))
23 preencode(d, o) {
24 ;(e.fixed32.preencode(d, o.publicKey), e.fixed32.preencode(d, o.secretKey))
2525 },
26 encode(d, n) {
27 ;(e.fixed32.encode(d, n.publicKey), e.fixed32.encode(d, n.secretKey))
26 encode(d, o) {
27 ;(e.fixed32.encode(d, o.publicKey), e.fixed32.encode(d, o.secretKey))
2828 },
2929 decode: (d) => ({ publicKey: e.fixed32.decode(d), secretKey: e.fixed32.decode(d) }),
3030 },
3131 t = {
32 preencode(d, n) {
33 ;(e.fixed32.preencode(d, n.publicKey), e.fixed64.preencode(d, n.secretKey))
32 preencode(d, o) {
33 ;(e.fixed32.preencode(d, o.publicKey), e.fixed64.preencode(d, o.secretKey))
3434 },
35 encode(d, n) {
36 ;(e.fixed32.encode(d, n.publicKey), e.fixed64.encode(d, n.secretKey))
35 encode(d, o) {
36 ;(e.fixed32.encode(d, o.publicKey), e.fixed64.encode(d, o.secretKey))
3737 },
3838 decode: (d) => ({ publicKey: e.fixed32.decode(d), secretKey: e.fixed64.decode(d) }),
3939 },
4040 i = {
41 preencode(d, n) {
42 ;(e.fixed32.preencode(d, n.key),
41 preencode(d, o) {
42 ;(e.fixed32.preencode(d, o.key),
4343 d.end++,
44 n.encryptionKey && e.buffer.preencode(d, n.encryptionKey),
45 n.fastForwardTo && e.fixed32.preencode(d, n.fastForwardTo))
44 o.encryptionKey && e.buffer.preencode(d, o.encryptionKey),
45 o.fastForwardTo && e.fixed32.preencode(d, o.fastForwardTo))
4646 },
47 encode(d, n) {
48 const o = (n.encryptionKey ? 1 : 0) | (n.fastForwardTo ? 2 : 0)
49 ;(e.fixed32.encode(d, n.key),
50 e.uint.encode(d, o),
51 n.encryptionKey && e.buffer.encode(d, n.encryptionKey),
52 n.fastForwardTo && e.fixed32.encode(d, n.fastForwardTo))
47 encode(d, o) {
48 const n = (o.encryptionKey ? 1 : 0) | (o.fastForwardTo ? 2 : 0)
49 ;(e.fixed32.encode(d, o.key),
50 e.uint.encode(d, n),
51 o.encryptionKey && e.buffer.encode(d, o.encryptionKey),
52 o.fastForwardTo && e.fixed32.encode(d, o.fastForwardTo))
5353 },
5454 decode(d) {
55 const n = e.fixed32.decode(d),
56 o = e.uint.decode(d)
55 const o = e.fixed32.decode(d),
56 n = e.uint.decode(d)
5757 return {
58 key: n,
59 encryptionKey: 1 & o ? e.buffer.decode(d) : null,
60 fastForwardTo: 2 & o ? e.fixed32.decode(d) : null,
58 key: o,
59 encryptionKey: 1 & n ? e.buffer.decode(d) : null,
60 fastForwardTo: 2 & n ? e.fixed32.decode(d) : null,
6161 }
6262 },
6363 },
6464 a = {
65 preencode(d, n) {
66 e.uint.preencode(d, n.timestamp)
65 preencode(d, o) {
66 e.uint.preencode(d, o.timestamp)
6767 },
68 encode(d, n) {
69 e.uint.encode(d, n.timestamp)
68 encode(d, o) {
69 e.uint.encode(d, o.timestamp)
7070 },
7171 decode: (d) => ({ timestamp: e.uint.decode(d) }),
7272 },
7373 s = {
74 preencode(d, n) {
75 ;(e.uint.preencode(d, n.blockOffset),
76 e.uint.preencode(d, n.blockLength),
77 e.uint.preencode(d, n.byteOffset),
78 e.uint.preencode(d, n.byteLength))
74 preencode(d, o) {
75 ;(e.uint.preencode(d, o.blockOffset),
76 e.uint.preencode(d, o.blockLength),
77 e.uint.preencode(d, o.byteOffset),
78 e.uint.preencode(d, o.byteLength))
7979 },
80 encode(d, n) {
81 ;(e.uint.encode(d, n.blockOffset),
82 e.uint.encode(d, n.blockLength),
83 e.uint.encode(d, n.byteOffset),
84 e.uint.encode(d, n.byteLength))
80 encode(d, o) {
81 ;(e.uint.encode(d, o.blockOffset),
82 e.uint.encode(d, o.blockLength),
83 e.uint.encode(d, o.byteOffset),
84 e.uint.encode(d, o.byteLength))
8585 },
8686 decode: (d) => ({
8787 blockOffset: e.uint.decode(d),
……@@ -91,63 +91,63 @@ const o = {
9191 }),
9292 },
9393 p = {
94 preencode(d, n) {
95 ;(e.uint.preencode(d, n.width), e.uint.preencode(d, n.height))
94 preencode(d, o) {
95 ;(e.uint.preencode(d, o.width), e.uint.preencode(d, o.height))
9696 },
97 encode(d, n) {
98 ;(e.uint.encode(d, n.width), e.uint.encode(d, n.height))
97 encode(d, o) {
98 ;(e.uint.encode(d, o.width), e.uint.encode(d, o.height))
9999 },
100100 decode: (d) => ({ width: e.uint.decode(d), height: e.uint.decode(d) }),
101101 },
102102 u = e.frame(p),
103103 l = {
104 preencode(d, n) {
104 preencode(d, o) {
105105 ;(d.end++,
106 n.name && e.string.preencode(d, n.name),
107 n.mimetype && e.string.preencode(d, n.mimetype),
108 n.dimensions && u.preencode(d, n.dimensions),
109 n.userdata && e.buffer.preencode(d, n.userdata),
110 n.duration && e.uint.preencode(d, n.duration))
106 o.name && e.string.preencode(d, o.name),
107 o.mimetype && e.string.preencode(d, o.mimetype),
108 o.dimensions && u.preencode(d, o.dimensions),
109 o.userdata && e.buffer.preencode(d, o.userdata),
110 o.duration && e.uint.preencode(d, o.duration))
111111 },
112 encode(d, n) {
113 const o =
114 (n.name ? 1 : 0) |
115 (n.mimetype ? 2 : 0) |
116 (n.dimensions ? 4 : 0) |
117 (n.userdata ? 8 : 0) |
118 (n.duration ? 16 : 0) |
119 (n.isPreview ? 32 : 0)
120 ;(e.uint.encode(d, o),
121 n.name && e.string.encode(d, n.name),
122 n.mimetype && e.string.encode(d, n.mimetype),
123 n.dimensions && u.encode(d, n.dimensions),
124 n.userdata && e.buffer.encode(d, n.userdata),
125 n.duration && e.uint.encode(d, n.duration))
112 encode(d, o) {
113 const n =
114 (o.name ? 1 : 0) |
115 (o.mimetype ? 2 : 0) |
116 (o.dimensions ? 4 : 0) |
117 (o.userdata ? 8 : 0) |
118 (o.duration ? 16 : 0) |
119 (o.isPreview ? 32 : 0)
120 ;(e.uint.encode(d, n),
121 o.name && e.string.encode(d, o.name),
122 o.mimetype && e.string.encode(d, o.mimetype),
123 o.dimensions && u.encode(d, o.dimensions),
124 o.userdata && e.buffer.encode(d, o.userdata),
125 o.duration && e.uint.encode(d, o.duration))
126126 },
127127 decode(d) {
128 const n = e.uint.decode(d)
128 const o = e.uint.decode(d)
129129 return {
130 name: 1 & n ? e.string.decode(d) : null,
131 mimetype: 2 & n ? e.string.decode(d) : null,
132 dimensions: 4 & n ? u.decode(d) : null,
133 userdata: 8 & n ? e.buffer.decode(d) : null,
134 duration: 16 & n ? e.uint.decode(d) : 0,
135 isPreview: !!(32 & n),
130 name: 1 & o ? e.string.decode(d) : null,
131 mimetype: 2 & o ? e.string.decode(d) : null,
132 dimensions: 4 & o ? u.decode(d) : null,
133 userdata: 8 & o ? e.buffer.decode(d) : null,
134 duration: 16 & o ? e.uint.decode(d) : 0,
135 isPreview: !!(32 & o),
136136 }
137137 },
138138 },
139139 f = {
140 preencode(d, n) {
141 ;(e.fixed32.preencode(d, n.key),
142 e.string.preencode(d, n.path),
143 e.uint.preencode(d, n.version),
144 e.uint.preencode(d, n.size))
140 preencode(d, o) {
141 ;(e.fixed32.preencode(d, o.key),
142 e.string.preencode(d, o.path),
143 e.uint.preencode(d, o.version),
144 e.uint.preencode(d, o.size))
145145 },
146 encode(d, n) {
147 ;(e.fixed32.encode(d, n.key),
148 e.string.encode(d, n.path),
149 e.uint.encode(d, n.version),
150 e.uint.encode(d, n.size))
146 encode(d, o) {
147 ;(e.fixed32.encode(d, o.key),
148 e.string.encode(d, o.path),
149 e.uint.encode(d, o.version),
150 e.uint.encode(d, o.size))
151151 },
152152 decode: (d) => ({
153153 key: e.fixed32.decode(d),
……@@ -157,72 +157,72 @@ const o = {
157157 }),
158158 },
159159 m = {
160 preencode(d, n) {
161 ;(e.fixed32.preencode(d, n.key), s.preencode(d, n.blob))
160 preencode(d, o) {
161 ;(e.fixed32.preencode(d, o.key), s.preencode(d, o.blob))
162162 },
163 encode(d, n) {
164 ;(e.fixed32.encode(d, n.key), s.encode(d, n.blob))
163 encode(d, o) {
164 ;(e.fixed32.encode(d, o.key), s.encode(d, o.blob))
165165 },
166166 decode: (d) => ({ key: e.fixed32.decode(d), blob: s.decode(d) }),
167167 },
168168 y = e.frame(m),
169169 x = e.frame(f),
170170 b = {
171 preencode(d, n) {
171 preencode(d, o) {
172172 ;(d.end++,
173 n.inlined && e.buffer.preencode(d, n.inlined),
174 n.blob && s.preencode(d, n.blob),
175 n.externalBlob && y.preencode(d, n.externalBlob),
176 n.externalDrive && x.preencode(d, n.externalDrive))
173 o.inlined && e.buffer.preencode(d, o.inlined),
174 o.blob && s.preencode(d, o.blob),
175 o.externalBlob && y.preencode(d, o.externalBlob),
176 o.externalDrive && x.preencode(d, o.externalDrive))
177177 },
178 encode(d, n) {
179 const o =
180 (n.inlined ? 1 : 0) |
181 (n.blob ? 2 : 0) |
182 (n.externalBlob ? 4 : 0) |
183 (n.externalDrive ? 8 : 0)
184 ;(e.uint.encode(d, o),
185 n.inlined && e.buffer.encode(d, n.inlined),
186 n.blob && s.encode(d, n.blob),
187 n.externalBlob && y.encode(d, n.externalBlob),
188 n.externalDrive && x.encode(d, n.externalDrive))
178 encode(d, o) {
179 const n =
180 (o.inlined ? 1 : 0) |
181 (o.blob ? 2 : 0) |
182 (o.externalBlob ? 4 : 0) |
183 (o.externalDrive ? 8 : 0)
184 ;(e.uint.encode(d, n),
185 o.inlined && e.buffer.encode(d, o.inlined),
186 o.blob && s.encode(d, o.blob),
187 o.externalBlob && y.encode(d, o.externalBlob),
188 o.externalDrive && x.encode(d, o.externalDrive))
189189 },
190190 decode(d) {
191 const n = e.uint.decode(d)
191 const o = e.uint.decode(d)
192192 return {
193 inlined: 1 & n ? e.buffer.decode(d) : null,
194 blob: 2 & n ? s.decode(d) : null,
195 externalBlob: 4 & n ? y.decode(d) : null,
196 externalDrive: 8 & n ? x.decode(d) : null,
193 inlined: 1 & o ? e.buffer.decode(d) : null,
194 blob: 2 & o ? s.decode(d) : null,
195 externalBlob: 4 & o ? y.decode(d) : null,
196 externalDrive: 8 & o ? x.decode(d) : null,
197197 }
198198 },
199199 },
200200 k = e.frame(b),
201201 v = e.frame(l),
202202 g = {
203 preencode(d, n) {
204 ;(k.preencode(d, n.pointer),
203 preencode(d, o) {
204 ;(k.preencode(d, o.pointer),
205205 d.end++,
206 n.metadata && v.preencode(d, n.metadata),
207 n.preview && zr.preencode(d, n.preview),
208 n.hash && e.fixed32.preencode(d, n.hash))
206 o.metadata && v.preencode(d, o.metadata),
207 o.preview && Qr.preencode(d, o.preview),
208 o.hash && e.fixed32.preencode(d, o.hash))
209209 },
210 encode(d, n) {
211 const o = (n.metadata ? 1 : 0) | (n.preview ? 2 : 0) | (n.hash ? 4 : 0)
212 ;(k.encode(d, n.pointer),
213 e.uint.encode(d, o),
214 n.metadata && v.encode(d, n.metadata),
215 n.preview && zr.encode(d, n.preview),
216 n.hash && e.fixed32.encode(d, n.hash))
210 encode(d, o) {
211 const n = (o.metadata ? 1 : 0) | (o.preview ? 2 : 0) | (o.hash ? 4 : 0)
212 ;(k.encode(d, o.pointer),
213 e.uint.encode(d, n),
214 o.metadata && v.encode(d, o.metadata),
215 o.preview && Qr.encode(d, o.preview),
216 o.hash && e.fixed32.encode(d, o.hash))
217217 },
218218 decode(d) {
219 const n = k.decode(d),
220 o = e.uint.decode(d)
219 const o = k.decode(d),
220 n = e.uint.decode(d)
221221 return {
222 pointer: n,
223 metadata: 1 & o ? v.decode(d) : null,
224 preview: 2 & o ? zr.decode(d) : null,
225 hash: 4 & o ? e.fixed32.decode(d) : null,
222 pointer: o,
223 metadata: 1 & n ? v.decode(d) : null,
224 preview: 2 & n ? Qr.decode(d) : null,
225 hash: 4 & n ? e.fixed32.decode(d) : null,
226226 }
227227 },
228228 },
……@@ -236,19 +236,19 @@ const o = {
236236 d.medium && K.preencode(e, d.medium),
237237 d.large && w.preencode(e, d.large))
238238 },
239 encode(d, n) {
240 const o = (n.small ? 1 : 0) | (n.medium ? 2 : 0) | (n.large ? 4 : 0)
241 ;(e.uint.encode(d, o),
242 n.small && h.encode(d, n.small),
243 n.medium && K.encode(d, n.medium),
244 n.large && w.encode(d, n.large))
239 encode(d, o) {
240 const n = (o.small ? 1 : 0) | (o.medium ? 2 : 0) | (o.large ? 4 : 0)
241 ;(e.uint.encode(d, n),
242 o.small && h.encode(d, o.small),
243 o.medium && K.encode(d, o.medium),
244 o.large && w.encode(d, o.large))
245245 },
246246 decode(d) {
247 const n = e.uint.decode(d)
247 const o = e.uint.decode(d)
248248 return {
249 small: 1 & n ? h.decode(d) : null,
250 medium: 2 & n ? K.decode(d) : null,
251 large: 4 & n ? w.decode(d) : null,
249 small: 1 & o ? h.decode(d) : null,
250 medium: 2 & o ? K.decode(d) : null,
251 large: 4 & o ? w.decode(d) : null,
252252 }
253253 },
254254 },
……@@ -256,136 +256,136 @@ const o = {
256256 preencode(e, d) {
257257 e.end++
258258 },
259 encode(d, n) {
260 const o = n.isDeleted ? 1 : 0
261 e.uint.encode(d, o)
259 encode(d, o) {
260 const n = o.isDeleted ? 1 : 0
261 e.uint.encode(d, n)
262262 },
263263 decode: (d) => ({ isDeleted: !!(1 & e.uint.decode(d)) }),
264264 },
265265 A = e.frame(P),
266266 R = h,
267267 D = {
268 preencode(d, o) {
269 ;(e.uint.preencode(d, o.id),
270 c.preencode(d, o.oplog),
271 A.preencode(d, o.status),
272 R.preencode(d, o.file),
268 preencode(d, n) {
269 ;(e.uint.preencode(d, n.id),
270 c.preencode(d, n.oplog),
271 A.preencode(d, n.status),
272 R.preencode(d, n.file),
273273 d.end++,
274 n >= 14 && o.version && e.uint.preencode(d, o.version))
274 o >= 14 && n.version && e.uint.preencode(d, n.version))
275275 },
276 encode(d, o) {
277 const r = n >= 14 && o.version ? 1 : 0
278 ;(e.uint.encode(d, o.id),
279 c.encode(d, o.oplog),
280 A.encode(d, o.status),
281 R.encode(d, o.file),
276 encode(d, n) {
277 const r = o >= 14 && n.version ? 1 : 0
278 ;(e.uint.encode(d, n.id),
279 c.encode(d, n.oplog),
280 A.encode(d, n.status),
281 R.encode(d, n.file),
282282 e.uint.encode(d, r),
283 n >= 14 && o.version && e.uint.encode(d, o.version))
283 o >= 14 && n.version && e.uint.encode(d, n.version))
284284 },
285285 decode(d) {
286 const o = e.uint.decode(d),
286 const n = e.uint.decode(d),
287287 r = c.decode(d),
288288 t = A.decode(d),
289289 i = R.decode(d),
290290 a = d.start < d.end ? e.uint.decode(d) : 0
291291 return {
292 id: o,
292 id: n,
293293 oplog: r,
294294 status: t,
295295 file: i,
296 version: n >= 14 && 1 & a ? e.uint.decode(d) : 0,
296 version: o >= 14 && 1 & a ? e.uint.decode(d) : 0,
297297 }
298298 },
299299 },
300 S = {
300 M = {
301301 preencode(e, d) {
302302 e.end++
303303 },
304 encode(d, n) {
305 const o = (n.isActive ? 1 : 0) | (n.isIndexing ? 2 : 0)
306 e.uint.encode(d, o)
304 encode(d, o) {
305 const n = (o.isActive ? 1 : 0) | (o.isIndexing ? 2 : 0)
306 e.uint.encode(d, n)
307307 },
308308 decode(d) {
309 const n = e.uint.decode(d)
310 return { isActive: !!(1 & n), isIndexing: !!(2 & n) }
309 const o = e.uint.decode(d)
310 return { isActive: !!(1 & o), isIndexing: !!(2 & o) }
311311 },
312312 },
313 C = {
314 preencode(d, o) {
313 S = {
314 preencode(d, n) {
315315 const c =
316 (o.isAdmin ? 1 : 0) |
317 (o.isModerator ? 2 : 0) |
318 (o.isPending ? 4 : 0) |
319 (o.isActive ? 8 : 0) |
320 (o.isMuted ? 16 : 0) |
321 (o.isBanned ? 32 : 0) |
322 (o.isShadowBanned ? 64 : 0) |
323 (n >= 13 && o.isRemoved ? 128 : 0)
316 (n.isAdmin ? 1 : 0) |
317 (n.isModerator ? 2 : 0) |
318 (n.isPending ? 4 : 0) |
319 (n.isActive ? 8 : 0) |
320 (n.isMuted ? 16 : 0) |
321 (n.isBanned ? 32 : 0) |
322 (n.isShadowBanned ? 64 : 0) |
323 (o >= 13 && n.isRemoved ? 128 : 0)
324324 e.uint.preencode(d, c)
325325 },
326 encode(d, o) {
326 encode(d, n) {
327327 const c =
328 (o.isAdmin ? 1 : 0) |
329 (o.isModerator ? 2 : 0) |
330 (o.isPending ? 4 : 0) |
331 (o.isActive ? 8 : 0) |
332 (o.isMuted ? 16 : 0) |
333 (o.isBanned ? 32 : 0) |
334 (o.isShadowBanned ? 64 : 0) |
335 (n >= 13 && o.isRemoved ? 128 : 0)
328 (n.isAdmin ? 1 : 0) |
329 (n.isModerator ? 2 : 0) |
330 (n.isPending ? 4 : 0) |
331 (n.isActive ? 8 : 0) |
332 (n.isMuted ? 16 : 0) |
333 (n.isBanned ? 32 : 0) |
334 (n.isShadowBanned ? 64 : 0) |
335 (o >= 13 && n.isRemoved ? 128 : 0)
336336 e.uint.encode(d, c)
337337 },
338338 decode(d) {
339 const o = e.uint.decode(d)
339 const n = e.uint.decode(d)
340340 return {
341 isAdmin: !!(1 & o),
342 isModerator: !!(2 & o),
343 isPending: !!(4 & o),
344 isActive: !!(8 & o),
345 isMuted: !!(16 & o),
346 isBanned: !!(32 & o),
347 isShadowBanned: !!(64 & o),
348 isRemoved: n >= 13 && !!(128 & o),
341 isAdmin: !!(1 & n),
342 isModerator: !!(2 & n),
343 isPending: !!(4 & n),
344 isActive: !!(8 & n),
345 isMuted: !!(16 & n),
346 isBanned: !!(32 & n),
347 isShadowBanned: !!(64 & n),
348 isRemoved: o >= 13 && !!(128 & n),
349349 }
350350 },
351351 },
352 M = {
352 C = {
353353 preencode(e, d) {
354354 e.end++
355355 },
356 encode(d, n) {
357 const o = (n.isMuted ? 1 : 0) | (n.isBanned ? 2 : 0) | (n.isShadowBanned ? 4 : 0)
358 e.uint.encode(d, o)
356 encode(d, o) {
357 const n = (o.isMuted ? 1 : 0) | (o.isBanned ? 2 : 0) | (o.isShadowBanned ? 4 : 0)
358 e.uint.encode(d, n)
359359 },
360360 decode(d) {
361 const n = e.uint.decode(d)
362 return { isMuted: !!(1 & n), isBanned: !!(2 & n), isShadowBanned: !!(4 & n) }
361 const o = e.uint.decode(d)
362 return { isMuted: !!(1 & o), isBanned: !!(2 & o), isShadowBanned: !!(4 & o) }
363363 },
364364 },
365365 L = {
366 preencode(d, n) {
367 e.uint.preencode(d, n.version)
366 preencode(d, o) {
367 e.uint.preencode(d, o.version)
368368 },
369 encode(d, n) {
370 e.uint.encode(d, n.version)
369 encode(d, o) {
370 e.uint.encode(d, o.version)
371371 },
372372 decode: (d) => ({ version: e.uint.decode(d) }),
373373 },
374374 q = {
375 preencode(d, n) {
376 ;(e.uint.preencode(d, n.total), e.uint.preencode(d, n.active))
375 preencode(d, o) {
376 ;(e.uint.preencode(d, o.total), e.uint.preencode(d, o.active))
377377 },
378 encode(d, n) {
379 ;(e.uint.encode(d, n.total), e.uint.encode(d, n.active))
378 encode(d, o) {
379 ;(e.uint.encode(d, o.total), e.uint.encode(d, o.active))
380380 },
381381 decode: (d) => ({ total: e.uint.decode(d), active: e.uint.decode(d) }),
382382 },
383383 F = {
384 preencode(d, n) {
385 ;(e.uint.preencode(d, n.total), e.uint.preencode(d, n.active), e.uint.preencode(d, n.pending))
384 preencode(d, o) {
385 ;(e.uint.preencode(d, o.total), e.uint.preencode(d, o.active), e.uint.preencode(d, o.pending))
386386 },
387 encode(d, n) {
388 ;(e.uint.encode(d, n.total), e.uint.encode(d, n.active), e.uint.encode(d, n.pending))
387 encode(d, o) {
388 ;(e.uint.encode(d, o.total), e.uint.encode(d, o.active), e.uint.encode(d, o.pending))
389389 },
390390 decode: (d) => ({
391391 total: e.uint.decode(d),
……@@ -394,157 +394,157 @@ const o = {
394394 }),
395395 },
396396 E = {
397 preencode(d, o) {
398 ;(e.uint.preencode(d, o.clock),
399 e.uint.preencode(d, o.pinned),
400 e.uint.preencode(d, o.threads),
401 e.uint.preencode(d, o.timestamp),
397 preencode(d, n) {
398 ;(e.uint.preencode(d, n.clock),
399 e.uint.preencode(d, n.pinned),
400 e.uint.preencode(d, n.threads),
401 e.uint.preencode(d, n.timestamp),
402402 d.end++,
403 n >= 15 && o.flagsClock && e.uint.preencode(d, o.flagsClock))
403 o >= 15 && n.flagsClock && e.uint.preencode(d, n.flagsClock))
404404 },
405 encode(d, o) {
406 const c = n >= 15 && o.flagsClock ? 1 : 0
407 ;(e.uint.encode(d, o.clock),
408 e.uint.encode(d, o.pinned),
409 e.uint.encode(d, o.threads),
410 e.uint.encode(d, o.timestamp),
405 encode(d, n) {
406 const c = o >= 15 && n.flagsClock ? 1 : 0
407 ;(e.uint.encode(d, n.clock),
408 e.uint.encode(d, n.pinned),
409 e.uint.encode(d, n.threads),
410 e.uint.encode(d, n.timestamp),
411411 e.uint.encode(d, c),
412 n >= 15 && o.flagsClock && e.uint.encode(d, o.flagsClock))
412 o >= 15 && n.flagsClock && e.uint.encode(d, n.flagsClock))
413413 },
414414 decode(d) {
415 const o = e.uint.decode(d),
415 const n = e.uint.decode(d),
416416 c = e.uint.decode(d),
417417 r = e.uint.decode(d),
418418 t = e.uint.decode(d),
419419 i = d.start < d.end ? e.uint.decode(d) : 0
420420 return {
421 clock: o,
421 clock: n,
422422 pinned: c,
423423 threads: r,
424424 timestamp: t,
425 flagsClock: n >= 15 && 1 & i ? e.uint.decode(d) : 0,
425 flagsClock: o >= 15 && 1 & i ? e.uint.decode(d) : 0,
426426 }
427427 },
428428 },
429429 B = {
430 preencode(d, n) {
431 e.uint.preencode(d, n.clock)
430 preencode(d, o) {
431 e.uint.preencode(d, o.clock)
432432 },
433 encode(d, n) {
434 e.uint.encode(d, n.clock)
433 encode(d, o) {
434 e.uint.encode(d, o.clock)
435435 },
436436 decode: (d) => ({ clock: e.uint.decode(d) }),
437437 },
438438 I = e.frame(q),
439439 N = e.frame(F),
440440 j = e.frame(E),
441 O = e.frame(B),
442 J = {
441 U = e.frame(B),
442 O = {
443443 preencode(e, d) {
444444 ;(I.preencode(e, d.devices),
445445 N.preencode(e, d.members),
446446 j.preencode(e, d.chat),
447 O.preencode(e, d.files))
447 U.preencode(e, d.files))
448448 },
449449 encode(e, d) {
450 ;(I.encode(e, d.devices), N.encode(e, d.members), j.encode(e, d.chat), O.encode(e, d.files))
450 ;(I.encode(e, d.devices), N.encode(e, d.members), j.encode(e, d.chat), U.encode(e, d.files))
451451 },
452452 decode: (e) => ({
453453 devices: I.decode(e),
454454 members: N.decode(e),
455455 chat: j.decode(e),
456 files: O.decode(e),
456 files: U.decode(e),
457457 }),
458458 },
459 U = { Default: 1, Broadcast: 2, DirectMessage: 3 },
459 J = { Default: 1, Broadcast: 2, DirectMessage: 3 },
460460 V = {
461461 preencode(e, d) {
462462 e.end++
463463 },
464 encode(d, n) {
465 if (n > 3) throw new Error("Unknown enum")
466 e.uint.encode(d, n)
464 encode(d, o) {
465 if (o > 3) throw new Error("Unknown enum")
466 e.uint.encode(d, o)
467467 },
468468 decode: (d) => e.uint.decode(d),
469469 },
470470 H = {
471 preencode(d, o) {
471 preencode(d, n) {
472472 const c =
473 (o.roomType ? 1 : 0) |
474 (o.isExperimental ? 2 : 0) |
475 (o.isJoiningDisabled ? 4 : 0) |
476 (o.isAppendingDisabled ? 8 : 0) |
477 (o.isCallingDisabled ? 16 : 0) |
478 (o.isMembershipEventsDisabled ? 32 : 0) |
479 (n >= 19 && o.isAttachmentsDisabled ? 64 : 0) |
480 (n >= 19 && o.isLinksDisabled ? 128 : 0) |
481 (n >= 20 && o.buildType ? 256 : 0)
473 (n.roomType ? 1 : 0) |
474 (n.isExperimental ? 2 : 0) |
475 (n.isJoiningDisabled ? 4 : 0) |
476 (n.isAppendingDisabled ? 8 : 0) |
477 (n.isCallingDisabled ? 16 : 0) |
478 (n.isMembershipEventsDisabled ? 32 : 0) |
479 (o >= 19 && n.isAttachmentsDisabled ? 64 : 0) |
480 (o >= 19 && n.isLinksDisabled ? 128 : 0) |
481 (o >= 20 && n.buildType ? 256 : 0)
482482 ;(e.uint.preencode(d, c),
483 o.roomType && V.preencode(d, o.roomType),
484 n >= 20 && o.buildType && Or.preencode(d, o.buildType))
483 n.roomType && V.preencode(d, n.roomType),
484 o >= 20 && n.buildType && Ur.preencode(d, n.buildType))
485485 },
486 encode(d, o) {
486 encode(d, n) {
487487 const c =
488 (o.roomType ? 1 : 0) |
489 (o.isExperimental ? 2 : 0) |
490 (o.isJoiningDisabled ? 4 : 0) |
491 (o.isAppendingDisabled ? 8 : 0) |
492 (o.isCallingDisabled ? 16 : 0) |
493 (o.isMembershipEventsDisabled ? 32 : 0) |
494 (n >= 19 && o.isAttachmentsDisabled ? 64 : 0) |
495 (n >= 19 && o.isLinksDisabled ? 128 : 0) |
496 (n >= 20 && o.buildType ? 256 : 0)
488 (n.roomType ? 1 : 0) |
489 (n.isExperimental ? 2 : 0) |
490 (n.isJoiningDisabled ? 4 : 0) |
491 (n.isAppendingDisabled ? 8 : 0) |
492 (n.isCallingDisabled ? 16 : 0) |
493 (n.isMembershipEventsDisabled ? 32 : 0) |
494 (o >= 19 && n.isAttachmentsDisabled ? 64 : 0) |
495 (o >= 19 && n.isLinksDisabled ? 128 : 0) |
496 (o >= 20 && n.buildType ? 256 : 0)
497497 ;(e.uint.encode(d, c),
498 o.roomType && V.encode(d, o.roomType),
499 n >= 20 && o.buildType && Or.encode(d, o.buildType))
498 n.roomType && V.encode(d, n.roomType),
499 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
500500 },
501501 decode(d) {
502 const o = e.uint.decode(d)
502 const n = e.uint.decode(d)
503503 return {
504 roomType: 1 & o ? V.decode(d) : 0,
505 isExperimental: !!(2 & o),
506 isJoiningDisabled: !!(4 & o),
507 isAppendingDisabled: !!(8 & o),
508 isCallingDisabled: !!(16 & o),
509 isMembershipEventsDisabled: !!(32 & o),
510 isAttachmentsDisabled: n >= 19 && !!(64 & o),
511 isLinksDisabled: n >= 19 && !!(128 & o),
512 buildType: n >= 20 && 256 & o ? Or.decode(d) : null,
504 roomType: 1 & n ? V.decode(d) : 0,
505 isExperimental: !!(2 & n),
506 isJoiningDisabled: !!(4 & n),
507 isAppendingDisabled: !!(8 & n),
508 isCallingDisabled: !!(16 & n),
509 isMembershipEventsDisabled: !!(32 & n),
510 isAttachmentsDisabled: o >= 19 && !!(64 & n),
511 isLinksDisabled: o >= 19 && !!(128 & n),
512 buildType: o >= 20 && 256 & n ? Ur.decode(d) : null,
513513 }
514514 },
515515 },
516516 z = e.frame(L),
517517 G = e.frame(H),
518518 Q = {
519 preencode(d, n) {
520 ;(z.preencode(d, n.abi), G.preencode(d, n.settings), e.uint.preencode(d, n.creationTime))
519 preencode(d, o) {
520 ;(z.preencode(d, o.abi), G.preencode(d, o.settings), e.uint.preencode(d, o.creationTime))
521521 },
522 encode(d, n) {
523 ;(z.encode(d, n.abi), G.encode(d, n.settings), e.uint.encode(d, n.creationTime))
522 encode(d, o) {
523 ;(z.encode(d, o.abi), G.encode(d, o.settings), e.uint.encode(d, o.creationTime))
524524 },
525525 decode: (d) => ({ abi: z.decode(d), settings: G.decode(d), creationTime: e.uint.decode(d) }),
526526 },
527527 W = {
528 preencode(d, n) {
529 e.fixed32.preencode(d, n.seed)
528 preencode(d, o) {
529 e.fixed32.preencode(d, o.seed)
530530 },
531 encode(d, n) {
532 e.fixed32.encode(d, n.seed)
531 encode(d, o) {
532 e.fixed32.encode(d, o.seed)
533533 },
534534 decode: (d) => ({ seed: e.fixed32.decode(d) }),
535535 },
536536 X = {
537 preencode(d, n) {
538 ;(r.preencode(d, n.mailboxKeyPair),
539 t.preencode(d, n.discoveryKeyPair),
540 e.fixed32.preencode(d, n.wakeupTopic),
541 e.fixed32.preencode(d, n.swarmTopic))
537 preencode(d, o) {
538 ;(r.preencode(d, o.mailboxKeyPair),
539 t.preencode(d, o.discoveryKeyPair),
540 e.fixed32.preencode(d, o.wakeupTopic),
541 e.fixed32.preencode(d, o.swarmTopic))
542542 },
543 encode(d, n) {
544 ;(r.encode(d, n.mailboxKeyPair),
545 t.encode(d, n.discoveryKeyPair),
546 e.fixed32.encode(d, n.wakeupTopic),
547 e.fixed32.encode(d, n.swarmTopic))
543 encode(d, o) {
544 ;(r.encode(d, o.mailboxKeyPair),
545 t.encode(d, o.discoveryKeyPair),
546 e.fixed32.encode(d, o.wakeupTopic),
547 e.fixed32.encode(d, o.swarmTopic))
548548 },
549549 decode: (d) => ({
550550 mailboxKeyPair: r.decode(d),
……@@ -555,45 +555,45 @@ const o = {
555555 },
556556 Y = e.array(e.fixed32),
557557 Z = {
558 preencode(d, o) {
558 preencode(d, n) {
559559 ;(d.end++,
560 o.title && e.string.preencode(d, o.title),
561 o.avatar && Gr.preencode(d, o.avatar),
562 o.description && e.string.preencode(d, o.description),
563 n >= 11 && o.supportedLanguages && Qr.preencode(d, o.supportedLanguages),
564 n >= 13 && o.blindPeers && Y.preencode(d, o.blindPeers))
560 n.title && e.string.preencode(d, n.title),
561 n.avatar && Wr.preencode(d, n.avatar),
562 n.description && e.string.preencode(d, n.description),
563 o >= 11 && n.supportedLanguages && Xr.preencode(d, n.supportedLanguages),
564 o >= 13 && n.blindPeers && Y.preencode(d, n.blindPeers))
565565 },
566 encode(d, o) {
566 encode(d, n) {
567567 const c =
568 (o.title ? 1 : 0) |
569 (o.avatar ? 2 : 0) |
570 (o.description ? 4 : 0) |
571 (n >= 11 && o.supportedLanguages ? 8 : 0) |
572 (n >= 13 && o.blindPeers ? 16 : 0)
568 (n.title ? 1 : 0) |
569 (n.avatar ? 2 : 0) |
570 (n.description ? 4 : 0) |
571 (o >= 11 && n.supportedLanguages ? 8 : 0) |
572 (o >= 13 && n.blindPeers ? 16 : 0)
573573 ;(e.uint.encode(d, c),
574 o.title && e.string.encode(d, o.title),
575 o.avatar && Gr.encode(d, o.avatar),
576 o.description && e.string.encode(d, o.description),
577 n >= 11 && o.supportedLanguages && Qr.encode(d, o.supportedLanguages),
578 n >= 13 && o.blindPeers && Y.encode(d, o.blindPeers))
574 n.title && e.string.encode(d, n.title),
575 n.avatar && Wr.encode(d, n.avatar),
576 n.description && e.string.encode(d, n.description),
577 o >= 11 && n.supportedLanguages && Xr.encode(d, n.supportedLanguages),
578 o >= 13 && n.blindPeers && Y.encode(d, n.blindPeers))
579579 },
580580 decode(d) {
581 const o = e.uint.decode(d)
581 const n = e.uint.decode(d)
582582 return {
583 title: 1 & o ? e.string.decode(d) : null,
584 avatar: 2 & o ? Gr.decode(d) : null,
585 description: 4 & o ? e.string.decode(d) : null,
586 supportedLanguages: n >= 11 && 8 & o ? Qr.decode(d) : null,
587 blindPeers: n >= 13 && 16 & o ? Y.decode(d) : null,
583 title: 1 & n ? e.string.decode(d) : null,
584 avatar: 2 & n ? Wr.decode(d) : null,
585 description: 4 & n ? e.string.decode(d) : null,
586 supportedLanguages: o >= 11 && 8 & n ? Xr.decode(d) : null,
587 blindPeers: o >= 13 && 16 & n ? Y.decode(d) : null,
588588 }
589589 },
590590 },
591591 $ = {
592 preencode(d, n) {
593 e.fixed32.preencode(d, n.key)
592 preencode(d, o) {
593 e.fixed32.preencode(d, o.key)
594594 },
595 encode(d, n) {
596 e.fixed32.encode(d, n.key)
595 encode(d, o) {
596 e.fixed32.encode(d, o.key)
597597 },
598598 decode: (d) => ({ key: e.fixed32.decode(d) }),
599599 },
……@@ -608,118 +608,118 @@ const o = {
608608 },
609609 decode: (e) => ({ header: _.decode(e), peer: ee.decode(e) }),
610610 },
611 ne = _,
612 oe = {
613 preencode(d, n) {
614 ;(ne.preencode(d, n.header), e.fixed32.preencode(d, n.key))
611 oe = _,
612 ne = {
613 preencode(d, o) {
614 ;(oe.preencode(d, o.header), e.fixed32.preencode(d, o.key))
615615 },
616 encode(d, n) {
617 ;(ne.encode(d, n.header), e.fixed32.encode(d, n.key))
616 encode(d, o) {
617 ;(oe.encode(d, o.header), e.fixed32.encode(d, o.key))
618618 },
619 decode: (d) => ({ header: ne.decode(d), key: e.fixed32.decode(d) }),
619 decode: (d) => ({ header: oe.decode(d), key: e.fixed32.decode(d) }),
620620 },
621621 ce = {
622 preencode(d, n) {
623 ;(e.fixed32.preencode(d, n.memberKey), e.buffer.preencode(d, n.proof))
622 preencode(d, o) {
623 ;(e.fixed32.preencode(d, o.memberKey), e.buffer.preencode(d, o.proof))
624624 },
625 encode(d, n) {
626 ;(e.fixed32.encode(d, n.memberKey), e.buffer.encode(d, n.proof))
625 encode(d, o) {
626 ;(e.fixed32.encode(d, o.memberKey), e.buffer.encode(d, o.proof))
627627 },
628628 decode: (d) => ({ memberKey: e.fixed32.decode(d), proof: e.buffer.decode(d) }),
629629 },
630630 re = {
631 preencode(d, n) {
632 ;(e.fixed32.preencode(d, n.id), e.buffer.preencode(d, n.response))
631 preencode(d, o) {
632 ;(e.fixed32.preencode(d, o.id), e.buffer.preencode(d, o.response))
633633 },
634 encode(d, n) {
635 ;(e.fixed32.encode(d, n.id), e.buffer.encode(d, n.response))
634 encode(d, o) {
635 ;(e.fixed32.encode(d, o.id), e.buffer.encode(d, o.response))
636636 },
637637 decode: (d) => ({ id: e.fixed32.decode(d), response: e.buffer.decode(d) }),
638638 },
639 te = e.frame(S),
639 te = e.frame(M),
640640 ie = e.frame(re),
641641 ae = {
642 preencode(d, n) {
643 ;(e.fixed32.preencode(d, n.key),
644 e.fixed32.preencode(d, n.memberKey),
645 te.preencode(d, n.status),
646 Wr.preencode(d, n.profile),
642 preencode(d, o) {
643 ;(e.fixed32.preencode(d, o.key),
644 e.fixed32.preencode(d, o.memberKey),
645 te.preencode(d, o.status),
646 Yr.preencode(d, o.profile),
647647 d.end++,
648 n.invitation && ie.preencode(d, n.invitation))
648 o.invitation && ie.preencode(d, o.invitation))
649649 },
650 encode(d, n) {
651 const o = n.invitation ? 1 : 0
652 ;(e.fixed32.encode(d, n.key),
653 e.fixed32.encode(d, n.memberKey),
654 te.encode(d, n.status),
655 Wr.encode(d, n.profile),
656 e.uint.encode(d, o),
657 n.invitation && ie.encode(d, n.invitation))
650 encode(d, o) {
651 const n = o.invitation ? 1 : 0
652 ;(e.fixed32.encode(d, o.key),
653 e.fixed32.encode(d, o.memberKey),
654 te.encode(d, o.status),
655 Yr.encode(d, o.profile),
656 e.uint.encode(d, n),
657 o.invitation && ie.encode(d, o.invitation))
658658 },
659659 decode: (d) => ({
660660 key: e.fixed32.decode(d),
661661 memberKey: e.fixed32.decode(d),
662662 status: te.decode(d),
663 profile: Wr.decode(d),
663 profile: Yr.decode(d),
664664 invitation: 1 & e.uint.decode(d) ? ie.decode(d) : null,
665665 }),
666666 },
667667 se = {
668 preencode(d, n) {
669 ;(e.uint.preencode(d, n.timestamp),
668 preencode(d, o) {
669 ;(e.uint.preencode(d, o.timestamp),
670670 d.end++,
671 n.mailbox && e.fixed32.preencode(d, n.mailbox),
672 n.displayName && e.string.preencode(d, n.displayName),
673 n.avatar && Xr.preencode(d, n.avatar),
674 n.username && e.string.preencode(d, n.username))
671 o.mailbox && e.fixed32.preencode(d, o.mailbox),
672 o.displayName && e.string.preencode(d, o.displayName),
673 o.avatar && Zr.preencode(d, o.avatar),
674 o.username && e.string.preencode(d, o.username))
675675 },
676 encode(d, n) {
677 const o =
678 (n.mailbox ? 1 : 0) | (n.displayName ? 2 : 0) | (n.avatar ? 4 : 0) | (n.username ? 8 : 0)
679 ;(e.uint.encode(d, n.timestamp),
680 e.uint.encode(d, o),
681 n.mailbox && e.fixed32.encode(d, n.mailbox),
682 n.displayName && e.string.encode(d, n.displayName),
683 n.avatar && Xr.encode(d, n.avatar),
684 n.username && e.string.encode(d, n.username))
676 encode(d, o) {
677 const n =
678 (o.mailbox ? 1 : 0) | (o.displayName ? 2 : 0) | (o.avatar ? 4 : 0) | (o.username ? 8 : 0)
679 ;(e.uint.encode(d, o.timestamp),
680 e.uint.encode(d, n),
681 o.mailbox && e.fixed32.encode(d, o.mailbox),
682 o.displayName && e.string.encode(d, o.displayName),
683 o.avatar && Zr.encode(d, o.avatar),
684 o.username && e.string.encode(d, o.username))
685685 },
686686 decode(d) {
687 const n = e.uint.decode(d),
688 o = e.uint.decode(d)
687 const o = e.uint.decode(d),
688 n = e.uint.decode(d)
689689 return {
690 timestamp: n,
691 mailbox: 1 & o ? e.fixed32.decode(d) : null,
692 displayName: 2 & o ? e.string.decode(d) : null,
693 avatar: 4 & o ? Xr.decode(d) : null,
694 username: 8 & o ? e.string.decode(d) : null,
690 timestamp: o,
691 mailbox: 1 & n ? e.fixed32.decode(d) : null,
692 displayName: 2 & n ? e.string.decode(d) : null,
693 avatar: 4 & n ? Zr.decode(d) : null,
694 username: 8 & n ? e.string.decode(d) : null,
695695 }
696696 },
697697 },
698698 pe = {
699 preencode(d, o) {
699 preencode(d, n) {
700700 ;(d.end++,
701 o.swarmKey && e.fixed32.preencode(d, o.swarmKey),
702 o.name && e.string.preencode(d, o.name),
703 n >= 20 && o.buildType && Or.preencode(d, o.buildType))
701 n.swarmKey && e.fixed32.preencode(d, n.swarmKey),
702 n.name && e.string.preencode(d, n.name),
703 o >= 20 && n.buildType && Ur.preencode(d, n.buildType))
704704 },
705 encode(d, o) {
705 encode(d, n) {
706706 const c =
707 (o.swarmKey ? 1 : 0) |
708 (o.name ? 2 : 0) |
709 (o.isMobile ? 4 : 0) |
710 (n >= 20 && o.buildType ? 8 : 0)
707 (n.swarmKey ? 1 : 0) |
708 (n.name ? 2 : 0) |
709 (n.isMobile ? 4 : 0) |
710 (o >= 20 && n.buildType ? 8 : 0)
711711 ;(e.uint.encode(d, c),
712 o.swarmKey && e.fixed32.encode(d, o.swarmKey),
713 o.name && e.string.encode(d, o.name),
714 n >= 20 && o.buildType && Or.encode(d, o.buildType))
712 n.swarmKey && e.fixed32.encode(d, n.swarmKey),
713 n.name && e.string.encode(d, n.name),
714 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
715715 },
716716 decode(d) {
717 const o = e.uint.decode(d)
717 const n = e.uint.decode(d)
718718 return {
719 swarmKey: 1 & o ? e.fixed32.decode(d) : null,
720 name: 2 & o ? e.string.decode(d) : null,
721 isMobile: !!(4 & o),
722 buildType: n >= 20 && 8 & o ? Or.decode(d) : null,
719 swarmKey: 1 & n ? e.fixed32.decode(d) : null,
720 name: 2 & n ? e.string.decode(d) : null,
721 isMobile: !!(4 & n),
722 buildType: o >= 20 && 8 & n ? Ur.decode(d) : null,
723723 }
724724 },
725725 },
……@@ -735,21 +735,21 @@ const o = {
735735 },
736736 fe = {
737737 preencode(e, d) {
738 ;(Yr.preencode(e, d.profile), ce.preencode(e, d.attestation))
738 ;($r.preencode(e, d.profile), ce.preencode(e, d.attestation))
739739 },
740740 encode(e, d) {
741 ;(Yr.encode(e, d.profile), ce.encode(e, d.attestation))
741 ;($r.encode(e, d.profile), ce.encode(e, d.attestation))
742742 },
743 decode: (e) => ({ profile: Yr.decode(e), attestation: ce.decode(e) }),
743 decode: (e) => ({ profile: $r.decode(e), attestation: ce.decode(e) }),
744744 },
745745 me = {
746 preencode(d, n) {
747 ;(e.fixed32.preencode(d, n.id),
748 e.buffer.preencode(d, n.data),
749 e.buffer.preencode(d, n.signature))
746 preencode(d, o) {
747 ;(e.fixed32.preencode(d, o.id),
748 e.buffer.preencode(d, o.data),
749 e.buffer.preencode(d, o.signature))
750750 },
751 encode(d, n) {
752 ;(e.fixed32.encode(d, n.id), e.buffer.encode(d, n.data), e.buffer.encode(d, n.signature))
751 encode(d, o) {
752 ;(e.fixed32.encode(d, o.id), e.buffer.encode(d, o.data), e.buffer.encode(d, o.signature))
753753 },
754754 decode: (d) => ({
755755 id: e.fixed32.decode(d),
……@@ -758,20 +758,20 @@ const o = {
758758 }),
759759 },
760760 ye = {
761 preencode(d, n) {
762 e.fixed32.preencode(d, n.devicePublicKey)
761 preencode(d, o) {
762 e.fixed32.preencode(d, o.devicePublicKey)
763763 },
764 encode(d, n) {
765 e.fixed32.encode(d, n.devicePublicKey)
764 encode(d, o) {
765 e.fixed32.encode(d, o.devicePublicKey)
766766 },
767767 decode: (d) => ({ devicePublicKey: e.fixed32.decode(d) }),
768768 },
769769 xe = {
770 preencode(d, n) {
771 ;(ce.preencode(d, n.privateProfileIdentity), e.buffer.preencode(d, n.deviceProof))
770 preencode(d, o) {
771 ;(ce.preencode(d, o.privateProfileIdentity), e.buffer.preencode(d, o.deviceProof))
772772 },
773 encode(d, n) {
774 ;(ce.encode(d, n.privateProfileIdentity), e.buffer.encode(d, n.deviceProof))
773 encode(d, o) {
774 ;(ce.encode(d, o.privateProfileIdentity), e.buffer.encode(d, o.deviceProof))
775775 },
776776 decode: (d) => ({ privateProfileIdentity: ce.decode(d), deviceProof: e.buffer.decode(d) }),
777777 },
……@@ -779,22 +779,22 @@ const o = {
779779 ke = e.frame(le),
780780 ve = e.frame(ye),
781781 ge = {
782 preencode(d, n) {
783 ;(e.fixed32.preencode(d, n.deviceKey),
784 t.preencode(d, n.keyPair),
785 be.preencode(d, n.device),
786 ke.preencode(d, n.member),
782 preencode(d, o) {
783 ;(e.fixed32.preencode(d, o.deviceKey),
784 t.preencode(d, o.keyPair),
785 be.preencode(d, o.device),
786 ke.preencode(d, o.member),
787787 d.end++,
788 n.identity && ve.preencode(d, n.identity))
788 o.identity && ve.preencode(d, o.identity))
789789 },
790 encode(d, n) {
791 const o = n.identity ? 1 : 0
792 ;(e.fixed32.encode(d, n.deviceKey),
793 t.encode(d, n.keyPair),
794 be.encode(d, n.device),
795 ke.encode(d, n.member),
796 e.uint.encode(d, o),
797 n.identity && ve.encode(d, n.identity))
790 encode(d, o) {
791 const n = o.identity ? 1 : 0
792 ;(e.fixed32.encode(d, o.deviceKey),
793 t.encode(d, o.keyPair),
794 be.encode(d, o.device),
795 ke.encode(d, o.member),
796 e.uint.encode(d, n),
797 o.identity && ve.encode(d, o.identity))
798798 },
799799 decode: (d) => ({
800800 deviceKey: e.fixed32.decode(d),
……@@ -806,13 +806,13 @@ const o = {
806806 },
807807 he = e.frame(ge),
808808 Ke = {
809 preencode(d, n) {
810 ;(e.fixed32.preencode(d, n.id),
811 he.preencode(d, n.request),
812 e.buffer.preencode(d, n.signature))
809 preencode(d, o) {
810 ;(e.fixed32.preencode(d, o.id),
811 he.preencode(d, o.request),
812 e.buffer.preencode(d, o.signature))
813813 },
814 encode(d, n) {
815 ;(e.fixed32.encode(d, n.id), he.encode(d, n.request), e.buffer.encode(d, n.signature))
814 encode(d, o) {
815 ;(e.fixed32.encode(d, o.id), he.encode(d, o.request), e.buffer.encode(d, o.signature))
816816 },
817817 decode: (d) => ({
818818 id: e.fixed32.decode(d),
……@@ -826,9 +826,9 @@ const o = {
826826 preencode(e, d) {
827827 ;(we.preencode(e, d.device), e.end++, d.member && Te.preencode(e, d.member))
828828 },
829 encode(d, n) {
830 const o = n.member ? 1 : 0
831 ;(we.encode(d, n.device), e.uint.encode(d, o), n.member && Te.encode(d, n.member))
829 encode(d, o) {
830 const n = o.member ? 1 : 0
831 ;(we.encode(d, o.device), e.uint.encode(d, n), o.member && Te.encode(d, o.member))
832832 },
833833 decode: (d) => ({ device: we.decode(d), member: 1 & e.uint.decode(d) ? Te.decode(d) : null }),
834834 },
……@@ -840,91 +840,91 @@ const o = {
840840 d.withInvitation && Ae.preencode(e, d.withInvitation),
841841 d.withMemberProof && Re.preencode(e, d.withMemberProof))
842842 },
843 encode(d, n) {
844 const o = (n.withInvitation ? 1 : 0) | (n.withMemberProof ? 2 : 0)
845 ;(e.uint.encode(d, o),
846 n.withInvitation && Ae.encode(d, n.withInvitation),
847 n.withMemberProof && Re.encode(d, n.withMemberProof))
843 encode(d, o) {
844 const n = (o.withInvitation ? 1 : 0) | (o.withMemberProof ? 2 : 0)
845 ;(e.uint.encode(d, n),
846 o.withInvitation && Ae.encode(d, o.withInvitation),
847 o.withMemberProof && Re.encode(d, o.withMemberProof))
848848 },
849849 decode(d) {
850 const n = e.uint.decode(d)
850 const o = e.uint.decode(d)
851851 return {
852 withInvitation: 1 & n ? Ae.decode(d) : null,
853 withMemberProof: 2 & n ? Re.decode(d) : null,
852 withInvitation: 1 & o ? Ae.decode(d) : null,
853 withMemberProof: 2 & o ? Re.decode(d) : null,
854854 }
855855 },
856856 },
857 Se = e.frame(me),
858 Ce = e.frame(xe),
859 Me = {
857 Me = e.frame(me),
858 Se = e.frame(xe),
859 Ce = {
860860 preencode(e, d) {
861 ;(Se.preencode(e, d.signedKeys), e.end++, d.identity && Ce.preencode(e, d.identity))
861 ;(Me.preencode(e, d.signedKeys), e.end++, d.identity && Se.preencode(e, d.identity))
862862 },
863 encode(d, n) {
864 const o = n.identity ? 1 : 0
865 ;(Se.encode(d, n.signedKeys), e.uint.encode(d, o), n.identity && Ce.encode(d, n.identity))
863 encode(d, o) {
864 const n = o.identity ? 1 : 0
865 ;(Me.encode(d, o.signedKeys), e.uint.encode(d, n), o.identity && Se.encode(d, o.identity))
866866 },
867867 decode: (d) => ({
868 signedKeys: Se.decode(d),
869 identity: 1 & e.uint.decode(d) ? Ce.decode(d) : null,
868 signedKeys: Me.decode(d),
869 identity: 1 & e.uint.decode(d) ? Se.decode(d) : null,
870870 }),
871871 },
872872 Le = {
873 preencode(d, o) {
873 preencode(d, n) {
874874 ;(d.end++,
875 o.expiration && e.uint.preencode(d, o.expiration),
876 n >= 20 && o.buildType && Or.preencode(d, o.buildType))
875 n.expiration && e.uint.preencode(d, n.expiration),
876 o >= 20 && n.buildType && Ur.preencode(d, n.buildType))
877877 },
878 encode(d, o) {
878 encode(d, n) {
879879 const c =
880 (o.expiration ? 1 : 0) |
881 (o.requiresConfirmation ? 2 : 0) |
882 (o.canModerate ? 4 : 0) |
883 (o.canAdmin ? 8 : 0) |
884 (n >= 20 && o.buildType ? 16 : 0)
880 (n.expiration ? 1 : 0) |
881 (n.requiresConfirmation ? 2 : 0) |
882 (n.canModerate ? 4 : 0) |
883 (n.canAdmin ? 8 : 0) |
884 (o >= 20 && n.buildType ? 16 : 0)
885885 ;(e.uint.encode(d, c),
886 o.expiration && e.uint.encode(d, o.expiration),
887 n >= 20 && o.buildType && Or.encode(d, o.buildType))
886 n.expiration && e.uint.encode(d, n.expiration),
887 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
888888 },
889889 decode(d) {
890 const o = e.uint.decode(d)
890 const n = e.uint.decode(d)
891891 return {
892 expiration: 1 & o ? e.uint.decode(d) : 0,
893 requiresConfirmation: !!(2 & o),
894 canModerate: !!(4 & o),
895 canAdmin: !!(8 & o),
896 buildType: n >= 20 && 16 & o ? Or.decode(d) : null,
892 expiration: 1 & n ? e.uint.decode(d) : 0,
893 requiresConfirmation: !!(2 & n),
894 canModerate: !!(4 & n),
895 canAdmin: !!(8 & n),
896 buildType: o >= 20 && 16 & n ? Ur.decode(d) : null,
897897 }
898898 },
899899 },
900 qe = Se,
900 qe = Me,
901901 Fe = e.frame(Le),
902902 Ee = {
903 preencode(d, n) {
904 ;(e.fixed32.preencode(d, n.id),
905 qe.preencode(d, n.response),
906 Fe.preencode(d, n.metadata),
903 preencode(d, o) {
904 ;(e.fixed32.preencode(d, o.id),
905 qe.preencode(d, o.response),
906 Fe.preencode(d, o.metadata),
907907 d.end++,
908 n.anchor && o.preencode(d, n.anchor))
908 o.anchor && n.preencode(d, o.anchor))
909909 },
910 encode(d, n) {
911 const c = (n.anchor ? 1 : 0) | (n.isActive ? 2 : 0)
912 ;(e.fixed32.encode(d, n.id),
913 qe.encode(d, n.response),
914 Fe.encode(d, n.metadata),
910 encode(d, o) {
911 const c = (o.anchor ? 1 : 0) | (o.isActive ? 2 : 0)
912 ;(e.fixed32.encode(d, o.id),
913 qe.encode(d, o.response),
914 Fe.encode(d, o.metadata),
915915 e.uint.encode(d, c),
916 n.anchor && o.encode(d, n.anchor))
916 o.anchor && n.encode(d, o.anchor))
917917 },
918918 decode(d) {
919 const n = e.fixed32.decode(d),
919 const o = e.fixed32.decode(d),
920920 c = qe.decode(d),
921921 r = Fe.decode(d),
922922 t = e.uint.decode(d)
923923 return {
924 id: n,
924 id: o,
925925 response: c,
926926 metadata: r,
927 anchor: 1 & t ? o.decode(d) : null,
927 anchor: 1 & t ? n.decode(d) : null,
928928 isActive: !!(2 & t),
929929 }
930930 },
……@@ -941,63 +941,63 @@ const o = {
941941 decode: (e) => ({ header: Be.decode(e), invitation: Ie.decode(e) }),
942942 },
943943 je = _,
944 Oe = {
945 preencode(d, n) {
946 ;(je.preencode(d, n.header), e.fixed32.preencode(d, n.id))
944 Ue = {
945 preencode(d, o) {
946 ;(je.preencode(d, o.header), e.fixed32.preencode(d, o.id))
947947 },
948 encode(d, n) {
949 ;(je.encode(d, n.header), e.fixed32.encode(d, n.id))
948 encode(d, o) {
949 ;(je.encode(d, o.header), e.fixed32.encode(d, o.id))
950950 },
951951 decode: (d) => ({ header: je.decode(d), id: e.fixed32.decode(d) }),
952952 },
953 Je = {
954 preencode(d, n) {
955 ;(e.fixed32.preencode(d, n.mailbox),
956 e.fixed32.preencode(d, n.invitationSeed),
957 o.preencode(d, n.anchor))
953 Oe = {
954 preencode(d, o) {
955 ;(e.fixed32.preencode(d, o.mailbox),
956 e.fixed32.preencode(d, o.invitationSeed),
957 n.preencode(d, o.anchor))
958958 },
959 encode(d, n) {
960 ;(e.fixed32.encode(d, n.mailbox),
961 e.fixed32.encode(d, n.invitationSeed),
962 o.encode(d, n.anchor))
959 encode(d, o) {
960 ;(e.fixed32.encode(d, o.mailbox),
961 e.fixed32.encode(d, o.invitationSeed),
962 n.encode(d, o.anchor))
963963 },
964964 decode: (d) => ({
965965 mailbox: e.fixed32.decode(d),
966966 invitationSeed: e.fixed32.decode(d),
967 anchor: o.decode(d),
967 anchor: n.decode(d),
968968 }),
969969 },
970 Ue = {
971 preencode(d, n) {
972 ;(e.fixed32.preencode(d, n.mailbox),
973 e.fixed32.preencode(d, n.invitationSeed),
974 o.preencode(d, n.anchor),
975 e.fixed32.preencode(d, n.identityPublicKey))
970 Je = {
971 preencode(d, o) {
972 ;(e.fixed32.preencode(d, o.mailbox),
973 e.fixed32.preencode(d, o.invitationSeed),
974 n.preencode(d, o.anchor),
975 e.fixed32.preencode(d, o.identityPublicKey))
976976 },
977 encode(d, n) {
978 ;(e.fixed32.encode(d, n.mailbox),
979 e.fixed32.encode(d, n.invitationSeed),
980 o.encode(d, n.anchor),
981 e.fixed32.encode(d, n.identityPublicKey))
977 encode(d, o) {
978 ;(e.fixed32.encode(d, o.mailbox),
979 e.fixed32.encode(d, o.invitationSeed),
980 n.encode(d, o.anchor),
981 e.fixed32.encode(d, o.identityPublicKey))
982982 },
983983 decode: (d) => ({
984984 mailbox: e.fixed32.decode(d),
985985 invitationSeed: e.fixed32.decode(d),
986 anchor: o.decode(d),
986 anchor: n.decode(d),
987987 identityPublicKey: e.fixed32.decode(d),
988988 }),
989989 },
990990 Ve = {
991 preencode(d, n) {
992 e.fixed32.preencode(d, n.mailbox)
991 preencode(d, o) {
992 e.fixed32.preencode(d, o.mailbox)
993993 },
994 encode(d, n) {
995 e.fixed32.encode(d, n.mailbox)
994 encode(d, o) {
995 e.fixed32.encode(d, o.mailbox)
996996 },
997997 decode: (d) => ({ mailbox: e.fixed32.decode(d) }),
998998 },
999 He = e.frame(Je),
1000 ze = e.frame(Ue),
999 He = e.frame(Oe),
1000 ze = e.frame(Je),
10011001 Ge = e.frame(Ve),
10021002 Qe = e.array(e.ipv4Address),
10031003 We = {
……@@ -1006,70 +1006,70 @@ const o = {
10061006 d.room && He.preencode(e, d.room),
10071007 d.identity && ze.preencode(e, d.identity),
10081008 d.contact && Ge.preencode(e, d.contact),
1009 n >= 6 && d.readonly && Zr.preencode(e, d.readonly),
1010 n >= 11 && d.additionalNodes && Qe.preencode(e, d.additionalNodes),
1011 n >= 20 && d.buildType && Or.preencode(e, d.buildType))
1009 o >= 6 && d.readonly && _r.preencode(e, d.readonly),
1010 o >= 11 && d.additionalNodes && Qe.preencode(e, d.additionalNodes),
1011 o >= 20 && d.buildType && Ur.preencode(e, d.buildType))
10121012 },
1013 encode(d, o) {
1013 encode(d, n) {
10141014 const c =
1015 (o.room ? 1 : 0) |
1016 (o.identity ? 2 : 0) |
1017 (o.contact ? 4 : 0) |
1018 (n >= 6 && o.readonly ? 8 : 0) |
1019 (n >= 11 && o.additionalNodes ? 16 : 0) |
1020 (n >= 20 && o.buildType ? 32 : 0)
1015 (n.room ? 1 : 0) |
1016 (n.identity ? 2 : 0) |
1017 (n.contact ? 4 : 0) |
1018 (o >= 6 && n.readonly ? 8 : 0) |
1019 (o >= 11 && n.additionalNodes ? 16 : 0) |
1020 (o >= 20 && n.buildType ? 32 : 0)
10211021 ;(e.uint.encode(d, c),
1022 o.room && He.encode(d, o.room),
1023 o.identity && ze.encode(d, o.identity),
1024 o.contact && Ge.encode(d, o.contact),
1025 n >= 6 && o.readonly && Zr.encode(d, o.readonly),
1026 n >= 11 && o.additionalNodes && Qe.encode(d, o.additionalNodes),
1027 n >= 20 && o.buildType && Or.encode(d, o.buildType))
1022 n.room && He.encode(d, n.room),
1023 n.identity && ze.encode(d, n.identity),
1024 n.contact && Ge.encode(d, n.contact),
1025 o >= 6 && n.readonly && _r.encode(d, n.readonly),
1026 o >= 11 && n.additionalNodes && Qe.encode(d, n.additionalNodes),
1027 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
10281028 },
10291029 decode(d) {
1030 const o = e.uint.decode(d)
1030 const n = e.uint.decode(d)
10311031 return {
1032 room: 1 & o ? He.decode(d) : null,
1033 identity: 2 & o ? ze.decode(d) : null,
1034 contact: 4 & o ? Ge.decode(d) : null,
1035 readonly: n >= 6 && 8 & o ? Zr.decode(d) : null,
1036 additionalNodes: n >= 11 && 16 & o ? Qe.decode(d) : null,
1037 buildType: n >= 20 && 32 & o ? Or.decode(d) : null,
1032 room: 1 & n ? He.decode(d) : null,
1033 identity: 2 & n ? ze.decode(d) : null,
1034 contact: 4 & n ? Ge.decode(d) : null,
1035 readonly: o >= 6 && 8 & n ? _r.decode(d) : null,
1036 additionalNodes: o >= 11 && 16 & n ? Qe.decode(d) : null,
1037 buildType: o >= 20 && 32 & n ? Ur.decode(d) : null,
10381038 }
10391039 },
10401040 },
10411041 Xe = _,
10421042 Ye = {
1043 preencode(d, n) {
1044 ;(Xe.preencode(d, n.header), e.buffer.preencode(d, n.blindRequest))
1043 preencode(d, o) {
1044 ;(Xe.preencode(d, o.header), e.buffer.preencode(d, o.blindRequest))
10451045 },
1046 encode(d, n) {
1047 ;(Xe.encode(d, n.header), e.buffer.encode(d, n.blindRequest))
1046 encode(d, o) {
1047 ;(Xe.encode(d, o.header), e.buffer.encode(d, o.blindRequest))
10481048 },
10491049 decode: (d) => ({ header: Xe.decode(d), blindRequest: e.buffer.decode(d) }),
10501050 },
10511051 Ze = _,
10521052 $e = {
10531053 preencode(e, d) {
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && $r.preencode(e, d.profile))
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && et.preencode(e, d.profile))
10551055 },
1056 encode(d, n) {
1057 const o = n.profile ? 1 : 0
1058 ;(Ze.encode(d, n.header), e.uint.encode(d, o), n.profile && $r.encode(d, n.profile))
1056 encode(d, o) {
1057 const n = o.profile ? 1 : 0
1058 ;(Ze.encode(d, o.header), e.uint.encode(d, n), o.profile && et.encode(d, o.profile))
10591059 },
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? $r.decode(d) : null }),
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? et.decode(d) : null }),
10611061 },
10621062 _e = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({}) },
10631063 ed = _e,
10641064 dd = he,
1065 nd = {
1066 preencode(d, n) {
1067 ;(e.fixed32.preencode(d, n.deviceKey),
1068 e.fixed32.preencode(d, n.id),
1069 dd.preencode(d, n.request))
1065 od = {
1066 preencode(d, o) {
1067 ;(e.fixed32.preencode(d, o.deviceKey),
1068 e.fixed32.preencode(d, o.id),
1069 dd.preencode(d, o.request))
10701070 },
1071 encode(d, n) {
1072 ;(e.fixed32.encode(d, n.deviceKey), e.fixed32.encode(d, n.id), dd.encode(d, n.request))
1071 encode(d, o) {
1072 ;(e.fixed32.encode(d, o.deviceKey), e.fixed32.encode(d, o.id), dd.encode(d, o.request))
10731073 },
10741074 decode: (d) => ({
10751075 deviceKey: e.fixed32.decode(d),
……@@ -1077,95 +1077,95 @@ const o = {
10771077 request: dd.decode(d),
10781078 }),
10791079 },
1080 od = _,
1081 cd = Ce,
1080 nd = _,
1081 cd = Se,
10821082 rd = {
1083 preencode(d, n) {
1084 ;(od.preencode(d, n.header),
1085 e.fixed32.preencode(d, n.deviceKey),
1083 preencode(d, o) {
1084 ;(nd.preencode(d, o.header),
1085 e.fixed32.preencode(d, o.deviceKey),
10861086 d.end++,
1087 n.identity && cd.preencode(d, n.identity))
1087 o.identity && cd.preencode(d, o.identity))
10881088 },
1089 encode(d, n) {
1090 const o = n.identity ? 1 : 0
1091 ;(od.encode(d, n.header),
1092 e.fixed32.encode(d, n.deviceKey),
1093 e.uint.encode(d, o),
1094 n.identity && cd.encode(d, n.identity))
1089 encode(d, o) {
1090 const n = o.identity ? 1 : 0
1091 ;(nd.encode(d, o.header),
1092 e.fixed32.encode(d, o.deviceKey),
1093 e.uint.encode(d, n),
1094 o.identity && cd.encode(d, o.identity))
10951095 },
10961096 decode: (d) => ({
1097 header: od.decode(d),
1097 header: nd.decode(d),
10981098 deviceKey: e.fixed32.decode(d),
10991099 identity: 1 & e.uint.decode(d) ? cd.decode(d) : null,
11001100 }),
11011101 },
11021102 td = _,
11031103 id = {
1104 preencode(d, n) {
1105 ;(td.preencode(d, n.header), e.fixed32.preencode(d, n.deviceKey))
1104 preencode(d, o) {
1105 ;(td.preencode(d, o.header), e.fixed32.preencode(d, o.deviceKey))
11061106 },
1107 encode(d, n) {
1108 ;(td.encode(d, n.header), e.fixed32.encode(d, n.deviceKey))
1107 encode(d, o) {
1108 ;(td.encode(d, o.header), e.fixed32.encode(d, o.deviceKey))
11091109 },
11101110 decode: (d) => ({ header: td.decode(d), deviceKey: e.fixed32.decode(d) }),
11111111 },
1112 ad = e.frame(C),
1112 ad = e.frame(S),
11131113 sd = ue,
11141114 pd = {
1115 preencode(d, n) {
1116 ;(e.fixed32.preencode(d, n.key), ad.preencode(d, n.status), sd.preencode(d, n.profile))
1115 preencode(d, o) {
1116 ;(e.fixed32.preencode(d, o.key), ad.preencode(d, o.status), sd.preencode(d, o.profile))
11171117 },
1118 encode(d, n) {
1119 ;(e.fixed32.encode(d, n.key), ad.encode(d, n.status), sd.encode(d, n.profile))
1118 encode(d, o) {
1119 ;(e.fixed32.encode(d, o.key), ad.encode(d, o.status), sd.encode(d, o.profile))
11201120 },
11211121 decode: (d) => ({ key: e.fixed32.decode(d), status: ad.decode(d), profile: sd.decode(d) }),
11221122 },
11231123 ud = ad,
11241124 ld = ue,
11251125 fd = {
1126 preencode(d, n) {
1127 ;(e.fixed32.preencode(d, n.key),
1128 ud.preencode(d, n.status),
1129 ld.preencode(d, n.profile),
1126 preencode(d, o) {
1127 ;(e.fixed32.preencode(d, o.key),
1128 ud.preencode(d, o.status),
1129 ld.preencode(d, o.profile),
11301130 d.end++,
1131 n.proofs && _r.preencode(d, n.proofs))
1131 o.proofs && dt.preencode(d, o.proofs))
11321132 },
1133 encode(d, n) {
1134 const o = n.proofs ? 1 : 0
1135 ;(e.fixed32.encode(d, n.key),
1136 ud.encode(d, n.status),
1137 ld.encode(d, n.profile),
1138 e.uint.encode(d, o),
1139 n.proofs && _r.encode(d, n.proofs))
1133 encode(d, o) {
1134 const n = o.proofs ? 1 : 0
1135 ;(e.fixed32.encode(d, o.key),
1136 ud.encode(d, o.status),
1137 ld.encode(d, o.profile),
1138 e.uint.encode(d, n),
1139 o.proofs && dt.encode(d, o.proofs))
11401140 },
11411141 decode: (d) => ({
11421142 key: e.fixed32.decode(d),
11431143 status: ud.decode(d),
11441144 profile: ld.decode(d),
1145 proofs: 1 & e.uint.decode(d) ? _r.decode(d) : null,
1145 proofs: 1 & e.uint.decode(d) ? dt.decode(d) : null,
11461146 }),
11471147 },
11481148 md = {
1149 preencode(d, n) {
1150 ;(e.fixed32.preencode(d, n.key),
1149 preencode(d, o) {
1150 ;(e.fixed32.preencode(d, o.key),
11511151 d.end++,
1152 n.profileAttestation && e.buffer.preencode(d, n.profileAttestation),
1153 n.latestReceipt && e.buffer.preencode(d, n.latestReceipt))
1152 o.profileAttestation && e.buffer.preencode(d, o.profileAttestation),
1153 o.latestReceipt && e.buffer.preencode(d, o.latestReceipt))
11541154 },
1155 encode(d, n) {
1156 const o = (n.profileAttestation ? 1 : 0) | (n.latestReceipt ? 2 : 0)
1157 ;(e.fixed32.encode(d, n.key),
1158 e.uint.encode(d, o),
1159 n.profileAttestation && e.buffer.encode(d, n.profileAttestation),
1160 n.latestReceipt && e.buffer.encode(d, n.latestReceipt))
1155 encode(d, o) {
1156 const n = (o.profileAttestation ? 1 : 0) | (o.latestReceipt ? 2 : 0)
1157 ;(e.fixed32.encode(d, o.key),
1158 e.uint.encode(d, n),
1159 o.profileAttestation && e.buffer.encode(d, o.profileAttestation),
1160 o.latestReceipt && e.buffer.encode(d, o.latestReceipt))
11611161 },
11621162 decode(d) {
1163 const n = e.fixed32.decode(d),
1164 o = e.uint.decode(d)
1163 const o = e.fixed32.decode(d),
1164 n = e.uint.decode(d)
11651165 return {
1166 key: n,
1167 profileAttestation: 1 & o ? e.buffer.decode(d) : null,
1168 latestReceipt: 2 & o ? e.buffer.decode(d) : null,
1166 key: o,
1167 profileAttestation: 1 & n ? e.buffer.decode(d) : null,
1168 latestReceipt: 2 & n ? e.buffer.decode(d) : null,
11691169 }
11701170 },
11711171 },
……@@ -1181,19 +1181,19 @@ const o = {
11811181 decode: (e) => ({ header: yd.decode(e), member: xd.decode(e) }),
11821182 },
11831183 kd = _,
1184 vd = e.frame(M),
1184 vd = e.frame(C),
11851185 gd = {
1186 preencode(d, n) {
1187 ;(kd.preencode(d, n.header),
1188 e.fixed32.preencode(d, n.memberKey),
1189 e.uint.preencode(d, n.key),
1190 vd.preencode(d, n.status))
1186 preencode(d, o) {
1187 ;(kd.preencode(d, o.header),
1188 e.fixed32.preencode(d, o.memberKey),
1189 e.uint.preencode(d, o.key),
1190 vd.preencode(d, o.status))
11911191 },
1192 encode(d, n) {
1193 ;(kd.encode(d, n.header),
1194 e.fixed32.encode(d, n.memberKey),
1195 e.uint.encode(d, n.key),
1196 vd.encode(d, n.status))
1192 encode(d, o) {
1193 ;(kd.encode(d, o.header),
1194 e.fixed32.encode(d, o.memberKey),
1195 e.uint.encode(d, o.key),
1196 vd.encode(d, o.status))
11971197 },
11981198 decode: (d) => ({
11991199 header: kd.decode(d),
……@@ -1204,219 +1204,219 @@ const o = {
12041204 },
12051205 hd = _,
12061206 Kd = {
1207 preencode(d, n) {
1208 ;(hd.preencode(d, n.header), e.fixed32.preencode(d, n.key), d.end++)
1207 preencode(d, o) {
1208 ;(hd.preencode(d, o.header), e.fixed32.preencode(d, o.key), d.end++)
12091209 },
1210 encode(d, n) {
1211 const o = (n.isModerator ? 1 : 0) | (n.isAdmin ? 2 : 0)
1212 ;(hd.encode(d, n.header), e.fixed32.encode(d, n.key), e.uint.encode(d, o))
1210 encode(d, o) {
1211 const n = (o.isModerator ? 1 : 0) | (o.isAdmin ? 2 : 0)
1212 ;(hd.encode(d, o.header), e.fixed32.encode(d, o.key), e.uint.encode(d, n))
12131213 },
12141214 decode(d) {
1215 const n = hd.decode(d),
1216 o = e.fixed32.decode(d),
1215 const o = hd.decode(d),
1216 n = e.fixed32.decode(d),
12171217 c = e.uint.decode(d)
1218 return { header: n, key: o, isModerator: !!(1 & c), isAdmin: !!(2 & c) }
1218 return { header: o, key: n, isModerator: !!(1 & c), isAdmin: !!(2 & c) }
12191219 },
12201220 },
12211221 wd = _,
12221222 Td = {
1223 preencode(d, n) {
1224 ;(wd.preencode(d, n.header), e.fixed32.preencode(d, n.key))
1223 preencode(d, o) {
1224 ;(wd.preencode(d, o.header), e.fixed32.preencode(d, o.key))
12251225 },
1226 encode(d, n) {
1227 ;(wd.encode(d, n.header), e.fixed32.encode(d, n.key))
1226 encode(d, o) {
1227 ;(wd.encode(d, o.header), e.fixed32.encode(d, o.key))
12281228 },
12291229 decode: (d) => ({ header: wd.decode(d), key: e.fixed32.decode(d) }),
12301230 },
12311231 Pd = {
1232 preencode(d, n) {
1233 ;(e.fixed32.preencode(d, n.key), e.uint.preencode(d, n.mentions))
1232 preencode(d, o) {
1233 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.mentions))
12341234 },
1235 encode(d, n) {
1236 ;(e.fixed32.encode(d, n.key), e.uint.encode(d, n.mentions))
1235 encode(d, o) {
1236 ;(e.fixed32.encode(d, o.key), e.uint.encode(d, o.mentions))
12371237 },
12381238 decode: (d) => ({ key: e.fixed32.decode(d), mentions: e.uint.decode(d) }),
12391239 },
12401240 Ad = {
1241 preencode(d, n) {
1242 ;(d.end++, n.memberKey && e.fixed32.preencode(d, n.memberKey))
1241 preencode(d, o) {
1242 ;(d.end++, o.memberKey && e.fixed32.preencode(d, o.memberKey))
12431243 },
1244 encode(d, n) {
1245 const o = n.memberKey ? 1 : 0
1246 ;(e.uint.encode(d, o), n.memberKey && e.fixed32.encode(d, n.memberKey))
1244 encode(d, o) {
1245 const n = o.memberKey ? 1 : 0
1246 ;(e.uint.encode(d, n), o.memberKey && e.fixed32.encode(d, o.memberKey))
12471247 },
12481248 decode: (d) => ({ memberKey: 1 & e.uint.decode(d) ? e.fixed32.decode(d) : null }),
12491249 },
12501250 Rd = Ad,
12511251 Dd = {
1252 preencode(d, n) {
1253 ;(d.end++, n.from && e.string.preencode(d, n.from), n.to && e.string.preencode(d, n.to))
1252 preencode(d, o) {
1253 ;(d.end++, o.from && e.string.preencode(d, o.from), o.to && e.string.preencode(d, o.to))
12541254 },
1255 encode(d, n) {
1256 const o = (n.from ? 1 : 0) | (n.to ? 2 : 0)
1257 ;(e.uint.encode(d, o), n.from && e.string.encode(d, n.from), n.to && e.string.encode(d, n.to))
1255 encode(d, o) {
1256 const n = (o.from ? 1 : 0) | (o.to ? 2 : 0)
1257 ;(e.uint.encode(d, n), o.from && e.string.encode(d, o.from), o.to && e.string.encode(d, o.to))
12581258 },
12591259 decode(d) {
1260 const n = e.uint.decode(d)
1261 return { from: 1 & n ? e.string.decode(d) : null, to: 2 & n ? e.string.decode(d) : null }
1260 const o = e.uint.decode(d)
1261 return { from: 1 & o ? e.string.decode(d) : null, to: 2 & o ? e.string.decode(d) : null }
12621262 },
12631263 },
1264 Sd = e.frame(Ad),
1265 Cd = e.frame(Rd),
1266 Md = e.frame(Dd),
1264 Md = e.frame(Ad),
1265 Sd = e.frame(Rd),
1266 Cd = e.frame(Dd),
12671267 Ld = {
1268 preencode(d, o) {
1268 preencode(d, n) {
12691269 const c =
1270 (o.memberJoined ? 1 : 0) |
1271 (o.memberLeft ? 2 : 0) |
1272 (o.titleChanged ? 4 : 0) |
1273 (o.callStarted ? 8 : 0) |
1274 (o.callHangup ? 16 : 0) |
1275 (o.callMissed ? 32 : 0) |
1276 (n >= 3 && o.roomAvatarChanged ? 64 : 0) |
1277 (n >= 3 && o.invitationCreated ? 128 : 0) |
1278 (n >= 3 && o.memberRemoved ? 256 : 0) |
1279 (n >= 18 && o.locationShared ? 512 : 0)
1270 (n.memberJoined ? 1 : 0) |
1271 (n.memberLeft ? 2 : 0) |
1272 (n.titleChanged ? 4 : 0) |
1273 (n.callStarted ? 8 : 0) |
1274 (n.callHangup ? 16 : 0) |
1275 (n.callMissed ? 32 : 0) |
1276 (o >= 3 && n.roomAvatarChanged ? 64 : 0) |
1277 (o >= 3 && n.invitationCreated ? 128 : 0) |
1278 (o >= 3 && n.memberRemoved ? 256 : 0) |
1279 (o >= 18 && n.locationShared ? 512 : 0)
12801280 ;(e.uint.preencode(d, c),
1281 o.memberJoined && Sd.preencode(d, o.memberJoined),
1282 o.memberLeft && Cd.preencode(d, o.memberLeft),
1283 o.titleChanged && Md.preencode(d, o.titleChanged),
1284 n >= 3 && o.memberRemoved && et.preencode(d, o.memberRemoved),
1285 n >= 18 && o.locationShared && dt.preencode(d, o.locationShared))
1281 n.memberJoined && Md.preencode(d, n.memberJoined),
1282 n.memberLeft && Sd.preencode(d, n.memberLeft),
1283 n.titleChanged && Cd.preencode(d, n.titleChanged),
1284 o >= 3 && n.memberRemoved && ot.preencode(d, n.memberRemoved),
1285 o >= 18 && n.locationShared && nt.preencode(d, n.locationShared))
12861286 },
1287 encode(d, o) {
1287 encode(d, n) {
12881288 const c =
1289 (o.memberJoined ? 1 : 0) |
1290 (o.memberLeft ? 2 : 0) |
1291 (o.titleChanged ? 4 : 0) |
1292 (o.callStarted ? 8 : 0) |
1293 (o.callHangup ? 16 : 0) |
1294 (o.callMissed ? 32 : 0) |
1295 (n >= 3 && o.roomAvatarChanged ? 64 : 0) |
1296 (n >= 3 && o.invitationCreated ? 128 : 0) |
1297 (n >= 3 && o.memberRemoved ? 256 : 0) |
1298 (n >= 18 && o.locationShared ? 512 : 0)
1289 (n.memberJoined ? 1 : 0) |
1290 (n.memberLeft ? 2 : 0) |
1291 (n.titleChanged ? 4 : 0) |
1292 (n.callStarted ? 8 : 0) |
1293 (n.callHangup ? 16 : 0) |
1294 (n.callMissed ? 32 : 0) |
1295 (o >= 3 && n.roomAvatarChanged ? 64 : 0) |
1296 (o >= 3 && n.invitationCreated ? 128 : 0) |
1297 (o >= 3 && n.memberRemoved ? 256 : 0) |
1298 (o >= 18 && n.locationShared ? 512 : 0)
12991299 ;(e.uint.encode(d, c),
1300 o.memberJoined && Sd.encode(d, o.memberJoined),
1301 o.memberLeft && Cd.encode(d, o.memberLeft),
1302 o.titleChanged && Md.encode(d, o.titleChanged),
1303 n >= 3 && o.memberRemoved && et.encode(d, o.memberRemoved),
1304 n >= 18 && o.locationShared && dt.encode(d, o.locationShared))
1300 n.memberJoined && Md.encode(d, n.memberJoined),
1301 n.memberLeft && Sd.encode(d, n.memberLeft),
1302 n.titleChanged && Cd.encode(d, n.titleChanged),
1303 o >= 3 && n.memberRemoved && ot.encode(d, n.memberRemoved),
1304 o >= 18 && n.locationShared && nt.encode(d, n.locationShared))
13051305 },
13061306 decode(d) {
1307 const o = e.uint.decode(d)
1307 const n = e.uint.decode(d)
13081308 return {
1309 memberJoined: 1 & o ? Sd.decode(d) : null,
1310 memberLeft: 2 & o ? Cd.decode(d) : null,
1311 titleChanged: 4 & o ? Md.decode(d) : null,
1312 callStarted: !!(8 & o),
1313 callHangup: !!(16 & o),
1314 callMissed: !!(32 & o),
1315 roomAvatarChanged: n >= 3 && !!(64 & o),
1316 invitationCreated: n >= 3 && !!(128 & o),
1317 memberRemoved: n >= 3 && 256 & o ? et.decode(d) : null,
1318 locationShared: n >= 18 && 512 & o ? dt.decode(d) : null,
1309 memberJoined: 1 & n ? Md.decode(d) : null,
1310 memberLeft: 2 & n ? Sd.decode(d) : null,
1311 titleChanged: 4 & n ? Cd.decode(d) : null,
1312 callStarted: !!(8 & n),
1313 callHangup: !!(16 & n),
1314 callMissed: !!(32 & n),
1315 roomAvatarChanged: o >= 3 && !!(64 & n),
1316 invitationCreated: o >= 3 && !!(128 & n),
1317 memberRemoved: o >= 3 && 256 & n ? ot.decode(d) : null,
1318 locationShared: o >= 18 && 512 & n ? nt.decode(d) : null,
13191319 }
13201320 },
13211321 },
13221322 qd = {
13231323 preencode(e, d) {
1324 ;(e.end++, n >= 18 && d.locationShared && nt.preencode(e, d.locationShared))
1324 ;(e.end++, o >= 18 && d.locationShared && ct.preencode(e, d.locationShared))
13251325 },
1326 encode(d, o) {
1326 encode(d, n) {
13271327 const c =
1328 (o.callStarted ? 1 : 0) |
1329 (o.callHangup ? 2 : 0) |
1330 (o.callMissed ? 4 : 0) |
1331 (n >= 18 && o.locationShared ? 8 : 0)
1332 ;(e.uint.encode(d, c), n >= 18 && o.locationShared && nt.encode(d, o.locationShared))
1328 (n.callStarted ? 1 : 0) |
1329 (n.callHangup ? 2 : 0) |
1330 (n.callMissed ? 4 : 0) |
1331 (o >= 18 && n.locationShared ? 8 : 0)
1332 ;(e.uint.encode(d, c), o >= 18 && n.locationShared && ct.encode(d, n.locationShared))
13331333 },
13341334 decode(d) {
1335 const o = e.uint.decode(d)
1335 const n = e.uint.decode(d)
13361336 return {
1337 callStarted: !!(1 & o),
1338 callHangup: !!(2 & o),
1339 callMissed: !!(4 & o),
1340 locationShared: n >= 18 && 8 & o ? nt.decode(d) : null,
1337 callStarted: !!(1 & n),
1338 callHangup: !!(2 & n),
1339 callMissed: !!(4 & n),
1340 locationShared: o >= 18 && 8 & n ? ct.decode(d) : null,
13411341 }
13421342 },
13431343 },
13441344 Fd = {
1345 preencode(d, n) {
1346 ;(e.uint.preencode(d, n.start), e.uint.preencode(d, n.length))
1345 preencode(d, o) {
1346 ;(e.uint.preencode(d, o.start), e.uint.preencode(d, o.length))
13471347 },
1348 encode(d, n) {
1349 ;(e.uint.encode(d, n.start), e.uint.encode(d, n.length))
1348 encode(d, o) {
1349 ;(e.uint.encode(d, o.start), e.uint.encode(d, o.length))
13501350 },
13511351 decode: (d) => ({ start: e.uint.decode(d), length: e.uint.decode(d) }),
13521352 },
13531353 Ed = e.frame(Fd),
13541354 Bd = {
1355 preencode(d, n) {
1356 ;(Ed.preencode(d, n.range), e.string.preencode(d, n.content))
1355 preencode(d, o) {
1356 ;(Ed.preencode(d, o.range), e.string.preencode(d, o.content))
13571357 },
1358 encode(d, n) {
1359 ;(Ed.encode(d, n.range), e.string.encode(d, n.content))
1358 encode(d, o) {
1359 ;(Ed.encode(d, o.range), e.string.encode(d, o.content))
13601360 },
13611361 decode: (d) => ({ range: Ed.decode(d), content: e.string.decode(d) }),
13621362 },
13631363 Id = Ed,
13641364 Nd = {
1365 preencode(d, n) {
1366 ;(Id.preencode(d, n.range), e.fixed32.preencode(d, n.memberKey))
1365 preencode(d, o) {
1366 ;(Id.preencode(d, o.range), e.fixed32.preencode(d, o.memberKey))
13671367 },
1368 encode(d, n) {
1369 ;(Id.encode(d, n.range), e.fixed32.encode(d, n.memberKey))
1368 encode(d, o) {
1369 ;(Id.encode(d, o.range), e.fixed32.encode(d, o.memberKey))
13701370 },
13711371 decode: (d) => ({ range: Id.decode(d), memberKey: e.fixed32.decode(d) }),
13721372 },
13731373 jd = h,
1374 Od = e.array(e.uint),
1375 Jd = {
1376 preencode(d, o) {
1374 Ud = e.array(e.uint),
1375 Od = {
1376 preencode(d, n) {
13771377 ;(d.end++,
1378 o.title && e.string.preencode(d, o.title),
1379 o.description && e.string.preencode(d, o.description),
1380 o.file && jd.preencode(d, o.file),
1381 n >= 7 && o.files && Od.preencode(d, o.files))
1378 n.title && e.string.preencode(d, n.title),
1379 n.description && e.string.preencode(d, n.description),
1380 n.file && jd.preencode(d, n.file),
1381 o >= 7 && n.files && Ud.preencode(d, n.files))
13821382 },
1383 encode(d, o) {
1383 encode(d, n) {
13841384 const c =
1385 (o.title ? 1 : 0) | (o.description ? 2 : 0) | (o.file ? 4 : 0) | (n >= 7 && o.files ? 8 : 0)
1385 (n.title ? 1 : 0) | (n.description ? 2 : 0) | (n.file ? 4 : 0) | (o >= 7 && n.files ? 8 : 0)
13861386 ;(e.uint.encode(d, c),
1387 o.title && e.string.encode(d, o.title),
1388 o.description && e.string.encode(d, o.description),
1389 o.file && jd.encode(d, o.file),
1390 n >= 7 && o.files && Od.encode(d, o.files))
1387 n.title && e.string.encode(d, n.title),
1388 n.description && e.string.encode(d, n.description),
1389 n.file && jd.encode(d, n.file),
1390 o >= 7 && n.files && Ud.encode(d, n.files))
13911391 },
13921392 decode(d) {
1393 const o = e.uint.decode(d)
1393 const n = e.uint.decode(d)
13941394 return {
1395 title: 1 & o ? e.string.decode(d) : null,
1396 description: 2 & o ? e.string.decode(d) : null,
1397 file: 4 & o ? jd.decode(d) : null,
1398 files: n >= 7 && 8 & o ? Od.decode(d) : null,
1395 title: 1 & n ? e.string.decode(d) : null,
1396 description: 2 & n ? e.string.decode(d) : null,
1397 file: 4 & n ? jd.decode(d) : null,
1398 files: o >= 7 && 8 & n ? Ud.decode(d) : null,
13991399 }
14001400 },
14011401 },
1402 Ud = Ed,
1403 Vd = e.frame(Jd),
1402 Jd = Ed,
1403 Vd = e.frame(Od),
14041404 Hd = {
1405 preencode(d, n) {
1406 ;(Ud.preencode(d, n.range),
1407 e.string.preencode(d, n.url),
1405 preencode(d, o) {
1406 ;(Jd.preencode(d, o.range),
1407 e.string.preencode(d, o.url),
14081408 d.end++,
1409 n.preview && Vd.preencode(d, n.preview))
1409 o.preview && Vd.preencode(d, o.preview))
14101410 },
1411 encode(d, n) {
1412 const o = n.preview ? 1 : 0
1413 ;(Ud.encode(d, n.range),
1414 e.string.encode(d, n.url),
1415 e.uint.encode(d, o),
1416 n.preview && Vd.encode(d, n.preview))
1411 encode(d, o) {
1412 const n = o.preview ? 1 : 0
1413 ;(Jd.encode(d, o.range),
1414 e.string.encode(d, o.url),
1415 e.uint.encode(d, n),
1416 o.preview && Vd.encode(d, o.preview))
14171417 },
14181418 decode: (d) => ({
1419 range: Ud.decode(d),
1419 range: Jd.decode(d),
14201420 url: e.string.decode(d),
14211421 preview: 1 & e.uint.decode(d) ? Vd.decode(d) : null,
14221422 }),
……@@ -1430,702 +1430,702 @@ const o = {
14301430 Zd = e.array(e.frame(Bd)),
14311431 $d = Wd,
14321432 _d = Wd,
1433 en = {
1434 preencode(d, o) {
1433 eo = {
1434 preencode(d, n) {
14351435 const c =
1436 (o.mention ? 1 : 0) |
1437 (o.httpLink ? 2 : 0) |
1438 (o.pearLink ? 4 : 0) |
1439 (o.bold ? 8 : 0) |
1440 (o.italic ? 16 : 0) |
1441 (o.code ? 32 : 0) |
1442 (o.emoji ? 64 : 0) |
1443 (o.codeBlock ? 128 : 0) |
1444 (o.strike ? 256 : 0) |
1445 (n >= 11 && o.translation ? 512 : 0)
1436 (n.mention ? 1 : 0) |
1437 (n.httpLink ? 2 : 0) |
1438 (n.pearLink ? 4 : 0) |
1439 (n.bold ? 8 : 0) |
1440 (n.italic ? 16 : 0) |
1441 (n.code ? 32 : 0) |
1442 (n.emoji ? 64 : 0) |
1443 (n.codeBlock ? 128 : 0) |
1444 (n.strike ? 256 : 0) |
1445 (o >= 11 && n.translation ? 512 : 0)
14461446 ;(e.uint.preencode(d, c),
1447 o.mention && zd.preencode(d, o.mention),
1448 o.httpLink && Gd.preencode(d, o.httpLink),
1449 o.pearLink && Qd.preencode(d, o.pearLink),
1450 o.bold && Wd.preencode(d, o.bold),
1451 o.italic && Xd.preencode(d, o.italic),
1452 o.code && Yd.preencode(d, o.code),
1453 o.emoji && Zd.preencode(d, o.emoji),
1454 o.codeBlock && $d.preencode(d, o.codeBlock),
1455 o.strike && _d.preencode(d, o.strike),
1456 n >= 11 && o.translation && ot.preencode(d, o.translation))
1447 n.mention && zd.preencode(d, n.mention),
1448 n.httpLink && Gd.preencode(d, n.httpLink),
1449 n.pearLink && Qd.preencode(d, n.pearLink),
1450 n.bold && Wd.preencode(d, n.bold),
1451 n.italic && Xd.preencode(d, n.italic),
1452 n.code && Yd.preencode(d, n.code),
1453 n.emoji && Zd.preencode(d, n.emoji),
1454 n.codeBlock && $d.preencode(d, n.codeBlock),
1455 n.strike && _d.preencode(d, n.strike),
1456 o >= 11 && n.translation && rt.preencode(d, n.translation))
14571457 },
1458 encode(d, o) {
1458 encode(d, n) {
14591459 const c =
1460 (o.mention ? 1 : 0) |
1461 (o.httpLink ? 2 : 0) |
1462 (o.pearLink ? 4 : 0) |
1463 (o.bold ? 8 : 0) |
1464 (o.italic ? 16 : 0) |
1465 (o.code ? 32 : 0) |
1466 (o.emoji ? 64 : 0) |
1467 (o.codeBlock ? 128 : 0) |
1468 (o.strike ? 256 : 0) |
1469 (n >= 11 && o.translation ? 512 : 0)
1460 (n.mention ? 1 : 0) |
1461 (n.httpLink ? 2 : 0) |
1462 (n.pearLink ? 4 : 0) |
1463 (n.bold ? 8 : 0) |
1464 (n.italic ? 16 : 0) |
1465 (n.code ? 32 : 0) |
1466 (n.emoji ? 64 : 0) |
1467 (n.codeBlock ? 128 : 0) |
1468 (n.strike ? 256 : 0) |
1469 (o >= 11 && n.translation ? 512 : 0)
14701470 ;(e.uint.encode(d, c),
1471 o.mention && zd.encode(d, o.mention),
1472 o.httpLink && Gd.encode(d, o.httpLink),
1473 o.pearLink && Qd.encode(d, o.pearLink),
1474 o.bold && Wd.encode(d, o.bold),
1475 o.italic && Xd.encode(d, o.italic),
1476 o.code && Yd.encode(d, o.code),
1477 o.emoji && Zd.encode(d, o.emoji),
1478 o.codeBlock && $d.encode(d, o.codeBlock),
1479 o.strike && _d.encode(d, o.strike),
1480 n >= 11 && o.translation && ot.encode(d, o.translation))
1471 n.mention && zd.encode(d, n.mention),
1472 n.httpLink && Gd.encode(d, n.httpLink),
1473 n.pearLink && Qd.encode(d, n.pearLink),
1474 n.bold && Wd.encode(d, n.bold),
1475 n.italic && Xd.encode(d, n.italic),
1476 n.code && Yd.encode(d, n.code),
1477 n.emoji && Zd.encode(d, n.emoji),
1478 n.codeBlock && $d.encode(d, n.codeBlock),
1479 n.strike && _d.encode(d, n.strike),
1480 o >= 11 && n.translation && rt.encode(d, n.translation))
14811481 },
14821482 decode(d) {
1483 const o = e.uint.decode(d)
1483 const n = e.uint.decode(d)
14841484 return {
1485 mention: 1 & o ? zd.decode(d) : null,
1486 httpLink: 2 & o ? Gd.decode(d) : null,
1487 pearLink: 4 & o ? Qd.decode(d) : null,
1488 bold: 8 & o ? Wd.decode(d) : null,
1489 italic: 16 & o ? Xd.decode(d) : null,
1490 code: 32 & o ? Yd.decode(d) : null,
1491 emoji: 64 & o ? Zd.decode(d) : null,
1492 codeBlock: 128 & o ? $d.decode(d) : null,
1493 strike: 256 & o ? _d.decode(d) : null,
1494 translation: n >= 11 && 512 & o ? ot.decode(d) : null,
1485 mention: 1 & n ? zd.decode(d) : null,
1486 httpLink: 2 & n ? Gd.decode(d) : null,
1487 pearLink: 4 & n ? Qd.decode(d) : null,
1488 bold: 8 & n ? Wd.decode(d) : null,
1489 italic: 16 & n ? Xd.decode(d) : null,
1490 code: 32 & n ? Yd.decode(d) : null,
1491 emoji: 64 & n ? Zd.decode(d) : null,
1492 codeBlock: 128 & n ? $d.decode(d) : null,
1493 strike: 256 & n ? _d.decode(d) : null,
1494 translation: o >= 11 && 512 & n ? rt.decode(d) : null,
14951495 }
14961496 },
14971497 },
1498 dn = e.array(e.frame(g)),
1499 nn = e.frame(en),
1500 on = e.frame(qd),
1501 cn = {
1502 preencode(d, n) {
1498 oo = e.array(e.frame(g)),
1499 no = e.frame(eo),
1500 co = e.frame(qd),
1501 ro = {
1502 preencode(d, o) {
15031503 ;(d.end++,
1504 n.text && e.string.preencode(d, n.text),
1505 n.files && dn.preencode(d, n.files),
1506 n.display && nn.preencode(d, n.display),
1507 n.replyTo && c.preencode(d, n.replyTo),
1508 n.parent && c.preencode(d, n.parent),
1509 n.event && on.preencode(d, n.event))
1504 o.text && e.string.preencode(d, o.text),
1505 o.files && oo.preencode(d, o.files),
1506 o.display && no.preencode(d, o.display),
1507 o.replyTo && c.preencode(d, o.replyTo),
1508 o.parent && c.preencode(d, o.parent),
1509 o.event && co.preencode(d, o.event))
15101510 },
1511 encode(d, o) {
1511 encode(d, n) {
15121512 const r =
1513 (o.text ? 1 : 0) |
1514 (o.files ? 2 : 0) |
1515 (o.display ? 4 : 0) |
1516 (o.replyTo ? 8 : 0) |
1517 (o.parent ? 16 : 0) |
1518 (o.event ? 32 : 0) |
1519 (n >= 18 && o.forwarded ? 64 : 0)
1513 (n.text ? 1 : 0) |
1514 (n.files ? 2 : 0) |
1515 (n.display ? 4 : 0) |
1516 (n.replyTo ? 8 : 0) |
1517 (n.parent ? 16 : 0) |
1518 (n.event ? 32 : 0) |
1519 (o >= 18 && n.forwarded ? 64 : 0)
15201520 ;(e.uint.encode(d, r),
1521 o.text && e.string.encode(d, o.text),
1522 o.files && dn.encode(d, o.files),
1523 o.display && nn.encode(d, o.display),
1524 o.replyTo && c.encode(d, o.replyTo),
1525 o.parent && c.encode(d, o.parent),
1526 o.event && on.encode(d, o.event))
1521 n.text && e.string.encode(d, n.text),
1522 n.files && oo.encode(d, n.files),
1523 n.display && no.encode(d, n.display),
1524 n.replyTo && c.encode(d, n.replyTo),
1525 n.parent && c.encode(d, n.parent),
1526 n.event && co.encode(d, n.event))
15271527 },
15281528 decode(d) {
1529 const o = e.uint.decode(d)
1529 const n = e.uint.decode(d)
15301530 return {
1531 text: 1 & o ? e.string.decode(d) : null,
1532 files: 2 & o ? dn.decode(d) : null,
1533 display: 4 & o ? nn.decode(d) : null,
1534 replyTo: 8 & o ? c.decode(d) : null,
1535 parent: 16 & o ? c.decode(d) : null,
1536 event: 32 & o ? on.decode(d) : null,
1537 forwarded: n >= 18 && !!(64 & o),
1531 text: 1 & n ? e.string.decode(d) : null,
1532 files: 2 & n ? oo.decode(d) : null,
1533 display: 4 & n ? no.decode(d) : null,
1534 replyTo: 8 & n ? c.decode(d) : null,
1535 parent: 16 & n ? c.decode(d) : null,
1536 event: 32 & n ? co.decode(d) : null,
1537 forwarded: o >= 18 && !!(64 & n),
15381538 }
15391539 },
15401540 },
1541 rn = Od,
1542 tn = nn,
1543 an = {
1544 preencode(d, n) {
1541 to = Ud,
1542 io = no,
1543 ao = {
1544 preencode(d, o) {
15451545 ;(d.end++,
1546 n.text && e.string.preencode(d, n.text),
1547 n.files && rn.preencode(d, n.files),
1548 n.display && tn.preencode(d, n.display),
1549 n.replyTo && c.preencode(d, n.replyTo),
1550 n.parent && c.preencode(d, n.parent))
1546 o.text && e.string.preencode(d, o.text),
1547 o.files && to.preencode(d, o.files),
1548 o.display && io.preencode(d, o.display),
1549 o.replyTo && c.preencode(d, o.replyTo),
1550 o.parent && c.preencode(d, o.parent))
15511551 },
1552 encode(d, o) {
1552 encode(d, n) {
15531553 const r =
1554 (o.text ? 1 : 0) |
1555 (o.files ? 2 : 0) |
1556 (o.display ? 4 : 0) |
1557 (o.replyTo ? 8 : 0) |
1558 (o.parent ? 16 : 0) |
1559 (n >= 18 && o.forwarded ? 32 : 0)
1554 (n.text ? 1 : 0) |
1555 (n.files ? 2 : 0) |
1556 (n.display ? 4 : 0) |
1557 (n.replyTo ? 8 : 0) |
1558 (n.parent ? 16 : 0) |
1559 (o >= 18 && n.forwarded ? 32 : 0)
15601560 ;(e.uint.encode(d, r),
1561 o.text && e.string.encode(d, o.text),
1562 o.files && rn.encode(d, o.files),
1563 o.display && tn.encode(d, o.display),
1564 o.replyTo && c.encode(d, o.replyTo),
1565 o.parent && c.encode(d, o.parent))
1561 n.text && e.string.encode(d, n.text),
1562 n.files && to.encode(d, n.files),
1563 n.display && io.encode(d, n.display),
1564 n.replyTo && c.encode(d, n.replyTo),
1565 n.parent && c.encode(d, n.parent))
15661566 },
15671567 decode(d) {
1568 const o = e.uint.decode(d)
1568 const n = e.uint.decode(d)
15691569 return {
1570 text: 1 & o ? e.string.decode(d) : null,
1571 files: 2 & o ? rn.decode(d) : null,
1572 display: 4 & o ? tn.decode(d) : null,
1573 replyTo: 8 & o ? c.decode(d) : null,
1574 parent: 16 & o ? c.decode(d) : null,
1575 forwarded: n >= 18 && !!(32 & o),
1570 text: 1 & n ? e.string.decode(d) : null,
1571 files: 2 & n ? to.decode(d) : null,
1572 display: 4 & n ? io.decode(d) : null,
1573 replyTo: 8 & n ? c.decode(d) : null,
1574 parent: 16 & n ? c.decode(d) : null,
1575 forwarded: o >= 18 && !!(32 & n),
15761576 }
15771577 },
15781578 },
1579 sn = dn,
1580 pn = nn,
1581 un = {
1582 preencode(d, n) {
1579 so = oo,
1580 po = no,
1581 uo = {
1582 preencode(d, o) {
15831583 ;(d.end++,
1584 n.text && e.string.preencode(d, n.text),
1585 n.files && sn.preencode(d, n.files),
1586 n.display && pn.preencode(d, n.display),
1587 n.replyTo && c.preencode(d, n.replyTo),
1588 n.parent && c.preencode(d, n.parent))
1584 o.text && e.string.preencode(d, o.text),
1585 o.files && so.preencode(d, o.files),
1586 o.display && po.preencode(d, o.display),
1587 o.replyTo && c.preencode(d, o.replyTo),
1588 o.parent && c.preencode(d, o.parent))
15891589 },
1590 encode(d, o) {
1590 encode(d, n) {
15911591 const r =
1592 (o.text ? 1 : 0) |
1593 (o.files ? 2 : 0) |
1594 (o.display ? 4 : 0) |
1595 (o.replyTo ? 8 : 0) |
1596 (o.parent ? 16 : 0) |
1597 (n >= 18 && o.forwarded ? 32 : 0)
1592 (n.text ? 1 : 0) |
1593 (n.files ? 2 : 0) |
1594 (n.display ? 4 : 0) |
1595 (n.replyTo ? 8 : 0) |
1596 (n.parent ? 16 : 0) |
1597 (o >= 18 && n.forwarded ? 32 : 0)
15981598 ;(e.uint.encode(d, r),
1599 o.text && e.string.encode(d, o.text),
1600 o.files && sn.encode(d, o.files),
1601 o.display && pn.encode(d, o.display),
1602 o.replyTo && c.encode(d, o.replyTo),
1603 o.parent && c.encode(d, o.parent))
1599 n.text && e.string.encode(d, n.text),
1600 n.files && so.encode(d, n.files),
1601 n.display && po.encode(d, n.display),
1602 n.replyTo && c.encode(d, n.replyTo),
1603 n.parent && c.encode(d, n.parent))
16041604 },
16051605 decode(d) {
1606 const o = e.uint.decode(d)
1606 const n = e.uint.decode(d)
16071607 return {
1608 text: 1 & o ? e.string.decode(d) : null,
1609 files: 2 & o ? sn.decode(d) : null,
1610 display: 4 & o ? pn.decode(d) : null,
1611 replyTo: 8 & o ? c.decode(d) : null,
1612 parent: 16 & o ? c.decode(d) : null,
1613 forwarded: n >= 18 && !!(32 & o),
1608 text: 1 & n ? e.string.decode(d) : null,
1609 files: 2 & n ? so.decode(d) : null,
1610 display: 4 & n ? po.decode(d) : null,
1611 replyTo: 8 & n ? c.decode(d) : null,
1612 parent: 16 & n ? c.decode(d) : null,
1613 forwarded: o >= 18 && !!(32 & n),
16141614 }
16151615 },
16161616 },
1617 ln = {
1617 lo = {
16181618 preencode(e, d) {
16191619 e.end++
16201620 },
1621 encode(d, n) {
1622 const o = (n.isEdited ? 1 : 0) | (n.isDeleted ? 2 : 0) | (n.isPinned ? 4 : 0)
1623 e.uint.encode(d, o)
1621 encode(d, o) {
1622 const n = (o.isEdited ? 1 : 0) | (o.isDeleted ? 2 : 0) | (o.isPinned ? 4 : 0)
1623 e.uint.encode(d, n)
16241624 },
16251625 decode(d) {
1626 const n = e.uint.decode(d)
1627 return { isEdited: !!(1 & n), isDeleted: !!(2 & n), isPinned: !!(4 & n) }
1626 const o = e.uint.decode(d)
1627 return { isEdited: !!(1 & o), isDeleted: !!(2 & o), isPinned: !!(4 & o) }
16281628 },
16291629 },
1630 fn = {
1631 preencode(d, n) {
1632 ;(e.uint.preencode(d, n.thread), e.uint.preencode(d, n.index))
1630 fo = {
1631 preencode(d, o) {
1632 ;(e.uint.preencode(d, o.thread), e.uint.preencode(d, o.index))
16331633 },
1634 encode(d, n) {
1635 ;(e.uint.encode(d, n.thread), e.uint.encode(d, n.index))
1634 encode(d, o) {
1635 ;(e.uint.encode(d, o.thread), e.uint.encode(d, o.index))
16361636 },
16371637 decode: (d) => ({ thread: e.uint.decode(d), index: e.uint.decode(d) }),
16381638 },
1639 mn = e.frame(J),
1640 yn = {
1641 preencode(d, n) {
1642 ;(e.uint.preencode(d, n.id),
1643 e.uint.preencode(d, n.count),
1639 mo = e.frame(O),
1640 yo = {
1641 preencode(d, o) {
1642 ;(e.uint.preencode(d, o.id),
1643 e.uint.preencode(d, o.count),
16441644 d.end++,
1645 n.parent && c.preencode(d, n.parent),
1646 n.stats && mn.preencode(d, n.stats))
1645 o.parent && c.preencode(d, o.parent),
1646 o.stats && mo.preencode(d, o.stats))
16471647 },
1648 encode(d, n) {
1649 const o = (n.parent ? 1 : 0) | (n.stats ? 2 : 0)
1650 ;(e.uint.encode(d, n.id),
1651 e.uint.encode(d, n.count),
1652 e.uint.encode(d, o),
1653 n.parent && c.encode(d, n.parent),
1654 n.stats && mn.encode(d, n.stats))
1648 encode(d, o) {
1649 const n = (o.parent ? 1 : 0) | (o.stats ? 2 : 0)
1650 ;(e.uint.encode(d, o.id),
1651 e.uint.encode(d, o.count),
1652 e.uint.encode(d, n),
1653 o.parent && c.encode(d, o.parent),
1654 o.stats && mo.encode(d, o.stats))
16551655 },
16561656 decode(d) {
1657 const n = e.uint.decode(d),
1658 o = e.uint.decode(d),
1657 const o = e.uint.decode(d),
1658 n = e.uint.decode(d),
16591659 r = e.uint.decode(d)
16601660 return {
1661 id: n,
1662 count: o,
1661 id: o,
1662 count: n,
16631663 parent: 1 & r ? c.decode(d) : null,
1664 stats: 2 & r ? mn.decode(d) : null,
1664 stats: 2 & r ? mo.decode(d) : null,
16651665 }
16661666 },
16671667 },
1668 xn = e.frame(ln),
1669 bn = e.frame(an),
1670 kn = e.frame(Ld),
1671 vn = {
1672 preencode(d, n) {
1673 ;(fn.preencode(d, n.id),
1674 c.preencode(d, n.oplog),
1675 e.uint.preencode(d, n.clock),
1676 e.uint.preencode(d, n.timestamp),
1668 xo = e.frame(lo),
1669 bo = e.frame(ao),
1670 ko = e.frame(Ld),
1671 vo = {
1672 preencode(d, o) {
1673 ;(fo.preencode(d, o.id),
1674 c.preencode(d, o.oplog),
1675 e.uint.preencode(d, o.clock),
1676 e.uint.preencode(d, o.timestamp),
16771677 d.end++,
1678 n.editedAt && e.uint.preencode(d, n.editedAt),
1679 xn.preencode(d, n.status),
1680 n.message && bn.preencode(d, n.message),
1681 n.event && kn.preencode(d, n.event))
1678 o.editedAt && e.uint.preencode(d, o.editedAt),
1679 xo.preencode(d, o.status),
1680 o.message && bo.preencode(d, o.message),
1681 o.event && ko.preencode(d, o.event))
16821682 },
1683 encode(d, n) {
1684 const o = (n.editedAt ? 1 : 0) | (n.message ? 2 : 0) | (n.event ? 4 : 0)
1685 ;(fn.encode(d, n.id),
1686 c.encode(d, n.oplog),
1687 e.uint.encode(d, n.clock),
1688 e.uint.encode(d, n.timestamp),
1689 e.uint.encode(d, o),
1690 n.editedAt && e.uint.encode(d, n.editedAt),
1691 xn.encode(d, n.status),
1692 n.message && bn.encode(d, n.message),
1693 n.event && kn.encode(d, n.event))
1683 encode(d, o) {
1684 const n = (o.editedAt ? 1 : 0) | (o.message ? 2 : 0) | (o.event ? 4 : 0)
1685 ;(fo.encode(d, o.id),
1686 c.encode(d, o.oplog),
1687 e.uint.encode(d, o.clock),
1688 e.uint.encode(d, o.timestamp),
1689 e.uint.encode(d, n),
1690 o.editedAt && e.uint.encode(d, o.editedAt),
1691 xo.encode(d, o.status),
1692 o.message && bo.encode(d, o.message),
1693 o.event && ko.encode(d, o.event))
16941694 },
16951695 decode(d) {
1696 const n = fn.decode(d),
1697 o = c.decode(d),
1696 const o = fo.decode(d),
1697 n = c.decode(d),
16981698 r = e.uint.decode(d),
16991699 t = e.uint.decode(d),
17001700 i = e.uint.decode(d)
17011701 return {
1702 id: n,
1703 oplog: o,
1702 id: o,
1703 oplog: n,
17041704 clock: r,
17051705 timestamp: t,
17061706 editedAt: 1 & i ? e.uint.decode(d) : 0,
1707 status: xn.decode(d),
1708 message: 2 & i ? bn.decode(d) : null,
1709 event: 4 & i ? kn.decode(d) : null,
1707 status: xo.decode(d),
1708 message: 2 & i ? bo.decode(d) : null,
1709 event: 4 & i ? ko.decode(d) : null,
17101710 }
17111711 },
17121712 },
1713 gn = xn,
1714 hn = e.frame(un),
1715 Kn = kn,
1716 wn = {
1717 preencode(d, n) {
1718 ;(fn.preencode(d, n.id),
1719 c.preencode(d, n.oplog),
1720 e.uint.preencode(d, n.clock),
1721 e.uint.preencode(d, n.timestamp),
1713 go = xo,
1714 ho = e.frame(uo),
1715 Ko = ko,
1716 wo = {
1717 preencode(d, o) {
1718 ;(fo.preencode(d, o.id),
1719 c.preencode(d, o.oplog),
1720 e.uint.preencode(d, o.clock),
1721 e.uint.preencode(d, o.timestamp),
17221722 d.end++,
1723 n.editedAt && e.uint.preencode(d, n.editedAt),
1724 gn.preencode(d, n.status),
1725 n.message && hn.preencode(d, n.message),
1726 n.event && Kn.preencode(d, n.event))
1723 o.editedAt && e.uint.preencode(d, o.editedAt),
1724 go.preencode(d, o.status),
1725 o.message && ho.preencode(d, o.message),
1726 o.event && Ko.preencode(d, o.event))
17271727 },
1728 encode(d, n) {
1729 const o = (n.editedAt ? 1 : 0) | (n.message ? 2 : 0) | (n.event ? 4 : 0)
1730 ;(fn.encode(d, n.id),
1731 c.encode(d, n.oplog),
1732 e.uint.encode(d, n.clock),
1733 e.uint.encode(d, n.timestamp),
1734 e.uint.encode(d, o),
1735 n.editedAt && e.uint.encode(d, n.editedAt),
1736 gn.encode(d, n.status),
1737 n.message && hn.encode(d, n.message),
1738 n.event && Kn.encode(d, n.event))
1728 encode(d, o) {
1729 const n = (o.editedAt ? 1 : 0) | (o.message ? 2 : 0) | (o.event ? 4 : 0)
1730 ;(fo.encode(d, o.id),
1731 c.encode(d, o.oplog),
1732 e.uint.encode(d, o.clock),
1733 e.uint.encode(d, o.timestamp),
1734 e.uint.encode(d, n),
1735 o.editedAt && e.uint.encode(d, o.editedAt),
1736 go.encode(d, o.status),
1737 o.message && ho.encode(d, o.message),
1738 o.event && Ko.encode(d, o.event))
17391739 },
17401740 decode(d) {
1741 const n = fn.decode(d),
1742 o = c.decode(d),
1741 const o = fo.decode(d),
1742 n = c.decode(d),
17431743 r = e.uint.decode(d),
17441744 t = e.uint.decode(d),
17451745 i = e.uint.decode(d)
17461746 return {
1747 id: n,
1748 oplog: o,
1747 id: o,
1748 oplog: n,
17491749 clock: r,
17501750 timestamp: t,
17511751 editedAt: 1 & i ? e.uint.decode(d) : 0,
1752 status: gn.decode(d),
1753 message: 2 & i ? hn.decode(d) : null,
1754 event: 4 & i ? Kn.decode(d) : null,
1752 status: go.decode(d),
1753 message: 2 & i ? ho.decode(d) : null,
1754 event: 4 & i ? Ko.decode(d) : null,
17551755 }
17561756 },
17571757 },
1758 Tn = _,
1759 Pn = e.frame(cn),
1760 An = {
1758 To = _,
1759 Po = e.frame(ro),
1760 Ao = {
17611761 preencode(e, d) {
1762 ;(Tn.preencode(e, d.header), Pn.preencode(e, d.message))
1762 ;(To.preencode(e, d.header), Po.preencode(e, d.message))
17631763 },
17641764 encode(e, d) {
1765 ;(Tn.encode(e, d.header), Pn.encode(e, d.message))
1765 ;(To.encode(e, d.header), Po.encode(e, d.message))
17661766 },
1767 decode: (e) => ({ header: Tn.decode(e), message: Pn.decode(e) }),
1767 decode: (e) => ({ header: To.decode(e), message: Po.decode(e) }),
17681768 },
1769 Rn = _,
1770 Dn = {
1769 Ro = _,
1770 Do = {
17711771 preencode(e, d) {
1772 ;(Rn.preencode(e, d.header), c.preencode(e, d.oplog))
1772 ;(Ro.preencode(e, d.header), c.preencode(e, d.oplog))
17731773 },
17741774 encode(e, d) {
1775 ;(Rn.encode(e, d.header), c.encode(e, d.oplog))
1775 ;(Ro.encode(e, d.header), c.encode(e, d.oplog))
17761776 },
1777 decode: (e) => ({ header: Rn.decode(e), oplog: c.decode(e) }),
1777 decode: (e) => ({ header: Ro.decode(e), oplog: c.decode(e) }),
17781778 },
1779 Sn = _,
1780 Cn = Pn,
1781 Mn = {
1779 Mo = _,
1780 So = Po,
1781 Co = {
17821782 preencode(e, d) {
1783 ;(Sn.preencode(e, d.header), c.preencode(e, d.oplog), Cn.preencode(e, d.message))
1783 ;(Mo.preencode(e, d.header), c.preencode(e, d.oplog), So.preencode(e, d.message))
17841784 },
17851785 encode(e, d) {
1786 ;(Sn.encode(e, d.header), c.encode(e, d.oplog), Cn.encode(e, d.message))
1786 ;(Mo.encode(e, d.header), c.encode(e, d.oplog), So.encode(e, d.message))
17871787 },
1788 decode: (e) => ({ header: Sn.decode(e), oplog: c.decode(e), message: Cn.decode(e) }),
1788 decode: (e) => ({ header: Mo.decode(e), oplog: c.decode(e), message: So.decode(e) }),
17891789 },
1790 Ln = _,
1791 qn = {
1790 Lo = _,
1791 qo = {
17921792 preencode(e, d) {
1793 ;(Ln.preencode(e, d.header), c.preencode(e, d.oplog), e.end++)
1793 ;(Lo.preencode(e, d.header), c.preencode(e, d.oplog), e.end++)
17941794 },
1795 encode(d, n) {
1796 const o = n.isPinned ? 1 : 0
1797 ;(Ln.encode(d, n.header), c.encode(d, n.oplog), e.uint.encode(d, o))
1795 encode(d, o) {
1796 const n = o.isPinned ? 1 : 0
1797 ;(Lo.encode(d, o.header), c.encode(d, o.oplog), e.uint.encode(d, n))
17981798 },
17991799 decode: (d) => ({
1800 header: Ln.decode(d),
1800 header: Lo.decode(d),
18011801 oplog: c.decode(d),
18021802 isPinned: !!(1 & e.uint.decode(d)),
18031803 }),
18041804 },
1805 Fn = {
1806 preencode(d, n) {
1807 ;(fn.preencode(d, n.id),
1808 e.fixed32.preencode(d, n.sender),
1809 e.uint.preencode(d, n.clock),
1810 e.string.preencode(d, n.reaction))
1805 Fo = {
1806 preencode(d, o) {
1807 ;(fo.preencode(d, o.id),
1808 e.fixed32.preencode(d, o.sender),
1809 e.uint.preencode(d, o.clock),
1810 e.string.preencode(d, o.reaction))
18111811 },
1812 encode(d, n) {
1813 ;(fn.encode(d, n.id),
1814 e.fixed32.encode(d, n.sender),
1815 e.uint.encode(d, n.clock),
1816 e.string.encode(d, n.reaction))
1812 encode(d, o) {
1813 ;(fo.encode(d, o.id),
1814 e.fixed32.encode(d, o.sender),
1815 e.uint.encode(d, o.clock),
1816 e.string.encode(d, o.reaction))
18171817 },
18181818 decode: (d) => ({
1819 id: fn.decode(d),
1819 id: fo.decode(d),
18201820 sender: e.fixed32.decode(d),
18211821 clock: e.uint.decode(d),
18221822 reaction: e.string.decode(d),
18231823 }),
18241824 },
1825 En = {
1826 preencode(d, n) {
1827 ;(e.string.preencode(d, n.text), e.uint.preencode(d, n.count))
1825 Eo = {
1826 preencode(d, o) {
1827 ;(e.string.preencode(d, o.text), e.uint.preencode(d, o.count))
18281828 },
1829 encode(d, n) {
1830 ;(e.string.encode(d, n.text), e.uint.encode(d, n.count))
1829 encode(d, o) {
1830 ;(e.string.encode(d, o.text), e.uint.encode(d, o.count))
18311831 },
18321832 decode: (d) => ({ text: e.string.decode(d), count: e.uint.decode(d) }),
18331833 },
1834 Bn = e.array(e.frame(En)),
1835 In = {
1836 preencode(d, o) {
1837 ;(fn.preencode(d, o.id),
1838 e.uint.preencode(d, o.total),
1839 Bn.preencode(d, o.reactions),
1834 Bo = e.array(e.frame(Eo)),
1835 Io = {
1836 preencode(d, n) {
1837 ;(fo.preencode(d, n.id),
1838 e.uint.preencode(d, n.total),
1839 Bo.preencode(d, n.reactions),
18401840 d.end++,
1841 n >= 11 && o.editedAt && e.uint.preencode(d, o.editedAt))
1841 o >= 11 && n.editedAt && e.uint.preencode(d, n.editedAt))
18421842 },
1843 encode(d, o) {
1844 const c = n >= 11 && o.editedAt ? 1 : 0
1845 ;(fn.encode(d, o.id),
1846 e.uint.encode(d, o.total),
1847 Bn.encode(d, o.reactions),
1843 encode(d, n) {
1844 const c = o >= 11 && n.editedAt ? 1 : 0
1845 ;(fo.encode(d, n.id),
1846 e.uint.encode(d, n.total),
1847 Bo.encode(d, n.reactions),
18481848 e.uint.encode(d, c),
1849 n >= 11 && o.editedAt && e.uint.encode(d, o.editedAt))
1849 o >= 11 && n.editedAt && e.uint.encode(d, n.editedAt))
18501850 },
18511851 decode(d) {
1852 const o = fn.decode(d),
1852 const n = fo.decode(d),
18531853 c = e.uint.decode(d),
1854 r = Bn.decode(d),
1854 r = Bo.decode(d),
18551855 t = d.start < d.end ? e.uint.decode(d) : 0
1856 return { id: o, total: c, reactions: r, editedAt: n >= 11 && 1 & t ? e.uint.decode(d) : 0 }
1856 return { id: n, total: c, reactions: r, editedAt: o >= 11 && 1 & t ? e.uint.decode(d) : 0 }
18571857 },
18581858 },
1859 Nn = _,
1860 jn = {
1861 preencode(d, n) {
1862 ;(Nn.preencode(d, n.header), c.preencode(d, n.oplog), e.string.preencode(d, n.reaction))
1859 No = _,
1860 jo = {
1861 preencode(d, o) {
1862 ;(No.preencode(d, o.header), c.preencode(d, o.oplog), e.string.preencode(d, o.reaction))
18631863 },
1864 encode(d, n) {
1865 ;(Nn.encode(d, n.header), c.encode(d, n.oplog), e.string.encode(d, n.reaction))
1864 encode(d, o) {
1865 ;(No.encode(d, o.header), c.encode(d, o.oplog), e.string.encode(d, o.reaction))
18661866 },
1867 decode: (d) => ({ header: Nn.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
1867 decode: (d) => ({ header: No.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
18681868 },
1869 On = _,
1870 Jn = {
1871 preencode(d, n) {
1872 ;(On.preencode(d, n.header), c.preencode(d, n.oplog), e.string.preencode(d, n.reaction))
1869 Uo = _,
1870 Oo = {
1871 preencode(d, o) {
1872 ;(Uo.preencode(d, o.header), c.preencode(d, o.oplog), e.string.preencode(d, o.reaction))
18731873 },
1874 encode(d, n) {
1875 ;(On.encode(d, n.header), c.encode(d, n.oplog), e.string.encode(d, n.reaction))
1874 encode(d, o) {
1875 ;(Uo.encode(d, o.header), c.encode(d, o.oplog), e.string.encode(d, o.reaction))
18761876 },
1877 decode: (d) => ({ header: On.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
1877 decode: (d) => ({ header: Uo.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
18781878 },
1879 Un = _,
1880 Vn = e.frame(Z),
1881 Hn = {
1882 preencode(d, n) {
1883 ;(Un.preencode(d, n.header), e.uint.preencode(d, n.key), Vn.preencode(d, n.config))
1879 Jo = _,
1880 Vo = e.frame(Z),
1881 Ho = {
1882 preencode(d, o) {
1883 ;(Jo.preencode(d, o.header), e.uint.preencode(d, o.key), Vo.preencode(d, o.config))
18841884 },
1885 encode(d, n) {
1886 ;(Un.encode(d, n.header), e.uint.encode(d, n.key), Vn.encode(d, n.config))
1885 encode(d, o) {
1886 ;(Jo.encode(d, o.header), e.uint.encode(d, o.key), Vo.encode(d, o.config))
18871887 },
1888 decode: (d) => ({ header: Un.decode(d), key: e.uint.decode(d), config: Vn.decode(d) }),
1888 decode: (d) => ({ header: Jo.decode(d), key: e.uint.decode(d), config: Vo.decode(d) }),
18891889 },
1890 zn = {
1891 preencode(d, n) {
1892 ;(e.fixed32.preencode(d, n.memberKey),
1893 e.string.preencode(d, n.displayName),
1890 zo = {
1891 preencode(d, o) {
1892 ;(e.fixed32.preencode(d, o.memberKey),
1893 e.string.preencode(d, o.displayName),
18941894 d.end++,
1895 n.avatar && ct.preencode(d, n.avatar))
1895 o.avatar && tt.preencode(d, o.avatar))
18961896 },
1897 encode(d, n) {
1898 const o = n.avatar ? 1 : 0
1899 ;(e.fixed32.encode(d, n.memberKey),
1900 e.string.encode(d, n.displayName),
1901 e.uint.encode(d, o),
1902 n.avatar && ct.encode(d, n.avatar))
1897 encode(d, o) {
1898 const n = o.avatar ? 1 : 0
1899 ;(e.fixed32.encode(d, o.memberKey),
1900 e.string.encode(d, o.displayName),
1901 e.uint.encode(d, n),
1902 o.avatar && tt.encode(d, o.avatar))
19031903 },
19041904 decode: (d) => ({
19051905 memberKey: e.fixed32.decode(d),
19061906 displayName: e.string.decode(d),
1907 avatar: 1 & e.uint.decode(d) ? ct.decode(d) : null,
1907 avatar: 1 & e.uint.decode(d) ? tt.decode(d) : null,
19081908 }),
19091909 },
1910 Gn = {
1911 preencode(d, n) {
1912 ;(e.fixed32.preencode(d, n.key), d.end++, n.username && e.string.preencode(d, n.username))
1910 Go = {
1911 preencode(d, o) {
1912 ;(e.fixed32.preencode(d, o.key), d.end++, o.username && e.string.preencode(d, o.username))
19131913 },
1914 encode(d, n) {
1915 const o = n.username ? 1 : 0
1916 ;(e.fixed32.encode(d, n.key),
1917 e.uint.encode(d, o),
1918 n.username && e.string.encode(d, n.username))
1914 encode(d, o) {
1915 const n = o.username ? 1 : 0
1916 ;(e.fixed32.encode(d, o.key),
1917 e.uint.encode(d, n),
1918 o.username && e.string.encode(d, o.username))
19191919 },
19201920 decode: (d) => ({
19211921 key: e.fixed32.decode(d),
19221922 username: 1 & e.uint.decode(d) ? e.string.decode(d) : null,
19231923 }),
19241924 },
1925 Qn = e.frame(Gn),
1926 Wn = {
1927 preencode(d, n) {
1928 ;(e.fixed32.preencode(d, n.publicKey),
1925 Qo = e.frame(Go),
1926 Wo = {
1927 preencode(d, o) {
1928 ;(e.fixed32.preencode(d, o.publicKey),
19291929 d.end++,
1930 n.discoveryCoreKey && e.fixed32.preencode(d, n.discoveryCoreKey),
1931 n.userRegistry && Qn.preencode(d, n.userRegistry))
1930 o.discoveryCoreKey && e.fixed32.preencode(d, o.discoveryCoreKey),
1931 o.userRegistry && Qo.preencode(d, o.userRegistry))
19321932 },
1933 encode(d, n) {
1934 const o = (n.discoveryCoreKey ? 1 : 0) | (n.userRegistry ? 2 : 0)
1935 ;(e.fixed32.encode(d, n.publicKey),
1936 e.uint.encode(d, o),
1937 n.discoveryCoreKey && e.fixed32.encode(d, n.discoveryCoreKey),
1938 n.userRegistry && Qn.encode(d, n.userRegistry))
1933 encode(d, o) {
1934 const n = (o.discoveryCoreKey ? 1 : 0) | (o.userRegistry ? 2 : 0)
1935 ;(e.fixed32.encode(d, o.publicKey),
1936 e.uint.encode(d, n),
1937 o.discoveryCoreKey && e.fixed32.encode(d, o.discoveryCoreKey),
1938 o.userRegistry && Qo.encode(d, o.userRegistry))
19391939 },
19401940 decode(d) {
1941 const n = e.fixed32.decode(d),
1942 o = e.uint.decode(d)
1941 const o = e.fixed32.decode(d),
1942 n = e.uint.decode(d)
19431943 return {
1944 publicKey: n,
1945 discoveryCoreKey: 1 & o ? e.fixed32.decode(d) : null,
1946 userRegistry: 2 & o ? Qn.decode(d) : null,
1944 publicKey: o,
1945 discoveryCoreKey: 1 & n ? e.fixed32.decode(d) : null,
1946 userRegistry: 2 & n ? Qo.decode(d) : null,
19471947 }
19481948 },
19491949 },
1950 Xn = _,
1951 Yn = e.frame(Q),
1952 Zn = e.frame(W),
1953 $n = Vn,
1954 _n = e.frame(Wn),
1955 eo = be,
1956 no = e.array(e.frame(le)),
1957 oo = {
1950 Xo = _,
1951 Yo = e.frame(Q),
1952 Zo = e.frame(W),
1953 $o = Vo,
1954 _o = e.frame(Wo),
1955 en = be,
1956 dn = e.array(e.frame(le)),
1957 on = {
19581958 preencode(e, d) {
1959 ;(Xn.preencode(e, d.header),
1960 Yn.preencode(e, d.digest),
1961 Zn.preencode(e, d.capabilities),
1959 ;(Xo.preencode(e, d.header),
1960 Yo.preencode(e, d.digest),
1961 Zo.preencode(e, d.capabilities),
19621962 e.end++,
1963 d.config && $n.preencode(e, d.config),
1964 d.identity && _n.preencode(e, d.identity),
1965 d.bootstrapDevice && eo.preencode(e, d.bootstrapDevice),
1966 d.initialMembers && no.preencode(e, d.initialMembers))
1963 d.config && $o.preencode(e, d.config),
1964 d.identity && _o.preencode(e, d.identity),
1965 d.bootstrapDevice && en.preencode(e, d.bootstrapDevice),
1966 d.initialMembers && dn.preencode(e, d.initialMembers))
19671967 },
1968 encode(d, n) {
1969 const o =
1970 (n.config ? 1 : 0) |
1971 (n.identity ? 2 : 0) |
1972 (n.bootstrapDevice ? 4 : 0) |
1973 (n.initialMembers ? 8 : 0)
1974 ;(Xn.encode(d, n.header),
1975 Yn.encode(d, n.digest),
1976 Zn.encode(d, n.capabilities),
1977 e.uint.encode(d, o),
1978 n.config && $n.encode(d, n.config),
1979 n.identity && _n.encode(d, n.identity),
1980 n.bootstrapDevice && eo.encode(d, n.bootstrapDevice),
1981 n.initialMembers && no.encode(d, n.initialMembers))
1968 encode(d, o) {
1969 const n =
1970 (o.config ? 1 : 0) |
1971 (o.identity ? 2 : 0) |
1972 (o.bootstrapDevice ? 4 : 0) |
1973 (o.initialMembers ? 8 : 0)
1974 ;(Xo.encode(d, o.header),
1975 Yo.encode(d, o.digest),
1976 Zo.encode(d, o.capabilities),
1977 e.uint.encode(d, n),
1978 o.config && $o.encode(d, o.config),
1979 o.identity && _o.encode(d, o.identity),
1980 o.bootstrapDevice && en.encode(d, o.bootstrapDevice),
1981 o.initialMembers && dn.encode(d, o.initialMembers))
19821982 },
19831983 decode(d) {
1984 const n = Xn.decode(d),
1985 o = Yn.decode(d),
1986 c = Zn.decode(d),
1984 const o = Xo.decode(d),
1985 n = Yo.decode(d),
1986 c = Zo.decode(d),
19871987 r = e.uint.decode(d)
19881988 return {
1989 header: n,
1990 digest: o,
1989 header: o,
1990 digest: n,
19911991 capabilities: c,
1992 config: 1 & r ? $n.decode(d) : null,
1993 identity: 2 & r ? _n.decode(d) : null,
1994 bootstrapDevice: 4 & r ? eo.decode(d) : null,
1995 initialMembers: 8 & r ? no.decode(d) : null,
1992 config: 1 & r ? $o.decode(d) : null,
1993 identity: 2 & r ? _o.decode(d) : null,
1994 bootstrapDevice: 4 & r ? en.decode(d) : null,
1995 initialMembers: 8 & r ? dn.decode(d) : null,
19961996 }
19971997 },
19981998 },
1999 co = _,
2000 ro = {
2001 preencode(d, n) {
2002 ;(co.preencode(d, n.header), e.uint.preencode(d, n.version))
1999 nn = _,
2000 cn = {
2001 preencode(d, o) {
2002 ;(nn.preencode(d, o.header), e.uint.preencode(d, o.version))
20032003 },
2004 encode(d, n) {
2005 ;(co.encode(d, n.header), e.uint.encode(d, n.version))
2004 encode(d, o) {
2005 ;(nn.encode(d, o.header), e.uint.encode(d, o.version))
20062006 },
2007 decode: (d) => ({ header: co.decode(d), version: e.uint.decode(d) }),
2007 decode: (d) => ({ header: nn.decode(d), version: e.uint.decode(d) }),
20082008 },
2009 to = _,
2010 io = G,
2011 ao = {
2012 preencode(d, n) {
2013 ;(to.preencode(d, n.header), e.uint.preencode(d, n.key), io.preencode(d, n.settings))
2009 rn = _,
2010 tn = G,
2011 an = {
2012 preencode(d, o) {
2013 ;(rn.preencode(d, o.header), e.uint.preencode(d, o.key), tn.preencode(d, o.settings))
20142014 },
2015 encode(d, n) {
2016 ;(to.encode(d, n.header), e.uint.encode(d, n.key), io.encode(d, n.settings))
2015 encode(d, o) {
2016 ;(rn.encode(d, o.header), e.uint.encode(d, o.key), tn.encode(d, o.settings))
20172017 },
2018 decode: (d) => ({ header: to.decode(d), key: e.uint.decode(d), settings: io.decode(d) }),
2018 decode: (d) => ({ header: rn.decode(d), key: e.uint.decode(d), settings: tn.decode(d) }),
20192019 },
2020 so = {
2021 preencode(d, n) {
2022 ;(e.fixed32.preencode(d, n.memberKey),
2023 rt.preencode(d, n.status),
2020 sn = {
2021 preencode(d, o) {
2022 ;(e.fixed32.preencode(d, o.memberKey),
2023 it.preencode(d, o.status),
20242024 d.end++,
2025 n.mailbox && e.fixed32.preencode(d, n.mailbox),
2026 n.roomKey && e.fixed32.preencode(d, n.roomKey))
2025 o.mailbox && e.fixed32.preencode(d, o.mailbox),
2026 o.roomKey && e.fixed32.preencode(d, o.roomKey))
20272027 },
2028 encode(d, n) {
2029 const o = (n.mailbox ? 1 : 0) | (n.roomKey ? 2 : 0)
2030 ;(e.fixed32.encode(d, n.memberKey),
2031 rt.encode(d, n.status),
2032 e.uint.encode(d, o),
2033 n.mailbox && e.fixed32.encode(d, n.mailbox),
2034 n.roomKey && e.fixed32.encode(d, n.roomKey))
2028 encode(d, o) {
2029 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
2030 ;(e.fixed32.encode(d, o.memberKey),
2031 it.encode(d, o.status),
2032 e.uint.encode(d, n),
2033 o.mailbox && e.fixed32.encode(d, o.mailbox),
2034 o.roomKey && e.fixed32.encode(d, o.roomKey))
20352035 },
20362036 decode(d) {
2037 const n = e.fixed32.decode(d),
2038 o = rt.decode(d),
2037 const o = e.fixed32.decode(d),
2038 n = it.decode(d),
20392039 c = e.uint.decode(d)
20402040 return {
2041 memberKey: n,
2042 status: o,
2041 memberKey: o,
2042 status: n,
20432043 mailbox: 1 & c ? e.fixed32.decode(d) : null,
20442044 roomKey: 2 & c ? e.fixed32.decode(d) : null,
20452045 }
20462046 },
20472047 },
2048 po = {
2049 preencode(d, n) {
2050 ;(e.fixed32.preencode(d, n.roomKey),
2051 e.buffer.preencode(d, n.encryptionKey),
2052 e.fixed32.preencode(d, n.seed),
2053 o.preencode(d, n.initiator),
2054 e.fixed32.preencode(d, n.fastForwardTo))
2048 pn = {
2049 preencode(d, o) {
2050 ;(e.fixed32.preencode(d, o.roomKey),
2051 e.buffer.preencode(d, o.encryptionKey),
2052 e.fixed32.preencode(d, o.seed),
2053 n.preencode(d, o.initiator),
2054 e.fixed32.preencode(d, o.fastForwardTo))
20552055 },
2056 encode(d, n) {
2057 ;(e.fixed32.encode(d, n.roomKey),
2058 e.buffer.encode(d, n.encryptionKey),
2059 e.fixed32.encode(d, n.seed),
2060 o.encode(d, n.initiator),
2061 e.fixed32.encode(d, n.fastForwardTo))
2056 encode(d, o) {
2057 ;(e.fixed32.encode(d, o.roomKey),
2058 e.buffer.encode(d, o.encryptionKey),
2059 e.fixed32.encode(d, o.seed),
2060 n.encode(d, o.initiator),
2061 e.fixed32.encode(d, o.fastForwardTo))
20622062 },
20632063 decode: (d) => ({
20642064 roomKey: e.fixed32.decode(d),
20652065 encryptionKey: e.buffer.decode(d),
20662066 seed: e.fixed32.decode(d),
2067 initiator: o.decode(d),
2067 initiator: n.decode(d),
20682068 fastForwardTo: e.fixed32.decode(d),
20692069 }),
20702070 },
2071 uo = e.array(e.frame(po)),
2072 lo = Y,
2073 fo = {
2071 un = e.array(e.frame(pn)),
2072 ln = Y,
2073 fn = {
20742074 preencode(e, d) {
2075 ;(uo.preencode(e, d.sharedRooms), lo.preencode(e, d.blockedContacts))
2075 ;(un.preencode(e, d.sharedRooms), ln.preencode(e, d.blockedContacts))
20762076 },
20772077 encode(e, d) {
2078 ;(uo.encode(e, d.sharedRooms), lo.encode(e, d.blockedContacts))
2078 ;(un.encode(e, d.sharedRooms), ln.encode(e, d.blockedContacts))
20792079 },
2080 decode: (e) => ({ sharedRooms: uo.decode(e), blockedContacts: lo.decode(e) }),
2080 decode: (e) => ({ sharedRooms: un.decode(e), blockedContacts: ln.decode(e) }),
20812081 },
2082 mo = _n,
2083 yo = {
2082 mn = _o,
2083 yn = {
20842084 preencode(e, d) {
2085 mo.preencode(e, d.identity)
2085 mn.preencode(e, d.identity)
20862086 },
20872087 encode(e, d) {
2088 mo.encode(e, d.identity)
2088 mn.encode(e, d.identity)
20892089 },
2090 decode: (e) => ({ identity: mo.decode(e) }),
2090 decode: (e) => ({ identity: mn.decode(e) }),
20912091 },
2092 xo = {
2093 preencode(d, n) {
2094 ;(e.uint.preencode(d, n.rooms), e.uint.preencode(d, n.contacts))
2092 xn = {
2093 preencode(d, o) {
2094 ;(e.uint.preencode(d, o.rooms), e.uint.preencode(d, o.contacts))
20952095 },
2096 encode(d, n) {
2097 ;(e.uint.encode(d, n.rooms), e.uint.encode(d, n.contacts))
2096 encode(d, o) {
2097 ;(e.uint.encode(d, o.rooms), e.uint.encode(d, o.contacts))
20982098 },
20992099 decode: (d) => ({ rooms: e.uint.decode(d), contacts: e.uint.decode(d) }),
21002100 },
2101 bo = {
2102 preencode(d, n) {
2103 ;(e.uint.preencode(d, n.rooms), e.uint.preencode(d, n.contactRequests))
2101 bn = {
2102 preencode(d, o) {
2103 ;(e.uint.preencode(d, o.rooms), e.uint.preencode(d, o.contactRequests))
21042104 },
2105 encode(d, n) {
2106 ;(e.uint.encode(d, n.rooms), e.uint.encode(d, n.contactRequests))
2105 encode(d, o) {
2106 ;(e.uint.encode(d, o.rooms), e.uint.encode(d, o.contactRequests))
21072107 },
21082108 decode: (d) => ({ rooms: e.uint.decode(d), contactRequests: e.uint.decode(d) }),
21092109 },
2110 ko = {
2111 preencode(d, n) {
2112 e.buffer.preencode(d, n.entropy)
2110 kn = {
2111 preencode(d, o) {
2112 e.buffer.preencode(d, o.entropy)
21132113 },
2114 encode(d, n) {
2115 e.buffer.encode(d, n.entropy)
2114 encode(d, o) {
2115 e.buffer.encode(d, o.entropy)
21162116 },
21172117 decode: (d) => ({ entropy: e.buffer.decode(d) }),
21182118 },
2119 vo = {
2120 preencode(d, n) {
2121 ;(e.fixed32.preencode(d, n.publicKey),
2122 e.fixed32.preencode(d, n.devicePublicKey),
2123 e.fixed32.preencode(d, n.writerKey))
2119 vn = {
2120 preencode(d, o) {
2121 ;(e.fixed32.preencode(d, o.publicKey),
2122 e.fixed32.preencode(d, o.devicePublicKey),
2123 e.fixed32.preencode(d, o.writerKey))
21242124 },
2125 encode(d, n) {
2126 ;(e.fixed32.encode(d, n.publicKey),
2127 e.fixed32.encode(d, n.devicePublicKey),
2128 e.fixed32.encode(d, n.writerKey))
2125 encode(d, o) {
2126 ;(e.fixed32.encode(d, o.publicKey),
2127 e.fixed32.encode(d, o.devicePublicKey),
2128 e.fixed32.encode(d, o.writerKey))
21292129 },
21302130 decode: (d) => ({
21312131 publicKey: e.fixed32.decode(d),
……@@ -2133,38 +2133,38 @@ const o = {
21332133 writerKey: e.fixed32.decode(d),
21342134 }),
21352135 },
2136 go = e.frame(vo),
2137 ho = {
2136 gn = e.frame(vn),
2137 hn = {
21382138 preencode(d, c) {
21392139 ;(e.fixed32.preencode(d, c.id),
21402140 e.fixed32.preencode(d, c.invitationSeed),
21412141 e.fixed32.preencode(d, c.mailbox),
21422142 t.preencode(d, c.responseKeyPair),
2143 o.preencode(d, c.initiator),
2144 o.preencode(d, c.inviter),
2143 n.preencode(d, c.initiator),
2144 n.preencode(d, c.inviter),
21452145 d.end++,
2146 c.identity && go.preencode(d, c.identity),
2147 n >= 20 && c.buildType && Or.preencode(d, c.buildType))
2146 c.identity && gn.preencode(d, c.identity),
2147 o >= 20 && c.buildType && Ur.preencode(d, c.buildType))
21482148 },
21492149 encode(d, c) {
2150 const r = (c.identity ? 1 : 0) | (n >= 20 && c.buildType ? 2 : 0)
2150 const r = (c.identity ? 1 : 0) | (o >= 20 && c.buildType ? 2 : 0)
21512151 ;(e.fixed32.encode(d, c.id),
21522152 e.fixed32.encode(d, c.invitationSeed),
21532153 e.fixed32.encode(d, c.mailbox),
21542154 t.encode(d, c.responseKeyPair),
2155 o.encode(d, c.initiator),
2156 o.encode(d, c.inviter),
2155 n.encode(d, c.initiator),
2156 n.encode(d, c.inviter),
21572157 e.uint.encode(d, r),
2158 c.identity && go.encode(d, c.identity),
2159 n >= 20 && c.buildType && Or.encode(d, c.buildType))
2158 c.identity && gn.encode(d, c.identity),
2159 o >= 20 && c.buildType && Ur.encode(d, c.buildType))
21602160 },
21612161 decode(d) {
21622162 const c = e.fixed32.decode(d),
21632163 r = e.fixed32.decode(d),
21642164 i = e.fixed32.decode(d),
21652165 a = t.decode(d),
2166 s = o.decode(d),
2167 p = o.decode(d),
2166 s = n.decode(d),
2167 p = n.decode(d),
21682168 u = e.uint.decode(d)
21692169 return {
21702170 id: c,
……@@ -2173,138 +2173,140 @@ const o = {
21732173 responseKeyPair: a,
21742174 initiator: s,
21752175 inviter: p,
2176 identity: 1 & u ? go.decode(d) : null,
2177 buildType: n >= 20 && 2 & u ? Or.decode(d) : null,
2176 identity: 1 & u ? gn.decode(d) : null,
2177 buildType: o >= 20 && 2 & u ? Ur.decode(d) : null,
21782178 }
21792179 },
21802180 },
2181 Ko = _,
2182 wo = {
2183 preencode(d, n) {
2184 ;(Ko.preencode(d, n.header), e.buffer.preencode(d, n.blindResponse))
2181 Kn = _,
2182 wn = {
2183 preencode(d, o) {
2184 ;(Kn.preencode(d, o.header), e.buffer.preencode(d, o.blindResponse))
21852185 },
2186 encode(d, n) {
2187 ;(Ko.encode(d, n.header), e.buffer.encode(d, n.blindResponse))
2186 encode(d, o) {
2187 ;(Kn.encode(d, o.header), e.buffer.encode(d, o.blindResponse))
21882188 },
2189 decode: (d) => ({ header: Ko.decode(d), blindResponse: e.buffer.decode(d) }),
2189 decode: (d) => ({ header: Kn.decode(d), blindResponse: e.buffer.decode(d) }),
21902190 },
2191 To = _,
2192 Po = e.frame(ho),
2193 Ao = {
2191 Tn = _,
2192 Pn = e.frame(hn),
2193 An = {
21942194 preencode(e, d) {
2195 ;(To.preencode(e, d.header), Po.preencode(e, d.invitation))
2195 ;(Tn.preencode(e, d.header), Pn.preencode(e, d.invitation))
21962196 },
21972197 encode(e, d) {
2198 ;(To.encode(e, d.header), Po.encode(e, d.invitation))
2198 ;(Tn.encode(e, d.header), Pn.encode(e, d.invitation))
21992199 },
2200 decode: (e) => ({ header: To.decode(e), invitation: Po.decode(e) }),
2200 decode: (e) => ({ header: Tn.decode(e), invitation: Pn.decode(e) }),
22012201 },
2202 Ro = _,
2203 Do = {
2204 preencode(d, n) {
2205 ;(Ro.preencode(d, n.header), e.fixed32.preencode(d, n.id))
2202 Rn = _,
2203 Dn = {
2204 preencode(d, o) {
2205 ;(Rn.preencode(d, o.header), e.fixed32.preencode(d, o.id))
22062206 },
2207 encode(d, n) {
2208 ;(Ro.encode(d, n.header), e.fixed32.encode(d, n.id))
2207 encode(d, o) {
2208 ;(Rn.encode(d, o.header), e.fixed32.encode(d, o.id))
22092209 },
2210 decode: (d) => ({ header: Ro.decode(d), id: e.fixed32.decode(d) }),
2210 decode: (d) => ({ header: Rn.decode(d), id: e.fixed32.decode(d) }),
22112211 },
2212 So = {
2213 preencode(d, n) {
2214 ;(e.fixed32.preencode(d, n.publicKey),
2215 e.fixed32.preencode(d, n.devicePublicKey),
2212 Mn = {
2213 preencode(d, o) {
2214 ;(e.fixed32.preencode(d, o.publicKey),
2215 e.fixed32.preencode(d, o.devicePublicKey),
22162216 d.end++,
2217 n.privateProfileKey && e.fixed32.preencode(d, n.privateProfileKey),
2218 n.deviceKeyPair && t.preencode(d, n.deviceKeyPair),
2219 e.buffer.preencode(d, n.deviceProof))
2217 o.privateProfileKey && e.fixed32.preencode(d, o.privateProfileKey),
2218 o.deviceKeyPair && t.preencode(d, o.deviceKeyPair),
2219 e.buffer.preencode(d, o.deviceProof))
22202220 },
2221 encode(d, n) {
2222 const o = (n.privateProfileKey ? 1 : 0) | (n.deviceKeyPair ? 2 : 0)
2223 ;(e.fixed32.encode(d, n.publicKey),
2224 e.fixed32.encode(d, n.devicePublicKey),
2225 e.uint.encode(d, o),
2226 n.privateProfileKey && e.fixed32.encode(d, n.privateProfileKey),
2227 n.deviceKeyPair && t.encode(d, n.deviceKeyPair),
2228 e.buffer.encode(d, n.deviceProof))
2221 encode(d, o) {
2222 const n = (o.privateProfileKey ? 1 : 0) | (o.deviceKeyPair ? 2 : 0)
2223 ;(e.fixed32.encode(d, o.publicKey),
2224 e.fixed32.encode(d, o.devicePublicKey),
2225 e.uint.encode(d, n),
2226 o.privateProfileKey && e.fixed32.encode(d, o.privateProfileKey),
2227 o.deviceKeyPair && t.encode(d, o.deviceKeyPair),
2228 e.buffer.encode(d, o.deviceProof))
22292229 },
22302230 decode(d) {
2231 const n = e.fixed32.decode(d),
2232 o = e.fixed32.decode(d),
2231 const o = e.fixed32.decode(d),
2232 n = e.fixed32.decode(d),
22332233 c = e.uint.decode(d)
22342234 return {
2235 publicKey: n,
2236 devicePublicKey: o,
2235 publicKey: o,
2236 devicePublicKey: n,
22372237 privateProfileKey: 1 & c ? e.fixed32.decode(d) : null,
22382238 deviceKeyPair: 2 & c ? t.decode(d) : null,
22392239 deviceProof: e.buffer.decode(d),
22402240 }
22412241 },
22422242 },
2243 Co = {
2243 Sn = {
22442244 preencode(e, d) {
22452245 e.end++
22462246 },
2247 encode(d, o) {
2247 encode(d, n) {
22482248 const c =
2249 (o.isActive ? 1 : 0) |
2250 (o.isFullyMuted ? 2 : 0) |
2251 (o.isMentionsOnlyMuted ? 4 : 0) |
2252 (n >= 9 && o.isReadOnly ? 8 : 0) |
2253 (n >= 18 && o.isFavorite ? 16 : 0)
2249 (n.isActive ? 1 : 0) |
2250 (n.isFullyMuted ? 2 : 0) |
2251 (n.isMentionsOnlyMuted ? 4 : 0) |
2252 (o >= 9 && n.isReadOnly ? 8 : 0) |
2253 (o >= 18 && n.isFavorite ? 16 : 0) |
2254 (o >= 21 && n.isUnread ? 32 : 0)
22542255 e.uint.encode(d, c)
22552256 },
22562257 decode(d) {
2257 const o = e.uint.decode(d)
2258 const n = e.uint.decode(d)
22582259 return {
2259 isActive: !!(1 & o),
2260 isFullyMuted: !!(2 & o),
2261 isMentionsOnlyMuted: !!(4 & o),
2262 isReadOnly: n >= 9 && !!(8 & o),
2263 isFavorite: n >= 18 && !!(16 & o),
2260 isActive: !!(1 & n),
2261 isFullyMuted: !!(2 & n),
2262 isMentionsOnlyMuted: !!(4 & n),
2263 isReadOnly: o >= 9 && !!(8 & n),
2264 isFavorite: o >= 18 && !!(16 & n),
2265 isUnread: o >= 21 && !!(32 & n),
22642266 }
22652267 },
22662268 },
2267 Mo = e.frame(Co),
2268 Lo = e.frame(So),
2269 qo = go,
2270 Fo = {
2269 Cn = e.frame(Sn),
2270 Ln = e.frame(Mn),
2271 qn = gn,
2272 Fn = {
22712273 preencode(d, c) {
22722274 ;(e.fixed32.preencode(d, c.roomKey),
22732275 e.buffer.preencode(d, c.encryptionKey),
22742276 e.fixed32.preencode(d, c.mailbox),
2275 Mo.preencode(d, c.status),
2277 Cn.preencode(d, c.status),
22762278 e.uint.preencode(d, c.clock),
22772279 d.end++,
2278 c.initiator && o.preencode(d, c.initiator),
2280 c.initiator && n.preencode(d, c.initiator),
22792281 c.fastForwardTo && e.fixed32.preencode(d, c.fastForwardTo),
2280 c.identitySwap && Lo.preencode(d, c.identitySwap),
2281 n >= 6 && c.identitySwapV2 && qo.preencode(d, c.identitySwapV2),
2282 n >= 10 && c.contact && e.fixed32.preencode(d, c.contact))
2282 c.identitySwap && Ln.preencode(d, c.identitySwap),
2283 o >= 6 && c.identitySwapV2 && qn.preencode(d, c.identitySwapV2),
2284 o >= 10 && c.contact && e.fixed32.preencode(d, c.contact))
22832285 },
22842286 encode(d, c) {
22852287 const r =
22862288 (c.initiator ? 1 : 0) |
22872289 (c.fastForwardTo ? 2 : 0) |
22882290 (c.identitySwap ? 4 : 0) |
2289 (n >= 6 && c.identitySwapV2 ? 8 : 0) |
2290 (n >= 10 && c.contact ? 16 : 0)
2291 (o >= 6 && c.identitySwapV2 ? 8 : 0) |
2292 (o >= 10 && c.contact ? 16 : 0)
22912293 ;(e.fixed32.encode(d, c.roomKey),
22922294 e.buffer.encode(d, c.encryptionKey),
22932295 e.fixed32.encode(d, c.mailbox),
2294 Mo.encode(d, c.status),
2296 Cn.encode(d, c.status),
22952297 e.uint.encode(d, c.clock),
22962298 e.uint.encode(d, r),
2297 c.initiator && o.encode(d, c.initiator),
2299 c.initiator && n.encode(d, c.initiator),
22982300 c.fastForwardTo && e.fixed32.encode(d, c.fastForwardTo),
2299 c.identitySwap && Lo.encode(d, c.identitySwap),
2300 n >= 6 && c.identitySwapV2 && qo.encode(d, c.identitySwapV2),
2301 n >= 10 && c.contact && e.fixed32.encode(d, c.contact))
2301 c.identitySwap && Ln.encode(d, c.identitySwap),
2302 o >= 6 && c.identitySwapV2 && qn.encode(d, c.identitySwapV2),
2303 o >= 10 && c.contact && e.fixed32.encode(d, c.contact))
23022304 },
23032305 decode(d) {
23042306 const c = e.fixed32.decode(d),
23052307 r = e.buffer.decode(d),
23062308 t = e.fixed32.decode(d),
2307 i = Mo.decode(d),
2309 i = Cn.decode(d),
23082310 a = e.uint.decode(d),
23092311 s = e.uint.decode(d)
23102312 return {
……@@ -2313,43 +2315,43 @@ const o = {
23132315 mailbox: t,
23142316 status: i,
23152317 clock: a,
2316 initiator: 1 & s ? o.decode(d) : null,
2318 initiator: 1 & s ? n.decode(d) : null,
23172319 fastForwardTo: 2 & s ? e.fixed32.decode(d) : null,
2318 identitySwap: 4 & s ? Lo.decode(d) : null,
2319 identitySwapV2: n >= 6 && 8 & s ? qo.decode(d) : null,
2320 contact: n >= 10 && 16 & s ? e.fixed32.decode(d) : null,
2320 identitySwap: 4 & s ? Ln.decode(d) : null,
2321 identitySwapV2: o >= 6 && 8 & s ? qn.decode(d) : null,
2322 contact: o >= 10 && 16 & s ? e.fixed32.decode(d) : null,
23212323 }
2322 },
2323 },
2324 Eo = _,
2325 Bo = {
2326 preencode(d, n) {
2327 ;(Eo.preencode(d, n.header),
2328 e.fixed32.preencode(d, n.roomKey),
2329 e.buffer.preencode(d, n.encryptionKey),
2330 e.fixed32.preencode(d, n.mailbox),
2324 },
2325 },
2326 En = _,
2327 Bn = {
2328 preencode(d, o) {
2329 ;(En.preencode(d, o.header),
2330 e.fixed32.preencode(d, o.roomKey),
2331 e.buffer.preencode(d, o.encryptionKey),
2332 e.fixed32.preencode(d, o.mailbox),
23312333 d.end++,
2332 n.fastForwardTo && e.fixed32.preencode(d, n.fastForwardTo),
2333 n.initiator && o.preencode(d, n.initiator),
2334 n.dm && e.fixed32.preencode(d, n.dm))
2334 o.fastForwardTo && e.fixed32.preencode(d, o.fastForwardTo),
2335 o.initiator && n.preencode(d, o.initiator),
2336 o.dm && e.fixed32.preencode(d, o.dm))
23352337 },
23362338 encode(d, c) {
23372339 const r =
23382340 (c.fastForwardTo ? 1 : 0) |
23392341 (c.initiator ? 2 : 0) |
23402342 (c.dm ? 4 : 0) |
2341 (n >= 9 && c.isReadOnly ? 8 : 0)
2342 ;(Eo.encode(d, c.header),
2343 (o >= 9 && c.isReadOnly ? 8 : 0)
2344 ;(En.encode(d, c.header),
23432345 e.fixed32.encode(d, c.roomKey),
23442346 e.buffer.encode(d, c.encryptionKey),
23452347 e.fixed32.encode(d, c.mailbox),
23462348 e.uint.encode(d, r),
23472349 c.fastForwardTo && e.fixed32.encode(d, c.fastForwardTo),
2348 c.initiator && o.encode(d, c.initiator),
2350 c.initiator && n.encode(d, c.initiator),
23492351 c.dm && e.fixed32.encode(d, c.dm))
23502352 },
23512353 decode(d) {
2352 const c = Eo.decode(d),
2354 const c = En.decode(d),
23532355 r = e.fixed32.decode(d),
23542356 t = e.buffer.decode(d),
23552357 i = e.fixed32.decode(d),
……@@ -2360,179 +2362,179 @@ const o = {
23602362 encryptionKey: t,
23612363 mailbox: i,
23622364 fastForwardTo: 1 & a ? e.fixed32.decode(d) : null,
2363 initiator: 2 & a ? o.decode(d) : null,
2365 initiator: 2 & a ? n.decode(d) : null,
23642366 dm: 4 & a ? e.fixed32.decode(d) : null,
2365 isReadOnly: n >= 9 && !!(8 & a),
2367 isReadOnly: o >= 9 && !!(8 & a),
23662368 }
23672369 },
23682370 },
2369 Io = _,
2370 No = {
2371 preencode(d, n) {
2372 ;(Io.preencode(d, n.header), e.fixed32.preencode(d, n.discoveryKey))
2371 In = _,
2372 Nn = {
2373 preencode(d, o) {
2374 ;(In.preencode(d, o.header), e.fixed32.preencode(d, o.discoveryKey))
23732375 },
2374 encode(d, n) {
2375 ;(Io.encode(d, n.header), e.fixed32.encode(d, n.discoveryKey))
2376 encode(d, o) {
2377 ;(In.encode(d, o.header), e.fixed32.encode(d, o.discoveryKey))
23762378 },
2377 decode: (d) => ({ header: Io.decode(d), discoveryKey: e.fixed32.decode(d) }),
2379 decode: (d) => ({ header: In.decode(d), discoveryKey: e.fixed32.decode(d) }),
23782380 },
2379 jo = _,
2380 Oo = Mo,
2381 Jo = {
2382 preencode(d, n) {
2383 ;(jo.preencode(d, n.header),
2384 e.fixed32.preencode(d, n.roomKey),
2385 e.uint.preencode(d, n.key),
2386 Oo.preencode(d, n.status))
2381 jn = _,
2382 Un = Cn,
2383 On = {
2384 preencode(d, o) {
2385 ;(jn.preencode(d, o.header),
2386 e.fixed32.preencode(d, o.roomKey),
2387 e.uint.preencode(d, o.key),
2388 Un.preencode(d, o.status))
23872389 },
2388 encode(d, n) {
2389 ;(jo.encode(d, n.header),
2390 e.fixed32.encode(d, n.roomKey),
2391 e.uint.encode(d, n.key),
2392 Oo.encode(d, n.status))
2390 encode(d, o) {
2391 ;(jn.encode(d, o.header),
2392 e.fixed32.encode(d, o.roomKey),
2393 e.uint.encode(d, o.key),
2394 Un.encode(d, o.status))
23932395 },
23942396 decode: (d) => ({
2395 header: jo.decode(d),
2397 header: jn.decode(d),
23962398 roomKey: e.fixed32.decode(d),
23972399 key: e.uint.decode(d),
2398 status: Oo.decode(d),
2400 status: Un.decode(d),
23992401 }),
24002402 },
2401 Uo = {
2403 Jn = {
24022404 preencode(e, d) {
24032405 e.end++
24042406 },
2405 encode(d, n) {
2406 const o = n.isBlocked ? 1 : 0
2407 e.uint.encode(d, o)
2407 encode(d, o) {
2408 const n = o.isBlocked ? 1 : 0
2409 e.uint.encode(d, n)
24082410 },
24092411 decode: (d) => ({ isBlocked: !!(1 & e.uint.decode(d)) }),
24102412 },
2411 Vo = {
2412 preencode(d, n) {
2413 ;(e.fixed32.preencode(d, n.memberKey),
2414 e.uint.preencode(d, n.clock),
2415 tt.preencode(d, n.status),
2413 Vn = {
2414 preencode(d, o) {
2415 ;(e.fixed32.preencode(d, o.memberKey),
2416 e.uint.preencode(d, o.clock),
2417 at.preencode(d, o.status),
24162418 d.end++,
2417 n.mailbox && e.fixed32.preencode(d, n.mailbox),
2418 n.roomKey && e.fixed32.preencode(d, n.roomKey))
2419 o.mailbox && e.fixed32.preencode(d, o.mailbox),
2420 o.roomKey && e.fixed32.preencode(d, o.roomKey))
24192421 },
2420 encode(d, n) {
2421 const o = (n.mailbox ? 1 : 0) | (n.roomKey ? 2 : 0)
2422 ;(e.fixed32.encode(d, n.memberKey),
2423 e.uint.encode(d, n.clock),
2424 tt.encode(d, n.status),
2425 e.uint.encode(d, o),
2426 n.mailbox && e.fixed32.encode(d, n.mailbox),
2427 n.roomKey && e.fixed32.encode(d, n.roomKey))
2422 encode(d, o) {
2423 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
2424 ;(e.fixed32.encode(d, o.memberKey),
2425 e.uint.encode(d, o.clock),
2426 at.encode(d, o.status),
2427 e.uint.encode(d, n),
2428 o.mailbox && e.fixed32.encode(d, o.mailbox),
2429 o.roomKey && e.fixed32.encode(d, o.roomKey))
24282430 },
24292431 decode(d) {
2430 const n = e.fixed32.decode(d),
2431 o = e.uint.decode(d),
2432 c = tt.decode(d),
2432 const o = e.fixed32.decode(d),
2433 n = e.uint.decode(d),
2434 c = at.decode(d),
24332435 r = e.uint.decode(d)
24342436 return {
2435 memberKey: n,
2436 clock: o,
2437 memberKey: o,
2438 clock: n,
24372439 status: c,
24382440 mailbox: 1 & r ? e.fixed32.decode(d) : null,
24392441 roomKey: 2 & r ? e.fixed32.decode(d) : null,
24402442 }
24412443 },
24422444 },
2443 Ho = _,
2444 zo = e.frame(so),
2445 Go = {
2445 Hn = _,
2446 zn = e.frame(sn),
2447 Gn = {
24462448 preencode(e, d) {
2447 ;(Ho.preencode(e, d.header), zo.preencode(e, d.contact))
2449 ;(Hn.preencode(e, d.header), zn.preencode(e, d.contact))
24482450 },
24492451 encode(e, d) {
2450 ;(Ho.encode(e, d.header), zo.encode(e, d.contact))
2452 ;(Hn.encode(e, d.header), zn.encode(e, d.contact))
24512453 },
2452 decode: (e) => ({ header: Ho.decode(e), contact: zo.decode(e) }),
2454 decode: (e) => ({ header: Hn.decode(e), contact: zn.decode(e) }),
24532455 },
2454 Qo = _,
2455 Wo = {
2456 preencode(d, n) {
2457 ;(Qo.preencode(d, n.header),
2458 e.fixed32.preencode(d, n.memberKey),
2459 e.uint.preencode(d, n.key),
2460 it.preencode(d, n.status))
2456 Qn = _,
2457 Wn = {
2458 preencode(d, o) {
2459 ;(Qn.preencode(d, o.header),
2460 e.fixed32.preencode(d, o.memberKey),
2461 e.uint.preencode(d, o.key),
2462 st.preencode(d, o.status))
24612463 },
2462 encode(d, n) {
2463 ;(Qo.encode(d, n.header),
2464 e.fixed32.encode(d, n.memberKey),
2465 e.uint.encode(d, n.key),
2466 it.encode(d, n.status))
2464 encode(d, o) {
2465 ;(Qn.encode(d, o.header),
2466 e.fixed32.encode(d, o.memberKey),
2467 e.uint.encode(d, o.key),
2468 st.encode(d, o.status))
24672469 },
24682470 decode: (d) => ({
2469 header: Qo.decode(d),
2471 header: Qn.decode(d),
24702472 memberKey: e.fixed32.decode(d),
24712473 key: e.uint.decode(d),
2472 status: it.decode(d),
2474 status: st.decode(d),
24732475 }),
24742476 },
2475 Xo = _,
2476 Yo = {
2477 preencode(d, n) {
2478 ;(Xo.preencode(d, n.header), e.fixed32.preencode(d, n.memberKey))
2477 Xn = _,
2478 Yn = {
2479 preencode(d, o) {
2480 ;(Xn.preencode(d, o.header), e.fixed32.preencode(d, o.memberKey))
24792481 },
2480 encode(d, n) {
2481 ;(Xo.encode(d, n.header), e.fixed32.encode(d, n.memberKey))
2482 encode(d, o) {
2483 ;(Xn.encode(d, o.header), e.fixed32.encode(d, o.memberKey))
24822484 },
2483 decode: (d) => ({ header: Xo.decode(d), memberKey: e.fixed32.decode(d) }),
2485 decode: (d) => ({ header: Xn.decode(d), memberKey: e.fixed32.decode(d) }),
24842486 },
2485 Zo = {
2487 Zn = {
24862488 preencode(e, d) {
24872489 e.end++
24882490 },
2489 encode(d, n) {
2490 const o =
2491 (n.isPending ? 1 : 0) |
2492 (n.isAccepted ? 2 : 0) |
2493 (n.isRejected ? 4 : 0) |
2494 (n.isDiscarded ? 8 : 0) |
2495 (n.isSeen ? 16 : 0)
2496 e.uint.encode(d, o)
2491 encode(d, o) {
2492 const n =
2493 (o.isPending ? 1 : 0) |
2494 (o.isAccepted ? 2 : 0) |
2495 (o.isRejected ? 4 : 0) |
2496 (o.isDiscarded ? 8 : 0) |
2497 (o.isSeen ? 16 : 0)
2498 e.uint.encode(d, n)
24972499 },
24982500 decode(d) {
2499 const n = e.uint.decode(d)
2501 const o = e.uint.decode(d)
25002502 return {
2501 isPending: !!(1 & n),
2502 isAccepted: !!(2 & n),
2503 isRejected: !!(4 & n),
2504 isDiscarded: !!(8 & n),
2505 isSeen: !!(16 & n),
2503 isPending: !!(1 & o),
2504 isAccepted: !!(2 & o),
2505 isRejected: !!(4 & o),
2506 isDiscarded: !!(8 & o),
2507 isSeen: !!(16 & o),
25062508 }
25072509 },
25082510 },
2509 $o = ke,
2510 _o = e.frame(i),
2511 $n = ke,
2512 _n = e.frame(i),
25112513 ec = {
2512 preencode(d, n) {
2513 ;($o.preencode(d, n.sender),
2514 _o.preencode(d, n.keys),
2515 e.fixed32.preencode(d, n.mailbox),
2514 preencode(d, o) {
2515 ;($n.preencode(d, o.sender),
2516 _n.preencode(d, o.keys),
2517 e.fixed32.preencode(d, o.mailbox),
25162518 d.end++,
2517 n.message && e.string.preencode(d, n.message))
2519 o.message && e.string.preencode(d, o.message))
25182520 },
2519 encode(d, n) {
2520 const o = n.message ? 1 : 0
2521 ;($o.encode(d, n.sender),
2522 _o.encode(d, n.keys),
2523 e.fixed32.encode(d, n.mailbox),
2524 e.uint.encode(d, o),
2525 n.message && e.string.encode(d, n.message))
2521 encode(d, o) {
2522 const n = o.message ? 1 : 0
2523 ;($n.encode(d, o.sender),
2524 _n.encode(d, o.keys),
2525 e.fixed32.encode(d, o.mailbox),
2526 e.uint.encode(d, n),
2527 o.message && e.string.encode(d, o.message))
25262528 },
25272529 decode: (d) => ({
2528 sender: $o.decode(d),
2529 keys: _o.decode(d),
2530 sender: $n.decode(d),
2531 keys: _n.decode(d),
25302532 mailbox: e.fixed32.decode(d),
25312533 message: 1 & e.uint.decode(d) ? e.string.decode(d) : null,
25322534 }),
25332535 },
25342536 dc = e.frame(ec),
2535 nc = {
2537 oc = {
25362538 preencode(e, d) {
25372539 ;(dc.preencode(e, d.body), ce.preencode(e, d.attestation))
25382540 },
……@@ -2541,106 +2543,106 @@ const o = {
25412543 },
25422544 decode: (e) => ({ body: dc.decode(e), attestation: ce.decode(e) }),
25432545 },
2544 oc = ue,
2545 cc = e.frame(Zo),
2546 rc = _o,
2546 nc = ue,
2547 cc = e.frame(Zn),
2548 rc = _n,
25472549 tc = {
2548 preencode(d, o) {
2549 ;(e.fixed32.preencode(d, o.memberKey),
2550 e.uint.preencode(d, o.clock),
2551 oc.preencode(d, o.sender),
2552 cc.preencode(d, o.status),
2553 rc.preencode(d, o.keys),
2554 e.fixed32.preencode(d, o.mailbox),
2550 preencode(d, n) {
2551 ;(e.fixed32.preencode(d, n.memberKey),
2552 e.uint.preencode(d, n.clock),
2553 nc.preencode(d, n.sender),
2554 cc.preencode(d, n.status),
2555 rc.preencode(d, n.keys),
2556 e.fixed32.preencode(d, n.mailbox),
25552557 d.end++,
2556 o.message && e.string.preencode(d, o.message),
2557 n >= 11 && o.sentAt && e.uint.preencode(d, o.sentAt))
2558 n.message && e.string.preencode(d, n.message),
2559 o >= 11 && n.sentAt && e.uint.preencode(d, n.sentAt))
25582560 },
2559 encode(d, o) {
2560 const c = (o.message ? 1 : 0) | (n >= 11 && o.sentAt ? 2 : 0)
2561 ;(e.fixed32.encode(d, o.memberKey),
2562 e.uint.encode(d, o.clock),
2563 oc.encode(d, o.sender),
2564 cc.encode(d, o.status),
2565 rc.encode(d, o.keys),
2566 e.fixed32.encode(d, o.mailbox),
2561 encode(d, n) {
2562 const c = (n.message ? 1 : 0) | (o >= 11 && n.sentAt ? 2 : 0)
2563 ;(e.fixed32.encode(d, n.memberKey),
2564 e.uint.encode(d, n.clock),
2565 nc.encode(d, n.sender),
2566 cc.encode(d, n.status),
2567 rc.encode(d, n.keys),
2568 e.fixed32.encode(d, n.mailbox),
25672569 e.uint.encode(d, c),
2568 o.message && e.string.encode(d, o.message),
2569 n >= 11 && o.sentAt && e.uint.encode(d, o.sentAt))
2570 n.message && e.string.encode(d, n.message),
2571 o >= 11 && n.sentAt && e.uint.encode(d, n.sentAt))
25702572 },
25712573 decode(d) {
2572 const o = e.fixed32.decode(d),
2574 const n = e.fixed32.decode(d),
25732575 c = e.uint.decode(d),
2574 r = oc.decode(d),
2576 r = nc.decode(d),
25752577 t = cc.decode(d),
25762578 i = rc.decode(d),
25772579 a = e.fixed32.decode(d),
25782580 s = e.uint.decode(d)
25792581 return {
2580 memberKey: o,
2582 memberKey: n,
25812583 clock: c,
25822584 sender: r,
25832585 status: t,
25842586 keys: i,
25852587 mailbox: a,
25862588 message: 1 & s ? e.string.decode(d) : null,
2587 sentAt: n >= 11 && 2 & s ? e.uint.decode(d) : 0,
2589 sentAt: o >= 11 && 2 & s ? e.uint.decode(d) : 0,
25882590 }
25892591 },
25902592 },
25912593 ic = _,
25922594 ac = {
2593 preencode(d, n) {
2594 ;(ic.preencode(d, n.header), e.buffer.preencode(d, n.blindRequest))
2595 preencode(d, o) {
2596 ;(ic.preencode(d, o.header), e.buffer.preencode(d, o.blindRequest))
25952597 },
2596 encode(d, n) {
2597 ;(ic.encode(d, n.header), e.buffer.encode(d, n.blindRequest))
2598 encode(d, o) {
2599 ;(ic.encode(d, o.header), e.buffer.encode(d, o.blindRequest))
25982600 },
25992601 decode: (d) => ({ header: ic.decode(d), blindRequest: e.buffer.decode(d) }),
26002602 },
26012603 sc = _,
26022604 pc = cc,
26032605 uc = {
2604 preencode(d, o) {
2605 ;(sc.preencode(d, o.header),
2606 e.fixed32.preencode(d, o.memberKey),
2607 e.uint.preencode(d, o.key),
2608 pc.preencode(d, o.status),
2606 preencode(d, n) {
2607 ;(sc.preencode(d, n.header),
2608 e.fixed32.preencode(d, n.memberKey),
2609 e.uint.preencode(d, n.key),
2610 pc.preencode(d, n.status),
26092611 d.end++,
2610 n >= 10 && o.roomKey && e.fixed32.preencode(d, o.roomKey))
2612 o >= 10 && n.roomKey && e.fixed32.preencode(d, n.roomKey))
26112613 },
2612 encode(d, o) {
2613 const c = n >= 10 && o.roomKey ? 1 : 0
2614 ;(sc.encode(d, o.header),
2615 e.fixed32.encode(d, o.memberKey),
2616 e.uint.encode(d, o.key),
2617 pc.encode(d, o.status),
2614 encode(d, n) {
2615 const c = o >= 10 && n.roomKey ? 1 : 0
2616 ;(sc.encode(d, n.header),
2617 e.fixed32.encode(d, n.memberKey),
2618 e.uint.encode(d, n.key),
2619 pc.encode(d, n.status),
26182620 e.uint.encode(d, c),
2619 n >= 10 && o.roomKey && e.fixed32.encode(d, o.roomKey))
2621 o >= 10 && n.roomKey && e.fixed32.encode(d, n.roomKey))
26202622 },
26212623 decode(d) {
2622 const o = sc.decode(d),
2624 const n = sc.decode(d),
26232625 c = e.fixed32.decode(d),
26242626 r = e.uint.decode(d),
26252627 t = pc.decode(d),
26262628 i = d.start < d.end ? e.uint.decode(d) : 0
26272629 return {
2628 header: o,
2630 header: n,
26292631 memberKey: c,
26302632 key: r,
26312633 status: t,
2632 roomKey: n >= 10 && 1 & i ? e.fixed32.decode(d) : null,
2634 roomKey: o >= 10 && 1 & i ? e.fixed32.decode(d) : null,
26332635 }
26342636 },
26352637 },
26362638 lc = {
2637 preencode(d, n) {
2638 ;(e.uint.preencode(d, n.timestamp),
2639 e.fixed32.preencode(d, n.key),
2640 e.fixed32.preencode(d, n.mailbox))
2639 preencode(d, o) {
2640 ;(e.uint.preencode(d, o.timestamp),
2641 e.fixed32.preencode(d, o.key),
2642 e.fixed32.preencode(d, o.mailbox))
26412643 },
2642 encode(d, n) {
2643 ;(e.uint.encode(d, n.timestamp), e.fixed32.encode(d, n.key), e.fixed32.encode(d, n.mailbox))
2644 encode(d, o) {
2645 ;(e.uint.encode(d, o.timestamp), e.fixed32.encode(d, o.key), e.fixed32.encode(d, o.mailbox))
26442646 },
26452647 decode: (d) => ({
26462648 version: e.uint.decode(d),
……@@ -2650,30 +2652,30 @@ const o = {
26502652 }),
26512653 },
26522654 fc = {
2653 preencode(d, n) {
2654 switch ((e.uint.preencode(d, n.version), n.version)) {
2655 preencode(d, o) {
2656 switch ((e.uint.preencode(d, o.version), o.version)) {
26552657 case 0:
26562658 case 1:
2657 lc.preencode(d, n)
2659 lc.preencode(d, o)
26582660 break
26592661 default:
26602662 throw new Error("Unsupported version")
26612663 }
26622664 },
2663 encode(d, n) {
2664 switch ((e.uint.encode(d, n.version), n.version)) {
2665 encode(d, o) {
2666 switch ((e.uint.encode(d, o.version), o.version)) {
26652667 case 0:
26662668 case 1:
2667 lc.encode(d, n)
2669 lc.encode(d, o)
26682670 break
26692671 default:
26702672 throw new Error("Unsupported version")
26712673 }
26722674 },
26732675 decode(d) {
2674 const n = d.start,
2675 o = e.uint.decode(d)
2676 switch (((d.start = n), o)) {
2676 const o = d.start,
2677 n = e.uint.decode(d)
2678 switch (((d.start = o), n)) {
26772679 case 0:
26782680 case 1:
26792681 return lc.decode(d)
……@@ -2684,49 +2686,49 @@ const o = {
26842686 },
26852687 mc = _,
26862688 yc = {
2687 preencode(d, o) {
2688 ;(mc.preencode(d, o.header),
2689 c.preencode(d, o.oplog),
2690 e.uint.preencode(d, o.index),
2691 at.preencode(d, o.preview),
2689 preencode(d, n) {
2690 ;(mc.preencode(d, n.header),
2691 c.preencode(d, n.oplog),
2692 e.uint.preencode(d, n.index),
2693 pt.preencode(d, n.preview),
26922694 d.end++,
2693 n >= 7 && o.displayType && Rc.preencode(d, o.displayType))
2695 o >= 7 && n.displayType && Rc.preencode(d, n.displayType))
26942696 },
2695 encode(d, o) {
2696 const r = n >= 7 && o.displayType ? 1 : 0
2697 ;(mc.encode(d, o.header),
2698 c.encode(d, o.oplog),
2699 e.uint.encode(d, o.index),
2700 at.encode(d, o.preview),
2697 encode(d, n) {
2698 const r = o >= 7 && n.displayType ? 1 : 0
2699 ;(mc.encode(d, n.header),
2700 c.encode(d, n.oplog),
2701 e.uint.encode(d, n.index),
2702 pt.encode(d, n.preview),
27012703 e.uint.encode(d, r),
2702 n >= 7 && o.displayType && Rc.encode(d, o.displayType))
2704 o >= 7 && n.displayType && Rc.encode(d, n.displayType))
27032705 },
27042706 decode(d) {
2705 const o = mc.decode(d),
2707 const n = mc.decode(d),
27062708 r = c.decode(d),
27072709 t = e.uint.decode(d),
2708 i = at.decode(d),
2710 i = pt.decode(d),
27092711 a = d.start < d.end ? e.uint.decode(d) : 0
27102712 return {
2711 header: o,
2713 header: n,
27122714 oplog: r,
27132715 index: t,
27142716 preview: i,
2715 displayType: n >= 7 && 1 & a ? Rc.decode(d) : 0,
2717 displayType: o >= 7 && 1 & a ? Rc.decode(d) : 0,
27162718 }
27172719 },
27182720 },
27192721 xc = {
2720 preencode(d, o) {
2721 ;(d.end++, n >= 3 && o.memberKey && e.fixed32.preencode(d, o.memberKey))
2722 preencode(d, n) {
2723 ;(d.end++, o >= 3 && n.memberKey && e.fixed32.preencode(d, n.memberKey))
27222724 },
2723 encode(d, o) {
2724 const c = n >= 3 && o.memberKey ? 1 : 0
2725 ;(e.uint.encode(d, c), n >= 3 && o.memberKey && e.fixed32.encode(d, o.memberKey))
2725 encode(d, n) {
2726 const c = o >= 3 && n.memberKey ? 1 : 0
2727 ;(e.uint.encode(d, c), o >= 3 && n.memberKey && e.fixed32.encode(d, n.memberKey))
27262728 },
27272729 decode(d) {
2728 const o = e.uint.decode(d)
2729 return { memberKey: n >= 3 && 1 & o ? e.fixed32.decode(d) : null }
2730 const n = e.uint.decode(d)
2731 return { memberKey: o >= 3 && 1 & n ? e.fixed32.decode(d) : null }
27302732 },
27312733 },
27322734 bc = ue,
……@@ -2741,24 +2743,24 @@ const o = {
27412743 },
27422744 vc = _,
27432745 gc = {
2744 preencode(d, n) {
2745 ;(vc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
2746 preencode(d, o) {
2747 ;(vc.preencode(d, o.header), e.fixed32.preencode(d, o.key))
27462748 },
2747 encode(d, n) {
2748 ;(vc.encode(d, n.header), e.fixed32.encode(d, n.key))
2749 encode(d, o) {
2750 ;(vc.encode(d, o.header), e.fixed32.encode(d, o.key))
27492751 },
27502752 decode: (d) => ({ header: vc.decode(d), key: e.fixed32.decode(d) }),
27512753 },
27522754 hc = {
2753 preencode(d, n) {
2754 ;(e.fixed32.preencode(d, n.deviceKey),
2755 ce.preencode(d, n.privateProfileIdentity),
2756 e.buffer.preencode(d, n.deviceProof))
2755 preencode(d, o) {
2756 ;(e.fixed32.preencode(d, o.deviceKey),
2757 ce.preencode(d, o.privateProfileIdentity),
2758 e.buffer.preencode(d, o.deviceProof))
27572759 },
2758 encode(d, n) {
2759 ;(e.fixed32.encode(d, n.deviceKey),
2760 ce.encode(d, n.privateProfileIdentity),
2761 e.buffer.encode(d, n.deviceProof))
2760 encode(d, o) {
2761 ;(e.fixed32.encode(d, o.deviceKey),
2762 ce.encode(d, o.privateProfileIdentity),
2763 e.buffer.encode(d, o.deviceProof))
27622764 },
27632765 decode: (d) => ({
27642766 deviceKey: e.fixed32.decode(d),
……@@ -2767,70 +2769,70 @@ const o = {
27672769 }),
27682770 },
27692771 Kc = {
2770 preencode(d, o) {
2771 ;(e.fixed32.preencode(d, o.roomKey),
2772 e.fixed32.preencode(d, o.encryptionKey),
2773 e.fixed32.preencode(d, o.seed),
2772 preencode(d, n) {
2773 ;(e.fixed32.preencode(d, n.roomKey),
2774 e.fixed32.preencode(d, n.encryptionKey),
2775 e.fixed32.preencode(d, n.seed),
27742776 d.end++,
2775 n >= 6 && o.fastForwardTo && e.fixed32.preencode(d, o.fastForwardTo))
2777 o >= 6 && n.fastForwardTo && e.fixed32.preencode(d, n.fastForwardTo))
27762778 },
2777 encode(d, o) {
2778 const c = n >= 6 && o.fastForwardTo ? 1 : 0
2779 ;(e.fixed32.encode(d, o.roomKey),
2780 e.fixed32.encode(d, o.encryptionKey),
2781 e.fixed32.encode(d, o.seed),
2779 encode(d, n) {
2780 const c = o >= 6 && n.fastForwardTo ? 1 : 0
2781 ;(e.fixed32.encode(d, n.roomKey),
2782 e.fixed32.encode(d, n.encryptionKey),
2783 e.fixed32.encode(d, n.seed),
27822784 e.uint.encode(d, c),
2783 n >= 6 && o.fastForwardTo && e.fixed32.encode(d, o.fastForwardTo))
2785 o >= 6 && n.fastForwardTo && e.fixed32.encode(d, n.fastForwardTo))
27842786 },
27852787 decode(d) {
2786 const o = e.fixed32.decode(d),
2788 const n = e.fixed32.decode(d),
27872789 c = e.fixed32.decode(d),
27882790 r = e.fixed32.decode(d),
27892791 t = e.uint.decode(d)
27902792 return {
2791 roomKey: o,
2793 roomKey: n,
27922794 encryptionKey: c,
27932795 seed: r,
2794 fastForwardTo: n >= 6 && 1 & t ? e.fixed32.decode(d) : null,
2796 fastForwardTo: o >= 6 && 1 & t ? e.fixed32.decode(d) : null,
27952797 }
27962798 },
27972799 },
27982800 wc = {
2799 preencode(d, o) {
2800 ;(e.fixed32.preencode(d, o.publicKey),
2801 e.fixed32.preencode(d, o.writerKey),
2802 e.fixed32.preencode(d, o.devicePublicKey),
2801 preencode(d, n) {
2802 ;(e.fixed32.preencode(d, n.publicKey),
2803 e.fixed32.preencode(d, n.writerKey),
2804 e.fixed32.preencode(d, n.devicePublicKey),
28032805 d.end++,
2804 n >= 6 && o.privateProfileKey && e.fixed32.preencode(d, o.privateProfileKey))
2806 o >= 6 && n.privateProfileKey && e.fixed32.preencode(d, n.privateProfileKey))
28052807 },
2806 encode(d, o) {
2807 const c = n >= 6 && o.privateProfileKey ? 1 : 0
2808 ;(e.fixed32.encode(d, o.publicKey),
2809 e.fixed32.encode(d, o.writerKey),
2810 e.fixed32.encode(d, o.devicePublicKey),
2808 encode(d, n) {
2809 const c = o >= 6 && n.privateProfileKey ? 1 : 0
2810 ;(e.fixed32.encode(d, n.publicKey),
2811 e.fixed32.encode(d, n.writerKey),
2812 e.fixed32.encode(d, n.devicePublicKey),
28112813 e.uint.encode(d, c),
2812 n >= 6 && o.privateProfileKey && e.fixed32.encode(d, o.privateProfileKey))
2814 o >= 6 && n.privateProfileKey && e.fixed32.encode(d, n.privateProfileKey))
28132815 },
28142816 decode(d) {
2815 const o = e.fixed32.decode(d),
2817 const n = e.fixed32.decode(d),
28162818 c = e.fixed32.decode(d),
28172819 r = e.fixed32.decode(d),
28182820 t = e.uint.decode(d)
28192821 return {
2820 publicKey: o,
2822 publicKey: n,
28212823 writerKey: c,
28222824 devicePublicKey: r,
2823 privateProfileKey: n >= 6 && 1 & t ? e.fixed32.decode(d) : null,
2825 privateProfileKey: o >= 6 && 1 & t ? e.fixed32.decode(d) : null,
28242826 }
28252827 },
28262828 },
28272829 Tc = _,
28282830 Pc = {
2829 preencode(d, n) {
2830 ;(Tc.preencode(d, n.header), e.fixed32.preencode(d, n.memberKey))
2831 preencode(d, o) {
2832 ;(Tc.preencode(d, o.header), e.fixed32.preencode(d, o.memberKey))
28312833 },
2832 encode(d, n) {
2833 ;(Tc.encode(d, n.header), e.fixed32.encode(d, n.memberKey))
2834 encode(d, o) {
2835 ;(Tc.encode(d, o.header), e.fixed32.encode(d, o.memberKey))
28342836 },
28352837 decode: (d) => ({ header: Tc.decode(d), memberKey: e.fixed32.decode(d) }),
28362838 },
……@@ -2839,54 +2841,54 @@ const o = {
28392841 preencode(e, d) {
28402842 e.end++
28412843 },
2842 encode(d, n) {
2843 if (n > 2) throw new Error("Unknown enum")
2844 e.uint.encode(d, n)
2844 encode(d, o) {
2845 if (o > 2) throw new Error("Unknown enum")
2846 e.uint.encode(d, o)
28452847 },
28462848 decode: (d) => e.uint.decode(d),
28472849 },
28482850 Dc = _,
2849 Sc = {
2850 preencode(d, n) {
2851 ;(Dc.preencode(d, n.header), e.uint.preencode(d, n.value))
2851 Mc = {
2852 preencode(d, o) {
2853 ;(Dc.preencode(d, o.header), e.uint.preencode(d, o.value))
28522854 },
2853 encode(d, n) {
2854 ;(Dc.encode(d, n.header), e.uint.encode(d, n.value))
2855 encode(d, o) {
2856 ;(Dc.encode(d, o.header), e.uint.encode(d, o.value))
28552857 },
28562858 decode: (d) => ({ header: Dc.decode(d), value: e.uint.decode(d) }),
28572859 },
2858 Cc = {
2859 preencode(d, n) {
2860 ;(e.uint.preencode(d, n.key), e.uint.preencode(d, n.value))
2860 Sc = {
2861 preencode(d, o) {
2862 ;(e.uint.preencode(d, o.key), e.uint.preencode(d, o.value))
28612863 },
2862 encode(d, n) {
2863 ;(e.uint.encode(d, n.key), e.uint.encode(d, n.value))
2864 encode(d, o) {
2865 ;(e.uint.encode(d, o.key), e.uint.encode(d, o.value))
28642866 },
28652867 decode: (d) => ({ key: e.uint.decode(d), value: e.uint.decode(d) }),
28662868 },
2867 Mc = _,
2869 Cc = _,
28682870 Lc = {
2869 preencode(d, o) {
2870 ;(Mc.preencode(d, o.header),
2871 e.uint.preencode(d, o.from),
2872 e.uint.preencode(d, o.to),
2871 preencode(d, n) {
2872 ;(Cc.preencode(d, n.header),
2873 e.uint.preencode(d, n.from),
2874 e.uint.preencode(d, n.to),
28732875 d.end++,
2874 n >= 20 && o.buildType && Or.preencode(d, o.buildType))
2876 o >= 20 && n.buildType && Ur.preencode(d, n.buildType))
28752877 },
2876 encode(d, o) {
2877 const c = n >= 20 && o.buildType ? 1 : 0
2878 ;(Mc.encode(d, o.header),
2879 e.uint.encode(d, o.from),
2880 e.uint.encode(d, o.to),
2878 encode(d, n) {
2879 const c = o >= 20 && n.buildType ? 1 : 0
2880 ;(Cc.encode(d, n.header),
2881 e.uint.encode(d, n.from),
2882 e.uint.encode(d, n.to),
28812883 e.uint.encode(d, c),
2882 n >= 20 && o.buildType && Or.encode(d, o.buildType))
2884 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
28832885 },
28842886 decode(d) {
2885 const o = Mc.decode(d),
2887 const n = Cc.decode(d),
28862888 c = e.uint.decode(d),
28872889 r = e.uint.decode(d),
28882890 t = d.start < d.end ? e.uint.decode(d) : 0
2889 return { header: o, from: c, to: r, buildType: n >= 20 && 1 & t ? Or.decode(d) : null }
2891 return { header: n, from: c, to: r, buildType: o >= 20 && 1 & t ? Ur.decode(d) : null }
28902892 },
28912893 },
28922894 qc = {
……@@ -2903,9 +2905,9 @@ const o = {
29032905 preencode(e, d) {
29042906 e.end++
29052907 },
2906 encode(d, n) {
2907 if (n > 8) throw new Error("Unknown enum")
2908 e.uint.encode(d, n)
2908 encode(d, o) {
2909 if (o > 8) throw new Error("Unknown enum")
2910 e.uint.encode(d, o)
29092911 },
29102912 decode: (d) => e.uint.decode(d),
29112913 },
……@@ -2914,8 +2916,8 @@ const o = {
29142916 preencode(e, d) {
29152917 e.end++
29162918 },
2917 encode(d, n) {
2918 switch (n) {
2919 encode(d, o) {
2920 switch (o) {
29192921 case "en":
29202922 e.uint.encode(d, 1)
29212923 break
……@@ -2954,69 +2956,69 @@ const o = {
29542956 },
29552957 Ic = Ed,
29562958 Nc = {
2957 preencode(d, n) {
2958 ;(Ic.preencode(d, n.range), Bc.preencode(d, n.language), e.string.preencode(d, n.text))
2959 preencode(d, o) {
2960 ;(Ic.preencode(d, o.range), Bc.preencode(d, o.language), e.string.preencode(d, o.text))
29592961 },
2960 encode(d, n) {
2961 ;(Ic.encode(d, n.range), Bc.encode(d, n.language), e.string.encode(d, n.text))
2962 encode(d, o) {
2963 ;(Ic.encode(d, o.range), Bc.encode(d, o.language), e.string.encode(d, o.text))
29622964 },
29632965 decode: (d) => ({ range: Ic.decode(d), language: Bc.decode(d), text: e.string.decode(d) }),
29642966 },
29652967 jc = {
2966 preencode(d, n) {
2967 ;(e.fixed32.preencode(d, n.deviceKey), e.fixed32.preencode(d, n.key))
2968 preencode(d, o) {
2969 ;(e.fixed32.preencode(d, o.deviceKey), e.fixed32.preencode(d, o.key))
29682970 },
2969 encode(d, n) {
2970 ;(e.fixed32.encode(d, n.deviceKey), e.fixed32.encode(d, n.key))
2971 encode(d, o) {
2972 ;(e.fixed32.encode(d, o.deviceKey), e.fixed32.encode(d, o.key))
29712973 },
29722974 decode: (d) => ({ deviceKey: e.fixed32.decode(d), key: e.fixed32.decode(d) }),
29732975 },
2974 Oc = _,
2975 Jc = {
2976 preencode(d, n) {
2977 ;(Oc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
2976 Uc = _,
2977 Oc = {
2978 preencode(d, o) {
2979 ;(Uc.preencode(d, o.header), e.fixed32.preencode(d, o.key))
29782980 },
2979 encode(d, n) {
2980 ;(Oc.encode(d, n.header), e.fixed32.encode(d, n.key))
2981 encode(d, o) {
2982 ;(Uc.encode(d, o.header), e.fixed32.encode(d, o.key))
29812983 },
2982 decode: (d) => ({ header: Oc.decode(d), key: e.fixed32.decode(d) }),
2984 decode: (d) => ({ header: Uc.decode(d), key: e.fixed32.decode(d) }),
29832985 },
2984 Uc = _,
2986 Jc = _,
29852987 Vc = {
2986 preencode(d, n) {
2987 ;(Uc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
2988 preencode(d, o) {
2989 ;(Jc.preencode(d, o.header), e.fixed32.preencode(d, o.key))
29882990 },
2989 encode(d, n) {
2990 ;(Uc.encode(d, n.header), e.fixed32.encode(d, n.key))
2991 encode(d, o) {
2992 ;(Jc.encode(d, o.header), e.fixed32.encode(d, o.key))
29912993 },
2992 decode: (d) => ({ header: Uc.decode(d), key: e.fixed32.decode(d) }),
2994 decode: (d) => ({ header: Jc.decode(d), key: e.fixed32.decode(d) }),
29932995 },
29942996 Hc = { Flag: 1 },
29952997 zc = {
29962998 preencode(e, d) {
29972999 e.end++
29983000 },
2999 encode(d, n) {
3000 if (n > 1) throw new Error("Unknown enum")
3001 e.uint.encode(d, n)
3001 encode(d, o) {
3002 if (o > 1) throw new Error("Unknown enum")
3003 e.uint.encode(d, o)
30023004 },
30033005 decode: (d) => e.uint.decode(d),
30043006 },
30053007 Gc = {
3006 preencode(d, n) {
3007 ;(fn.preencode(d, n.id),
3008 e.fixed32.preencode(d, n.sender),
3009 e.uint.preencode(d, n.clock),
3010 zc.preencode(d, n.label))
3008 preencode(d, o) {
3009 ;(fo.preencode(d, o.id),
3010 e.fixed32.preencode(d, o.sender),
3011 e.uint.preencode(d, o.clock),
3012 zc.preencode(d, o.label))
30113013 },
3012 encode(d, n) {
3013 ;(fn.encode(d, n.id),
3014 e.fixed32.encode(d, n.sender),
3015 e.uint.encode(d, n.clock),
3016 zc.encode(d, n.label))
3014 encode(d, o) {
3015 ;(fo.encode(d, o.id),
3016 e.fixed32.encode(d, o.sender),
3017 e.uint.encode(d, o.clock),
3018 zc.encode(d, o.label))
30173019 },
30183020 decode: (d) => ({
3019 id: fn.decode(d),
3021 id: fo.decode(d),
30203022 sender: e.fixed32.decode(d),
30213023 clock: e.uint.decode(d),
30223024 label: zc.decode(d),
……@@ -3043,98 +3045,122 @@ const o = {
30433045 decode: (e) => ({ header: Xc.decode(e), oplog: c.decode(e), label: zc.decode(e) }),
30443046 },
30453047 Zc = {
3046 preencode(d, n) {
3047 ;(zc.preencode(d, n.label), e.uint.preencode(d, n.count))
3048 preencode(d, o) {
3049 ;(zc.preencode(d, o.label), e.uint.preencode(d, o.count))
30483050 },
3049 encode(d, n) {
3050 ;(zc.encode(d, n.label), e.uint.encode(d, n.count))
3051 encode(d, o) {
3052 ;(zc.encode(d, o.label), e.uint.encode(d, o.count))
30513053 },
30523054 decode: (d) => ({ label: zc.decode(d), count: e.uint.decode(d) }),
30533055 },
30543056 $c = e.array(e.frame(Zc)),
30553057 _c = {
3056 preencode(d, o) {
3057 ;(fn.preencode(d, o.id),
3058 e.uint.preencode(d, o.total),
3059 $c.preencode(d, o.labels),
3060 e.uint.preencode(d, o.editedAt),
3058 preencode(d, n) {
3059 ;(fo.preencode(d, n.id),
3060 e.uint.preencode(d, n.total),
3061 $c.preencode(d, n.labels),
3062 e.uint.preencode(d, n.editedAt),
30613063 d.end++,
3062 n >= 15 && o.flagsClock && e.uint.preencode(d, o.flagsClock),
3063 n >= 15 && o.version && e.uint.preencode(d, o.version))
3064 o >= 15 && n.flagsClock && e.uint.preencode(d, n.flagsClock),
3065 o >= 15 && n.version && e.uint.preencode(d, n.version))
30643066 },
3065 encode(d, o) {
3067 encode(d, n) {
30663068 const c =
3067 (n >= 15 && o.flagsClock ? 1 : 0) |
3068 (n >= 15 && o.version ? 2 : 0) |
3069 (n >= 16 && o.isDeleted ? 4 : 0)
3070 ;(fn.encode(d, o.id),
3071 e.uint.encode(d, o.total),
3072 $c.encode(d, o.labels),
3073 e.uint.encode(d, o.editedAt),
3069 (o >= 15 && n.flagsClock ? 1 : 0) |
3070 (o >= 15 && n.version ? 2 : 0) |
3071 (o >= 16 && n.isDeleted ? 4 : 0)
3072 ;(fo.encode(d, n.id),
3073 e.uint.encode(d, n.total),
3074 $c.encode(d, n.labels),
3075 e.uint.encode(d, n.editedAt),
30743076 e.uint.encode(d, c),
3075 n >= 15 && o.flagsClock && e.uint.encode(d, o.flagsClock),
3076 n >= 15 && o.version && e.uint.encode(d, o.version))
3077 o >= 15 && n.flagsClock && e.uint.encode(d, n.flagsClock),
3078 o >= 15 && n.version && e.uint.encode(d, n.version))
30773079 },
30783080 decode(d) {
3079 const o = fn.decode(d),
3081 const n = fo.decode(d),
30803082 c = e.uint.decode(d),
30813083 r = $c.decode(d),
30823084 t = e.uint.decode(d),
30833085 i = d.start < d.end ? e.uint.decode(d) : 0
30843086 return {
3085 id: o,
3087 id: n,
30863088 total: c,
30873089 labels: r,
30883090 editedAt: t,
3089 flagsClock: n >= 15 && 1 & i ? e.uint.decode(d) : 0,
3090 version: n >= 15 && 2 & i ? e.uint.decode(d) : 0,
3091 isDeleted: n >= 16 && !!(4 & i),
3091 flagsClock: o >= 15 && 1 & i ? e.uint.decode(d) : 0,
3092 version: o >= 15 && 2 & i ? e.uint.decode(d) : 0,
3093 isDeleted: o >= 16 && !!(4 & i),
30923094 }
30933095 },
30943096 },
30953097 er = _,
30963098 dr = {
3097 preencode(d, n) {
3098 ;(er.preencode(d, n.header), e.uint.preencode(d, n.length))
3099 preencode(d, o) {
3100 ;(er.preencode(d, o.header), e.uint.preencode(d, o.length))
30993101 },
3100 encode(d, n) {
3101 ;(er.encode(d, n.header), e.uint.encode(d, n.length))
3102 encode(d, o) {
3103 ;(er.encode(d, o.header), e.uint.encode(d, o.length))
31023104 },
31033105 decode: (d) => ({ header: er.decode(d), length: e.uint.decode(d) }),
31043106 },
3105 nr = {
3106 preencode(d, n) {
3107 ;(e.fixed32.preencode(d, n.memberKey), e.uint.preencode(d, n.length))
3107 or = {
3108 preencode(d, o) {
3109 ;(e.fixed32.preencode(d, o.memberKey), e.uint.preencode(d, o.length))
31083110 },
3109 encode(d, n) {
3110 ;(e.fixed32.encode(d, n.memberKey), e.uint.encode(d, n.length))
3111 encode(d, o) {
3112 ;(e.fixed32.encode(d, o.memberKey), e.uint.encode(d, o.length))
31113113 },
31123114 decode: (d) => ({ memberKey: e.fixed32.decode(d), length: e.uint.decode(d) }),
31133115 },
3114 or = $,
3116 nr = $,
31153117 cr = {
31163118 preencode(e, d) {
31173119 e.end++
31183120 },
3119 encode(d, o) {
3120 const c = n >= 13 && o.disableReadReceipts ? 1 : 0
3121 encode(d, n) {
3122 const c =
3123 (o >= 13 && n.disableReadReceipts ? 1 : 0) | (o >= 21 && n.stripAttachmentMetadata ? 2 : 0)
31213124 e.uint.encode(d, c)
31223125 },
31233126 decode(d) {
3124 const o = e.uint.decode(d)
3125 return { disableReadReceipts: n >= 13 && !!(1 & o) }
3127 const n = e.uint.decode(d)
3128 return {
3129 disableReadReceipts: o >= 13 && !!(1 & n),
3130 stripAttachmentMetadata: o >= 21 && !!(2 & n),
3131 }
31263132 },
31273133 },
3128 rr = { disableReadReceipts: "disableReadReceipts" },
3134 rr = {
3135 disableReadReceipts: "disableReadReceipts",
3136 stripAttachmentMetadata: "stripAttachmentMetadata",
3137 },
31293138 tr = {
31303139 preencode(e, d) {
31313140 e.end++
31323141 },
3133 encode(d, n) {
3134 if ("disableReadReceipts" !== n) throw new Error("Unknown enum")
3135 e.uint.encode(d, 1)
3142 encode(d, o) {
3143 switch (o) {
3144 case "disableReadReceipts":
3145 e.uint.encode(d, 1)
3146 break
3147 case "stripAttachmentMetadata":
3148 e.uint.encode(d, 2)
3149 break
3150 default:
3151 throw new Error("Unknown enum")
3152 }
3153 },
3154 decode(d) {
3155 switch (e.uint.decode(d)) {
3156 case 1:
3157 return "disableReadReceipts"
3158 case 2:
3159 return "stripAttachmentMetadata"
3160 default:
3161 return null
3162 }
31363163 },
3137 decode: (d) => (1 === e.uint.decode(d) ? "disableReadReceipts" : null),
31383164 },
31393165 ir = _,
31403166 ar = e.frame(cr),
……@@ -3152,24 +3178,24 @@ const o = {
31523178 preencode(e, d) {
31533179 e.end++
31543180 },
3155 encode(d, n) {
3156 if (n > 1) throw new Error("Unknown enum")
3157 e.uint.encode(d, n)
3181 encode(d, o) {
3182 if (o > 1) throw new Error("Unknown enum")
3183 e.uint.encode(d, o)
31583184 },
31593185 decode: (d) => e.uint.decode(d),
31603186 },
31613187 lr = {
3162 preencode(d, n) {
3163 ;(e.fixed32.preencode(d, n.key),
3164 e.fixed32.preencode(d, n.sender),
3165 e.uint.preencode(d, n.clock),
3166 ur.preencode(d, n.label))
3188 preencode(d, o) {
3189 ;(e.fixed32.preencode(d, o.key),
3190 e.fixed32.preencode(d, o.sender),
3191 e.uint.preencode(d, o.clock),
3192 ur.preencode(d, o.label))
31673193 },
3168 encode(d, n) {
3169 ;(e.fixed32.encode(d, n.key),
3170 e.fixed32.encode(d, n.sender),
3171 e.uint.encode(d, n.clock),
3172 ur.encode(d, n.label))
3194 encode(d, o) {
3195 ;(e.fixed32.encode(d, o.key),
3196 e.fixed32.encode(d, o.sender),
3197 e.uint.encode(d, o.clock),
3198 ur.encode(d, o.label))
31733199 },
31743200 decode: (d) => ({
31753201 key: e.fixed32.decode(d),
……@@ -3180,38 +3206,38 @@ const o = {
31803206 },
31813207 fr = _,
31823208 mr = {
3183 preencode(d, n) {
3184 ;(fr.preencode(d, n.header), e.fixed32.preencode(d, n.key), ur.preencode(d, n.label))
3209 preencode(d, o) {
3210 ;(fr.preencode(d, o.header), e.fixed32.preencode(d, o.key), ur.preencode(d, o.label))
31853211 },
3186 encode(d, n) {
3187 ;(fr.encode(d, n.header), e.fixed32.encode(d, n.key), ur.encode(d, n.label))
3212 encode(d, o) {
3213 ;(fr.encode(d, o.header), e.fixed32.encode(d, o.key), ur.encode(d, o.label))
31883214 },
31893215 decode: (d) => ({ header: fr.decode(d), key: e.fixed32.decode(d), label: ur.decode(d) }),
31903216 },
31913217 yr = {
3192 preencode(d, n) {
3193 ;(ur.preencode(d, n.label), e.uint.preencode(d, n.count))
3218 preencode(d, o) {
3219 ;(ur.preencode(d, o.label), e.uint.preencode(d, o.count))
31943220 },
3195 encode(d, n) {
3196 ;(ur.encode(d, n.label), e.uint.encode(d, n.count))
3221 encode(d, o) {
3222 ;(ur.encode(d, o.label), e.uint.encode(d, o.count))
31973223 },
31983224 decode: (d) => ({ label: ur.decode(d), count: e.uint.decode(d) }),
31993225 },
32003226 xr = e.array(e.frame(yr)),
32013227 br = {
3202 preencode(d, n) {
3203 ;(e.fixed32.preencode(d, n.key),
3204 e.uint.preencode(d, n.total),
3205 xr.preencode(d, n.labels),
3206 e.uint.preencode(d, n.editedAt),
3207 e.uint.preencode(d, n.flagsClock))
3228 preencode(d, o) {
3229 ;(e.fixed32.preencode(d, o.key),
3230 e.uint.preencode(d, o.total),
3231 xr.preencode(d, o.labels),
3232 e.uint.preencode(d, o.editedAt),
3233 e.uint.preencode(d, o.flagsClock))
32083234 },
3209 encode(d, n) {
3210 ;(e.fixed32.encode(d, n.key),
3211 e.uint.encode(d, n.total),
3212 xr.encode(d, n.labels),
3213 e.uint.encode(d, n.editedAt),
3214 e.uint.encode(d, n.flagsClock))
3235 encode(d, o) {
3236 ;(e.fixed32.encode(d, o.key),
3237 e.uint.encode(d, o.total),
3238 xr.encode(d, o.labels),
3239 e.uint.encode(d, o.editedAt),
3240 e.uint.encode(d, o.flagsClock))
32153241 },
32163242 decode: (d) => ({
32173243 key: e.fixed32.decode(d),
……@@ -3222,25 +3248,25 @@ const o = {
32223248 }),
32233249 },
32243250 kr = {
3225 preencode(d, n) {
3226 ;(e.float64.preencode(d, n.latitude), e.float64.preencode(d, n.longitude))
3251 preencode(d, o) {
3252 ;(e.float64.preencode(d, o.latitude), e.float64.preencode(d, o.longitude))
32273253 },
3228 encode(d, n) {
3229 ;(e.float64.encode(d, n.latitude), e.float64.encode(d, n.longitude))
3254 encode(d, o) {
3255 ;(e.float64.encode(d, o.latitude), e.float64.encode(d, o.longitude))
32303256 },
32313257 decode: (d) => ({ latitude: e.float64.decode(d), longitude: e.float64.decode(d) }),
32323258 },
32333259 vr = _,
32343260 gr = {
3235 preencode(d, n) {
3236 ;(vr.preencode(d, n.header),
3237 e.fixed32.preencode(d, n.deviceKey),
3238 e.fixed32.preencode(d, n.fromDeviceKey))
3261 preencode(d, o) {
3262 ;(vr.preencode(d, o.header),
3263 e.fixed32.preencode(d, o.deviceKey),
3264 e.fixed32.preencode(d, o.fromDeviceKey))
32393265 },
3240 encode(d, n) {
3241 ;(vr.encode(d, n.header),
3242 e.fixed32.encode(d, n.deviceKey),
3243 e.fixed32.encode(d, n.fromDeviceKey))
3266 encode(d, o) {
3267 ;(vr.encode(d, o.header),
3268 e.fixed32.encode(d, o.deviceKey),
3269 e.fixed32.encode(d, o.fromDeviceKey))
32443270 },
32453271 decode: (d) => ({
32463272 header: vr.decode(d),
……@@ -3251,111 +3277,111 @@ const o = {
32513277 hr = _,
32523278 Kr = Y,
32533279 wr = {
3254 preencode(d, o) {
3255 ;(hr.preencode(d, o.header),
3256 e.fixed32.preencode(d, o.callKey),
3257 e.buffer.preencode(d, o.encryptionKey),
3280 preencode(d, n) {
3281 ;(hr.preencode(d, n.header),
3282 e.fixed32.preencode(d, n.callKey),
3283 e.buffer.preencode(d, n.encryptionKey),
32583284 d.end++,
3259 n >= 19 && o.streams && Kr.preencode(d, o.streams),
3260 n >= 19 && o.discoveryKey && e.fixed32.preencode(d, o.discoveryKey),
3261 n >= 19 && o.version && e.uint.preencode(d, o.version))
3285 o >= 19 && n.streams && Kr.preencode(d, n.streams),
3286 o >= 19 && n.discoveryKey && e.fixed32.preencode(d, n.discoveryKey),
3287 o >= 19 && n.version && e.uint.preencode(d, n.version))
32623288 },
3263 encode(d, o) {
3289 encode(d, n) {
32643290 const c =
3265 (n >= 19 && o.streams ? 1 : 0) |
3266 (n >= 19 && o.discoveryKey ? 2 : 0) |
3267 (n >= 19 && o.version ? 4 : 0)
3268 ;(hr.encode(d, o.header),
3269 e.fixed32.encode(d, o.callKey),
3270 e.buffer.encode(d, o.encryptionKey),
3291 (o >= 19 && n.streams ? 1 : 0) |
3292 (o >= 19 && n.discoveryKey ? 2 : 0) |
3293 (o >= 19 && n.version ? 4 : 0)
3294 ;(hr.encode(d, n.header),
3295 e.fixed32.encode(d, n.callKey),
3296 e.buffer.encode(d, n.encryptionKey),
32713297 e.uint.encode(d, c),
3272 n >= 19 && o.streams && Kr.encode(d, o.streams),
3273 n >= 19 && o.discoveryKey && e.fixed32.encode(d, o.discoveryKey),
3274 n >= 19 && o.version && e.uint.encode(d, o.version))
3298 o >= 19 && n.streams && Kr.encode(d, n.streams),
3299 o >= 19 && n.discoveryKey && e.fixed32.encode(d, n.discoveryKey),
3300 o >= 19 && n.version && e.uint.encode(d, n.version))
32753301 },
32763302 decode(d) {
3277 const o = hr.decode(d),
3303 const n = hr.decode(d),
32783304 c = e.fixed32.decode(d),
32793305 r = e.buffer.decode(d),
32803306 t = e.uint.decode(d)
32813307 return {
3282 header: o,
3308 header: n,
32833309 callKey: c,
32843310 encryptionKey: r,
3285 streams: n >= 19 && 1 & t ? Kr.decode(d) : null,
3286 discoveryKey: n >= 19 && 2 & t ? e.fixed32.decode(d) : null,
3287 version: n >= 19 && 4 & t ? e.uint.decode(d) : 0,
3311 streams: o >= 19 && 1 & t ? Kr.decode(d) : null,
3312 discoveryKey: o >= 19 && 2 & t ? e.fixed32.decode(d) : null,
3313 version: o >= 19 && 4 & t ? e.uint.decode(d) : 0,
32883314 }
32893315 },
32903316 },
32913317 Tr = _,
32923318 Pr = Y,
32933319 Ar = {
3294 preencode(d, o) {
3295 ;(Tr.preencode(d, o.header),
3296 e.fixed32.preencode(d, o.callKey),
3320 preencode(d, n) {
3321 ;(Tr.preencode(d, n.header),
3322 e.fixed32.preencode(d, n.callKey),
32973323 d.end++,
3298 n >= 19 && o.streams && Pr.preencode(d, o.streams))
3324 o >= 19 && n.streams && Pr.preencode(d, n.streams))
32993325 },
3300 encode(d, o) {
3301 const c = n >= 19 && o.streams ? 1 : 0
3302 ;(Tr.encode(d, o.header),
3303 e.fixed32.encode(d, o.callKey),
3326 encode(d, n) {
3327 const c = o >= 19 && n.streams ? 1 : 0
3328 ;(Tr.encode(d, n.header),
3329 e.fixed32.encode(d, n.callKey),
33043330 e.uint.encode(d, c),
3305 n >= 19 && o.streams && Pr.encode(d, o.streams))
3331 o >= 19 && n.streams && Pr.encode(d, n.streams))
33063332 },
33073333 decode(d) {
3308 const o = Tr.decode(d),
3334 const n = Tr.decode(d),
33093335 c = e.fixed32.decode(d),
33103336 r = e.uint.decode(d)
3311 return { header: o, callKey: c, streams: n >= 19 && 1 & r ? Pr.decode(d) : null }
3337 return { header: n, callKey: c, streams: o >= 19 && 1 & r ? Pr.decode(d) : null }
33123338 },
33133339 },
33143340 Rr = _,
33153341 Dr = {
3316 preencode(d, n) {
3317 ;(Rr.preencode(d, n.header), e.fixed32.preencode(d, n.callKey))
3342 preencode(d, o) {
3343 ;(Rr.preencode(d, o.header), e.fixed32.preencode(d, o.callKey))
33183344 },
3319 encode(d, n) {
3320 ;(Rr.encode(d, n.header), e.fixed32.encode(d, n.callKey))
3345 encode(d, o) {
3346 ;(Rr.encode(d, o.header), e.fixed32.encode(d, o.callKey))
33213347 },
33223348 decode: (d) => ({ header: Rr.decode(d), callKey: e.fixed32.decode(d) }),
33233349 },
3324 Sr = _,
3325 Cr = {
3326 preencode(d, n) {
3327 ;(Sr.preencode(d, n.header), e.fixed32.preencode(d, n.callKey))
3350 Mr = _,
3351 Sr = {
3352 preencode(d, o) {
3353 ;(Mr.preencode(d, o.header), e.fixed32.preencode(d, o.callKey))
33283354 },
3329 encode(d, n) {
3330 ;(Sr.encode(d, n.header), e.fixed32.encode(d, n.callKey))
3355 encode(d, o) {
3356 ;(Mr.encode(d, o.header), e.fixed32.encode(d, o.callKey))
33313357 },
3332 decode: (d) => ({ header: Sr.decode(d), callKey: e.fixed32.decode(d) }),
3358 decode: (d) => ({ header: Mr.decode(d), callKey: e.fixed32.decode(d) }),
33333359 },
3334 Mr = _,
3360 Cr = _,
33353361 Lr = {
3336 preencode(d, n) {
3337 ;(Mr.preencode(d, n.header),
3338 e.fixed32.preencode(d, n.callKey),
3339 e.fixed32.preencode(d, n.streamKey))
3362 preencode(d, o) {
3363 ;(Cr.preencode(d, o.header),
3364 e.fixed32.preencode(d, o.callKey),
3365 e.fixed32.preencode(d, o.streamKey))
33403366 },
3341 encode(d, n) {
3342 ;(Mr.encode(d, n.header), e.fixed32.encode(d, n.callKey), e.fixed32.encode(d, n.streamKey))
3367 encode(d, o) {
3368 ;(Cr.encode(d, o.header), e.fixed32.encode(d, o.callKey), e.fixed32.encode(d, o.streamKey))
33433369 },
33443370 decode: (d) => ({
3345 header: Mr.decode(d),
3371 header: Cr.decode(d),
33463372 callKey: e.fixed32.decode(d),
33473373 streamKey: e.fixed32.decode(d),
33483374 }),
33493375 },
33503376 qr = _,
33513377 Fr = {
3352 preencode(d, n) {
3353 ;(qr.preencode(d, n.header),
3354 e.fixed32.preencode(d, n.callKey),
3355 e.fixed32.preencode(d, n.streamKey))
3378 preencode(d, o) {
3379 ;(qr.preencode(d, o.header),
3380 e.fixed32.preencode(d, o.callKey),
3381 e.fixed32.preencode(d, o.streamKey))
33563382 },
3357 encode(d, n) {
3358 ;(qr.encode(d, n.header), e.fixed32.encode(d, n.callKey), e.fixed32.encode(d, n.streamKey))
3383 encode(d, o) {
3384 ;(qr.encode(d, o.header), e.fixed32.encode(d, o.callKey), e.fixed32.encode(d, o.streamKey))
33593385 },
33603386 decode: (d) => ({
33613387 header: qr.decode(d),
……@@ -3364,53 +3390,53 @@ const o = {
33643390 }),
33653391 },
33663392 Er = {
3367 preencode(d, o) {
3368 ;(e.fixed32.preencode(d, o.callKey),
3369 e.buffer.preencode(d, o.encryptionKey),
3370 e.uint.preencode(d, o.createdAt),
3393 preencode(d, n) {
3394 ;(e.fixed32.preencode(d, n.callKey),
3395 e.buffer.preencode(d, n.encryptionKey),
3396 e.uint.preencode(d, n.createdAt),
33713397 d.end++,
3372 n >= 19 && o.endedAt && e.uint.preencode(d, o.endedAt),
3373 n >= 19 && o.discoveryKey && e.fixed32.preencode(d, o.discoveryKey),
3374 n >= 19 && o.version && e.uint.preencode(d, o.version))
3398 o >= 19 && n.endedAt && e.uint.preencode(d, n.endedAt),
3399 o >= 19 && n.discoveryKey && e.fixed32.preencode(d, n.discoveryKey),
3400 o >= 19 && n.version && e.uint.preencode(d, n.version))
33753401 },
3376 encode(d, o) {
3402 encode(d, n) {
33773403 const c =
3378 (n >= 19 && o.endedAt ? 1 : 0) |
3379 (n >= 19 && o.discoveryKey ? 2 : 0) |
3380 (n >= 19 && o.version ? 4 : 0)
3381 ;(e.fixed32.encode(d, o.callKey),
3382 e.buffer.encode(d, o.encryptionKey),
3383 e.uint.encode(d, o.createdAt),
3404 (o >= 19 && n.endedAt ? 1 : 0) |
3405 (o >= 19 && n.discoveryKey ? 2 : 0) |
3406 (o >= 19 && n.version ? 4 : 0)
3407 ;(e.fixed32.encode(d, n.callKey),
3408 e.buffer.encode(d, n.encryptionKey),
3409 e.uint.encode(d, n.createdAt),
33843410 e.uint.encode(d, c),
3385 n >= 19 && o.endedAt && e.uint.encode(d, o.endedAt),
3386 n >= 19 && o.discoveryKey && e.fixed32.encode(d, o.discoveryKey),
3387 n >= 19 && o.version && e.uint.encode(d, o.version))
3411 o >= 19 && n.endedAt && e.uint.encode(d, n.endedAt),
3412 o >= 19 && n.discoveryKey && e.fixed32.encode(d, n.discoveryKey),
3413 o >= 19 && n.version && e.uint.encode(d, n.version))
33883414 },
33893415 decode(d) {
3390 const o = e.fixed32.decode(d),
3416 const n = e.fixed32.decode(d),
33913417 c = e.buffer.decode(d),
33923418 r = e.uint.decode(d),
33933419 t = e.uint.decode(d)
33943420 return {
3395 callKey: o,
3421 callKey: n,
33963422 encryptionKey: c,
33973423 createdAt: r,
3398 endedAt: n >= 19 && 1 & t ? e.uint.decode(d) : 0,
3399 discoveryKey: n >= 19 && 2 & t ? e.fixed32.decode(d) : null,
3400 version: n >= 19 && 4 & t ? e.uint.decode(d) : 0,
3424 endedAt: o >= 19 && 1 & t ? e.uint.decode(d) : 0,
3425 discoveryKey: o >= 19 && 2 & t ? e.fixed32.decode(d) : null,
3426 version: o >= 19 && 4 & t ? e.uint.decode(d) : 0,
34013427 }
34023428 },
34033429 },
34043430 Br = {
3405 preencode(d, n) {
3406 ;(e.fixed32.preencode(d, n.callKey),
3407 e.fixed32.preencode(d, n.memberKey),
3408 e.uint.preencode(d, n.createdAt))
3431 preencode(d, o) {
3432 ;(e.fixed32.preencode(d, o.callKey),
3433 e.fixed32.preencode(d, o.memberKey),
3434 e.uint.preencode(d, o.createdAt))
34093435 },
3410 encode(d, n) {
3411 ;(e.fixed32.encode(d, n.callKey),
3412 e.fixed32.encode(d, n.memberKey),
3413 e.uint.encode(d, n.createdAt))
3436 encode(d, o) {
3437 ;(e.fixed32.encode(d, o.callKey),
3438 e.fixed32.encode(d, o.memberKey),
3439 e.uint.encode(d, o.createdAt))
34143440 },
34153441 decode: (d) => ({
34163442 callKey: e.fixed32.decode(d),
……@@ -3419,50 +3445,50 @@ const o = {
34193445 }),
34203446 },
34213447 Ir = {
3422 preencode(d, o) {
3423 ;(e.fixed32.preencode(d, o.callKey),
3424 e.fixed32.preencode(d, o.deviceKey),
3425 e.fixed32.preencode(d, o.memberKey),
3426 e.uint.preencode(d, o.createdAt),
3448 preencode(d, n) {
3449 ;(e.fixed32.preencode(d, n.callKey),
3450 e.fixed32.preencode(d, n.deviceKey),
3451 e.fixed32.preencode(d, n.memberKey),
3452 e.uint.preencode(d, n.createdAt),
34273453 d.end++,
3428 n >= 19 && o.swarmKey && e.fixed32.preencode(d, o.swarmKey))
3454 o >= 19 && n.swarmKey && e.fixed32.preencode(d, n.swarmKey))
34293455 },
3430 encode(d, o) {
3431 const c = n >= 19 && o.swarmKey ? 1 : 0
3432 ;(e.fixed32.encode(d, o.callKey),
3433 e.fixed32.encode(d, o.deviceKey),
3434 e.fixed32.encode(d, o.memberKey),
3435 e.uint.encode(d, o.createdAt),
3456 encode(d, n) {
3457 const c = o >= 19 && n.swarmKey ? 1 : 0
3458 ;(e.fixed32.encode(d, n.callKey),
3459 e.fixed32.encode(d, n.deviceKey),
3460 e.fixed32.encode(d, n.memberKey),
3461 e.uint.encode(d, n.createdAt),
34363462 e.uint.encode(d, c),
3437 n >= 19 && o.swarmKey && e.fixed32.encode(d, o.swarmKey))
3463 o >= 19 && n.swarmKey && e.fixed32.encode(d, n.swarmKey))
34383464 },
34393465 decode(d) {
3440 const o = e.fixed32.decode(d),
3466 const n = e.fixed32.decode(d),
34413467 c = e.fixed32.decode(d),
34423468 r = e.fixed32.decode(d),
34433469 t = e.uint.decode(d),
34443470 i = e.uint.decode(d)
34453471 return {
3446 callKey: o,
3472 callKey: n,
34473473 deviceKey: c,
34483474 memberKey: r,
34493475 createdAt: t,
3450 swarmKey: n >= 19 && 1 & i ? e.fixed32.decode(d) : null,
3476 swarmKey: o >= 19 && 1 & i ? e.fixed32.decode(d) : null,
34513477 }
34523478 },
34533479 },
34543480 Nr = {
3455 preencode(d, n) {
3456 ;(e.fixed32.preencode(d, n.callKey),
3457 e.fixed32.preencode(d, n.deviceKey),
3458 e.buffer.preencode(d, n.streamKey),
3459 e.uint.preencode(d, n.createdAt))
3481 preencode(d, o) {
3482 ;(e.fixed32.preencode(d, o.callKey),
3483 e.fixed32.preencode(d, o.deviceKey),
3484 e.buffer.preencode(d, o.streamKey),
3485 e.uint.preencode(d, o.createdAt))
34603486 },
3461 encode(d, n) {
3462 ;(e.fixed32.encode(d, n.callKey),
3463 e.fixed32.encode(d, n.deviceKey),
3464 e.buffer.encode(d, n.streamKey),
3465 e.uint.encode(d, n.createdAt))
3487 encode(d, o) {
3488 ;(e.fixed32.encode(d, o.callKey),
3489 e.fixed32.encode(d, o.deviceKey),
3490 e.buffer.encode(d, o.streamKey),
3491 e.uint.encode(d, o.createdAt))
34663492 },
34673493 decode: (d) => ({
34683494 callKey: e.fixed32.decode(d),
……@@ -3472,12 +3498,12 @@ const o = {
34723498 }),
34733499 },
34743500 jr = { Nightly: "Nightly", Internal: "Internal", Production: "Production" },
3475 Or = {
3501 Ur = {
34763502 preencode(e, d) {
34773503 e.end++
34783504 },
3479 encode(d, n) {
3480 switch (n) {
3505 encode(d, o) {
3506 switch (o) {
34813507 case "Nightly":
34823508 e.uint.encode(d, 1)
34833509 break
……@@ -3504,15 +3530,15 @@ const o = {
35043530 }
35053531 },
35063532 },
3507 Jr = _,
3508 Ur = {
3533 Or = _,
3534 Jr = {
35093535 preencode(e, d) {
3510 Jr.preencode(e, d.header)
3536 Or.preencode(e, d.header)
35113537 },
35123538 encode(e, d) {
3513 Jr.encode(e, d.header)
3539 Or.encode(e, d.header)
35143540 },
3515 decode: (e) => ({ header: Jr.decode(e) }),
3541 decode: (e) => ({ header: Or.decode(e) }),
35163542 },
35173543 Vr = _,
35183544 Hr = {
……@@ -3524,37 +3550,58 @@ const o = {
35243550 },
35253551 decode: (e) => ({ header: Vr.decode(e) }),
35263552 },
3527 zr = e.frame(T),
3528 Gr = zr,
3529 Qr = e.array(Bc),
3530 Wr = e.frame(pe),
3531 Xr = zr,
3532 Yr = Wr,
3533 Zr = e.frame(Kc),
3534 $r = Wr,
3535 _r = e.frame(md),
3536 et = e.frame(xc),
3537 dt = e.frame(kr),
3538 nt = dt,
3539 ot = e.array(e.frame(Nc)),
3540 ct = zr,
3541 rt = e.frame(Uo),
3542 tt = rt,
3543 it = rt,
3544 at = zr
3545function st(e) {
3546 n = e
3553 zr = _,
3554 Gr = {
3555 preencode(d, o) {
3556 ;(zr.preencode(d, o.header),
3557 e.fixed32.preencode(d, o.deviceKey),
3558 e.buffer.preencode(d, o.deviceProof),
3559 e.buffer.preencode(d, o.writerProof))
3560 },
3561 encode(d, o) {
3562 ;(zr.encode(d, o.header),
3563 e.fixed32.encode(d, o.deviceKey),
3564 e.buffer.encode(d, o.deviceProof),
3565 e.buffer.encode(d, o.writerProof))
3566 },
3567 decode: (d) => ({
3568 header: zr.decode(d),
3569 deviceKey: e.fixed32.decode(d),
3570 deviceProof: e.buffer.decode(d),
3571 writerProof: e.buffer.decode(d),
3572 }),
3573 },
3574 Qr = e.frame(T),
3575 Wr = Qr,
3576 Xr = e.array(Bc),
3577 Yr = e.frame(pe),
3578 Zr = Qr,
3579 $r = Yr,
3580 _r = e.frame(Kc),
3581 et = Yr,
3582 dt = e.frame(md),
3583 ot = e.frame(xc),
3584 nt = e.frame(kr),
3585 ct = nt,
3586 rt = e.array(e.frame(Nc)),
3587 tt = Qr,
3588 it = e.frame(Jn),
3589 at = it,
3590 st = it,
3591 pt = Qr
3592function ut(e) {
3593 o = e
35473594}
3548function pt(d, o, c = 20) {
3549 return ((n = c), e.encode(ft(d), o))
3595function lt(d, n, c = 21) {
3596 return ((o = c), e.encode(yt(d), n))
35503597}
3551function ut(d, o, c = 20) {
3552 return ((n = c), e.decode(ft(d), o))
3598function ft(d, n, c = 21) {
3599 return ((o = c), e.decode(yt(d), n))
35533600}
3554function lt(e) {
3601function mt(e) {
35553602 switch (e) {
35563603 case "@keet/room-type":
3557 return U
3604 return J
35583605 case "@keet/display-type":
35593606 return Ac
35603607 case "@keet/system-settings-keys":
……@@ -3573,10 +3620,10 @@ function lt(e) {
35733620 throw new Error("Enum not found " + e)
35743621 }
35753622}
3576function ft(e) {
3623function yt(e) {
35773624 switch (e) {
35783625 case "@keet/head":
3579 return o
3626 return n
35803627 case "@keet/oplog-id":
35813628 return c
35823629 case "@keet/encryption-keypair":
……@@ -3608,11 +3655,11 @@ function ft(e) {
36083655 case "@keet/file-record":
36093656 return D
36103657 case "@keet/device-status":
3611 return S
3658 return M
36123659 case "@keet/member-status":
3613 return C
3660 return S
36143661 case "@keet/member-moderation-status":
3615 return M
3662 return C
36163663 case "@keet/abi":
36173664 return L
36183665 case "@keet/device-stats":
……@@ -3624,7 +3671,7 @@ function ft(e) {
36243671 case "@keet/file-stats":
36253672 return B
36263673 case "@keet/stats":
3627 return J
3674 return O
36283675 case "@keet/room-type":
36293676 return V
36303677 case "@keet/system-settings":
……@@ -3642,7 +3689,7 @@ function ft(e) {
36423689 case "@keet/add-blind-peer-operation":
36433690 return de
36443691 case "@keet/remove-blind-peer-operation":
3645 return oe
3692 return ne
36463693 case "@keet/identity-attestation":
36473694 return ce
36483695 case "@keet/device-invitation":
……@@ -3672,7 +3719,7 @@ function ft(e) {
36723719 case "@keet/device-request":
36733720 return De
36743721 case "@keet/device-response":
3675 return Me
3722 return Ce
36763723 case "@keet/invitation-metadata":
36773724 return Le
36783725 case "@keet/invitation":
……@@ -3680,11 +3727,11 @@ function ft(e) {
36803727 case "@keet/add-invitation-operation":
36813728 return Ne
36823729 case "@keet/remove-invitation-operation":
3683 return Oe
3730 return Ue
36843731 case "@keet/sendable-room-invitation":
3685 return Je
3732 return Oe
36863733 case "@keet/sendable-identity-invitation":
3687 return Ue
3734 return Je
36883735 case "@keet/sendable-contact-invitation":
36893736 return Ve
36903737 case "@keet/sendable-invitation":
……@@ -3698,7 +3745,7 @@ function ft(e) {
36983745 case "@keet/stop-indexing-operation":
36993746 return ed
37003747 case "@keet/join-request":
3701 return nd
3748 return od
37023749 case "@keet/accept-join-request-operation":
37033750 return rd
37043751 case "@keet/reject-join-request-operation":
……@@ -3736,111 +3783,111 @@ function ft(e) {
37363783 case "@keet/mention-display-item":
37373784 return Nd
37383785 case "@keet/link-preview":
3739 return Jd
3786 return Od
37403787 case "@keet/display-link-item":
37413788 return Hd
37423789 case "@keet/display":
3743 return en
3790 return eo
37443791 case "@keet/oplog-message":
3745 return cn
3792 return ro
37463793 case "@keet/index-message":
3747 return an
3794 return ao
37483795 case "@keet/full-index-message":
3749 return un
3796 return uo
37503797 case "@keet/message-status":
3751 return ln
3798 return lo
37523799 case "@keet/message-index-id":
3753 return fn
3800 return fo
37543801 case "@keet/thread":
3755 return yn
3802 return yo
37563803 case "@keet/chat-message-record":
3757 return vn
3804 return vo
37583805 case "@keet/full-chat-message-record":
3759 return wn
3806 return wo
37603807 case "@keet/add-chat-message-operation":
3761 return An
3808 return Ao
37623809 case "@keet/remove-chat-message-operation":
3763 return Dn
3810 return Do
37643811 case "@keet/update-chat-message-operation":
3765 return Mn
3812 return Co
37663813 case "@keet/pin-chat-message-operation":
3767 return qn
3814 return qo
37683815 case "@keet/reaction":
3769 return Fn
3816 return Fo
37703817 case "@keet/reactions-summary":
3771 return En
3818 return Eo
37723819 case "@keet/reactions-digest":
3773 return In
3820 return Io
37743821 case "@keet/add-reaction-operation":
3775 return jn
3822 return jo
37763823 case "@keet/remove-reaction-operation":
3777 return Jn
3824 return Oo
37783825 case "@keet/update-room-config-operation":
3779 return Hn
3826 return Ho
37803827 case "@keet/group-member":
3781 return zn
3828 return zo
37823829 case "@keet/user-registry-info":
3783 return Gn
3830 return Go
37843831 case "@keet/room-identity":
3785 return Wn
3832 return Wo
37863833 case "@keet/genesis-operation":
3787 return oo
3834 return on
37883835 case "@keet/upgrade-operation":
3789 return ro
3836 return cn
37903837 case "@keet/update-system-settings-operation":
3791 return ao
3838 return an
37923839 case "@keet-private-id/contact":
3793 return so
3840 return sn
37943841 case "@keet-private-id/v3-room-migration-info":
3795 return po
3842 return pn
37963843 case "@keet-private-id/run-v3-migration-operation":
3797 return fo
3844 return fn
37983845 case "@keet-private-id/update-identity-operation":
3799 return yo
3846 return yn
38003847 case "@keet-private-id/counters":
3801 return xo
3848 return xn
38023849 case "@keet-private-id/stats":
3803 return bo
3850 return bn
38043851 case "@keet-private-id/add-entropy-operation":
3805 return ko
3852 return kn
38063853 case "@keet-private-id/pending-invitation-identity":
3807 return vo
3854 return vn
38083855 case "@keet-private-id/pending-invitation":
3809 return ho
3856 return hn
38103857 case "@keet-private-id/resolve-pending-invitation-operation":
3811 return wo
3858 return wn
38123859 case "@keet-private-id/add-pending-invitation-operation":
3813 return Ao
3860 return An
38143861 case "@keet-private-id/remove-pending-invitation-operation":
3815 return Do
3862 return Dn
38163863 case "@keet-private-id/identity-swap":
3817 return So
3864 return Mn
38183865 case "@keet-private-id/room-status":
3819 return Co
3866 return Sn
38203867 case "@keet-private-id/room":
3821 return Fo
3868 return Fn
38223869 case "@keet-private-id/add-room-operation":
3823 return Bo
3870 return Bn
38243871 case "@keet-private-id/remove-room-operation":
3825 return No
3872 return Nn
38263873 case "@keet-private-id/update-room-status-operation":
3827 return Jo
3874 return On
38283875 case "@keet-private-id/contact-status":
3829 return Uo
3876 return Jn
38303877 case "@keet-private-id/contact-record":
3831 return Vo
3878 return Vn
38323879 case "@keet-private-id/add-contact-operation":
3833 return Go
3880 return Gn
38343881 case "@keet-private-id/update-contact-status-operation":
3835 return Wo
3882 return Wn
38363883 case "@keet-private-id/remove-contact-operation":
3837 return Yo
3884 return Yn
38383885 case "@keet-private-id/contact-request-status":
3839 return Zo
3886 return Zn
38403887 case "@keet-private-id/contact-request-body":
38413888 return ec
38423889 case "@keet-private-id/contact-request":
3843 return nc
3890 return oc
38443891 case "@keet-private-id/contact-request-record":
38453892 return tc
38463893 case "@keet-private-id/add-contact-request-operation":
……@@ -3870,9 +3917,9 @@ function ft(e) {
38703917 case "@keet/display-type":
38713918 return Rc
38723919 case "@keet/test-increment-operation":
3873 return Sc
3920 return Mc
38743921 case "@keet/test-collection-record-1":
3875 return Cc
3922 return Sc
38763923 case "@keet/migrate-abi-operation":
38773924 return Lc
38783925 case "@keet/system-settings-keys":
……@@ -3884,7 +3931,7 @@ function ft(e) {
38843931 case "@keet-private-id/unreads":
38853932 return jc
38863933 case "@keet-private-id/add-unreads-key-operation":
3887 return Jc
3934 return Oc
38883935 case "@keet-private-id/remove-unreads-key-operation":
38893936 return Vc
38903937 case "@keet/label-type":
……@@ -3902,9 +3949,9 @@ function ft(e) {
39023949 case "@keet/update-read-length-operation":
39033950 return dr
39043951 case "@keet/read-length":
3905 return nr
3906 case "@keet/tmp-removed-member":
39073952 return or
3953 case "@keet/tmp-removed-member":
3954 return nr
39083955 case "@keet-private-id/settings":
39093956 return cr
39103957 case "@keet-private-id/user-settings-key":
……@@ -3932,7 +3979,7 @@ function ft(e) {
39323979 case "@keet/leave-call":
39333980 return Dr
39343981 case "@keet/end-call":
3935 return Cr
3982 return Sr
39363983 case "@keet/add-call-stream":
39373984 return Lr
39383985 case "@keet/remove-call-stream":
……@@ -3946,35 +3993,37 @@ function ft(e) {
39463993 case "@keet/call-stream-record":
39473994 return Nr
39483995 case "@keet/build-type":
3949 return Or
3950 case "@keet/test-crash-operation":
39513996 return Ur
3997 case "@keet/test-crash-operation":
3998 return Jr
39523999 case "@keet/test-dispatch-error-operation":
39534000 return Hr
4001 case "@keet-private-id/shorten-device-attestation-operation":
4002 return Gr
39544003 default:
39554004 throw new Error("Encoder not found " + e)
39564005 }
39574006}
3958function mt(e, d = 20) {
3959 const o = ft(e)
4007function xt(e, d = 21) {
4008 const n = yt(e)
39604009 return {
39614010 preencode(e, c) {
3962 ;((n = d), o.preencode(e, c))
4011 ;((o = d), n.preencode(e, c))
39634012 },
39644013 encode(e, c) {
3965 ;((n = d), o.encode(e, c))
4014 ;((o = d), n.encode(e, c))
39664015 },
3967 decode: (e) => ((n = d), o.decode(e)),
4016 decode: (e) => ((o = d), n.decode(e)),
39684017 }
39694018}
3970const yt = mt
4019const bt = xt
39714020module.exports = {
3972 resolveStruct: yt,
3973 getStruct: mt,
3974 getEnum: lt,
3975 getEncoding: ft,
3976 encode: pt,
3977 decode: ut,
3978 setVersion: st,
3979 version: n,
4021 resolveStruct: bt,
4022 getStruct: xt,
4023 getEnum: mt,
4024 getEncoding: yt,
4025 encode: lt,
4026 decode: ft,
4027 setVersion: ut,
4028 version: o,
39804029}
@holepunchto/keet-core/schema/spec/contract/hyperschema/index.js +1991 -1942
……@@ -1,87 +1,87 @@
11const { c: e } = require("hyperschema/runtime"),
2 d = 20
3let n = d
4const o = {
5 preencode(d, n) {
6 ;(e.fixed32.preencode(d, n.key), e.uint.preencode(d, n.length))
2 d = 21
3let o = d
4const n = {
5 preencode(d, o) {
6 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.length))
77 },
8 encode(d, n) {
9 ;(e.fixed32.encode(d, n.key), e.uint.encode(d, n.length))
8 encode(d, o) {
9 ;(e.fixed32.encode(d, o.key), e.uint.encode(d, o.length))
1010 },
1111 decode: (d) => ({ key: e.fixed32.decode(d), length: e.uint.decode(d) }),
1212 },
1313 c = {
14 preencode(d, n) {
15 ;(e.fixed32.preencode(d, n.key), e.uint.preencode(d, n.seq))
14 preencode(d, o) {
15 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.seq))
1616 },
17 encode(d, n) {
18 ;(e.fixed32.encode(d, n.key), e.uint.encode(d, n.seq))
17 encode(d, o) {
18 ;(e.fixed32.encode(d, o.key), e.uint.encode(d, o.seq))
1919 },
2020 decode: (d) => ({ key: e.fixed32.decode(d), seq: e.uint.decode(d) }),
2121 },
2222 r = {
23 preencode(d, n) {
24 ;(e.fixed32.preencode(d, n.publicKey), e.fixed32.preencode(d, n.secretKey))
23 preencode(d, o) {
24 ;(e.fixed32.preencode(d, o.publicKey), e.fixed32.preencode(d, o.secretKey))
2525 },
26 encode(d, n) {
27 ;(e.fixed32.encode(d, n.publicKey), e.fixed32.encode(d, n.secretKey))
26 encode(d, o) {
27 ;(e.fixed32.encode(d, o.publicKey), e.fixed32.encode(d, o.secretKey))
2828 },
2929 decode: (d) => ({ publicKey: e.fixed32.decode(d), secretKey: e.fixed32.decode(d) }),
3030 },
3131 t = {
32 preencode(d, n) {
33 ;(e.fixed32.preencode(d, n.publicKey), e.fixed64.preencode(d, n.secretKey))
32 preencode(d, o) {
33 ;(e.fixed32.preencode(d, o.publicKey), e.fixed64.preencode(d, o.secretKey))
3434 },
35 encode(d, n) {
36 ;(e.fixed32.encode(d, n.publicKey), e.fixed64.encode(d, n.secretKey))
35 encode(d, o) {
36 ;(e.fixed32.encode(d, o.publicKey), e.fixed64.encode(d, o.secretKey))
3737 },
3838 decode: (d) => ({ publicKey: e.fixed32.decode(d), secretKey: e.fixed64.decode(d) }),
3939 },
4040 i = {
41 preencode(d, n) {
42 ;(e.fixed32.preencode(d, n.key),
41 preencode(d, o) {
42 ;(e.fixed32.preencode(d, o.key),
4343 d.end++,
44 n.encryptionKey && e.buffer.preencode(d, n.encryptionKey),
45 n.fastForwardTo && e.fixed32.preencode(d, n.fastForwardTo))
44 o.encryptionKey && e.buffer.preencode(d, o.encryptionKey),
45 o.fastForwardTo && e.fixed32.preencode(d, o.fastForwardTo))
4646 },
47 encode(d, n) {
48 const o = (n.encryptionKey ? 1 : 0) | (n.fastForwardTo ? 2 : 0)
49 ;(e.fixed32.encode(d, n.key),
50 e.uint.encode(d, o),
51 n.encryptionKey && e.buffer.encode(d, n.encryptionKey),
52 n.fastForwardTo && e.fixed32.encode(d, n.fastForwardTo))
47 encode(d, o) {
48 const n = (o.encryptionKey ? 1 : 0) | (o.fastForwardTo ? 2 : 0)
49 ;(e.fixed32.encode(d, o.key),
50 e.uint.encode(d, n),
51 o.encryptionKey && e.buffer.encode(d, o.encryptionKey),
52 o.fastForwardTo && e.fixed32.encode(d, o.fastForwardTo))
5353 },
5454 decode(d) {
55 const n = e.fixed32.decode(d),
56 o = e.uint.decode(d)
55 const o = e.fixed32.decode(d),
56 n = e.uint.decode(d)
5757 return {
58 key: n,
59 encryptionKey: 1 & o ? e.buffer.decode(d) : null,
60 fastForwardTo: 2 & o ? e.fixed32.decode(d) : null,
58 key: o,
59 encryptionKey: 1 & n ? e.buffer.decode(d) : null,
60 fastForwardTo: 2 & n ? e.fixed32.decode(d) : null,
6161 }
6262 },
6363 },
6464 a = {
65 preencode(d, n) {
66 e.uint.preencode(d, n.timestamp)
65 preencode(d, o) {
66 e.uint.preencode(d, o.timestamp)
6767 },
68 encode(d, n) {
69 e.uint.encode(d, n.timestamp)
68 encode(d, o) {
69 e.uint.encode(d, o.timestamp)
7070 },
7171 decode: (d) => ({ timestamp: e.uint.decode(d) }),
7272 },
7373 s = {
74 preencode(d, n) {
75 ;(e.uint.preencode(d, n.blockOffset),
76 e.uint.preencode(d, n.blockLength),
77 e.uint.preencode(d, n.byteOffset),
78 e.uint.preencode(d, n.byteLength))
74 preencode(d, o) {
75 ;(e.uint.preencode(d, o.blockOffset),
76 e.uint.preencode(d, o.blockLength),
77 e.uint.preencode(d, o.byteOffset),
78 e.uint.preencode(d, o.byteLength))
7979 },
80 encode(d, n) {
81 ;(e.uint.encode(d, n.blockOffset),
82 e.uint.encode(d, n.blockLength),
83 e.uint.encode(d, n.byteOffset),
84 e.uint.encode(d, n.byteLength))
80 encode(d, o) {
81 ;(e.uint.encode(d, o.blockOffset),
82 e.uint.encode(d, o.blockLength),
83 e.uint.encode(d, o.byteOffset),
84 e.uint.encode(d, o.byteLength))
8585 },
8686 decode: (d) => ({
8787 blockOffset: e.uint.decode(d),
……@@ -91,63 +91,63 @@ const o = {
9191 }),
9292 },
9393 p = {
94 preencode(d, n) {
95 ;(e.uint.preencode(d, n.width), e.uint.preencode(d, n.height))
94 preencode(d, o) {
95 ;(e.uint.preencode(d, o.width), e.uint.preencode(d, o.height))
9696 },
97 encode(d, n) {
98 ;(e.uint.encode(d, n.width), e.uint.encode(d, n.height))
97 encode(d, o) {
98 ;(e.uint.encode(d, o.width), e.uint.encode(d, o.height))
9999 },
100100 decode: (d) => ({ width: e.uint.decode(d), height: e.uint.decode(d) }),
101101 },
102102 u = e.frame(p),
103103 l = {
104 preencode(d, n) {
104 preencode(d, o) {
105105 ;(d.end++,
106 n.name && e.string.preencode(d, n.name),
107 n.mimetype && e.string.preencode(d, n.mimetype),
108 n.dimensions && u.preencode(d, n.dimensions),
109 n.userdata && e.buffer.preencode(d, n.userdata),
110 n.duration && e.uint.preencode(d, n.duration))
106 o.name && e.string.preencode(d, o.name),
107 o.mimetype && e.string.preencode(d, o.mimetype),
108 o.dimensions && u.preencode(d, o.dimensions),
109 o.userdata && e.buffer.preencode(d, o.userdata),
110 o.duration && e.uint.preencode(d, o.duration))
111111 },
112 encode(d, n) {
113 const o =
114 (n.name ? 1 : 0) |
115 (n.mimetype ? 2 : 0) |
116 (n.dimensions ? 4 : 0) |
117 (n.userdata ? 8 : 0) |
118 (n.duration ? 16 : 0) |
119 (n.isPreview ? 32 : 0)
120 ;(e.uint.encode(d, o),
121 n.name && e.string.encode(d, n.name),
122 n.mimetype && e.string.encode(d, n.mimetype),
123 n.dimensions && u.encode(d, n.dimensions),
124 n.userdata && e.buffer.encode(d, n.userdata),
125 n.duration && e.uint.encode(d, n.duration))
112 encode(d, o) {
113 const n =
114 (o.name ? 1 : 0) |
115 (o.mimetype ? 2 : 0) |
116 (o.dimensions ? 4 : 0) |
117 (o.userdata ? 8 : 0) |
118 (o.duration ? 16 : 0) |
119 (o.isPreview ? 32 : 0)
120 ;(e.uint.encode(d, n),
121 o.name && e.string.encode(d, o.name),
122 o.mimetype && e.string.encode(d, o.mimetype),
123 o.dimensions && u.encode(d, o.dimensions),
124 o.userdata && e.buffer.encode(d, o.userdata),
125 o.duration && e.uint.encode(d, o.duration))
126126 },
127127 decode(d) {
128 const n = e.uint.decode(d)
128 const o = e.uint.decode(d)
129129 return {
130 name: 1 & n ? e.string.decode(d) : null,
131 mimetype: 2 & n ? e.string.decode(d) : null,
132 dimensions: 4 & n ? u.decode(d) : null,
133 userdata: 8 & n ? e.buffer.decode(d) : null,
134 duration: 16 & n ? e.uint.decode(d) : 0,
135 isPreview: !!(32 & n),
130 name: 1 & o ? e.string.decode(d) : null,
131 mimetype: 2 & o ? e.string.decode(d) : null,
132 dimensions: 4 & o ? u.decode(d) : null,
133 userdata: 8 & o ? e.buffer.decode(d) : null,
134 duration: 16 & o ? e.uint.decode(d) : 0,
135 isPreview: !!(32 & o),
136136 }
137137 },
138138 },
139139 f = {
140 preencode(d, n) {
141 ;(e.fixed32.preencode(d, n.key),
142 e.string.preencode(d, n.path),
143 e.uint.preencode(d, n.version),
144 e.uint.preencode(d, n.size))
140 preencode(d, o) {
141 ;(e.fixed32.preencode(d, o.key),
142 e.string.preencode(d, o.path),
143 e.uint.preencode(d, o.version),
144 e.uint.preencode(d, o.size))
145145 },
146 encode(d, n) {
147 ;(e.fixed32.encode(d, n.key),
148 e.string.encode(d, n.path),
149 e.uint.encode(d, n.version),
150 e.uint.encode(d, n.size))
146 encode(d, o) {
147 ;(e.fixed32.encode(d, o.key),
148 e.string.encode(d, o.path),
149 e.uint.encode(d, o.version),
150 e.uint.encode(d, o.size))
151151 },
152152 decode: (d) => ({
153153 key: e.fixed32.decode(d),
……@@ -157,72 +157,72 @@ const o = {
157157 }),
158158 },
159159 m = {
160 preencode(d, n) {
161 ;(e.fixed32.preencode(d, n.key), s.preencode(d, n.blob))
160 preencode(d, o) {
161 ;(e.fixed32.preencode(d, o.key), s.preencode(d, o.blob))
162162 },
163 encode(d, n) {
164 ;(e.fixed32.encode(d, n.key), s.encode(d, n.blob))
163 encode(d, o) {
164 ;(e.fixed32.encode(d, o.key), s.encode(d, o.blob))
165165 },
166166 decode: (d) => ({ key: e.fixed32.decode(d), blob: s.decode(d) }),
167167 },
168168 y = e.frame(m),
169169 x = e.frame(f),
170170 b = {
171 preencode(d, n) {
171 preencode(d, o) {
172172 ;(d.end++,
173 n.inlined && e.buffer.preencode(d, n.inlined),
174 n.blob && s.preencode(d, n.blob),
175 n.externalBlob && y.preencode(d, n.externalBlob),
176 n.externalDrive && x.preencode(d, n.externalDrive))
173 o.inlined && e.buffer.preencode(d, o.inlined),
174 o.blob && s.preencode(d, o.blob),
175 o.externalBlob && y.preencode(d, o.externalBlob),
176 o.externalDrive && x.preencode(d, o.externalDrive))
177177 },
178 encode(d, n) {
179 const o =
180 (n.inlined ? 1 : 0) |
181 (n.blob ? 2 : 0) |
182 (n.externalBlob ? 4 : 0) |
183 (n.externalDrive ? 8 : 0)
184 ;(e.uint.encode(d, o),
185 n.inlined && e.buffer.encode(d, n.inlined),
186 n.blob && s.encode(d, n.blob),
187 n.externalBlob && y.encode(d, n.externalBlob),
188 n.externalDrive && x.encode(d, n.externalDrive))
178 encode(d, o) {
179 const n =
180 (o.inlined ? 1 : 0) |
181 (o.blob ? 2 : 0) |
182 (o.externalBlob ? 4 : 0) |
183 (o.externalDrive ? 8 : 0)
184 ;(e.uint.encode(d, n),
185 o.inlined && e.buffer.encode(d, o.inlined),
186 o.blob && s.encode(d, o.blob),
187 o.externalBlob && y.encode(d, o.externalBlob),
188 o.externalDrive && x.encode(d, o.externalDrive))
189189 },
190190 decode(d) {
191 const n = e.uint.decode(d)
191 const o = e.uint.decode(d)
192192 return {
193 inlined: 1 & n ? e.buffer.decode(d) : null,
194 blob: 2 & n ? s.decode(d) : null,
195 externalBlob: 4 & n ? y.decode(d) : null,
196 externalDrive: 8 & n ? x.decode(d) : null,
193 inlined: 1 & o ? e.buffer.decode(d) : null,
194 blob: 2 & o ? s.decode(d) : null,
195 externalBlob: 4 & o ? y.decode(d) : null,
196 externalDrive: 8 & o ? x.decode(d) : null,
197197 }
198198 },
199199 },
200200 k = e.frame(b),
201201 v = e.frame(l),
202202 g = {
203 preencode(d, n) {
204 ;(k.preencode(d, n.pointer),
203 preencode(d, o) {
204 ;(k.preencode(d, o.pointer),
205205 d.end++,
206 n.metadata && v.preencode(d, n.metadata),
207 n.preview && zr.preencode(d, n.preview),
208 n.hash && e.fixed32.preencode(d, n.hash))
206 o.metadata && v.preencode(d, o.metadata),
207 o.preview && Qr.preencode(d, o.preview),
208 o.hash && e.fixed32.preencode(d, o.hash))
209209 },
210 encode(d, n) {
211 const o = (n.metadata ? 1 : 0) | (n.preview ? 2 : 0) | (n.hash ? 4 : 0)
212 ;(k.encode(d, n.pointer),
213 e.uint.encode(d, o),
214 n.metadata && v.encode(d, n.metadata),
215 n.preview && zr.encode(d, n.preview),
216 n.hash && e.fixed32.encode(d, n.hash))
210 encode(d, o) {
211 const n = (o.metadata ? 1 : 0) | (o.preview ? 2 : 0) | (o.hash ? 4 : 0)
212 ;(k.encode(d, o.pointer),
213 e.uint.encode(d, n),
214 o.metadata && v.encode(d, o.metadata),
215 o.preview && Qr.encode(d, o.preview),
216 o.hash && e.fixed32.encode(d, o.hash))
217217 },
218218 decode(d) {
219 const n = k.decode(d),
220 o = e.uint.decode(d)
219 const o = k.decode(d),
220 n = e.uint.decode(d)
221221 return {
222 pointer: n,
223 metadata: 1 & o ? v.decode(d) : null,
224 preview: 2 & o ? zr.decode(d) : null,
225 hash: 4 & o ? e.fixed32.decode(d) : null,
222 pointer: o,
223 metadata: 1 & n ? v.decode(d) : null,
224 preview: 2 & n ? Qr.decode(d) : null,
225 hash: 4 & n ? e.fixed32.decode(d) : null,
226226 }
227227 },
228228 },
……@@ -236,19 +236,19 @@ const o = {
236236 d.medium && K.preencode(e, d.medium),
237237 d.large && w.preencode(e, d.large))
238238 },
239 encode(d, n) {
240 const o = (n.small ? 1 : 0) | (n.medium ? 2 : 0) | (n.large ? 4 : 0)
241 ;(e.uint.encode(d, o),
242 n.small && h.encode(d, n.small),
243 n.medium && K.encode(d, n.medium),
244 n.large && w.encode(d, n.large))
239 encode(d, o) {
240 const n = (o.small ? 1 : 0) | (o.medium ? 2 : 0) | (o.large ? 4 : 0)
241 ;(e.uint.encode(d, n),
242 o.small && h.encode(d, o.small),
243 o.medium && K.encode(d, o.medium),
244 o.large && w.encode(d, o.large))
245245 },
246246 decode(d) {
247 const n = e.uint.decode(d)
247 const o = e.uint.decode(d)
248248 return {
249 small: 1 & n ? h.decode(d) : null,
250 medium: 2 & n ? K.decode(d) : null,
251 large: 4 & n ? w.decode(d) : null,
249 small: 1 & o ? h.decode(d) : null,
250 medium: 2 & o ? K.decode(d) : null,
251 large: 4 & o ? w.decode(d) : null,
252252 }
253253 },
254254 },
……@@ -256,136 +256,136 @@ const o = {
256256 preencode(e, d) {
257257 e.end++
258258 },
259 encode(d, n) {
260 const o = n.isDeleted ? 1 : 0
261 e.uint.encode(d, o)
259 encode(d, o) {
260 const n = o.isDeleted ? 1 : 0
261 e.uint.encode(d, n)
262262 },
263263 decode: (d) => ({ isDeleted: !!(1 & e.uint.decode(d)) }),
264264 },
265265 A = e.frame(P),
266266 R = h,
267267 D = {
268 preencode(d, o) {
269 ;(e.uint.preencode(d, o.id),
270 c.preencode(d, o.oplog),
271 A.preencode(d, o.status),
272 R.preencode(d, o.file),
268 preencode(d, n) {
269 ;(e.uint.preencode(d, n.id),
270 c.preencode(d, n.oplog),
271 A.preencode(d, n.status),
272 R.preencode(d, n.file),
273273 d.end++,
274 n >= 14 && o.version && e.uint.preencode(d, o.version))
274 o >= 14 && n.version && e.uint.preencode(d, n.version))
275275 },
276 encode(d, o) {
277 const r = n >= 14 && o.version ? 1 : 0
278 ;(e.uint.encode(d, o.id),
279 c.encode(d, o.oplog),
280 A.encode(d, o.status),
281 R.encode(d, o.file),
276 encode(d, n) {
277 const r = o >= 14 && n.version ? 1 : 0
278 ;(e.uint.encode(d, n.id),
279 c.encode(d, n.oplog),
280 A.encode(d, n.status),
281 R.encode(d, n.file),
282282 e.uint.encode(d, r),
283 n >= 14 && o.version && e.uint.encode(d, o.version))
283 o >= 14 && n.version && e.uint.encode(d, n.version))
284284 },
285285 decode(d) {
286 const o = e.uint.decode(d),
286 const n = e.uint.decode(d),
287287 r = c.decode(d),
288288 t = A.decode(d),
289289 i = R.decode(d),
290290 a = d.start < d.end ? e.uint.decode(d) : 0
291291 return {
292 id: o,
292 id: n,
293293 oplog: r,
294294 status: t,
295295 file: i,
296 version: n >= 14 && 1 & a ? e.uint.decode(d) : 0,
296 version: o >= 14 && 1 & a ? e.uint.decode(d) : 0,
297297 }
298298 },
299299 },
300 S = {
300 M = {
301301 preencode(e, d) {
302302 e.end++
303303 },
304 encode(d, n) {
305 const o = (n.isActive ? 1 : 0) | (n.isIndexing ? 2 : 0)
306 e.uint.encode(d, o)
304 encode(d, o) {
305 const n = (o.isActive ? 1 : 0) | (o.isIndexing ? 2 : 0)
306 e.uint.encode(d, n)
307307 },
308308 decode(d) {
309 const n = e.uint.decode(d)
310 return { isActive: !!(1 & n), isIndexing: !!(2 & n) }
309 const o = e.uint.decode(d)
310 return { isActive: !!(1 & o), isIndexing: !!(2 & o) }
311311 },
312312 },
313 C = {
314 preencode(d, o) {
313 S = {
314 preencode(d, n) {
315315 const c =
316 (o.isAdmin ? 1 : 0) |
317 (o.isModerator ? 2 : 0) |
318 (o.isPending ? 4 : 0) |
319 (o.isActive ? 8 : 0) |
320 (o.isMuted ? 16 : 0) |
321 (o.isBanned ? 32 : 0) |
322 (o.isShadowBanned ? 64 : 0) |
323 (n >= 13 && o.isRemoved ? 128 : 0)
316 (n.isAdmin ? 1 : 0) |
317 (n.isModerator ? 2 : 0) |
318 (n.isPending ? 4 : 0) |
319 (n.isActive ? 8 : 0) |
320 (n.isMuted ? 16 : 0) |
321 (n.isBanned ? 32 : 0) |
322 (n.isShadowBanned ? 64 : 0) |
323 (o >= 13 && n.isRemoved ? 128 : 0)
324324 e.uint.preencode(d, c)
325325 },
326 encode(d, o) {
326 encode(d, n) {
327327 const c =
328 (o.isAdmin ? 1 : 0) |
329 (o.isModerator ? 2 : 0) |
330 (o.isPending ? 4 : 0) |
331 (o.isActive ? 8 : 0) |
332 (o.isMuted ? 16 : 0) |
333 (o.isBanned ? 32 : 0) |
334 (o.isShadowBanned ? 64 : 0) |
335 (n >= 13 && o.isRemoved ? 128 : 0)
328 (n.isAdmin ? 1 : 0) |
329 (n.isModerator ? 2 : 0) |
330 (n.isPending ? 4 : 0) |
331 (n.isActive ? 8 : 0) |
332 (n.isMuted ? 16 : 0) |
333 (n.isBanned ? 32 : 0) |
334 (n.isShadowBanned ? 64 : 0) |
335 (o >= 13 && n.isRemoved ? 128 : 0)
336336 e.uint.encode(d, c)
337337 },
338338 decode(d) {
339 const o = e.uint.decode(d)
339 const n = e.uint.decode(d)
340340 return {
341 isAdmin: !!(1 & o),
342 isModerator: !!(2 & o),
343 isPending: !!(4 & o),
344 isActive: !!(8 & o),
345 isMuted: !!(16 & o),
346 isBanned: !!(32 & o),
347 isShadowBanned: !!(64 & o),
348 isRemoved: n >= 13 && !!(128 & o),
341 isAdmin: !!(1 & n),
342 isModerator: !!(2 & n),
343 isPending: !!(4 & n),
344 isActive: !!(8 & n),
345 isMuted: !!(16 & n),
346 isBanned: !!(32 & n),
347 isShadowBanned: !!(64 & n),
348 isRemoved: o >= 13 && !!(128 & n),
349349 }
350350 },
351351 },
352 M = {
352 C = {
353353 preencode(e, d) {
354354 e.end++
355355 },
356 encode(d, n) {
357 const o = (n.isMuted ? 1 : 0) | (n.isBanned ? 2 : 0) | (n.isShadowBanned ? 4 : 0)
358 e.uint.encode(d, o)
356 encode(d, o) {
357 const n = (o.isMuted ? 1 : 0) | (o.isBanned ? 2 : 0) | (o.isShadowBanned ? 4 : 0)
358 e.uint.encode(d, n)
359359 },
360360 decode(d) {
361 const n = e.uint.decode(d)
362 return { isMuted: !!(1 & n), isBanned: !!(2 & n), isShadowBanned: !!(4 & n) }
361 const o = e.uint.decode(d)
362 return { isMuted: !!(1 & o), isBanned: !!(2 & o), isShadowBanned: !!(4 & o) }
363363 },
364364 },
365365 L = {
366 preencode(d, n) {
367 e.uint.preencode(d, n.version)
366 preencode(d, o) {
367 e.uint.preencode(d, o.version)
368368 },
369 encode(d, n) {
370 e.uint.encode(d, n.version)
369 encode(d, o) {
370 e.uint.encode(d, o.version)
371371 },
372372 decode: (d) => ({ version: e.uint.decode(d) }),
373373 },
374374 q = {
375 preencode(d, n) {
376 ;(e.uint.preencode(d, n.total), e.uint.preencode(d, n.active))
375 preencode(d, o) {
376 ;(e.uint.preencode(d, o.total), e.uint.preencode(d, o.active))
377377 },
378 encode(d, n) {
379 ;(e.uint.encode(d, n.total), e.uint.encode(d, n.active))
378 encode(d, o) {
379 ;(e.uint.encode(d, o.total), e.uint.encode(d, o.active))
380380 },
381381 decode: (d) => ({ total: e.uint.decode(d), active: e.uint.decode(d) }),
382382 },
383383 F = {
384 preencode(d, n) {
385 ;(e.uint.preencode(d, n.total), e.uint.preencode(d, n.active), e.uint.preencode(d, n.pending))
384 preencode(d, o) {
385 ;(e.uint.preencode(d, o.total), e.uint.preencode(d, o.active), e.uint.preencode(d, o.pending))
386386 },
387 encode(d, n) {
388 ;(e.uint.encode(d, n.total), e.uint.encode(d, n.active), e.uint.encode(d, n.pending))
387 encode(d, o) {
388 ;(e.uint.encode(d, o.total), e.uint.encode(d, o.active), e.uint.encode(d, o.pending))
389389 },
390390 decode: (d) => ({
391391 total: e.uint.decode(d),
……@@ -394,157 +394,157 @@ const o = {
394394 }),
395395 },
396396 E = {
397 preencode(d, o) {
398 ;(e.uint.preencode(d, o.clock),
399 e.uint.preencode(d, o.pinned),
400 e.uint.preencode(d, o.threads),
401 e.uint.preencode(d, o.timestamp),
397 preencode(d, n) {
398 ;(e.uint.preencode(d, n.clock),
399 e.uint.preencode(d, n.pinned),
400 e.uint.preencode(d, n.threads),
401 e.uint.preencode(d, n.timestamp),
402402 d.end++,
403 n >= 15 && o.flagsClock && e.uint.preencode(d, o.flagsClock))
403 o >= 15 && n.flagsClock && e.uint.preencode(d, n.flagsClock))
404404 },
405 encode(d, o) {
406 const c = n >= 15 && o.flagsClock ? 1 : 0
407 ;(e.uint.encode(d, o.clock),
408 e.uint.encode(d, o.pinned),
409 e.uint.encode(d, o.threads),
410 e.uint.encode(d, o.timestamp),
405 encode(d, n) {
406 const c = o >= 15 && n.flagsClock ? 1 : 0
407 ;(e.uint.encode(d, n.clock),
408 e.uint.encode(d, n.pinned),
409 e.uint.encode(d, n.threads),
410 e.uint.encode(d, n.timestamp),
411411 e.uint.encode(d, c),
412 n >= 15 && o.flagsClock && e.uint.encode(d, o.flagsClock))
412 o >= 15 && n.flagsClock && e.uint.encode(d, n.flagsClock))
413413 },
414414 decode(d) {
415 const o = e.uint.decode(d),
415 const n = e.uint.decode(d),
416416 c = e.uint.decode(d),
417417 r = e.uint.decode(d),
418418 t = e.uint.decode(d),
419419 i = d.start < d.end ? e.uint.decode(d) : 0
420420 return {
421 clock: o,
421 clock: n,
422422 pinned: c,
423423 threads: r,
424424 timestamp: t,
425 flagsClock: n >= 15 && 1 & i ? e.uint.decode(d) : 0,
425 flagsClock: o >= 15 && 1 & i ? e.uint.decode(d) : 0,
426426 }
427427 },
428428 },
429429 B = {
430 preencode(d, n) {
431 e.uint.preencode(d, n.clock)
430 preencode(d, o) {
431 e.uint.preencode(d, o.clock)
432432 },
433 encode(d, n) {
434 e.uint.encode(d, n.clock)
433 encode(d, o) {
434 e.uint.encode(d, o.clock)
435435 },
436436 decode: (d) => ({ clock: e.uint.decode(d) }),
437437 },
438438 I = e.frame(q),
439439 N = e.frame(F),
440440 j = e.frame(E),
441 O = e.frame(B),
442 J = {
441 U = e.frame(B),
442 O = {
443443 preencode(e, d) {
444444 ;(I.preencode(e, d.devices),
445445 N.preencode(e, d.members),
446446 j.preencode(e, d.chat),
447 O.preencode(e, d.files))
447 U.preencode(e, d.files))
448448 },
449449 encode(e, d) {
450 ;(I.encode(e, d.devices), N.encode(e, d.members), j.encode(e, d.chat), O.encode(e, d.files))
450 ;(I.encode(e, d.devices), N.encode(e, d.members), j.encode(e, d.chat), U.encode(e, d.files))
451451 },
452452 decode: (e) => ({
453453 devices: I.decode(e),
454454 members: N.decode(e),
455455 chat: j.decode(e),
456 files: O.decode(e),
456 files: U.decode(e),
457457 }),
458458 },
459 U = { Default: 1, Broadcast: 2, DirectMessage: 3 },
459 J = { Default: 1, Broadcast: 2, DirectMessage: 3 },
460460 V = {
461461 preencode(e, d) {
462462 e.end++
463463 },
464 encode(d, n) {
465 if (n > 3) throw new Error("Unknown enum")
466 e.uint.encode(d, n)
464 encode(d, o) {
465 if (o > 3) throw new Error("Unknown enum")
466 e.uint.encode(d, o)
467467 },
468468 decode: (d) => e.uint.decode(d),
469469 },
470470 H = {
471 preencode(d, o) {
471 preencode(d, n) {
472472 const c =
473 (o.roomType ? 1 : 0) |
474 (o.isExperimental ? 2 : 0) |
475 (o.isJoiningDisabled ? 4 : 0) |
476 (o.isAppendingDisabled ? 8 : 0) |
477 (o.isCallingDisabled ? 16 : 0) |
478 (o.isMembershipEventsDisabled ? 32 : 0) |
479 (n >= 19 && o.isAttachmentsDisabled ? 64 : 0) |
480 (n >= 19 && o.isLinksDisabled ? 128 : 0) |
481 (n >= 20 && o.buildType ? 256 : 0)
473 (n.roomType ? 1 : 0) |
474 (n.isExperimental ? 2 : 0) |
475 (n.isJoiningDisabled ? 4 : 0) |
476 (n.isAppendingDisabled ? 8 : 0) |
477 (n.isCallingDisabled ? 16 : 0) |
478 (n.isMembershipEventsDisabled ? 32 : 0) |
479 (o >= 19 && n.isAttachmentsDisabled ? 64 : 0) |
480 (o >= 19 && n.isLinksDisabled ? 128 : 0) |
481 (o >= 20 && n.buildType ? 256 : 0)
482482 ;(e.uint.preencode(d, c),
483 o.roomType && V.preencode(d, o.roomType),
484 n >= 20 && o.buildType && Or.preencode(d, o.buildType))
483 n.roomType && V.preencode(d, n.roomType),
484 o >= 20 && n.buildType && Ur.preencode(d, n.buildType))
485485 },
486 encode(d, o) {
486 encode(d, n) {
487487 const c =
488 (o.roomType ? 1 : 0) |
489 (o.isExperimental ? 2 : 0) |
490 (o.isJoiningDisabled ? 4 : 0) |
491 (o.isAppendingDisabled ? 8 : 0) |
492 (o.isCallingDisabled ? 16 : 0) |
493 (o.isMembershipEventsDisabled ? 32 : 0) |
494 (n >= 19 && o.isAttachmentsDisabled ? 64 : 0) |
495 (n >= 19 && o.isLinksDisabled ? 128 : 0) |
496 (n >= 20 && o.buildType ? 256 : 0)
488 (n.roomType ? 1 : 0) |
489 (n.isExperimental ? 2 : 0) |
490 (n.isJoiningDisabled ? 4 : 0) |
491 (n.isAppendingDisabled ? 8 : 0) |
492 (n.isCallingDisabled ? 16 : 0) |
493 (n.isMembershipEventsDisabled ? 32 : 0) |
494 (o >= 19 && n.isAttachmentsDisabled ? 64 : 0) |
495 (o >= 19 && n.isLinksDisabled ? 128 : 0) |
496 (o >= 20 && n.buildType ? 256 : 0)
497497 ;(e.uint.encode(d, c),
498 o.roomType && V.encode(d, o.roomType),
499 n >= 20 && o.buildType && Or.encode(d, o.buildType))
498 n.roomType && V.encode(d, n.roomType),
499 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
500500 },
501501 decode(d) {
502 const o = e.uint.decode(d)
502 const n = e.uint.decode(d)
503503 return {
504 roomType: 1 & o ? V.decode(d) : 0,
505 isExperimental: !!(2 & o),
506 isJoiningDisabled: !!(4 & o),
507 isAppendingDisabled: !!(8 & o),
508 isCallingDisabled: !!(16 & o),
509 isMembershipEventsDisabled: !!(32 & o),
510 isAttachmentsDisabled: n >= 19 && !!(64 & o),
511 isLinksDisabled: n >= 19 && !!(128 & o),
512 buildType: n >= 20 && 256 & o ? Or.decode(d) : null,
504 roomType: 1 & n ? V.decode(d) : 0,
505 isExperimental: !!(2 & n),
506 isJoiningDisabled: !!(4 & n),
507 isAppendingDisabled: !!(8 & n),
508 isCallingDisabled: !!(16 & n),
509 isMembershipEventsDisabled: !!(32 & n),
510 isAttachmentsDisabled: o >= 19 && !!(64 & n),
511 isLinksDisabled: o >= 19 && !!(128 & n),
512 buildType: o >= 20 && 256 & n ? Ur.decode(d) : null,
513513 }
514514 },
515515 },
516516 z = e.frame(L),
517517 G = e.frame(H),
518518 Q = {
519 preencode(d, n) {
520 ;(z.preencode(d, n.abi), G.preencode(d, n.settings), e.uint.preencode(d, n.creationTime))
519 preencode(d, o) {
520 ;(z.preencode(d, o.abi), G.preencode(d, o.settings), e.uint.preencode(d, o.creationTime))
521521 },
522 encode(d, n) {
523 ;(z.encode(d, n.abi), G.encode(d, n.settings), e.uint.encode(d, n.creationTime))
522 encode(d, o) {
523 ;(z.encode(d, o.abi), G.encode(d, o.settings), e.uint.encode(d, o.creationTime))
524524 },
525525 decode: (d) => ({ abi: z.decode(d), settings: G.decode(d), creationTime: e.uint.decode(d) }),
526526 },
527527 W = {
528 preencode(d, n) {
529 e.fixed32.preencode(d, n.seed)
528 preencode(d, o) {
529 e.fixed32.preencode(d, o.seed)
530530 },
531 encode(d, n) {
532 e.fixed32.encode(d, n.seed)
531 encode(d, o) {
532 e.fixed32.encode(d, o.seed)
533533 },
534534 decode: (d) => ({ seed: e.fixed32.decode(d) }),
535535 },
536536 X = {
537 preencode(d, n) {
538 ;(r.preencode(d, n.mailboxKeyPair),
539 t.preencode(d, n.discoveryKeyPair),
540 e.fixed32.preencode(d, n.wakeupTopic),
541 e.fixed32.preencode(d, n.swarmTopic))
537 preencode(d, o) {
538 ;(r.preencode(d, o.mailboxKeyPair),
539 t.preencode(d, o.discoveryKeyPair),
540 e.fixed32.preencode(d, o.wakeupTopic),
541 e.fixed32.preencode(d, o.swarmTopic))
542542 },
543 encode(d, n) {
544 ;(r.encode(d, n.mailboxKeyPair),
545 t.encode(d, n.discoveryKeyPair),
546 e.fixed32.encode(d, n.wakeupTopic),
547 e.fixed32.encode(d, n.swarmTopic))
543 encode(d, o) {
544 ;(r.encode(d, o.mailboxKeyPair),
545 t.encode(d, o.discoveryKeyPair),
546 e.fixed32.encode(d, o.wakeupTopic),
547 e.fixed32.encode(d, o.swarmTopic))
548548 },
549549 decode: (d) => ({
550550 mailboxKeyPair: r.decode(d),
……@@ -555,45 +555,45 @@ const o = {
555555 },
556556 Y = e.array(e.fixed32),
557557 Z = {
558 preencode(d, o) {
558 preencode(d, n) {
559559 ;(d.end++,
560 o.title && e.string.preencode(d, o.title),
561 o.avatar && Gr.preencode(d, o.avatar),
562 o.description && e.string.preencode(d, o.description),
563 n >= 11 && o.supportedLanguages && Qr.preencode(d, o.supportedLanguages),
564 n >= 13 && o.blindPeers && Y.preencode(d, o.blindPeers))
560 n.title && e.string.preencode(d, n.title),
561 n.avatar && Wr.preencode(d, n.avatar),
562 n.description && e.string.preencode(d, n.description),
563 o >= 11 && n.supportedLanguages && Xr.preencode(d, n.supportedLanguages),
564 o >= 13 && n.blindPeers && Y.preencode(d, n.blindPeers))
565565 },
566 encode(d, o) {
566 encode(d, n) {
567567 const c =
568 (o.title ? 1 : 0) |
569 (o.avatar ? 2 : 0) |
570 (o.description ? 4 : 0) |
571 (n >= 11 && o.supportedLanguages ? 8 : 0) |
572 (n >= 13 && o.blindPeers ? 16 : 0)
568 (n.title ? 1 : 0) |
569 (n.avatar ? 2 : 0) |
570 (n.description ? 4 : 0) |
571 (o >= 11 && n.supportedLanguages ? 8 : 0) |
572 (o >= 13 && n.blindPeers ? 16 : 0)
573573 ;(e.uint.encode(d, c),
574 o.title && e.string.encode(d, o.title),
575 o.avatar && Gr.encode(d, o.avatar),
576 o.description && e.string.encode(d, o.description),
577 n >= 11 && o.supportedLanguages && Qr.encode(d, o.supportedLanguages),
578 n >= 13 && o.blindPeers && Y.encode(d, o.blindPeers))
574 n.title && e.string.encode(d, n.title),
575 n.avatar && Wr.encode(d, n.avatar),
576 n.description && e.string.encode(d, n.description),
577 o >= 11 && n.supportedLanguages && Xr.encode(d, n.supportedLanguages),
578 o >= 13 && n.blindPeers && Y.encode(d, n.blindPeers))
579579 },
580580 decode(d) {
581 const o = e.uint.decode(d)
581 const n = e.uint.decode(d)
582582 return {
583 title: 1 & o ? e.string.decode(d) : null,
584 avatar: 2 & o ? Gr.decode(d) : null,
585 description: 4 & o ? e.string.decode(d) : null,
586 supportedLanguages: n >= 11 && 8 & o ? Qr.decode(d) : null,
587 blindPeers: n >= 13 && 16 & o ? Y.decode(d) : null,
583 title: 1 & n ? e.string.decode(d) : null,
584 avatar: 2 & n ? Wr.decode(d) : null,
585 description: 4 & n ? e.string.decode(d) : null,
586 supportedLanguages: o >= 11 && 8 & n ? Xr.decode(d) : null,
587 blindPeers: o >= 13 && 16 & n ? Y.decode(d) : null,
588588 }
589589 },
590590 },
591591 $ = {
592 preencode(d, n) {
593 e.fixed32.preencode(d, n.key)
592 preencode(d, o) {
593 e.fixed32.preencode(d, o.key)
594594 },
595 encode(d, n) {
596 e.fixed32.encode(d, n.key)
595 encode(d, o) {
596 e.fixed32.encode(d, o.key)
597597 },
598598 decode: (d) => ({ key: e.fixed32.decode(d) }),
599599 },
……@@ -608,118 +608,118 @@ const o = {
608608 },
609609 decode: (e) => ({ header: _.decode(e), peer: ee.decode(e) }),
610610 },
611 ne = _,
612 oe = {
613 preencode(d, n) {
614 ;(ne.preencode(d, n.header), e.fixed32.preencode(d, n.key))
611 oe = _,
612 ne = {
613 preencode(d, o) {
614 ;(oe.preencode(d, o.header), e.fixed32.preencode(d, o.key))
615615 },
616 encode(d, n) {
617 ;(ne.encode(d, n.header), e.fixed32.encode(d, n.key))
616 encode(d, o) {
617 ;(oe.encode(d, o.header), e.fixed32.encode(d, o.key))
618618 },
619 decode: (d) => ({ header: ne.decode(d), key: e.fixed32.decode(d) }),
619 decode: (d) => ({ header: oe.decode(d), key: e.fixed32.decode(d) }),
620620 },
621621 ce = {
622 preencode(d, n) {
623 ;(e.fixed32.preencode(d, n.memberKey), e.buffer.preencode(d, n.proof))
622 preencode(d, o) {
623 ;(e.fixed32.preencode(d, o.memberKey), e.buffer.preencode(d, o.proof))
624624 },
625 encode(d, n) {
626 ;(e.fixed32.encode(d, n.memberKey), e.buffer.encode(d, n.proof))
625 encode(d, o) {
626 ;(e.fixed32.encode(d, o.memberKey), e.buffer.encode(d, o.proof))
627627 },
628628 decode: (d) => ({ memberKey: e.fixed32.decode(d), proof: e.buffer.decode(d) }),
629629 },
630630 re = {
631 preencode(d, n) {
632 ;(e.fixed32.preencode(d, n.id), e.buffer.preencode(d, n.response))
631 preencode(d, o) {
632 ;(e.fixed32.preencode(d, o.id), e.buffer.preencode(d, o.response))
633633 },
634 encode(d, n) {
635 ;(e.fixed32.encode(d, n.id), e.buffer.encode(d, n.response))
634 encode(d, o) {
635 ;(e.fixed32.encode(d, o.id), e.buffer.encode(d, o.response))
636636 },
637637 decode: (d) => ({ id: e.fixed32.decode(d), response: e.buffer.decode(d) }),
638638 },
639 te = e.frame(S),
639 te = e.frame(M),
640640 ie = e.frame(re),
641641 ae = {
642 preencode(d, n) {
643 ;(e.fixed32.preencode(d, n.key),
644 e.fixed32.preencode(d, n.memberKey),
645 te.preencode(d, n.status),
646 Wr.preencode(d, n.profile),
642 preencode(d, o) {
643 ;(e.fixed32.preencode(d, o.key),
644 e.fixed32.preencode(d, o.memberKey),
645 te.preencode(d, o.status),
646 Yr.preencode(d, o.profile),
647647 d.end++,
648 n.invitation && ie.preencode(d, n.invitation))
648 o.invitation && ie.preencode(d, o.invitation))
649649 },
650 encode(d, n) {
651 const o = n.invitation ? 1 : 0
652 ;(e.fixed32.encode(d, n.key),
653 e.fixed32.encode(d, n.memberKey),
654 te.encode(d, n.status),
655 Wr.encode(d, n.profile),
656 e.uint.encode(d, o),
657 n.invitation && ie.encode(d, n.invitation))
650 encode(d, o) {
651 const n = o.invitation ? 1 : 0
652 ;(e.fixed32.encode(d, o.key),
653 e.fixed32.encode(d, o.memberKey),
654 te.encode(d, o.status),
655 Yr.encode(d, o.profile),
656 e.uint.encode(d, n),
657 o.invitation && ie.encode(d, o.invitation))
658658 },
659659 decode: (d) => ({
660660 key: e.fixed32.decode(d),
661661 memberKey: e.fixed32.decode(d),
662662 status: te.decode(d),
663 profile: Wr.decode(d),
663 profile: Yr.decode(d),
664664 invitation: 1 & e.uint.decode(d) ? ie.decode(d) : null,
665665 }),
666666 },
667667 se = {
668 preencode(d, n) {
669 ;(e.uint.preencode(d, n.timestamp),
668 preencode(d, o) {
669 ;(e.uint.preencode(d, o.timestamp),
670670 d.end++,
671 n.mailbox && e.fixed32.preencode(d, n.mailbox),
672 n.displayName && e.string.preencode(d, n.displayName),
673 n.avatar && Xr.preencode(d, n.avatar),
674 n.username && e.string.preencode(d, n.username))
671 o.mailbox && e.fixed32.preencode(d, o.mailbox),
672 o.displayName && e.string.preencode(d, o.displayName),
673 o.avatar && Zr.preencode(d, o.avatar),
674 o.username && e.string.preencode(d, o.username))
675675 },
676 encode(d, n) {
677 const o =
678 (n.mailbox ? 1 : 0) | (n.displayName ? 2 : 0) | (n.avatar ? 4 : 0) | (n.username ? 8 : 0)
679 ;(e.uint.encode(d, n.timestamp),
680 e.uint.encode(d, o),
681 n.mailbox && e.fixed32.encode(d, n.mailbox),
682 n.displayName && e.string.encode(d, n.displayName),
683 n.avatar && Xr.encode(d, n.avatar),
684 n.username && e.string.encode(d, n.username))
676 encode(d, o) {
677 const n =
678 (o.mailbox ? 1 : 0) | (o.displayName ? 2 : 0) | (o.avatar ? 4 : 0) | (o.username ? 8 : 0)
679 ;(e.uint.encode(d, o.timestamp),
680 e.uint.encode(d, n),
681 o.mailbox && e.fixed32.encode(d, o.mailbox),
682 o.displayName && e.string.encode(d, o.displayName),
683 o.avatar && Zr.encode(d, o.avatar),
684 o.username && e.string.encode(d, o.username))
685685 },
686686 decode(d) {
687 const n = e.uint.decode(d),
688 o = e.uint.decode(d)
687 const o = e.uint.decode(d),
688 n = e.uint.decode(d)
689689 return {
690 timestamp: n,
691 mailbox: 1 & o ? e.fixed32.decode(d) : null,
692 displayName: 2 & o ? e.string.decode(d) : null,
693 avatar: 4 & o ? Xr.decode(d) : null,
694 username: 8 & o ? e.string.decode(d) : null,
690 timestamp: o,
691 mailbox: 1 & n ? e.fixed32.decode(d) : null,
692 displayName: 2 & n ? e.string.decode(d) : null,
693 avatar: 4 & n ? Zr.decode(d) : null,
694 username: 8 & n ? e.string.decode(d) : null,
695695 }
696696 },
697697 },
698698 pe = {
699 preencode(d, o) {
699 preencode(d, n) {
700700 ;(d.end++,
701 o.swarmKey && e.fixed32.preencode(d, o.swarmKey),
702 o.name && e.string.preencode(d, o.name),
703 n >= 20 && o.buildType && Or.preencode(d, o.buildType))
701 n.swarmKey && e.fixed32.preencode(d, n.swarmKey),
702 n.name && e.string.preencode(d, n.name),
703 o >= 20 && n.buildType && Ur.preencode(d, n.buildType))
704704 },
705 encode(d, o) {
705 encode(d, n) {
706706 const c =
707 (o.swarmKey ? 1 : 0) |
708 (o.name ? 2 : 0) |
709 (o.isMobile ? 4 : 0) |
710 (n >= 20 && o.buildType ? 8 : 0)
707 (n.swarmKey ? 1 : 0) |
708 (n.name ? 2 : 0) |
709 (n.isMobile ? 4 : 0) |
710 (o >= 20 && n.buildType ? 8 : 0)
711711 ;(e.uint.encode(d, c),
712 o.swarmKey && e.fixed32.encode(d, o.swarmKey),
713 o.name && e.string.encode(d, o.name),
714 n >= 20 && o.buildType && Or.encode(d, o.buildType))
712 n.swarmKey && e.fixed32.encode(d, n.swarmKey),
713 n.name && e.string.encode(d, n.name),
714 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
715715 },
716716 decode(d) {
717 const o = e.uint.decode(d)
717 const n = e.uint.decode(d)
718718 return {
719 swarmKey: 1 & o ? e.fixed32.decode(d) : null,
720 name: 2 & o ? e.string.decode(d) : null,
721 isMobile: !!(4 & o),
722 buildType: n >= 20 && 8 & o ? Or.decode(d) : null,
719 swarmKey: 1 & n ? e.fixed32.decode(d) : null,
720 name: 2 & n ? e.string.decode(d) : null,
721 isMobile: !!(4 & n),
722 buildType: o >= 20 && 8 & n ? Ur.decode(d) : null,
723723 }
724724 },
725725 },
……@@ -735,21 +735,21 @@ const o = {
735735 },
736736 fe = {
737737 preencode(e, d) {
738 ;(Yr.preencode(e, d.profile), ce.preencode(e, d.attestation))
738 ;($r.preencode(e, d.profile), ce.preencode(e, d.attestation))
739739 },
740740 encode(e, d) {
741 ;(Yr.encode(e, d.profile), ce.encode(e, d.attestation))
741 ;($r.encode(e, d.profile), ce.encode(e, d.attestation))
742742 },
743 decode: (e) => ({ profile: Yr.decode(e), attestation: ce.decode(e) }),
743 decode: (e) => ({ profile: $r.decode(e), attestation: ce.decode(e) }),
744744 },
745745 me = {
746 preencode(d, n) {
747 ;(e.fixed32.preencode(d, n.id),
748 e.buffer.preencode(d, n.data),
749 e.buffer.preencode(d, n.signature))
746 preencode(d, o) {
747 ;(e.fixed32.preencode(d, o.id),
748 e.buffer.preencode(d, o.data),
749 e.buffer.preencode(d, o.signature))
750750 },
751 encode(d, n) {
752 ;(e.fixed32.encode(d, n.id), e.buffer.encode(d, n.data), e.buffer.encode(d, n.signature))
751 encode(d, o) {
752 ;(e.fixed32.encode(d, o.id), e.buffer.encode(d, o.data), e.buffer.encode(d, o.signature))
753753 },
754754 decode: (d) => ({
755755 id: e.fixed32.decode(d),
……@@ -758,20 +758,20 @@ const o = {
758758 }),
759759 },
760760 ye = {
761 preencode(d, n) {
762 e.fixed32.preencode(d, n.devicePublicKey)
761 preencode(d, o) {
762 e.fixed32.preencode(d, o.devicePublicKey)
763763 },
764 encode(d, n) {
765 e.fixed32.encode(d, n.devicePublicKey)
764 encode(d, o) {
765 e.fixed32.encode(d, o.devicePublicKey)
766766 },
767767 decode: (d) => ({ devicePublicKey: e.fixed32.decode(d) }),
768768 },
769769 xe = {
770 preencode(d, n) {
771 ;(ce.preencode(d, n.privateProfileIdentity), e.buffer.preencode(d, n.deviceProof))
770 preencode(d, o) {
771 ;(ce.preencode(d, o.privateProfileIdentity), e.buffer.preencode(d, o.deviceProof))
772772 },
773 encode(d, n) {
774 ;(ce.encode(d, n.privateProfileIdentity), e.buffer.encode(d, n.deviceProof))
773 encode(d, o) {
774 ;(ce.encode(d, o.privateProfileIdentity), e.buffer.encode(d, o.deviceProof))
775775 },
776776 decode: (d) => ({ privateProfileIdentity: ce.decode(d), deviceProof: e.buffer.decode(d) }),
777777 },
……@@ -779,22 +779,22 @@ const o = {
779779 ke = e.frame(le),
780780 ve = e.frame(ye),
781781 ge = {
782 preencode(d, n) {
783 ;(e.fixed32.preencode(d, n.deviceKey),
784 t.preencode(d, n.keyPair),
785 be.preencode(d, n.device),
786 ke.preencode(d, n.member),
782 preencode(d, o) {
783 ;(e.fixed32.preencode(d, o.deviceKey),
784 t.preencode(d, o.keyPair),
785 be.preencode(d, o.device),
786 ke.preencode(d, o.member),
787787 d.end++,
788 n.identity && ve.preencode(d, n.identity))
788 o.identity && ve.preencode(d, o.identity))
789789 },
790 encode(d, n) {
791 const o = n.identity ? 1 : 0
792 ;(e.fixed32.encode(d, n.deviceKey),
793 t.encode(d, n.keyPair),
794 be.encode(d, n.device),
795 ke.encode(d, n.member),
796 e.uint.encode(d, o),
797 n.identity && ve.encode(d, n.identity))
790 encode(d, o) {
791 const n = o.identity ? 1 : 0
792 ;(e.fixed32.encode(d, o.deviceKey),
793 t.encode(d, o.keyPair),
794 be.encode(d, o.device),
795 ke.encode(d, o.member),
796 e.uint.encode(d, n),
797 o.identity && ve.encode(d, o.identity))
798798 },
799799 decode: (d) => ({
800800 deviceKey: e.fixed32.decode(d),
……@@ -806,13 +806,13 @@ const o = {
806806 },
807807 he = e.frame(ge),
808808 Ke = {
809 preencode(d, n) {
810 ;(e.fixed32.preencode(d, n.id),
811 he.preencode(d, n.request),
812 e.buffer.preencode(d, n.signature))
809 preencode(d, o) {
810 ;(e.fixed32.preencode(d, o.id),
811 he.preencode(d, o.request),
812 e.buffer.preencode(d, o.signature))
813813 },
814 encode(d, n) {
815 ;(e.fixed32.encode(d, n.id), he.encode(d, n.request), e.buffer.encode(d, n.signature))
814 encode(d, o) {
815 ;(e.fixed32.encode(d, o.id), he.encode(d, o.request), e.buffer.encode(d, o.signature))
816816 },
817817 decode: (d) => ({
818818 id: e.fixed32.decode(d),
……@@ -826,9 +826,9 @@ const o = {
826826 preencode(e, d) {
827827 ;(we.preencode(e, d.device), e.end++, d.member && Te.preencode(e, d.member))
828828 },
829 encode(d, n) {
830 const o = n.member ? 1 : 0
831 ;(we.encode(d, n.device), e.uint.encode(d, o), n.member && Te.encode(d, n.member))
829 encode(d, o) {
830 const n = o.member ? 1 : 0
831 ;(we.encode(d, o.device), e.uint.encode(d, n), o.member && Te.encode(d, o.member))
832832 },
833833 decode: (d) => ({ device: we.decode(d), member: 1 & e.uint.decode(d) ? Te.decode(d) : null }),
834834 },
……@@ -840,91 +840,91 @@ const o = {
840840 d.withInvitation && Ae.preencode(e, d.withInvitation),
841841 d.withMemberProof && Re.preencode(e, d.withMemberProof))
842842 },
843 encode(d, n) {
844 const o = (n.withInvitation ? 1 : 0) | (n.withMemberProof ? 2 : 0)
845 ;(e.uint.encode(d, o),
846 n.withInvitation && Ae.encode(d, n.withInvitation),
847 n.withMemberProof && Re.encode(d, n.withMemberProof))
843 encode(d, o) {
844 const n = (o.withInvitation ? 1 : 0) | (o.withMemberProof ? 2 : 0)
845 ;(e.uint.encode(d, n),
846 o.withInvitation && Ae.encode(d, o.withInvitation),
847 o.withMemberProof && Re.encode(d, o.withMemberProof))
848848 },
849849 decode(d) {
850 const n = e.uint.decode(d)
850 const o = e.uint.decode(d)
851851 return {
852 withInvitation: 1 & n ? Ae.decode(d) : null,
853 withMemberProof: 2 & n ? Re.decode(d) : null,
852 withInvitation: 1 & o ? Ae.decode(d) : null,
853 withMemberProof: 2 & o ? Re.decode(d) : null,
854854 }
855855 },
856856 },
857 Se = e.frame(me),
858 Ce = e.frame(xe),
859 Me = {
857 Me = e.frame(me),
858 Se = e.frame(xe),
859 Ce = {
860860 preencode(e, d) {
861 ;(Se.preencode(e, d.signedKeys), e.end++, d.identity && Ce.preencode(e, d.identity))
861 ;(Me.preencode(e, d.signedKeys), e.end++, d.identity && Se.preencode(e, d.identity))
862862 },
863 encode(d, n) {
864 const o = n.identity ? 1 : 0
865 ;(Se.encode(d, n.signedKeys), e.uint.encode(d, o), n.identity && Ce.encode(d, n.identity))
863 encode(d, o) {
864 const n = o.identity ? 1 : 0
865 ;(Me.encode(d, o.signedKeys), e.uint.encode(d, n), o.identity && Se.encode(d, o.identity))
866866 },
867867 decode: (d) => ({
868 signedKeys: Se.decode(d),
869 identity: 1 & e.uint.decode(d) ? Ce.decode(d) : null,
868 signedKeys: Me.decode(d),
869 identity: 1 & e.uint.decode(d) ? Se.decode(d) : null,
870870 }),
871871 },
872872 Le = {
873 preencode(d, o) {
873 preencode(d, n) {
874874 ;(d.end++,
875 o.expiration && e.uint.preencode(d, o.expiration),
876 n >= 20 && o.buildType && Or.preencode(d, o.buildType))
875 n.expiration && e.uint.preencode(d, n.expiration),
876 o >= 20 && n.buildType && Ur.preencode(d, n.buildType))
877877 },
878 encode(d, o) {
878 encode(d, n) {
879879 const c =
880 (o.expiration ? 1 : 0) |
881 (o.requiresConfirmation ? 2 : 0) |
882 (o.canModerate ? 4 : 0) |
883 (o.canAdmin ? 8 : 0) |
884 (n >= 20 && o.buildType ? 16 : 0)
880 (n.expiration ? 1 : 0) |
881 (n.requiresConfirmation ? 2 : 0) |
882 (n.canModerate ? 4 : 0) |
883 (n.canAdmin ? 8 : 0) |
884 (o >= 20 && n.buildType ? 16 : 0)
885885 ;(e.uint.encode(d, c),
886 o.expiration && e.uint.encode(d, o.expiration),
887 n >= 20 && o.buildType && Or.encode(d, o.buildType))
886 n.expiration && e.uint.encode(d, n.expiration),
887 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
888888 },
889889 decode(d) {
890 const o = e.uint.decode(d)
890 const n = e.uint.decode(d)
891891 return {
892 expiration: 1 & o ? e.uint.decode(d) : 0,
893 requiresConfirmation: !!(2 & o),
894 canModerate: !!(4 & o),
895 canAdmin: !!(8 & o),
896 buildType: n >= 20 && 16 & o ? Or.decode(d) : null,
892 expiration: 1 & n ? e.uint.decode(d) : 0,
893 requiresConfirmation: !!(2 & n),
894 canModerate: !!(4 & n),
895 canAdmin: !!(8 & n),
896 buildType: o >= 20 && 16 & n ? Ur.decode(d) : null,
897897 }
898898 },
899899 },
900 qe = Se,
900 qe = Me,
901901 Fe = e.frame(Le),
902902 Ee = {
903 preencode(d, n) {
904 ;(e.fixed32.preencode(d, n.id),
905 qe.preencode(d, n.response),
906 Fe.preencode(d, n.metadata),
903 preencode(d, o) {
904 ;(e.fixed32.preencode(d, o.id),
905 qe.preencode(d, o.response),
906 Fe.preencode(d, o.metadata),
907907 d.end++,
908 n.anchor && o.preencode(d, n.anchor))
908 o.anchor && n.preencode(d, o.anchor))
909909 },
910 encode(d, n) {
911 const c = (n.anchor ? 1 : 0) | (n.isActive ? 2 : 0)
912 ;(e.fixed32.encode(d, n.id),
913 qe.encode(d, n.response),
914 Fe.encode(d, n.metadata),
910 encode(d, o) {
911 const c = (o.anchor ? 1 : 0) | (o.isActive ? 2 : 0)
912 ;(e.fixed32.encode(d, o.id),
913 qe.encode(d, o.response),
914 Fe.encode(d, o.metadata),
915915 e.uint.encode(d, c),
916 n.anchor && o.encode(d, n.anchor))
916 o.anchor && n.encode(d, o.anchor))
917917 },
918918 decode(d) {
919 const n = e.fixed32.decode(d),
919 const o = e.fixed32.decode(d),
920920 c = qe.decode(d),
921921 r = Fe.decode(d),
922922 t = e.uint.decode(d)
923923 return {
924 id: n,
924 id: o,
925925 response: c,
926926 metadata: r,
927 anchor: 1 & t ? o.decode(d) : null,
927 anchor: 1 & t ? n.decode(d) : null,
928928 isActive: !!(2 & t),
929929 }
930930 },
……@@ -941,63 +941,63 @@ const o = {
941941 decode: (e) => ({ header: Be.decode(e), invitation: Ie.decode(e) }),
942942 },
943943 je = _,
944 Oe = {
945 preencode(d, n) {
946 ;(je.preencode(d, n.header), e.fixed32.preencode(d, n.id))
944 Ue = {
945 preencode(d, o) {
946 ;(je.preencode(d, o.header), e.fixed32.preencode(d, o.id))
947947 },
948 encode(d, n) {
949 ;(je.encode(d, n.header), e.fixed32.encode(d, n.id))
948 encode(d, o) {
949 ;(je.encode(d, o.header), e.fixed32.encode(d, o.id))
950950 },
951951 decode: (d) => ({ header: je.decode(d), id: e.fixed32.decode(d) }),
952952 },
953 Je = {
954 preencode(d, n) {
955 ;(e.fixed32.preencode(d, n.mailbox),
956 e.fixed32.preencode(d, n.invitationSeed),
957 o.preencode(d, n.anchor))
953 Oe = {
954 preencode(d, o) {
955 ;(e.fixed32.preencode(d, o.mailbox),
956 e.fixed32.preencode(d, o.invitationSeed),
957 n.preencode(d, o.anchor))
958958 },
959 encode(d, n) {
960 ;(e.fixed32.encode(d, n.mailbox),
961 e.fixed32.encode(d, n.invitationSeed),
962 o.encode(d, n.anchor))
959 encode(d, o) {
960 ;(e.fixed32.encode(d, o.mailbox),
961 e.fixed32.encode(d, o.invitationSeed),
962 n.encode(d, o.anchor))
963963 },
964964 decode: (d) => ({
965965 mailbox: e.fixed32.decode(d),
966966 invitationSeed: e.fixed32.decode(d),
967 anchor: o.decode(d),
967 anchor: n.decode(d),
968968 }),
969969 },
970 Ue = {
971 preencode(d, n) {
972 ;(e.fixed32.preencode(d, n.mailbox),
973 e.fixed32.preencode(d, n.invitationSeed),
974 o.preencode(d, n.anchor),
975 e.fixed32.preencode(d, n.identityPublicKey))
970 Je = {
971 preencode(d, o) {
972 ;(e.fixed32.preencode(d, o.mailbox),
973 e.fixed32.preencode(d, o.invitationSeed),
974 n.preencode(d, o.anchor),
975 e.fixed32.preencode(d, o.identityPublicKey))
976976 },
977 encode(d, n) {
978 ;(e.fixed32.encode(d, n.mailbox),
979 e.fixed32.encode(d, n.invitationSeed),
980 o.encode(d, n.anchor),
981 e.fixed32.encode(d, n.identityPublicKey))
977 encode(d, o) {
978 ;(e.fixed32.encode(d, o.mailbox),
979 e.fixed32.encode(d, o.invitationSeed),
980 n.encode(d, o.anchor),
981 e.fixed32.encode(d, o.identityPublicKey))
982982 },
983983 decode: (d) => ({
984984 mailbox: e.fixed32.decode(d),
985985 invitationSeed: e.fixed32.decode(d),
986 anchor: o.decode(d),
986 anchor: n.decode(d),
987987 identityPublicKey: e.fixed32.decode(d),
988988 }),
989989 },
990990 Ve = {
991 preencode(d, n) {
992 e.fixed32.preencode(d, n.mailbox)
991 preencode(d, o) {
992 e.fixed32.preencode(d, o.mailbox)
993993 },
994 encode(d, n) {
995 e.fixed32.encode(d, n.mailbox)
994 encode(d, o) {
995 e.fixed32.encode(d, o.mailbox)
996996 },
997997 decode: (d) => ({ mailbox: e.fixed32.decode(d) }),
998998 },
999 He = e.frame(Je),
1000 ze = e.frame(Ue),
999 He = e.frame(Oe),
1000 ze = e.frame(Je),
10011001 Ge = e.frame(Ve),
10021002 Qe = e.array(e.ipv4Address),
10031003 We = {
……@@ -1006,70 +1006,70 @@ const o = {
10061006 d.room && He.preencode(e, d.room),
10071007 d.identity && ze.preencode(e, d.identity),
10081008 d.contact && Ge.preencode(e, d.contact),
1009 n >= 6 && d.readonly && Zr.preencode(e, d.readonly),
1010 n >= 11 && d.additionalNodes && Qe.preencode(e, d.additionalNodes),
1011 n >= 20 && d.buildType && Or.preencode(e, d.buildType))
1009 o >= 6 && d.readonly && _r.preencode(e, d.readonly),
1010 o >= 11 && d.additionalNodes && Qe.preencode(e, d.additionalNodes),
1011 o >= 20 && d.buildType && Ur.preencode(e, d.buildType))
10121012 },
1013 encode(d, o) {
1013 encode(d, n) {
10141014 const c =
1015 (o.room ? 1 : 0) |
1016 (o.identity ? 2 : 0) |
1017 (o.contact ? 4 : 0) |
1018 (n >= 6 && o.readonly ? 8 : 0) |
1019 (n >= 11 && o.additionalNodes ? 16 : 0) |
1020 (n >= 20 && o.buildType ? 32 : 0)
1015 (n.room ? 1 : 0) |
1016 (n.identity ? 2 : 0) |
1017 (n.contact ? 4 : 0) |
1018 (o >= 6 && n.readonly ? 8 : 0) |
1019 (o >= 11 && n.additionalNodes ? 16 : 0) |
1020 (o >= 20 && n.buildType ? 32 : 0)
10211021 ;(e.uint.encode(d, c),
1022 o.room && He.encode(d, o.room),
1023 o.identity && ze.encode(d, o.identity),
1024 o.contact && Ge.encode(d, o.contact),
1025 n >= 6 && o.readonly && Zr.encode(d, o.readonly),
1026 n >= 11 && o.additionalNodes && Qe.encode(d, o.additionalNodes),
1027 n >= 20 && o.buildType && Or.encode(d, o.buildType))
1022 n.room && He.encode(d, n.room),
1023 n.identity && ze.encode(d, n.identity),
1024 n.contact && Ge.encode(d, n.contact),
1025 o >= 6 && n.readonly && _r.encode(d, n.readonly),
1026 o >= 11 && n.additionalNodes && Qe.encode(d, n.additionalNodes),
1027 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
10281028 },
10291029 decode(d) {
1030 const o = e.uint.decode(d)
1030 const n = e.uint.decode(d)
10311031 return {
1032 room: 1 & o ? He.decode(d) : null,
1033 identity: 2 & o ? ze.decode(d) : null,
1034 contact: 4 & o ? Ge.decode(d) : null,
1035 readonly: n >= 6 && 8 & o ? Zr.decode(d) : null,
1036 additionalNodes: n >= 11 && 16 & o ? Qe.decode(d) : null,
1037 buildType: n >= 20 && 32 & o ? Or.decode(d) : null,
1032 room: 1 & n ? He.decode(d) : null,
1033 identity: 2 & n ? ze.decode(d) : null,
1034 contact: 4 & n ? Ge.decode(d) : null,
1035 readonly: o >= 6 && 8 & n ? _r.decode(d) : null,
1036 additionalNodes: o >= 11 && 16 & n ? Qe.decode(d) : null,
1037 buildType: o >= 20 && 32 & n ? Ur.decode(d) : null,
10381038 }
10391039 },
10401040 },
10411041 Xe = _,
10421042 Ye = {
1043 preencode(d, n) {
1044 ;(Xe.preencode(d, n.header), e.buffer.preencode(d, n.blindRequest))
1043 preencode(d, o) {
1044 ;(Xe.preencode(d, o.header), e.buffer.preencode(d, o.blindRequest))
10451045 },
1046 encode(d, n) {
1047 ;(Xe.encode(d, n.header), e.buffer.encode(d, n.blindRequest))
1046 encode(d, o) {
1047 ;(Xe.encode(d, o.header), e.buffer.encode(d, o.blindRequest))
10481048 },
10491049 decode: (d) => ({ header: Xe.decode(d), blindRequest: e.buffer.decode(d) }),
10501050 },
10511051 Ze = _,
10521052 $e = {
10531053 preencode(e, d) {
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && $r.preencode(e, d.profile))
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && et.preencode(e, d.profile))
10551055 },
1056 encode(d, n) {
1057 const o = n.profile ? 1 : 0
1058 ;(Ze.encode(d, n.header), e.uint.encode(d, o), n.profile && $r.encode(d, n.profile))
1056 encode(d, o) {
1057 const n = o.profile ? 1 : 0
1058 ;(Ze.encode(d, o.header), e.uint.encode(d, n), o.profile && et.encode(d, o.profile))
10591059 },
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? $r.decode(d) : null }),
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? et.decode(d) : null }),
10611061 },
10621062 _e = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({}) },
10631063 ed = _e,
10641064 dd = he,
1065 nd = {
1066 preencode(d, n) {
1067 ;(e.fixed32.preencode(d, n.deviceKey),
1068 e.fixed32.preencode(d, n.id),
1069 dd.preencode(d, n.request))
1065 od = {
1066 preencode(d, o) {
1067 ;(e.fixed32.preencode(d, o.deviceKey),
1068 e.fixed32.preencode(d, o.id),
1069 dd.preencode(d, o.request))
10701070 },
1071 encode(d, n) {
1072 ;(e.fixed32.encode(d, n.deviceKey), e.fixed32.encode(d, n.id), dd.encode(d, n.request))
1071 encode(d, o) {
1072 ;(e.fixed32.encode(d, o.deviceKey), e.fixed32.encode(d, o.id), dd.encode(d, o.request))
10731073 },
10741074 decode: (d) => ({
10751075 deviceKey: e.fixed32.decode(d),
……@@ -1077,95 +1077,95 @@ const o = {
10771077 request: dd.decode(d),
10781078 }),
10791079 },
1080 od = _,
1081 cd = Ce,
1080 nd = _,
1081 cd = Se,
10821082 rd = {
1083 preencode(d, n) {
1084 ;(od.preencode(d, n.header),
1085 e.fixed32.preencode(d, n.deviceKey),
1083 preencode(d, o) {
1084 ;(nd.preencode(d, o.header),
1085 e.fixed32.preencode(d, o.deviceKey),
10861086 d.end++,
1087 n.identity && cd.preencode(d, n.identity))
1087 o.identity && cd.preencode(d, o.identity))
10881088 },
1089 encode(d, n) {
1090 const o = n.identity ? 1 : 0
1091 ;(od.encode(d, n.header),
1092 e.fixed32.encode(d, n.deviceKey),
1093 e.uint.encode(d, o),
1094 n.identity && cd.encode(d, n.identity))
1089 encode(d, o) {
1090 const n = o.identity ? 1 : 0
1091 ;(nd.encode(d, o.header),
1092 e.fixed32.encode(d, o.deviceKey),
1093 e.uint.encode(d, n),
1094 o.identity && cd.encode(d, o.identity))
10951095 },
10961096 decode: (d) => ({
1097 header: od.decode(d),
1097 header: nd.decode(d),
10981098 deviceKey: e.fixed32.decode(d),
10991099 identity: 1 & e.uint.decode(d) ? cd.decode(d) : null,
11001100 }),
11011101 },
11021102 td = _,
11031103 id = {
1104 preencode(d, n) {
1105 ;(td.preencode(d, n.header), e.fixed32.preencode(d, n.deviceKey))
1104 preencode(d, o) {
1105 ;(td.preencode(d, o.header), e.fixed32.preencode(d, o.deviceKey))
11061106 },
1107 encode(d, n) {
1108 ;(td.encode(d, n.header), e.fixed32.encode(d, n.deviceKey))
1107 encode(d, o) {
1108 ;(td.encode(d, o.header), e.fixed32.encode(d, o.deviceKey))
11091109 },
11101110 decode: (d) => ({ header: td.decode(d), deviceKey: e.fixed32.decode(d) }),
11111111 },
1112 ad = e.frame(C),
1112 ad = e.frame(S),
11131113 sd = ue,
11141114 pd = {
1115 preencode(d, n) {
1116 ;(e.fixed32.preencode(d, n.key), ad.preencode(d, n.status), sd.preencode(d, n.profile))
1115 preencode(d, o) {
1116 ;(e.fixed32.preencode(d, o.key), ad.preencode(d, o.status), sd.preencode(d, o.profile))
11171117 },
1118 encode(d, n) {
1119 ;(e.fixed32.encode(d, n.key), ad.encode(d, n.status), sd.encode(d, n.profile))
1118 encode(d, o) {
1119 ;(e.fixed32.encode(d, o.key), ad.encode(d, o.status), sd.encode(d, o.profile))
11201120 },
11211121 decode: (d) => ({ key: e.fixed32.decode(d), status: ad.decode(d), profile: sd.decode(d) }),
11221122 },
11231123 ud = ad,
11241124 ld = ue,
11251125 fd = {
1126 preencode(d, n) {
1127 ;(e.fixed32.preencode(d, n.key),
1128 ud.preencode(d, n.status),
1129 ld.preencode(d, n.profile),
1126 preencode(d, o) {
1127 ;(e.fixed32.preencode(d, o.key),
1128 ud.preencode(d, o.status),
1129 ld.preencode(d, o.profile),
11301130 d.end++,
1131 n.proofs && _r.preencode(d, n.proofs))
1131 o.proofs && dt.preencode(d, o.proofs))
11321132 },
1133 encode(d, n) {
1134 const o = n.proofs ? 1 : 0
1135 ;(e.fixed32.encode(d, n.key),
1136 ud.encode(d, n.status),
1137 ld.encode(d, n.profile),
1138 e.uint.encode(d, o),
1139 n.proofs && _r.encode(d, n.proofs))
1133 encode(d, o) {
1134 const n = o.proofs ? 1 : 0
1135 ;(e.fixed32.encode(d, o.key),
1136 ud.encode(d, o.status),
1137 ld.encode(d, o.profile),
1138 e.uint.encode(d, n),
1139 o.proofs && dt.encode(d, o.proofs))
11401140 },
11411141 decode: (d) => ({
11421142 key: e.fixed32.decode(d),
11431143 status: ud.decode(d),
11441144 profile: ld.decode(d),
1145 proofs: 1 & e.uint.decode(d) ? _r.decode(d) : null,
1145 proofs: 1 & e.uint.decode(d) ? dt.decode(d) : null,
11461146 }),
11471147 },
11481148 md = {
1149 preencode(d, n) {
1150 ;(e.fixed32.preencode(d, n.key),
1149 preencode(d, o) {
1150 ;(e.fixed32.preencode(d, o.key),
11511151 d.end++,
1152 n.profileAttestation && e.buffer.preencode(d, n.profileAttestation),
1153 n.latestReceipt && e.buffer.preencode(d, n.latestReceipt))
1152 o.profileAttestation && e.buffer.preencode(d, o.profileAttestation),
1153 o.latestReceipt && e.buffer.preencode(d, o.latestReceipt))
11541154 },
1155 encode(d, n) {
1156 const o = (n.profileAttestation ? 1 : 0) | (n.latestReceipt ? 2 : 0)
1157 ;(e.fixed32.encode(d, n.key),
1158 e.uint.encode(d, o),
1159 n.profileAttestation && e.buffer.encode(d, n.profileAttestation),
1160 n.latestReceipt && e.buffer.encode(d, n.latestReceipt))
1155 encode(d, o) {
1156 const n = (o.profileAttestation ? 1 : 0) | (o.latestReceipt ? 2 : 0)
1157 ;(e.fixed32.encode(d, o.key),
1158 e.uint.encode(d, n),
1159 o.profileAttestation && e.buffer.encode(d, o.profileAttestation),
1160 o.latestReceipt && e.buffer.encode(d, o.latestReceipt))
11611161 },
11621162 decode(d) {
1163 const n = e.fixed32.decode(d),
1164 o = e.uint.decode(d)
1163 const o = e.fixed32.decode(d),
1164 n = e.uint.decode(d)
11651165 return {
1166 key: n,
1167 profileAttestation: 1 & o ? e.buffer.decode(d) : null,
1168 latestReceipt: 2 & o ? e.buffer.decode(d) : null,
1166 key: o,
1167 profileAttestation: 1 & n ? e.buffer.decode(d) : null,
1168 latestReceipt: 2 & n ? e.buffer.decode(d) : null,
11691169 }
11701170 },
11711171 },
……@@ -1181,19 +1181,19 @@ const o = {
11811181 decode: (e) => ({ header: yd.decode(e), member: xd.decode(e) }),
11821182 },
11831183 kd = _,
1184 vd = e.frame(M),
1184 vd = e.frame(C),
11851185 gd = {
1186 preencode(d, n) {
1187 ;(kd.preencode(d, n.header),
1188 e.fixed32.preencode(d, n.memberKey),
1189 e.uint.preencode(d, n.key),
1190 vd.preencode(d, n.status))
1186 preencode(d, o) {
1187 ;(kd.preencode(d, o.header),
1188 e.fixed32.preencode(d, o.memberKey),
1189 e.uint.preencode(d, o.key),
1190 vd.preencode(d, o.status))
11911191 },
1192 encode(d, n) {
1193 ;(kd.encode(d, n.header),
1194 e.fixed32.encode(d, n.memberKey),
1195 e.uint.encode(d, n.key),
1196 vd.encode(d, n.status))
1192 encode(d, o) {
1193 ;(kd.encode(d, o.header),
1194 e.fixed32.encode(d, o.memberKey),
1195 e.uint.encode(d, o.key),
1196 vd.encode(d, o.status))
11971197 },
11981198 decode: (d) => ({
11991199 header: kd.decode(d),
……@@ -1204,219 +1204,219 @@ const o = {
12041204 },
12051205 hd = _,
12061206 Kd = {
1207 preencode(d, n) {
1208 ;(hd.preencode(d, n.header), e.fixed32.preencode(d, n.key), d.end++)
1207 preencode(d, o) {
1208 ;(hd.preencode(d, o.header), e.fixed32.preencode(d, o.key), d.end++)
12091209 },
1210 encode(d, n) {
1211 const o = (n.isModerator ? 1 : 0) | (n.isAdmin ? 2 : 0)
1212 ;(hd.encode(d, n.header), e.fixed32.encode(d, n.key), e.uint.encode(d, o))
1210 encode(d, o) {
1211 const n = (o.isModerator ? 1 : 0) | (o.isAdmin ? 2 : 0)
1212 ;(hd.encode(d, o.header), e.fixed32.encode(d, o.key), e.uint.encode(d, n))
12131213 },
12141214 decode(d) {
1215 const n = hd.decode(d),
1216 o = e.fixed32.decode(d),
1215 const o = hd.decode(d),
1216 n = e.fixed32.decode(d),
12171217 c = e.uint.decode(d)
1218 return { header: n, key: o, isModerator: !!(1 & c), isAdmin: !!(2 & c) }
1218 return { header: o, key: n, isModerator: !!(1 & c), isAdmin: !!(2 & c) }
12191219 },
12201220 },
12211221 wd = _,
12221222 Td = {
1223 preencode(d, n) {
1224 ;(wd.preencode(d, n.header), e.fixed32.preencode(d, n.key))
1223 preencode(d, o) {
1224 ;(wd.preencode(d, o.header), e.fixed32.preencode(d, o.key))
12251225 },
1226 encode(d, n) {
1227 ;(wd.encode(d, n.header), e.fixed32.encode(d, n.key))
1226 encode(d, o) {
1227 ;(wd.encode(d, o.header), e.fixed32.encode(d, o.key))
12281228 },
12291229 decode: (d) => ({ header: wd.decode(d), key: e.fixed32.decode(d) }),
12301230 },
12311231 Pd = {
1232 preencode(d, n) {
1233 ;(e.fixed32.preencode(d, n.key), e.uint.preencode(d, n.mentions))
1232 preencode(d, o) {
1233 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.mentions))
12341234 },
1235 encode(d, n) {
1236 ;(e.fixed32.encode(d, n.key), e.uint.encode(d, n.mentions))
1235 encode(d, o) {
1236 ;(e.fixed32.encode(d, o.key), e.uint.encode(d, o.mentions))
12371237 },
12381238 decode: (d) => ({ key: e.fixed32.decode(d), mentions: e.uint.decode(d) }),
12391239 },
12401240 Ad = {
1241 preencode(d, n) {
1242 ;(d.end++, n.memberKey && e.fixed32.preencode(d, n.memberKey))
1241 preencode(d, o) {
1242 ;(d.end++, o.memberKey && e.fixed32.preencode(d, o.memberKey))
12431243 },
1244 encode(d, n) {
1245 const o = n.memberKey ? 1 : 0
1246 ;(e.uint.encode(d, o), n.memberKey && e.fixed32.encode(d, n.memberKey))
1244 encode(d, o) {
1245 const n = o.memberKey ? 1 : 0
1246 ;(e.uint.encode(d, n), o.memberKey && e.fixed32.encode(d, o.memberKey))
12471247 },
12481248 decode: (d) => ({ memberKey: 1 & e.uint.decode(d) ? e.fixed32.decode(d) : null }),
12491249 },
12501250 Rd = Ad,
12511251 Dd = {
1252 preencode(d, n) {
1253 ;(d.end++, n.from && e.string.preencode(d, n.from), n.to && e.string.preencode(d, n.to))
1252 preencode(d, o) {
1253 ;(d.end++, o.from && e.string.preencode(d, o.from), o.to && e.string.preencode(d, o.to))
12541254 },
1255 encode(d, n) {
1256 const o = (n.from ? 1 : 0) | (n.to ? 2 : 0)
1257 ;(e.uint.encode(d, o), n.from && e.string.encode(d, n.from), n.to && e.string.encode(d, n.to))
1255 encode(d, o) {
1256 const n = (o.from ? 1 : 0) | (o.to ? 2 : 0)
1257 ;(e.uint.encode(d, n), o.from && e.string.encode(d, o.from), o.to && e.string.encode(d, o.to))
12581258 },
12591259 decode(d) {
1260 const n = e.uint.decode(d)
1261 return { from: 1 & n ? e.string.decode(d) : null, to: 2 & n ? e.string.decode(d) : null }
1260 const o = e.uint.decode(d)
1261 return { from: 1 & o ? e.string.decode(d) : null, to: 2 & o ? e.string.decode(d) : null }
12621262 },
12631263 },
1264 Sd = e.frame(Ad),
1265 Cd = e.frame(Rd),
1266 Md = e.frame(Dd),
1264 Md = e.frame(Ad),
1265 Sd = e.frame(Rd),
1266 Cd = e.frame(Dd),
12671267 Ld = {
1268 preencode(d, o) {
1268 preencode(d, n) {
12691269 const c =
1270 (o.memberJoined ? 1 : 0) |
1271 (o.memberLeft ? 2 : 0) |
1272 (o.titleChanged ? 4 : 0) |
1273 (o.callStarted ? 8 : 0) |
1274 (o.callHangup ? 16 : 0) |
1275 (o.callMissed ? 32 : 0) |
1276 (n >= 3 && o.roomAvatarChanged ? 64 : 0) |
1277 (n >= 3 && o.invitationCreated ? 128 : 0) |
1278 (n >= 3 && o.memberRemoved ? 256 : 0) |
1279 (n >= 18 && o.locationShared ? 512 : 0)
1270 (n.memberJoined ? 1 : 0) |
1271 (n.memberLeft ? 2 : 0) |
1272 (n.titleChanged ? 4 : 0) |
1273 (n.callStarted ? 8 : 0) |
1274 (n.callHangup ? 16 : 0) |
1275 (n.callMissed ? 32 : 0) |
1276 (o >= 3 && n.roomAvatarChanged ? 64 : 0) |
1277 (o >= 3 && n.invitationCreated ? 128 : 0) |
1278 (o >= 3 && n.memberRemoved ? 256 : 0) |
1279 (o >= 18 && n.locationShared ? 512 : 0)
12801280 ;(e.uint.preencode(d, c),
1281 o.memberJoined && Sd.preencode(d, o.memberJoined),
1282 o.memberLeft && Cd.preencode(d, o.memberLeft),
1283 o.titleChanged && Md.preencode(d, o.titleChanged),
1284 n >= 3 && o.memberRemoved && et.preencode(d, o.memberRemoved),
1285 n >= 18 && o.locationShared && dt.preencode(d, o.locationShared))
1281 n.memberJoined && Md.preencode(d, n.memberJoined),
1282 n.memberLeft && Sd.preencode(d, n.memberLeft),
1283 n.titleChanged && Cd.preencode(d, n.titleChanged),
1284 o >= 3 && n.memberRemoved && ot.preencode(d, n.memberRemoved),
1285 o >= 18 && n.locationShared && nt.preencode(d, n.locationShared))
12861286 },
1287 encode(d, o) {
1287 encode(d, n) {
12881288 const c =
1289 (o.memberJoined ? 1 : 0) |
1290 (o.memberLeft ? 2 : 0) |
1291 (o.titleChanged ? 4 : 0) |
1292 (o.callStarted ? 8 : 0) |
1293 (o.callHangup ? 16 : 0) |
1294 (o.callMissed ? 32 : 0) |
1295 (n >= 3 && o.roomAvatarChanged ? 64 : 0) |
1296 (n >= 3 && o.invitationCreated ? 128 : 0) |
1297 (n >= 3 && o.memberRemoved ? 256 : 0) |
1298 (n >= 18 && o.locationShared ? 512 : 0)
1289 (n.memberJoined ? 1 : 0) |
1290 (n.memberLeft ? 2 : 0) |
1291 (n.titleChanged ? 4 : 0) |
1292 (n.callStarted ? 8 : 0) |
1293 (n.callHangup ? 16 : 0) |
1294 (n.callMissed ? 32 : 0) |
1295 (o >= 3 && n.roomAvatarChanged ? 64 : 0) |
1296 (o >= 3 && n.invitationCreated ? 128 : 0) |
1297 (o >= 3 && n.memberRemoved ? 256 : 0) |
1298 (o >= 18 && n.locationShared ? 512 : 0)
12991299 ;(e.uint.encode(d, c),
1300 o.memberJoined && Sd.encode(d, o.memberJoined),
1301 o.memberLeft && Cd.encode(d, o.memberLeft),
1302 o.titleChanged && Md.encode(d, o.titleChanged),
1303 n >= 3 && o.memberRemoved && et.encode(d, o.memberRemoved),
1304 n >= 18 && o.locationShared && dt.encode(d, o.locationShared))
1300 n.memberJoined && Md.encode(d, n.memberJoined),
1301 n.memberLeft && Sd.encode(d, n.memberLeft),
1302 n.titleChanged && Cd.encode(d, n.titleChanged),
1303 o >= 3 && n.memberRemoved && ot.encode(d, n.memberRemoved),
1304 o >= 18 && n.locationShared && nt.encode(d, n.locationShared))
13051305 },
13061306 decode(d) {
1307 const o = e.uint.decode(d)
1307 const n = e.uint.decode(d)
13081308 return {
1309 memberJoined: 1 & o ? Sd.decode(d) : null,
1310 memberLeft: 2 & o ? Cd.decode(d) : null,
1311 titleChanged: 4 & o ? Md.decode(d) : null,
1312 callStarted: !!(8 & o),
1313 callHangup: !!(16 & o),
1314 callMissed: !!(32 & o),
1315 roomAvatarChanged: n >= 3 && !!(64 & o),
1316 invitationCreated: n >= 3 && !!(128 & o),
1317 memberRemoved: n >= 3 && 256 & o ? et.decode(d) : null,
1318 locationShared: n >= 18 && 512 & o ? dt.decode(d) : null,
1309 memberJoined: 1 & n ? Md.decode(d) : null,
1310 memberLeft: 2 & n ? Sd.decode(d) : null,
1311 titleChanged: 4 & n ? Cd.decode(d) : null,
1312 callStarted: !!(8 & n),
1313 callHangup: !!(16 & n),
1314 callMissed: !!(32 & n),
1315 roomAvatarChanged: o >= 3 && !!(64 & n),
1316 invitationCreated: o >= 3 && !!(128 & n),
1317 memberRemoved: o >= 3 && 256 & n ? ot.decode(d) : null,
1318 locationShared: o >= 18 && 512 & n ? nt.decode(d) : null,
13191319 }
13201320 },
13211321 },
13221322 qd = {
13231323 preencode(e, d) {
1324 ;(e.end++, n >= 18 && d.locationShared && nt.preencode(e, d.locationShared))
1324 ;(e.end++, o >= 18 && d.locationShared && ct.preencode(e, d.locationShared))
13251325 },
1326 encode(d, o) {
1326 encode(d, n) {
13271327 const c =
1328 (o.callStarted ? 1 : 0) |
1329 (o.callHangup ? 2 : 0) |
1330 (o.callMissed ? 4 : 0) |
1331 (n >= 18 && o.locationShared ? 8 : 0)
1332 ;(e.uint.encode(d, c), n >= 18 && o.locationShared && nt.encode(d, o.locationShared))
1328 (n.callStarted ? 1 : 0) |
1329 (n.callHangup ? 2 : 0) |
1330 (n.callMissed ? 4 : 0) |
1331 (o >= 18 && n.locationShared ? 8 : 0)
1332 ;(e.uint.encode(d, c), o >= 18 && n.locationShared && ct.encode(d, n.locationShared))
13331333 },
13341334 decode(d) {
1335 const o = e.uint.decode(d)
1335 const n = e.uint.decode(d)
13361336 return {
1337 callStarted: !!(1 & o),
1338 callHangup: !!(2 & o),
1339 callMissed: !!(4 & o),
1340 locationShared: n >= 18 && 8 & o ? nt.decode(d) : null,
1337 callStarted: !!(1 & n),
1338 callHangup: !!(2 & n),
1339 callMissed: !!(4 & n),
1340 locationShared: o >= 18 && 8 & n ? ct.decode(d) : null,
13411341 }
13421342 },
13431343 },
13441344 Fd = {
1345 preencode(d, n) {
1346 ;(e.uint.preencode(d, n.start), e.uint.preencode(d, n.length))
1345 preencode(d, o) {
1346 ;(e.uint.preencode(d, o.start), e.uint.preencode(d, o.length))
13471347 },
1348 encode(d, n) {
1349 ;(e.uint.encode(d, n.start), e.uint.encode(d, n.length))
1348 encode(d, o) {
1349 ;(e.uint.encode(d, o.start), e.uint.encode(d, o.length))
13501350 },
13511351 decode: (d) => ({ start: e.uint.decode(d), length: e.uint.decode(d) }),
13521352 },
13531353 Ed = e.frame(Fd),
13541354 Bd = {
1355 preencode(d, n) {
1356 ;(Ed.preencode(d, n.range), e.string.preencode(d, n.content))
1355 preencode(d, o) {
1356 ;(Ed.preencode(d, o.range), e.string.preencode(d, o.content))
13571357 },
1358 encode(d, n) {
1359 ;(Ed.encode(d, n.range), e.string.encode(d, n.content))
1358 encode(d, o) {
1359 ;(Ed.encode(d, o.range), e.string.encode(d, o.content))
13601360 },
13611361 decode: (d) => ({ range: Ed.decode(d), content: e.string.decode(d) }),
13621362 },
13631363 Id = Ed,
13641364 Nd = {
1365 preencode(d, n) {
1366 ;(Id.preencode(d, n.range), e.fixed32.preencode(d, n.memberKey))
1365 preencode(d, o) {
1366 ;(Id.preencode(d, o.range), e.fixed32.preencode(d, o.memberKey))
13671367 },
1368 encode(d, n) {
1369 ;(Id.encode(d, n.range), e.fixed32.encode(d, n.memberKey))
1368 encode(d, o) {
1369 ;(Id.encode(d, o.range), e.fixed32.encode(d, o.memberKey))
13701370 },
13711371 decode: (d) => ({ range: Id.decode(d), memberKey: e.fixed32.decode(d) }),
13721372 },
13731373 jd = h,
1374 Od = e.array(e.uint),
1375 Jd = {
1376 preencode(d, o) {
1374 Ud = e.array(e.uint),
1375 Od = {
1376 preencode(d, n) {
13771377 ;(d.end++,
1378 o.title && e.string.preencode(d, o.title),
1379 o.description && e.string.preencode(d, o.description),
1380 o.file && jd.preencode(d, o.file),
1381 n >= 7 && o.files && Od.preencode(d, o.files))
1378 n.title && e.string.preencode(d, n.title),
1379 n.description && e.string.preencode(d, n.description),
1380 n.file && jd.preencode(d, n.file),
1381 o >= 7 && n.files && Ud.preencode(d, n.files))
13821382 },
1383 encode(d, o) {
1383 encode(d, n) {
13841384 const c =
1385 (o.title ? 1 : 0) | (o.description ? 2 : 0) | (o.file ? 4 : 0) | (n >= 7 && o.files ? 8 : 0)
1385 (n.title ? 1 : 0) | (n.description ? 2 : 0) | (n.file ? 4 : 0) | (o >= 7 && n.files ? 8 : 0)
13861386 ;(e.uint.encode(d, c),
1387 o.title && e.string.encode(d, o.title),
1388 o.description && e.string.encode(d, o.description),
1389 o.file && jd.encode(d, o.file),
1390 n >= 7 && o.files && Od.encode(d, o.files))
1387 n.title && e.string.encode(d, n.title),
1388 n.description && e.string.encode(d, n.description),
1389 n.file && jd.encode(d, n.file),
1390 o >= 7 && n.files && Ud.encode(d, n.files))
13911391 },
13921392 decode(d) {
1393 const o = e.uint.decode(d)
1393 const n = e.uint.decode(d)
13941394 return {
1395 title: 1 & o ? e.string.decode(d) : null,
1396 description: 2 & o ? e.string.decode(d) : null,
1397 file: 4 & o ? jd.decode(d) : null,
1398 files: n >= 7 && 8 & o ? Od.decode(d) : null,
1395 title: 1 & n ? e.string.decode(d) : null,
1396 description: 2 & n ? e.string.decode(d) : null,
1397 file: 4 & n ? jd.decode(d) : null,
1398 files: o >= 7 && 8 & n ? Ud.decode(d) : null,
13991399 }
14001400 },
14011401 },
1402 Ud = Ed,
1403 Vd = e.frame(Jd),
1402 Jd = Ed,
1403 Vd = e.frame(Od),
14041404 Hd = {
1405 preencode(d, n) {
1406 ;(Ud.preencode(d, n.range),
1407 e.string.preencode(d, n.url),
1405 preencode(d, o) {
1406 ;(Jd.preencode(d, o.range),
1407 e.string.preencode(d, o.url),
14081408 d.end++,
1409 n.preview && Vd.preencode(d, n.preview))
1409 o.preview && Vd.preencode(d, o.preview))
14101410 },
1411 encode(d, n) {
1412 const o = n.preview ? 1 : 0
1413 ;(Ud.encode(d, n.range),
1414 e.string.encode(d, n.url),
1415 e.uint.encode(d, o),
1416 n.preview && Vd.encode(d, n.preview))
1411 encode(d, o) {
1412 const n = o.preview ? 1 : 0
1413 ;(Jd.encode(d, o.range),
1414 e.string.encode(d, o.url),
1415 e.uint.encode(d, n),
1416 o.preview && Vd.encode(d, o.preview))
14171417 },
14181418 decode: (d) => ({
1419 range: Ud.decode(d),
1419 range: Jd.decode(d),
14201420 url: e.string.decode(d),
14211421 preview: 1 & e.uint.decode(d) ? Vd.decode(d) : null,
14221422 }),
……@@ -1430,702 +1430,702 @@ const o = {
14301430 Zd = e.array(e.frame(Bd)),
14311431 $d = Wd,
14321432 _d = Wd,
1433 en = {
1434 preencode(d, o) {
1433 eo = {
1434 preencode(d, n) {
14351435 const c =
1436 (o.mention ? 1 : 0) |
1437 (o.httpLink ? 2 : 0) |
1438 (o.pearLink ? 4 : 0) |
1439 (o.bold ? 8 : 0) |
1440 (o.italic ? 16 : 0) |
1441 (o.code ? 32 : 0) |
1442 (o.emoji ? 64 : 0) |
1443 (o.codeBlock ? 128 : 0) |
1444 (o.strike ? 256 : 0) |
1445 (n >= 11 && o.translation ? 512 : 0)
1436 (n.mention ? 1 : 0) |
1437 (n.httpLink ? 2 : 0) |
1438 (n.pearLink ? 4 : 0) |
1439 (n.bold ? 8 : 0) |
1440 (n.italic ? 16 : 0) |
1441 (n.code ? 32 : 0) |
1442 (n.emoji ? 64 : 0) |
1443 (n.codeBlock ? 128 : 0) |
1444 (n.strike ? 256 : 0) |
1445 (o >= 11 && n.translation ? 512 : 0)
14461446 ;(e.uint.preencode(d, c),
1447 o.mention && zd.preencode(d, o.mention),
1448 o.httpLink && Gd.preencode(d, o.httpLink),
1449 o.pearLink && Qd.preencode(d, o.pearLink),
1450 o.bold && Wd.preencode(d, o.bold),
1451 o.italic && Xd.preencode(d, o.italic),
1452 o.code && Yd.preencode(d, o.code),
1453 o.emoji && Zd.preencode(d, o.emoji),
1454 o.codeBlock && $d.preencode(d, o.codeBlock),
1455 o.strike && _d.preencode(d, o.strike),
1456 n >= 11 && o.translation && ot.preencode(d, o.translation))
1447 n.mention && zd.preencode(d, n.mention),
1448 n.httpLink && Gd.preencode(d, n.httpLink),
1449 n.pearLink && Qd.preencode(d, n.pearLink),
1450 n.bold && Wd.preencode(d, n.bold),
1451 n.italic && Xd.preencode(d, n.italic),
1452 n.code && Yd.preencode(d, n.code),
1453 n.emoji && Zd.preencode(d, n.emoji),
1454 n.codeBlock && $d.preencode(d, n.codeBlock),
1455 n.strike && _d.preencode(d, n.strike),
1456 o >= 11 && n.translation && rt.preencode(d, n.translation))
14571457 },
1458 encode(d, o) {
1458 encode(d, n) {
14591459 const c =
1460 (o.mention ? 1 : 0) |
1461 (o.httpLink ? 2 : 0) |
1462 (o.pearLink ? 4 : 0) |
1463 (o.bold ? 8 : 0) |
1464 (o.italic ? 16 : 0) |
1465 (o.code ? 32 : 0) |
1466 (o.emoji ? 64 : 0) |
1467 (o.codeBlock ? 128 : 0) |
1468 (o.strike ? 256 : 0) |
1469 (n >= 11 && o.translation ? 512 : 0)
1460 (n.mention ? 1 : 0) |
1461 (n.httpLink ? 2 : 0) |
1462 (n.pearLink ? 4 : 0) |
1463 (n.bold ? 8 : 0) |
1464 (n.italic ? 16 : 0) |
1465 (n.code ? 32 : 0) |
1466 (n.emoji ? 64 : 0) |
1467 (n.codeBlock ? 128 : 0) |
1468 (n.strike ? 256 : 0) |
1469 (o >= 11 && n.translation ? 512 : 0)
14701470 ;(e.uint.encode(d, c),
1471 o.mention && zd.encode(d, o.mention),
1472 o.httpLink && Gd.encode(d, o.httpLink),
1473 o.pearLink && Qd.encode(d, o.pearLink),
1474 o.bold && Wd.encode(d, o.bold),
1475 o.italic && Xd.encode(d, o.italic),
1476 o.code && Yd.encode(d, o.code),
1477 o.emoji && Zd.encode(d, o.emoji),
1478 o.codeBlock && $d.encode(d, o.codeBlock),
1479 o.strike && _d.encode(d, o.strike),
1480 n >= 11 && o.translation && ot.encode(d, o.translation))
1471 n.mention && zd.encode(d, n.mention),
1472 n.httpLink && Gd.encode(d, n.httpLink),
1473 n.pearLink && Qd.encode(d, n.pearLink),
1474 n.bold && Wd.encode(d, n.bold),
1475 n.italic && Xd.encode(d, n.italic),
1476 n.code && Yd.encode(d, n.code),
1477 n.emoji && Zd.encode(d, n.emoji),
1478 n.codeBlock && $d.encode(d, n.codeBlock),
1479 n.strike && _d.encode(d, n.strike),
1480 o >= 11 && n.translation && rt.encode(d, n.translation))
14811481 },
14821482 decode(d) {
1483 const o = e.uint.decode(d)
1483 const n = e.uint.decode(d)
14841484 return {
1485 mention: 1 & o ? zd.decode(d) : null,
1486 httpLink: 2 & o ? Gd.decode(d) : null,
1487 pearLink: 4 & o ? Qd.decode(d) : null,
1488 bold: 8 & o ? Wd.decode(d) : null,
1489 italic: 16 & o ? Xd.decode(d) : null,
1490 code: 32 & o ? Yd.decode(d) : null,
1491 emoji: 64 & o ? Zd.decode(d) : null,
1492 codeBlock: 128 & o ? $d.decode(d) : null,
1493 strike: 256 & o ? _d.decode(d) : null,
1494 translation: n >= 11 && 512 & o ? ot.decode(d) : null,
1485 mention: 1 & n ? zd.decode(d) : null,
1486 httpLink: 2 & n ? Gd.decode(d) : null,
1487 pearLink: 4 & n ? Qd.decode(d) : null,
1488 bold: 8 & n ? Wd.decode(d) : null,
1489 italic: 16 & n ? Xd.decode(d) : null,
1490 code: 32 & n ? Yd.decode(d) : null,
1491 emoji: 64 & n ? Zd.decode(d) : null,
1492 codeBlock: 128 & n ? $d.decode(d) : null,
1493 strike: 256 & n ? _d.decode(d) : null,
1494 translation: o >= 11 && 512 & n ? rt.decode(d) : null,
14951495 }
14961496 },
14971497 },
1498 dn = e.array(e.frame(g)),
1499 nn = e.frame(en),
1500 on = e.frame(qd),
1501 cn = {
1502 preencode(d, n) {
1498 oo = e.array(e.frame(g)),
1499 no = e.frame(eo),
1500 co = e.frame(qd),
1501 ro = {
1502 preencode(d, o) {
15031503 ;(d.end++,
1504 n.text && e.string.preencode(d, n.text),
1505 n.files && dn.preencode(d, n.files),
1506 n.display && nn.preencode(d, n.display),
1507 n.replyTo && c.preencode(d, n.replyTo),
1508 n.parent && c.preencode(d, n.parent),
1509 n.event && on.preencode(d, n.event))
1504 o.text && e.string.preencode(d, o.text),
1505 o.files && oo.preencode(d, o.files),
1506 o.display && no.preencode(d, o.display),
1507 o.replyTo && c.preencode(d, o.replyTo),
1508 o.parent && c.preencode(d, o.parent),
1509 o.event && co.preencode(d, o.event))
15101510 },
1511 encode(d, o) {
1511 encode(d, n) {
15121512 const r =
1513 (o.text ? 1 : 0) |
1514 (o.files ? 2 : 0) |
1515 (o.display ? 4 : 0) |
1516 (o.replyTo ? 8 : 0) |
1517 (o.parent ? 16 : 0) |
1518 (o.event ? 32 : 0) |
1519 (n >= 18 && o.forwarded ? 64 : 0)
1513 (n.text ? 1 : 0) |
1514 (n.files ? 2 : 0) |
1515 (n.display ? 4 : 0) |
1516 (n.replyTo ? 8 : 0) |
1517 (n.parent ? 16 : 0) |
1518 (n.event ? 32 : 0) |
1519 (o >= 18 && n.forwarded ? 64 : 0)
15201520 ;(e.uint.encode(d, r),
1521 o.text && e.string.encode(d, o.text),
1522 o.files && dn.encode(d, o.files),
1523 o.display && nn.encode(d, o.display),
1524 o.replyTo && c.encode(d, o.replyTo),
1525 o.parent && c.encode(d, o.parent),
1526 o.event && on.encode(d, o.event))
1521 n.text && e.string.encode(d, n.text),
1522 n.files && oo.encode(d, n.files),
1523 n.display && no.encode(d, n.display),
1524 n.replyTo && c.encode(d, n.replyTo),
1525 n.parent && c.encode(d, n.parent),
1526 n.event && co.encode(d, n.event))
15271527 },
15281528 decode(d) {
1529 const o = e.uint.decode(d)
1529 const n = e.uint.decode(d)
15301530 return {
1531 text: 1 & o ? e.string.decode(d) : null,
1532 files: 2 & o ? dn.decode(d) : null,
1533 display: 4 & o ? nn.decode(d) : null,
1534 replyTo: 8 & o ? c.decode(d) : null,
1535 parent: 16 & o ? c.decode(d) : null,
1536 event: 32 & o ? on.decode(d) : null,
1537 forwarded: n >= 18 && !!(64 & o),
1531 text: 1 & n ? e.string.decode(d) : null,
1532 files: 2 & n ? oo.decode(d) : null,
1533 display: 4 & n ? no.decode(d) : null,
1534 replyTo: 8 & n ? c.decode(d) : null,
1535 parent: 16 & n ? c.decode(d) : null,
1536 event: 32 & n ? co.decode(d) : null,
1537 forwarded: o >= 18 && !!(64 & n),
15381538 }
15391539 },
15401540 },
1541 rn = Od,
1542 tn = nn,
1543 an = {
1544 preencode(d, n) {
1541 to = Ud,
1542 io = no,
1543 ao = {
1544 preencode(d, o) {
15451545 ;(d.end++,
1546 n.text && e.string.preencode(d, n.text),
1547 n.files && rn.preencode(d, n.files),
1548 n.display && tn.preencode(d, n.display),
1549 n.replyTo && c.preencode(d, n.replyTo),
1550 n.parent && c.preencode(d, n.parent))
1546 o.text && e.string.preencode(d, o.text),
1547 o.files && to.preencode(d, o.files),
1548 o.display && io.preencode(d, o.display),
1549 o.replyTo && c.preencode(d, o.replyTo),
1550 o.parent && c.preencode(d, o.parent))
15511551 },
1552 encode(d, o) {
1552 encode(d, n) {
15531553 const r =
1554 (o.text ? 1 : 0) |
1555 (o.files ? 2 : 0) |
1556 (o.display ? 4 : 0) |
1557 (o.replyTo ? 8 : 0) |
1558 (o.parent ? 16 : 0) |
1559 (n >= 18 && o.forwarded ? 32 : 0)
1554 (n.text ? 1 : 0) |
1555 (n.files ? 2 : 0) |
1556 (n.display ? 4 : 0) |
1557 (n.replyTo ? 8 : 0) |
1558 (n.parent ? 16 : 0) |
1559 (o >= 18 && n.forwarded ? 32 : 0)
15601560 ;(e.uint.encode(d, r),
1561 o.text && e.string.encode(d, o.text),
1562 o.files && rn.encode(d, o.files),
1563 o.display && tn.encode(d, o.display),
1564 o.replyTo && c.encode(d, o.replyTo),
1565 o.parent && c.encode(d, o.parent))
1561 n.text && e.string.encode(d, n.text),
1562 n.files && to.encode(d, n.files),
1563 n.display && io.encode(d, n.display),
1564 n.replyTo && c.encode(d, n.replyTo),
1565 n.parent && c.encode(d, n.parent))
15661566 },
15671567 decode(d) {
1568 const o = e.uint.decode(d)
1568 const n = e.uint.decode(d)
15691569 return {
1570 text: 1 & o ? e.string.decode(d) : null,
1571 files: 2 & o ? rn.decode(d) : null,
1572 display: 4 & o ? tn.decode(d) : null,
1573 replyTo: 8 & o ? c.decode(d) : null,
1574 parent: 16 & o ? c.decode(d) : null,
1575 forwarded: n >= 18 && !!(32 & o),
1570 text: 1 & n ? e.string.decode(d) : null,
1571 files: 2 & n ? to.decode(d) : null,
1572 display: 4 & n ? io.decode(d) : null,
1573 replyTo: 8 & n ? c.decode(d) : null,
1574 parent: 16 & n ? c.decode(d) : null,
1575 forwarded: o >= 18 && !!(32 & n),
15761576 }
15771577 },
15781578 },
1579 sn = dn,
1580 pn = nn,
1581 un = {
1582 preencode(d, n) {
1579 so = oo,
1580 po = no,
1581 uo = {
1582 preencode(d, o) {
15831583 ;(d.end++,
1584 n.text && e.string.preencode(d, n.text),
1585 n.files && sn.preencode(d, n.files),
1586 n.display && pn.preencode(d, n.display),
1587 n.replyTo && c.preencode(d, n.replyTo),
1588 n.parent && c.preencode(d, n.parent))
1584 o.text && e.string.preencode(d, o.text),
1585 o.files && so.preencode(d, o.files),
1586 o.display && po.preencode(d, o.display),
1587 o.replyTo && c.preencode(d, o.replyTo),
1588 o.parent && c.preencode(d, o.parent))
15891589 },
1590 encode(d, o) {
1590 encode(d, n) {
15911591 const r =
1592 (o.text ? 1 : 0) |
1593 (o.files ? 2 : 0) |
1594 (o.display ? 4 : 0) |
1595 (o.replyTo ? 8 : 0) |
1596 (o.parent ? 16 : 0) |
1597 (n >= 18 && o.forwarded ? 32 : 0)
1592 (n.text ? 1 : 0) |
1593 (n.files ? 2 : 0) |
1594 (n.display ? 4 : 0) |
1595 (n.replyTo ? 8 : 0) |
1596 (n.parent ? 16 : 0) |
1597 (o >= 18 && n.forwarded ? 32 : 0)
15981598 ;(e.uint.encode(d, r),
1599 o.text && e.string.encode(d, o.text),
1600 o.files && sn.encode(d, o.files),
1601 o.display && pn.encode(d, o.display),
1602 o.replyTo && c.encode(d, o.replyTo),
1603 o.parent && c.encode(d, o.parent))
1599 n.text && e.string.encode(d, n.text),
1600 n.files && so.encode(d, n.files),
1601 n.display && po.encode(d, n.display),
1602 n.replyTo && c.encode(d, n.replyTo),
1603 n.parent && c.encode(d, n.parent))
16041604 },
16051605 decode(d) {
1606 const o = e.uint.decode(d)
1606 const n = e.uint.decode(d)
16071607 return {
1608 text: 1 & o ? e.string.decode(d) : null,
1609 files: 2 & o ? sn.decode(d) : null,
1610 display: 4 & o ? pn.decode(d) : null,
1611 replyTo: 8 & o ? c.decode(d) : null,
1612 parent: 16 & o ? c.decode(d) : null,
1613 forwarded: n >= 18 && !!(32 & o),
1608 text: 1 & n ? e.string.decode(d) : null,
1609 files: 2 & n ? so.decode(d) : null,
1610 display: 4 & n ? po.decode(d) : null,
1611 replyTo: 8 & n ? c.decode(d) : null,
1612 parent: 16 & n ? c.decode(d) : null,
1613 forwarded: o >= 18 && !!(32 & n),
16141614 }
16151615 },
16161616 },
1617 ln = {
1617 lo = {
16181618 preencode(e, d) {
16191619 e.end++
16201620 },
1621 encode(d, n) {
1622 const o = (n.isEdited ? 1 : 0) | (n.isDeleted ? 2 : 0) | (n.isPinned ? 4 : 0)
1623 e.uint.encode(d, o)
1621 encode(d, o) {
1622 const n = (o.isEdited ? 1 : 0) | (o.isDeleted ? 2 : 0) | (o.isPinned ? 4 : 0)
1623 e.uint.encode(d, n)
16241624 },
16251625 decode(d) {
1626 const n = e.uint.decode(d)
1627 return { isEdited: !!(1 & n), isDeleted: !!(2 & n), isPinned: !!(4 & n) }
1626 const o = e.uint.decode(d)
1627 return { isEdited: !!(1 & o), isDeleted: !!(2 & o), isPinned: !!(4 & o) }
16281628 },
16291629 },
1630 fn = {
1631 preencode(d, n) {
1632 ;(e.uint.preencode(d, n.thread), e.uint.preencode(d, n.index))
1630 fo = {
1631 preencode(d, o) {
1632 ;(e.uint.preencode(d, o.thread), e.uint.preencode(d, o.index))
16331633 },
1634 encode(d, n) {
1635 ;(e.uint.encode(d, n.thread), e.uint.encode(d, n.index))
1634 encode(d, o) {
1635 ;(e.uint.encode(d, o.thread), e.uint.encode(d, o.index))
16361636 },
16371637 decode: (d) => ({ thread: e.uint.decode(d), index: e.uint.decode(d) }),
16381638 },
1639 mn = e.frame(J),
1640 yn = {
1641 preencode(d, n) {
1642 ;(e.uint.preencode(d, n.id),
1643 e.uint.preencode(d, n.count),
1639 mo = e.frame(O),
1640 yo = {
1641 preencode(d, o) {
1642 ;(e.uint.preencode(d, o.id),
1643 e.uint.preencode(d, o.count),
16441644 d.end++,
1645 n.parent && c.preencode(d, n.parent),
1646 n.stats && mn.preencode(d, n.stats))
1645 o.parent && c.preencode(d, o.parent),
1646 o.stats && mo.preencode(d, o.stats))
16471647 },
1648 encode(d, n) {
1649 const o = (n.parent ? 1 : 0) | (n.stats ? 2 : 0)
1650 ;(e.uint.encode(d, n.id),
1651 e.uint.encode(d, n.count),
1652 e.uint.encode(d, o),
1653 n.parent && c.encode(d, n.parent),
1654 n.stats && mn.encode(d, n.stats))
1648 encode(d, o) {
1649 const n = (o.parent ? 1 : 0) | (o.stats ? 2 : 0)
1650 ;(e.uint.encode(d, o.id),
1651 e.uint.encode(d, o.count),
1652 e.uint.encode(d, n),
1653 o.parent && c.encode(d, o.parent),
1654 o.stats && mo.encode(d, o.stats))
16551655 },
16561656 decode(d) {
1657 const n = e.uint.decode(d),
1658 o = e.uint.decode(d),
1657 const o = e.uint.decode(d),
1658 n = e.uint.decode(d),
16591659 r = e.uint.decode(d)
16601660 return {
1661 id: n,
1662 count: o,
1661 id: o,
1662 count: n,
16631663 parent: 1 & r ? c.decode(d) : null,
1664 stats: 2 & r ? mn.decode(d) : null,
1664 stats: 2 & r ? mo.decode(d) : null,
16651665 }
16661666 },
16671667 },
1668 xn = e.frame(ln),
1669 bn = e.frame(an),
1670 kn = e.frame(Ld),
1671 vn = {
1672 preencode(d, n) {
1673 ;(fn.preencode(d, n.id),
1674 c.preencode(d, n.oplog),
1675 e.uint.preencode(d, n.clock),
1676 e.uint.preencode(d, n.timestamp),
1668 xo = e.frame(lo),
1669 bo = e.frame(ao),
1670 ko = e.frame(Ld),
1671 vo = {
1672 preencode(d, o) {
1673 ;(fo.preencode(d, o.id),
1674 c.preencode(d, o.oplog),
1675 e.uint.preencode(d, o.clock),
1676 e.uint.preencode(d, o.timestamp),
16771677 d.end++,
1678 n.editedAt && e.uint.preencode(d, n.editedAt),
1679 xn.preencode(d, n.status),
1680 n.message && bn.preencode(d, n.message),
1681 n.event && kn.preencode(d, n.event))
1678 o.editedAt && e.uint.preencode(d, o.editedAt),
1679 xo.preencode(d, o.status),
1680 o.message && bo.preencode(d, o.message),
1681 o.event && ko.preencode(d, o.event))
16821682 },
1683 encode(d, n) {
1684 const o = (n.editedAt ? 1 : 0) | (n.message ? 2 : 0) | (n.event ? 4 : 0)
1685 ;(fn.encode(d, n.id),
1686 c.encode(d, n.oplog),
1687 e.uint.encode(d, n.clock),
1688 e.uint.encode(d, n.timestamp),
1689 e.uint.encode(d, o),
1690 n.editedAt && e.uint.encode(d, n.editedAt),
1691 xn.encode(d, n.status),
1692 n.message && bn.encode(d, n.message),
1693 n.event && kn.encode(d, n.event))
1683 encode(d, o) {
1684 const n = (o.editedAt ? 1 : 0) | (o.message ? 2 : 0) | (o.event ? 4 : 0)
1685 ;(fo.encode(d, o.id),
1686 c.encode(d, o.oplog),
1687 e.uint.encode(d, o.clock),
1688 e.uint.encode(d, o.timestamp),
1689 e.uint.encode(d, n),
1690 o.editedAt && e.uint.encode(d, o.editedAt),
1691 xo.encode(d, o.status),
1692 o.message && bo.encode(d, o.message),
1693 o.event && ko.encode(d, o.event))
16941694 },
16951695 decode(d) {
1696 const n = fn.decode(d),
1697 o = c.decode(d),
1696 const o = fo.decode(d),
1697 n = c.decode(d),
16981698 r = e.uint.decode(d),
16991699 t = e.uint.decode(d),
17001700 i = e.uint.decode(d)
17011701 return {
1702 id: n,
1703 oplog: o,
1702 id: o,
1703 oplog: n,
17041704 clock: r,
17051705 timestamp: t,
17061706 editedAt: 1 & i ? e.uint.decode(d) : 0,
1707 status: xn.decode(d),
1708 message: 2 & i ? bn.decode(d) : null,
1709 event: 4 & i ? kn.decode(d) : null,
1707 status: xo.decode(d),
1708 message: 2 & i ? bo.decode(d) : null,
1709 event: 4 & i ? ko.decode(d) : null,
17101710 }
17111711 },
17121712 },
1713 gn = xn,
1714 hn = e.frame(un),
1715 Kn = kn,
1716 wn = {
1717 preencode(d, n) {
1718 ;(fn.preencode(d, n.id),
1719 c.preencode(d, n.oplog),
1720 e.uint.preencode(d, n.clock),
1721 e.uint.preencode(d, n.timestamp),
1713 go = xo,
1714 ho = e.frame(uo),
1715 Ko = ko,
1716 wo = {
1717 preencode(d, o) {
1718 ;(fo.preencode(d, o.id),
1719 c.preencode(d, o.oplog),
1720 e.uint.preencode(d, o.clock),
1721 e.uint.preencode(d, o.timestamp),
17221722 d.end++,
1723 n.editedAt && e.uint.preencode(d, n.editedAt),
1724 gn.preencode(d, n.status),
1725 n.message && hn.preencode(d, n.message),
1726 n.event && Kn.preencode(d, n.event))
1723 o.editedAt && e.uint.preencode(d, o.editedAt),
1724 go.preencode(d, o.status),
1725 o.message && ho.preencode(d, o.message),
1726 o.event && Ko.preencode(d, o.event))
17271727 },
1728 encode(d, n) {
1729 const o = (n.editedAt ? 1 : 0) | (n.message ? 2 : 0) | (n.event ? 4 : 0)
1730 ;(fn.encode(d, n.id),
1731 c.encode(d, n.oplog),
1732 e.uint.encode(d, n.clock),
1733 e.uint.encode(d, n.timestamp),
1734 e.uint.encode(d, o),
1735 n.editedAt && e.uint.encode(d, n.editedAt),
1736 gn.encode(d, n.status),
1737 n.message && hn.encode(d, n.message),
1738 n.event && Kn.encode(d, n.event))
1728 encode(d, o) {
1729 const n = (o.editedAt ? 1 : 0) | (o.message ? 2 : 0) | (o.event ? 4 : 0)
1730 ;(fo.encode(d, o.id),
1731 c.encode(d, o.oplog),
1732 e.uint.encode(d, o.clock),
1733 e.uint.encode(d, o.timestamp),
1734 e.uint.encode(d, n),
1735 o.editedAt && e.uint.encode(d, o.editedAt),
1736 go.encode(d, o.status),
1737 o.message && ho.encode(d, o.message),
1738 o.event && Ko.encode(d, o.event))
17391739 },
17401740 decode(d) {
1741 const n = fn.decode(d),
1742 o = c.decode(d),
1741 const o = fo.decode(d),
1742 n = c.decode(d),
17431743 r = e.uint.decode(d),
17441744 t = e.uint.decode(d),
17451745 i = e.uint.decode(d)
17461746 return {
1747 id: n,
1748 oplog: o,
1747 id: o,
1748 oplog: n,
17491749 clock: r,
17501750 timestamp: t,
17511751 editedAt: 1 & i ? e.uint.decode(d) : 0,
1752 status: gn.decode(d),
1753 message: 2 & i ? hn.decode(d) : null,
1754 event: 4 & i ? Kn.decode(d) : null,
1752 status: go.decode(d),
1753 message: 2 & i ? ho.decode(d) : null,
1754 event: 4 & i ? Ko.decode(d) : null,
17551755 }
17561756 },
17571757 },
1758 Tn = _,
1759 Pn = e.frame(cn),
1760 An = {
1758 To = _,
1759 Po = e.frame(ro),
1760 Ao = {
17611761 preencode(e, d) {
1762 ;(Tn.preencode(e, d.header), Pn.preencode(e, d.message))
1762 ;(To.preencode(e, d.header), Po.preencode(e, d.message))
17631763 },
17641764 encode(e, d) {
1765 ;(Tn.encode(e, d.header), Pn.encode(e, d.message))
1765 ;(To.encode(e, d.header), Po.encode(e, d.message))
17661766 },
1767 decode: (e) => ({ header: Tn.decode(e), message: Pn.decode(e) }),
1767 decode: (e) => ({ header: To.decode(e), message: Po.decode(e) }),
17681768 },
1769 Rn = _,
1770 Dn = {
1769 Ro = _,
1770 Do = {
17711771 preencode(e, d) {
1772 ;(Rn.preencode(e, d.header), c.preencode(e, d.oplog))
1772 ;(Ro.preencode(e, d.header), c.preencode(e, d.oplog))
17731773 },
17741774 encode(e, d) {
1775 ;(Rn.encode(e, d.header), c.encode(e, d.oplog))
1775 ;(Ro.encode(e, d.header), c.encode(e, d.oplog))
17761776 },
1777 decode: (e) => ({ header: Rn.decode(e), oplog: c.decode(e) }),
1777 decode: (e) => ({ header: Ro.decode(e), oplog: c.decode(e) }),
17781778 },
1779 Sn = _,
1780 Cn = Pn,
1781 Mn = {
1779 Mo = _,
1780 So = Po,
1781 Co = {
17821782 preencode(e, d) {
1783 ;(Sn.preencode(e, d.header), c.preencode(e, d.oplog), Cn.preencode(e, d.message))
1783 ;(Mo.preencode(e, d.header), c.preencode(e, d.oplog), So.preencode(e, d.message))
17841784 },
17851785 encode(e, d) {
1786 ;(Sn.encode(e, d.header), c.encode(e, d.oplog), Cn.encode(e, d.message))
1786 ;(Mo.encode(e, d.header), c.encode(e, d.oplog), So.encode(e, d.message))
17871787 },
1788 decode: (e) => ({ header: Sn.decode(e), oplog: c.decode(e), message: Cn.decode(e) }),
1788 decode: (e) => ({ header: Mo.decode(e), oplog: c.decode(e), message: So.decode(e) }),
17891789 },
1790 Ln = _,
1791 qn = {
1790 Lo = _,
1791 qo = {
17921792 preencode(e, d) {
1793 ;(Ln.preencode(e, d.header), c.preencode(e, d.oplog), e.end++)
1793 ;(Lo.preencode(e, d.header), c.preencode(e, d.oplog), e.end++)
17941794 },
1795 encode(d, n) {
1796 const o = n.isPinned ? 1 : 0
1797 ;(Ln.encode(d, n.header), c.encode(d, n.oplog), e.uint.encode(d, o))
1795 encode(d, o) {
1796 const n = o.isPinned ? 1 : 0
1797 ;(Lo.encode(d, o.header), c.encode(d, o.oplog), e.uint.encode(d, n))
17981798 },
17991799 decode: (d) => ({
1800 header: Ln.decode(d),
1800 header: Lo.decode(d),
18011801 oplog: c.decode(d),
18021802 isPinned: !!(1 & e.uint.decode(d)),
18031803 }),
18041804 },
1805 Fn = {
1806 preencode(d, n) {
1807 ;(fn.preencode(d, n.id),
1808 e.fixed32.preencode(d, n.sender),
1809 e.uint.preencode(d, n.clock),
1810 e.string.preencode(d, n.reaction))
1805 Fo = {
1806 preencode(d, o) {
1807 ;(fo.preencode(d, o.id),
1808 e.fixed32.preencode(d, o.sender),
1809 e.uint.preencode(d, o.clock),
1810 e.string.preencode(d, o.reaction))
18111811 },
1812 encode(d, n) {
1813 ;(fn.encode(d, n.id),
1814 e.fixed32.encode(d, n.sender),
1815 e.uint.encode(d, n.clock),
1816 e.string.encode(d, n.reaction))
1812 encode(d, o) {
1813 ;(fo.encode(d, o.id),
1814 e.fixed32.encode(d, o.sender),
1815 e.uint.encode(d, o.clock),
1816 e.string.encode(d, o.reaction))
18171817 },
18181818 decode: (d) => ({
1819 id: fn.decode(d),
1819 id: fo.decode(d),
18201820 sender: e.fixed32.decode(d),
18211821 clock: e.uint.decode(d),
18221822 reaction: e.string.decode(d),
18231823 }),
18241824 },
1825 En = {
1826 preencode(d, n) {
1827 ;(e.string.preencode(d, n.text), e.uint.preencode(d, n.count))
1825 Eo = {
1826 preencode(d, o) {
1827 ;(e.string.preencode(d, o.text), e.uint.preencode(d, o.count))
18281828 },
1829 encode(d, n) {
1830 ;(e.string.encode(d, n.text), e.uint.encode(d, n.count))
1829 encode(d, o) {
1830 ;(e.string.encode(d, o.text), e.uint.encode(d, o.count))
18311831 },
18321832 decode: (d) => ({ text: e.string.decode(d), count: e.uint.decode(d) }),
18331833 },
1834 Bn = e.array(e.frame(En)),
1835 In = {
1836 preencode(d, o) {
1837 ;(fn.preencode(d, o.id),
1838 e.uint.preencode(d, o.total),
1839 Bn.preencode(d, o.reactions),
1834 Bo = e.array(e.frame(Eo)),
1835 Io = {
1836 preencode(d, n) {
1837 ;(fo.preencode(d, n.id),
1838 e.uint.preencode(d, n.total),
1839 Bo.preencode(d, n.reactions),
18401840 d.end++,
1841 n >= 11 && o.editedAt && e.uint.preencode(d, o.editedAt))
1841 o >= 11 && n.editedAt && e.uint.preencode(d, n.editedAt))
18421842 },
1843 encode(d, o) {
1844 const c = n >= 11 && o.editedAt ? 1 : 0
1845 ;(fn.encode(d, o.id),
1846 e.uint.encode(d, o.total),
1847 Bn.encode(d, o.reactions),
1843 encode(d, n) {
1844 const c = o >= 11 && n.editedAt ? 1 : 0
1845 ;(fo.encode(d, n.id),
1846 e.uint.encode(d, n.total),
1847 Bo.encode(d, n.reactions),
18481848 e.uint.encode(d, c),
1849 n >= 11 && o.editedAt && e.uint.encode(d, o.editedAt))
1849 o >= 11 && n.editedAt && e.uint.encode(d, n.editedAt))
18501850 },
18511851 decode(d) {
1852 const o = fn.decode(d),
1852 const n = fo.decode(d),
18531853 c = e.uint.decode(d),
1854 r = Bn.decode(d),
1854 r = Bo.decode(d),
18551855 t = d.start < d.end ? e.uint.decode(d) : 0
1856 return { id: o, total: c, reactions: r, editedAt: n >= 11 && 1 & t ? e.uint.decode(d) : 0 }
1856 return { id: n, total: c, reactions: r, editedAt: o >= 11 && 1 & t ? e.uint.decode(d) : 0 }
18571857 },
18581858 },
1859 Nn = _,
1860 jn = {
1861 preencode(d, n) {
1862 ;(Nn.preencode(d, n.header), c.preencode(d, n.oplog), e.string.preencode(d, n.reaction))
1859 No = _,
1860 jo = {
1861 preencode(d, o) {
1862 ;(No.preencode(d, o.header), c.preencode(d, o.oplog), e.string.preencode(d, o.reaction))
18631863 },
1864 encode(d, n) {
1865 ;(Nn.encode(d, n.header), c.encode(d, n.oplog), e.string.encode(d, n.reaction))
1864 encode(d, o) {
1865 ;(No.encode(d, o.header), c.encode(d, o.oplog), e.string.encode(d, o.reaction))
18661866 },
1867 decode: (d) => ({ header: Nn.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
1867 decode: (d) => ({ header: No.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
18681868 },
1869 On = _,
1870 Jn = {
1871 preencode(d, n) {
1872 ;(On.preencode(d, n.header), c.preencode(d, n.oplog), e.string.preencode(d, n.reaction))
1869 Uo = _,
1870 Oo = {
1871 preencode(d, o) {
1872 ;(Uo.preencode(d, o.header), c.preencode(d, o.oplog), e.string.preencode(d, o.reaction))
18731873 },
1874 encode(d, n) {
1875 ;(On.encode(d, n.header), c.encode(d, n.oplog), e.string.encode(d, n.reaction))
1874 encode(d, o) {
1875 ;(Uo.encode(d, o.header), c.encode(d, o.oplog), e.string.encode(d, o.reaction))
18761876 },
1877 decode: (d) => ({ header: On.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
1877 decode: (d) => ({ header: Uo.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
18781878 },
1879 Un = _,
1880 Vn = e.frame(Z),
1881 Hn = {
1882 preencode(d, n) {
1883 ;(Un.preencode(d, n.header), e.uint.preencode(d, n.key), Vn.preencode(d, n.config))
1879 Jo = _,
1880 Vo = e.frame(Z),
1881 Ho = {
1882 preencode(d, o) {
1883 ;(Jo.preencode(d, o.header), e.uint.preencode(d, o.key), Vo.preencode(d, o.config))
18841884 },
1885 encode(d, n) {
1886 ;(Un.encode(d, n.header), e.uint.encode(d, n.key), Vn.encode(d, n.config))
1885 encode(d, o) {
1886 ;(Jo.encode(d, o.header), e.uint.encode(d, o.key), Vo.encode(d, o.config))
18871887 },
1888 decode: (d) => ({ header: Un.decode(d), key: e.uint.decode(d), config: Vn.decode(d) }),
1888 decode: (d) => ({ header: Jo.decode(d), key: e.uint.decode(d), config: Vo.decode(d) }),
18891889 },
1890 zn = {
1891 preencode(d, n) {
1892 ;(e.fixed32.preencode(d, n.memberKey),
1893 e.string.preencode(d, n.displayName),
1890 zo = {
1891 preencode(d, o) {
1892 ;(e.fixed32.preencode(d, o.memberKey),
1893 e.string.preencode(d, o.displayName),
18941894 d.end++,
1895 n.avatar && ct.preencode(d, n.avatar))
1895 o.avatar && tt.preencode(d, o.avatar))
18961896 },
1897 encode(d, n) {
1898 const o = n.avatar ? 1 : 0
1899 ;(e.fixed32.encode(d, n.memberKey),
1900 e.string.encode(d, n.displayName),
1901 e.uint.encode(d, o),
1902 n.avatar && ct.encode(d, n.avatar))
1897 encode(d, o) {
1898 const n = o.avatar ? 1 : 0
1899 ;(e.fixed32.encode(d, o.memberKey),
1900 e.string.encode(d, o.displayName),
1901 e.uint.encode(d, n),
1902 o.avatar && tt.encode(d, o.avatar))
19031903 },
19041904 decode: (d) => ({
19051905 memberKey: e.fixed32.decode(d),
19061906 displayName: e.string.decode(d),
1907 avatar: 1 & e.uint.decode(d) ? ct.decode(d) : null,
1907 avatar: 1 & e.uint.decode(d) ? tt.decode(d) : null,
19081908 }),
19091909 },
1910 Gn = {
1911 preencode(d, n) {
1912 ;(e.fixed32.preencode(d, n.key), d.end++, n.username && e.string.preencode(d, n.username))
1910 Go = {
1911 preencode(d, o) {
1912 ;(e.fixed32.preencode(d, o.key), d.end++, o.username && e.string.preencode(d, o.username))
19131913 },
1914 encode(d, n) {
1915 const o = n.username ? 1 : 0
1916 ;(e.fixed32.encode(d, n.key),
1917 e.uint.encode(d, o),
1918 n.username && e.string.encode(d, n.username))
1914 encode(d, o) {
1915 const n = o.username ? 1 : 0
1916 ;(e.fixed32.encode(d, o.key),
1917 e.uint.encode(d, n),
1918 o.username && e.string.encode(d, o.username))
19191919 },
19201920 decode: (d) => ({
19211921 key: e.fixed32.decode(d),
19221922 username: 1 & e.uint.decode(d) ? e.string.decode(d) : null,
19231923 }),
19241924 },
1925 Qn = e.frame(Gn),
1926 Wn = {
1927 preencode(d, n) {
1928 ;(e.fixed32.preencode(d, n.publicKey),
1925 Qo = e.frame(Go),
1926 Wo = {
1927 preencode(d, o) {
1928 ;(e.fixed32.preencode(d, o.publicKey),
19291929 d.end++,
1930 n.discoveryCoreKey && e.fixed32.preencode(d, n.discoveryCoreKey),
1931 n.userRegistry && Qn.preencode(d, n.userRegistry))
1930 o.discoveryCoreKey && e.fixed32.preencode(d, o.discoveryCoreKey),
1931 o.userRegistry && Qo.preencode(d, o.userRegistry))
19321932 },
1933 encode(d, n) {
1934 const o = (n.discoveryCoreKey ? 1 : 0) | (n.userRegistry ? 2 : 0)
1935 ;(e.fixed32.encode(d, n.publicKey),
1936 e.uint.encode(d, o),
1937 n.discoveryCoreKey && e.fixed32.encode(d, n.discoveryCoreKey),
1938 n.userRegistry && Qn.encode(d, n.userRegistry))
1933 encode(d, o) {
1934 const n = (o.discoveryCoreKey ? 1 : 0) | (o.userRegistry ? 2 : 0)
1935 ;(e.fixed32.encode(d, o.publicKey),
1936 e.uint.encode(d, n),
1937 o.discoveryCoreKey && e.fixed32.encode(d, o.discoveryCoreKey),
1938 o.userRegistry && Qo.encode(d, o.userRegistry))
19391939 },
19401940 decode(d) {
1941 const n = e.fixed32.decode(d),
1942 o = e.uint.decode(d)
1941 const o = e.fixed32.decode(d),
1942 n = e.uint.decode(d)
19431943 return {
1944 publicKey: n,
1945 discoveryCoreKey: 1 & o ? e.fixed32.decode(d) : null,
1946 userRegistry: 2 & o ? Qn.decode(d) : null,
1944 publicKey: o,
1945 discoveryCoreKey: 1 & n ? e.fixed32.decode(d) : null,
1946 userRegistry: 2 & n ? Qo.decode(d) : null,
19471947 }
19481948 },
19491949 },
1950 Xn = _,
1951 Yn = e.frame(Q),
1952 Zn = e.frame(W),
1953 $n = Vn,
1954 _n = e.frame(Wn),
1955 eo = be,
1956 no = e.array(e.frame(le)),
1957 oo = {
1950 Xo = _,
1951 Yo = e.frame(Q),
1952 Zo = e.frame(W),
1953 $o = Vo,
1954 _o = e.frame(Wo),
1955 en = be,
1956 dn = e.array(e.frame(le)),
1957 on = {
19581958 preencode(e, d) {
1959 ;(Xn.preencode(e, d.header),
1960 Yn.preencode(e, d.digest),
1961 Zn.preencode(e, d.capabilities),
1959 ;(Xo.preencode(e, d.header),
1960 Yo.preencode(e, d.digest),
1961 Zo.preencode(e, d.capabilities),
19621962 e.end++,
1963 d.config && $n.preencode(e, d.config),
1964 d.identity && _n.preencode(e, d.identity),
1965 d.bootstrapDevice && eo.preencode(e, d.bootstrapDevice),
1966 d.initialMembers && no.preencode(e, d.initialMembers))
1963 d.config && $o.preencode(e, d.config),
1964 d.identity && _o.preencode(e, d.identity),
1965 d.bootstrapDevice && en.preencode(e, d.bootstrapDevice),
1966 d.initialMembers && dn.preencode(e, d.initialMembers))
19671967 },
1968 encode(d, n) {
1969 const o =
1970 (n.config ? 1 : 0) |
1971 (n.identity ? 2 : 0) |
1972 (n.bootstrapDevice ? 4 : 0) |
1973 (n.initialMembers ? 8 : 0)
1974 ;(Xn.encode(d, n.header),
1975 Yn.encode(d, n.digest),
1976 Zn.encode(d, n.capabilities),
1977 e.uint.encode(d, o),
1978 n.config && $n.encode(d, n.config),
1979 n.identity && _n.encode(d, n.identity),
1980 n.bootstrapDevice && eo.encode(d, n.bootstrapDevice),
1981 n.initialMembers && no.encode(d, n.initialMembers))
1968 encode(d, o) {
1969 const n =
1970 (o.config ? 1 : 0) |
1971 (o.identity ? 2 : 0) |
1972 (o.bootstrapDevice ? 4 : 0) |
1973 (o.initialMembers ? 8 : 0)
1974 ;(Xo.encode(d, o.header),
1975 Yo.encode(d, o.digest),
1976 Zo.encode(d, o.capabilities),
1977 e.uint.encode(d, n),
1978 o.config && $o.encode(d, o.config),
1979 o.identity && _o.encode(d, o.identity),
1980 o.bootstrapDevice && en.encode(d, o.bootstrapDevice),
1981 o.initialMembers && dn.encode(d, o.initialMembers))
19821982 },
19831983 decode(d) {
1984 const n = Xn.decode(d),
1985 o = Yn.decode(d),
1986 c = Zn.decode(d),
1984 const o = Xo.decode(d),
1985 n = Yo.decode(d),
1986 c = Zo.decode(d),
19871987 r = e.uint.decode(d)
19881988 return {
1989 header: n,
1990 digest: o,
1989 header: o,
1990 digest: n,
19911991 capabilities: c,
1992 config: 1 & r ? $n.decode(d) : null,
1993 identity: 2 & r ? _n.decode(d) : null,
1994 bootstrapDevice: 4 & r ? eo.decode(d) : null,
1995 initialMembers: 8 & r ? no.decode(d) : null,
1992 config: 1 & r ? $o.decode(d) : null,
1993 identity: 2 & r ? _o.decode(d) : null,
1994 bootstrapDevice: 4 & r ? en.decode(d) : null,
1995 initialMembers: 8 & r ? dn.decode(d) : null,
19961996 }
19971997 },
19981998 },
1999 co = _,
2000 ro = {
2001 preencode(d, n) {
2002 ;(co.preencode(d, n.header), e.uint.preencode(d, n.version))
1999 nn = _,
2000 cn = {
2001 preencode(d, o) {
2002 ;(nn.preencode(d, o.header), e.uint.preencode(d, o.version))
20032003 },
2004 encode(d, n) {
2005 ;(co.encode(d, n.header), e.uint.encode(d, n.version))
2004 encode(d, o) {
2005 ;(nn.encode(d, o.header), e.uint.encode(d, o.version))
20062006 },
2007 decode: (d) => ({ header: co.decode(d), version: e.uint.decode(d) }),
2007 decode: (d) => ({ header: nn.decode(d), version: e.uint.decode(d) }),
20082008 },
2009 to = _,
2010 io = G,
2011 ao = {
2012 preencode(d, n) {
2013 ;(to.preencode(d, n.header), e.uint.preencode(d, n.key), io.preencode(d, n.settings))
2009 rn = _,
2010 tn = G,
2011 an = {
2012 preencode(d, o) {
2013 ;(rn.preencode(d, o.header), e.uint.preencode(d, o.key), tn.preencode(d, o.settings))
20142014 },
2015 encode(d, n) {
2016 ;(to.encode(d, n.header), e.uint.encode(d, n.key), io.encode(d, n.settings))
2015 encode(d, o) {
2016 ;(rn.encode(d, o.header), e.uint.encode(d, o.key), tn.encode(d, o.settings))
20172017 },
2018 decode: (d) => ({ header: to.decode(d), key: e.uint.decode(d), settings: io.decode(d) }),
2018 decode: (d) => ({ header: rn.decode(d), key: e.uint.decode(d), settings: tn.decode(d) }),
20192019 },
2020 so = {
2021 preencode(d, n) {
2022 ;(e.fixed32.preencode(d, n.memberKey),
2023 rt.preencode(d, n.status),
2020 sn = {
2021 preencode(d, o) {
2022 ;(e.fixed32.preencode(d, o.memberKey),
2023 it.preencode(d, o.status),
20242024 d.end++,
2025 n.mailbox && e.fixed32.preencode(d, n.mailbox),
2026 n.roomKey && e.fixed32.preencode(d, n.roomKey))
2025 o.mailbox && e.fixed32.preencode(d, o.mailbox),
2026 o.roomKey && e.fixed32.preencode(d, o.roomKey))
20272027 },
2028 encode(d, n) {
2029 const o = (n.mailbox ? 1 : 0) | (n.roomKey ? 2 : 0)
2030 ;(e.fixed32.encode(d, n.memberKey),
2031 rt.encode(d, n.status),
2032 e.uint.encode(d, o),
2033 n.mailbox && e.fixed32.encode(d, n.mailbox),
2034 n.roomKey && e.fixed32.encode(d, n.roomKey))
2028 encode(d, o) {
2029 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
2030 ;(e.fixed32.encode(d, o.memberKey),
2031 it.encode(d, o.status),
2032 e.uint.encode(d, n),
2033 o.mailbox && e.fixed32.encode(d, o.mailbox),
2034 o.roomKey && e.fixed32.encode(d, o.roomKey))
20352035 },
20362036 decode(d) {
2037 const n = e.fixed32.decode(d),
2038 o = rt.decode(d),
2037 const o = e.fixed32.decode(d),
2038 n = it.decode(d),
20392039 c = e.uint.decode(d)
20402040 return {
2041 memberKey: n,
2042 status: o,
2041 memberKey: o,
2042 status: n,
20432043 mailbox: 1 & c ? e.fixed32.decode(d) : null,
20442044 roomKey: 2 & c ? e.fixed32.decode(d) : null,
20452045 }
20462046 },
20472047 },
2048 po = {
2049 preencode(d, n) {
2050 ;(e.fixed32.preencode(d, n.roomKey),
2051 e.buffer.preencode(d, n.encryptionKey),
2052 e.fixed32.preencode(d, n.seed),
2053 o.preencode(d, n.initiator),
2054 e.fixed32.preencode(d, n.fastForwardTo))
2048 pn = {
2049 preencode(d, o) {
2050 ;(e.fixed32.preencode(d, o.roomKey),
2051 e.buffer.preencode(d, o.encryptionKey),
2052 e.fixed32.preencode(d, o.seed),
2053 n.preencode(d, o.initiator),
2054 e.fixed32.preencode(d, o.fastForwardTo))
20552055 },
2056 encode(d, n) {
2057 ;(e.fixed32.encode(d, n.roomKey),
2058 e.buffer.encode(d, n.encryptionKey),
2059 e.fixed32.encode(d, n.seed),
2060 o.encode(d, n.initiator),
2061 e.fixed32.encode(d, n.fastForwardTo))
2056 encode(d, o) {
2057 ;(e.fixed32.encode(d, o.roomKey),
2058 e.buffer.encode(d, o.encryptionKey),
2059 e.fixed32.encode(d, o.seed),
2060 n.encode(d, o.initiator),
2061 e.fixed32.encode(d, o.fastForwardTo))
20622062 },
20632063 decode: (d) => ({
20642064 roomKey: e.fixed32.decode(d),
20652065 encryptionKey: e.buffer.decode(d),
20662066 seed: e.fixed32.decode(d),
2067 initiator: o.decode(d),
2067 initiator: n.decode(d),
20682068 fastForwardTo: e.fixed32.decode(d),
20692069 }),
20702070 },
2071 uo = e.array(e.frame(po)),
2072 lo = Y,
2073 fo = {
2071 un = e.array(e.frame(pn)),
2072 ln = Y,
2073 fn = {
20742074 preencode(e, d) {
2075 ;(uo.preencode(e, d.sharedRooms), lo.preencode(e, d.blockedContacts))
2075 ;(un.preencode(e, d.sharedRooms), ln.preencode(e, d.blockedContacts))
20762076 },
20772077 encode(e, d) {
2078 ;(uo.encode(e, d.sharedRooms), lo.encode(e, d.blockedContacts))
2078 ;(un.encode(e, d.sharedRooms), ln.encode(e, d.blockedContacts))
20792079 },
2080 decode: (e) => ({ sharedRooms: uo.decode(e), blockedContacts: lo.decode(e) }),
2080 decode: (e) => ({ sharedRooms: un.decode(e), blockedContacts: ln.decode(e) }),
20812081 },
2082 mo = _n,
2083 yo = {
2082 mn = _o,
2083 yn = {
20842084 preencode(e, d) {
2085 mo.preencode(e, d.identity)
2085 mn.preencode(e, d.identity)
20862086 },
20872087 encode(e, d) {
2088 mo.encode(e, d.identity)
2088 mn.encode(e, d.identity)
20892089 },
2090 decode: (e) => ({ identity: mo.decode(e) }),
2090 decode: (e) => ({ identity: mn.decode(e) }),
20912091 },
2092 xo = {
2093 preencode(d, n) {
2094 ;(e.uint.preencode(d, n.rooms), e.uint.preencode(d, n.contacts))
2092 xn = {
2093 preencode(d, o) {
2094 ;(e.uint.preencode(d, o.rooms), e.uint.preencode(d, o.contacts))
20952095 },
2096 encode(d, n) {
2097 ;(e.uint.encode(d, n.rooms), e.uint.encode(d, n.contacts))
2096 encode(d, o) {
2097 ;(e.uint.encode(d, o.rooms), e.uint.encode(d, o.contacts))
20982098 },
20992099 decode: (d) => ({ rooms: e.uint.decode(d), contacts: e.uint.decode(d) }),
21002100 },
2101 bo = {
2102 preencode(d, n) {
2103 ;(e.uint.preencode(d, n.rooms), e.uint.preencode(d, n.contactRequests))
2101 bn = {
2102 preencode(d, o) {
2103 ;(e.uint.preencode(d, o.rooms), e.uint.preencode(d, o.contactRequests))
21042104 },
2105 encode(d, n) {
2106 ;(e.uint.encode(d, n.rooms), e.uint.encode(d, n.contactRequests))
2105 encode(d, o) {
2106 ;(e.uint.encode(d, o.rooms), e.uint.encode(d, o.contactRequests))
21072107 },
21082108 decode: (d) => ({ rooms: e.uint.decode(d), contactRequests: e.uint.decode(d) }),
21092109 },
2110 ko = {
2111 preencode(d, n) {
2112 e.buffer.preencode(d, n.entropy)
2110 kn = {
2111 preencode(d, o) {
2112 e.buffer.preencode(d, o.entropy)
21132113 },
2114 encode(d, n) {
2115 e.buffer.encode(d, n.entropy)
2114 encode(d, o) {
2115 e.buffer.encode(d, o.entropy)
21162116 },
21172117 decode: (d) => ({ entropy: e.buffer.decode(d) }),
21182118 },
2119 vo = {
2120 preencode(d, n) {
2121 ;(e.fixed32.preencode(d, n.publicKey),
2122 e.fixed32.preencode(d, n.devicePublicKey),
2123 e.fixed32.preencode(d, n.writerKey))
2119 vn = {
2120 preencode(d, o) {
2121 ;(e.fixed32.preencode(d, o.publicKey),
2122 e.fixed32.preencode(d, o.devicePublicKey),
2123 e.fixed32.preencode(d, o.writerKey))
21242124 },
2125 encode(d, n) {
2126 ;(e.fixed32.encode(d, n.publicKey),
2127 e.fixed32.encode(d, n.devicePublicKey),
2128 e.fixed32.encode(d, n.writerKey))
2125 encode(d, o) {
2126 ;(e.fixed32.encode(d, o.publicKey),
2127 e.fixed32.encode(d, o.devicePublicKey),
2128 e.fixed32.encode(d, o.writerKey))
21292129 },
21302130 decode: (d) => ({
21312131 publicKey: e.fixed32.decode(d),
……@@ -2133,38 +2133,38 @@ const o = {
21332133 writerKey: e.fixed32.decode(d),
21342134 }),
21352135 },
2136 go = e.frame(vo),
2137 ho = {
2136 gn = e.frame(vn),
2137 hn = {
21382138 preencode(d, c) {
21392139 ;(e.fixed32.preencode(d, c.id),
21402140 e.fixed32.preencode(d, c.invitationSeed),
21412141 e.fixed32.preencode(d, c.mailbox),
21422142 t.preencode(d, c.responseKeyPair),
2143 o.preencode(d, c.initiator),
2144 o.preencode(d, c.inviter),
2143 n.preencode(d, c.initiator),
2144 n.preencode(d, c.inviter),
21452145 d.end++,
2146 c.identity && go.preencode(d, c.identity),
2147 n >= 20 && c.buildType && Or.preencode(d, c.buildType))
2146 c.identity && gn.preencode(d, c.identity),
2147 o >= 20 && c.buildType && Ur.preencode(d, c.buildType))
21482148 },
21492149 encode(d, c) {
2150 const r = (c.identity ? 1 : 0) | (n >= 20 && c.buildType ? 2 : 0)
2150 const r = (c.identity ? 1 : 0) | (o >= 20 && c.buildType ? 2 : 0)
21512151 ;(e.fixed32.encode(d, c.id),
21522152 e.fixed32.encode(d, c.invitationSeed),
21532153 e.fixed32.encode(d, c.mailbox),
21542154 t.encode(d, c.responseKeyPair),
2155 o.encode(d, c.initiator),
2156 o.encode(d, c.inviter),
2155 n.encode(d, c.initiator),
2156 n.encode(d, c.inviter),
21572157 e.uint.encode(d, r),
2158 c.identity && go.encode(d, c.identity),
2159 n >= 20 && c.buildType && Or.encode(d, c.buildType))
2158 c.identity && gn.encode(d, c.identity),
2159 o >= 20 && c.buildType && Ur.encode(d, c.buildType))
21602160 },
21612161 decode(d) {
21622162 const c = e.fixed32.decode(d),
21632163 r = e.fixed32.decode(d),
21642164 i = e.fixed32.decode(d),
21652165 a = t.decode(d),
2166 s = o.decode(d),
2167 p = o.decode(d),
2166 s = n.decode(d),
2167 p = n.decode(d),
21682168 u = e.uint.decode(d)
21692169 return {
21702170 id: c,
……@@ -2173,138 +2173,140 @@ const o = {
21732173 responseKeyPair: a,
21742174 initiator: s,
21752175 inviter: p,
2176 identity: 1 & u ? go.decode(d) : null,
2177 buildType: n >= 20 && 2 & u ? Or.decode(d) : null,
2176 identity: 1 & u ? gn.decode(d) : null,
2177 buildType: o >= 20 && 2 & u ? Ur.decode(d) : null,
21782178 }
21792179 },
21802180 },
2181 Ko = _,
2182 wo = {
2183 preencode(d, n) {
2184 ;(Ko.preencode(d, n.header), e.buffer.preencode(d, n.blindResponse))
2181 Kn = _,
2182 wn = {
2183 preencode(d, o) {
2184 ;(Kn.preencode(d, o.header), e.buffer.preencode(d, o.blindResponse))
21852185 },
2186 encode(d, n) {
2187 ;(Ko.encode(d, n.header), e.buffer.encode(d, n.blindResponse))
2186 encode(d, o) {
2187 ;(Kn.encode(d, o.header), e.buffer.encode(d, o.blindResponse))
21882188 },
2189 decode: (d) => ({ header: Ko.decode(d), blindResponse: e.buffer.decode(d) }),
2189 decode: (d) => ({ header: Kn.decode(d), blindResponse: e.buffer.decode(d) }),
21902190 },
2191 To = _,
2192 Po = e.frame(ho),
2193 Ao = {
2191 Tn = _,
2192 Pn = e.frame(hn),
2193 An = {
21942194 preencode(e, d) {
2195 ;(To.preencode(e, d.header), Po.preencode(e, d.invitation))
2195 ;(Tn.preencode(e, d.header), Pn.preencode(e, d.invitation))
21962196 },
21972197 encode(e, d) {
2198 ;(To.encode(e, d.header), Po.encode(e, d.invitation))
2198 ;(Tn.encode(e, d.header), Pn.encode(e, d.invitation))
21992199 },
2200 decode: (e) => ({ header: To.decode(e), invitation: Po.decode(e) }),
2200 decode: (e) => ({ header: Tn.decode(e), invitation: Pn.decode(e) }),
22012201 },
2202 Ro = _,
2203 Do = {
2204 preencode(d, n) {
2205 ;(Ro.preencode(d, n.header), e.fixed32.preencode(d, n.id))
2202 Rn = _,
2203 Dn = {
2204 preencode(d, o) {
2205 ;(Rn.preencode(d, o.header), e.fixed32.preencode(d, o.id))
22062206 },
2207 encode(d, n) {
2208 ;(Ro.encode(d, n.header), e.fixed32.encode(d, n.id))
2207 encode(d, o) {
2208 ;(Rn.encode(d, o.header), e.fixed32.encode(d, o.id))
22092209 },
2210 decode: (d) => ({ header: Ro.decode(d), id: e.fixed32.decode(d) }),
2210 decode: (d) => ({ header: Rn.decode(d), id: e.fixed32.decode(d) }),
22112211 },
2212 So = {
2213 preencode(d, n) {
2214 ;(e.fixed32.preencode(d, n.publicKey),
2215 e.fixed32.preencode(d, n.devicePublicKey),
2212 Mn = {
2213 preencode(d, o) {
2214 ;(e.fixed32.preencode(d, o.publicKey),
2215 e.fixed32.preencode(d, o.devicePublicKey),
22162216 d.end++,
2217 n.privateProfileKey && e.fixed32.preencode(d, n.privateProfileKey),
2218 n.deviceKeyPair && t.preencode(d, n.deviceKeyPair),
2219 e.buffer.preencode(d, n.deviceProof))
2217 o.privateProfileKey && e.fixed32.preencode(d, o.privateProfileKey),
2218 o.deviceKeyPair && t.preencode(d, o.deviceKeyPair),
2219 e.buffer.preencode(d, o.deviceProof))
22202220 },
2221 encode(d, n) {
2222 const o = (n.privateProfileKey ? 1 : 0) | (n.deviceKeyPair ? 2 : 0)
2223 ;(e.fixed32.encode(d, n.publicKey),
2224 e.fixed32.encode(d, n.devicePublicKey),
2225 e.uint.encode(d, o),
2226 n.privateProfileKey && e.fixed32.encode(d, n.privateProfileKey),
2227 n.deviceKeyPair && t.encode(d, n.deviceKeyPair),
2228 e.buffer.encode(d, n.deviceProof))
2221 encode(d, o) {
2222 const n = (o.privateProfileKey ? 1 : 0) | (o.deviceKeyPair ? 2 : 0)
2223 ;(e.fixed32.encode(d, o.publicKey),
2224 e.fixed32.encode(d, o.devicePublicKey),
2225 e.uint.encode(d, n),
2226 o.privateProfileKey && e.fixed32.encode(d, o.privateProfileKey),
2227 o.deviceKeyPair && t.encode(d, o.deviceKeyPair),
2228 e.buffer.encode(d, o.deviceProof))
22292229 },
22302230 decode(d) {
2231 const n = e.fixed32.decode(d),
2232 o = e.fixed32.decode(d),
2231 const o = e.fixed32.decode(d),
2232 n = e.fixed32.decode(d),
22332233 c = e.uint.decode(d)
22342234 return {
2235 publicKey: n,
2236 devicePublicKey: o,
2235 publicKey: o,
2236 devicePublicKey: n,
22372237 privateProfileKey: 1 & c ? e.fixed32.decode(d) : null,
22382238 deviceKeyPair: 2 & c ? t.decode(d) : null,
22392239 deviceProof: e.buffer.decode(d),
22402240 }
22412241 },
22422242 },
2243 Co = {
2243 Sn = {
22442244 preencode(e, d) {
22452245 e.end++
22462246 },
2247 encode(d, o) {
2247 encode(d, n) {
22482248 const c =
2249 (o.isActive ? 1 : 0) |
2250 (o.isFullyMuted ? 2 : 0) |
2251 (o.isMentionsOnlyMuted ? 4 : 0) |
2252 (n >= 9 && o.isReadOnly ? 8 : 0) |
2253 (n >= 18 && o.isFavorite ? 16 : 0)
2249 (n.isActive ? 1 : 0) |
2250 (n.isFullyMuted ? 2 : 0) |
2251 (n.isMentionsOnlyMuted ? 4 : 0) |
2252 (o >= 9 && n.isReadOnly ? 8 : 0) |
2253 (o >= 18 && n.isFavorite ? 16 : 0) |
2254 (o >= 21 && n.isUnread ? 32 : 0)
22542255 e.uint.encode(d, c)
22552256 },
22562257 decode(d) {
2257 const o = e.uint.decode(d)
2258 const n = e.uint.decode(d)
22582259 return {
2259 isActive: !!(1 & o),
2260 isFullyMuted: !!(2 & o),
2261 isMentionsOnlyMuted: !!(4 & o),
2262 isReadOnly: n >= 9 && !!(8 & o),
2263 isFavorite: n >= 18 && !!(16 & o),
2260 isActive: !!(1 & n),
2261 isFullyMuted: !!(2 & n),
2262 isMentionsOnlyMuted: !!(4 & n),
2263 isReadOnly: o >= 9 && !!(8 & n),
2264 isFavorite: o >= 18 && !!(16 & n),
2265 isUnread: o >= 21 && !!(32 & n),
22642266 }
22652267 },
22662268 },
2267 Mo = e.frame(Co),
2268 Lo = e.frame(So),
2269 qo = go,
2270 Fo = {
2269 Cn = e.frame(Sn),
2270 Ln = e.frame(Mn),
2271 qn = gn,
2272 Fn = {
22712273 preencode(d, c) {
22722274 ;(e.fixed32.preencode(d, c.roomKey),
22732275 e.buffer.preencode(d, c.encryptionKey),
22742276 e.fixed32.preencode(d, c.mailbox),
2275 Mo.preencode(d, c.status),
2277 Cn.preencode(d, c.status),
22762278 e.uint.preencode(d, c.clock),
22772279 d.end++,
2278 c.initiator && o.preencode(d, c.initiator),
2280 c.initiator && n.preencode(d, c.initiator),
22792281 c.fastForwardTo && e.fixed32.preencode(d, c.fastForwardTo),
2280 c.identitySwap && Lo.preencode(d, c.identitySwap),
2281 n >= 6 && c.identitySwapV2 && qo.preencode(d, c.identitySwapV2),
2282 n >= 10 && c.contact && e.fixed32.preencode(d, c.contact))
2282 c.identitySwap && Ln.preencode(d, c.identitySwap),
2283 o >= 6 && c.identitySwapV2 && qn.preencode(d, c.identitySwapV2),
2284 o >= 10 && c.contact && e.fixed32.preencode(d, c.contact))
22832285 },
22842286 encode(d, c) {
22852287 const r =
22862288 (c.initiator ? 1 : 0) |
22872289 (c.fastForwardTo ? 2 : 0) |
22882290 (c.identitySwap ? 4 : 0) |
2289 (n >= 6 && c.identitySwapV2 ? 8 : 0) |
2290 (n >= 10 && c.contact ? 16 : 0)
2291 (o >= 6 && c.identitySwapV2 ? 8 : 0) |
2292 (o >= 10 && c.contact ? 16 : 0)
22912293 ;(e.fixed32.encode(d, c.roomKey),
22922294 e.buffer.encode(d, c.encryptionKey),
22932295 e.fixed32.encode(d, c.mailbox),
2294 Mo.encode(d, c.status),
2296 Cn.encode(d, c.status),
22952297 e.uint.encode(d, c.clock),
22962298 e.uint.encode(d, r),
2297 c.initiator && o.encode(d, c.initiator),
2299 c.initiator && n.encode(d, c.initiator),
22982300 c.fastForwardTo && e.fixed32.encode(d, c.fastForwardTo),
2299 c.identitySwap && Lo.encode(d, c.identitySwap),
2300 n >= 6 && c.identitySwapV2 && qo.encode(d, c.identitySwapV2),
2301 n >= 10 && c.contact && e.fixed32.encode(d, c.contact))
2301 c.identitySwap && Ln.encode(d, c.identitySwap),
2302 o >= 6 && c.identitySwapV2 && qn.encode(d, c.identitySwapV2),
2303 o >= 10 && c.contact && e.fixed32.encode(d, c.contact))
23022304 },
23032305 decode(d) {
23042306 const c = e.fixed32.decode(d),
23052307 r = e.buffer.decode(d),
23062308 t = e.fixed32.decode(d),
2307 i = Mo.decode(d),
2309 i = Cn.decode(d),
23082310 a = e.uint.decode(d),
23092311 s = e.uint.decode(d)
23102312 return {
……@@ -2313,43 +2315,43 @@ const o = {
23132315 mailbox: t,
23142316 status: i,
23152317 clock: a,
2316 initiator: 1 & s ? o.decode(d) : null,
2318 initiator: 1 & s ? n.decode(d) : null,
23172319 fastForwardTo: 2 & s ? e.fixed32.decode(d) : null,
2318 identitySwap: 4 & s ? Lo.decode(d) : null,
2319 identitySwapV2: n >= 6 && 8 & s ? qo.decode(d) : null,
2320 contact: n >= 10 && 16 & s ? e.fixed32.decode(d) : null,
2320 identitySwap: 4 & s ? Ln.decode(d) : null,
2321 identitySwapV2: o >= 6 && 8 & s ? qn.decode(d) : null,
2322 contact: o >= 10 && 16 & s ? e.fixed32.decode(d) : null,
23212323 }
2322 },
2323 },
2324 Eo = _,
2325 Bo = {
2326 preencode(d, n) {
2327 ;(Eo.preencode(d, n.header),
2328 e.fixed32.preencode(d, n.roomKey),
2329 e.buffer.preencode(d, n.encryptionKey),
2330 e.fixed32.preencode(d, n.mailbox),
2324 },
2325 },
2326 En = _,
2327 Bn = {
2328 preencode(d, o) {
2329 ;(En.preencode(d, o.header),
2330 e.fixed32.preencode(d, o.roomKey),
2331 e.buffer.preencode(d, o.encryptionKey),
2332 e.fixed32.preencode(d, o.mailbox),
23312333 d.end++,
2332 n.fastForwardTo && e.fixed32.preencode(d, n.fastForwardTo),
2333 n.initiator && o.preencode(d, n.initiator),
2334 n.dm && e.fixed32.preencode(d, n.dm))
2334 o.fastForwardTo && e.fixed32.preencode(d, o.fastForwardTo),
2335 o.initiator && n.preencode(d, o.initiator),
2336 o.dm && e.fixed32.preencode(d, o.dm))
23352337 },
23362338 encode(d, c) {
23372339 const r =
23382340 (c.fastForwardTo ? 1 : 0) |
23392341 (c.initiator ? 2 : 0) |
23402342 (c.dm ? 4 : 0) |
2341 (n >= 9 && c.isReadOnly ? 8 : 0)
2342 ;(Eo.encode(d, c.header),
2343 (o >= 9 && c.isReadOnly ? 8 : 0)
2344 ;(En.encode(d, c.header),
23432345 e.fixed32.encode(d, c.roomKey),
23442346 e.buffer.encode(d, c.encryptionKey),
23452347 e.fixed32.encode(d, c.mailbox),
23462348 e.uint.encode(d, r),
23472349 c.fastForwardTo && e.fixed32.encode(d, c.fastForwardTo),
2348 c.initiator && o.encode(d, c.initiator),
2350 c.initiator && n.encode(d, c.initiator),
23492351 c.dm && e.fixed32.encode(d, c.dm))
23502352 },
23512353 decode(d) {
2352 const c = Eo.decode(d),
2354 const c = En.decode(d),
23532355 r = e.fixed32.decode(d),
23542356 t = e.buffer.decode(d),
23552357 i = e.fixed32.decode(d),
……@@ -2360,179 +2362,179 @@ const o = {
23602362 encryptionKey: t,
23612363 mailbox: i,
23622364 fastForwardTo: 1 & a ? e.fixed32.decode(d) : null,
2363 initiator: 2 & a ? o.decode(d) : null,
2365 initiator: 2 & a ? n.decode(d) : null,
23642366 dm: 4 & a ? e.fixed32.decode(d) : null,
2365 isReadOnly: n >= 9 && !!(8 & a),
2367 isReadOnly: o >= 9 && !!(8 & a),
23662368 }
23672369 },
23682370 },
2369 Io = _,
2370 No = {
2371 preencode(d, n) {
2372 ;(Io.preencode(d, n.header), e.fixed32.preencode(d, n.discoveryKey))
2371 In = _,
2372 Nn = {
2373 preencode(d, o) {
2374 ;(In.preencode(d, o.header), e.fixed32.preencode(d, o.discoveryKey))
23732375 },
2374 encode(d, n) {
2375 ;(Io.encode(d, n.header), e.fixed32.encode(d, n.discoveryKey))
2376 encode(d, o) {
2377 ;(In.encode(d, o.header), e.fixed32.encode(d, o.discoveryKey))
23762378 },
2377 decode: (d) => ({ header: Io.decode(d), discoveryKey: e.fixed32.decode(d) }),
2379 decode: (d) => ({ header: In.decode(d), discoveryKey: e.fixed32.decode(d) }),
23782380 },
2379 jo = _,
2380 Oo = Mo,
2381 Jo = {
2382 preencode(d, n) {
2383 ;(jo.preencode(d, n.header),
2384 e.fixed32.preencode(d, n.roomKey),
2385 e.uint.preencode(d, n.key),
2386 Oo.preencode(d, n.status))
2381 jn = _,
2382 Un = Cn,
2383 On = {
2384 preencode(d, o) {
2385 ;(jn.preencode(d, o.header),
2386 e.fixed32.preencode(d, o.roomKey),
2387 e.uint.preencode(d, o.key),
2388 Un.preencode(d, o.status))
23872389 },
2388 encode(d, n) {
2389 ;(jo.encode(d, n.header),
2390 e.fixed32.encode(d, n.roomKey),
2391 e.uint.encode(d, n.key),
2392 Oo.encode(d, n.status))
2390 encode(d, o) {
2391 ;(jn.encode(d, o.header),
2392 e.fixed32.encode(d, o.roomKey),
2393 e.uint.encode(d, o.key),
2394 Un.encode(d, o.status))
23932395 },
23942396 decode: (d) => ({
2395 header: jo.decode(d),
2397 header: jn.decode(d),
23962398 roomKey: e.fixed32.decode(d),
23972399 key: e.uint.decode(d),
2398 status: Oo.decode(d),
2400 status: Un.decode(d),
23992401 }),
24002402 },
2401 Uo = {
2403 Jn = {
24022404 preencode(e, d) {
24032405 e.end++
24042406 },
2405 encode(d, n) {
2406 const o = n.isBlocked ? 1 : 0
2407 e.uint.encode(d, o)
2407 encode(d, o) {
2408 const n = o.isBlocked ? 1 : 0
2409 e.uint.encode(d, n)
24082410 },
24092411 decode: (d) => ({ isBlocked: !!(1 & e.uint.decode(d)) }),
24102412 },
2411 Vo = {
2412 preencode(d, n) {
2413 ;(e.fixed32.preencode(d, n.memberKey),
2414 e.uint.preencode(d, n.clock),
2415 tt.preencode(d, n.status),
2413 Vn = {
2414 preencode(d, o) {
2415 ;(e.fixed32.preencode(d, o.memberKey),
2416 e.uint.preencode(d, o.clock),
2417 at.preencode(d, o.status),
24162418 d.end++,
2417 n.mailbox && e.fixed32.preencode(d, n.mailbox),
2418 n.roomKey && e.fixed32.preencode(d, n.roomKey))
2419 o.mailbox && e.fixed32.preencode(d, o.mailbox),
2420 o.roomKey && e.fixed32.preencode(d, o.roomKey))
24192421 },
2420 encode(d, n) {
2421 const o = (n.mailbox ? 1 : 0) | (n.roomKey ? 2 : 0)
2422 ;(e.fixed32.encode(d, n.memberKey),
2423 e.uint.encode(d, n.clock),
2424 tt.encode(d, n.status),
2425 e.uint.encode(d, o),
2426 n.mailbox && e.fixed32.encode(d, n.mailbox),
2427 n.roomKey && e.fixed32.encode(d, n.roomKey))
2422 encode(d, o) {
2423 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
2424 ;(e.fixed32.encode(d, o.memberKey),
2425 e.uint.encode(d, o.clock),
2426 at.encode(d, o.status),
2427 e.uint.encode(d, n),
2428 o.mailbox && e.fixed32.encode(d, o.mailbox),
2429 o.roomKey && e.fixed32.encode(d, o.roomKey))
24282430 },
24292431 decode(d) {
2430 const n = e.fixed32.decode(d),
2431 o = e.uint.decode(d),
2432 c = tt.decode(d),
2432 const o = e.fixed32.decode(d),
2433 n = e.uint.decode(d),
2434 c = at.decode(d),
24332435 r = e.uint.decode(d)
24342436 return {
2435 memberKey: n,
2436 clock: o,
2437 memberKey: o,
2438 clock: n,
24372439 status: c,
24382440 mailbox: 1 & r ? e.fixed32.decode(d) : null,
24392441 roomKey: 2 & r ? e.fixed32.decode(d) : null,
24402442 }
24412443 },
24422444 },
2443 Ho = _,
2444 zo = e.frame(so),
2445 Go = {
2445 Hn = _,
2446 zn = e.frame(sn),
2447 Gn = {
24462448 preencode(e, d) {
2447 ;(Ho.preencode(e, d.header), zo.preencode(e, d.contact))
2449 ;(Hn.preencode(e, d.header), zn.preencode(e, d.contact))
24482450 },
24492451 encode(e, d) {
2450 ;(Ho.encode(e, d.header), zo.encode(e, d.contact))
2452 ;(Hn.encode(e, d.header), zn.encode(e, d.contact))
24512453 },
2452 decode: (e) => ({ header: Ho.decode(e), contact: zo.decode(e) }),
2454 decode: (e) => ({ header: Hn.decode(e), contact: zn.decode(e) }),
24532455 },
2454 Qo = _,
2455 Wo = {
2456 preencode(d, n) {
2457 ;(Qo.preencode(d, n.header),
2458 e.fixed32.preencode(d, n.memberKey),
2459 e.uint.preencode(d, n.key),
2460 it.preencode(d, n.status))
2456 Qn = _,
2457 Wn = {
2458 preencode(d, o) {
2459 ;(Qn.preencode(d, o.header),
2460 e.fixed32.preencode(d, o.memberKey),
2461 e.uint.preencode(d, o.key),
2462 st.preencode(d, o.status))
24612463 },
2462 encode(d, n) {
2463 ;(Qo.encode(d, n.header),
2464 e.fixed32.encode(d, n.memberKey),
2465 e.uint.encode(d, n.key),
2466 it.encode(d, n.status))
2464 encode(d, o) {
2465 ;(Qn.encode(d, o.header),
2466 e.fixed32.encode(d, o.memberKey),
2467 e.uint.encode(d, o.key),
2468 st.encode(d, o.status))
24672469 },
24682470 decode: (d) => ({
2469 header: Qo.decode(d),
2471 header: Qn.decode(d),
24702472 memberKey: e.fixed32.decode(d),
24712473 key: e.uint.decode(d),
2472 status: it.decode(d),
2474 status: st.decode(d),
24732475 }),
24742476 },
2475 Xo = _,
2476 Yo = {
2477 preencode(d, n) {
2478 ;(Xo.preencode(d, n.header), e.fixed32.preencode(d, n.memberKey))
2477 Xn = _,
2478 Yn = {
2479 preencode(d, o) {
2480 ;(Xn.preencode(d, o.header), e.fixed32.preencode(d, o.memberKey))
24792481 },
2480 encode(d, n) {
2481 ;(Xo.encode(d, n.header), e.fixed32.encode(d, n.memberKey))
2482 encode(d, o) {
2483 ;(Xn.encode(d, o.header), e.fixed32.encode(d, o.memberKey))
24822484 },
2483 decode: (d) => ({ header: Xo.decode(d), memberKey: e.fixed32.decode(d) }),
2485 decode: (d) => ({ header: Xn.decode(d), memberKey: e.fixed32.decode(d) }),
24842486 },
2485 Zo = {
2487 Zn = {
24862488 preencode(e, d) {
24872489 e.end++
24882490 },
2489 encode(d, n) {
2490 const o =
2491 (n.isPending ? 1 : 0) |
2492 (n.isAccepted ? 2 : 0) |
2493 (n.isRejected ? 4 : 0) |
2494 (n.isDiscarded ? 8 : 0) |
2495 (n.isSeen ? 16 : 0)
2496 e.uint.encode(d, o)
2491 encode(d, o) {
2492 const n =
2493 (o.isPending ? 1 : 0) |
2494 (o.isAccepted ? 2 : 0) |
2495 (o.isRejected ? 4 : 0) |
2496 (o.isDiscarded ? 8 : 0) |
2497 (o.isSeen ? 16 : 0)
2498 e.uint.encode(d, n)
24972499 },
24982500 decode(d) {
2499 const n = e.uint.decode(d)
2501 const o = e.uint.decode(d)
25002502 return {
2501 isPending: !!(1 & n),
2502 isAccepted: !!(2 & n),
2503 isRejected: !!(4 & n),
2504 isDiscarded: !!(8 & n),
2505 isSeen: !!(16 & n),
2503 isPending: !!(1 & o),
2504 isAccepted: !!(2 & o),
2505 isRejected: !!(4 & o),
2506 isDiscarded: !!(8 & o),
2507 isSeen: !!(16 & o),
25062508 }
25072509 },
25082510 },
2509 $o = ke,
2510 _o = e.frame(i),
2511 $n = ke,
2512 _n = e.frame(i),
25112513 ec = {
2512 preencode(d, n) {
2513 ;($o.preencode(d, n.sender),
2514 _o.preencode(d, n.keys),
2515 e.fixed32.preencode(d, n.mailbox),
2514 preencode(d, o) {
2515 ;($n.preencode(d, o.sender),
2516 _n.preencode(d, o.keys),
2517 e.fixed32.preencode(d, o.mailbox),
25162518 d.end++,
2517 n.message && e.string.preencode(d, n.message))
2519 o.message && e.string.preencode(d, o.message))
25182520 },
2519 encode(d, n) {
2520 const o = n.message ? 1 : 0
2521 ;($o.encode(d, n.sender),
2522 _o.encode(d, n.keys),
2523 e.fixed32.encode(d, n.mailbox),
2524 e.uint.encode(d, o),
2525 n.message && e.string.encode(d, n.message))
2521 encode(d, o) {
2522 const n = o.message ? 1 : 0
2523 ;($n.encode(d, o.sender),
2524 _n.encode(d, o.keys),
2525 e.fixed32.encode(d, o.mailbox),
2526 e.uint.encode(d, n),
2527 o.message && e.string.encode(d, o.message))
25262528 },
25272529 decode: (d) => ({
2528 sender: $o.decode(d),
2529 keys: _o.decode(d),
2530 sender: $n.decode(d),
2531 keys: _n.decode(d),
25302532 mailbox: e.fixed32.decode(d),
25312533 message: 1 & e.uint.decode(d) ? e.string.decode(d) : null,
25322534 }),
25332535 },
25342536 dc = e.frame(ec),
2535 nc = {
2537 oc = {
25362538 preencode(e, d) {
25372539 ;(dc.preencode(e, d.body), ce.preencode(e, d.attestation))
25382540 },
……@@ -2541,106 +2543,106 @@ const o = {
25412543 },
25422544 decode: (e) => ({ body: dc.decode(e), attestation: ce.decode(e) }),
25432545 },
2544 oc = ue,
2545 cc = e.frame(Zo),
2546 rc = _o,
2546 nc = ue,
2547 cc = e.frame(Zn),
2548 rc = _n,
25472549 tc = {
2548 preencode(d, o) {
2549 ;(e.fixed32.preencode(d, o.memberKey),
2550 e.uint.preencode(d, o.clock),
2551 oc.preencode(d, o.sender),
2552 cc.preencode(d, o.status),
2553 rc.preencode(d, o.keys),
2554 e.fixed32.preencode(d, o.mailbox),
2550 preencode(d, n) {
2551 ;(e.fixed32.preencode(d, n.memberKey),
2552 e.uint.preencode(d, n.clock),
2553 nc.preencode(d, n.sender),
2554 cc.preencode(d, n.status),
2555 rc.preencode(d, n.keys),
2556 e.fixed32.preencode(d, n.mailbox),
25552557 d.end++,
2556 o.message && e.string.preencode(d, o.message),
2557 n >= 11 && o.sentAt && e.uint.preencode(d, o.sentAt))
2558 n.message && e.string.preencode(d, n.message),
2559 o >= 11 && n.sentAt && e.uint.preencode(d, n.sentAt))
25582560 },
2559 encode(d, o) {
2560 const c = (o.message ? 1 : 0) | (n >= 11 && o.sentAt ? 2 : 0)
2561 ;(e.fixed32.encode(d, o.memberKey),
2562 e.uint.encode(d, o.clock),
2563 oc.encode(d, o.sender),
2564 cc.encode(d, o.status),
2565 rc.encode(d, o.keys),
2566 e.fixed32.encode(d, o.mailbox),
2561 encode(d, n) {
2562 const c = (n.message ? 1 : 0) | (o >= 11 && n.sentAt ? 2 : 0)
2563 ;(e.fixed32.encode(d, n.memberKey),
2564 e.uint.encode(d, n.clock),
2565 nc.encode(d, n.sender),
2566 cc.encode(d, n.status),
2567 rc.encode(d, n.keys),
2568 e.fixed32.encode(d, n.mailbox),
25672569 e.uint.encode(d, c),
2568 o.message && e.string.encode(d, o.message),
2569 n >= 11 && o.sentAt && e.uint.encode(d, o.sentAt))
2570 n.message && e.string.encode(d, n.message),
2571 o >= 11 && n.sentAt && e.uint.encode(d, n.sentAt))
25702572 },
25712573 decode(d) {
2572 const o = e.fixed32.decode(d),
2574 const n = e.fixed32.decode(d),
25732575 c = e.uint.decode(d),
2574 r = oc.decode(d),
2576 r = nc.decode(d),
25752577 t = cc.decode(d),
25762578 i = rc.decode(d),
25772579 a = e.fixed32.decode(d),
25782580 s = e.uint.decode(d)
25792581 return {
2580 memberKey: o,
2582 memberKey: n,
25812583 clock: c,
25822584 sender: r,
25832585 status: t,
25842586 keys: i,
25852587 mailbox: a,
25862588 message: 1 & s ? e.string.decode(d) : null,
2587 sentAt: n >= 11 && 2 & s ? e.uint.decode(d) : 0,
2589 sentAt: o >= 11 && 2 & s ? e.uint.decode(d) : 0,
25882590 }
25892591 },
25902592 },
25912593 ic = _,
25922594 ac = {
2593 preencode(d, n) {
2594 ;(ic.preencode(d, n.header), e.buffer.preencode(d, n.blindRequest))
2595 preencode(d, o) {
2596 ;(ic.preencode(d, o.header), e.buffer.preencode(d, o.blindRequest))
25952597 },
2596 encode(d, n) {
2597 ;(ic.encode(d, n.header), e.buffer.encode(d, n.blindRequest))
2598 encode(d, o) {
2599 ;(ic.encode(d, o.header), e.buffer.encode(d, o.blindRequest))
25982600 },
25992601 decode: (d) => ({ header: ic.decode(d), blindRequest: e.buffer.decode(d) }),
26002602 },
26012603 sc = _,
26022604 pc = cc,
26032605 uc = {
2604 preencode(d, o) {
2605 ;(sc.preencode(d, o.header),
2606 e.fixed32.preencode(d, o.memberKey),
2607 e.uint.preencode(d, o.key),
2608 pc.preencode(d, o.status),
2606 preencode(d, n) {
2607 ;(sc.preencode(d, n.header),
2608 e.fixed32.preencode(d, n.memberKey),
2609 e.uint.preencode(d, n.key),
2610 pc.preencode(d, n.status),
26092611 d.end++,
2610 n >= 10 && o.roomKey && e.fixed32.preencode(d, o.roomKey))
2612 o >= 10 && n.roomKey && e.fixed32.preencode(d, n.roomKey))
26112613 },
2612 encode(d, o) {
2613 const c = n >= 10 && o.roomKey ? 1 : 0
2614 ;(sc.encode(d, o.header),
2615 e.fixed32.encode(d, o.memberKey),
2616 e.uint.encode(d, o.key),
2617 pc.encode(d, o.status),
2614 encode(d, n) {
2615 const c = o >= 10 && n.roomKey ? 1 : 0
2616 ;(sc.encode(d, n.header),
2617 e.fixed32.encode(d, n.memberKey),
2618 e.uint.encode(d, n.key),
2619 pc.encode(d, n.status),
26182620 e.uint.encode(d, c),
2619 n >= 10 && o.roomKey && e.fixed32.encode(d, o.roomKey))
2621 o >= 10 && n.roomKey && e.fixed32.encode(d, n.roomKey))
26202622 },
26212623 decode(d) {
2622 const o = sc.decode(d),
2624 const n = sc.decode(d),
26232625 c = e.fixed32.decode(d),
26242626 r = e.uint.decode(d),
26252627 t = pc.decode(d),
26262628 i = d.start < d.end ? e.uint.decode(d) : 0
26272629 return {
2628 header: o,
2630 header: n,
26292631 memberKey: c,
26302632 key: r,
26312633 status: t,
2632 roomKey: n >= 10 && 1 & i ? e.fixed32.decode(d) : null,
2634 roomKey: o >= 10 && 1 & i ? e.fixed32.decode(d) : null,
26332635 }
26342636 },
26352637 },
26362638 lc = {
2637 preencode(d, n) {
2638 ;(e.uint.preencode(d, n.timestamp),
2639 e.fixed32.preencode(d, n.key),
2640 e.fixed32.preencode(d, n.mailbox))
2639 preencode(d, o) {
2640 ;(e.uint.preencode(d, o.timestamp),
2641 e.fixed32.preencode(d, o.key),
2642 e.fixed32.preencode(d, o.mailbox))
26412643 },
2642 encode(d, n) {
2643 ;(e.uint.encode(d, n.timestamp), e.fixed32.encode(d, n.key), e.fixed32.encode(d, n.mailbox))
2644 encode(d, o) {
2645 ;(e.uint.encode(d, o.timestamp), e.fixed32.encode(d, o.key), e.fixed32.encode(d, o.mailbox))
26442646 },
26452647 decode: (d) => ({
26462648 version: e.uint.decode(d),
……@@ -2650,30 +2652,30 @@ const o = {
26502652 }),
26512653 },
26522654 fc = {
2653 preencode(d, n) {
2654 switch ((e.uint.preencode(d, n.version), n.version)) {
2655 preencode(d, o) {
2656 switch ((e.uint.preencode(d, o.version), o.version)) {
26552657 case 0:
26562658 case 1:
2657 lc.preencode(d, n)
2659 lc.preencode(d, o)
26582660 break
26592661 default:
26602662 throw new Error("Unsupported version")
26612663 }
26622664 },
2663 encode(d, n) {
2664 switch ((e.uint.encode(d, n.version), n.version)) {
2665 encode(d, o) {
2666 switch ((e.uint.encode(d, o.version), o.version)) {
26652667 case 0:
26662668 case 1:
2667 lc.encode(d, n)
2669 lc.encode(d, o)
26682670 break
26692671 default:
26702672 throw new Error("Unsupported version")
26712673 }
26722674 },
26732675 decode(d) {
2674 const n = d.start,
2675 o = e.uint.decode(d)
2676 switch (((d.start = n), o)) {
2676 const o = d.start,
2677 n = e.uint.decode(d)
2678 switch (((d.start = o), n)) {
26772679 case 0:
26782680 case 1:
26792681 return lc.decode(d)
……@@ -2684,49 +2686,49 @@ const o = {
26842686 },
26852687 mc = _,
26862688 yc = {
2687 preencode(d, o) {
2688 ;(mc.preencode(d, o.header),
2689 c.preencode(d, o.oplog),
2690 e.uint.preencode(d, o.index),
2691 at.preencode(d, o.preview),
2689 preencode(d, n) {
2690 ;(mc.preencode(d, n.header),
2691 c.preencode(d, n.oplog),
2692 e.uint.preencode(d, n.index),
2693 pt.preencode(d, n.preview),
26922694 d.end++,
2693 n >= 7 && o.displayType && Rc.preencode(d, o.displayType))
2695 o >= 7 && n.displayType && Rc.preencode(d, n.displayType))
26942696 },
2695 encode(d, o) {
2696 const r = n >= 7 && o.displayType ? 1 : 0
2697 ;(mc.encode(d, o.header),
2698 c.encode(d, o.oplog),
2699 e.uint.encode(d, o.index),
2700 at.encode(d, o.preview),
2697 encode(d, n) {
2698 const r = o >= 7 && n.displayType ? 1 : 0
2699 ;(mc.encode(d, n.header),
2700 c.encode(d, n.oplog),
2701 e.uint.encode(d, n.index),
2702 pt.encode(d, n.preview),
27012703 e.uint.encode(d, r),
2702 n >= 7 && o.displayType && Rc.encode(d, o.displayType))
2704 o >= 7 && n.displayType && Rc.encode(d, n.displayType))
27032705 },
27042706 decode(d) {
2705 const o = mc.decode(d),
2707 const n = mc.decode(d),
27062708 r = c.decode(d),
27072709 t = e.uint.decode(d),
2708 i = at.decode(d),
2710 i = pt.decode(d),
27092711 a = d.start < d.end ? e.uint.decode(d) : 0
27102712 return {
2711 header: o,
2713 header: n,
27122714 oplog: r,
27132715 index: t,
27142716 preview: i,
2715 displayType: n >= 7 && 1 & a ? Rc.decode(d) : 0,
2717 displayType: o >= 7 && 1 & a ? Rc.decode(d) : 0,
27162718 }
27172719 },
27182720 },
27192721 xc = {
2720 preencode(d, o) {
2721 ;(d.end++, n >= 3 && o.memberKey && e.fixed32.preencode(d, o.memberKey))
2722 preencode(d, n) {
2723 ;(d.end++, o >= 3 && n.memberKey && e.fixed32.preencode(d, n.memberKey))
27222724 },
2723 encode(d, o) {
2724 const c = n >= 3 && o.memberKey ? 1 : 0
2725 ;(e.uint.encode(d, c), n >= 3 && o.memberKey && e.fixed32.encode(d, o.memberKey))
2725 encode(d, n) {
2726 const c = o >= 3 && n.memberKey ? 1 : 0
2727 ;(e.uint.encode(d, c), o >= 3 && n.memberKey && e.fixed32.encode(d, n.memberKey))
27262728 },
27272729 decode(d) {
2728 const o = e.uint.decode(d)
2729 return { memberKey: n >= 3 && 1 & o ? e.fixed32.decode(d) : null }
2730 const n = e.uint.decode(d)
2731 return { memberKey: o >= 3 && 1 & n ? e.fixed32.decode(d) : null }
27302732 },
27312733 },
27322734 bc = ue,
……@@ -2741,24 +2743,24 @@ const o = {
27412743 },
27422744 vc = _,
27432745 gc = {
2744 preencode(d, n) {
2745 ;(vc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
2746 preencode(d, o) {
2747 ;(vc.preencode(d, o.header), e.fixed32.preencode(d, o.key))
27462748 },
2747 encode(d, n) {
2748 ;(vc.encode(d, n.header), e.fixed32.encode(d, n.key))
2749 encode(d, o) {
2750 ;(vc.encode(d, o.header), e.fixed32.encode(d, o.key))
27492751 },
27502752 decode: (d) => ({ header: vc.decode(d), key: e.fixed32.decode(d) }),
27512753 },
27522754 hc = {
2753 preencode(d, n) {
2754 ;(e.fixed32.preencode(d, n.deviceKey),
2755 ce.preencode(d, n.privateProfileIdentity),
2756 e.buffer.preencode(d, n.deviceProof))
2755 preencode(d, o) {
2756 ;(e.fixed32.preencode(d, o.deviceKey),
2757 ce.preencode(d, o.privateProfileIdentity),
2758 e.buffer.preencode(d, o.deviceProof))
27572759 },
2758 encode(d, n) {
2759 ;(e.fixed32.encode(d, n.deviceKey),
2760 ce.encode(d, n.privateProfileIdentity),
2761 e.buffer.encode(d, n.deviceProof))
2760 encode(d, o) {
2761 ;(e.fixed32.encode(d, o.deviceKey),
2762 ce.encode(d, o.privateProfileIdentity),
2763 e.buffer.encode(d, o.deviceProof))
27622764 },
27632765 decode: (d) => ({
27642766 deviceKey: e.fixed32.decode(d),
……@@ -2767,70 +2769,70 @@ const o = {
27672769 }),
27682770 },
27692771 Kc = {
2770 preencode(d, o) {
2771 ;(e.fixed32.preencode(d, o.roomKey),
2772 e.fixed32.preencode(d, o.encryptionKey),
2773 e.fixed32.preencode(d, o.seed),
2772 preencode(d, n) {
2773 ;(e.fixed32.preencode(d, n.roomKey),
2774 e.fixed32.preencode(d, n.encryptionKey),
2775 e.fixed32.preencode(d, n.seed),
27742776 d.end++,
2775 n >= 6 && o.fastForwardTo && e.fixed32.preencode(d, o.fastForwardTo))
2777 o >= 6 && n.fastForwardTo && e.fixed32.preencode(d, n.fastForwardTo))
27762778 },
2777 encode(d, o) {
2778 const c = n >= 6 && o.fastForwardTo ? 1 : 0
2779 ;(e.fixed32.encode(d, o.roomKey),
2780 e.fixed32.encode(d, o.encryptionKey),
2781 e.fixed32.encode(d, o.seed),
2779 encode(d, n) {
2780 const c = o >= 6 && n.fastForwardTo ? 1 : 0
2781 ;(e.fixed32.encode(d, n.roomKey),
2782 e.fixed32.encode(d, n.encryptionKey),
2783 e.fixed32.encode(d, n.seed),
27822784 e.uint.encode(d, c),
2783 n >= 6 && o.fastForwardTo && e.fixed32.encode(d, o.fastForwardTo))
2785 o >= 6 && n.fastForwardTo && e.fixed32.encode(d, n.fastForwardTo))
27842786 },
27852787 decode(d) {
2786 const o = e.fixed32.decode(d),
2788 const n = e.fixed32.decode(d),
27872789 c = e.fixed32.decode(d),
27882790 r = e.fixed32.decode(d),
27892791 t = e.uint.decode(d)
27902792 return {
2791 roomKey: o,
2793 roomKey: n,
27922794 encryptionKey: c,
27932795 seed: r,
2794 fastForwardTo: n >= 6 && 1 & t ? e.fixed32.decode(d) : null,
2796 fastForwardTo: o >= 6 && 1 & t ? e.fixed32.decode(d) : null,
27952797 }
27962798 },
27972799 },
27982800 wc = {
2799 preencode(d, o) {
2800 ;(e.fixed32.preencode(d, o.publicKey),
2801 e.fixed32.preencode(d, o.writerKey),
2802 e.fixed32.preencode(d, o.devicePublicKey),
2801 preencode(d, n) {
2802 ;(e.fixed32.preencode(d, n.publicKey),
2803 e.fixed32.preencode(d, n.writerKey),
2804 e.fixed32.preencode(d, n.devicePublicKey),
28032805 d.end++,
2804 n >= 6 && o.privateProfileKey && e.fixed32.preencode(d, o.privateProfileKey))
2806 o >= 6 && n.privateProfileKey && e.fixed32.preencode(d, n.privateProfileKey))
28052807 },
2806 encode(d, o) {
2807 const c = n >= 6 && o.privateProfileKey ? 1 : 0
2808 ;(e.fixed32.encode(d, o.publicKey),
2809 e.fixed32.encode(d, o.writerKey),
2810 e.fixed32.encode(d, o.devicePublicKey),
2808 encode(d, n) {
2809 const c = o >= 6 && n.privateProfileKey ? 1 : 0
2810 ;(e.fixed32.encode(d, n.publicKey),
2811 e.fixed32.encode(d, n.writerKey),
2812 e.fixed32.encode(d, n.devicePublicKey),
28112813 e.uint.encode(d, c),
2812 n >= 6 && o.privateProfileKey && e.fixed32.encode(d, o.privateProfileKey))
2814 o >= 6 && n.privateProfileKey && e.fixed32.encode(d, n.privateProfileKey))
28132815 },
28142816 decode(d) {
2815 const o = e.fixed32.decode(d),
2817 const n = e.fixed32.decode(d),
28162818 c = e.fixed32.decode(d),
28172819 r = e.fixed32.decode(d),
28182820 t = e.uint.decode(d)
28192821 return {
2820 publicKey: o,
2822 publicKey: n,
28212823 writerKey: c,
28222824 devicePublicKey: r,
2823 privateProfileKey: n >= 6 && 1 & t ? e.fixed32.decode(d) : null,
2825 privateProfileKey: o >= 6 && 1 & t ? e.fixed32.decode(d) : null,
28242826 }
28252827 },
28262828 },
28272829 Tc = _,
28282830 Pc = {
2829 preencode(d, n) {
2830 ;(Tc.preencode(d, n.header), e.fixed32.preencode(d, n.memberKey))
2831 preencode(d, o) {
2832 ;(Tc.preencode(d, o.header), e.fixed32.preencode(d, o.memberKey))
28312833 },
2832 encode(d, n) {
2833 ;(Tc.encode(d, n.header), e.fixed32.encode(d, n.memberKey))
2834 encode(d, o) {
2835 ;(Tc.encode(d, o.header), e.fixed32.encode(d, o.memberKey))
28342836 },
28352837 decode: (d) => ({ header: Tc.decode(d), memberKey: e.fixed32.decode(d) }),
28362838 },
……@@ -2839,54 +2841,54 @@ const o = {
28392841 preencode(e, d) {
28402842 e.end++
28412843 },
2842 encode(d, n) {
2843 if (n > 2) throw new Error("Unknown enum")
2844 e.uint.encode(d, n)
2844 encode(d, o) {
2845 if (o > 2) throw new Error("Unknown enum")
2846 e.uint.encode(d, o)
28452847 },
28462848 decode: (d) => e.uint.decode(d),
28472849 },
28482850 Dc = _,
2849 Sc = {
2850 preencode(d, n) {
2851 ;(Dc.preencode(d, n.header), e.uint.preencode(d, n.value))
2851 Mc = {
2852 preencode(d, o) {
2853 ;(Dc.preencode(d, o.header), e.uint.preencode(d, o.value))
28522854 },
2853 encode(d, n) {
2854 ;(Dc.encode(d, n.header), e.uint.encode(d, n.value))
2855 encode(d, o) {
2856 ;(Dc.encode(d, o.header), e.uint.encode(d, o.value))
28552857 },
28562858 decode: (d) => ({ header: Dc.decode(d), value: e.uint.decode(d) }),
28572859 },
2858 Cc = {
2859 preencode(d, n) {
2860 ;(e.uint.preencode(d, n.key), e.uint.preencode(d, n.value))
2860 Sc = {
2861 preencode(d, o) {
2862 ;(e.uint.preencode(d, o.key), e.uint.preencode(d, o.value))
28612863 },
2862 encode(d, n) {
2863 ;(e.uint.encode(d, n.key), e.uint.encode(d, n.value))
2864 encode(d, o) {
2865 ;(e.uint.encode(d, o.key), e.uint.encode(d, o.value))
28642866 },
28652867 decode: (d) => ({ key: e.uint.decode(d), value: e.uint.decode(d) }),
28662868 },
2867 Mc = _,
2869 Cc = _,
28682870 Lc = {
2869 preencode(d, o) {
2870 ;(Mc.preencode(d, o.header),
2871 e.uint.preencode(d, o.from),
2872 e.uint.preencode(d, o.to),
2871 preencode(d, n) {
2872 ;(Cc.preencode(d, n.header),
2873 e.uint.preencode(d, n.from),
2874 e.uint.preencode(d, n.to),
28732875 d.end++,
2874 n >= 20 && o.buildType && Or.preencode(d, o.buildType))
2876 o >= 20 && n.buildType && Ur.preencode(d, n.buildType))
28752877 },
2876 encode(d, o) {
2877 const c = n >= 20 && o.buildType ? 1 : 0
2878 ;(Mc.encode(d, o.header),
2879 e.uint.encode(d, o.from),
2880 e.uint.encode(d, o.to),
2878 encode(d, n) {
2879 const c = o >= 20 && n.buildType ? 1 : 0
2880 ;(Cc.encode(d, n.header),
2881 e.uint.encode(d, n.from),
2882 e.uint.encode(d, n.to),
28812883 e.uint.encode(d, c),
2882 n >= 20 && o.buildType && Or.encode(d, o.buildType))
2884 o >= 20 && n.buildType && Ur.encode(d, n.buildType))
28832885 },
28842886 decode(d) {
2885 const o = Mc.decode(d),
2887 const n = Cc.decode(d),
28862888 c = e.uint.decode(d),
28872889 r = e.uint.decode(d),
28882890 t = d.start < d.end ? e.uint.decode(d) : 0
2889 return { header: o, from: c, to: r, buildType: n >= 20 && 1 & t ? Or.decode(d) : null }
2891 return { header: n, from: c, to: r, buildType: o >= 20 && 1 & t ? Ur.decode(d) : null }
28902892 },
28912893 },
28922894 qc = {
……@@ -2903,9 +2905,9 @@ const o = {
29032905 preencode(e, d) {
29042906 e.end++
29052907 },
2906 encode(d, n) {
2907 if (n > 8) throw new Error("Unknown enum")
2908 e.uint.encode(d, n)
2908 encode(d, o) {
2909 if (o > 8) throw new Error("Unknown enum")
2910 e.uint.encode(d, o)
29092911 },
29102912 decode: (d) => e.uint.decode(d),
29112913 },
……@@ -2914,8 +2916,8 @@ const o = {
29142916 preencode(e, d) {
29152917 e.end++
29162918 },
2917 encode(d, n) {
2918 switch (n) {
2919 encode(d, o) {
2920 switch (o) {
29192921 case "en":
29202922 e.uint.encode(d, 1)
29212923 break
……@@ -2954,69 +2956,69 @@ const o = {
29542956 },
29552957 Ic = Ed,
29562958 Nc = {
2957 preencode(d, n) {
2958 ;(Ic.preencode(d, n.range), Bc.preencode(d, n.language), e.string.preencode(d, n.text))
2959 preencode(d, o) {
2960 ;(Ic.preencode(d, o.range), Bc.preencode(d, o.language), e.string.preencode(d, o.text))
29592961 },
2960 encode(d, n) {
2961 ;(Ic.encode(d, n.range), Bc.encode(d, n.language), e.string.encode(d, n.text))
2962 encode(d, o) {
2963 ;(Ic.encode(d, o.range), Bc.encode(d, o.language), e.string.encode(d, o.text))
29622964 },
29632965 decode: (d) => ({ range: Ic.decode(d), language: Bc.decode(d), text: e.string.decode(d) }),
29642966 },
29652967 jc = {
2966 preencode(d, n) {
2967 ;(e.fixed32.preencode(d, n.deviceKey), e.fixed32.preencode(d, n.key))
2968 preencode(d, o) {
2969 ;(e.fixed32.preencode(d, o.deviceKey), e.fixed32.preencode(d, o.key))
29682970 },
2969 encode(d, n) {
2970 ;(e.fixed32.encode(d, n.deviceKey), e.fixed32.encode(d, n.key))
2971 encode(d, o) {
2972 ;(e.fixed32.encode(d, o.deviceKey), e.fixed32.encode(d, o.key))
29712973 },
29722974 decode: (d) => ({ deviceKey: e.fixed32.decode(d), key: e.fixed32.decode(d) }),
29732975 },
2974 Oc = _,
2975 Jc = {
2976 preencode(d, n) {
2977 ;(Oc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
2976 Uc = _,
2977 Oc = {
2978 preencode(d, o) {
2979 ;(Uc.preencode(d, o.header), e.fixed32.preencode(d, o.key))
29782980 },
2979 encode(d, n) {
2980 ;(Oc.encode(d, n.header), e.fixed32.encode(d, n.key))
2981 encode(d, o) {
2982 ;(Uc.encode(d, o.header), e.fixed32.encode(d, o.key))
29812983 },
2982 decode: (d) => ({ header: Oc.decode(d), key: e.fixed32.decode(d) }),
2984 decode: (d) => ({ header: Uc.decode(d), key: e.fixed32.decode(d) }),
29832985 },
2984 Uc = _,
2986 Jc = _,
29852987 Vc = {
2986 preencode(d, n) {
2987 ;(Uc.preencode(d, n.header), e.fixed32.preencode(d, n.key))
2988 preencode(d, o) {
2989 ;(Jc.preencode(d, o.header), e.fixed32.preencode(d, o.key))
29882990 },
2989 encode(d, n) {
2990 ;(Uc.encode(d, n.header), e.fixed32.encode(d, n.key))
2991 encode(d, o) {
2992 ;(Jc.encode(d, o.header), e.fixed32.encode(d, o.key))
29912993 },
2992 decode: (d) => ({ header: Uc.decode(d), key: e.fixed32.decode(d) }),
2994 decode: (d) => ({ header: Jc.decode(d), key: e.fixed32.decode(d) }),
29932995 },
29942996 Hc = { Flag: 1 },
29952997 zc = {
29962998 preencode(e, d) {
29972999 e.end++
29983000 },
2999 encode(d, n) {
3000 if (n > 1) throw new Error("Unknown enum")
3001 e.uint.encode(d, n)
3001 encode(d, o) {
3002 if (o > 1) throw new Error("Unknown enum")
3003 e.uint.encode(d, o)
30023004 },
30033005 decode: (d) => e.uint.decode(d),
30043006 },
30053007 Gc = {
3006 preencode(d, n) {
3007 ;(fn.preencode(d, n.id),
3008 e.fixed32.preencode(d, n.sender),
3009 e.uint.preencode(d, n.clock),
3010 zc.preencode(d, n.label))
3008 preencode(d, o) {
3009 ;(fo.preencode(d, o.id),
3010 e.fixed32.preencode(d, o.sender),
3011 e.uint.preencode(d, o.clock),
3012 zc.preencode(d, o.label))
30113013 },
3012 encode(d, n) {
3013 ;(fn.encode(d, n.id),
3014 e.fixed32.encode(d, n.sender),
3015 e.uint.encode(d, n.clock),
3016 zc.encode(d, n.label))
3014 encode(d, o) {
3015 ;(fo.encode(d, o.id),
3016 e.fixed32.encode(d, o.sender),
3017 e.uint.encode(d, o.clock),
3018 zc.encode(d, o.label))
30173019 },
30183020 decode: (d) => ({
3019 id: fn.decode(d),
3021 id: fo.decode(d),
30203022 sender: e.fixed32.decode(d),
30213023 clock: e.uint.decode(d),
30223024 label: zc.decode(d),
……@@ -3043,98 +3045,122 @@ const o = {
30433045 decode: (e) => ({ header: Xc.decode(e), oplog: c.decode(e), label: zc.decode(e) }),
30443046 },
30453047 Zc = {
3046 preencode(d, n) {
3047 ;(zc.preencode(d, n.label), e.uint.preencode(d, n.count))
3048 preencode(d, o) {
3049 ;(zc.preencode(d, o.label), e.uint.preencode(d, o.count))
30483050 },
3049 encode(d, n) {
3050 ;(zc.encode(d, n.label), e.uint.encode(d, n.count))
3051 encode(d, o) {
3052 ;(zc.encode(d, o.label), e.uint.encode(d, o.count))
30513053 },
30523054 decode: (d) => ({ label: zc.decode(d), count: e.uint.decode(d) }),
30533055 },
30543056 $c = e.array(e.frame(Zc)),
30553057 _c = {
3056 preencode(d, o) {
3057 ;(fn.preencode(d, o.id),
3058 e.uint.preencode(d, o.total),
3059 $c.preencode(d, o.labels),
3060 e.uint.preencode(d, o.editedAt),
3058 preencode(d, n) {
3059 ;(fo.preencode(d, n.id),
3060 e.uint.preencode(d, n.total),
3061 $c.preencode(d, n.labels),
3062 e.uint.preencode(d, n.editedAt),
30613063 d.end++,
3062 n >= 15 && o.flagsClock && e.uint.preencode(d, o.flagsClock),
3063 n >= 15 && o.version && e.uint.preencode(d, o.version))
3064 o >= 15 && n.flagsClock && e.uint.preencode(d, n.flagsClock),
3065 o >= 15 && n.version && e.uint.preencode(d, n.version))
30643066 },
3065 encode(d, o) {
3067 encode(d, n) {
30663068 const c =
3067 (n >= 15 && o.flagsClock ? 1 : 0) |
3068 (n >= 15 && o.version ? 2 : 0) |
3069 (n >= 16 && o.isDeleted ? 4 : 0)
3070 ;(fn.encode(d, o.id),
3071 e.uint.encode(d, o.total),
3072 $c.encode(d, o.labels),
3073 e.uint.encode(d, o.editedAt),
3069 (o >= 15 && n.flagsClock ? 1 : 0) |
3070 (o >= 15 && n.version ? 2 : 0) |
3071 (o >= 16 && n.isDeleted ? 4 : 0)
3072 ;(fo.encode(d, n.id),
3073 e.uint.encode(d, n.total),
3074 $c.encode(d, n.labels),
3075 e.uint.encode(d, n.editedAt),
30743076 e.uint.encode(d, c),
3075 n >= 15 && o.flagsClock && e.uint.encode(d, o.flagsClock),
3076 n >= 15 && o.version && e.uint.encode(d, o.version))
3077 o >= 15 && n.flagsClock && e.uint.encode(d, n.flagsClock),
3078 o >= 15 && n.version && e.uint.encode(d, n.version))
30773079 },
30783080 decode(d) {
3079 const o = fn.decode(d),
3081 const n = fo.decode(d),
30803082 c = e.uint.decode(d),
30813083 r = $c.decode(d),
30823084 t = e.uint.decode(d),
30833085 i = d.start < d.end ? e.uint.decode(d) : 0
30843086 return {
3085 id: o,
3087 id: n,
30863088 total: c,
30873089 labels: r,
30883090 editedAt: t,
3089 flagsClock: n >= 15 && 1 & i ? e.uint.decode(d) : 0,
3090 version: n >= 15 && 2 & i ? e.uint.decode(d) : 0,
3091 isDeleted: n >= 16 && !!(4 & i),
3091 flagsClock: o >= 15 && 1 & i ? e.uint.decode(d) : 0,
3092 version: o >= 15 && 2 & i ? e.uint.decode(d) : 0,
3093 isDeleted: o >= 16 && !!(4 & i),
30923094 }
30933095 },
30943096 },
30953097 er = _,
30963098 dr = {
3097 preencode(d, n) {
3098 ;(er.preencode(d, n.header), e.uint.preencode(d, n.length))
3099 preencode(d, o) {
3100 ;(er.preencode(d, o.header), e.uint.preencode(d, o.length))
30993101 },
3100 encode(d, n) {
3101 ;(er.encode(d, n.header), e.uint.encode(d, n.length))
3102 encode(d, o) {
3103 ;(er.encode(d, o.header), e.uint.encode(d, o.length))
31023104 },
31033105 decode: (d) => ({ header: er.decode(d), length: e.uint.decode(d) }),
31043106 },
3105 nr = {
3106 preencode(d, n) {
3107 ;(e.fixed32.preencode(d, n.memberKey), e.uint.preencode(d, n.length))
3107 or = {
3108 preencode(d, o) {
3109 ;(e.fixed32.preencode(d, o.memberKey), e.uint.preencode(d, o.length))
31083110 },
3109 encode(d, n) {
3110 ;(e.fixed32.encode(d, n.memberKey), e.uint.encode(d, n.length))
3111 encode(d, o) {
3112 ;(e.fixed32.encode(d, o.memberKey), e.uint.encode(d, o.length))
31113113 },
31123114 decode: (d) => ({ memberKey: e.fixed32.decode(d), length: e.uint.decode(d) }),
31133115 },
3114 or = $,
3116 nr = $,
31153117 cr = {
31163118 preencode(e, d) {
31173119 e.end++
31183120 },
3119 encode(d, o) {
3120 const c = n >= 13 && o.disableReadReceipts ? 1 : 0
3121 encode(d, n) {
3122 const c =
3123 (o >= 13 && n.disableReadReceipts ? 1 : 0) | (o >= 21 && n.stripAttachmentMetadata ? 2 : 0)
31213124 e.uint.encode(d, c)
31223125 },
31233126 decode(d) {
3124 const o = e.uint.decode(d)
3125 return { disableReadReceipts: n >= 13 && !!(1 & o) }
3127 const n = e.uint.decode(d)
3128 return {
3129 disableReadReceipts: o >= 13 && !!(1 & n),
3130 stripAttachmentMetadata: o >= 21 && !!(2 & n),
3131 }
31263132 },
31273133 },
3128 rr = { disableReadReceipts: "disableReadReceipts" },
3134 rr = {
3135 disableReadReceipts: "disableReadReceipts",
3136 stripAttachmentMetadata: "stripAttachmentMetadata",
3137 },
31293138 tr = {
31303139 preencode(e, d) {
31313140 e.end++
31323141 },
3133 encode(d, n) {
3134 if ("disableReadReceipts" !== n) throw new Error("Unknown enum")
3135 e.uint.encode(d, 1)
3142 encode(d, o) {
3143 switch (o) {
3144 case "disableReadReceipts":
3145 e.uint.encode(d, 1)
3146 break
3147 case "stripAttachmentMetadata":
3148 e.uint.encode(d, 2)
3149 break
3150 default:
3151 throw new Error("Unknown enum")
3152 }
3153 },
3154 decode(d) {
3155 switch (e.uint.decode(d)) {
3156 case 1:
3157 return "disableReadReceipts"
3158 case 2:
3159 return "stripAttachmentMetadata"
3160 default:
3161 return null
3162 }
31363163 },
3137 decode: (d) => (1 === e.uint.decode(d) ? "disableReadReceipts" : null),
31383164 },
31393165 ir = _,
31403166 ar = e.frame(cr),
……@@ -3152,24 +3178,24 @@ const o = {
31523178 preencode(e, d) {
31533179 e.end++
31543180 },
3155 encode(d, n) {
3156 if (n > 1) throw new Error("Unknown enum")
3157 e.uint.encode(d, n)
3181 encode(d, o) {
3182 if (o > 1) throw new Error("Unknown enum")
3183 e.uint.encode(d, o)
31583184 },
31593185 decode: (d) => e.uint.decode(d),
31603186 },
31613187 lr = {
3162 preencode(d, n) {
3163 ;(e.fixed32.preencode(d, n.key),
3164 e.fixed32.preencode(d, n.sender),
3165 e.uint.preencode(d, n.clock),
3166 ur.preencode(d, n.label))
3188 preencode(d, o) {
3189 ;(e.fixed32.preencode(d, o.key),
3190 e.fixed32.preencode(d, o.sender),
3191 e.uint.preencode(d, o.clock),
3192 ur.preencode(d, o.label))
31673193 },
3168 encode(d, n) {
3169 ;(e.fixed32.encode(d, n.key),
3170 e.fixed32.encode(d, n.sender),
3171 e.uint.encode(d, n.clock),
3172 ur.encode(d, n.label))
3194 encode(d, o) {
3195 ;(e.fixed32.encode(d, o.key),
3196 e.fixed32.encode(d, o.sender),
3197 e.uint.encode(d, o.clock),
3198 ur.encode(d, o.label))
31733199 },
31743200 decode: (d) => ({
31753201 key: e.fixed32.decode(d),
……@@ -3180,38 +3206,38 @@ const o = {
31803206 },
31813207 fr = _,
31823208 mr = {
3183 preencode(d, n) {
3184 ;(fr.preencode(d, n.header), e.fixed32.preencode(d, n.key), ur.preencode(d, n.label))
3209 preencode(d, o) {
3210 ;(fr.preencode(d, o.header), e.fixed32.preencode(d, o.key), ur.preencode(d, o.label))
31853211 },
3186 encode(d, n) {
3187 ;(fr.encode(d, n.header), e.fixed32.encode(d, n.key), ur.encode(d, n.label))
3212 encode(d, o) {
3213 ;(fr.encode(d, o.header), e.fixed32.encode(d, o.key), ur.encode(d, o.label))
31883214 },
31893215 decode: (d) => ({ header: fr.decode(d), key: e.fixed32.decode(d), label: ur.decode(d) }),
31903216 },
31913217 yr = {
3192 preencode(d, n) {
3193 ;(ur.preencode(d, n.label), e.uint.preencode(d, n.count))
3218 preencode(d, o) {
3219 ;(ur.preencode(d, o.label), e.uint.preencode(d, o.count))
31943220 },
3195 encode(d, n) {
3196 ;(ur.encode(d, n.label), e.uint.encode(d, n.count))
3221 encode(d, o) {
3222 ;(ur.encode(d, o.label), e.uint.encode(d, o.count))
31973223 },
31983224 decode: (d) => ({ label: ur.decode(d), count: e.uint.decode(d) }),
31993225 },
32003226 xr = e.array(e.frame(yr)),
32013227 br = {
3202 preencode(d, n) {
3203 ;(e.fixed32.preencode(d, n.key),
3204 e.uint.preencode(d, n.total),
3205 xr.preencode(d, n.labels),
3206 e.uint.preencode(d, n.editedAt),
3207 e.uint.preencode(d, n.flagsClock))
3228 preencode(d, o) {
3229 ;(e.fixed32.preencode(d, o.key),
3230 e.uint.preencode(d, o.total),
3231 xr.preencode(d, o.labels),
3232 e.uint.preencode(d, o.editedAt),
3233 e.uint.preencode(d, o.flagsClock))
32083234 },
3209 encode(d, n) {
3210 ;(e.fixed32.encode(d, n.key),
3211 e.uint.encode(d, n.total),
3212 xr.encode(d, n.labels),
3213 e.uint.encode(d, n.editedAt),
3214 e.uint.encode(d, n.flagsClock))
3235 encode(d, o) {
3236 ;(e.fixed32.encode(d, o.key),
3237 e.uint.encode(d, o.total),
3238 xr.encode(d, o.labels),
3239 e.uint.encode(d, o.editedAt),
3240 e.uint.encode(d, o.flagsClock))
32153241 },
32163242 decode: (d) => ({
32173243 key: e.fixed32.decode(d),
……@@ -3222,25 +3248,25 @@ const o = {
32223248 }),
32233249 },
32243250 kr = {
3225 preencode(d, n) {
3226 ;(e.float64.preencode(d, n.latitude), e.float64.preencode(d, n.longitude))
3251 preencode(d, o) {
3252 ;(e.float64.preencode(d, o.latitude), e.float64.preencode(d, o.longitude))
32273253 },
3228 encode(d, n) {
3229 ;(e.float64.encode(d, n.latitude), e.float64.encode(d, n.longitude))
3254 encode(d, o) {
3255 ;(e.float64.encode(d, o.latitude), e.float64.encode(d, o.longitude))
32303256 },
32313257 decode: (d) => ({ latitude: e.float64.decode(d), longitude: e.float64.decode(d) }),
32323258 },
32333259 vr = _,
32343260 gr = {
3235 preencode(d, n) {
3236 ;(vr.preencode(d, n.header),
3237 e.fixed32.preencode(d, n.deviceKey),
3238 e.fixed32.preencode(d, n.fromDeviceKey))
3261 preencode(d, o) {
3262 ;(vr.preencode(d, o.header),
3263 e.fixed32.preencode(d, o.deviceKey),
3264 e.fixed32.preencode(d, o.fromDeviceKey))
32393265 },
3240 encode(d, n) {
3241 ;(vr.encode(d, n.header),
3242 e.fixed32.encode(d, n.deviceKey),
3243 e.fixed32.encode(d, n.fromDeviceKey))
3266 encode(d, o) {
3267 ;(vr.encode(d, o.header),
3268 e.fixed32.encode(d, o.deviceKey),
3269 e.fixed32.encode(d, o.fromDeviceKey))
32443270 },
32453271 decode: (d) => ({
32463272 header: vr.decode(d),
……@@ -3251,111 +3277,111 @@ const o = {
32513277 hr = _,
32523278 Kr = Y,
32533279 wr = {
3254 preencode(d, o) {
3255 ;(hr.preencode(d, o.header),
3256 e.fixed32.preencode(d, o.callKey),
3257 e.buffer.preencode(d, o.encryptionKey),
3280 preencode(d, n) {
3281 ;(hr.preencode(d, n.header),
3282 e.fixed32.preencode(d, n.callKey),
3283 e.buffer.preencode(d, n.encryptionKey),
32583284 d.end++,
3259 n >= 19 && o.streams && Kr.preencode(d, o.streams),
3260 n >= 19 && o.discoveryKey && e.fixed32.preencode(d, o.discoveryKey),
3261 n >= 19 && o.version && e.uint.preencode(d, o.version))
3285 o >= 19 && n.streams && Kr.preencode(d, n.streams),
3286 o >= 19 && n.discoveryKey && e.fixed32.preencode(d, n.discoveryKey),
3287 o >= 19 && n.version && e.uint.preencode(d, n.version))
32623288 },
3263 encode(d, o) {
3289 encode(d, n) {
32643290 const c =
3265 (n >= 19 && o.streams ? 1 : 0) |
3266 (n >= 19 && o.discoveryKey ? 2 : 0) |
3267 (n >= 19 && o.version ? 4 : 0)
3268 ;(hr.encode(d, o.header),
3269 e.fixed32.encode(d, o.callKey),
3270 e.buffer.encode(d, o.encryptionKey),
3291 (o >= 19 && n.streams ? 1 : 0) |
3292 (o >= 19 && n.discoveryKey ? 2 : 0) |
3293 (o >= 19 && n.version ? 4 : 0)
3294 ;(hr.encode(d, n.header),
3295 e.fixed32.encode(d, n.callKey),
3296 e.buffer.encode(d, n.encryptionKey),
32713297 e.uint.encode(d, c),
3272 n >= 19 && o.streams && Kr.encode(d, o.streams),
3273 n >= 19 && o.discoveryKey && e.fixed32.encode(d, o.discoveryKey),
3274 n >= 19 && o.version && e.uint.encode(d, o.version))
3298 o >= 19 && n.streams && Kr.encode(d, n.streams),
3299 o >= 19 && n.discoveryKey && e.fixed32.encode(d, n.discoveryKey),
3300 o >= 19 && n.version && e.uint.encode(d, n.version))
32753301 },
32763302 decode(d) {
3277 const o = hr.decode(d),
3303 const n = hr.decode(d),
32783304 c = e.fixed32.decode(d),
32793305 r = e.buffer.decode(d),
32803306 t = e.uint.decode(d)
32813307 return {
3282 header: o,
3308 header: n,
32833309 callKey: c,
32843310 encryptionKey: r,
3285 streams: n >= 19 && 1 & t ? Kr.decode(d) : null,
3286 discoveryKey: n >= 19 && 2 & t ? e.fixed32.decode(d) : null,
3287 version: n >= 19 && 4 & t ? e.uint.decode(d) : 0,
3311 streams: o >= 19 && 1 & t ? Kr.decode(d) : null,
3312 discoveryKey: o >= 19 && 2 & t ? e.fixed32.decode(d) : null,
3313 version: o >= 19 && 4 & t ? e.uint.decode(d) : 0,
32883314 }
32893315 },
32903316 },
32913317 Tr = _,
32923318 Pr = Y,
32933319 Ar = {
3294 preencode(d, o) {
3295 ;(Tr.preencode(d, o.header),
3296 e.fixed32.preencode(d, o.callKey),
3320 preencode(d, n) {
3321 ;(Tr.preencode(d, n.header),
3322 e.fixed32.preencode(d, n.callKey),
32973323 d.end++,
3298 n >= 19 && o.streams && Pr.preencode(d, o.streams))
3324 o >= 19 && n.streams && Pr.preencode(d, n.streams))
32993325 },
3300 encode(d, o) {
3301 const c = n >= 19 && o.streams ? 1 : 0
3302 ;(Tr.encode(d, o.header),
3303 e.fixed32.encode(d, o.callKey),
3326 encode(d, n) {
3327 const c = o >= 19 && n.streams ? 1 : 0
3328 ;(Tr.encode(d, n.header),
3329 e.fixed32.encode(d, n.callKey),
33043330 e.uint.encode(d, c),
3305 n >= 19 && o.streams && Pr.encode(d, o.streams))
3331 o >= 19 && n.streams && Pr.encode(d, n.streams))
33063332 },
33073333 decode(d) {
3308 const o = Tr.decode(d),
3334 const n = Tr.decode(d),
33093335 c = e.fixed32.decode(d),
33103336 r = e.uint.decode(d)
3311 return { header: o, callKey: c, streams: n >= 19 && 1 & r ? Pr.decode(d) : null }
3337 return { header: n, callKey: c, streams: o >= 19 && 1 & r ? Pr.decode(d) : null }
33123338 },
33133339 },
33143340 Rr = _,
33153341 Dr = {
3316 preencode(d, n) {
3317 ;(Rr.preencode(d, n.header), e.fixed32.preencode(d, n.callKey))
3342 preencode(d, o) {
3343 ;(Rr.preencode(d, o.header), e.fixed32.preencode(d, o.callKey))
33183344 },
3319 encode(d, n) {
3320 ;(Rr.encode(d, n.header), e.fixed32.encode(d, n.callKey))
3345 encode(d, o) {
3346 ;(Rr.encode(d, o.header), e.fixed32.encode(d, o.callKey))
33213347 },
33223348 decode: (d) => ({ header: Rr.decode(d), callKey: e.fixed32.decode(d) }),
33233349 },
3324 Sr = _,
3325 Cr = {
3326 preencode(d, n) {
3327 ;(Sr.preencode(d, n.header), e.fixed32.preencode(d, n.callKey))
3350 Mr = _,
3351 Sr = {
3352 preencode(d, o) {
3353 ;(Mr.preencode(d, o.header), e.fixed32.preencode(d, o.callKey))
33283354 },
3329 encode(d, n) {
3330 ;(Sr.encode(d, n.header), e.fixed32.encode(d, n.callKey))
3355 encode(d, o) {
3356 ;(Mr.encode(d, o.header), e.fixed32.encode(d, o.callKey))
33313357 },
3332 decode: (d) => ({ header: Sr.decode(d), callKey: e.fixed32.decode(d) }),
3358 decode: (d) => ({ header: Mr.decode(d), callKey: e.fixed32.decode(d) }),
33333359 },
3334 Mr = _,
3360 Cr = _,
33353361 Lr = {
3336 preencode(d, n) {
3337 ;(Mr.preencode(d, n.header),
3338 e.fixed32.preencode(d, n.callKey),
3339 e.fixed32.preencode(d, n.streamKey))
3362 preencode(d, o) {
3363 ;(Cr.preencode(d, o.header),
3364 e.fixed32.preencode(d, o.callKey),
3365 e.fixed32.preencode(d, o.streamKey))
33403366 },
3341 encode(d, n) {
3342 ;(Mr.encode(d, n.header), e.fixed32.encode(d, n.callKey), e.fixed32.encode(d, n.streamKey))
3367 encode(d, o) {
3368 ;(Cr.encode(d, o.header), e.fixed32.encode(d, o.callKey), e.fixed32.encode(d, o.streamKey))
33433369 },
33443370 decode: (d) => ({
3345 header: Mr.decode(d),
3371 header: Cr.decode(d),
33463372 callKey: e.fixed32.decode(d),
33473373 streamKey: e.fixed32.decode(d),
33483374 }),
33493375 },
33503376 qr = _,
33513377 Fr = {
3352 preencode(d, n) {
3353 ;(qr.preencode(d, n.header),
3354 e.fixed32.preencode(d, n.callKey),
3355 e.fixed32.preencode(d, n.streamKey))
3378 preencode(d, o) {
3379 ;(qr.preencode(d, o.header),
3380 e.fixed32.preencode(d, o.callKey),
3381 e.fixed32.preencode(d, o.streamKey))
33563382 },
3357 encode(d, n) {
3358 ;(qr.encode(d, n.header), e.fixed32.encode(d, n.callKey), e.fixed32.encode(d, n.streamKey))
3383 encode(d, o) {
3384 ;(qr.encode(d, o.header), e.fixed32.encode(d, o.callKey), e.fixed32.encode(d, o.streamKey))
33593385 },
33603386 decode: (d) => ({
33613387 header: qr.decode(d),
……@@ -3364,53 +3390,53 @@ const o = {
33643390 }),
33653391 },
33663392 Er = {
3367 preencode(d, o) {
3368 ;(e.fixed32.preencode(d, o.callKey),
3369 e.buffer.preencode(d, o.encryptionKey),
3370 e.uint.preencode(d, o.createdAt),
3393 preencode(d, n) {
3394 ;(e.fixed32.preencode(d, n.callKey),
3395 e.buffer.preencode(d, n.encryptionKey),
3396 e.uint.preencode(d, n.createdAt),
33713397 d.end++,
3372 n >= 19 && o.endedAt && e.uint.preencode(d, o.endedAt),
3373 n >= 19 && o.discoveryKey && e.fixed32.preencode(d, o.discoveryKey),
3374 n >= 19 && o.version && e.uint.preencode(d, o.version))
3398 o >= 19 && n.endedAt && e.uint.preencode(d, n.endedAt),
3399 o >= 19 && n.discoveryKey && e.fixed32.preencode(d, n.discoveryKey),
3400 o >= 19 && n.version && e.uint.preencode(d, n.version))
33753401 },
3376 encode(d, o) {
3402 encode(d, n) {
33773403 const c =
3378 (n >= 19 && o.endedAt ? 1 : 0) |
3379 (n >= 19 && o.discoveryKey ? 2 : 0) |
3380 (n >= 19 && o.version ? 4 : 0)
3381 ;(e.fixed32.encode(d, o.callKey),
3382 e.buffer.encode(d, o.encryptionKey),
3383 e.uint.encode(d, o.createdAt),
3404 (o >= 19 && n.endedAt ? 1 : 0) |
3405 (o >= 19 && n.discoveryKey ? 2 : 0) |
3406 (o >= 19 && n.version ? 4 : 0)
3407 ;(e.fixed32.encode(d, n.callKey),
3408 e.buffer.encode(d, n.encryptionKey),
3409 e.uint.encode(d, n.createdAt),
33843410 e.uint.encode(d, c),
3385 n >= 19 && o.endedAt && e.uint.encode(d, o.endedAt),
3386 n >= 19 && o.discoveryKey && e.fixed32.encode(d, o.discoveryKey),
3387 n >= 19 && o.version && e.uint.encode(d, o.version))
3411 o >= 19 && n.endedAt && e.uint.encode(d, n.endedAt),
3412 o >= 19 && n.discoveryKey && e.fixed32.encode(d, n.discoveryKey),
3413 o >= 19 && n.version && e.uint.encode(d, n.version))
33883414 },
33893415 decode(d) {
3390 const o = e.fixed32.decode(d),
3416 const n = e.fixed32.decode(d),
33913417 c = e.buffer.decode(d),
33923418 r = e.uint.decode(d),
33933419 t = e.uint.decode(d)
33943420 return {
3395 callKey: o,
3421 callKey: n,
33963422 encryptionKey: c,
33973423 createdAt: r,
3398 endedAt: n >= 19 && 1 & t ? e.uint.decode(d) : 0,
3399 discoveryKey: n >= 19 && 2 & t ? e.fixed32.decode(d) : null,
3400 version: n >= 19 && 4 & t ? e.uint.decode(d) : 0,
3424 endedAt: o >= 19 && 1 & t ? e.uint.decode(d) : 0,
3425 discoveryKey: o >= 19 && 2 & t ? e.fixed32.decode(d) : null,
3426 version: o >= 19 && 4 & t ? e.uint.decode(d) : 0,
34013427 }
34023428 },
34033429 },
34043430 Br = {
3405 preencode(d, n) {
3406 ;(e.fixed32.preencode(d, n.callKey),
3407 e.fixed32.preencode(d, n.memberKey),
3408 e.uint.preencode(d, n.createdAt))
3431 preencode(d, o) {
3432 ;(e.fixed32.preencode(d, o.callKey),
3433 e.fixed32.preencode(d, o.memberKey),
3434 e.uint.preencode(d, o.createdAt))
34093435 },
3410 encode(d, n) {
3411 ;(e.fixed32.encode(d, n.callKey),
3412 e.fixed32.encode(d, n.memberKey),
3413 e.uint.encode(d, n.createdAt))
3436 encode(d, o) {
3437 ;(e.fixed32.encode(d, o.callKey),
3438 e.fixed32.encode(d, o.memberKey),
3439 e.uint.encode(d, o.createdAt))
34143440 },
34153441 decode: (d) => ({
34163442 callKey: e.fixed32.decode(d),
……@@ -3419,50 +3445,50 @@ const o = {
34193445 }),
34203446 },
34213447 Ir = {
3422 preencode(d, o) {
3423 ;(e.fixed32.preencode(d, o.callKey),
3424 e.fixed32.preencode(d, o.deviceKey),
3425 e.fixed32.preencode(d, o.memberKey),
3426 e.uint.preencode(d, o.createdAt),
3448 preencode(d, n) {
3449 ;(e.fixed32.preencode(d, n.callKey),
3450 e.fixed32.preencode(d, n.deviceKey),
3451 e.fixed32.preencode(d, n.memberKey),
3452 e.uint.preencode(d, n.createdAt),
34273453 d.end++,
3428 n >= 19 && o.swarmKey && e.fixed32.preencode(d, o.swarmKey))
3454 o >= 19 && n.swarmKey && e.fixed32.preencode(d, n.swarmKey))
34293455 },
3430 encode(d, o) {
3431 const c = n >= 19 && o.swarmKey ? 1 : 0
3432 ;(e.fixed32.encode(d, o.callKey),
3433 e.fixed32.encode(d, o.deviceKey),
3434 e.fixed32.encode(d, o.memberKey),
3435 e.uint.encode(d, o.createdAt),
3456 encode(d, n) {
3457 const c = o >= 19 && n.swarmKey ? 1 : 0
3458 ;(e.fixed32.encode(d, n.callKey),
3459 e.fixed32.encode(d, n.deviceKey),
3460 e.fixed32.encode(d, n.memberKey),
3461 e.uint.encode(d, n.createdAt),
34363462 e.uint.encode(d, c),
3437 n >= 19 && o.swarmKey && e.fixed32.encode(d, o.swarmKey))
3463 o >= 19 && n.swarmKey && e.fixed32.encode(d, n.swarmKey))
34383464 },
34393465 decode(d) {
3440 const o = e.fixed32.decode(d),
3466 const n = e.fixed32.decode(d),
34413467 c = e.fixed32.decode(d),
34423468 r = e.fixed32.decode(d),
34433469 t = e.uint.decode(d),
34443470 i = e.uint.decode(d)
34453471 return {
3446 callKey: o,
3472 callKey: n,
34473473 deviceKey: c,
34483474 memberKey: r,
34493475 createdAt: t,
3450 swarmKey: n >= 19 && 1 & i ? e.fixed32.decode(d) : null,
3476 swarmKey: o >= 19 && 1 & i ? e.fixed32.decode(d) : null,
34513477 }
34523478 },
34533479 },
34543480 Nr = {
3455 preencode(d, n) {
3456 ;(e.fixed32.preencode(d, n.callKey),
3457 e.fixed32.preencode(d, n.deviceKey),
3458 e.buffer.preencode(d, n.streamKey),
3459 e.uint.preencode(d, n.createdAt))
3481 preencode(d, o) {
3482 ;(e.fixed32.preencode(d, o.callKey),
3483 e.fixed32.preencode(d, o.deviceKey),
3484 e.buffer.preencode(d, o.streamKey),
3485 e.uint.preencode(d, o.createdAt))
34603486 },
3461 encode(d, n) {
3462 ;(e.fixed32.encode(d, n.callKey),
3463 e.fixed32.encode(d, n.deviceKey),
3464 e.buffer.encode(d, n.streamKey),
3465 e.uint.encode(d, n.createdAt))
3487 encode(d, o) {
3488 ;(e.fixed32.encode(d, o.callKey),
3489 e.fixed32.encode(d, o.deviceKey),
3490 e.buffer.encode(d, o.streamKey),
3491 e.uint.encode(d, o.createdAt))
34663492 },
34673493 decode: (d) => ({
34683494 callKey: e.fixed32.decode(d),
……@@ -3472,12 +3498,12 @@ const o = {
34723498 }),
34733499 },
34743500 jr = { Nightly: "Nightly", Internal: "Internal", Production: "Production" },
3475 Or = {
3501 Ur = {
34763502 preencode(e, d) {
34773503 e.end++
34783504 },
3479 encode(d, n) {
3480 switch (n) {
3505 encode(d, o) {
3506 switch (o) {
34813507 case "Nightly":
34823508 e.uint.encode(d, 1)
34833509 break
……@@ -3504,15 +3530,15 @@ const o = {
35043530 }
35053531 },
35063532 },
3507 Jr = _,
3508 Ur = {
3533 Or = _,
3534 Jr = {
35093535 preencode(e, d) {
3510 Jr.preencode(e, d.header)
3536 Or.preencode(e, d.header)
35113537 },
35123538 encode(e, d) {
3513 Jr.encode(e, d.header)
3539 Or.encode(e, d.header)
35143540 },
3515 decode: (e) => ({ header: Jr.decode(e) }),
3541 decode: (e) => ({ header: Or.decode(e) }),
35163542 },
35173543 Vr = _,
35183544 Hr = {
……@@ -3524,37 +3550,58 @@ const o = {
35243550 },
35253551 decode: (e) => ({ header: Vr.decode(e) }),
35263552 },
3527 zr = e.frame(T),
3528 Gr = zr,
3529 Qr = e.array(Bc),
3530 Wr = e.frame(pe),
3531 Xr = zr,
3532 Yr = Wr,
3533 Zr = e.frame(Kc),
3534 $r = Wr,
3535 _r = e.frame(md),
3536 et = e.frame(xc),
3537 dt = e.frame(kr),
3538 nt = dt,
3539 ot = e.array(e.frame(Nc)),
3540 ct = zr,
3541 rt = e.frame(Uo),
3542 tt = rt,
3543 it = rt,
3544 at = zr
3545function st(e) {
3546 n = e
3553 zr = _,
3554 Gr = {
3555 preencode(d, o) {
3556 ;(zr.preencode(d, o.header),
3557 e.fixed32.preencode(d, o.deviceKey),
3558 e.buffer.preencode(d, o.deviceProof),
3559 e.buffer.preencode(d, o.writerProof))
3560 },
3561 encode(d, o) {
3562 ;(zr.encode(d, o.header),
3563 e.fixed32.encode(d, o.deviceKey),
3564 e.buffer.encode(d, o.deviceProof),
3565 e.buffer.encode(d, o.writerProof))
3566 },
3567 decode: (d) => ({
3568 header: zr.decode(d),
3569 deviceKey: e.fixed32.decode(d),
3570 deviceProof: e.buffer.decode(d),
3571 writerProof: e.buffer.decode(d),
3572 }),
3573 },
3574 Qr = e.frame(T),
3575 Wr = Qr,
3576 Xr = e.array(Bc),
3577 Yr = e.frame(pe),
3578 Zr = Qr,
3579 $r = Yr,
3580 _r = e.frame(Kc),
3581 et = Yr,
3582 dt = e.frame(md),
3583 ot = e.frame(xc),
3584 nt = e.frame(kr),
3585 ct = nt,
3586 rt = e.array(e.frame(Nc)),
3587 tt = Qr,
3588 it = e.frame(Jn),
3589 at = it,
3590 st = it,
3591 pt = Qr
3592function ut(e) {
3593 o = e
35473594}
3548function pt(d, o, c = 20) {
3549 return ((n = c), e.encode(ft(d), o))
3595function lt(d, n, c = 21) {
3596 return ((o = c), e.encode(yt(d), n))
35503597}
3551function ut(d, o, c = 20) {
3552 return ((n = c), e.decode(ft(d), o))
3598function ft(d, n, c = 21) {
3599 return ((o = c), e.decode(yt(d), n))
35533600}
3554function lt(e) {
3601function mt(e) {
35553602 switch (e) {
35563603 case "@keet/room-type":
3557 return U
3604 return J
35583605 case "@keet/display-type":
35593606 return Ac
35603607 case "@keet/system-settings-keys":
……@@ -3573,10 +3620,10 @@ function lt(e) {
35733620 throw new Error("Enum not found " + e)
35743621 }
35753622}
3576function ft(e) {
3623function yt(e) {
35773624 switch (e) {
35783625 case "@keet/head":
3579 return o
3626 return n
35803627 case "@keet/oplog-id":
35813628 return c
35823629 case "@keet/encryption-keypair":
……@@ -3608,11 +3655,11 @@ function ft(e) {
36083655 case "@keet/file-record":
36093656 return D
36103657 case "@keet/device-status":
3611 return S
3658 return M
36123659 case "@keet/member-status":
3613 return C
3660 return S
36143661 case "@keet/member-moderation-status":
3615 return M
3662 return C
36163663 case "@keet/abi":
36173664 return L
36183665 case "@keet/device-stats":
……@@ -3624,7 +3671,7 @@ function ft(e) {
36243671 case "@keet/file-stats":
36253672 return B
36263673 case "@keet/stats":
3627 return J
3674 return O
36283675 case "@keet/room-type":
36293676 return V
36303677 case "@keet/system-settings":
……@@ -3642,7 +3689,7 @@ function ft(e) {
36423689 case "@keet/add-blind-peer-operation":
36433690 return de
36443691 case "@keet/remove-blind-peer-operation":
3645 return oe
3692 return ne
36463693 case "@keet/identity-attestation":
36473694 return ce
36483695 case "@keet/device-invitation":
……@@ -3672,7 +3719,7 @@ function ft(e) {
36723719 case "@keet/device-request":
36733720 return De
36743721 case "@keet/device-response":
3675 return Me
3722 return Ce
36763723 case "@keet/invitation-metadata":
36773724 return Le
36783725 case "@keet/invitation":
……@@ -3680,11 +3727,11 @@ function ft(e) {
36803727 case "@keet/add-invitation-operation":
36813728 return Ne
36823729 case "@keet/remove-invitation-operation":
3683 return Oe
3730 return Ue
36843731 case "@keet/sendable-room-invitation":
3685 return Je
3732 return Oe
36863733 case "@keet/sendable-identity-invitation":
3687 return Ue
3734 return Je
36883735 case "@keet/sendable-contact-invitation":
36893736 return Ve
36903737 case "@keet/sendable-invitation":
……@@ -3698,7 +3745,7 @@ function ft(e) {
36983745 case "@keet/stop-indexing-operation":
36993746 return ed
37003747 case "@keet/join-request":
3701 return nd
3748 return od
37023749 case "@keet/accept-join-request-operation":
37033750 return rd
37043751 case "@keet/reject-join-request-operation":
……@@ -3736,111 +3783,111 @@ function ft(e) {
37363783 case "@keet/mention-display-item":
37373784 return Nd
37383785 case "@keet/link-preview":
3739 return Jd
3786 return Od
37403787 case "@keet/display-link-item":
37413788 return Hd
37423789 case "@keet/display":
3743 return en
3790 return eo
37443791 case "@keet/oplog-message":
3745 return cn
3792 return ro
37463793 case "@keet/index-message":
3747 return an
3794 return ao
37483795 case "@keet/full-index-message":
3749 return un
3796 return uo
37503797 case "@keet/message-status":
3751 return ln
3798 return lo
37523799 case "@keet/message-index-id":
3753 return fn
3800 return fo
37543801 case "@keet/thread":
3755 return yn
3802 return yo
37563803 case "@keet/chat-message-record":
3757 return vn
3804 return vo
37583805 case "@keet/full-chat-message-record":
3759 return wn
3806 return wo
37603807 case "@keet/add-chat-message-operation":
3761 return An
3808 return Ao
37623809 case "@keet/remove-chat-message-operation":
3763 return Dn
3810 return Do
37643811 case "@keet/update-chat-message-operation":
3765 return Mn
3812 return Co
37663813 case "@keet/pin-chat-message-operation":
3767 return qn
3814 return qo
37683815 case "@keet/reaction":
3769 return Fn
3816 return Fo
37703817 case "@keet/reactions-summary":
3771 return En
3818 return Eo
37723819 case "@keet/reactions-digest":
3773 return In
3820 return Io
37743821 case "@keet/add-reaction-operation":
3775 return jn
3822 return jo
37763823 case "@keet/remove-reaction-operation":
3777 return Jn
3824 return Oo
37783825 case "@keet/update-room-config-operation":
3779 return Hn
3826 return Ho
37803827 case "@keet/group-member":
3781 return zn
3828 return zo
37823829 case "@keet/user-registry-info":
3783 return Gn
3830 return Go
37843831 case "@keet/room-identity":
3785 return Wn
3832 return Wo
37863833 case "@keet/genesis-operation":
3787 return oo
3834 return on
37883835 case "@keet/upgrade-operation":
3789 return ro
3836 return cn
37903837 case "@keet/update-system-settings-operation":
3791 return ao
3838 return an
37923839 case "@keet-private-id/contact":
3793 return so
3840 return sn
37943841 case "@keet-private-id/v3-room-migration-info":
3795 return po
3842 return pn
37963843 case "@keet-private-id/run-v3-migration-operation":
3797 return fo
3844 return fn
37983845 case "@keet-private-id/update-identity-operation":
3799 return yo
3846 return yn
38003847 case "@keet-private-id/counters":
3801 return xo
3848 return xn
38023849 case "@keet-private-id/stats":
3803 return bo
3850 return bn
38043851 case "@keet-private-id/add-entropy-operation":
3805 return ko
3852 return kn
38063853 case "@keet-private-id/pending-invitation-identity":
3807 return vo
3854 return vn
38083855 case "@keet-private-id/pending-invitation":
3809 return ho
3856 return hn
38103857 case "@keet-private-id/resolve-pending-invitation-operation":
3811 return wo
3858 return wn
38123859 case "@keet-private-id/add-pending-invitation-operation":
3813 return Ao
3860 return An
38143861 case "@keet-private-id/remove-pending-invitation-operation":
3815 return Do
3862 return Dn
38163863 case "@keet-private-id/identity-swap":
3817 return So
3864 return Mn
38183865 case "@keet-private-id/room-status":
3819 return Co
3866 return Sn
38203867 case "@keet-private-id/room":
3821 return Fo
3868 return Fn
38223869 case "@keet-private-id/add-room-operation":
3823 return Bo
3870 return Bn
38243871 case "@keet-private-id/remove-room-operation":
3825 return No
3872 return Nn
38263873 case "@keet-private-id/update-room-status-operation":
3827 return Jo
3874 return On
38283875 case "@keet-private-id/contact-status":
3829 return Uo
3876 return Jn
38303877 case "@keet-private-id/contact-record":
3831 return Vo
3878 return Vn
38323879 case "@keet-private-id/add-contact-operation":
3833 return Go
3880 return Gn
38343881 case "@keet-private-id/update-contact-status-operation":
3835 return Wo
3882 return Wn
38363883 case "@keet-private-id/remove-contact-operation":
3837 return Yo
3884 return Yn
38383885 case "@keet-private-id/contact-request-status":
3839 return Zo
3886 return Zn
38403887 case "@keet-private-id/contact-request-body":
38413888 return ec
38423889 case "@keet-private-id/contact-request":
3843 return nc
3890 return oc
38443891 case "@keet-private-id/contact-request-record":
38453892 return tc
38463893 case "@keet-private-id/add-contact-request-operation":
……@@ -3870,9 +3917,9 @@ function ft(e) {
38703917 case "@keet/display-type":
38713918 return Rc
38723919 case "@keet/test-increment-operation":
3873 return Sc
3920 return Mc
38743921 case "@keet/test-collection-record-1":
3875 return Cc
3922 return Sc
38763923 case "@keet/migrate-abi-operation":
38773924 return Lc
38783925 case "@keet/system-settings-keys":
……@@ -3884,7 +3931,7 @@ function ft(e) {
38843931 case "@keet-private-id/unreads":
38853932 return jc
38863933 case "@keet-private-id/add-unreads-key-operation":
3887 return Jc
3934 return Oc
38883935 case "@keet-private-id/remove-unreads-key-operation":
38893936 return Vc
38903937 case "@keet/label-type":
……@@ -3902,9 +3949,9 @@ function ft(e) {
39023949 case "@keet/update-read-length-operation":
39033950 return dr
39043951 case "@keet/read-length":
3905 return nr
3906 case "@keet/tmp-removed-member":
39073952 return or
3953 case "@keet/tmp-removed-member":
3954 return nr
39083955 case "@keet-private-id/settings":
39093956 return cr
39103957 case "@keet-private-id/user-settings-key":
……@@ -3932,7 +3979,7 @@ function ft(e) {
39323979 case "@keet/leave-call":
39333980 return Dr
39343981 case "@keet/end-call":
3935 return Cr
3982 return Sr
39363983 case "@keet/add-call-stream":
39373984 return Lr
39383985 case "@keet/remove-call-stream":
……@@ -3946,35 +3993,37 @@ function ft(e) {
39463993 case "@keet/call-stream-record":
39473994 return Nr
39483995 case "@keet/build-type":
3949 return Or
3950 case "@keet/test-crash-operation":
39513996 return Ur
3997 case "@keet/test-crash-operation":
3998 return Jr
39523999 case "@keet/test-dispatch-error-operation":
39534000 return Hr
4001 case "@keet-private-id/shorten-device-attestation-operation":
4002 return Gr
39544003 default:
39554004 throw new Error("Encoder not found " + e)
39564005 }
39574006}
3958function mt(e, d = 20) {
3959 const o = ft(e)
4007function xt(e, d = 21) {
4008 const n = yt(e)
39604009 return {
39614010 preencode(e, c) {
3962 ;((n = d), o.preencode(e, c))
4011 ;((o = d), n.preencode(e, c))
39634012 },
39644013 encode(e, c) {
3965 ;((n = d), o.encode(e, c))
4014 ;((o = d), n.encode(e, c))
39664015 },
3967 decode: (e) => ((n = d), o.decode(e)),
4016 decode: (e) => ((o = d), n.decode(e)),
39684017 }
39694018}
3970const yt = mt
4019const bt = xt
39714020module.exports = {
3972 resolveStruct: yt,
3973 getStruct: mt,
3974 getEnum: lt,
3975 getEncoding: ft,
3976 encode: pt,
3977 decode: ut,
3978 setVersion: st,
3979 version: n,
4021 resolveStruct: bt,
4022 getStruct: xt,
4023 getEnum: mt,
4024 getEncoding: yt,
4025 encode: lt,
4026 decode: ft,
4027 setVersion: ut,
4028 version: o,
39804029}
@holepunchto/keet-core/schema/spec/contract/hyperschema/schema.json +47 -1
……@@ -1,5 +1,5 @@
11{
2 "version": 20,
2 "version": 21,
33 "schema": [
44 {
55 "name": "public-key",
……@@ -3219,6 +3219,11 @@
32193219 "name": "isFavorite",
32203220 "type": "bool",
32213221 "version": 18
3222 },
3223 {
3224 "name": "isUnread",
3225 "type": "bool",
3226 "version": 21
32223227 }
32233228 ]
32243229 },
……@@ -4409,6 +4414,11 @@
44094414 "name": "disableReadReceipts",
44104415 "type": "bool",
44114416 "version": 13
4417 },
4418 {
4419 "name": "stripAttachmentMetadata",
4420 "type": "bool",
4421 "version": 21
44124422 }
44134423 ]
44144424 },
……@@ -4420,6 +4430,10 @@
44204430 {
44214431 "key": "disableReadReceipts",
44224432 "version": 13
4433 },
4434 {
4435 "key": "stripAttachmentMetadata",
4436 "version": 21
44234437 }
44244438 ],
44254439 "strings": true
……@@ -4968,6 +4982,38 @@
49684982 "version": 20
49694983 }
49704984 ]
4985 },
4986 {
4987 "name": "shorten-device-attestation-operation",
4988 "namespace": "keet-private-id",
4989 "compact": false,
4990 "flagsPosition": -1,
4991 "fields": [
4992 {
4993 "name": "header",
4994 "required": true,
4995 "type": "@keet/operation-header",
4996 "version": 21
4997 },
4998 {
4999 "name": "deviceKey",
5000 "required": true,
5001 "type": "@keet/device-key",
5002 "version": 21
5003 },
5004 {
5005 "name": "deviceProof",
5006 "required": true,
5007 "type": "buffer",
5008 "version": 21
5009 },
5010 {
5011 "name": "writerProof",
5012 "required": true,
5013 "type": "buffer",
5014 "version": 21
5015 }
5016 ]
49715017 }
49725018 ]
49735019}
@holepunchto/keet-core/schema/spec/local/hyperdb/db.json +29 -1
……@@ -1,5 +1,5 @@
11{
2 "version": 5,
2 "version": 6,
33 "offset": 0,
44 "schema": [
55 {
……@@ -696,6 +696,34 @@
696696 "derived": false,
697697 "key": [],
698698 "trigger": null
699 },
700 {
701 "name": "ota-actions",
702 "namespace": "local",
703 "id": 43,
704 "type": 1,
705 "version": 6,
706 "versionField": null,
707 "indexes": [],
708 "schema": "@local/ota-actions",
709 "derived": false,
710 "key": [],
711 "trigger": null
712 },
713 {
714 "name": "device-attestations",
715 "namespace": "local",
716 "id": 44,
717 "type": 1,
718 "version": 6,
719 "versionField": null,
720 "indexes": [],
721 "schema": "@local/device-attestation",
722 "derived": false,
723 "key": [
724 "deviceKey"
725 ],
726 "trigger": null
699727 }
700728 ]
701729}
@holepunchto/keet-core/schema/spec/local/hyperdb/index.js +286 -158
……@@ -1,6 +1,6 @@
11const { IndexEncoder: e, c: n, b4a: t } = require("hyperdb/runtime"),
22 { version: o, getEncoding: r, setVersion: c } = require("./messages.js"),
3 l = { schema: o, db: 5 },
3 l = { schema: o, db: 6 },
44 d = require("../../../../lib/core/hyperdb/local/local.js"),
55 s = new e([], { prefix: 0 })
66function u(e) {
……@@ -15,7 +15,7 @@ function a(e, n, t) {
1515function f(e) {
1616 return {}
1717}
18const y = {
18const g = {
1919 name: "@local/stats",
2020 id: 0,
2121 version: 0,
……@@ -38,15 +38,15 @@ const y = {
3838 indexes: [],
3939 decodedVersion: 0,
4040 },
41 g = new e([], { prefix: 1 })
42function p(e) {
41 y = new e([], { prefix: 1 })
42function b(e) {
4343 return []
4444}
45const b = r("@local/migration-status")
45const p = r("@local/migration-status")
4646function m(e, n, t) {
4747 c(e)
4848 const o = { start: 0, end: t.byteLength, buffer: t }
49 return b.decode(o)
49 return p.decode(o)
5050}
5151function K(e) {
5252 return {}
……@@ -55,18 +55,18 @@ const v = {
5555 name: "@local/migrations",
5656 id: 1,
5757 version: 0,
58 encodeKey: (e) => g.encode([]),
58 encodeKey: (e) => y.encode([]),
5959 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
60 g.encodeRange({
61 gt: e ? p(e) : null,
62 lt: n ? p(n) : null,
63 gte: t ? p(t) : null,
64 lte: o ? p(o) : null,
60 y.encodeRange({
61 gt: e ? b(e) : null,
62 lt: n ? b(n) : null,
63 gte: t ? b(t) : null,
64 lte: o ? b(o) : null,
6565 }),
6666 encodeValue(e, n, o) {
6767 c(e)
6868 const r = { start: 0, end: 0, buffer: null }
69 return (b.preencode(r, o), (r.buffer = t.allocUnsafe(r.end)), b.encode(r, o), r.buffer)
69 return (p.preencode(r, o), (r.buffer = t.allocUnsafe(r.end)), p.encode(r, o), r.buffer)
7070 },
7171 trigger: null,
7272 reconstruct: m,
……@@ -79,15 +79,15 @@ function h(e) {
7979 return []
8080}
8181const R = r("@local/room-migration-stats")
82function U(e, n, t) {
82function w(e, n, t) {
8383 c(e)
8484 const o = { start: 0, end: t.byteLength, buffer: t }
8585 return R.decode(o)
8686}
87function w(e) {
87function U(e) {
8888 return {}
8989}
90const F = {
90const V = {
9191 name: "@local/room-migration-stats",
9292 id: 2,
9393 version: 0,
……@@ -105,27 +105,27 @@ const F = {
105105 return (R.preencode(r, o), (r.buffer = t.allocUnsafe(r.end)), R.encode(r, o), r.buffer)
106106 },
107107 trigger: null,
108 reconstruct: U,
109 reconstructKey: w,
108 reconstruct: w,
109 reconstructKey: U,
110110 indexes: [],
111111 decodedVersion: 0,
112112 },
113 V = new e([e.BUFFER], { prefix: 3 })
113 F = new e([e.BUFFER], { prefix: 3 })
114114function k(e) {
115115 const n = e.roomKey
116116 return void 0 === n ? [] : [n]
117117}
118118const B = r("@local/room-migration/hyperdb#3"),
119 I = d.roomMigrationsTrigger
120function E(e, n, t) {
121 const o = V.decode(n)
119 E = d.roomMigrationsTrigger
120function I(e, n, t) {
121 const o = F.decode(n)
122122 c(e)
123123 const r = { start: 0, end: t.byteLength, buffer: t },
124124 l = B.decode(r)
125125 return ((l.roomKey = o[0]), l)
126126}
127127function T(e) {
128 return { roomKey: V.decode(e)[0] }
128 return { roomKey: F.decode(e)[0] }
129129}
130130const L = {
131131 name: "@local/room-migrations",
……@@ -133,10 +133,10 @@ const L = {
133133 version: 0,
134134 encodeKey(e) {
135135 const n = [e.roomKey]
136 return V.encode(n)
136 return F.encode(n)
137137 },
138138 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
139 V.encodeRange({
139 F.encodeRange({
140140 gt: e ? k(e) : null,
141141 lt: n ? k(n) : null,
142142 gte: t ? k(t) : null,
……@@ -147,8 +147,8 @@ const L = {
147147 const r = { start: 0, end: 0, buffer: null }
148148 return (B.preencode(r, o), (r.buffer = t.allocUnsafe(r.end)), B.encode(r, o), r.buffer)
149149 },
150 trigger: I,
151 reconstruct: E,
150 trigger: E,
151 reconstruct: I,
152152 reconstructKey: T,
153153 indexes: [],
154154 decodedVersion: 0,
……@@ -409,44 +409,44 @@ const ae = {
409409}
410410Q.indexes.push(ae)
411411const fe = new e([e.BUFFER], { prefix: 12 })
412function ye(e) {
412function ge(e) {
413413 const n = e.capabilities?.discoveryKeyPair?.publicKey
414414 return void 0 === n ? [] : [n]
415415}
416const ge = {
416const ye = {
417417 name: "@local/rooms-by-discovery",
418418 version: 0,
419419 id: 12,
420 encodeKey: (e) => fe.encode(ye(e)),
420 encodeKey: (e) => fe.encode(ge(e)),
421421 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
422422 fe.encodeRange({
423 gt: e ? ye(e) : null,
424 lt: n ? ye(n) : null,
425 gte: t ? ye(t) : null,
426 lte: o ? ye(o) : null,
423 gt: e ? ge(e) : null,
424 lt: n ? ge(n) : null,
425 gte: t ? ge(t) : null,
426 lte: o ? ge(o) : null,
427427 }),
428 encodeValue: (e) => ge.collection.encodeKey(e),
428 encodeValue: (e) => ye.collection.encodeKey(e),
429429 encodeIndexKeys: (e, n) => [fe.encode([e.capabilities.discoveryKeyPair.publicKey])],
430430 reconstruct: (e, n) => n,
431431 offset: Q.indexes.length,
432432 collection: Q,
433433}
434Q.indexes.push(ge)
435const pe = new e([e.BUFFER], { prefix: 13 })
436function be(e) {
434Q.indexes.push(ye)
435const be = new e([e.BUFFER], { prefix: 13 })
436function pe(e) {
437437 const n = e.roomKey
438438 return void 0 === n ? [] : [n]
439439}
440440const me = r("@local/room-preferences/hyperdb#13")
441441function Ke(e, n, t) {
442 const o = pe.decode(n)
442 const o = be.decode(n)
443443 c(e)
444444 const r = { start: 0, end: t.byteLength, buffer: t },
445445 l = me.decode(r)
446446 return ((l.roomKey = o[0]), l)
447447}
448448function ve(e) {
449 return { roomKey: pe.decode(e)[0] }
449 return { roomKey: be.decode(e)[0] }
450450}
451451const xe = {
452452 name: "@local/room-preferences",
……@@ -454,14 +454,14 @@ const xe = {
454454 version: 0,
455455 encodeKey(e) {
456456 const n = [e.roomKey]
457 return pe.encode(n)
457 return be.encode(n)
458458 },
459459 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
460 pe.encodeRange({
461 gt: e ? be(e) : null,
462 lt: n ? be(n) : null,
463 gte: t ? be(t) : null,
464 lte: o ? be(o) : null,
460 be.encodeRange({
461 gt: e ? pe(e) : null,
462 lt: n ? pe(n) : null,
463 gte: t ? pe(t) : null,
464 lte: o ? pe(o) : null,
465465 }),
466466 encodeValue(e, n, o) {
467467 c(e)
……@@ -479,18 +479,18 @@ function Re(e) {
479479 const n = e.mailbox
480480 return void 0 === n ? [] : [n]
481481}
482const Ue = r("@local/writer/hyperdb#14")
483function we(e, n, t) {
482const we = r("@local/writer/hyperdb#14")
483function Ue(e, n, t) {
484484 const o = he.decode(n)
485485 c(e)
486486 const r = { start: 0, end: t.byteLength, buffer: t },
487 l = Ue.decode(r)
487 l = we.decode(r)
488488 return ((l.mailbox = o[0]), l)
489489}
490function Fe(e) {
490function Ve(e) {
491491 return { mailbox: he.decode(e)[0] }
492492}
493const Ve = {
493const Fe = {
494494 name: "@local/writers",
495495 id: 14,
496496 version: 0,
……@@ -508,33 +508,33 @@ const Ve = {
508508 encodeValue(e, n, o) {
509509 c(e)
510510 const r = { start: 0, end: 0, buffer: null }
511 return (Ue.preencode(r, o), (r.buffer = t.allocUnsafe(r.end)), Ue.encode(r, o), r.buffer)
511 return (we.preencode(r, o), (r.buffer = t.allocUnsafe(r.end)), we.encode(r, o), r.buffer)
512512 },
513513 trigger: null,
514 reconstruct: we,
515 reconstructKey: Fe,
514 reconstruct: Ue,
515 reconstructKey: Ve,
516516 indexes: [],
517517 decodedVersion: 0,
518518 },
519519 ke = new e([e.BUFFER], { prefix: 15 }),
520520 Be = d.writersByWakeupTopicMap
521function Ie(e) {
521function Ee(e) {
522522 const n = e.wakeupTopic
523523 return void 0 === n ? [] : [n]
524524}
525const Ee = {
525const Ie = {
526526 name: "@local/writers-by-wakeup-topic",
527527 version: 0,
528528 id: 15,
529 encodeKey: (e) => ke.encode(Ie(e)),
529 encodeKey: (e) => ke.encode(Ee(e)),
530530 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
531531 ke.encodeRange({
532 gt: e ? Ie(e) : null,
533 lt: n ? Ie(n) : null,
534 gte: t ? Ie(t) : null,
535 lte: o ? Ie(o) : null,
532 gt: e ? Ee(e) : null,
533 lt: n ? Ee(n) : null,
534 gte: t ? Ee(t) : null,
535 lte: o ? Ee(o) : null,
536536 }),
537 encodeValue: (e) => Ee.collection.encodeKey(e),
537 encodeValue: (e) => Ie.collection.encodeKey(e),
538538 encodeIndexKeys(e, n) {
539539 const t = Be(e, n),
540540 o = new Array(t.length)
……@@ -545,10 +545,10 @@ const Ee = {
545545 return o
546546 },
547547 reconstruct: (e, n) => n,
548 offset: Ve.indexes.length,
549 collection: Ve,
548 offset: Fe.indexes.length,
549 collection: Fe,
550550}
551Ve.indexes.push(Ee)
551Fe.indexes.push(Ie)
552552const Te = new e([e.BUFFER], { prefix: 16 }),
553553 Le = d.writersByRoomKeyMap
554554function Ne(e) {
……@@ -578,10 +578,10 @@ const De = {
578578 return o
579579 },
580580 reconstruct: (e, n) => n,
581 offset: Ve.indexes.length,
582 collection: Ve,
581 offset: Fe.indexes.length,
582 collection: Fe,
583583}
584Ve.indexes.push(De)
584Fe.indexes.push(De)
585585const Ae = new e([e.BUFFER], { prefix: 17 })
586586function Pe(e) {
587587 const n = e.key
……@@ -822,8 +822,8 @@ const fn = {
822822 collection: sn,
823823}
824824sn.indexes.push(fn)
825const yn = new e([e.BUFFER, e.UINT], { prefix: 23 })
826function gn(e) {
825const gn = new e([e.BUFFER, e.UINT], { prefix: 23 })
826function yn(e) {
827827 const n = [],
828828 t = e.file?.pointer?.externalBlob?.key
829829 if (void 0 === t) return n
……@@ -831,12 +831,12 @@ function gn(e) {
831831 const o = e.file?.pointer?.externalBlob?.blob?.blockOffset
832832 return (void 0 === o || n.push(o), n)
833833}
834const pn = r("@local/file/hyperdb#23")
835function bn(e, n, t) {
836 const o = yn.decode(n)
834const bn = r("@local/file/hyperdb#23")
835function pn(e, n, t) {
836 const o = gn.decode(n)
837837 c(e)
838838 const r = { start: 0, end: t.byteLength, buffer: t },
839 l = pn.decode(r)
839 l = bn.decode(r)
840840 return (
841841 (l.file.pointer.externalBlob.key = o[0]),
842842 (l.file.pointer.externalBlob.blob.blockOffset = o[1]),
……@@ -845,7 +845,7 @@ function bn(e, n, t) {
845845 )
846846}
847847function mn(e) {
848 return { file: { pointer: { externalBlob: { blob: { blockOffset: yn.decode(e)[1] } } } } }
848 return { file: { pointer: { externalBlob: { blob: { blockOffset: gn.decode(e)[1] } } } } }
849849}
850850const Kn = {
851851 name: "@local/blob-files",
……@@ -853,28 +853,28 @@ const Kn = {
853853 version: 4,
854854 encodeKey(e) {
855855 const n = [e.file.pointer.externalBlob.key, e.file.pointer.externalBlob.blob.blockOffset]
856 return yn.encode(n)
856 return gn.encode(n)
857857 },
858858 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
859 yn.encodeRange({
860 gt: e ? gn(e) : null,
861 lt: n ? gn(n) : null,
862 gte: t ? gn(t) : null,
863 lte: o ? gn(o) : null,
859 gn.encodeRange({
860 gt: e ? yn(e) : null,
861 lt: n ? yn(n) : null,
862 gte: t ? yn(t) : null,
863 lte: o ? yn(o) : null,
864864 }),
865865 encodeValue(e, n, o) {
866866 c(e)
867867 const r = { start: 0, end: 0, buffer: null }
868868 return (
869869 (o.version = n),
870 pn.preencode(r, o),
870 bn.preencode(r, o),
871871 (r.buffer = t.allocUnsafe(r.end)),
872 pn.encode(r, o),
872 bn.encode(r, o),
873873 r.buffer
874874 )
875875 },
876876 trigger: null,
877 reconstruct: bn,
877 reconstruct: pn,
878878 reconstructKey: mn,
879879 indexes: [],
880880 decodedVersion: 0,
……@@ -901,14 +901,14 @@ function Rn(e, n, t) {
901901 (l.file.pointer.externalDrive.key = o[0]),
902902 (l.file.pointer.externalDrive.path = o[1]),
903903 (l.file.pointer.externalDrive.version = o[2]),
904 (wn.decodedVersion = l.version),
904 (Un.decodedVersion = l.version),
905905 l
906906 )
907907}
908function Un(e) {
908function wn(e) {
909909 return { file: { pointer: { externalDrive: { version: vn.decode(e)[2] } } } }
910910}
911const wn = {
911const Un = {
912912 name: "@local/drive-files",
913913 id: 24,
914914 version: 4,
……@@ -940,12 +940,12 @@ const wn = {
940940 },
941941 trigger: null,
942942 reconstruct: Rn,
943 reconstructKey: Un,
943 reconstructKey: wn,
944944 indexes: [],
945945 decodedVersion: 0,
946946 },
947 Fn = new e([e.BUFFER, e.BUFFER, e.UINT], { prefix: 25 })
948function Vn(e) {
947 Vn = new e([e.BUFFER, e.BUFFER, e.UINT], { prefix: 25 })
948function Fn(e) {
949949 const n = [],
950950 t = e.roomKey
951951 if (void 0 === t) return n
……@@ -960,17 +960,17 @@ const kn = {
960960 name: "@local/blob-files-by-room",
961961 version: 0,
962962 id: 25,
963 encodeKey: (e) => Fn.encode(Vn(e)),
963 encodeKey: (e) => Vn.encode(Fn(e)),
964964 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
965 Fn.encodeRange({
966 gt: e ? Vn(e) : null,
967 lt: n ? Vn(n) : null,
968 gte: t ? Vn(t) : null,
969 lte: o ? Vn(o) : null,
965 Vn.encodeRange({
966 gt: e ? Fn(e) : null,
967 lt: n ? Fn(n) : null,
968 gte: t ? Fn(t) : null,
969 lte: o ? Fn(o) : null,
970970 }),
971971 encodeValue: (e) => kn.collection.encodeKey(e),
972972 encodeIndexKeys: (e, n) => [
973 Fn.encode([
973 Vn.encode([
974974 e.roomKey,
975975 e.file.pointer.externalBlob.key,
976976 e.file.pointer.externalBlob.blob.blockOffset,
……@@ -982,7 +982,7 @@ const kn = {
982982}
983983Kn.indexes.push(kn)
984984const Bn = new e([e.BUFFER, e.BUFFER, e.STRING, e.UINT], { prefix: 26 })
985function In(e) {
985function En(e) {
986986 const n = [],
987987 t = e.roomKey
988988 if (void 0 === t) return n
……@@ -996,19 +996,19 @@ function In(e) {
996996 const c = e.file?.pointer?.externalDrive?.version
997997 return (void 0 === c || n.push(c), n)
998998}
999const En = {
999const In = {
10001000 name: "@local/drive-files-by-room",
10011001 version: 0,
10021002 id: 26,
1003 encodeKey: (e) => Bn.encode(In(e)),
1003 encodeKey: (e) => Bn.encode(En(e)),
10041004 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
10051005 Bn.encodeRange({
1006 gt: e ? In(e) : null,
1007 lt: n ? In(n) : null,
1008 gte: t ? In(t) : null,
1009 lte: o ? In(o) : null,
1006 gt: e ? En(e) : null,
1007 lt: n ? En(n) : null,
1008 gte: t ? En(t) : null,
1009 lte: o ? En(o) : null,
10101010 }),
1011 encodeValue: (e) => En.collection.encodeKey(e),
1011 encodeValue: (e) => In.collection.encodeKey(e),
10121012 encodeIndexKeys: (e, n) => [
10131013 Bn.encode([
10141014 e.roomKey,
……@@ -1018,10 +1018,10 @@ const En = {
10181018 ]),
10191019 ],
10201020 reconstruct: (e, n) => n,
1021 offset: wn.indexes.length,
1022 collection: wn,
1021 offset: Un.indexes.length,
1022 collection: Un,
10231023}
1024wn.indexes.push(En)
1024Un.indexes.push(In)
10251025const Tn = new e([e.BUFFER], { prefix: 27 })
10261026function Ln(e) {
10271027 const n = e.discoveryPublicKey
……@@ -1268,10 +1268,10 @@ function ft(e, n, t) {
12681268 l = at.decode(r)
12691269 return ((l.roomKey = o[0]), l)
12701270}
1271function yt(e) {
1271function gt(e) {
12721272 return { roomKey: ut.decode(e)[0] }
12731273}
1274const gt = {
1274const yt = {
12751275 name: "@local/unreads",
12761276 id: 33,
12771277 version: 0,
……@@ -1293,12 +1293,12 @@ const gt = {
12931293 },
12941294 trigger: null,
12951295 reconstruct: ft,
1296 reconstructKey: yt,
1296 reconstructKey: gt,
12971297 indexes: [],
12981298 decodedVersion: 0,
12991299 },
1300 pt = new e([], { prefix: 34 })
1301function bt(e) {
1300 bt = new e([], { prefix: 34 })
1301function pt(e) {
13021302 return []
13031303}
13041304const mt = r("@local/hyperdht-record")
……@@ -1314,13 +1314,13 @@ const xt = {
13141314 name: "@local/hyperdht",
13151315 id: 34,
13161316 version: 0,
1317 encodeKey: (e) => pt.encode([]),
1317 encodeKey: (e) => bt.encode([]),
13181318 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
1319 pt.encodeRange({
1320 gt: e ? bt(e) : null,
1321 lt: n ? bt(n) : null,
1322 gte: t ? bt(t) : null,
1323 lte: o ? bt(o) : null,
1319 bt.encodeRange({
1320 gt: e ? pt(e) : null,
1321 lt: n ? pt(n) : null,
1322 gte: t ? pt(t) : null,
1323 lte: o ? pt(o) : null,
13241324 }),
13251325 encodeValue(e, n, o) {
13261326 c(e)
……@@ -1338,18 +1338,18 @@ function Rt(e) {
13381338 const n = e.timestamp
13391339 return void 0 === n ? [] : [n]
13401340}
1341const Ut = r("@local/error-record/hyperdb#35")
1342function wt(e, n, t) {
1341const wt = r("@local/error-record/hyperdb#35")
1342function Ut(e, n, t) {
13431343 const o = ht.decode(n)
13441344 c(e)
13451345 const r = { start: 0, end: t.byteLength, buffer: t },
1346 l = Ut.decode(r)
1346 l = wt.decode(r)
13471347 return ((l.timestamp = o[0]), l)
13481348}
1349function Ft(e) {
1349function Vt(e) {
13501350 return { timestamp: ht.decode(e)[0] }
13511351}
1352const Vt = {
1352const Ft = {
13531353 name: "@local/errors",
13541354 id: 35,
13551355 version: 0,
……@@ -1367,11 +1367,11 @@ const Vt = {
13671367 encodeValue(e, n, o) {
13681368 c(e)
13691369 const r = { start: 0, end: 0, buffer: null }
1370 return (Ut.preencode(r, o), (r.buffer = t.allocUnsafe(r.end)), Ut.encode(r, o), r.buffer)
1370 return (wt.preencode(r, o), (r.buffer = t.allocUnsafe(r.end)), wt.encode(r, o), r.buffer)
13711371 },
13721372 trigger: null,
1373 reconstruct: wt,
1374 reconstructKey: Ft,
1373 reconstruct: Ut,
1374 reconstructKey: Vt,
13751375 indexes: [],
13761376 decodedVersion: 0,
13771377 },
……@@ -1384,7 +1384,7 @@ function Bt(e) {
13841384 const o = e.timestamp
13851385 return (void 0 === o || n.push(o), n)
13861386}
1387const It = {
1387const Et = {
13881388 name: "@local/errors-by-code",
13891389 version: 0,
13901390 id: 36,
……@@ -1396,21 +1396,21 @@ const It = {
13961396 gte: t ? Bt(t) : null,
13971397 lte: o ? Bt(o) : null,
13981398 }),
1399 encodeValue: (e) => It.collection.encodeKey(e),
1399 encodeValue: (e) => Et.collection.encodeKey(e),
14001400 encodeIndexKeys: (e, n) => [kt.encode([e.code, e.timestamp])],
14011401 reconstruct: (e, n) => n,
1402 offset: Vt.indexes.length,
1403 collection: Vt,
1402 offset: Ft.indexes.length,
1403 collection: Ft,
14041404}
1405Vt.indexes.push(It)
1406const Et = new e([e.BUFFER], { prefix: 37 })
1405Ft.indexes.push(Et)
1406const It = new e([e.BUFFER], { prefix: 37 })
14071407function Tt(e) {
14081408 const n = e.roomKey
14091409 return void 0 === n ? [] : [n]
14101410}
14111411const Lt = r("@local/file-stats/hyperdb#37")
14121412function Nt(e, t, o) {
1413 const r = Et.decode(t)
1413 const r = It.decode(t)
14141414 c(e)
14151415 const l = { start: 0, end: o.byteLength, buffer: o },
14161416 d = n.uint.decode(l)
……@@ -1420,7 +1420,7 @@ function Nt(e, t, o) {
14201420 return ((s.roomKey = r[0]), s)
14211421}
14221422function Dt(e) {
1423 return { roomKey: Et.decode(e)[0] }
1423 return { roomKey: It.decode(e)[0] }
14241424}
14251425const At = {
14261426 name: "@local/file-stats",
……@@ -1428,10 +1428,10 @@ const At = {
14281428 version: 2,
14291429 encodeKey(e) {
14301430 const n = [e.roomKey]
1431 return Et.encode(n)
1431 return It.encode(n)
14321432 },
14331433 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
1434 Et.encodeRange({
1434 It.encodeRange({
14351435 gt: e ? Tt(e) : null,
14361436 lt: n ? Tt(n) : null,
14371437 gte: t ? Tt(t) : null,
……@@ -1562,10 +1562,10 @@ const zt = {
15621562 ]),
15631563 ],
15641564 reconstruct: (e, n) => n,
1565 offset: wn.indexes.length,
1566 collection: wn,
1565 offset: Un.indexes.length,
1566 collection: Un,
15671567}
1568wn.indexes.push(zt)
1568Un.indexes.push(zt)
15691569const Ht = new e([], { prefix: 41 })
15701570function Jt(e) {
15711571 return []
……@@ -1656,16 +1656,140 @@ const oo = {
16561656 indexes: [],
16571657 decodedVersion: 0,
16581658 },
1659 ro = [y, v, F, L, q, Q, xe, Ve, Se, He, $e, sn, Kn, wn, Pn, Hn, $n, rt, gt, xt, Vt, At, Zt, oo],
1660 co = [A, Z, ne, ce, se, ae, ge, Ee, De, tn, fn, kn, En, Sn, st, It, Gt, Ct, zt]
1661function lo(e) {
1659 ro = new e([], { prefix: 43 })
1660function co(e) {
1661 return []
1662}
1663const lo = r("@local/ota-actions")
1664function so(e, t, o) {
1665 c(e)
1666 const r = { start: 0, end: o.byteLength, buffer: o },
1667 l = n.uint.decode(r)
1668 if (0 !== l) throw new Error("Unknown collection type: " + l)
1669 return ((io.decodedVersion = n.uint.decode(r)), lo.decode(r))
1670}
1671function uo(e) {
1672 return {}
1673}
1674const io = {
1675 name: "@local/ota-actions",
1676 id: 43,
1677 version: 6,
1678 encodeKey: (e) => ro.encode([]),
1679 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
1680 ro.encodeRange({
1681 gt: e ? co(e) : null,
1682 lt: n ? co(n) : null,
1683 gte: t ? co(t) : null,
1684 lte: o ? co(o) : null,
1685 }),
1686 encodeValue(e, n, o) {
1687 c(e)
1688 const r = { start: 0, end: 2, buffer: null }
1689 return (
1690 lo.preencode(r, o),
1691 (r.buffer = t.allocUnsafe(r.end)),
1692 (r.buffer[r.start++] = 0),
1693 (r.buffer[r.start++] = n),
1694 lo.encode(r, o),
1695 r.buffer
1696 )
1697 },
1698 trigger: null,
1699 reconstruct: so,
1700 reconstructKey: uo,
1701 indexes: [],
1702 decodedVersion: 0,
1703 },
1704 ao = new e([e.BUFFER], { prefix: 44 })
1705function fo(e) {
1706 const n = e.deviceKey
1707 return void 0 === n ? [] : [n]
1708}
1709const go = r("@local/device-attestation/hyperdb#44")
1710function yo(e, t, o) {
1711 const r = ao.decode(t)
1712 c(e)
1713 const l = { start: 0, end: o.byteLength, buffer: o },
1714 d = n.uint.decode(l)
1715 if (0 !== d) throw new Error("Unknown collection type: " + d)
1716 po.decodedVersion = n.uint.decode(l)
1717 const s = go.decode(l)
1718 return ((s.deviceKey = r[0]), s)
1719}
1720function bo(e) {
1721 return { deviceKey: ao.decode(e)[0] }
1722}
1723const po = {
1724 name: "@local/device-attestations",
1725 id: 44,
1726 version: 6,
1727 encodeKey(e) {
1728 const n = [e.deviceKey]
1729 return ao.encode(n)
1730 },
1731 encodeKeyRange: ({ gt: e, lt: n, gte: t, lte: o } = {}) =>
1732 ao.encodeRange({
1733 gt: e ? fo(e) : null,
1734 lt: n ? fo(n) : null,
1735 gte: t ? fo(t) : null,
1736 lte: o ? fo(o) : null,
1737 }),
1738 encodeValue(e, n, o) {
1739 c(e)
1740 const r = { start: 0, end: 2, buffer: null }
1741 return (
1742 go.preencode(r, o),
1743 (r.buffer = t.allocUnsafe(r.end)),
1744 (r.buffer[r.start++] = 0),
1745 (r.buffer[r.start++] = n),
1746 go.encode(r, o),
1747 r.buffer
1748 )
1749 },
1750 trigger: null,
1751 reconstruct: yo,
1752 reconstructKey: bo,
1753 indexes: [],
1754 decodedVersion: 0,
1755 },
1756 mo = [
1757 g,
1758 v,
1759 V,
1760 L,
1761 q,
1762 Q,
1763 xe,
1764 Fe,
1765 Se,
1766 He,
1767 $e,
1768 sn,
1769 Kn,
1770 Un,
1771 Pn,
1772 Hn,
1773 $n,
1774 rt,
1775 yt,
1776 xt,
1777 Ft,
1778 At,
1779 Zt,
1780 oo,
1781 io,
1782 po,
1783 ],
1784 Ko = [A, Z, ne, ce, se, ae, ye, Ie, De, tn, fn, kn, In, Sn, st, Et, Gt, Ct, zt]
1785function vo(e) {
16621786 switch (e) {
16631787 case "@local/stats":
1664 return y
1788 return g
16651789 case "@local/migrations":
16661790 return v
16671791 case "@local/room-migration-stats":
1668 return F
1792 return V
16691793 case "@local/room-migrations":
16701794 return L
16711795 case "@local/identity":
……@@ -1675,7 +1799,7 @@ function lo(e) {
16751799 case "@local/room-preferences":
16761800 return xe
16771801 case "@local/writers":
1678 return Ve
1802 return Fe
16791803 case "@local/members":
16801804 return Se
16811805 case "@local/devices":
……@@ -1687,7 +1811,7 @@ function lo(e) {
16871811 case "@local/blob-files":
16881812 return Kn
16891813 case "@local/drive-files":
1690 return wn
1814 return Un
16911815 case "@local/background-sync":
16921816 return Pn
16931817 case "@local/writer-appends":
……@@ -1697,22 +1821,26 @@ function lo(e) {
16971821 case "@local/debug":
16981822 return rt
16991823 case "@local/unreads":
1700 return gt
1824 return yt
17011825 case "@local/hyperdht":
17021826 return xt
17031827 case "@local/errors":
1704 return Vt
1828 return Ft
17051829 case "@local/file-stats":
17061830 return At
17071831 case "@local/file-gc-info":
17081832 return Zt
17091833 case "@local/environment":
17101834 return oo
1835 case "@local/ota-actions":
1836 return io
1837 case "@local/device-attestations":
1838 return po
17111839 default:
17121840 return null
17131841 }
17141842}
1715function so(e) {
1843function xo(e) {
17161844 switch (e) {
17171845 case "@local/room-migrations-by-priority":
17181846 return A
……@@ -1727,9 +1855,9 @@ function so(e) {
17271855 case "@local/rooms-by-mailbox":
17281856 return ae
17291857 case "@local/rooms-by-discovery":
1730 return ge
1858 return ye
17311859 case "@local/writers-by-wakeup-topic":
1732 return Ee
1860 return Ie
17331861 case "@local/writers-by-room-key":
17341862 return De
17351863 case "@local/blocked-contacts":
……@@ -1739,13 +1867,13 @@ function so(e) {
17391867 case "@local/blob-files-by-room":
17401868 return kn
17411869 case "@local/drive-files-by-room":
1742 return En
1870 return In
17431871 case "@local/background-sync-by-dirty":
17441872 return Sn
17451873 case "@local/rooms-by-contact":
17461874 return st
17471875 case "@local/errors-by-code":
1748 return It
1876 return Et
17491877 case "@local/rooms-by-favorite-and-timestamp":
17501878 return Gt
17511879 case "@local/blob-files-by-last-accessed":
……@@ -1758,8 +1886,8 @@ function so(e) {
17581886}
17591887module.exports = {
17601888 versions: l,
1761 collections: ro,
1762 indexes: co,
1763 resolveCollection: lo,
1764 resolveIndex: so,
1889 collections: mo,
1890 indexes: Ko,
1891 resolveCollection: vo,
1892 resolveIndex: xo,
17651893}
@holepunchto/keet-core/schema/spec/local/hyperdb/messages.js +520 -415
……@@ -1,5 +1,5 @@
11const { c: e } = require("hyperschema/runtime"),
2 d = 30
2 d = 31
33let o = d
44const n = {
55 preencode(d, o) {
……@@ -90,7 +90,7 @@ const n = {
9090 byteLength: e.uint.decode(d),
9191 }),
9292 },
93 l = {
93 p = {
9494 preencode(d, o) {
9595 ;(e.uint.preencode(d, o.width), e.uint.preencode(d, o.height))
9696 },
……@@ -99,13 +99,13 @@ const n = {
9999 },
100100 decode: (d) => ({ width: e.uint.decode(d), height: e.uint.decode(d) }),
101101 },
102 p = e.frame(l),
102 l = e.frame(p),
103103 u = {
104104 preencode(d, o) {
105105 ;(d.end++,
106106 o.name && e.string.preencode(d, o.name),
107107 o.mimetype && e.string.preencode(d, o.mimetype),
108 o.dimensions && p.preencode(d, o.dimensions),
108 o.dimensions && l.preencode(d, o.dimensions),
109109 o.userdata && e.buffer.preencode(d, o.userdata),
110110 o.duration && e.uint.preencode(d, o.duration))
111111 },
……@@ -120,7 +120,7 @@ const n = {
120120 ;(e.uint.encode(d, n),
121121 o.name && e.string.encode(d, o.name),
122122 o.mimetype && e.string.encode(d, o.mimetype),
123 o.dimensions && p.encode(d, o.dimensions),
123 o.dimensions && l.encode(d, o.dimensions),
124124 o.userdata && e.buffer.encode(d, o.userdata),
125125 o.duration && e.uint.encode(d, o.duration))
126126 },
……@@ -129,7 +129,7 @@ const n = {
129129 return {
130130 name: 1 & o ? e.string.decode(d) : null,
131131 mimetype: 2 & o ? e.string.decode(d) : null,
132 dimensions: 4 & o ? p.decode(d) : null,
132 dimensions: 4 & o ? l.decode(d) : null,
133133 userdata: 8 & o ? e.buffer.decode(d) : null,
134134 duration: 16 & o ? e.uint.decode(d) : 0,
135135 isPreview: !!(32 & o),
……@@ -204,7 +204,7 @@ const n = {
204204 ;(v.preencode(d, o.pointer),
205205 d.end++,
206206 o.metadata && k.preencode(d, o.metadata),
207 o.preview && ja.preencode(d, o.preview),
207 o.preview && Ea.preencode(d, o.preview),
208208 o.hash && e.fixed32.preencode(d, o.hash))
209209 },
210210 encode(d, o) {
……@@ -212,7 +212,7 @@ const n = {
212212 ;(v.encode(d, o.pointer),
213213 e.uint.encode(d, n),
214214 o.metadata && k.encode(d, o.metadata),
215 o.preview && ja.encode(d, o.preview),
215 o.preview && Ea.encode(d, o.preview),
216216 o.hash && e.fixed32.encode(d, o.hash))
217217 },
218218 decode(d) {
……@@ -221,7 +221,7 @@ const n = {
221221 return {
222222 pointer: o,
223223 metadata: 1 & n ? k.decode(d) : null,
224 preview: 2 & n ? ja.decode(d) : null,
224 preview: 2 & n ? Ea.decode(d) : null,
225225 hash: 4 & n ? e.fixed32.decode(d) : null,
226226 }
227227 },
……@@ -558,9 +558,9 @@ const n = {
558558 preencode(d, n) {
559559 ;(d.end++,
560560 n.title && e.string.preencode(d, n.title),
561 n.avatar && La.preencode(d, n.avatar),
561 n.avatar && Va.preencode(d, n.avatar),
562562 n.description && e.string.preencode(d, n.description),
563 o >= 17 && n.supportedLanguages && Fa.preencode(d, n.supportedLanguages),
563 o >= 17 && n.supportedLanguages && Oa.preencode(d, n.supportedLanguages),
564564 o >= 19 && n.blindPeers && Y.preencode(d, n.blindPeers))
565565 },
566566 encode(d, n) {
……@@ -572,18 +572,18 @@ const n = {
572572 (o >= 19 && n.blindPeers ? 16 : 0)
573573 ;(e.uint.encode(d, c),
574574 n.title && e.string.encode(d, n.title),
575 n.avatar && La.encode(d, n.avatar),
575 n.avatar && Va.encode(d, n.avatar),
576576 n.description && e.string.encode(d, n.description),
577 o >= 17 && n.supportedLanguages && Fa.encode(d, n.supportedLanguages),
577 o >= 17 && n.supportedLanguages && Oa.encode(d, n.supportedLanguages),
578578 o >= 19 && n.blindPeers && Y.encode(d, n.blindPeers))
579579 },
580580 decode(d) {
581581 const n = e.uint.decode(d)
582582 return {
583583 title: 1 & n ? e.string.decode(d) : null,
584 avatar: 2 & n ? La.decode(d) : null,
584 avatar: 2 & n ? Va.decode(d) : null,
585585 description: 4 & n ? e.string.decode(d) : null,
586 supportedLanguages: o >= 17 && 8 & n ? Fa.decode(d) : null,
586 supportedLanguages: o >= 17 && 8 & n ? Oa.decode(d) : null,
587587 blindPeers: o >= 19 && 16 & n ? Y.decode(d) : null,
588588 }
589589 },
……@@ -643,7 +643,7 @@ const n = {
643643 ;(e.fixed32.preencode(d, o.key),
644644 e.fixed32.preencode(d, o.memberKey),
645645 te.preencode(d, o.status),
646 qa.preencode(d, o.profile),
646 Na.preencode(d, o.profile),
647647 d.end++,
648648 o.invitation && ie.preencode(d, o.invitation))
649649 },
……@@ -652,7 +652,7 @@ const n = {
652652 ;(e.fixed32.encode(d, o.key),
653653 e.fixed32.encode(d, o.memberKey),
654654 te.encode(d, o.status),
655 qa.encode(d, o.profile),
655 Na.encode(d, o.profile),
656656 e.uint.encode(d, n),
657657 o.invitation && ie.encode(d, o.invitation))
658658 },
……@@ -660,7 +660,7 @@ const n = {
660660 key: e.fixed32.decode(d),
661661 memberKey: e.fixed32.decode(d),
662662 status: te.decode(d),
663 profile: qa.decode(d),
663 profile: Na.decode(d),
664664 invitation: 1 & e.uint.decode(d) ? ie.decode(d) : null,
665665 }),
666666 },
……@@ -670,7 +670,7 @@ const n = {
670670 d.end++,
671671 o.mailbox && e.fixed32.preencode(d, o.mailbox),
672672 o.displayName && e.string.preencode(d, o.displayName),
673 o.avatar && Ba.preencode(d, o.avatar),
673 o.avatar && Ua.preencode(d, o.avatar),
674674 o.username && e.string.preencode(d, o.username))
675675 },
676676 encode(d, o) {
……@@ -680,7 +680,7 @@ const n = {
680680 e.uint.encode(d, n),
681681 o.mailbox && e.fixed32.encode(d, o.mailbox),
682682 o.displayName && e.string.encode(d, o.displayName),
683 o.avatar && Ba.encode(d, o.avatar),
683 o.avatar && Ua.encode(d, o.avatar),
684684 o.username && e.string.encode(d, o.username))
685685 },
686686 decode(d) {
……@@ -690,12 +690,12 @@ const n = {
690690 timestamp: o,
691691 mailbox: 1 & n ? e.fixed32.decode(d) : null,
692692 displayName: 2 & n ? e.string.decode(d) : null,
693 avatar: 4 & n ? Ba.decode(d) : null,
693 avatar: 4 & n ? Ua.decode(d) : null,
694694 username: 8 & n ? e.string.decode(d) : null,
695695 }
696696 },
697697 },
698 le = {
698 pe = {
699699 preencode(d, n) {
700700 ;(d.end++,
701701 n.swarmKey && e.fixed32.preencode(d, n.swarmKey),
……@@ -723,24 +723,24 @@ const n = {
723723 }
724724 },
725725 },
726 pe = e.frame(se),
726 le = e.frame(se),
727727 ue = {
728728 preencode(e, d) {
729 ;(pe.preencode(e, d.profile), ce.preencode(e, d.attestation))
729 ;(le.preencode(e, d.profile), ce.preencode(e, d.attestation))
730730 },
731731 encode(e, d) {
732 ;(pe.encode(e, d.profile), ce.encode(e, d.attestation))
732 ;(le.encode(e, d.profile), ce.encode(e, d.attestation))
733733 },
734 decode: (e) => ({ profile: pe.decode(e), attestation: ce.decode(e) }),
734 decode: (e) => ({ profile: le.decode(e), attestation: ce.decode(e) }),
735735 },
736736 fe = {
737737 preencode(e, d) {
738 ;(Ea.preencode(e, d.profile), ce.preencode(e, d.attestation))
738 ;(Ja.preencode(e, d.profile), ce.preencode(e, d.attestation))
739739 },
740740 encode(e, d) {
741 ;(Ea.encode(e, d.profile), ce.encode(e, d.attestation))
741 ;(Ja.encode(e, d.profile), ce.encode(e, d.attestation))
742742 },
743 decode: (e) => ({ profile: Ea.decode(e), attestation: ce.decode(e) }),
743 decode: (e) => ({ profile: Ja.decode(e), attestation: ce.decode(e) }),
744744 },
745745 me = {
746746 preencode(d, o) {
……@@ -1006,7 +1006,7 @@ const n = {
10061006 d.room && We.preencode(e, d.room),
10071007 d.identity && ze.preencode(e, d.identity),
10081008 d.contact && He.preencode(e, d.contact),
1009 o >= 9 && d.readonly && Va.preencode(e, d.readonly),
1009 o >= 9 && d.readonly && Wa.preencode(e, d.readonly),
10101010 o >= 17 && d.additionalNodes && Ge.preencode(e, d.additionalNodes),
10111011 o >= 29 && d.buildType && vi.preencode(e, d.buildType))
10121012 },
……@@ -1022,7 +1022,7 @@ const n = {
10221022 n.room && We.encode(d, n.room),
10231023 n.identity && ze.encode(d, n.identity),
10241024 n.contact && He.encode(d, n.contact),
1025 o >= 9 && n.readonly && Va.encode(d, n.readonly),
1025 o >= 9 && n.readonly && Wa.encode(d, n.readonly),
10261026 o >= 17 && n.additionalNodes && Ge.encode(d, n.additionalNodes),
10271027 o >= 29 && n.buildType && vi.encode(d, n.buildType))
10281028 },
……@@ -1032,7 +1032,7 @@ const n = {
10321032 room: 1 & n ? We.decode(d) : null,
10331033 identity: 2 & n ? ze.decode(d) : null,
10341034 contact: 4 & n ? He.decode(d) : null,
1035 readonly: o >= 9 && 8 & n ? Va.decode(d) : null,
1035 readonly: o >= 9 && 8 & n ? Wa.decode(d) : null,
10361036 additionalNodes: o >= 17 && 16 & n ? Ge.decode(d) : null,
10371037 buildType: o >= 29 && 32 & n ? vi.decode(d) : null,
10381038 }
……@@ -1051,13 +1051,13 @@ const n = {
10511051 Ze = _,
10521052 $e = {
10531053 preencode(e, d) {
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && Oa.preencode(e, d.profile))
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && za.preencode(e, d.profile))
10551055 },
10561056 encode(d, o) {
10571057 const n = o.profile ? 1 : 0
1058 ;(Ze.encode(d, o.header), e.uint.encode(d, n), o.profile && Oa.encode(d, o.profile))
1058 ;(Ze.encode(d, o.header), e.uint.encode(d, n), o.profile && za.encode(d, o.profile))
10591059 },
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? Oa.decode(d) : null }),
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? za.decode(d) : null }),
10611061 },
10621062 _e = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({}) },
10631063 ed = _e,
……@@ -1110,8 +1110,8 @@ const n = {
11101110 decode: (d) => ({ header: td.decode(d), deviceKey: e.fixed32.decode(d) }),
11111111 },
11121112 ad = e.frame(C),
1113 sd = pe,
1114 ld = {
1113 sd = le,
1114 pd = {
11151115 preencode(d, o) {
11161116 ;(e.fixed32.preencode(d, o.key), ad.preencode(d, o.status), sd.preencode(d, o.profile))
11171117 },
……@@ -1120,29 +1120,29 @@ const n = {
11201120 },
11211121 decode: (d) => ({ key: e.fixed32.decode(d), status: ad.decode(d), profile: sd.decode(d) }),
11221122 },
1123 pd = ad,
1124 ud = pe,
1123 ld = ad,
1124 ud = le,
11251125 fd = {
11261126 preencode(d, o) {
11271127 ;(e.fixed32.preencode(d, o.key),
1128 pd.preencode(d, o.status),
1128 ld.preencode(d, o.status),
11291129 ud.preencode(d, o.profile),
11301130 d.end++,
1131 o.proofs && Na.preencode(d, o.proofs))
1131 o.proofs && Ha.preencode(d, o.proofs))
11321132 },
11331133 encode(d, o) {
11341134 const n = o.proofs ? 1 : 0
11351135 ;(e.fixed32.encode(d, o.key),
1136 pd.encode(d, o.status),
1136 ld.encode(d, o.status),
11371137 ud.encode(d, o.profile),
11381138 e.uint.encode(d, n),
1139 o.proofs && Na.encode(d, o.proofs))
1139 o.proofs && Ha.encode(d, o.proofs))
11401140 },
11411141 decode: (d) => ({
11421142 key: e.fixed32.decode(d),
1143 status: pd.decode(d),
1143 status: ld.decode(d),
11441144 profile: ud.decode(d),
1145 proofs: 1 & e.uint.decode(d) ? Na.decode(d) : null,
1145 proofs: 1 & e.uint.decode(d) ? Ha.decode(d) : null,
11461146 }),
11471147 },
11481148 md = {
……@@ -1281,8 +1281,8 @@ const n = {
12811281 n.memberJoined && Dd.preencode(d, n.memberJoined),
12821282 n.memberLeft && Cd.preencode(d, n.memberLeft),
12831283 n.titleChanged && Sd.preencode(d, n.titleChanged),
1284 o >= 4 && n.memberRemoved && Ua.preencode(d, n.memberRemoved),
1285 o >= 27 && n.locationShared && Ja.preencode(d, n.locationShared))
1284 o >= 4 && n.memberRemoved && Ga.preencode(d, n.memberRemoved),
1285 o >= 27 && n.locationShared && Qa.preencode(d, n.locationShared))
12861286 },
12871287 encode(d, n) {
12881288 const c =
……@@ -1300,8 +1300,8 @@ const n = {
13001300 n.memberJoined && Dd.encode(d, n.memberJoined),
13011301 n.memberLeft && Cd.encode(d, n.memberLeft),
13021302 n.titleChanged && Sd.encode(d, n.titleChanged),
1303 o >= 4 && n.memberRemoved && Ua.encode(d, n.memberRemoved),
1304 o >= 27 && n.locationShared && Ja.encode(d, n.locationShared))
1303 o >= 4 && n.memberRemoved && Ga.encode(d, n.memberRemoved),
1304 o >= 27 && n.locationShared && Qa.encode(d, n.locationShared))
13051305 },
13061306 decode(d) {
13071307 const n = e.uint.decode(d)
……@@ -1314,14 +1314,14 @@ const n = {
13141314 callMissed: !!(32 & n),
13151315 roomAvatarChanged: o >= 4 && !!(64 & n),
13161316 invitationCreated: o >= 4 && !!(128 & n),
1317 memberRemoved: o >= 4 && 256 & n ? Ua.decode(d) : null,
1318 locationShared: o >= 27 && 512 & n ? Ja.decode(d) : null,
1317 memberRemoved: o >= 4 && 256 & n ? Ga.decode(d) : null,
1318 locationShared: o >= 27 && 512 & n ? Qa.decode(d) : null,
13191319 }
13201320 },
13211321 },
13221322 jd = {
13231323 preencode(e, d) {
1324 ;(e.end++, o >= 27 && d.locationShared && Wa.preencode(e, d.locationShared))
1324 ;(e.end++, o >= 27 && d.locationShared && Xa.preencode(e, d.locationShared))
13251325 },
13261326 encode(d, n) {
13271327 const c =
……@@ -1329,7 +1329,7 @@ const n = {
13291329 (n.callHangup ? 2 : 0) |
13301330 (n.callMissed ? 4 : 0) |
13311331 (o >= 27 && n.locationShared ? 8 : 0)
1332 ;(e.uint.encode(d, c), o >= 27 && n.locationShared && Wa.encode(d, n.locationShared))
1332 ;(e.uint.encode(d, c), o >= 27 && n.locationShared && Xa.encode(d, n.locationShared))
13331333 },
13341334 decode(d) {
13351335 const n = e.uint.decode(d)
……@@ -1337,7 +1337,7 @@ const n = {
13371337 callStarted: !!(1 & n),
13381338 callHangup: !!(2 & n),
13391339 callMissed: !!(4 & n),
1340 locationShared: o >= 27 && 8 & n ? Wa.decode(d) : null,
1340 locationShared: o >= 27 && 8 & n ? Xa.decode(d) : null,
13411341 }
13421342 },
13431343 },
……@@ -1456,7 +1456,7 @@ const n = {
14561456 n.emoji && Zd.preencode(d, n.emoji),
14571457 n.codeBlock && $d.preencode(d, n.codeBlock),
14581458 n.strike && _d.preencode(d, n.strike),
1459 o >= 17 && n.translation && za.preencode(d, n.translation))
1459 o >= 17 && n.translation && Ya.preencode(d, n.translation))
14601460 },
14611461 encode(d, n) {
14621462 const c =
……@@ -1480,7 +1480,7 @@ const n = {
14801480 n.emoji && Zd.encode(d, n.emoji),
14811481 n.codeBlock && $d.encode(d, n.codeBlock),
14821482 n.strike && _d.encode(d, n.strike),
1483 o >= 17 && n.translation && za.encode(d, n.translation))
1483 o >= 17 && n.translation && Ya.encode(d, n.translation))
14841484 },
14851485 decode(d) {
14861486 const n = e.uint.decode(d)
……@@ -1494,7 +1494,7 @@ const n = {
14941494 emoji: 64 & n ? Zd.decode(d) : null,
14951495 codeBlock: 128 & n ? $d.decode(d) : null,
14961496 strike: 256 & n ? _d.decode(d) : null,
1497 translation: o >= 17 && 512 & n ? za.decode(d) : null,
1497 translation: o >= 17 && 512 & n ? Ya.decode(d) : null,
14981498 }
14991499 },
15001500 },
……@@ -1580,13 +1580,13 @@ const n = {
15801580 },
15811581 },
15821582 so = oo,
1583 lo = no,
1584 po = {
1583 po = no,
1584 lo = {
15851585 preencode(d, o) {
15861586 ;(d.end++,
15871587 o.text && e.string.preencode(d, o.text),
15881588 o.files && so.preencode(d, o.files),
1589 o.display && lo.preencode(d, o.display),
1589 o.display && po.preencode(d, o.display),
15901590 o.replyTo && c.preencode(d, o.replyTo),
15911591 o.parent && c.preencode(d, o.parent))
15921592 },
……@@ -1601,7 +1601,7 @@ const n = {
16011601 ;(e.uint.encode(d, r),
16021602 n.text && e.string.encode(d, n.text),
16031603 n.files && so.encode(d, n.files),
1604 n.display && lo.encode(d, n.display),
1604 n.display && po.encode(d, n.display),
16051605 n.replyTo && c.encode(d, n.replyTo),
16061606 n.parent && c.encode(d, n.parent))
16071607 },
……@@ -1610,7 +1610,7 @@ const n = {
16101610 return {
16111611 text: 1 & n ? e.string.decode(d) : null,
16121612 files: 2 & n ? so.decode(d) : null,
1613 display: 4 & n ? lo.decode(d) : null,
1613 display: 4 & n ? po.decode(d) : null,
16141614 replyTo: 8 & n ? c.decode(d) : null,
16151615 parent: 16 & n ? c.decode(d) : null,
16161616 forwarded: o >= 27 && !!(32 & n),
……@@ -1714,7 +1714,7 @@ const n = {
17141714 },
17151715 },
17161716 go = bo,
1717 Ko = e.frame(po),
1717 Ko = e.frame(lo),
17181718 ho = vo,
17191719 wo = {
17201720 preencode(d, o) {
……@@ -1895,19 +1895,19 @@ const n = {
18951895 ;(e.fixed32.preencode(d, o.memberKey),
18961896 e.string.preencode(d, o.displayName),
18971897 d.end++,
1898 o.avatar && Ha.preencode(d, o.avatar))
1898 o.avatar && Za.preencode(d, o.avatar))
18991899 },
19001900 encode(d, o) {
19011901 const n = o.avatar ? 1 : 0
19021902 ;(e.fixed32.encode(d, o.memberKey),
19031903 e.string.encode(d, o.displayName),
19041904 e.uint.encode(d, n),
1905 o.avatar && Ha.encode(d, o.avatar))
1905 o.avatar && Za.encode(d, o.avatar))
19061906 },
19071907 decode: (d) => ({
19081908 memberKey: e.fixed32.decode(d),
19091909 displayName: e.string.decode(d),
1910 avatar: 1 & e.uint.decode(d) ? Ha.decode(d) : null,
1910 avatar: 1 & e.uint.decode(d) ? Za.decode(d) : null,
19111911 }),
19121912 },
19131913 Ho = {
……@@ -2023,7 +2023,7 @@ const n = {
20232023 sn = {
20242024 preencode(d, o) {
20252025 ;(e.fixed32.preencode(d, o.memberKey),
2026 Ga.preencode(d, o.status),
2026 $a.preencode(d, o.status),
20272027 d.end++,
20282028 o.mailbox && e.fixed32.preencode(d, o.mailbox),
20292029 o.roomKey && e.fixed32.preencode(d, o.roomKey))
……@@ -2031,14 +2031,14 @@ const n = {
20312031 encode(d, o) {
20322032 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
20332033 ;(e.fixed32.encode(d, o.memberKey),
2034 Ga.encode(d, o.status),
2034 $a.encode(d, o.status),
20352035 e.uint.encode(d, n),
20362036 o.mailbox && e.fixed32.encode(d, o.mailbox),
20372037 o.roomKey && e.fixed32.encode(d, o.roomKey))
20382038 },
20392039 decode(d) {
20402040 const o = e.fixed32.decode(d),
2041 n = Ga.decode(d),
2041 n = $a.decode(d),
20422042 c = e.uint.decode(d)
20432043 return {
20442044 memberKey: o,
……@@ -2048,7 +2048,7 @@ const n = {
20482048 }
20492049 },
20502050 },
2051 ln = {
2051 pn = {
20522052 preencode(d, o) {
20532053 ;(e.fixed32.preencode(d, o.roomKey),
20542054 e.buffer.preencode(d, o.encryptionKey),
……@@ -2071,16 +2071,16 @@ const n = {
20712071 fastForwardTo: e.fixed32.decode(d),
20722072 }),
20732073 },
2074 pn = e.array(e.frame(ln)),
2074 ln = e.array(e.frame(pn)),
20752075 un = Y,
20762076 fn = {
20772077 preencode(e, d) {
2078 ;(pn.preencode(e, d.sharedRooms), un.preencode(e, d.blockedContacts))
2078 ;(ln.preencode(e, d.sharedRooms), un.preencode(e, d.blockedContacts))
20792079 },
20802080 encode(e, d) {
2081 ;(pn.encode(e, d.sharedRooms), un.encode(e, d.blockedContacts))
2081 ;(ln.encode(e, d.sharedRooms), un.encode(e, d.blockedContacts))
20822082 },
2083 decode: (e) => ({ sharedRooms: pn.decode(e), blockedContacts: un.decode(e) }),
2083 decode: (e) => ({ sharedRooms: ln.decode(e), blockedContacts: un.decode(e) }),
20842084 },
20852085 mn = _o,
20862086 yn = {
……@@ -2167,17 +2167,17 @@ const n = {
21672167 i = e.fixed32.decode(d),
21682168 a = t.decode(d),
21692169 s = n.decode(d),
2170 l = n.decode(d),
2171 p = e.uint.decode(d)
2170 p = n.decode(d),
2171 l = e.uint.decode(d)
21722172 return {
21732173 id: c,
21742174 invitationSeed: r,
21752175 mailbox: i,
21762176 responseKeyPair: a,
21772177 initiator: s,
2178 inviter: l,
2179 identity: 1 & p ? gn.decode(d) : null,
2180 buildType: o >= 29 && 2 & p ? vi.decode(d) : null,
2178 inviter: p,
2179 identity: 1 & l ? gn.decode(d) : null,
2180 buildType: o >= 29 && 2 & l ? vi.decode(d) : null,
21812181 }
21822182 },
21832183 },
……@@ -2253,7 +2253,8 @@ const n = {
22532253 (n.isFullyMuted ? 2 : 0) |
22542254 (n.isMentionsOnlyMuted ? 4 : 0) |
22552255 (o >= 14 && n.isReadOnly ? 8 : 0) |
2256 (o >= 27 && n.isFavorite ? 16 : 0)
2256 (o >= 27 && n.isFavorite ? 16 : 0) |
2257 (o >= 31 && n.isUnread ? 32 : 0)
22572258 e.uint.encode(d, c)
22582259 },
22592260 decode(d) {
……@@ -2264,6 +2265,7 @@ const n = {
22642265 isMentionsOnlyMuted: !!(4 & n),
22652266 isReadOnly: o >= 14 && !!(8 & n),
22662267 isFavorite: o >= 27 && !!(16 & n),
2268 isUnread: o >= 31 && !!(32 & n),
22672269 }
22682270 },
22692271 },
……@@ -2415,7 +2417,7 @@ const n = {
24152417 preencode(d, o) {
24162418 ;(e.fixed32.preencode(d, o.memberKey),
24172419 e.uint.preencode(d, o.clock),
2418 Qa.preencode(d, o.status),
2420 _a.preencode(d, o.status),
24192421 d.end++,
24202422 o.mailbox && e.fixed32.preencode(d, o.mailbox),
24212423 o.roomKey && e.fixed32.preencode(d, o.roomKey))
……@@ -2424,7 +2426,7 @@ const n = {
24242426 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
24252427 ;(e.fixed32.encode(d, o.memberKey),
24262428 e.uint.encode(d, o.clock),
2427 Qa.encode(d, o.status),
2429 _a.encode(d, o.status),
24282430 e.uint.encode(d, n),
24292431 o.mailbox && e.fixed32.encode(d, o.mailbox),
24302432 o.roomKey && e.fixed32.encode(d, o.roomKey))
……@@ -2432,7 +2434,7 @@ const n = {
24322434 decode(d) {
24332435 const o = e.fixed32.decode(d),
24342436 n = e.uint.decode(d),
2435 c = Qa.decode(d),
2437 c = _a.decode(d),
24362438 r = e.uint.decode(d)
24372439 return {
24382440 memberKey: o,
……@@ -2460,19 +2462,19 @@ const n = {
24602462 ;(Gn.preencode(d, o.header),
24612463 e.fixed32.preencode(d, o.memberKey),
24622464 e.uint.preencode(d, o.key),
2463 Xa.preencode(d, o.status))
2465 es.preencode(d, o.status))
24642466 },
24652467 encode(d, o) {
24662468 ;(Gn.encode(d, o.header),
24672469 e.fixed32.encode(d, o.memberKey),
24682470 e.uint.encode(d, o.key),
2469 Xa.encode(d, o.status))
2471 es.encode(d, o.status))
24702472 },
24712473 decode: (d) => ({
24722474 header: Gn.decode(d),
24732475 memberKey: e.fixed32.decode(d),
24742476 key: e.uint.decode(d),
2475 status: Xa.decode(d),
2477 status: es.decode(d),
24762478 }),
24772479 },
24782480 Xn = _,
……@@ -2544,7 +2546,7 @@ const n = {
25442546 },
25452547 decode: (e) => ({ body: dc.decode(e), attestation: ce.decode(e) }),
25462548 },
2547 nc = pe,
2549 nc = le,
25482550 cc = e.frame(Zn),
25492551 rc = _n,
25502552 tc = {
……@@ -2602,13 +2604,13 @@ const n = {
26022604 decode: (d) => ({ header: ic.decode(d), blindRequest: e.buffer.decode(d) }),
26032605 },
26042606 sc = _,
2605 lc = cc,
2606 pc = {
2607 pc = cc,
2608 lc = {
26072609 preencode(d, n) {
26082610 ;(sc.preencode(d, n.header),
26092611 e.fixed32.preencode(d, n.memberKey),
26102612 e.uint.preencode(d, n.key),
2611 lc.preencode(d, n.status),
2613 pc.preencode(d, n.status),
26122614 d.end++,
26132615 o >= 15 && n.roomKey && e.fixed32.preencode(d, n.roomKey))
26142616 },
……@@ -2617,7 +2619,7 @@ const n = {
26172619 ;(sc.encode(d, n.header),
26182620 e.fixed32.encode(d, n.memberKey),
26192621 e.uint.encode(d, n.key),
2620 lc.encode(d, n.status),
2622 pc.encode(d, n.status),
26212623 e.uint.encode(d, c),
26222624 o >= 15 && n.roomKey && e.fixed32.encode(d, n.roomKey))
26232625 },
……@@ -2625,7 +2627,7 @@ const n = {
26252627 const n = sc.decode(d),
26262628 c = e.fixed32.decode(d),
26272629 r = e.uint.decode(d),
2628 t = lc.decode(d),
2630 t = pc.decode(d),
26292631 i = d.start < d.end ? e.uint.decode(d) : 0
26302632 return {
26312633 header: n,
……@@ -2825,10 +2827,15 @@ const n = {
28252827 d.end++,
28262828 n.entropy && e.buffer.preencode(d, n.entropy),
28272829 n.swap && Ac.preencode(d, n.swap),
2828 o >= 9 && n.swapV2 && Ya.preencode(d, n.swapV2))
2830 o >= 9 && n.swapV2 && ds.preencode(d, n.swapV2),
2831 o >= 31 && n.proofShortenedAt && e.uint.preencode(d, n.proofShortenedAt))
28292832 },
28302833 encode(d, n) {
2831 const c = (n.entropy ? 1 : 0) | (n.swap ? 2 : 0) | (o >= 9 && n.swapV2 ? 4 : 0)
2834 const c =
2835 (n.entropy ? 1 : 0) |
2836 (n.swap ? 2 : 0) |
2837 (o >= 9 && n.swapV2 ? 4 : 0) |
2838 (o >= 31 && n.proofShortenedAt ? 8 : 0)
28322839 ;(e.fixed32.encode(d, n.publicKey),
28332840 e.fixed32.encode(d, n.privateProfileKey),
28342841 t.encode(d, n.deviceKeyPair),
……@@ -2837,7 +2844,8 @@ const n = {
28372844 e.uint.encode(d, c),
28382845 n.entropy && e.buffer.encode(d, n.entropy),
28392846 n.swap && Ac.encode(d, n.swap),
2840 o >= 9 && n.swapV2 && Ya.encode(d, n.swapV2))
2847 o >= 9 && n.swapV2 && ds.encode(d, n.swapV2),
2848 o >= 31 && n.proofShortenedAt && e.uint.encode(d, n.proofShortenedAt))
28412849 },
28422850 decode(d) {
28432851 const n = e.fixed32.decode(d),
……@@ -2854,7 +2862,8 @@ const n = {
28542862 status: a,
28552863 entropy: 1 & s ? e.buffer.decode(d) : null,
28562864 swap: 2 & s ? Ac.decode(d) : null,
2857 swapV2: o >= 9 && 4 & s ? Ya.decode(d) : null,
2865 swapV2: o >= 9 && 4 & s ? ds.decode(d) : null,
2866 proofShortenedAt: o >= 31 && 8 & s ? e.uint.decode(d) : 0,
28582867 }
28592868 },
28602869 },
……@@ -3068,7 +3077,7 @@ const n = {
30683077 e.fixed32.preencode(d, n.memberKey),
30693078 d.end++,
30703079 n.message && e.string.preencode(d, n.message),
3071 o >= 6 && n.contactInfo && Za.preencode(d, n.contactInfo))
3080 o >= 6 && n.contactInfo && os.preencode(d, n.contactInfo))
30723081 },
30733082 encode(d, n) {
30743083 const c = (n.message ? 1 : 0) | (o >= 6 && n.contactInfo ? 2 : 0)
……@@ -3076,7 +3085,7 @@ const n = {
30763085 e.fixed32.encode(d, n.memberKey),
30773086 e.uint.encode(d, c),
30783087 n.message && e.string.encode(d, n.message),
3079 o >= 6 && n.contactInfo && Za.encode(d, n.contactInfo))
3088 o >= 6 && n.contactInfo && os.encode(d, n.contactInfo))
30803089 },
30813090 decode(d) {
30823091 const n = e.fixed32.decode(d),
……@@ -3086,7 +3095,7 @@ const n = {
30863095 roomKey: n,
30873096 memberKey: c,
30883097 message: 1 & r ? e.string.decode(d) : null,
3089 contactInfo: o >= 6 && 2 & r ? Za.decode(d) : null,
3098 contactInfo: o >= 6 && 2 & r ? os.decode(d) : null,
30903099 }
30913100 },
30923101 },
……@@ -3238,14 +3247,14 @@ const n = {
32383247 ir = mo,
32393248 ar = e.frame(rr),
32403249 sr = kc,
3241 lr = e.frame(cr),
3242 pr = e.frame(ae),
3250 pr = e.frame(cr),
3251 lr = e.frame(ae),
32433252 ur = e.frame(fd),
32443253 fr = Jo,
32453254 mr = _o,
32463255 yr = e.frame(wo),
32473256 br = Y,
3248 xr = e.frame(ld),
3257 xr = e.frame(pd),
32493258 vr = Sn,
32503259 kr = {
32513260 preencode(d, n) {
……@@ -3271,19 +3280,19 @@ const n = {
32713280 e.uint.preencode(d, n.length),
32723281 e.fixed32.preencode(d, n.seed),
32733282 sr.preencode(d, n.capabilities),
3274 lr.preencode(d, n.status),
3283 pr.preencode(d, n.status),
32753284 e.uint.preencode(d, c),
3276 n.selfDevice && pr.preencode(d, n.selfDevice),
3285 n.selfDevice && lr.preencode(d, n.selfDevice),
32773286 n.selfMember && ur.preencode(d, n.selfMember),
32783287 n.config && fr.preencode(d, n.config),
32793288 n.identity && mr.preencode(d, n.identity),
32803289 n.lastMessage && yr.preencode(d, n.lastMessage),
32813290 n.dm && br.preencode(d, n.dm),
3282 o >= 19 && n.readLengths && $a.preencode(d, n.readLengths),
3291 o >= 19 && n.readLengths && ns.preencode(d, n.readLengths),
32833292 o >= 19 && n.lastMember && xr.preencode(d, n.lastMember),
32843293 o >= 21 && n.version && e.uint.preencode(d, n.version),
32853294 o >= 27 && n.preferences && vr.preencode(d, n.preferences),
3286 o >= 28 && n.activeCall && _a.preencode(d, n.activeCall))
3295 o >= 28 && n.activeCall && cs.preencode(d, n.activeCall))
32873296 },
32883297 encode(d, n) {
32893298 const c =
……@@ -3308,19 +3317,19 @@ const n = {
33083317 e.uint.encode(d, n.length),
33093318 e.fixed32.encode(d, n.seed),
33103319 sr.encode(d, n.capabilities),
3311 lr.encode(d, n.status),
3320 pr.encode(d, n.status),
33123321 e.uint.encode(d, c),
3313 n.selfDevice && pr.encode(d, n.selfDevice),
3322 n.selfDevice && lr.encode(d, n.selfDevice),
33143323 n.selfMember && ur.encode(d, n.selfMember),
33153324 n.config && fr.encode(d, n.config),
33163325 n.identity && mr.encode(d, n.identity),
33173326 n.lastMessage && yr.encode(d, n.lastMessage),
33183327 n.dm && br.encode(d, n.dm),
3319 o >= 19 && n.readLengths && $a.encode(d, n.readLengths),
3328 o >= 19 && n.readLengths && ns.encode(d, n.readLengths),
33203329 o >= 19 && n.lastMember && xr.encode(d, n.lastMember),
33213330 o >= 21 && n.version && e.uint.encode(d, n.version),
33223331 o >= 27 && n.preferences && vr.encode(d, n.preferences),
3323 o >= 28 && n.activeCall && _a.encode(d, n.activeCall))
3332 o >= 28 && n.activeCall && cs.encode(d, n.activeCall))
33243333 },
33253334 decode(d) {
33263335 const n = e.fixed32.decode(d),
……@@ -3330,10 +3339,10 @@ const n = {
33303339 i = ir.decode(d),
33313340 a = ar.decode(d),
33323341 s = e.uint.decode(d),
3333 l = e.uint.decode(d),
3334 p = e.fixed32.decode(d),
3342 p = e.uint.decode(d),
3343 l = e.fixed32.decode(d),
33353344 u = sr.decode(d),
3336 f = lr.decode(d),
3345 f = pr.decode(d),
33373346 m = e.uint.decode(d)
33383347 return {
33393348 roomKey: n,
……@@ -3343,21 +3352,21 @@ const n = {
33433352 stats: i,
33443353 timestamps: a,
33453354 fork: s,
3346 length: l,
3347 seed: p,
3355 length: p,
3356 seed: l,
33483357 capabilities: u,
33493358 status: f,
3350 selfDevice: 1 & m ? pr.decode(d) : null,
3359 selfDevice: 1 & m ? lr.decode(d) : null,
33513360 selfMember: 2 & m ? ur.decode(d) : null,
33523361 config: 4 & m ? fr.decode(d) : null,
33533362 identity: 8 & m ? mr.decode(d) : null,
33543363 lastMessage: 16 & m ? yr.decode(d) : null,
33553364 dm: 32 & m ? br.decode(d) : null,
3356 readLengths: o >= 19 && 64 & m ? $a.decode(d) : null,
3365 readLengths: o >= 19 && 64 & m ? ns.decode(d) : null,
33573366 lastMember: o >= 19 && 128 & m ? xr.decode(d) : null,
33583367 version: o >= 21 && 256 & m ? e.uint.decode(d) : 0,
33593368 preferences: o >= 27 && 512 & m ? vr.decode(d) : null,
3360 activeCall: o >= 28 && 1024 & m ? _a.decode(d) : null,
3369 activeCall: o >= 28 && 1024 & m ? cs.decode(d) : null,
33613370 }
33623371 },
33633372 },
……@@ -3402,7 +3411,7 @@ const n = {
34023411 }
34033412 },
34043413 },
3405 wr = pe,
3414 wr = le,
34063415 Rr = {
34073416 preencode(d, o) {
34083417 ;(e.fixed32.preencode(d, o.key), wr.preencode(d, o.profile))
……@@ -3412,7 +3421,7 @@ const n = {
34123421 },
34133422 decode: (d) => ({ key: e.fixed32.decode(d), profile: wr.decode(d) }),
34143423 },
3415 Pr = pr,
3424 Pr = lr,
34163425 Tr = {
34173426 preencode(d, o) {
34183427 ;(e.fixed32.preencode(d, o.roomKey), Pr.preencode(d, o.device))
……@@ -3467,7 +3476,7 @@ const n = {
34673476 ;(Dr.preencode(d, n.header),
34683477 c.preencode(d, n.oplog),
34693478 e.uint.preencode(d, n.index),
3470 es.preencode(d, n.preview),
3479 rs.preencode(d, n.preview),
34713480 d.end++,
34723481 o >= 12 && n.displayType && Qr.preencode(d, n.displayType))
34733482 },
……@@ -3476,7 +3485,7 @@ const n = {
34763485 ;(Dr.encode(d, n.header),
34773486 c.encode(d, n.oplog),
34783487 e.uint.encode(d, n.index),
3479 es.encode(d, n.preview),
3488 rs.encode(d, n.preview),
34803489 e.uint.encode(d, r),
34813490 o >= 12 && n.displayType && Qr.encode(d, n.displayType))
34823491 },
……@@ -3484,7 +3493,7 @@ const n = {
34843493 const n = Dr.decode(d),
34853494 r = c.decode(d),
34863495 t = e.uint.decode(d),
3487 i = es.decode(d),
3496 i = rs.decode(d),
34883497 a = d.start < d.end ? e.uint.decode(d) : 0
34893498 return {
34903499 header: n,
……@@ -3508,7 +3517,7 @@ const n = {
35083517 return { memberKey: o >= 4 && 1 & n ? e.fixed32.decode(d) : null }
35093518 },
35103519 },
3511 Ir = pe,
3520 Ir = le,
35123521 jr = {
35133522 preencode(e, d) {
35143523 ;(Ir.preencode(e, d.profile), ce.preencode(e, d.attestation))
……@@ -3868,15 +3877,15 @@ const n = {
38683877 },
38693878 decode: (d) => ({ deviceKey: e.fixed32.decode(d), key: e.fixed32.decode(d) }),
38703879 },
3871 lt = _,
3872 pt = {
3880 pt = _,
3881 lt = {
38733882 preencode(d, o) {
3874 ;(lt.preencode(d, o.header), e.fixed32.preencode(d, o.key))
3883 ;(pt.preencode(d, o.header), e.fixed32.preencode(d, o.key))
38753884 },
38763885 encode(d, o) {
3877 ;(lt.encode(d, o.header), e.fixed32.encode(d, o.key))
3886 ;(pt.encode(d, o.header), e.fixed32.encode(d, o.key))
38783887 },
3879 decode: (d) => ({ header: lt.decode(d), key: e.fixed32.decode(d) }),
3888 decode: (d) => ({ header: pt.decode(d), key: e.fixed32.decode(d) }),
38803889 },
38813890 ut = _,
38823891 ft = {
……@@ -4014,24 +4023,48 @@ const n = {
40144023 e.end++
40154024 },
40164025 encode(d, n) {
4017 const c = o >= 19 && n.disableReadReceipts ? 1 : 0
4026 const c =
4027 (o >= 19 && n.disableReadReceipts ? 1 : 0) | (o >= 31 && n.stripAttachmentMetadata ? 2 : 0)
40184028 e.uint.encode(d, c)
40194029 },
40204030 decode(d) {
40214031 const n = e.uint.decode(d)
4022 return { disableReadReceipts: o >= 19 && !!(1 & n) }
4032 return {
4033 disableReadReceipts: o >= 19 && !!(1 & n),
4034 stripAttachmentMetadata: o >= 31 && !!(2 & n),
4035 }
40234036 },
40244037 },
4025 Dt = { disableReadReceipts: "disableReadReceipts" },
4038 Dt = {
4039 disableReadReceipts: "disableReadReceipts",
4040 stripAttachmentMetadata: "stripAttachmentMetadata",
4041 },
40264042 Ct = {
40274043 preencode(e, d) {
40284044 e.end++
40294045 },
40304046 encode(d, o) {
4031 if ("disableReadReceipts" !== o) throw new Error("Unknown enum")
4032 e.uint.encode(d, 1)
4047 switch (o) {
4048 case "disableReadReceipts":
4049 e.uint.encode(d, 1)
4050 break
4051 case "stripAttachmentMetadata":
4052 e.uint.encode(d, 2)
4053 break
4054 default:
4055 throw new Error("Unknown enum")
4056 }
4057 },
4058 decode(d) {
4059 switch (e.uint.decode(d)) {
4060 case 1:
4061 return "disableReadReceipts"
4062 case 2:
4063 return "stripAttachmentMetadata"
4064 default:
4065 return null
4066 }
40334067 },
4034 decode: (d) => (1 === e.uint.decode(d) ? "disableReadReceipts" : null),
40354068 },
40364069 St = _,
40374070 It = e.frame(Mt),
……@@ -4319,7 +4352,7 @@ const n = {
43194352 }),
43204353 },
43214354 si = _,
4322 li = {
4355 pi = {
43234356 preencode(d, o) {
43244357 ;(si.preencode(d, o.header),
43254358 e.fixed32.preencode(d, o.callKey),
……@@ -4334,7 +4367,7 @@ const n = {
43344367 streamKey: e.fixed32.decode(d),
43354368 }),
43364369 },
4337 pi = {
4370 li = {
43384371 preencode(d, n) {
43394372 ;(e.fixed32.preencode(d, n.callKey),
43404373 e.buffer.preencode(d, n.encryptionKey),
……@@ -4540,19 +4573,74 @@ const n = {
45404573 return { buildType: n, latestOfflineAbi: o >= 30 && 1 & c ? e.uint.decode(d) : 0 }
45414574 },
45424575 },
4543 Ri = wc,
4576 Ri = _,
45444577 Pi = {
4578 preencode(d, o) {
4579 ;(Ri.preencode(d, o.header),
4580 e.fixed32.preencode(d, o.deviceKey),
4581 e.buffer.preencode(d, o.deviceProof),
4582 e.buffer.preencode(d, o.writerProof))
4583 },
4584 encode(d, o) {
4585 ;(Ri.encode(d, o.header),
4586 e.fixed32.encode(d, o.deviceKey),
4587 e.buffer.encode(d, o.deviceProof),
4588 e.buffer.encode(d, o.writerProof))
4589 },
4590 decode: (d) => ({
4591 header: Ri.decode(d),
4592 deviceKey: e.fixed32.decode(d),
4593 deviceProof: e.buffer.decode(d),
4594 writerProof: e.buffer.decode(d),
4595 }),
4596 },
4597 Ti = {
4598 preencode(d, n) {
4599 ;(d.end++,
4600 o >= 31 &&
4601 n.otaResyncPrivateProfileBump &&
4602 e.uint.preencode(d, n.otaResyncPrivateProfileBump))
4603 },
4604 encode(d, n) {
4605 const c = o >= 31 && n.otaResyncPrivateProfileBump ? 1 : 0
4606 ;(e.uint.encode(d, c),
4607 o >= 31 && n.otaResyncPrivateProfileBump && e.uint.encode(d, n.otaResyncPrivateProfileBump))
4608 },
4609 decode(d) {
4610 const n = e.uint.decode(d)
4611 return { otaResyncPrivateProfileBump: o >= 31 && 1 & n ? e.uint.decode(d) : 0 }
4612 },
4613 },
4614 Ai = {
4615 preencode(d, o) {
4616 ;(e.fixed32.preencode(d, o.deviceKey),
4617 e.buffer.preencode(d, o.proof),
4618 e.uint.preencode(d, o.createdAt))
4619 },
4620 encode(d, o) {
4621 ;(e.fixed32.encode(d, o.deviceKey),
4622 e.buffer.encode(d, o.proof),
4623 e.uint.encode(d, o.createdAt))
4624 },
4625 decode: (d) => ({
4626 deviceKey: e.fixed32.decode(d),
4627 proof: e.buffer.decode(d),
4628 createdAt: e.uint.decode(d),
4629 }),
4630 },
4631 Mi = wc,
4632 Di = {
45454633 preencode(d, n) {
45464634 ;(e.uint.preencode(d, n.priority),
45474635 d.end++,
4548 n.v3 && Ri.preencode(d, n.v3),
4636 n.v3 && Mi.preencode(d, n.v3),
45494637 o >= 5 && n.timestamp && e.uint.preencode(d, n.timestamp))
45504638 },
45514639 encode(d, n) {
45524640 const c = (n.v3 ? 1 : 0) | (o >= 3 && n.errored ? 2 : 0) | (o >= 5 && n.timestamp ? 4 : 0)
45534641 ;(e.uint.encode(d, n.priority),
45544642 e.uint.encode(d, c),
4555 n.v3 && Ri.encode(d, n.v3),
4643 n.v3 && Mi.encode(d, n.v3),
45564644 o >= 5 && n.timestamp && e.uint.encode(d, n.timestamp))
45574645 },
45584646 decode(d) {
……@@ -4561,26 +4649,26 @@ const n = {
45614649 return {
45624650 roomKey: null,
45634651 priority: n,
4564 v3: 1 & c ? Ri.decode(d) : null,
4652 v3: 1 & c ? Mi.decode(d) : null,
45654653 errored: o >= 3 && !!(2 & c),
45664654 timestamp: o >= 5 && 4 & c ? e.uint.decode(d) : 0,
45674655 }
45684656 },
45694657 },
4570 Ti = Yo,
4571 Ai = mo,
4572 Mi = ar,
4573 Di = kc,
4574 Ci = lr,
4575 Si = pr,
4576 Ii = ur,
4577 ji = Jo,
4578 Li = _o,
4579 Fi = yr,
4580 qi = Y,
4581 Bi = xr,
4582 Ei = Sn,
4583 Vi = {
4658 Ci = Yo,
4659 Si = mo,
4660 Ii = ar,
4661 ji = kc,
4662 Li = pr,
4663 Fi = lr,
4664 qi = ur,
4665 Bi = Jo,
4666 Ei = _o,
4667 Vi = yr,
4668 Oi = Y,
4669 Ni = xr,
4670 Ui = Sn,
4671 Ji = {
45844672 preencode(d, n) {
45854673 const c =
45864674 (n.selfDevice ? 1 : 0) |
……@@ -4596,26 +4684,26 @@ const n = {
45964684 (o >= 28 && n.activeCall ? 1024 : 0)
45974685 ;(e.fixed32.preencode(d, n.discoveryKey),
45984686 e.buffer.preencode(d, n.encryptionKey),
4599 Ti.preencode(d, n.digest),
4600 Ai.preencode(d, n.stats),
4601 Mi.preencode(d, n.timestamps),
4687 Ci.preencode(d, n.digest),
4688 Si.preencode(d, n.stats),
4689 Ii.preencode(d, n.timestamps),
46024690 e.uint.preencode(d, n.fork),
46034691 e.uint.preencode(d, n.length),
46044692 e.fixed32.preencode(d, n.seed),
4605 Di.preencode(d, n.capabilities),
4606 Ci.preencode(d, n.status),
4693 ji.preencode(d, n.capabilities),
4694 Li.preencode(d, n.status),
46074695 e.uint.preencode(d, c),
4608 n.selfDevice && Si.preencode(d, n.selfDevice),
4609 n.selfMember && Ii.preencode(d, n.selfMember),
4610 n.config && ji.preencode(d, n.config),
4611 n.identity && Li.preencode(d, n.identity),
4612 n.lastMessage && Fi.preencode(d, n.lastMessage),
4613 n.dm && qi.preencode(d, n.dm),
4614 o >= 19 && n.readLengths && ds.preencode(d, n.readLengths),
4615 o >= 19 && n.lastMember && Bi.preencode(d, n.lastMember),
4696 n.selfDevice && Fi.preencode(d, n.selfDevice),
4697 n.selfMember && qi.preencode(d, n.selfMember),
4698 n.config && Bi.preencode(d, n.config),
4699 n.identity && Ei.preencode(d, n.identity),
4700 n.lastMessage && Vi.preencode(d, n.lastMessage),
4701 n.dm && Oi.preencode(d, n.dm),
4702 o >= 19 && n.readLengths && ts.preencode(d, n.readLengths),
4703 o >= 19 && n.lastMember && Ni.preencode(d, n.lastMember),
46164704 o >= 21 && n.version && e.uint.preencode(d, n.version),
4617 o >= 27 && n.preferences && Ei.preencode(d, n.preferences),
4618 o >= 28 && n.activeCall && os.preencode(d, n.activeCall))
4705 o >= 27 && n.preferences && Ui.preencode(d, n.preferences),
4706 o >= 28 && n.activeCall && is.preencode(d, n.activeCall))
46194707 },
46204708 encode(d, n) {
46214709 const c =
……@@ -4632,38 +4720,38 @@ const n = {
46324720 (o >= 28 && n.activeCall ? 1024 : 0)
46334721 ;(e.fixed32.encode(d, n.discoveryKey),
46344722 e.buffer.encode(d, n.encryptionKey),
4635 Ti.encode(d, n.digest),
4636 Ai.encode(d, n.stats),
4637 Mi.encode(d, n.timestamps),
4723 Ci.encode(d, n.digest),
4724 Si.encode(d, n.stats),
4725 Ii.encode(d, n.timestamps),
46384726 e.uint.encode(d, n.fork),
46394727 e.uint.encode(d, n.length),
46404728 e.fixed32.encode(d, n.seed),
4641 Di.encode(d, n.capabilities),
4642 Ci.encode(d, n.status),
4729 ji.encode(d, n.capabilities),
4730 Li.encode(d, n.status),
46434731 e.uint.encode(d, c),
4644 n.selfDevice && Si.encode(d, n.selfDevice),
4645 n.selfMember && Ii.encode(d, n.selfMember),
4646 n.config && ji.encode(d, n.config),
4647 n.identity && Li.encode(d, n.identity),
4648 n.lastMessage && Fi.encode(d, n.lastMessage),
4649 n.dm && qi.encode(d, n.dm),
4650 o >= 19 && n.readLengths && ds.encode(d, n.readLengths),
4651 o >= 19 && n.lastMember && Bi.encode(d, n.lastMember),
4732 n.selfDevice && Fi.encode(d, n.selfDevice),
4733 n.selfMember && qi.encode(d, n.selfMember),
4734 n.config && Bi.encode(d, n.config),
4735 n.identity && Ei.encode(d, n.identity),
4736 n.lastMessage && Vi.encode(d, n.lastMessage),
4737 n.dm && Oi.encode(d, n.dm),
4738 o >= 19 && n.readLengths && ts.encode(d, n.readLengths),
4739 o >= 19 && n.lastMember && Ni.encode(d, n.lastMember),
46524740 o >= 21 && n.version && e.uint.encode(d, n.version),
4653 o >= 27 && n.preferences && Ei.encode(d, n.preferences),
4654 o >= 28 && n.activeCall && os.encode(d, n.activeCall))
4741 o >= 27 && n.preferences && Ui.encode(d, n.preferences),
4742 o >= 28 && n.activeCall && is.encode(d, n.activeCall))
46554743 },
46564744 decode(d) {
46574745 const n = e.fixed32.decode(d),
46584746 c = e.buffer.decode(d),
4659 r = Ti.decode(d),
4660 t = Ai.decode(d),
4661 i = Mi.decode(d),
4747 r = Ci.decode(d),
4748 t = Si.decode(d),
4749 i = Ii.decode(d),
46624750 a = e.uint.decode(d),
46634751 s = e.uint.decode(d),
4664 l = e.fixed32.decode(d),
4665 p = Di.decode(d),
4666 u = Ci.decode(d),
4752 p = e.fixed32.decode(d),
4753 l = ji.decode(d),
4754 u = Li.decode(d),
46674755 f = e.uint.decode(d)
46684756 return {
46694757 roomKey: null,
……@@ -4674,34 +4762,34 @@ const n = {
46744762 timestamps: i,
46754763 fork: a,
46764764 length: s,
4677 seed: l,
4678 capabilities: p,
4765 seed: p,
4766 capabilities: l,
46794767 status: u,
4680 selfDevice: 1 & f ? Si.decode(d) : null,
4681 selfMember: 2 & f ? Ii.decode(d) : null,
4682 config: 4 & f ? ji.decode(d) : null,
4683 identity: 8 & f ? Li.decode(d) : null,
4684 lastMessage: 16 & f ? Fi.decode(d) : null,
4685 dm: 32 & f ? qi.decode(d) : null,
4686 readLengths: o >= 19 && 64 & f ? ds.decode(d) : null,
4687 lastMember: o >= 19 && 128 & f ? Bi.decode(d) : null,
4768 selfDevice: 1 & f ? Fi.decode(d) : null,
4769 selfMember: 2 & f ? qi.decode(d) : null,
4770 config: 4 & f ? Bi.decode(d) : null,
4771 identity: 8 & f ? Ei.decode(d) : null,
4772 lastMessage: 16 & f ? Vi.decode(d) : null,
4773 dm: 32 & f ? Oi.decode(d) : null,
4774 readLengths: o >= 19 && 64 & f ? ts.decode(d) : null,
4775 lastMember: o >= 19 && 128 & f ? Ni.decode(d) : null,
46884776 version: o >= 21 && 256 & f ? e.uint.decode(d) : 0,
4689 preferences: o >= 27 && 512 & f ? Ei.decode(d) : null,
4690 activeCall: o >= 28 && 1024 & f ? os.decode(d) : null,
4777 preferences: o >= 27 && 512 & f ? Ui.decode(d) : null,
4778 activeCall: o >= 28 && 1024 & f ? is.decode(d) : null,
46914779 }
46924780 },
46934781 },
4694 Oi = Sn,
4695 Ni = {
4782 Wi = Sn,
4783 zi = {
46964784 preencode(e, d) {
4697 Oi.preencode(e, d.status)
4785 Wi.preencode(e, d.status)
46984786 },
46994787 encode(e, d) {
4700 Oi.encode(e, d.status)
4788 Wi.encode(e, d.status)
47014789 },
4702 decode: (e) => ({ roomKey: null, status: Oi.decode(e) }),
4790 decode: (e) => ({ roomKey: null, status: Wi.decode(e) }),
47034791 },
4704 Ui = {
4792 Hi = {
47054793 preencode(d, o) {
47064794 ;(e.fixed32.preencode(d, o.key),
47074795 d.end++,
……@@ -4729,68 +4817,68 @@ const n = {
47294817 }
47304818 },
47314819 },
4732 Ji = pe,
4733 Wi = {
4820 Gi = le,
4821 Qi = {
47344822 preencode(e, d) {
4735 Ji.preencode(e, d.profile)
4823 Gi.preencode(e, d.profile)
47364824 },
47374825 encode(e, d) {
4738 Ji.encode(e, d.profile)
4826 Gi.encode(e, d.profile)
47394827 },
4740 decode: (e) => ({ key: null, profile: Ji.decode(e) }),
4828 decode: (e) => ({ key: null, profile: Gi.decode(e) }),
47414829 },
4742 zi = te,
4743 Hi = ie,
4744 Gi = {
4830 Xi = te,
4831 Yi = ie,
4832 Zi = {
47454833 preencode(d, o) {
47464834 ;(e.fixed32.preencode(d, o.memberKey),
4747 zi.preencode(d, o.status),
4748 ns.preencode(d, o.profile),
4835 Xi.preencode(d, o.status),
4836 as.preencode(d, o.profile),
47494837 d.end++,
4750 o.invitation && Hi.preencode(d, o.invitation))
4838 o.invitation && Yi.preencode(d, o.invitation))
47514839 },
47524840 encode(d, o) {
47534841 const n = o.invitation ? 1 : 0
47544842 ;(e.fixed32.encode(d, o.memberKey),
4755 zi.encode(d, o.status),
4756 ns.encode(d, o.profile),
4843 Xi.encode(d, o.status),
4844 as.encode(d, o.profile),
47574845 e.uint.encode(d, n),
4758 o.invitation && Hi.encode(d, o.invitation))
4846 o.invitation && Yi.encode(d, o.invitation))
47594847 },
47604848 decode: (d) => ({
47614849 key: null,
47624850 memberKey: e.fixed32.decode(d),
4763 status: zi.decode(d),
4764 profile: ns.decode(d),
4765 invitation: 1 & e.uint.decode(d) ? Hi.decode(d) : null,
4851 status: Xi.decode(d),
4852 profile: as.decode(d),
4853 invitation: 1 & e.uint.decode(d) ? Yi.decode(d) : null,
47664854 }),
47674855 },
4768 Qi = pr,
4769 Xi = {
4856 $i = lr,
4857 _i = {
47704858 preencode(d, o) {
4771 ;(e.fixed32.preencode(d, o.roomKey), Qi.preencode(d, o.device))
4859 ;(e.fixed32.preencode(d, o.roomKey), $i.preencode(d, o.device))
47724860 },
47734861 encode(d, o) {
4774 ;(e.fixed32.encode(d, o.roomKey), Qi.encode(d, o.device))
4862 ;(e.fixed32.encode(d, o.roomKey), $i.encode(d, o.device))
47754863 },
4776 decode: (d) => ({ roomKey: e.fixed32.decode(d), device: Qi.decode(d) }),
4864 decode: (d) => ({ roomKey: e.fixed32.decode(d), device: $i.decode(d) }),
47774865 },
4778 Yi = {
4866 ea = {
47794867 preencode(d, o) {
4780 ;(cs.preencode(d, o.status),
4868 ;(ss.preencode(d, o.status),
47814869 d.end++,
47824870 o.mailbox && e.fixed32.preencode(d, o.mailbox),
47834871 o.roomKey && e.fixed32.preencode(d, o.roomKey))
47844872 },
47854873 encode(d, o) {
47864874 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
4787 ;(cs.encode(d, o.status),
4875 ;(ss.encode(d, o.status),
47884876 e.uint.encode(d, n),
47894877 o.mailbox && e.fixed32.encode(d, o.mailbox),
47904878 o.roomKey && e.fixed32.encode(d, o.roomKey))
47914879 },
47924880 decode(d) {
4793 const o = cs.decode(d),
4881 const o = ss.decode(d),
47944882 n = e.uint.decode(d)
47954883 return {
47964884 memberKey: null,
……@@ -4800,16 +4888,16 @@ const n = {
48004888 }
48014889 },
48024890 },
4803 Zi = Hc,
4804 $i = Gc,
4805 _i = Qc,
4806 ea = Xc,
4807 da = Yc,
4808 oa = Zc,
4809 na = $c,
4810 ca = _c,
4811 ra = er,
4812 ta = {
4891 da = Hc,
4892 oa = Gc,
4893 na = Qc,
4894 ca = Xc,
4895 ra = Yc,
4896 ta = Zc,
4897 ia = $c,
4898 aa = _c,
4899 sa = er,
4900 pa = {
48134901 preencode(d, o) {
48144902 const n =
48154903 (o.restoreIdentity ? 1 : 0) |
……@@ -4822,15 +4910,15 @@ const n = {
48224910 (o.sendContactRequest ? 128 : 0) |
48234911 (o.migrateV2Room ? 256 : 0)
48244912 ;(e.uint.preencode(d, n),
4825 o.restoreIdentity && Zi.preencode(d, o.restoreIdentity),
4826 o.createRoom && $i.preencode(d, o.createRoom),
4827 o.leaveRoom && _i.preencode(d, o.leaveRoom),
4828 o.clearRoom && ea.preencode(d, o.clearRoom),
4829 o.joinRoomInvitation && da.preencode(d, o.joinRoomInvitation),
4830 o.joinRoomKeys && oa.preencode(d, o.joinRoomKeys),
4831 o.joinRoomResponse && na.preencode(d, o.joinRoomResponse),
4832 o.sendContactRequest && ca.preencode(d, o.sendContactRequest),
4833 o.migrateV2Room && ra.preencode(d, o.migrateV2Room))
4913 o.restoreIdentity && da.preencode(d, o.restoreIdentity),
4914 o.createRoom && oa.preencode(d, o.createRoom),
4915 o.leaveRoom && na.preencode(d, o.leaveRoom),
4916 o.clearRoom && ca.preencode(d, o.clearRoom),
4917 o.joinRoomInvitation && ra.preencode(d, o.joinRoomInvitation),
4918 o.joinRoomKeys && ta.preencode(d, o.joinRoomKeys),
4919 o.joinRoomResponse && ia.preencode(d, o.joinRoomResponse),
4920 o.sendContactRequest && aa.preencode(d, o.sendContactRequest),
4921 o.migrateV2Room && sa.preencode(d, o.migrateV2Room))
48344922 },
48354923 encode(d, o) {
48364924 const n =
……@@ -4844,15 +4932,15 @@ const n = {
48444932 (o.sendContactRequest ? 128 : 0) |
48454933 (o.migrateV2Room ? 256 : 0)
48464934 ;(e.uint.encode(d, n),
4847 o.restoreIdentity && Zi.encode(d, o.restoreIdentity),
4848 o.createRoom && $i.encode(d, o.createRoom),
4849 o.leaveRoom && _i.encode(d, o.leaveRoom),
4850 o.clearRoom && ea.encode(d, o.clearRoom),
4851 o.joinRoomInvitation && da.encode(d, o.joinRoomInvitation),
4852 o.joinRoomKeys && oa.encode(d, o.joinRoomKeys),
4853 o.joinRoomResponse && na.encode(d, o.joinRoomResponse),
4854 o.sendContactRequest && ca.encode(d, o.sendContactRequest),
4855 o.migrateV2Room && ra.encode(d, o.migrateV2Room))
4935 o.restoreIdentity && da.encode(d, o.restoreIdentity),
4936 o.createRoom && oa.encode(d, o.createRoom),
4937 o.leaveRoom && na.encode(d, o.leaveRoom),
4938 o.clearRoom && ca.encode(d, o.clearRoom),
4939 o.joinRoomInvitation && ra.encode(d, o.joinRoomInvitation),
4940 o.joinRoomKeys && ta.encode(d, o.joinRoomKeys),
4941 o.joinRoomResponse && ia.encode(d, o.joinRoomResponse),
4942 o.sendContactRequest && aa.encode(d, o.sendContactRequest),
4943 o.migrateV2Room && sa.encode(d, o.migrateV2Room))
48564944 },
48574945 decode(d) {
48584946 const o = e.uint.decode(d)
……@@ -4861,19 +4949,19 @@ const n = {
48614949 priority: 0,
48624950 timestamp: 0,
48634951 type: 0,
4864 restoreIdentity: 1 & o ? Zi.decode(d) : null,
4865 createRoom: 2 & o ? $i.decode(d) : null,
4866 leaveRoom: 4 & o ? _i.decode(d) : null,
4867 clearRoom: 8 & o ? ea.decode(d) : null,
4868 joinRoomInvitation: 16 & o ? da.decode(d) : null,
4869 joinRoomKeys: 32 & o ? oa.decode(d) : null,
4870 joinRoomResponse: 64 & o ? na.decode(d) : null,
4871 sendContactRequest: 128 & o ? ca.decode(d) : null,
4872 migrateV2Room: 256 & o ? ra.decode(d) : null,
4952 restoreIdentity: 1 & o ? da.decode(d) : null,
4953 createRoom: 2 & o ? oa.decode(d) : null,
4954 leaveRoom: 4 & o ? na.decode(d) : null,
4955 clearRoom: 8 & o ? ca.decode(d) : null,
4956 joinRoomInvitation: 16 & o ? ra.decode(d) : null,
4957 joinRoomKeys: 32 & o ? ta.decode(d) : null,
4958 joinRoomResponse: 64 & o ? ia.decode(d) : null,
4959 sendContactRequest: 128 & o ? aa.decode(d) : null,
4960 migrateV2Room: 256 & o ? sa.decode(d) : null,
48734961 }
48744962 },
48754963 },
4876 ia = {
4964 la = {
48774965 preencode(d, o) {
48784966 ;(e.uint.preencode(d, o.blockLength),
48794967 e.uint.preencode(d, o.byteOffset),
……@@ -4891,7 +4979,7 @@ const n = {
48914979 byteLength: e.uint.decode(d),
48924980 }),
48934981 },
4894 aa = {
4982 ua = {
48954983 preencode(e, d) {
48964984 s.preencode(e, d.blob)
48974985 },
……@@ -4900,15 +4988,15 @@ const n = {
49004988 },
49014989 decode: (e) => ({ key: null, blob: s.decode(e) }),
49024990 },
4903 sa = y,
4904 la = b,
4905 pa = {
4991 fa = y,
4992 ma = b,
4993 ya = {
49064994 preencode(d, o) {
49074995 ;(d.end++,
49084996 o.inlined && e.buffer.preencode(d, o.inlined),
49094997 o.blob && s.preencode(d, o.blob),
4910 o.externalBlob && sa.preencode(d, o.externalBlob),
4911 o.externalDrive && la.preencode(d, o.externalDrive))
4998 o.externalBlob && fa.preencode(d, o.externalBlob),
4999 o.externalDrive && ma.preencode(d, o.externalDrive))
49125000 },
49135001 encode(d, o) {
49145002 const n =
……@@ -4919,52 +5007,52 @@ const n = {
49195007 ;(e.uint.encode(d, n),
49205008 o.inlined && e.buffer.encode(d, o.inlined),
49215009 o.blob && s.encode(d, o.blob),
4922 o.externalBlob && sa.encode(d, o.externalBlob),
4923 o.externalDrive && la.encode(d, o.externalDrive))
5010 o.externalBlob && fa.encode(d, o.externalBlob),
5011 o.externalDrive && ma.encode(d, o.externalDrive))
49245012 },
49255013 decode(d) {
49265014 const o = e.uint.decode(d)
49275015 return {
49285016 inlined: 1 & o ? e.buffer.decode(d) : null,
49295017 blob: 2 & o ? s.decode(d) : null,
4930 externalBlob: 4 & o ? sa.decode(d) : null,
4931 externalDrive: 8 & o ? la.decode(d) : null,
5018 externalBlob: 4 & o ? fa.decode(d) : null,
5019 externalDrive: 8 & o ? ma.decode(d) : null,
49325020 }
49335021 },
49345022 },
4935 ua = v,
4936 fa = k,
4937 ma = {
5023 ba = v,
5024 xa = k,
5025 va = {
49385026 preencode(d, o) {
4939 ;(ua.preencode(d, o.pointer),
5027 ;(ba.preencode(d, o.pointer),
49405028 d.end++,
4941 o.metadata && fa.preencode(d, o.metadata),
4942 o.preview && rs.preencode(d, o.preview),
5029 o.metadata && xa.preencode(d, o.metadata),
5030 o.preview && ps.preencode(d, o.preview),
49435031 o.hash && e.fixed32.preencode(d, o.hash))
49445032 },
49455033 encode(d, o) {
49465034 const n = (o.metadata ? 1 : 0) | (o.preview ? 2 : 0) | (o.hash ? 4 : 0)
4947 ;(ua.encode(d, o.pointer),
5035 ;(ba.encode(d, o.pointer),
49485036 e.uint.encode(d, n),
4949 o.metadata && fa.encode(d, o.metadata),
4950 o.preview && rs.encode(d, o.preview),
5037 o.metadata && xa.encode(d, o.metadata),
5038 o.preview && ps.encode(d, o.preview),
49515039 o.hash && e.fixed32.encode(d, o.hash))
49525040 },
49535041 decode(d) {
4954 const o = ua.decode(d),
5042 const o = ba.decode(d),
49555043 n = e.uint.decode(d)
49565044 return {
49575045 pointer: o,
4958 metadata: 1 & n ? fa.decode(d) : null,
4959 preview: 2 & n ? rs.decode(d) : null,
5046 metadata: 1 & n ? xa.decode(d) : null,
5047 preview: 2 & n ? ps.decode(d) : null,
49605048 hash: 4 & n ? e.fixed32.decode(d) : null,
49615049 }
49625050 },
49635051 },
4964 ya = K,
4965 ba = {
5052 ka = K,
5053 ga = {
49665054 preencode(d, n) {
4967 ;(ya.preencode(d, n.file),
5055 ;(ka.preencode(d, n.file),
49685056 e.fixed32.preencode(d, n.roomKey),
49695057 d.end++,
49705058 n.encryptionKey && e.buffer.preencode(d, n.encryptionKey),
……@@ -4978,7 +5066,7 @@ const n = {
49785066 (n.own ? 4 : 0) |
49795067 (o >= 28 && n.lastAccessed ? 8 : 0) |
49805068 (o >= 28 && n.version ? 16 : 0)
4981 ;(ya.encode(d, n.file),
5069 ;(ka.encode(d, n.file),
49825070 e.fixed32.encode(d, n.roomKey),
49835071 e.uint.encode(d, c),
49845072 n.encryptionKey && e.buffer.encode(d, n.encryptionKey),
……@@ -4986,7 +5074,7 @@ const n = {
49865074 o >= 28 && n.version && e.uint.encode(d, n.version))
49875075 },
49885076 decode(d) {
4989 const n = ya.decode(d),
5077 const n = ka.decode(d),
49905078 c = e.fixed32.decode(d),
49915079 r = e.uint.decode(d)
49925080 return {
……@@ -5000,7 +5088,7 @@ const n = {
50005088 }
50015089 },
50025090 },
5003 xa = {
5091 Ka = {
50045092 preencode(d, o) {
50055093 e.uint.preencode(d, o.size)
50065094 },
……@@ -5009,15 +5097,15 @@ const n = {
50095097 },
50105098 decode: (d) => ({ key: null, path: null, version: 0, size: e.uint.decode(d) }),
50115099 },
5012 va = y,
5013 ka = b,
5014 ga = {
5100 ha = y,
5101 wa = b,
5102 Ra = {
50155103 preencode(d, o) {
50165104 ;(d.end++,
50175105 o.inlined && e.buffer.preencode(d, o.inlined),
50185106 o.blob && s.preencode(d, o.blob),
5019 o.externalBlob && va.preencode(d, o.externalBlob),
5020 o.externalDrive && ka.preencode(d, o.externalDrive))
5107 o.externalBlob && ha.preencode(d, o.externalBlob),
5108 o.externalDrive && wa.preencode(d, o.externalDrive))
50215109 },
50225110 encode(d, o) {
50235111 const n =
……@@ -5028,52 +5116,52 @@ const n = {
50285116 ;(e.uint.encode(d, n),
50295117 o.inlined && e.buffer.encode(d, o.inlined),
50305118 o.blob && s.encode(d, o.blob),
5031 o.externalBlob && va.encode(d, o.externalBlob),
5032 o.externalDrive && ka.encode(d, o.externalDrive))
5119 o.externalBlob && ha.encode(d, o.externalBlob),
5120 o.externalDrive && wa.encode(d, o.externalDrive))
50335121 },
50345122 decode(d) {
50355123 const o = e.uint.decode(d)
50365124 return {
50375125 inlined: 1 & o ? e.buffer.decode(d) : null,
50385126 blob: 2 & o ? s.decode(d) : null,
5039 externalBlob: 4 & o ? va.decode(d) : null,
5040 externalDrive: 8 & o ? ka.decode(d) : null,
5127 externalBlob: 4 & o ? ha.decode(d) : null,
5128 externalDrive: 8 & o ? wa.decode(d) : null,
50415129 }
50425130 },
50435131 },
5044 Ka = v,
5045 ha = k,
5046 wa = {
5132 Pa = v,
5133 Ta = k,
5134 Aa = {
50475135 preencode(d, o) {
5048 ;(Ka.preencode(d, o.pointer),
5136 ;(Pa.preencode(d, o.pointer),
50495137 d.end++,
5050 o.metadata && ha.preencode(d, o.metadata),
5051 o.preview && ts.preencode(d, o.preview),
5138 o.metadata && Ta.preencode(d, o.metadata),
5139 o.preview && ls.preencode(d, o.preview),
50525140 o.hash && e.fixed32.preencode(d, o.hash))
50535141 },
50545142 encode(d, o) {
50555143 const n = (o.metadata ? 1 : 0) | (o.preview ? 2 : 0) | (o.hash ? 4 : 0)
5056 ;(Ka.encode(d, o.pointer),
5144 ;(Pa.encode(d, o.pointer),
50575145 e.uint.encode(d, n),
5058 o.metadata && ha.encode(d, o.metadata),
5059 o.preview && ts.encode(d, o.preview),
5146 o.metadata && Ta.encode(d, o.metadata),
5147 o.preview && ls.encode(d, o.preview),
50605148 o.hash && e.fixed32.encode(d, o.hash))
50615149 },
50625150 decode(d) {
5063 const o = Ka.decode(d),
5151 const o = Pa.decode(d),
50645152 n = e.uint.decode(d)
50655153 return {
50665154 pointer: o,
5067 metadata: 1 & n ? ha.decode(d) : null,
5068 preview: 2 & n ? ts.decode(d) : null,
5155 metadata: 1 & n ? Ta.decode(d) : null,
5156 preview: 2 & n ? ls.decode(d) : null,
50695157 hash: 4 & n ? e.fixed32.decode(d) : null,
50705158 }
50715159 },
50725160 },
5073 Ra = K,
5074 Pa = {
5161 Ma = K,
5162 Da = {
50755163 preencode(d, n) {
5076 ;(Ra.preencode(d, n.file),
5164 ;(Ma.preencode(d, n.file),
50775165 e.fixed32.preencode(d, n.roomKey),
50785166 d.end++,
50795167 n.encryptionKey && e.buffer.preencode(d, n.encryptionKey),
……@@ -5087,7 +5175,7 @@ const n = {
50875175 (n.own ? 4 : 0) |
50885176 (o >= 28 && n.lastAccessed ? 8 : 0) |
50895177 (o >= 28 && n.version ? 16 : 0)
5090 ;(Ra.encode(d, n.file),
5178 ;(Ma.encode(d, n.file),
50915179 e.fixed32.encode(d, n.roomKey),
50925180 e.uint.encode(d, c),
50935181 n.encryptionKey && e.buffer.encode(d, n.encryptionKey),
……@@ -5095,7 +5183,7 @@ const n = {
50955183 o >= 28 && n.version && e.uint.encode(d, n.version))
50965184 },
50975185 decode(d) {
5098 const n = Ra.decode(d),
5186 const n = Ma.decode(d),
50995187 c = e.fixed32.decode(d),
51005188 r = e.uint.decode(d)
51015189 return {
……@@ -5109,7 +5197,7 @@ const n = {
51095197 }
51105198 },
51115199 },
5112 Ta = {
5200 Ca = {
51135201 preencode(d, o) {
51145202 ;(e.uint.preencode(d, o.timestamp),
51155203 d.end++,
……@@ -5132,12 +5220,12 @@ const n = {
51325220 }
51335221 },
51345222 },
5135 Aa = {
5223 Sa = {
51365224 preencode(e, d) {},
51375225 encode(e, d) {},
51385226 decode: (e) => ({ key: null, responsePublicKey: null }),
51395227 },
5140 Ma = {
5228 Ia = {
51415229 preencode(d, n) {
51425230 ;(d.end++, o >= 10 && n.repairs && e.uint.preencode(d, n.repairs))
51435231 },
……@@ -5150,7 +5238,7 @@ const n = {
51505238 return { roomKey: null, repairs: o >= 10 && 1 & n ? e.uint.decode(d) : 0 }
51515239 },
51525240 },
5153 Da = {
5241 ja = {
51545242 preencode(d, o) {
51555243 e.uint.preencode(d, o.count)
51565244 },
……@@ -5159,14 +5247,14 @@ const n = {
51595247 },
51605248 decode: (d) => ({ roomKey: null, count: e.uint.decode(d) }),
51615249 },
5162 Ca = Ft,
5163 Sa = {
5250 La = Ft,
5251 Fa = {
51645252 preencode(d, n) {
51655253 ;(e.string.preencode(d, n.code),
51665254 e.string.preencode(d, n.message),
51675255 e.string.preencode(d, n.stack),
51685256 d.end++,
5169 o >= 20 && n.details && Ca.preencode(d, n.details))
5257 o >= 20 && n.details && La.preencode(d, n.details))
51705258 },
51715259 encode(d, n) {
51725260 const c = o >= 20 && n.details ? 1 : 0
……@@ -5174,7 +5262,7 @@ const n = {
51745262 e.string.encode(d, n.message),
51755263 e.string.encode(d, n.stack),
51765264 e.uint.encode(d, c),
5177 o >= 20 && n.details && Ca.encode(d, n.details))
5265 o >= 20 && n.details && La.encode(d, n.details))
51785266 },
51795267 decode(d) {
51805268 const n = e.string.decode(d),
……@@ -5186,11 +5274,11 @@ const n = {
51865274 message: c,
51875275 stack: r,
51885276 timestamp: 0,
5189 details: o >= 20 && 1 & t ? Ca.decode(d) : null,
5277 details: o >= 20 && 1 & t ? La.decode(d) : null,
51905278 }
51915279 },
51925280 },
5193 Ia = {
5281 qa = {
51945282 preencode(d, o) {
51955283 e.uint.preencode(d, o.total)
51965284 },
……@@ -5199,44 +5287,53 @@ const n = {
51995287 },
52005288 decode: (d) => ({ roomKey: null, total: e.uint.decode(d) }),
52015289 },
5202 ja = e.frame(R),
5203 La = ja,
5204 Fa = e.array(rt),
5205 qa = e.frame(le),
5206 Ba = ja,
5207 Ea = qa,
5208 Va = e.frame(Br),
5209 Oa = qa,
5210 Na = e.frame(md),
5211 Ua = e.frame(Sr),
5212 Ja = e.frame(Qt),
5213 Wa = Ja,
5214 za = e.array(e.frame(it)),
5215 Ha = ja,
5216 Ga = e.frame(Un),
5217 Qa = Ga,
5218 Xa = Ga,
5219 Ya = e.frame(Er),
5220 Za = e.frame(jr),
5221 $a = e.array(e.frame(Tt)),
5222 _a = e.frame(yi),
5223 es = ja,
5224 ds = $a,
5225 os = _a,
5226 ns = qa,
5227 cs = Ga,
5228 rs = ja,
5229 ts = ja
5230function is(e) {
5290 Ba = {
5291 preencode(d, o) {
5292 ;(e.buffer.preencode(d, o.proof), e.uint.preencode(d, o.createdAt))
5293 },
5294 encode(d, o) {
5295 ;(e.buffer.encode(d, o.proof), e.uint.encode(d, o.createdAt))
5296 },
5297 decode: (d) => ({ deviceKey: null, proof: e.buffer.decode(d), createdAt: e.uint.decode(d) }),
5298 },
5299 Ea = e.frame(R),
5300 Va = Ea,
5301 Oa = e.array(rt),
5302 Na = e.frame(pe),
5303 Ua = Ea,
5304 Ja = Na,
5305 Wa = e.frame(Br),
5306 za = Na,
5307 Ha = e.frame(md),
5308 Ga = e.frame(Sr),
5309 Qa = e.frame(Qt),
5310 Xa = Qa,
5311 Ya = e.array(e.frame(it)),
5312 Za = Ea,
5313 $a = e.frame(Un),
5314 _a = $a,
5315 es = $a,
5316 ds = e.frame(Er),
5317 os = e.frame(jr),
5318 ns = e.array(e.frame(Tt)),
5319 cs = e.frame(yi),
5320 rs = Ea,
5321 ts = ns,
5322 is = cs,
5323 as = Na,
5324 ss = $a,
5325 ps = Ea,
5326 ls = Ea
5327function us(e) {
52315328 o = e
52325329}
5233function as(d, n, c = 30) {
5234 return ((o = c), e.encode(ps(d), n))
5330function fs(d, n, c = 31) {
5331 return ((o = c), e.encode(bs(d), n))
52355332}
5236function ss(d, n, c = 30) {
5237 return ((o = c), e.decode(ps(d), n))
5333function ms(d, n, c = 31) {
5334 return ((o = c), e.decode(bs(d), n))
52385335}
5239function ls(e) {
5336function ys(e) {
52405337 switch (e) {
52415338 case "@keet/room-type":
52425339 return U
……@@ -5262,7 +5359,7 @@ function ls(e) {
52625359 throw new Error("Enum not found " + e)
52635360 }
52645361}
5265function ps(e) {
5362function bs(e) {
52665363 switch (e) {
52675364 case "@keet/head":
52685365 return n
……@@ -5279,7 +5376,7 @@ function ps(e) {
52795376 case "@keet/blob-pointer":
52805377 return s
52815378 case "@keet/file-dimensions":
5282 return l
5379 return p
52835380 case "@keet/file-metadata":
52845381 return u
52855382 case "@keet/external-drive-pointer":
……@@ -5341,7 +5438,7 @@ function ps(e) {
53415438 case "@keet/member-profile":
53425439 return se
53435440 case "@keet/device-profile":
5344 return le
5441 return pe
53455442 case "@keet/member-update":
53465443 return ue
53475444 case "@keet/device-update":
……@@ -5393,7 +5490,7 @@ function ps(e) {
53935490 case "@keet/reject-join-request-operation":
53945491 return id
53955492 case "@keet/member":
5396 return ld
5493 return pd
53975494 case "@keet/full-member":
53985495 return fd
53995496 case "@keet/member-proofs":
……@@ -5435,7 +5532,7 @@ function ps(e) {
54355532 case "@keet/index-message":
54365533 return ao
54375534 case "@keet/full-index-message":
5438 return po
5535 return lo
54395536 case "@keet/message-status":
54405537 return uo
54415538 case "@keet/message-index-id":
……@@ -5481,7 +5578,7 @@ function ps(e) {
54815578 case "@keet-private-id/contact":
54825579 return sn
54835580 case "@keet-private-id/v3-room-migration-info":
5484 return ln
5581 return pn
54855582 case "@keet-private-id/run-v3-migration-operation":
54865583 return fn
54875584 case "@keet-private-id/update-identity-operation":
……@@ -5535,7 +5632,7 @@ function ps(e) {
55355632 case "@keet-private-id/add-contact-request-operation":
55365633 return ac
55375634 case "@keet-private-id/update-contact-request-status-operation":
5538 return pc
5635 return lc
55395636 case "@keet-private-id/profile-discovery-record-v1":
55405637 return uc
55415638 case "@keet-private-id/profile-discovery-record":
……@@ -5651,7 +5748,7 @@ function ps(e) {
56515748 case "@keet-private-id/unreads":
56525749 return st
56535750 case "@keet-private-id/add-unreads-key-operation":
5654 return pt
5751 return lt
56555752 case "@keet-private-id/remove-unreads-key-operation":
56565753 return ft
56575754 case "@keet/label-type":
……@@ -5711,9 +5808,9 @@ function ps(e) {
57115808 case "@keet/add-call-stream":
57125809 return ai
57135810 case "@keet/remove-call-stream":
5714 return li
5715 case "@keet/call-record":
57165811 return pi
5812 case "@keet/call-record":
5813 return li
57175814 case "@keet/call-member-record":
57185815 return ui
57195816 case "@keet/call-device-record":
……@@ -5732,60 +5829,68 @@ function ps(e) {
57325829 return hi
57335830 case "@local/environment-record":
57345831 return wi
5735 case "@local/room-migration/hyperdb#3":
5832 case "@keet-private-id/shorten-device-attestation-operation":
57365833 return Pi
5834 case "@local/ota-actions":
5835 return Ti
5836 case "@local/device-attestation":
5837 return Ai
5838 case "@local/room-migration/hyperdb#3":
5839 return Di
57375840 case "@local/room/hyperdb#6":
5738 return Vi
5841 return Ji
57395842 case "@local/room-preferences/hyperdb#13":
5740 return Ni
5843 return zi
57415844 case "@local/writer/hyperdb#14":
5742 return Ui
5845 return Hi
57435846 case "@local/member/hyperdb#17":
5744 return Wi
5847 return Qi
57455848 case "@keet/device/hyperdb#18":
5746 return Gi
5849 return Zi
57475850 case "@local/device/hyperdb#18":
5748 return Xi
5851 return _i
57495852 case "@keet-private-id/contact/hyperdb#19":
5750 return Yi
5853 return ea
57515854 case "@local/task/hyperdb#21":
5752 return ta
5855 return pa
57535856 case "@keet/blob-pointer/hyperdb#23":
5754 return ia
5857 return la
57555858 case "@keet/external-blob-pointer/hyperdb#23":
5756 return aa
5859 return ua
57575860 case "@keet/file-pointer/hyperdb#23":
5758 return pa
5861 return ya
57595862 case "@keet/file/hyperdb#23":
5760 return ma
5863 return va
57615864 case "@local/file/hyperdb#23":
5762 return ba
5865 return ga
57635866 case "@keet/external-drive-pointer/hyperdb#24":
5764 return xa
5867 return Ka
57655868 case "@keet/file-pointer/hyperdb#24":
5766 return ga
5869 return Ra
57675870 case "@keet/file/hyperdb#24":
5768 return wa
5871 return Aa
57695872 case "@local/file/hyperdb#24":
5770 return Pa
5873 return Da
57715874 case "@local/background-sync-room/hyperdb#27":
5772 return Ta
5875 return Ca
57735876 case "@local/writer-append/hyperdb#29":
5774 return Aa
5877 return Sa
57755878 case "@local/room-metadata/hyperdb#30":
5776 return Ma
5879 return Ia
57775880 case "@local/unread/hyperdb#33":
5778 return Da
5881 return ja
57795882 case "@local/error-record/hyperdb#35":
5780 return Sa
5883 return Fa
57815884 case "@local/file-stats/hyperdb#37":
5782 return Ia
5885 return qa
5886 case "@local/device-attestation/hyperdb#44":
5887 return Ba
57835888 default:
57845889 throw new Error("Encoder not found " + e)
57855890 }
57865891}
5787function us(e, d = 30) {
5788 const n = ps(e)
5892function xs(e, d = 31) {
5893 const n = bs(e)
57895894 return {
57905895 preencode(e, c) {
57915896 ;((o = d), n.preencode(e, c))
……@@ -5796,14 +5901,14 @@ function us(e, d = 30) {
57965901 decode: (e) => ((o = d), n.decode(e)),
57975902 }
57985903}
5799const fs = us
5904const vs = xs
58005905module.exports = {
5801 resolveStruct: fs,
5802 getStruct: us,
5803 getEnum: ls,
5804 getEncoding: ps,
5805 encode: as,
5806 decode: ss,
5807 setVersion: is,
5906 resolveStruct: vs,
5907 getStruct: xs,
5908 getEnum: ys,
5909 getEncoding: bs,
5910 encode: fs,
5911 decode: ms,
5912 setVersion: us,
58085913 version: o,
58095914}
@holepunchto/keet-core/schema/spec/local/hyperschema/index.js +356 -262
……@@ -1,5 +1,5 @@
11const { c: e } = require("hyperschema/runtime"),
2 d = 30
2 d = 31
33let o = d
44const n = {
55 preencode(d, o) {
……@@ -204,7 +204,7 @@ const n = {
204204 ;(v.preencode(d, o.pointer),
205205 d.end++,
206206 o.metadata && k.preencode(d, o.metadata),
207 o.preview && Pi.preencode(d, o.preview),
207 o.preview && Mi.preencode(d, o.preview),
208208 o.hash && e.fixed32.preencode(d, o.hash))
209209 },
210210 encode(d, o) {
……@@ -212,7 +212,7 @@ const n = {
212212 ;(v.encode(d, o.pointer),
213213 e.uint.encode(d, n),
214214 o.metadata && k.encode(d, o.metadata),
215 o.preview && Pi.encode(d, o.preview),
215 o.preview && Mi.encode(d, o.preview),
216216 o.hash && e.fixed32.encode(d, o.hash))
217217 },
218218 decode(d) {
……@@ -221,7 +221,7 @@ const n = {
221221 return {
222222 pointer: o,
223223 metadata: 1 & n ? k.decode(d) : null,
224 preview: 2 & n ? Pi.decode(d) : null,
224 preview: 2 & n ? Mi.decode(d) : null,
225225 hash: 4 & n ? e.fixed32.decode(d) : null,
226226 }
227227 },
……@@ -252,7 +252,7 @@ const n = {
252252 }
253253 },
254254 },
255 T = {
255 R = {
256256 preencode(e, d) {
257257 e.end++
258258 },
……@@ -262,13 +262,13 @@ const n = {
262262 },
263263 decode: (d) => ({ isDeleted: !!(1 & e.uint.decode(d)) }),
264264 },
265 R = e.frame(T),
265 T = e.frame(R),
266266 A = K,
267267 M = {
268268 preencode(d, n) {
269269 ;(e.uint.preencode(d, n.id),
270270 c.preencode(d, n.oplog),
271 R.preencode(d, n.status),
271 T.preencode(d, n.status),
272272 A.preencode(d, n.file),
273273 d.end++,
274274 o >= 22 && n.version && e.uint.preencode(d, n.version))
……@@ -277,7 +277,7 @@ const n = {
277277 const r = o >= 22 && n.version ? 1 : 0
278278 ;(e.uint.encode(d, n.id),
279279 c.encode(d, n.oplog),
280 R.encode(d, n.status),
280 T.encode(d, n.status),
281281 A.encode(d, n.file),
282282 e.uint.encode(d, r),
283283 o >= 22 && n.version && e.uint.encode(d, n.version))
……@@ -285,7 +285,7 @@ const n = {
285285 decode(d) {
286286 const n = e.uint.decode(d),
287287 r = c.decode(d),
288 t = R.decode(d),
288 t = T.decode(d),
289289 i = A.decode(d),
290290 a = d.start < d.end ? e.uint.decode(d) : 0
291291 return {
……@@ -310,7 +310,7 @@ const n = {
310310 return { isActive: !!(1 & o), isIndexing: !!(2 & o) }
311311 },
312312 },
313 C = {
313 S = {
314314 preencode(d, n) {
315315 const c =
316316 (n.isAdmin ? 1 : 0) |
……@@ -349,7 +349,7 @@ const n = {
349349 }
350350 },
351351 },
352 S = {
352 C = {
353353 preencode(e, d) {
354354 e.end++
355355 },
……@@ -439,7 +439,7 @@ const n = {
439439 B = e.frame(L),
440440 N = e.frame(q),
441441 V = e.frame(j),
442 O = {
442 U = {
443443 preencode(e, d) {
444444 ;(E.preencode(e, d.devices),
445445 B.preencode(e, d.members),
……@@ -456,7 +456,7 @@ const n = {
456456 files: V.decode(e),
457457 }),
458458 },
459 U = { Default: 1, Broadcast: 2, DirectMessage: 3 },
459 O = { Default: 1, Broadcast: 2, DirectMessage: 3 },
460460 J = {
461461 preencode(e, d) {
462462 e.end++
……@@ -558,9 +558,9 @@ const n = {
558558 preencode(d, n) {
559559 ;(d.end++,
560560 n.title && e.string.preencode(d, n.title),
561 n.avatar && Ti.preencode(d, n.avatar),
561 n.avatar && Di.preencode(d, n.avatar),
562562 n.description && e.string.preencode(d, n.description),
563 o >= 17 && n.supportedLanguages && Ri.preencode(d, n.supportedLanguages),
563 o >= 17 && n.supportedLanguages && Si.preencode(d, n.supportedLanguages),
564564 o >= 19 && n.blindPeers && Y.preencode(d, n.blindPeers))
565565 },
566566 encode(d, n) {
……@@ -572,18 +572,18 @@ const n = {
572572 (o >= 19 && n.blindPeers ? 16 : 0)
573573 ;(e.uint.encode(d, c),
574574 n.title && e.string.encode(d, n.title),
575 n.avatar && Ti.encode(d, n.avatar),
575 n.avatar && Di.encode(d, n.avatar),
576576 n.description && e.string.encode(d, n.description),
577 o >= 17 && n.supportedLanguages && Ri.encode(d, n.supportedLanguages),
577 o >= 17 && n.supportedLanguages && Si.encode(d, n.supportedLanguages),
578578 o >= 19 && n.blindPeers && Y.encode(d, n.blindPeers))
579579 },
580580 decode(d) {
581581 const n = e.uint.decode(d)
582582 return {
583583 title: 1 & n ? e.string.decode(d) : null,
584 avatar: 2 & n ? Ti.decode(d) : null,
584 avatar: 2 & n ? Di.decode(d) : null,
585585 description: 4 & n ? e.string.decode(d) : null,
586 supportedLanguages: o >= 17 && 8 & n ? Ri.decode(d) : null,
586 supportedLanguages: o >= 17 && 8 & n ? Si.decode(d) : null,
587587 blindPeers: o >= 19 && 16 & n ? Y.decode(d) : null,
588588 }
589589 },
……@@ -643,7 +643,7 @@ const n = {
643643 ;(e.fixed32.preencode(d, o.key),
644644 e.fixed32.preencode(d, o.memberKey),
645645 te.preencode(d, o.status),
646 Ai.preencode(d, o.profile),
646 Ci.preencode(d, o.profile),
647647 d.end++,
648648 o.invitation && ie.preencode(d, o.invitation))
649649 },
……@@ -652,7 +652,7 @@ const n = {
652652 ;(e.fixed32.encode(d, o.key),
653653 e.fixed32.encode(d, o.memberKey),
654654 te.encode(d, o.status),
655 Ai.encode(d, o.profile),
655 Ci.encode(d, o.profile),
656656 e.uint.encode(d, n),
657657 o.invitation && ie.encode(d, o.invitation))
658658 },
……@@ -660,7 +660,7 @@ const n = {
660660 key: e.fixed32.decode(d),
661661 memberKey: e.fixed32.decode(d),
662662 status: te.decode(d),
663 profile: Ai.decode(d),
663 profile: Ci.decode(d),
664664 invitation: 1 & e.uint.decode(d) ? ie.decode(d) : null,
665665 }),
666666 },
……@@ -670,7 +670,7 @@ const n = {
670670 d.end++,
671671 o.mailbox && e.fixed32.preencode(d, o.mailbox),
672672 o.displayName && e.string.preencode(d, o.displayName),
673 o.avatar && Mi.preencode(d, o.avatar),
673 o.avatar && Fi.preencode(d, o.avatar),
674674 o.username && e.string.preencode(d, o.username))
675675 },
676676 encode(d, o) {
……@@ -680,7 +680,7 @@ const n = {
680680 e.uint.encode(d, n),
681681 o.mailbox && e.fixed32.encode(d, o.mailbox),
682682 o.displayName && e.string.encode(d, o.displayName),
683 o.avatar && Mi.encode(d, o.avatar),
683 o.avatar && Fi.encode(d, o.avatar),
684684 o.username && e.string.encode(d, o.username))
685685 },
686686 decode(d) {
……@@ -690,7 +690,7 @@ const n = {
690690 timestamp: o,
691691 mailbox: 1 & n ? e.fixed32.decode(d) : null,
692692 displayName: 2 & n ? e.string.decode(d) : null,
693 avatar: 4 & n ? Mi.decode(d) : null,
693 avatar: 4 & n ? Fi.decode(d) : null,
694694 username: 8 & n ? e.string.decode(d) : null,
695695 }
696696 },
……@@ -735,12 +735,12 @@ const n = {
735735 },
736736 fe = {
737737 preencode(e, d) {
738 ;(Di.preencode(e, d.profile), ce.preencode(e, d.attestation))
738 ;(Ii.preencode(e, d.profile), ce.preencode(e, d.attestation))
739739 },
740740 encode(e, d) {
741 ;(Di.encode(e, d.profile), ce.encode(e, d.attestation))
741 ;(Ii.encode(e, d.profile), ce.encode(e, d.attestation))
742742 },
743 decode: (e) => ({ profile: Di.decode(e), attestation: ce.decode(e) }),
743 decode: (e) => ({ profile: Ii.decode(e), attestation: ce.decode(e) }),
744744 },
745745 me = {
746746 preencode(d, o) {
……@@ -822,7 +822,7 @@ const n = {
822822 },
823823 we = be,
824824 Pe = ve,
825 Te = {
825 Re = {
826826 preencode(e, d) {
827827 ;(we.preencode(e, d.device), e.end++, d.member && Pe.preencode(e, d.member))
828828 },
……@@ -832,41 +832,41 @@ const n = {
832832 },
833833 decode: (d) => ({ device: we.decode(d), member: 1 & e.uint.decode(d) ? Pe.decode(d) : null }),
834834 },
835 Re = e.frame(he),
836 Ae = e.frame(Te),
835 Te = e.frame(he),
836 Ae = e.frame(Re),
837837 Me = {
838838 preencode(e, d) {
839839 ;(e.end++,
840 d.withInvitation && Re.preencode(e, d.withInvitation),
840 d.withInvitation && Te.preencode(e, d.withInvitation),
841841 d.withMemberProof && Ae.preencode(e, d.withMemberProof))
842842 },
843843 encode(d, o) {
844844 const n = (o.withInvitation ? 1 : 0) | (o.withMemberProof ? 2 : 0)
845845 ;(e.uint.encode(d, n),
846 o.withInvitation && Re.encode(d, o.withInvitation),
846 o.withInvitation && Te.encode(d, o.withInvitation),
847847 o.withMemberProof && Ae.encode(d, o.withMemberProof))
848848 },
849849 decode(d) {
850850 const o = e.uint.decode(d)
851851 return {
852 withInvitation: 1 & o ? Re.decode(d) : null,
852 withInvitation: 1 & o ? Te.decode(d) : null,
853853 withMemberProof: 2 & o ? Ae.decode(d) : null,
854854 }
855855 },
856856 },
857857 De = e.frame(me),
858 Ce = e.frame(xe),
859 Se = {
858 Se = e.frame(xe),
859 Ce = {
860860 preencode(e, d) {
861 ;(De.preencode(e, d.signedKeys), e.end++, d.identity && Ce.preencode(e, d.identity))
861 ;(De.preencode(e, d.signedKeys), e.end++, d.identity && Se.preencode(e, d.identity))
862862 },
863863 encode(d, o) {
864864 const n = o.identity ? 1 : 0
865 ;(De.encode(d, o.signedKeys), e.uint.encode(d, n), o.identity && Ce.encode(d, o.identity))
865 ;(De.encode(d, o.signedKeys), e.uint.encode(d, n), o.identity && Se.encode(d, o.identity))
866866 },
867867 decode: (d) => ({
868868 signedKeys: De.decode(d),
869 identity: 1 & e.uint.decode(d) ? Ce.decode(d) : null,
869 identity: 1 & e.uint.decode(d) ? Se.decode(d) : null,
870870 }),
871871 },
872872 Fe = {
……@@ -950,7 +950,7 @@ const n = {
950950 },
951951 decode: (d) => ({ header: Ne.decode(d), id: e.fixed32.decode(d) }),
952952 },
953 Oe = {
953 Ue = {
954954 preencode(d, o) {
955955 ;(e.fixed32.preencode(d, o.mailbox),
956956 e.fixed32.preencode(d, o.invitationSeed),
……@@ -967,7 +967,7 @@ const n = {
967967 anchor: n.decode(d),
968968 }),
969969 },
970 Ue = {
970 Oe = {
971971 preencode(d, o) {
972972 ;(e.fixed32.preencode(d, o.mailbox),
973973 e.fixed32.preencode(d, o.invitationSeed),
……@@ -996,8 +996,8 @@ const n = {
996996 },
997997 decode: (d) => ({ mailbox: e.fixed32.decode(d) }),
998998 },
999 We = e.frame(Oe),
1000 He = e.frame(Ue),
999 We = e.frame(Ue),
1000 He = e.frame(Oe),
10011001 ze = e.frame(Je),
10021002 Ge = e.array(e.ipv4Address),
10031003 Qe = {
……@@ -1006,7 +1006,7 @@ const n = {
10061006 d.room && We.preencode(e, d.room),
10071007 d.identity && He.preencode(e, d.identity),
10081008 d.contact && ze.preencode(e, d.contact),
1009 o >= 9 && d.readonly && Ci.preencode(e, d.readonly),
1009 o >= 9 && d.readonly && Li.preencode(e, d.readonly),
10101010 o >= 17 && d.additionalNodes && Ge.preencode(e, d.additionalNodes),
10111011 o >= 29 && d.buildType && vi.preencode(e, d.buildType))
10121012 },
……@@ -1022,7 +1022,7 @@ const n = {
10221022 n.room && We.encode(d, n.room),
10231023 n.identity && He.encode(d, n.identity),
10241024 n.contact && ze.encode(d, n.contact),
1025 o >= 9 && n.readonly && Ci.encode(d, n.readonly),
1025 o >= 9 && n.readonly && Li.encode(d, n.readonly),
10261026 o >= 17 && n.additionalNodes && Ge.encode(d, n.additionalNodes),
10271027 o >= 29 && n.buildType && vi.encode(d, n.buildType))
10281028 },
……@@ -1032,7 +1032,7 @@ const n = {
10321032 room: 1 & n ? We.decode(d) : null,
10331033 identity: 2 & n ? He.decode(d) : null,
10341034 contact: 4 & n ? ze.decode(d) : null,
1035 readonly: o >= 9 && 8 & n ? Ci.decode(d) : null,
1035 readonly: o >= 9 && 8 & n ? Li.decode(d) : null,
10361036 additionalNodes: o >= 17 && 16 & n ? Ge.decode(d) : null,
10371037 buildType: o >= 29 && 32 & n ? vi.decode(d) : null,
10381038 }
……@@ -1051,13 +1051,13 @@ const n = {
10511051 Ze = _,
10521052 $e = {
10531053 preencode(e, d) {
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && Si.preencode(e, d.profile))
1054 ;(Ze.preencode(e, d.header), e.end++, d.profile && qi.preencode(e, d.profile))
10551055 },
10561056 encode(d, o) {
10571057 const n = o.profile ? 1 : 0
1058 ;(Ze.encode(d, o.header), e.uint.encode(d, n), o.profile && Si.encode(d, o.profile))
1058 ;(Ze.encode(d, o.header), e.uint.encode(d, n), o.profile && qi.encode(d, o.profile))
10591059 },
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? Si.decode(d) : null }),
1060 decode: (d) => ({ header: Ze.decode(d), profile: 1 & e.uint.decode(d) ? qi.decode(d) : null }),
10611061 },
10621062 _e = { preencode(e, d) {}, encode(e, d) {}, decode: (e) => ({}) },
10631063 ed = _e,
……@@ -1078,7 +1078,7 @@ const n = {
10781078 }),
10791079 },
10801080 nd = _,
1081 cd = Ce,
1081 cd = Se,
10821082 rd = {
10831083 preencode(d, o) {
10841084 ;(nd.preencode(d, o.header),
……@@ -1109,7 +1109,7 @@ const n = {
11091109 },
11101110 decode: (d) => ({ header: td.decode(d), deviceKey: e.fixed32.decode(d) }),
11111111 },
1112 ad = e.frame(C),
1112 ad = e.frame(S),
11131113 sd = ue,
11141114 pd = {
11151115 preencode(d, o) {
……@@ -1128,7 +1128,7 @@ const n = {
11281128 ud.preencode(d, o.status),
11291129 ld.preencode(d, o.profile),
11301130 d.end++,
1131 o.proofs && Fi.preencode(d, o.proofs))
1131 o.proofs && ji.preencode(d, o.proofs))
11321132 },
11331133 encode(d, o) {
11341134 const n = o.proofs ? 1 : 0
……@@ -1136,13 +1136,13 @@ const n = {
11361136 ud.encode(d, o.status),
11371137 ld.encode(d, o.profile),
11381138 e.uint.encode(d, n),
1139 o.proofs && Fi.encode(d, o.proofs))
1139 o.proofs && ji.encode(d, o.proofs))
11401140 },
11411141 decode: (d) => ({
11421142 key: e.fixed32.decode(d),
11431143 status: ud.decode(d),
11441144 profile: ld.decode(d),
1145 proofs: 1 & e.uint.decode(d) ? Fi.decode(d) : null,
1145 proofs: 1 & e.uint.decode(d) ? ji.decode(d) : null,
11461146 }),
11471147 },
11481148 md = {
……@@ -1181,7 +1181,7 @@ const n = {
11811181 decode: (e) => ({ header: yd.decode(e), member: xd.decode(e) }),
11821182 },
11831183 vd = _,
1184 kd = e.frame(S),
1184 kd = e.frame(C),
11851185 gd = {
11861186 preencode(d, o) {
11871187 ;(vd.preencode(d, o.header),
……@@ -1228,7 +1228,7 @@ const n = {
12281228 },
12291229 decode: (d) => ({ header: wd.decode(d), key: e.fixed32.decode(d) }),
12301230 },
1231 Td = {
1231 Rd = {
12321232 preencode(d, o) {
12331233 ;(e.fixed32.preencode(d, o.key), e.uint.preencode(d, o.mentions))
12341234 },
……@@ -1237,7 +1237,7 @@ const n = {
12371237 },
12381238 decode: (d) => ({ key: e.fixed32.decode(d), mentions: e.uint.decode(d) }),
12391239 },
1240 Rd = {
1240 Td = {
12411241 preencode(d, o) {
12421242 ;(d.end++, o.memberKey && e.fixed32.preencode(d, o.memberKey))
12431243 },
……@@ -1247,7 +1247,7 @@ const n = {
12471247 },
12481248 decode: (d) => ({ memberKey: 1 & e.uint.decode(d) ? e.fixed32.decode(d) : null }),
12491249 },
1250 Ad = Rd,
1250 Ad = Td,
12511251 Md = {
12521252 preencode(d, o) {
12531253 ;(d.end++, o.from && e.string.preencode(d, o.from), o.to && e.string.preencode(d, o.to))
……@@ -1261,9 +1261,9 @@ const n = {
12611261 return { from: 1 & o ? e.string.decode(d) : null, to: 2 & o ? e.string.decode(d) : null }
12621262 },
12631263 },
1264 Dd = e.frame(Rd),
1265 Cd = e.frame(Ad),
1266 Sd = e.frame(Md),
1264 Dd = e.frame(Td),
1265 Sd = e.frame(Ad),
1266 Cd = e.frame(Md),
12671267 Fd = {
12681268 preencode(d, n) {
12691269 const c =
……@@ -1279,10 +1279,10 @@ const n = {
12791279 (o >= 27 && n.locationShared ? 512 : 0)
12801280 ;(e.uint.preencode(d, c),
12811281 n.memberJoined && Dd.preencode(d, n.memberJoined),
1282 n.memberLeft && Cd.preencode(d, n.memberLeft),
1283 n.titleChanged && Sd.preencode(d, n.titleChanged),
1284 o >= 4 && n.memberRemoved && Ii.preencode(d, n.memberRemoved),
1285 o >= 27 && n.locationShared && Li.preencode(d, n.locationShared))
1282 n.memberLeft && Sd.preencode(d, n.memberLeft),
1283 n.titleChanged && Cd.preencode(d, n.titleChanged),
1284 o >= 4 && n.memberRemoved && Ei.preencode(d, n.memberRemoved),
1285 o >= 27 && n.locationShared && Bi.preencode(d, n.locationShared))
12861286 },
12871287 encode(d, n) {
12881288 const c =
……@@ -1298,30 +1298,30 @@ const n = {
12981298 (o >= 27 && n.locationShared ? 512 : 0)
12991299 ;(e.uint.encode(d, c),
13001300 n.memberJoined && Dd.encode(d, n.memberJoined),
1301 n.memberLeft && Cd.encode(d, n.memberLeft),
1302 n.titleChanged && Sd.encode(d, n.titleChanged),
1303 o >= 4 && n.memberRemoved && Ii.encode(d, n.memberRemoved),
1304 o >= 27 && n.locationShared && Li.encode(d, n.locationShared))
1301 n.memberLeft && Sd.encode(d, n.memberLeft),
1302 n.titleChanged && Cd.encode(d, n.titleChanged),
1303 o >= 4 && n.memberRemoved && Ei.encode(d, n.memberRemoved),
1304 o >= 27 && n.locationShared && Bi.encode(d, n.locationShared))
13051305 },
13061306 decode(d) {
13071307 const n = e.uint.decode(d)
13081308 return {
13091309 memberJoined: 1 & n ? Dd.decode(d) : null,
1310 memberLeft: 2 & n ? Cd.decode(d) : null,
1311 titleChanged: 4 & n ? Sd.decode(d) : null,
1310 memberLeft: 2 & n ? Sd.decode(d) : null,
1311 titleChanged: 4 & n ? Cd.decode(d) : null,
13121312 callStarted: !!(8 & n),
13131313 callHangup: !!(16 & n),
13141314 callMissed: !!(32 & n),
13151315 roomAvatarChanged: o >= 4 && !!(64 & n),
13161316 invitationCreated: o >= 4 && !!(128 & n),
1317 memberRemoved: o >= 4 && 256 & n ? Ii.decode(d) : null,
1318 locationShared: o >= 27 && 512 & n ? Li.decode(d) : null,
1317 memberRemoved: o >= 4 && 256 & n ? Ei.decode(d) : null,
1318 locationShared: o >= 27 && 512 & n ? Bi.decode(d) : null,
13191319 }
13201320 },
13211321 },
13221322 Id = {
13231323 preencode(e, d) {
1324 ;(e.end++, o >= 27 && d.locationShared && qi.preencode(e, d.locationShared))
1324 ;(e.end++, o >= 27 && d.locationShared && Ni.preencode(e, d.locationShared))
13251325 },
13261326 encode(d, n) {
13271327 const c =
……@@ -1329,7 +1329,7 @@ const n = {
13291329 (n.callHangup ? 2 : 0) |
13301330 (n.callMissed ? 4 : 0) |
13311331 (o >= 27 && n.locationShared ? 8 : 0)
1332 ;(e.uint.encode(d, c), o >= 27 && n.locationShared && qi.encode(d, n.locationShared))
1332 ;(e.uint.encode(d, c), o >= 27 && n.locationShared && Ni.encode(d, n.locationShared))
13331333 },
13341334 decode(d) {
13351335 const n = e.uint.decode(d)
……@@ -1337,7 +1337,7 @@ const n = {
13371337 callStarted: !!(1 & n),
13381338 callHangup: !!(2 & n),
13391339 callMissed: !!(4 & n),
1340 locationShared: o >= 27 && 8 & n ? qi.decode(d) : null,
1340 locationShared: o >= 27 && 8 & n ? Ni.decode(d) : null,
13411341 }
13421342 },
13431343 },
……@@ -1372,7 +1372,7 @@ const n = {
13721372 },
13731373 Nd = K,
13741374 Vd = e.array(e.uint),
1375 Od = {
1375 Ud = {
13761376 preencode(d, n) {
13771377 ;(d.end++,
13781378 n.title && e.string.preencode(d, n.title),
……@@ -1402,24 +1402,24 @@ const n = {
14021402 }
14031403 },
14041404 },
1405 Ud = qd,
1406 Jd = e.frame(Od),
1405 Od = qd,
1406 Jd = e.frame(Ud),
14071407 Wd = {
14081408 preencode(d, o) {
1409 ;(Ud.preencode(d, o.range),
1409 ;(Od.preencode(d, o.range),
14101410 e.string.preencode(d, o.url),
14111411 d.end++,
14121412 o.preview && Jd.preencode(d, o.preview))
14131413 },
14141414 encode(d, o) {
14151415 const n = o.preview ? 1 : 0
1416 ;(Ud.encode(d, o.range),
1416 ;(Od.encode(d, o.range),
14171417 e.string.encode(d, o.url),
14181418 e.uint.encode(d, n),
14191419 o.preview && Jd.encode(d, o.preview))
14201420 },
14211421 decode: (d) => ({
1422 range: Ud.decode(d),
1422 range: Od.decode(d),
14231423 url: e.string.decode(d),
14241424 preview: 1 & e.uint.decode(d) ? Jd.decode(d) : null,
14251425 }),
……@@ -1456,7 +1456,7 @@ const n = {
14561456 n.emoji && Zd.preencode(d, n.emoji),
14571457 n.codeBlock && $d.preencode(d, n.codeBlock),
14581458 n.strike && _d.preencode(d, n.strike),
1459 o >= 17 && n.translation && ji.preencode(d, n.translation))
1459 o >= 17 && n.translation && Vi.preencode(d, n.translation))
14601460 },
14611461 encode(d, n) {
14621462 const c =
……@@ -1480,7 +1480,7 @@ const n = {
14801480 n.emoji && Zd.encode(d, n.emoji),
14811481 n.codeBlock && $d.encode(d, n.codeBlock),
14821482 n.strike && _d.encode(d, n.strike),
1483 o >= 17 && n.translation && ji.encode(d, n.translation))
1483 o >= 17 && n.translation && Vi.encode(d, n.translation))
14841484 },
14851485 decode(d) {
14861486 const n = e.uint.decode(d)
……@@ -1494,7 +1494,7 @@ const n = {
14941494 emoji: 64 & n ? Zd.decode(d) : null,
14951495 codeBlock: 128 & n ? $d.decode(d) : null,
14961496 strike: 256 & n ? _d.decode(d) : null,
1497 translation: o >= 17 && 512 & n ? ji.decode(d) : null,
1497 translation: o >= 17 && 512 & n ? Vi.decode(d) : null,
14981498 }
14991499 },
15001500 },
……@@ -1639,7 +1639,7 @@ const n = {
16391639 },
16401640 decode: (d) => ({ thread: e.uint.decode(d), index: e.uint.decode(d) }),
16411641 },
1642 mo = e.frame(O),
1642 mo = e.frame(U),
16431643 yo = {
16441644 preencode(d, o) {
16451645 ;(e.uint.preencode(d, o.id),
……@@ -1759,15 +1759,15 @@ const n = {
17591759 },
17601760 },
17611761 Po = _,
1762 To = e.frame(ro),
1763 Ro = {
1762 Ro = e.frame(ro),
1763 To = {
17641764 preencode(e, d) {
1765 ;(Po.preencode(e, d.header), To.preencode(e, d.message))
1765 ;(Po.preencode(e, d.header), Ro.preencode(e, d.message))
17661766 },
17671767 encode(e, d) {
1768 ;(Po.encode(e, d.header), To.encode(e, d.message))
1768 ;(Po.encode(e, d.header), Ro.encode(e, d.message))
17691769 },
1770 decode: (e) => ({ header: Po.decode(e), message: To.decode(e) }),
1770 decode: (e) => ({ header: Po.decode(e), message: Ro.decode(e) }),
17711771 },
17721772 Ao = _,
17731773 Mo = {
……@@ -1780,15 +1780,15 @@ const n = {
17801780 decode: (e) => ({ header: Ao.decode(e), oplog: c.decode(e) }),
17811781 },
17821782 Do = _,
1783 Co = To,
1784 So = {
1783 So = Ro,
1784 Co = {
17851785 preencode(e, d) {
1786 ;(Do.preencode(e, d.header), c.preencode(e, d.oplog), Co.preencode(e, d.message))
1786 ;(Do.preencode(e, d.header), c.preencode(e, d.oplog), So.preencode(e, d.message))
17871787 },
17881788 encode(e, d) {
1789 ;(Do.encode(e, d.header), c.encode(e, d.oplog), Co.encode(e, d.message))
1789 ;(Do.encode(e, d.header), c.encode(e, d.oplog), So.encode(e, d.message))
17901790 },
1791 decode: (e) => ({ header: Do.decode(e), oplog: c.decode(e), message: Co.decode(e) }),
1791 decode: (e) => ({ header: Do.decode(e), oplog: c.decode(e), message: So.decode(e) }),
17921792 },
17931793 Fo = _,
17941794 Io = {
……@@ -1870,7 +1870,7 @@ const n = {
18701870 decode: (d) => ({ header: Bo.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
18711871 },
18721872 Vo = _,
1873 Oo = {
1873 Uo = {
18741874 preencode(d, o) {
18751875 ;(Vo.preencode(d, o.header), c.preencode(d, o.oplog), e.string.preencode(d, o.reaction))
18761876 },
……@@ -1879,35 +1879,35 @@ const n = {
18791879 },
18801880 decode: (d) => ({ header: Vo.decode(d), oplog: c.decode(d), reaction: e.string.decode(d) }),
18811881 },
1882 Uo = _,
1882 Oo = _,
18831883 Jo = e.frame(Z),
18841884 Wo = {
18851885 preencode(d, o) {
1886 ;(Uo.preencode(d, o.header), e.uint.preencode(d, o.key), Jo.preencode(d, o.config))
1886 ;(Oo.preencode(d, o.header), e.uint.preencode(d, o.key), Jo.preencode(d, o.config))
18871887 },
18881888 encode(d, o) {
1889 ;(Uo.encode(d, o.header), e.uint.encode(d, o.key), Jo.encode(d, o.config))
1889 ;(Oo.encode(d, o.header), e.uint.encode(d, o.key), Jo.encode(d, o.config))
18901890 },
1891 decode: (d) => ({ header: Uo.decode(d), key: e.uint.decode(d), config: Jo.decode(d) }),
1891 decode: (d) => ({ header: Oo.decode(d), key: e.uint.decode(d), config: Jo.decode(d) }),
18921892 },
18931893 Ho = {
18941894 preencode(d, o) {
18951895 ;(e.fixed32.preencode(d, o.memberKey),
18961896 e.string.preencode(d, o.displayName),
18971897 d.end++,
1898 o.avatar && Ei.preencode(d, o.avatar))
1898 o.avatar && Ui.preencode(d, o.avatar))
18991899 },
19001900 encode(d, o) {
19011901 const n = o.avatar ? 1 : 0
19021902 ;(e.fixed32.encode(d, o.memberKey),
19031903 e.string.encode(d, o.displayName),
19041904 e.uint.encode(d, n),
1905 o.avatar && Ei.encode(d, o.avatar))
1905 o.avatar && Ui.encode(d, o.avatar))
19061906 },
19071907 decode: (d) => ({
19081908 memberKey: e.fixed32.decode(d),
19091909 displayName: e.string.decode(d),
1910 avatar: 1 & e.uint.decode(d) ? Ei.decode(d) : null,
1910 avatar: 1 & e.uint.decode(d) ? Ui.decode(d) : null,
19111911 }),
19121912 },
19131913 zo = {
……@@ -2023,7 +2023,7 @@ const n = {
20232023 sn = {
20242024 preencode(d, o) {
20252025 ;(e.fixed32.preencode(d, o.memberKey),
2026 Bi.preencode(d, o.status),
2026 Oi.preencode(d, o.status),
20272027 d.end++,
20282028 o.mailbox && e.fixed32.preencode(d, o.mailbox),
20292029 o.roomKey && e.fixed32.preencode(d, o.roomKey))
……@@ -2031,14 +2031,14 @@ const n = {
20312031 encode(d, o) {
20322032 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
20332033 ;(e.fixed32.encode(d, o.memberKey),
2034 Bi.encode(d, o.status),
2034 Oi.encode(d, o.status),
20352035 e.uint.encode(d, n),
20362036 o.mailbox && e.fixed32.encode(d, o.mailbox),
20372037 o.roomKey && e.fixed32.encode(d, o.roomKey))
20382038 },
20392039 decode(d) {
20402040 const o = e.fixed32.decode(d),
2041 n = Bi.decode(d),
2041 n = Oi.decode(d),
20422042 c = e.uint.decode(d)
20432043 return {
20442044 memberKey: o,
……@@ -2192,15 +2192,15 @@ const n = {
21922192 decode: (d) => ({ header: hn.decode(d), blindResponse: e.buffer.decode(d) }),
21932193 },
21942194 Pn = _,
2195 Tn = e.frame(Kn),
2196 Rn = {
2195 Rn = e.frame(Kn),
2196 Tn = {
21972197 preencode(e, d) {
2198 ;(Pn.preencode(e, d.header), Tn.preencode(e, d.invitation))
2198 ;(Pn.preencode(e, d.header), Rn.preencode(e, d.invitation))
21992199 },
22002200 encode(e, d) {
2201 ;(Pn.encode(e, d.header), Tn.encode(e, d.invitation))
2201 ;(Pn.encode(e, d.header), Rn.encode(e, d.invitation))
22022202 },
2203 decode: (e) => ({ header: Pn.decode(e), invitation: Tn.decode(e) }),
2203 decode: (e) => ({ header: Pn.decode(e), invitation: Rn.decode(e) }),
22042204 },
22052205 An = _,
22062206 Mn = {
……@@ -2243,7 +2243,7 @@ const n = {
22432243 }
22442244 },
22452245 },
2246 Cn = {
2246 Sn = {
22472247 preencode(e, d) {
22482248 e.end++
22492249 },
……@@ -2253,7 +2253,8 @@ const n = {
22532253 (n.isFullyMuted ? 2 : 0) |
22542254 (n.isMentionsOnlyMuted ? 4 : 0) |
22552255 (o >= 14 && n.isReadOnly ? 8 : 0) |
2256 (o >= 27 && n.isFavorite ? 16 : 0)
2256 (o >= 27 && n.isFavorite ? 16 : 0) |
2257 (o >= 31 && n.isUnread ? 32 : 0)
22572258 e.uint.encode(d, c)
22582259 },
22592260 decode(d) {
……@@ -2264,10 +2265,11 @@ const n = {
22642265 isMentionsOnlyMuted: !!(4 & n),
22652266 isReadOnly: o >= 14 && !!(8 & n),
22662267 isFavorite: o >= 27 && !!(16 & n),
2268 isUnread: o >= 31 && !!(32 & n),
22672269 }
22682270 },
22692271 },
2270 Sn = e.frame(Cn),
2272 Cn = e.frame(Sn),
22712273 Fn = e.frame(Dn),
22722274 In = gn,
22732275 Ln = {
……@@ -2275,7 +2277,7 @@ const n = {
22752277 ;(e.fixed32.preencode(d, c.roomKey),
22762278 e.buffer.preencode(d, c.encryptionKey),
22772279 e.fixed32.preencode(d, c.mailbox),
2278 Sn.preencode(d, c.status),
2280 Cn.preencode(d, c.status),
22792281 e.uint.preencode(d, c.clock),
22802282 d.end++,
22812283 c.initiator && n.preencode(d, c.initiator),
……@@ -2294,7 +2296,7 @@ const n = {
22942296 ;(e.fixed32.encode(d, c.roomKey),
22952297 e.buffer.encode(d, c.encryptionKey),
22962298 e.fixed32.encode(d, c.mailbox),
2297 Sn.encode(d, c.status),
2299 Cn.encode(d, c.status),
22982300 e.uint.encode(d, c.clock),
22992301 e.uint.encode(d, r),
23002302 c.initiator && n.encode(d, c.initiator),
……@@ -2307,7 +2309,7 @@ const n = {
23072309 const c = e.fixed32.decode(d),
23082310 r = e.buffer.decode(d),
23092311 t = e.fixed32.decode(d),
2310 i = Sn.decode(d),
2312 i = Cn.decode(d),
23112313 a = e.uint.decode(d),
23122314 s = e.uint.decode(d)
23132315 return {
……@@ -2380,8 +2382,8 @@ const n = {
23802382 decode: (d) => ({ header: En.decode(d), discoveryKey: e.fixed32.decode(d) }),
23812383 },
23822384 Nn = _,
2383 Vn = Sn,
2384 On = {
2385 Vn = Cn,
2386 Un = {
23852387 preencode(d, o) {
23862388 ;(Nn.preencode(d, o.header),
23872389 e.fixed32.preencode(d, o.roomKey),
……@@ -2401,7 +2403,7 @@ const n = {
24012403 status: Vn.decode(d),
24022404 }),
24032405 },
2404 Un = {
2406 On = {
24052407 preencode(e, d) {
24062408 e.end++
24072409 },
……@@ -2415,7 +2417,7 @@ const n = {
24152417 preencode(d, o) {
24162418 ;(e.fixed32.preencode(d, o.memberKey),
24172419 e.uint.preencode(d, o.clock),
2418 Ni.preencode(d, o.status),
2420 Ji.preencode(d, o.status),
24192421 d.end++,
24202422 o.mailbox && e.fixed32.preencode(d, o.mailbox),
24212423 o.roomKey && e.fixed32.preencode(d, o.roomKey))
……@@ -2424,7 +2426,7 @@ const n = {
24242426 const n = (o.mailbox ? 1 : 0) | (o.roomKey ? 2 : 0)
24252427 ;(e.fixed32.encode(d, o.memberKey),
24262428 e.uint.encode(d, o.clock),
2427 Ni.encode(d, o.status),
2429 Ji.encode(d, o.status),
24282430 e.uint.encode(d, n),
24292431 o.mailbox && e.fixed32.encode(d, o.mailbox),
24302432 o.roomKey && e.fixed32.encode(d, o.roomKey))
……@@ -2432,7 +2434,7 @@ const n = {
24322434 decode(d) {
24332435 const o = e.fixed32.decode(d),
24342436 n = e.uint.decode(d),
2435 c = Ni.decode(d),
2437 c = Ji.decode(d),
24362438 r = e.uint.decode(d)
24372439 return {
24382440 memberKey: o,
……@@ -2460,19 +2462,19 @@ const n = {
24602462 ;(Gn.preencode(d, o.header),
24612463 e.fixed32.preencode(d, o.memberKey),
24622464 e.uint.preencode(d, o.key),
2463 Vi.preencode(d, o.status))
2465 Wi.preencode(d, o.status))
24642466 },
24652467 encode(d, o) {
24662468 ;(Gn.encode(d, o.header),
24672469 e.fixed32.encode(d, o.memberKey),
24682470 e.uint.encode(d, o.key),
2469 Vi.encode(d, o.status))
2471 Wi.encode(d, o.status))
24702472 },
24712473 decode: (d) => ({
24722474 header: Gn.decode(d),
24732475 memberKey: e.fixed32.decode(d),
24742476 key: e.uint.decode(d),
2475 status: Vi.decode(d),
2477 status: Wi.decode(d),
24762478 }),
24772479 },
24782480 Xn = _,
……@@ -2803,7 +2805,7 @@ const n = {
28032805 }
28042806 },
28052807 },
2806 Tc = {
2808 Rc = {
28072809 preencode(e, d) {
28082810 e.end++
28092811 },
……@@ -2813,7 +2815,7 @@ const n = {
28132815 },
28142816 decode: (d) => ({ isConfirmed: !!(1 & e.uint.decode(d)) }),
28152817 },
2816 Rc = e.frame(Tc),
2818 Tc = e.frame(Rc),
28172819 Ac = Fn,
28182820 Mc = {
28192821 preencode(d, n) {
……@@ -2821,30 +2823,36 @@ const n = {
28212823 e.fixed32.preencode(d, n.privateProfileKey),
28222824 t.preencode(d, n.deviceKeyPair),
28232825 e.buffer.preencode(d, n.deviceProof),
2824 Rc.preencode(d, n.status),
2826 Tc.preencode(d, n.status),
28252827 d.end++,
28262828 n.entropy && e.buffer.preencode(d, n.entropy),
28272829 n.swap && Ac.preencode(d, n.swap),
2828 o >= 9 && n.swapV2 && Oi.preencode(d, n.swapV2))
2830 o >= 9 && n.swapV2 && Hi.preencode(d, n.swapV2),
2831 o >= 31 && n.proofShortenedAt && e.uint.preencode(d, n.proofShortenedAt))
28292832 },
28302833 encode(d, n) {
2831 const c = (n.entropy ? 1 : 0) | (n.swap ? 2 : 0) | (o >= 9 && n.swapV2 ? 4 : 0)
2834 const c =
2835 (n.entropy ? 1 : 0) |
2836 (n.swap ? 2 : 0) |
2837 (o >= 9 && n.swapV2 ? 4 : 0) |
2838 (o >= 31 && n.proofShortenedAt ? 8 : 0)
28322839 ;(e.fixed32.encode(d, n.publicKey),
28332840 e.fixed32.encode(d, n.privateProfileKey),
28342841 t.encode(d, n.deviceKeyPair),
28352842 e.buffer.encode(d, n.deviceProof),
2836 Rc.encode(d, n.status),
2843 Tc.encode(d, n.status),
28372844 e.uint.encode(d, c),
28382845 n.entropy && e.buffer.encode(d, n.entropy),
28392846 n.swap && Ac.encode(d, n.swap),
2840 o >= 9 && n.swapV2 && Oi.encode(d, n.swapV2))
2847 o >= 9 && n.swapV2 && Hi.encode(d, n.swapV2),
2848 o >= 31 && n.proofShortenedAt && e.uint.encode(d, n.proofShortenedAt))
28412849 },
28422850 decode(d) {
28432851 const n = e.fixed32.decode(d),
28442852 c = e.fixed32.decode(d),
28452853 r = t.decode(d),
28462854 i = e.buffer.decode(d),
2847 a = Rc.decode(d),
2855 a = Tc.decode(d),
28482856 s = e.uint.decode(d)
28492857 return {
28502858 publicKey: n,
……@@ -2854,7 +2862,8 @@ const n = {
28542862 status: a,
28552863 entropy: 1 & s ? e.buffer.decode(d) : null,
28562864 swap: 2 & s ? Ac.decode(d) : null,
2857 swapV2: o >= 9 && 4 & s ? Oi.decode(d) : null,
2865 swapV2: o >= 9 && 4 & s ? Hi.decode(d) : null,
2866 proofShortenedAt: o >= 31 && 8 & s ? e.uint.decode(d) : 0,
28582867 }
28592868 },
28602869 },
……@@ -2871,7 +2880,7 @@ const n = {
28712880 TestSlowTask: 10,
28722881 TestErrorTask: 11,
28732882 },
2874 Cc = {
2883 Sc = {
28752884 preencode(e, d) {
28762885 e.end++
28772886 },
……@@ -2881,7 +2890,7 @@ const n = {
28812890 },
28822891 decode: (d) => e.uint.decode(d),
28832892 },
2884 Sc = {
2893 Cc = {
28852894 preencode(d, o) {
28862895 ;(e.fixed32.preencode(d, o.roomKey),
28872896 e.buffer.preencode(d, o.encryptionKey),
……@@ -2909,7 +2918,7 @@ const n = {
29092918 }
29102919 },
29112920 },
2912 Fc = Tn,
2921 Fc = Rn,
29132922 Ic = {
29142923 preencode(e, d) {
29152924 Fc.preencode(e, d.invitation)
……@@ -3021,7 +3030,7 @@ const n = {
30213030 }
30223031 },
30233032 },
3024 Oc = {
3033 Uc = {
30253034 preencode(d, o) {
30263035 ;(e.fixed32.preencode(d, o.roomKey), d.end++)
30273036 },
……@@ -3031,7 +3040,7 @@ const n = {
30313040 },
30323041 decode: (d) => ({ roomKey: e.fixed32.decode(d), isGossiped: !!(1 & e.uint.decode(d)) }),
30333042 },
3034 Uc = {
3043 Oc = {
30353044 preencode(d, o) {
30363045 e.fixed32.preencode(d, o.roomKey)
30373046 },
……@@ -3068,7 +3077,7 @@ const n = {
30683077 e.fixed32.preencode(d, n.memberKey),
30693078 d.end++,
30703079 n.message && e.string.preencode(d, n.message),
3071 o >= 6 && n.contactInfo && Ui.preencode(d, n.contactInfo))
3080 o >= 6 && n.contactInfo && zi.preencode(d, n.contactInfo))
30723081 },
30733082 encode(d, n) {
30743083 const c = (n.message ? 1 : 0) | (o >= 6 && n.contactInfo ? 2 : 0)
……@@ -3076,7 +3085,7 @@ const n = {
30763085 e.fixed32.encode(d, n.memberKey),
30773086 e.uint.encode(d, c),
30783087 n.message && e.string.encode(d, n.message),
3079 o >= 6 && n.contactInfo && Ui.encode(d, n.contactInfo))
3088 o >= 6 && n.contactInfo && zi.encode(d, n.contactInfo))
30803089 },
30813090 decode(d) {
30823091 const n = e.fixed32.decode(d),
……@@ -3086,7 +3095,7 @@ const n = {
30863095 roomKey: n,
30873096 memberKey: c,
30883097 message: 1 & r ? e.string.decode(d) : null,
3089 contactInfo: o >= 6 && 2 & r ? Ui.decode(d) : null,
3098 contactInfo: o >= 6 && 2 & r ? zi.decode(d) : null,
30903099 }
30913100 },
30923101 },
……@@ -3102,8 +3111,8 @@ const n = {
31023111 },
31033112 zc = e.frame(Jc),
31043113 Gc = e.frame(Vc),
3105 Qc = e.frame(Oc),
3106 Xc = e.frame(Uc),
3114 Qc = e.frame(Uc),
3115 Xc = e.frame(Oc),
31073116 Yc = e.frame(Ic),
31083117 Zc = e.frame(Bc),
31093118 $c = e.frame(Lc),
……@@ -3246,7 +3255,7 @@ const n = {
32463255 yr = e.frame(wo),
32473256 xr = Y,
32483257 br = e.frame(pd),
3249 vr = Sn,
3258 vr = Cn,
32503259 kr = {
32513260 preencode(d, n) {
32523261 const c =
……@@ -3279,11 +3288,11 @@ const n = {
32793288 n.identity && mr.preencode(d, n.identity),
32803289 n.lastMessage && yr.preencode(d, n.lastMessage),
32813290 n.dm && xr.preencode(d, n.dm),
3282 o >= 19 && n.readLengths && Ji.preencode(d, n.readLengths),
3291 o >= 19 && n.readLengths && Gi.preencode(d, n.readLengths),
32833292 o >= 19 && n.lastMember && br.preencode(d, n.lastMember),
32843293 o >= 21 && n.version && e.uint.preencode(d, n.version),
32853294 o >= 27 && n.preferences && vr.preencode(d, n.preferences),
3286 o >= 28 && n.activeCall && Wi.preencode(d, n.activeCall))
3295 o >= 28 && n.activeCall && Qi.preencode(d, n.activeCall))
32873296 },
32883297 encode(d, n) {
32893298 const c =
……@@ -3316,11 +3325,11 @@ const n = {
33163325 n.identity && mr.encode(d, n.identity),
33173326 n.lastMessage && yr.encode(d, n.lastMessage),
33183327 n.dm && xr.encode(d, n.dm),
3319 o >= 19 && n.readLengths && Ji.encode(d, n.readLengths),
3328 o >= 19 && n.readLengths && Gi.encode(d, n.readLengths),
33203329 o >= 19 && n.lastMember && br.encode(d, n.lastMember),
33213330 o >= 21 && n.version && e.uint.encode(d, n.version),
33223331 o >= 27 && n.preferences && vr.encode(d, n.preferences),
3323 o >= 28 && n.activeCall && Wi.encode(d, n.activeCall))
3332 o >= 28 && n.activeCall && Qi.encode(d, n.activeCall))
33243333 },
33253334 decode(d) {
33263335 const n = e.fixed32.decode(d),
……@@ -3353,15 +3362,15 @@ const n = {
33533362 identity: 8 & m ? mr.decode(d) : null,
33543363 lastMessage: 16 & m ? yr.decode(d) : null,
33553364 dm: 32 & m ? xr.decode(d) : null,
3356 readLengths: o >= 19 && 64 & m ? Ji.decode(d) : null,
3365 readLengths: o >= 19 && 64 & m ? Gi.decode(d) : null,
33573366 lastMember: o >= 19 && 128 & m ? br.decode(d) : null,
33583367 version: o >= 21 && 256 & m ? e.uint.decode(d) : 0,
33593368 preferences: o >= 27 && 512 & m ? vr.decode(d) : null,
3360 activeCall: o >= 28 && 1024 & m ? Wi.decode(d) : null,
3369 activeCall: o >= 28 && 1024 & m ? Qi.decode(d) : null,
33613370 }
33623371 },
33633372 },
3364 gr = Sn,
3373 gr = Cn,
33653374 Kr = {
33663375 preencode(d, o) {
33673376 ;(e.fixed32.preencode(d, o.roomKey), gr.preencode(d, o.status))
……@@ -3412,15 +3421,15 @@ const n = {
34123421 },
34133422 decode: (d) => ({ key: e.fixed32.decode(d), profile: wr.decode(d) }),
34143423 },
3415 Tr = ur,
3416 Rr = {
3424 Rr = ur,
3425 Tr = {
34173426 preencode(d, o) {
3418 ;(e.fixed32.preencode(d, o.roomKey), Tr.preencode(d, o.device))
3427 ;(e.fixed32.preencode(d, o.roomKey), Rr.preencode(d, o.device))
34193428 },
34203429 encode(d, o) {
3421 ;(e.fixed32.encode(d, o.roomKey), Tr.encode(d, o.device))
3430 ;(e.fixed32.encode(d, o.roomKey), Rr.encode(d, o.device))
34223431 },
3423 decode: (d) => ({ roomKey: e.fixed32.decode(d), device: Tr.decode(d) }),
3432 decode: (d) => ({ roomKey: e.fixed32.decode(d), device: Rr.decode(d) }),
34243433 },
34253434 Ar = K,
34263435 Mr = {
……@@ -3462,12 +3471,12 @@ const n = {
34623471 },
34633472 },
34643473 Dr = _,
3465 Cr = {
3474 Sr = {
34663475 preencode(d, n) {
34673476 ;(Dr.preencode(d, n.header),
34683477 c.preencode(d, n.oplog),
34693478 e.uint.preencode(d, n.index),
3470 Hi.preencode(d, n.preview),
3479 Xi.preencode(d, n.preview),
34713480 d.end++,
34723481 o >= 12 && n.displayType && Qr.preencode(d, n.displayType))
34733482 },
……@@ -3476,7 +3485,7 @@ const n = {
34763485 ;(Dr.encode(d, n.header),
34773486 c.encode(d, n.oplog),
34783487 e.uint.encode(d, n.index),
3479 Hi.encode(d, n.preview),
3488 Xi.encode(d, n.preview),
34803489 e.uint.encode(d, r),
34813490 o >= 12 && n.displayType && Qr.encode(d, n.displayType))
34823491 },
……@@ -3484,7 +3493,7 @@ const n = {
34843493 const n = Dr.decode(d),
34853494 r = c.decode(d),
34863495 t = e.uint.decode(d),
3487 i = Hi.decode(d),
3496 i = Xi.decode(d),
34883497 a = d.start < d.end ? e.uint.decode(d) : 0
34893498 return {
34903499 header: n,
……@@ -3495,7 +3504,7 @@ const n = {
34953504 }
34963505 },
34973506 },
3498 Sr = {
3507 Cr = {
34993508 preencode(d, n) {
35003509 ;(d.end++, o >= 4 && n.memberKey && e.fixed32.preencode(d, n.memberKey))
35013510 },
……@@ -3613,7 +3622,7 @@ const n = {
36133622 },
36143623 decode: (d) => ({ header: Nr.decode(d), memberKey: e.fixed32.decode(d) }),
36153624 },
3616 Or = {
3625 Ur = {
36173626 preencode(d, o) {
36183627 e.fixed32.preencode(d, o.privateProfileKey)
36193628 },
……@@ -3622,7 +3631,7 @@ const n = {
36223631 },
36233632 decode: (d) => ({ privateProfileKey: e.fixed32.decode(d) }),
36243633 },
3625 Ur = {
3634 Or = {
36263635 preencode(d, o) {
36273636 ;(e.fixed32.preencode(d, o.key), e.fixed32.preencode(d, o.responsePublicKey))
36283637 },
……@@ -3990,7 +3999,7 @@ const n = {
39903999 },
39914000 },
39924001 Pt = _,
3993 Tt = {
4002 Rt = {
39944003 preencode(d, o) {
39954004 ;(Pt.preencode(d, o.header), e.uint.preencode(d, o.length))
39964005 },
……@@ -3999,7 +4008,7 @@ const n = {
39994008 },
40004009 decode: (d) => ({ header: Pt.decode(d), length: e.uint.decode(d) }),
40014010 },
4002 Rt = {
4011 Tt = {
40034012 preencode(d, o) {
40044013 ;(e.fixed32.preencode(d, o.memberKey), e.uint.preencode(d, o.length))
40054014 },
……@@ -4014,35 +4023,59 @@ const n = {
40144023 e.end++
40154024 },
40164025 encode(d, n) {
4017 const c = o >= 19 && n.disableReadReceipts ? 1 : 0
4026 const c =
4027 (o >= 19 && n.disableReadReceipts ? 1 : 0) | (o >= 31 && n.stripAttachmentMetadata ? 2 : 0)
40184028 e.uint.encode(d, c)
40194029 },
40204030 decode(d) {
40214031 const n = e.uint.decode(d)
4022 return { disableReadReceipts: o >= 19 && !!(1 & n) }
4032 return {
4033 disableReadReceipts: o >= 19 && !!(1 & n),
4034 stripAttachmentMetadata: o >= 31 && !!(2 & n),
4035 }
40234036 },
40244037 },
4025 Dt = { disableReadReceipts: "disableReadReceipts" },
4026 Ct = {
4038 Dt = {
4039 disableReadReceipts: "disableReadReceipts",
4040 stripAttachmentMetadata: "stripAttachmentMetadata",
4041 },
4042 St = {
40274043 preencode(e, d) {
40284044 e.end++
40294045 },
40304046 encode(d, o) {
4031 if ("disableReadReceipts" !== o) throw new Error("Unknown enum")
4032 e.uint.encode(d, 1)
4047 switch (o) {
4048 case "disableReadReceipts":
4049 e.uint.encode(d, 1)
4050 break
4051 case "stripAttachmentMetadata":
4052 e.uint.encode(d, 2)
4053 break
4054 default:
4055 throw new Error("Unknown enum")
4056 }
4057 },
4058 decode(d) {
4059 switch (e.uint.decode(d)) {
4060 case 1:
4061 return "disableReadReceipts"
4062 case 2:
4063 return "stripAttachmentMetadata"
4064 default:
4065 return null
4066 }
40334067 },
4034 decode: (d) => (1 === e.uint.decode(d) ? "disableReadReceipts" : null),
40354068 },
4036 St = _,
4069 Ct = _,
40374070 Ft = e.frame(Mt),
40384071 It = {
40394072 preencode(e, d) {
4040 ;(St.preencode(e, d.header), Ct.preencode(e, d.key), Ft.preencode(e, d.settings))
4073 ;(Ct.preencode(e, d.header), St.preencode(e, d.key), Ft.preencode(e, d.settings))
40414074 },
40424075 encode(e, d) {
4043 ;(St.encode(e, d.header), Ct.encode(e, d.key), Ft.encode(e, d.settings))
4076 ;(Ct.encode(e, d.header), St.encode(e, d.key), Ft.encode(e, d.settings))
40444077 },
4045 decode: (e) => ({ header: St.decode(e), key: Ct.decode(e), settings: Ft.decode(e) }),
4078 decode: (e) => ({ header: Ct.decode(e), key: St.decode(e), settings: Ft.decode(e) }),
40464079 },
40474080 Lt = {
40484081 preencode(d, n) {
……@@ -4119,7 +4152,7 @@ const n = {
41194152 decode: (d) => ({ roomKey: e.fixed32.decode(d), total: e.uint.decode(d) }),
41204153 },
41214154 Vt = { Flag: 1 },
4122 Ot = {
4155 Ut = {
41234156 preencode(e, d) {
41244157 e.end++
41254158 },
……@@ -4129,44 +4162,44 @@ const n = {
41294162 },
41304163 decode: (d) => e.uint.decode(d),
41314164 },
4132 Ut = {
4165 Ot = {
41334166 preencode(d, o) {
41344167 ;(e.fixed32.preencode(d, o.key),
41354168 e.fixed32.preencode(d, o.sender),
41364169 e.uint.preencode(d, o.clock),
4137 Ot.preencode(d, o.label))
4170 Ut.preencode(d, o.label))
41384171 },
41394172 encode(d, o) {
41404173 ;(e.fixed32.encode(d, o.key),
41414174 e.fixed32.encode(d, o.sender),
41424175 e.uint.encode(d, o.clock),
4143 Ot.encode(d, o.label))
4176 Ut.encode(d, o.label))
41444177 },
41454178 decode: (d) => ({
41464179 key: e.fixed32.decode(d),
41474180 sender: e.fixed32.decode(d),
41484181 clock: e.uint.decode(d),
4149 label: Ot.decode(d),
4182 label: Ut.decode(d),
41504183 }),
41514184 },
41524185 Jt = _,
41534186 Wt = {
41544187 preencode(d, o) {
4155 ;(Jt.preencode(d, o.header), e.fixed32.preencode(d, o.key), Ot.preencode(d, o.label))
4188 ;(Jt.preencode(d, o.header), e.fixed32.preencode(d, o.key), Ut.preencode(d, o.label))
41564189 },
41574190 encode(d, o) {
4158 ;(Jt.encode(d, o.header), e.fixed32.encode(d, o.key), Ot.encode(d, o.label))
4191 ;(Jt.encode(d, o.header), e.fixed32.encode(d, o.key), Ut.encode(d, o.label))
41594192 },
4160 decode: (d) => ({ header: Jt.decode(d), key: e.fixed32.decode(d), label: Ot.decode(d) }),
4193 decode: (d) => ({ header: Jt.decode(d), key: e.fixed32.decode(d), label: Ut.decode(d) }),
41614194 },
41624195 Ht = {
41634196 preencode(d, o) {
4164 ;(Ot.preencode(d, o.label), e.uint.preencode(d, o.count))
4197 ;(Ut.preencode(d, o.label), e.uint.preencode(d, o.count))
41654198 },
41664199 encode(d, o) {
4167 ;(Ot.encode(d, o.label), e.uint.encode(d, o.count))
4200 ;(Ut.encode(d, o.label), e.uint.encode(d, o.count))
41684201 },
4169 decode: (d) => ({ label: Ot.decode(d), count: e.uint.decode(d) }),
4202 decode: (d) => ({ label: Ut.decode(d), count: e.uint.decode(d) }),
41704203 },
41714204 zt = e.array(e.frame(Ht)),
41724205 Gt = {
……@@ -4540,41 +4573,96 @@ const n = {
45404573 return { buildType: n, latestOfflineAbi: o >= 30 && 1 & c ? e.uint.decode(d) : 0 }
45414574 },
45424575 },
4543 Pi = e.frame(P),
4544 Ti = Pi,
4545 Ri = e.array(rt),
4546 Ai = e.frame(pe),
4547 Mi = Pi,
4548 Di = Ai,
4549 Ci = e.frame(Er),
4550 Si = Ai,
4551 Fi = e.frame(md),
4552 Ii = e.frame(Sr),
4553 Li = e.frame(Qt),
4554 qi = Li,
4555 ji = e.array(e.frame(it)),
4556 Ei = Pi,
4557 Bi = e.frame(Un),
4576 Pi = _,
4577 Ri = {
4578 preencode(d, o) {
4579 ;(Pi.preencode(d, o.header),
4580 e.fixed32.preencode(d, o.deviceKey),
4581 e.buffer.preencode(d, o.deviceProof),
4582 e.buffer.preencode(d, o.writerProof))
4583 },
4584 encode(d, o) {
4585 ;(Pi.encode(d, o.header),
4586 e.fixed32.encode(d, o.deviceKey),
4587 e.buffer.encode(d, o.deviceProof),
4588 e.buffer.encode(d, o.writerProof))
4589 },
4590 decode: (d) => ({
4591 header: Pi.decode(d),
4592 deviceKey: e.fixed32.decode(d),
4593 deviceProof: e.buffer.decode(d),
4594 writerProof: e.buffer.decode(d),
4595 }),
4596 },
4597 Ti = {
4598 preencode(d, n) {
4599 ;(d.end++,
4600 o >= 31 &&
4601 n.otaResyncPrivateProfileBump &&
4602 e.uint.preencode(d, n.otaResyncPrivateProfileBump))
4603 },
4604 encode(d, n) {
4605 const c = o >= 31 && n.otaResyncPrivateProfileBump ? 1 : 0
4606 ;(e.uint.encode(d, c),
4607 o >= 31 && n.otaResyncPrivateProfileBump && e.uint.encode(d, n.otaResyncPrivateProfileBump))
4608 },
4609 decode(d) {
4610 const n = e.uint.decode(d)
4611 return { otaResyncPrivateProfileBump: o >= 31 && 1 & n ? e.uint.decode(d) : 0 }
4612 },
4613 },
4614 Ai = {
4615 preencode(d, o) {
4616 ;(e.fixed32.preencode(d, o.deviceKey),
4617 e.buffer.preencode(d, o.proof),
4618 e.uint.preencode(d, o.createdAt))
4619 },
4620 encode(d, o) {
4621 ;(e.fixed32.encode(d, o.deviceKey),
4622 e.buffer.encode(d, o.proof),
4623 e.uint.encode(d, o.createdAt))
4624 },
4625 decode: (d) => ({
4626 deviceKey: e.fixed32.decode(d),
4627 proof: e.buffer.decode(d),
4628 createdAt: e.uint.decode(d),
4629 }),
4630 },
4631 Mi = e.frame(P),
4632 Di = Mi,
4633 Si = e.array(rt),
4634 Ci = e.frame(pe),
4635 Fi = Mi,
4636 Ii = Ci,
4637 Li = e.frame(Er),
4638 qi = Ci,
4639 ji = e.frame(md),
4640 Ei = e.frame(Cr),
4641 Bi = e.frame(Qt),
45584642 Ni = Bi,
4559 Vi = Bi,
4560 Oi = e.frame(Br),
4561 Ui = e.frame(Ir),
4562 Ji = e.array(e.frame(Rt)),
4563 Wi = e.frame(yi),
4564 Hi = Pi
4565function zi(e) {
4643 Vi = e.array(e.frame(it)),
4644 Ui = Mi,
4645 Oi = e.frame(On),
4646 Ji = Oi,
4647 Wi = Oi,
4648 Hi = e.frame(Br),
4649 zi = e.frame(Ir),
4650 Gi = e.array(e.frame(Tt)),
4651 Qi = e.frame(yi),
4652 Xi = Mi
4653function Yi(e) {
45664654 o = e
45674655}
4568function Gi(d, n, c = 30) {
4569 return ((o = c), e.encode(Yi(d), n))
4656function Zi(d, n, c = 31) {
4657 return ((o = c), e.encode(ea(d), n))
45704658}
4571function Qi(d, n, c = 30) {
4572 return ((o = c), e.decode(Yi(d), n))
4659function $i(d, n, c = 31) {
4660 return ((o = c), e.decode(ea(d), n))
45734661}
4574function Xi(e) {
4662function _i(e) {
45754663 switch (e) {
45764664 case "@keet/room-type":
4577 return U
4665 return O
45784666 case "@local/tasks":
45794667 return Dc
45804668 case "@keet/display-type":
……@@ -4597,7 +4685,7 @@ function Xi(e) {
45974685 throw new Error("Enum not found " + e)
45984686 }
45994687}
4600function Yi(e) {
4688function ea(e) {
46014689 switch (e) {
46024690 case "@keet/head":
46034691 return n
……@@ -4628,15 +4716,15 @@ function Yi(e) {
46284716 case "@keet/image-file":
46294717 return P
46304718 case "@keet/file-status":
4631 return T
4719 return R
46324720 case "@keet/file-record":
46334721 return M
46344722 case "@keet/device-status":
46354723 return D
46364724 case "@keet/member-status":
4637 return C
4638 case "@keet/member-moderation-status":
46394725 return S
4726 case "@keet/member-moderation-status":
4727 return C
46404728 case "@keet/abi":
46414729 return F
46424730 case "@keet/device-stats":
……@@ -4648,7 +4736,7 @@ function Yi(e) {
46484736 case "@keet/file-stats":
46494737 return j
46504738 case "@keet/stats":
4651 return O
4739 return U
46524740 case "@keet/room-type":
46534741 return J
46544742 case "@keet/system-settings":
……@@ -4692,11 +4780,11 @@ function Yi(e) {
46924780 case "@keet/device-request-with-invitation-and-proof":
46934781 return he
46944782 case "@keet/device-request-with-member-proof":
4695 return Te
4783 return Re
46964784 case "@keet/device-request":
46974785 return Me
46984786 case "@keet/device-response":
4699 return Se
4787 return Ce
47004788 case "@keet/invitation-metadata":
47014789 return Fe
47024790 case "@keet/invitation":
……@@ -4706,9 +4794,9 @@ function Yi(e) {
47064794 case "@keet/remove-invitation-operation":
47074795 return Ve
47084796 case "@keet/sendable-room-invitation":
4709 return Oe
4710 case "@keet/sendable-identity-invitation":
47114797 return Ue
4798 case "@keet/sendable-identity-invitation":
4799 return Oe
47124800 case "@keet/sendable-contact-invitation":
47134801 return Je
47144802 case "@keet/sendable-invitation":
……@@ -4742,9 +4830,9 @@ function Yi(e) {
47424830 case "@keet/remove-member-operation":
47434831 return Pd
47444832 case "@keet/member-activity":
4745 return Td
4746 case "@keet/member-joined-event":
47474833 return Rd
4834 case "@keet/member-joined-event":
4835 return Td
47484836 case "@keet/member-left-event":
47494837 return Ad
47504838 case "@keet/title-changed-chat-event":
……@@ -4760,7 +4848,7 @@ function Yi(e) {
47604848 case "@keet/mention-display-item":
47614849 return Bd
47624850 case "@keet/link-preview":
4763 return Od
4851 return Ud
47644852 case "@keet/display-link-item":
47654853 return Wd
47664854 case "@keet/display":
……@@ -4782,11 +4870,11 @@ function Yi(e) {
47824870 case "@keet/full-chat-message-record":
47834871 return wo
47844872 case "@keet/add-chat-message-operation":
4785 return Ro
4873 return To
47864874 case "@keet/remove-chat-message-operation":
47874875 return Mo
47884876 case "@keet/update-chat-message-operation":
4789 return So
4877 return Co
47904878 case "@keet/pin-chat-message-operation":
47914879 return Io
47924880 case "@keet/reaction":
……@@ -4798,7 +4886,7 @@ function Yi(e) {
47984886 case "@keet/add-reaction-operation":
47994887 return No
48004888 case "@keet/remove-reaction-operation":
4801 return Oo
4889 return Uo
48024890 case "@keet/update-room-config-operation":
48034891 return Wo
48044892 case "@keet/group-member":
……@@ -4834,13 +4922,13 @@ function Yi(e) {
48344922 case "@keet-private-id/resolve-pending-invitation-operation":
48354923 return wn
48364924 case "@keet-private-id/add-pending-invitation-operation":
4837 return Rn
4925 return Tn
48384926 case "@keet-private-id/remove-pending-invitation-operation":
48394927 return Mn
48404928 case "@keet-private-id/identity-swap":
48414929 return Dn
48424930 case "@keet-private-id/room-status":
4843 return Cn
4931 return Sn
48444932 case "@keet-private-id/room":
48454933 return Ln
48464934 case "@keet-private-id/add-room-operation":
……@@ -4848,9 +4936,9 @@ function Yi(e) {
48484936 case "@keet-private-id/remove-room-operation":
48494937 return Bn
48504938 case "@keet-private-id/update-room-status-operation":
4851 return On
4852 case "@keet-private-id/contact-status":
48534939 return Un
4940 case "@keet-private-id/contact-status":
4941 return On
48544942 case "@keet-private-id/contact-record":
48554943 return Jn
48564944 case "@keet-private-id/add-contact-operation":
……@@ -4890,13 +4978,13 @@ function Yi(e) {
48904978 case "@local/room-migration":
48914979 return Pc
48924980 case "@local/identity-status":
4893 return Tc
4981 return Rc
48944982 case "@local/identity-record":
48954983 return Mc
48964984 case "@local/tasks":
4897 return Cc
4898 case "@local/room-keys":
48994985 return Sc
4986 case "@local/room-keys":
4987 return Cc
49004988 case "@local/join-room-invitation-task":
49014989 return Ic
49024990 case "@local/join-room-response-task":
……@@ -4910,9 +4998,9 @@ function Yi(e) {
49104998 case "@local/create-room-task":
49114999 return Vc
49125000 case "@local/leave-room-task":
4913 return Oc
4914 case "@local/clear-room-task":
49155001 return Uc
5002 case "@local/clear-room-task":
5003 return Oc
49165004 case "@local/restore-identity-task":
49175005 return Jc
49185006 case "@local/send-contact-request-task":
……@@ -4936,13 +5024,13 @@ function Yi(e) {
49365024 case "@local/member":
49375025 return Pr
49385026 case "@local/device":
4939 return Rr
5027 return Tr
49405028 case "@local/file":
49415029 return Mr
49425030 case "@keet/add-file-preview-operation":
4943 return Cr
4944 case "@keet/member-removed-event":
49455031 return Sr
5032 case "@keet/member-removed-event":
5033 return Cr
49465034 case "@keet/member-contact-info":
49475035 return Ir
49485036 case "@keet/remove-device-operation":
……@@ -4956,9 +5044,9 @@ function Yi(e) {
49565044 case "@keet-private-id/activate-contact-room-operation":
49575045 return Vr
49585046 case "@local/identity-swap":
4959 return Or
4960 case "@local/writer-append":
49615047 return Ur
5048 case "@local/writer-append":
5049 return Or
49625050 case "@local/room-metadata":
49635051 return Jr
49645052 case "@local/debug-flag":
……@@ -5002,15 +5090,15 @@ function Yi(e) {
50025090 case "@keet/chat-label-digest":
50035091 return wt
50045092 case "@keet/update-read-length-operation":
5005 return Tt
5006 case "@keet/read-length":
50075093 return Rt
5094 case "@keet/read-length":
5095 return Tt
50085096 case "@keet/tmp-removed-member":
50095097 return At
50105098 case "@keet-private-id/settings":
50115099 return Mt
50125100 case "@keet-private-id/user-settings-key":
5013 return Ct
5101 return St
50145102 case "@keet-private-id/update-settings-operation":
50155103 return It
50165104 case "@local/error-record-details":
……@@ -5022,9 +5110,9 @@ function Yi(e) {
50225110 case "@local/file-stats":
50235111 return Nt
50245112 case "@keet/member-label-type":
5025 return Ot
5026 case "@keet/member-label":
50275113 return Ut
5114 case "@keet/member-label":
5115 return Ot
50285116 case "@keet/add-member-label-operation":
50295117 return Wt
50305118 case "@keet/member-label-summary":
……@@ -5067,12 +5155,18 @@ function Yi(e) {
50675155 return hi
50685156 case "@local/environment-record":
50695157 return wi
5158 case "@keet-private-id/shorten-device-attestation-operation":
5159 return Ri
5160 case "@local/ota-actions":
5161 return Ti
5162 case "@local/device-attestation":
5163 return Ai
50705164 default:
50715165 throw new Error("Encoder not found " + e)
50725166 }
50735167}
5074function Zi(e, d = 30) {
5075 const n = Yi(e)
5168function da(e, d = 31) {
5169 const n = ea(e)
50765170 return {
50775171 preencode(e, c) {
50785172 ;((o = d), n.preencode(e, c))
……@@ -5083,14 +5177,14 @@ function Zi(e, d = 30) {
50835177 decode: (e) => ((o = d), n.decode(e)),
50845178 }
50855179}
5086const $i = Zi
5180const oa = da
50875181module.exports = {
5088 resolveStruct: $i,
5089 getStruct: Zi,
5090 getEnum: Xi,
5091 getEncoding: Yi,
5092 encode: Gi,
5093 decode: Qi,
5094 setVersion: zi,
5182 resolveStruct: oa,
5183 getStruct: da,
5184 getEnum: _i,
5185 getEncoding: ea,
5186 encode: Zi,
5187 decode: $i,
5188 setVersion: Yi,
50955189 version: o,
50965190}
@holepunchto/keet-core/schema/spec/local/hyperschema/schema.json +91 -1
……@@ -1,5 +1,5 @@
11{
2 "version": 30,
2 "version": 31,
33 "schema": [
44 {
55 "name": "public-key",
……@@ -3219,6 +3219,11 @@
32193219 "name": "isFavorite",
32203220 "type": "bool",
32213221 "version": 27
3222 },
3223 {
3224 "name": "isUnread",
3225 "type": "bool",
3226 "version": 31
32223227 }
32233228 ]
32243229 },
……@@ -3974,6 +3979,11 @@
39743979 "name": "swapV2",
39753980 "type": "@keet-private-id/identity-swap-v2",
39763981 "version": 9
3982 },
3983 {
3984 "name": "proofShortenedAt",
3985 "type": "uint",
3986 "version": 31
39773987 }
39783988 ]
39793989 },
……@@ -5551,6 +5561,11 @@
55515561 "name": "disableReadReceipts",
55525562 "type": "bool",
55535563 "version": 19
5564 },
5565 {
5566 "name": "stripAttachmentMetadata",
5567 "type": "bool",
5568 "version": 31
55545569 }
55555570 ]
55565571 },
……@@ -5562,6 +5577,10 @@
55625577 {
55635578 "key": "disableReadReceipts",
55645579 "version": 19
5580 },
5581 {
5582 "key": "stripAttachmentMetadata",
5583 "version": 31
55655584 }
55665585 ],
55675586 "strings": true
……@@ -6261,6 +6280,77 @@
62616280 "version": 30
62626281 }
62636282 ]
6283 },
6284 {
6285 "name": "shorten-device-attestation-operation",
6286 "namespace": "keet-private-id",
6287 "compact": false,
6288 "flagsPosition": -1,
6289 "fields": [
6290 {
6291 "name": "header",
6292 "required": true,
6293 "type": "@keet/operation-header",
6294 "version": 31
6295 },
6296 {
6297 "name": "deviceKey",
6298 "required": true,
6299 "type": "@keet/device-key",
6300 "version": 31
6301 },
6302 {
6303 "name": "deviceProof",
6304 "required": true,
6305 "type": "buffer",
6306 "version": 31
6307 },
6308 {
6309 "name": "writerProof",
6310 "required": true,
6311 "type": "buffer",
6312 "version": 31
6313 }
6314 ]
6315 },
6316 {
6317 "name": "ota-actions",
6318 "namespace": "local",
6319 "compact": false,
6320 "flagsPosition": 0,
6321 "fields": [
6322 {
6323 "name": "otaResyncPrivateProfileBump",
6324 "type": "uint",
6325 "version": 31
6326 }
6327 ]
6328 },
6329 {
6330 "name": "device-attestation",
6331 "namespace": "local",
6332 "compact": false,
6333 "flagsPosition": -1,
6334 "fields": [
6335 {
6336 "name": "deviceKey",
6337 "required": true,
6338 "type": "@keet/device-key",
6339 "version": 31
6340 },
6341 {
6342 "name": "proof",
6343 "required": true,
6344 "type": "buffer",
6345 "version": 31
6346 },
6347 {
6348 "name": "createdAt",
6349 "required": true,
6350 "type": "uint",
6351 "version": 31
6352 }
6353 ]
62646354 }
62656355 ]
62666356}
@holepunchto/keet-core/schema/versions.js +21 -12
……@@ -32,6 +32,9 @@ const E = 1,
3232 DISABLE_LINKS: 30,
3333 DM_PEERS_TO_MODS: 31,
3434 V2_UNREADS: 32,
35 ROOM_MARK_UNREAD: 33,
36 STRIP_ATTACHMENT_METADATA: 34,
37 SHORTEN_ATTESTATION: 34,
3538 },
3639 e = {},
3740 R = [
……@@ -65,27 +68,33 @@ const E = 1,
6568 { abi: 25, features: [] },
6669 { abi: 26, features: [] },
6770 { abi: 27, features: [] },
68 { abi: 28, features: [_.V2_UNREADS], stable: !0 },
71 { abi: 28, features: [_.V2_UNREADS] },
72 {
73 abi: 29,
74 features: [_.ROOM_MARK_UNREAD, _.STRIP_ATTACHMENT_METADATA, _.SHORTEN_ATTESTATION],
75 stable: !0,
76 },
77 { abi: 30, features: [] },
6978 ],
70 a = new Map()
71let A = -1,
72 M = -1,
73 S = -1
79 A = new Map()
80let a = -1,
81 T = -1,
82 M = -1
7483for (const { abi: E, features: _, stable: e, autoupgrade: O } of R) {
75 for (const e of _) a.set(e, E)
76 ;(O && (S = E), e && (A = E), (M = E))
84 for (const e of _) A.set(e, E)
85 ;(O && (M = E), e && (a = E), (T = E))
7786}
78for (const [E, R] of Object.entries(_)) a.has(R) && (e[E] = a.get(R))
87for (const [E, R] of Object.entries(_)) A.has(R) && (e[E] = A.get(R))
7988function O(E, _) {
80 const e = a.get(_)
89 const e = A.get(_)
8190 return !!e && e <= E
8291}
8392module.exports = {
8493 isFeatureSupported: O,
8594 FEATURES_TO_ABI: e,
8695 FEATURES: _,
87 STABLE: A,
88 AUTOUPGRADE: S,
89 EXPERIMENTAL: M,
96 STABLE: a,
97 AUTOUPGRADE: M,
98 EXPERIMENTAL: T,
9099 FORCE_UPDATE: 1,
91100}
@holepunchto/keet-core/workers/mobile.js +121 -118
……@@ -4,137 +4,140 @@ const e = require("tiny-buffer-rpc/any"),
44 { GENERIC_EVENTS: i } = require("@holepunchto/keet-core-api"),
55 t = require("hypercore-proof-queue"),
66 r = require("b4a"),
7 o = require("xache"),
8 s = require("suspendify"),
7 s = require("xache"),
8 o = require("suspendify"),
99 c = require("fs-native-lock"),
10 { getNotificationBody: u, getNotificationTitle: d } = require("./utils/notification")
11async function l(l, g) {
12 const p = Bare.argv[0],
10 { getNotificationBody: u, getNotificationTitle: l } = require("./utils/notification")
11async function d(d, p) {
12 const g = Bare.argv[0],
1313 f = Bare.argv[1],
1414 y = Bare.argv[2],
1515 w = "true" === Bare.argv[3],
1616 h = "store" !== Bare.argv[1] || w,
1717 k = h,
18 m = "ios" === Bare.platform,
19 b = Math.random().toString(16).slice(2),
20 v = "true" === Bare.argv[4],
18 b = "ios" === Bare.platform,
19 v = Math.random().toString(16).slice(2),
20 m = "true" === Bare.argv[4],
2121 q = Bare.argv[5],
2222 B = Bare.argv[6],
2323 S = Bare.argv[7],
2424 x = Bare.argv[8] ? JSON.parse(r.toString(r.from(Bare.argv[8], "base64"))) : {},
2525 A = x?.strings,
2626 I = x.logFile || x.logFilePath || x.fileLogPath,
27 L = x.logFileMaxSize,
28 N = x.logLevel || "info"
29 let C = null,
30 E = 0,
31 R = !1
32 const F = (...e) => {
33 ;(E++, M.logger.info(b, E, ...e))
27 C = x.logFileMaxSize,
28 L = x.logLevel || "info",
29 N = x?.disableSuspension ?? !1,
30 E = x.verbose || !1
31 let R = null,
32 F = 0,
33 M = !1
34 const P = (...e) => {
35 ;(F++, z.logger.info(v, F, ...e))
3436 },
35 { keet: M } = a.from(p, {
37 { keet: z } = a.from(g, {
3638 buildType: f,
37 logger: { logFile: I, logLevel: N, logFileMaxSize: L },
39 logger: { logFile: I, logLevel: L, logFileMaxSize: C, verbose: E },
3840 devMirrors: k,
3941 devUserRegistry: h,
4042 hyperconfKey: S,
4143 production: !0,
4244 appVersion: B,
43 apiLogger: F,
45 apiLogger: P,
4446 mobile: !0,
4547 storage: { id: y, wait: !0 },
4648 })
47 function P(e) {
48 M.onerror(e)
49 function D(e) {
50 z.onerror(e)
4951 }
50 v &&
52 m &&
5153 require("sentry-bare").init({
5254 release: q,
5355 dsn: "https://cbea8d749dec25aa3e4443fe1ad280b4@o139579.ingest.us.sentry.io/4509075596967936",
5456 })
55 const z = M.backendAPI,
56 D = new o({ maxSize: 1024 })
57 F("Started bare worker...")
58 const K = new s({
57 const K = z.backendAPI,
58 T = new s({ maxSize: 1024 })
59 P("Started bare worker...")
60 const _ = new o({
5961 wakeupLinger: 6e3,
6062 async pollLinger() {
61 const e = await U(),
63 const e = await $(),
6264 a = Math.round(Math.max(1e3 * e - 1e4, 0))
63 return (F("app says we have", a, "left to suspend"), a)
65 return (P("app says we have", a, "left to suspend"), a)
6466 },
6567 async suspend() {
6668 try {
67 ;(F("Suspending..."),
68 await H,
69 F("Suspending queue"),
70 await T.suspend(),
71 F("Freeing lock so push can run"),
72 C && (await C.unlock()),
73 (C = null),
74 F("Suspending backend"),
75 await z.suspend(),
76 F("Signalling frontend to suspend"),
77 await G.request(!0),
78 K.interrupted
79 ? F("interrupted skipping idle")
80 : (F("Asking bare to go Idle"), Bare.idle()))
69 ;(P("Suspending..."),
70 await O,
71 P("Suspending queue"),
72 await W.suspend(),
73 P("Freeing lock so push can run"),
74 R && (await R.unlock()),
75 (R = null),
76 N
77 ? P("Suspension is disabled, skipping bare idle")
78 : (P("Suspending backend"),
79 await K.suspend(),
80 P("Signalling frontend to suspend"),
81 await V.request(!0),
82 _.interrupted
83 ? P("interrupted skipping idle")
84 : (P("Asking bare to go Idle"), Bare.idle())))
8185 } catch (e) {
82 F("Caught suspension error: " + e.stack)
86 P("Caught suspension error: " + e.stack)
8387 }
8488 },
8589 async suspendCancelled() {
86 ;(F("Signalling frontend to suspend (cancelled)"), await G.request(!1))
90 ;(P("Signalling frontend to suspend (cancelled)"), await V.request(!1))
8791 },
8892 async presuspend() {
89 ;(F("Presuspending..."), await M.presuspend())
93 N
94 ? P("Suspension is disabled, skipping presuspending")
95 : (P("Presuspending..."), await z.presuspend())
9096 },
9197 async resume() {
92 await H
98 await O
9399 try {
94 ;(F("Resuming..."),
95 await z.resume(),
96 F("Acquiring push lock"),
97 await J(),
98 F("Resuming push queue"),
99 await T.resume(),
100 F("Resuming concluded"))
100 ;(P("Resuming..."),
101 await K.resume(),
102 P("Acquiring push lock"),
103 await Q(),
104 P("Resuming push queue"),
105 await W.resume(),
106 P("Resuming concluded"))
101107 } catch (e) {
102 F("Caught suspension error: " + e.stack)
108 P("Caught suspension error: " + e.stack)
103109 }
104110 },
105111 async wakeup() {
106 ;(F("Waking up"),
107 await H,
108 F("resuming backend"),
109 await z.resume(),
110 F("backgrounding the core"),
111 await M.wakeup(),
112 F("Wake up done"))
112 ;(P("Waking up"),
113 await O,
114 N || (P("Calling core.wakeup"), await z.wakeup()),
115 P("Wake up done"))
113116 },
114117 })
115118 ;(Bare.on("idle", function () {
116119 console.log("Bare has fully idled, zzz....")
117120 }),
118121 Bare.on("suspend", function (e) {
119 ;((R = !0),
122 ;((M = !0),
120123 (e = Math.max(e - 1e4, 0)),
121 F("Bare suspend, linger", e),
122 (null !== z.api.call && z.api.call.callIsActive) ||
123 (F("Asking suspendify to suspend"), K.suspend(e)))
124 P("Bare suspend, linger", e),
125 (null !== K.api.call && K.api.call.callIsActive) ||
126 (P("Asking suspendify to suspend"), _.suspend(e)))
124127 }),
125128 Bare.on("resume", function () {
126 ;(F("Bare resume"), (R = !1), K.resume())
129 ;(P("Bare resume"), (M = !1), _.resume())
127130 }),
128131 Bare.on("wakeup", function () {
129 ;(F("Bare wakeup"), K.wakeup())
132 ;(P("Bare wakeup"), _.wakeup())
130133 }),
131 n(z, l))
132 const T = new t(`${p}/notifications`, async function (e) {
134 n(K, d))
135 const W = new t(`${g}/notifications`, async function (e) {
133136 try {
134 ;(!1 === z.opened && (await z.ready()),
135 F("Draining notification handler, got", e.length, "proofs"),
136 z.api.core.setProcessingNotifications(!0))
137 const a = M.rootCorestore,
137 ;(!1 === K.opened && (await K.ready()),
138 P("Draining notification handler, got", e.length, "proofs"),
139 K.api.core.setProcessingNotifications(!0))
140 const a = z.rootCorestore,
138141 n = new Set()
139142 for (const i of e) {
140143 const e = a.get({ discoveryKey: i.discoveryKey })
……@@ -150,88 +153,88 @@ async function l(l, g) {
150153 await e.core.verify(i.data, null),
151154 n.add(r.toString(i.discoveryKey, "hex")))
152155 } catch (e) {
153 F("Ignoring proof update due to:", e.message)
156 P("Ignoring proof update due to:", e.message)
154157 }
155158 try {
156159 await e.close()
157160 } catch {}
158161 }
159162 for (const e of n)
160 (F("Waking up", e), M.scheduleDiscoverySwarmingFromDiscoveryKey(r.from(e, "hex")))
161 F("Draining notification complete")
163 (P("Waking up", e), z.scheduleDiscoverySwarmingFromDiscoveryKey(r.from(e, "hex")))
164 P("Draining notification complete")
162165 } catch (e) {
163 F("Error handling notifications queue", e)
166 P("Error handling notifications queue", e)
164167 } finally {
165 ;(F("Draining notification complete, enabling notifications"),
166 z.api.core.setProcessingNotifications(!1))
168 ;(P("Draining notification complete, enabling notifications"),
169 K.api.core.setProcessingNotifications(!1))
167170 }
168171 }),
169 _ = l.register(512, { request: e, response: e }),
170 W = l.register(1280, { request: e, response: e }),
171 j = l.register(1536, { request: e, response: e }),
172 G = l.register(2816, { request: e, response: e }),
173 U = () => (m ? W.request({}) : 30),
174 V = (e) => _.request(e),
175 $ = () => j.request(),
176 H = (async function () {
177 ;(F("Booting backend"),
178 await z.ready(),
179 Bare.off("uncaughtException", g).off("unhandledRejection", g),
180 Bare.on("uncaughtException", P).on("unhandledRejection", P),
181 F("Backend ready"),
182 await J(),
183 F("Acquired push lock"))
172 j = d.register(512, { request: e, response: e }),
173 G = d.register(1280, { request: e, response: e }),
174 U = d.register(1536, { request: e, response: e }),
175 V = d.register(2816, { request: e, response: e }),
176 $ = () => (b ? G.request({}) : 30),
177 H = (e) => j.request(e),
178 J = () => U.request(),
179 O = (async function () {
180 ;(P("Booting backend"),
181 await K.ready(),
182 Bare.off("uncaughtException", p).off("unhandledRejection", p),
183 Bare.on("uncaughtException", D).on("unhandledRejection", D),
184 P("Backend ready"),
185 await Q(),
186 P("Acquired push lock"))
184187 })()
185 async function J() {
186 ;(C && (await C.unlock()), (C = new c(`${p}/lock`, { wait: !0 })), await C.lock())
188 async function Q() {
189 ;(R && (await R.unlock()), (R = new c(`${g}/lock`, { wait: !0 })), await R.lock())
187190 }
188191 !(async function () {
189 ;(F("await booting in notifications"),
190 await H,
191 z.api.call.on("call-active", function () {
192 R && (F("Call started in bg, resuming"), K.resume())
192 ;(P("await booting in notifications"),
193 await O,
194 K.api.call.on("call-active", function () {
195 M && (P("Call started in bg, resuming"), _.resume())
193196 }),
194 z.api.call.on("call-inactive", function () {
195 R &&
196 (F("Call ended in bg, suspending"),
197 z.api.call.callIsActive || (F("suspending now in 5000"), K.suspend(5e3)))
197 K.api.call.on("call-inactive", function () {
198 M &&
199 (P("Call ended in bg, suspending"),
200 K.api.call.callIsActive || (P("suspending now in 5000"), _.suspend(5e3)))
198201 }),
199 F("subscribing to notifications"))
200 const e = await z.api.core.subscribeNotifications()
202 P("subscribing to notifications"))
203 const e = await K.api.core.subscribeNotifications()
201204 for await (const a of e)
202205 switch (a.type) {
203206 case i.CALL_HANGUP:
204 ;(F("stopping call ring"),
205 await $(),
206 !z.api.call.callIsActive && R && (F("call hangup - suspending 5000"), K.suspend(5e3)))
207 ;(P("stopping call ring"),
208 await J(),
209 !K.api.call.callIsActive && M && (P("call hangup - suspending 5000"), _.suspend(5e3)))
207210 break
208211 case i.CALL_STARTED:
209 ;(F("suspending"), R && K.suspend())
212 ;(P("suspending"), M && _.suspend())
210213 break
211214 default:
212 if (!R) {
213 F("Not backgrounded, dropping")
215 if (!M) {
216 P("Not backgrounded, dropping")
214217 continue
215218 }
216 if (D.get(a.id)) {
217 F("message is in cache already, dropping", a.id)
219 if (T.get(a.id)) {
220 P("message is in cache already, dropping", a.id)
218221 continue
219222 }
220 if ((D.set(a.id, !0), (a.strings = A), a.message)) {
223 if ((T.set(a.id, !0), (a.strings = A), a.message)) {
221224 const e = {
222225 id: a.id,
223226 threadIdentifier: a.roomId,
224227 avatar: a.avatar,
225 title: d(a),
228 title: l(a),
226229 body: u(a),
227230 userInfo: a.userInfo,
228231 sound: { type: "named", name: "notif_default.wav" },
229232 }
230 ;(F("sending push notification"), V(e))
233 ;(P("sending push notification"), H(e))
231234 break
232235 }
233 F("skipping push notification, no message")
236 P("skipping push notification, no message")
234237 }
235238 })()
236239}
237module.exports = { load: l }
240module.exports = { load: d }
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/LICENSE +0 -21
……@@ -1,21 +0,0 @@
1MIT License
2
3Copyright (c) 2023 Holepunch
4
5Permission is hereby granted, free of charge, to any person obtaining a copy
6of this software and associated documentation files (the "Software"), to deal
7in the Software without restriction, including without limitation the rights
8to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9copies of the Software, and to permit persons to whom the Software is
10furnished to do so, subject to the following conditions:
11
12The above copyright notice and this permission notice shall be included in all
13copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21SOFTWARE.
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/bare.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/bitcoin.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/bitcoin.riv +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/holepunch.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/holepunch.riv +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_laughs.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_laughs.riv +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_love.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_love.riv +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_music.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_music.riv +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_party.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_party.riv +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_pear.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_pear.riv +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/keet_santa.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/tether.png +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/assets/tether.riv +0 -0
(no content changes — binary or rename)
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/data/messages.js +0 -1
……@@ -1 +0,0 @@
1export default{groups:[{key:"smileys-emotion",message:"smileys & emotion",order:0},{key:"people-body",message:"people & body",order:1},{key:"component",message:"components",order:2},{key:"animals-nature",message:"animals & nature",order:3},{key:"food-drink",message:"food & drink",order:4},{key:"travel-places",message:"travel & places",order:5},{key:"activities",message:"activities",order:6},{key:"objects",message:"objects",order:7},{key:"symbols",message:"symbols",order:8},{key:"flags",message:"flags",order:9}],skinTones:[{key:"dark",message:"dark skin tone"},{key:"light",message:"light skin tone"},{key:"medium",message:"medium skin tone"},{key:"medium-dark",message:"medium-dark skin tone"},{key:"medium-light",message:"medium-light skin tone"}],subgroups:[{key:"face-smiling",message:"smiling",order:0},{key:"face-affection",message:"affectionate",order:1},{key:"face-tongue",message:"with tongue",order:2},{key:"face-hand",message:"with hands",order:3},{key:"face-neutral-skeptical",message:"neutral / skeptical",order:4},{key:"face-sleepy",message:"sleepy",order:5},{key:"face-unwell",message:"unwell",order:6},{key:"face-hat",message:"with hats",order:7},{key:"face-glasses",message:"with glasses",order:8},{key:"face-concerned",message:"concerned",order:9},{key:"face-negative",message:"negative",order:10},{key:"face-costume",message:"costumed & creatures",order:11},{key:"cat-face",message:"cat faces",order:12},{key:"monkey-face",message:"monkey faces",order:13},{key:"heart",message:"hearts",order:14},{key:"emotion",message:"emotions",order:15},{key:"hand-fingers-open",message:"fingers open",order:16},{key:"hand-fingers-partial",message:"hand signs",order:17},{key:"hand-single-finger",message:"finger pointing",order:18},{key:"hand-fingers-closed",message:"fingers closed",order:19},{key:"hands",message:"hands",order:20},{key:"hand-prop",message:"hand props",order:21},{key:"body-parts",message:"body parts",order:22},{key:"person",message:"people",order:23},{key:"person-gesture",message:"gestures",order:24},{key:"person-role",message:"roles & careers",order:25},{key:"person-fantasy",message:"fantasy",order:26},{key:"person-activity",message:"activities",order:27},{key:"person-sport",message:"athletics",order:28},{key:"person-resting",message:"resting",order:29},{key:"family",message:"family",order:30},{key:"person-symbol",message:"people symbols",order:31},{key:"skin-tone",message:"skin tones",order:32},{key:"hair-style",message:"hair styles",order:33},{key:"animal-mammal",message:"mammals",order:34},{key:"animal-bird",message:"birds",order:35},{key:"animal-amphibian",message:"amphibians",order:36},{key:"animal-reptile",message:"reptiles",order:37},{key:"animal-marine",message:"marine life",order:38},{key:"animal-bug",message:"bugs",order:39},{key:"plant-flower",message:"flowers",order:40},{key:"plant-other",message:"other plants",order:41},{key:"food-fruit",message:"fruit",order:42},{key:"food-vegetable",message:"vegetables",order:43},{key:"food-prepared",message:"cooked / prepared",order:44},{key:"food-asian",message:"asian",order:45},{key:"food-marine",message:"seafood",order:46},{key:"food-sweet",message:"sweets & candy",order:46},{key:"drink",message:"drink",order:47},{key:"dishware",message:"dishware",order:48},{key:"place-map",message:"globes & maps",order:49},{key:"place-geographic",message:"geographic locations",order:50},{key:"place-building",message:"buildings",order:51},{key:"place-religious",message:"religious buildings",order:52},{key:"place-other",message:"other places",order:53},{key:"transport-ground",message:"ground transportation",order:54},{key:"transport-water",message:"water transportation",order:55},{key:"transport-air",message:"air transportation",order:56},{key:"hotel",message:"hotel",order:57},{key:"time",message:"time",order:58},{key:"sky-weather",message:"weather",order:59},{key:"event",message:"events & holidays",order:60},{key:"award-medal",message:"award medals",order:61},{key:"sport",message:"sports",order:62},{key:"game",message:"games & hobbies",order:63},{key:"arts-crafts",message:"arts & crafts",order:64},{key:"clothing",message:"clothing",order:65},{key:"sound",message:"sound",order:66},{key:"music",message:"music",order:67},{key:"musical-instrument",message:"musical instruments",order:68},{key:"phone",message:"phone",order:69},{key:"computer",message:"computer",order:70},{key:"light-video",message:"light, film & video",order:71},{key:"book-paper",message:"books & paper",order:72},{key:"money",message:"money",order:73},{key:"mail",message:"mail",order:74},{key:"writing",message:"writing",order:75},{key:"office",message:"office supplies",order:76},{key:"lock",message:"lock & keys",order:77},{key:"tool",message:"tools",order:78},{key:"science",message:"science equipment",order:79},{key:"medical",message:"medical",order:80},{key:"household",message:"household items",order:81},{key:"other-object",message:"other objects",order:82},{key:"transport-sign",message:"transport signs",order:83},{key:"warning",message:"warning symbols",order:84},{key:"arrow",message:"arrows",order:85},{key:"religion",message:"religious symbols",order:86},{key:"zodiac",message:"zodiac signs",order:87},{key:"av-symbol",message:"audio & video symbols",order:88},{key:"gender",message:"gender signs",order:89},{key:"math",message:"math symbols",order:90},{key:"punctuation",message:"punctuation",order:91},{key:"currency",message:"currencies",order:92},{key:"other-symbol",message:"other symbols",order:93},{key:"keycap",message:"keypad characters",order:94},{key:"alphanum",message:"alphanumeric symbols",order:95},{key:"geometric",message:"shapes & colors",order:96},{key:"flag",message:"other flags",order:97},{key:"country-flag",message:"country flags",order:98},{key:"subdivision-flag",message:"subdivision flags",order:99}]};
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/data/raw-emojis-base.js +0 -1
……@@ -1 +0,0 @@
1export default[{label:"grinning face",hexcode:"1F600",tags:["cheerful","cheery","face","grin","grinning","happy","laugh","nice","smile","smiling","teeth"],emoji:"😀",text:"",type:1,order:1,group:0,subgroup:0,version:1,shortCodes:["grinning","grinning_face"]},{label:"grinning face with big eyes",hexcode:"1F603",tags:["awesome","big","eyes","face","grin","grinning","happy","mouth","open","smile","smiling","teeth","yay"],emoji:"😃",text:"",type:1,order:2,group:0,subgroup:0,version:.6,shortCodes:["grinning_face_with_big_eyes","smiley"]},{label:"grinning face with smiling eyes",hexcode:"1F604",tags:["eye","eyes","face","grin","grinning","happy","laugh","lol","mouth","open","smile","smiling"],emoji:"😄",text:"",type:1,order:3,group:0,subgroup:0,version:.6,emoticon:[":D"],shortCodes:["grinning_face_with_closed_eyes","smile"]},{label:"beaming face with smiling eyes",hexcode:"1F601",tags:["beaming","eye","eyes","face","grin","grinning","happy","nice","smile","smiling","teeth"],emoji:"😁",text:"",type:1,order:4,group:0,subgroup:0,version:.6,shortCodes:["beaming_face","grin"]},{label:"grinning squinting face",hexcode:"1F606",tags:["closed","eyes","face","grinning","haha","hahaha","happy","laugh","lol","mouth","open","rofl","smile","smiling","squinting"],emoji:"😆",text:"",type:1,order:5,group:0,subgroup:0,version:.6,emoticon:["xD","XD"],shortCodes:["laughing","lol","satisfied","squinting_face"]},{label:"grinning face with sweat",hexcode:"1F605",tags:["cold","dejected","excited","face","grinning","mouth","nervous","open","smile","smiling","stress","stressed","sweat"],emoji:"😅",text:"",type:1,order:6,group:0,subgroup:0,version:.6,shortCodes:["grinning_face_with_sweat","sweat_smile"]},{label:"rolling on the floor laughing",hexcode:"1F923",tags:["crying","face","floor","funny","haha","happy","hehe","hilarious","joy","laugh","lmao","lol","rofl","roflmao","rolling","tear"],emoji:"🤣",text:"",type:1,order:7,group:0,subgroup:0,version:3,emoticon:[":'D"],shortCodes:["rofl"]},{label:"face with tears of joy",hexcode:"1F602",tags:["crying","face","feels","funny","haha","happy","hehe","hilarious","joy","laugh","lmao","lol","rofl","roflmao","tear"],emoji:"😂",text:"",type:1,order:8,group:0,subgroup:0,version:.6,emoticon:[":')"],shortCodes:["joy","lmao","tears_of_joy"]},{label:"slightly smiling face",hexcode:"1F642",tags:["face","happy","slightly","smile","smiling"],emoji:"🙂",text:"",type:1,order:9,group:0,subgroup:0,version:1,emoticon:[":)"],shortCodes:["slightly_smiling_face"]},{label:"upside-down face",hexcode:"1F643",tags:["face","hehe","smile","upside-down"],emoji:"🙃",text:"",type:1,order:10,group:0,subgroup:0,version:1,shortCodes:["upside_down_face"]},{label:"melting face",hexcode:"1FAE0",tags:["disappear","dissolve","embarrassed","face","haha","heat","hot","liquid","lol","melt","melting","sarcasm","sarcastic"],emoji:"🫠",text:"",type:1,order:11,group:0,subgroup:0,version:14,shortCodes:["melt","melting_face"]},{label:"winking face",hexcode:"1F609",tags:["face","flirt","heartbreaker","sexy","slide","tease","wink","winking","winks"],emoji:"😉",text:"",type:1,order:12,group:0,subgroup:0,version:.6,emoticon:[";)"],shortCodes:["wink","winking_face"]},{label:"smiling face with smiling eyes",hexcode:"1F60A",tags:["blush","eye","eyes","face","glad","satisfied","smile","smiling"],emoji:"😊",text:"",type:1,order:13,group:0,subgroup:0,version:.6,emoticon:[":>"],shortCodes:["blush","smiling_face_with_closed_eyes"]},{label:"smiling face with halo",hexcode:"1F607",tags:["angel","angelic","angels","blessed","face","fairy","fairytale","fantasy","halo","happy","innocent","peaceful","smile","smiling","spirit","tale"],emoji:"😇",text:"",type:1,order:14,group:0,subgroup:0,version:1,emoticon:["o:)","O:)"],shortCodes:["halo","innocent"]},{label:"smiling face with hearts",hexcode:"1F970",tags:["3","adore","crush","face","heart","hearts","ily","love","romance","smile","smiling","you"],emoji:"🥰",text:"",type:1,order:15,group:0,subgroup:1,version:11,shortCodes:["smiling_face_with_3_hearts"]},{label:"smiling face with heart-eyes",hexcode:"1F60D",tags:["143","bae","eye","face","feels","heart-eyes","hearts","ily","kisses","love","romance","romantic","smile","xoxo"],emoji:"😍",text:"",type:1,order:16,group:0,subgroup:1,version:.6,shortCodes:["heart_eyes","smiling_face_with_heart_eyes"]},{label:"star-struck",hexcode:"1F929",tags:["excited","eyes","face","grinning","smile","star","starry-eyed","wow"],emoji:"🤩",text:"",type:1,order:17,group:0,subgroup:1,version:5,shortCodes:["star_struck"]},{label:"face blowing a kiss",hexcode:"1F618",tags:["adorbs","bae","blowing","face","flirt","heart","ily","kiss","love","lover","miss","muah","romantic","smooch","xoxo","you"],emoji:"😘",text:"",type:1,order:18,group:0,subgroup:1,version:.6,emoticon:[":x",":X"],shortCodes:["blowing_a_kiss","kissing_heart"]},{label:"kissing face",hexcode:"1F617",tags:["143","date","dating","face","flirt","ily","kiss","love","smooch","smooches","xoxo","you"],emoji:"😗",text:"",type:1,order:19,group:0,subgroup:1,version:1,shortCodes:["kissing","kissing_face"]},{label:"smiling face",hexcode:"263A",tags:["face","happy","outlined","relaxed","smile","smiling"],emoji:"☺️",text:"☺︎",type:0,order:21,group:0,subgroup:1,version:.6,shortCodes:["relaxed","smiling_face"]},{label:"kissing face with closed eyes",hexcode:"1F61A",tags:["143","bae","blush","closed","date","dating","eye","eyes","face","flirt","ily","kisses","kissing","smooches","xoxo"],emoji:"😚",text:"",type:1,order:22,group:0,subgroup:1,version:.6,emoticon:[":*"],shortCodes:["kissing_closed_eyes","kissing_face_with_closed_eyes"]},{label:"kissing face with smiling eyes",hexcode:"1F619",tags:["143","closed","date","dating","eye","eyes","face","flirt","ily","kiss","kisses","kissing","love","night","smile","smiling"],emoji:"😙",text:"",type:1,order:23,group:0,subgroup:1,version:1,shortCodes:["kissing_face_with_smiling_eyes","kissing_smiling_eyes"]},{label:"smiling face with tear",hexcode:"1F972",tags:["face","glad","grateful","happy","joy","pain","proud","relieved","smile","smiley","smiling","tear","touched"],emoji:"🥲",text:"",type:1,order:24,group:0,subgroup:1,version:13,shortCodes:["smiling_face_with_tear"]},{label:"face savoring food",hexcode:"1F60B",tags:["delicious","eat","face","food","full","hungry","savor","smile","smiling","tasty","um","yum","yummy"],emoji:"😋",text:"",type:1,order:25,group:0,subgroup:2,version:.6,shortCodes:["savoring_food","yum"]},{label:"face with tongue",hexcode:"1F61B",tags:["awesome","cool","face","nice","party","stuck-out","sweet","tongue"],emoji:"😛",text:"",type:1,order:26,group:0,subgroup:2,version:1,emoticon:[":p",":P"],shortCodes:["face_with_tongue","stuck_out_tongue"]},{label:"winking face with tongue",hexcode:"1F61C",tags:["crazy","epic","eye","face","funny","joke","loopy","nutty","party","stuck-out","tongue","wacky","weirdo","wink","winking","yolo"],emoji:"😜",text:"",type:1,order:27,group:0,subgroup:2,version:.6,emoticon:[";p",";P"],shortCodes:["stuck_out_tongue_winking_eye"]},{label:"zany face",hexcode:"1F92A",tags:["crazy","eye","eyes","face","goofy","large","small","zany"],emoji:"🤪",text:"",type:1,order:28,group:0,subgroup:2,version:5,shortCodes:["zany","zany_face"]},{label:"squinting face with tongue",hexcode:"1F61D",tags:["closed","eye","eyes","face","gross","horrible","omg","squinting","stuck-out","taste","tongue","whatever","yolo"],emoji:"😝",text:"",type:1,order:29,group:0,subgroup:2,version:.6,emoticon:["xp","xP","XP"],shortCodes:["stuck_out_tongue_closed_eyes"]},{label:"money-mouth face",hexcode:"1F911",tags:["face","money","money-mouth","mouth","paid"],emoji:"🤑",text:"",type:1,order:30,group:0,subgroup:2,version:1,shortCodes:["money_mouth_face"]},{label:"smiling face with open hands",hexcode:"1F917",tags:["face","hands","hug","hugging","open","smiling"],emoji:"🤗",text:"",type:1,order:31,group:0,subgroup:3,version:1,shortCodes:["hug","hugging","hugging_face"]},{label:"face with hand over mouth",hexcode:"1F92D",tags:["face","giggle","giggling","hand","mouth","oops","realization","secret","shock","sudden","surprise","whoops"],emoji:"🤭",text:"",type:1,order:32,group:0,subgroup:3,version:5,shortCodes:["face_with_hand_over_mouth","hand_over_mouth"]},{label:"face with open eyes and hand over mouth",hexcode:"1FAE2",tags:["amazement","awe","disbelief","embarrass","eyes","face","gasp","hand","mouth","omg","open","over","quiet","scared","shock","surprise"],emoji:"🫢",text:"",type:1,order:33,group:0,subgroup:3,version:14,shortCodes:["face_with_open_eyes_hand_over_mouth","gasp"]},{label:"face with peeking eye",hexcode:"1FAE3",tags:["captivated","embarrass","eye","face","hide","hiding","peek","peeking","peep","scared","shy","stare"],emoji:"🫣",text:"",type:1,order:34,group:0,subgroup:3,version:14,shortCodes:["face_with_peeking_eye","peek"]},{label:"shushing face",hexcode:"1F92B",tags:["face","quiet","shh","shush","shushing"],emoji:"🤫",text:"",type:1,order:35,group:0,subgroup:3,version:5,shortCodes:["shush","shushing_face"]},{label:"thinking face",hexcode:"1F914",tags:["chin","consider","face","hmm","ponder","pondering","thinking","wondering"],emoji:"🤔",text:"",type:1,order:36,group:0,subgroup:3,version:1,emoticon:[":l",":L"],shortCodes:["thinking","thinking_face","wtf"]},{label:"saluting face",hexcode:"1FAE1",tags:["face","good","luck","ma’am","ok","respect","salute","saluting","sir","troops","yes"],emoji:"🫡",text:"",type:1,order:37,group:0,subgroup:3,version:14,shortCodes:["salute","saluting_face"]},{label:"zipper-mouth face",hexcode:"1F910",tags:["face","keep","mouth","quiet","secret","shut","zip","zipper","zipper-mouth"],emoji:"🤐",text:"",type:1,order:38,group:0,subgroup:4,version:1,emoticon:[":z",":Z"],shortCodes:["zipper_mouth","zipper_mouth_face"]},{label:"face with raised eyebrow",hexcode:"1F928",tags:["disapproval","disbelief","distrust","emoji","eyebrow","face","hmm","mild","raised","skeptic","skeptical","skepticism","surprise","what"],emoji:"🤨",text:"",type:1,order:39,group:0,subgroup:4,version:5,shortCodes:["face_with_raised_eyebrow","raised_eyebrow"]},{label:"neutral face",hexcode:"1F610",tags:["awkward","blank","deadpan","expressionless","face","fine","jealous","meh","neutral","oh","shade","straight","unamused","unhappy","unimpressed","whatever"],emoji:"😐️",text:"😐︎",type:1,order:40,group:0,subgroup:4,version:.7,emoticon:[":|"],shortCodes:["neutral","neutral_face"]},{label:"expressionless face",hexcode:"1F611",tags:["awkward","dead","expressionless","face","fine","inexpressive","jealous","meh","not","oh","omg","straight","uh","unhappy","unimpressed","whatever"],emoji:"😑",text:"",type:1,order:41,group:0,subgroup:4,version:1,shortCodes:["expressionless","expressionless_face"]},{label:"face without mouth",hexcode:"1F636",tags:["awkward","blank","expressionless","face","mouth","mouthless","mute","quiet","secret","silence","silent","speechless"],emoji:"😶",text:"",type:1,order:42,group:0,subgroup:4,version:1,emoticon:[":#"],shortCodes:["no_mouth"]},{label:"dotted line face",hexcode:"1FAE5",tags:["depressed","disappear","dotted","face","hidden","hide","introvert","invisible","line","meh","whatever","wtv"],emoji:"🫥",text:"",type:1,order:43,group:0,subgroup:4,version:14,shortCodes:["dotted_line_face"]},{label:"face in clouds",hexcode:"1F636-200D-1F32B-FE0F",tags:["absentminded","clouds","face","fog","head"],emoji:"😶‍🌫️",text:"",type:1,order:44,group:0,subgroup:4,version:13.1,shortCodes:["in_clouds"]},{label:"smirking face",hexcode:"1F60F",tags:["boss","dapper","face","flirt","homie","kidding","leer","shade","slick","sly","smirk","smug","snicker","suave","suspicious","swag"],emoji:"😏",text:"",type:1,order:46,group:0,subgroup:4,version:.6,emoticon:[":j"],shortCodes:["smirk","smirking","smirking_face"]},{label:"unamused face",hexcode:"1F612",tags:["...","bored","face","fine","jealous","jel","jelly","pissed","smh","ugh","uhh","unamused","unhappy","weird","whatever"],emoji:"😒",text:"",type:1,order:47,group:0,subgroup:4,version:.6,emoticon:[":?"],shortCodes:["unamused","unamused_face"]},{label:"face with rolling eyes",hexcode:"1F644",tags:["eyeroll","eyes","face","rolling","shade","ugh","whatever"],emoji:"🙄",text:"",type:1,order:48,group:0,subgroup:4,version:1,shortCodes:["rolling_eyes"]},{label:"grimacing face",hexcode:"1F62C",tags:["awk","awkward","dentist","face","grimace","grimacing","grinning","smile","smiling"],emoji:"😬",text:"",type:1,order:49,group:0,subgroup:4,version:1,emoticon:["8D"],shortCodes:["grimacing","grimacing_face"]},{label:"face exhaling",hexcode:"1F62E-200D-1F4A8",tags:["blow","blowing","exhale","exhaling","exhausted","face","gasp","groan","relief","sigh","smiley","smoke","whisper","whistle"],emoji:"😮‍💨",text:"",type:1,order:50,group:0,subgroup:4,version:13.1,shortCodes:["exhale","exhaling"]},{label:"lying face",hexcode:"1F925",tags:["face","liar","lie","lying","pinocchio"],emoji:"🤥",text:"",type:1,order:51,group:0,subgroup:4,version:3,shortCodes:["lying","lying_face"]},{label:"shaking face",hexcode:"1FAE8",tags:["crazy","daze","earthquake","face","omg","panic","shaking","shock","surprise","vibrate","whoa","wow"],emoji:"🫨",text:"",type:1,order:52,group:0,subgroup:4,version:15,shortCodes:["shaking","shaking_face"]},{label:"head shaking horizontally",hexcode:"1F642-200D-2194-FE0F",tags:["head","horizontally","no","shake","shaking"],emoji:"🙂‍↔️",text:"",type:1,order:53,group:0,subgroup:4,version:15.1,shortCodes:["head_shaking_horizontally"]},{label:"head shaking vertically",hexcode:"1F642-200D-2195-FE0F",tags:["head","nod","shaking","vertically","yes"],emoji:"🙂‍↕️",text:"",type:1,order:55,group:0,subgroup:4,version:15.1,shortCodes:["head_shaking_vertically"]},{label:"relieved face",hexcode:"1F60C",tags:["calm","face","peace","relief","relieved","zen"],emoji:"😌",text:"",type:1,order:57,group:0,subgroup:5,version:.6,shortCodes:["relieved","relieved_face"]},{label:"pensive face",hexcode:"1F614",tags:["awful","bored","dejected","died","disappointed","face","losing","lost","pensive","sad","sucks"],emoji:"😔",text:"",type:1,order:58,group:0,subgroup:5,version:.6,shortCodes:["pensive","pensive_face"]},{label:"sleepy face",hexcode:"1F62A",tags:["crying","face","good","night","sad","sleep","sleeping","sleepy","tired"],emoji:"😪",text:"",type:1,order:59,group:0,subgroup:5,version:.6,shortCodes:["sleepy","sleepy_face"]},{label:"drooling face",hexcode:"1F924",tags:["drooling","face"],emoji:"🤤",text:"",type:1,order:60,group:0,subgroup:5,version:3,shortCodes:["drooling","drooling_face"]},{label:"sleeping face",hexcode:"1F634",tags:["bed","bedtime","face","good","goodnight","nap","night","sleep","sleeping","tired","whatever","yawn","zzz"],emoji:"😴",text:"",type:1,order:61,group:0,subgroup:5,version:1,shortCodes:["sleeping","sleeping_face"]},{label:"face with bags under eyes",hexcode:"1FAE9",tags:["bags","bored","exhausted","eyes","face","fatigued","late","sleepy","tired","weary"],emoji:"🫩",text:"",type:1,order:62,group:0,subgroup:5,version:16,shortCodes:["face_with_eye_bags"]},{label:"face with medical mask",hexcode:"1F637",tags:["cold","dentist","dermatologist","doctor","dr","face","germs","mask","medical","medicine","sick"],emoji:"😷",text:"",type:1,order:63,group:0,subgroup:6,version:.6,shortCodes:["mask","medical_mask"]},{label:"face with thermometer",hexcode:"1F912",tags:["face","ill","sick","thermometer"],emoji:"🤒",text:"",type:1,order:64,group:0,subgroup:6,version:1,shortCodes:["face_with_thermometer"]},{label:"face with head-bandage",hexcode:"1F915",tags:["bandage","face","head-bandage","hurt","injury","ouch"],emoji:"🤕",text:"",type:1,order:65,group:0,subgroup:6,version:1,shortCodes:["face_with_head_bandage"]},{label:"nauseated face",hexcode:"1F922",tags:["face","gross","nasty","nauseated","sick","vomit"],emoji:"🤢",text:"",type:1,order:66,group:0,subgroup:6,version:3,emoticon:["%("],shortCodes:["nauseated","nauseated_face"]},{label:"face vomiting",hexcode:"1F92E",tags:["barf","ew","face","gross","puke","sick","spew","throw","up","vomit","vomiting"],emoji:"🤮",text:"",type:1,order:67,group:0,subgroup:6,version:5,shortCodes:["face_vomiting","vomiting"]},{label:"sneezing face",hexcode:"1F927",tags:["face","fever","flu","gesundheit","sick","sneeze","sneezing"],emoji:"🤧",text:"",type:1,order:68,group:0,subgroup:6,version:3,shortCodes:["sneezing","sneezing_face"]},{label:"hot face",hexcode:"1F975",tags:["dying","face","feverish","heat","hot","panting","red-faced","stroke","sweating","tongue"],emoji:"🥵",text:"",type:1,order:69,group:0,subgroup:6,version:11,shortCodes:["hot","hot_face"]},{label:"cold face",hexcode:"1F976",tags:["blue","blue-faced","cold","face","freezing","frostbite","icicles","subzero","teeth"],emoji:"🥶",text:"",type:1,order:70,group:0,subgroup:6,version:11,shortCodes:["cold","cold_face"]},{label:"woozy face",hexcode:"1F974",tags:["dizzy","drunk","eyes","face","intoxicated","mouth","tipsy","uneven","wavy","woozy"],emoji:"🥴",text:"",type:1,order:71,group:0,subgroup:6,version:11,emoticon:[":&"],shortCodes:["woozy","woozy_face"]},{label:"face with crossed-out eyes",hexcode:"1F635",tags:["crossed-out","dead","dizzy","eyes","face","feels","knocked","out","sick","tired"],emoji:"😵",text:"",type:1,order:72,group:0,subgroup:6,version:.6,emoticon:["xo","XO"],shortCodes:["dizzy_face","knocked_out"]},{label:"face with spiral eyes",hexcode:"1F635-200D-1F4AB",tags:["confused","dizzy","eyes","face","hypnotized","omg","smiley","spiral","trouble","whoa","woah","woozy"],emoji:"😵‍💫",text:"",type:1,order:73,group:0,subgroup:6,version:13.1,shortCodes:["dizzy_eyes"]},{label:"exploding head",hexcode:"1F92F",tags:["blown","explode","exploding","head","mind","mindblown","no","shocked","way"],emoji:"🤯",text:"",type:1,order:74,group:0,subgroup:6,version:5,shortCodes:["exploding_head"]},{label:"cowboy hat face",hexcode:"1F920",tags:["cowboy","cowgirl","face","hat"],emoji:"🤠",text:"",type:1,order:75,group:0,subgroup:7,version:3,shortCodes:["cowboy","cowboy_face"]},{label:"partying face",hexcode:"1F973",tags:["bday","birthday","celebrate","celebration","excited","face","happy","hat","hooray","horn","party","partying"],emoji:"🥳",text:"",type:1,order:76,group:0,subgroup:7,version:11,shortCodes:["hooray","partying","partying_face"]},{label:"disguised face",hexcode:"1F978",tags:["disguise","eyebrow","face","glasses","incognito","moustache","mustache","nose","person","spy","tache","tash"],emoji:"🥸",text:"",type:1,order:77,group:0,subgroup:7,version:13,shortCodes:["disguised","disguised_face"]},{label:"smiling face with sunglasses",hexcode:"1F60E",tags:["awesome","beach","bright","bro","chilling","cool","face","rad","relaxed","shades","slay","smile","style","sunglasses","swag","win"],emoji:"😎",text:"",type:1,order:78,group:0,subgroup:8,version:1,emoticon:["8)"],shortCodes:["smiling_face_with_sunglasses","sunglasses_cool","too_cool"]},{label:"nerd face",hexcode:"1F913",tags:["brainy","clever","expert","face","geek","gifted","glasses","intelligent","nerd","smart"],emoji:"🤓",text:"",type:1,order:79,group:0,subgroup:8,version:1,emoticon:[":B"],shortCodes:["nerd","nerd_face"]},{label:"face with monocle",hexcode:"1F9D0",tags:["classy","face","fancy","monocle","rich","stuffy","wealthy"],emoji:"🧐",text:"",type:1,order:80,group:0,subgroup:8,version:5,shortCodes:["face_with_monocle"]},{label:"confused face",hexcode:"1F615",tags:["befuddled","confused","confusing","dunno","face","frown","hm","meh","not","sad","sorry","sure"],emoji:"😕",text:"",type:1,order:81,group:0,subgroup:9,version:1,emoticon:[":/"],shortCodes:["confused","confused_face"]},{label:"face with diagonal mouth",hexcode:"1FAE4",tags:["confused","confusion","diagonal","disappointed","doubt","doubtful","face","frustrated","frustration","meh","mouth","skeptical","unsure","whatever","wtv"],emoji:"🫤",text:"",type:1,order:82,group:0,subgroup:9,version:14,shortCodes:["face_with_diagonal_mouth"]},{label:"worried face",hexcode:"1F61F",tags:["anxious","butterflies","face","nerves","nervous","sad","stress","stressed","surprised","worried","worry"],emoji:"😟",text:"",type:1,order:83,group:0,subgroup:9,version:1,shortCodes:["worried","worried_face"]},{label:"slightly frowning face",hexcode:"1F641",tags:["face","frown","frowning","sad","slightly"],emoji:"🙁",text:"",type:1,order:84,group:0,subgroup:9,version:1,shortCodes:["slightly_frowning_face"]},{label:"frowning face",hexcode:"2639",tags:["face","frown","frowning","sad"],emoji:"☹️",text:"☹︎",type:0,order:86,group:0,subgroup:9,version:.7,emoticon:[":("],shortCodes:["white_frowning_face"]},{label:"face with open mouth",hexcode:"1F62E",tags:["believe","face","forgot","mouth","omg","open","shocked","surprised","sympathy","unbelievable","unreal","whoa","wow","you"],emoji:"😮",text:"",type:1,order:87,group:0,subgroup:9,version:1,shortCodes:["face_with_open_mouth","open_mouth"]},{label:"hushed face",hexcode:"1F62F",tags:["epic","face","hushed","omg","stunned","surprised","whoa","woah"],emoji:"😯",text:"",type:1,order:88,group:0,subgroup:9,version:1,shortCodes:["hushed","hushed_face"]},{label:"astonished face",hexcode:"1F632",tags:["astonished","cost","face","no","omg","shocked","totally","way"],emoji:"😲",text:"",type:1,order:89,group:0,subgroup:9,version:.6,emoticon:[":o",":O"],shortCodes:["astonished","astonished_face"]},{label:"flushed face",hexcode:"1F633",tags:["amazed","awkward","crazy","dazed","dead","disbelief","embarrassed","face","flushed","geez","heat","hot","impressed","jeez","what","wow"],emoji:"😳",text:"",type:1,order:90,group:0,subgroup:9,version:.6,emoticon:[":$"],shortCodes:["flushed","flushed_face"]},{label:"pleading face",hexcode:"1F97A",tags:["begging","big","eyes","face","mercy","not","pleading","please","pretty","puppy","sad","why"],emoji:"🥺",text:"",type:1,order:92,group:0,subgroup:9,version:11,shortCodes:["pleading","pleading_face"]},{label:"face holding back tears",hexcode:"1F979",tags:["admiration","aww","back","cry","embarrassed","face","feelings","grateful","gratitude","holding","joy","please","proud","resist","sad","tears"],emoji:"🥹",text:"",type:1,order:93,group:0,subgroup:9,version:14,shortCodes:["face_holding_back_tears","watery_eyes"]},{label:"frowning face with open mouth",hexcode:"1F626",tags:["caught","face","frown","frowning","guard","mouth","open","scared","scary","surprise","what","wow"],emoji:"😦",text:"",type:1,order:94,group:0,subgroup:9,version:1,shortCodes:["frowning","frowning_face"]},{label:"anguished face",hexcode:"1F627",tags:["anguished","face","forgot","scared","scary","stressed","surprise","unhappy","what","wow"],emoji:"😧",text:"",type:1,order:95,group:0,subgroup:9,version:1,emoticon:[":s",":S"],shortCodes:["anguished","anguished_face"]},{label:"fearful face",hexcode:"1F628",tags:["afraid","anxious","blame","face","fear","fearful","scared","worried"],emoji:"😨",text:"",type:1,order:96,group:0,subgroup:9,version:.6,shortCodes:["fearful","fearful_face"]},{label:"anxious face with sweat",hexcode:"1F630",tags:["anxious","blue","cold","eek","face","mouth","nervous","open","rushed","scared","sweat","yikes"],emoji:"😰",text:"",type:1,order:97,group:0,subgroup:9,version:.6,shortCodes:["anxious","anxious_face","cold_sweat"]},{label:"sad but relieved face",hexcode:"1F625",tags:["anxious","call","close","complicated","disappointed","face","not","relieved","sad","sweat","time","whew"],emoji:"😥",text:"",type:1,order:98,group:0,subgroup:9,version:.6,shortCodes:["disappointed_relieved","sad_relieved_face"]},{label:"crying face",hexcode:"1F622",tags:["awful","cry","crying","face","feels","miss","sad","tear","triste","unhappy"],emoji:"😢",text:"",type:1,order:99,group:0,subgroup:9,version:.6,emoticon:[":'("],shortCodes:["cry","crying_face"]},{label:"loudly crying face",hexcode:"1F62D",tags:["bawling","cry","crying","face","loudly","sad","sob","tear","tears","unhappy"],emoji:"😭",text:"",type:1,order:100,group:0,subgroup:9,version:.6,emoticon:[":'o"],shortCodes:["loudly_crying_face","sob"]},{label:"face screaming in fear",hexcode:"1F631",tags:["epic","face","fear","fearful","munch","scared","scream","screamer","screaming","shocked","surprised","woah"],emoji:"😱",text:"",type:1,order:101,group:0,subgroup:9,version:.6,emoticon:["Dx"],shortCodes:["scream","screaming_in_fear"]},{label:"confounded face",hexcode:"1F616",tags:["annoyed","confounded","confused","cringe","distraught","face","feels","frustrated","mad","sad"],emoji:"😖",text:"",type:1,order:102,group:0,subgroup:9,version:.6,emoticon:["x(","X("],shortCodes:["confounded","confounded_face"]},{label:"persevering face",hexcode:"1F623",tags:["concentrate","concentration","face","focus","headache","persevere","persevering"],emoji:"😣",text:"",type:1,order:103,group:0,subgroup:9,version:.6,shortCodes:["persevere","persevering_face"]},{label:"disappointed face",hexcode:"1F61E",tags:["awful","blame","dejected","disappointed","face","fail","losing","sad","unhappy"],emoji:"😞",text:"",type:1,order:104,group:0,subgroup:9,version:.6,shortCodes:["disappointed","disappointed_face"]},{label:"downcast face with sweat",hexcode:"1F613",tags:["close","cold","downcast","face","feels","headache","nervous","sad","scared","sweat","yikes"],emoji:"😓",text:"",type:1,order:105,group:0,subgroup:9,version:.6,emoticon:[":<"],shortCodes:["downcast_face","sweat"]},{label:"weary face",hexcode:"1F629",tags:["crying","face","fail","feels","hungry","mad","nooo","sad","sleepy","tired","unhappy","weary"],emoji:"😩",text:"",type:1,order:106,group:0,subgroup:9,version:.6,emoticon:["D:"],shortCodes:["weary","weary_face"]},{label:"tired face",hexcode:"1F62B",tags:["cost","face","feels","nap","sad","sneeze","tired"],emoji:"😫",text:"",type:1,order:107,group:0,subgroup:9,version:.6,emoticon:[":c",":C"],shortCodes:["tired","tired_face"]},{label:"yawning face",hexcode:"1F971",tags:["bedtime","bored","face","goodnight","nap","night","sleep","sleepy","tired","whatever","yawn","yawning","zzz"],emoji:"🥱",text:"",type:1,order:108,group:0,subgroup:9,version:12,shortCodes:["yawn","yawning","yawning_face"]},{label:"face with steam from nose",hexcode:"1F624",tags:["anger","angry","face","feels","fume","fuming","furious","fury","mad","nose","steam","triumph","unhappy","won"],emoji:"😤",text:"",type:1,order:109,group:0,subgroup:10,version:.6,shortCodes:["nose_steam","triumph"]},{label:"enraged face",hexcode:"1F621",tags:["anger","angry","enraged","face","feels","mad","maddening","pouting","rage","red","shade","unhappy","upset"],emoji:"😡",text:"",type:1,order:110,group:0,subgroup:10,version:.6,emoticon:[">:/"],shortCodes:["pout","pouting_face","rage"]},{label:"angry face",hexcode:"1F620",tags:["anger","angry","blame","face","feels","frustrated","mad","maddening","rage","shade","unhappy","upset"],emoji:"😠",text:"",type:1,order:111,group:0,subgroup:10,version:.6,shortCodes:["angry","angry_face"]},{label:"face with symbols on mouth",hexcode:"1F92C",tags:["censor","cursing","cussing","face","mad","mouth","pissed","swearing","symbols"],emoji:"🤬",text:"",type:1,order:112,group:0,subgroup:10,version:5,emoticon:[":@"],shortCodes:["censored","face_with_symbols_on_mouth"]},{label:"smiling face with horns",hexcode:"1F608",tags:["demon","devil","evil","face","fairy","fairytale","fantasy","horns","purple","shade","smile","smiling","tale"],emoji:"😈",text:"",type:1,order:113,group:0,subgroup:10,version:1,emoticon:[">:)"],shortCodes:["smiling_imp"]},{label:"angry face with horns",hexcode:"1F47F",tags:["angry","demon","devil","evil","face","fairy","fairytale","fantasy","horns","imp","mischievous","purple","shade","tale"],emoji:"👿",text:"",type:1,order:114,group:0,subgroup:10,version:.6,emoticon:[">:("],shortCodes:["angry_imp","imp"]},{label:"skull",hexcode:"1F480",tags:["body","dead","death","face","fairy","fairytale","i’m","lmao","monster","tale","yolo"],emoji:"💀",text:"",type:1,order:115,group:0,subgroup:10,version:.6,shortCodes:["skull"]},{label:"skull and crossbones",hexcode:"2620",tags:["bone","crossbones","dead","death","face","monster","skull"],emoji:"☠️",text:"☠︎",type:0,order:117,group:0,subgroup:10,version:1,shortCodes:["skull_and_crossbones"]},{label:"pile of poo",hexcode:"1F4A9",tags:["bs","comic","doo","dung","face","fml","monster","pile","poo","poop","smelly","smh","stink","stinks","stinky","turd"],emoji:"💩",text:"",type:1,order:118,group:0,subgroup:11,version:.6,shortCodes:["poop","shit"]},{label:"clown face",hexcode:"1F921",tags:["clown","face"],emoji:"🤡",text:"",type:1,order:119,group:0,subgroup:11,version:3,shortCodes:["clown","clown_face"]},{label:"ogre",hexcode:"1F479",tags:["creature","devil","face","fairy","fairytale","fantasy","mask","monster","scary","tale"],emoji:"👹",text:"",type:1,order:120,group:0,subgroup:11,version:.6,emoticon:[">0)"],shortCodes:["japanese_ogre","ogre"]},{label:"goblin",hexcode:"1F47A",tags:["angry","creature","face","fairy","fairytale","fantasy","mask","mean","monster","tale"],emoji:"👺",text:"",type:1,order:121,group:0,subgroup:11,version:.6,shortCodes:["goblin","japanese_goblin"]},{label:"ghost",hexcode:"1F47B",tags:["boo","creature","excited","face","fairy","fairytale","fantasy","halloween","haunting","monster","scary","silly","tale"],emoji:"👻",text:"",type:1,order:122,group:0,subgroup:11,version:.6,shortCodes:["ghost"]},{label:"alien",hexcode:"1F47D",tags:["creature","extraterrestrial","face","fairy","fairytale","fantasy","monster","space","tale","ufo"],emoji:"👽️",text:"👽︎",type:1,order:123,group:0,subgroup:11,version:.6,shortCodes:["alien"]},{label:"alien monster",hexcode:"1F47E",tags:["alien","creature","extraterrestrial","face","fairy","fairytale","fantasy","game","gamer","games","monster","pixelated","space","tale","ufo"],emoji:"👾",text:"",type:1,order:124,group:0,subgroup:11,version:.6,shortCodes:["alien_monster","space_invader"]},{label:"robot",hexcode:"1F916",tags:["face","monster"],emoji:"🤖",text:"",type:1,order:125,group:0,subgroup:11,version:1,shortCodes:["robot","robot_face"]},{label:"grinning cat",hexcode:"1F63A",tags:["animal","cat","face","grinning","mouth","open","smile","smiling"],emoji:"😺",text:"",type:1,order:126,group:0,subgroup:12,version:.6,shortCodes:["grinning_cat","smiley_cat"]},{label:"grinning cat with smiling eyes",hexcode:"1F638",tags:["animal","cat","eye","eyes","face","grin","grinning","smile","smiling"],emoji:"😸",text:"",type:1,order:127,group:0,subgroup:12,version:.6,shortCodes:["grinning_cat_with_closed_eyes","smile_cat"]},{label:"cat with tears of joy",hexcode:"1F639",tags:["animal","cat","face","joy","laugh","laughing","lol","tear","tears"],emoji:"😹",text:"",type:1,order:128,group:0,subgroup:12,version:.6,shortCodes:["joy_cat","tears_of_joy_cat"]},{label:"smiling cat with heart-eyes",hexcode:"1F63B",tags:["animal","cat","eye","face","heart","heart-eyes","love","smile","smiling"],emoji:"😻",text:"",type:1,order:129,group:0,subgroup:12,version:.6,shortCodes:["heart_eyes_cat","smiling_cat_with_heart_eyes"]},{label:"cat with wry smile",hexcode:"1F63C",tags:["animal","cat","face","ironic","smile","wry"],emoji:"😼",text:"",type:1,order:130,group:0,subgroup:12,version:.6,shortCodes:["smirk_cat","wry_smile_cat"]},{label:"kissing cat",hexcode:"1F63D",tags:["animal","cat","closed","eye","eyes","face","kiss","kissing"],emoji:"😽",text:"",type:1,order:131,group:0,subgroup:12,version:.6,emoticon:[":3"],shortCodes:["kissing_cat"]},{label:"weary cat",hexcode:"1F640",tags:["animal","cat","face","oh","surprised","weary"],emoji:"🙀",text:"",type:1,order:132,group:0,subgroup:12,version:.6,shortCodes:["scream_cat","weary_cat"]},{label:"crying cat",hexcode:"1F63F",tags:["animal","cat","cry","crying","face","sad","tear"],emoji:"😿",text:"",type:1,order:133,group:0,subgroup:12,version:.6,shortCodes:["crying_cat"]},{label:"pouting cat",hexcode:"1F63E",tags:["animal","cat","face","pouting"],emoji:"😾",text:"",type:1,order:134,group:0,subgroup:12,version:.6,shortCodes:["pouting_cat"]},{label:"see-no-evil monkey",hexcode:"1F648",tags:["embarrassed","evil","face","forbidden","forgot","gesture","hide","monkey","no","omg","prohibited","scared","secret","smh","watch"],emoji:"🙈",text:"",type:1,order:135,group:0,subgroup:13,version:.6,shortCodes:["see_no_evil"]},{label:"hear-no-evil monkey",hexcode:"1F649",tags:["animal","ears","evil","face","forbidden","gesture","hear","listen","monkey","no","not","prohibited","secret","shh","tmi"],emoji:"🙉",text:"",type:1,order:136,group:0,subgroup:13,version:.6,shortCodes:["hear_no_evil"]},{label:"speak-no-evil monkey",hexcode:"1F64A",tags:["animal","evil","face","forbidden","gesture","monkey","no","not","oops","prohibited","quiet","secret","speak","stealth"],emoji:"🙊",text:"",type:1,order:137,group:0,subgroup:13,version:.6,shortCodes:["speak_no_evil"]},{label:"love letter",hexcode:"1F48C",tags:["heart","letter","love","mail","romance","valentine"],emoji:"💌",text:"",type:1,order:138,group:0,subgroup:14,version:.6,shortCodes:["love_letter"]},{label:"heart with arrow",hexcode:"1F498",tags:["143","adorbs","arrow","cupid","date","emotion","heart","ily","love","romance","valentine"],emoji:"💘",text:"",type:1,order:139,group:0,subgroup:14,version:.6,shortCodes:["cupid","heart_with_arrow"]},{label:"heart with ribbon",hexcode:"1F49D",tags:["143","anniversary","emotion","heart","ily","kisses","ribbon","valentine","xoxo"],emoji:"💝",text:"",type:1,order:140,group:0,subgroup:14,version:.6,shortCodes:["gift_heart","heart_with_ribbon"]},{label:"sparkling heart",hexcode:"1F496",tags:["143","emotion","excited","good","heart","ily","kisses","morning","night","sparkle","sparkling","xoxo"],emoji:"💖",text:"",type:1,order:141,group:0,subgroup:14,version:.6,shortCodes:["sparkling_heart"]},{label:"growing heart",hexcode:"1F497",tags:["143","emotion","excited","growing","heart","heartpulse","ily","kisses","muah","nervous","pulse","xoxo"],emoji:"💗",text:"",type:1,order:142,group:0,subgroup:14,version:.6,shortCodes:["growing_heart","heartpulse"]},{label:"beating heart",hexcode:"1F493",tags:["143","beating","cardio","emotion","heart","heartbeat","ily","love","pulsating","pulse"],emoji:"💓",text:"",type:1,order:143,group:0,subgroup:14,version:.6,shortCodes:["beating_heart","heartbeat"]},{label:"revolving hearts",hexcode:"1F49E",tags:["143","adorbs","anniversary","emotion","heart","hearts","revolving"],emoji:"💞",text:"",type:1,order:144,group:0,subgroup:14,version:.6,shortCodes:["revolving_hearts"]},{label:"two hearts",hexcode:"1F495",tags:["143","anniversary","date","dating","emotion","heart","hearts","ily","kisses","love","loving","two","xoxo"],emoji:"💕",text:"",type:1,order:145,group:0,subgroup:14,version:.6,shortCodes:["two_hearts"]},{label:"heart decoration",hexcode:"1F49F",tags:["143","decoration","emotion","heart","hearth","purple","white"],emoji:"💟",text:"",type:1,order:146,group:0,subgroup:14,version:.6,shortCodes:["heart_decoration"]},{label:"heart exclamation",hexcode:"2763",tags:["exclamation","heart","heavy","mark","punctuation"],emoji:"❣️",text:"❣︎",type:0,order:148,group:0,subgroup:14,version:1,shortCodes:["heart_exclamation"]},{label:"broken heart",hexcode:"1F494",tags:["break","broken","crushed","emotion","heart","heartbroken","lonely","sad"],emoji:"💔",text:"",type:1,order:149,group:0,subgroup:14,version:.6,emoticon:["</3"],shortCodes:["broken_heart"]},{label:"heart on fire",hexcode:"2764-FE0F-200D-1F525",tags:["burn","fire","heart","love","lust","sacred"],emoji:"❤️‍🔥",text:"",type:1,order:150,group:0,subgroup:14,version:13.1,shortCodes:["heart_on_fire"]},{label:"mending heart",hexcode:"2764-FE0F-200D-1FA79",tags:["healthier","heart","improving","mending","recovering","recuperating","well"],emoji:"❤️‍🩹",text:"",type:1,order:152,group:0,subgroup:14,version:13.1,shortCodes:["mending_heart"]},{label:"red heart",hexcode:"2764",tags:["emotion","heart","love","red"],emoji:"❤️",text:"❤︎",type:0,order:155,group:0,subgroup:14,version:.6,emoticon:["<3"],shortCodes:["heart","red_heart"]},{label:"pink heart",hexcode:"1FA77",tags:["143","adorable","cute","emotion","heart","ily","like","love","pink","special","sweet"],emoji:"🩷",text:"",type:1,order:156,group:0,subgroup:14,version:15,shortCodes:["pink_heart"]},{label:"orange heart",hexcode:"1F9E1",tags:["143","heart","orange"],emoji:"🧡",text:"",type:1,order:157,group:0,subgroup:14,version:5,shortCodes:["orange_heart"]},{label:"yellow heart",hexcode:"1F49B",tags:["143","cardiac","emotion","heart","ily","love","yellow"],emoji:"💛",text:"",type:1,order:158,group:0,subgroup:14,version:.6,shortCodes:["yellow_heart"]},{label:"green heart",hexcode:"1F49A",tags:["143","emotion","green","heart","ily","love","romantic"],emoji:"💚",text:"",type:1,order:159,group:0,subgroup:14,version:.6,shortCodes:["green_heart"]},{label:"blue heart",hexcode:"1F499",tags:["143","blue","emotion","heart","ily","love","romance"],emoji:"💙",text:"",type:1,order:160,group:0,subgroup:14,version:.6,shortCodes:["blue_heart"]},{label:"light blue heart",hexcode:"1FA75",tags:["143","blue","cute","cyan","emotion","heart","ily","light","like","love","sky","special","teal"],emoji:"🩵",text:"",type:1,order:161,group:0,subgroup:14,version:15,shortCodes:["light_blue_heart"]},{label:"purple heart",hexcode:"1F49C",tags:["143","bestest","emotion","heart","ily","love","purple"],emoji:"💜",text:"",type:1,order:162,group:0,subgroup:14,version:.6,shortCodes:["purple_heart"]},{label:"brown heart",hexcode:"1F90E",tags:["143","brown","heart"],emoji:"🤎",text:"",type:1,order:163,group:0,subgroup:14,version:12,shortCodes:["brown_heart"]},{label:"black heart",hexcode:"1F5A4",tags:["black","evil","heart","wicked"],emoji:"🖤",text:"",type:1,order:164,group:0,subgroup:14,version:3,shortCodes:["black_heart"]},{label:"grey heart",hexcode:"1FA76",tags:["143","emotion","gray","grey","heart","ily","love","silver","slate","special"],emoji:"🩶",text:"",type:1,order:165,group:0,subgroup:14,version:15,shortCodes:["gray_heart","grey_heart"]},{label:"white heart",hexcode:"1F90D",tags:["143","heart","white"],emoji:"🤍",text:"",type:1,order:166,group:0,subgroup:14,version:12,shortCodes:["white_heart"]},{label:"kiss mark",hexcode:"1F48B",tags:["dating","emotion","heart","kiss","kissing","lips","mark","romance","sexy"],emoji:"💋",text:"",type:1,order:167,group:0,subgroup:15,version:.6,shortCodes:["kiss"]},{label:"hundred points",hexcode:"1F4AF",tags:["100","a+","agree","clearly","definitely","faithful","fleek","full","hundred","keep","perfect","point","score","true","truth","yup"],emoji:"💯",text:"",type:1,order:168,group:0,subgroup:15,version:.6,shortCodes:["100"]},{label:"anger symbol",hexcode:"1F4A2",tags:["anger","angry","comic","mad","symbol","upset"],emoji:"💢",text:"",type:1,order:169,group:0,subgroup:15,version:.6,shortCodes:["anger"]},{label:"collision",hexcode:"1F4A5",tags:["bomb","boom","collide","comic","explode"],emoji:"💥",text:"",type:1,order:171,group:0,subgroup:15,version:.6,shortCodes:["boom","collision"]},{label:"dizzy",hexcode:"1F4AB",tags:["comic","shining","shooting","star","stars"],emoji:"💫",text:"",type:1,order:172,group:0,subgroup:15,version:.6,shortCodes:["dizzy"]},{label:"sweat droplets",hexcode:"1F4A6",tags:["comic","drip","droplet","droplets","drops","splashing","squirt","sweat","water","wet","work","workout"],emoji:"💦",text:"",type:1,order:173,group:0,subgroup:15,version:.6,shortCodes:["sweat_drops"]},{label:"dashing away",hexcode:"1F4A8",tags:["away","cloud","comic","dash","dashing","fart","fast","go","gone","gotta","running","smoke"],emoji:"💨",text:"",type:1,order:174,group:0,subgroup:15,version:.6,shortCodes:["dash","dashing_away"]},{label:"hole",hexcode:"1F573",tags:["hole"],emoji:"🕳️",text:"🕳︎",type:0,order:176,group:0,subgroup:15,version:.7,shortCodes:["hole"]},{label:"speech balloon",hexcode:"1F4AC",tags:["balloon","bubble","comic","dialog","message","sms","speech","talk","text","typing"],emoji:"💬",text:"",type:1,order:177,group:0,subgroup:15,version:.6,shortCodes:["speech_balloon"]},{label:"eye in speech bubble",hexcode:"1F441-FE0F-200D-1F5E8-FE0F",tags:["balloon","bubble","eye","speech","witness"],emoji:"👁️‍🗨️",text:"",type:1,order:178,group:0,subgroup:15,version:2,shortCodes:["eye_in_speech_bubble"]},{label:"left speech bubble",hexcode:"1F5E8",tags:["balloon","bubble","dialog","left","speech"],emoji:"🗨️",text:"🗨︎",type:0,order:183,group:0,subgroup:15,version:2,shortCodes:["left_speech_bubble"]},{label:"right anger bubble",hexcode:"1F5EF",tags:["anger","angry","balloon","bubble","mad","right"],emoji:"🗯️",text:"🗯︎",type:0,order:185,group:0,subgroup:15,version:.7,shortCodes:["right_anger_bubble"]},{label:"thought balloon",hexcode:"1F4AD",tags:["balloon","bubble","cartoon","cloud","comic","daydream","decisions","dream","idea","invent","invention","realize","think","thoughts","wonder"],emoji:"💭",text:"",type:1,order:186,group:0,subgroup:15,version:1,shortCodes:["thought_balloon"]},{label:"ZZZ",hexcode:"1F4A4",tags:["comic","good","goodnight","night","sleep","sleeping","sleepy","tired","zzz"],emoji:"💤",text:"",type:1,order:187,group:0,subgroup:15,version:.6,shortCodes:["zzz"]},{label:"waving hand",hexcode:"1F44B",tags:["bye","cya","g2g","greetings","gtg","hand","hello","hey","hi","later","outtie","ttfn","ttyl","wave","yo","you"],emoji:"👋",text:"",type:1,order:188,group:1,subgroup:16,version:.6,skins:[{label:"waving hand: light skin tone",hexcode:"1F44B-1F3FB",emoji:"👋🏻",text:"",type:1,order:189,group:1,subgroup:16,version:1,tone:1,shortCodes:["wave_tone1","waving_hand_tone1"]},{label:"waving hand: medium-light skin tone",hexcode:"1F44B-1F3FC",emoji:"👋🏼",text:"",type:1,order:190,group:1,subgroup:16,version:1,tone:2,shortCodes:["wave_tone2","waving_hand_tone2"]},{label:"waving hand: medium skin tone",hexcode:"1F44B-1F3FD",emoji:"👋🏽",text:"",type:1,order:191,group:1,subgroup:16,version:1,tone:3,shortCodes:["wave_tone3","waving_hand_tone3"]},{label:"waving hand: medium-dark skin tone",hexcode:"1F44B-1F3FE",emoji:"👋🏾",text:"",type:1,order:192,group:1,subgroup:16,version:1,tone:4,shortCodes:["wave_tone4","waving_hand_tone4"]},{label:"waving hand: dark skin tone",hexcode:"1F44B-1F3FF",emoji:"👋🏿",text:"",type:1,order:193,group:1,subgroup:16,version:1,tone:5,shortCodes:["wave_tone5","waving_hand_tone5"]}],shortCodes:["wave","waving_hand"]},{label:"raised back of hand",hexcode:"1F91A",tags:["back","backhand","hand","raised"],emoji:"🤚",text:"",type:1,order:194,group:1,subgroup:16,version:3,skins:[{label:"raised back of hand: light skin tone",hexcode:"1F91A-1F3FB",emoji:"🤚🏻",text:"",type:1,order:195,group:1,subgroup:16,version:3,tone:1,shortCodes:["raised_back_of_hand_tone1"]},{label:"raised back of hand: medium-light skin tone",hexcode:"1F91A-1F3FC",emoji:"🤚🏼",text:"",type:1,order:196,group:1,subgroup:16,version:3,tone:2,shortCodes:["raised_back_of_hand_tone2"]},{label:"raised back of hand: medium skin tone",hexcode:"1F91A-1F3FD",emoji:"🤚🏽",text:"",type:1,order:197,group:1,subgroup:16,version:3,tone:3,shortCodes:["raised_back_of_hand_tone3"]},{label:"raised back of hand: medium-dark skin tone",hexcode:"1F91A-1F3FE",emoji:"🤚🏾",text:"",type:1,order:198,group:1,subgroup:16,version:3,tone:4,shortCodes:["raised_back_of_hand_tone4"]},{label:"raised back of hand: dark skin tone",hexcode:"1F91A-1F3FF",emoji:"🤚🏿",text:"",type:1,order:199,group:1,subgroup:16,version:3,tone:5,shortCodes:["raised_back_of_hand_tone5"]}],shortCodes:["raised_back_of_hand"]},{label:"hand with fingers splayed",hexcode:"1F590",tags:["finger","fingers","hand","raised","splayed","stop"],emoji:"🖐️",text:"🖐︎",type:0,order:201,group:1,subgroup:16,version:.7,skins:[{label:"hand with fingers splayed: light skin tone",hexcode:"1F590-1F3FB",emoji:"🖐🏻",text:"",type:1,order:202,group:1,subgroup:16,version:1,tone:1,shortCodes:["raised_hand_with_fingers_splayed_tone1"]},{label:"hand with fingers splayed: medium-light skin tone",hexcode:"1F590-1F3FC",emoji:"🖐🏼",text:"",type:1,order:203,group:1,subgroup:16,version:1,tone:2,shortCodes:["raised_hand_with_fingers_splayed_tone2"]},{label:"hand with fingers splayed: medium skin tone",hexcode:"1F590-1F3FD",emoji:"🖐🏽",text:"",type:1,order:204,group:1,subgroup:16,version:1,tone:3,shortCodes:["raised_hand_with_fingers_splayed_tone3"]},{label:"hand with fingers splayed: medium-dark skin tone",hexcode:"1F590-1F3FE",emoji:"🖐🏾",text:"",type:1,order:205,group:1,subgroup:16,version:1,tone:4,shortCodes:["raised_hand_with_fingers_splayed_tone4"]},{label:"hand with fingers splayed: dark skin tone",hexcode:"1F590-1F3FF",emoji:"🖐🏿",text:"",type:1,order:206,group:1,subgroup:16,version:1,tone:5,shortCodes:["raised_hand_with_fingers_splayed_tone5"]}],shortCodes:["raised_hand_with_fingers_splayed"]},{label:"raised hand",hexcode:"270B",tags:["5","five","hand","high","raised","stop"],emoji:"✋️",text:"✋︎",type:1,order:207,group:1,subgroup:16,version:.6,skins:[{label:"raised hand: light skin tone",hexcode:"270B-1F3FB",emoji:"✋🏻",text:"",type:1,order:208,group:1,subgroup:16,version:1,tone:1,shortCodes:["high_five_tone1","raised_hand_tone1"]},{label:"raised hand: medium-light skin tone",hexcode:"270B-1F3FC",emoji:"✋🏼",text:"",type:1,order:209,group:1,subgroup:16,version:1,tone:2,shortCodes:["high_five_tone2","raised_hand_tone2"]},{label:"raised hand: medium skin tone",hexcode:"270B-1F3FD",emoji:"✋🏽",text:"",type:1,order:210,group:1,subgroup:16,version:1,tone:3,shortCodes:["high_five_tone3","raised_hand_tone3"]},{label:"raised hand: medium-dark skin tone",hexcode:"270B-1F3FE",emoji:"✋🏾",text:"",type:1,order:211,group:1,subgroup:16,version:1,tone:4,shortCodes:["high_five_tone4","raised_hand_tone4"]},{label:"raised hand: dark skin tone",hexcode:"270B-1F3FF",emoji:"✋🏿",text:"",type:1,order:212,group:1,subgroup:16,version:1,tone:5,shortCodes:["high_five_tone5","raised_hand_tone5"]}],shortCodes:["high_five","raised_hand"]},{label:"vulcan salute",hexcode:"1F596",tags:["finger","hand","hands","salute","vulcan"],emoji:"🖖",text:"",type:1,order:213,group:1,subgroup:16,version:1,skins:[{label:"vulcan salute: light skin tone",hexcode:"1F596-1F3FB",emoji:"🖖🏻",text:"",type:1,order:214,group:1,subgroup:16,version:1,tone:1,shortCodes:["vulcan_tone1"]},{label:"vulcan salute: medium-light skin tone",hexcode:"1F596-1F3FC",emoji:"🖖🏼",text:"",type:1,order:215,group:1,subgroup:16,version:1,tone:2,shortCodes:["vulcan_tone2"]},{label:"vulcan salute: medium skin tone",hexcode:"1F596-1F3FD",emoji:"🖖🏽",text:"",type:1,order:216,group:1,subgroup:16,version:1,tone:3,shortCodes:["vulcan_tone3"]},{label:"vulcan salute: medium-dark skin tone",hexcode:"1F596-1F3FE",emoji:"🖖🏾",text:"",type:1,order:217,group:1,subgroup:16,version:1,tone:4,shortCodes:["vulcan_tone4"]},{label:"vulcan salute: dark skin tone",hexcode:"1F596-1F3FF",emoji:"🖖🏿",text:"",type:1,order:218,group:1,subgroup:16,version:1,tone:5,shortCodes:["vulcan_tone5"]}],shortCodes:["vulcan"]},{label:"rightwards hand",hexcode:"1FAF1",tags:["hand","handshake","hold","reach","right","rightward","rightwards","shake"],emoji:"🫱",text:"",type:1,order:219,group:1,subgroup:16,version:14,skins:[{label:"rightwards hand: light skin tone",hexcode:"1FAF1-1F3FB",emoji:"🫱🏻",text:"",type:1,order:220,group:1,subgroup:16,version:14,tone:1,shortCodes:["rightwards_hand_tone1"]},{label:"rightwards hand: medium-light skin tone",hexcode:"1FAF1-1F3FC",emoji:"🫱🏼",text:"",type:1,order:221,group:1,subgroup:16,version:14,tone:2,shortCodes:["rightwards_hand_tone2"]},{label:"rightwards hand: medium skin tone",hexcode:"1FAF1-1F3FD",emoji:"🫱🏽",text:"",type:1,order:222,group:1,subgroup:16,version:14,tone:3,shortCodes:["rightwards_hand_tone3"]},{label:"rightwards hand: medium-dark skin tone",hexcode:"1FAF1-1F3FE",emoji:"🫱🏾",text:"",type:1,order:223,group:1,subgroup:16,version:14,tone:4,shortCodes:["rightwards_hand_tone4"]},{label:"rightwards hand: dark skin tone",hexcode:"1FAF1-1F3FF",emoji:"🫱🏿",text:"",type:1,order:224,group:1,subgroup:16,version:14,tone:5,shortCodes:["rightwards_hand_tone5"]}],shortCodes:["rightwards_hand"]},{label:"leftwards hand",hexcode:"1FAF2",tags:["hand","handshake","hold","left","leftward","leftwards","reach","shake"],emoji:"🫲",text:"",type:1,order:225,group:1,subgroup:16,version:14,skins:[{label:"leftwards hand: light skin tone",hexcode:"1FAF2-1F3FB",emoji:"🫲🏻",text:"",type:1,order:226,group:1,subgroup:16,version:14,tone:1,shortCodes:["leftwards_hand_tone1"]},{label:"leftwards hand: medium-light skin tone",hexcode:"1FAF2-1F3FC",emoji:"🫲🏼",text:"",type:1,order:227,group:1,subgroup:16,version:14,tone:2,shortCodes:["leftwards_hand_tone2"]},{label:"leftwards hand: medium skin tone",hexcode:"1FAF2-1F3FD",emoji:"🫲🏽",text:"",type:1,order:228,group:1,subgroup:16,version:14,tone:3,shortCodes:["leftwards_hand_tone3"]},{label:"leftwards hand: medium-dark skin tone",hexcode:"1FAF2-1F3FE",emoji:"🫲🏾",text:"",type:1,order:229,group:1,subgroup:16,version:14,tone:4,shortCodes:["leftwards_hand_tone4"]},{label:"leftwards hand: dark skin tone",hexcode:"1FAF2-1F3FF",emoji:"🫲🏿",text:"",type:1,order:230,group:1,subgroup:16,version:14,tone:5,shortCodes:["leftwards_hand_tone5"]}],shortCodes:["leftwards_hand"]},{label:"palm down hand",hexcode:"1FAF3",tags:["dismiss","down","drop","dropped","hand","palm","pick","shoo","up"],emoji:"🫳",text:"",type:1,order:231,group:1,subgroup:16,version:14,skins:[{label:"palm down hand: light skin tone",hexcode:"1FAF3-1F3FB",emoji:"🫳🏻",text:"",type:1,order:232,group:1,subgroup:16,version:14,tone:1,shortCodes:["palm_down_tone1"]},{label:"palm down hand: medium-light skin tone",hexcode:"1FAF3-1F3FC",emoji:"🫳🏼",text:"",type:1,order:233,group:1,subgroup:16,version:14,tone:2,shortCodes:["palm_down_tone2"]},{label:"palm down hand: medium skin tone",hexcode:"1FAF3-1F3FD",emoji:"🫳🏽",text:"",type:1,order:234,group:1,subgroup:16,version:14,tone:3,shortCodes:["palm_down_tone3"]},{label:"palm down hand: medium-dark skin tone",hexcode:"1FAF3-1F3FE",emoji:"🫳🏾",text:"",type:1,order:235,group:1,subgroup:16,version:14,tone:4,shortCodes:["palm_down_tone4"]},{label:"palm down hand: dark skin tone",hexcode:"1FAF3-1F3FF",emoji:"🫳🏿",text:"",type:1,order:236,group:1,subgroup:16,version:14,tone:5,shortCodes:["palm_down_tone5"]}],shortCodes:["palm_down"]},{label:"palm up hand",hexcode:"1FAF4",tags:["beckon","catch","come","hand","hold","know","lift","me","offer","palm","tell"],emoji:"🫴",text:"",type:1,order:237,group:1,subgroup:16,version:14,skins:[{label:"palm up hand: light skin tone",hexcode:"1FAF4-1F3FB",emoji:"🫴🏻",text:"",type:1,order:238,group:1,subgroup:16,version:14,tone:1,shortCodes:["palm_up_tone1"]},{label:"palm up hand: medium-light skin tone",hexcode:"1FAF4-1F3FC",emoji:"🫴🏼",text:"",type:1,order:239,group:1,subgroup:16,version:14,tone:2,shortCodes:["palm_up_tone2"]},{label:"palm up hand: medium skin tone",hexcode:"1FAF4-1F3FD",emoji:"🫴🏽",text:"",type:1,order:240,group:1,subgroup:16,version:14,tone:3,shortCodes:["palm_up_tone3"]},{label:"palm up hand: medium-dark skin tone",hexcode:"1FAF4-1F3FE",emoji:"🫴🏾",text:"",type:1,order:241,group:1,subgroup:16,version:14,tone:4,shortCodes:["palm_up_tone4"]},{label:"palm up hand: dark skin tone",hexcode:"1FAF4-1F3FF",emoji:"🫴🏿",text:"",type:1,order:242,group:1,subgroup:16,version:14,tone:5,shortCodes:["palm_up_tone5"]}],shortCodes:["palm_up"]},{label:"leftwards pushing hand",hexcode:"1FAF7",tags:["block","five","halt","hand","high","hold","leftward","leftwards","pause","push","pushing","refuse","slap","stop","wait"],emoji:"🫷",text:"",type:1,order:243,group:1,subgroup:16,version:15,skins:[{label:"leftwards pushing hand: light skin tone",hexcode:"1FAF7-1F3FB",emoji:"🫷🏻",text:"",type:1,order:244,group:1,subgroup:16,version:15,tone:1,shortCodes:["leftwards_pushing_hand_tone1"]},{label:"leftwards pushing hand: medium-light skin tone",hexcode:"1FAF7-1F3FC",emoji:"🫷🏼",text:"",type:1,order:245,group:1,subgroup:16,version:15,tone:2,shortCodes:["leftwards_pushing_hand_tone2"]},{label:"leftwards pushing hand: medium skin tone",hexcode:"1FAF7-1F3FD",emoji:"🫷🏽",text:"",type:1,order:246,group:1,subgroup:16,version:15,tone:3,shortCodes:["leftwards_pushing_hand_tone3"]},{label:"leftwards pushing hand: medium-dark skin tone",hexcode:"1FAF7-1F3FE",emoji:"🫷🏾",text:"",type:1,order:247,group:1,subgroup:16,version:15,tone:4,shortCodes:["leftwards_pushing_hand_tone4"]},{label:"leftwards pushing hand: dark skin tone",hexcode:"1FAF7-1F3FF",emoji:"🫷🏿",text:"",type:1,order:248,group:1,subgroup:16,version:15,tone:5,shortCodes:["leftwards_pushing_hand_tone5"]}],shortCodes:["leftwards_pushing_hand"]},{label:"rightwards pushing hand",hexcode:"1FAF8",tags:["block","five","halt","hand","high","hold","pause","push","pushing","refuse","rightward","rightwards","slap","stop","wait"],emoji:"🫸",text:"",type:1,order:249,group:1,subgroup:16,version:15,skins:[{label:"rightwards pushing hand: light skin tone",hexcode:"1FAF8-1F3FB",emoji:"🫸🏻",text:"",type:1,order:250,group:1,subgroup:16,version:15,tone:1,shortCodes:["rightwards_pushing_hand_tone1"]},{label:"rightwards pushing hand: medium-light skin tone",hexcode:"1FAF8-1F3FC",emoji:"🫸🏼",text:"",type:1,order:251,group:1,subgroup:16,version:15,tone:2,shortCodes:["rightwards_pushing_hand_tone2"]},{label:"rightwards pushing hand: medium skin tone",hexcode:"1FAF8-1F3FD",emoji:"🫸🏽",text:"",type:1,order:252,group:1,subgroup:16,version:15,tone:3,shortCodes:["rightwards_pushing_hand_tone3"]},{label:"rightwards pushing hand: medium-dark skin tone",hexcode:"1FAF8-1F3FE",emoji:"🫸🏾",text:"",type:1,order:253,group:1,subgroup:16,version:15,tone:4,shortCodes:["rightwards_pushing_hand_tone4"]},{label:"rightwards pushing hand: dark skin tone",hexcode:"1FAF8-1F3FF",emoji:"🫸🏿",text:"",type:1,order:254,group:1,subgroup:16,version:15,tone:5,shortCodes:["rightwards_pushing_hand_tone5"]}],shortCodes:["rightwards_pushing_hand"]},{label:"OK hand",hexcode:"1F44C",tags:["awesome","bet","dope","fleek","fosho","got","gotcha","hand","legit","ok","okay","pinch","rad","sure","sweet","three"],emoji:"👌",text:"",type:1,order:255,group:1,subgroup:17,version:.6,skins:[{label:"OK hand: light skin tone",hexcode:"1F44C-1F3FB",emoji:"👌🏻",text:"",type:1,order:256,group:1,subgroup:17,version:1,tone:1,shortCodes:["ok_hand_tone1"]},{label:"OK hand: medium-light skin tone",hexcode:"1F44C-1F3FC",emoji:"👌🏼",text:"",type:1,order:257,group:1,subgroup:17,version:1,tone:2,shortCodes:["ok_hand_tone2"]},{label:"OK hand: medium skin tone",hexcode:"1F44C-1F3FD",emoji:"👌🏽",text:"",type:1,order:258,group:1,subgroup:17,version:1,tone:3,shortCodes:["ok_hand_tone3"]},{label:"OK hand: medium-dark skin tone",hexcode:"1F44C-1F3FE",emoji:"👌🏾",text:"",type:1,order:259,group:1,subgroup:17,version:1,tone:4,shortCodes:["ok_hand_tone4"]},{label:"OK hand: dark skin tone",hexcode:"1F44C-1F3FF",emoji:"👌🏿",text:"",type:1,order:260,group:1,subgroup:17,version:1,tone:5,shortCodes:["ok_hand_tone5"]}],shortCodes:["ok_hand"]},{label:"pinched fingers",hexcode:"1F90C",tags:["fingers","gesture","hand","hold","huh","interrogation","patience","pinched","relax","sarcastic","ugh","what","zip"],emoji:"🤌",text:"",type:1,order:261,group:1,subgroup:17,version:13,skins:[{label:"pinched fingers: light skin tone",hexcode:"1F90C-1F3FB",emoji:"🤌🏻",text:"",type:1,order:262,group:1,subgroup:17,version:13,tone:1,shortCodes:["pinch_tone1","pinched_fingers_tone1"]},{label:"pinched fingers: medium-light skin tone",hexcode:"1F90C-1F3FC",emoji:"🤌🏼",text:"",type:1,order:263,group:1,subgroup:17,version:13,tone:2,shortCodes:["pinch_tone2","pinched_fingers_tone2"]},{label:"pinched fingers: medium skin tone",hexcode:"1F90C-1F3FD",emoji:"🤌🏽",text:"",type:1,order:264,group:1,subgroup:17,version:13,tone:3,shortCodes:["pinch_tone3","pinched_fingers_tone3"]},{label:"pinched fingers: medium-dark skin tone",hexcode:"1F90C-1F3FE",emoji:"🤌🏾",text:"",type:1,order:265,group:1,subgroup:17,version:13,tone:4,shortCodes:["pinch_tone4","pinched_fingers_tone4"]},{label:"pinched fingers: dark skin tone",hexcode:"1F90C-1F3FF",emoji:"🤌🏿",text:"",type:1,order:266,group:1,subgroup:17,version:13,tone:5,shortCodes:["pinch_tone5","pinched_fingers_tone5"]}],shortCodes:["pinch","pinched_fingers"]},{label:"pinching hand",hexcode:"1F90F",tags:["amount","bit","fingers","hand","little","pinching","small","sort"],emoji:"🤏",text:"",type:1,order:267,group:1,subgroup:17,version:12,skins:[{label:"pinching hand: light skin tone",hexcode:"1F90F-1F3FB",emoji:"🤏🏻",text:"",type:1,order:268,group:1,subgroup:17,version:12,tone:1,shortCodes:["pinching_hand_tone1"]},{label:"pinching hand: medium-light skin tone",hexcode:"1F90F-1F3FC",emoji:"🤏🏼",text:"",type:1,order:269,group:1,subgroup:17,version:12,tone:2,shortCodes:["pinching_hand_tone2"]},{label:"pinching hand: medium skin tone",hexcode:"1F90F-1F3FD",emoji:"🤏🏽",text:"",type:1,order:270,group:1,subgroup:17,version:12,tone:3,shortCodes:["pinching_hand_tone3"]},{label:"pinching hand: medium-dark skin tone",hexcode:"1F90F-1F3FE",emoji:"🤏🏾",text:"",type:1,order:271,group:1,subgroup:17,version:12,tone:4,shortCodes:["pinching_hand_tone4"]},{label:"pinching hand: dark skin tone",hexcode:"1F90F-1F3FF",emoji:"🤏🏿",text:"",type:1,order:272,group:1,subgroup:17,version:12,tone:5,shortCodes:["pinching_hand_tone5"]}],shortCodes:["pinching_hand"]},{label:"victory hand",hexcode:"270C",tags:["hand","peace","v","victory"],emoji:"✌️",text:"✌︎",type:0,order:274,group:1,subgroup:17,version:.6,skins:[{label:"victory hand: light skin tone",hexcode:"270C-1F3FB",emoji:"✌🏻",text:"",type:1,order:275,group:1,subgroup:17,version:1,tone:1,shortCodes:["v_tone1","victory_tone1"]},{label:"victory hand: medium-light skin tone",hexcode:"270C-1F3FC",emoji:"✌🏼",text:"",type:1,order:276,group:1,subgroup:17,version:1,tone:2,shortCodes:["v_tone2","victory_tone2"]},{label:"victory hand: medium skin tone",hexcode:"270C-1F3FD",emoji:"✌🏽",text:"",type:1,order:277,group:1,subgroup:17,version:1,tone:3,shortCodes:["v_tone3","victory_tone3"]},{label:"victory hand: medium-dark skin tone",hexcode:"270C-1F3FE",emoji:"✌🏾",text:"",type:1,order:278,group:1,subgroup:17,version:1,tone:4,shortCodes:["v_tone4","victory_tone4"]},{label:"victory hand: dark skin tone",hexcode:"270C-1F3FF",emoji:"✌🏿",text:"",type:1,order:279,group:1,subgroup:17,version:1,tone:5,shortCodes:["v_tone5","victory_tone5"]}],shortCodes:["v","victory"]},{label:"crossed fingers",hexcode:"1F91E",tags:["cross","crossed","finger","fingers","hand","luck"],emoji:"🤞",text:"",type:1,order:280,group:1,subgroup:17,version:3,skins:[{label:"crossed fingers: light skin tone",hexcode:"1F91E-1F3FB",emoji:"🤞🏻",text:"",type:1,order:281,group:1,subgroup:17,version:3,tone:1,shortCodes:["fingers_crossed_tone1"]},{label:"crossed fingers: medium-light skin tone",hexcode:"1F91E-1F3FC",emoji:"🤞🏼",text:"",type:1,order:282,group:1,subgroup:17,version:3,tone:2,shortCodes:["fingers_crossed_tone2"]},{label:"crossed fingers: medium skin tone",hexcode:"1F91E-1F3FD",emoji:"🤞🏽",text:"",type:1,order:283,group:1,subgroup:17,version:3,tone:3,shortCodes:["fingers_crossed_tone3"]},{label:"crossed fingers: medium-dark skin tone",hexcode:"1F91E-1F3FE",emoji:"🤞🏾",text:"",type:1,order:284,group:1,subgroup:17,version:3,tone:4,shortCodes:["fingers_crossed_tone4"]},{label:"crossed fingers: dark skin tone",hexcode:"1F91E-1F3FF",emoji:"🤞🏿",text:"",type:1,order:285,group:1,subgroup:17,version:3,tone:5,shortCodes:["fingers_crossed_tone5"]}],shortCodes:["fingers_crossed"]},{label:"hand with index finger and thumb crossed",hexcode:"1FAF0",tags:["<3","crossed","expensive","finger","hand","heart","index","love","money","snap","thumb"],emoji:"🫰",text:"",type:1,order:286,group:1,subgroup:17,version:14,skins:[{label:"hand with index finger and thumb crossed: light skin tone",hexcode:"1FAF0-1F3FB",emoji:"🫰🏻",text:"",type:1,order:287,group:1,subgroup:17,version:14,tone:1,shortCodes:["hand_with_index_finger_and_thumb_crossed_tone1"]},{label:"hand with index finger and thumb crossed: medium-light skin tone",hexcode:"1FAF0-1F3FC",emoji:"🫰🏼",text:"",type:1,order:288,group:1,subgroup:17,version:14,tone:2,shortCodes:["hand_with_index_finger_and_thumb_crossed_tone2"]},{label:"hand with index finger and thumb crossed: medium skin tone",hexcode:"1FAF0-1F3FD",emoji:"🫰🏽",text:"",type:1,order:289,group:1,subgroup:17,version:14,tone:3,shortCodes:["hand_with_index_finger_and_thumb_crossed_tone3"]},{label:"hand with index finger and thumb crossed: medium-dark skin tone",hexcode:"1FAF0-1F3FE",emoji:"🫰🏾",text:"",type:1,order:290,group:1,subgroup:17,version:14,tone:4,shortCodes:["hand_with_index_finger_and_thumb_crossed_tone4"]},{label:"hand with index finger and thumb crossed: dark skin tone",hexcode:"1FAF0-1F3FF",emoji:"🫰🏿",text:"",type:1,order:291,group:1,subgroup:17,version:14,tone:5,shortCodes:["hand_with_index_finger_and_thumb_crossed_tone5"]}],shortCodes:["hand_with_index_finger_and_thumb_crossed"]},{label:"love-you gesture",hexcode:"1F91F",tags:["fingers","gesture","hand","ily","love","love-you","three","you"],emoji:"🤟",text:"",type:1,order:292,group:1,subgroup:17,version:5,skins:[{label:"love-you gesture: light skin tone",hexcode:"1F91F-1F3FB",emoji:"🤟🏻",text:"",type:1,order:293,group:1,subgroup:17,version:5,tone:1,shortCodes:["love_you_gesture_tone1"]},{label:"love-you gesture: medium-light skin tone",hexcode:"1F91F-1F3FC",emoji:"🤟🏼",text:"",type:1,order:294,group:1,subgroup:17,version:5,tone:2,shortCodes:["love_you_gesture_tone2"]},{label:"love-you gesture: medium skin tone",hexcode:"1F91F-1F3FD",emoji:"🤟🏽",text:"",type:1,order:295,group:1,subgroup:17,version:5,tone:3,shortCodes:["love_you_gesture_tone3"]},{label:"love-you gesture: medium-dark skin tone",hexcode:"1F91F-1F3FE",emoji:"🤟🏾",text:"",type:1,order:296,group:1,subgroup:17,version:5,tone:4,shortCodes:["love_you_gesture_tone4"]},{label:"love-you gesture: dark skin tone",hexcode:"1F91F-1F3FF",emoji:"🤟🏿",text:"",type:1,order:297,group:1,subgroup:17,version:5,tone:5,shortCodes:["love_you_gesture_tone5"]}],shortCodes:["love_you_gesture"]},{label:"sign of the horns",hexcode:"1F918",tags:["finger","hand","horns","rock-on","sign"],emoji:"🤘",text:"",type:1,order:298,group:1,subgroup:17,version:1,emoticon:["\\m/","\\M/"],skins:[{label:"sign of the horns: light skin tone",hexcode:"1F918-1F3FB",emoji:"🤘🏻",text:"",type:1,order:299,group:1,subgroup:17,version:1,tone:1,shortCodes:["metal_tone1","sign_of_the_horns_tone1"]},{label:"sign of the horns: medium-light skin tone",hexcode:"1F918-1F3FC",emoji:"🤘🏼",text:"",type:1,order:300,group:1,subgroup:17,version:1,tone:2,shortCodes:["metal_tone2","sign_of_the_horns_tone2"]},{label:"sign of the horns: medium skin tone",hexcode:"1F918-1F3FD",emoji:"🤘🏽",text:"",type:1,order:301,group:1,subgroup:17,version:1,tone:3,shortCodes:["metal_tone3","sign_of_the_horns_tone3"]},{label:"sign of the horns: medium-dark skin tone",hexcode:"1F918-1F3FE",emoji:"🤘🏾",text:"",type:1,order:302,group:1,subgroup:17,version:1,tone:4,shortCodes:["metal_tone4","sign_of_the_horns_tone4"]},{label:"sign of the horns: dark skin tone",hexcode:"1F918-1F3FF",emoji:"🤘🏿",text:"",type:1,order:303,group:1,subgroup:17,version:1,tone:5,shortCodes:["metal_tone5","sign_of_the_horns_tone5"]}],shortCodes:["metal","sign_of_the_horns"]},{label:"call me hand",hexcode:"1F919",tags:["call","hand","hang","loose","me","shaka"],emoji:"🤙",text:"",type:1,order:304,group:1,subgroup:17,version:3,skins:[{label:"call me hand: light skin tone",hexcode:"1F919-1F3FB",emoji:"🤙🏻",text:"",type:1,order:305,group:1,subgroup:17,version:3,tone:1,shortCodes:["call_me_hand_tone1"]},{label:"call me hand: medium-light skin tone",hexcode:"1F919-1F3FC",emoji:"🤙🏼",text:"",type:1,order:306,group:1,subgroup:17,version:3,tone:2,shortCodes:["call_me_hand_tone2"]},{label:"call me hand: medium skin tone",hexcode:"1F919-1F3FD",emoji:"🤙🏽",text:"",type:1,order:307,group:1,subgroup:17,version:3,tone:3,shortCodes:["call_me_hand_tone3"]},{label:"call me hand: medium-dark skin tone",hexcode:"1F919-1F3FE",emoji:"🤙🏾",text:"",type:1,order:308,group:1,subgroup:17,version:3,tone:4,shortCodes:["call_me_hand_tone4"]},{label:"call me hand: dark skin tone",hexcode:"1F919-1F3FF",emoji:"🤙🏿",text:"",type:1,order:309,group:1,subgroup:17,version:3,tone:5,shortCodes:["call_me_hand_tone5"]}],shortCodes:["call_me_hand"]},{label:"backhand index pointing left",hexcode:"1F448",tags:["backhand","finger","hand","index","left","point","pointing"],emoji:"👈️",text:"👈︎",type:1,order:310,group:1,subgroup:18,version:.6,skins:[{label:"backhand index pointing left: light skin tone",hexcode:"1F448-1F3FB",emoji:"👈🏻",text:"",type:1,order:311,group:1,subgroup:18,version:1,tone:1,shortCodes:["point_left_tone1"]},{label:"backhand index pointing left: medium-light skin tone",hexcode:"1F448-1F3FC",emoji:"👈🏼",text:"",type:1,order:312,group:1,subgroup:18,version:1,tone:2,shortCodes:["point_left_tone2"]},{label:"backhand index pointing left: medium skin tone",hexcode:"1F448-1F3FD",emoji:"👈🏽",text:"",type:1,order:313,group:1,subgroup:18,version:1,tone:3,shortCodes:["point_left_tone3"]},{label:"backhand index pointing left: medium-dark skin tone",hexcode:"1F448-1F3FE",emoji:"👈🏾",text:"",type:1,order:314,group:1,subgroup:18,version:1,tone:4,shortCodes:["point_left_tone4"]},{label:"backhand index pointing left: dark skin tone",hexcode:"1F448-1F3FF",emoji:"👈🏿",text:"",type:1,order:315,group:1,subgroup:18,version:1,tone:5,shortCodes:["point_left_tone5"]}],shortCodes:["point_left"]},{label:"backhand index pointing right",hexcode:"1F449",tags:["backhand","finger","hand","index","point","pointing","right"],emoji:"👉️",text:"👉︎",type:1,order:316,group:1,subgroup:18,version:.6,skins:[{label:"backhand index pointing right: light skin tone",hexcode:"1F449-1F3FB",emoji:"👉🏻",text:"",type:1,order:317,group:1,subgroup:18,version:1,tone:1,shortCodes:["point_right_tone1"]},{label:"backhand index pointing right: medium-light skin tone",hexcode:"1F449-1F3FC",emoji:"👉🏼",text:"",type:1,order:318,group:1,subgroup:18,version:1,tone:2,shortCodes:["point_right_tone2"]},{label:"backhand index pointing right: medium skin tone",hexcode:"1F449-1F3FD",emoji:"👉🏽",text:"",type:1,order:319,group:1,subgroup:18,version:1,tone:3,shortCodes:["point_right_tone3"]},{label:"backhand index pointing right: medium-dark skin tone",hexcode:"1F449-1F3FE",emoji:"👉🏾",text:"",type:1,order:320,group:1,subgroup:18,version:1,tone:4,shortCodes:["point_right_tone4"]},{label:"backhand index pointing right: dark skin tone",hexcode:"1F449-1F3FF",emoji:"👉🏿",text:"",type:1,order:321,group:1,subgroup:18,version:1,tone:5,shortCodes:["point_right_tone5"]}],shortCodes:["point_right"]},{label:"backhand index pointing up",hexcode:"1F446",tags:["backhand","finger","hand","index","point","pointing","up"],emoji:"👆️",text:"👆︎",type:1,order:322,group:1,subgroup:18,version:.6,skins:[{label:"backhand index pointing up: light skin tone",hexcode:"1F446-1F3FB",emoji:"👆🏻",text:"",type:1,order:323,group:1,subgroup:18,version:1,tone:1,shortCodes:["point_up_tone1"]},{label:"backhand index pointing up: medium-light skin tone",hexcode:"1F446-1F3FC",emoji:"👆🏼",text:"",type:1,order:324,group:1,subgroup:18,version:1,tone:2,shortCodes:["point_up_tone2"]},{label:"backhand index pointing up: medium skin tone",hexcode:"1F446-1F3FD",emoji:"👆🏽",text:"",type:1,order:325,group:1,subgroup:18,version:1,tone:3,shortCodes:["point_up_tone3"]},{label:"backhand index pointing up: medium-dark skin tone",hexcode:"1F446-1F3FE",emoji:"👆🏾",text:"",type:1,order:326,group:1,subgroup:18,version:1,tone:4,shortCodes:["point_up_tone4"]},{label:"backhand index pointing up: dark skin tone",hexcode:"1F446-1F3FF",emoji:"👆🏿",text:"",type:1,order:327,group:1,subgroup:18,version:1,tone:5,shortCodes:["point_up_tone5"]}],shortCodes:["point_up"]},{label:"middle finger",hexcode:"1F595",tags:["finger","hand","middle"],emoji:"🖕",text:"",type:1,order:328,group:1,subgroup:18,version:1,skins:[{label:"middle finger: light skin tone",hexcode:"1F595-1F3FB",emoji:"🖕🏻",text:"",type:1,order:329,group:1,subgroup:18,version:1,tone:1,shortCodes:["middle_finger_tone1"]},{label:"middle finger: medium-light skin tone",hexcode:"1F595-1F3FC",emoji:"🖕🏼",text:"",type:1,order:330,group:1,subgroup:18,version:1,tone:2,shortCodes:["middle_finger_tone2"]},{label:"middle finger: medium skin tone",hexcode:"1F595-1F3FD",emoji:"🖕🏽",text:"",type:1,order:331,group:1,subgroup:18,version:1,tone:3,shortCodes:["middle_finger_tone3"]},{label:"middle finger: medium-dark skin tone",hexcode:"1F595-1F3FE",emoji:"🖕🏾",text:"",type:1,order:332,group:1,subgroup:18,version:1,tone:4,shortCodes:["middle_finger_tone4"]},{label:"middle finger: dark skin tone",hexcode:"1F595-1F3FF",emoji:"🖕🏿",text:"",type:1,order:333,group:1,subgroup:18,version:1,tone:5,shortCodes:["middle_finger_tone5"]}],shortCodes:["middle_finger"]},{label:"backhand index pointing down",hexcode:"1F447",tags:["backhand","down","finger","hand","index","point","pointing"],emoji:"👇️",text:"👇︎",type:1,order:334,group:1,subgroup:18,version:.6,skins:[{label:"backhand index pointing down: light skin tone",hexcode:"1F447-1F3FB",emoji:"👇🏻",text:"",type:1,order:335,group:1,subgroup:18,version:1,tone:1,shortCodes:["point_down_tone1"]},{label:"backhand index pointing down: medium-light skin tone",hexcode:"1F447-1F3FC",emoji:"👇🏼",text:"",type:1,order:336,group:1,subgroup:18,version:1,tone:2,shortCodes:["point_down_tone2"]},{label:"backhand index pointing down: medium skin tone",hexcode:"1F447-1F3FD",emoji:"👇🏽",text:"",type:1,order:337,group:1,subgroup:18,version:1,tone:3,shortCodes:["point_down_tone3"]},{label:"backhand index pointing down: medium-dark skin tone",hexcode:"1F447-1F3FE",emoji:"👇🏾",text:"",type:1,order:338,group:1,subgroup:18,version:1,tone:4,shortCodes:["point_down_tone4"]},{label:"backhand index pointing down: dark skin tone",hexcode:"1F447-1F3FF",emoji:"👇🏿",text:"",type:1,order:339,group:1,subgroup:18,version:1,tone:5,shortCodes:["point_down_tone5"]}],shortCodes:["point_down"]},{label:"index pointing up",hexcode:"261D",tags:["finger","hand","index","point","pointing","this","up"],emoji:"☝️",text:"☝︎",type:0,order:341,group:1,subgroup:18,version:.6,skins:[{label:"index pointing up: light skin tone",hexcode:"261D-1F3FB",emoji:"☝🏻",text:"",type:1,order:342,group:1,subgroup:18,version:1,tone:1,shortCodes:["point_up_2_tone1"]},{label:"index pointing up: medium-light skin tone",hexcode:"261D-1F3FC",emoji:"☝🏼",text:"",type:1,order:343,group:1,subgroup:18,version:1,tone:2,shortCodes:["point_up_2_tone2"]},{label:"index pointing up: medium skin tone",hexcode:"261D-1F3FD",emoji:"☝🏽",text:"",type:1,order:344,group:1,subgroup:18,version:1,tone:3,shortCodes:["point_up_2_tone3"]},{label:"index pointing up: medium-dark skin tone",hexcode:"261D-1F3FE",emoji:"☝🏾",text:"",type:1,order:345,group:1,subgroup:18,version:1,tone:4,shortCodes:["point_up_2_tone4"]},{label:"index pointing up: dark skin tone",hexcode:"261D-1F3FF",emoji:"☝🏿",text:"",type:1,order:346,group:1,subgroup:18,version:1,tone:5,shortCodes:["point_up_2_tone5"]}],shortCodes:["point_up_2"]},{label:"index pointing at the viewer",hexcode:"1FAF5",tags:["at","finger","hand","index","pointing","poke","viewer","you"],emoji:"🫵",text:"",type:1,order:347,group:1,subgroup:18,version:14,skins:[{label:"index pointing at the viewer: light skin tone",hexcode:"1FAF5-1F3FB",emoji:"🫵🏻",text:"",type:1,order:348,group:1,subgroup:18,version:14,tone:1,shortCodes:["point_forward_tone1"]},{label:"index pointing at the viewer: medium-light skin tone",hexcode:"1FAF5-1F3FC",emoji:"🫵🏼",text:"",type:1,order:349,group:1,subgroup:18,version:14,tone:2,shortCodes:["point_forward_tone2"]},{label:"index pointing at the viewer: medium skin tone",hexcode:"1FAF5-1F3FD",emoji:"🫵🏽",text:"",type:1,order:350,group:1,subgroup:18,version:14,tone:3,shortCodes:["point_forward_tone3"]},{label:"index pointing at the viewer: medium-dark skin tone",hexcode:"1FAF5-1F3FE",emoji:"🫵🏾",text:"",type:1,order:351,group:1,subgroup:18,version:14,tone:4,shortCodes:["point_forward_tone4"]},{label:"index pointing at the viewer: dark skin tone",hexcode:"1FAF5-1F3FF",emoji:"🫵🏿",text:"",type:1,order:352,group:1,subgroup:18,version:14,tone:5,shortCodes:["point_forward_tone5"]}],shortCodes:["point_forward"]},{label:"thumbs up",hexcode:"1F44D",tags:["+1","good","hand","like","thumb","up","yes"],emoji:"👍️",text:"👍︎",type:1,order:353,group:1,subgroup:19,version:.6,skins:[{label:"thumbs up: light skin tone",hexcode:"1F44D-1F3FB",emoji:"👍🏻",text:"",type:1,order:354,group:1,subgroup:19,version:1,tone:1,shortCodes:["+1_tone1","thumbsup_tone1","yes_tone1"]},{label:"thumbs up: medium-light skin tone",hexcode:"1F44D-1F3FC",emoji:"👍🏼",text:"",type:1,order:355,group:1,subgroup:19,version:1,tone:2,shortCodes:["+1_tone2","thumbsup_tone2","yes_tone2"]},{label:"thumbs up: medium skin tone",hexcode:"1F44D-1F3FD",emoji:"👍🏽",text:"",type:1,order:356,group:1,subgroup:19,version:1,tone:3,shortCodes:["+1_tone3","thumbsup_tone3","yes_tone3"]},{label:"thumbs up: medium-dark skin tone",hexcode:"1F44D-1F3FE",emoji:"👍🏾",text:"",type:1,order:357,group:1,subgroup:19,version:1,tone:4,shortCodes:["+1_tone4","thumbsup_tone4","yes_tone4"]},{label:"thumbs up: dark skin tone",hexcode:"1F44D-1F3FF",emoji:"👍🏿",text:"",type:1,order:358,group:1,subgroup:19,version:1,tone:5,shortCodes:["+1_tone5","thumbsup_tone5","yes_tone5"]}],shortCodes:["+1","thumbsup","yes"]},{label:"thumbs down",hexcode:"1F44E",tags:["-1","bad","dislike","down","good","hand","no","nope","thumb","thumbs"],emoji:"👎️",text:"👎︎",type:1,order:359,group:1,subgroup:19,version:.6,skins:[{label:"thumbs down: light skin tone",hexcode:"1F44E-1F3FB",emoji:"👎🏻",text:"",type:1,order:360,group:1,subgroup:19,version:1,tone:1,shortCodes:["-1_tone1","no_tone1","thumbsdown_tone1"]},{label:"thumbs down: medium-light skin tone",hexcode:"1F44E-1F3FC",emoji:"👎🏼",text:"",type:1,order:361,group:1,subgroup:19,version:1,tone:2,shortCodes:["-1_tone2","no_tone2","thumbsdown_tone2"]},{label:"thumbs down: medium skin tone",hexcode:"1F44E-1F3FD",emoji:"👎🏽",text:"",type:1,order:362,group:1,subgroup:19,version:1,tone:3,shortCodes:["-1_tone3","no_tone3","thumbsdown_tone3"]},{label:"thumbs down: medium-dark skin tone",hexcode:"1F44E-1F3FE",emoji:"👎🏾",text:"",type:1,order:363,group:1,subgroup:19,version:1,tone:4,shortCodes:["-1_tone4","no_tone4","thumbsdown_tone4"]},{label:"thumbs down: dark skin tone",hexcode:"1F44E-1F3FF",emoji:"👎🏿",text:"",type:1,order:364,group:1,subgroup:19,version:1,tone:5,shortCodes:["-1_tone5","no_tone5","thumbsdown_tone5"]}],shortCodes:["-1","no","thumbsdown"]},{label:"raised fist",hexcode:"270A",tags:["clenched","fist","hand","punch","raised","solidarity"],emoji:"✊️",text:"✊︎",type:1,order:365,group:1,subgroup:19,version:.6,skins:[{label:"raised fist: light skin tone",hexcode:"270A-1F3FB",emoji:"✊🏻",text:"",type:1,order:366,group:1,subgroup:19,version:1,tone:1,shortCodes:["fist_tone1"]},{label:"raised fist: medium-light skin tone",hexcode:"270A-1F3FC",emoji:"✊🏼",text:"",type:1,order:367,group:1,subgroup:19,version:1,tone:2,shortCodes:["fist_tone2"]},{label:"raised fist: medium skin tone",hexcode:"270A-1F3FD",emoji:"✊🏽",text:"",type:1,order:368,group:1,subgroup:19,version:1,tone:3,shortCodes:["fist_tone3"]},{label:"raised fist: medium-dark skin tone",hexcode:"270A-1F3FE",emoji:"✊🏾",text:"",type:1,order:369,group:1,subgroup:19,version:1,tone:4,shortCodes:["fist_tone4"]},{label:"raised fist: dark skin tone",hexcode:"270A-1F3FF",emoji:"✊🏿",text:"",type:1,order:370,group:1,subgroup:19,version:1,tone:5,shortCodes:["fist_tone5"]}],shortCodes:["fist"]},{label:"oncoming fist",hexcode:"1F44A",tags:["absolutely","agree","boom","bro","bruh","bump","clenched","correct","fist","hand","knuckle","oncoming","pound","punch","rock","ttyl"],emoji:"👊",text:"",type:1,order:371,group:1,subgroup:19,version:.6,skins:[{label:"oncoming fist: light skin tone",hexcode:"1F44A-1F3FB",emoji:"👊🏻",text:"",type:1,order:372,group:1,subgroup:19,version:1,tone:1,shortCodes:["punch_tone1"]},{label:"oncoming fist: medium-light skin tone",hexcode:"1F44A-1F3FC",emoji:"👊🏼",text:"",type:1,order:373,group:1,subgroup:19,version:1,tone:2,shortCodes:["punch_tone2"]},{label:"oncoming fist: medium skin tone",hexcode:"1F44A-1F3FD",emoji:"👊🏽",text:"",type:1,order:374,group:1,subgroup:19,version:1,tone:3,shortCodes:["punch_tone3"]},{label:"oncoming fist: medium-dark skin tone",hexcode:"1F44A-1F3FE",emoji:"👊🏾",text:"",type:1,order:375,group:1,subgroup:19,version:1,tone:4,shortCodes:["punch_tone4"]},{label:"oncoming fist: dark skin tone",hexcode:"1F44A-1F3FF",emoji:"👊🏿",text:"",type:1,order:376,group:1,subgroup:19,version:1,tone:5,shortCodes:["punch_tone5"]}],shortCodes:["punch"]},{label:"left-facing fist",hexcode:"1F91B",tags:["fist","left-facing","leftwards"],emoji:"🤛",text:"",type:1,order:377,group:1,subgroup:19,version:3,skins:[{label:"left-facing fist: light skin tone",hexcode:"1F91B-1F3FB",emoji:"🤛🏻",text:"",type:1,order:378,group:1,subgroup:19,version:3,tone:1,shortCodes:["left_facing_fist_tone1"]},{label:"left-facing fist: medium-light skin tone",hexcode:"1F91B-1F3FC",emoji:"🤛🏼",text:"",type:1,order:379,group:1,subgroup:19,version:3,tone:2,shortCodes:["left_facing_fist_tone2"]},{label:"left-facing fist: medium skin tone",hexcode:"1F91B-1F3FD",emoji:"🤛🏽",text:"",type:1,order:380,group:1,subgroup:19,version:3,tone:3,shortCodes:["left_facing_fist_tone3"]},{label:"left-facing fist: medium-dark skin tone",hexcode:"1F91B-1F3FE",emoji:"🤛🏾",text:"",type:1,order:381,group:1,subgroup:19,version:3,tone:4,shortCodes:["left_facing_fist_tone4"]},{label:"left-facing fist: dark skin tone",hexcode:"1F91B-1F3FF",emoji:"🤛🏿",text:"",type:1,order:382,group:1,subgroup:19,version:3,tone:5,shortCodes:["left_facing_fist_tone5"]}],shortCodes:["left_facing_fist"]},{label:"right-facing fist",hexcode:"1F91C",tags:["fist","right-facing","rightwards"],emoji:"🤜",text:"",type:1,order:383,group:1,subgroup:19,version:3,skins:[{label:"right-facing fist: light skin tone",hexcode:"1F91C-1F3FB",emoji:"🤜🏻",text:"",type:1,order:384,group:1,subgroup:19,version:3,tone:1,shortCodes:["right_facing_fist_tone1"]},{label:"right-facing fist: medium-light skin tone",hexcode:"1F91C-1F3FC",emoji:"🤜🏼",text:"",type:1,order:385,group:1,subgroup:19,version:3,tone:2,shortCodes:["right_facing_fist_tone2"]},{label:"right-facing fist: medium skin tone",hexcode:"1F91C-1F3FD",emoji:"🤜🏽",text:"",type:1,order:386,group:1,subgroup:19,version:3,tone:3,shortCodes:["right_facing_fist_tone3"]},{label:"right-facing fist: medium-dark skin tone",hexcode:"1F91C-1F3FE",emoji:"🤜🏾",text:"",type:1,order:387,group:1,subgroup:19,version:3,tone:4,shortCodes:["right_facing_fist_tone4"]},{label:"right-facing fist: dark skin tone",hexcode:"1F91C-1F3FF",emoji:"🤜🏿",text:"",type:1,order:388,group:1,subgroup:19,version:3,tone:5,shortCodes:["right_facing_fist_tone5"]}],shortCodes:["right_facing_fist"]},{label:"clapping hands",hexcode:"1F44F",tags:["applause","approval","awesome","clap","congrats","congratulations","excited","good","great","hand","homie","job","nice","prayed","well","yay"],emoji:"👏",text:"",type:1,order:389,group:1,subgroup:20,version:.6,skins:[{label:"clapping hands: light skin tone",hexcode:"1F44F-1F3FB",emoji:"👏🏻",text:"",type:1,order:390,group:1,subgroup:20,version:1,tone:1,shortCodes:["clap_tone1","clapping_hands_tone1"]},{label:"clapping hands: medium-light skin tone",hexcode:"1F44F-1F3FC",emoji:"👏🏼",text:"",type:1,order:391,group:1,subgroup:20,version:1,tone:2,shortCodes:["clap_tone2","clapping_hands_tone2"]},{label:"clapping hands: medium skin tone",hexcode:"1F44F-1F3FD",emoji:"👏🏽",text:"",type:1,order:392,group:1,subgroup:20,version:1,tone:3,shortCodes:["clap_tone3","clapping_hands_tone3"]},{label:"clapping hands: medium-dark skin tone",hexcode:"1F44F-1F3FE",emoji:"👏🏾",text:"",type:1,order:393,group:1,subgroup:20,version:1,tone:4,shortCodes:["clap_tone4","clapping_hands_tone4"]},{label:"clapping hands: dark skin tone",hexcode:"1F44F-1F3FF",emoji:"👏🏿",text:"",type:1,order:394,group:1,subgroup:20,version:1,tone:5,shortCodes:["clap_tone5","clapping_hands_tone5"]}],shortCodes:["clap","clapping_hands"]},{label:"raising hands",hexcode:"1F64C",tags:["celebration","gesture","hand","hands","hooray","praise","raised","raising"],emoji:"🙌",text:"",type:1,order:395,group:1,subgroup:20,version:.6,skins:[{label:"raising hands: light skin tone",hexcode:"1F64C-1F3FB",emoji:"🙌🏻",text:"",type:1,order:396,group:1,subgroup:20,version:1,tone:1,shortCodes:["raised_hands_tone1"]},{label:"raising hands: medium-light skin tone",hexcode:"1F64C-1F3FC",emoji:"🙌🏼",text:"",type:1,order:397,group:1,subgroup:20,version:1,tone:2,shortCodes:["raised_hands_tone2"]},{label:"raising hands: medium skin tone",hexcode:"1F64C-1F3FD",emoji:"🙌🏽",text:"",type:1,order:398,group:1,subgroup:20,version:1,tone:3,shortCodes:["raised_hands_tone3"]},{label:"raising hands: medium-dark skin tone",hexcode:"1F64C-1F3FE",emoji:"🙌🏾",text:"",type:1,order:399,group:1,subgroup:20,version:1,tone:4,shortCodes:["raised_hands_tone4"]},{label:"raising hands: dark skin tone",hexcode:"1F64C-1F3FF",emoji:"🙌🏿",text:"",type:1,order:400,group:1,subgroup:20,version:1,tone:5,shortCodes:["raised_hands_tone5"]}],shortCodes:["raised_hands"]},{label:"heart hands",hexcode:"1FAF6",tags:["<3","hands","heart","love","you"],emoji:"🫶",text:"",type:1,order:401,group:1,subgroup:20,version:14,skins:[{label:"heart hands: light skin tone",hexcode:"1FAF6-1F3FB",emoji:"🫶🏻",text:"",type:1,order:402,group:1,subgroup:20,version:14,tone:1,shortCodes:["heart_hands_tone1"]},{label:"heart hands: medium-light skin tone",hexcode:"1FAF6-1F3FC",emoji:"🫶🏼",text:"",type:1,order:403,group:1,subgroup:20,version:14,tone:2,shortCodes:["heart_hands_tone2"]},{label:"heart hands: medium skin tone",hexcode:"1FAF6-1F3FD",emoji:"🫶🏽",text:"",type:1,order:404,group:1,subgroup:20,version:14,tone:3,shortCodes:["heart_hands_tone3"]},{label:"heart hands: medium-dark skin tone",hexcode:"1FAF6-1F3FE",emoji:"🫶🏾",text:"",type:1,order:405,group:1,subgroup:20,version:14,tone:4,shortCodes:["heart_hands_tone4"]},{label:"heart hands: dark skin tone",hexcode:"1FAF6-1F3FF",emoji:"🫶🏿",text:"",type:1,order:406,group:1,subgroup:20,version:14,tone:5,shortCodes:["heart_hands_tone5"]}],shortCodes:["heart_hands"]},{label:"open hands",hexcode:"1F450",tags:["hand","hands","hug","jazz","open","swerve"],emoji:"👐",text:"",type:1,order:407,group:1,subgroup:20,version:.6,skins:[{label:"open hands: light skin tone",hexcode:"1F450-1F3FB",emoji:"👐🏻",text:"",type:1,order:408,group:1,subgroup:20,version:1,tone:1,shortCodes:["open_hands_tone1"]},{label:"open hands: medium-light skin tone",hexcode:"1F450-1F3FC",emoji:"👐🏼",text:"",type:1,order:409,group:1,subgroup:20,version:1,tone:2,shortCodes:["open_hands_tone2"]},{label:"open hands: medium skin tone",hexcode:"1F450-1F3FD",emoji:"👐🏽",text:"",type:1,order:410,group:1,subgroup:20,version:1,tone:3,shortCodes:["open_hands_tone3"]},{label:"open hands: medium-dark skin tone",hexcode:"1F450-1F3FE",emoji:"👐🏾",text:"",type:1,order:411,group:1,subgroup:20,version:1,tone:4,shortCodes:["open_hands_tone4"]},{label:"open hands: dark skin tone",hexcode:"1F450-1F3FF",emoji:"👐🏿",text:"",type:1,order:412,group:1,subgroup:20,version:1,tone:5,shortCodes:["open_hands_tone5"]}],shortCodes:["open_hands"]},{label:"palms up together",hexcode:"1F932",tags:["cupped","dua","hands","palms","pray","prayer","together","up","wish"],emoji:"🤲",text:"",type:1,order:413,group:1,subgroup:20,version:5,skins:[{label:"palms up together: light skin tone",hexcode:"1F932-1F3FB",emoji:"🤲🏻",text:"",type:1,order:414,group:1,subgroup:20,version:5,tone:1,shortCodes:["palms_up_together_tone1"]},{label:"palms up together: medium-light skin tone",hexcode:"1F932-1F3FC",emoji:"🤲🏼",text:"",type:1,order:415,group:1,subgroup:20,version:5,tone:2,shortCodes:["palms_up_together_tone2"]},{label:"palms up together: medium skin tone",hexcode:"1F932-1F3FD",emoji:"🤲🏽",text:"",type:1,order:416,group:1,subgroup:20,version:5,tone:3,shortCodes:["palms_up_together_tone3"]},{label:"palms up together: medium-dark skin tone",hexcode:"1F932-1F3FE",emoji:"🤲🏾",text:"",type:1,order:417,group:1,subgroup:20,version:5,tone:4,shortCodes:["palms_up_together_tone4"]},{label:"palms up together: dark skin tone",hexcode:"1F932-1F3FF",emoji:"🤲🏿",text:"",type:1,order:418,group:1,subgroup:20,version:5,tone:5,shortCodes:["palms_up_together_tone5"]}],shortCodes:["palms_up_together"]},{label:"handshake",hexcode:"1F91D",tags:["agreement","deal","hand","meeting","shake"],emoji:"🤝",text:"",type:1,order:419,group:1,subgroup:20,version:3,skins:[{label:"handshake: light skin tone",hexcode:"1F91D-1F3FB",emoji:"🤝🏻",text:"",type:1,order:420,group:1,subgroup:20,version:14,tone:1,shortCodes:["handshake_tone1"]},{label:"handshake: medium-light skin tone",hexcode:"1F91D-1F3FC",emoji:"🤝🏼",text:"",type:1,order:421,group:1,subgroup:20,version:14,tone:2,shortCodes:["handshake_tone2"]},{label:"handshake: medium skin tone",hexcode:"1F91D-1F3FD",emoji:"🤝🏽",text:"",type:1,order:422,group:1,subgroup:20,version:14,tone:3,shortCodes:["handshake_tone3"]},{label:"handshake: medium-dark skin tone",hexcode:"1F91D-1F3FE",emoji:"🤝🏾",text:"",type:1,order:423,group:1,subgroup:20,version:14,tone:4,shortCodes:["handshake_tone4"]},{label:"handshake: dark skin tone",hexcode:"1F91D-1F3FF",emoji:"🤝🏿",text:"",type:1,order:424,group:1,subgroup:20,version:14,tone:5,shortCodes:["handshake_tone5"]},{label:"handshake: light skin tone, medium-light skin tone",hexcode:"1FAF1-1F3FB-200D-1FAF2-1F3FC",emoji:"🫱🏻‍🫲🏼",text:"",type:1,order:425,group:1,subgroup:20,version:14,tone:[1,2],shortCodes:["handshake_tone1-2"]},{label:"handshake: light skin tone, medium skin tone",hexcode:"1FAF1-1F3FB-200D-1FAF2-1F3FD",emoji:"🫱🏻‍🫲🏽",text:"",type:1,order:426,group:1,subgroup:20,version:14,tone:[1,3],shortCodes:["handshake_tone1-3"]},{label:"handshake: light skin tone, medium-dark skin tone",hexcode:"1FAF1-1F3FB-200D-1FAF2-1F3FE",emoji:"🫱🏻‍🫲🏾",text:"",type:1,order:427,group:1,subgroup:20,version:14,tone:[1,4],shortCodes:["handshake_tone1-4"]},{label:"handshake: light skin tone, dark skin tone",hexcode:"1FAF1-1F3FB-200D-1FAF2-1F3FF",emoji:"🫱🏻‍🫲🏿",text:"",type:1,order:428,group:1,subgroup:20,version:14,tone:[1,5],shortCodes:["handshake_tone1-5"]},{label:"handshake: medium-light skin tone, light skin tone",hexcode:"1FAF1-1F3FC-200D-1FAF2-1F3FB",emoji:"🫱🏼‍🫲🏻",text:"",type:1,order:429,group:1,subgroup:20,version:14,tone:[2,1],shortCodes:["handshake_tone2-1"]},{label:"handshake: medium-light skin tone, medium skin tone",hexcode:"1FAF1-1F3FC-200D-1FAF2-1F3FD",emoji:"🫱🏼‍🫲🏽",text:"",type:1,order:430,group:1,subgroup:20,version:14,tone:[2,3],shortCodes:["handshake_tone2-3"]},{label:"handshake: medium-light skin tone, medium-dark skin tone",hexcode:"1FAF1-1F3FC-200D-1FAF2-1F3FE",emoji:"🫱🏼‍🫲🏾",text:"",type:1,order:431,group:1,subgroup:20,version:14,tone:[2,4],shortCodes:["handshake_tone2-4"]},{label:"handshake: medium-light skin tone, dark skin tone",hexcode:"1FAF1-1F3FC-200D-1FAF2-1F3FF",emoji:"🫱🏼‍🫲🏿",text:"",type:1,order:432,group:1,subgroup:20,version:14,tone:[2,5],shortCodes:["handshake_tone2-5"]},{label:"handshake: medium skin tone, light skin tone",hexcode:"1FAF1-1F3FD-200D-1FAF2-1F3FB",emoji:"🫱🏽‍🫲🏻",text:"",type:1,order:433,group:1,subgroup:20,version:14,tone:[3,1],shortCodes:["handshake_tone3-1"]},{label:"handshake: medium skin tone, medium-light skin tone",hexcode:"1FAF1-1F3FD-200D-1FAF2-1F3FC",emoji:"🫱🏽‍🫲🏼",text:"",type:1,order:434,group:1,subgroup:20,version:14,tone:[3,2],shortCodes:["handshake_tone3-2"]},{label:"handshake: medium skin tone, medium-dark skin tone",hexcode:"1FAF1-1F3FD-200D-1FAF2-1F3FE",emoji:"🫱🏽‍🫲🏾",text:"",type:1,order:435,group:1,subgroup:20,version:14,tone:[3,4],shortCodes:["handshake_tone3-4"]},{label:"handshake: medium skin tone, dark skin tone",hexcode:"1FAF1-1F3FD-200D-1FAF2-1F3FF",emoji:"🫱🏽‍🫲🏿",text:"",type:1,order:436,group:1,subgroup:20,version:14,tone:[3,5],shortCodes:["handshake_tone3-5"]},{label:"handshake: medium-dark skin tone, light skin tone",hexcode:"1FAF1-1F3FE-200D-1FAF2-1F3FB",emoji:"🫱🏾‍🫲🏻",text:"",type:1,order:437,group:1,subgroup:20,version:14,tone:[4,1],shortCodes:["handshake_tone4-1"]},{label:"handshake: medium-dark skin tone, medium-light skin tone",hexcode:"1FAF1-1F3FE-200D-1FAF2-1F3FC",emoji:"🫱🏾‍🫲🏼",text:"",type:1,order:438,group:1,subgroup:20,version:14,tone:[4,2],shortCodes:["handshake_tone4-2"]},{label:"handshake: medium-dark skin tone, medium skin tone",hexcode:"1FAF1-1F3FE-200D-1FAF2-1F3FD",emoji:"🫱🏾‍🫲🏽",text:"",type:1,order:439,group:1,subgroup:20,version:14,tone:[4,3],shortCodes:["handshake_tone4-3"]},{label:"handshake: medium-dark skin tone, dark skin tone",hexcode:"1FAF1-1F3FE-200D-1FAF2-1F3FF",emoji:"🫱🏾‍🫲🏿",text:"",type:1,order:440,group:1,subgroup:20,version:14,tone:[4,5],shortCodes:["handshake_tone4-5"]},{label:"handshake: dark skin tone, light skin tone",hexcode:"1FAF1-1F3FF-200D-1FAF2-1F3FB",emoji:"🫱🏿‍🫲🏻",text:"",type:1,order:441,group:1,subgroup:20,version:14,tone:[5,1],shortCodes:["handshake_tone5-1"]},{label:"handshake: dark skin tone, medium-light skin tone",hexcode:"1FAF1-1F3FF-200D-1FAF2-1F3FC",emoji:"🫱🏿‍🫲🏼",text:"",type:1,order:442,group:1,subgroup:20,version:14,tone:[5,2],shortCodes:["handshake_tone5-2"]},{label:"handshake: dark skin tone, medium skin tone",hexcode:"1FAF1-1F3FF-200D-1FAF2-1F3FD",emoji:"🫱🏿‍🫲🏽",text:"",type:1,order:443,group:1,subgroup:20,version:14,tone:[5,3],shortCodes:["handshake_tone5-3"]},{label:"handshake: dark skin tone, medium-dark skin tone",hexcode:"1FAF1-1F3FF-200D-1FAF2-1F3FE",emoji:"🫱🏿‍🫲🏾",text:"",type:1,order:444,group:1,subgroup:20,version:14,tone:[5,4],shortCodes:["handshake_tone5-4"]}],shortCodes:["handshake"]},{label:"folded hands",hexcode:"1F64F",tags:["appreciate","ask","beg","blessed","bow","cmon","five","folded","gesture","hand","high","please","pray","thanks","thx"],emoji:"🙏",text:"",type:1,order:445,group:1,subgroup:20,version:.6,skins:[{label:"folded hands: light skin tone",hexcode:"1F64F-1F3FB",emoji:"🙏🏻",text:"",type:1,order:446,group:1,subgroup:20,version:1,tone:1,shortCodes:["folded_hands_tone1","pray_tone1"]},{label:"folded hands: medium-light skin tone",hexcode:"1F64F-1F3FC",emoji:"🙏🏼",text:"",type:1,order:447,group:1,subgroup:20,version:1,tone:2,shortCodes:["folded_hands_tone2","pray_tone2"]},{label:"folded hands: medium skin tone",hexcode:"1F64F-1F3FD",emoji:"🙏🏽",text:"",type:1,order:448,group:1,subgroup:20,version:1,tone:3,shortCodes:["folded_hands_tone3","pray_tone3"]},{label:"folded hands: medium-dark skin tone",hexcode:"1F64F-1F3FE",emoji:"🙏🏾",text:"",type:1,order:449,group:1,subgroup:20,version:1,tone:4,shortCodes:["folded_hands_tone4","pray_tone4"]},{label:"folded hands: dark skin tone",hexcode:"1F64F-1F3FF",emoji:"🙏🏿",text:"",type:1,order:450,group:1,subgroup:20,version:1,tone:5,shortCodes:["folded_hands_tone5","pray_tone5"]}],shortCodes:["folded_hands","pray"]},{label:"writing hand",hexcode:"270D",tags:["hand","write","writing"],emoji:"✍️",text:"✍︎",type:0,order:452,group:1,subgroup:21,version:.7,skins:[{label:"writing hand: light skin tone",hexcode:"270D-1F3FB",emoji:"✍🏻",text:"",type:1,order:453,group:1,subgroup:21,version:1,tone:1,shortCodes:["writing_hand_tone1"]},{label:"writing hand: medium-light skin tone",hexcode:"270D-1F3FC",emoji:"✍🏼",text:"",type:1,order:454,group:1,subgroup:21,version:1,tone:2,shortCodes:["writing_hand_tone2"]},{label:"writing hand: medium skin tone",hexcode:"270D-1F3FD",emoji:"✍🏽",text:"",type:1,order:455,group:1,subgroup:21,version:1,tone:3,shortCodes:["writing_hand_tone3"]},{label:"writing hand: medium-dark skin tone",hexcode:"270D-1F3FE",emoji:"✍🏾",text:"",type:1,order:456,group:1,subgroup:21,version:1,tone:4,shortCodes:["writing_hand_tone4"]},{label:"writing hand: dark skin tone",hexcode:"270D-1F3FF",emoji:"✍🏿",text:"",type:1,order:457,group:1,subgroup:21,version:1,tone:5,shortCodes:["writing_hand_tone5"]}],shortCodes:["writing_hand"]},{label:"nail polish",hexcode:"1F485",tags:["bored","care","cosmetics","done","makeup","manicure","nail","polish","whatever"],emoji:"💅",text:"",type:1,order:458,group:1,subgroup:21,version:.6,skins:[{label:"nail polish: light skin tone",hexcode:"1F485-1F3FB",emoji:"💅🏻",text:"",type:1,order:459,group:1,subgroup:21,version:1,tone:1,shortCodes:["nail_care_tone1","nail_polish_tone1"]},{label:"nail polish: medium-light skin tone",hexcode:"1F485-1F3FC",emoji:"💅🏼",text:"",type:1,order:460,group:1,subgroup:21,version:1,tone:2,shortCodes:["nail_care_tone2","nail_polish_tone2"]},{label:"nail polish: medium skin tone",hexcode:"1F485-1F3FD",emoji:"💅🏽",text:"",type:1,order:461,group:1,subgroup:21,version:1,tone:3,shortCodes:["nail_care_tone3","nail_polish_tone3"]},{label:"nail polish: medium-dark skin tone",hexcode:"1F485-1F3FE",emoji:"💅🏾",text:"",type:1,order:462,group:1,subgroup:21,version:1,tone:4,shortCodes:["nail_care_tone4","nail_polish_tone4"]},{label:"nail polish: dark skin tone",hexcode:"1F485-1F3FF",emoji:"💅🏿",text:"",type:1,order:463,group:1,subgroup:21,version:1,tone:5,shortCodes:["nail_care_tone5","nail_polish_tone5"]}],shortCodes:["nail_care","nail_polish"]},{label:"selfie",hexcode:"1F933",tags:["camera","phone"],emoji:"🤳",text:"",type:1,order:464,group:1,subgroup:21,version:3,skins:[{label:"selfie: light skin tone",hexcode:"1F933-1F3FB",emoji:"🤳🏻",text:"",type:1,order:465,group:1,subgroup:21,version:3,tone:1,shortCodes:["selfie_tone1"]},{label:"selfie: medium-light skin tone",hexcode:"1F933-1F3FC",emoji:"🤳🏼",text:"",type:1,order:466,group:1,subgroup:21,version:3,tone:2,shortCodes:["selfie_tone2"]},{label:"selfie: medium skin tone",hexcode:"1F933-1F3FD",emoji:"🤳🏽",text:"",type:1,order:467,group:1,subgroup:21,version:3,tone:3,shortCodes:["selfie_tone3"]},{label:"selfie: medium-dark skin tone",hexcode:"1F933-1F3FE",emoji:"🤳🏾",text:"",type:1,order:468,group:1,subgroup:21,version:3,tone:4,shortCodes:["selfie_tone4"]},{label:"selfie: dark skin tone",hexcode:"1F933-1F3FF",emoji:"🤳🏿",text:"",type:1,order:469,group:1,subgroup:21,version:3,tone:5,shortCodes:["selfie_tone5"]}],shortCodes:["selfie"]},{label:"flexed biceps",hexcode:"1F4AA",tags:["arm","beast","bench","biceps","bodybuilder","bro","curls","flex","gains","gym","jacked","muscle","press","ripped","strong","weightlift"],emoji:"💪",text:"",type:1,order:470,group:1,subgroup:22,version:.6,skins:[{label:"flexed biceps: light skin tone",hexcode:"1F4AA-1F3FB",emoji:"💪🏻",text:"",type:1,order:471,group:1,subgroup:22,version:1,tone:1,shortCodes:["muscle_tone1","right_bicep_tone1"]},{label:"flexed biceps: medium-light skin tone",hexcode:"1F4AA-1F3FC",emoji:"💪🏼",text:"",type:1,order:472,group:1,subgroup:22,version:1,tone:2,shortCodes:["muscle_tone2","right_bicep_tone2"]},{label:"flexed biceps: medium skin tone",hexcode:"1F4AA-1F3FD",emoji:"💪🏽",text:"",type:1,order:473,group:1,subgroup:22,version:1,tone:3,shortCodes:["muscle_tone3","right_bicep_tone3"]},{label:"flexed biceps: medium-dark skin tone",hexcode:"1F4AA-1F3FE",emoji:"💪🏾",text:"",type:1,order:474,group:1,subgroup:22,version:1,tone:4,shortCodes:["muscle_tone4","right_bicep_tone4"]},{label:"flexed biceps: dark skin tone",hexcode:"1F4AA-1F3FF",emoji:"💪🏿",text:"",type:1,order:475,group:1,subgroup:22,version:1,tone:5,shortCodes:["muscle_tone5","right_bicep_tone5"]}],shortCodes:["muscle","right_bicep"]},{label:"mechanical arm",hexcode:"1F9BE",tags:["accessibility","arm","mechanical","prosthetic"],emoji:"🦾",text:"",type:1,order:476,group:1,subgroup:22,version:12,shortCodes:["mechanical_arm"]},{label:"mechanical leg",hexcode:"1F9BF",tags:["accessibility","leg","mechanical","prosthetic"],emoji:"🦿",text:"",type:1,order:477,group:1,subgroup:22,version:12,shortCodes:["mechanical_leg"]},{label:"leg",hexcode:"1F9B5",tags:["bent","foot","kick","knee","limb"],emoji:"🦵",text:"",type:1,order:478,group:1,subgroup:22,version:11,skins:[{label:"leg: light skin tone",hexcode:"1F9B5-1F3FB",emoji:"🦵🏻",text:"",type:1,order:479,group:1,subgroup:22,version:11,tone:1,shortCodes:["leg_tone1"]},{label:"leg: medium-light skin tone",hexcode:"1F9B5-1F3FC",emoji:"🦵🏼",text:"",type:1,order:480,group:1,subgroup:22,version:11,tone:2,shortCodes:["leg_tone2"]},{label:"leg: medium skin tone",hexcode:"1F9B5-1F3FD",emoji:"🦵🏽",text:"",type:1,order:481,group:1,subgroup:22,version:11,tone:3,shortCodes:["leg_tone3"]},{label:"leg: medium-dark skin tone",hexcode:"1F9B5-1F3FE",emoji:"🦵🏾",text:"",type:1,order:482,group:1,subgroup:22,version:11,tone:4,shortCodes:["leg_tone4"]},{label:"leg: dark skin tone",hexcode:"1F9B5-1F3FF",emoji:"🦵🏿",text:"",type:1,order:483,group:1,subgroup:22,version:11,tone:5,shortCodes:["leg_tone5"]}],shortCodes:["leg"]},{label:"foot",hexcode:"1F9B6",tags:["ankle","feet","kick","stomp"],emoji:"🦶",text:"",type:1,order:484,group:1,subgroup:22,version:11,skins:[{label:"foot: light skin tone",hexcode:"1F9B6-1F3FB",emoji:"🦶🏻",text:"",type:1,order:485,group:1,subgroup:22,version:11,tone:1,shortCodes:["foot_tone1"]},{label:"foot: medium-light skin tone",hexcode:"1F9B6-1F3FC",emoji:"🦶🏼",text:"",type:1,order:486,group:1,subgroup:22,version:11,tone:2,shortCodes:["foot_tone2"]},{label:"foot: medium skin tone",hexcode:"1F9B6-1F3FD",emoji:"🦶🏽",text:"",type:1,order:487,group:1,subgroup:22,version:11,tone:3,shortCodes:["foot_tone3"]},{label:"foot: medium-dark skin tone",hexcode:"1F9B6-1F3FE",emoji:"🦶🏾",text:"",type:1,order:488,group:1,subgroup:22,version:11,tone:4,shortCodes:["foot_tone4"]},{label:"foot: dark skin tone",hexcode:"1F9B6-1F3FF",emoji:"🦶🏿",text:"",type:1,order:489,group:1,subgroup:22,version:11,tone:5,shortCodes:["foot_tone5"]}],shortCodes:["foot"]},{label:"ear",hexcode:"1F442",tags:["body","ears","hear","hearing","listen","listening","sound"],emoji:"👂️",text:"👂︎",type:1,order:490,group:1,subgroup:22,version:.6,skins:[{label:"ear: light skin tone",hexcode:"1F442-1F3FB",emoji:"👂🏻",text:"",type:1,order:491,group:1,subgroup:22,version:1,tone:1,shortCodes:["ear_tone1"]},{label:"ear: medium-light skin tone",hexcode:"1F442-1F3FC",emoji:"👂🏼",text:"",type:1,order:492,group:1,subgroup:22,version:1,tone:2,shortCodes:["ear_tone2"]},{label:"ear: medium skin tone",hexcode:"1F442-1F3FD",emoji:"👂🏽",text:"",type:1,order:493,group:1,subgroup:22,version:1,tone:3,shortCodes:["ear_tone3"]},{label:"ear: medium-dark skin tone",hexcode:"1F442-1F3FE",emoji:"👂🏾",text:"",type:1,order:494,group:1,subgroup:22,version:1,tone:4,shortCodes:["ear_tone4"]},{label:"ear: dark skin tone",hexcode:"1F442-1F3FF",emoji:"👂🏿",text:"",type:1,order:495,group:1,subgroup:22,version:1,tone:5,shortCodes:["ear_tone5"]}],shortCodes:["ear"]},{label:"ear with hearing aid",hexcode:"1F9BB",tags:["accessibility","aid","ear","hard","hearing"],emoji:"🦻",text:"",type:1,order:496,group:1,subgroup:22,version:12,skins:[{label:"ear with hearing aid: light skin tone",hexcode:"1F9BB-1F3FB",emoji:"🦻🏻",text:"",type:1,order:497,group:1,subgroup:22,version:12,tone:1,shortCodes:["ear_with_hearing_aid_tone1","hearing_aid_tone1"]},{label:"ear with hearing aid: medium-light skin tone",hexcode:"1F9BB-1F3FC",emoji:"🦻🏼",text:"",type:1,order:498,group:1,subgroup:22,version:12,tone:2,shortCodes:["ear_with_hearing_aid_tone2","hearing_aid_tone2"]},{label:"ear with hearing aid: medium skin tone",hexcode:"1F9BB-1F3FD",emoji:"🦻🏽",text:"",type:1,order:499,group:1,subgroup:22,version:12,tone:3,shortCodes:["ear_with_hearing_aid_tone3","hearing_aid_tone3"]},{label:"ear with hearing aid: medium-dark skin tone",hexcode:"1F9BB-1F3FE",emoji:"🦻🏾",text:"",type:1,order:500,group:1,subgroup:22,version:12,tone:4,shortCodes:["ear_with_hearing_aid_tone4","hearing_aid_tone4"]},{label:"ear with hearing aid: dark skin tone",hexcode:"1F9BB-1F3FF",emoji:"🦻🏿",text:"",type:1,order:501,group:1,subgroup:22,version:12,tone:5,shortCodes:["ear_with_hearing_aid_tone5","hearing_aid_tone5"]}],shortCodes:["ear_with_hearing_aid","hearing_aid"]},{label:"nose",hexcode:"1F443",tags:["body","noses","nosey","odor","smell","smells"],emoji:"👃",text:"",type:1,order:502,group:1,subgroup:22,version:.6,skins:[{label:"nose: light skin tone",hexcode:"1F443-1F3FB",emoji:"👃🏻",text:"",type:1,order:503,group:1,subgroup:22,version:1,tone:1,shortCodes:["nose_tone1"]},{label:"nose: medium-light skin tone",hexcode:"1F443-1F3FC",emoji:"👃🏼",text:"",type:1,order:504,group:1,subgroup:22,version:1,tone:2,shortCodes:["nose_tone2"]},{label:"nose: medium skin tone",hexcode:"1F443-1F3FD",emoji:"👃🏽",text:"",type:1,order:505,group:1,subgroup:22,version:1,tone:3,shortCodes:["nose_tone3"]},{label:"nose: medium-dark skin tone",hexcode:"1F443-1F3FE",emoji:"👃🏾",text:"",type:1,order:506,group:1,subgroup:22,version:1,tone:4,shortCodes:["nose_tone4"]},{label:"nose: dark skin tone",hexcode:"1F443-1F3FF",emoji:"👃🏿",text:"",type:1,order:507,group:1,subgroup:22,version:1,tone:5,shortCodes:["nose_tone5"]}],shortCodes:["nose"]},{label:"brain",hexcode:"1F9E0",tags:["intelligent","smart"],emoji:"🧠",text:"",type:1,order:508,group:1,subgroup:22,version:5,shortCodes:["brain"]},{label:"anatomical heart",hexcode:"1FAC0",tags:["anatomical","beat","cardiology","heart","heartbeat","organ","pulse","real","red"],emoji:"🫀",text:"",type:1,order:509,group:1,subgroup:22,version:13,shortCodes:["anatomical_heart"]},{label:"lungs",hexcode:"1FAC1",tags:["breath","breathe","exhalation","inhalation","lung","organ","respiration"],emoji:"🫁",text:"",type:1,order:510,group:1,subgroup:22,version:13,shortCodes:["lungs"]},{label:"tooth",hexcode:"1F9B7",tags:["dentist","pearly","teeth","white"],emoji:"🦷",text:"",type:1,order:511,group:1,subgroup:22,version:11,shortCodes:["tooth"]},{label:"bone",hexcode:"1F9B4",tags:["bones","dog","skeleton","wishbone"],emoji:"🦴",text:"",type:1,order:512,group:1,subgroup:22,version:11,shortCodes:["bone"]},{label:"eyes",hexcode:"1F440",tags:["body","eye","face","googly","look","looking","omg","peep","see","seeing"],emoji:"👀",text:"",type:1,order:513,group:1,subgroup:22,version:.6,shortCodes:["eyes"]},{label:"eye",hexcode:"1F441",tags:["1","body","one"],emoji:"👁️",text:"👁︎",type:0,order:515,group:1,subgroup:22,version:.7,shortCodes:["eye"]},{label:"tongue",hexcode:"1F445",tags:["body","lick","slurp"],emoji:"👅",text:"",type:1,order:516,group:1,subgroup:22,version:.6,shortCodes:["tongue"]},{label:"mouth",hexcode:"1F444",tags:["beauty","body","kiss","kissing","lips","lipstick"],emoji:"👄",text:"",type:1,order:517,group:1,subgroup:22,version:.6,shortCodes:["lips","mouth"]},{label:"biting lip",hexcode:"1FAE6",tags:["anxious","bite","biting","fear","flirt","flirting","kiss","lip","lipstick","nervous","sexy","uncomfortable","worried","worry"],emoji:"🫦",text:"",type:1,order:518,group:1,subgroup:22,version:14,shortCodes:["biting_lip"]},{label:"baby",hexcode:"1F476",tags:["babies","children","goo","infant","newborn","pregnant","young"],emoji:"👶",text:"",type:1,order:519,group:1,subgroup:23,version:.6,skins:[{label:"baby: light skin tone",hexcode:"1F476-1F3FB",emoji:"👶🏻",text:"",type:1,order:520,group:1,subgroup:23,version:1,tone:1,shortCodes:["baby_tone1"]},{label:"baby: medium-light skin tone",hexcode:"1F476-1F3FC",emoji:"👶🏼",text:"",type:1,order:521,group:1,subgroup:23,version:1,tone:2,shortCodes:["baby_tone2"]},{label:"baby: medium skin tone",hexcode:"1F476-1F3FD",emoji:"👶🏽",text:"",type:1,order:522,group:1,subgroup:23,version:1,tone:3,shortCodes:["baby_tone3"]},{label:"baby: medium-dark skin tone",hexcode:"1F476-1F3FE",emoji:"👶🏾",text:"",type:1,order:523,group:1,subgroup:23,version:1,tone:4,shortCodes:["baby_tone4"]},{label:"baby: dark skin tone",hexcode:"1F476-1F3FF",emoji:"👶🏿",text:"",type:1,order:524,group:1,subgroup:23,version:1,tone:5,shortCodes:["baby_tone5"]}],shortCodes:["baby"]},{label:"child",hexcode:"1F9D2",tags:["bright-eyed","grandchild","kid","young","younger"],emoji:"🧒",text:"",type:1,order:525,group:1,subgroup:23,version:5,skins:[{label:"child: light skin tone",hexcode:"1F9D2-1F3FB",emoji:"🧒🏻",text:"",type:1,order:526,group:1,subgroup:23,version:5,tone:1,shortCodes:["child_tone1"]},{label:"child: medium-light skin tone",hexcode:"1F9D2-1F3FC",emoji:"🧒🏼",text:"",type:1,order:527,group:1,subgroup:23,version:5,tone:2,shortCodes:["child_tone2"]},{label:"child: medium skin tone",hexcode:"1F9D2-1F3FD",emoji:"🧒🏽",text:"",type:1,order:528,group:1,subgroup:23,version:5,tone:3,shortCodes:["child_tone3"]},{label:"child: medium-dark skin tone",hexcode:"1F9D2-1F3FE",emoji:"🧒🏾",text:"",type:1,order:529,group:1,subgroup:23,version:5,tone:4,shortCodes:["child_tone4"]},{label:"child: dark skin tone",hexcode:"1F9D2-1F3FF",emoji:"🧒🏿",text:"",type:1,order:530,group:1,subgroup:23,version:5,tone:5,shortCodes:["child_tone5"]}],shortCodes:["child"]},{label:"boy",hexcode:"1F466",tags:["bright-eyed","child","grandson","kid","son","young","younger"],emoji:"👦",text:"",type:1,order:531,group:1,subgroup:23,version:.6,skins:[{label:"boy: light skin tone",hexcode:"1F466-1F3FB",emoji:"👦🏻",text:"",type:1,order:532,group:1,subgroup:23,version:1,tone:1,shortCodes:["boy_tone1"]},{label:"boy: medium-light skin tone",hexcode:"1F466-1F3FC",emoji:"👦🏼",text:"",type:1,order:533,group:1,subgroup:23,version:1,tone:2,shortCodes:["boy_tone2"]},{label:"boy: medium skin tone",hexcode:"1F466-1F3FD",emoji:"👦🏽",text:"",type:1,order:534,group:1,subgroup:23,version:1,tone:3,shortCodes:["boy_tone3"]},{label:"boy: medium-dark skin tone",hexcode:"1F466-1F3FE",emoji:"👦🏾",text:"",type:1,order:535,group:1,subgroup:23,version:1,tone:4,shortCodes:["boy_tone4"]},{label:"boy: dark skin tone",hexcode:"1F466-1F3FF",emoji:"👦🏿",text:"",type:1,order:536,group:1,subgroup:23,version:1,tone:5,shortCodes:["boy_tone5"]}],shortCodes:["boy"]},{label:"girl",hexcode:"1F467",tags:["bright-eyed","child","daughter","granddaughter","kid","virgo","young","younger","zodiac"],emoji:"👧",text:"",type:1,order:537,group:1,subgroup:23,version:.6,skins:[{label:"girl: light skin tone",hexcode:"1F467-1F3FB",emoji:"👧🏻",text:"",type:1,order:538,group:1,subgroup:23,version:1,tone:1,shortCodes:["girl_tone1"]},{label:"girl: medium-light skin tone",hexcode:"1F467-1F3FC",emoji:"👧🏼",text:"",type:1,order:539,group:1,subgroup:23,version:1,tone:2,shortCodes:["girl_tone2"]},{label:"girl: medium skin tone",hexcode:"1F467-1F3FD",emoji:"👧🏽",text:"",type:1,order:540,group:1,subgroup:23,version:1,tone:3,shortCodes:["girl_tone3"]},{label:"girl: medium-dark skin tone",hexcode:"1F467-1F3FE",emoji:"👧🏾",text:"",type:1,order:541,group:1,subgroup:23,version:1,tone:4,shortCodes:["girl_tone4"]},{label:"girl: dark skin tone",hexcode:"1F467-1F3FF",emoji:"👧🏿",text:"",type:1,order:542,group:1,subgroup:23,version:1,tone:5,shortCodes:["girl_tone5"]}],shortCodes:["girl"]},{label:"person",hexcode:"1F9D1",tags:["adult"],emoji:"🧑",text:"",type:1,order:543,group:1,subgroup:23,version:5,skins:[{label:"person: light skin tone",hexcode:"1F9D1-1F3FB",emoji:"🧑🏻",text:"",type:1,order:544,group:1,subgroup:23,version:5,tone:1,shortCodes:["adult_tone1"]},{label:"person: medium-light skin tone",hexcode:"1F9D1-1F3FC",emoji:"🧑🏼",text:"",type:1,order:545,group:1,subgroup:23,version:5,tone:2,shortCodes:["adult_tone2"]},{label:"person: medium skin tone",hexcode:"1F9D1-1F3FD",emoji:"🧑🏽",text:"",type:1,order:546,group:1,subgroup:23,version:5,tone:3,shortCodes:["adult_tone3"]},{label:"person: medium-dark skin tone",hexcode:"1F9D1-1F3FE",emoji:"🧑🏾",text:"",type:1,order:547,group:1,subgroup:23,version:5,tone:4,shortCodes:["adult_tone4"]},{label:"person: dark skin tone",hexcode:"1F9D1-1F3FF",emoji:"🧑🏿",text:"",type:1,order:548,group:1,subgroup:23,version:5,tone:5,shortCodes:["adult_tone5"]}],shortCodes:["adult"]},{label:"person: blond hair",hexcode:"1F471",tags:["blond","blond-haired","human","person"],emoji:"👱",text:"",type:1,order:549,group:1,subgroup:23,version:.6,skins:[{label:"person: light skin tone, blond hair",hexcode:"1F471-1F3FB",emoji:"👱🏻",text:"",type:1,order:550,group:1,subgroup:23,version:1,tone:1,shortCodes:["blond_haired_tone1"]},{label:"person: medium-light skin tone, blond hair",hexcode:"1F471-1F3FC",emoji:"👱🏼",text:"",type:1,order:551,group:1,subgroup:23,version:1,tone:2,shortCodes:["blond_haired_tone2"]},{label:"person: medium skin tone, blond hair",hexcode:"1F471-1F3FD",emoji:"👱🏽",text:"",type:1,order:552,group:1,subgroup:23,version:1,tone:3,shortCodes:["blond_haired_tone3"]},{label:"person: medium-dark skin tone, blond hair",hexcode:"1F471-1F3FE",emoji:"👱🏾",text:"",type:1,order:553,group:1,subgroup:23,version:1,tone:4,shortCodes:["blond_haired_tone4"]},{label:"person: dark skin tone, blond hair",hexcode:"1F471-1F3FF",emoji:"👱🏿",text:"",type:1,order:554,group:1,subgroup:23,version:1,tone:5,shortCodes:["blond_haired_tone5"]}],shortCodes:["blond_haired"]},{label:"man",hexcode:"1F468",tags:["adult","bro"],emoji:"👨",text:"",type:1,order:555,group:1,subgroup:23,version:.6,skins:[{label:"man: light skin tone",hexcode:"1F468-1F3FB",emoji:"👨🏻",text:"",type:1,order:556,group:1,subgroup:23,version:1,tone:1,shortCodes:["man_tone1"]},{label:"man: medium-light skin tone",hexcode:"1F468-1F3FC",emoji:"👨🏼",text:"",type:1,order:557,group:1,subgroup:23,version:1,tone:2,shortCodes:["man_tone2"]},{label:"man: medium skin tone",hexcode:"1F468-1F3FD",emoji:"👨🏽",text:"",type:1,order:558,group:1,subgroup:23,version:1,tone:3,shortCodes:["man_tone3"]},{label:"man: medium-dark skin tone",hexcode:"1F468-1F3FE",emoji:"👨🏾",text:"",type:1,order:559,group:1,subgroup:23,version:1,tone:4,shortCodes:["man_tone4"]},{label:"man: dark skin tone",hexcode:"1F468-1F3FF",emoji:"👨🏿",text:"",type:1,order:560,group:1,subgroup:23,version:1,tone:5,shortCodes:["man_tone5"]}],shortCodes:["man"]},{label:"person: beard",hexcode:"1F9D4",tags:["beard","bearded","person","whiskers"],emoji:"🧔",text:"",type:1,order:561,group:1,subgroup:23,version:5,skins:[{label:"person: light skin tone, beard",hexcode:"1F9D4-1F3FB",emoji:"🧔🏻",text:"",type:1,order:562,group:1,subgroup:23,version:5,tone:1,shortCodes:["person_bearded_tone1"]},{label:"person: medium-light skin tone, beard",hexcode:"1F9D4-1F3FC",emoji:"🧔🏼",text:"",type:1,order:563,group:1,subgroup:23,version:5,tone:2,shortCodes:["person_bearded_tone2"]},{label:"person: medium skin tone, beard",hexcode:"1F9D4-1F3FD",emoji:"🧔🏽",text:"",type:1,order:564,group:1,subgroup:23,version:5,tone:3,shortCodes:["person_bearded_tone3"]},{label:"person: medium-dark skin tone, beard",hexcode:"1F9D4-1F3FE",emoji:"🧔🏾",text:"",type:1,order:565,group:1,subgroup:23,version:5,tone:4,shortCodes:["person_bearded_tone4"]},{label:"person: dark skin tone, beard",hexcode:"1F9D4-1F3FF",emoji:"🧔🏿",text:"",type:1,order:566,group:1,subgroup:23,version:5,tone:5,shortCodes:["person_bearded_tone5"]}],shortCodes:["person_bearded"]},{label:"man: beard",hexcode:"1F9D4-200D-2642-FE0F",tags:["beard","bearded","man","whiskers"],emoji:"🧔‍♂️",text:"",type:1,order:567,group:1,subgroup:23,version:13.1,gender:1,skins:[{label:"man: light skin tone, beard",hexcode:"1F9D4-1F3FB-200D-2642-FE0F",emoji:"🧔🏻‍♂️",text:"",type:1,order:569,group:1,subgroup:23,version:13.1,gender:1,tone:1,shortCodes:["man_bearded_tone1"]},{label:"man: medium-light skin tone, beard",hexcode:"1F9D4-1F3FC-200D-2642-FE0F",emoji:"🧔🏼‍♂️",text:"",type:1,order:571,group:1,subgroup:23,version:13.1,gender:1,tone:2,shortCodes:["man_bearded_tone2"]},{label:"man: medium skin tone, beard",hexcode:"1F9D4-1F3FD-200D-2642-FE0F",emoji:"🧔🏽‍♂️",text:"",type:1,order:573,group:1,subgroup:23,version:13.1,gender:1,tone:3,shortCodes:["man_bearded_tone3"]},{label:"man: medium-dark skin tone, beard",hexcode:"1F9D4-1F3FE-200D-2642-FE0F",emoji:"🧔🏾‍♂️",text:"",type:1,order:575,group:1,subgroup:23,version:13.1,gender:1,tone:4,shortCodes:["man_bearded_tone4"]},{label:"man: dark skin tone, beard",hexcode:"1F9D4-1F3FF-200D-2642-FE0F",emoji:"🧔🏿‍♂️",text:"",type:1,order:577,group:1,subgroup:23,version:13.1,gender:1,tone:5,shortCodes:["man_bearded_tone5"]}],shortCodes:["man_bearded"]},{label:"woman: beard",hexcode:"1F9D4-200D-2640-FE0F",tags:["beard","bearded","whiskers","woman"],emoji:"🧔‍♀️",text:"",type:1,order:579,group:1,subgroup:23,version:13.1,gender:0,skins:[{label:"woman: light skin tone, beard",hexcode:"1F9D4-1F3FB-200D-2640-FE0F",emoji:"🧔🏻‍♀️",text:"",type:1,order:581,group:1,subgroup:23,version:13.1,gender:0,tone:1,shortCodes:["woman_bearded_tone1"]},{label:"woman: medium-light skin tone, beard",hexcode:"1F9D4-1F3FC-200D-2640-FE0F",emoji:"🧔🏼‍♀️",text:"",type:1,order:583,group:1,subgroup:23,version:13.1,gender:0,tone:2,shortCodes:["woman_bearded_tone2"]},{label:"woman: medium skin tone, beard",hexcode:"1F9D4-1F3FD-200D-2640-FE0F",emoji:"🧔🏽‍♀️",text:"",type:1,order:585,group:1,subgroup:23,version:13.1,gender:0,tone:3,shortCodes:["woman_bearded_tone3"]},{label:"woman: medium-dark skin tone, beard",hexcode:"1F9D4-1F3FE-200D-2640-FE0F",emoji:"🧔🏾‍♀️",text:"",type:1,order:587,group:1,subgroup:23,version:13.1,gender:0,tone:4,shortCodes:["woman_bearded_tone4"]},{label:"woman: dark skin tone, beard",hexcode:"1F9D4-1F3FF-200D-2640-FE0F",emoji:"🧔🏿‍♀️",text:"",type:1,order:589,group:1,subgroup:23,version:13.1,gender:0,tone:5,shortCodes:["woman_bearded_tone5"]}],shortCodes:["woman_bearded"]},{label:"man: red hair",hexcode:"1F468-200D-1F9B0",tags:["adult","bro","man","red hair"],emoji:"👨‍🦰",text:"",type:1,order:591,group:1,subgroup:23,version:11,skins:[{label:"man: light skin tone, red hair",hexcode:"1F468-1F3FB-200D-1F9B0",emoji:"👨🏻‍🦰",text:"",type:1,order:592,group:1,subgroup:23,version:11,tone:1,shortCodes:["man_red_haired_tone1"]},{label:"man: medium-light skin tone, red hair",hexcode:"1F468-1F3FC-200D-1F9B0",emoji:"👨🏼‍🦰",text:"",type:1,order:593,group:1,subgroup:23,version:11,tone:2,shortCodes:["man_red_haired_tone2"]},{label:"man: medium skin tone, red hair",hexcode:"1F468-1F3FD-200D-1F9B0",emoji:"👨🏽‍🦰",text:"",type:1,order:594,group:1,subgroup:23,version:11,tone:3,shortCodes:["man_red_haired_tone3"]},{label:"man: medium-dark skin tone, red hair",hexcode:"1F468-1F3FE-200D-1F9B0",emoji:"👨🏾‍🦰",text:"",type:1,order:595,group:1,subgroup:23,version:11,tone:4,shortCodes:["man_red_haired_tone4"]},{label:"man: dark skin tone, red hair",hexcode:"1F468-1F3FF-200D-1F9B0",emoji:"👨🏿‍🦰",text:"",type:1,order:596,group:1,subgroup:23,version:11,tone:5,shortCodes:["man_red_haired_tone5"]}],shortCodes:["man_red_haired"]},{label:"man: curly hair",hexcode:"1F468-200D-1F9B1",tags:["adult","bro","curly hair","man"],emoji:"👨‍🦱",text:"",type:1,order:597,group:1,subgroup:23,version:11,skins:[{label:"man: light skin tone, curly hair",hexcode:"1F468-1F3FB-200D-1F9B1",emoji:"👨🏻‍🦱",text:"",type:1,order:598,group:1,subgroup:23,version:11,tone:1,shortCodes:["man_curly_haired_tone1"]},{label:"man: medium-light skin tone, curly hair",hexcode:"1F468-1F3FC-200D-1F9B1",emoji:"👨🏼‍🦱",text:"",type:1,order:599,group:1,subgroup:23,version:11,tone:2,shortCodes:["man_curly_haired_tone2"]},{label:"man: medium skin tone, curly hair",hexcode:"1F468-1F3FD-200D-1F9B1",emoji:"👨🏽‍🦱",text:"",type:1,order:600,group:1,subgroup:23,version:11,tone:3,shortCodes:["man_curly_haired_tone3"]},{label:"man: medium-dark skin tone, curly hair",hexcode:"1F468-1F3FE-200D-1F9B1",emoji:"👨🏾‍🦱",text:"",type:1,order:601,group:1,subgroup:23,version:11,tone:4,shortCodes:["man_curly_haired_tone4"]},{label:"man: dark skin tone, curly hair",hexcode:"1F468-1F3FF-200D-1F9B1",emoji:"👨🏿‍🦱",text:"",type:1,order:602,group:1,subgroup:23,version:11,tone:5,shortCodes:["man_curly_haired_tone5"]}],shortCodes:["man_curly_haired"]},{label:"man: white hair",hexcode:"1F468-200D-1F9B3",tags:["adult","bro","man","white hair"],emoji:"👨‍🦳",text:"",type:1,order:603,group:1,subgroup:23,version:11,skins:[{label:"man: light skin tone, white hair",hexcode:"1F468-1F3FB-200D-1F9B3",emoji:"👨🏻‍🦳",text:"",type:1,order:604,group:1,subgroup:23,version:11,tone:1,shortCodes:["man_white_haired_tone1"]},{label:"man: medium-light skin tone, white hair",hexcode:"1F468-1F3FC-200D-1F9B3",emoji:"👨🏼‍🦳",text:"",type:1,order:605,group:1,subgroup:23,version:11,tone:2,shortCodes:["man_white_haired_tone2"]},{label:"man: medium skin tone, white hair",hexcode:"1F468-1F3FD-200D-1F9B3",emoji:"👨🏽‍🦳",text:"",type:1,order:606,group:1,subgroup:23,version:11,tone:3,shortCodes:["man_white_haired_tone3"]},{label:"man: medium-dark skin tone, white hair",hexcode:"1F468-1F3FE-200D-1F9B3",emoji:"👨🏾‍🦳",text:"",type:1,order:607,group:1,subgroup:23,version:11,tone:4,shortCodes:["man_white_haired_tone4"]},{label:"man: dark skin tone, white hair",hexcode:"1F468-1F3FF-200D-1F9B3",emoji:"👨🏿‍🦳",text:"",type:1,order:608,group:1,subgroup:23,version:11,tone:5,shortCodes:["man_white_haired_tone5"]}],shortCodes:["man_white_haired"]},{label:"man: bald",hexcode:"1F468-200D-1F9B2",tags:["adult","bald","bro","man"],emoji:"👨‍🦲",text:"",type:1,order:609,group:1,subgroup:23,version:11,skins:[{label:"man: light skin tone, bald",hexcode:"1F468-1F3FB-200D-1F9B2",emoji:"👨🏻‍🦲",text:"",type:1,order:610,group:1,subgroup:23,version:11,tone:1,shortCodes:["man_bald_tone1"]},{label:"man: medium-light skin tone, bald",hexcode:"1F468-1F3FC-200D-1F9B2",emoji:"👨🏼‍🦲",text:"",type:1,order:611,group:1,subgroup:23,version:11,tone:2,shortCodes:["man_bald_tone2"]},{label:"man: medium skin tone, bald",hexcode:"1F468-1F3FD-200D-1F9B2",emoji:"👨🏽‍🦲",text:"",type:1,order:612,group:1,subgroup:23,version:11,tone:3,shortCodes:["man_bald_tone3"]},{label:"man: medium-dark skin tone, bald",hexcode:"1F468-1F3FE-200D-1F9B2",emoji:"👨🏾‍🦲",text:"",type:1,order:613,group:1,subgroup:23,version:11,tone:4,shortCodes:["man_bald_tone4"]},{label:"man: dark skin tone, bald",hexcode:"1F468-1F3FF-200D-1F9B2",emoji:"👨🏿‍🦲",text:"",type:1,order:614,group:1,subgroup:23,version:11,tone:5,shortCodes:["man_bald_tone5"]}],shortCodes:["man_bald"]},{label:"woman",hexcode:"1F469",tags:["adult","lady"],emoji:"👩",text:"",type:1,order:615,group:1,subgroup:23,version:.6,skins:[{label:"woman: light skin tone",hexcode:"1F469-1F3FB",emoji:"👩🏻",text:"",type:1,order:616,group:1,subgroup:23,version:1,tone:1,shortCodes:["woman_tone1"]},{label:"woman: medium-light skin tone",hexcode:"1F469-1F3FC",emoji:"👩🏼",text:"",type:1,order:617,group:1,subgroup:23,version:1,tone:2,shortCodes:["woman_tone2"]},{label:"woman: medium skin tone",hexcode:"1F469-1F3FD",emoji:"👩🏽",text:"",type:1,order:618,group:1,subgroup:23,version:1,tone:3,shortCodes:["woman_tone3"]},{label:"woman: medium-dark skin tone",hexcode:"1F469-1F3FE",emoji:"👩🏾",text:"",type:1,order:619,group:1,subgroup:23,version:1,tone:4,shortCodes:["woman_tone4"]},{label:"woman: dark skin tone",hexcode:"1F469-1F3FF",emoji:"👩🏿",text:"",type:1,order:620,group:1,subgroup:23,version:1,tone:5,shortCodes:["woman_tone5"]}],shortCodes:["woman"]},{label:"woman: red hair",hexcode:"1F469-200D-1F9B0",tags:["adult","lady","red hair","woman"],emoji:"👩‍🦰",text:"",type:1,order:621,group:1,subgroup:23,version:11,skins:[{label:"woman: light skin tone, red hair",hexcode:"1F469-1F3FB-200D-1F9B0",emoji:"👩🏻‍🦰",text:"",type:1,order:622,group:1,subgroup:23,version:11,tone:1,shortCodes:["woman_red_haired_tone1"]},{label:"woman: medium-light skin tone, red hair",hexcode:"1F469-1F3FC-200D-1F9B0",emoji:"👩🏼‍🦰",text:"",type:1,order:623,group:1,subgroup:23,version:11,tone:2,shortCodes:["woman_red_haired_tone2"]},{label:"woman: medium skin tone, red hair",hexcode:"1F469-1F3FD-200D-1F9B0",emoji:"👩🏽‍🦰",text:"",type:1,order:624,group:1,subgroup:23,version:11,tone:3,shortCodes:["woman_red_haired_tone3"]},{label:"woman: medium-dark skin tone, red hair",hexcode:"1F469-1F3FE-200D-1F9B0",emoji:"👩🏾‍🦰",text:"",type:1,order:625,group:1,subgroup:23,version:11,tone:4,shortCodes:["woman_red_haired_tone4"]},{label:"woman: dark skin tone, red hair",hexcode:"1F469-1F3FF-200D-1F9B0",emoji:"👩🏿‍🦰",text:"",type:1,order:626,group:1,subgroup:23,version:11,tone:5,shortCodes:["woman_red_haired_tone5"]}],shortCodes:["woman_red_haired"]},{label:"person: red hair",hexcode:"1F9D1-200D-1F9B0",tags:["adult","person","red hair"],emoji:"🧑‍🦰",text:"",type:1,order:627,group:1,subgroup:23,version:12.1,skins:[{label:"person: light skin tone, red hair",hexcode:"1F9D1-1F3FB-200D-1F9B0",emoji:"🧑🏻‍🦰",text:"",type:1,order:628,group:1,subgroup:23,version:12.1,tone:1,shortCodes:["red_haired_tone1"]},{label:"person: medium-light skin tone, red hair",hexcode:"1F9D1-1F3FC-200D-1F9B0",emoji:"🧑🏼‍🦰",text:"",type:1,order:629,group:1,subgroup:23,version:12.1,tone:2,shortCodes:["red_haired_tone2"]},{label:"person: medium skin tone, red hair",hexcode:"1F9D1-1F3FD-200D-1F9B0",emoji:"🧑🏽‍🦰",text:"",type:1,order:630,group:1,subgroup:23,version:12.1,tone:3,shortCodes:["red_haired_tone3"]},{label:"person: medium-dark skin tone, red hair",hexcode:"1F9D1-1F3FE-200D-1F9B0",emoji:"🧑🏾‍🦰",text:"",type:1,order:631,group:1,subgroup:23,version:12.1,tone:4,shortCodes:["red_haired_tone4"]},{label:"person: dark skin tone, red hair",hexcode:"1F9D1-1F3FF-200D-1F9B0",emoji:"🧑🏿‍🦰",text:"",type:1,order:632,group:1,subgroup:23,version:12.1,tone:5,shortCodes:["red_haired_tone5"]}],shortCodes:["red_haired"]},{label:"woman: curly hair",hexcode:"1F469-200D-1F9B1",tags:["adult","curly hair","lady","woman"],emoji:"👩‍🦱",text:"",type:1,order:633,group:1,subgroup:23,version:11,skins:[{label:"woman: light skin tone, curly hair",hexcode:"1F469-1F3FB-200D-1F9B1",emoji:"👩🏻‍🦱",text:"",type:1,order:634,group:1,subgroup:23,version:11,tone:1,shortCodes:["woman_curly_haired_tone1"]},{label:"woman: medium-light skin tone, curly hair",hexcode:"1F469-1F3FC-200D-1F9B1",emoji:"👩🏼‍🦱",text:"",type:1,order:635,group:1,subgroup:23,version:11,tone:2,shortCodes:["woman_curly_haired_tone2"]},{label:"woman: medium skin tone, curly hair",hexcode:"1F469-1F3FD-200D-1F9B1",emoji:"👩🏽‍🦱",text:"",type:1,order:636,group:1,subgroup:23,version:11,tone:3,shortCodes:["woman_curly_haired_tone3"]},{label:"woman: medium-dark skin tone, curly hair",hexcode:"1F469-1F3FE-200D-1F9B1",emoji:"👩🏾‍🦱",text:"",type:1,order:637,group:1,subgroup:23,version:11,tone:4,shortCodes:["woman_curly_haired_tone4"]},{label:"woman: dark skin tone, curly hair",hexcode:"1F469-1F3FF-200D-1F9B1",emoji:"👩🏿‍🦱",text:"",type:1,order:638,group:1,subgroup:23,version:11,tone:5,shortCodes:["woman_curly_haired_tone5"]}],shortCodes:["woman_curly_haired"]},{label:"person: curly hair",hexcode:"1F9D1-200D-1F9B1",tags:["adult","curly hair","person"],emoji:"🧑‍🦱",text:"",type:1,order:639,group:1,subgroup:23,version:12.1,skins:[{label:"person: light skin tone, curly hair",hexcode:"1F9D1-1F3FB-200D-1F9B1",emoji:"🧑🏻‍🦱",text:"",type:1,order:640,group:1,subgroup:23,version:12.1,tone:1,shortCodes:["curly_haired_tone1"]},{label:"person: medium-light skin tone, curly hair",hexcode:"1F9D1-1F3FC-200D-1F9B1",emoji:"🧑🏼‍🦱",text:"",type:1,order:641,group:1,subgroup:23,version:12.1,tone:2,shortCodes:["curly_haired_tone2"]},{label:"person: medium skin tone, curly hair",hexcode:"1F9D1-1F3FD-200D-1F9B1",emoji:"🧑🏽‍🦱",text:"",type:1,order:642,group:1,subgroup:23,version:12.1,tone:3,shortCodes:["curly_haired_tone3"]},{label:"person: medium-dark skin tone, curly hair",hexcode:"1F9D1-1F3FE-200D-1F9B1",emoji:"🧑🏾‍🦱",text:"",type:1,order:643,group:1,subgroup:23,version:12.1,tone:4,shortCodes:["curly_haired_tone4"]},{label:"person: dark skin tone, curly hair",hexcode:"1F9D1-1F3FF-200D-1F9B1",emoji:"🧑🏿‍🦱",text:"",type:1,order:644,group:1,subgroup:23,version:12.1,tone:5,shortCodes:["curly_haired_tone5"]}],shortCodes:["curly_haired"]},{label:"woman: white hair",hexcode:"1F469-200D-1F9B3",tags:["adult","lady","white hair","woman"],emoji:"👩‍🦳",text:"",type:1,order:645,group:1,subgroup:23,version:11,skins:[{label:"woman: light skin tone, white hair",hexcode:"1F469-1F3FB-200D-1F9B3",emoji:"👩🏻‍🦳",text:"",type:1,order:646,group:1,subgroup:23,version:11,tone:1,shortCodes:["woman_white_haired_tone1"]},{label:"woman: medium-light skin tone, white hair",hexcode:"1F469-1F3FC-200D-1F9B3",emoji:"👩🏼‍🦳",text:"",type:1,order:647,group:1,subgroup:23,version:11,tone:2,shortCodes:["woman_white_haired_tone2"]},{label:"woman: medium skin tone, white hair",hexcode:"1F469-1F3FD-200D-1F9B3",emoji:"👩🏽‍🦳",text:"",type:1,order:648,group:1,subgroup:23,version:11,tone:3,shortCodes:["woman_white_haired_tone3"]},{label:"woman: medium-dark skin tone, white hair",hexcode:"1F469-1F3FE-200D-1F9B3",emoji:"👩🏾‍🦳",text:"",type:1,order:649,group:1,subgroup:23,version:11,tone:4,shortCodes:["woman_white_haired_tone4"]},{label:"woman: dark skin tone, white hair",hexcode:"1F469-1F3FF-200D-1F9B3",emoji:"👩🏿‍🦳",text:"",type:1,order:650,group:1,subgroup:23,version:11,tone:5,shortCodes:["woman_white_haired_tone5"]}],shortCodes:["woman_white_haired"]},{label:"person: white hair",hexcode:"1F9D1-200D-1F9B3",tags:["adult","person","white hair"],emoji:"🧑‍🦳",text:"",type:1,order:651,group:1,subgroup:23,version:12.1,skins:[{label:"person: light skin tone, white hair",hexcode:"1F9D1-1F3FB-200D-1F9B3",emoji:"🧑🏻‍🦳",text:"",type:1,order:652,group:1,subgroup:23,version:12.1,tone:1,shortCodes:["white_haired_tone1"]},{label:"person: medium-light skin tone, white hair",hexcode:"1F9D1-1F3FC-200D-1F9B3",emoji:"🧑🏼‍🦳",text:"",type:1,order:653,group:1,subgroup:23,version:12.1,tone:2,shortCodes:["white_haired_tone2"]},{label:"person: medium skin tone, white hair",hexcode:"1F9D1-1F3FD-200D-1F9B3",emoji:"🧑🏽‍🦳",text:"",type:1,order:654,group:1,subgroup:23,version:12.1,tone:3,shortCodes:["white_haired_tone3"]},{label:"person: medium-dark skin tone, white hair",hexcode:"1F9D1-1F3FE-200D-1F9B3",emoji:"🧑🏾‍🦳",text:"",type:1,order:655,group:1,subgroup:23,version:12.1,tone:4,shortCodes:["white_haired_tone4"]},{label:"person: dark skin tone, white hair",hexcode:"1F9D1-1F3FF-200D-1F9B3",emoji:"🧑🏿‍🦳",text:"",type:1,order:656,group:1,subgroup:23,version:12.1,tone:5,shortCodes:["white_haired_tone5"]}],shortCodes:["white_haired"]},{label:"woman: bald",hexcode:"1F469-200D-1F9B2",tags:["adult","bald","lady","woman"],emoji:"👩‍🦲",text:"",type:1,order:657,group:1,subgroup:23,version:11,skins:[{label:"woman: light skin tone, bald",hexcode:"1F469-1F3FB-200D-1F9B2",emoji:"👩🏻‍🦲",text:"",type:1,order:658,group:1,subgroup:23,version:11,tone:1,shortCodes:["woman_bald_tone1"]},{label:"woman: medium-light skin tone, bald",hexcode:"1F469-1F3FC-200D-1F9B2",emoji:"👩🏼‍🦲",text:"",type:1,order:659,group:1,subgroup:23,version:11,tone:2,shortCodes:["woman_bald_tone2"]},{label:"woman: medium skin tone, bald",hexcode:"1F469-1F3FD-200D-1F9B2",emoji:"👩🏽‍🦲",text:"",type:1,order:660,group:1,subgroup:23,version:11,tone:3,shortCodes:["woman_bald_tone3"]},{label:"woman: medium-dark skin tone, bald",hexcode:"1F469-1F3FE-200D-1F9B2",emoji:"👩🏾‍🦲",text:"",type:1,order:661,group:1,subgroup:23,version:11,tone:4,shortCodes:["woman_bald_tone4"]},{label:"woman: dark skin tone, bald",hexcode:"1F469-1F3FF-200D-1F9B2",emoji:"👩🏿‍🦲",text:"",type:1,order:662,group:1,subgroup:23,version:11,tone:5,shortCodes:["woman_bald_tone5"]}],shortCodes:["woman_bald"]},{label:"person: bald",hexcode:"1F9D1-200D-1F9B2",tags:["adult","bald","person"],emoji:"🧑‍🦲",text:"",type:1,order:663,group:1,subgroup:23,version:12.1,skins:[{label:"person: light skin tone, bald",hexcode:"1F9D1-1F3FB-200D-1F9B2",emoji:"🧑🏻‍🦲",text:"",type:1,order:664,group:1,subgroup:23,version:12.1,tone:1,shortCodes:["bald_tone1"]},{label:"person: medium-light skin tone, bald",hexcode:"1F9D1-1F3FC-200D-1F9B2",emoji:"🧑🏼‍🦲",text:"",type:1,order:665,group:1,subgroup:23,version:12.1,tone:2,shortCodes:["bald_tone2"]},{label:"person: medium skin tone, bald",hexcode:"1F9D1-1F3FD-200D-1F9B2",emoji:"🧑🏽‍🦲",text:"",type:1,order:666,group:1,subgroup:23,version:12.1,tone:3,shortCodes:["bald_tone3"]},{label:"person: medium-dark skin tone, bald",hexcode:"1F9D1-1F3FE-200D-1F9B2",emoji:"🧑🏾‍🦲",text:"",type:1,order:667,group:1,subgroup:23,version:12.1,tone:4,shortCodes:["bald_tone4"]},{label:"person: dark skin tone, bald",hexcode:"1F9D1-1F3FF-200D-1F9B2",emoji:"🧑🏿‍🦲",text:"",type:1,order:668,group:1,subgroup:23,version:12.1,tone:5,shortCodes:["bald_tone5"]}],shortCodes:["bald"]},{label:"woman: blond hair",hexcode:"1F471-200D-2640-FE0F",tags:["blond","blond-haired","blonde","hair","woman"],emoji:"👱‍♀️",text:"",type:1,order:669,group:1,subgroup:23,version:4,gender:0,skins:[{label:"woman: light skin tone, blond hair",hexcode:"1F471-1F3FB-200D-2640-FE0F",emoji:"👱🏻‍♀️",text:"",type:1,order:671,group:1,subgroup:23,version:4,gender:0,tone:1,shortCodes:["woman_blond_haired_tone1"]},{label:"woman: medium-light skin tone, blond hair",hexcode:"1F471-1F3FC-200D-2640-FE0F",emoji:"👱🏼‍♀️",text:"",type:1,order:673,group:1,subgroup:23,version:4,gender:0,tone:2,shortCodes:["woman_blond_haired_tone2"]},{label:"woman: medium skin tone, blond hair",hexcode:"1F471-1F3FD-200D-2640-FE0F",emoji:"👱🏽‍♀️",text:"",type:1,order:675,group:1,subgroup:23,version:4,gender:0,tone:3,shortCodes:["woman_blond_haired_tone3"]},{label:"woman: medium-dark skin tone, blond hair",hexcode:"1F471-1F3FE-200D-2640-FE0F",emoji:"👱🏾‍♀️",text:"",type:1,order:677,group:1,subgroup:23,version:4,gender:0,tone:4,shortCodes:["woman_blond_haired_tone4"]},{label:"woman: dark skin tone, blond hair",hexcode:"1F471-1F3FF-200D-2640-FE0F",emoji:"👱🏿‍♀️",text:"",type:1,order:679,group:1,subgroup:23,version:4,gender:0,tone:5,shortCodes:["woman_blond_haired_tone5"]}],shortCodes:["woman_blond_haired"]},{label:"man: blond hair",hexcode:"1F471-200D-2642-FE0F",tags:["blond","blond-haired","hair","man"],emoji:"👱‍♂️",text:"",type:1,order:681,group:1,subgroup:23,version:4,gender:1,skins:[{label:"man: light skin tone, blond hair",hexcode:"1F471-1F3FB-200D-2642-FE0F",emoji:"👱🏻‍♂️",text:"",type:1,order:683,group:1,subgroup:23,version:4,gender:1,tone:1,shortCodes:["man_blond_haired_tone1"]},{label:"man: medium-light skin tone, blond hair",hexcode:"1F471-1F3FC-200D-2642-FE0F",emoji:"👱🏼‍♂️",text:"",type:1,order:685,group:1,subgroup:23,version:4,gender:1,tone:2,shortCodes:["man_blond_haired_tone2"]},{label:"man: medium skin tone, blond hair",hexcode:"1F471-1F3FD-200D-2642-FE0F",emoji:"👱🏽‍♂️",text:"",type:1,order:687,group:1,subgroup:23,version:4,gender:1,tone:3,shortCodes:["man_blond_haired_tone3"]},{label:"man: medium-dark skin tone, blond hair",hexcode:"1F471-1F3FE-200D-2642-FE0F",emoji:"👱🏾‍♂️",text:"",type:1,order:689,group:1,subgroup:23,version:4,gender:1,tone:4,shortCodes:["man_blond_haired_tone4"]},{label:"man: dark skin tone, blond hair",hexcode:"1F471-1F3FF-200D-2642-FE0F",emoji:"👱🏿‍♂️",text:"",type:1,order:691,group:1,subgroup:23,version:4,gender:1,tone:5,shortCodes:["man_blond_haired_tone5"]}],shortCodes:["man_blond_haired"]},{label:"older person",hexcode:"1F9D3",tags:["adult","elderly","grandparent","old","person","wise"],emoji:"🧓",text:"",type:1,order:693,group:1,subgroup:23,version:5,skins:[{label:"older person: light skin tone",hexcode:"1F9D3-1F3FB",emoji:"🧓🏻",text:"",type:1,order:694,group:1,subgroup:23,version:5,tone:1,shortCodes:["older_adult_tone1"]},{label:"older person: medium-light skin tone",hexcode:"1F9D3-1F3FC",emoji:"🧓🏼",text:"",type:1,order:695,group:1,subgroup:23,version:5,tone:2,shortCodes:["older_adult_tone2"]},{label:"older person: medium skin tone",hexcode:"1F9D3-1F3FD",emoji:"🧓🏽",text:"",type:1,order:696,group:1,subgroup:23,version:5,tone:3,shortCodes:["older_adult_tone3"]},{label:"older person: medium-dark skin tone",hexcode:"1F9D3-1F3FE",emoji:"🧓🏾",text:"",type:1,order:697,group:1,subgroup:23,version:5,tone:4,shortCodes:["older_adult_tone4"]},{label:"older person: dark skin tone",hexcode:"1F9D3-1F3FF",emoji:"🧓🏿",text:"",type:1,order:698,group:1,subgroup:23,version:5,tone:5,shortCodes:["older_adult_tone5"]}],shortCodes:["older_adult"]},{label:"old man",hexcode:"1F474",tags:["adult","bald","elderly","gramps","grandfather","grandpa","man","old","wise"],emoji:"👴",text:"",type:1,order:699,group:1,subgroup:23,version:.6,skins:[{label:"old man: light skin tone",hexcode:"1F474-1F3FB",emoji:"👴🏻",text:"",type:1,order:700,group:1,subgroup:23,version:1,tone:1,shortCodes:["older_man_tone1"]},{label:"old man: medium-light skin tone",hexcode:"1F474-1F3FC",emoji:"👴🏼",text:"",type:1,order:701,group:1,subgroup:23,version:1,tone:2,shortCodes:["older_man_tone2"]},{label:"old man: medium skin tone",hexcode:"1F474-1F3FD",emoji:"👴🏽",text:"",type:1,order:702,group:1,subgroup:23,version:1,tone:3,shortCodes:["older_man_tone3"]},{label:"old man: medium-dark skin tone",hexcode:"1F474-1F3FE",emoji:"👴🏾",text:"",type:1,order:703,group:1,subgroup:23,version:1,tone:4,shortCodes:["older_man_tone4"]},{label:"old man: dark skin tone",hexcode:"1F474-1F3FF",emoji:"👴🏿",text:"",type:1,order:704,group:1,subgroup:23,version:1,tone:5,shortCodes:["older_man_tone5"]}],shortCodes:["older_man"]},{label:"old woman",hexcode:"1F475",tags:["adult","elderly","grandma","grandmother","granny","lady","old","wise","woman"],emoji:"👵",text:"",type:1,order:705,group:1,subgroup:23,version:.6,skins:[{label:"old woman: light skin tone",hexcode:"1F475-1F3FB",emoji:"👵🏻",text:"",type:1,order:706,group:1,subgroup:23,version:1,tone:1,shortCodes:["older_woman_tone1"]},{label:"old woman: medium-light skin tone",hexcode:"1F475-1F3FC",emoji:"👵🏼",text:"",type:1,order:707,group:1,subgroup:23,version:1,tone:2,shortCodes:["older_woman_tone2"]},{label:"old woman: medium skin tone",hexcode:"1F475-1F3FD",emoji:"👵🏽",text:"",type:1,order:708,group:1,subgroup:23,version:1,tone:3,shortCodes:["older_woman_tone3"]},{label:"old woman: medium-dark skin tone",hexcode:"1F475-1F3FE",emoji:"👵🏾",text:"",type:1,order:709,group:1,subgroup:23,version:1,tone:4,shortCodes:["older_woman_tone4"]},{label:"old woman: dark skin tone",hexcode:"1F475-1F3FF",emoji:"👵🏿",text:"",type:1,order:710,group:1,subgroup:23,version:1,tone:5,shortCodes:["older_woman_tone5"]}],shortCodes:["older_woman"]},{label:"person frowning",hexcode:"1F64D",tags:["annoyed","disappointed","disgruntled","disturbed","frown","frowning","frustrated","gesture","irritated","person","upset"],emoji:"🙍",text:"",type:1,order:711,group:1,subgroup:24,version:.6,skins:[{label:"person frowning: light skin tone",hexcode:"1F64D-1F3FB",emoji:"🙍🏻",text:"",type:1,order:712,group:1,subgroup:24,version:1,tone:1,shortCodes:["person_frowning_tone1"]},{label:"person frowning: medium-light skin tone",hexcode:"1F64D-1F3FC",emoji:"🙍🏼",text:"",type:1,order:713,group:1,subgroup:24,version:1,tone:2,shortCodes:["person_frowning_tone2"]},{label:"person frowning: medium skin tone",hexcode:"1F64D-1F3FD",emoji:"🙍🏽",text:"",type:1,order:714,group:1,subgroup:24,version:1,tone:3,shortCodes:["person_frowning_tone3"]},{label:"person frowning: medium-dark skin tone",hexcode:"1F64D-1F3FE",emoji:"🙍🏾",text:"",type:1,order:715,group:1,subgroup:24,version:1,tone:4,shortCodes:["person_frowning_tone4"]},{label:"person frowning: dark skin tone",hexcode:"1F64D-1F3FF",emoji:"🙍🏿",text:"",type:1,order:716,group:1,subgroup:24,version:1,tone:5,shortCodes:["person_frowning_tone5"]}],shortCodes:["person_frowning"]},{label:"man frowning",hexcode:"1F64D-200D-2642-FE0F",tags:["annoyed","disappointed","disgruntled","disturbed","frown","frowning","frustrated","gesture","irritated","man","upset"],emoji:"🙍‍♂️",text:"",type:1,order:717,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man frowning: light skin tone",hexcode:"1F64D-1F3FB-200D-2642-FE0F",emoji:"🙍🏻‍♂️",text:"",type:1,order:719,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_frowning_tone1"]},{label:"man frowning: medium-light skin tone",hexcode:"1F64D-1F3FC-200D-2642-FE0F",emoji:"🙍🏼‍♂️",text:"",type:1,order:721,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_frowning_tone2"]},{label:"man frowning: medium skin tone",hexcode:"1F64D-1F3FD-200D-2642-FE0F",emoji:"🙍🏽‍♂️",text:"",type:1,order:723,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_frowning_tone3"]},{label:"man frowning: medium-dark skin tone",hexcode:"1F64D-1F3FE-200D-2642-FE0F",emoji:"🙍🏾‍♂️",text:"",type:1,order:725,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_frowning_tone4"]},{label:"man frowning: dark skin tone",hexcode:"1F64D-1F3FF-200D-2642-FE0F",emoji:"🙍🏿‍♂️",text:"",type:1,order:727,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_frowning_tone5"]}],shortCodes:["man_frowning"]},{label:"woman frowning",hexcode:"1F64D-200D-2640-FE0F",tags:["annoyed","disappointed","disgruntled","disturbed","frown","frowning","frustrated","gesture","irritated","upset","woman"],emoji:"🙍‍♀️",text:"",type:1,order:729,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman frowning: light skin tone",hexcode:"1F64D-1F3FB-200D-2640-FE0F",emoji:"🙍🏻‍♀️",text:"",type:1,order:731,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_frowning_tone1"]},{label:"woman frowning: medium-light skin tone",hexcode:"1F64D-1F3FC-200D-2640-FE0F",emoji:"🙍🏼‍♀️",text:"",type:1,order:733,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_frowning_tone2"]},{label:"woman frowning: medium skin tone",hexcode:"1F64D-1F3FD-200D-2640-FE0F",emoji:"🙍🏽‍♀️",text:"",type:1,order:735,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_frowning_tone3"]},{label:"woman frowning: medium-dark skin tone",hexcode:"1F64D-1F3FE-200D-2640-FE0F",emoji:"🙍🏾‍♀️",text:"",type:1,order:737,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_frowning_tone4"]},{label:"woman frowning: dark skin tone",hexcode:"1F64D-1F3FF-200D-2640-FE0F",emoji:"🙍🏿‍♀️",text:"",type:1,order:739,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_frowning_tone5"]}],shortCodes:["woman_frowning"]},{label:"person pouting",hexcode:"1F64E",tags:["disappointed","downtrodden","frown","grimace","person","pouting","scowl","sulk","upset","whine"],emoji:"🙎",text:"",type:1,order:741,group:1,subgroup:24,version:.6,skins:[{label:"person pouting: light skin tone",hexcode:"1F64E-1F3FB",emoji:"🙎🏻",text:"",type:1,order:742,group:1,subgroup:24,version:1,tone:1,shortCodes:["person_pouting_tone1","pouting_tone1"]},{label:"person pouting: medium-light skin tone",hexcode:"1F64E-1F3FC",emoji:"🙎🏼",text:"",type:1,order:743,group:1,subgroup:24,version:1,tone:2,shortCodes:["person_pouting_tone2","pouting_tone2"]},{label:"person pouting: medium skin tone",hexcode:"1F64E-1F3FD",emoji:"🙎🏽",text:"",type:1,order:744,group:1,subgroup:24,version:1,tone:3,shortCodes:["person_pouting_tone3","pouting_tone3"]},{label:"person pouting: medium-dark skin tone",hexcode:"1F64E-1F3FE",emoji:"🙎🏾",text:"",type:1,order:745,group:1,subgroup:24,version:1,tone:4,shortCodes:["person_pouting_tone4","pouting_tone4"]},{label:"person pouting: dark skin tone",hexcode:"1F64E-1F3FF",emoji:"🙎🏿",text:"",type:1,order:746,group:1,subgroup:24,version:1,tone:5,shortCodes:["person_pouting_tone5","pouting_tone5"]}],shortCodes:["person_pouting","pouting"]},{label:"man pouting",hexcode:"1F64E-200D-2642-FE0F",tags:["disappointed","downtrodden","frown","grimace","man","pouting","scowl","sulk","upset","whine"],emoji:"🙎‍♂️",text:"",type:1,order:747,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man pouting: light skin tone",hexcode:"1F64E-1F3FB-200D-2642-FE0F",emoji:"🙎🏻‍♂️",text:"",type:1,order:749,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_pouting_tone1"]},{label:"man pouting: medium-light skin tone",hexcode:"1F64E-1F3FC-200D-2642-FE0F",emoji:"🙎🏼‍♂️",text:"",type:1,order:751,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_pouting_tone2"]},{label:"man pouting: medium skin tone",hexcode:"1F64E-1F3FD-200D-2642-FE0F",emoji:"🙎🏽‍♂️",text:"",type:1,order:753,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_pouting_tone3"]},{label:"man pouting: medium-dark skin tone",hexcode:"1F64E-1F3FE-200D-2642-FE0F",emoji:"🙎🏾‍♂️",text:"",type:1,order:755,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_pouting_tone4"]},{label:"man pouting: dark skin tone",hexcode:"1F64E-1F3FF-200D-2642-FE0F",emoji:"🙎🏿‍♂️",text:"",type:1,order:757,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_pouting_tone5"]}],shortCodes:["man_pouting"]},{label:"woman pouting",hexcode:"1F64E-200D-2640-FE0F",tags:["disappointed","downtrodden","frown","grimace","pouting","scowl","sulk","upset","whine","woman"],emoji:"🙎‍♀️",text:"",type:1,order:759,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman pouting: light skin tone",hexcode:"1F64E-1F3FB-200D-2640-FE0F",emoji:"🙎🏻‍♀️",text:"",type:1,order:761,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_pouting_tone1"]},{label:"woman pouting: medium-light skin tone",hexcode:"1F64E-1F3FC-200D-2640-FE0F",emoji:"🙎🏼‍♀️",text:"",type:1,order:763,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_pouting_tone2"]},{label:"woman pouting: medium skin tone",hexcode:"1F64E-1F3FD-200D-2640-FE0F",emoji:"🙎🏽‍♀️",text:"",type:1,order:765,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_pouting_tone3"]},{label:"woman pouting: medium-dark skin tone",hexcode:"1F64E-1F3FE-200D-2640-FE0F",emoji:"🙎🏾‍♀️",text:"",type:1,order:767,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_pouting_tone4"]},{label:"woman pouting: dark skin tone",hexcode:"1F64E-1F3FF-200D-2640-FE0F",emoji:"🙎🏿‍♀️",text:"",type:1,order:769,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_pouting_tone5"]}],shortCodes:["woman_pouting"]},{label:"person gesturing NO",hexcode:"1F645",tags:["forbidden","gesture","hand","no","not","person","prohibit"],emoji:"🙅",text:"",type:1,order:771,group:1,subgroup:24,version:.6,skins:[{label:"person gesturing NO: light skin tone",hexcode:"1F645-1F3FB",emoji:"🙅🏻",text:"",type:1,order:772,group:1,subgroup:24,version:1,tone:1,shortCodes:["no_good_tone1","person_gesturing_no_tone1"]},{label:"person gesturing NO: medium-light skin tone",hexcode:"1F645-1F3FC",emoji:"🙅🏼",text:"",type:1,order:773,group:1,subgroup:24,version:1,tone:2,shortCodes:["no_good_tone2","person_gesturing_no_tone2"]},{label:"person gesturing NO: medium skin tone",hexcode:"1F645-1F3FD",emoji:"🙅🏽",text:"",type:1,order:774,group:1,subgroup:24,version:1,tone:3,shortCodes:["no_good_tone3","person_gesturing_no_tone3"]},{label:"person gesturing NO: medium-dark skin tone",hexcode:"1F645-1F3FE",emoji:"🙅🏾",text:"",type:1,order:775,group:1,subgroup:24,version:1,tone:4,shortCodes:["no_good_tone4","person_gesturing_no_tone4"]},{label:"person gesturing NO: dark skin tone",hexcode:"1F645-1F3FF",emoji:"🙅🏿",text:"",type:1,order:776,group:1,subgroup:24,version:1,tone:5,shortCodes:["no_good_tone5","person_gesturing_no_tone5"]}],shortCodes:["no_good","person_gesturing_no"]},{label:"man gesturing NO",hexcode:"1F645-200D-2642-FE0F",tags:["forbidden","gesture","hand","man","no","not","prohibit"],emoji:"🙅‍♂️",text:"",type:1,order:777,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man gesturing NO: light skin tone",hexcode:"1F645-1F3FB-200D-2642-FE0F",emoji:"🙅🏻‍♂️",text:"",type:1,order:779,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_gesturing_no_tone1"]},{label:"man gesturing NO: medium-light skin tone",hexcode:"1F645-1F3FC-200D-2642-FE0F",emoji:"🙅🏼‍♂️",text:"",type:1,order:781,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_gesturing_no_tone2"]},{label:"man gesturing NO: medium skin tone",hexcode:"1F645-1F3FD-200D-2642-FE0F",emoji:"🙅🏽‍♂️",text:"",type:1,order:783,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_gesturing_no_tone3"]},{label:"man gesturing NO: medium-dark skin tone",hexcode:"1F645-1F3FE-200D-2642-FE0F",emoji:"🙅🏾‍♂️",text:"",type:1,order:785,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_gesturing_no_tone4"]},{label:"man gesturing NO: dark skin tone",hexcode:"1F645-1F3FF-200D-2642-FE0F",emoji:"🙅🏿‍♂️",text:"",type:1,order:787,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_gesturing_no_tone5"]}],shortCodes:["man_gesturing_no"]},{label:"woman gesturing NO",hexcode:"1F645-200D-2640-FE0F",tags:["forbidden","gesture","hand","no","not","prohibit","woman"],emoji:"🙅‍♀️",text:"",type:1,order:789,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman gesturing NO: light skin tone",hexcode:"1F645-1F3FB-200D-2640-FE0F",emoji:"🙅🏻‍♀️",text:"",type:1,order:791,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_gesturing_no_tone1"]},{label:"woman gesturing NO: medium-light skin tone",hexcode:"1F645-1F3FC-200D-2640-FE0F",emoji:"🙅🏼‍♀️",text:"",type:1,order:793,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_gesturing_no_tone2"]},{label:"woman gesturing NO: medium skin tone",hexcode:"1F645-1F3FD-200D-2640-FE0F",emoji:"🙅🏽‍♀️",text:"",type:1,order:795,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_gesturing_no_tone3"]},{label:"woman gesturing NO: medium-dark skin tone",hexcode:"1F645-1F3FE-200D-2640-FE0F",emoji:"🙅🏾‍♀️",text:"",type:1,order:797,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_gesturing_no_tone4"]},{label:"woman gesturing NO: dark skin tone",hexcode:"1F645-1F3FF-200D-2640-FE0F",emoji:"🙅🏿‍♀️",text:"",type:1,order:799,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_gesturing_no_tone5"]}],shortCodes:["woman_gesturing_no"]},{label:"person gesturing OK",hexcode:"1F646",tags:["exercise","gesture","gesturing","hand","ok","omg","person"],emoji:"🙆",text:"",type:1,order:801,group:1,subgroup:24,version:.6,skins:[{label:"person gesturing OK: light skin tone",hexcode:"1F646-1F3FB",emoji:"🙆🏻",text:"",type:1,order:802,group:1,subgroup:24,version:1,tone:1,shortCodes:["all_good_tone1","person_gesturing_ok_tone1"]},{label:"person gesturing OK: medium-light skin tone",hexcode:"1F646-1F3FC",emoji:"🙆🏼",text:"",type:1,order:803,group:1,subgroup:24,version:1,tone:2,shortCodes:["all_good_tone2","person_gesturing_ok_tone2"]},{label:"person gesturing OK: medium skin tone",hexcode:"1F646-1F3FD",emoji:"🙆🏽",text:"",type:1,order:804,group:1,subgroup:24,version:1,tone:3,shortCodes:["all_good_tone3","person_gesturing_ok_tone3"]},{label:"person gesturing OK: medium-dark skin tone",hexcode:"1F646-1F3FE",emoji:"🙆🏾",text:"",type:1,order:805,group:1,subgroup:24,version:1,tone:4,shortCodes:["all_good_tone4","person_gesturing_ok_tone4"]},{label:"person gesturing OK: dark skin tone",hexcode:"1F646-1F3FF",emoji:"🙆🏿",text:"",type:1,order:806,group:1,subgroup:24,version:1,tone:5,shortCodes:["all_good_tone5","person_gesturing_ok_tone5"]}],shortCodes:["all_good","person_gesturing_ok"]},{label:"man gesturing OK",hexcode:"1F646-200D-2642-FE0F",tags:["exercise","gesture","gesturing","hand","man","ok","omg"],emoji:"🙆‍♂️",text:"",type:1,order:807,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man gesturing OK: light skin tone",hexcode:"1F646-1F3FB-200D-2642-FE0F",emoji:"🙆🏻‍♂️",text:"",type:1,order:809,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_gesturing_ok_tone1"]},{label:"man gesturing OK: medium-light skin tone",hexcode:"1F646-1F3FC-200D-2642-FE0F",emoji:"🙆🏼‍♂️",text:"",type:1,order:811,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_gesturing_ok_tone2"]},{label:"man gesturing OK: medium skin tone",hexcode:"1F646-1F3FD-200D-2642-FE0F",emoji:"🙆🏽‍♂️",text:"",type:1,order:813,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_gesturing_ok_tone3"]},{label:"man gesturing OK: medium-dark skin tone",hexcode:"1F646-1F3FE-200D-2642-FE0F",emoji:"🙆🏾‍♂️",text:"",type:1,order:815,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_gesturing_ok_tone4"]},{label:"man gesturing OK: dark skin tone",hexcode:"1F646-1F3FF-200D-2642-FE0F",emoji:"🙆🏿‍♂️",text:"",type:1,order:817,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_gesturing_ok_tone5"]}],shortCodes:["man_gesturing_ok"]},{label:"woman gesturing OK",hexcode:"1F646-200D-2640-FE0F",tags:["exercise","gesture","gesturing","hand","ok","omg","woman"],emoji:"🙆‍♀️",text:"",type:1,order:819,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman gesturing OK: light skin tone",hexcode:"1F646-1F3FB-200D-2640-FE0F",emoji:"🙆🏻‍♀️",text:"",type:1,order:821,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_gesturing_ok_tone1"]},{label:"woman gesturing OK: medium-light skin tone",hexcode:"1F646-1F3FC-200D-2640-FE0F",emoji:"🙆🏼‍♀️",text:"",type:1,order:823,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_gesturing_ok_tone2"]},{label:"woman gesturing OK: medium skin tone",hexcode:"1F646-1F3FD-200D-2640-FE0F",emoji:"🙆🏽‍♀️",text:"",type:1,order:825,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_gesturing_ok_tone3"]},{label:"woman gesturing OK: medium-dark skin tone",hexcode:"1F646-1F3FE-200D-2640-FE0F",emoji:"🙆🏾‍♀️",text:"",type:1,order:827,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_gesturing_ok_tone4"]},{label:"woman gesturing OK: dark skin tone",hexcode:"1F646-1F3FF-200D-2640-FE0F",emoji:"🙆🏿‍♀️",text:"",type:1,order:829,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_gesturing_ok_tone5"]}],shortCodes:["woman_gesturing_ok"]},{label:"person tipping hand",hexcode:"1F481",tags:["fetch","flick","flip","gossip","hand","person","sarcasm","sarcastic","sassy","seriously","tipping","whatever"],emoji:"💁",text:"",type:1,order:831,group:1,subgroup:24,version:.6,skins:[{label:"person tipping hand: light skin tone",hexcode:"1F481-1F3FB",emoji:"💁🏻",text:"",type:1,order:832,group:1,subgroup:24,version:1,tone:1,shortCodes:["person_tipping_hand_tone1"]},{label:"person tipping hand: medium-light skin tone",hexcode:"1F481-1F3FC",emoji:"💁🏼",text:"",type:1,order:833,group:1,subgroup:24,version:1,tone:2,shortCodes:["person_tipping_hand_tone2"]},{label:"person tipping hand: medium skin tone",hexcode:"1F481-1F3FD",emoji:"💁🏽",text:"",type:1,order:834,group:1,subgroup:24,version:1,tone:3,shortCodes:["person_tipping_hand_tone3"]},{label:"person tipping hand: medium-dark skin tone",hexcode:"1F481-1F3FE",emoji:"💁🏾",text:"",type:1,order:835,group:1,subgroup:24,version:1,tone:4,shortCodes:["person_tipping_hand_tone4"]},{label:"person tipping hand: dark skin tone",hexcode:"1F481-1F3FF",emoji:"💁🏿",text:"",type:1,order:836,group:1,subgroup:24,version:1,tone:5,shortCodes:["person_tipping_hand_tone5"]}],shortCodes:["person_tipping_hand"]},{label:"man tipping hand",hexcode:"1F481-200D-2642-FE0F",tags:["fetch","flick","flip","gossip","hand","man","sarcasm","sarcastic","sassy","seriously","tipping","whatever"],emoji:"💁‍♂️",text:"",type:1,order:837,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man tipping hand: light skin tone",hexcode:"1F481-1F3FB-200D-2642-FE0F",emoji:"💁🏻‍♂️",text:"",type:1,order:839,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_tipping_hand_tone1"]},{label:"man tipping hand: medium-light skin tone",hexcode:"1F481-1F3FC-200D-2642-FE0F",emoji:"💁🏼‍♂️",text:"",type:1,order:841,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_tipping_hand_tone2"]},{label:"man tipping hand: medium skin tone",hexcode:"1F481-1F3FD-200D-2642-FE0F",emoji:"💁🏽‍♂️",text:"",type:1,order:843,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_tipping_hand_tone3"]},{label:"man tipping hand: medium-dark skin tone",hexcode:"1F481-1F3FE-200D-2642-FE0F",emoji:"💁🏾‍♂️",text:"",type:1,order:845,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_tipping_hand_tone4"]},{label:"man tipping hand: dark skin tone",hexcode:"1F481-1F3FF-200D-2642-FE0F",emoji:"💁🏿‍♂️",text:"",type:1,order:847,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_tipping_hand_tone5"]}],shortCodes:["man_tipping_hand"]},{label:"woman tipping hand",hexcode:"1F481-200D-2640-FE0F",tags:["fetch","flick","flip","gossip","hand","sarcasm","sarcastic","sassy","seriously","tipping","whatever","woman"],emoji:"💁‍♀️",text:"",type:1,order:849,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman tipping hand: light skin tone",hexcode:"1F481-1F3FB-200D-2640-FE0F",emoji:"💁🏻‍♀️",text:"",type:1,order:851,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_tipping_hand_tone1"]},{label:"woman tipping hand: medium-light skin tone",hexcode:"1F481-1F3FC-200D-2640-FE0F",emoji:"💁🏼‍♀️",text:"",type:1,order:853,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_tipping_hand_tone2"]},{label:"woman tipping hand: medium skin tone",hexcode:"1F481-1F3FD-200D-2640-FE0F",emoji:"💁🏽‍♀️",text:"",type:1,order:855,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_tipping_hand_tone3"]},{label:"woman tipping hand: medium-dark skin tone",hexcode:"1F481-1F3FE-200D-2640-FE0F",emoji:"💁🏾‍♀️",text:"",type:1,order:857,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_tipping_hand_tone4"]},{label:"woman tipping hand: dark skin tone",hexcode:"1F481-1F3FF-200D-2640-FE0F",emoji:"💁🏿‍♀️",text:"",type:1,order:859,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_tipping_hand_tone5"]}],shortCodes:["woman_tipping_hand"]},{label:"person raising hand",hexcode:"1F64B",tags:["gesture","hand","here","know","me","person","pick","question","raise","raising"],emoji:"🙋",text:"",type:1,order:861,group:1,subgroup:24,version:.6,skins:[{label:"person raising hand: light skin tone",hexcode:"1F64B-1F3FB",emoji:"🙋🏻",text:"",type:1,order:862,group:1,subgroup:24,version:1,tone:1,shortCodes:["person_raising_hand_tone1"]},{label:"person raising hand: medium-light skin tone",hexcode:"1F64B-1F3FC",emoji:"🙋🏼",text:"",type:1,order:863,group:1,subgroup:24,version:1,tone:2,shortCodes:["person_raising_hand_tone2"]},{label:"person raising hand: medium skin tone",hexcode:"1F64B-1F3FD",emoji:"🙋🏽",text:"",type:1,order:864,group:1,subgroup:24,version:1,tone:3,shortCodes:["person_raising_hand_tone3"]},{label:"person raising hand: medium-dark skin tone",hexcode:"1F64B-1F3FE",emoji:"🙋🏾",text:"",type:1,order:865,group:1,subgroup:24,version:1,tone:4,shortCodes:["person_raising_hand_tone4"]},{label:"person raising hand: dark skin tone",hexcode:"1F64B-1F3FF",emoji:"🙋🏿",text:"",type:1,order:866,group:1,subgroup:24,version:1,tone:5,shortCodes:["person_raising_hand_tone5"]}],shortCodes:["person_raising_hand"]},{label:"man raising hand",hexcode:"1F64B-200D-2642-FE0F",tags:["gesture","hand","here","know","man","me","pick","question","raise","raising"],emoji:"🙋‍♂️",text:"",type:1,order:867,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man raising hand: light skin tone",hexcode:"1F64B-1F3FB-200D-2642-FE0F",emoji:"🙋🏻‍♂️",text:"",type:1,order:869,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_raising_hand_tone1"]},{label:"man raising hand: medium-light skin tone",hexcode:"1F64B-1F3FC-200D-2642-FE0F",emoji:"🙋🏼‍♂️",text:"",type:1,order:871,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_raising_hand_tone2"]},{label:"man raising hand: medium skin tone",hexcode:"1F64B-1F3FD-200D-2642-FE0F",emoji:"🙋🏽‍♂️",text:"",type:1,order:873,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_raising_hand_tone3"]},{label:"man raising hand: medium-dark skin tone",hexcode:"1F64B-1F3FE-200D-2642-FE0F",emoji:"🙋🏾‍♂️",text:"",type:1,order:875,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_raising_hand_tone4"]},{label:"man raising hand: dark skin tone",hexcode:"1F64B-1F3FF-200D-2642-FE0F",emoji:"🙋🏿‍♂️",text:"",type:1,order:877,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_raising_hand_tone5"]}],shortCodes:["man_raising_hand"]},{label:"woman raising hand",hexcode:"1F64B-200D-2640-FE0F",tags:["gesture","hand","here","know","me","pick","question","raise","raising","woman"],emoji:"🙋‍♀️",text:"",type:1,order:879,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman raising hand: light skin tone",hexcode:"1F64B-1F3FB-200D-2640-FE0F",emoji:"🙋🏻‍♀️",text:"",type:1,order:881,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_raising_hand_tone1"]},{label:"woman raising hand: medium-light skin tone",hexcode:"1F64B-1F3FC-200D-2640-FE0F",emoji:"🙋🏼‍♀️",text:"",type:1,order:883,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_raising_hand_tone2"]},{label:"woman raising hand: medium skin tone",hexcode:"1F64B-1F3FD-200D-2640-FE0F",emoji:"🙋🏽‍♀️",text:"",type:1,order:885,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_raising_hand_tone3"]},{label:"woman raising hand: medium-dark skin tone",hexcode:"1F64B-1F3FE-200D-2640-FE0F",emoji:"🙋🏾‍♀️",text:"",type:1,order:887,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_raising_hand_tone4"]},{label:"woman raising hand: dark skin tone",hexcode:"1F64B-1F3FF-200D-2640-FE0F",emoji:"🙋🏿‍♀️",text:"",type:1,order:889,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_raising_hand_tone5"]}],shortCodes:["woman_raising_hand"]},{label:"deaf person",hexcode:"1F9CF",tags:["accessibility","deaf","ear","gesture","hear","person"],emoji:"🧏",text:"",type:1,order:891,group:1,subgroup:24,version:12,skins:[{label:"deaf person: light skin tone",hexcode:"1F9CF-1F3FB",emoji:"🧏🏻",text:"",type:1,order:892,group:1,subgroup:24,version:12,tone:1,shortCodes:["deaf_person_tone1"]},{label:"deaf person: medium-light skin tone",hexcode:"1F9CF-1F3FC",emoji:"🧏🏼",text:"",type:1,order:893,group:1,subgroup:24,version:12,tone:2,shortCodes:["deaf_person_tone2"]},{label:"deaf person: medium skin tone",hexcode:"1F9CF-1F3FD",emoji:"🧏🏽",text:"",type:1,order:894,group:1,subgroup:24,version:12,tone:3,shortCodes:["deaf_person_tone3"]},{label:"deaf person: medium-dark skin tone",hexcode:"1F9CF-1F3FE",emoji:"🧏🏾",text:"",type:1,order:895,group:1,subgroup:24,version:12,tone:4,shortCodes:["deaf_person_tone4"]},{label:"deaf person: dark skin tone",hexcode:"1F9CF-1F3FF",emoji:"🧏🏿",text:"",type:1,order:896,group:1,subgroup:24,version:12,tone:5,shortCodes:["deaf_person_tone5"]}],shortCodes:["deaf_person"]},{label:"deaf man",hexcode:"1F9CF-200D-2642-FE0F",tags:["accessibility","deaf","ear","gesture","hear","man"],emoji:"🧏‍♂️",text:"",type:1,order:897,group:1,subgroup:24,version:12,gender:1,skins:[{label:"deaf man: light skin tone",hexcode:"1F9CF-1F3FB-200D-2642-FE0F",emoji:"🧏🏻‍♂️",text:"",type:1,order:899,group:1,subgroup:24,version:12,gender:1,tone:1,shortCodes:["deaf_man_tone1"]},{label:"deaf man: medium-light skin tone",hexcode:"1F9CF-1F3FC-200D-2642-FE0F",emoji:"🧏🏼‍♂️",text:"",type:1,order:901,group:1,subgroup:24,version:12,gender:1,tone:2,shortCodes:["deaf_man_tone2"]},{label:"deaf man: medium skin tone",hexcode:"1F9CF-1F3FD-200D-2642-FE0F",emoji:"🧏🏽‍♂️",text:"",type:1,order:903,group:1,subgroup:24,version:12,gender:1,tone:3,shortCodes:["deaf_man_tone3"]},{label:"deaf man: medium-dark skin tone",hexcode:"1F9CF-1F3FE-200D-2642-FE0F",emoji:"🧏🏾‍♂️",text:"",type:1,order:905,group:1,subgroup:24,version:12,gender:1,tone:4,shortCodes:["deaf_man_tone4"]},{label:"deaf man: dark skin tone",hexcode:"1F9CF-1F3FF-200D-2642-FE0F",emoji:"🧏🏿‍♂️",text:"",type:1,order:907,group:1,subgroup:24,version:12,gender:1,tone:5,shortCodes:["deaf_man_tone5"]}],shortCodes:["deaf_man"]},{label:"deaf woman",hexcode:"1F9CF-200D-2640-FE0F",tags:["accessibility","deaf","ear","gesture","hear","woman"],emoji:"🧏‍♀️",text:"",type:1,order:909,group:1,subgroup:24,version:12,gender:0,skins:[{label:"deaf woman: light skin tone",hexcode:"1F9CF-1F3FB-200D-2640-FE0F",emoji:"🧏🏻‍♀️",text:"",type:1,order:911,group:1,subgroup:24,version:12,gender:0,tone:1,shortCodes:["deaf_woman_tone1"]},{label:"deaf woman: medium-light skin tone",hexcode:"1F9CF-1F3FC-200D-2640-FE0F",emoji:"🧏🏼‍♀️",text:"",type:1,order:913,group:1,subgroup:24,version:12,gender:0,tone:2,shortCodes:["deaf_woman_tone2"]},{label:"deaf woman: medium skin tone",hexcode:"1F9CF-1F3FD-200D-2640-FE0F",emoji:"🧏🏽‍♀️",text:"",type:1,order:915,group:1,subgroup:24,version:12,gender:0,tone:3,shortCodes:["deaf_woman_tone3"]},{label:"deaf woman: medium-dark skin tone",hexcode:"1F9CF-1F3FE-200D-2640-FE0F",emoji:"🧏🏾‍♀️",text:"",type:1,order:917,group:1,subgroup:24,version:12,gender:0,tone:4,shortCodes:["deaf_woman_tone4"]},{label:"deaf woman: dark skin tone",hexcode:"1F9CF-1F3FF-200D-2640-FE0F",emoji:"🧏🏿‍♀️",text:"",type:1,order:919,group:1,subgroup:24,version:12,gender:0,tone:5,shortCodes:["deaf_woman_tone5"]}],shortCodes:["deaf_woman"]},{label:"person bowing",hexcode:"1F647",tags:["apology","ask","beg","bow","bowing","favor","forgive","gesture","meditate","meditation","person","pity","regret","sorry"],emoji:"🙇",text:"",type:1,order:921,group:1,subgroup:24,version:.6,skins:[{label:"person bowing: light skin tone",hexcode:"1F647-1F3FB",emoji:"🙇🏻",text:"",type:1,order:922,group:1,subgroup:24,version:1,tone:1,shortCodes:["bow_tone1","person_bowing_tone1"]},{label:"person bowing: medium-light skin tone",hexcode:"1F647-1F3FC",emoji:"🙇🏼",text:"",type:1,order:923,group:1,subgroup:24,version:1,tone:2,shortCodes:["bow_tone2","person_bowing_tone2"]},{label:"person bowing: medium skin tone",hexcode:"1F647-1F3FD",emoji:"🙇🏽",text:"",type:1,order:924,group:1,subgroup:24,version:1,tone:3,shortCodes:["bow_tone3","person_bowing_tone3"]},{label:"person bowing: medium-dark skin tone",hexcode:"1F647-1F3FE",emoji:"🙇🏾",text:"",type:1,order:925,group:1,subgroup:24,version:1,tone:4,shortCodes:["bow_tone4","person_bowing_tone4"]},{label:"person bowing: dark skin tone",hexcode:"1F647-1F3FF",emoji:"🙇🏿",text:"",type:1,order:926,group:1,subgroup:24,version:1,tone:5,shortCodes:["bow_tone5","person_bowing_tone5"]}],shortCodes:["bow","person_bowing"]},{label:"man bowing",hexcode:"1F647-200D-2642-FE0F",tags:["apology","ask","beg","bow","bowing","favor","forgive","gesture","man","meditate","meditation","pity","regret","sorry"],emoji:"🙇‍♂️",text:"",type:1,order:927,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man bowing: light skin tone",hexcode:"1F647-1F3FB-200D-2642-FE0F",emoji:"🙇🏻‍♂️",text:"",type:1,order:929,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_bowing_tone1"]},{label:"man bowing: medium-light skin tone",hexcode:"1F647-1F3FC-200D-2642-FE0F",emoji:"🙇🏼‍♂️",text:"",type:1,order:931,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_bowing_tone2"]},{label:"man bowing: medium skin tone",hexcode:"1F647-1F3FD-200D-2642-FE0F",emoji:"🙇🏽‍♂️",text:"",type:1,order:933,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_bowing_tone3"]},{label:"man bowing: medium-dark skin tone",hexcode:"1F647-1F3FE-200D-2642-FE0F",emoji:"🙇🏾‍♂️",text:"",type:1,order:935,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_bowing_tone4"]},{label:"man bowing: dark skin tone",hexcode:"1F647-1F3FF-200D-2642-FE0F",emoji:"🙇🏿‍♂️",text:"",type:1,order:937,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_bowing_tone5"]}],shortCodes:["man_bowing"]},{label:"woman bowing",hexcode:"1F647-200D-2640-FE0F",tags:["apology","ask","beg","bow","bowing","favor","forgive","gesture","meditate","meditation","pity","regret","sorry","woman"],emoji:"🙇‍♀️",text:"",type:1,order:939,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman bowing: light skin tone",hexcode:"1F647-1F3FB-200D-2640-FE0F",emoji:"🙇🏻‍♀️",text:"",type:1,order:941,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_bowing_tone1"]},{label:"woman bowing: medium-light skin tone",hexcode:"1F647-1F3FC-200D-2640-FE0F",emoji:"🙇🏼‍♀️",text:"",type:1,order:943,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_bowing_tone2"]},{label:"woman bowing: medium skin tone",hexcode:"1F647-1F3FD-200D-2640-FE0F",emoji:"🙇🏽‍♀️",text:"",type:1,order:945,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_bowing_tone3"]},{label:"woman bowing: medium-dark skin tone",hexcode:"1F647-1F3FE-200D-2640-FE0F",emoji:"🙇🏾‍♀️",text:"",type:1,order:947,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_bowing_tone4"]},{label:"woman bowing: dark skin tone",hexcode:"1F647-1F3FF-200D-2640-FE0F",emoji:"🙇🏿‍♀️",text:"",type:1,order:949,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_bowing_tone5"]}],shortCodes:["woman_bowing"]},{label:"person facepalming",hexcode:"1F926",tags:["again","bewilder","disbelief","exasperation","facepalm","no","not","oh","omg","person","shock","smh"],emoji:"🤦",text:"",type:1,order:951,group:1,subgroup:24,version:3,skins:[{label:"person facepalming: light skin tone",hexcode:"1F926-1F3FB",emoji:"🤦🏻",text:"",type:1,order:952,group:1,subgroup:24,version:3,tone:1,shortCodes:["facepalm_tone1","person_facepalming_tone1"]},{label:"person facepalming: medium-light skin tone",hexcode:"1F926-1F3FC",emoji:"🤦🏼",text:"",type:1,order:953,group:1,subgroup:24,version:3,tone:2,shortCodes:["facepalm_tone2","person_facepalming_tone2"]},{label:"person facepalming: medium skin tone",hexcode:"1F926-1F3FD",emoji:"🤦🏽",text:"",type:1,order:954,group:1,subgroup:24,version:3,tone:3,shortCodes:["facepalm_tone3","person_facepalming_tone3"]},{label:"person facepalming: medium-dark skin tone",hexcode:"1F926-1F3FE",emoji:"🤦🏾",text:"",type:1,order:955,group:1,subgroup:24,version:3,tone:4,shortCodes:["facepalm_tone4","person_facepalming_tone4"]},{label:"person facepalming: dark skin tone",hexcode:"1F926-1F3FF",emoji:"🤦🏿",text:"",type:1,order:956,group:1,subgroup:24,version:3,tone:5,shortCodes:["facepalm_tone5","person_facepalming_tone5"]}],shortCodes:["facepalm","person_facepalming"]},{label:"man facepalming",hexcode:"1F926-200D-2642-FE0F",tags:["again","bewilder","disbelief","exasperation","facepalm","man","no","not","oh","omg","shock","smh"],emoji:"🤦‍♂️",text:"",type:1,order:957,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man facepalming: light skin tone",hexcode:"1F926-1F3FB-200D-2642-FE0F",emoji:"🤦🏻‍♂️",text:"",type:1,order:959,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_facepalming_tone1"]},{label:"man facepalming: medium-light skin tone",hexcode:"1F926-1F3FC-200D-2642-FE0F",emoji:"🤦🏼‍♂️",text:"",type:1,order:961,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_facepalming_tone2"]},{label:"man facepalming: medium skin tone",hexcode:"1F926-1F3FD-200D-2642-FE0F",emoji:"🤦🏽‍♂️",text:"",type:1,order:963,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_facepalming_tone3"]},{label:"man facepalming: medium-dark skin tone",hexcode:"1F926-1F3FE-200D-2642-FE0F",emoji:"🤦🏾‍♂️",text:"",type:1,order:965,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_facepalming_tone4"]},{label:"man facepalming: dark skin tone",hexcode:"1F926-1F3FF-200D-2642-FE0F",emoji:"🤦🏿‍♂️",text:"",type:1,order:967,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_facepalming_tone5"]}],shortCodes:["man_facepalming"]},{label:"woman facepalming",hexcode:"1F926-200D-2640-FE0F",tags:["again","bewilder","disbelief","exasperation","facepalm","no","not","oh","omg","shock","smh","woman"],emoji:"🤦‍♀️",text:"",type:1,order:969,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman facepalming: light skin tone",hexcode:"1F926-1F3FB-200D-2640-FE0F",emoji:"🤦🏻‍♀️",text:"",type:1,order:971,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_facepalming_tone1"]},{label:"woman facepalming: medium-light skin tone",hexcode:"1F926-1F3FC-200D-2640-FE0F",emoji:"🤦🏼‍♀️",text:"",type:1,order:973,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_facepalming_tone2"]},{label:"woman facepalming: medium skin tone",hexcode:"1F926-1F3FD-200D-2640-FE0F",emoji:"🤦🏽‍♀️",text:"",type:1,order:975,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_facepalming_tone3"]},{label:"woman facepalming: medium-dark skin tone",hexcode:"1F926-1F3FE-200D-2640-FE0F",emoji:"🤦🏾‍♀️",text:"",type:1,order:977,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_facepalming_tone4"]},{label:"woman facepalming: dark skin tone",hexcode:"1F926-1F3FF-200D-2640-FE0F",emoji:"🤦🏿‍♀️",text:"",type:1,order:979,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_facepalming_tone5"]}],shortCodes:["woman_facepalming"]},{label:"person shrugging",hexcode:"1F937",tags:["doubt","dunno","guess","idk","ignorance","indifference","knows","maybe","person","shrug","shrugging","whatever","who"],emoji:"🤷",text:"",type:1,order:981,group:1,subgroup:24,version:3,skins:[{label:"person shrugging: light skin tone",hexcode:"1F937-1F3FB",emoji:"🤷🏻",text:"",type:1,order:982,group:1,subgroup:24,version:3,tone:1,shortCodes:["person_shrugging_tone1","shrug_tone1"]},{label:"person shrugging: medium-light skin tone",hexcode:"1F937-1F3FC",emoji:"🤷🏼",text:"",type:1,order:983,group:1,subgroup:24,version:3,tone:2,shortCodes:["person_shrugging_tone2","shrug_tone2"]},{label:"person shrugging: medium skin tone",hexcode:"1F937-1F3FD",emoji:"🤷🏽",text:"",type:1,order:984,group:1,subgroup:24,version:3,tone:3,shortCodes:["person_shrugging_tone3","shrug_tone3"]},{label:"person shrugging: medium-dark skin tone",hexcode:"1F937-1F3FE",emoji:"🤷🏾",text:"",type:1,order:985,group:1,subgroup:24,version:3,tone:4,shortCodes:["person_shrugging_tone4","shrug_tone4"]},{label:"person shrugging: dark skin tone",hexcode:"1F937-1F3FF",emoji:"🤷🏿",text:"",type:1,order:986,group:1,subgroup:24,version:3,tone:5,shortCodes:["person_shrugging_tone5","shrug_tone5"]}],shortCodes:["person_shrugging","shrug"]},{label:"man shrugging",hexcode:"1F937-200D-2642-FE0F",tags:["doubt","dunno","guess","idk","ignorance","indifference","knows","man","maybe","shrug","shrugging","whatever","who"],emoji:"🤷‍♂️",text:"",type:1,order:987,group:1,subgroup:24,version:4,gender:1,skins:[{label:"man shrugging: light skin tone",hexcode:"1F937-1F3FB-200D-2642-FE0F",emoji:"🤷🏻‍♂️",text:"",type:1,order:989,group:1,subgroup:24,version:4,gender:1,tone:1,shortCodes:["man_shrugging_tone1"]},{label:"man shrugging: medium-light skin tone",hexcode:"1F937-1F3FC-200D-2642-FE0F",emoji:"🤷🏼‍♂️",text:"",type:1,order:991,group:1,subgroup:24,version:4,gender:1,tone:2,shortCodes:["man_shrugging_tone2"]},{label:"man shrugging: medium skin tone",hexcode:"1F937-1F3FD-200D-2642-FE0F",emoji:"🤷🏽‍♂️",text:"",type:1,order:993,group:1,subgroup:24,version:4,gender:1,tone:3,shortCodes:["man_shrugging_tone3"]},{label:"man shrugging: medium-dark skin tone",hexcode:"1F937-1F3FE-200D-2642-FE0F",emoji:"🤷🏾‍♂️",text:"",type:1,order:995,group:1,subgroup:24,version:4,gender:1,tone:4,shortCodes:["man_shrugging_tone4"]},{label:"man shrugging: dark skin tone",hexcode:"1F937-1F3FF-200D-2642-FE0F",emoji:"🤷🏿‍♂️",text:"",type:1,order:997,group:1,subgroup:24,version:4,gender:1,tone:5,shortCodes:["man_shrugging_tone5"]}],shortCodes:["man_shrugging"]},{label:"woman shrugging",hexcode:"1F937-200D-2640-FE0F",tags:["doubt","dunno","guess","idk","ignorance","indifference","knows","maybe","shrug","shrugging","whatever","who","woman"],emoji:"🤷‍♀️",text:"",type:1,order:999,group:1,subgroup:24,version:4,gender:0,skins:[{label:"woman shrugging: light skin tone",hexcode:"1F937-1F3FB-200D-2640-FE0F",emoji:"🤷🏻‍♀️",text:"",type:1,order:1001,group:1,subgroup:24,version:4,gender:0,tone:1,shortCodes:["woman_shrugging_tone1"]},{label:"woman shrugging: medium-light skin tone",hexcode:"1F937-1F3FC-200D-2640-FE0F",emoji:"🤷🏼‍♀️",text:"",type:1,order:1003,group:1,subgroup:24,version:4,gender:0,tone:2,shortCodes:["woman_shrugging_tone2"]},{label:"woman shrugging: medium skin tone",hexcode:"1F937-1F3FD-200D-2640-FE0F",emoji:"🤷🏽‍♀️",text:"",type:1,order:1005,group:1,subgroup:24,version:4,gender:0,tone:3,shortCodes:["woman_shrugging_tone3"]},{label:"woman shrugging: medium-dark skin tone",hexcode:"1F937-1F3FE-200D-2640-FE0F",emoji:"🤷🏾‍♀️",text:"",type:1,order:1007,group:1,subgroup:24,version:4,gender:0,tone:4,shortCodes:["woman_shrugging_tone4"]},{label:"woman shrugging: dark skin tone",hexcode:"1F937-1F3FF-200D-2640-FE0F",emoji:"🤷🏿‍♀️",text:"",type:1,order:1009,group:1,subgroup:24,version:4,gender:0,tone:5,shortCodes:["woman_shrugging_tone5"]}],shortCodes:["woman_shrugging"]},{label:"health worker",hexcode:"1F9D1-200D-2695-FE0F",tags:["doctor","health","healthcare","nurse","therapist","worker"],emoji:"🧑‍⚕️",text:"",type:1,order:1011,group:1,subgroup:25,version:12.1,skins:[{label:"health worker: light skin tone",hexcode:"1F9D1-1F3FB-200D-2695-FE0F",emoji:"🧑🏻‍⚕️",text:"",type:1,order:1013,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["health_worker_tone1"]},{label:"health worker: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-2695-FE0F",emoji:"🧑🏼‍⚕️",text:"",type:1,order:1015,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["health_worker_tone2"]},{label:"health worker: medium skin tone",hexcode:"1F9D1-1F3FD-200D-2695-FE0F",emoji:"🧑🏽‍⚕️",text:"",type:1,order:1017,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["health_worker_tone3"]},{label:"health worker: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-2695-FE0F",emoji:"🧑🏾‍⚕️",text:"",type:1,order:1019,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["health_worker_tone4"]},{label:"health worker: dark skin tone",hexcode:"1F9D1-1F3FF-200D-2695-FE0F",emoji:"🧑🏿‍⚕️",text:"",type:1,order:1021,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["health_worker_tone5"]}],shortCodes:["health_worker"]},{label:"man health worker",hexcode:"1F468-200D-2695-FE0F",tags:["doctor","health","healthcare","man","nurse","therapist","worker"],emoji:"👨‍⚕️",text:"",type:1,order:1023,group:1,subgroup:25,version:4,skins:[{label:"man health worker: light skin tone",hexcode:"1F468-1F3FB-200D-2695-FE0F",emoji:"👨🏻‍⚕️",text:"",type:1,order:1025,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_health_worker_tone1"]},{label:"man health worker: medium-light skin tone",hexcode:"1F468-1F3FC-200D-2695-FE0F",emoji:"👨🏼‍⚕️",text:"",type:1,order:1027,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_health_worker_tone2"]},{label:"man health worker: medium skin tone",hexcode:"1F468-1F3FD-200D-2695-FE0F",emoji:"👨🏽‍⚕️",text:"",type:1,order:1029,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_health_worker_tone3"]},{label:"man health worker: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-2695-FE0F",emoji:"👨🏾‍⚕️",text:"",type:1,order:1031,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_health_worker_tone4"]},{label:"man health worker: dark skin tone",hexcode:"1F468-1F3FF-200D-2695-FE0F",emoji:"👨🏿‍⚕️",text:"",type:1,order:1033,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_health_worker_tone5"]}],shortCodes:["man_health_worker"]},{label:"woman health worker",hexcode:"1F469-200D-2695-FE0F",tags:["doctor","health","healthcare","nurse","therapist","woman","worker"],emoji:"👩‍⚕️",text:"",type:1,order:1035,group:1,subgroup:25,version:4,skins:[{label:"woman health worker: light skin tone",hexcode:"1F469-1F3FB-200D-2695-FE0F",emoji:"👩🏻‍⚕️",text:"",type:1,order:1037,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_health_worker_tone1"]},{label:"woman health worker: medium-light skin tone",hexcode:"1F469-1F3FC-200D-2695-FE0F",emoji:"👩🏼‍⚕️",text:"",type:1,order:1039,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_health_worker_tone2"]},{label:"woman health worker: medium skin tone",hexcode:"1F469-1F3FD-200D-2695-FE0F",emoji:"👩🏽‍⚕️",text:"",type:1,order:1041,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_health_worker_tone3"]},{label:"woman health worker: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-2695-FE0F",emoji:"👩🏾‍⚕️",text:"",type:1,order:1043,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_health_worker_tone4"]},{label:"woman health worker: dark skin tone",hexcode:"1F469-1F3FF-200D-2695-FE0F",emoji:"👩🏿‍⚕️",text:"",type:1,order:1045,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_health_worker_tone5"]}],shortCodes:["woman_health_worker"]},{label:"student",hexcode:"1F9D1-200D-1F393",tags:["graduate"],emoji:"🧑‍🎓",text:"",type:1,order:1047,group:1,subgroup:25,version:12.1,skins:[{label:"student: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F393",emoji:"🧑🏻‍🎓",text:"",type:1,order:1048,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["student_tone1"]},{label:"student: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F393",emoji:"🧑🏼‍🎓",text:"",type:1,order:1049,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["student_tone2"]},{label:"student: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F393",emoji:"🧑🏽‍🎓",text:"",type:1,order:1050,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["student_tone3"]},{label:"student: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F393",emoji:"🧑🏾‍🎓",text:"",type:1,order:1051,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["student_tone4"]},{label:"student: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F393",emoji:"🧑🏿‍🎓",text:"",type:1,order:1052,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["student_tone5"]}],shortCodes:["student"]},{label:"man student",hexcode:"1F468-200D-1F393",tags:["graduate","man","student"],emoji:"👨‍🎓",text:"",type:1,order:1053,group:1,subgroup:25,version:4,skins:[{label:"man student: light skin tone",hexcode:"1F468-1F3FB-200D-1F393",emoji:"👨🏻‍🎓",text:"",type:1,order:1054,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_student_tone1"]},{label:"man student: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F393",emoji:"👨🏼‍🎓",text:"",type:1,order:1055,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_student_tone2"]},{label:"man student: medium skin tone",hexcode:"1F468-1F3FD-200D-1F393",emoji:"👨🏽‍🎓",text:"",type:1,order:1056,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_student_tone3"]},{label:"man student: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F393",emoji:"👨🏾‍🎓",text:"",type:1,order:1057,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_student_tone4"]},{label:"man student: dark skin tone",hexcode:"1F468-1F3FF-200D-1F393",emoji:"👨🏿‍🎓",text:"",type:1,order:1058,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_student_tone5"]}],shortCodes:["man_student"]},{label:"woman student",hexcode:"1F469-200D-1F393",tags:["graduate","student","woman"],emoji:"👩‍🎓",text:"",type:1,order:1059,group:1,subgroup:25,version:4,skins:[{label:"woman student: light skin tone",hexcode:"1F469-1F3FB-200D-1F393",emoji:"👩🏻‍🎓",text:"",type:1,order:1060,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_student_tone1"]},{label:"woman student: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F393",emoji:"👩🏼‍🎓",text:"",type:1,order:1061,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_student_tone2"]},{label:"woman student: medium skin tone",hexcode:"1F469-1F3FD-200D-1F393",emoji:"👩🏽‍🎓",text:"",type:1,order:1062,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_student_tone3"]},{label:"woman student: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F393",emoji:"👩🏾‍🎓",text:"",type:1,order:1063,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_student_tone4"]},{label:"woman student: dark skin tone",hexcode:"1F469-1F3FF-200D-1F393",emoji:"👩🏿‍🎓",text:"",type:1,order:1064,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_student_tone5"]}],shortCodes:["woman_student"]},{label:"teacher",hexcode:"1F9D1-200D-1F3EB",tags:["instructor","lecturer","professor"],emoji:"🧑‍🏫",text:"",type:1,order:1065,group:1,subgroup:25,version:12.1,skins:[{label:"teacher: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F3EB",emoji:"🧑🏻‍🏫",text:"",type:1,order:1066,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["teacher_tone1"]},{label:"teacher: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F3EB",emoji:"🧑🏼‍🏫",text:"",type:1,order:1067,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["teacher_tone2"]},{label:"teacher: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F3EB",emoji:"🧑🏽‍🏫",text:"",type:1,order:1068,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["teacher_tone3"]},{label:"teacher: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F3EB",emoji:"🧑🏾‍🏫",text:"",type:1,order:1069,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["teacher_tone4"]},{label:"teacher: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F3EB",emoji:"🧑🏿‍🏫",text:"",type:1,order:1070,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["teacher_tone5"]}],shortCodes:["teacher"]},{label:"man teacher",hexcode:"1F468-200D-1F3EB",tags:["instructor","lecturer","man","professor","teacher"],emoji:"👨‍🏫",text:"",type:1,order:1071,group:1,subgroup:25,version:4,skins:[{label:"man teacher: light skin tone",hexcode:"1F468-1F3FB-200D-1F3EB",emoji:"👨🏻‍🏫",text:"",type:1,order:1072,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_teacher_tone1"]},{label:"man teacher: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F3EB",emoji:"👨🏼‍🏫",text:"",type:1,order:1073,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_teacher_tone2"]},{label:"man teacher: medium skin tone",hexcode:"1F468-1F3FD-200D-1F3EB",emoji:"👨🏽‍🏫",text:"",type:1,order:1074,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_teacher_tone3"]},{label:"man teacher: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F3EB",emoji:"👨🏾‍🏫",text:"",type:1,order:1075,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_teacher_tone4"]},{label:"man teacher: dark skin tone",hexcode:"1F468-1F3FF-200D-1F3EB",emoji:"👨🏿‍🏫",text:"",type:1,order:1076,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_teacher_tone5"]}],shortCodes:["man_teacher"]},{label:"woman teacher",hexcode:"1F469-200D-1F3EB",tags:["instructor","lecturer","professor","teacher","woman"],emoji:"👩‍🏫",text:"",type:1,order:1077,group:1,subgroup:25,version:4,skins:[{label:"woman teacher: light skin tone",hexcode:"1F469-1F3FB-200D-1F3EB",emoji:"👩🏻‍🏫",text:"",type:1,order:1078,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_teacher_tone1"]},{label:"woman teacher: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F3EB",emoji:"👩🏼‍🏫",text:"",type:1,order:1079,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_teacher_tone2"]},{label:"woman teacher: medium skin tone",hexcode:"1F469-1F3FD-200D-1F3EB",emoji:"👩🏽‍🏫",text:"",type:1,order:1080,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_teacher_tone3"]},{label:"woman teacher: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F3EB",emoji:"👩🏾‍🏫",text:"",type:1,order:1081,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_teacher_tone4"]},{label:"woman teacher: dark skin tone",hexcode:"1F469-1F3FF-200D-1F3EB",emoji:"👩🏿‍🏫",text:"",type:1,order:1082,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_teacher_tone5"]}],shortCodes:["woman_teacher"]},{label:"judge",hexcode:"1F9D1-200D-2696-FE0F",tags:["justice","law","scales"],emoji:"🧑‍⚖️",text:"",type:1,order:1083,group:1,subgroup:25,version:12.1,skins:[{label:"judge: light skin tone",hexcode:"1F9D1-1F3FB-200D-2696-FE0F",emoji:"🧑🏻‍⚖️",text:"",type:1,order:1085,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["judge_tone1"]},{label:"judge: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-2696-FE0F",emoji:"🧑🏼‍⚖️",text:"",type:1,order:1087,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["judge_tone2"]},{label:"judge: medium skin tone",hexcode:"1F9D1-1F3FD-200D-2696-FE0F",emoji:"🧑🏽‍⚖️",text:"",type:1,order:1089,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["judge_tone3"]},{label:"judge: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-2696-FE0F",emoji:"🧑🏾‍⚖️",text:"",type:1,order:1091,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["judge_tone4"]},{label:"judge: dark skin tone",hexcode:"1F9D1-1F3FF-200D-2696-FE0F",emoji:"🧑🏿‍⚖️",text:"",type:1,order:1093,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["judge_tone5"]}],shortCodes:["judge"]},{label:"man judge",hexcode:"1F468-200D-2696-FE0F",tags:["judge","justice","law","man","scales"],emoji:"👨‍⚖️",text:"",type:1,order:1095,group:1,subgroup:25,version:4,skins:[{label:"man judge: light skin tone",hexcode:"1F468-1F3FB-200D-2696-FE0F",emoji:"👨🏻‍⚖️",text:"",type:1,order:1097,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_judge_tone1"]},{label:"man judge: medium-light skin tone",hexcode:"1F468-1F3FC-200D-2696-FE0F",emoji:"👨🏼‍⚖️",text:"",type:1,order:1099,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_judge_tone2"]},{label:"man judge: medium skin tone",hexcode:"1F468-1F3FD-200D-2696-FE0F",emoji:"👨🏽‍⚖️",text:"",type:1,order:1101,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_judge_tone3"]},{label:"man judge: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-2696-FE0F",emoji:"👨🏾‍⚖️",text:"",type:1,order:1103,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_judge_tone4"]},{label:"man judge: dark skin tone",hexcode:"1F468-1F3FF-200D-2696-FE0F",emoji:"👨🏿‍⚖️",text:"",type:1,order:1105,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_judge_tone5"]}],shortCodes:["man_judge"]},{label:"woman judge",hexcode:"1F469-200D-2696-FE0F",tags:["judge","justice","law","scales","woman"],emoji:"👩‍⚖️",text:"",type:1,order:1107,group:1,subgroup:25,version:4,skins:[{label:"woman judge: light skin tone",hexcode:"1F469-1F3FB-200D-2696-FE0F",emoji:"👩🏻‍⚖️",text:"",type:1,order:1109,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_judge_tone1"]},{label:"woman judge: medium-light skin tone",hexcode:"1F469-1F3FC-200D-2696-FE0F",emoji:"👩🏼‍⚖️",text:"",type:1,order:1111,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_judge_tone2"]},{label:"woman judge: medium skin tone",hexcode:"1F469-1F3FD-200D-2696-FE0F",emoji:"👩🏽‍⚖️",text:"",type:1,order:1113,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_judge_tone3"]},{label:"woman judge: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-2696-FE0F",emoji:"👩🏾‍⚖️",text:"",type:1,order:1115,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_judge_tone4"]},{label:"woman judge: dark skin tone",hexcode:"1F469-1F3FF-200D-2696-FE0F",emoji:"👩🏿‍⚖️",text:"",type:1,order:1117,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_judge_tone5"]}],shortCodes:["woman_judge"]},{label:"farmer",hexcode:"1F9D1-200D-1F33E",tags:["gardener","rancher"],emoji:"🧑‍🌾",text:"",type:1,order:1119,group:1,subgroup:25,version:12.1,skins:[{label:"farmer: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F33E",emoji:"🧑🏻‍🌾",text:"",type:1,order:1120,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["farmer_tone1"]},{label:"farmer: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F33E",emoji:"🧑🏼‍🌾",text:"",type:1,order:1121,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["farmer_tone2"]},{label:"farmer: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F33E",emoji:"🧑🏽‍🌾",text:"",type:1,order:1122,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["farmer_tone3"]},{label:"farmer: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F33E",emoji:"🧑🏾‍🌾",text:"",type:1,order:1123,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["farmer_tone4"]},{label:"farmer: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F33E",emoji:"🧑🏿‍🌾",text:"",type:1,order:1124,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["farmer_tone5"]}],shortCodes:["farmer"]},{label:"man farmer",hexcode:"1F468-200D-1F33E",tags:["farmer","gardener","man","rancher"],emoji:"👨‍🌾",text:"",type:1,order:1125,group:1,subgroup:25,version:4,skins:[{label:"man farmer: light skin tone",hexcode:"1F468-1F3FB-200D-1F33E",emoji:"👨🏻‍🌾",text:"",type:1,order:1126,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_farmer_tone1"]},{label:"man farmer: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F33E",emoji:"👨🏼‍🌾",text:"",type:1,order:1127,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_farmer_tone2"]},{label:"man farmer: medium skin tone",hexcode:"1F468-1F3FD-200D-1F33E",emoji:"👨🏽‍🌾",text:"",type:1,order:1128,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_farmer_tone3"]},{label:"man farmer: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F33E",emoji:"👨🏾‍🌾",text:"",type:1,order:1129,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_farmer_tone4"]},{label:"man farmer: dark skin tone",hexcode:"1F468-1F3FF-200D-1F33E",emoji:"👨🏿‍🌾",text:"",type:1,order:1130,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_farmer_tone5"]}],shortCodes:["man_farmer"]},{label:"woman farmer",hexcode:"1F469-200D-1F33E",tags:["farmer","gardener","rancher","woman"],emoji:"👩‍🌾",text:"",type:1,order:1131,group:1,subgroup:25,version:4,skins:[{label:"woman farmer: light skin tone",hexcode:"1F469-1F3FB-200D-1F33E",emoji:"👩🏻‍🌾",text:"",type:1,order:1132,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_farmer_tone1"]},{label:"woman farmer: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F33E",emoji:"👩🏼‍🌾",text:"",type:1,order:1133,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_farmer_tone2"]},{label:"woman farmer: medium skin tone",hexcode:"1F469-1F3FD-200D-1F33E",emoji:"👩🏽‍🌾",text:"",type:1,order:1134,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_farmer_tone3"]},{label:"woman farmer: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F33E",emoji:"👩🏾‍🌾",text:"",type:1,order:1135,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_farmer_tone4"]},{label:"woman farmer: dark skin tone",hexcode:"1F469-1F3FF-200D-1F33E",emoji:"👩🏿‍🌾",text:"",type:1,order:1136,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_farmer_tone5"]}],shortCodes:["woman_farmer"]},{label:"cook",hexcode:"1F9D1-200D-1F373",tags:["chef"],emoji:"🧑‍🍳",text:"",type:1,order:1137,group:1,subgroup:25,version:12.1,skins:[{label:"cook: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F373",emoji:"🧑🏻‍🍳",text:"",type:1,order:1138,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["cook_tone1"]},{label:"cook: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F373",emoji:"🧑🏼‍🍳",text:"",type:1,order:1139,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["cook_tone2"]},{label:"cook: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F373",emoji:"🧑🏽‍🍳",text:"",type:1,order:1140,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["cook_tone3"]},{label:"cook: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F373",emoji:"🧑🏾‍🍳",text:"",type:1,order:1141,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["cook_tone4"]},{label:"cook: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F373",emoji:"🧑🏿‍🍳",text:"",type:1,order:1142,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["cook_tone5"]}],shortCodes:["cook"]},{label:"man cook",hexcode:"1F468-200D-1F373",tags:["chef","cook","man"],emoji:"👨‍🍳",text:"",type:1,order:1143,group:1,subgroup:25,version:4,skins:[{label:"man cook: light skin tone",hexcode:"1F468-1F3FB-200D-1F373",emoji:"👨🏻‍🍳",text:"",type:1,order:1144,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_cook_tone1"]},{label:"man cook: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F373",emoji:"👨🏼‍🍳",text:"",type:1,order:1145,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_cook_tone2"]},{label:"man cook: medium skin tone",hexcode:"1F468-1F3FD-200D-1F373",emoji:"👨🏽‍🍳",text:"",type:1,order:1146,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_cook_tone3"]},{label:"man cook: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F373",emoji:"👨🏾‍🍳",text:"",type:1,order:1147,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_cook_tone4"]},{label:"man cook: dark skin tone",hexcode:"1F468-1F3FF-200D-1F373",emoji:"👨🏿‍🍳",text:"",type:1,order:1148,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_cook_tone5"]}],shortCodes:["man_cook"]},{label:"woman cook",hexcode:"1F469-200D-1F373",tags:["chef","cook","woman"],emoji:"👩‍🍳",text:"",type:1,order:1149,group:1,subgroup:25,version:4,skins:[{label:"woman cook: light skin tone",hexcode:"1F469-1F3FB-200D-1F373",emoji:"👩🏻‍🍳",text:"",type:1,order:1150,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_cook_tone1"]},{label:"woman cook: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F373",emoji:"👩🏼‍🍳",text:"",type:1,order:1151,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_cook_tone2"]},{label:"woman cook: medium skin tone",hexcode:"1F469-1F3FD-200D-1F373",emoji:"👩🏽‍🍳",text:"",type:1,order:1152,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_cook_tone3"]},{label:"woman cook: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F373",emoji:"👩🏾‍🍳",text:"",type:1,order:1153,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_cook_tone4"]},{label:"woman cook: dark skin tone",hexcode:"1F469-1F3FF-200D-1F373",emoji:"👩🏿‍🍳",text:"",type:1,order:1154,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_cook_tone5"]}],shortCodes:["woman_cook"]},{label:"mechanic",hexcode:"1F9D1-200D-1F527",tags:["electrician","plumber","tradesperson"],emoji:"🧑‍🔧",text:"",type:1,order:1155,group:1,subgroup:25,version:12.1,skins:[{label:"mechanic: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F527",emoji:"🧑🏻‍🔧",text:"",type:1,order:1156,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["mechanic_tone1"]},{label:"mechanic: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F527",emoji:"🧑🏼‍🔧",text:"",type:1,order:1157,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["mechanic_tone2"]},{label:"mechanic: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F527",emoji:"🧑🏽‍🔧",text:"",type:1,order:1158,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["mechanic_tone3"]},{label:"mechanic: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F527",emoji:"🧑🏾‍🔧",text:"",type:1,order:1159,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["mechanic_tone4"]},{label:"mechanic: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F527",emoji:"🧑🏿‍🔧",text:"",type:1,order:1160,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["mechanic_tone5"]}],shortCodes:["mechanic"]},{label:"man mechanic",hexcode:"1F468-200D-1F527",tags:["electrician","man","mechanic","plumber","tradesperson"],emoji:"👨‍🔧",text:"",type:1,order:1161,group:1,subgroup:25,version:4,skins:[{label:"man mechanic: light skin tone",hexcode:"1F468-1F3FB-200D-1F527",emoji:"👨🏻‍🔧",text:"",type:1,order:1162,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_mechanic_tone1"]},{label:"man mechanic: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F527",emoji:"👨🏼‍🔧",text:"",type:1,order:1163,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_mechanic_tone2"]},{label:"man mechanic: medium skin tone",hexcode:"1F468-1F3FD-200D-1F527",emoji:"👨🏽‍🔧",text:"",type:1,order:1164,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_mechanic_tone3"]},{label:"man mechanic: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F527",emoji:"👨🏾‍🔧",text:"",type:1,order:1165,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_mechanic_tone4"]},{label:"man mechanic: dark skin tone",hexcode:"1F468-1F3FF-200D-1F527",emoji:"👨🏿‍🔧",text:"",type:1,order:1166,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_mechanic_tone5"]}],shortCodes:["man_mechanic"]},{label:"woman mechanic",hexcode:"1F469-200D-1F527",tags:["electrician","mechanic","plumber","tradesperson","woman"],emoji:"👩‍🔧",text:"",type:1,order:1167,group:1,subgroup:25,version:4,skins:[{label:"woman mechanic: light skin tone",hexcode:"1F469-1F3FB-200D-1F527",emoji:"👩🏻‍🔧",text:"",type:1,order:1168,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_mechanic_tone1"]},{label:"woman mechanic: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F527",emoji:"👩🏼‍🔧",text:"",type:1,order:1169,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_mechanic_tone2"]},{label:"woman mechanic: medium skin tone",hexcode:"1F469-1F3FD-200D-1F527",emoji:"👩🏽‍🔧",text:"",type:1,order:1170,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_mechanic_tone3"]},{label:"woman mechanic: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F527",emoji:"👩🏾‍🔧",text:"",type:1,order:1171,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_mechanic_tone4"]},{label:"woman mechanic: dark skin tone",hexcode:"1F469-1F3FF-200D-1F527",emoji:"👩🏿‍🔧",text:"",type:1,order:1172,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_mechanic_tone5"]}],shortCodes:["woman_mechanic"]},{label:"factory worker",hexcode:"1F9D1-200D-1F3ED",tags:["assembly","factory","industrial","worker"],emoji:"🧑‍🏭",text:"",type:1,order:1173,group:1,subgroup:25,version:12.1,skins:[{label:"factory worker: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F3ED",emoji:"🧑🏻‍🏭",text:"",type:1,order:1174,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["factory_worker_tone1"]},{label:"factory worker: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F3ED",emoji:"🧑🏼‍🏭",text:"",type:1,order:1175,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["factory_worker_tone2"]},{label:"factory worker: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F3ED",emoji:"🧑🏽‍🏭",text:"",type:1,order:1176,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["factory_worker_tone3"]},{label:"factory worker: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F3ED",emoji:"🧑🏾‍🏭",text:"",type:1,order:1177,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["factory_worker_tone4"]},{label:"factory worker: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F3ED",emoji:"🧑🏿‍🏭",text:"",type:1,order:1178,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["factory_worker_tone5"]}],shortCodes:["factory_worker"]},{label:"man factory worker",hexcode:"1F468-200D-1F3ED",tags:["assembly","factory","industrial","man","worker"],emoji:"👨‍🏭",text:"",type:1,order:1179,group:1,subgroup:25,version:4,skins:[{label:"man factory worker: light skin tone",hexcode:"1F468-1F3FB-200D-1F3ED",emoji:"👨🏻‍🏭",text:"",type:1,order:1180,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_factory_worker_tone1"]},{label:"man factory worker: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F3ED",emoji:"👨🏼‍🏭",text:"",type:1,order:1181,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_factory_worker_tone2"]},{label:"man factory worker: medium skin tone",hexcode:"1F468-1F3FD-200D-1F3ED",emoji:"👨🏽‍🏭",text:"",type:1,order:1182,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_factory_worker_tone3"]},{label:"man factory worker: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F3ED",emoji:"👨🏾‍🏭",text:"",type:1,order:1183,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_factory_worker_tone4"]},{label:"man factory worker: dark skin tone",hexcode:"1F468-1F3FF-200D-1F3ED",emoji:"👨🏿‍🏭",text:"",type:1,order:1184,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_factory_worker_tone5"]}],shortCodes:["man_factory_worker"]},{label:"woman factory worker",hexcode:"1F469-200D-1F3ED",tags:["assembly","factory","industrial","woman","worker"],emoji:"👩‍🏭",text:"",type:1,order:1185,group:1,subgroup:25,version:4,skins:[{label:"woman factory worker: light skin tone",hexcode:"1F469-1F3FB-200D-1F3ED",emoji:"👩🏻‍🏭",text:"",type:1,order:1186,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_factory_worker_tone1"]},{label:"woman factory worker: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F3ED",emoji:"👩🏼‍🏭",text:"",type:1,order:1187,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_factory_worker_tone2"]},{label:"woman factory worker: medium skin tone",hexcode:"1F469-1F3FD-200D-1F3ED",emoji:"👩🏽‍🏭",text:"",type:1,order:1188,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_factory_worker_tone3"]},{label:"woman factory worker: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F3ED",emoji:"👩🏾‍🏭",text:"",type:1,order:1189,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_factory_worker_tone4"]},{label:"woman factory worker: dark skin tone",hexcode:"1F469-1F3FF-200D-1F3ED",emoji:"👩🏿‍🏭",text:"",type:1,order:1190,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_factory_worker_tone5"]}],shortCodes:["woman_factory_worker"]},{label:"office worker",hexcode:"1F9D1-200D-1F4BC",tags:["architect","business","manager","office","white-collar","worker"],emoji:"🧑‍💼",text:"",type:1,order:1191,group:1,subgroup:25,version:12.1,skins:[{label:"office worker: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F4BC",emoji:"🧑🏻‍💼",text:"",type:1,order:1192,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["office_worker_tone1"]},{label:"office worker: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F4BC",emoji:"🧑🏼‍💼",text:"",type:1,order:1193,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["office_worker_tone2"]},{label:"office worker: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F4BC",emoji:"🧑🏽‍💼",text:"",type:1,order:1194,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["office_worker_tone3"]},{label:"office worker: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F4BC",emoji:"🧑🏾‍💼",text:"",type:1,order:1195,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["office_worker_tone4"]},{label:"office worker: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F4BC",emoji:"🧑🏿‍💼",text:"",type:1,order:1196,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["office_worker_tone5"]}],shortCodes:["office_worker"]},{label:"man office worker",hexcode:"1F468-200D-1F4BC",tags:["architect","business","man","manager","office","white-collar","worker"],emoji:"👨‍💼",text:"",type:1,order:1197,group:1,subgroup:25,version:4,skins:[{label:"man office worker: light skin tone",hexcode:"1F468-1F3FB-200D-1F4BC",emoji:"👨🏻‍💼",text:"",type:1,order:1198,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_office_worker_tone1"]},{label:"man office worker: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F4BC",emoji:"👨🏼‍💼",text:"",type:1,order:1199,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_office_worker_tone2"]},{label:"man office worker: medium skin tone",hexcode:"1F468-1F3FD-200D-1F4BC",emoji:"👨🏽‍💼",text:"",type:1,order:1200,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_office_worker_tone3"]},{label:"man office worker: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F4BC",emoji:"👨🏾‍💼",text:"",type:1,order:1201,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_office_worker_tone4"]},{label:"man office worker: dark skin tone",hexcode:"1F468-1F3FF-200D-1F4BC",emoji:"👨🏿‍💼",text:"",type:1,order:1202,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_office_worker_tone5"]}],shortCodes:["man_office_worker"]},{label:"woman office worker",hexcode:"1F469-200D-1F4BC",tags:["architect","business","manager","office","white-collar","woman","worker"],emoji:"👩‍💼",text:"",type:1,order:1203,group:1,subgroup:25,version:4,skins:[{label:"woman office worker: light skin tone",hexcode:"1F469-1F3FB-200D-1F4BC",emoji:"👩🏻‍💼",text:"",type:1,order:1204,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_office_worker_tone1"]},{label:"woman office worker: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F4BC",emoji:"👩🏼‍💼",text:"",type:1,order:1205,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_office_worker_tone2"]},{label:"woman office worker: medium skin tone",hexcode:"1F469-1F3FD-200D-1F4BC",emoji:"👩🏽‍💼",text:"",type:1,order:1206,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_office_worker_tone3"]},{label:"woman office worker: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F4BC",emoji:"👩🏾‍💼",text:"",type:1,order:1207,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_office_worker_tone4"]},{label:"woman office worker: dark skin tone",hexcode:"1F469-1F3FF-200D-1F4BC",emoji:"👩🏿‍💼",text:"",type:1,order:1208,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_office_worker_tone5"]}],shortCodes:["woman_office_worker"]},{label:"scientist",hexcode:"1F9D1-200D-1F52C",tags:["biologist","chemist","engineer","mathematician","physicist"],emoji:"🧑‍🔬",text:"",type:1,order:1209,group:1,subgroup:25,version:12.1,skins:[{label:"scientist: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F52C",emoji:"🧑🏻‍🔬",text:"",type:1,order:1210,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["scientist_tone1"]},{label:"scientist: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F52C",emoji:"🧑🏼‍🔬",text:"",type:1,order:1211,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["scientist_tone2"]},{label:"scientist: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F52C",emoji:"🧑🏽‍🔬",text:"",type:1,order:1212,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["scientist_tone3"]},{label:"scientist: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F52C",emoji:"🧑🏾‍🔬",text:"",type:1,order:1213,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["scientist_tone4"]},{label:"scientist: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F52C",emoji:"🧑🏿‍🔬",text:"",type:1,order:1214,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["scientist_tone5"]}],shortCodes:["scientist"]},{label:"man scientist",hexcode:"1F468-200D-1F52C",tags:["biologist","chemist","engineer","man","mathematician","physicist","scientist"],emoji:"👨‍🔬",text:"",type:1,order:1215,group:1,subgroup:25,version:4,skins:[{label:"man scientist: light skin tone",hexcode:"1F468-1F3FB-200D-1F52C",emoji:"👨🏻‍🔬",text:"",type:1,order:1216,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_scientist_tone1"]},{label:"man scientist: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F52C",emoji:"👨🏼‍🔬",text:"",type:1,order:1217,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_scientist_tone2"]},{label:"man scientist: medium skin tone",hexcode:"1F468-1F3FD-200D-1F52C",emoji:"👨🏽‍🔬",text:"",type:1,order:1218,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_scientist_tone3"]},{label:"man scientist: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F52C",emoji:"👨🏾‍🔬",text:"",type:1,order:1219,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_scientist_tone4"]},{label:"man scientist: dark skin tone",hexcode:"1F468-1F3FF-200D-1F52C",emoji:"👨🏿‍🔬",text:"",type:1,order:1220,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_scientist_tone5"]}],shortCodes:["man_scientist"]},{label:"woman scientist",hexcode:"1F469-200D-1F52C",tags:["biologist","chemist","engineer","mathematician","physicist","scientist","woman"],emoji:"👩‍🔬",text:"",type:1,order:1221,group:1,subgroup:25,version:4,skins:[{label:"woman scientist: light skin tone",hexcode:"1F469-1F3FB-200D-1F52C",emoji:"👩🏻‍🔬",text:"",type:1,order:1222,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_scientist_tone1"]},{label:"woman scientist: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F52C",emoji:"👩🏼‍🔬",text:"",type:1,order:1223,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_scientist_tone2"]},{label:"woman scientist: medium skin tone",hexcode:"1F469-1F3FD-200D-1F52C",emoji:"👩🏽‍🔬",text:"",type:1,order:1224,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_scientist_tone3"]},{label:"woman scientist: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F52C",emoji:"👩🏾‍🔬",text:"",type:1,order:1225,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_scientist_tone4"]},{label:"woman scientist: dark skin tone",hexcode:"1F469-1F3FF-200D-1F52C",emoji:"👩🏿‍🔬",text:"",type:1,order:1226,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_scientist_tone5"]}],shortCodes:["woman_scientist"]},{label:"technologist",hexcode:"1F9D1-200D-1F4BB",tags:["coder","computer","developer","inventor","software"],emoji:"🧑‍💻",text:"",type:1,order:1227,group:1,subgroup:25,version:12.1,skins:[{label:"technologist: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F4BB",emoji:"🧑🏻‍💻",text:"",type:1,order:1228,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["technologist_tone1"]},{label:"technologist: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F4BB",emoji:"🧑🏼‍💻",text:"",type:1,order:1229,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["technologist_tone2"]},{label:"technologist: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F4BB",emoji:"🧑🏽‍💻",text:"",type:1,order:1230,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["technologist_tone3"]},{label:"technologist: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F4BB",emoji:"🧑🏾‍💻",text:"",type:1,order:1231,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["technologist_tone4"]},{label:"technologist: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F4BB",emoji:"🧑🏿‍💻",text:"",type:1,order:1232,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["technologist_tone5"]}],shortCodes:["technologist"]},{label:"man technologist",hexcode:"1F468-200D-1F4BB",tags:["coder","computer","developer","inventor","man","software","technologist"],emoji:"👨‍💻",text:"",type:1,order:1233,group:1,subgroup:25,version:4,skins:[{label:"man technologist: light skin tone",hexcode:"1F468-1F3FB-200D-1F4BB",emoji:"👨🏻‍💻",text:"",type:1,order:1234,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_technologist_tone1"]},{label:"man technologist: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F4BB",emoji:"👨🏼‍💻",text:"",type:1,order:1235,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_technologist_tone2"]},{label:"man technologist: medium skin tone",hexcode:"1F468-1F3FD-200D-1F4BB",emoji:"👨🏽‍💻",text:"",type:1,order:1236,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_technologist_tone3"]},{label:"man technologist: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F4BB",emoji:"👨🏾‍💻",text:"",type:1,order:1237,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_technologist_tone4"]},{label:"man technologist: dark skin tone",hexcode:"1F468-1F3FF-200D-1F4BB",emoji:"👨🏿‍💻",text:"",type:1,order:1238,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_technologist_tone5"]}],shortCodes:["man_technologist"]},{label:"woman technologist",hexcode:"1F469-200D-1F4BB",tags:["coder","computer","developer","inventor","software","technologist","woman"],emoji:"👩‍💻",text:"",type:1,order:1239,group:1,subgroup:25,version:4,skins:[{label:"woman technologist: light skin tone",hexcode:"1F469-1F3FB-200D-1F4BB",emoji:"👩🏻‍💻",text:"",type:1,order:1240,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_technologist_tone1"]},{label:"woman technologist: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F4BB",emoji:"👩🏼‍💻",text:"",type:1,order:1241,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_technologist_tone2"]},{label:"woman technologist: medium skin tone",hexcode:"1F469-1F3FD-200D-1F4BB",emoji:"👩🏽‍💻",text:"",type:1,order:1242,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_technologist_tone3"]},{label:"woman technologist: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F4BB",emoji:"👩🏾‍💻",text:"",type:1,order:1243,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_technologist_tone4"]},{label:"woman technologist: dark skin tone",hexcode:"1F469-1F3FF-200D-1F4BB",emoji:"👩🏿‍💻",text:"",type:1,order:1244,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_technologist_tone5"]}],shortCodes:["woman_technologist"]},{label:"singer",hexcode:"1F9D1-200D-1F3A4",tags:["actor","entertainer","rock","rockstar","star"],emoji:"🧑‍🎤",text:"",type:1,order:1245,group:1,subgroup:25,version:12.1,skins:[{label:"singer: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F3A4",emoji:"🧑🏻‍🎤",text:"",type:1,order:1246,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["singer_tone1"]},{label:"singer: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F3A4",emoji:"🧑🏼‍🎤",text:"",type:1,order:1247,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["singer_tone2"]},{label:"singer: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F3A4",emoji:"🧑🏽‍🎤",text:"",type:1,order:1248,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["singer_tone3"]},{label:"singer: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F3A4",emoji:"🧑🏾‍🎤",text:"",type:1,order:1249,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["singer_tone4"]},{label:"singer: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F3A4",emoji:"🧑🏿‍🎤",text:"",type:1,order:1250,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["singer_tone5"]}],shortCodes:["singer"]},{label:"man singer",hexcode:"1F468-200D-1F3A4",tags:["actor","entertainer","man","rock","rockstar","singer","star"],emoji:"👨‍🎤",text:"",type:1,order:1251,group:1,subgroup:25,version:4,skins:[{label:"man singer: light skin tone",hexcode:"1F468-1F3FB-200D-1F3A4",emoji:"👨🏻‍🎤",text:"",type:1,order:1252,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_singer_tone1"]},{label:"man singer: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F3A4",emoji:"👨🏼‍🎤",text:"",type:1,order:1253,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_singer_tone2"]},{label:"man singer: medium skin tone",hexcode:"1F468-1F3FD-200D-1F3A4",emoji:"👨🏽‍🎤",text:"",type:1,order:1254,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_singer_tone3"]},{label:"man singer: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F3A4",emoji:"👨🏾‍🎤",text:"",type:1,order:1255,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_singer_tone4"]},{label:"man singer: dark skin tone",hexcode:"1F468-1F3FF-200D-1F3A4",emoji:"👨🏿‍🎤",text:"",type:1,order:1256,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_singer_tone5"]}],shortCodes:["man_singer"]},{label:"woman singer",hexcode:"1F469-200D-1F3A4",tags:["actor","entertainer","rock","rockstar","singer","star","woman"],emoji:"👩‍🎤",text:"",type:1,order:1257,group:1,subgroup:25,version:4,skins:[{label:"woman singer: light skin tone",hexcode:"1F469-1F3FB-200D-1F3A4",emoji:"👩🏻‍🎤",text:"",type:1,order:1258,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_singer_tone1"]},{label:"woman singer: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F3A4",emoji:"👩🏼‍🎤",text:"",type:1,order:1259,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_singer_tone2"]},{label:"woman singer: medium skin tone",hexcode:"1F469-1F3FD-200D-1F3A4",emoji:"👩🏽‍🎤",text:"",type:1,order:1260,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_singer_tone3"]},{label:"woman singer: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F3A4",emoji:"👩🏾‍🎤",text:"",type:1,order:1261,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_singer_tone4"]},{label:"woman singer: dark skin tone",hexcode:"1F469-1F3FF-200D-1F3A4",emoji:"👩🏿‍🎤",text:"",type:1,order:1262,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_singer_tone5"]}],shortCodes:["woman_singer"]},{label:"artist",hexcode:"1F9D1-200D-1F3A8",tags:["palette"],emoji:"🧑‍🎨",text:"",type:1,order:1263,group:1,subgroup:25,version:12.1,skins:[{label:"artist: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F3A8",emoji:"🧑🏻‍🎨",text:"",type:1,order:1264,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["artist_tone1"]},{label:"artist: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F3A8",emoji:"🧑🏼‍🎨",text:"",type:1,order:1265,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["artist_tone2"]},{label:"artist: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F3A8",emoji:"🧑🏽‍🎨",text:"",type:1,order:1266,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["artist_tone3"]},{label:"artist: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F3A8",emoji:"🧑🏾‍🎨",text:"",type:1,order:1267,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["artist_tone4"]},{label:"artist: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F3A8",emoji:"🧑🏿‍🎨",text:"",type:1,order:1268,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["artist_tone5"]}],shortCodes:["artist"]},{label:"man artist",hexcode:"1F468-200D-1F3A8",tags:["artist","man","palette"],emoji:"👨‍🎨",text:"",type:1,order:1269,group:1,subgroup:25,version:4,skins:[{label:"man artist: light skin tone",hexcode:"1F468-1F3FB-200D-1F3A8",emoji:"👨🏻‍🎨",text:"",type:1,order:1270,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_artist_tone1"]},{label:"man artist: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F3A8",emoji:"👨🏼‍🎨",text:"",type:1,order:1271,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_artist_tone2"]},{label:"man artist: medium skin tone",hexcode:"1F468-1F3FD-200D-1F3A8",emoji:"👨🏽‍🎨",text:"",type:1,order:1272,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_artist_tone3"]},{label:"man artist: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F3A8",emoji:"👨🏾‍🎨",text:"",type:1,order:1273,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_artist_tone4"]},{label:"man artist: dark skin tone",hexcode:"1F468-1F3FF-200D-1F3A8",emoji:"👨🏿‍🎨",text:"",type:1,order:1274,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_artist_tone5"]}],shortCodes:["man_artist"]},{label:"woman artist",hexcode:"1F469-200D-1F3A8",tags:["artist","palette","woman"],emoji:"👩‍🎨",text:"",type:1,order:1275,group:1,subgroup:25,version:4,skins:[{label:"woman artist: light skin tone",hexcode:"1F469-1F3FB-200D-1F3A8",emoji:"👩🏻‍🎨",text:"",type:1,order:1276,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_artist_tone1"]},{label:"woman artist: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F3A8",emoji:"👩🏼‍🎨",text:"",type:1,order:1277,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_artist_tone2"]},{label:"woman artist: medium skin tone",hexcode:"1F469-1F3FD-200D-1F3A8",emoji:"👩🏽‍🎨",text:"",type:1,order:1278,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_artist_tone3"]},{label:"woman artist: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F3A8",emoji:"👩🏾‍🎨",text:"",type:1,order:1279,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_artist_tone4"]},{label:"woman artist: dark skin tone",hexcode:"1F469-1F3FF-200D-1F3A8",emoji:"👩🏿‍🎨",text:"",type:1,order:1280,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_artist_tone5"]}],shortCodes:["woman_artist"]},{label:"pilot",hexcode:"1F9D1-200D-2708-FE0F",tags:["plane"],emoji:"🧑‍✈️",text:"",type:1,order:1281,group:1,subgroup:25,version:12.1,skins:[{label:"pilot: light skin tone",hexcode:"1F9D1-1F3FB-200D-2708-FE0F",emoji:"🧑🏻‍✈️",text:"",type:1,order:1283,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["pilot_tone1"]},{label:"pilot: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-2708-FE0F",emoji:"🧑🏼‍✈️",text:"",type:1,order:1285,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["pilot_tone2"]},{label:"pilot: medium skin tone",hexcode:"1F9D1-1F3FD-200D-2708-FE0F",emoji:"🧑🏽‍✈️",text:"",type:1,order:1287,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["pilot_tone3"]},{label:"pilot: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-2708-FE0F",emoji:"🧑🏾‍✈️",text:"",type:1,order:1289,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["pilot_tone4"]},{label:"pilot: dark skin tone",hexcode:"1F9D1-1F3FF-200D-2708-FE0F",emoji:"🧑🏿‍✈️",text:"",type:1,order:1291,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["pilot_tone5"]}],shortCodes:["pilot"]},{label:"man pilot",hexcode:"1F468-200D-2708-FE0F",tags:["man","pilot","plane"],emoji:"👨‍✈️",text:"",type:1,order:1293,group:1,subgroup:25,version:4,skins:[{label:"man pilot: light skin tone",hexcode:"1F468-1F3FB-200D-2708-FE0F",emoji:"👨🏻‍✈️",text:"",type:1,order:1295,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_pilot_tone1"]},{label:"man pilot: medium-light skin tone",hexcode:"1F468-1F3FC-200D-2708-FE0F",emoji:"👨🏼‍✈️",text:"",type:1,order:1297,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_pilot_tone2"]},{label:"man pilot: medium skin tone",hexcode:"1F468-1F3FD-200D-2708-FE0F",emoji:"👨🏽‍✈️",text:"",type:1,order:1299,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_pilot_tone3"]},{label:"man pilot: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-2708-FE0F",emoji:"👨🏾‍✈️",text:"",type:1,order:1301,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_pilot_tone4"]},{label:"man pilot: dark skin tone",hexcode:"1F468-1F3FF-200D-2708-FE0F",emoji:"👨🏿‍✈️",text:"",type:1,order:1303,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_pilot_tone5"]}],shortCodes:["man_pilot"]},{label:"woman pilot",hexcode:"1F469-200D-2708-FE0F",tags:["pilot","plane","woman"],emoji:"👩‍✈️",text:"",type:1,order:1305,group:1,subgroup:25,version:4,skins:[{label:"woman pilot: light skin tone",hexcode:"1F469-1F3FB-200D-2708-FE0F",emoji:"👩🏻‍✈️",text:"",type:1,order:1307,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_pilot_tone1"]},{label:"woman pilot: medium-light skin tone",hexcode:"1F469-1F3FC-200D-2708-FE0F",emoji:"👩🏼‍✈️",text:"",type:1,order:1309,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_pilot_tone2"]},{label:"woman pilot: medium skin tone",hexcode:"1F469-1F3FD-200D-2708-FE0F",emoji:"👩🏽‍✈️",text:"",type:1,order:1311,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_pilot_tone3"]},{label:"woman pilot: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-2708-FE0F",emoji:"👩🏾‍✈️",text:"",type:1,order:1313,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_pilot_tone4"]},{label:"woman pilot: dark skin tone",hexcode:"1F469-1F3FF-200D-2708-FE0F",emoji:"👩🏿‍✈️",text:"",type:1,order:1315,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_pilot_tone5"]}],shortCodes:["woman_pilot"]},{label:"astronaut",hexcode:"1F9D1-200D-1F680",tags:["rocket","space"],emoji:"🧑‍🚀",text:"",type:1,order:1317,group:1,subgroup:25,version:12.1,skins:[{label:"astronaut: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F680",emoji:"🧑🏻‍🚀",text:"",type:1,order:1318,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["astronaut_tone1"]},{label:"astronaut: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F680",emoji:"🧑🏼‍🚀",text:"",type:1,order:1319,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["astronaut_tone2"]},{label:"astronaut: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F680",emoji:"🧑🏽‍🚀",text:"",type:1,order:1320,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["astronaut_tone3"]},{label:"astronaut: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F680",emoji:"🧑🏾‍🚀",text:"",type:1,order:1321,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["astronaut_tone4"]},{label:"astronaut: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F680",emoji:"🧑🏿‍🚀",text:"",type:1,order:1322,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["astronaut_tone5"]}],shortCodes:["astronaut"]},{label:"man astronaut",hexcode:"1F468-200D-1F680",tags:["astronaut","man","rocket","space"],emoji:"👨‍🚀",text:"",type:1,order:1323,group:1,subgroup:25,version:4,skins:[{label:"man astronaut: light skin tone",hexcode:"1F468-1F3FB-200D-1F680",emoji:"👨🏻‍🚀",text:"",type:1,order:1324,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_astronaut_tone1"]},{label:"man astronaut: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F680",emoji:"👨🏼‍🚀",text:"",type:1,order:1325,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_astronaut_tone2"]},{label:"man astronaut: medium skin tone",hexcode:"1F468-1F3FD-200D-1F680",emoji:"👨🏽‍🚀",text:"",type:1,order:1326,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_astronaut_tone3"]},{label:"man astronaut: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F680",emoji:"👨🏾‍🚀",text:"",type:1,order:1327,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_astronaut_tone4"]},{label:"man astronaut: dark skin tone",hexcode:"1F468-1F3FF-200D-1F680",emoji:"👨🏿‍🚀",text:"",type:1,order:1328,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_astronaut_tone5"]}],shortCodes:["man_astronaut"]},{label:"woman astronaut",hexcode:"1F469-200D-1F680",tags:["astronaut","rocket","space","woman"],emoji:"👩‍🚀",text:"",type:1,order:1329,group:1,subgroup:25,version:4,skins:[{label:"woman astronaut: light skin tone",hexcode:"1F469-1F3FB-200D-1F680",emoji:"👩🏻‍🚀",text:"",type:1,order:1330,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_astronaut_tone1"]},{label:"woman astronaut: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F680",emoji:"👩🏼‍🚀",text:"",type:1,order:1331,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_astronaut_tone2"]},{label:"woman astronaut: medium skin tone",hexcode:"1F469-1F3FD-200D-1F680",emoji:"👩🏽‍🚀",text:"",type:1,order:1332,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_astronaut_tone3"]},{label:"woman astronaut: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F680",emoji:"👩🏾‍🚀",text:"",type:1,order:1333,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_astronaut_tone4"]},{label:"woman astronaut: dark skin tone",hexcode:"1F469-1F3FF-200D-1F680",emoji:"👩🏿‍🚀",text:"",type:1,order:1334,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_astronaut_tone5"]}],shortCodes:["woman_astronaut"]},{label:"firefighter",hexcode:"1F9D1-200D-1F692",tags:["fire","firetruck"],emoji:"🧑‍🚒",text:"",type:1,order:1335,group:1,subgroup:25,version:12.1,skins:[{label:"firefighter: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F692",emoji:"🧑🏻‍🚒",text:"",type:1,order:1336,group:1,subgroup:25,version:12.1,tone:1,shortCodes:["firefighter_tone1"]},{label:"firefighter: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F692",emoji:"🧑🏼‍🚒",text:"",type:1,order:1337,group:1,subgroup:25,version:12.1,tone:2,shortCodes:["firefighter_tone2"]},{label:"firefighter: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F692",emoji:"🧑🏽‍🚒",text:"",type:1,order:1338,group:1,subgroup:25,version:12.1,tone:3,shortCodes:["firefighter_tone3"]},{label:"firefighter: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F692",emoji:"🧑🏾‍🚒",text:"",type:1,order:1339,group:1,subgroup:25,version:12.1,tone:4,shortCodes:["firefighter_tone4"]},{label:"firefighter: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F692",emoji:"🧑🏿‍🚒",text:"",type:1,order:1340,group:1,subgroup:25,version:12.1,tone:5,shortCodes:["firefighter_tone5"]}],shortCodes:["firefighter"]},{label:"man firefighter",hexcode:"1F468-200D-1F692",tags:["fire","firefighter","firetruck","man"],emoji:"👨‍🚒",text:"",type:1,order:1341,group:1,subgroup:25,version:4,skins:[{label:"man firefighter: light skin tone",hexcode:"1F468-1F3FB-200D-1F692",emoji:"👨🏻‍🚒",text:"",type:1,order:1342,group:1,subgroup:25,version:4,tone:1,shortCodes:["man_firefighter_tone1"]},{label:"man firefighter: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F692",emoji:"👨🏼‍🚒",text:"",type:1,order:1343,group:1,subgroup:25,version:4,tone:2,shortCodes:["man_firefighter_tone2"]},{label:"man firefighter: medium skin tone",hexcode:"1F468-1F3FD-200D-1F692",emoji:"👨🏽‍🚒",text:"",type:1,order:1344,group:1,subgroup:25,version:4,tone:3,shortCodes:["man_firefighter_tone3"]},{label:"man firefighter: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F692",emoji:"👨🏾‍🚒",text:"",type:1,order:1345,group:1,subgroup:25,version:4,tone:4,shortCodes:["man_firefighter_tone4"]},{label:"man firefighter: dark skin tone",hexcode:"1F468-1F3FF-200D-1F692",emoji:"👨🏿‍🚒",text:"",type:1,order:1346,group:1,subgroup:25,version:4,tone:5,shortCodes:["man_firefighter_tone5"]}],shortCodes:["man_firefighter"]},{label:"woman firefighter",hexcode:"1F469-200D-1F692",tags:["fire","firefighter","firetruck","woman"],emoji:"👩‍🚒",text:"",type:1,order:1347,group:1,subgroup:25,version:4,skins:[{label:"woman firefighter: light skin tone",hexcode:"1F469-1F3FB-200D-1F692",emoji:"👩🏻‍🚒",text:"",type:1,order:1348,group:1,subgroup:25,version:4,tone:1,shortCodes:["woman_firefighter_tone1"]},{label:"woman firefighter: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F692",emoji:"👩🏼‍🚒",text:"",type:1,order:1349,group:1,subgroup:25,version:4,tone:2,shortCodes:["woman_firefighter_tone2"]},{label:"woman firefighter: medium skin tone",hexcode:"1F469-1F3FD-200D-1F692",emoji:"👩🏽‍🚒",text:"",type:1,order:1350,group:1,subgroup:25,version:4,tone:3,shortCodes:["woman_firefighter_tone3"]},{label:"woman firefighter: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F692",emoji:"👩🏾‍🚒",text:"",type:1,order:1351,group:1,subgroup:25,version:4,tone:4,shortCodes:["woman_firefighter_tone4"]},{label:"woman firefighter: dark skin tone",hexcode:"1F469-1F3FF-200D-1F692",emoji:"👩🏿‍🚒",text:"",type:1,order:1352,group:1,subgroup:25,version:4,tone:5,shortCodes:["woman_firefighter_tone5"]}],shortCodes:["woman_firefighter"]},{label:"police officer",hexcode:"1F46E",tags:["apprehend","arrest","citation","cop","law","officer","over","police","pulled","undercover"],emoji:"👮",text:"",type:1,order:1353,group:1,subgroup:25,version:.6,skins:[{label:"police officer: light skin tone",hexcode:"1F46E-1F3FB",emoji:"👮🏻",text:"",type:1,order:1354,group:1,subgroup:25,version:1,tone:1,shortCodes:["cop_tone1","police_officer_tone1"]},{label:"police officer: medium-light skin tone",hexcode:"1F46E-1F3FC",emoji:"👮🏼",text:"",type:1,order:1355,group:1,subgroup:25,version:1,tone:2,shortCodes:["cop_tone2","police_officer_tone2"]},{label:"police officer: medium skin tone",hexcode:"1F46E-1F3FD",emoji:"👮🏽",text:"",type:1,order:1356,group:1,subgroup:25,version:1,tone:3,shortCodes:["cop_tone3","police_officer_tone3"]},{label:"police officer: medium-dark skin tone",hexcode:"1F46E-1F3FE",emoji:"👮🏾",text:"",type:1,order:1357,group:1,subgroup:25,version:1,tone:4,shortCodes:["cop_tone4","police_officer_tone4"]},{label:"police officer: dark skin tone",hexcode:"1F46E-1F3FF",emoji:"👮🏿",text:"",type:1,order:1358,group:1,subgroup:25,version:1,tone:5,shortCodes:["cop_tone5","police_officer_tone5"]}],shortCodes:["cop","police_officer"]},{label:"man police officer",hexcode:"1F46E-200D-2642-FE0F",tags:["apprehend","arrest","citation","cop","law","man","officer","over","police","pulled","undercover"],emoji:"👮‍♂️",text:"",type:1,order:1359,group:1,subgroup:25,version:4,gender:1,skins:[{label:"man police officer: light skin tone",hexcode:"1F46E-1F3FB-200D-2642-FE0F",emoji:"👮🏻‍♂️",text:"",type:1,order:1361,group:1,subgroup:25,version:4,gender:1,tone:1,shortCodes:["man_police_officer_tone1"]},{label:"man police officer: medium-light skin tone",hexcode:"1F46E-1F3FC-200D-2642-FE0F",emoji:"👮🏼‍♂️",text:"",type:1,order:1363,group:1,subgroup:25,version:4,gender:1,tone:2,shortCodes:["man_police_officer_tone2"]},{label:"man police officer: medium skin tone",hexcode:"1F46E-1F3FD-200D-2642-FE0F",emoji:"👮🏽‍♂️",text:"",type:1,order:1365,group:1,subgroup:25,version:4,gender:1,tone:3,shortCodes:["man_police_officer_tone3"]},{label:"man police officer: medium-dark skin tone",hexcode:"1F46E-1F3FE-200D-2642-FE0F",emoji:"👮🏾‍♂️",text:"",type:1,order:1367,group:1,subgroup:25,version:4,gender:1,tone:4,shortCodes:["man_police_officer_tone4"]},{label:"man police officer: dark skin tone",hexcode:"1F46E-1F3FF-200D-2642-FE0F",emoji:"👮🏿‍♂️",text:"",type:1,order:1369,group:1,subgroup:25,version:4,gender:1,tone:5,shortCodes:["man_police_officer_tone5"]}],shortCodes:["man_police_officer"]},{label:"woman police officer",hexcode:"1F46E-200D-2640-FE0F",tags:["apprehend","arrest","citation","cop","law","officer","over","police","pulled","undercover","woman"],emoji:"👮‍♀️",text:"",type:1,order:1371,group:1,subgroup:25,version:4,gender:0,skins:[{label:"woman police officer: light skin tone",hexcode:"1F46E-1F3FB-200D-2640-FE0F",emoji:"👮🏻‍♀️",text:"",type:1,order:1373,group:1,subgroup:25,version:4,gender:0,tone:1,shortCodes:["woman_police_officer_tone1"]},{label:"woman police officer: medium-light skin tone",hexcode:"1F46E-1F3FC-200D-2640-FE0F",emoji:"👮🏼‍♀️",text:"",type:1,order:1375,group:1,subgroup:25,version:4,gender:0,tone:2,shortCodes:["woman_police_officer_tone2"]},{label:"woman police officer: medium skin tone",hexcode:"1F46E-1F3FD-200D-2640-FE0F",emoji:"👮🏽‍♀️",text:"",type:1,order:1377,group:1,subgroup:25,version:4,gender:0,tone:3,shortCodes:["woman_police_officer_tone3"]},{label:"woman police officer: medium-dark skin tone",hexcode:"1F46E-1F3FE-200D-2640-FE0F",emoji:"👮🏾‍♀️",text:"",type:1,order:1379,group:1,subgroup:25,version:4,gender:0,tone:4,shortCodes:["woman_police_officer_tone4"]},{label:"woman police officer: dark skin tone",hexcode:"1F46E-1F3FF-200D-2640-FE0F",emoji:"👮🏿‍♀️",text:"",type:1,order:1381,group:1,subgroup:25,version:4,gender:0,tone:5,shortCodes:["woman_police_officer_tone5"]}],shortCodes:["woman_police_officer"]},{label:"detective",hexcode:"1F575",tags:["sleuth","spy"],emoji:"🕵️",text:"🕵︎",type:0,order:1384,group:1,subgroup:25,version:.7,skins:[{label:"detective: light skin tone",hexcode:"1F575-1F3FB",emoji:"🕵🏻",text:"",type:1,order:1385,group:1,subgroup:25,version:2,tone:1,shortCodes:["detective_tone1"]},{label:"detective: medium-light skin tone",hexcode:"1F575-1F3FC",emoji:"🕵🏼",text:"",type:1,order:1386,group:1,subgroup:25,version:2,tone:2,shortCodes:["detective_tone2"]},{label:"detective: medium skin tone",hexcode:"1F575-1F3FD",emoji:"🕵🏽",text:"",type:1,order:1387,group:1,subgroup:25,version:2,tone:3,shortCodes:["detective_tone3"]},{label:"detective: medium-dark skin tone",hexcode:"1F575-1F3FE",emoji:"🕵🏾",text:"",type:1,order:1388,group:1,subgroup:25,version:2,tone:4,shortCodes:["detective_tone4"]},{label:"detective: dark skin tone",hexcode:"1F575-1F3FF",emoji:"🕵🏿",text:"",type:1,order:1389,group:1,subgroup:25,version:2,tone:5,shortCodes:["detective_tone5"]}],shortCodes:["detective"]},{label:"man detective",hexcode:"1F575-FE0F-200D-2642-FE0F",tags:["detective","man","sleuth","spy"],emoji:"🕵️‍♂️",text:"",type:1,order:1390,group:1,subgroup:25,version:4,gender:1,skins:[{label:"man detective: light skin tone",hexcode:"1F575-1F3FB-200D-2642-FE0F",emoji:"🕵🏻‍♂️",text:"",type:1,order:1394,group:1,subgroup:25,version:4,gender:1,tone:1,shortCodes:["man_detective_tone1"]},{label:"man detective: medium-light skin tone",hexcode:"1F575-1F3FC-200D-2642-FE0F",emoji:"🕵🏼‍♂️",text:"",type:1,order:1396,group:1,subgroup:25,version:4,gender:1,tone:2,shortCodes:["man_detective_tone2"]},{label:"man detective: medium skin tone",hexcode:"1F575-1F3FD-200D-2642-FE0F",emoji:"🕵🏽‍♂️",text:"",type:1,order:1398,group:1,subgroup:25,version:4,gender:1,tone:3,shortCodes:["man_detective_tone3"]},{label:"man detective: medium-dark skin tone",hexcode:"1F575-1F3FE-200D-2642-FE0F",emoji:"🕵🏾‍♂️",text:"",type:1,order:1400,group:1,subgroup:25,version:4,gender:1,tone:4,shortCodes:["man_detective_tone4"]},{label:"man detective: dark skin tone",hexcode:"1F575-1F3FF-200D-2642-FE0F",emoji:"🕵🏿‍♂️",text:"",type:1,order:1402,group:1,subgroup:25,version:4,gender:1,tone:5,shortCodes:["man_detective_tone5"]}],shortCodes:["man_detective"]},{label:"woman detective",hexcode:"1F575-FE0F-200D-2640-FE0F",tags:["detective","sleuth","spy","woman"],emoji:"🕵️‍♀️",text:"",type:1,order:1404,group:1,subgroup:25,version:4,gender:0,skins:[{label:"woman detective: light skin tone",hexcode:"1F575-1F3FB-200D-2640-FE0F",emoji:"🕵🏻‍♀️",text:"",type:1,order:1408,group:1,subgroup:25,version:4,gender:0,tone:1,shortCodes:["woman_detective_tone1"]},{label:"woman detective: medium-light skin tone",hexcode:"1F575-1F3FC-200D-2640-FE0F",emoji:"🕵🏼‍♀️",text:"",type:1,order:1410,group:1,subgroup:25,version:4,gender:0,tone:2,shortCodes:["woman_detective_tone2"]},{label:"woman detective: medium skin tone",hexcode:"1F575-1F3FD-200D-2640-FE0F",emoji:"🕵🏽‍♀️",text:"",type:1,order:1412,group:1,subgroup:25,version:4,gender:0,tone:3,shortCodes:["woman_detective_tone3"]},{label:"woman detective: medium-dark skin tone",hexcode:"1F575-1F3FE-200D-2640-FE0F",emoji:"🕵🏾‍♀️",text:"",type:1,order:1414,group:1,subgroup:25,version:4,gender:0,tone:4,shortCodes:["woman_detective_tone4"]},{label:"woman detective: dark skin tone",hexcode:"1F575-1F3FF-200D-2640-FE0F",emoji:"🕵🏿‍♀️",text:"",type:1,order:1416,group:1,subgroup:25,version:4,gender:0,tone:5,shortCodes:["woman_detective_tone5"]}],shortCodes:["woman_detective"]},{label:"guard",hexcode:"1F482",tags:["buckingham","helmet","london","palace"],emoji:"💂",text:"",type:1,order:1418,group:1,subgroup:25,version:.6,skins:[{label:"guard: light skin tone",hexcode:"1F482-1F3FB",emoji:"💂🏻",text:"",type:1,order:1419,group:1,subgroup:25,version:1,tone:1,shortCodes:["guard_tone1"]},{label:"guard: medium-light skin tone",hexcode:"1F482-1F3FC",emoji:"💂🏼",text:"",type:1,order:1420,group:1,subgroup:25,version:1,tone:2,shortCodes:["guard_tone2"]},{label:"guard: medium skin tone",hexcode:"1F482-1F3FD",emoji:"💂🏽",text:"",type:1,order:1421,group:1,subgroup:25,version:1,tone:3,shortCodes:["guard_tone3"]},{label:"guard: medium-dark skin tone",hexcode:"1F482-1F3FE",emoji:"💂🏾",text:"",type:1,order:1422,group:1,subgroup:25,version:1,tone:4,shortCodes:["guard_tone4"]},{label:"guard: dark skin tone",hexcode:"1F482-1F3FF",emoji:"💂🏿",text:"",type:1,order:1423,group:1,subgroup:25,version:1,tone:5,shortCodes:["guard_tone5"]}],shortCodes:["guard"]},{label:"man guard",hexcode:"1F482-200D-2642-FE0F",tags:["buckingham","guard","helmet","london","man","palace"],emoji:"💂‍♂️",text:"",type:1,order:1424,group:1,subgroup:25,version:4,gender:1,skins:[{label:"man guard: light skin tone",hexcode:"1F482-1F3FB-200D-2642-FE0F",emoji:"💂🏻‍♂️",text:"",type:1,order:1426,group:1,subgroup:25,version:4,gender:1,tone:1,shortCodes:["man_guard_tone1"]},{label:"man guard: medium-light skin tone",hexcode:"1F482-1F3FC-200D-2642-FE0F",emoji:"💂🏼‍♂️",text:"",type:1,order:1428,group:1,subgroup:25,version:4,gender:1,tone:2,shortCodes:["man_guard_tone2"]},{label:"man guard: medium skin tone",hexcode:"1F482-1F3FD-200D-2642-FE0F",emoji:"💂🏽‍♂️",text:"",type:1,order:1430,group:1,subgroup:25,version:4,gender:1,tone:3,shortCodes:["man_guard_tone3"]},{label:"man guard: medium-dark skin tone",hexcode:"1F482-1F3FE-200D-2642-FE0F",emoji:"💂🏾‍♂️",text:"",type:1,order:1432,group:1,subgroup:25,version:4,gender:1,tone:4,shortCodes:["man_guard_tone4"]},{label:"man guard: dark skin tone",hexcode:"1F482-1F3FF-200D-2642-FE0F",emoji:"💂🏿‍♂️",text:"",type:1,order:1434,group:1,subgroup:25,version:4,gender:1,tone:5,shortCodes:["man_guard_tone5"]}],shortCodes:["man_guard"]},{label:"woman guard",hexcode:"1F482-200D-2640-FE0F",tags:["buckingham","guard","helmet","london","palace","woman"],emoji:"💂‍♀️",text:"",type:1,order:1436,group:1,subgroup:25,version:4,gender:0,skins:[{label:"woman guard: light skin tone",hexcode:"1F482-1F3FB-200D-2640-FE0F",emoji:"💂🏻‍♀️",text:"",type:1,order:1438,group:1,subgroup:25,version:4,gender:0,tone:1,shortCodes:["woman_guard_tone1"]},{label:"woman guard: medium-light skin tone",hexcode:"1F482-1F3FC-200D-2640-FE0F",emoji:"💂🏼‍♀️",text:"",type:1,order:1440,group:1,subgroup:25,version:4,gender:0,tone:2,shortCodes:["woman_guard_tone2"]},{label:"woman guard: medium skin tone",hexcode:"1F482-1F3FD-200D-2640-FE0F",emoji:"💂🏽‍♀️",text:"",type:1,order:1442,group:1,subgroup:25,version:4,gender:0,tone:3,shortCodes:["woman_guard_tone3"]},{label:"woman guard: medium-dark skin tone",hexcode:"1F482-1F3FE-200D-2640-FE0F",emoji:"💂🏾‍♀️",text:"",type:1,order:1444,group:1,subgroup:25,version:4,gender:0,tone:4,shortCodes:["woman_guard_tone4"]},{label:"woman guard: dark skin tone",hexcode:"1F482-1F3FF-200D-2640-FE0F",emoji:"💂🏿‍♀️",text:"",type:1,order:1446,group:1,subgroup:25,version:4,gender:0,tone:5,shortCodes:["woman_guard_tone5"]}],shortCodes:["woman_guard"]},{label:"ninja",hexcode:"1F977",tags:["assassin","fight","fighter","hidden","person","secret","skills","sly","soldier","stealth","war"],emoji:"🥷",text:"",type:1,order:1448,group:1,subgroup:25,version:13,skins:[{label:"ninja: light skin tone",hexcode:"1F977-1F3FB",emoji:"🥷🏻",text:"",type:1,order:1449,group:1,subgroup:25,version:13,tone:1,shortCodes:["ninja_tone1"]},{label:"ninja: medium-light skin tone",hexcode:"1F977-1F3FC",emoji:"🥷🏼",text:"",type:1,order:1450,group:1,subgroup:25,version:13,tone:2,shortCodes:["ninja_tone2"]},{label:"ninja: medium skin tone",hexcode:"1F977-1F3FD",emoji:"🥷🏽",text:"",type:1,order:1451,group:1,subgroup:25,version:13,tone:3,shortCodes:["ninja_tone3"]},{label:"ninja: medium-dark skin tone",hexcode:"1F977-1F3FE",emoji:"🥷🏾",text:"",type:1,order:1452,group:1,subgroup:25,version:13,tone:4,shortCodes:["ninja_tone4"]},{label:"ninja: dark skin tone",hexcode:"1F977-1F3FF",emoji:"🥷🏿",text:"",type:1,order:1453,group:1,subgroup:25,version:13,tone:5,shortCodes:["ninja_tone5"]}],shortCodes:["ninja"]},{label:"construction worker",hexcode:"1F477",tags:["build","construction","fix","hardhat","hat","man","person","rebuild","remodel","repair","work","worker"],emoji:"👷",text:"",type:1,order:1454,group:1,subgroup:25,version:.6,skins:[{label:"construction worker: light skin tone",hexcode:"1F477-1F3FB",emoji:"👷🏻",text:"",type:1,order:1455,group:1,subgroup:25,version:1,tone:1,shortCodes:["construction_worker_tone1"]},{label:"construction worker: medium-light skin tone",hexcode:"1F477-1F3FC",emoji:"👷🏼",text:"",type:1,order:1456,group:1,subgroup:25,version:1,tone:2,shortCodes:["construction_worker_tone2"]},{label:"construction worker: medium skin tone",hexcode:"1F477-1F3FD",emoji:"👷🏽",text:"",type:1,order:1457,group:1,subgroup:25,version:1,tone:3,shortCodes:["construction_worker_tone3"]},{label:"construction worker: medium-dark skin tone",hexcode:"1F477-1F3FE",emoji:"👷🏾",text:"",type:1,order:1458,group:1,subgroup:25,version:1,tone:4,shortCodes:["construction_worker_tone4"]},{label:"construction worker: dark skin tone",hexcode:"1F477-1F3FF",emoji:"👷🏿",text:"",type:1,order:1459,group:1,subgroup:25,version:1,tone:5,shortCodes:["construction_worker_tone5"]}],shortCodes:["construction_worker"]},{label:"man construction worker",hexcode:"1F477-200D-2642-FE0F",tags:["build","construction","fix","hardhat","hat","man","rebuild","remodel","repair","work","worker"],emoji:"👷‍♂️",text:"",type:1,order:1460,group:1,subgroup:25,version:4,gender:1,skins:[{label:"man construction worker: light skin tone",hexcode:"1F477-1F3FB-200D-2642-FE0F",emoji:"👷🏻‍♂️",text:"",type:1,order:1462,group:1,subgroup:25,version:4,gender:1,tone:1,shortCodes:["man_construction_worker_tone1"]},{label:"man construction worker: medium-light skin tone",hexcode:"1F477-1F3FC-200D-2642-FE0F",emoji:"👷🏼‍♂️",text:"",type:1,order:1464,group:1,subgroup:25,version:4,gender:1,tone:2,shortCodes:["man_construction_worker_tone2"]},{label:"man construction worker: medium skin tone",hexcode:"1F477-1F3FD-200D-2642-FE0F",emoji:"👷🏽‍♂️",text:"",type:1,order:1466,group:1,subgroup:25,version:4,gender:1,tone:3,shortCodes:["man_construction_worker_tone3"]},{label:"man construction worker: medium-dark skin tone",hexcode:"1F477-1F3FE-200D-2642-FE0F",emoji:"👷🏾‍♂️",text:"",type:1,order:1468,group:1,subgroup:25,version:4,gender:1,tone:4,shortCodes:["man_construction_worker_tone4"]},{label:"man construction worker: dark skin tone",hexcode:"1F477-1F3FF-200D-2642-FE0F",emoji:"👷🏿‍♂️",text:"",type:1,order:1470,group:1,subgroup:25,version:4,gender:1,tone:5,shortCodes:["man_construction_worker_tone5"]}],shortCodes:["man_construction_worker"]},{label:"woman construction worker",hexcode:"1F477-200D-2640-FE0F",tags:["build","construction","fix","hardhat","hat","man","rebuild","remodel","repair","woman","work","worker"],emoji:"👷‍♀️",text:"",type:1,order:1472,group:1,subgroup:25,version:4,gender:0,skins:[{label:"woman construction worker: light skin tone",hexcode:"1F477-1F3FB-200D-2640-FE0F",emoji:"👷🏻‍♀️",text:"",type:1,order:1474,group:1,subgroup:25,version:4,gender:0,tone:1,shortCodes:["woman_construction_worker_tone1"]},{label:"woman construction worker: medium-light skin tone",hexcode:"1F477-1F3FC-200D-2640-FE0F",emoji:"👷🏼‍♀️",text:"",type:1,order:1476,group:1,subgroup:25,version:4,gender:0,tone:2,shortCodes:["woman_construction_worker_tone2"]},{label:"woman construction worker: medium skin tone",hexcode:"1F477-1F3FD-200D-2640-FE0F",emoji:"👷🏽‍♀️",text:"",type:1,order:1478,group:1,subgroup:25,version:4,gender:0,tone:3,shortCodes:["woman_construction_worker_tone3"]},{label:"woman construction worker: medium-dark skin tone",hexcode:"1F477-1F3FE-200D-2640-FE0F",emoji:"👷🏾‍♀️",text:"",type:1,order:1480,group:1,subgroup:25,version:4,gender:0,tone:4,shortCodes:["woman_construction_worker_tone4"]},{label:"woman construction worker: dark skin tone",hexcode:"1F477-1F3FF-200D-2640-FE0F",emoji:"👷🏿‍♀️",text:"",type:1,order:1482,group:1,subgroup:25,version:4,gender:0,tone:5,shortCodes:["woman_construction_worker_tone5"]}],shortCodes:["woman_construction_worker"]},{label:"person with crown",hexcode:"1FAC5",tags:["crown","monarch","noble","person","regal","royal","royalty"],emoji:"🫅",text:"",type:1,order:1484,group:1,subgroup:25,version:14,skins:[{label:"person with crown: light skin tone",hexcode:"1FAC5-1F3FB",emoji:"🫅🏻",text:"",type:1,order:1485,group:1,subgroup:25,version:14,tone:1,shortCodes:["person_with_crown_tone1","royalty_tone1"]},{label:"person with crown: medium-light skin tone",hexcode:"1FAC5-1F3FC",emoji:"🫅🏼",text:"",type:1,order:1486,group:1,subgroup:25,version:14,tone:2,shortCodes:["person_with_crown_tone2","royalty_tone2"]},{label:"person with crown: medium skin tone",hexcode:"1FAC5-1F3FD",emoji:"🫅🏽",text:"",type:1,order:1487,group:1,subgroup:25,version:14,tone:3,shortCodes:["person_with_crown_tone3","royalty_tone3"]},{label:"person with crown: medium-dark skin tone",hexcode:"1FAC5-1F3FE",emoji:"🫅🏾",text:"",type:1,order:1488,group:1,subgroup:25,version:14,tone:4,shortCodes:["person_with_crown_tone4","royalty_tone4"]},{label:"person with crown: dark skin tone",hexcode:"1FAC5-1F3FF",emoji:"🫅🏿",text:"",type:1,order:1489,group:1,subgroup:25,version:14,tone:5,shortCodes:["person_with_crown_tone5","royalty_tone5"]}],shortCodes:["person_with_crown","royalty"]},{label:"prince",hexcode:"1F934",tags:["crown","fairy","fairytale","fantasy","king","royal","royalty","tale"],emoji:"🤴",text:"",type:1,order:1490,group:1,subgroup:25,version:3,skins:[{label:"prince: light skin tone",hexcode:"1F934-1F3FB",emoji:"🤴🏻",text:"",type:1,order:1491,group:1,subgroup:25,version:3,tone:1,shortCodes:["prince_tone1"]},{label:"prince: medium-light skin tone",hexcode:"1F934-1F3FC",emoji:"🤴🏼",text:"",type:1,order:1492,group:1,subgroup:25,version:3,tone:2,shortCodes:["prince_tone2"]},{label:"prince: medium skin tone",hexcode:"1F934-1F3FD",emoji:"🤴🏽",text:"",type:1,order:1493,group:1,subgroup:25,version:3,tone:3,shortCodes:["prince_tone3"]},{label:"prince: medium-dark skin tone",hexcode:"1F934-1F3FE",emoji:"🤴🏾",text:"",type:1,order:1494,group:1,subgroup:25,version:3,tone:4,shortCodes:["prince_tone4"]},{label:"prince: dark skin tone",hexcode:"1F934-1F3FF",emoji:"🤴🏿",text:"",type:1,order:1495,group:1,subgroup:25,version:3,tone:5,shortCodes:["prince_tone5"]}],shortCodes:["prince"]},{label:"princess",hexcode:"1F478",tags:["crown","fairy","fairytale","fantasy","queen","royal","royalty","tale"],emoji:"👸",text:"",type:1,order:1496,group:1,subgroup:25,version:.6,skins:[{label:"princess: light skin tone",hexcode:"1F478-1F3FB",emoji:"👸🏻",text:"",type:1,order:1497,group:1,subgroup:25,version:1,tone:1,shortCodes:["princess_tone1"]},{label:"princess: medium-light skin tone",hexcode:"1F478-1F3FC",emoji:"👸🏼",text:"",type:1,order:1498,group:1,subgroup:25,version:1,tone:2,shortCodes:["princess_tone2"]},{label:"princess: medium skin tone",hexcode:"1F478-1F3FD",emoji:"👸🏽",text:"",type:1,order:1499,group:1,subgroup:25,version:1,tone:3,shortCodes:["princess_tone3"]},{label:"princess: medium-dark skin tone",hexcode:"1F478-1F3FE",emoji:"👸🏾",text:"",type:1,order:1500,group:1,subgroup:25,version:1,tone:4,shortCodes:["princess_tone4"]},{label:"princess: dark skin tone",hexcode:"1F478-1F3FF",emoji:"👸🏿",text:"",type:1,order:1501,group:1,subgroup:25,version:1,tone:5,shortCodes:["princess_tone5"]}],shortCodes:["princess"]},{label:"person wearing turban",hexcode:"1F473",tags:["person","turban","wearing"],emoji:"👳",text:"",type:1,order:1502,group:1,subgroup:25,version:.6,skins:[{label:"person wearing turban: light skin tone",hexcode:"1F473-1F3FB",emoji:"👳🏻",text:"",type:1,order:1503,group:1,subgroup:25,version:1,tone:1,shortCodes:["person_wearing_turban_tone1"]},{label:"person wearing turban: medium-light skin tone",hexcode:"1F473-1F3FC",emoji:"👳🏼",text:"",type:1,order:1504,group:1,subgroup:25,version:1,tone:2,shortCodes:["person_wearing_turban_tone2"]},{label:"person wearing turban: medium skin tone",hexcode:"1F473-1F3FD",emoji:"👳🏽",text:"",type:1,order:1505,group:1,subgroup:25,version:1,tone:3,shortCodes:["person_wearing_turban_tone3"]},{label:"person wearing turban: medium-dark skin tone",hexcode:"1F473-1F3FE",emoji:"👳🏾",text:"",type:1,order:1506,group:1,subgroup:25,version:1,tone:4,shortCodes:["person_wearing_turban_tone4"]},{label:"person wearing turban: dark skin tone",hexcode:"1F473-1F3FF",emoji:"👳🏿",text:"",type:1,order:1507,group:1,subgroup:25,version:1,tone:5,shortCodes:["person_wearing_turban_tone5"]}],shortCodes:["person_wearing_turban"]},{label:"man wearing turban",hexcode:"1F473-200D-2642-FE0F",tags:["man","turban","wearing"],emoji:"👳‍♂️",text:"",type:1,order:1508,group:1,subgroup:25,version:4,gender:1,skins:[{label:"man wearing turban: light skin tone",hexcode:"1F473-1F3FB-200D-2642-FE0F",emoji:"👳🏻‍♂️",text:"",type:1,order:1510,group:1,subgroup:25,version:4,gender:1,tone:1,shortCodes:["man_wearing_turban_tone1"]},{label:"man wearing turban: medium-light skin tone",hexcode:"1F473-1F3FC-200D-2642-FE0F",emoji:"👳🏼‍♂️",text:"",type:1,order:1512,group:1,subgroup:25,version:4,gender:1,tone:2,shortCodes:["man_wearing_turban_tone2"]},{label:"man wearing turban: medium skin tone",hexcode:"1F473-1F3FD-200D-2642-FE0F",emoji:"👳🏽‍♂️",text:"",type:1,order:1514,group:1,subgroup:25,version:4,gender:1,tone:3,shortCodes:["man_wearing_turban_tone3"]},{label:"man wearing turban: medium-dark skin tone",hexcode:"1F473-1F3FE-200D-2642-FE0F",emoji:"👳🏾‍♂️",text:"",type:1,order:1516,group:1,subgroup:25,version:4,gender:1,tone:4,shortCodes:["man_wearing_turban_tone4"]},{label:"man wearing turban: dark skin tone",hexcode:"1F473-1F3FF-200D-2642-FE0F",emoji:"👳🏿‍♂️",text:"",type:1,order:1518,group:1,subgroup:25,version:4,gender:1,tone:5,shortCodes:["man_wearing_turban_tone5"]}],shortCodes:["man_wearing_turban"]},{label:"woman wearing turban",hexcode:"1F473-200D-2640-FE0F",tags:["turban","wearing","woman"],emoji:"👳‍♀️",text:"",type:1,order:1520,group:1,subgroup:25,version:4,gender:0,skins:[{label:"woman wearing turban: light skin tone",hexcode:"1F473-1F3FB-200D-2640-FE0F",emoji:"👳🏻‍♀️",text:"",type:1,order:1522,group:1,subgroup:25,version:4,gender:0,tone:1,shortCodes:["woman_wearing_turban_tone1"]},{label:"woman wearing turban: medium-light skin tone",hexcode:"1F473-1F3FC-200D-2640-FE0F",emoji:"👳🏼‍♀️",text:"",type:1,order:1524,group:1,subgroup:25,version:4,gender:0,tone:2,shortCodes:["woman_wearing_turban_tone2"]},{label:"woman wearing turban: medium skin tone",hexcode:"1F473-1F3FD-200D-2640-FE0F",emoji:"👳🏽‍♀️",text:"",type:1,order:1526,group:1,subgroup:25,version:4,gender:0,tone:3,shortCodes:["woman_wearing_turban_tone3"]},{label:"woman wearing turban: medium-dark skin tone",hexcode:"1F473-1F3FE-200D-2640-FE0F",emoji:"👳🏾‍♀️",text:"",type:1,order:1528,group:1,subgroup:25,version:4,gender:0,tone:4,shortCodes:["woman_wearing_turban_tone4"]},{label:"woman wearing turban: dark skin tone",hexcode:"1F473-1F3FF-200D-2640-FE0F",emoji:"👳🏿‍♀️",text:"",type:1,order:1530,group:1,subgroup:25,version:4,gender:0,tone:5,shortCodes:["woman_wearing_turban_tone5"]}],shortCodes:["woman_wearing_turban"]},{label:"person with skullcap",hexcode:"1F472",tags:["cap","chinese","gua","guapi","hat","mao","person","pi","skullcap"],emoji:"👲",text:"",type:1,order:1532,group:1,subgroup:25,version:.6,skins:[{label:"person with skullcap: light skin tone",hexcode:"1F472-1F3FB",emoji:"👲🏻",text:"",type:1,order:1533,group:1,subgroup:25,version:1,tone:1,shortCodes:["person_with_skullcap_tone1"]},{label:"person with skullcap: medium-light skin tone",hexcode:"1F472-1F3FC",emoji:"👲🏼",text:"",type:1,order:1534,group:1,subgroup:25,version:1,tone:2,shortCodes:["person_with_skullcap_tone2"]},{label:"person with skullcap: medium skin tone",hexcode:"1F472-1F3FD",emoji:"👲🏽",text:"",type:1,order:1535,group:1,subgroup:25,version:1,tone:3,shortCodes:["person_with_skullcap_tone3"]},{label:"person with skullcap: medium-dark skin tone",hexcode:"1F472-1F3FE",emoji:"👲🏾",text:"",type:1,order:1536,group:1,subgroup:25,version:1,tone:4,shortCodes:["person_with_skullcap_tone4"]},{label:"person with skullcap: dark skin tone",hexcode:"1F472-1F3FF",emoji:"👲🏿",text:"",type:1,order:1537,group:1,subgroup:25,version:1,tone:5,shortCodes:["person_with_skullcap_tone5"]}],shortCodes:["person_with_skullcap"]},{label:"woman with headscarf",hexcode:"1F9D5",tags:["bandana","head","headscarf","hijab","kerchief","mantilla","tichel","woman"],emoji:"🧕",text:"",type:1,order:1538,group:1,subgroup:25,version:5,skins:[{label:"woman with headscarf: light skin tone",hexcode:"1F9D5-1F3FB",emoji:"🧕🏻",text:"",type:1,order:1539,group:1,subgroup:25,version:5,tone:1,shortCodes:["woman_with_headscarf_tone1"]},{label:"woman with headscarf: medium-light skin tone",hexcode:"1F9D5-1F3FC",emoji:"🧕🏼",text:"",type:1,order:1540,group:1,subgroup:25,version:5,tone:2,shortCodes:["woman_with_headscarf_tone2"]},{label:"woman with headscarf: medium skin tone",hexcode:"1F9D5-1F3FD",emoji:"🧕🏽",text:"",type:1,order:1541,group:1,subgroup:25,version:5,tone:3,shortCodes:["woman_with_headscarf_tone3"]},{label:"woman with headscarf: medium-dark skin tone",hexcode:"1F9D5-1F3FE",emoji:"🧕🏾",text:"",type:1,order:1542,group:1,subgroup:25,version:5,tone:4,shortCodes:["woman_with_headscarf_tone4"]},{label:"woman with headscarf: dark skin tone",hexcode:"1F9D5-1F3FF",emoji:"🧕🏿",text:"",type:1,order:1543,group:1,subgroup:25,version:5,tone:5,shortCodes:["woman_with_headscarf_tone5"]}],shortCodes:["woman_with_headscarf"]},{label:"person in tuxedo",hexcode:"1F935",tags:["formal","person","tuxedo","wedding"],emoji:"🤵",text:"",type:1,order:1544,group:1,subgroup:25,version:3,skins:[{label:"person in tuxedo: light skin tone",hexcode:"1F935-1F3FB",emoji:"🤵🏻",text:"",type:1,order:1545,group:1,subgroup:25,version:3,tone:1,shortCodes:["person_in_tuxedo_tone1"]},{label:"person in tuxedo: medium-light skin tone",hexcode:"1F935-1F3FC",emoji:"🤵🏼",text:"",type:1,order:1546,group:1,subgroup:25,version:3,tone:2,shortCodes:["person_in_tuxedo_tone2"]},{label:"person in tuxedo: medium skin tone",hexcode:"1F935-1F3FD",emoji:"🤵🏽",text:"",type:1,order:1547,group:1,subgroup:25,version:3,tone:3,shortCodes:["person_in_tuxedo_tone3"]},{label:"person in tuxedo: medium-dark skin tone",hexcode:"1F935-1F3FE",emoji:"🤵🏾",text:"",type:1,order:1548,group:1,subgroup:25,version:3,tone:4,shortCodes:["person_in_tuxedo_tone4"]},{label:"person in tuxedo: dark skin tone",hexcode:"1F935-1F3FF",emoji:"🤵🏿",text:"",type:1,order:1549,group:1,subgroup:25,version:3,tone:5,shortCodes:["person_in_tuxedo_tone5"]}],shortCodes:["person_in_tuxedo"]},{label:"man in tuxedo",hexcode:"1F935-200D-2642-FE0F",tags:["formal","groom","man","tuxedo","wedding"],emoji:"🤵‍♂️",text:"",type:1,order:1550,group:1,subgroup:25,version:13,gender:1,skins:[{label:"man in tuxedo: light skin tone",hexcode:"1F935-1F3FB-200D-2642-FE0F",emoji:"🤵🏻‍♂️",text:"",type:1,order:1552,group:1,subgroup:25,version:13,gender:1,tone:1,shortCodes:["man_in_tuxedo_tone1"]},{label:"man in tuxedo: medium-light skin tone",hexcode:"1F935-1F3FC-200D-2642-FE0F",emoji:"🤵🏼‍♂️",text:"",type:1,order:1554,group:1,subgroup:25,version:13,gender:1,tone:2,shortCodes:["man_in_tuxedo_tone2"]},{label:"man in tuxedo: medium skin tone",hexcode:"1F935-1F3FD-200D-2642-FE0F",emoji:"🤵🏽‍♂️",text:"",type:1,order:1556,group:1,subgroup:25,version:13,gender:1,tone:3,shortCodes:["man_in_tuxedo_tone3"]},{label:"man in tuxedo: medium-dark skin tone",hexcode:"1F935-1F3FE-200D-2642-FE0F",emoji:"🤵🏾‍♂️",text:"",type:1,order:1558,group:1,subgroup:25,version:13,gender:1,tone:4,shortCodes:["man_in_tuxedo_tone4"]},{label:"man in tuxedo: dark skin tone",hexcode:"1F935-1F3FF-200D-2642-FE0F",emoji:"🤵🏿‍♂️",text:"",type:1,order:1560,group:1,subgroup:25,version:13,gender:1,tone:5,shortCodes:["man_in_tuxedo_tone5"]}],shortCodes:["man_in_tuxedo"]},{label:"woman in tuxedo",hexcode:"1F935-200D-2640-FE0F",tags:["formal","tuxedo","wedding","woman"],emoji:"🤵‍♀️",text:"",type:1,order:1562,group:1,subgroup:25,version:13,gender:0,skins:[{label:"woman in tuxedo: light skin tone",hexcode:"1F935-1F3FB-200D-2640-FE0F",emoji:"🤵🏻‍♀️",text:"",type:1,order:1564,group:1,subgroup:25,version:13,gender:0,tone:1,shortCodes:["woman_in_tuxedo_tone1"]},{label:"woman in tuxedo: medium-light skin tone",hexcode:"1F935-1F3FC-200D-2640-FE0F",emoji:"🤵🏼‍♀️",text:"",type:1,order:1566,group:1,subgroup:25,version:13,gender:0,tone:2,shortCodes:["woman_in_tuxedo_tone2"]},{label:"woman in tuxedo: medium skin tone",hexcode:"1F935-1F3FD-200D-2640-FE0F",emoji:"🤵🏽‍♀️",text:"",type:1,order:1568,group:1,subgroup:25,version:13,gender:0,tone:3,shortCodes:["woman_in_tuxedo_tone3"]},{label:"woman in tuxedo: medium-dark skin tone",hexcode:"1F935-1F3FE-200D-2640-FE0F",emoji:"🤵🏾‍♀️",text:"",type:1,order:1570,group:1,subgroup:25,version:13,gender:0,tone:4,shortCodes:["woman_in_tuxedo_tone4"]},{label:"woman in tuxedo: dark skin tone",hexcode:"1F935-1F3FF-200D-2640-FE0F",emoji:"🤵🏿‍♀️",text:"",type:1,order:1572,group:1,subgroup:25,version:13,gender:0,tone:5,shortCodes:["woman_in_tuxedo_tone5"]}],shortCodes:["woman_in_tuxedo"]},{label:"person with veil",hexcode:"1F470",tags:["person","veil","wedding"],emoji:"👰",text:"",type:1,order:1574,group:1,subgroup:25,version:.6,skins:[{label:"person with veil: light skin tone",hexcode:"1F470-1F3FB",emoji:"👰🏻",text:"",type:1,order:1575,group:1,subgroup:25,version:1,tone:1,shortCodes:["person_with_veil_tone1"]},{label:"person with veil: medium-light skin tone",hexcode:"1F470-1F3FC",emoji:"👰🏼",text:"",type:1,order:1576,group:1,subgroup:25,version:1,tone:2,shortCodes:["person_with_veil_tone2"]},{label:"person with veil: medium skin tone",hexcode:"1F470-1F3FD",emoji:"👰🏽",text:"",type:1,order:1577,group:1,subgroup:25,version:1,tone:3,shortCodes:["person_with_veil_tone3"]},{label:"person with veil: medium-dark skin tone",hexcode:"1F470-1F3FE",emoji:"👰🏾",text:"",type:1,order:1578,group:1,subgroup:25,version:1,tone:4,shortCodes:["person_with_veil_tone4"]},{label:"person with veil: dark skin tone",hexcode:"1F470-1F3FF",emoji:"👰🏿",text:"",type:1,order:1579,group:1,subgroup:25,version:1,tone:5,shortCodes:["person_with_veil_tone5"]}],shortCodes:["person_with_veil"]},{label:"man with veil",hexcode:"1F470-200D-2642-FE0F",tags:["man","veil","wedding"],emoji:"👰‍♂️",text:"",type:1,order:1580,group:1,subgroup:25,version:13,gender:1,skins:[{label:"man with veil: light skin tone",hexcode:"1F470-1F3FB-200D-2642-FE0F",emoji:"👰🏻‍♂️",text:"",type:1,order:1582,group:1,subgroup:25,version:13,gender:1,tone:1,shortCodes:["man_with_veil_tone1"]},{label:"man with veil: medium-light skin tone",hexcode:"1F470-1F3FC-200D-2642-FE0F",emoji:"👰🏼‍♂️",text:"",type:1,order:1584,group:1,subgroup:25,version:13,gender:1,tone:2,shortCodes:["man_with_veil_tone2"]},{label:"man with veil: medium skin tone",hexcode:"1F470-1F3FD-200D-2642-FE0F",emoji:"👰🏽‍♂️",text:"",type:1,order:1586,group:1,subgroup:25,version:13,gender:1,tone:3,shortCodes:["man_with_veil_tone3"]},{label:"man with veil: medium-dark skin tone",hexcode:"1F470-1F3FE-200D-2642-FE0F",emoji:"👰🏾‍♂️",text:"",type:1,order:1588,group:1,subgroup:25,version:13,gender:1,tone:4,shortCodes:["man_with_veil_tone4"]},{label:"man with veil: dark skin tone",hexcode:"1F470-1F3FF-200D-2642-FE0F",emoji:"👰🏿‍♂️",text:"",type:1,order:1590,group:1,subgroup:25,version:13,gender:1,tone:5,shortCodes:["man_with_veil_tone5"]}],shortCodes:["man_with_veil"]},{label:"woman with veil",hexcode:"1F470-200D-2640-FE0F",tags:["bride","veil","wedding","woman"],emoji:"👰‍♀️",text:"",type:1,order:1592,group:1,subgroup:25,version:13,gender:0,skins:[{label:"woman with veil: light skin tone",hexcode:"1F470-1F3FB-200D-2640-FE0F",emoji:"👰🏻‍♀️",text:"",type:1,order:1594,group:1,subgroup:25,version:13,gender:0,tone:1,shortCodes:["woman_with_veil_tone1"]},{label:"woman with veil: medium-light skin tone",hexcode:"1F470-1F3FC-200D-2640-FE0F",emoji:"👰🏼‍♀️",text:"",type:1,order:1596,group:1,subgroup:25,version:13,gender:0,tone:2,shortCodes:["woman_with_veil_tone2"]},{label:"woman with veil: medium skin tone",hexcode:"1F470-1F3FD-200D-2640-FE0F",emoji:"👰🏽‍♀️",text:"",type:1,order:1598,group:1,subgroup:25,version:13,gender:0,tone:3,shortCodes:["woman_with_veil_tone3"]},{label:"woman with veil: medium-dark skin tone",hexcode:"1F470-1F3FE-200D-2640-FE0F",emoji:"👰🏾‍♀️",text:"",type:1,order:1600,group:1,subgroup:25,version:13,gender:0,tone:4,shortCodes:["woman_with_veil_tone4"]},{label:"woman with veil: dark skin tone",hexcode:"1F470-1F3FF-200D-2640-FE0F",emoji:"👰🏿‍♀️",text:"",type:1,order:1602,group:1,subgroup:25,version:13,gender:0,tone:5,shortCodes:["woman_with_veil_tone5"]}],shortCodes:["woman_with_veil"]},{label:"pregnant woman",hexcode:"1F930",tags:["pregnant","woman"],emoji:"🤰",text:"",type:1,order:1604,group:1,subgroup:25,version:3,skins:[{label:"pregnant woman: light skin tone",hexcode:"1F930-1F3FB",emoji:"🤰🏻",text:"",type:1,order:1605,group:1,subgroup:25,version:3,tone:1,shortCodes:["pregnant_woman_tone1"]},{label:"pregnant woman: medium-light skin tone",hexcode:"1F930-1F3FC",emoji:"🤰🏼",text:"",type:1,order:1606,group:1,subgroup:25,version:3,tone:2,shortCodes:["pregnant_woman_tone2"]},{label:"pregnant woman: medium skin tone",hexcode:"1F930-1F3FD",emoji:"🤰🏽",text:"",type:1,order:1607,group:1,subgroup:25,version:3,tone:3,shortCodes:["pregnant_woman_tone3"]},{label:"pregnant woman: medium-dark skin tone",hexcode:"1F930-1F3FE",emoji:"🤰🏾",text:"",type:1,order:1608,group:1,subgroup:25,version:3,tone:4,shortCodes:["pregnant_woman_tone4"]},{label:"pregnant woman: dark skin tone",hexcode:"1F930-1F3FF",emoji:"🤰🏿",text:"",type:1,order:1609,group:1,subgroup:25,version:3,tone:5,shortCodes:["pregnant_woman_tone5"]}],shortCodes:["pregnant_woman"]},{label:"pregnant man",hexcode:"1FAC3",tags:["belly","bloated","full","man","overeat","pregnant"],emoji:"🫃",text:"",type:1,order:1610,group:1,subgroup:25,version:14,skins:[{label:"pregnant man: light skin tone",hexcode:"1FAC3-1F3FB",emoji:"🫃🏻",text:"",type:1,order:1611,group:1,subgroup:25,version:14,tone:1,shortCodes:["pregnant_man_tone1"]},{label:"pregnant man: medium-light skin tone",hexcode:"1FAC3-1F3FC",emoji:"🫃🏼",text:"",type:1,order:1612,group:1,subgroup:25,version:14,tone:2,shortCodes:["pregnant_man_tone2"]},{label:"pregnant man: medium skin tone",hexcode:"1FAC3-1F3FD",emoji:"🫃🏽",text:"",type:1,order:1613,group:1,subgroup:25,version:14,tone:3,shortCodes:["pregnant_man_tone3"]},{label:"pregnant man: medium-dark skin tone",hexcode:"1FAC3-1F3FE",emoji:"🫃🏾",text:"",type:1,order:1614,group:1,subgroup:25,version:14,tone:4,shortCodes:["pregnant_man_tone4"]},{label:"pregnant man: dark skin tone",hexcode:"1FAC3-1F3FF",emoji:"🫃🏿",text:"",type:1,order:1615,group:1,subgroup:25,version:14,tone:5,shortCodes:["pregnant_man_tone5"]}],shortCodes:["pregnant_man"]},{label:"pregnant person",hexcode:"1FAC4",tags:["belly","bloated","full","overeat","person","pregnant","stuffed"],emoji:"🫄",text:"",type:1,order:1616,group:1,subgroup:25,version:14,skins:[{label:"pregnant person: light skin tone",hexcode:"1FAC4-1F3FB",emoji:"🫄🏻",text:"",type:1,order:1617,group:1,subgroup:25,version:14,tone:1,shortCodes:["pregnant_person_tone1"]},{label:"pregnant person: medium-light skin tone",hexcode:"1FAC4-1F3FC",emoji:"🫄🏼",text:"",type:1,order:1618,group:1,subgroup:25,version:14,tone:2,shortCodes:["pregnant_person_tone2"]},{label:"pregnant person: medium skin tone",hexcode:"1FAC4-1F3FD",emoji:"🫄🏽",text:"",type:1,order:1619,group:1,subgroup:25,version:14,tone:3,shortCodes:["pregnant_person_tone3"]},{label:"pregnant person: medium-dark skin tone",hexcode:"1FAC4-1F3FE",emoji:"🫄🏾",text:"",type:1,order:1620,group:1,subgroup:25,version:14,tone:4,shortCodes:["pregnant_person_tone4"]},{label:"pregnant person: dark skin tone",hexcode:"1FAC4-1F3FF",emoji:"🫄🏿",text:"",type:1,order:1621,group:1,subgroup:25,version:14,tone:5,shortCodes:["pregnant_person_tone5"]}],shortCodes:["pregnant_person"]},{label:"breast-feeding",hexcode:"1F931",tags:["baby","breast","feeding","mom","mother","nursing","woman"],emoji:"🤱",text:"",type:1,order:1622,group:1,subgroup:25,version:5,skins:[{label:"breast-feeding: light skin tone",hexcode:"1F931-1F3FB",emoji:"🤱🏻",text:"",type:1,order:1623,group:1,subgroup:25,version:5,tone:1,shortCodes:["breast_feeding_tone1"]},{label:"breast-feeding: medium-light skin tone",hexcode:"1F931-1F3FC",emoji:"🤱🏼",text:"",type:1,order:1624,group:1,subgroup:25,version:5,tone:2,shortCodes:["breast_feeding_tone2"]},{label:"breast-feeding: medium skin tone",hexcode:"1F931-1F3FD",emoji:"🤱🏽",text:"",type:1,order:1625,group:1,subgroup:25,version:5,tone:3,shortCodes:["breast_feeding_tone3"]},{label:"breast-feeding: medium-dark skin tone",hexcode:"1F931-1F3FE",emoji:"🤱🏾",text:"",type:1,order:1626,group:1,subgroup:25,version:5,tone:4,shortCodes:["breast_feeding_tone4"]},{label:"breast-feeding: dark skin tone",hexcode:"1F931-1F3FF",emoji:"🤱🏿",text:"",type:1,order:1627,group:1,subgroup:25,version:5,tone:5,shortCodes:["breast_feeding_tone5"]}],shortCodes:["breast_feeding"]},{label:"woman feeding baby",hexcode:"1F469-200D-1F37C",tags:["baby","feed","feeding","mom","mother","nanny","newborn","nursing","woman"],emoji:"👩‍🍼",text:"",type:1,order:1628,group:1,subgroup:25,version:13,skins:[{label:"woman feeding baby: light skin tone",hexcode:"1F469-1F3FB-200D-1F37C",emoji:"👩🏻‍🍼",text:"",type:1,order:1629,group:1,subgroup:25,version:13,tone:1,shortCodes:["woman_feeding_baby_tone1"]},{label:"woman feeding baby: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F37C",emoji:"👩🏼‍🍼",text:"",type:1,order:1630,group:1,subgroup:25,version:13,tone:2,shortCodes:["woman_feeding_baby_tone2"]},{label:"woman feeding baby: medium skin tone",hexcode:"1F469-1F3FD-200D-1F37C",emoji:"👩🏽‍🍼",text:"",type:1,order:1631,group:1,subgroup:25,version:13,tone:3,shortCodes:["woman_feeding_baby_tone3"]},{label:"woman feeding baby: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F37C",emoji:"👩🏾‍🍼",text:"",type:1,order:1632,group:1,subgroup:25,version:13,tone:4,shortCodes:["woman_feeding_baby_tone4"]},{label:"woman feeding baby: dark skin tone",hexcode:"1F469-1F3FF-200D-1F37C",emoji:"👩🏿‍🍼",text:"",type:1,order:1633,group:1,subgroup:25,version:13,tone:5,shortCodes:["woman_feeding_baby_tone5"]}],shortCodes:["woman_feeding_baby"]},{label:"man feeding baby",hexcode:"1F468-200D-1F37C",tags:["baby","dad","father","feed","feeding","man","nanny","newborn","nursing"],emoji:"👨‍🍼",text:"",type:1,order:1634,group:1,subgroup:25,version:13,skins:[{label:"man feeding baby: light skin tone",hexcode:"1F468-1F3FB-200D-1F37C",emoji:"👨🏻‍🍼",text:"",type:1,order:1635,group:1,subgroup:25,version:13,tone:1,shortCodes:["man_feeding_baby_tone1"]},{label:"man feeding baby: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F37C",emoji:"👨🏼‍🍼",text:"",type:1,order:1636,group:1,subgroup:25,version:13,tone:2,shortCodes:["man_feeding_baby_tone2"]},{label:"man feeding baby: medium skin tone",hexcode:"1F468-1F3FD-200D-1F37C",emoji:"👨🏽‍🍼",text:"",type:1,order:1637,group:1,subgroup:25,version:13,tone:3,shortCodes:["man_feeding_baby_tone3"]},{label:"man feeding baby: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F37C",emoji:"👨🏾‍🍼",text:"",type:1,order:1638,group:1,subgroup:25,version:13,tone:4,shortCodes:["man_feeding_baby_tone4"]},{label:"man feeding baby: dark skin tone",hexcode:"1F468-1F3FF-200D-1F37C",emoji:"👨🏿‍🍼",text:"",type:1,order:1639,group:1,subgroup:25,version:13,tone:5,shortCodes:["man_feeding_baby_tone5"]}],shortCodes:["man_feeding_baby"]},{label:"person feeding baby",hexcode:"1F9D1-200D-1F37C",tags:["baby","feed","feeding","nanny","newborn","nursing","parent"],emoji:"🧑‍🍼",text:"",type:1,order:1640,group:1,subgroup:25,version:13,skins:[{label:"person feeding baby: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F37C",emoji:"🧑🏻‍🍼",text:"",type:1,order:1641,group:1,subgroup:25,version:13,tone:1,shortCodes:["person_feeding_baby_tone1"]},{label:"person feeding baby: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F37C",emoji:"🧑🏼‍🍼",text:"",type:1,order:1642,group:1,subgroup:25,version:13,tone:2,shortCodes:["person_feeding_baby_tone2"]},{label:"person feeding baby: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F37C",emoji:"🧑🏽‍🍼",text:"",type:1,order:1643,group:1,subgroup:25,version:13,tone:3,shortCodes:["person_feeding_baby_tone3"]},{label:"person feeding baby: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F37C",emoji:"🧑🏾‍🍼",text:"",type:1,order:1644,group:1,subgroup:25,version:13,tone:4,shortCodes:["person_feeding_baby_tone4"]},{label:"person feeding baby: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F37C",emoji:"🧑🏿‍🍼",text:"",type:1,order:1645,group:1,subgroup:25,version:13,tone:5,shortCodes:["person_feeding_baby_tone5"]}],shortCodes:["person_feeding_baby"]},{label:"baby angel",hexcode:"1F47C",tags:["angel","baby","church","face","fairy","fairytale","fantasy","tale"],emoji:"👼",text:"",type:1,order:1646,group:1,subgroup:26,version:.6,skins:[{label:"baby angel: light skin tone",hexcode:"1F47C-1F3FB",emoji:"👼🏻",text:"",type:1,order:1647,group:1,subgroup:26,version:1,tone:1,shortCodes:["angel_tone1"]},{label:"baby angel: medium-light skin tone",hexcode:"1F47C-1F3FC",emoji:"👼🏼",text:"",type:1,order:1648,group:1,subgroup:26,version:1,tone:2,shortCodes:["angel_tone2"]},{label:"baby angel: medium skin tone",hexcode:"1F47C-1F3FD",emoji:"👼🏽",text:"",type:1,order:1649,group:1,subgroup:26,version:1,tone:3,shortCodes:["angel_tone3"]},{label:"baby angel: medium-dark skin tone",hexcode:"1F47C-1F3FE",emoji:"👼🏾",text:"",type:1,order:1650,group:1,subgroup:26,version:1,tone:4,shortCodes:["angel_tone4"]},{label:"baby angel: dark skin tone",hexcode:"1F47C-1F3FF",emoji:"👼🏿",text:"",type:1,order:1651,group:1,subgroup:26,version:1,tone:5,shortCodes:["angel_tone5"]}],shortCodes:["angel"]},{label:"Santa Claus",hexcode:"1F385",tags:["celebration","christmas","claus","fairy","fantasy","father","holiday","merry","santa","tale","xmas"],emoji:"🎅",text:"",type:1,order:1652,group:1,subgroup:26,version:.6,skins:[{label:"Santa Claus: light skin tone",hexcode:"1F385-1F3FB",emoji:"🎅🏻",text:"",type:1,order:1653,group:1,subgroup:26,version:1,tone:1,shortCodes:["santa_tone1"]},{label:"Santa Claus: medium-light skin tone",hexcode:"1F385-1F3FC",emoji:"🎅🏼",text:"",type:1,order:1654,group:1,subgroup:26,version:1,tone:2,shortCodes:["santa_tone2"]},{label:"Santa Claus: medium skin tone",hexcode:"1F385-1F3FD",emoji:"🎅🏽",text:"",type:1,order:1655,group:1,subgroup:26,version:1,tone:3,shortCodes:["santa_tone3"]},{label:"Santa Claus: medium-dark skin tone",hexcode:"1F385-1F3FE",emoji:"🎅🏾",text:"",type:1,order:1656,group:1,subgroup:26,version:1,tone:4,shortCodes:["santa_tone4"]},{label:"Santa Claus: dark skin tone",hexcode:"1F385-1F3FF",emoji:"🎅🏿",text:"",type:1,order:1657,group:1,subgroup:26,version:1,tone:5,shortCodes:["santa_tone5"]}],shortCodes:["santa"]},{label:"Mrs. Claus",hexcode:"1F936",tags:["celebration","christmas","claus","fairy","fantasy","holiday","merry","mother","mrs","santa","tale","xmas"],emoji:"🤶",text:"",type:1,order:1658,group:1,subgroup:26,version:3,skins:[{label:"Mrs. Claus: light skin tone",hexcode:"1F936-1F3FB",emoji:"🤶🏻",text:"",type:1,order:1659,group:1,subgroup:26,version:3,tone:1,shortCodes:["mrs_claus_tone1"]},{label:"Mrs. Claus: medium-light skin tone",hexcode:"1F936-1F3FC",emoji:"🤶🏼",text:"",type:1,order:1660,group:1,subgroup:26,version:3,tone:2,shortCodes:["mrs_claus_tone2"]},{label:"Mrs. Claus: medium skin tone",hexcode:"1F936-1F3FD",emoji:"🤶🏽",text:"",type:1,order:1661,group:1,subgroup:26,version:3,tone:3,shortCodes:["mrs_claus_tone3"]},{label:"Mrs. Claus: medium-dark skin tone",hexcode:"1F936-1F3FE",emoji:"🤶🏾",text:"",type:1,order:1662,group:1,subgroup:26,version:3,tone:4,shortCodes:["mrs_claus_tone4"]},{label:"Mrs. Claus: dark skin tone",hexcode:"1F936-1F3FF",emoji:"🤶🏿",text:"",type:1,order:1663,group:1,subgroup:26,version:3,tone:5,shortCodes:["mrs_claus_tone5"]}],shortCodes:["mrs_claus"]},{label:"Mx Claus",hexcode:"1F9D1-200D-1F384",tags:["celebration","christmas","claus","fairy","fantasy","holiday","merry","mx","santa","tale","xmas"],emoji:"🧑‍🎄",text:"",type:1,order:1664,group:1,subgroup:26,version:13,skins:[{label:"Mx Claus: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F384",emoji:"🧑🏻‍🎄",text:"",type:1,order:1665,group:1,subgroup:26,version:13,tone:1,shortCodes:["mx_claus_tone1"]},{label:"Mx Claus: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F384",emoji:"🧑🏼‍🎄",text:"",type:1,order:1666,group:1,subgroup:26,version:13,tone:2,shortCodes:["mx_claus_tone2"]},{label:"Mx Claus: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F384",emoji:"🧑🏽‍🎄",text:"",type:1,order:1667,group:1,subgroup:26,version:13,tone:3,shortCodes:["mx_claus_tone3"]},{label:"Mx Claus: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F384",emoji:"🧑🏾‍🎄",text:"",type:1,order:1668,group:1,subgroup:26,version:13,tone:4,shortCodes:["mx_claus_tone4"]},{label:"Mx Claus: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F384",emoji:"🧑🏿‍🎄",text:"",type:1,order:1669,group:1,subgroup:26,version:13,tone:5,shortCodes:["mx_claus_tone5"]}],shortCodes:["mx_claus"]},{label:"superhero",hexcode:"1F9B8",tags:["good","hero","superpower"],emoji:"🦸",text:"",type:1,order:1670,group:1,subgroup:26,version:11,skins:[{label:"superhero: light skin tone",hexcode:"1F9B8-1F3FB",emoji:"🦸🏻",text:"",type:1,order:1671,group:1,subgroup:26,version:11,tone:1,shortCodes:["superhero_tone1"]},{label:"superhero: medium-light skin tone",hexcode:"1F9B8-1F3FC",emoji:"🦸🏼",text:"",type:1,order:1672,group:1,subgroup:26,version:11,tone:2,shortCodes:["superhero_tone2"]},{label:"superhero: medium skin tone",hexcode:"1F9B8-1F3FD",emoji:"🦸🏽",text:"",type:1,order:1673,group:1,subgroup:26,version:11,tone:3,shortCodes:["superhero_tone3"]},{label:"superhero: medium-dark skin tone",hexcode:"1F9B8-1F3FE",emoji:"🦸🏾",text:"",type:1,order:1674,group:1,subgroup:26,version:11,tone:4,shortCodes:["superhero_tone4"]},{label:"superhero: dark skin tone",hexcode:"1F9B8-1F3FF",emoji:"🦸🏿",text:"",type:1,order:1675,group:1,subgroup:26,version:11,tone:5,shortCodes:["superhero_tone5"]}],shortCodes:["superhero"]},{label:"man superhero",hexcode:"1F9B8-200D-2642-FE0F",tags:["good","hero","man","superhero","superpower"],emoji:"🦸‍♂️",text:"",type:1,order:1676,group:1,subgroup:26,version:11,gender:1,skins:[{label:"man superhero: light skin tone",hexcode:"1F9B8-1F3FB-200D-2642-FE0F",emoji:"🦸🏻‍♂️",text:"",type:1,order:1678,group:1,subgroup:26,version:11,gender:1,tone:1,shortCodes:["man_superhero_tone1"]},{label:"man superhero: medium-light skin tone",hexcode:"1F9B8-1F3FC-200D-2642-FE0F",emoji:"🦸🏼‍♂️",text:"",type:1,order:1680,group:1,subgroup:26,version:11,gender:1,tone:2,shortCodes:["man_superhero_tone2"]},{label:"man superhero: medium skin tone",hexcode:"1F9B8-1F3FD-200D-2642-FE0F",emoji:"🦸🏽‍♂️",text:"",type:1,order:1682,group:1,subgroup:26,version:11,gender:1,tone:3,shortCodes:["man_superhero_tone3"]},{label:"man superhero: medium-dark skin tone",hexcode:"1F9B8-1F3FE-200D-2642-FE0F",emoji:"🦸🏾‍♂️",text:"",type:1,order:1684,group:1,subgroup:26,version:11,gender:1,tone:4,shortCodes:["man_superhero_tone4"]},{label:"man superhero: dark skin tone",hexcode:"1F9B8-1F3FF-200D-2642-FE0F",emoji:"🦸🏿‍♂️",text:"",type:1,order:1686,group:1,subgroup:26,version:11,gender:1,tone:5,shortCodes:["man_superhero_tone5"]}],shortCodes:["man_superhero"]},{label:"woman superhero",hexcode:"1F9B8-200D-2640-FE0F",tags:["good","hero","heroine","superhero","superpower","woman"],emoji:"🦸‍♀️",text:"",type:1,order:1688,group:1,subgroup:26,version:11,gender:0,skins:[{label:"woman superhero: light skin tone",hexcode:"1F9B8-1F3FB-200D-2640-FE0F",emoji:"🦸🏻‍♀️",text:"",type:1,order:1690,group:1,subgroup:26,version:11,gender:0,tone:1,shortCodes:["woman_superhero_tone1"]},{label:"woman superhero: medium-light skin tone",hexcode:"1F9B8-1F3FC-200D-2640-FE0F",emoji:"🦸🏼‍♀️",text:"",type:1,order:1692,group:1,subgroup:26,version:11,gender:0,tone:2,shortCodes:["woman_superhero_tone2"]},{label:"woman superhero: medium skin tone",hexcode:"1F9B8-1F3FD-200D-2640-FE0F",emoji:"🦸🏽‍♀️",text:"",type:1,order:1694,group:1,subgroup:26,version:11,gender:0,tone:3,shortCodes:["woman_superhero_tone3"]},{label:"woman superhero: medium-dark skin tone",hexcode:"1F9B8-1F3FE-200D-2640-FE0F",emoji:"🦸🏾‍♀️",text:"",type:1,order:1696,group:1,subgroup:26,version:11,gender:0,tone:4,shortCodes:["woman_superhero_tone4"]},{label:"woman superhero: dark skin tone",hexcode:"1F9B8-1F3FF-200D-2640-FE0F",emoji:"🦸🏿‍♀️",text:"",type:1,order:1698,group:1,subgroup:26,version:11,gender:0,tone:5,shortCodes:["woman_superhero_tone5"]}],shortCodes:["woman_superhero"]},{label:"supervillain",hexcode:"1F9B9",tags:["bad","criminal","evil","superpower","villain"],emoji:"🦹",text:"",type:1,order:1700,group:1,subgroup:26,version:11,skins:[{label:"supervillain: light skin tone",hexcode:"1F9B9-1F3FB",emoji:"🦹🏻",text:"",type:1,order:1701,group:1,subgroup:26,version:11,tone:1,shortCodes:["supervillain_tone1"]},{label:"supervillain: medium-light skin tone",hexcode:"1F9B9-1F3FC",emoji:"🦹🏼",text:"",type:1,order:1702,group:1,subgroup:26,version:11,tone:2,shortCodes:["supervillain_tone2"]},{label:"supervillain: medium skin tone",hexcode:"1F9B9-1F3FD",emoji:"🦹🏽",text:"",type:1,order:1703,group:1,subgroup:26,version:11,tone:3,shortCodes:["supervillain_tone3"]},{label:"supervillain: medium-dark skin tone",hexcode:"1F9B9-1F3FE",emoji:"🦹🏾",text:"",type:1,order:1704,group:1,subgroup:26,version:11,tone:4,shortCodes:["supervillain_tone4"]},{label:"supervillain: dark skin tone",hexcode:"1F9B9-1F3FF",emoji:"🦹🏿",text:"",type:1,order:1705,group:1,subgroup:26,version:11,tone:5,shortCodes:["supervillain_tone5"]}],shortCodes:["supervillain"]},{label:"man supervillain",hexcode:"1F9B9-200D-2642-FE0F",tags:["bad","criminal","evil","man","superpower","supervillain","villain"],emoji:"🦹‍♂️",text:"",type:1,order:1706,group:1,subgroup:26,version:11,gender:1,skins:[{label:"man supervillain: light skin tone",hexcode:"1F9B9-1F3FB-200D-2642-FE0F",emoji:"🦹🏻‍♂️",text:"",type:1,order:1708,group:1,subgroup:26,version:11,gender:1,tone:1,shortCodes:["man_supervillain_tone1"]},{label:"man supervillain: medium-light skin tone",hexcode:"1F9B9-1F3FC-200D-2642-FE0F",emoji:"🦹🏼‍♂️",text:"",type:1,order:1710,group:1,subgroup:26,version:11,gender:1,tone:2,shortCodes:["man_supervillain_tone2"]},{label:"man supervillain: medium skin tone",hexcode:"1F9B9-1F3FD-200D-2642-FE0F",emoji:"🦹🏽‍♂️",text:"",type:1,order:1712,group:1,subgroup:26,version:11,gender:1,tone:3,shortCodes:["man_supervillain_tone3"]},{label:"man supervillain: medium-dark skin tone",hexcode:"1F9B9-1F3FE-200D-2642-FE0F",emoji:"🦹🏾‍♂️",text:"",type:1,order:1714,group:1,subgroup:26,version:11,gender:1,tone:4,shortCodes:["man_supervillain_tone4"]},{label:"man supervillain: dark skin tone",hexcode:"1F9B9-1F3FF-200D-2642-FE0F",emoji:"🦹🏿‍♂️",text:"",type:1,order:1716,group:1,subgroup:26,version:11,gender:1,tone:5,shortCodes:["man_supervillain_tone5"]}],shortCodes:["man_supervillain"]},{label:"woman supervillain",hexcode:"1F9B9-200D-2640-FE0F",tags:["bad","criminal","evil","superpower","supervillain","villain","woman"],emoji:"🦹‍♀️",text:"",type:1,order:1718,group:1,subgroup:26,version:11,gender:0,skins:[{label:"woman supervillain: light skin tone",hexcode:"1F9B9-1F3FB-200D-2640-FE0F",emoji:"🦹🏻‍♀️",text:"",type:1,order:1720,group:1,subgroup:26,version:11,gender:0,tone:1,shortCodes:["woman_supervillain_tone1"]},{label:"woman supervillain: medium-light skin tone",hexcode:"1F9B9-1F3FC-200D-2640-FE0F",emoji:"🦹🏼‍♀️",text:"",type:1,order:1722,group:1,subgroup:26,version:11,gender:0,tone:2,shortCodes:["woman_supervillain_tone2"]},{label:"woman supervillain: medium skin tone",hexcode:"1F9B9-1F3FD-200D-2640-FE0F",emoji:"🦹🏽‍♀️",text:"",type:1,order:1724,group:1,subgroup:26,version:11,gender:0,tone:3,shortCodes:["woman_supervillain_tone3"]},{label:"woman supervillain: medium-dark skin tone",hexcode:"1F9B9-1F3FE-200D-2640-FE0F",emoji:"🦹🏾‍♀️",text:"",type:1,order:1726,group:1,subgroup:26,version:11,gender:0,tone:4,shortCodes:["woman_supervillain_tone4"]},{label:"woman supervillain: dark skin tone",hexcode:"1F9B9-1F3FF-200D-2640-FE0F",emoji:"🦹🏿‍♀️",text:"",type:1,order:1728,group:1,subgroup:26,version:11,gender:0,tone:5,shortCodes:["woman_supervillain_tone5"]}],shortCodes:["woman_supervillain"]},{label:"mage",hexcode:"1F9D9",tags:["fantasy","magic","play","sorcerer","sorceress","sorcery","spell","summon","witch","wizard"],emoji:"🧙",text:"",type:1,order:1730,group:1,subgroup:26,version:5,skins:[{label:"mage: light skin tone",hexcode:"1F9D9-1F3FB",emoji:"🧙🏻",text:"",type:1,order:1731,group:1,subgroup:26,version:5,tone:1,shortCodes:["mage_tone1"]},{label:"mage: medium-light skin tone",hexcode:"1F9D9-1F3FC",emoji:"🧙🏼",text:"",type:1,order:1732,group:1,subgroup:26,version:5,tone:2,shortCodes:["mage_tone2"]},{label:"mage: medium skin tone",hexcode:"1F9D9-1F3FD",emoji:"🧙🏽",text:"",type:1,order:1733,group:1,subgroup:26,version:5,tone:3,shortCodes:["mage_tone3"]},{label:"mage: medium-dark skin tone",hexcode:"1F9D9-1F3FE",emoji:"🧙🏾",text:"",type:1,order:1734,group:1,subgroup:26,version:5,tone:4,shortCodes:["mage_tone4"]},{label:"mage: dark skin tone",hexcode:"1F9D9-1F3FF",emoji:"🧙🏿",text:"",type:1,order:1735,group:1,subgroup:26,version:5,tone:5,shortCodes:["mage_tone5"]}],shortCodes:["mage"]},{label:"man mage",hexcode:"1F9D9-200D-2642-FE0F",tags:["fantasy","mage","magic","man","play","sorcerer","sorceress","sorcery","spell","summon","witch","wizard"],emoji:"🧙‍♂️",text:"",type:1,order:1736,group:1,subgroup:26,version:5,gender:1,emoticon:[":{>"],skins:[{label:"man mage: light skin tone",hexcode:"1F9D9-1F3FB-200D-2642-FE0F",emoji:"🧙🏻‍♂️",text:"",type:1,order:1738,group:1,subgroup:26,version:5,gender:1,tone:1,shortCodes:["man_mage_tone1"]},{label:"man mage: medium-light skin tone",hexcode:"1F9D9-1F3FC-200D-2642-FE0F",emoji:"🧙🏼‍♂️",text:"",type:1,order:1740,group:1,subgroup:26,version:5,gender:1,tone:2,shortCodes:["man_mage_tone2"]},{label:"man mage: medium skin tone",hexcode:"1F9D9-1F3FD-200D-2642-FE0F",emoji:"🧙🏽‍♂️",text:"",type:1,order:1742,group:1,subgroup:26,version:5,gender:1,tone:3,shortCodes:["man_mage_tone3"]},{label:"man mage: medium-dark skin tone",hexcode:"1F9D9-1F3FE-200D-2642-FE0F",emoji:"🧙🏾‍♂️",text:"",type:1,order:1744,group:1,subgroup:26,version:5,gender:1,tone:4,shortCodes:["man_mage_tone4"]},{label:"man mage: dark skin tone",hexcode:"1F9D9-1F3FF-200D-2642-FE0F",emoji:"🧙🏿‍♂️",text:"",type:1,order:1746,group:1,subgroup:26,version:5,gender:1,tone:5,shortCodes:["man_mage_tone5"]}],shortCodes:["man_mage"]},{label:"woman mage",hexcode:"1F9D9-200D-2640-FE0F",tags:["fantasy","mage","magic","play","sorcerer","sorceress","sorcery","spell","summon","witch","wizard","woman"],emoji:"🧙‍♀️",text:"",type:1,order:1748,group:1,subgroup:26,version:5,gender:0,skins:[{label:"woman mage: light skin tone",hexcode:"1F9D9-1F3FB-200D-2640-FE0F",emoji:"🧙🏻‍♀️",text:"",type:1,order:1750,group:1,subgroup:26,version:5,gender:0,tone:1,shortCodes:["woman_mage_tone1"]},{label:"woman mage: medium-light skin tone",hexcode:"1F9D9-1F3FC-200D-2640-FE0F",emoji:"🧙🏼‍♀️",text:"",type:1,order:1752,group:1,subgroup:26,version:5,gender:0,tone:2,shortCodes:["woman_mage_tone2"]},{label:"woman mage: medium skin tone",hexcode:"1F9D9-1F3FD-200D-2640-FE0F",emoji:"🧙🏽‍♀️",text:"",type:1,order:1754,group:1,subgroup:26,version:5,gender:0,tone:3,shortCodes:["woman_mage_tone3"]},{label:"woman mage: medium-dark skin tone",hexcode:"1F9D9-1F3FE-200D-2640-FE0F",emoji:"🧙🏾‍♀️",text:"",type:1,order:1756,group:1,subgroup:26,version:5,gender:0,tone:4,shortCodes:["woman_mage_tone4"]},{label:"woman mage: dark skin tone",hexcode:"1F9D9-1F3FF-200D-2640-FE0F",emoji:"🧙🏿‍♀️",text:"",type:1,order:1758,group:1,subgroup:26,version:5,gender:0,tone:5,shortCodes:["woman_mage_tone5"]}],shortCodes:["woman_mage"]},{label:"fairy",hexcode:"1F9DA",tags:["fairytale","fantasy","myth","person","pixie","tale","wings"],emoji:"🧚",text:"",type:1,order:1760,group:1,subgroup:26,version:5,skins:[{label:"fairy: light skin tone",hexcode:"1F9DA-1F3FB",emoji:"🧚🏻",text:"",type:1,order:1761,group:1,subgroup:26,version:5,tone:1,shortCodes:["fairy_tone1"]},{label:"fairy: medium-light skin tone",hexcode:"1F9DA-1F3FC",emoji:"🧚🏼",text:"",type:1,order:1762,group:1,subgroup:26,version:5,tone:2,shortCodes:["fairy_tone2"]},{label:"fairy: medium skin tone",hexcode:"1F9DA-1F3FD",emoji:"🧚🏽",text:"",type:1,order:1763,group:1,subgroup:26,version:5,tone:3,shortCodes:["fairy_tone3"]},{label:"fairy: medium-dark skin tone",hexcode:"1F9DA-1F3FE",emoji:"🧚🏾",text:"",type:1,order:1764,group:1,subgroup:26,version:5,tone:4,shortCodes:["fairy_tone4"]},{label:"fairy: dark skin tone",hexcode:"1F9DA-1F3FF",emoji:"🧚🏿",text:"",type:1,order:1765,group:1,subgroup:26,version:5,tone:5,shortCodes:["fairy_tone5"]}],shortCodes:["fairy"]},{label:"man fairy",hexcode:"1F9DA-200D-2642-FE0F",tags:["fairy","fairytale","fantasy","man","myth","oberon","person","pixie","puck","tale","wings"],emoji:"🧚‍♂️",text:"",type:1,order:1766,group:1,subgroup:26,version:5,gender:1,skins:[{label:"man fairy: light skin tone",hexcode:"1F9DA-1F3FB-200D-2642-FE0F",emoji:"🧚🏻‍♂️",text:"",type:1,order:1768,group:1,subgroup:26,version:5,gender:1,tone:1,shortCodes:["man_fairy_tone1"]},{label:"man fairy: medium-light skin tone",hexcode:"1F9DA-1F3FC-200D-2642-FE0F",emoji:"🧚🏼‍♂️",text:"",type:1,order:1770,group:1,subgroup:26,version:5,gender:1,tone:2,shortCodes:["man_fairy_tone2"]},{label:"man fairy: medium skin tone",hexcode:"1F9DA-1F3FD-200D-2642-FE0F",emoji:"🧚🏽‍♂️",text:"",type:1,order:1772,group:1,subgroup:26,version:5,gender:1,tone:3,shortCodes:["man_fairy_tone3"]},{label:"man fairy: medium-dark skin tone",hexcode:"1F9DA-1F3FE-200D-2642-FE0F",emoji:"🧚🏾‍♂️",text:"",type:1,order:1774,group:1,subgroup:26,version:5,gender:1,tone:4,shortCodes:["man_fairy_tone4"]},{label:"man fairy: dark skin tone",hexcode:"1F9DA-1F3FF-200D-2642-FE0F",emoji:"🧚🏿‍♂️",text:"",type:1,order:1776,group:1,subgroup:26,version:5,gender:1,tone:5,shortCodes:["man_fairy_tone5"]}],shortCodes:["man_fairy"]},{label:"woman fairy",hexcode:"1F9DA-200D-2640-FE0F",tags:["fairy","fairytale","fantasy","myth","person","pixie","tale","titania","wings","woman"],emoji:"🧚‍♀️",text:"",type:1,order:1778,group:1,subgroup:26,version:5,gender:0,skins:[{label:"woman fairy: light skin tone",hexcode:"1F9DA-1F3FB-200D-2640-FE0F",emoji:"🧚🏻‍♀️",text:"",type:1,order:1780,group:1,subgroup:26,version:5,gender:0,tone:1,shortCodes:["woman_fairy_tone1"]},{label:"woman fairy: medium-light skin tone",hexcode:"1F9DA-1F3FC-200D-2640-FE0F",emoji:"🧚🏼‍♀️",text:"",type:1,order:1782,group:1,subgroup:26,version:5,gender:0,tone:2,shortCodes:["woman_fairy_tone2"]},{label:"woman fairy: medium skin tone",hexcode:"1F9DA-1F3FD-200D-2640-FE0F",emoji:"🧚🏽‍♀️",text:"",type:1,order:1784,group:1,subgroup:26,version:5,gender:0,tone:3,shortCodes:["woman_fairy_tone3"]},{label:"woman fairy: medium-dark skin tone",hexcode:"1F9DA-1F3FE-200D-2640-FE0F",emoji:"🧚🏾‍♀️",text:"",type:1,order:1786,group:1,subgroup:26,version:5,gender:0,tone:4,shortCodes:["woman_fairy_tone4"]},{label:"woman fairy: dark skin tone",hexcode:"1F9DA-1F3FF-200D-2640-FE0F",emoji:"🧚🏿‍♀️",text:"",type:1,order:1788,group:1,subgroup:26,version:5,gender:0,tone:5,shortCodes:["woman_fairy_tone5"]}],shortCodes:["woman_fairy"]},{label:"vampire",hexcode:"1F9DB",tags:["blood","dracula","fangs","halloween","scary","supernatural","teeth","undead"],emoji:"🧛",text:"",type:1,order:1790,group:1,subgroup:26,version:5,emoticon:[":E"],skins:[{label:"vampire: light skin tone",hexcode:"1F9DB-1F3FB",emoji:"🧛🏻",text:"",type:1,order:1791,group:1,subgroup:26,version:5,tone:1,shortCodes:["vampire_tone1"]},{label:"vampire: medium-light skin tone",hexcode:"1F9DB-1F3FC",emoji:"🧛🏼",text:"",type:1,order:1792,group:1,subgroup:26,version:5,tone:2,shortCodes:["vampire_tone2"]},{label:"vampire: medium skin tone",hexcode:"1F9DB-1F3FD",emoji:"🧛🏽",text:"",type:1,order:1793,group:1,subgroup:26,version:5,tone:3,shortCodes:["vampire_tone3"]},{label:"vampire: medium-dark skin tone",hexcode:"1F9DB-1F3FE",emoji:"🧛🏾",text:"",type:1,order:1794,group:1,subgroup:26,version:5,tone:4,shortCodes:["vampire_tone4"]},{label:"vampire: dark skin tone",hexcode:"1F9DB-1F3FF",emoji:"🧛🏿",text:"",type:1,order:1795,group:1,subgroup:26,version:5,tone:5,shortCodes:["vampire_tone5"]}],shortCodes:["vampire"]},{label:"man vampire",hexcode:"1F9DB-200D-2642-FE0F",tags:["blood","fangs","halloween","man","scary","supernatural","teeth","undead","vampire"],emoji:"🧛‍♂️",text:"",type:1,order:1796,group:1,subgroup:26,version:5,gender:1,skins:[{label:"man vampire: light skin tone",hexcode:"1F9DB-1F3FB-200D-2642-FE0F",emoji:"🧛🏻‍♂️",text:"",type:1,order:1798,group:1,subgroup:26,version:5,gender:1,tone:1,shortCodes:["man_vampire_tone1"]},{label:"man vampire: medium-light skin tone",hexcode:"1F9DB-1F3FC-200D-2642-FE0F",emoji:"🧛🏼‍♂️",text:"",type:1,order:1800,group:1,subgroup:26,version:5,gender:1,tone:2,shortCodes:["man_vampire_tone2"]},{label:"man vampire: medium skin tone",hexcode:"1F9DB-1F3FD-200D-2642-FE0F",emoji:"🧛🏽‍♂️",text:"",type:1,order:1802,group:1,subgroup:26,version:5,gender:1,tone:3,shortCodes:["man_vampire_tone3"]},{label:"man vampire: medium-dark skin tone",hexcode:"1F9DB-1F3FE-200D-2642-FE0F",emoji:"🧛🏾‍♂️",text:"",type:1,order:1804,group:1,subgroup:26,version:5,gender:1,tone:4,shortCodes:["man_vampire_tone4"]},{label:"man vampire: dark skin tone",hexcode:"1F9DB-1F3FF-200D-2642-FE0F",emoji:"🧛🏿‍♂️",text:"",type:1,order:1806,group:1,subgroup:26,version:5,gender:1,tone:5,shortCodes:["man_vampire_tone5"]}],shortCodes:["man_vampire"]},{label:"woman vampire",hexcode:"1F9DB-200D-2640-FE0F",tags:["blood","fangs","halloween","scary","supernatural","teeth","undead","vampire","woman"],emoji:"🧛‍♀️",text:"",type:1,order:1808,group:1,subgroup:26,version:5,gender:0,skins:[{label:"woman vampire: light skin tone",hexcode:"1F9DB-1F3FB-200D-2640-FE0F",emoji:"🧛🏻‍♀️",text:"",type:1,order:1810,group:1,subgroup:26,version:5,gender:0,tone:1,shortCodes:["woman_vampire_tone1"]},{label:"woman vampire: medium-light skin tone",hexcode:"1F9DB-1F3FC-200D-2640-FE0F",emoji:"🧛🏼‍♀️",text:"",type:1,order:1812,group:1,subgroup:26,version:5,gender:0,tone:2,shortCodes:["woman_vampire_tone2"]},{label:"woman vampire: medium skin tone",hexcode:"1F9DB-1F3FD-200D-2640-FE0F",emoji:"🧛🏽‍♀️",text:"",type:1,order:1814,group:1,subgroup:26,version:5,gender:0,tone:3,shortCodes:["woman_vampire_tone3"]},{label:"woman vampire: medium-dark skin tone",hexcode:"1F9DB-1F3FE-200D-2640-FE0F",emoji:"🧛🏾‍♀️",text:"",type:1,order:1816,group:1,subgroup:26,version:5,gender:0,tone:4,shortCodes:["woman_vampire_tone4"]},{label:"woman vampire: dark skin tone",hexcode:"1F9DB-1F3FF-200D-2640-FE0F",emoji:"🧛🏿‍♀️",text:"",type:1,order:1818,group:1,subgroup:26,version:5,gender:0,tone:5,shortCodes:["woman_vampire_tone5"]}],shortCodes:["woman_vampire"]},{label:"merperson",hexcode:"1F9DC",tags:["creature","fairytale","folklore","ocean","sea","siren","trident"],emoji:"🧜",text:"",type:1,order:1820,group:1,subgroup:26,version:5,skins:[{label:"merperson: light skin tone",hexcode:"1F9DC-1F3FB",emoji:"🧜🏻",text:"",type:1,order:1821,group:1,subgroup:26,version:5,tone:1,shortCodes:["merperson_tone1"]},{label:"merperson: medium-light skin tone",hexcode:"1F9DC-1F3FC",emoji:"🧜🏼",text:"",type:1,order:1822,group:1,subgroup:26,version:5,tone:2,shortCodes:["merperson_tone2"]},{label:"merperson: medium skin tone",hexcode:"1F9DC-1F3FD",emoji:"🧜🏽",text:"",type:1,order:1823,group:1,subgroup:26,version:5,tone:3,shortCodes:["merperson_tone3"]},{label:"merperson: medium-dark skin tone",hexcode:"1F9DC-1F3FE",emoji:"🧜🏾",text:"",type:1,order:1824,group:1,subgroup:26,version:5,tone:4,shortCodes:["merperson_tone4"]},{label:"merperson: dark skin tone",hexcode:"1F9DC-1F3FF",emoji:"🧜🏿",text:"",type:1,order:1825,group:1,subgroup:26,version:5,tone:5,shortCodes:["merperson_tone5"]}],shortCodes:["merperson"]},{label:"merman",hexcode:"1F9DC-200D-2642-FE0F",tags:["creature","fairytale","folklore","neptune","ocean","poseidon","sea","siren","trident","triton"],emoji:"🧜‍♂️",text:"",type:1,order:1826,group:1,subgroup:26,version:5,gender:1,skins:[{label:"merman: light skin tone",hexcode:"1F9DC-1F3FB-200D-2642-FE0F",emoji:"🧜🏻‍♂️",text:"",type:1,order:1828,group:1,subgroup:26,version:5,gender:1,tone:1,shortCodes:["merman_tone1"]},{label:"merman: medium-light skin tone",hexcode:"1F9DC-1F3FC-200D-2642-FE0F",emoji:"🧜🏼‍♂️",text:"",type:1,order:1830,group:1,subgroup:26,version:5,gender:1,tone:2,shortCodes:["merman_tone2"]},{label:"merman: medium skin tone",hexcode:"1F9DC-1F3FD-200D-2642-FE0F",emoji:"🧜🏽‍♂️",text:"",type:1,order:1832,group:1,subgroup:26,version:5,gender:1,tone:3,shortCodes:["merman_tone3"]},{label:"merman: medium-dark skin tone",hexcode:"1F9DC-1F3FE-200D-2642-FE0F",emoji:"🧜🏾‍♂️",text:"",type:1,order:1834,group:1,subgroup:26,version:5,gender:1,tone:4,shortCodes:["merman_tone4"]},{label:"merman: dark skin tone",hexcode:"1F9DC-1F3FF-200D-2642-FE0F",emoji:"🧜🏿‍♂️",text:"",type:1,order:1836,group:1,subgroup:26,version:5,gender:1,tone:5,shortCodes:["merman_tone5"]}],shortCodes:["merman"]},{label:"mermaid",hexcode:"1F9DC-200D-2640-FE0F",tags:["creature","fairytale","folklore","merwoman","ocean","sea","siren","trident"],emoji:"🧜‍♀️",text:"",type:1,order:1838,group:1,subgroup:26,version:5,gender:0,skins:[{label:"mermaid: light skin tone",hexcode:"1F9DC-1F3FB-200D-2640-FE0F",emoji:"🧜🏻‍♀️",text:"",type:1,order:1840,group:1,subgroup:26,version:5,gender:0,tone:1,shortCodes:["mermaid_tone1"]},{label:"mermaid: medium-light skin tone",hexcode:"1F9DC-1F3FC-200D-2640-FE0F",emoji:"🧜🏼‍♀️",text:"",type:1,order:1842,group:1,subgroup:26,version:5,gender:0,tone:2,shortCodes:["mermaid_tone2"]},{label:"mermaid: medium skin tone",hexcode:"1F9DC-1F3FD-200D-2640-FE0F",emoji:"🧜🏽‍♀️",text:"",type:1,order:1844,group:1,subgroup:26,version:5,gender:0,tone:3,shortCodes:["mermaid_tone3"]},{label:"mermaid: medium-dark skin tone",hexcode:"1F9DC-1F3FE-200D-2640-FE0F",emoji:"🧜🏾‍♀️",text:"",type:1,order:1846,group:1,subgroup:26,version:5,gender:0,tone:4,shortCodes:["mermaid_tone4"]},{label:"mermaid: dark skin tone",hexcode:"1F9DC-1F3FF-200D-2640-FE0F",emoji:"🧜🏿‍♀️",text:"",type:1,order:1848,group:1,subgroup:26,version:5,gender:0,tone:5,shortCodes:["mermaid_tone5"]}],shortCodes:["mermaid"]},{label:"elf",hexcode:"1F9DD",tags:["elves","enchantment","fantasy","folklore","magic","magical","myth"],emoji:"🧝",text:"",type:1,order:1850,group:1,subgroup:26,version:5,skins:[{label:"elf: light skin tone",hexcode:"1F9DD-1F3FB",emoji:"🧝🏻",text:"",type:1,order:1851,group:1,subgroup:26,version:5,tone:1,shortCodes:["elf_tone1"]},{label:"elf: medium-light skin tone",hexcode:"1F9DD-1F3FC",emoji:"🧝🏼",text:"",type:1,order:1852,group:1,subgroup:26,version:5,tone:2,shortCodes:["elf_tone2"]},{label:"elf: medium skin tone",hexcode:"1F9DD-1F3FD",emoji:"🧝🏽",text:"",type:1,order:1853,group:1,subgroup:26,version:5,tone:3,shortCodes:["elf_tone3"]},{label:"elf: medium-dark skin tone",hexcode:"1F9DD-1F3FE",emoji:"🧝🏾",text:"",type:1,order:1854,group:1,subgroup:26,version:5,tone:4,shortCodes:["elf_tone4"]},{label:"elf: dark skin tone",hexcode:"1F9DD-1F3FF",emoji:"🧝🏿",text:"",type:1,order:1855,group:1,subgroup:26,version:5,tone:5,shortCodes:["elf_tone5"]}],shortCodes:["elf"]},{label:"man elf",hexcode:"1F9DD-200D-2642-FE0F",tags:["elf","elves","enchantment","fantasy","folklore","magic","magical","man","myth"],emoji:"🧝‍♂️",text:"",type:1,order:1856,group:1,subgroup:26,version:5,gender:1,skins:[{label:"man elf: light skin tone",hexcode:"1F9DD-1F3FB-200D-2642-FE0F",emoji:"🧝🏻‍♂️",text:"",type:1,order:1858,group:1,subgroup:26,version:5,gender:1,tone:1,shortCodes:["man_elf_tone1"]},{label:"man elf: medium-light skin tone",hexcode:"1F9DD-1F3FC-200D-2642-FE0F",emoji:"🧝🏼‍♂️",text:"",type:1,order:1860,group:1,subgroup:26,version:5,gender:1,tone:2,shortCodes:["man_elf_tone2"]},{label:"man elf: medium skin tone",hexcode:"1F9DD-1F3FD-200D-2642-FE0F",emoji:"🧝🏽‍♂️",text:"",type:1,order:1862,group:1,subgroup:26,version:5,gender:1,tone:3,shortCodes:["man_elf_tone3"]},{label:"man elf: medium-dark skin tone",hexcode:"1F9DD-1F3FE-200D-2642-FE0F",emoji:"🧝🏾‍♂️",text:"",type:1,order:1864,group:1,subgroup:26,version:5,gender:1,tone:4,shortCodes:["man_elf_tone4"]},{label:"man elf: dark skin tone",hexcode:"1F9DD-1F3FF-200D-2642-FE0F",emoji:"🧝🏿‍♂️",text:"",type:1,order:1866,group:1,subgroup:26,version:5,gender:1,tone:5,shortCodes:["man_elf_tone5"]}],shortCodes:["man_elf"]},{label:"woman elf",hexcode:"1F9DD-200D-2640-FE0F",tags:["elf","elves","enchantment","fantasy","folklore","magic","magical","myth","woman"],emoji:"🧝‍♀️",text:"",type:1,order:1868,group:1,subgroup:26,version:5,gender:0,skins:[{label:"woman elf: light skin tone",hexcode:"1F9DD-1F3FB-200D-2640-FE0F",emoji:"🧝🏻‍♀️",text:"",type:1,order:1870,group:1,subgroup:26,version:5,gender:0,tone:1,shortCodes:["woman_elf_tone1"]},{label:"woman elf: medium-light skin tone",hexcode:"1F9DD-1F3FC-200D-2640-FE0F",emoji:"🧝🏼‍♀️",text:"",type:1,order:1872,group:1,subgroup:26,version:5,gender:0,tone:2,shortCodes:["woman_elf_tone2"]},{label:"woman elf: medium skin tone",hexcode:"1F9DD-1F3FD-200D-2640-FE0F",emoji:"🧝🏽‍♀️",text:"",type:1,order:1874,group:1,subgroup:26,version:5,gender:0,tone:3,shortCodes:["woman_elf_tone3"]},{label:"woman elf: medium-dark skin tone",hexcode:"1F9DD-1F3FE-200D-2640-FE0F",emoji:"🧝🏾‍♀️",text:"",type:1,order:1876,group:1,subgroup:26,version:5,gender:0,tone:4,shortCodes:["woman_elf_tone4"]},{label:"woman elf: dark skin tone",hexcode:"1F9DD-1F3FF-200D-2640-FE0F",emoji:"🧝🏿‍♀️",text:"",type:1,order:1878,group:1,subgroup:26,version:5,gender:0,tone:5,shortCodes:["woman_elf_tone5"]}],shortCodes:["woman_elf"]},{label:"genie",hexcode:"1F9DE",tags:["djinn","fantasy","jinn","lamp","myth","rub","wishes"],emoji:"🧞",text:"",type:1,order:1880,group:1,subgroup:26,version:5,shortCodes:["genie"]},{label:"man genie",hexcode:"1F9DE-200D-2642-FE0F",tags:["djinn","fantasy","genie","jinn","lamp","man","myth","rub","wishes"],emoji:"🧞‍♂️",text:"",type:1,order:1881,group:1,subgroup:26,version:5,gender:1,shortCodes:["man_genie"]},{label:"woman genie",hexcode:"1F9DE-200D-2640-FE0F",tags:["djinn","fantasy","genie","jinn","lamp","myth","rub","wishes","woman"],emoji:"🧞‍♀️",text:"",type:1,order:1883,group:1,subgroup:26,version:5,gender:0,shortCodes:["woman_genie"]},{label:"zombie",hexcode:"1F9DF",tags:["apocalypse","dead","halloween","horror","scary","undead","walking"],emoji:"🧟",text:"",type:1,order:1885,group:1,subgroup:26,version:5,emoticon:["8#"],shortCodes:["zombie"]},{label:"man zombie",hexcode:"1F9DF-200D-2642-FE0F",tags:["apocalypse","dead","halloween","horror","man","scary","undead","walking","zombie"],emoji:"🧟‍♂️",text:"",type:1,order:1886,group:1,subgroup:26,version:5,gender:1,shortCodes:["man_zombie"]},{label:"woman zombie",hexcode:"1F9DF-200D-2640-FE0F",tags:["apocalypse","dead","halloween","horror","scary","undead","walking","woman","zombie"],emoji:"🧟‍♀️",text:"",type:1,order:1888,group:1,subgroup:26,version:5,gender:0,shortCodes:["woman_zombie"]},{label:"troll",hexcode:"1F9CC",tags:["fairy","fantasy","monster","tale","trolling"],emoji:"🧌",text:"",type:1,order:1890,group:1,subgroup:26,version:14,shortCodes:["troll"]},{label:"person getting massage",hexcode:"1F486",tags:["face","getting","headache","massage","person","relax","relaxing","salon","soothe","spa","tension","therapy","treatment"],emoji:"💆",text:"",type:1,order:1892,group:1,subgroup:27,version:.6,skins:[{label:"person getting massage: light skin tone",hexcode:"1F486-1F3FB",emoji:"💆🏻",text:"",type:1,order:1893,group:1,subgroup:27,version:1,tone:1,shortCodes:["massage_tone1","person_getting_massage_tone1"]},{label:"person getting massage: medium-light skin tone",hexcode:"1F486-1F3FC",emoji:"💆🏼",text:"",type:1,order:1894,group:1,subgroup:27,version:1,tone:2,shortCodes:["massage_tone2","person_getting_massage_tone2"]},{label:"person getting massage: medium skin tone",hexcode:"1F486-1F3FD",emoji:"💆🏽",text:"",type:1,order:1895,group:1,subgroup:27,version:1,tone:3,shortCodes:["massage_tone3","person_getting_massage_tone3"]},{label:"person getting massage: medium-dark skin tone",hexcode:"1F486-1F3FE",emoji:"💆🏾",text:"",type:1,order:1896,group:1,subgroup:27,version:1,tone:4,shortCodes:["massage_tone4","person_getting_massage_tone4"]},{label:"person getting massage: dark skin tone",hexcode:"1F486-1F3FF",emoji:"💆🏿",text:"",type:1,order:1897,group:1,subgroup:27,version:1,tone:5,shortCodes:["massage_tone5","person_getting_massage_tone5"]}],shortCodes:["massage","person_getting_massage"]},{label:"man getting massage",hexcode:"1F486-200D-2642-FE0F",tags:["face","getting","headache","man","massage","relax","relaxing","salon","soothe","spa","tension","therapy","treatment"],emoji:"💆‍♂️",text:"",type:1,order:1898,group:1,subgroup:27,version:4,gender:1,skins:[{label:"man getting massage: light skin tone",hexcode:"1F486-1F3FB-200D-2642-FE0F",emoji:"💆🏻‍♂️",text:"",type:1,order:1900,group:1,subgroup:27,version:4,gender:1,tone:1,shortCodes:["man_getting_massage_tone1"]},{label:"man getting massage: medium-light skin tone",hexcode:"1F486-1F3FC-200D-2642-FE0F",emoji:"💆🏼‍♂️",text:"",type:1,order:1902,group:1,subgroup:27,version:4,gender:1,tone:2,shortCodes:["man_getting_massage_tone2"]},{label:"man getting massage: medium skin tone",hexcode:"1F486-1F3FD-200D-2642-FE0F",emoji:"💆🏽‍♂️",text:"",type:1,order:1904,group:1,subgroup:27,version:4,gender:1,tone:3,shortCodes:["man_getting_massage_tone3"]},{label:"man getting massage: medium-dark skin tone",hexcode:"1F486-1F3FE-200D-2642-FE0F",emoji:"💆🏾‍♂️",text:"",type:1,order:1906,group:1,subgroup:27,version:4,gender:1,tone:4,shortCodes:["man_getting_massage_tone4"]},{label:"man getting massage: dark skin tone",hexcode:"1F486-1F3FF-200D-2642-FE0F",emoji:"💆🏿‍♂️",text:"",type:1,order:1908,group:1,subgroup:27,version:4,gender:1,tone:5,shortCodes:["man_getting_massage_tone5"]}],shortCodes:["man_getting_massage"]},{label:"woman getting massage",hexcode:"1F486-200D-2640-FE0F",tags:["face","getting","headache","massage","relax","relaxing","salon","soothe","spa","tension","therapy","treatment","woman"],emoji:"💆‍♀️",text:"",type:1,order:1910,group:1,subgroup:27,version:4,gender:0,skins:[{label:"woman getting massage: light skin tone",hexcode:"1F486-1F3FB-200D-2640-FE0F",emoji:"💆🏻‍♀️",text:"",type:1,order:1912,group:1,subgroup:27,version:4,gender:0,tone:1,shortCodes:["woman_getting_massage_tone1"]},{label:"woman getting massage: medium-light skin tone",hexcode:"1F486-1F3FC-200D-2640-FE0F",emoji:"💆🏼‍♀️",text:"",type:1,order:1914,group:1,subgroup:27,version:4,gender:0,tone:2,shortCodes:["woman_getting_massage_tone2"]},{label:"woman getting massage: medium skin tone",hexcode:"1F486-1F3FD-200D-2640-FE0F",emoji:"💆🏽‍♀️",text:"",type:1,order:1916,group:1,subgroup:27,version:4,gender:0,tone:3,shortCodes:["woman_getting_massage_tone3"]},{label:"woman getting massage: medium-dark skin tone",hexcode:"1F486-1F3FE-200D-2640-FE0F",emoji:"💆🏾‍♀️",text:"",type:1,order:1918,group:1,subgroup:27,version:4,gender:0,tone:4,shortCodes:["woman_getting_massage_tone4"]},{label:"woman getting massage: dark skin tone",hexcode:"1F486-1F3FF-200D-2640-FE0F",emoji:"💆🏿‍♀️",text:"",type:1,order:1920,group:1,subgroup:27,version:4,gender:0,tone:5,shortCodes:["woman_getting_massage_tone5"]}],shortCodes:["woman_getting_massage"]},{label:"person getting haircut",hexcode:"1F487",tags:["barber","beauty","chop","cosmetology","cut","groom","hair","haircut","parlor","person","shears","style"],emoji:"💇",text:"",type:1,order:1922,group:1,subgroup:27,version:.6,skins:[{label:"person getting haircut: light skin tone",hexcode:"1F487-1F3FB",emoji:"💇🏻",text:"",type:1,order:1923,group:1,subgroup:27,version:1,tone:1,shortCodes:["haircut_tone1","person_getting_haircut_tone1"]},{label:"person getting haircut: medium-light skin tone",hexcode:"1F487-1F3FC",emoji:"💇🏼",text:"",type:1,order:1924,group:1,subgroup:27,version:1,tone:2,shortCodes:["haircut_tone2","person_getting_haircut_tone2"]},{label:"person getting haircut: medium skin tone",hexcode:"1F487-1F3FD",emoji:"💇🏽",text:"",type:1,order:1925,group:1,subgroup:27,version:1,tone:3,shortCodes:["haircut_tone3","person_getting_haircut_tone3"]},{label:"person getting haircut: medium-dark skin tone",hexcode:"1F487-1F3FE",emoji:"💇🏾",text:"",type:1,order:1926,group:1,subgroup:27,version:1,tone:4,shortCodes:["haircut_tone4","person_getting_haircut_tone4"]},{label:"person getting haircut: dark skin tone",hexcode:"1F487-1F3FF",emoji:"💇🏿",text:"",type:1,order:1927,group:1,subgroup:27,version:1,tone:5,shortCodes:["haircut_tone5","person_getting_haircut_tone5"]}],shortCodes:["haircut","person_getting_haircut"]},{label:"man getting haircut",hexcode:"1F487-200D-2642-FE0F",tags:["barber","beauty","chop","cosmetology","cut","groom","hair","haircut","man","parlor","person","shears","style"],emoji:"💇‍♂️",text:"",type:1,order:1928,group:1,subgroup:27,version:4,gender:1,skins:[{label:"man getting haircut: light skin tone",hexcode:"1F487-1F3FB-200D-2642-FE0F",emoji:"💇🏻‍♂️",text:"",type:1,order:1930,group:1,subgroup:27,version:4,gender:1,tone:1,shortCodes:["man_getting_haircut_tone1"]},{label:"man getting haircut: medium-light skin tone",hexcode:"1F487-1F3FC-200D-2642-FE0F",emoji:"💇🏼‍♂️",text:"",type:1,order:1932,group:1,subgroup:27,version:4,gender:1,tone:2,shortCodes:["man_getting_haircut_tone2"]},{label:"man getting haircut: medium skin tone",hexcode:"1F487-1F3FD-200D-2642-FE0F",emoji:"💇🏽‍♂️",text:"",type:1,order:1934,group:1,subgroup:27,version:4,gender:1,tone:3,shortCodes:["man_getting_haircut_tone3"]},{label:"man getting haircut: medium-dark skin tone",hexcode:"1F487-1F3FE-200D-2642-FE0F",emoji:"💇🏾‍♂️",text:"",type:1,order:1936,group:1,subgroup:27,version:4,gender:1,tone:4,shortCodes:["man_getting_haircut_tone4"]},{label:"man getting haircut: dark skin tone",hexcode:"1F487-1F3FF-200D-2642-FE0F",emoji:"💇🏿‍♂️",text:"",type:1,order:1938,group:1,subgroup:27,version:4,gender:1,tone:5,shortCodes:["man_getting_haircut_tone5"]}],shortCodes:["man_getting_haircut"]},{label:"woman getting haircut",hexcode:"1F487-200D-2640-FE0F",tags:["barber","beauty","chop","cosmetology","cut","groom","hair","haircut","parlor","person","shears","style","woman"],emoji:"💇‍♀️",text:"",type:1,order:1940,group:1,subgroup:27,version:4,gender:0,skins:[{label:"woman getting haircut: light skin tone",hexcode:"1F487-1F3FB-200D-2640-FE0F",emoji:"💇🏻‍♀️",text:"",type:1,order:1942,group:1,subgroup:27,version:4,gender:0,tone:1,shortCodes:["woman_getting_haircut_tone1"]},{label:"woman getting haircut: medium-light skin tone",hexcode:"1F487-1F3FC-200D-2640-FE0F",emoji:"💇🏼‍♀️",text:"",type:1,order:1944,group:1,subgroup:27,version:4,gender:0,tone:2,shortCodes:["woman_getting_haircut_tone2"]},{label:"woman getting haircut: medium skin tone",hexcode:"1F487-1F3FD-200D-2640-FE0F",emoji:"💇🏽‍♀️",text:"",type:1,order:1946,group:1,subgroup:27,version:4,gender:0,tone:3,shortCodes:["woman_getting_haircut_tone3"]},{label:"woman getting haircut: medium-dark skin tone",hexcode:"1F487-1F3FE-200D-2640-FE0F",emoji:"💇🏾‍♀️",text:"",type:1,order:1948,group:1,subgroup:27,version:4,gender:0,tone:4,shortCodes:["woman_getting_haircut_tone4"]},{label:"woman getting haircut: dark skin tone",hexcode:"1F487-1F3FF-200D-2640-FE0F",emoji:"💇🏿‍♀️",text:"",type:1,order:1950,group:1,subgroup:27,version:4,gender:0,tone:5,shortCodes:["woman_getting_haircut_tone5"]}],shortCodes:["woman_getting_haircut"]},{label:"person walking",hexcode:"1F6B6",tags:["amble","gait","hike","man","pace","pedestrian","person","stride","stroll","walk","walking"],emoji:"🚶",text:"",type:1,order:1952,group:1,subgroup:27,version:.6,skins:[{label:"person walking: light skin tone",hexcode:"1F6B6-1F3FB",emoji:"🚶🏻",text:"",type:1,order:1953,group:1,subgroup:27,version:1,tone:1,shortCodes:["person_walking_tone1","walking_tone1"]},{label:"person walking: medium-light skin tone",hexcode:"1F6B6-1F3FC",emoji:"🚶🏼",text:"",type:1,order:1954,group:1,subgroup:27,version:1,tone:2,shortCodes:["person_walking_tone2","walking_tone2"]},{label:"person walking: medium skin tone",hexcode:"1F6B6-1F3FD",emoji:"🚶🏽",text:"",type:1,order:1955,group:1,subgroup:27,version:1,tone:3,shortCodes:["person_walking_tone3","walking_tone3"]},{label:"person walking: medium-dark skin tone",hexcode:"1F6B6-1F3FE",emoji:"🚶🏾",text:"",type:1,order:1956,group:1,subgroup:27,version:1,tone:4,shortCodes:["person_walking_tone4","walking_tone4"]},{label:"person walking: dark skin tone",hexcode:"1F6B6-1F3FF",emoji:"🚶🏿",text:"",type:1,order:1957,group:1,subgroup:27,version:1,tone:5,shortCodes:["person_walking_tone5","walking_tone5"]}],shortCodes:["person_walking","walking"]},{label:"man walking",hexcode:"1F6B6-200D-2642-FE0F",tags:["amble","gait","hike","man","pace","pedestrian","stride","stroll","walk","walking"],emoji:"🚶‍♂️",text:"",type:1,order:1958,group:1,subgroup:27,version:4,gender:1,skins:[{label:"man walking: light skin tone",hexcode:"1F6B6-1F3FB-200D-2642-FE0F",emoji:"🚶🏻‍♂️",text:"",type:1,order:1960,group:1,subgroup:27,version:4,gender:1,tone:1,shortCodes:["man_walking_tone1"]},{label:"man walking: medium-light skin tone",hexcode:"1F6B6-1F3FC-200D-2642-FE0F",emoji:"🚶🏼‍♂️",text:"",type:1,order:1962,group:1,subgroup:27,version:4,gender:1,tone:2,shortCodes:["man_walking_tone2"]},{label:"man walking: medium skin tone",hexcode:"1F6B6-1F3FD-200D-2642-FE0F",emoji:"🚶🏽‍♂️",text:"",type:1,order:1964,group:1,subgroup:27,version:4,gender:1,tone:3,shortCodes:["man_walking_tone3"]},{label:"man walking: medium-dark skin tone",hexcode:"1F6B6-1F3FE-200D-2642-FE0F",emoji:"🚶🏾‍♂️",text:"",type:1,order:1966,group:1,subgroup:27,version:4,gender:1,tone:4,shortCodes:["man_walking_tone4"]},{label:"man walking: dark skin tone",hexcode:"1F6B6-1F3FF-200D-2642-FE0F",emoji:"🚶🏿‍♂️",text:"",type:1,order:1968,group:1,subgroup:27,version:4,gender:1,tone:5,shortCodes:["man_walking_tone5"]}],shortCodes:["man_walking"]},{label:"woman walking",hexcode:"1F6B6-200D-2640-FE0F",tags:["amble","gait","hike","man","pace","pedestrian","stride","stroll","walk","walking","woman"],emoji:"🚶‍♀️",text:"",type:1,order:1970,group:1,subgroup:27,version:4,gender:0,skins:[{label:"woman walking: light skin tone",hexcode:"1F6B6-1F3FB-200D-2640-FE0F",emoji:"🚶🏻‍♀️",text:"",type:1,order:1972,group:1,subgroup:27,version:4,gender:0,tone:1,shortCodes:["woman_walking_tone1"]},{label:"woman walking: medium-light skin tone",hexcode:"1F6B6-1F3FC-200D-2640-FE0F",emoji:"🚶🏼‍♀️",text:"",type:1,order:1974,group:1,subgroup:27,version:4,gender:0,tone:2,shortCodes:["woman_walking_tone2"]},{label:"woman walking: medium skin tone",hexcode:"1F6B6-1F3FD-200D-2640-FE0F",emoji:"🚶🏽‍♀️",text:"",type:1,order:1976,group:1,subgroup:27,version:4,gender:0,tone:3,shortCodes:["woman_walking_tone3"]},{label:"woman walking: medium-dark skin tone",hexcode:"1F6B6-1F3FE-200D-2640-FE0F",emoji:"🚶🏾‍♀️",text:"",type:1,order:1978,group:1,subgroup:27,version:4,gender:0,tone:4,shortCodes:["woman_walking_tone4"]},{label:"woman walking: dark skin tone",hexcode:"1F6B6-1F3FF-200D-2640-FE0F",emoji:"🚶🏿‍♀️",text:"",type:1,order:1980,group:1,subgroup:27,version:4,gender:0,tone:5,shortCodes:["woman_walking_tone5"]}],shortCodes:["woman_walking"]},{label:"person walking: facing right",hexcode:"1F6B6-200D-27A1-FE0F",tags:["amble","facing","gait","hike","man","pace","pedestrian","person","right","stride","stroll","walk","walking"],emoji:"🚶‍➡️",text:"",type:1,order:1982,group:1,subgroup:27,version:15.1,skins:[{label:"person walking: light skin tone, facing right",hexcode:"1F6B6-1F3FB-200D-27A1-FE0F",emoji:"🚶🏻‍➡️",text:"",type:1,order:1984,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["person_walking_right_tone1"]},{label:"person walking: medium-light skin tone, facing right",hexcode:"1F6B6-1F3FC-200D-27A1-FE0F",emoji:"🚶🏼‍➡️",text:"",type:1,order:1986,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["person_walking_right_tone2"]},{label:"person walking: medium skin tone, facing right",hexcode:"1F6B6-1F3FD-200D-27A1-FE0F",emoji:"🚶🏽‍➡️",text:"",type:1,order:1988,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["person_walking_right_tone3"]},{label:"person walking: medium-dark skin tone, facing right",hexcode:"1F6B6-1F3FE-200D-27A1-FE0F",emoji:"🚶🏾‍➡️",text:"",type:1,order:1990,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["person_walking_right_tone4"]},{label:"person walking: dark skin tone, facing right",hexcode:"1F6B6-1F3FF-200D-27A1-FE0F",emoji:"🚶🏿‍➡️",text:"",type:1,order:1992,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["person_walking_right_tone5"]}],shortCodes:["person_walking_right"]},{label:"woman walking: facing right",hexcode:"1F6B6-200D-2640-FE0F-200D-27A1-FE0F",tags:["amble","facing","gait","hike","man","pace","pedestrian","right","stride","stroll","walk","walking","woman"],emoji:"🚶‍♀️‍➡️",text:"",type:1,order:1994,group:1,subgroup:27,version:15.1,gender:0,skins:[{label:"woman walking: light skin tone, facing right",hexcode:"1F6B6-1F3FB-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🚶🏻‍♀️‍➡️",text:"",type:1,order:1998,group:1,subgroup:27,version:15.1,gender:0,tone:1,shortCodes:["woman_walking_right_tone1"]},{label:"woman walking: medium-light skin tone, facing right",hexcode:"1F6B6-1F3FC-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🚶🏼‍♀️‍➡️",text:"",type:1,order:2002,group:1,subgroup:27,version:15.1,gender:0,tone:2,shortCodes:["woman_walking_right_tone2"]},{label:"woman walking: medium skin tone, facing right",hexcode:"1F6B6-1F3FD-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🚶🏽‍♀️‍➡️",text:"",type:1,order:2006,group:1,subgroup:27,version:15.1,gender:0,tone:3,shortCodes:["woman_walking_right_tone3"]},{label:"woman walking: medium-dark skin tone, facing right",hexcode:"1F6B6-1F3FE-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🚶🏾‍♀️‍➡️",text:"",type:1,order:2010,group:1,subgroup:27,version:15.1,gender:0,tone:4,shortCodes:["woman_walking_right_tone4"]},{label:"woman walking: dark skin tone, facing right",hexcode:"1F6B6-1F3FF-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🚶🏿‍♀️‍➡️",text:"",type:1,order:2014,group:1,subgroup:27,version:15.1,gender:0,tone:5,shortCodes:["woman_walking_right_tone5"]}],shortCodes:["woman_walking_right"]},{label:"man walking: facing right",hexcode:"1F6B6-200D-2642-FE0F-200D-27A1-FE0F",tags:["amble","facing","gait","hike","man","pace","pedestrian","right","stride","stroll","walk","walking"],emoji:"🚶‍♂️‍➡️",text:"",type:1,order:2018,group:1,subgroup:27,version:15.1,gender:1,skins:[{label:"man walking: light skin tone, facing right",hexcode:"1F6B6-1F3FB-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🚶🏻‍♂️‍➡️",text:"",type:1,order:2022,group:1,subgroup:27,version:15.1,gender:1,tone:1,shortCodes:["man_walking_right_tone1"]},{label:"man walking: medium-light skin tone, facing right",hexcode:"1F6B6-1F3FC-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🚶🏼‍♂️‍➡️",text:"",type:1,order:2026,group:1,subgroup:27,version:15.1,gender:1,tone:2,shortCodes:["man_walking_right_tone2"]},{label:"man walking: medium skin tone, facing right",hexcode:"1F6B6-1F3FD-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🚶🏽‍♂️‍➡️",text:"",type:1,order:2030,group:1,subgroup:27,version:15.1,gender:1,tone:3,shortCodes:["man_walking_right_tone3"]},{label:"man walking: medium-dark skin tone, facing right",hexcode:"1F6B6-1F3FE-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🚶🏾‍♂️‍➡️",text:"",type:1,order:2034,group:1,subgroup:27,version:15.1,gender:1,tone:4,shortCodes:["man_walking_right_tone4"]},{label:"man walking: dark skin tone, facing right",hexcode:"1F6B6-1F3FF-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🚶🏿‍♂️‍➡️",text:"",type:1,order:2038,group:1,subgroup:27,version:15.1,gender:1,tone:5,shortCodes:["man_walking_right_tone5"]}],shortCodes:["man_walking_right"]},{label:"person standing",hexcode:"1F9CD",tags:["person","stand","standing"],emoji:"🧍",text:"",type:1,order:2042,group:1,subgroup:27,version:12,skins:[{label:"person standing: light skin tone",hexcode:"1F9CD-1F3FB",emoji:"🧍🏻",text:"",type:1,order:2043,group:1,subgroup:27,version:12,tone:1,shortCodes:["person_standing_tone1","standing_tone1"]},{label:"person standing: medium-light skin tone",hexcode:"1F9CD-1F3FC",emoji:"🧍🏼",text:"",type:1,order:2044,group:1,subgroup:27,version:12,tone:2,shortCodes:["person_standing_tone2","standing_tone2"]},{label:"person standing: medium skin tone",hexcode:"1F9CD-1F3FD",emoji:"🧍🏽",text:"",type:1,order:2045,group:1,subgroup:27,version:12,tone:3,shortCodes:["person_standing_tone3","standing_tone3"]},{label:"person standing: medium-dark skin tone",hexcode:"1F9CD-1F3FE",emoji:"🧍🏾",text:"",type:1,order:2046,group:1,subgroup:27,version:12,tone:4,shortCodes:["person_standing_tone4","standing_tone4"]},{label:"person standing: dark skin tone",hexcode:"1F9CD-1F3FF",emoji:"🧍🏿",text:"",type:1,order:2047,group:1,subgroup:27,version:12,tone:5,shortCodes:["person_standing_tone5","standing_tone5"]}],shortCodes:["person_standing","standing"]},{label:"man standing",hexcode:"1F9CD-200D-2642-FE0F",tags:["man","stand","standing"],emoji:"🧍‍♂️",text:"",type:1,order:2048,group:1,subgroup:27,version:12,gender:1,skins:[{label:"man standing: light skin tone",hexcode:"1F9CD-1F3FB-200D-2642-FE0F",emoji:"🧍🏻‍♂️",text:"",type:1,order:2050,group:1,subgroup:27,version:12,gender:1,tone:1,shortCodes:["man_standing_tone1"]},{label:"man standing: medium-light skin tone",hexcode:"1F9CD-1F3FC-200D-2642-FE0F",emoji:"🧍🏼‍♂️",text:"",type:1,order:2052,group:1,subgroup:27,version:12,gender:1,tone:2,shortCodes:["man_standing_tone2"]},{label:"man standing: medium skin tone",hexcode:"1F9CD-1F3FD-200D-2642-FE0F",emoji:"🧍🏽‍♂️",text:"",type:1,order:2054,group:1,subgroup:27,version:12,gender:1,tone:3,shortCodes:["man_standing_tone3"]},{label:"man standing: medium-dark skin tone",hexcode:"1F9CD-1F3FE-200D-2642-FE0F",emoji:"🧍🏾‍♂️",text:"",type:1,order:2056,group:1,subgroup:27,version:12,gender:1,tone:4,shortCodes:["man_standing_tone4"]},{label:"man standing: dark skin tone",hexcode:"1F9CD-1F3FF-200D-2642-FE0F",emoji:"🧍🏿‍♂️",text:"",type:1,order:2058,group:1,subgroup:27,version:12,gender:1,tone:5,shortCodes:["man_standing_tone5"]}],shortCodes:["man_standing"]},{label:"woman standing",hexcode:"1F9CD-200D-2640-FE0F",tags:["stand","standing","woman"],emoji:"🧍‍♀️",text:"",type:1,order:2060,group:1,subgroup:27,version:12,gender:0,skins:[{label:"woman standing: light skin tone",hexcode:"1F9CD-1F3FB-200D-2640-FE0F",emoji:"🧍🏻‍♀️",text:"",type:1,order:2062,group:1,subgroup:27,version:12,gender:0,tone:1,shortCodes:["woman_standing_tone1"]},{label:"woman standing: medium-light skin tone",hexcode:"1F9CD-1F3FC-200D-2640-FE0F",emoji:"🧍🏼‍♀️",text:"",type:1,order:2064,group:1,subgroup:27,version:12,gender:0,tone:2,shortCodes:["woman_standing_tone2"]},{label:"woman standing: medium skin tone",hexcode:"1F9CD-1F3FD-200D-2640-FE0F",emoji:"🧍🏽‍♀️",text:"",type:1,order:2066,group:1,subgroup:27,version:12,gender:0,tone:3,shortCodes:["woman_standing_tone3"]},{label:"woman standing: medium-dark skin tone",hexcode:"1F9CD-1F3FE-200D-2640-FE0F",emoji:"🧍🏾‍♀️",text:"",type:1,order:2068,group:1,subgroup:27,version:12,gender:0,tone:4,shortCodes:["woman_standing_tone4"]},{label:"woman standing: dark skin tone",hexcode:"1F9CD-1F3FF-200D-2640-FE0F",emoji:"🧍🏿‍♀️",text:"",type:1,order:2070,group:1,subgroup:27,version:12,gender:0,tone:5,shortCodes:["woman_standing_tone5"]}],shortCodes:["woman_standing"]},{label:"person kneeling",hexcode:"1F9CE",tags:["kneel","kneeling","knees","person"],emoji:"🧎",text:"",type:1,order:2072,group:1,subgroup:27,version:12,skins:[{label:"person kneeling: light skin tone",hexcode:"1F9CE-1F3FB",emoji:"🧎🏻",text:"",type:1,order:2073,group:1,subgroup:27,version:12,tone:1,shortCodes:["kneeling_tone1","person_kneeling_tone1"]},{label:"person kneeling: medium-light skin tone",hexcode:"1F9CE-1F3FC",emoji:"🧎🏼",text:"",type:1,order:2074,group:1,subgroup:27,version:12,tone:2,shortCodes:["kneeling_tone2","person_kneeling_tone2"]},{label:"person kneeling: medium skin tone",hexcode:"1F9CE-1F3FD",emoji:"🧎🏽",text:"",type:1,order:2075,group:1,subgroup:27,version:12,tone:3,shortCodes:["kneeling_tone3","person_kneeling_tone3"]},{label:"person kneeling: medium-dark skin tone",hexcode:"1F9CE-1F3FE",emoji:"🧎🏾",text:"",type:1,order:2076,group:1,subgroup:27,version:12,tone:4,shortCodes:["kneeling_tone4","person_kneeling_tone4"]},{label:"person kneeling: dark skin tone",hexcode:"1F9CE-1F3FF",emoji:"🧎🏿",text:"",type:1,order:2077,group:1,subgroup:27,version:12,tone:5,shortCodes:["kneeling_tone5","person_kneeling_tone5"]}],shortCodes:["kneeling","person_kneeling"]},{label:"man kneeling",hexcode:"1F9CE-200D-2642-FE0F",tags:["kneel","kneeling","knees","man"],emoji:"🧎‍♂️",text:"",type:1,order:2078,group:1,subgroup:27,version:12,gender:1,skins:[{label:"man kneeling: light skin tone",hexcode:"1F9CE-1F3FB-200D-2642-FE0F",emoji:"🧎🏻‍♂️",text:"",type:1,order:2080,group:1,subgroup:27,version:12,gender:1,tone:1,shortCodes:["man_kneeling_tone1"]},{label:"man kneeling: medium-light skin tone",hexcode:"1F9CE-1F3FC-200D-2642-FE0F",emoji:"🧎🏼‍♂️",text:"",type:1,order:2082,group:1,subgroup:27,version:12,gender:1,tone:2,shortCodes:["man_kneeling_tone2"]},{label:"man kneeling: medium skin tone",hexcode:"1F9CE-1F3FD-200D-2642-FE0F",emoji:"🧎🏽‍♂️",text:"",type:1,order:2084,group:1,subgroup:27,version:12,gender:1,tone:3,shortCodes:["man_kneeling_tone3"]},{label:"man kneeling: medium-dark skin tone",hexcode:"1F9CE-1F3FE-200D-2642-FE0F",emoji:"🧎🏾‍♂️",text:"",type:1,order:2086,group:1,subgroup:27,version:12,gender:1,tone:4,shortCodes:["man_kneeling_tone4"]},{label:"man kneeling: dark skin tone",hexcode:"1F9CE-1F3FF-200D-2642-FE0F",emoji:"🧎🏿‍♂️",text:"",type:1,order:2088,group:1,subgroup:27,version:12,gender:1,tone:5,shortCodes:["man_kneeling_tone5"]}],shortCodes:["man_kneeling"]},{label:"woman kneeling",hexcode:"1F9CE-200D-2640-FE0F",tags:["kneel","kneeling","knees","woman"],emoji:"🧎‍♀️",text:"",type:1,order:2090,group:1,subgroup:27,version:12,gender:0,skins:[{label:"woman kneeling: light skin tone",hexcode:"1F9CE-1F3FB-200D-2640-FE0F",emoji:"🧎🏻‍♀️",text:"",type:1,order:2092,group:1,subgroup:27,version:12,gender:0,tone:1,shortCodes:["woman_kneeling_tone1"]},{label:"woman kneeling: medium-light skin tone",hexcode:"1F9CE-1F3FC-200D-2640-FE0F",emoji:"🧎🏼‍♀️",text:"",type:1,order:2094,group:1,subgroup:27,version:12,gender:0,tone:2,shortCodes:["woman_kneeling_tone2"]},{label:"woman kneeling: medium skin tone",hexcode:"1F9CE-1F3FD-200D-2640-FE0F",emoji:"🧎🏽‍♀️",text:"",type:1,order:2096,group:1,subgroup:27,version:12,gender:0,tone:3,shortCodes:["woman_kneeling_tone3"]},{label:"woman kneeling: medium-dark skin tone",hexcode:"1F9CE-1F3FE-200D-2640-FE0F",emoji:"🧎🏾‍♀️",text:"",type:1,order:2098,group:1,subgroup:27,version:12,gender:0,tone:4,shortCodes:["woman_kneeling_tone4"]},{label:"woman kneeling: dark skin tone",hexcode:"1F9CE-1F3FF-200D-2640-FE0F",emoji:"🧎🏿‍♀️",text:"",type:1,order:2100,group:1,subgroup:27,version:12,gender:0,tone:5,shortCodes:["woman_kneeling_tone5"]}],shortCodes:["woman_kneeling"]},{label:"person kneeling: facing right",hexcode:"1F9CE-200D-27A1-FE0F",tags:["facing","kneel","kneeling","knees","person","right"],emoji:"🧎‍➡️",text:"",type:1,order:2102,group:1,subgroup:27,version:15.1,skins:[{label:"person kneeling: light skin tone, facing right",hexcode:"1F9CE-1F3FB-200D-27A1-FE0F",emoji:"🧎🏻‍➡️",text:"",type:1,order:2104,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["person_kneeling_right_tone1"]},{label:"person kneeling: medium-light skin tone, facing right",hexcode:"1F9CE-1F3FC-200D-27A1-FE0F",emoji:"🧎🏼‍➡️",text:"",type:1,order:2106,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["person_kneeling_right_tone2"]},{label:"person kneeling: medium skin tone, facing right",hexcode:"1F9CE-1F3FD-200D-27A1-FE0F",emoji:"🧎🏽‍➡️",text:"",type:1,order:2108,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["person_kneeling_right_tone3"]},{label:"person kneeling: medium-dark skin tone, facing right",hexcode:"1F9CE-1F3FE-200D-27A1-FE0F",emoji:"🧎🏾‍➡️",text:"",type:1,order:2110,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["person_kneeling_right_tone4"]},{label:"person kneeling: dark skin tone, facing right",hexcode:"1F9CE-1F3FF-200D-27A1-FE0F",emoji:"🧎🏿‍➡️",text:"",type:1,order:2112,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["person_kneeling_right_tone5"]}],shortCodes:["person_kneeling_right"]},{label:"woman kneeling: facing right",hexcode:"1F9CE-200D-2640-FE0F-200D-27A1-FE0F",tags:["facing","kneel","kneeling","knees","right","woman"],emoji:"🧎‍♀️‍➡️",text:"",type:1,order:2114,group:1,subgroup:27,version:15.1,gender:0,skins:[{label:"woman kneeling: light skin tone, facing right",hexcode:"1F9CE-1F3FB-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🧎🏻‍♀️‍➡️",text:"",type:1,order:2118,group:1,subgroup:27,version:15.1,gender:0,tone:1,shortCodes:["woman_kneeling_right_tone1"]},{label:"woman kneeling: medium-light skin tone, facing right",hexcode:"1F9CE-1F3FC-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🧎🏼‍♀️‍➡️",text:"",type:1,order:2122,group:1,subgroup:27,version:15.1,gender:0,tone:2,shortCodes:["woman_kneeling_right_tone2"]},{label:"woman kneeling: medium skin tone, facing right",hexcode:"1F9CE-1F3FD-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🧎🏽‍♀️‍➡️",text:"",type:1,order:2126,group:1,subgroup:27,version:15.1,gender:0,tone:3,shortCodes:["woman_kneeling_right_tone3"]},{label:"woman kneeling: medium-dark skin tone, facing right",hexcode:"1F9CE-1F3FE-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🧎🏾‍♀️‍➡️",text:"",type:1,order:2130,group:1,subgroup:27,version:15.1,gender:0,tone:4,shortCodes:["woman_kneeling_right_tone4"]},{label:"woman kneeling: dark skin tone, facing right",hexcode:"1F9CE-1F3FF-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🧎🏿‍♀️‍➡️",text:"",type:1,order:2134,group:1,subgroup:27,version:15.1,gender:0,tone:5,shortCodes:["woman_kneeling_right_tone5"]}],shortCodes:["woman_kneeling_right"]},{label:"man kneeling: facing right",hexcode:"1F9CE-200D-2642-FE0F-200D-27A1-FE0F",tags:["facing","kneel","kneeling","knees","man","right"],emoji:"🧎‍♂️‍➡️",text:"",type:1,order:2138,group:1,subgroup:27,version:15.1,gender:1,skins:[{label:"man kneeling: light skin tone, facing right",hexcode:"1F9CE-1F3FB-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🧎🏻‍♂️‍➡️",text:"",type:1,order:2142,group:1,subgroup:27,version:15.1,gender:1,tone:1,shortCodes:["man_kneeling_right_tone1"]},{label:"man kneeling: medium-light skin tone, facing right",hexcode:"1F9CE-1F3FC-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🧎🏼‍♂️‍➡️",text:"",type:1,order:2146,group:1,subgroup:27,version:15.1,gender:1,tone:2,shortCodes:["man_kneeling_right_tone2"]},{label:"man kneeling: medium skin tone, facing right",hexcode:"1F9CE-1F3FD-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🧎🏽‍♂️‍➡️",text:"",type:1,order:2150,group:1,subgroup:27,version:15.1,gender:1,tone:3,shortCodes:["man_kneeling_right_tone3"]},{label:"man kneeling: medium-dark skin tone, facing right",hexcode:"1F9CE-1F3FE-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🧎🏾‍♂️‍➡️",text:"",type:1,order:2154,group:1,subgroup:27,version:15.1,gender:1,tone:4,shortCodes:["man_kneeling_right_tone4"]},{label:"man kneeling: dark skin tone, facing right",hexcode:"1F9CE-1F3FF-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🧎🏿‍♂️‍➡️",text:"",type:1,order:2158,group:1,subgroup:27,version:15.1,gender:1,tone:5,shortCodes:["man_kneeling_right_tone5"]}],shortCodes:["man_kneeling_right"]},{label:"person with white cane",hexcode:"1F9D1-200D-1F9AF",tags:["accessibility","blind","cane","person","probing","white"],emoji:"🧑‍🦯",text:"",type:1,order:2162,group:1,subgroup:27,version:12.1,skins:[{label:"person with white cane: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F9AF",emoji:"🧑🏻‍🦯",text:"",type:1,order:2163,group:1,subgroup:27,version:12.1,tone:1,shortCodes:["person_with_probing_cane_tone1","person_with_white_cane_tone1"]},{label:"person with white cane: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F9AF",emoji:"🧑🏼‍🦯",text:"",type:1,order:2164,group:1,subgroup:27,version:12.1,tone:2,shortCodes:["person_with_probing_cane_tone2","person_with_white_cane_tone2"]},{label:"person with white cane: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F9AF",emoji:"🧑🏽‍🦯",text:"",type:1,order:2165,group:1,subgroup:27,version:12.1,tone:3,shortCodes:["person_with_probing_cane_tone3","person_with_white_cane_tone3"]},{label:"person with white cane: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F9AF",emoji:"🧑🏾‍🦯",text:"",type:1,order:2166,group:1,subgroup:27,version:12.1,tone:4,shortCodes:["person_with_probing_cane_tone4","person_with_white_cane_tone4"]},{label:"person with white cane: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F9AF",emoji:"🧑🏿‍🦯",text:"",type:1,order:2167,group:1,subgroup:27,version:12.1,tone:5,shortCodes:["person_with_probing_cane_tone5","person_with_white_cane_tone5"]}],shortCodes:["person_with_probing_cane","person_with_white_cane"]},{label:"person with white cane: facing right",hexcode:"1F9D1-200D-1F9AF-200D-27A1-FE0F",tags:["accessibility","blind","cane","facing","person","probing","right","white"],emoji:"🧑‍🦯‍➡️",text:"",type:1,order:2168,group:1,subgroup:27,version:15.1,skins:[{label:"person with white cane: light skin tone, facing right",hexcode:"1F9D1-1F3FB-200D-1F9AF-200D-27A1-FE0F",emoji:"🧑🏻‍🦯‍➡️",text:"",type:1,order:2170,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["person_with_white_cane_right_tone1"]},{label:"person with white cane: medium-light skin tone, facing right",hexcode:"1F9D1-1F3FC-200D-1F9AF-200D-27A1-FE0F",emoji:"🧑🏼‍🦯‍➡️",text:"",type:1,order:2172,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["person_with_white_cane_right_tone2"]},{label:"person with white cane: medium skin tone, facing right",hexcode:"1F9D1-1F3FD-200D-1F9AF-200D-27A1-FE0F",emoji:"🧑🏽‍🦯‍➡️",text:"",type:1,order:2174,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["person_with_white_cane_right_tone3"]},{label:"person with white cane: medium-dark skin tone, facing right",hexcode:"1F9D1-1F3FE-200D-1F9AF-200D-27A1-FE0F",emoji:"🧑🏾‍🦯‍➡️",text:"",type:1,order:2176,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["person_with_white_cane_right_tone4"]},{label:"person with white cane: dark skin tone, facing right",hexcode:"1F9D1-1F3FF-200D-1F9AF-200D-27A1-FE0F",emoji:"🧑🏿‍🦯‍➡️",text:"",type:1,order:2178,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["person_with_white_cane_right_tone5"]}],shortCodes:["person_with_white_cane_right"]},{label:"man with white cane",hexcode:"1F468-200D-1F9AF",tags:["accessibility","blind","cane","man","probing","white"],emoji:"👨‍🦯",text:"",type:1,order:2180,group:1,subgroup:27,version:12,skins:[{label:"man with white cane: light skin tone",hexcode:"1F468-1F3FB-200D-1F9AF",emoji:"👨🏻‍🦯",text:"",type:1,order:2181,group:1,subgroup:27,version:12,tone:1,shortCodes:["man_with_probing_cane_tone1","man_with_white_cane_tone1"]},{label:"man with white cane: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F9AF",emoji:"👨🏼‍🦯",text:"",type:1,order:2182,group:1,subgroup:27,version:12,tone:2,shortCodes:["man_with_probing_cane_tone2","man_with_white_cane_tone2"]},{label:"man with white cane: medium skin tone",hexcode:"1F468-1F3FD-200D-1F9AF",emoji:"👨🏽‍🦯",text:"",type:1,order:2183,group:1,subgroup:27,version:12,tone:3,shortCodes:["man_with_probing_cane_tone3","man_with_white_cane_tone3"]},{label:"man with white cane: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F9AF",emoji:"👨🏾‍🦯",text:"",type:1,order:2184,group:1,subgroup:27,version:12,tone:4,shortCodes:["man_with_probing_cane_tone4","man_with_white_cane_tone4"]},{label:"man with white cane: dark skin tone",hexcode:"1F468-1F3FF-200D-1F9AF",emoji:"👨🏿‍🦯",text:"",type:1,order:2185,group:1,subgroup:27,version:12,tone:5,shortCodes:["man_with_probing_cane_tone5","man_with_white_cane_tone5"]}],shortCodes:["man_with_probing_cane","man_with_white_cane"]},{label:"man with white cane: facing right",hexcode:"1F468-200D-1F9AF-200D-27A1-FE0F",tags:["accessibility","blind","cane","facing","man","probing","right","white"],emoji:"👨‍🦯‍➡️",text:"",type:1,order:2186,group:1,subgroup:27,version:15.1,skins:[{label:"man with white cane: light skin tone, facing right",hexcode:"1F468-1F3FB-200D-1F9AF-200D-27A1-FE0F",emoji:"👨🏻‍🦯‍➡️",text:"",type:1,order:2188,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["man_with_white_cane_right_tone1"]},{label:"man with white cane: medium-light skin tone, facing right",hexcode:"1F468-1F3FC-200D-1F9AF-200D-27A1-FE0F",emoji:"👨🏼‍🦯‍➡️",text:"",type:1,order:2190,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["man_with_white_cane_right_tone2"]},{label:"man with white cane: medium skin tone, facing right",hexcode:"1F468-1F3FD-200D-1F9AF-200D-27A1-FE0F",emoji:"👨🏽‍🦯‍➡️",text:"",type:1,order:2192,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["man_with_white_cane_right_tone3"]},{label:"man with white cane: medium-dark skin tone, facing right",hexcode:"1F468-1F3FE-200D-1F9AF-200D-27A1-FE0F",emoji:"👨🏾‍🦯‍➡️",text:"",type:1,order:2194,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["man_with_white_cane_right_tone4"]},{label:"man with white cane: dark skin tone, facing right",hexcode:"1F468-1F3FF-200D-1F9AF-200D-27A1-FE0F",emoji:"👨🏿‍🦯‍➡️",text:"",type:1,order:2196,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["man_with_white_cane_right_tone5"]}],shortCodes:["man_with_white_cane_right"]},{label:"woman with white cane",hexcode:"1F469-200D-1F9AF",tags:["accessibility","blind","cane","probing","white","woman"],emoji:"👩‍🦯",text:"",type:1,order:2198,group:1,subgroup:27,version:12,skins:[{label:"woman with white cane: light skin tone",hexcode:"1F469-1F3FB-200D-1F9AF",emoji:"👩🏻‍🦯",text:"",type:1,order:2199,group:1,subgroup:27,version:12,tone:1,shortCodes:["woman_with_probing_cane_tone1","woman_with_white_cane_tone1"]},{label:"woman with white cane: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F9AF",emoji:"👩🏼‍🦯",text:"",type:1,order:2200,group:1,subgroup:27,version:12,tone:2,shortCodes:["woman_with_probing_cane_tone2","woman_with_white_cane_tone2"]},{label:"woman with white cane: medium skin tone",hexcode:"1F469-1F3FD-200D-1F9AF",emoji:"👩🏽‍🦯",text:"",type:1,order:2201,group:1,subgroup:27,version:12,tone:3,shortCodes:["woman_with_probing_cane_tone3","woman_with_white_cane_tone3"]},{label:"woman with white cane: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F9AF",emoji:"👩🏾‍🦯",text:"",type:1,order:2202,group:1,subgroup:27,version:12,tone:4,shortCodes:["woman_with_probing_cane_tone4","woman_with_white_cane_tone4"]},{label:"woman with white cane: dark skin tone",hexcode:"1F469-1F3FF-200D-1F9AF",emoji:"👩🏿‍🦯",text:"",type:1,order:2203,group:1,subgroup:27,version:12,tone:5,shortCodes:["woman_with_probing_cane_tone5","woman_with_white_cane_tone5"]}],shortCodes:["woman_with_probing_cane","woman_with_white_cane"]},{label:"woman with white cane: facing right",hexcode:"1F469-200D-1F9AF-200D-27A1-FE0F",tags:["accessibility","blind","cane","facing","probing","right","white","woman"],emoji:"👩‍🦯‍➡️",text:"",type:1,order:2204,group:1,subgroup:27,version:15.1,skins:[{label:"woman with white cane: light skin tone, facing right",hexcode:"1F469-1F3FB-200D-1F9AF-200D-27A1-FE0F",emoji:"👩🏻‍🦯‍➡️",text:"",type:1,order:2206,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["woman_with_white_cane_right_tone1"]},{label:"woman with white cane: medium-light skin tone, facing right",hexcode:"1F469-1F3FC-200D-1F9AF-200D-27A1-FE0F",emoji:"👩🏼‍🦯‍➡️",text:"",type:1,order:2208,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["woman_with_white_cane_right_tone2"]},{label:"woman with white cane: medium skin tone, facing right",hexcode:"1F469-1F3FD-200D-1F9AF-200D-27A1-FE0F",emoji:"👩🏽‍🦯‍➡️",text:"",type:1,order:2210,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["woman_with_white_cane_right_tone3"]},{label:"woman with white cane: medium-dark skin tone, facing right",hexcode:"1F469-1F3FE-200D-1F9AF-200D-27A1-FE0F",emoji:"👩🏾‍🦯‍➡️",text:"",type:1,order:2212,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["woman_with_white_cane_right_tone4"]},{label:"woman with white cane: dark skin tone, facing right",hexcode:"1F469-1F3FF-200D-1F9AF-200D-27A1-FE0F",emoji:"👩🏿‍🦯‍➡️",text:"",type:1,order:2214,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["woman_with_white_cane_right_tone5"]}],shortCodes:["woman_with_white_cane_right"]},{label:"person in motorized wheelchair",hexcode:"1F9D1-200D-1F9BC",tags:["accessibility","motorized","person","wheelchair"],emoji:"🧑‍🦼",text:"",type:1,order:2216,group:1,subgroup:27,version:12.1,skins:[{label:"person in motorized wheelchair: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F9BC",emoji:"🧑🏻‍🦼",text:"",type:1,order:2217,group:1,subgroup:27,version:12.1,tone:1,shortCodes:["person_in_motorized_wheelchair_tone1"]},{label:"person in motorized wheelchair: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F9BC",emoji:"🧑🏼‍🦼",text:"",type:1,order:2218,group:1,subgroup:27,version:12.1,tone:2,shortCodes:["person_in_motorized_wheelchair_tone2"]},{label:"person in motorized wheelchair: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F9BC",emoji:"🧑🏽‍🦼",text:"",type:1,order:2219,group:1,subgroup:27,version:12.1,tone:3,shortCodes:["person_in_motorized_wheelchair_tone3"]},{label:"person in motorized wheelchair: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F9BC",emoji:"🧑🏾‍🦼",text:"",type:1,order:2220,group:1,subgroup:27,version:12.1,tone:4,shortCodes:["person_in_motorized_wheelchair_tone4"]},{label:"person in motorized wheelchair: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F9BC",emoji:"🧑🏿‍🦼",text:"",type:1,order:2221,group:1,subgroup:27,version:12.1,tone:5,shortCodes:["person_in_motorized_wheelchair_tone5"]}],shortCodes:["person_in_motorized_wheelchair"]},{label:"person in motorized wheelchair: facing right",hexcode:"1F9D1-200D-1F9BC-200D-27A1-FE0F",tags:["accessibility","facing","motorized","person","right","wheelchair"],emoji:"🧑‍🦼‍➡️",text:"",type:1,order:2222,group:1,subgroup:27,version:15.1,skins:[{label:"person in motorized wheelchair: light skin tone, facing right",hexcode:"1F9D1-1F3FB-200D-1F9BC-200D-27A1-FE0F",emoji:"🧑🏻‍🦼‍➡️",text:"",type:1,order:2224,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["person_in_motorized_wheelchair_right_tone1"]},{label:"person in motorized wheelchair: medium-light skin tone, facing right",hexcode:"1F9D1-1F3FC-200D-1F9BC-200D-27A1-FE0F",emoji:"🧑🏼‍🦼‍➡️",text:"",type:1,order:2226,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["person_in_motorized_wheelchair_right_tone2"]},{label:"person in motorized wheelchair: medium skin tone, facing right",hexcode:"1F9D1-1F3FD-200D-1F9BC-200D-27A1-FE0F",emoji:"🧑🏽‍🦼‍➡️",text:"",type:1,order:2228,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["person_in_motorized_wheelchair_right_tone3"]},{label:"person in motorized wheelchair: medium-dark skin tone, facing right",hexcode:"1F9D1-1F3FE-200D-1F9BC-200D-27A1-FE0F",emoji:"🧑🏾‍🦼‍➡️",text:"",type:1,order:2230,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["person_in_motorized_wheelchair_right_tone4"]},{label:"person in motorized wheelchair: dark skin tone, facing right",hexcode:"1F9D1-1F3FF-200D-1F9BC-200D-27A1-FE0F",emoji:"🧑🏿‍🦼‍➡️",text:"",type:1,order:2232,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["person_in_motorized_wheelchair_right_tone5"]}],shortCodes:["person_in_motorized_wheelchair_right"]},{label:"man in motorized wheelchair",hexcode:"1F468-200D-1F9BC",tags:["accessibility","man","motorized","wheelchair"],emoji:"👨‍🦼",text:"",type:1,order:2234,group:1,subgroup:27,version:12,skins:[{label:"man in motorized wheelchair: light skin tone",hexcode:"1F468-1F3FB-200D-1F9BC",emoji:"👨🏻‍🦼",text:"",type:1,order:2235,group:1,subgroup:27,version:12,tone:1,shortCodes:["man_in_motorized_wheelchair_tone1"]},{label:"man in motorized wheelchair: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F9BC",emoji:"👨🏼‍🦼",text:"",type:1,order:2236,group:1,subgroup:27,version:12,tone:2,shortCodes:["man_in_motorized_wheelchair_tone2"]},{label:"man in motorized wheelchair: medium skin tone",hexcode:"1F468-1F3FD-200D-1F9BC",emoji:"👨🏽‍🦼",text:"",type:1,order:2237,group:1,subgroup:27,version:12,tone:3,shortCodes:["man_in_motorized_wheelchair_tone3"]},{label:"man in motorized wheelchair: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F9BC",emoji:"👨🏾‍🦼",text:"",type:1,order:2238,group:1,subgroup:27,version:12,tone:4,shortCodes:["man_in_motorized_wheelchair_tone4"]},{label:"man in motorized wheelchair: dark skin tone",hexcode:"1F468-1F3FF-200D-1F9BC",emoji:"👨🏿‍🦼",text:"",type:1,order:2239,group:1,subgroup:27,version:12,tone:5,shortCodes:["man_in_motorized_wheelchair_tone5"]}],shortCodes:["man_in_motorized_wheelchair"]},{label:"man in motorized wheelchair: facing right",hexcode:"1F468-200D-1F9BC-200D-27A1-FE0F",tags:["accessibility","facing","man","motorized","right","wheelchair"],emoji:"👨‍🦼‍➡️",text:"",type:1,order:2240,group:1,subgroup:27,version:15.1,skins:[{label:"man in motorized wheelchair: light skin tone, facing right",hexcode:"1F468-1F3FB-200D-1F9BC-200D-27A1-FE0F",emoji:"👨🏻‍🦼‍➡️",text:"",type:1,order:2242,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["man_in_motorized_wheelchair_right_tone1"]},{label:"man in motorized wheelchair: medium-light skin tone, facing right",hexcode:"1F468-1F3FC-200D-1F9BC-200D-27A1-FE0F",emoji:"👨🏼‍🦼‍➡️",text:"",type:1,order:2244,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["man_in_motorized_wheelchair_right_tone2"]},{label:"man in motorized wheelchair: medium skin tone, facing right",hexcode:"1F468-1F3FD-200D-1F9BC-200D-27A1-FE0F",emoji:"👨🏽‍🦼‍➡️",text:"",type:1,order:2246,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["man_in_motorized_wheelchair_right_tone3"]},{label:"man in motorized wheelchair: medium-dark skin tone, facing right",hexcode:"1F468-1F3FE-200D-1F9BC-200D-27A1-FE0F",emoji:"👨🏾‍🦼‍➡️",text:"",type:1,order:2248,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["man_in_motorized_wheelchair_right_tone4"]},{label:"man in motorized wheelchair: dark skin tone, facing right",hexcode:"1F468-1F3FF-200D-1F9BC-200D-27A1-FE0F",emoji:"👨🏿‍🦼‍➡️",text:"",type:1,order:2250,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["man_in_motorized_wheelchair_right_tone5"]}],shortCodes:["man_in_motorized_wheelchair_right"]},{label:"woman in motorized wheelchair",hexcode:"1F469-200D-1F9BC",tags:["accessibility","motorized","wheelchair","woman"],emoji:"👩‍🦼",text:"",type:1,order:2252,group:1,subgroup:27,version:12,skins:[{label:"woman in motorized wheelchair: light skin tone",hexcode:"1F469-1F3FB-200D-1F9BC",emoji:"👩🏻‍🦼",text:"",type:1,order:2253,group:1,subgroup:27,version:12,tone:1,shortCodes:["woman_in_motorized_wheelchair_tone1"]},{label:"woman in motorized wheelchair: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F9BC",emoji:"👩🏼‍🦼",text:"",type:1,order:2254,group:1,subgroup:27,version:12,tone:2,shortCodes:["woman_in_motorized_wheelchair_tone2"]},{label:"woman in motorized wheelchair: medium skin tone",hexcode:"1F469-1F3FD-200D-1F9BC",emoji:"👩🏽‍🦼",text:"",type:1,order:2255,group:1,subgroup:27,version:12,tone:3,shortCodes:["woman_in_motorized_wheelchair_tone3"]},{label:"woman in motorized wheelchair: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F9BC",emoji:"👩🏾‍🦼",text:"",type:1,order:2256,group:1,subgroup:27,version:12,tone:4,shortCodes:["woman_in_motorized_wheelchair_tone4"]},{label:"woman in motorized wheelchair: dark skin tone",hexcode:"1F469-1F3FF-200D-1F9BC",emoji:"👩🏿‍🦼",text:"",type:1,order:2257,group:1,subgroup:27,version:12,tone:5,shortCodes:["woman_in_motorized_wheelchair_tone5"]}],shortCodes:["woman_in_motorized_wheelchair"]},{label:"woman in motorized wheelchair: facing right",hexcode:"1F469-200D-1F9BC-200D-27A1-FE0F",tags:["accessibility","facing","motorized","right","wheelchair","woman"],emoji:"👩‍🦼‍➡️",text:"",type:1,order:2258,group:1,subgroup:27,version:15.1,skins:[{label:"woman in motorized wheelchair: light skin tone, facing right",hexcode:"1F469-1F3FB-200D-1F9BC-200D-27A1-FE0F",emoji:"👩🏻‍🦼‍➡️",text:"",type:1,order:2260,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["woman_in_motorized_wheelchair_right_tone1"]},{label:"woman in motorized wheelchair: medium-light skin tone, facing right",hexcode:"1F469-1F3FC-200D-1F9BC-200D-27A1-FE0F",emoji:"👩🏼‍🦼‍➡️",text:"",type:1,order:2262,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["woman_in_motorized_wheelchair_right_tone2"]},{label:"woman in motorized wheelchair: medium skin tone, facing right",hexcode:"1F469-1F3FD-200D-1F9BC-200D-27A1-FE0F",emoji:"👩🏽‍🦼‍➡️",text:"",type:1,order:2264,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["woman_in_motorized_wheelchair_right_tone3"]},{label:"woman in motorized wheelchair: medium-dark skin tone, facing right",hexcode:"1F469-1F3FE-200D-1F9BC-200D-27A1-FE0F",emoji:"👩🏾‍🦼‍➡️",text:"",type:1,order:2266,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["woman_in_motorized_wheelchair_right_tone4"]},{label:"woman in motorized wheelchair: dark skin tone, facing right",hexcode:"1F469-1F3FF-200D-1F9BC-200D-27A1-FE0F",emoji:"👩🏿‍🦼‍➡️",text:"",type:1,order:2268,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["woman_in_motorized_wheelchair_right_tone5"]}],shortCodes:["woman_in_motorized_wheelchair_right"]},{label:"person in manual wheelchair",hexcode:"1F9D1-200D-1F9BD",tags:["accessibility","manual","person","wheelchair"],emoji:"🧑‍🦽",text:"",type:1,order:2270,group:1,subgroup:27,version:12.1,skins:[{label:"person in manual wheelchair: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F9BD",emoji:"🧑🏻‍🦽",text:"",type:1,order:2271,group:1,subgroup:27,version:12.1,tone:1,shortCodes:["person_in_manual_wheelchair_tone1"]},{label:"person in manual wheelchair: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F9BD",emoji:"🧑🏼‍🦽",text:"",type:1,order:2272,group:1,subgroup:27,version:12.1,tone:2,shortCodes:["person_in_manual_wheelchair_tone2"]},{label:"person in manual wheelchair: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F9BD",emoji:"🧑🏽‍🦽",text:"",type:1,order:2273,group:1,subgroup:27,version:12.1,tone:3,shortCodes:["person_in_manual_wheelchair_tone3"]},{label:"person in manual wheelchair: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F9BD",emoji:"🧑🏾‍🦽",text:"",type:1,order:2274,group:1,subgroup:27,version:12.1,tone:4,shortCodes:["person_in_manual_wheelchair_tone4"]},{label:"person in manual wheelchair: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F9BD",emoji:"🧑🏿‍🦽",text:"",type:1,order:2275,group:1,subgroup:27,version:12.1,tone:5,shortCodes:["person_in_manual_wheelchair_tone5"]}],shortCodes:["person_in_manual_wheelchair"]},{label:"person in manual wheelchair: facing right",hexcode:"1F9D1-200D-1F9BD-200D-27A1-FE0F",tags:["accessibility","facing","manual","person","right","wheelchair"],emoji:"🧑‍🦽‍➡️",text:"",type:1,order:2276,group:1,subgroup:27,version:15.1,skins:[{label:"person in manual wheelchair: light skin tone, facing right",hexcode:"1F9D1-1F3FB-200D-1F9BD-200D-27A1-FE0F",emoji:"🧑🏻‍🦽‍➡️",text:"",type:1,order:2278,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["person_in_manual_wheelchair_right_tone1"]},{label:"person in manual wheelchair: medium-light skin tone, facing right",hexcode:"1F9D1-1F3FC-200D-1F9BD-200D-27A1-FE0F",emoji:"🧑🏼‍🦽‍➡️",text:"",type:1,order:2280,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["person_in_manual_wheelchair_right_tone2"]},{label:"person in manual wheelchair: medium skin tone, facing right",hexcode:"1F9D1-1F3FD-200D-1F9BD-200D-27A1-FE0F",emoji:"🧑🏽‍🦽‍➡️",text:"",type:1,order:2282,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["person_in_manual_wheelchair_right_tone3"]},{label:"person in manual wheelchair: medium-dark skin tone, facing right",hexcode:"1F9D1-1F3FE-200D-1F9BD-200D-27A1-FE0F",emoji:"🧑🏾‍🦽‍➡️",text:"",type:1,order:2284,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["person_in_manual_wheelchair_right_tone4"]},{label:"person in manual wheelchair: dark skin tone, facing right",hexcode:"1F9D1-1F3FF-200D-1F9BD-200D-27A1-FE0F",emoji:"🧑🏿‍🦽‍➡️",text:"",type:1,order:2286,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["person_in_manual_wheelchair_right_tone5"]}],shortCodes:["person_in_manual_wheelchair_right"]},{label:"man in manual wheelchair",hexcode:"1F468-200D-1F9BD",tags:["accessibility","man","manual","wheelchair"],emoji:"👨‍🦽",text:"",type:1,order:2288,group:1,subgroup:27,version:12,skins:[{label:"man in manual wheelchair: light skin tone",hexcode:"1F468-1F3FB-200D-1F9BD",emoji:"👨🏻‍🦽",text:"",type:1,order:2289,group:1,subgroup:27,version:12,tone:1,shortCodes:["man_in_manual_wheelchair_tone1"]},{label:"man in manual wheelchair: medium-light skin tone",hexcode:"1F468-1F3FC-200D-1F9BD",emoji:"👨🏼‍🦽",text:"",type:1,order:2290,group:1,subgroup:27,version:12,tone:2,shortCodes:["man_in_manual_wheelchair_tone2"]},{label:"man in manual wheelchair: medium skin tone",hexcode:"1F468-1F3FD-200D-1F9BD",emoji:"👨🏽‍🦽",text:"",type:1,order:2291,group:1,subgroup:27,version:12,tone:3,shortCodes:["man_in_manual_wheelchair_tone3"]},{label:"man in manual wheelchair: medium-dark skin tone",hexcode:"1F468-1F3FE-200D-1F9BD",emoji:"👨🏾‍🦽",text:"",type:1,order:2292,group:1,subgroup:27,version:12,tone:4,shortCodes:["man_in_manual_wheelchair_tone4"]},{label:"man in manual wheelchair: dark skin tone",hexcode:"1F468-1F3FF-200D-1F9BD",emoji:"👨🏿‍🦽",text:"",type:1,order:2293,group:1,subgroup:27,version:12,tone:5,shortCodes:["man_in_manual_wheelchair_tone5"]}],shortCodes:["man_in_manual_wheelchair"]},{label:"man in manual wheelchair: facing right",hexcode:"1F468-200D-1F9BD-200D-27A1-FE0F",tags:["accessibility","facing","man","manual","right","wheelchair"],emoji:"👨‍🦽‍➡️",text:"",type:1,order:2294,group:1,subgroup:27,version:15.1,skins:[{label:"man in manual wheelchair: light skin tone, facing right",hexcode:"1F468-1F3FB-200D-1F9BD-200D-27A1-FE0F",emoji:"👨🏻‍🦽‍➡️",text:"",type:1,order:2296,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["man_in_manual_wheelchair_right_tone1"]},{label:"man in manual wheelchair: medium-light skin tone, facing right",hexcode:"1F468-1F3FC-200D-1F9BD-200D-27A1-FE0F",emoji:"👨🏼‍🦽‍➡️",text:"",type:1,order:2298,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["man_in_manual_wheelchair_right_tone2"]},{label:"man in manual wheelchair: medium skin tone, facing right",hexcode:"1F468-1F3FD-200D-1F9BD-200D-27A1-FE0F",emoji:"👨🏽‍🦽‍➡️",text:"",type:1,order:2300,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["man_in_manual_wheelchair_right_tone3"]},{label:"man in manual wheelchair: medium-dark skin tone, facing right",hexcode:"1F468-1F3FE-200D-1F9BD-200D-27A1-FE0F",emoji:"👨🏾‍🦽‍➡️",text:"",type:1,order:2302,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["man_in_manual_wheelchair_right_tone4"]},{label:"man in manual wheelchair: dark skin tone, facing right",hexcode:"1F468-1F3FF-200D-1F9BD-200D-27A1-FE0F",emoji:"👨🏿‍🦽‍➡️",text:"",type:1,order:2304,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["man_in_manual_wheelchair_right_tone5"]}],shortCodes:["man_in_manual_wheelchair_right"]},{label:"woman in manual wheelchair",hexcode:"1F469-200D-1F9BD",tags:["accessibility","manual","wheelchair","woman"],emoji:"👩‍🦽",text:"",type:1,order:2306,group:1,subgroup:27,version:12,skins:[{label:"woman in manual wheelchair: light skin tone",hexcode:"1F469-1F3FB-200D-1F9BD",emoji:"👩🏻‍🦽",text:"",type:1,order:2307,group:1,subgroup:27,version:12,tone:1,shortCodes:["woman_in_manual_wheelchair_tone1"]},{label:"woman in manual wheelchair: medium-light skin tone",hexcode:"1F469-1F3FC-200D-1F9BD",emoji:"👩🏼‍🦽",text:"",type:1,order:2308,group:1,subgroup:27,version:12,tone:2,shortCodes:["woman_in_manual_wheelchair_tone2"]},{label:"woman in manual wheelchair: medium skin tone",hexcode:"1F469-1F3FD-200D-1F9BD",emoji:"👩🏽‍🦽",text:"",type:1,order:2309,group:1,subgroup:27,version:12,tone:3,shortCodes:["woman_in_manual_wheelchair_tone3"]},{label:"woman in manual wheelchair: medium-dark skin tone",hexcode:"1F469-1F3FE-200D-1F9BD",emoji:"👩🏾‍🦽",text:"",type:1,order:2310,group:1,subgroup:27,version:12,tone:4,shortCodes:["woman_in_manual_wheelchair_tone4"]},{label:"woman in manual wheelchair: dark skin tone",hexcode:"1F469-1F3FF-200D-1F9BD",emoji:"👩🏿‍🦽",text:"",type:1,order:2311,group:1,subgroup:27,version:12,tone:5,shortCodes:["woman_in_manual_wheelchair_tone5"]}],shortCodes:["woman_in_manual_wheelchair"]},{label:"woman in manual wheelchair: facing right",hexcode:"1F469-200D-1F9BD-200D-27A1-FE0F",tags:["accessibility","facing","manual","right","wheelchair","woman"],emoji:"👩‍🦽‍➡️",text:"",type:1,order:2312,group:1,subgroup:27,version:15.1,skins:[{label:"woman in manual wheelchair: light skin tone, facing right",hexcode:"1F469-1F3FB-200D-1F9BD-200D-27A1-FE0F",emoji:"👩🏻‍🦽‍➡️",text:"",type:1,order:2314,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["woman_in_manual_wheelchair_right_tone1"]},{label:"woman in manual wheelchair: medium-light skin tone, facing right",hexcode:"1F469-1F3FC-200D-1F9BD-200D-27A1-FE0F",emoji:"👩🏼‍🦽‍➡️",text:"",type:1,order:2316,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["woman_in_manual_wheelchair_right_tone2"]},{label:"woman in manual wheelchair: medium skin tone, facing right",hexcode:"1F469-1F3FD-200D-1F9BD-200D-27A1-FE0F",emoji:"👩🏽‍🦽‍➡️",text:"",type:1,order:2318,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["woman_in_manual_wheelchair_right_tone3"]},{label:"woman in manual wheelchair: medium-dark skin tone, facing right",hexcode:"1F469-1F3FE-200D-1F9BD-200D-27A1-FE0F",emoji:"👩🏾‍🦽‍➡️",text:"",type:1,order:2320,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["woman_in_manual_wheelchair_right_tone4"]},{label:"woman in manual wheelchair: dark skin tone, facing right",hexcode:"1F469-1F3FF-200D-1F9BD-200D-27A1-FE0F",emoji:"👩🏿‍🦽‍➡️",text:"",type:1,order:2322,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["woman_in_manual_wheelchair_right_tone5"]}],shortCodes:["woman_in_manual_wheelchair_right"]},{label:"person running",hexcode:"1F3C3",tags:["fast","hurry","marathon","move","person","quick","race","racing","run","rush","speed"],emoji:"🏃",text:"",type:1,order:2324,group:1,subgroup:27,version:.6,skins:[{label:"person running: light skin tone",hexcode:"1F3C3-1F3FB",emoji:"🏃🏻",text:"",type:1,order:2325,group:1,subgroup:27,version:1,tone:1,shortCodes:["person_running_tone1","running_tone1"]},{label:"person running: medium-light skin tone",hexcode:"1F3C3-1F3FC",emoji:"🏃🏼",text:"",type:1,order:2326,group:1,subgroup:27,version:1,tone:2,shortCodes:["person_running_tone2","running_tone2"]},{label:"person running: medium skin tone",hexcode:"1F3C3-1F3FD",emoji:"🏃🏽",text:"",type:1,order:2327,group:1,subgroup:27,version:1,tone:3,shortCodes:["person_running_tone3","running_tone3"]},{label:"person running: medium-dark skin tone",hexcode:"1F3C3-1F3FE",emoji:"🏃🏾",text:"",type:1,order:2328,group:1,subgroup:27,version:1,tone:4,shortCodes:["person_running_tone4","running_tone4"]},{label:"person running: dark skin tone",hexcode:"1F3C3-1F3FF",emoji:"🏃🏿",text:"",type:1,order:2329,group:1,subgroup:27,version:1,tone:5,shortCodes:["person_running_tone5","running_tone5"]}],shortCodes:["person_running","running"]},{label:"man running",hexcode:"1F3C3-200D-2642-FE0F",tags:["fast","hurry","man","marathon","move","quick","race","racing","run","rush","speed"],emoji:"🏃‍♂️",text:"",type:1,order:2330,group:1,subgroup:27,version:4,gender:1,skins:[{label:"man running: light skin tone",hexcode:"1F3C3-1F3FB-200D-2642-FE0F",emoji:"🏃🏻‍♂️",text:"",type:1,order:2332,group:1,subgroup:27,version:4,gender:1,tone:1,shortCodes:["man_running_tone1"]},{label:"man running: medium-light skin tone",hexcode:"1F3C3-1F3FC-200D-2642-FE0F",emoji:"🏃🏼‍♂️",text:"",type:1,order:2334,group:1,subgroup:27,version:4,gender:1,tone:2,shortCodes:["man_running_tone2"]},{label:"man running: medium skin tone",hexcode:"1F3C3-1F3FD-200D-2642-FE0F",emoji:"🏃🏽‍♂️",text:"",type:1,order:2336,group:1,subgroup:27,version:4,gender:1,tone:3,shortCodes:["man_running_tone3"]},{label:"man running: medium-dark skin tone",hexcode:"1F3C3-1F3FE-200D-2642-FE0F",emoji:"🏃🏾‍♂️",text:"",type:1,order:2338,group:1,subgroup:27,version:4,gender:1,tone:4,shortCodes:["man_running_tone4"]},{label:"man running: dark skin tone",hexcode:"1F3C3-1F3FF-200D-2642-FE0F",emoji:"🏃🏿‍♂️",text:"",type:1,order:2340,group:1,subgroup:27,version:4,gender:1,tone:5,shortCodes:["man_running_tone5"]}],shortCodes:["man_running"]},{label:"woman running",hexcode:"1F3C3-200D-2640-FE0F",tags:["fast","hurry","marathon","move","quick","race","racing","run","rush","speed","woman"],emoji:"🏃‍♀️",text:"",type:1,order:2342,group:1,subgroup:27,version:4,gender:0,skins:[{label:"woman running: light skin tone",hexcode:"1F3C3-1F3FB-200D-2640-FE0F",emoji:"🏃🏻‍♀️",text:"",type:1,order:2344,group:1,subgroup:27,version:4,gender:0,tone:1,shortCodes:["woman_running_tone1"]},{label:"woman running: medium-light skin tone",hexcode:"1F3C3-1F3FC-200D-2640-FE0F",emoji:"🏃🏼‍♀️",text:"",type:1,order:2346,group:1,subgroup:27,version:4,gender:0,tone:2,shortCodes:["woman_running_tone2"]},{label:"woman running: medium skin tone",hexcode:"1F3C3-1F3FD-200D-2640-FE0F",emoji:"🏃🏽‍♀️",text:"",type:1,order:2348,group:1,subgroup:27,version:4,gender:0,tone:3,shortCodes:["woman_running_tone3"]},{label:"woman running: medium-dark skin tone",hexcode:"1F3C3-1F3FE-200D-2640-FE0F",emoji:"🏃🏾‍♀️",text:"",type:1,order:2350,group:1,subgroup:27,version:4,gender:0,tone:4,shortCodes:["woman_running_tone4"]},{label:"woman running: dark skin tone",hexcode:"1F3C3-1F3FF-200D-2640-FE0F",emoji:"🏃🏿‍♀️",text:"",type:1,order:2352,group:1,subgroup:27,version:4,gender:0,tone:5,shortCodes:["woman_running_tone5"]}],shortCodes:["woman_running"]},{label:"person running: facing right",hexcode:"1F3C3-200D-27A1-FE0F",tags:["facing","fast","hurry","marathon","move","person","quick","race","racing","right","run","rush","speed"],emoji:"🏃‍➡️",text:"",type:1,order:2354,group:1,subgroup:27,version:15.1,skins:[{label:"person running: light skin tone, facing right",hexcode:"1F3C3-1F3FB-200D-27A1-FE0F",emoji:"🏃🏻‍➡️",text:"",type:1,order:2356,group:1,subgroup:27,version:15.1,tone:1,shortCodes:["person_running_right_tone1"]},{label:"person running: medium-light skin tone, facing right",hexcode:"1F3C3-1F3FC-200D-27A1-FE0F",emoji:"🏃🏼‍➡️",text:"",type:1,order:2358,group:1,subgroup:27,version:15.1,tone:2,shortCodes:["person_running_right_tone2"]},{label:"person running: medium skin tone, facing right",hexcode:"1F3C3-1F3FD-200D-27A1-FE0F",emoji:"🏃🏽‍➡️",text:"",type:1,order:2360,group:1,subgroup:27,version:15.1,tone:3,shortCodes:["person_running_right_tone3"]},{label:"person running: medium-dark skin tone, facing right",hexcode:"1F3C3-1F3FE-200D-27A1-FE0F",emoji:"🏃🏾‍➡️",text:"",type:1,order:2362,group:1,subgroup:27,version:15.1,tone:4,shortCodes:["person_running_right_tone4"]},{label:"person running: dark skin tone, facing right",hexcode:"1F3C3-1F3FF-200D-27A1-FE0F",emoji:"🏃🏿‍➡️",text:"",type:1,order:2364,group:1,subgroup:27,version:15.1,tone:5,shortCodes:["person_running_right_tone5"]}],shortCodes:["person_running_right"]},{label:"woman running: facing right",hexcode:"1F3C3-200D-2640-FE0F-200D-27A1-FE0F",tags:["facing","fast","hurry","marathon","move","quick","race","racing","right","run","rush","speed","woman"],emoji:"🏃‍♀️‍➡️",text:"",type:1,order:2366,group:1,subgroup:27,version:15.1,gender:0,skins:[{label:"woman running: light skin tone, facing right",hexcode:"1F3C3-1F3FB-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🏃🏻‍♀️‍➡️",text:"",type:1,order:2370,group:1,subgroup:27,version:15.1,gender:0,tone:1,shortCodes:["woman_running_right_tone1"]},{label:"woman running: medium-light skin tone, facing right",hexcode:"1F3C3-1F3FC-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🏃🏼‍♀️‍➡️",text:"",type:1,order:2374,group:1,subgroup:27,version:15.1,gender:0,tone:2,shortCodes:["woman_running_right_tone2"]},{label:"woman running: medium skin tone, facing right",hexcode:"1F3C3-1F3FD-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🏃🏽‍♀️‍➡️",text:"",type:1,order:2378,group:1,subgroup:27,version:15.1,gender:0,tone:3,shortCodes:["woman_running_right_tone3"]},{label:"woman running: medium-dark skin tone, facing right",hexcode:"1F3C3-1F3FE-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🏃🏾‍♀️‍➡️",text:"",type:1,order:2382,group:1,subgroup:27,version:15.1,gender:0,tone:4,shortCodes:["woman_running_right_tone4"]},{label:"woman running: dark skin tone, facing right",hexcode:"1F3C3-1F3FF-200D-2640-FE0F-200D-27A1-FE0F",emoji:"🏃🏿‍♀️‍➡️",text:"",type:1,order:2386,group:1,subgroup:27,version:15.1,gender:0,tone:5,shortCodes:["woman_running_right_tone5"]}],shortCodes:["woman_running_right"]},{label:"man running: facing right",hexcode:"1F3C3-200D-2642-FE0F-200D-27A1-FE0F",tags:["facing","fast","hurry","man","marathon","move","quick","race","racing","right","run","rush","speed"],emoji:"🏃‍♂️‍➡️",text:"",type:1,order:2390,group:1,subgroup:27,version:15.1,gender:1,skins:[{label:"man running: light skin tone, facing right",hexcode:"1F3C3-1F3FB-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🏃🏻‍♂️‍➡️",text:"",type:1,order:2394,group:1,subgroup:27,version:15.1,gender:1,tone:1,shortCodes:["man_running_right_tone1"]},{label:"man running: medium-light skin tone, facing right",hexcode:"1F3C3-1F3FC-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🏃🏼‍♂️‍➡️",text:"",type:1,order:2398,group:1,subgroup:27,version:15.1,gender:1,tone:2,shortCodes:["man_running_right_tone2"]},{label:"man running: medium skin tone, facing right",hexcode:"1F3C3-1F3FD-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🏃🏽‍♂️‍➡️",text:"",type:1,order:2402,group:1,subgroup:27,version:15.1,gender:1,tone:3,shortCodes:["man_running_right_tone3"]},{label:"man running: medium-dark skin tone, facing right",hexcode:"1F3C3-1F3FE-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🏃🏾‍♂️‍➡️",text:"",type:1,order:2406,group:1,subgroup:27,version:15.1,gender:1,tone:4,shortCodes:["man_running_right_tone4"]},{label:"man running: dark skin tone, facing right",hexcode:"1F3C3-1F3FF-200D-2642-FE0F-200D-27A1-FE0F",emoji:"🏃🏿‍♂️‍➡️",text:"",type:1,order:2410,group:1,subgroup:27,version:15.1,gender:1,tone:5,shortCodes:["man_running_right_tone5"]}],shortCodes:["man_running_right"]},{label:"ballet dancer",hexcode:"1F9D1-200D-1FA70",tags:["ballet","dancer"],emoji:"🧑‍🩰",text:"",type:1,order:2414,group:1,subgroup:27,version:17,skins:[{label:"ballet dancer: light skin tone",hexcode:"1F9D1-1F3FB-200D-1FA70",emoji:"🧑🏻‍🩰",text:"",type:1,order:2415,group:1,subgroup:27,version:17,tone:1,shortCodes:["ballet_dancer_tone1"]},{label:"ballet dancer: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1FA70",emoji:"🧑🏼‍🩰",text:"",type:1,order:2416,group:1,subgroup:27,version:17,tone:2,shortCodes:["ballet_dancer_tone2"]},{label:"ballet dancer: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1FA70",emoji:"🧑🏽‍🩰",text:"",type:1,order:2417,group:1,subgroup:27,version:17,tone:3,shortCodes:["ballet_dancer_tone3"]},{label:"ballet dancer: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1FA70",emoji:"🧑🏾‍🩰",text:"",type:1,order:2418,group:1,subgroup:27,version:17,tone:4,shortCodes:["ballet_dancer_tone4"]},{label:"ballet dancer: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1FA70",emoji:"🧑🏿‍🩰",text:"",type:1,order:2419,group:1,subgroup:27,version:17,tone:5,shortCodes:["ballet_dancer_tone5"]}],shortCodes:["ballet_dancer"]},{label:"woman dancing",hexcode:"1F483",tags:["dance","dancer","dancing","elegant","festive","flair","flamenco","groove","let’s","salsa","tango","woman"],emoji:"💃",text:"",type:1,order:2420,group:1,subgroup:27,version:.6,skins:[{label:"woman dancing: light skin tone",hexcode:"1F483-1F3FB",emoji:"💃🏻",text:"",type:1,order:2421,group:1,subgroup:27,version:1,tone:1,shortCodes:["dancer_tone1","woman_dancing_tone1"]},{label:"woman dancing: medium-light skin tone",hexcode:"1F483-1F3FC",emoji:"💃🏼",text:"",type:1,order:2422,group:1,subgroup:27,version:1,tone:2,shortCodes:["dancer_tone2","woman_dancing_tone2"]},{label:"woman dancing: medium skin tone",hexcode:"1F483-1F3FD",emoji:"💃🏽",text:"",type:1,order:2423,group:1,subgroup:27,version:1,tone:3,shortCodes:["dancer_tone3","woman_dancing_tone3"]},{label:"woman dancing: medium-dark skin tone",hexcode:"1F483-1F3FE",emoji:"💃🏾",text:"",type:1,order:2424,group:1,subgroup:27,version:1,tone:4,shortCodes:["dancer_tone4","woman_dancing_tone4"]},{label:"woman dancing: dark skin tone",hexcode:"1F483-1F3FF",emoji:"💃🏿",text:"",type:1,order:2425,group:1,subgroup:27,version:1,tone:5,shortCodes:["dancer_tone5","woman_dancing_tone5"]}],shortCodes:["dancer","woman_dancing"]},{label:"man dancing",hexcode:"1F57A",tags:["dance","dancer","dancing","elegant","festive","flair","flamenco","groove","let’s","man","salsa","tango"],emoji:"🕺",text:"",type:1,order:2426,group:1,subgroup:27,version:3,skins:[{label:"man dancing: light skin tone",hexcode:"1F57A-1F3FB",emoji:"🕺🏻",text:"",type:1,order:2427,group:1,subgroup:27,version:3,tone:1,shortCodes:["man_dancing_tone1"]},{label:"man dancing: medium-light skin tone",hexcode:"1F57A-1F3FC",emoji:"🕺🏼",text:"",type:1,order:2428,group:1,subgroup:27,version:3,tone:2,shortCodes:["man_dancing_tone2"]},{label:"man dancing: medium skin tone",hexcode:"1F57A-1F3FD",emoji:"🕺🏽",text:"",type:1,order:2429,group:1,subgroup:27,version:3,tone:3,shortCodes:["man_dancing_tone3"]},{label:"man dancing: medium-dark skin tone",hexcode:"1F57A-1F3FE",emoji:"🕺🏾",text:"",type:1,order:2430,group:1,subgroup:27,version:3,tone:4,shortCodes:["man_dancing_tone4"]},{label:"man dancing: dark skin tone",hexcode:"1F57A-1F3FF",emoji:"🕺🏿",text:"",type:1,order:2431,group:1,subgroup:27,version:3,tone:5,shortCodes:["man_dancing_tone5"]}],shortCodes:["man_dancing"]},{label:"person in suit levitating",hexcode:"1F574",tags:["business","levitating","person","suit"],emoji:"🕴️",text:"🕴︎",type:0,order:2433,group:1,subgroup:27,version:.7,skins:[{label:"person in suit levitating: light skin tone",hexcode:"1F574-1F3FB",emoji:"🕴🏻",text:"",type:1,order:2434,group:1,subgroup:27,version:4,tone:1,shortCodes:["levitate_tone1","levitating_tone1","person_in_suit_levitating_tone1"]},{label:"person in suit levitating: medium-light skin tone",hexcode:"1F574-1F3FC",emoji:"🕴🏼",text:"",type:1,order:2435,group:1,subgroup:27,version:4,tone:2,shortCodes:["levitate_tone2","levitating_tone2","person_in_suit_levitating_tone2"]},{label:"person in suit levitating: medium skin tone",hexcode:"1F574-1F3FD",emoji:"🕴🏽",text:"",type:1,order:2436,group:1,subgroup:27,version:4,tone:3,shortCodes:["levitate_tone3","levitating_tone3","person_in_suit_levitating_tone3"]},{label:"person in suit levitating: medium-dark skin tone",hexcode:"1F574-1F3FE",emoji:"🕴🏾",text:"",type:1,order:2437,group:1,subgroup:27,version:4,tone:4,shortCodes:["levitate_tone4","levitating_tone4","person_in_suit_levitating_tone4"]},{label:"person in suit levitating: dark skin tone",hexcode:"1F574-1F3FF",emoji:"🕴🏿",text:"",type:1,order:2438,group:1,subgroup:27,version:4,tone:5,shortCodes:["levitate_tone5","levitating_tone5","person_in_suit_levitating_tone5"]}],shortCodes:["levitate","levitating","person_in_suit_levitating"]},{label:"people with bunny ears",hexcode:"1F46F",tags:["bestie","bff","bunny","counterpart","dancer","double","ear","identical","pair","party","partying","people","soulmate","twin","twinsies"],emoji:"👯",text:"",type:1,order:2439,group:1,subgroup:27,version:.6,skins:[{label:"people with bunny ears: light skin tone",hexcode:"1F46F-1F3FB",emoji:"👯🏻",text:"",type:1,order:2440,group:1,subgroup:27,version:17,tone:1,shortCodes:["dancers_tone1","people_with_bunny_ears_partying_tone1"]},{label:"people with bunny ears: medium-light skin tone",hexcode:"1F46F-1F3FC",emoji:"👯🏼",text:"",type:1,order:2441,group:1,subgroup:27,version:17,tone:2,shortCodes:["dancers_tone2","people_with_bunny_ears_partying_tone2"]},{label:"people with bunny ears: medium skin tone",hexcode:"1F46F-1F3FD",emoji:"👯🏽",text:"",type:1,order:2442,group:1,subgroup:27,version:17,tone:3,shortCodes:["dancers_tone3","people_with_bunny_ears_partying_tone3"]},{label:"people with bunny ears: medium-dark skin tone",hexcode:"1F46F-1F3FE",emoji:"👯🏾",text:"",type:1,order:2443,group:1,subgroup:27,version:17,tone:4,shortCodes:["dancers_tone4","people_with_bunny_ears_partying_tone4"]},{label:"people with bunny ears: dark skin tone",hexcode:"1F46F-1F3FF",emoji:"👯🏿",text:"",type:1,order:2444,group:1,subgroup:27,version:17,tone:5,shortCodes:["dancers_tone5","people_with_bunny_ears_partying_tone5"]},{label:"people with bunny ears: light skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FB-200D-1F430-200D-1F9D1-1F3FC",emoji:"🧑🏻‍🐰‍🧑🏼",text:"",type:1,order:2469,group:1,subgroup:27,version:17,tone:[1,2],shortCodes:["dancers_tone1-2","people_with_bunny_ears_partying_tone1-2"]},{label:"people with bunny ears: light skin tone, medium skin tone",hexcode:"1F9D1-1F3FB-200D-1F430-200D-1F9D1-1F3FD",emoji:"🧑🏻‍🐰‍🧑🏽",text:"",type:1,order:2470,group:1,subgroup:27,version:17,tone:[1,3],shortCodes:["dancers_tone1-3","people_with_bunny_ears_partying_tone1-3"]},{label:"people with bunny ears: light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FB-200D-1F430-200D-1F9D1-1F3FE",emoji:"🧑🏻‍🐰‍🧑🏾",text:"",type:1,order:2471,group:1,subgroup:27,version:17,tone:[1,4],shortCodes:["dancers_tone1-4","people_with_bunny_ears_partying_tone1-4"]},{label:"people with bunny ears: light skin tone, dark skin tone",hexcode:"1F9D1-1F3FB-200D-1F430-200D-1F9D1-1F3FF",emoji:"🧑🏻‍🐰‍🧑🏿",text:"",type:1,order:2472,group:1,subgroup:27,version:17,tone:[1,5],shortCodes:["dancers_tone1-5","people_with_bunny_ears_partying_tone1-5"]},{label:"people with bunny ears: medium-light skin tone, light skin tone",hexcode:"1F9D1-1F3FC-200D-1F430-200D-1F9D1-1F3FB",emoji:"🧑🏼‍🐰‍🧑🏻",text:"",type:1,order:2473,group:1,subgroup:27,version:17,tone:[2,1],shortCodes:["dancers_tone2-1","people_with_bunny_ears_partying_tone2-1"]},{label:"people with bunny ears: medium-light skin tone, medium skin tone",hexcode:"1F9D1-1F3FC-200D-1F430-200D-1F9D1-1F3FD",emoji:"🧑🏼‍🐰‍🧑🏽",text:"",type:1,order:2474,group:1,subgroup:27,version:17,tone:[2,3],shortCodes:["dancers_tone2-3","people_with_bunny_ears_partying_tone2-3"]},{label:"people with bunny ears: medium-light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FC-200D-1F430-200D-1F9D1-1F3FE",emoji:"🧑🏼‍🐰‍🧑🏾",text:"",type:1,order:2475,group:1,subgroup:27,version:17,tone:[2,4],shortCodes:["dancers_tone2-4","people_with_bunny_ears_partying_tone2-4"]},{label:"people with bunny ears: medium-light skin tone, dark skin tone",hexcode:"1F9D1-1F3FC-200D-1F430-200D-1F9D1-1F3FF",emoji:"🧑🏼‍🐰‍🧑🏿",text:"",type:1,order:2476,group:1,subgroup:27,version:17,tone:[2,5],shortCodes:["dancers_tone2-5","people_with_bunny_ears_partying_tone2-5"]},{label:"people with bunny ears: medium skin tone, light skin tone",hexcode:"1F9D1-1F3FD-200D-1F430-200D-1F9D1-1F3FB",emoji:"🧑🏽‍🐰‍🧑🏻",text:"",type:1,order:2477,group:1,subgroup:27,version:17,tone:[3,1],shortCodes:["dancers_tone3-1","people_with_bunny_ears_partying_tone3-1"]},{label:"people with bunny ears: medium skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FD-200D-1F430-200D-1F9D1-1F3FC",emoji:"🧑🏽‍🐰‍🧑🏼",text:"",type:1,order:2478,group:1,subgroup:27,version:17,tone:[3,2],shortCodes:["dancers_tone3-2","people_with_bunny_ears_partying_tone3-2"]},{label:"people with bunny ears: medium skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FD-200D-1F430-200D-1F9D1-1F3FE",emoji:"🧑🏽‍🐰‍🧑🏾",text:"",type:1,order:2479,group:1,subgroup:27,version:17,tone:[3,4],shortCodes:["dancers_tone3-4","people_with_bunny_ears_partying_tone3-4"]},{label:"people with bunny ears: medium skin tone, dark skin tone",hexcode:"1F9D1-1F3FD-200D-1F430-200D-1F9D1-1F3FF",emoji:"🧑🏽‍🐰‍🧑🏿",text:"",type:1,order:2480,group:1,subgroup:27,version:17,tone:[3,5],shortCodes:["dancers_tone3-5","people_with_bunny_ears_partying_tone3-5"]},{label:"people with bunny ears: medium-dark skin tone, light skin tone",hexcode:"1F9D1-1F3FE-200D-1F430-200D-1F9D1-1F3FB",emoji:"🧑🏾‍🐰‍🧑🏻",text:"",type:1,order:2481,group:1,subgroup:27,version:17,tone:[4,1],shortCodes:["dancers_tone4-1","people_with_bunny_ears_partying_tone4-1"]},{label:"people with bunny ears: medium-dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FE-200D-1F430-200D-1F9D1-1F3FC",emoji:"🧑🏾‍🐰‍🧑🏼",text:"",type:1,order:2482,group:1,subgroup:27,version:17,tone:[4,2],shortCodes:["dancers_tone4-2","people_with_bunny_ears_partying_tone4-2"]},{label:"people with bunny ears: medium-dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FE-200D-1F430-200D-1F9D1-1F3FD",emoji:"🧑🏾‍🐰‍🧑🏽",text:"",type:1,order:2483,group:1,subgroup:27,version:17,tone:[4,3],shortCodes:["dancers_tone4-3","people_with_bunny_ears_partying_tone4-3"]},{label:"people with bunny ears: medium-dark skin tone, dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F430-200D-1F9D1-1F3FF",emoji:"🧑🏾‍🐰‍🧑🏿",text:"",type:1,order:2484,group:1,subgroup:27,version:17,tone:[4,5],shortCodes:["dancers_tone4-5","people_with_bunny_ears_partying_tone4-5"]},{label:"people with bunny ears: dark skin tone, light skin tone",hexcode:"1F9D1-1F3FF-200D-1F430-200D-1F9D1-1F3FB",emoji:"🧑🏿‍🐰‍🧑🏻",text:"",type:1,order:2485,group:1,subgroup:27,version:17,tone:[5,1],shortCodes:["dancers_tone5-1","people_with_bunny_ears_partying_tone5-1"]},{label:"people with bunny ears: dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FF-200D-1F430-200D-1F9D1-1F3FC",emoji:"🧑🏿‍🐰‍🧑🏼",text:"",type:1,order:2486,group:1,subgroup:27,version:17,tone:[5,2],shortCodes:["dancers_tone5-2","people_with_bunny_ears_partying_tone5-2"]},{label:"people with bunny ears: dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FF-200D-1F430-200D-1F9D1-1F3FD",emoji:"🧑🏿‍🐰‍🧑🏽",text:"",type:1,order:2487,group:1,subgroup:27,version:17,tone:[5,3],shortCodes:["dancers_tone5-3","people_with_bunny_ears_partying_tone5-3"]},{label:"people with bunny ears: dark skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F430-200D-1F9D1-1F3FE",emoji:"🧑🏿‍🐰‍🧑🏾",text:"",type:1,order:2488,group:1,subgroup:27,version:17,tone:[5,4],shortCodes:["dancers_tone5-4","people_with_bunny_ears_partying_tone5-4"]}],shortCodes:["dancers","people_with_bunny_ears_partying"]},{label:"men with bunny ears",hexcode:"1F46F-200D-2642-FE0F",tags:["bestie","bff","bunny","counterpart","dancer","double","ear","identical","men","pair","party","partying","people","soulmate","twin","twinsies"],emoji:"👯‍♂️",text:"",type:1,order:2445,group:1,subgroup:27,version:4,gender:1,skins:[{label:"men with bunny ears: light skin tone, medium-light skin tone",hexcode:"1F468-1F3FB-200D-1F430-200D-1F468-1F3FC",emoji:"👨🏻‍🐰‍👨🏼",text:"",type:1,order:2489,group:1,subgroup:27,version:17,tone:[1,2],shortCodes:["men_with_bunny_ears_partying_tone1-2"]},{label:"men with bunny ears: light skin tone, medium skin tone",hexcode:"1F468-1F3FB-200D-1F430-200D-1F468-1F3FD",emoji:"👨🏻‍🐰‍👨🏽",text:"",type:1,order:2490,group:1,subgroup:27,version:17,tone:[1,3],shortCodes:["men_with_bunny_ears_partying_tone1-3"]},{label:"men with bunny ears: light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FB-200D-1F430-200D-1F468-1F3FE",emoji:"👨🏻‍🐰‍👨🏾",text:"",type:1,order:2491,group:1,subgroup:27,version:17,tone:[1,4],shortCodes:["men_with_bunny_ears_partying_tone1-4"]},{label:"men with bunny ears: light skin tone, dark skin tone",hexcode:"1F468-1F3FB-200D-1F430-200D-1F468-1F3FF",emoji:"👨🏻‍🐰‍👨🏿",text:"",type:1,order:2492,group:1,subgroup:27,version:17,tone:[1,5],shortCodes:["men_with_bunny_ears_partying_tone1-5"]},{label:"men with bunny ears: medium-light skin tone, light skin tone",hexcode:"1F468-1F3FC-200D-1F430-200D-1F468-1F3FB",emoji:"👨🏼‍🐰‍👨🏻",text:"",type:1,order:2493,group:1,subgroup:27,version:17,tone:[2,1],shortCodes:["men_with_bunny_ears_partying_tone2-1"]},{label:"men with bunny ears: medium-light skin tone, medium skin tone",hexcode:"1F468-1F3FC-200D-1F430-200D-1F468-1F3FD",emoji:"👨🏼‍🐰‍👨🏽",text:"",type:1,order:2494,group:1,subgroup:27,version:17,tone:[2,3],shortCodes:["men_with_bunny_ears_partying_tone2-3"]},{label:"men with bunny ears: medium-light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FC-200D-1F430-200D-1F468-1F3FE",emoji:"👨🏼‍🐰‍👨🏾",text:"",type:1,order:2495,group:1,subgroup:27,version:17,tone:[2,4],shortCodes:["men_with_bunny_ears_partying_tone2-4"]},{label:"men with bunny ears: medium-light skin tone, dark skin tone",hexcode:"1F468-1F3FC-200D-1F430-200D-1F468-1F3FF",emoji:"👨🏼‍🐰‍👨🏿",text:"",type:1,order:2496,group:1,subgroup:27,version:17,tone:[2,5],shortCodes:["men_with_bunny_ears_partying_tone2-5"]},{label:"men with bunny ears: medium skin tone, light skin tone",hexcode:"1F468-1F3FD-200D-1F430-200D-1F468-1F3FB",emoji:"👨🏽‍🐰‍👨🏻",text:"",type:1,order:2497,group:1,subgroup:27,version:17,tone:[3,1],shortCodes:["men_with_bunny_ears_partying_tone3-1"]},{label:"men with bunny ears: medium skin tone, medium-light skin tone",hexcode:"1F468-1F3FD-200D-1F430-200D-1F468-1F3FC",emoji:"👨🏽‍🐰‍👨🏼",text:"",type:1,order:2498,group:1,subgroup:27,version:17,tone:[3,2],shortCodes:["men_with_bunny_ears_partying_tone3-2"]},{label:"men with bunny ears: medium skin tone, medium-dark skin tone",hexcode:"1F468-1F3FD-200D-1F430-200D-1F468-1F3FE",emoji:"👨🏽‍🐰‍👨🏾",text:"",type:1,order:2499,group:1,subgroup:27,version:17,tone:[3,4],shortCodes:["men_with_bunny_ears_partying_tone3-4"]},{label:"men with bunny ears: medium skin tone, dark skin tone",hexcode:"1F468-1F3FD-200D-1F430-200D-1F468-1F3FF",emoji:"👨🏽‍🐰‍👨🏿",text:"",type:1,order:2500,group:1,subgroup:27,version:17,tone:[3,5],shortCodes:["men_with_bunny_ears_partying_tone3-5"]},{label:"men with bunny ears: medium-dark skin tone, light skin tone",hexcode:"1F468-1F3FE-200D-1F430-200D-1F468-1F3FB",emoji:"👨🏾‍🐰‍👨🏻",text:"",type:1,order:2501,group:1,subgroup:27,version:17,tone:[4,1],shortCodes:["men_with_bunny_ears_partying_tone4-1"]},{label:"men with bunny ears: medium-dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FE-200D-1F430-200D-1F468-1F3FC",emoji:"👨🏾‍🐰‍👨🏼",text:"",type:1,order:2502,group:1,subgroup:27,version:17,tone:[4,2],shortCodes:["men_with_bunny_ears_partying_tone4-2"]},{label:"men with bunny ears: medium-dark skin tone, medium skin tone",hexcode:"1F468-1F3FE-200D-1F430-200D-1F468-1F3FD",emoji:"👨🏾‍🐰‍👨🏽",text:"",type:1,order:2503,group:1,subgroup:27,version:17,tone:[4,3],shortCodes:["men_with_bunny_ears_partying_tone4-3"]},{label:"men with bunny ears: medium-dark skin tone, dark skin tone",hexcode:"1F468-1F3FE-200D-1F430-200D-1F468-1F3FF",emoji:"👨🏾‍🐰‍👨🏿",text:"",type:1,order:2504,group:1,subgroup:27,version:17,tone:[4,5],shortCodes:["men_with_bunny_ears_partying_tone4-5"]},{label:"men with bunny ears: dark skin tone, light skin tone",hexcode:"1F468-1F3FF-200D-1F430-200D-1F468-1F3FB",emoji:"👨🏿‍🐰‍👨🏻",text:"",type:1,order:2505,group:1,subgroup:27,version:17,tone:[5,1],shortCodes:["men_with_bunny_ears_partying_tone5-1"]},{label:"men with bunny ears: dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FF-200D-1F430-200D-1F468-1F3FC",emoji:"👨🏿‍🐰‍👨🏼",text:"",type:1,order:2506,group:1,subgroup:27,version:17,tone:[5,2],shortCodes:["men_with_bunny_ears_partying_tone5-2"]},{label:"men with bunny ears: dark skin tone, medium skin tone",hexcode:"1F468-1F3FF-200D-1F430-200D-1F468-1F3FD",emoji:"👨🏿‍🐰‍👨🏽",text:"",type:1,order:2507,group:1,subgroup:27,version:17,tone:[5,3],shortCodes:["men_with_bunny_ears_partying_tone5-3"]},{label:"men with bunny ears: dark skin tone, medium-dark skin tone",hexcode:"1F468-1F3FF-200D-1F430-200D-1F468-1F3FE",emoji:"👨🏿‍🐰‍👨🏾",text:"",type:1,order:2508,group:1,subgroup:27,version:17,tone:[5,4],shortCodes:["men_with_bunny_ears_partying_tone5-4"]},{label:"men with bunny ears: light skin tone",hexcode:"1F46F-1F3FB-200D-2642-FE0F",emoji:"👯🏻‍♂️",text:"",type:1,order:2447,group:1,subgroup:27,version:17,gender:1,tone:1,shortCodes:["men_with_bunny_ears_partying_tone1"]},{label:"men with bunny ears: medium-light skin tone",hexcode:"1F46F-1F3FC-200D-2642-FE0F",emoji:"👯🏼‍♂️",text:"",type:1,order:2449,group:1,subgroup:27,version:17,gender:1,tone:2,shortCodes:["men_with_bunny_ears_partying_tone2"]},{label:"men with bunny ears: medium skin tone",hexcode:"1F46F-1F3FD-200D-2642-FE0F",emoji:"👯🏽‍♂️",text:"",type:1,order:2451,group:1,subgroup:27,version:17,gender:1,tone:3,shortCodes:["men_with_bunny_ears_partying_tone3"]},{label:"men with bunny ears: medium-dark skin tone",hexcode:"1F46F-1F3FE-200D-2642-FE0F",emoji:"👯🏾‍♂️",text:"",type:1,order:2453,group:1,subgroup:27,version:17,gender:1,tone:4,shortCodes:["men_with_bunny_ears_partying_tone4"]},{label:"men with bunny ears: dark skin tone",hexcode:"1F46F-1F3FF-200D-2642-FE0F",emoji:"👯🏿‍♂️",text:"",type:1,order:2455,group:1,subgroup:27,version:17,gender:1,tone:5,shortCodes:["men_with_bunny_ears_partying_tone5"]}],shortCodes:["men_with_bunny_ears_partying"]},{label:"women with bunny ears",hexcode:"1F46F-200D-2640-FE0F",tags:["bestie","bff","bunny","counterpart","dancer","double","ear","identical","pair","party","partying","people","soulmate","twin","twinsies","women"],emoji:"👯‍♀️",text:"",type:1,order:2457,group:1,subgroup:27,version:4,gender:0,skins:[{label:"women with bunny ears: light skin tone, medium-light skin tone",hexcode:"1F469-1F3FB-200D-1F430-200D-1F469-1F3FC",emoji:"👩🏻‍🐰‍👩🏼",text:"",type:1,order:2509,group:1,subgroup:27,version:17,tone:[1,2],shortCodes:["women_with_bunny_ears_partying_tone1-2"]},{label:"women with bunny ears: light skin tone, medium skin tone",hexcode:"1F469-1F3FB-200D-1F430-200D-1F469-1F3FD",emoji:"👩🏻‍🐰‍👩🏽",text:"",type:1,order:2510,group:1,subgroup:27,version:17,tone:[1,3],shortCodes:["women_with_bunny_ears_partying_tone1-3"]},{label:"women with bunny ears: light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FB-200D-1F430-200D-1F469-1F3FE",emoji:"👩🏻‍🐰‍👩🏾",text:"",type:1,order:2511,group:1,subgroup:27,version:17,tone:[1,4],shortCodes:["women_with_bunny_ears_partying_tone1-4"]},{label:"women with bunny ears: light skin tone, dark skin tone",hexcode:"1F469-1F3FB-200D-1F430-200D-1F469-1F3FF",emoji:"👩🏻‍🐰‍👩🏿",text:"",type:1,order:2512,group:1,subgroup:27,version:17,tone:[1,5],shortCodes:["women_with_bunny_ears_partying_tone1-5"]},{label:"women with bunny ears: medium-light skin tone, light skin tone",hexcode:"1F469-1F3FC-200D-1F430-200D-1F469-1F3FB",emoji:"👩🏼‍🐰‍👩🏻",text:"",type:1,order:2513,group:1,subgroup:27,version:17,tone:[2,1],shortCodes:["women_with_bunny_ears_partying_tone2-1"]},{label:"women with bunny ears: medium-light skin tone, medium skin tone",hexcode:"1F469-1F3FC-200D-1F430-200D-1F469-1F3FD",emoji:"👩🏼‍🐰‍👩🏽",text:"",type:1,order:2514,group:1,subgroup:27,version:17,tone:[2,3],shortCodes:["women_with_bunny_ears_partying_tone2-3"]},{label:"women with bunny ears: medium-light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FC-200D-1F430-200D-1F469-1F3FE",emoji:"👩🏼‍🐰‍👩🏾",text:"",type:1,order:2515,group:1,subgroup:27,version:17,tone:[2,4],shortCodes:["women_with_bunny_ears_partying_tone2-4"]},{label:"women with bunny ears: medium-light skin tone, dark skin tone",hexcode:"1F469-1F3FC-200D-1F430-200D-1F469-1F3FF",emoji:"👩🏼‍🐰‍👩🏿",text:"",type:1,order:2516,group:1,subgroup:27,version:17,tone:[2,5],shortCodes:["women_with_bunny_ears_partying_tone2-5"]},{label:"women with bunny ears: medium skin tone, light skin tone",hexcode:"1F469-1F3FD-200D-1F430-200D-1F469-1F3FB",emoji:"👩🏽‍🐰‍👩🏻",text:"",type:1,order:2517,group:1,subgroup:27,version:17,tone:[3,1],shortCodes:["women_with_bunny_ears_partying_tone3-1"]},{label:"women with bunny ears: medium skin tone, medium-light skin tone",hexcode:"1F469-1F3FD-200D-1F430-200D-1F469-1F3FC",emoji:"👩🏽‍🐰‍👩🏼",text:"",type:1,order:2518,group:1,subgroup:27,version:17,tone:[3,2],shortCodes:["women_with_bunny_ears_partying_tone3-2"]},{label:"women with bunny ears: medium skin tone, medium-dark skin tone",hexcode:"1F469-1F3FD-200D-1F430-200D-1F469-1F3FE",emoji:"👩🏽‍🐰‍👩🏾",text:"",type:1,order:2519,group:1,subgroup:27,version:17,tone:[3,4],shortCodes:["women_with_bunny_ears_partying_tone3-4"]},{label:"women with bunny ears: medium skin tone, dark skin tone",hexcode:"1F469-1F3FD-200D-1F430-200D-1F469-1F3FF",emoji:"👩🏽‍🐰‍👩🏿",text:"",type:1,order:2520,group:1,subgroup:27,version:17,tone:[3,5],shortCodes:["women_with_bunny_ears_partying_tone3-5"]},{label:"women with bunny ears: medium-dark skin tone, light skin tone",hexcode:"1F469-1F3FE-200D-1F430-200D-1F469-1F3FB",emoji:"👩🏾‍🐰‍👩🏻",text:"",type:1,order:2521,group:1,subgroup:27,version:17,tone:[4,1],shortCodes:["women_with_bunny_ears_partying_tone4-1"]},{label:"women with bunny ears: medium-dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FE-200D-1F430-200D-1F469-1F3FC",emoji:"👩🏾‍🐰‍👩🏼",text:"",type:1,order:2522,group:1,subgroup:27,version:17,tone:[4,2],shortCodes:["women_with_bunny_ears_partying_tone4-2"]},{label:"women with bunny ears: medium-dark skin tone, medium skin tone",hexcode:"1F469-1F3FE-200D-1F430-200D-1F469-1F3FD",emoji:"👩🏾‍🐰‍👩🏽",text:"",type:1,order:2523,group:1,subgroup:27,version:17,tone:[4,3],shortCodes:["women_with_bunny_ears_partying_tone4-3"]},{label:"women with bunny ears: medium-dark skin tone, dark skin tone",hexcode:"1F469-1F3FE-200D-1F430-200D-1F469-1F3FF",emoji:"👩🏾‍🐰‍👩🏿",text:"",type:1,order:2524,group:1,subgroup:27,version:17,tone:[4,5],shortCodes:["women_with_bunny_ears_partying_tone4-5"]},{label:"women with bunny ears: dark skin tone, light skin tone",hexcode:"1F469-1F3FF-200D-1F430-200D-1F469-1F3FB",emoji:"👩🏿‍🐰‍👩🏻",text:"",type:1,order:2525,group:1,subgroup:27,version:17,tone:[5,1],shortCodes:["women_with_bunny_ears_partying_tone5-1"]},{label:"women with bunny ears: dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FF-200D-1F430-200D-1F469-1F3FC",emoji:"👩🏿‍🐰‍👩🏼",text:"",type:1,order:2526,group:1,subgroup:27,version:17,tone:[5,2],shortCodes:["women_with_bunny_ears_partying_tone5-2"]},{label:"women with bunny ears: dark skin tone, medium skin tone",hexcode:"1F469-1F3FF-200D-1F430-200D-1F469-1F3FD",emoji:"👩🏿‍🐰‍👩🏽",text:"",type:1,order:2527,group:1,subgroup:27,version:17,tone:[5,3],shortCodes:["women_with_bunny_ears_partying_tone5-3"]},{label:"women with bunny ears: dark skin tone, medium-dark skin tone",hexcode:"1F469-1F3FF-200D-1F430-200D-1F469-1F3FE",emoji:"👩🏿‍🐰‍👩🏾",text:"",type:1,order:2528,group:1,subgroup:27,version:17,tone:[5,4],shortCodes:["women_with_bunny_ears_partying_tone5-4"]},{label:"women with bunny ears: light skin tone",hexcode:"1F46F-1F3FB-200D-2640-FE0F",emoji:"👯🏻‍♀️",text:"",type:1,order:2459,group:1,subgroup:27,version:17,gender:0,tone:1,shortCodes:["women_with_bunny_ears_partying_tone1"]},{label:"women with bunny ears: medium-light skin tone",hexcode:"1F46F-1F3FC-200D-2640-FE0F",emoji:"👯🏼‍♀️",text:"",type:1,order:2461,group:1,subgroup:27,version:17,gender:0,tone:2,shortCodes:["women_with_bunny_ears_partying_tone2"]},{label:"women with bunny ears: medium skin tone",hexcode:"1F46F-1F3FD-200D-2640-FE0F",emoji:"👯🏽‍♀️",text:"",type:1,order:2463,group:1,subgroup:27,version:17,gender:0,tone:3,shortCodes:["women_with_bunny_ears_partying_tone3"]},{label:"women with bunny ears: medium-dark skin tone",hexcode:"1F46F-1F3FE-200D-2640-FE0F",emoji:"👯🏾‍♀️",text:"",type:1,order:2465,group:1,subgroup:27,version:17,gender:0,tone:4,shortCodes:["women_with_bunny_ears_partying_tone4"]},{label:"women with bunny ears: dark skin tone",hexcode:"1F46F-1F3FF-200D-2640-FE0F",emoji:"👯🏿‍♀️",text:"",type:1,order:2467,group:1,subgroup:27,version:17,gender:0,tone:5,shortCodes:["women_with_bunny_ears_partying_tone5"]}],shortCodes:["women_with_bunny_ears_partying"]},{label:"person in steamy room",hexcode:"1F9D6",tags:["day","luxurious","pamper","person","relax","room","sauna","spa","steam","steambath","unwind"],emoji:"🧖",text:"",type:1,order:2529,group:1,subgroup:27,version:5,skins:[{label:"person in steamy room: light skin tone",hexcode:"1F9D6-1F3FB",emoji:"🧖🏻",text:"",type:1,order:2530,group:1,subgroup:27,version:5,tone:1,shortCodes:["person_in_steamy_room_tone1"]},{label:"person in steamy room: medium-light skin tone",hexcode:"1F9D6-1F3FC",emoji:"🧖🏼",text:"",type:1,order:2531,group:1,subgroup:27,version:5,tone:2,shortCodes:["person_in_steamy_room_tone2"]},{label:"person in steamy room: medium skin tone",hexcode:"1F9D6-1F3FD",emoji:"🧖🏽",text:"",type:1,order:2532,group:1,subgroup:27,version:5,tone:3,shortCodes:["person_in_steamy_room_tone3"]},{label:"person in steamy room: medium-dark skin tone",hexcode:"1F9D6-1F3FE",emoji:"🧖🏾",text:"",type:1,order:2533,group:1,subgroup:27,version:5,tone:4,shortCodes:["person_in_steamy_room_tone4"]},{label:"person in steamy room: dark skin tone",hexcode:"1F9D6-1F3FF",emoji:"🧖🏿",text:"",type:1,order:2534,group:1,subgroup:27,version:5,tone:5,shortCodes:["person_in_steamy_room_tone5"]}],shortCodes:["person_in_steamy_room"]},{label:"man in steamy room",hexcode:"1F9D6-200D-2642-FE0F",tags:["day","luxurious","man","pamper","relax","room","sauna","spa","steam","steambath","unwind"],emoji:"🧖‍♂️",text:"",type:1,order:2535,group:1,subgroup:27,version:5,gender:1,skins:[{label:"man in steamy room: light skin tone",hexcode:"1F9D6-1F3FB-200D-2642-FE0F",emoji:"🧖🏻‍♂️",text:"",type:1,order:2537,group:1,subgroup:27,version:5,gender:1,tone:1,shortCodes:["man_in_steamy_room_tone1"]},{label:"man in steamy room: medium-light skin tone",hexcode:"1F9D6-1F3FC-200D-2642-FE0F",emoji:"🧖🏼‍♂️",text:"",type:1,order:2539,group:1,subgroup:27,version:5,gender:1,tone:2,shortCodes:["man_in_steamy_room_tone2"]},{label:"man in steamy room: medium skin tone",hexcode:"1F9D6-1F3FD-200D-2642-FE0F",emoji:"🧖🏽‍♂️",text:"",type:1,order:2541,group:1,subgroup:27,version:5,gender:1,tone:3,shortCodes:["man_in_steamy_room_tone3"]},{label:"man in steamy room: medium-dark skin tone",hexcode:"1F9D6-1F3FE-200D-2642-FE0F",emoji:"🧖🏾‍♂️",text:"",type:1,order:2543,group:1,subgroup:27,version:5,gender:1,tone:4,shortCodes:["man_in_steamy_room_tone4"]},{label:"man in steamy room: dark skin tone",hexcode:"1F9D6-1F3FF-200D-2642-FE0F",emoji:"🧖🏿‍♂️",text:"",type:1,order:2545,group:1,subgroup:27,version:5,gender:1,tone:5,shortCodes:["man_in_steamy_room_tone5"]}],shortCodes:["man_in_steamy_room"]},{label:"woman in steamy room",hexcode:"1F9D6-200D-2640-FE0F",tags:["day","luxurious","pamper","relax","room","sauna","spa","steam","steambath","unwind","woman"],emoji:"🧖‍♀️",text:"",type:1,order:2547,group:1,subgroup:27,version:5,gender:0,skins:[{label:"woman in steamy room: light skin tone",hexcode:"1F9D6-1F3FB-200D-2640-FE0F",emoji:"🧖🏻‍♀️",text:"",type:1,order:2549,group:1,subgroup:27,version:5,gender:0,tone:1,shortCodes:["woman_in_steamy_room_tone1"]},{label:"woman in steamy room: medium-light skin tone",hexcode:"1F9D6-1F3FC-200D-2640-FE0F",emoji:"🧖🏼‍♀️",text:"",type:1,order:2551,group:1,subgroup:27,version:5,gender:0,tone:2,shortCodes:["woman_in_steamy_room_tone2"]},{label:"woman in steamy room: medium skin tone",hexcode:"1F9D6-1F3FD-200D-2640-FE0F",emoji:"🧖🏽‍♀️",text:"",type:1,order:2553,group:1,subgroup:27,version:5,gender:0,tone:3,shortCodes:["woman_in_steamy_room_tone3"]},{label:"woman in steamy room: medium-dark skin tone",hexcode:"1F9D6-1F3FE-200D-2640-FE0F",emoji:"🧖🏾‍♀️",text:"",type:1,order:2555,group:1,subgroup:27,version:5,gender:0,tone:4,shortCodes:["woman_in_steamy_room_tone4"]},{label:"woman in steamy room: dark skin tone",hexcode:"1F9D6-1F3FF-200D-2640-FE0F",emoji:"🧖🏿‍♀️",text:"",type:1,order:2557,group:1,subgroup:27,version:5,gender:0,tone:5,shortCodes:["woman_in_steamy_room_tone5"]}],shortCodes:["woman_in_steamy_room"]},{label:"person climbing",hexcode:"1F9D7",tags:["climb","climber","climbing","mountain","person","rock","scale","up"],emoji:"🧗",text:"",type:1,order:2559,group:1,subgroup:27,version:5,skins:[{label:"person climbing: light skin tone",hexcode:"1F9D7-1F3FB",emoji:"🧗🏻",text:"",type:1,order:2560,group:1,subgroup:27,version:5,tone:1,shortCodes:["climbing_tone1","person_climbing_tone1"]},{label:"person climbing: medium-light skin tone",hexcode:"1F9D7-1F3FC",emoji:"🧗🏼",text:"",type:1,order:2561,group:1,subgroup:27,version:5,tone:2,shortCodes:["climbing_tone2","person_climbing_tone2"]},{label:"person climbing: medium skin tone",hexcode:"1F9D7-1F3FD",emoji:"🧗🏽",text:"",type:1,order:2562,group:1,subgroup:27,version:5,tone:3,shortCodes:["climbing_tone3","person_climbing_tone3"]},{label:"person climbing: medium-dark skin tone",hexcode:"1F9D7-1F3FE",emoji:"🧗🏾",text:"",type:1,order:2563,group:1,subgroup:27,version:5,tone:4,shortCodes:["climbing_tone4","person_climbing_tone4"]},{label:"person climbing: dark skin tone",hexcode:"1F9D7-1F3FF",emoji:"🧗🏿",text:"",type:1,order:2564,group:1,subgroup:27,version:5,tone:5,shortCodes:["climbing_tone5","person_climbing_tone5"]}],shortCodes:["climbing","person_climbing"]},{label:"man climbing",hexcode:"1F9D7-200D-2642-FE0F",tags:["climb","climber","climbing","man","mountain","rock","scale","up"],emoji:"🧗‍♂️",text:"",type:1,order:2565,group:1,subgroup:27,version:5,gender:1,skins:[{label:"man climbing: light skin tone",hexcode:"1F9D7-1F3FB-200D-2642-FE0F",emoji:"🧗🏻‍♂️",text:"",type:1,order:2567,group:1,subgroup:27,version:5,gender:1,tone:1,shortCodes:["man_climbing_tone1"]},{label:"man climbing: medium-light skin tone",hexcode:"1F9D7-1F3FC-200D-2642-FE0F",emoji:"🧗🏼‍♂️",text:"",type:1,order:2569,group:1,subgroup:27,version:5,gender:1,tone:2,shortCodes:["man_climbing_tone2"]},{label:"man climbing: medium skin tone",hexcode:"1F9D7-1F3FD-200D-2642-FE0F",emoji:"🧗🏽‍♂️",text:"",type:1,order:2571,group:1,subgroup:27,version:5,gender:1,tone:3,shortCodes:["man_climbing_tone3"]},{label:"man climbing: medium-dark skin tone",hexcode:"1F9D7-1F3FE-200D-2642-FE0F",emoji:"🧗🏾‍♂️",text:"",type:1,order:2573,group:1,subgroup:27,version:5,gender:1,tone:4,shortCodes:["man_climbing_tone4"]},{label:"man climbing: dark skin tone",hexcode:"1F9D7-1F3FF-200D-2642-FE0F",emoji:"🧗🏿‍♂️",text:"",type:1,order:2575,group:1,subgroup:27,version:5,gender:1,tone:5,shortCodes:["man_climbing_tone5"]}],shortCodes:["man_climbing"]},{label:"woman climbing",hexcode:"1F9D7-200D-2640-FE0F",tags:["climb","climber","climbing","mountain","rock","scale","up","woman"],emoji:"🧗‍♀️",text:"",type:1,order:2577,group:1,subgroup:27,version:5,gender:0,skins:[{label:"woman climbing: light skin tone",hexcode:"1F9D7-1F3FB-200D-2640-FE0F",emoji:"🧗🏻‍♀️",text:"",type:1,order:2579,group:1,subgroup:27,version:5,gender:0,tone:1,shortCodes:["woman_climbing_tone1"]},{label:"woman climbing: medium-light skin tone",hexcode:"1F9D7-1F3FC-200D-2640-FE0F",emoji:"🧗🏼‍♀️",text:"",type:1,order:2581,group:1,subgroup:27,version:5,gender:0,tone:2,shortCodes:["woman_climbing_tone2"]},{label:"woman climbing: medium skin tone",hexcode:"1F9D7-1F3FD-200D-2640-FE0F",emoji:"🧗🏽‍♀️",text:"",type:1,order:2583,group:1,subgroup:27,version:5,gender:0,tone:3,shortCodes:["woman_climbing_tone3"]},{label:"woman climbing: medium-dark skin tone",hexcode:"1F9D7-1F3FE-200D-2640-FE0F",emoji:"🧗🏾‍♀️",text:"",type:1,order:2585,group:1,subgroup:27,version:5,gender:0,tone:4,shortCodes:["woman_climbing_tone4"]},{label:"woman climbing: dark skin tone",hexcode:"1F9D7-1F3FF-200D-2640-FE0F",emoji:"🧗🏿‍♀️",text:"",type:1,order:2587,group:1,subgroup:27,version:5,gender:0,tone:5,shortCodes:["woman_climbing_tone5"]}],shortCodes:["woman_climbing"]},{label:"person fencing",hexcode:"1F93A",tags:["fencer","fencing","person","sword"],emoji:"🤺",text:"",type:1,order:2589,group:1,subgroup:28,version:3,shortCodes:["fencer","fencing","person_fencing"]},{label:"horse racing",hexcode:"1F3C7",tags:["horse","jockey","racehorse","racing","riding","sport"],emoji:"🏇",text:"",type:1,order:2590,group:1,subgroup:28,version:1,skins:[{label:"horse racing: light skin tone",hexcode:"1F3C7-1F3FB",emoji:"🏇🏻",text:"",type:1,order:2591,group:1,subgroup:28,version:1,tone:1,shortCodes:["horse_racing_tone1"]},{label:"horse racing: medium-light skin tone",hexcode:"1F3C7-1F3FC",emoji:"🏇🏼",text:"",type:1,order:2592,group:1,subgroup:28,version:1,tone:2,shortCodes:["horse_racing_tone2"]},{label:"horse racing: medium skin tone",hexcode:"1F3C7-1F3FD",emoji:"🏇🏽",text:"",type:1,order:2593,group:1,subgroup:28,version:1,tone:3,shortCodes:["horse_racing_tone3"]},{label:"horse racing: medium-dark skin tone",hexcode:"1F3C7-1F3FE",emoji:"🏇🏾",text:"",type:1,order:2594,group:1,subgroup:28,version:1,tone:4,shortCodes:["horse_racing_tone4"]},{label:"horse racing: dark skin tone",hexcode:"1F3C7-1F3FF",emoji:"🏇🏿",text:"",type:1,order:2595,group:1,subgroup:28,version:1,tone:5,shortCodes:["horse_racing_tone5"]}],shortCodes:["horse_racing"]},{label:"skier",hexcode:"26F7",tags:["ski","snow"],emoji:"⛷️",text:"⛷︎",type:0,order:2597,group:1,subgroup:28,version:.7,shortCodes:["person_skiing","skier","skiing"]},{label:"snowboarder",hexcode:"1F3C2",tags:["ski","snow","snowboard","sport"],emoji:"🏂️",text:"🏂︎",type:1,order:2598,group:1,subgroup:28,version:.6,skins:[{label:"snowboarder: light skin tone",hexcode:"1F3C2-1F3FB",emoji:"🏂🏻",text:"",type:1,order:2599,group:1,subgroup:28,version:1,tone:1,shortCodes:["person_snowboarding_tone1","snowboarder_tone1","snowboarding_tone1"]},{label:"snowboarder: medium-light skin tone",hexcode:"1F3C2-1F3FC",emoji:"🏂🏼",text:"",type:1,order:2600,group:1,subgroup:28,version:1,tone:2,shortCodes:["person_snowboarding_tone2","snowboarder_tone2","snowboarding_tone2"]},{label:"snowboarder: medium skin tone",hexcode:"1F3C2-1F3FD",emoji:"🏂🏽",text:"",type:1,order:2601,group:1,subgroup:28,version:1,tone:3,shortCodes:["person_snowboarding_tone3","snowboarder_tone3","snowboarding_tone3"]},{label:"snowboarder: medium-dark skin tone",hexcode:"1F3C2-1F3FE",emoji:"🏂🏾",text:"",type:1,order:2602,group:1,subgroup:28,version:1,tone:4,shortCodes:["person_snowboarding_tone4","snowboarder_tone4","snowboarding_tone4"]},{label:"snowboarder: dark skin tone",hexcode:"1F3C2-1F3FF",emoji:"🏂🏿",text:"",type:1,order:2603,group:1,subgroup:28,version:1,tone:5,shortCodes:["person_snowboarding_tone5","snowboarder_tone5","snowboarding_tone5"]}],shortCodes:["person_snowboarding","snowboarder","snowboarding"]},{label:"person golfing",hexcode:"1F3CC",tags:["ball","birdie","caddy","driving","golf","golfing","green","person","pga","putt","range","tee"],emoji:"🏌️",text:"🏌︎",type:0,order:2605,group:1,subgroup:28,version:.7,skins:[{label:"person golfing: light skin tone",hexcode:"1F3CC-1F3FB",emoji:"🏌🏻",text:"",type:1,order:2606,group:1,subgroup:28,version:4,tone:1,shortCodes:["golfer_tone1","golfing_tone1","person_golfing_tone1"]},{label:"person golfing: medium-light skin tone",hexcode:"1F3CC-1F3FC",emoji:"🏌🏼",text:"",type:1,order:2607,group:1,subgroup:28,version:4,tone:2,shortCodes:["golfer_tone2","golfing_tone2","person_golfing_tone2"]},{label:"person golfing: medium skin tone",hexcode:"1F3CC-1F3FD",emoji:"🏌🏽",text:"",type:1,order:2608,group:1,subgroup:28,version:4,tone:3,shortCodes:["golfer_tone3","golfing_tone3","person_golfing_tone3"]},{label:"person golfing: medium-dark skin tone",hexcode:"1F3CC-1F3FE",emoji:"🏌🏾",text:"",type:1,order:2609,group:1,subgroup:28,version:4,tone:4,shortCodes:["golfer_tone4","golfing_tone4","person_golfing_tone4"]},{label:"person golfing: dark skin tone",hexcode:"1F3CC-1F3FF",emoji:"🏌🏿",text:"",type:1,order:2610,group:1,subgroup:28,version:4,tone:5,shortCodes:["golfer_tone5","golfing_tone5","person_golfing_tone5"]}],shortCodes:["golfer","golfing","person_golfing"]},{label:"man golfing",hexcode:"1F3CC-FE0F-200D-2642-FE0F",tags:["ball","birdie","caddy","driving","golf","golfing","green","man","pga","putt","range","tee"],emoji:"🏌️‍♂️",text:"",type:1,order:2611,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man golfing: light skin tone",hexcode:"1F3CC-1F3FB-200D-2642-FE0F",emoji:"🏌🏻‍♂️",text:"",type:1,order:2615,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_golfing_tone1"]},{label:"man golfing: medium-light skin tone",hexcode:"1F3CC-1F3FC-200D-2642-FE0F",emoji:"🏌🏼‍♂️",text:"",type:1,order:2617,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_golfing_tone2"]},{label:"man golfing: medium skin tone",hexcode:"1F3CC-1F3FD-200D-2642-FE0F",emoji:"🏌🏽‍♂️",text:"",type:1,order:2619,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_golfing_tone3"]},{label:"man golfing: medium-dark skin tone",hexcode:"1F3CC-1F3FE-200D-2642-FE0F",emoji:"🏌🏾‍♂️",text:"",type:1,order:2621,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_golfing_tone4"]},{label:"man golfing: dark skin tone",hexcode:"1F3CC-1F3FF-200D-2642-FE0F",emoji:"🏌🏿‍♂️",text:"",type:1,order:2623,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_golfing_tone5"]}],shortCodes:["man_golfing"]},{label:"woman golfing",hexcode:"1F3CC-FE0F-200D-2640-FE0F",tags:["ball","birdie","caddy","driving","golf","golfing","green","pga","putt","range","tee","woman"],emoji:"🏌️‍♀️",text:"",type:1,order:2625,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman golfing: light skin tone",hexcode:"1F3CC-1F3FB-200D-2640-FE0F",emoji:"🏌🏻‍♀️",text:"",type:1,order:2629,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_golfing_tone1"]},{label:"woman golfing: medium-light skin tone",hexcode:"1F3CC-1F3FC-200D-2640-FE0F",emoji:"🏌🏼‍♀️",text:"",type:1,order:2631,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_golfing_tone2"]},{label:"woman golfing: medium skin tone",hexcode:"1F3CC-1F3FD-200D-2640-FE0F",emoji:"🏌🏽‍♀️",text:"",type:1,order:2633,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_golfing_tone3"]},{label:"woman golfing: medium-dark skin tone",hexcode:"1F3CC-1F3FE-200D-2640-FE0F",emoji:"🏌🏾‍♀️",text:"",type:1,order:2635,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_golfing_tone4"]},{label:"woman golfing: dark skin tone",hexcode:"1F3CC-1F3FF-200D-2640-FE0F",emoji:"🏌🏿‍♀️",text:"",type:1,order:2637,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_golfing_tone5"]}],shortCodes:["woman_golfing"]},{label:"person surfing",hexcode:"1F3C4",tags:["beach","ocean","person","sport","surf","surfer","surfing","swell","waves"],emoji:"🏄️",text:"🏄︎",type:1,order:2639,group:1,subgroup:28,version:.6,skins:[{label:"person surfing: light skin tone",hexcode:"1F3C4-1F3FB",emoji:"🏄🏻",text:"",type:1,order:2640,group:1,subgroup:28,version:1,tone:1,shortCodes:["person_surfing_tone1","surfer_tone1","surfing_tone1"]},{label:"person surfing: medium-light skin tone",hexcode:"1F3C4-1F3FC",emoji:"🏄🏼",text:"",type:1,order:2641,group:1,subgroup:28,version:1,tone:2,shortCodes:["person_surfing_tone2","surfer_tone2","surfing_tone2"]},{label:"person surfing: medium skin tone",hexcode:"1F3C4-1F3FD",emoji:"🏄🏽",text:"",type:1,order:2642,group:1,subgroup:28,version:1,tone:3,shortCodes:["person_surfing_tone3","surfer_tone3","surfing_tone3"]},{label:"person surfing: medium-dark skin tone",hexcode:"1F3C4-1F3FE",emoji:"🏄🏾",text:"",type:1,order:2643,group:1,subgroup:28,version:1,tone:4,shortCodes:["person_surfing_tone4","surfer_tone4","surfing_tone4"]},{label:"person surfing: dark skin tone",hexcode:"1F3C4-1F3FF",emoji:"🏄🏿",text:"",type:1,order:2644,group:1,subgroup:28,version:1,tone:5,shortCodes:["person_surfing_tone5","surfer_tone5","surfing_tone5"]}],shortCodes:["person_surfing","surfer","surfing"]},{label:"man surfing",hexcode:"1F3C4-200D-2642-FE0F",tags:["beach","man","ocean","sport","surf","surfer","surfing","swell","waves"],emoji:"🏄‍♂️",text:"",type:1,order:2645,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man surfing: light skin tone",hexcode:"1F3C4-1F3FB-200D-2642-FE0F",emoji:"🏄🏻‍♂️",text:"",type:1,order:2647,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_surfing_tone1"]},{label:"man surfing: medium-light skin tone",hexcode:"1F3C4-1F3FC-200D-2642-FE0F",emoji:"🏄🏼‍♂️",text:"",type:1,order:2649,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_surfing_tone2"]},{label:"man surfing: medium skin tone",hexcode:"1F3C4-1F3FD-200D-2642-FE0F",emoji:"🏄🏽‍♂️",text:"",type:1,order:2651,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_surfing_tone3"]},{label:"man surfing: medium-dark skin tone",hexcode:"1F3C4-1F3FE-200D-2642-FE0F",emoji:"🏄🏾‍♂️",text:"",type:1,order:2653,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_surfing_tone4"]},{label:"man surfing: dark skin tone",hexcode:"1F3C4-1F3FF-200D-2642-FE0F",emoji:"🏄🏿‍♂️",text:"",type:1,order:2655,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_surfing_tone5"]}],shortCodes:["man_surfing"]},{label:"woman surfing",hexcode:"1F3C4-200D-2640-FE0F",tags:["beach","ocean","person","sport","surf","surfer","surfing","swell","waves"],emoji:"🏄‍♀️",text:"",type:1,order:2657,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman surfing: light skin tone",hexcode:"1F3C4-1F3FB-200D-2640-FE0F",emoji:"🏄🏻‍♀️",text:"",type:1,order:2659,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_surfing_tone1"]},{label:"woman surfing: medium-light skin tone",hexcode:"1F3C4-1F3FC-200D-2640-FE0F",emoji:"🏄🏼‍♀️",text:"",type:1,order:2661,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_surfing_tone2"]},{label:"woman surfing: medium skin tone",hexcode:"1F3C4-1F3FD-200D-2640-FE0F",emoji:"🏄🏽‍♀️",text:"",type:1,order:2663,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_surfing_tone3"]},{label:"woman surfing: medium-dark skin tone",hexcode:"1F3C4-1F3FE-200D-2640-FE0F",emoji:"🏄🏾‍♀️",text:"",type:1,order:2665,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_surfing_tone4"]},{label:"woman surfing: dark skin tone",hexcode:"1F3C4-1F3FF-200D-2640-FE0F",emoji:"🏄🏿‍♀️",text:"",type:1,order:2667,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_surfing_tone5"]}],shortCodes:["woman_surfing"]},{label:"person rowing boat",hexcode:"1F6A3",tags:["boat","canoe","cruise","fishing","lake","oar","paddle","person","raft","river","row","rowboat","rowing"],emoji:"🚣",text:"",type:1,order:2669,group:1,subgroup:28,version:1,skins:[{label:"person rowing boat: light skin tone",hexcode:"1F6A3-1F3FB",emoji:"🚣🏻",text:"",type:1,order:2670,group:1,subgroup:28,version:1,tone:1,shortCodes:["person_rowing_boat_tone1","rowboat_tone1"]},{label:"person rowing boat: medium-light skin tone",hexcode:"1F6A3-1F3FC",emoji:"🚣🏼",text:"",type:1,order:2671,group:1,subgroup:28,version:1,tone:2,shortCodes:["person_rowing_boat_tone2","rowboat_tone2"]},{label:"person rowing boat: medium skin tone",hexcode:"1F6A3-1F3FD",emoji:"🚣🏽",text:"",type:1,order:2672,group:1,subgroup:28,version:1,tone:3,shortCodes:["person_rowing_boat_tone3","rowboat_tone3"]},{label:"person rowing boat: medium-dark skin tone",hexcode:"1F6A3-1F3FE",emoji:"🚣🏾",text:"",type:1,order:2673,group:1,subgroup:28,version:1,tone:4,shortCodes:["person_rowing_boat_tone4","rowboat_tone4"]},{label:"person rowing boat: dark skin tone",hexcode:"1F6A3-1F3FF",emoji:"🚣🏿",text:"",type:1,order:2674,group:1,subgroup:28,version:1,tone:5,shortCodes:["person_rowing_boat_tone5","rowboat_tone5"]}],shortCodes:["person_rowing_boat","rowboat"]},{label:"man rowing boat",hexcode:"1F6A3-200D-2642-FE0F",tags:["boat","canoe","cruise","fishing","lake","man","oar","paddle","raft","river","row","rowboat","rowing"],emoji:"🚣‍♂️",text:"",type:1,order:2675,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man rowing boat: light skin tone",hexcode:"1F6A3-1F3FB-200D-2642-FE0F",emoji:"🚣🏻‍♂️",text:"",type:1,order:2677,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_rowing_boat_tone1"]},{label:"man rowing boat: medium-light skin tone",hexcode:"1F6A3-1F3FC-200D-2642-FE0F",emoji:"🚣🏼‍♂️",text:"",type:1,order:2679,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_rowing_boat_tone2"]},{label:"man rowing boat: medium skin tone",hexcode:"1F6A3-1F3FD-200D-2642-FE0F",emoji:"🚣🏽‍♂️",text:"",type:1,order:2681,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_rowing_boat_tone3"]},{label:"man rowing boat: medium-dark skin tone",hexcode:"1F6A3-1F3FE-200D-2642-FE0F",emoji:"🚣🏾‍♂️",text:"",type:1,order:2683,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_rowing_boat_tone4"]},{label:"man rowing boat: dark skin tone",hexcode:"1F6A3-1F3FF-200D-2642-FE0F",emoji:"🚣🏿‍♂️",text:"",type:1,order:2685,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_rowing_boat_tone5"]}],shortCodes:["man_rowing_boat"]},{label:"woman rowing boat",hexcode:"1F6A3-200D-2640-FE0F",tags:["boat","canoe","cruise","fishing","lake","oar","paddle","raft","river","row","rowboat","rowing","woman"],emoji:"🚣‍♀️",text:"",type:1,order:2687,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman rowing boat: light skin tone",hexcode:"1F6A3-1F3FB-200D-2640-FE0F",emoji:"🚣🏻‍♀️",text:"",type:1,order:2689,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_rowing_boat_tone1"]},{label:"woman rowing boat: medium-light skin tone",hexcode:"1F6A3-1F3FC-200D-2640-FE0F",emoji:"🚣🏼‍♀️",text:"",type:1,order:2691,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_rowing_boat_tone2"]},{label:"woman rowing boat: medium skin tone",hexcode:"1F6A3-1F3FD-200D-2640-FE0F",emoji:"🚣🏽‍♀️",text:"",type:1,order:2693,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_rowing_boat_tone3"]},{label:"woman rowing boat: medium-dark skin tone",hexcode:"1F6A3-1F3FE-200D-2640-FE0F",emoji:"🚣🏾‍♀️",text:"",type:1,order:2695,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_rowing_boat_tone4"]},{label:"woman rowing boat: dark skin tone",hexcode:"1F6A3-1F3FF-200D-2640-FE0F",emoji:"🚣🏿‍♀️",text:"",type:1,order:2697,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_rowing_boat_tone5"]}],shortCodes:["woman_rowing_boat"]},{label:"person swimming",hexcode:"1F3CA",tags:["freestyle","person","sport","swim","swimmer","swimming","triathlon"],emoji:"🏊️",text:"🏊︎",type:1,order:2699,group:1,subgroup:28,version:.6,skins:[{label:"person swimming: light skin tone",hexcode:"1F3CA-1F3FB",emoji:"🏊🏻",text:"",type:1,order:2700,group:1,subgroup:28,version:1,tone:1,shortCodes:["person_swimming_tone1","swimmer_tone1","swimming_tone1"]},{label:"person swimming: medium-light skin tone",hexcode:"1F3CA-1F3FC",emoji:"🏊🏼",text:"",type:1,order:2701,group:1,subgroup:28,version:1,tone:2,shortCodes:["person_swimming_tone2","swimmer_tone2","swimming_tone2"]},{label:"person swimming: medium skin tone",hexcode:"1F3CA-1F3FD",emoji:"🏊🏽",text:"",type:1,order:2702,group:1,subgroup:28,version:1,tone:3,shortCodes:["person_swimming_tone3","swimmer_tone3","swimming_tone3"]},{label:"person swimming: medium-dark skin tone",hexcode:"1F3CA-1F3FE",emoji:"🏊🏾",text:"",type:1,order:2703,group:1,subgroup:28,version:1,tone:4,shortCodes:["person_swimming_tone4","swimmer_tone4","swimming_tone4"]},{label:"person swimming: dark skin tone",hexcode:"1F3CA-1F3FF",emoji:"🏊🏿",text:"",type:1,order:2704,group:1,subgroup:28,version:1,tone:5,shortCodes:["person_swimming_tone5","swimmer_tone5","swimming_tone5"]}],shortCodes:["person_swimming","swimmer","swimming"]},{label:"man swimming",hexcode:"1F3CA-200D-2642-FE0F",tags:["freestyle","man","sport","swim","swimmer","swimming","triathlon"],emoji:"🏊‍♂️",text:"",type:1,order:2705,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man swimming: light skin tone",hexcode:"1F3CA-1F3FB-200D-2642-FE0F",emoji:"🏊🏻‍♂️",text:"",type:1,order:2707,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_swimming_tone1"]},{label:"man swimming: medium-light skin tone",hexcode:"1F3CA-1F3FC-200D-2642-FE0F",emoji:"🏊🏼‍♂️",text:"",type:1,order:2709,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_swimming_tone2"]},{label:"man swimming: medium skin tone",hexcode:"1F3CA-1F3FD-200D-2642-FE0F",emoji:"🏊🏽‍♂️",text:"",type:1,order:2711,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_swimming_tone3"]},{label:"man swimming: medium-dark skin tone",hexcode:"1F3CA-1F3FE-200D-2642-FE0F",emoji:"🏊🏾‍♂️",text:"",type:1,order:2713,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_swimming_tone4"]},{label:"man swimming: dark skin tone",hexcode:"1F3CA-1F3FF-200D-2642-FE0F",emoji:"🏊🏿‍♂️",text:"",type:1,order:2715,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_swimming_tone5"]}],shortCodes:["man_swimming"]},{label:"woman swimming",hexcode:"1F3CA-200D-2640-FE0F",tags:["freestyle","man","sport","swim","swimmer","swimming","triathlon"],emoji:"🏊‍♀️",text:"",type:1,order:2717,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman swimming: light skin tone",hexcode:"1F3CA-1F3FB-200D-2640-FE0F",emoji:"🏊🏻‍♀️",text:"",type:1,order:2719,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_swimming_tone1"]},{label:"woman swimming: medium-light skin tone",hexcode:"1F3CA-1F3FC-200D-2640-FE0F",emoji:"🏊🏼‍♀️",text:"",type:1,order:2721,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_swimming_tone2"]},{label:"woman swimming: medium skin tone",hexcode:"1F3CA-1F3FD-200D-2640-FE0F",emoji:"🏊🏽‍♀️",text:"",type:1,order:2723,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_swimming_tone3"]},{label:"woman swimming: medium-dark skin tone",hexcode:"1F3CA-1F3FE-200D-2640-FE0F",emoji:"🏊🏾‍♀️",text:"",type:1,order:2725,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_swimming_tone4"]},{label:"woman swimming: dark skin tone",hexcode:"1F3CA-1F3FF-200D-2640-FE0F",emoji:"🏊🏿‍♀️",text:"",type:1,order:2727,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_swimming_tone5"]}],shortCodes:["woman_swimming"]},{label:"person bouncing ball",hexcode:"26F9",tags:["athletic","ball","basketball","bouncing","championship","dribble","net","person","player","throw"],emoji:"⛹️",text:"⛹︎",type:0,order:2730,group:1,subgroup:28,version:.7,skins:[{label:"person bouncing ball: light skin tone",hexcode:"26F9-1F3FB",emoji:"⛹🏻",text:"",type:1,order:2731,group:1,subgroup:28,version:2,tone:1,shortCodes:["person_bouncing_ball_tone1"]},{label:"person bouncing ball: medium-light skin tone",hexcode:"26F9-1F3FC",emoji:"⛹🏼",text:"",type:1,order:2732,group:1,subgroup:28,version:2,tone:2,shortCodes:["person_bouncing_ball_tone2"]},{label:"person bouncing ball: medium skin tone",hexcode:"26F9-1F3FD",emoji:"⛹🏽",text:"",type:1,order:2733,group:1,subgroup:28,version:2,tone:3,shortCodes:["person_bouncing_ball_tone3"]},{label:"person bouncing ball: medium-dark skin tone",hexcode:"26F9-1F3FE",emoji:"⛹🏾",text:"",type:1,order:2734,group:1,subgroup:28,version:2,tone:4,shortCodes:["person_bouncing_ball_tone4"]},{label:"person bouncing ball: dark skin tone",hexcode:"26F9-1F3FF",emoji:"⛹🏿",text:"",type:1,order:2735,group:1,subgroup:28,version:2,tone:5,shortCodes:["person_bouncing_ball_tone5"]}],shortCodes:["person_bouncing_ball"]},{label:"man bouncing ball",hexcode:"26F9-FE0F-200D-2642-FE0F",tags:["athletic","ball","basketball","bouncing","championship","dribble","man","net","player","throw"],emoji:"⛹️‍♂️",text:"",type:1,order:2736,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man bouncing ball: light skin tone",hexcode:"26F9-1F3FB-200D-2642-FE0F",emoji:"⛹🏻‍♂️",text:"",type:1,order:2740,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_bouncing_ball_tone1"]},{label:"man bouncing ball: medium-light skin tone",hexcode:"26F9-1F3FC-200D-2642-FE0F",emoji:"⛹🏼‍♂️",text:"",type:1,order:2742,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_bouncing_ball_tone2"]},{label:"man bouncing ball: medium skin tone",hexcode:"26F9-1F3FD-200D-2642-FE0F",emoji:"⛹🏽‍♂️",text:"",type:1,order:2744,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_bouncing_ball_tone3"]},{label:"man bouncing ball: medium-dark skin tone",hexcode:"26F9-1F3FE-200D-2642-FE0F",emoji:"⛹🏾‍♂️",text:"",type:1,order:2746,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_bouncing_ball_tone4"]},{label:"man bouncing ball: dark skin tone",hexcode:"26F9-1F3FF-200D-2642-FE0F",emoji:"⛹🏿‍♂️",text:"",type:1,order:2748,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_bouncing_ball_tone5"]}],shortCodes:["man_bouncing_ball"]},{label:"woman bouncing ball",hexcode:"26F9-FE0F-200D-2640-FE0F",tags:["athletic","ball","basketball","bouncing","championship","dribble","net","player","throw","woman"],emoji:"⛹️‍♀️",text:"",type:1,order:2750,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman bouncing ball: light skin tone",hexcode:"26F9-1F3FB-200D-2640-FE0F",emoji:"⛹🏻‍♀️",text:"",type:1,order:2754,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_bouncing_ball_tone1"]},{label:"woman bouncing ball: medium-light skin tone",hexcode:"26F9-1F3FC-200D-2640-FE0F",emoji:"⛹🏼‍♀️",text:"",type:1,order:2756,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_bouncing_ball_tone2"]},{label:"woman bouncing ball: medium skin tone",hexcode:"26F9-1F3FD-200D-2640-FE0F",emoji:"⛹🏽‍♀️",text:"",type:1,order:2758,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_bouncing_ball_tone3"]},{label:"woman bouncing ball: medium-dark skin tone",hexcode:"26F9-1F3FE-200D-2640-FE0F",emoji:"⛹🏾‍♀️",text:"",type:1,order:2760,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_bouncing_ball_tone4"]},{label:"woman bouncing ball: dark skin tone",hexcode:"26F9-1F3FF-200D-2640-FE0F",emoji:"⛹🏿‍♀️",text:"",type:1,order:2762,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_bouncing_ball_tone5"]}],shortCodes:["woman_bouncing_ball"]},{label:"person lifting weights",hexcode:"1F3CB",tags:["barbell","bodybuilder","deadlift","lifter","lifting","person","powerlifting","weight","weightlifter","weights","workout"],emoji:"🏋️",text:"🏋︎",type:0,order:2765,group:1,subgroup:28,version:.7,skins:[{label:"person lifting weights: light skin tone",hexcode:"1F3CB-1F3FB",emoji:"🏋🏻",text:"",type:1,order:2766,group:1,subgroup:28,version:2,tone:1,shortCodes:["person_lifting_weights_tone1","weight_lifter_tone1","weight_lifting_tone1"]},{label:"person lifting weights: medium-light skin tone",hexcode:"1F3CB-1F3FC",emoji:"🏋🏼",text:"",type:1,order:2767,group:1,subgroup:28,version:2,tone:2,shortCodes:["person_lifting_weights_tone2","weight_lifter_tone2","weight_lifting_tone2"]},{label:"person lifting weights: medium skin tone",hexcode:"1F3CB-1F3FD",emoji:"🏋🏽",text:"",type:1,order:2768,group:1,subgroup:28,version:2,tone:3,shortCodes:["person_lifting_weights_tone3","weight_lifter_tone3","weight_lifting_tone3"]},{label:"person lifting weights: medium-dark skin tone",hexcode:"1F3CB-1F3FE",emoji:"🏋🏾",text:"",type:1,order:2769,group:1,subgroup:28,version:2,tone:4,shortCodes:["person_lifting_weights_tone4","weight_lifter_tone4","weight_lifting_tone4"]},{label:"person lifting weights: dark skin tone",hexcode:"1F3CB-1F3FF",emoji:"🏋🏿",text:"",type:1,order:2770,group:1,subgroup:28,version:2,tone:5,shortCodes:["person_lifting_weights_tone5","weight_lifter_tone5","weight_lifting_tone5"]}],shortCodes:["person_lifting_weights","weight_lifter","weight_lifting"]},{label:"man lifting weights",hexcode:"1F3CB-FE0F-200D-2642-FE0F",tags:["barbell","bodybuilder","deadlift","lifter","lifting","man","powerlifting","weight","weightlifter","weights","workout"],emoji:"🏋️‍♂️",text:"",type:1,order:2771,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man lifting weights: light skin tone",hexcode:"1F3CB-1F3FB-200D-2642-FE0F",emoji:"🏋🏻‍♂️",text:"",type:1,order:2775,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_lifting_weights_tone1"]},{label:"man lifting weights: medium-light skin tone",hexcode:"1F3CB-1F3FC-200D-2642-FE0F",emoji:"🏋🏼‍♂️",text:"",type:1,order:2777,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_lifting_weights_tone2"]},{label:"man lifting weights: medium skin tone",hexcode:"1F3CB-1F3FD-200D-2642-FE0F",emoji:"🏋🏽‍♂️",text:"",type:1,order:2779,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_lifting_weights_tone3"]},{label:"man lifting weights: medium-dark skin tone",hexcode:"1F3CB-1F3FE-200D-2642-FE0F",emoji:"🏋🏾‍♂️",text:"",type:1,order:2781,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_lifting_weights_tone4"]},{label:"man lifting weights: dark skin tone",hexcode:"1F3CB-1F3FF-200D-2642-FE0F",emoji:"🏋🏿‍♂️",text:"",type:1,order:2783,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_lifting_weights_tone5"]}],shortCodes:["man_lifting_weights"]},{label:"woman lifting weights",hexcode:"1F3CB-FE0F-200D-2640-FE0F",tags:["barbell","bodybuilder","deadlift","lifter","lifting","powerlifting","weight","weightlifter","weights","woman","workout"],emoji:"🏋️‍♀️",text:"",type:1,order:2785,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman lifting weights: light skin tone",hexcode:"1F3CB-1F3FB-200D-2640-FE0F",emoji:"🏋🏻‍♀️",text:"",type:1,order:2789,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_lifting_weights_tone1"]},{label:"woman lifting weights: medium-light skin tone",hexcode:"1F3CB-1F3FC-200D-2640-FE0F",emoji:"🏋🏼‍♀️",text:"",type:1,order:2791,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_lifting_weights_tone2"]},{label:"woman lifting weights: medium skin tone",hexcode:"1F3CB-1F3FD-200D-2640-FE0F",emoji:"🏋🏽‍♀️",text:"",type:1,order:2793,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_lifting_weights_tone3"]},{label:"woman lifting weights: medium-dark skin tone",hexcode:"1F3CB-1F3FE-200D-2640-FE0F",emoji:"🏋🏾‍♀️",text:"",type:1,order:2795,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_lifting_weights_tone4"]},{label:"woman lifting weights: dark skin tone",hexcode:"1F3CB-1F3FF-200D-2640-FE0F",emoji:"🏋🏿‍♀️",text:"",type:1,order:2797,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_lifting_weights_tone5"]}],shortCodes:["woman_lifting_weights"]},{label:"person biking",hexcode:"1F6B4",tags:["bicycle","bicyclist","bike","biking","cycle","cyclist","person","riding","sport"],emoji:"🚴",text:"",type:1,order:2799,group:1,subgroup:28,version:1,skins:[{label:"person biking: light skin tone",hexcode:"1F6B4-1F3FB",emoji:"🚴🏻",text:"",type:1,order:2800,group:1,subgroup:28,version:1,tone:1,shortCodes:["bicyclist_tone1","biking_tone1","person_biking_tone1"]},{label:"person biking: medium-light skin tone",hexcode:"1F6B4-1F3FC",emoji:"🚴🏼",text:"",type:1,order:2801,group:1,subgroup:28,version:1,tone:2,shortCodes:["bicyclist_tone2","biking_tone2","person_biking_tone2"]},{label:"person biking: medium skin tone",hexcode:"1F6B4-1F3FD",emoji:"🚴🏽",text:"",type:1,order:2802,group:1,subgroup:28,version:1,tone:3,shortCodes:["bicyclist_tone3","biking_tone3","person_biking_tone3"]},{label:"person biking: medium-dark skin tone",hexcode:"1F6B4-1F3FE",emoji:"🚴🏾",text:"",type:1,order:2803,group:1,subgroup:28,version:1,tone:4,shortCodes:["bicyclist_tone4","biking_tone4","person_biking_tone4"]},{label:"person biking: dark skin tone",hexcode:"1F6B4-1F3FF",emoji:"🚴🏿",text:"",type:1,order:2804,group:1,subgroup:28,version:1,tone:5,shortCodes:["bicyclist_tone5","biking_tone5","person_biking_tone5"]}],shortCodes:["bicyclist","biking","person_biking"]},{label:"man biking",hexcode:"1F6B4-200D-2642-FE0F",tags:["bicycle","bicyclist","bike","biking","cycle","cyclist","man","riding","sport"],emoji:"🚴‍♂️",text:"",type:1,order:2805,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man biking: light skin tone",hexcode:"1F6B4-1F3FB-200D-2642-FE0F",emoji:"🚴🏻‍♂️",text:"",type:1,order:2807,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_biking_tone1"]},{label:"man biking: medium-light skin tone",hexcode:"1F6B4-1F3FC-200D-2642-FE0F",emoji:"🚴🏼‍♂️",text:"",type:1,order:2809,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_biking_tone2"]},{label:"man biking: medium skin tone",hexcode:"1F6B4-1F3FD-200D-2642-FE0F",emoji:"🚴🏽‍♂️",text:"",type:1,order:2811,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_biking_tone3"]},{label:"man biking: medium-dark skin tone",hexcode:"1F6B4-1F3FE-200D-2642-FE0F",emoji:"🚴🏾‍♂️",text:"",type:1,order:2813,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_biking_tone4"]},{label:"man biking: dark skin tone",hexcode:"1F6B4-1F3FF-200D-2642-FE0F",emoji:"🚴🏿‍♂️",text:"",type:1,order:2815,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_biking_tone5"]}],shortCodes:["man_biking"]},{label:"woman biking",hexcode:"1F6B4-200D-2640-FE0F",tags:["bicycle","bicyclist","bike","biking","cycle","cyclist","riding","sport","woman"],emoji:"🚴‍♀️",text:"",type:1,order:2817,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman biking: light skin tone",hexcode:"1F6B4-1F3FB-200D-2640-FE0F",emoji:"🚴🏻‍♀️",text:"",type:1,order:2819,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_biking_tone1"]},{label:"woman biking: medium-light skin tone",hexcode:"1F6B4-1F3FC-200D-2640-FE0F",emoji:"🚴🏼‍♀️",text:"",type:1,order:2821,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_biking_tone2"]},{label:"woman biking: medium skin tone",hexcode:"1F6B4-1F3FD-200D-2640-FE0F",emoji:"🚴🏽‍♀️",text:"",type:1,order:2823,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_biking_tone3"]},{label:"woman biking: medium-dark skin tone",hexcode:"1F6B4-1F3FE-200D-2640-FE0F",emoji:"🚴🏾‍♀️",text:"",type:1,order:2825,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_biking_tone4"]},{label:"woman biking: dark skin tone",hexcode:"1F6B4-1F3FF-200D-2640-FE0F",emoji:"🚴🏿‍♀️",text:"",type:1,order:2827,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_biking_tone5"]}],shortCodes:["woman_biking"]},{label:"person mountain biking",hexcode:"1F6B5",tags:["bicycle","bicyclist","bike","biking","cycle","cyclist","mountain","person","riding","sport"],emoji:"🚵",text:"",type:1,order:2829,group:1,subgroup:28,version:1,skins:[{label:"person mountain biking: light skin tone",hexcode:"1F6B5-1F3FB",emoji:"🚵🏻",text:"",type:1,order:2830,group:1,subgroup:28,version:1,tone:1,shortCodes:["mountain_bicyclist_tone1","mountain_biking_tone1","person_mountain_biking_tone1"]},{label:"person mountain biking: medium-light skin tone",hexcode:"1F6B5-1F3FC",emoji:"🚵🏼",text:"",type:1,order:2831,group:1,subgroup:28,version:1,tone:2,shortCodes:["mountain_bicyclist_tone2","mountain_biking_tone2","person_mountain_biking_tone2"]},{label:"person mountain biking: medium skin tone",hexcode:"1F6B5-1F3FD",emoji:"🚵🏽",text:"",type:1,order:2832,group:1,subgroup:28,version:1,tone:3,shortCodes:["mountain_bicyclist_tone3","mountain_biking_tone3","person_mountain_biking_tone3"]},{label:"person mountain biking: medium-dark skin tone",hexcode:"1F6B5-1F3FE",emoji:"🚵🏾",text:"",type:1,order:2833,group:1,subgroup:28,version:1,tone:4,shortCodes:["mountain_bicyclist_tone4","mountain_biking_tone4","person_mountain_biking_tone4"]},{label:"person mountain biking: dark skin tone",hexcode:"1F6B5-1F3FF",emoji:"🚵🏿",text:"",type:1,order:2834,group:1,subgroup:28,version:1,tone:5,shortCodes:["mountain_bicyclist_tone5","mountain_biking_tone5","person_mountain_biking_tone5"]}],shortCodes:["mountain_bicyclist","mountain_biking","person_mountain_biking"]},{label:"man mountain biking",hexcode:"1F6B5-200D-2642-FE0F",tags:["bicycle","bicyclist","bike","biking","cycle","cyclist","man","mountain","riding","sport"],emoji:"🚵‍♂️",text:"",type:1,order:2835,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man mountain biking: light skin tone",hexcode:"1F6B5-1F3FB-200D-2642-FE0F",emoji:"🚵🏻‍♂️",text:"",type:1,order:2837,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_mountain_biking_tone1"]},{label:"man mountain biking: medium-light skin tone",hexcode:"1F6B5-1F3FC-200D-2642-FE0F",emoji:"🚵🏼‍♂️",text:"",type:1,order:2839,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_mountain_biking_tone2"]},{label:"man mountain biking: medium skin tone",hexcode:"1F6B5-1F3FD-200D-2642-FE0F",emoji:"🚵🏽‍♂️",text:"",type:1,order:2841,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_mountain_biking_tone3"]},{label:"man mountain biking: medium-dark skin tone",hexcode:"1F6B5-1F3FE-200D-2642-FE0F",emoji:"🚵🏾‍♂️",text:"",type:1,order:2843,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_mountain_biking_tone4"]},{label:"man mountain biking: dark skin tone",hexcode:"1F6B5-1F3FF-200D-2642-FE0F",emoji:"🚵🏿‍♂️",text:"",type:1,order:2845,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_mountain_biking_tone5"]}],shortCodes:["man_mountain_biking"]},{label:"woman mountain biking",hexcode:"1F6B5-200D-2640-FE0F",tags:["bicycle","bicyclist","bike","biking","cycle","cyclist","mountain","riding","sport","woman"],emoji:"🚵‍♀️",text:"",type:1,order:2847,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman mountain biking: light skin tone",hexcode:"1F6B5-1F3FB-200D-2640-FE0F",emoji:"🚵🏻‍♀️",text:"",type:1,order:2849,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_mountain_biking_tone1"]},{label:"woman mountain biking: medium-light skin tone",hexcode:"1F6B5-1F3FC-200D-2640-FE0F",emoji:"🚵🏼‍♀️",text:"",type:1,order:2851,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_mountain_biking_tone2"]},{label:"woman mountain biking: medium skin tone",hexcode:"1F6B5-1F3FD-200D-2640-FE0F",emoji:"🚵🏽‍♀️",text:"",type:1,order:2853,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_mountain_biking_tone3"]},{label:"woman mountain biking: medium-dark skin tone",hexcode:"1F6B5-1F3FE-200D-2640-FE0F",emoji:"🚵🏾‍♀️",text:"",type:1,order:2855,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_mountain_biking_tone4"]},{label:"woman mountain biking: dark skin tone",hexcode:"1F6B5-1F3FF-200D-2640-FE0F",emoji:"🚵🏿‍♀️",text:"",type:1,order:2857,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_mountain_biking_tone5"]}],shortCodes:["woman_mountain_biking"]},{label:"person cartwheeling",hexcode:"1F938",tags:["active","cartwheel","cartwheeling","excited","flip","gymnastics","happy","person","somersault"],emoji:"🤸",text:"",type:1,order:2859,group:1,subgroup:28,version:3,skins:[{label:"person cartwheeling: light skin tone",hexcode:"1F938-1F3FB",emoji:"🤸🏻",text:"",type:1,order:2860,group:1,subgroup:28,version:3,tone:1,shortCodes:["cartwheeling_tone1","person_cartwheel_tone1"]},{label:"person cartwheeling: medium-light skin tone",hexcode:"1F938-1F3FC",emoji:"🤸🏼",text:"",type:1,order:2861,group:1,subgroup:28,version:3,tone:2,shortCodes:["cartwheeling_tone2","person_cartwheel_tone2"]},{label:"person cartwheeling: medium skin tone",hexcode:"1F938-1F3FD",emoji:"🤸🏽",text:"",type:1,order:2862,group:1,subgroup:28,version:3,tone:3,shortCodes:["cartwheeling_tone3","person_cartwheel_tone3"]},{label:"person cartwheeling: medium-dark skin tone",hexcode:"1F938-1F3FE",emoji:"🤸🏾",text:"",type:1,order:2863,group:1,subgroup:28,version:3,tone:4,shortCodes:["cartwheeling_tone4","person_cartwheel_tone4"]},{label:"person cartwheeling: dark skin tone",hexcode:"1F938-1F3FF",emoji:"🤸🏿",text:"",type:1,order:2864,group:1,subgroup:28,version:3,tone:5,shortCodes:["cartwheeling_tone5","person_cartwheel_tone5"]}],shortCodes:["cartwheeling","person_cartwheel"]},{label:"man cartwheeling",hexcode:"1F938-200D-2642-FE0F",tags:["active","cartwheel","cartwheeling","excited","flip","gymnastics","happy","man","somersault"],emoji:"🤸‍♂️",text:"",type:1,order:2865,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man cartwheeling: light skin tone",hexcode:"1F938-1F3FB-200D-2642-FE0F",emoji:"🤸🏻‍♂️",text:"",type:1,order:2867,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_cartwheeling_tone1"]},{label:"man cartwheeling: medium-light skin tone",hexcode:"1F938-1F3FC-200D-2642-FE0F",emoji:"🤸🏼‍♂️",text:"",type:1,order:2869,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_cartwheeling_tone2"]},{label:"man cartwheeling: medium skin tone",hexcode:"1F938-1F3FD-200D-2642-FE0F",emoji:"🤸🏽‍♂️",text:"",type:1,order:2871,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_cartwheeling_tone3"]},{label:"man cartwheeling: medium-dark skin tone",hexcode:"1F938-1F3FE-200D-2642-FE0F",emoji:"🤸🏾‍♂️",text:"",type:1,order:2873,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_cartwheeling_tone4"]},{label:"man cartwheeling: dark skin tone",hexcode:"1F938-1F3FF-200D-2642-FE0F",emoji:"🤸🏿‍♂️",text:"",type:1,order:2875,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_cartwheeling_tone5"]}],shortCodes:["man_cartwheeling"]},{label:"woman cartwheeling",hexcode:"1F938-200D-2640-FE0F",tags:["active","cartwheel","cartwheeling","excited","flip","gymnastics","happy","somersault","woman"],emoji:"🤸‍♀️",text:"",type:1,order:2877,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman cartwheeling: light skin tone",hexcode:"1F938-1F3FB-200D-2640-FE0F",emoji:"🤸🏻‍♀️",text:"",type:1,order:2879,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_cartwheeling_tone1"]},{label:"woman cartwheeling: medium-light skin tone",hexcode:"1F938-1F3FC-200D-2640-FE0F",emoji:"🤸🏼‍♀️",text:"",type:1,order:2881,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_cartwheeling_tone2"]},{label:"woman cartwheeling: medium skin tone",hexcode:"1F938-1F3FD-200D-2640-FE0F",emoji:"🤸🏽‍♀️",text:"",type:1,order:2883,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_cartwheeling_tone3"]},{label:"woman cartwheeling: medium-dark skin tone",hexcode:"1F938-1F3FE-200D-2640-FE0F",emoji:"🤸🏾‍♀️",text:"",type:1,order:2885,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_cartwheeling_tone4"]},{label:"woman cartwheeling: dark skin tone",hexcode:"1F938-1F3FF-200D-2640-FE0F",emoji:"🤸🏿‍♀️",text:"",type:1,order:2887,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_cartwheeling_tone5"]}],shortCodes:["woman_cartwheeling"]},{label:"people wrestling",hexcode:"1F93C",tags:["combat","duel","grapple","people","ring","tournament","wrestle","wrestling"],emoji:"🤼",text:"",type:1,order:2889,group:1,subgroup:28,version:3,skins:[{label:"people wrestling: light skin tone",hexcode:"1F93C-1F3FB",emoji:"🤼🏻",text:"",type:1,order:2890,group:1,subgroup:28,version:17,tone:1,shortCodes:["people_wrestling_tone1","wrestlers_tone1","wrestling_tone1"]},{label:"people wrestling: medium-light skin tone",hexcode:"1F93C-1F3FC",emoji:"🤼🏼",text:"",type:1,order:2891,group:1,subgroup:28,version:17,tone:2,shortCodes:["people_wrestling_tone2","wrestlers_tone2","wrestling_tone2"]},{label:"people wrestling: medium skin tone",hexcode:"1F93C-1F3FD",emoji:"🤼🏽",text:"",type:1,order:2892,group:1,subgroup:28,version:17,tone:3,shortCodes:["people_wrestling_tone3","wrestlers_tone3","wrestling_tone3"]},{label:"people wrestling: medium-dark skin tone",hexcode:"1F93C-1F3FE",emoji:"🤼🏾",text:"",type:1,order:2893,group:1,subgroup:28,version:17,tone:4,shortCodes:["people_wrestling_tone4","wrestlers_tone4","wrestling_tone4"]},{label:"people wrestling: dark skin tone",hexcode:"1F93C-1F3FF",emoji:"🤼🏿",text:"",type:1,order:2894,group:1,subgroup:28,version:17,tone:5,shortCodes:["people_wrestling_tone5","wrestlers_tone5","wrestling_tone5"]},{label:"people wrestling: light skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FB-200D-1FAEF-200D-1F9D1-1F3FC",emoji:"🧑🏻‍🫯‍🧑🏼",text:"",type:1,order:2919,group:1,subgroup:28,version:17,tone:[1,2],shortCodes:["people_wrestling_tone1-2","wrestlers_tone1-2","wrestling_tone1-2"]},{label:"people wrestling: light skin tone, medium skin tone",hexcode:"1F9D1-1F3FB-200D-1FAEF-200D-1F9D1-1F3FD",emoji:"🧑🏻‍🫯‍🧑🏽",text:"",type:1,order:2920,group:1,subgroup:28,version:17,tone:[1,3],shortCodes:["people_wrestling_tone1-3","wrestlers_tone1-3","wrestling_tone1-3"]},{label:"people wrestling: light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FB-200D-1FAEF-200D-1F9D1-1F3FE",emoji:"🧑🏻‍🫯‍🧑🏾",text:"",type:1,order:2921,group:1,subgroup:28,version:17,tone:[1,4],shortCodes:["people_wrestling_tone1-4","wrestlers_tone1-4","wrestling_tone1-4"]},{label:"people wrestling: light skin tone, dark skin tone",hexcode:"1F9D1-1F3FB-200D-1FAEF-200D-1F9D1-1F3FF",emoji:"🧑🏻‍🫯‍🧑🏿",text:"",type:1,order:2922,group:1,subgroup:28,version:17,tone:[1,5],shortCodes:["people_wrestling_tone1-5","wrestlers_tone1-5","wrestling_tone1-5"]},{label:"people wrestling: medium-light skin tone, light skin tone",hexcode:"1F9D1-1F3FC-200D-1FAEF-200D-1F9D1-1F3FB",emoji:"🧑🏼‍🫯‍🧑🏻",text:"",type:1,order:2923,group:1,subgroup:28,version:17,tone:[2,1],shortCodes:["people_wrestling_tone2-1","wrestlers_tone2-1","wrestling_tone2-1"]},{label:"people wrestling: medium-light skin tone, medium skin tone",hexcode:"1F9D1-1F3FC-200D-1FAEF-200D-1F9D1-1F3FD",emoji:"🧑🏼‍🫯‍🧑🏽",text:"",type:1,order:2924,group:1,subgroup:28,version:17,tone:[2,3],shortCodes:["people_wrestling_tone2-3","wrestlers_tone2-3","wrestling_tone2-3"]},{label:"people wrestling: medium-light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FC-200D-1FAEF-200D-1F9D1-1F3FE",emoji:"🧑🏼‍🫯‍🧑🏾",text:"",type:1,order:2925,group:1,subgroup:28,version:17,tone:[2,4],shortCodes:["people_wrestling_tone2-4","wrestlers_tone2-4","wrestling_tone2-4"]},{label:"people wrestling: medium-light skin tone, dark skin tone",hexcode:"1F9D1-1F3FC-200D-1FAEF-200D-1F9D1-1F3FF",emoji:"🧑🏼‍🫯‍🧑🏿",text:"",type:1,order:2926,group:1,subgroup:28,version:17,tone:[2,5],shortCodes:["people_wrestling_tone2-5","wrestlers_tone2-5","wrestling_tone2-5"]},{label:"people wrestling: medium skin tone, light skin tone",hexcode:"1F9D1-1F3FD-200D-1FAEF-200D-1F9D1-1F3FB",emoji:"🧑🏽‍🫯‍🧑🏻",text:"",type:1,order:2927,group:1,subgroup:28,version:17,tone:[3,1],shortCodes:["people_wrestling_tone3-1","wrestlers_tone3-1","wrestling_tone3-1"]},{label:"people wrestling: medium skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FD-200D-1FAEF-200D-1F9D1-1F3FC",emoji:"🧑🏽‍🫯‍🧑🏼",text:"",type:1,order:2928,group:1,subgroup:28,version:17,tone:[3,2],shortCodes:["people_wrestling_tone3-2","wrestlers_tone3-2","wrestling_tone3-2"]},{label:"people wrestling: medium skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FD-200D-1FAEF-200D-1F9D1-1F3FE",emoji:"🧑🏽‍🫯‍🧑🏾",text:"",type:1,order:2929,group:1,subgroup:28,version:17,tone:[3,4],shortCodes:["people_wrestling_tone3-4","wrestlers_tone3-4","wrestling_tone3-4"]},{label:"people wrestling: medium skin tone, dark skin tone",hexcode:"1F9D1-1F3FD-200D-1FAEF-200D-1F9D1-1F3FF",emoji:"🧑🏽‍🫯‍🧑🏿",text:"",type:1,order:2930,group:1,subgroup:28,version:17,tone:[3,5],shortCodes:["people_wrestling_tone3-5","wrestlers_tone3-5","wrestling_tone3-5"]},{label:"people wrestling: medium-dark skin tone, light skin tone",hexcode:"1F9D1-1F3FE-200D-1FAEF-200D-1F9D1-1F3FB",emoji:"🧑🏾‍🫯‍🧑🏻",text:"",type:1,order:2931,group:1,subgroup:28,version:17,tone:[4,1],shortCodes:["people_wrestling_tone4-1","wrestlers_tone4-1","wrestling_tone4-1"]},{label:"people wrestling: medium-dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FE-200D-1FAEF-200D-1F9D1-1F3FC",emoji:"🧑🏾‍🫯‍🧑🏼",text:"",type:1,order:2932,group:1,subgroup:28,version:17,tone:[4,2],shortCodes:["people_wrestling_tone4-2","wrestlers_tone4-2","wrestling_tone4-2"]},{label:"people wrestling: medium-dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FE-200D-1FAEF-200D-1F9D1-1F3FD",emoji:"🧑🏾‍🫯‍🧑🏽",text:"",type:1,order:2933,group:1,subgroup:28,version:17,tone:[4,3],shortCodes:["people_wrestling_tone4-3","wrestlers_tone4-3","wrestling_tone4-3"]},{label:"people wrestling: medium-dark skin tone, dark skin tone",hexcode:"1F9D1-1F3FE-200D-1FAEF-200D-1F9D1-1F3FF",emoji:"🧑🏾‍🫯‍🧑🏿",text:"",type:1,order:2934,group:1,subgroup:28,version:17,tone:[4,5],shortCodes:["people_wrestling_tone4-5","wrestlers_tone4-5","wrestling_tone4-5"]},{label:"people wrestling: dark skin tone, light skin tone",hexcode:"1F9D1-1F3FF-200D-1FAEF-200D-1F9D1-1F3FB",emoji:"🧑🏿‍🫯‍🧑🏻",text:"",type:1,order:2935,group:1,subgroup:28,version:17,tone:[5,1],shortCodes:["people_wrestling_tone5-1","wrestlers_tone5-1","wrestling_tone5-1"]},{label:"people wrestling: dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FF-200D-1FAEF-200D-1F9D1-1F3FC",emoji:"🧑🏿‍🫯‍🧑🏼",text:"",type:1,order:2936,group:1,subgroup:28,version:17,tone:[5,2],shortCodes:["people_wrestling_tone5-2","wrestlers_tone5-2","wrestling_tone5-2"]},{label:"people wrestling: dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FF-200D-1FAEF-200D-1F9D1-1F3FD",emoji:"🧑🏿‍🫯‍🧑🏽",text:"",type:1,order:2937,group:1,subgroup:28,version:17,tone:[5,3],shortCodes:["people_wrestling_tone5-3","wrestlers_tone5-3","wrestling_tone5-3"]},{label:"people wrestling: dark skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FF-200D-1FAEF-200D-1F9D1-1F3FE",emoji:"🧑🏿‍🫯‍🧑🏾",text:"",type:1,order:2938,group:1,subgroup:28,version:17,tone:[5,4],shortCodes:["people_wrestling_tone5-4","wrestlers_tone5-4","wrestling_tone5-4"]}],shortCodes:["people_wrestling","wrestlers","wrestling"]},{label:"men wrestling",hexcode:"1F93C-200D-2642-FE0F",tags:["combat","duel","grapple","men","ring","tournament","wrestle","wrestling"],emoji:"🤼‍♂️",text:"",type:1,order:2895,group:1,subgroup:28,version:4,gender:1,skins:[{label:"men wrestling: light skin tone, medium-light skin tone",hexcode:"1F468-1F3FB-200D-1FAEF-200D-1F468-1F3FC",emoji:"👨🏻‍🫯‍👨🏼",text:"",type:1,order:2939,group:1,subgroup:28,version:17,tone:[1,2],shortCodes:["men_wrestling_tone1-2"]},{label:"men wrestling: light skin tone, medium skin tone",hexcode:"1F468-1F3FB-200D-1FAEF-200D-1F468-1F3FD",emoji:"👨🏻‍🫯‍👨🏽",text:"",type:1,order:2940,group:1,subgroup:28,version:17,tone:[1,3],shortCodes:["men_wrestling_tone1-3"]},{label:"men wrestling: light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FB-200D-1FAEF-200D-1F468-1F3FE",emoji:"👨🏻‍🫯‍👨🏾",text:"",type:1,order:2941,group:1,subgroup:28,version:17,tone:[1,4],shortCodes:["men_wrestling_tone1-4"]},{label:"men wrestling: light skin tone, dark skin tone",hexcode:"1F468-1F3FB-200D-1FAEF-200D-1F468-1F3FF",emoji:"👨🏻‍🫯‍👨🏿",text:"",type:1,order:2942,group:1,subgroup:28,version:17,tone:[1,5],shortCodes:["men_wrestling_tone1-5"]},{label:"men wrestling: medium-light skin tone, light skin tone",hexcode:"1F468-1F3FC-200D-1FAEF-200D-1F468-1F3FB",emoji:"👨🏼‍🫯‍👨🏻",text:"",type:1,order:2943,group:1,subgroup:28,version:17,tone:[2,1],shortCodes:["men_wrestling_tone2-1"]},{label:"men wrestling: medium-light skin tone, medium skin tone",hexcode:"1F468-1F3FC-200D-1FAEF-200D-1F468-1F3FD",emoji:"👨🏼‍🫯‍👨🏽",text:"",type:1,order:2944,group:1,subgroup:28,version:17,tone:[2,3],shortCodes:["men_wrestling_tone2-3"]},{label:"men wrestling: medium-light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FC-200D-1FAEF-200D-1F468-1F3FE",emoji:"👨🏼‍🫯‍👨🏾",text:"",type:1,order:2945,group:1,subgroup:28,version:17,tone:[2,4],shortCodes:["men_wrestling_tone2-4"]},{label:"men wrestling: medium-light skin tone, dark skin tone",hexcode:"1F468-1F3FC-200D-1FAEF-200D-1F468-1F3FF",emoji:"👨🏼‍🫯‍👨🏿",text:"",type:1,order:2946,group:1,subgroup:28,version:17,tone:[2,5],shortCodes:["men_wrestling_tone2-5"]},{label:"men wrestling: medium skin tone, light skin tone",hexcode:"1F468-1F3FD-200D-1FAEF-200D-1F468-1F3FB",emoji:"👨🏽‍🫯‍👨🏻",text:"",type:1,order:2947,group:1,subgroup:28,version:17,tone:[3,1],shortCodes:["men_wrestling_tone3-1"]},{label:"men wrestling: medium skin tone, medium-light skin tone",hexcode:"1F468-1F3FD-200D-1FAEF-200D-1F468-1F3FC",emoji:"👨🏽‍🫯‍👨🏼",text:"",type:1,order:2948,group:1,subgroup:28,version:17,tone:[3,2],shortCodes:["men_wrestling_tone3-2"]},{label:"men wrestling: medium skin tone, medium-dark skin tone",hexcode:"1F468-1F3FD-200D-1FAEF-200D-1F468-1F3FE",emoji:"👨🏽‍🫯‍👨🏾",text:"",type:1,order:2949,group:1,subgroup:28,version:17,tone:[3,4],shortCodes:["men_wrestling_tone3-4"]},{label:"men wrestling: medium skin tone, dark skin tone",hexcode:"1F468-1F3FD-200D-1FAEF-200D-1F468-1F3FF",emoji:"👨🏽‍🫯‍👨🏿",text:"",type:1,order:2950,group:1,subgroup:28,version:17,tone:[3,5],shortCodes:["men_wrestling_tone3-5"]},{label:"men wrestling: medium-dark skin tone, light skin tone",hexcode:"1F468-1F3FE-200D-1FAEF-200D-1F468-1F3FB",emoji:"👨🏾‍🫯‍👨🏻",text:"",type:1,order:2951,group:1,subgroup:28,version:17,tone:[4,1],shortCodes:["men_wrestling_tone4-1"]},{label:"men wrestling: medium-dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FE-200D-1FAEF-200D-1F468-1F3FC",emoji:"👨🏾‍🫯‍👨🏼",text:"",type:1,order:2952,group:1,subgroup:28,version:17,tone:[4,2],shortCodes:["men_wrestling_tone4-2"]},{label:"men wrestling: medium-dark skin tone, medium skin tone",hexcode:"1F468-1F3FE-200D-1FAEF-200D-1F468-1F3FD",emoji:"👨🏾‍🫯‍👨🏽",text:"",type:1,order:2953,group:1,subgroup:28,version:17,tone:[4,3],shortCodes:["men_wrestling_tone4-3"]},{label:"men wrestling: medium-dark skin tone, dark skin tone",hexcode:"1F468-1F3FE-200D-1FAEF-200D-1F468-1F3FF",emoji:"👨🏾‍🫯‍👨🏿",text:"",type:1,order:2954,group:1,subgroup:28,version:17,tone:[4,5],shortCodes:["men_wrestling_tone4-5"]},{label:"men wrestling: dark skin tone, light skin tone",hexcode:"1F468-1F3FF-200D-1FAEF-200D-1F468-1F3FB",emoji:"👨🏿‍🫯‍👨🏻",text:"",type:1,order:2955,group:1,subgroup:28,version:17,tone:[5,1],shortCodes:["men_wrestling_tone5-1"]},{label:"men wrestling: dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FF-200D-1FAEF-200D-1F468-1F3FC",emoji:"👨🏿‍🫯‍👨🏼",text:"",type:1,order:2956,group:1,subgroup:28,version:17,tone:[5,2],shortCodes:["men_wrestling_tone5-2"]},{label:"men wrestling: dark skin tone, medium skin tone",hexcode:"1F468-1F3FF-200D-1FAEF-200D-1F468-1F3FD",emoji:"👨🏿‍🫯‍👨🏽",text:"",type:1,order:2957,group:1,subgroup:28,version:17,tone:[5,3],shortCodes:["men_wrestling_tone5-3"]},{label:"men wrestling: dark skin tone, medium-dark skin tone",hexcode:"1F468-1F3FF-200D-1FAEF-200D-1F468-1F3FE",emoji:"👨🏿‍🫯‍👨🏾",text:"",type:1,order:2958,group:1,subgroup:28,version:17,tone:[5,4],shortCodes:["men_wrestling_tone5-4"]},{label:"men wrestling: light skin tone",hexcode:"1F93C-1F3FB-200D-2642-FE0F",emoji:"🤼🏻‍♂️",text:"",type:1,order:2897,group:1,subgroup:28,version:17,gender:1,tone:1,shortCodes:["men_wrestling_tone1"]},{label:"men wrestling: medium-light skin tone",hexcode:"1F93C-1F3FC-200D-2642-FE0F",emoji:"🤼🏼‍♂️",text:"",type:1,order:2899,group:1,subgroup:28,version:17,gender:1,tone:2,shortCodes:["men_wrestling_tone2"]},{label:"men wrestling: medium skin tone",hexcode:"1F93C-1F3FD-200D-2642-FE0F",emoji:"🤼🏽‍♂️",text:"",type:1,order:2901,group:1,subgroup:28,version:17,gender:1,tone:3,shortCodes:["men_wrestling_tone3"]},{label:"men wrestling: medium-dark skin tone",hexcode:"1F93C-1F3FE-200D-2642-FE0F",emoji:"🤼🏾‍♂️",text:"",type:1,order:2903,group:1,subgroup:28,version:17,gender:1,tone:4,shortCodes:["men_wrestling_tone4"]},{label:"men wrestling: dark skin tone",hexcode:"1F93C-1F3FF-200D-2642-FE0F",emoji:"🤼🏿‍♂️",text:"",type:1,order:2905,group:1,subgroup:28,version:17,gender:1,tone:5,shortCodes:["men_wrestling_tone5"]}],shortCodes:["men_wrestling"]},{label:"women wrestling",hexcode:"1F93C-200D-2640-FE0F",tags:["combat","duel","grapple","ring","tournament","women","wrestle","wrestling"],emoji:"🤼‍♀️",text:"",type:1,order:2907,group:1,subgroup:28,version:4,gender:0,skins:[{label:"women wrestling: light skin tone, medium-light skin tone",hexcode:"1F469-1F3FB-200D-1FAEF-200D-1F469-1F3FC",emoji:"👩🏻‍🫯‍👩🏼",text:"",type:1,order:2959,group:1,subgroup:28,version:17,tone:[1,2],shortCodes:["women_wrestling_tone1-2"]},{label:"women wrestling: light skin tone, medium skin tone",hexcode:"1F469-1F3FB-200D-1FAEF-200D-1F469-1F3FD",emoji:"👩🏻‍🫯‍👩🏽",text:"",type:1,order:2960,group:1,subgroup:28,version:17,tone:[1,3],shortCodes:["women_wrestling_tone1-3"]},{label:"women wrestling: light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FB-200D-1FAEF-200D-1F469-1F3FE",emoji:"👩🏻‍🫯‍👩🏾",text:"",type:1,order:2961,group:1,subgroup:28,version:17,tone:[1,4],shortCodes:["women_wrestling_tone1-4"]},{label:"women wrestling: light skin tone, dark skin tone",hexcode:"1F469-1F3FB-200D-1FAEF-200D-1F469-1F3FF",emoji:"👩🏻‍🫯‍👩🏿",text:"",type:1,order:2962,group:1,subgroup:28,version:17,tone:[1,5],shortCodes:["women_wrestling_tone1-5"]},{label:"women wrestling: medium-light skin tone, light skin tone",hexcode:"1F469-1F3FC-200D-1FAEF-200D-1F469-1F3FB",emoji:"👩🏼‍🫯‍👩🏻",text:"",type:1,order:2963,group:1,subgroup:28,version:17,tone:[2,1],shortCodes:["women_wrestling_tone2-1"]},{label:"women wrestling: medium-light skin tone, medium skin tone",hexcode:"1F469-1F3FC-200D-1FAEF-200D-1F469-1F3FD",emoji:"👩🏼‍🫯‍👩🏽",text:"",type:1,order:2964,group:1,subgroup:28,version:17,tone:[2,3],shortCodes:["women_wrestling_tone2-3"]},{label:"women wrestling: medium-light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FC-200D-1FAEF-200D-1F469-1F3FE",emoji:"👩🏼‍🫯‍👩🏾",text:"",type:1,order:2965,group:1,subgroup:28,version:17,tone:[2,4],shortCodes:["women_wrestling_tone2-4"]},{label:"women wrestling: medium-light skin tone, dark skin tone",hexcode:"1F469-1F3FC-200D-1FAEF-200D-1F469-1F3FF",emoji:"👩🏼‍🫯‍👩🏿",text:"",type:1,order:2966,group:1,subgroup:28,version:17,tone:[2,5],shortCodes:["women_wrestling_tone2-5"]},{label:"women wrestling: medium skin tone, light skin tone",hexcode:"1F469-1F3FD-200D-1FAEF-200D-1F469-1F3FB",emoji:"👩🏽‍🫯‍👩🏻",text:"",type:1,order:2967,group:1,subgroup:28,version:17,tone:[3,1],shortCodes:["women_wrestling_tone3-1"]},{label:"women wrestling: medium skin tone, medium-light skin tone",hexcode:"1F469-1F3FD-200D-1FAEF-200D-1F469-1F3FC",emoji:"👩🏽‍🫯‍👩🏼",text:"",type:1,order:2968,group:1,subgroup:28,version:17,tone:[3,2],shortCodes:["women_wrestling_tone3-2"]},{label:"women wrestling: medium skin tone, medium-dark skin tone",hexcode:"1F469-1F3FD-200D-1FAEF-200D-1F469-1F3FE",emoji:"👩🏽‍🫯‍👩🏾",text:"",type:1,order:2969,group:1,subgroup:28,version:17,tone:[3,4],shortCodes:["women_wrestling_tone3-4"]},{label:"women wrestling: medium skin tone, dark skin tone",hexcode:"1F469-1F3FD-200D-1FAEF-200D-1F469-1F3FF",emoji:"👩🏽‍🫯‍👩🏿",text:"",type:1,order:2970,group:1,subgroup:28,version:17,tone:[3,5],shortCodes:["women_wrestling_tone3-5"]},{label:"women wrestling: medium-dark skin tone, light skin tone",hexcode:"1F469-1F3FE-200D-1FAEF-200D-1F469-1F3FB",emoji:"👩🏾‍🫯‍👩🏻",text:"",type:1,order:2971,group:1,subgroup:28,version:17,tone:[4,1],shortCodes:["women_wrestling_tone4-1"]},{label:"women wrestling: medium-dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FE-200D-1FAEF-200D-1F469-1F3FC",emoji:"👩🏾‍🫯‍👩🏼",text:"",type:1,order:2972,group:1,subgroup:28,version:17,tone:[4,2],shortCodes:["women_wrestling_tone4-2"]},{label:"women wrestling: medium-dark skin tone, medium skin tone",hexcode:"1F469-1F3FE-200D-1FAEF-200D-1F469-1F3FD",emoji:"👩🏾‍🫯‍👩🏽",text:"",type:1,order:2973,group:1,subgroup:28,version:17,tone:[4,3],shortCodes:["women_wrestling_tone4-3"]},{label:"women wrestling: medium-dark skin tone, dark skin tone",hexcode:"1F469-1F3FE-200D-1FAEF-200D-1F469-1F3FF",emoji:"👩🏾‍🫯‍👩🏿",text:"",type:1,order:2974,group:1,subgroup:28,version:17,tone:[4,5],shortCodes:["women_wrestling_tone4-5"]},{label:"women wrestling: dark skin tone, light skin tone",hexcode:"1F469-1F3FF-200D-1FAEF-200D-1F469-1F3FB",emoji:"👩🏿‍🫯‍👩🏻",text:"",type:1,order:2975,group:1,subgroup:28,version:17,tone:[5,1],shortCodes:["women_wrestling_tone5-1"]},{label:"women wrestling: dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FF-200D-1FAEF-200D-1F469-1F3FC",emoji:"👩🏿‍🫯‍👩🏼",text:"",type:1,order:2976,group:1,subgroup:28,version:17,tone:[5,2],shortCodes:["women_wrestling_tone5-2"]},{label:"women wrestling: dark skin tone, medium skin tone",hexcode:"1F469-1F3FF-200D-1FAEF-200D-1F469-1F3FD",emoji:"👩🏿‍🫯‍👩🏽",text:"",type:1,order:2977,group:1,subgroup:28,version:17,tone:[5,3],shortCodes:["women_wrestling_tone5-3"]},{label:"women wrestling: dark skin tone, medium-dark skin tone",hexcode:"1F469-1F3FF-200D-1FAEF-200D-1F469-1F3FE",emoji:"👩🏿‍🫯‍👩🏾",text:"",type:1,order:2978,group:1,subgroup:28,version:17,tone:[5,4],shortCodes:["women_wrestling_tone5-4"]},{label:"women wrestling: light skin tone",hexcode:"1F93C-1F3FB-200D-2640-FE0F",emoji:"🤼🏻‍♀️",text:"",type:1,order:2909,group:1,subgroup:28,version:17,gender:0,tone:1,shortCodes:["women_wrestling_tone1"]},{label:"women wrestling: medium-light skin tone",hexcode:"1F93C-1F3FC-200D-2640-FE0F",emoji:"🤼🏼‍♀️",text:"",type:1,order:2911,group:1,subgroup:28,version:17,gender:0,tone:2,shortCodes:["women_wrestling_tone2"]},{label:"women wrestling: medium skin tone",hexcode:"1F93C-1F3FD-200D-2640-FE0F",emoji:"🤼🏽‍♀️",text:"",type:1,order:2913,group:1,subgroup:28,version:17,gender:0,tone:3,shortCodes:["women_wrestling_tone3"]},{label:"women wrestling: medium-dark skin tone",hexcode:"1F93C-1F3FE-200D-2640-FE0F",emoji:"🤼🏾‍♀️",text:"",type:1,order:2915,group:1,subgroup:28,version:17,gender:0,tone:4,shortCodes:["women_wrestling_tone4"]},{label:"women wrestling: dark skin tone",hexcode:"1F93C-1F3FF-200D-2640-FE0F",emoji:"🤼🏿‍♀️",text:"",type:1,order:2917,group:1,subgroup:28,version:17,gender:0,tone:5,shortCodes:["women_wrestling_tone5"]}],shortCodes:["women_wrestling"]},{label:"person playing water polo",hexcode:"1F93D",tags:["person","playing","polo","sport","swimming","water","waterpolo"],emoji:"🤽",text:"",type:1,order:2979,group:1,subgroup:28,version:3,skins:[{label:"person playing water polo: light skin tone",hexcode:"1F93D-1F3FB",emoji:"🤽🏻",text:"",type:1,order:2980,group:1,subgroup:28,version:3,tone:1,shortCodes:["person_playing_water_polo_tone1","water_polo_tone1"]},{label:"person playing water polo: medium-light skin tone",hexcode:"1F93D-1F3FC",emoji:"🤽🏼",text:"",type:1,order:2981,group:1,subgroup:28,version:3,tone:2,shortCodes:["person_playing_water_polo_tone2","water_polo_tone2"]},{label:"person playing water polo: medium skin tone",hexcode:"1F93D-1F3FD",emoji:"🤽🏽",text:"",type:1,order:2982,group:1,subgroup:28,version:3,tone:3,shortCodes:["person_playing_water_polo_tone3","water_polo_tone3"]},{label:"person playing water polo: medium-dark skin tone",hexcode:"1F93D-1F3FE",emoji:"🤽🏾",text:"",type:1,order:2983,group:1,subgroup:28,version:3,tone:4,shortCodes:["person_playing_water_polo_tone4","water_polo_tone4"]},{label:"person playing water polo: dark skin tone",hexcode:"1F93D-1F3FF",emoji:"🤽🏿",text:"",type:1,order:2984,group:1,subgroup:28,version:3,tone:5,shortCodes:["person_playing_water_polo_tone5","water_polo_tone5"]}],shortCodes:["person_playing_water_polo","water_polo"]},{label:"man playing water polo",hexcode:"1F93D-200D-2642-FE0F",tags:["man","playing","polo","sport","swimming","water","waterpolo"],emoji:"🤽‍♂️",text:"",type:1,order:2985,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man playing water polo: light skin tone",hexcode:"1F93D-1F3FB-200D-2642-FE0F",emoji:"🤽🏻‍♂️",text:"",type:1,order:2987,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_playing_water_polo_tone1"]},{label:"man playing water polo: medium-light skin tone",hexcode:"1F93D-1F3FC-200D-2642-FE0F",emoji:"🤽🏼‍♂️",text:"",type:1,order:2989,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_playing_water_polo_tone2"]},{label:"man playing water polo: medium skin tone",hexcode:"1F93D-1F3FD-200D-2642-FE0F",emoji:"🤽🏽‍♂️",text:"",type:1,order:2991,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_playing_water_polo_tone3"]},{label:"man playing water polo: medium-dark skin tone",hexcode:"1F93D-1F3FE-200D-2642-FE0F",emoji:"🤽🏾‍♂️",text:"",type:1,order:2993,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_playing_water_polo_tone4"]},{label:"man playing water polo: dark skin tone",hexcode:"1F93D-1F3FF-200D-2642-FE0F",emoji:"🤽🏿‍♂️",text:"",type:1,order:2995,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_playing_water_polo_tone5"]}],shortCodes:["man_playing_water_polo"]},{label:"woman playing water polo",hexcode:"1F93D-200D-2640-FE0F",tags:["playing","polo","sport","swimming","water","waterpolo","woman"],emoji:"🤽‍♀️",text:"",type:1,order:2997,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman playing water polo: light skin tone",hexcode:"1F93D-1F3FB-200D-2640-FE0F",emoji:"🤽🏻‍♀️",text:"",type:1,order:2999,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_playing_water_polo_tone1"]},{label:"woman playing water polo: medium-light skin tone",hexcode:"1F93D-1F3FC-200D-2640-FE0F",emoji:"🤽🏼‍♀️",text:"",type:1,order:3001,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_playing_water_polo_tone2"]},{label:"woman playing water polo: medium skin tone",hexcode:"1F93D-1F3FD-200D-2640-FE0F",emoji:"🤽🏽‍♀️",text:"",type:1,order:3003,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_playing_water_polo_tone3"]},{label:"woman playing water polo: medium-dark skin tone",hexcode:"1F93D-1F3FE-200D-2640-FE0F",emoji:"🤽🏾‍♀️",text:"",type:1,order:3005,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_playing_water_polo_tone4"]},{label:"woman playing water polo: dark skin tone",hexcode:"1F93D-1F3FF-200D-2640-FE0F",emoji:"🤽🏿‍♀️",text:"",type:1,order:3007,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_playing_water_polo_tone5"]}],shortCodes:["woman_playing_water_polo"]},{label:"person playing handball",hexcode:"1F93E",tags:["athletics","ball","catch","chuck","handball","hurl","lob","person","pitch","playing","sport","throw","toss"],emoji:"🤾",text:"",type:1,order:3009,group:1,subgroup:28,version:3,skins:[{label:"person playing handball: light skin tone",hexcode:"1F93E-1F3FB",emoji:"🤾🏻",text:"",type:1,order:3010,group:1,subgroup:28,version:3,tone:1,shortCodes:["handball_tone1","person_playing_handball_tone1"]},{label:"person playing handball: medium-light skin tone",hexcode:"1F93E-1F3FC",emoji:"🤾🏼",text:"",type:1,order:3011,group:1,subgroup:28,version:3,tone:2,shortCodes:["handball_tone2","person_playing_handball_tone2"]},{label:"person playing handball: medium skin tone",hexcode:"1F93E-1F3FD",emoji:"🤾🏽",text:"",type:1,order:3012,group:1,subgroup:28,version:3,tone:3,shortCodes:["handball_tone3","person_playing_handball_tone3"]},{label:"person playing handball: medium-dark skin tone",hexcode:"1F93E-1F3FE",emoji:"🤾🏾",text:"",type:1,order:3013,group:1,subgroup:28,version:3,tone:4,shortCodes:["handball_tone4","person_playing_handball_tone4"]},{label:"person playing handball: dark skin tone",hexcode:"1F93E-1F3FF",emoji:"🤾🏿",text:"",type:1,order:3014,group:1,subgroup:28,version:3,tone:5,shortCodes:["handball_tone5","person_playing_handball_tone5"]}],shortCodes:["handball","person_playing_handball"]},{label:"man playing handball",hexcode:"1F93E-200D-2642-FE0F",tags:["athletics","ball","catch","chuck","handball","hurl","lob","man","pitch","playing","sport","throw","toss"],emoji:"🤾‍♂️",text:"",type:1,order:3015,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man playing handball: light skin tone",hexcode:"1F93E-1F3FB-200D-2642-FE0F",emoji:"🤾🏻‍♂️",text:"",type:1,order:3017,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_playing_handball_tone1"]},{label:"man playing handball: medium-light skin tone",hexcode:"1F93E-1F3FC-200D-2642-FE0F",emoji:"🤾🏼‍♂️",text:"",type:1,order:3019,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_playing_handball_tone2"]},{label:"man playing handball: medium skin tone",hexcode:"1F93E-1F3FD-200D-2642-FE0F",emoji:"🤾🏽‍♂️",text:"",type:1,order:3021,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_playing_handball_tone3"]},{label:"man playing handball: medium-dark skin tone",hexcode:"1F93E-1F3FE-200D-2642-FE0F",emoji:"🤾🏾‍♂️",text:"",type:1,order:3023,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_playing_handball_tone4"]},{label:"man playing handball: dark skin tone",hexcode:"1F93E-1F3FF-200D-2642-FE0F",emoji:"🤾🏿‍♂️",text:"",type:1,order:3025,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_playing_handball_tone5"]}],shortCodes:["man_playing_handball"]},{label:"woman playing handball",hexcode:"1F93E-200D-2640-FE0F",tags:["athletics","ball","catch","chuck","handball","hurl","lob","pitch","playing","sport","throw","toss","woman"],emoji:"🤾‍♀️",text:"",type:1,order:3027,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman playing handball: light skin tone",hexcode:"1F93E-1F3FB-200D-2640-FE0F",emoji:"🤾🏻‍♀️",text:"",type:1,order:3029,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_playing_handball_tone1"]},{label:"woman playing handball: medium-light skin tone",hexcode:"1F93E-1F3FC-200D-2640-FE0F",emoji:"🤾🏼‍♀️",text:"",type:1,order:3031,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_playing_handball_tone2"]},{label:"woman playing handball: medium skin tone",hexcode:"1F93E-1F3FD-200D-2640-FE0F",emoji:"🤾🏽‍♀️",text:"",type:1,order:3033,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_playing_handball_tone3"]},{label:"woman playing handball: medium-dark skin tone",hexcode:"1F93E-1F3FE-200D-2640-FE0F",emoji:"🤾🏾‍♀️",text:"",type:1,order:3035,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_playing_handball_tone4"]},{label:"woman playing handball: dark skin tone",hexcode:"1F93E-1F3FF-200D-2640-FE0F",emoji:"🤾🏿‍♀️",text:"",type:1,order:3037,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_playing_handball_tone5"]}],shortCodes:["woman_playing_handball"]},{label:"person juggling",hexcode:"1F939",tags:["act","balance","balancing","handle","juggle","juggling","manage","multitask","person","skill"],emoji:"🤹",text:"",type:1,order:3039,group:1,subgroup:28,version:3,skins:[{label:"person juggling: light skin tone",hexcode:"1F939-1F3FB",emoji:"🤹🏻",text:"",type:1,order:3040,group:1,subgroup:28,version:3,tone:1,shortCodes:["juggler_tone1","juggling_tone1","person_juggling_tone1"]},{label:"person juggling: medium-light skin tone",hexcode:"1F939-1F3FC",emoji:"🤹🏼",text:"",type:1,order:3041,group:1,subgroup:28,version:3,tone:2,shortCodes:["juggler_tone2","juggling_tone2","person_juggling_tone2"]},{label:"person juggling: medium skin tone",hexcode:"1F939-1F3FD",emoji:"🤹🏽",text:"",type:1,order:3042,group:1,subgroup:28,version:3,tone:3,shortCodes:["juggler_tone3","juggling_tone3","person_juggling_tone3"]},{label:"person juggling: medium-dark skin tone",hexcode:"1F939-1F3FE",emoji:"🤹🏾",text:"",type:1,order:3043,group:1,subgroup:28,version:3,tone:4,shortCodes:["juggler_tone4","juggling_tone4","person_juggling_tone4"]},{label:"person juggling: dark skin tone",hexcode:"1F939-1F3FF",emoji:"🤹🏿",text:"",type:1,order:3044,group:1,subgroup:28,version:3,tone:5,shortCodes:["juggler_tone5","juggling_tone5","person_juggling_tone5"]}],shortCodes:["juggler","juggling","person_juggling"]},{label:"man juggling",hexcode:"1F939-200D-2642-FE0F",tags:["act","balance","balancing","handle","juggle","juggling","man","manage","multitask","skill"],emoji:"🤹‍♂️",text:"",type:1,order:3045,group:1,subgroup:28,version:4,gender:1,skins:[{label:"man juggling: light skin tone",hexcode:"1F939-1F3FB-200D-2642-FE0F",emoji:"🤹🏻‍♂️",text:"",type:1,order:3047,group:1,subgroup:28,version:4,gender:1,tone:1,shortCodes:["man_juggling_tone1"]},{label:"man juggling: medium-light skin tone",hexcode:"1F939-1F3FC-200D-2642-FE0F",emoji:"🤹🏼‍♂️",text:"",type:1,order:3049,group:1,subgroup:28,version:4,gender:1,tone:2,shortCodes:["man_juggling_tone2"]},{label:"man juggling: medium skin tone",hexcode:"1F939-1F3FD-200D-2642-FE0F",emoji:"🤹🏽‍♂️",text:"",type:1,order:3051,group:1,subgroup:28,version:4,gender:1,tone:3,shortCodes:["man_juggling_tone3"]},{label:"man juggling: medium-dark skin tone",hexcode:"1F939-1F3FE-200D-2642-FE0F",emoji:"🤹🏾‍♂️",text:"",type:1,order:3053,group:1,subgroup:28,version:4,gender:1,tone:4,shortCodes:["man_juggling_tone4"]},{label:"man juggling: dark skin tone",hexcode:"1F939-1F3FF-200D-2642-FE0F",emoji:"🤹🏿‍♂️",text:"",type:1,order:3055,group:1,subgroup:28,version:4,gender:1,tone:5,shortCodes:["man_juggling_tone5"]}],shortCodes:["man_juggling"]},{label:"woman juggling",hexcode:"1F939-200D-2640-FE0F",tags:["act","balance","balancing","handle","juggle","juggling","manage","multitask","skill","woman"],emoji:"🤹‍♀️",text:"",type:1,order:3057,group:1,subgroup:28,version:4,gender:0,skins:[{label:"woman juggling: light skin tone",hexcode:"1F939-1F3FB-200D-2640-FE0F",emoji:"🤹🏻‍♀️",text:"",type:1,order:3059,group:1,subgroup:28,version:4,gender:0,tone:1,shortCodes:["woman_juggling_tone1"]},{label:"woman juggling: medium-light skin tone",hexcode:"1F939-1F3FC-200D-2640-FE0F",emoji:"🤹🏼‍♀️",text:"",type:1,order:3061,group:1,subgroup:28,version:4,gender:0,tone:2,shortCodes:["woman_juggling_tone2"]},{label:"woman juggling: medium skin tone",hexcode:"1F939-1F3FD-200D-2640-FE0F",emoji:"🤹🏽‍♀️",text:"",type:1,order:3063,group:1,subgroup:28,version:4,gender:0,tone:3,shortCodes:["woman_juggling_tone3"]},{label:"woman juggling: medium-dark skin tone",hexcode:"1F939-1F3FE-200D-2640-FE0F",emoji:"🤹🏾‍♀️",text:"",type:1,order:3065,group:1,subgroup:28,version:4,gender:0,tone:4,shortCodes:["woman_juggling_tone4"]},{label:"woman juggling: dark skin tone",hexcode:"1F939-1F3FF-200D-2640-FE0F",emoji:"🤹🏿‍♀️",text:"",type:1,order:3067,group:1,subgroup:28,version:4,gender:0,tone:5,shortCodes:["woman_juggling_tone5"]}],shortCodes:["woman_juggling"]},{label:"person in lotus position",hexcode:"1F9D8",tags:["cross","legged","legs","lotus","meditation","peace","person","position","relax","serenity","yoga","yogi","zen"],emoji:"🧘",text:"",type:1,order:3069,group:1,subgroup:29,version:5,skins:[{label:"person in lotus position: light skin tone",hexcode:"1F9D8-1F3FB",emoji:"🧘🏻",text:"",type:1,order:3070,group:1,subgroup:29,version:5,tone:1,shortCodes:["person_in_lotus_position_tone1"]},{label:"person in lotus position: medium-light skin tone",hexcode:"1F9D8-1F3FC",emoji:"🧘🏼",text:"",type:1,order:3071,group:1,subgroup:29,version:5,tone:2,shortCodes:["person_in_lotus_position_tone2"]},{label:"person in lotus position: medium skin tone",hexcode:"1F9D8-1F3FD",emoji:"🧘🏽",text:"",type:1,order:3072,group:1,subgroup:29,version:5,tone:3,shortCodes:["person_in_lotus_position_tone3"]},{label:"person in lotus position: medium-dark skin tone",hexcode:"1F9D8-1F3FE",emoji:"🧘🏾",text:"",type:1,order:3073,group:1,subgroup:29,version:5,tone:4,shortCodes:["person_in_lotus_position_tone4"]},{label:"person in lotus position: dark skin tone",hexcode:"1F9D8-1F3FF",emoji:"🧘🏿",text:"",type:1,order:3074,group:1,subgroup:29,version:5,tone:5,shortCodes:["person_in_lotus_position_tone5"]}],shortCodes:["person_in_lotus_position"]},{label:"man in lotus position",hexcode:"1F9D8-200D-2642-FE0F",tags:["cross","legged","legs","lotus","man","meditation","peace","position","relax","serenity","yoga","yogi","zen"],emoji:"🧘‍♂️",text:"",type:1,order:3075,group:1,subgroup:29,version:5,gender:1,skins:[{label:"man in lotus position: light skin tone",hexcode:"1F9D8-1F3FB-200D-2642-FE0F",emoji:"🧘🏻‍♂️",text:"",type:1,order:3077,group:1,subgroup:29,version:5,gender:1,tone:1,shortCodes:["man_in_lotus_position_tone1"]},{label:"man in lotus position: medium-light skin tone",hexcode:"1F9D8-1F3FC-200D-2642-FE0F",emoji:"🧘🏼‍♂️",text:"",type:1,order:3079,group:1,subgroup:29,version:5,gender:1,tone:2,shortCodes:["man_in_lotus_position_tone2"]},{label:"man in lotus position: medium skin tone",hexcode:"1F9D8-1F3FD-200D-2642-FE0F",emoji:"🧘🏽‍♂️",text:"",type:1,order:3081,group:1,subgroup:29,version:5,gender:1,tone:3,shortCodes:["man_in_lotus_position_tone3"]},{label:"man in lotus position: medium-dark skin tone",hexcode:"1F9D8-1F3FE-200D-2642-FE0F",emoji:"🧘🏾‍♂️",text:"",type:1,order:3083,group:1,subgroup:29,version:5,gender:1,tone:4,shortCodes:["man_in_lotus_position_tone4"]},{label:"man in lotus position: dark skin tone",hexcode:"1F9D8-1F3FF-200D-2642-FE0F",emoji:"🧘🏿‍♂️",text:"",type:1,order:3085,group:1,subgroup:29,version:5,gender:1,tone:5,shortCodes:["man_in_lotus_position_tone5"]}],shortCodes:["man_in_lotus_position"]},{label:"woman in lotus position",hexcode:"1F9D8-200D-2640-FE0F",tags:["cross","legged","legs","lotus","meditation","peace","position","relax","serenity","woman","yoga","yogi","zen"],emoji:"🧘‍♀️",text:"",type:1,order:3087,group:1,subgroup:29,version:5,gender:0,skins:[{label:"woman in lotus position: light skin tone",hexcode:"1F9D8-1F3FB-200D-2640-FE0F",emoji:"🧘🏻‍♀️",text:"",type:1,order:3089,group:1,subgroup:29,version:5,gender:0,tone:1,shortCodes:["woman_in_lotus_position_tone1"]},{label:"woman in lotus position: medium-light skin tone",hexcode:"1F9D8-1F3FC-200D-2640-FE0F",emoji:"🧘🏼‍♀️",text:"",type:1,order:3091,group:1,subgroup:29,version:5,gender:0,tone:2,shortCodes:["woman_in_lotus_position_tone2"]},{label:"woman in lotus position: medium skin tone",hexcode:"1F9D8-1F3FD-200D-2640-FE0F",emoji:"🧘🏽‍♀️",text:"",type:1,order:3093,group:1,subgroup:29,version:5,gender:0,tone:3,shortCodes:["woman_in_lotus_position_tone3"]},{label:"woman in lotus position: medium-dark skin tone",hexcode:"1F9D8-1F3FE-200D-2640-FE0F",emoji:"🧘🏾‍♀️",text:"",type:1,order:3095,group:1,subgroup:29,version:5,gender:0,tone:4,shortCodes:["woman_in_lotus_position_tone4"]},{label:"woman in lotus position: dark skin tone",hexcode:"1F9D8-1F3FF-200D-2640-FE0F",emoji:"🧘🏿‍♀️",text:"",type:1,order:3097,group:1,subgroup:29,version:5,gender:0,tone:5,shortCodes:["woman_in_lotus_position_tone5"]}],shortCodes:["woman_in_lotus_position"]},{label:"person taking bath",hexcode:"1F6C0",tags:["bath","bathtub","person","taking","tub"],emoji:"🛀",text:"",type:1,order:3099,group:1,subgroup:29,version:.6,skins:[{label:"person taking bath: light skin tone",hexcode:"1F6C0-1F3FB",emoji:"🛀🏻",text:"",type:1,order:3100,group:1,subgroup:29,version:1,tone:1,shortCodes:["bath_tone1","person_taking_bath_tone1"]},{label:"person taking bath: medium-light skin tone",hexcode:"1F6C0-1F3FC",emoji:"🛀🏼",text:"",type:1,order:3101,group:1,subgroup:29,version:1,tone:2,shortCodes:["bath_tone2","person_taking_bath_tone2"]},{label:"person taking bath: medium skin tone",hexcode:"1F6C0-1F3FD",emoji:"🛀🏽",text:"",type:1,order:3102,group:1,subgroup:29,version:1,tone:3,shortCodes:["bath_tone3","person_taking_bath_tone3"]},{label:"person taking bath: medium-dark skin tone",hexcode:"1F6C0-1F3FE",emoji:"🛀🏾",text:"",type:1,order:3103,group:1,subgroup:29,version:1,tone:4,shortCodes:["bath_tone4","person_taking_bath_tone4"]},{label:"person taking bath: dark skin tone",hexcode:"1F6C0-1F3FF",emoji:"🛀🏿",text:"",type:1,order:3104,group:1,subgroup:29,version:1,tone:5,shortCodes:["bath_tone5","person_taking_bath_tone5"]}],shortCodes:["bath","person_taking_bath"]},{label:"person in bed",hexcode:"1F6CC",tags:["bed","bedtime","good","goodnight","hotel","nap","night","person","sleep","tired","zzz"],emoji:"🛌",text:"",type:1,order:3105,group:1,subgroup:29,version:1,skins:[{label:"person in bed: light skin tone",hexcode:"1F6CC-1F3FB",emoji:"🛌🏻",text:"",type:1,order:3106,group:1,subgroup:29,version:4,tone:1,shortCodes:["person_in_bed_tone1","sleeping_accommodation_tone1"]},{label:"person in bed: medium-light skin tone",hexcode:"1F6CC-1F3FC",emoji:"🛌🏼",text:"",type:1,order:3107,group:1,subgroup:29,version:4,tone:2,shortCodes:["person_in_bed_tone2","sleeping_accommodation_tone2"]},{label:"person in bed: medium skin tone",hexcode:"1F6CC-1F3FD",emoji:"🛌🏽",text:"",type:1,order:3108,group:1,subgroup:29,version:4,tone:3,shortCodes:["person_in_bed_tone3","sleeping_accommodation_tone3"]},{label:"person in bed: medium-dark skin tone",hexcode:"1F6CC-1F3FE",emoji:"🛌🏾",text:"",type:1,order:3109,group:1,subgroup:29,version:4,tone:4,shortCodes:["person_in_bed_tone4","sleeping_accommodation_tone4"]},{label:"person in bed: dark skin tone",hexcode:"1F6CC-1F3FF",emoji:"🛌🏿",text:"",type:1,order:3110,group:1,subgroup:29,version:4,tone:5,shortCodes:["person_in_bed_tone5","sleeping_accommodation_tone5"]}],shortCodes:["person_in_bed","sleeping_accommodation"]},{label:"people holding hands",hexcode:"1F9D1-200D-1F91D-200D-1F9D1",tags:["bae","bestie","bff","couple","dating","flirt","friends","hand","hold","people","twins"],emoji:"🧑‍🤝‍🧑",text:"",type:1,order:3111,group:1,subgroup:30,version:12,skins:[{label:"people holding hands: light skin tone",hexcode:"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FB",emoji:"🧑🏻‍🤝‍🧑🏻",text:"",type:1,order:3112,group:1,subgroup:30,version:12,tone:1,shortCodes:["people_holding_hands_tone1"]},{label:"people holding hands: light skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FC",emoji:"🧑🏻‍🤝‍🧑🏼",text:"",type:1,order:3113,group:1,subgroup:30,version:12.1,tone:[1,2],shortCodes:["people_holding_hands_tone1-2"]},{label:"people holding hands: light skin tone, medium skin tone",hexcode:"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FD",emoji:"🧑🏻‍🤝‍🧑🏽",text:"",type:1,order:3114,group:1,subgroup:30,version:12.1,tone:[1,3],shortCodes:["people_holding_hands_tone1-3"]},{label:"people holding hands: light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FE",emoji:"🧑🏻‍🤝‍🧑🏾",text:"",type:1,order:3115,group:1,subgroup:30,version:12.1,tone:[1,4],shortCodes:["people_holding_hands_tone1-4"]},{label:"people holding hands: light skin tone, dark skin tone",hexcode:"1F9D1-1F3FB-200D-1F91D-200D-1F9D1-1F3FF",emoji:"🧑🏻‍🤝‍🧑🏿",text:"",type:1,order:3116,group:1,subgroup:30,version:12.1,tone:[1,5],shortCodes:["people_holding_hands_tone1-5"]},{label:"people holding hands: medium-light skin tone, light skin tone",hexcode:"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FB",emoji:"🧑🏼‍🤝‍🧑🏻",text:"",type:1,order:3117,group:1,subgroup:30,version:12,tone:[2,1],shortCodes:["people_holding_hands_tone2-1"]},{label:"people holding hands: medium-light skin tone",hexcode:"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FC",emoji:"🧑🏼‍🤝‍🧑🏼",text:"",type:1,order:3118,group:1,subgroup:30,version:12,tone:2,shortCodes:["people_holding_hands_tone2"]},{label:"people holding hands: medium-light skin tone, medium skin tone",hexcode:"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FD",emoji:"🧑🏼‍🤝‍🧑🏽",text:"",type:1,order:3119,group:1,subgroup:30,version:12.1,tone:[2,3],shortCodes:["people_holding_hands_tone2-3"]},{label:"people holding hands: medium-light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FE",emoji:"🧑🏼‍🤝‍🧑🏾",text:"",type:1,order:3120,group:1,subgroup:30,version:12.1,tone:[2,4],shortCodes:["people_holding_hands_tone2-4"]},{label:"people holding hands: medium-light skin tone, dark skin tone",hexcode:"1F9D1-1F3FC-200D-1F91D-200D-1F9D1-1F3FF",emoji:"🧑🏼‍🤝‍🧑🏿",text:"",type:1,order:3121,group:1,subgroup:30,version:12.1,tone:[2,5],shortCodes:["people_holding_hands_tone2-5"]},{label:"people holding hands: medium skin tone, light skin tone",hexcode:"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FB",emoji:"🧑🏽‍🤝‍🧑🏻",text:"",type:1,order:3122,group:1,subgroup:30,version:12,tone:[3,1],shortCodes:["people_holding_hands_tone3-1"]},{label:"people holding hands: medium skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FC",emoji:"🧑🏽‍🤝‍🧑🏼",text:"",type:1,order:3123,group:1,subgroup:30,version:12,tone:[3,2],shortCodes:["people_holding_hands_tone3-2"]},{label:"people holding hands: medium skin tone",hexcode:"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FD",emoji:"🧑🏽‍🤝‍🧑🏽",text:"",type:1,order:3124,group:1,subgroup:30,version:12,tone:3,shortCodes:["people_holding_hands_tone3"]},{label:"people holding hands: medium skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FE",emoji:"🧑🏽‍🤝‍🧑🏾",text:"",type:1,order:3125,group:1,subgroup:30,version:12.1,tone:[3,4],shortCodes:["people_holding_hands_tone3-4"]},{label:"people holding hands: medium skin tone, dark skin tone",hexcode:"1F9D1-1F3FD-200D-1F91D-200D-1F9D1-1F3FF",emoji:"🧑🏽‍🤝‍🧑🏿",text:"",type:1,order:3126,group:1,subgroup:30,version:12.1,tone:[3,5],shortCodes:["people_holding_hands_tone3-5"]},{label:"people holding hands: medium-dark skin tone, light skin tone",hexcode:"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FB",emoji:"🧑🏾‍🤝‍🧑🏻",text:"",type:1,order:3127,group:1,subgroup:30,version:12,tone:[4,1],shortCodes:["people_holding_hands_tone4-1"]},{label:"people holding hands: medium-dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FC",emoji:"🧑🏾‍🤝‍🧑🏼",text:"",type:1,order:3128,group:1,subgroup:30,version:12,tone:[4,2],shortCodes:["people_holding_hands_tone4-2"]},{label:"people holding hands: medium-dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FD",emoji:"🧑🏾‍🤝‍🧑🏽",text:"",type:1,order:3129,group:1,subgroup:30,version:12,tone:[4,3],shortCodes:["people_holding_hands_tone4-3"]},{label:"people holding hands: medium-dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FE",emoji:"🧑🏾‍🤝‍🧑🏾",text:"",type:1,order:3130,group:1,subgroup:30,version:12,tone:4,shortCodes:["people_holding_hands_tone4"]},{label:"people holding hands: medium-dark skin tone, dark skin tone",hexcode:"1F9D1-1F3FE-200D-1F91D-200D-1F9D1-1F3FF",emoji:"🧑🏾‍🤝‍🧑🏿",text:"",type:1,order:3131,group:1,subgroup:30,version:12.1,tone:[4,5],shortCodes:["people_holding_hands_tone4-5"]},{label:"people holding hands: dark skin tone, light skin tone",hexcode:"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FB",emoji:"🧑🏿‍🤝‍🧑🏻",text:"",type:1,order:3132,group:1,subgroup:30,version:12,tone:[5,1],shortCodes:["people_holding_hands_tone5-1"]},{label:"people holding hands: dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FC",emoji:"🧑🏿‍🤝‍🧑🏼",text:"",type:1,order:3133,group:1,subgroup:30,version:12,tone:[5,2],shortCodes:["people_holding_hands_tone5-2"]},{label:"people holding hands: dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FD",emoji:"🧑🏿‍🤝‍🧑🏽",text:"",type:1,order:3134,group:1,subgroup:30,version:12,tone:[5,3],shortCodes:["people_holding_hands_tone5-3"]},{label:"people holding hands: dark skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FE",emoji:"🧑🏿‍🤝‍🧑🏾",text:"",type:1,order:3135,group:1,subgroup:30,version:12,tone:[5,4],shortCodes:["people_holding_hands_tone5-4"]},{label:"people holding hands: dark skin tone",hexcode:"1F9D1-1F3FF-200D-1F91D-200D-1F9D1-1F3FF",emoji:"🧑🏿‍🤝‍🧑🏿",text:"",type:1,order:3136,group:1,subgroup:30,version:12,tone:5,shortCodes:["people_holding_hands_tone5"]}],shortCodes:["people_holding_hands"]},{label:"women holding hands",hexcode:"1F46D",tags:["bae","bestie","bff","couple","dating","flirt","friends","girls","hand","hold","sisters","twins","women"],emoji:"👭",text:"",type:1,order:3137,group:1,subgroup:30,version:1,skins:[{label:"women holding hands: light skin tone",hexcode:"1F46D-1F3FB",emoji:"👭🏻",text:"",type:1,order:3138,group:1,subgroup:30,version:12,tone:1,shortCodes:["two_women_holding_hands_tone1"]},{label:"women holding hands: medium-light skin tone",hexcode:"1F46D-1F3FC",emoji:"👭🏼",text:"",type:1,order:3144,group:1,subgroup:30,version:12,tone:2,shortCodes:["two_women_holding_hands_tone2"]},{label:"women holding hands: medium skin tone",hexcode:"1F46D-1F3FD",emoji:"👭🏽",text:"",type:1,order:3150,group:1,subgroup:30,version:12,tone:3,shortCodes:["two_women_holding_hands_tone3"]},{label:"women holding hands: medium-dark skin tone",hexcode:"1F46D-1F3FE",emoji:"👭🏾",text:"",type:1,order:3156,group:1,subgroup:30,version:12,tone:4,shortCodes:["two_women_holding_hands_tone4"]},{label:"women holding hands: dark skin tone",hexcode:"1F46D-1F3FF",emoji:"👭🏿",text:"",type:1,order:3162,group:1,subgroup:30,version:12,tone:5,shortCodes:["two_women_holding_hands_tone5"]},{label:"women holding hands: light skin tone, medium-light skin tone",hexcode:"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FC",emoji:"👩🏻‍🤝‍👩🏼",text:"",type:1,order:3139,group:1,subgroup:30,version:12.1,tone:[1,2],shortCodes:["two_women_holding_hands_tone1-2"]},{label:"women holding hands: light skin tone, medium skin tone",hexcode:"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FD",emoji:"👩🏻‍🤝‍👩🏽",text:"",type:1,order:3140,group:1,subgroup:30,version:12.1,tone:[1,3],shortCodes:["two_women_holding_hands_tone1-3"]},{label:"women holding hands: light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FE",emoji:"👩🏻‍🤝‍👩🏾",text:"",type:1,order:3141,group:1,subgroup:30,version:12.1,tone:[1,4],shortCodes:["two_women_holding_hands_tone1-4"]},{label:"women holding hands: light skin tone, dark skin tone",hexcode:"1F469-1F3FB-200D-1F91D-200D-1F469-1F3FF",emoji:"👩🏻‍🤝‍👩🏿",text:"",type:1,order:3142,group:1,subgroup:30,version:12.1,tone:[1,5],shortCodes:["two_women_holding_hands_tone1-5"]},{label:"women holding hands: medium-light skin tone, light skin tone",hexcode:"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FB",emoji:"👩🏼‍🤝‍👩🏻",text:"",type:1,order:3143,group:1,subgroup:30,version:12,tone:[2,1],shortCodes:["two_women_holding_hands_tone2-1"]},{label:"women holding hands: medium-light skin tone, medium skin tone",hexcode:"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FD",emoji:"👩🏼‍🤝‍👩🏽",text:"",type:1,order:3145,group:1,subgroup:30,version:12.1,tone:[2,3],shortCodes:["two_women_holding_hands_tone2-3"]},{label:"women holding hands: medium-light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FE",emoji:"👩🏼‍🤝‍👩🏾",text:"",type:1,order:3146,group:1,subgroup:30,version:12.1,tone:[2,4],shortCodes:["two_women_holding_hands_tone2-4"]},{label:"women holding hands: medium-light skin tone, dark skin tone",hexcode:"1F469-1F3FC-200D-1F91D-200D-1F469-1F3FF",emoji:"👩🏼‍🤝‍👩🏿",text:"",type:1,order:3147,group:1,subgroup:30,version:12.1,tone:[2,5],shortCodes:["two_women_holding_hands_tone2-5"]},{label:"women holding hands: medium skin tone, light skin tone",hexcode:"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FB",emoji:"👩🏽‍🤝‍👩🏻",text:"",type:1,order:3148,group:1,subgroup:30,version:12,tone:[3,1],shortCodes:["two_women_holding_hands_tone3-1"]},{label:"women holding hands: medium skin tone, medium-light skin tone",hexcode:"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FC",emoji:"👩🏽‍🤝‍👩🏼",text:"",type:1,order:3149,group:1,subgroup:30,version:12,tone:[3,2],shortCodes:["two_women_holding_hands_tone3-2"]},{label:"women holding hands: medium skin tone, medium-dark skin tone",hexcode:"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FE",emoji:"👩🏽‍🤝‍👩🏾",text:"",type:1,order:3151,group:1,subgroup:30,version:12.1,tone:[3,4],shortCodes:["two_women_holding_hands_tone3-4"]},{label:"women holding hands: medium skin tone, dark skin tone",hexcode:"1F469-1F3FD-200D-1F91D-200D-1F469-1F3FF",emoji:"👩🏽‍🤝‍👩🏿",text:"",type:1,order:3152,group:1,subgroup:30,version:12.1,tone:[3,5],shortCodes:["two_women_holding_hands_tone3-5"]},{label:"women holding hands: medium-dark skin tone, light skin tone",hexcode:"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FB",emoji:"👩🏾‍🤝‍👩🏻",text:"",type:1,order:3153,group:1,subgroup:30,version:12,tone:[4,1],shortCodes:["two_women_holding_hands_tone4-1"]},{label:"women holding hands: medium-dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FC",emoji:"👩🏾‍🤝‍👩🏼",text:"",type:1,order:3154,group:1,subgroup:30,version:12,tone:[4,2],shortCodes:["two_women_holding_hands_tone4-2"]},{label:"women holding hands: medium-dark skin tone, medium skin tone",hexcode:"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FD",emoji:"👩🏾‍🤝‍👩🏽",text:"",type:1,order:3155,group:1,subgroup:30,version:12,tone:[4,3],shortCodes:["two_women_holding_hands_tone4-3"]},{label:"women holding hands: medium-dark skin tone, dark skin tone",hexcode:"1F469-1F3FE-200D-1F91D-200D-1F469-1F3FF",emoji:"👩🏾‍🤝‍👩🏿",text:"",type:1,order:3157,group:1,subgroup:30,version:12.1,tone:[4,5],shortCodes:["two_women_holding_hands_tone4-5"]},{label:"women holding hands: dark skin tone, light skin tone",hexcode:"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FB",emoji:"👩🏿‍🤝‍👩🏻",text:"",type:1,order:3158,group:1,subgroup:30,version:12,tone:[5,1],shortCodes:["two_women_holding_hands_tone5-1"]},{label:"women holding hands: dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FC",emoji:"👩🏿‍🤝‍👩🏼",text:"",type:1,order:3159,group:1,subgroup:30,version:12,tone:[5,2],shortCodes:["two_women_holding_hands_tone5-2"]},{label:"women holding hands: dark skin tone, medium skin tone",hexcode:"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FD",emoji:"👩🏿‍🤝‍👩🏽",text:"",type:1,order:3160,group:1,subgroup:30,version:12,tone:[5,3],shortCodes:["two_women_holding_hands_tone5-3"]},{label:"women holding hands: dark skin tone, medium-dark skin tone",hexcode:"1F469-1F3FF-200D-1F91D-200D-1F469-1F3FE",emoji:"👩🏿‍🤝‍👩🏾",text:"",type:1,order:3161,group:1,subgroup:30,version:12,tone:[5,4],shortCodes:["two_women_holding_hands_tone5-4"]}],shortCodes:["two_women_holding_hands"]},{label:"woman and man holding hands",hexcode:"1F46B",tags:["bae","bestie","bff","couple","dating","flirt","friends","hand","hold","man","twins","woman"],emoji:"👫",text:"",type:1,order:3163,group:1,subgroup:30,version:.6,skins:[{label:"woman and man holding hands: light skin tone",hexcode:"1F46B-1F3FB",emoji:"👫🏻",text:"",type:1,order:3164,group:1,subgroup:30,version:12,tone:1,shortCodes:["couple_tone1"]},{label:"woman and man holding hands: medium-light skin tone",hexcode:"1F46B-1F3FC",emoji:"👫🏼",text:"",type:1,order:3170,group:1,subgroup:30,version:12,tone:2,shortCodes:["couple_tone2"]},{label:"woman and man holding hands: medium skin tone",hexcode:"1F46B-1F3FD",emoji:"👫🏽",text:"",type:1,order:3176,group:1,subgroup:30,version:12,tone:3,shortCodes:["couple_tone3"]},{label:"woman and man holding hands: medium-dark skin tone",hexcode:"1F46B-1F3FE",emoji:"👫🏾",text:"",type:1,order:3182,group:1,subgroup:30,version:12,tone:4,shortCodes:["couple_tone4"]},{label:"woman and man holding hands: dark skin tone",hexcode:"1F46B-1F3FF",emoji:"👫🏿",text:"",type:1,order:3188,group:1,subgroup:30,version:12,tone:5,shortCodes:["couple_tone5"]},{label:"woman and man holding hands: light skin tone, medium-light skin tone",hexcode:"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FC",emoji:"👩🏻‍🤝‍👨🏼",text:"",type:1,order:3165,group:1,subgroup:30,version:12,tone:[1,2],shortCodes:["couple_tone1-2"]},{label:"woman and man holding hands: light skin tone, medium skin tone",hexcode:"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FD",emoji:"👩🏻‍🤝‍👨🏽",text:"",type:1,order:3166,group:1,subgroup:30,version:12,tone:[1,3],shortCodes:["couple_tone1-3"]},{label:"woman and man holding hands: light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FE",emoji:"👩🏻‍🤝‍👨🏾",text:"",type:1,order:3167,group:1,subgroup:30,version:12,tone:[1,4],shortCodes:["couple_tone1-4"]},{label:"woman and man holding hands: light skin tone, dark skin tone",hexcode:"1F469-1F3FB-200D-1F91D-200D-1F468-1F3FF",emoji:"👩🏻‍🤝‍👨🏿",text:"",type:1,order:3168,group:1,subgroup:30,version:12,tone:[1,5],shortCodes:["couple_tone1-5"]},{label:"woman and man holding hands: medium-light skin tone, light skin tone",hexcode:"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FB",emoji:"👩🏼‍🤝‍👨🏻",text:"",type:1,order:3169,group:1,subgroup:30,version:12,tone:[2,1],shortCodes:["couple_tone2-1"]},{label:"woman and man holding hands: medium-light skin tone, medium skin tone",hexcode:"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FD",emoji:"👩🏼‍🤝‍👨🏽",text:"",type:1,order:3171,group:1,subgroup:30,version:12,tone:[2,3],shortCodes:["couple_tone2-3"]},{label:"woman and man holding hands: medium-light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FE",emoji:"👩🏼‍🤝‍👨🏾",text:"",type:1,order:3172,group:1,subgroup:30,version:12,tone:[2,4],shortCodes:["couple_tone2-4"]},{label:"woman and man holding hands: medium-light skin tone, dark skin tone",hexcode:"1F469-1F3FC-200D-1F91D-200D-1F468-1F3FF",emoji:"👩🏼‍🤝‍👨🏿",text:"",type:1,order:3173,group:1,subgroup:30,version:12,tone:[2,5],shortCodes:["couple_tone2-5"]},{label:"woman and man holding hands: medium skin tone, light skin tone",hexcode:"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FB",emoji:"👩🏽‍🤝‍👨🏻",text:"",type:1,order:3174,group:1,subgroup:30,version:12,tone:[3,1],shortCodes:["couple_tone3-1"]},{label:"woman and man holding hands: medium skin tone, medium-light skin tone",hexcode:"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FC",emoji:"👩🏽‍🤝‍👨🏼",text:"",type:1,order:3175,group:1,subgroup:30,version:12,tone:[3,2],shortCodes:["couple_tone3-2"]},{label:"woman and man holding hands: medium skin tone, medium-dark skin tone",hexcode:"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FE",emoji:"👩🏽‍🤝‍👨🏾",text:"",type:1,order:3177,group:1,subgroup:30,version:12,tone:[3,4],shortCodes:["couple_tone3-4"]},{label:"woman and man holding hands: medium skin tone, dark skin tone",hexcode:"1F469-1F3FD-200D-1F91D-200D-1F468-1F3FF",emoji:"👩🏽‍🤝‍👨🏿",text:"",type:1,order:3178,group:1,subgroup:30,version:12,tone:[3,5],shortCodes:["couple_tone3-5"]},{label:"woman and man holding hands: medium-dark skin tone, light skin tone",hexcode:"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FB",emoji:"👩🏾‍🤝‍👨🏻",text:"",type:1,order:3179,group:1,subgroup:30,version:12,tone:[4,1],shortCodes:["couple_tone4-1"]},{label:"woman and man holding hands: medium-dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FC",emoji:"👩🏾‍🤝‍👨🏼",text:"",type:1,order:3180,group:1,subgroup:30,version:12,tone:[4,2],shortCodes:["couple_tone4-2"]},{label:"woman and man holding hands: medium-dark skin tone, medium skin tone",hexcode:"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FD",emoji:"👩🏾‍🤝‍👨🏽",text:"",type:1,order:3181,group:1,subgroup:30,version:12,tone:[4,3],shortCodes:["couple_tone4-3"]},{label:"woman and man holding hands: medium-dark skin tone, dark skin tone",hexcode:"1F469-1F3FE-200D-1F91D-200D-1F468-1F3FF",emoji:"👩🏾‍🤝‍👨🏿",text:"",type:1,order:3183,group:1,subgroup:30,version:12,tone:[4,5],shortCodes:["couple_tone4-5"]},{label:"woman and man holding hands: dark skin tone, light skin tone",hexcode:"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FB",emoji:"👩🏿‍🤝‍👨🏻",text:"",type:1,order:3184,group:1,subgroup:30,version:12,tone:[5,1],shortCodes:["couple_tone5-1"]},{label:"woman and man holding hands: dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FC",emoji:"👩🏿‍🤝‍👨🏼",text:"",type:1,order:3185,group:1,subgroup:30,version:12,tone:[5,2],shortCodes:["couple_tone5-2"]},{label:"woman and man holding hands: dark skin tone, medium skin tone",hexcode:"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FD",emoji:"👩🏿‍🤝‍👨🏽",text:"",type:1,order:3186,group:1,subgroup:30,version:12,tone:[5,3],shortCodes:["couple_tone5-3"]},{label:"woman and man holding hands: dark skin tone, medium-dark skin tone",hexcode:"1F469-1F3FF-200D-1F91D-200D-1F468-1F3FE",emoji:"👩🏿‍🤝‍👨🏾",text:"",type:1,order:3187,group:1,subgroup:30,version:12,tone:[5,4],shortCodes:["couple_tone5-4"]}],shortCodes:["couple"]},{label:"men holding hands",hexcode:"1F46C",tags:["bae","bestie","bff","boys","brothers","couple","dating","flirt","friends","hand","hold","men","twins"],emoji:"👬",text:"",type:1,order:3189,group:1,subgroup:30,version:1,skins:[{label:"men holding hands: light skin tone",hexcode:"1F46C-1F3FB",emoji:"👬🏻",text:"",type:1,order:3190,group:1,subgroup:30,version:12,tone:1,shortCodes:["two_men_holding_hands_tone1"]},{label:"men holding hands: medium-light skin tone",hexcode:"1F46C-1F3FC",emoji:"👬🏼",text:"",type:1,order:3196,group:1,subgroup:30,version:12,tone:2,shortCodes:["two_men_holding_hands_tone2"]},{label:"men holding hands: medium skin tone",hexcode:"1F46C-1F3FD",emoji:"👬🏽",text:"",type:1,order:3202,group:1,subgroup:30,version:12,tone:3,shortCodes:["two_men_holding_hands_tone3"]},{label:"men holding hands: medium-dark skin tone",hexcode:"1F46C-1F3FE",emoji:"👬🏾",text:"",type:1,order:3208,group:1,subgroup:30,version:12,tone:4,shortCodes:["two_men_holding_hands_tone4"]},{label:"men holding hands: dark skin tone",hexcode:"1F46C-1F3FF",emoji:"👬🏿",text:"",type:1,order:3214,group:1,subgroup:30,version:12,tone:5,shortCodes:["two_men_holding_hands_tone5"]},{label:"men holding hands: light skin tone, medium-light skin tone",hexcode:"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FC",emoji:"👨🏻‍🤝‍👨🏼",text:"",type:1,order:3191,group:1,subgroup:30,version:12.1,tone:[1,2],shortCodes:["two_men_holding_hands_tone1-2"]},{label:"men holding hands: light skin tone, medium skin tone",hexcode:"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FD",emoji:"👨🏻‍🤝‍👨🏽",text:"",type:1,order:3192,group:1,subgroup:30,version:12.1,tone:[1,3],shortCodes:["two_men_holding_hands_tone1-3"]},{label:"men holding hands: light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FE",emoji:"👨🏻‍🤝‍👨🏾",text:"",type:1,order:3193,group:1,subgroup:30,version:12.1,tone:[1,4],shortCodes:["two_men_holding_hands_tone1-4"]},{label:"men holding hands: light skin tone, dark skin tone",hexcode:"1F468-1F3FB-200D-1F91D-200D-1F468-1F3FF",emoji:"👨🏻‍🤝‍👨🏿",text:"",type:1,order:3194,group:1,subgroup:30,version:12.1,tone:[1,5],shortCodes:["two_men_holding_hands_tone1-5"]},{label:"men holding hands: medium-light skin tone, light skin tone",hexcode:"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FB",emoji:"👨🏼‍🤝‍👨🏻",text:"",type:1,order:3195,group:1,subgroup:30,version:12,tone:[2,1],shortCodes:["two_men_holding_hands_tone2-1"]},{label:"men holding hands: medium-light skin tone, medium skin tone",hexcode:"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FD",emoji:"👨🏼‍🤝‍👨🏽",text:"",type:1,order:3197,group:1,subgroup:30,version:12.1,tone:[2,3],shortCodes:["two_men_holding_hands_tone2-3"]},{label:"men holding hands: medium-light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FE",emoji:"👨🏼‍🤝‍👨🏾",text:"",type:1,order:3198,group:1,subgroup:30,version:12.1,tone:[2,4],shortCodes:["two_men_holding_hands_tone2-4"]},{label:"men holding hands: medium-light skin tone, dark skin tone",hexcode:"1F468-1F3FC-200D-1F91D-200D-1F468-1F3FF",emoji:"👨🏼‍🤝‍👨🏿",text:"",type:1,order:3199,group:1,subgroup:30,version:12.1,tone:[2,5],shortCodes:["two_men_holding_hands_tone2-5"]},{label:"men holding hands: medium skin tone, light skin tone",hexcode:"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FB",emoji:"👨🏽‍🤝‍👨🏻",text:"",type:1,order:3200,group:1,subgroup:30,version:12,tone:[3,1],shortCodes:["two_men_holding_hands_tone3-1"]},{label:"men holding hands: medium skin tone, medium-light skin tone",hexcode:"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FC",emoji:"👨🏽‍🤝‍👨🏼",text:"",type:1,order:3201,group:1,subgroup:30,version:12,tone:[3,2],shortCodes:["two_men_holding_hands_tone3-2"]},{label:"men holding hands: medium skin tone, medium-dark skin tone",hexcode:"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FE",emoji:"👨🏽‍🤝‍👨🏾",text:"",type:1,order:3203,group:1,subgroup:30,version:12.1,tone:[3,4],shortCodes:["two_men_holding_hands_tone3-4"]},{label:"men holding hands: medium skin tone, dark skin tone",hexcode:"1F468-1F3FD-200D-1F91D-200D-1F468-1F3FF",emoji:"👨🏽‍🤝‍👨🏿",text:"",type:1,order:3204,group:1,subgroup:30,version:12.1,tone:[3,5],shortCodes:["two_men_holding_hands_tone3-5"]},{label:"men holding hands: medium-dark skin tone, light skin tone",hexcode:"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FB",emoji:"👨🏾‍🤝‍👨🏻",text:"",type:1,order:3205,group:1,subgroup:30,version:12,tone:[4,1],shortCodes:["two_men_holding_hands_tone4-1"]},{label:"men holding hands: medium-dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FC",emoji:"👨🏾‍🤝‍👨🏼",text:"",type:1,order:3206,group:1,subgroup:30,version:12,tone:[4,2],shortCodes:["two_men_holding_hands_tone4-2"]},{label:"men holding hands: medium-dark skin tone, medium skin tone",hexcode:"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FD",emoji:"👨🏾‍🤝‍👨🏽",text:"",type:1,order:3207,group:1,subgroup:30,version:12,tone:[4,3],shortCodes:["two_men_holding_hands_tone4-3"]},{label:"men holding hands: medium-dark skin tone, dark skin tone",hexcode:"1F468-1F3FE-200D-1F91D-200D-1F468-1F3FF",emoji:"👨🏾‍🤝‍👨🏿",text:"",type:1,order:3209,group:1,subgroup:30,version:12.1,tone:[4,5],shortCodes:["two_men_holding_hands_tone4-5"]},{label:"men holding hands: dark skin tone, light skin tone",hexcode:"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FB",emoji:"👨🏿‍🤝‍👨🏻",text:"",type:1,order:3210,group:1,subgroup:30,version:12,tone:[5,1],shortCodes:["two_men_holding_hands_tone5-1"]},{label:"men holding hands: dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FC",emoji:"👨🏿‍🤝‍👨🏼",text:"",type:1,order:3211,group:1,subgroup:30,version:12,tone:[5,2],shortCodes:["two_men_holding_hands_tone5-2"]},{label:"men holding hands: dark skin tone, medium skin tone",hexcode:"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FD",emoji:"👨🏿‍🤝‍👨🏽",text:"",type:1,order:3212,group:1,subgroup:30,version:12,tone:[5,3],shortCodes:["two_men_holding_hands_tone5-3"]},{label:"men holding hands: dark skin tone, medium-dark skin tone",hexcode:"1F468-1F3FF-200D-1F91D-200D-1F468-1F3FE",emoji:"👨🏿‍🤝‍👨🏾",text:"",type:1,order:3213,group:1,subgroup:30,version:12,tone:[5,4],shortCodes:["two_men_holding_hands_tone5-4"]}],shortCodes:["two_men_holding_hands"]},{label:"kiss",hexcode:"1F48F",tags:["anniversary","babe","bae","couple","date","dating","heart","love","mwah","person","romance","together","xoxo"],emoji:"💏",text:"",type:1,order:3215,group:1,subgroup:30,version:.6,skins:[{label:"kiss: light skin tone",hexcode:"1F48F-1F3FB",emoji:"💏🏻",text:"",type:1,order:3216,group:1,subgroup:30,version:13.1,tone:1,shortCodes:["couple_kiss_tone1","couplekiss_tone1"]},{label:"kiss: medium-light skin tone",hexcode:"1F48F-1F3FC",emoji:"💏🏼",text:"",type:1,order:3217,group:1,subgroup:30,version:13.1,tone:2,shortCodes:["couple_kiss_tone2","couplekiss_tone2"]},{label:"kiss: medium skin tone",hexcode:"1F48F-1F3FD",emoji:"💏🏽",text:"",type:1,order:3218,group:1,subgroup:30,version:13.1,tone:3,shortCodes:["couple_kiss_tone3","couplekiss_tone3"]},{label:"kiss: medium-dark skin tone",hexcode:"1F48F-1F3FE",emoji:"💏🏾",text:"",type:1,order:3219,group:1,subgroup:30,version:13.1,tone:4,shortCodes:["couple_kiss_tone4","couplekiss_tone4"]},{label:"kiss: dark skin tone",hexcode:"1F48F-1F3FF",emoji:"💏🏿",text:"",type:1,order:3220,group:1,subgroup:30,version:13.1,tone:5,shortCodes:["couple_kiss_tone5","couplekiss_tone5"]},{label:"kiss: person, person, light skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC",emoji:"🧑🏻‍❤️‍💋‍🧑🏼",text:"",type:1,order:3221,group:1,subgroup:30,version:13.1,tone:[1,2],shortCodes:["couple_kiss_tone1-2","couplekiss_tone1-2"]},{label:"kiss: person, person, light skin tone, medium skin tone",hexcode:"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD",emoji:"🧑🏻‍❤️‍💋‍🧑🏽",text:"",type:1,order:3223,group:1,subgroup:30,version:13.1,tone:[1,3],shortCodes:["couple_kiss_tone1-3","couplekiss_tone1-3"]},{label:"kiss: person, person, light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE",emoji:"🧑🏻‍❤️‍💋‍🧑🏾",text:"",type:1,order:3225,group:1,subgroup:30,version:13.1,tone:[1,4],shortCodes:["couple_kiss_tone1-4","couplekiss_tone1-4"]},{label:"kiss: person, person, light skin tone, dark skin tone",hexcode:"1F9D1-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF",emoji:"🧑🏻‍❤️‍💋‍🧑🏿",text:"",type:1,order:3227,group:1,subgroup:30,version:13.1,tone:[1,5],shortCodes:["couple_kiss_tone1-5","couplekiss_tone1-5"]},{label:"kiss: person, person, medium-light skin tone, light skin tone",hexcode:"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB",emoji:"🧑🏼‍❤️‍💋‍🧑🏻",text:"",type:1,order:3229,group:1,subgroup:30,version:13.1,tone:[2,1],shortCodes:["couple_kiss_tone2-1","couplekiss_tone2-1"]},{label:"kiss: person, person, medium-light skin tone, medium skin tone",hexcode:"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD",emoji:"🧑🏼‍❤️‍💋‍🧑🏽",text:"",type:1,order:3231,group:1,subgroup:30,version:13.1,tone:[2,3],shortCodes:["couple_kiss_tone2-3","couplekiss_tone2-3"]},{label:"kiss: person, person, medium-light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE",emoji:"🧑🏼‍❤️‍💋‍🧑🏾",text:"",type:1,order:3233,group:1,subgroup:30,version:13.1,tone:[2,4],shortCodes:["couple_kiss_tone2-4","couplekiss_tone2-4"]},{label:"kiss: person, person, medium-light skin tone, dark skin tone",hexcode:"1F9D1-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF",emoji:"🧑🏼‍❤️‍💋‍🧑🏿",text:"",type:1,order:3235,group:1,subgroup:30,version:13.1,tone:[2,5],shortCodes:["couple_kiss_tone2-5","couplekiss_tone2-5"]},{label:"kiss: person, person, medium skin tone, light skin tone",hexcode:"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB",emoji:"🧑🏽‍❤️‍💋‍🧑🏻",text:"",type:1,order:3237,group:1,subgroup:30,version:13.1,tone:[3,1],shortCodes:["couple_kiss_tone3-1","couplekiss_tone3-1"]},{label:"kiss: person, person, medium skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC",emoji:"🧑🏽‍❤️‍💋‍🧑🏼",text:"",type:1,order:3239,group:1,subgroup:30,version:13.1,tone:[3,2],shortCodes:["couple_kiss_tone3-2","couplekiss_tone3-2"]},{label:"kiss: person, person, medium skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE",emoji:"🧑🏽‍❤️‍💋‍🧑🏾",text:"",type:1,order:3241,group:1,subgroup:30,version:13.1,tone:[3,4],shortCodes:["couple_kiss_tone3-4","couplekiss_tone3-4"]},{label:"kiss: person, person, medium skin tone, dark skin tone",hexcode:"1F9D1-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF",emoji:"🧑🏽‍❤️‍💋‍🧑🏿",text:"",type:1,order:3243,group:1,subgroup:30,version:13.1,tone:[3,5],shortCodes:["couple_kiss_tone3-5","couplekiss_tone3-5"]},{label:"kiss: person, person, medium-dark skin tone, light skin tone",hexcode:"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB",emoji:"🧑🏾‍❤️‍💋‍🧑🏻",text:"",type:1,order:3245,group:1,subgroup:30,version:13.1,tone:[4,1],shortCodes:["couple_kiss_tone4-1","couplekiss_tone4-1"]},{label:"kiss: person, person, medium-dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC",emoji:"🧑🏾‍❤️‍💋‍🧑🏼",text:"",type:1,order:3247,group:1,subgroup:30,version:13.1,tone:[4,2],shortCodes:["couple_kiss_tone4-2","couplekiss_tone4-2"]},{label:"kiss: person, person, medium-dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD",emoji:"🧑🏾‍❤️‍💋‍🧑🏽",text:"",type:1,order:3249,group:1,subgroup:30,version:13.1,tone:[4,3],shortCodes:["couple_kiss_tone4-3","couplekiss_tone4-3"]},{label:"kiss: person, person, medium-dark skin tone, dark skin tone",hexcode:"1F9D1-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FF",emoji:"🧑🏾‍❤️‍💋‍🧑🏿",text:"",type:1,order:3251,group:1,subgroup:30,version:13.1,tone:[4,5],shortCodes:["couple_kiss_tone4-5","couplekiss_tone4-5"]},{label:"kiss: person, person, dark skin tone, light skin tone",hexcode:"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FB",emoji:"🧑🏿‍❤️‍💋‍🧑🏻",text:"",type:1,order:3253,group:1,subgroup:30,version:13.1,tone:[5,1],shortCodes:["couple_kiss_tone5-1","couplekiss_tone5-1"]},{label:"kiss: person, person, dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FC",emoji:"🧑🏿‍❤️‍💋‍🧑🏼",text:"",type:1,order:3255,group:1,subgroup:30,version:13.1,tone:[5,2],shortCodes:["couple_kiss_tone5-2","couplekiss_tone5-2"]},{label:"kiss: person, person, dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FD",emoji:"🧑🏿‍❤️‍💋‍🧑🏽",text:"",type:1,order:3257,group:1,subgroup:30,version:13.1,tone:[5,3],shortCodes:["couple_kiss_tone5-3","couplekiss_tone5-3"]},{label:"kiss: person, person, dark skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F9D1-1F3FE",emoji:"🧑🏿‍❤️‍💋‍🧑🏾",text:"",type:1,order:3259,group:1,subgroup:30,version:13.1,tone:[5,4],shortCodes:["couple_kiss_tone5-4","couplekiss_tone5-4"]}],shortCodes:["couple_kiss","couplekiss"]},{label:"kiss: woman, man",hexcode:"1F469-200D-2764-FE0F-200D-1F48B-200D-1F468",tags:["anniversary","babe","bae","couple","date","dating","heart","kiss","love","man","mwah","person","romance","together","woman","xoxo"],emoji:"👩‍❤️‍💋‍👨",text:"",type:1,order:3261,group:1,subgroup:30,version:2,skins:[{label:"kiss: woman, man, light skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👩🏻‍❤️‍💋‍👨🏻",text:"",type:1,order:3263,group:1,subgroup:30,version:13.1,tone:1,shortCodes:["kiss_mw_tone1","kiss_wm_tone1"]},{label:"kiss: woman, man, light skin tone, medium-light skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👩🏻‍❤️‍💋‍👨🏼",text:"",type:1,order:3265,group:1,subgroup:30,version:13.1,tone:[1,2],shortCodes:["kiss_mw_tone1-2","kiss_wm_tone1-2"]},{label:"kiss: woman, man, light skin tone, medium skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👩🏻‍❤️‍💋‍👨🏽",text:"",type:1,order:3267,group:1,subgroup:30,version:13.1,tone:[1,3],shortCodes:["kiss_mw_tone1-3","kiss_wm_tone1-3"]},{label:"kiss: woman, man, light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👩🏻‍❤️‍💋‍👨🏾",text:"",type:1,order:3269,group:1,subgroup:30,version:13.1,tone:[1,4],shortCodes:["kiss_mw_tone1-4","kiss_wm_tone1-4"]},{label:"kiss: woman, man, light skin tone, dark skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👩🏻‍❤️‍💋‍👨🏿",text:"",type:1,order:3271,group:1,subgroup:30,version:13.1,tone:[1,5],shortCodes:["kiss_mw_tone1-5","kiss_wm_tone1-5"]},{label:"kiss: woman, man, medium-light skin tone, light skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👩🏼‍❤️‍💋‍👨🏻",text:"",type:1,order:3273,group:1,subgroup:30,version:13.1,tone:[2,1],shortCodes:["kiss_mw_tone2-1","kiss_wm_tone2-1"]},{label:"kiss: woman, man, medium-light skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👩🏼‍❤️‍💋‍👨🏼",text:"",type:1,order:3275,group:1,subgroup:30,version:13.1,tone:2,shortCodes:["kiss_mw_tone2","kiss_wm_tone2"]},{label:"kiss: woman, man, medium-light skin tone, medium skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👩🏼‍❤️‍💋‍👨🏽",text:"",type:1,order:3277,group:1,subgroup:30,version:13.1,tone:[2,3],shortCodes:["kiss_mw_tone2-3","kiss_wm_tone2-3"]},{label:"kiss: woman, man, medium-light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👩🏼‍❤️‍💋‍👨🏾",text:"",type:1,order:3279,group:1,subgroup:30,version:13.1,tone:[2,4],shortCodes:["kiss_mw_tone2-4","kiss_wm_tone2-4"]},{label:"kiss: woman, man, medium-light skin tone, dark skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👩🏼‍❤️‍💋‍👨🏿",text:"",type:1,order:3281,group:1,subgroup:30,version:13.1,tone:[2,5],shortCodes:["kiss_mw_tone2-5","kiss_wm_tone2-5"]},{label:"kiss: woman, man, medium skin tone, light skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👩🏽‍❤️‍💋‍👨🏻",text:"",type:1,order:3283,group:1,subgroup:30,version:13.1,tone:[3,1],shortCodes:["kiss_mw_tone3-1","kiss_wm_tone3-1"]},{label:"kiss: woman, man, medium skin tone, medium-light skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👩🏽‍❤️‍💋‍👨🏼",text:"",type:1,order:3285,group:1,subgroup:30,version:13.1,tone:[3,2],shortCodes:["kiss_mw_tone3-2","kiss_wm_tone3-2"]},{label:"kiss: woman, man, medium skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👩🏽‍❤️‍💋‍👨🏽",text:"",type:1,order:3287,group:1,subgroup:30,version:13.1,tone:3,shortCodes:["kiss_mw_tone3","kiss_wm_tone3"]},{label:"kiss: woman, man, medium skin tone, medium-dark skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👩🏽‍❤️‍💋‍👨🏾",text:"",type:1,order:3289,group:1,subgroup:30,version:13.1,tone:[3,4],shortCodes:["kiss_mw_tone3-4","kiss_wm_tone3-4"]},{label:"kiss: woman, man, medium skin tone, dark skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👩🏽‍❤️‍💋‍👨🏿",text:"",type:1,order:3291,group:1,subgroup:30,version:13.1,tone:[3,5],shortCodes:["kiss_mw_tone3-5","kiss_wm_tone3-5"]},{label:"kiss: woman, man, medium-dark skin tone, light skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👩🏾‍❤️‍💋‍👨🏻",text:"",type:1,order:3293,group:1,subgroup:30,version:13.1,tone:[4,1],shortCodes:["kiss_mw_tone4-1","kiss_wm_tone4-1"]},{label:"kiss: woman, man, medium-dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👩🏾‍❤️‍💋‍👨🏼",text:"",type:1,order:3295,group:1,subgroup:30,version:13.1,tone:[4,2],shortCodes:["kiss_mw_tone4-2","kiss_wm_tone4-2"]},{label:"kiss: woman, man, medium-dark skin tone, medium skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👩🏾‍❤️‍💋‍👨🏽",text:"",type:1,order:3297,group:1,subgroup:30,version:13.1,tone:[4,3],shortCodes:["kiss_mw_tone4-3","kiss_wm_tone4-3"]},{label:"kiss: woman, man, medium-dark skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👩🏾‍❤️‍💋‍👨🏾",text:"",type:1,order:3299,group:1,subgroup:30,version:13.1,tone:4,shortCodes:["kiss_mw_tone4","kiss_wm_tone4"]},{label:"kiss: woman, man, medium-dark skin tone, dark skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👩🏾‍❤️‍💋‍👨🏿",text:"",type:1,order:3301,group:1,subgroup:30,version:13.1,tone:[4,5],shortCodes:["kiss_mw_tone4-5","kiss_wm_tone4-5"]},{label:"kiss: woman, man, dark skin tone, light skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👩🏿‍❤️‍💋‍👨🏻",text:"",type:1,order:3303,group:1,subgroup:30,version:13.1,tone:[5,1],shortCodes:["kiss_mw_tone5-1","kiss_wm_tone5-1"]},{label:"kiss: woman, man, dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👩🏿‍❤️‍💋‍👨🏼",text:"",type:1,order:3305,group:1,subgroup:30,version:13.1,tone:[5,2],shortCodes:["kiss_mw_tone5-2","kiss_wm_tone5-2"]},{label:"kiss: woman, man, dark skin tone, medium skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👩🏿‍❤️‍💋‍👨🏽",text:"",type:1,order:3307,group:1,subgroup:30,version:13.1,tone:[5,3],shortCodes:["kiss_mw_tone5-3","kiss_wm_tone5-3"]},{label:"kiss: woman, man, dark skin tone, medium-dark skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👩🏿‍❤️‍💋‍👨🏾",text:"",type:1,order:3309,group:1,subgroup:30,version:13.1,tone:[5,4],shortCodes:["kiss_mw_tone5-4","kiss_wm_tone5-4"]},{label:"kiss: woman, man, dark skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👩🏿‍❤️‍💋‍👨🏿",text:"",type:1,order:3311,group:1,subgroup:30,version:13.1,tone:5,shortCodes:["kiss_mw_tone5","kiss_wm_tone5"]}],shortCodes:["kiss_mw","kiss_wm"]},{label:"kiss: man, man",hexcode:"1F468-200D-2764-FE0F-200D-1F48B-200D-1F468",tags:["anniversary","babe","bae","couple","date","dating","heart","kiss","love","man","mwah","person","romance","together","xoxo"],emoji:"👨‍❤️‍💋‍👨",text:"",type:1,order:3313,group:1,subgroup:30,version:2,skins:[{label:"kiss: man, man, light skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👨🏻‍❤️‍💋‍👨🏻",text:"",type:1,order:3315,group:1,subgroup:30,version:13.1,tone:1,shortCodes:["kiss_mm_tone1"]},{label:"kiss: man, man, light skin tone, medium-light skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👨🏻‍❤️‍💋‍👨🏼",text:"",type:1,order:3317,group:1,subgroup:30,version:13.1,tone:[1,2],shortCodes:["kiss_mm_tone1-2"]},{label:"kiss: man, man, light skin tone, medium skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👨🏻‍❤️‍💋‍👨🏽",text:"",type:1,order:3319,group:1,subgroup:30,version:13.1,tone:[1,3],shortCodes:["kiss_mm_tone1-3"]},{label:"kiss: man, man, light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👨🏻‍❤️‍💋‍👨🏾",text:"",type:1,order:3321,group:1,subgroup:30,version:13.1,tone:[1,4],shortCodes:["kiss_mm_tone1-4"]},{label:"kiss: man, man, light skin tone, dark skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👨🏻‍❤️‍💋‍👨🏿",text:"",type:1,order:3323,group:1,subgroup:30,version:13.1,tone:[1,5],shortCodes:["kiss_mm_tone1-5"]},{label:"kiss: man, man, medium-light skin tone, light skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👨🏼‍❤️‍💋‍👨🏻",text:"",type:1,order:3325,group:1,subgroup:30,version:13.1,tone:[2,1],shortCodes:["kiss_mm_tone2-1"]},{label:"kiss: man, man, medium-light skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👨🏼‍❤️‍💋‍👨🏼",text:"",type:1,order:3327,group:1,subgroup:30,version:13.1,tone:2,shortCodes:["kiss_mm_tone2"]},{label:"kiss: man, man, medium-light skin tone, medium skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👨🏼‍❤️‍💋‍👨🏽",text:"",type:1,order:3329,group:1,subgroup:30,version:13.1,tone:[2,3],shortCodes:["kiss_mm_tone2-3"]},{label:"kiss: man, man, medium-light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👨🏼‍❤️‍💋‍👨🏾",text:"",type:1,order:3331,group:1,subgroup:30,version:13.1,tone:[2,4],shortCodes:["kiss_mm_tone2-4"]},{label:"kiss: man, man, medium-light skin tone, dark skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👨🏼‍❤️‍💋‍👨🏿",text:"",type:1,order:3333,group:1,subgroup:30,version:13.1,tone:[2,5],shortCodes:["kiss_mm_tone2-5"]},{label:"kiss: man, man, medium skin tone, light skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👨🏽‍❤️‍💋‍👨🏻",text:"",type:1,order:3335,group:1,subgroup:30,version:13.1,tone:[3,1],shortCodes:["kiss_mm_tone3-1"]},{label:"kiss: man, man, medium skin tone, medium-light skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👨🏽‍❤️‍💋‍👨🏼",text:"",type:1,order:3337,group:1,subgroup:30,version:13.1,tone:[3,2],shortCodes:["kiss_mm_tone3-2"]},{label:"kiss: man, man, medium skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👨🏽‍❤️‍💋‍👨🏽",text:"",type:1,order:3339,group:1,subgroup:30,version:13.1,tone:3,shortCodes:["kiss_mm_tone3"]},{label:"kiss: man, man, medium skin tone, medium-dark skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👨🏽‍❤️‍💋‍👨🏾",text:"",type:1,order:3341,group:1,subgroup:30,version:13.1,tone:[3,4],shortCodes:["kiss_mm_tone3-4"]},{label:"kiss: man, man, medium skin tone, dark skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👨🏽‍❤️‍💋‍👨🏿",text:"",type:1,order:3343,group:1,subgroup:30,version:13.1,tone:[3,5],shortCodes:["kiss_mm_tone3-5"]},{label:"kiss: man, man, medium-dark skin tone, light skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👨🏾‍❤️‍💋‍👨🏻",text:"",type:1,order:3345,group:1,subgroup:30,version:13.1,tone:[4,1],shortCodes:["kiss_mm_tone4-1"]},{label:"kiss: man, man, medium-dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👨🏾‍❤️‍💋‍👨🏼",text:"",type:1,order:3347,group:1,subgroup:30,version:13.1,tone:[4,2],shortCodes:["kiss_mm_tone4-2"]},{label:"kiss: man, man, medium-dark skin tone, medium skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👨🏾‍❤️‍💋‍👨🏽",text:"",type:1,order:3349,group:1,subgroup:30,version:13.1,tone:[4,3],shortCodes:["kiss_mm_tone4-3"]},{label:"kiss: man, man, medium-dark skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👨🏾‍❤️‍💋‍👨🏾",text:"",type:1,order:3351,group:1,subgroup:30,version:13.1,tone:4,shortCodes:["kiss_mm_tone4"]},{label:"kiss: man, man, medium-dark skin tone, dark skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👨🏾‍❤️‍💋‍👨🏿",text:"",type:1,order:3353,group:1,subgroup:30,version:13.1,tone:[4,5],shortCodes:["kiss_mm_tone4-5"]},{label:"kiss: man, man, dark skin tone, light skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FB",emoji:"👨🏿‍❤️‍💋‍👨🏻",text:"",type:1,order:3355,group:1,subgroup:30,version:13.1,tone:[5,1],shortCodes:["kiss_mm_tone5-1"]},{label:"kiss: man, man, dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FC",emoji:"👨🏿‍❤️‍💋‍👨🏼",text:"",type:1,order:3357,group:1,subgroup:30,version:13.1,tone:[5,2],shortCodes:["kiss_mm_tone5-2"]},{label:"kiss: man, man, dark skin tone, medium skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FD",emoji:"👨🏿‍❤️‍💋‍👨🏽",text:"",type:1,order:3359,group:1,subgroup:30,version:13.1,tone:[5,3],shortCodes:["kiss_mm_tone5-3"]},{label:"kiss: man, man, dark skin tone, medium-dark skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FE",emoji:"👨🏿‍❤️‍💋‍👨🏾",text:"",type:1,order:3361,group:1,subgroup:30,version:13.1,tone:[5,4],shortCodes:["kiss_mm_tone5-4"]},{label:"kiss: man, man, dark skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F468-1F3FF",emoji:"👨🏿‍❤️‍💋‍👨🏿",text:"",type:1,order:3363,group:1,subgroup:30,version:13.1,tone:5,shortCodes:["kiss_mm_tone5"]}],shortCodes:["kiss_mm"]},{label:"kiss: woman, woman",hexcode:"1F469-200D-2764-FE0F-200D-1F48B-200D-1F469",tags:["anniversary","babe","bae","couple","date","dating","heart","kiss","love","mwah","person","romance","together","woman","xoxo"],emoji:"👩‍❤️‍💋‍👩",text:"",type:1,order:3365,group:1,subgroup:30,version:2,skins:[{label:"kiss: woman, woman, light skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB",emoji:"👩🏻‍❤️‍💋‍👩🏻",text:"",type:1,order:3367,group:1,subgroup:30,version:13.1,tone:1,shortCodes:["kiss_ww_tone1"]},{label:"kiss: woman, woman, light skin tone, medium-light skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC",emoji:"👩🏻‍❤️‍💋‍👩🏼",text:"",type:1,order:3369,group:1,subgroup:30,version:13.1,tone:[1,2],shortCodes:["kiss_ww_tone1-2"]},{label:"kiss: woman, woman, light skin tone, medium skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD",emoji:"👩🏻‍❤️‍💋‍👩🏽",text:"",type:1,order:3371,group:1,subgroup:30,version:13.1,tone:[1,3],shortCodes:["kiss_ww_tone1-3"]},{label:"kiss: woman, woman, light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE",emoji:"👩🏻‍❤️‍💋‍👩🏾",text:"",type:1,order:3373,group:1,subgroup:30,version:13.1,tone:[1,4],shortCodes:["kiss_ww_tone1-4"]},{label:"kiss: woman, woman, light skin tone, dark skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF",emoji:"👩🏻‍❤️‍💋‍👩🏿",text:"",type:1,order:3375,group:1,subgroup:30,version:13.1,tone:[1,5],shortCodes:["kiss_ww_tone1-5"]},{label:"kiss: woman, woman, medium-light skin tone, light skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB",emoji:"👩🏼‍❤️‍💋‍👩🏻",text:"",type:1,order:3377,group:1,subgroup:30,version:13.1,tone:[2,1],shortCodes:["kiss_ww_tone2-1"]},{label:"kiss: woman, woman, medium-light skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC",emoji:"👩🏼‍❤️‍💋‍👩🏼",text:"",type:1,order:3379,group:1,subgroup:30,version:13.1,tone:2,shortCodes:["kiss_ww_tone2"]},{label:"kiss: woman, woman, medium-light skin tone, medium skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD",emoji:"👩🏼‍❤️‍💋‍👩🏽",text:"",type:1,order:3381,group:1,subgroup:30,version:13.1,tone:[2,3],shortCodes:["kiss_ww_tone2-3"]},{label:"kiss: woman, woman, medium-light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE",emoji:"👩🏼‍❤️‍💋‍👩🏾",text:"",type:1,order:3383,group:1,subgroup:30,version:13.1,tone:[2,4],shortCodes:["kiss_ww_tone2-4"]},{label:"kiss: woman, woman, medium-light skin tone, dark skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF",emoji:"👩🏼‍❤️‍💋‍👩🏿",text:"",type:1,order:3385,group:1,subgroup:30,version:13.1,tone:[2,5],shortCodes:["kiss_ww_tone2-5"]},{label:"kiss: woman, woman, medium skin tone, light skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB",emoji:"👩🏽‍❤️‍💋‍👩🏻",text:"",type:1,order:3387,group:1,subgroup:30,version:13.1,tone:[3,1],shortCodes:["kiss_ww_tone3-1"]},{label:"kiss: woman, woman, medium skin tone, medium-light skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC",emoji:"👩🏽‍❤️‍💋‍👩🏼",text:"",type:1,order:3389,group:1,subgroup:30,version:13.1,tone:[3,2],shortCodes:["kiss_ww_tone3-2"]},{label:"kiss: woman, woman, medium skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD",emoji:"👩🏽‍❤️‍💋‍👩🏽",text:"",type:1,order:3391,group:1,subgroup:30,version:13.1,tone:3,shortCodes:["kiss_ww_tone3"]},{label:"kiss: woman, woman, medium skin tone, medium-dark skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE",emoji:"👩🏽‍❤️‍💋‍👩🏾",text:"",type:1,order:3393,group:1,subgroup:30,version:13.1,tone:[3,4],shortCodes:["kiss_ww_tone3-4"]},{label:"kiss: woman, woman, medium skin tone, dark skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF",emoji:"👩🏽‍❤️‍💋‍👩🏿",text:"",type:1,order:3395,group:1,subgroup:30,version:13.1,tone:[3,5],shortCodes:["kiss_ww_tone3-5"]},{label:"kiss: woman, woman, medium-dark skin tone, light skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB",emoji:"👩🏾‍❤️‍💋‍👩🏻",text:"",type:1,order:3397,group:1,subgroup:30,version:13.1,tone:[4,1],shortCodes:["kiss_ww_tone4-1"]},{label:"kiss: woman, woman, medium-dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC",emoji:"👩🏾‍❤️‍💋‍👩🏼",text:"",type:1,order:3399,group:1,subgroup:30,version:13.1,tone:[4,2],shortCodes:["kiss_ww_tone4-2"]},{label:"kiss: woman, woman, medium-dark skin tone, medium skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD",emoji:"👩🏾‍❤️‍💋‍👩🏽",text:"",type:1,order:3401,group:1,subgroup:30,version:13.1,tone:[4,3],shortCodes:["kiss_ww_tone4-3"]},{label:"kiss: woman, woman, medium-dark skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE",emoji:"👩🏾‍❤️‍💋‍👩🏾",text:"",type:1,order:3403,group:1,subgroup:30,version:13.1,tone:4,shortCodes:["kiss_ww_tone4"]},{label:"kiss: woman, woman, medium-dark skin tone, dark skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF",emoji:"👩🏾‍❤️‍💋‍👩🏿",text:"",type:1,order:3405,group:1,subgroup:30,version:13.1,tone:[4,5],shortCodes:["kiss_ww_tone4-5"]},{label:"kiss: woman, woman, dark skin tone, light skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FB",emoji:"👩🏿‍❤️‍💋‍👩🏻",text:"",type:1,order:3407,group:1,subgroup:30,version:13.1,tone:[5,1],shortCodes:["kiss_ww_tone5-1"]},{label:"kiss: woman, woman, dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FC",emoji:"👩🏿‍❤️‍💋‍👩🏼",text:"",type:1,order:3409,group:1,subgroup:30,version:13.1,tone:[5,2],shortCodes:["kiss_ww_tone5-2"]},{label:"kiss: woman, woman, dark skin tone, medium skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FD",emoji:"👩🏿‍❤️‍💋‍👩🏽",text:"",type:1,order:3411,group:1,subgroup:30,version:13.1,tone:[5,3],shortCodes:["kiss_ww_tone5-3"]},{label:"kiss: woman, woman, dark skin tone, medium-dark skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FE",emoji:"👩🏿‍❤️‍💋‍👩🏾",text:"",type:1,order:3413,group:1,subgroup:30,version:13.1,tone:[5,4],shortCodes:["kiss_ww_tone5-4"]},{label:"kiss: woman, woman, dark skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F48B-200D-1F469-1F3FF",emoji:"👩🏿‍❤️‍💋‍👩🏿",text:"",type:1,order:3415,group:1,subgroup:30,version:13.1,tone:5,shortCodes:["kiss_ww_tone5"]}],shortCodes:["kiss_ww"]},{label:"couple with heart",hexcode:"1F491",tags:["anniversary","babe","bae","couple","dating","heart","kiss","love","person","relationship","romance","together","you"],emoji:"💑",text:"",type:1,order:3417,group:1,subgroup:30,version:.6,skins:[{label:"couple with heart: light skin tone",hexcode:"1F491-1F3FB",emoji:"💑🏻",text:"",type:1,order:3418,group:1,subgroup:30,version:13.1,tone:1,shortCodes:["couple_with_heart_tone1"]},{label:"couple with heart: medium-light skin tone",hexcode:"1F491-1F3FC",emoji:"💑🏼",text:"",type:1,order:3419,group:1,subgroup:30,version:13.1,tone:2,shortCodes:["couple_with_heart_tone2"]},{label:"couple with heart: medium skin tone",hexcode:"1F491-1F3FD",emoji:"💑🏽",text:"",type:1,order:3420,group:1,subgroup:30,version:13.1,tone:3,shortCodes:["couple_with_heart_tone3"]},{label:"couple with heart: medium-dark skin tone",hexcode:"1F491-1F3FE",emoji:"💑🏾",text:"",type:1,order:3421,group:1,subgroup:30,version:13.1,tone:4,shortCodes:["couple_with_heart_tone4"]},{label:"couple with heart: dark skin tone",hexcode:"1F491-1F3FF",emoji:"💑🏿",text:"",type:1,order:3422,group:1,subgroup:30,version:13.1,tone:5,shortCodes:["couple_with_heart_tone5"]},{label:"couple with heart: person, person, light skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FC",emoji:"🧑🏻‍❤️‍🧑🏼",text:"",type:1,order:3423,group:1,subgroup:30,version:13.1,tone:[1,2],shortCodes:["couple_with_heart_tone1-2"]},{label:"couple with heart: person, person, light skin tone, medium skin tone",hexcode:"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FD",emoji:"🧑🏻‍❤️‍🧑🏽",text:"",type:1,order:3425,group:1,subgroup:30,version:13.1,tone:[1,3],shortCodes:["couple_with_heart_tone1-3"]},{label:"couple with heart: person, person, light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FE",emoji:"🧑🏻‍❤️‍🧑🏾",text:"",type:1,order:3427,group:1,subgroup:30,version:13.1,tone:[1,4],shortCodes:["couple_with_heart_tone1-4"]},{label:"couple with heart: person, person, light skin tone, dark skin tone",hexcode:"1F9D1-1F3FB-200D-2764-FE0F-200D-1F9D1-1F3FF",emoji:"🧑🏻‍❤️‍🧑🏿",text:"",type:1,order:3429,group:1,subgroup:30,version:13.1,tone:[1,5],shortCodes:["couple_with_heart_tone1-5"]},{label:"couple with heart: person, person, medium-light skin tone, light skin tone",hexcode:"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FB",emoji:"🧑🏼‍❤️‍🧑🏻",text:"",type:1,order:3431,group:1,subgroup:30,version:13.1,tone:[2,1],shortCodes:["couple_with_heart_tone2-1"]},{label:"couple with heart: person, person, medium-light skin tone, medium skin tone",hexcode:"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FD",emoji:"🧑🏼‍❤️‍🧑🏽",text:"",type:1,order:3433,group:1,subgroup:30,version:13.1,tone:[2,3],shortCodes:["couple_with_heart_tone2-3"]},{label:"couple with heart: person, person, medium-light skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FE",emoji:"🧑🏼‍❤️‍🧑🏾",text:"",type:1,order:3435,group:1,subgroup:30,version:13.1,tone:[2,4],shortCodes:["couple_with_heart_tone2-4"]},{label:"couple with heart: person, person, medium-light skin tone, dark skin tone",hexcode:"1F9D1-1F3FC-200D-2764-FE0F-200D-1F9D1-1F3FF",emoji:"🧑🏼‍❤️‍🧑🏿",text:"",type:1,order:3437,group:1,subgroup:30,version:13.1,tone:[2,5],shortCodes:["couple_with_heart_tone2-5"]},{label:"couple with heart: person, person, medium skin tone, light skin tone",hexcode:"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FB",emoji:"🧑🏽‍❤️‍🧑🏻",text:"",type:1,order:3439,group:1,subgroup:30,version:13.1,tone:[3,1],shortCodes:["couple_with_heart_tone3-1"]},{label:"couple with heart: person, person, medium skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FC",emoji:"🧑🏽‍❤️‍🧑🏼",text:"",type:1,order:3441,group:1,subgroup:30,version:13.1,tone:[3,2],shortCodes:["couple_with_heart_tone3-2"]},{label:"couple with heart: person, person, medium skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FE",emoji:"🧑🏽‍❤️‍🧑🏾",text:"",type:1,order:3443,group:1,subgroup:30,version:13.1,tone:[3,4],shortCodes:["couple_with_heart_tone3-4"]},{label:"couple with heart: person, person, medium skin tone, dark skin tone",hexcode:"1F9D1-1F3FD-200D-2764-FE0F-200D-1F9D1-1F3FF",emoji:"🧑🏽‍❤️‍🧑🏿",text:"",type:1,order:3445,group:1,subgroup:30,version:13.1,tone:[3,5],shortCodes:["couple_with_heart_tone3-5"]},{label:"couple with heart: person, person, medium-dark skin tone, light skin tone",hexcode:"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FB",emoji:"🧑🏾‍❤️‍🧑🏻",text:"",type:1,order:3447,group:1,subgroup:30,version:13.1,tone:[4,1],shortCodes:["couple_with_heart_tone4-1"]},{label:"couple with heart: person, person, medium-dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FC",emoji:"🧑🏾‍❤️‍🧑🏼",text:"",type:1,order:3449,group:1,subgroup:30,version:13.1,tone:[4,2],shortCodes:["couple_with_heart_tone4-2"]},{label:"couple with heart: person, person, medium-dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FD",emoji:"🧑🏾‍❤️‍🧑🏽",text:"",type:1,order:3451,group:1,subgroup:30,version:13.1,tone:[4,3],shortCodes:["couple_with_heart_tone4-3"]},{label:"couple with heart: person, person, medium-dark skin tone, dark skin tone",hexcode:"1F9D1-1F3FE-200D-2764-FE0F-200D-1F9D1-1F3FF",emoji:"🧑🏾‍❤️‍🧑🏿",text:"",type:1,order:3453,group:1,subgroup:30,version:13.1,tone:[4,5],shortCodes:["couple_with_heart_tone4-5"]},{label:"couple with heart: person, person, dark skin tone, light skin tone",hexcode:"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FB",emoji:"🧑🏿‍❤️‍🧑🏻",text:"",type:1,order:3455,group:1,subgroup:30,version:13.1,tone:[5,1],shortCodes:["couple_with_heart_tone5-1"]},{label:"couple with heart: person, person, dark skin tone, medium-light skin tone",hexcode:"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FC",emoji:"🧑🏿‍❤️‍🧑🏼",text:"",type:1,order:3457,group:1,subgroup:30,version:13.1,tone:[5,2],shortCodes:["couple_with_heart_tone5-2"]},{label:"couple with heart: person, person, dark skin tone, medium skin tone",hexcode:"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FD",emoji:"🧑🏿‍❤️‍🧑🏽",text:"",type:1,order:3459,group:1,subgroup:30,version:13.1,tone:[5,3],shortCodes:["couple_with_heart_tone5-3"]},{label:"couple with heart: person, person, dark skin tone, medium-dark skin tone",hexcode:"1F9D1-1F3FF-200D-2764-FE0F-200D-1F9D1-1F3FE",emoji:"🧑🏿‍❤️‍🧑🏾",text:"",type:1,order:3461,group:1,subgroup:30,version:13.1,tone:[5,4],shortCodes:["couple_with_heart_tone5-4"]}],shortCodes:["couple_with_heart"]},{label:"couple with heart: woman, man",hexcode:"1F469-200D-2764-FE0F-200D-1F468",tags:["anniversary","babe","bae","couple","dating","heart","kiss","love","man","person","relationship","romance","together","woman","you"],emoji:"👩‍❤️‍👨",text:"",type:1,order:3463,group:1,subgroup:30,version:2,skins:[{label:"couple with heart: woman, man, light skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👩🏻‍❤️‍👨🏻",text:"",type:1,order:3465,group:1,subgroup:30,version:13.1,tone:1,shortCodes:["couple_with_heart_mw_tone1","couple_with_heart_wm_tone1"]},{label:"couple with heart: woman, man, light skin tone, medium-light skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👩🏻‍❤️‍👨🏼",text:"",type:1,order:3467,group:1,subgroup:30,version:13.1,tone:[1,2],shortCodes:["couple_with_heart_mw_tone1-2","couple_with_heart_wm_tone1-2"]},{label:"couple with heart: woman, man, light skin tone, medium skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👩🏻‍❤️‍👨🏽",text:"",type:1,order:3469,group:1,subgroup:30,version:13.1,tone:[1,3],shortCodes:["couple_with_heart_mw_tone1-3","couple_with_heart_wm_tone1-3"]},{label:"couple with heart: woman, man, light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👩🏻‍❤️‍👨🏾",text:"",type:1,order:3471,group:1,subgroup:30,version:13.1,tone:[1,4],shortCodes:["couple_with_heart_mw_tone1-4","couple_with_heart_wm_tone1-4"]},{label:"couple with heart: woman, man, light skin tone, dark skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👩🏻‍❤️‍👨🏿",text:"",type:1,order:3473,group:1,subgroup:30,version:13.1,tone:[1,5],shortCodes:["couple_with_heart_mw_tone1-5","couple_with_heart_wm_tone1-5"]},{label:"couple with heart: woman, man, medium-light skin tone, light skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👩🏼‍❤️‍👨🏻",text:"",type:1,order:3475,group:1,subgroup:30,version:13.1,tone:[2,1],shortCodes:["couple_with_heart_mw_tone2-1","couple_with_heart_wm_tone2-1"]},{label:"couple with heart: woman, man, medium-light skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👩🏼‍❤️‍👨🏼",text:"",type:1,order:3477,group:1,subgroup:30,version:13.1,tone:2,shortCodes:["couple_with_heart_mw_tone2","couple_with_heart_wm_tone2"]},{label:"couple with heart: woman, man, medium-light skin tone, medium skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👩🏼‍❤️‍👨🏽",text:"",type:1,order:3479,group:1,subgroup:30,version:13.1,tone:[2,3],shortCodes:["couple_with_heart_mw_tone2-3","couple_with_heart_wm_tone2-3"]},{label:"couple with heart: woman, man, medium-light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👩🏼‍❤️‍👨🏾",text:"",type:1,order:3481,group:1,subgroup:30,version:13.1,tone:[2,4],shortCodes:["couple_with_heart_mw_tone2-4","couple_with_heart_wm_tone2-4"]},{label:"couple with heart: woman, man, medium-light skin tone, dark skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👩🏼‍❤️‍👨🏿",text:"",type:1,order:3483,group:1,subgroup:30,version:13.1,tone:[2,5],shortCodes:["couple_with_heart_mw_tone2-5","couple_with_heart_wm_tone2-5"]},{label:"couple with heart: woman, man, medium skin tone, light skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👩🏽‍❤️‍👨🏻",text:"",type:1,order:3485,group:1,subgroup:30,version:13.1,tone:[3,1],shortCodes:["couple_with_heart_mw_tone3-1","couple_with_heart_wm_tone3-1"]},{label:"couple with heart: woman, man, medium skin tone, medium-light skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👩🏽‍❤️‍👨🏼",text:"",type:1,order:3487,group:1,subgroup:30,version:13.1,tone:[3,2],shortCodes:["couple_with_heart_mw_tone3-2","couple_with_heart_wm_tone3-2"]},{label:"couple with heart: woman, man, medium skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👩🏽‍❤️‍👨🏽",text:"",type:1,order:3489,group:1,subgroup:30,version:13.1,tone:3,shortCodes:["couple_with_heart_mw_tone3","couple_with_heart_wm_tone3"]},{label:"couple with heart: woman, man, medium skin tone, medium-dark skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👩🏽‍❤️‍👨🏾",text:"",type:1,order:3491,group:1,subgroup:30,version:13.1,tone:[3,4],shortCodes:["couple_with_heart_mw_tone3-4","couple_with_heart_wm_tone3-4"]},{label:"couple with heart: woman, man, medium skin tone, dark skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👩🏽‍❤️‍👨🏿",text:"",type:1,order:3493,group:1,subgroup:30,version:13.1,tone:[3,5],shortCodes:["couple_with_heart_mw_tone3-5","couple_with_heart_wm_tone3-5"]},{label:"couple with heart: woman, man, medium-dark skin tone, light skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👩🏾‍❤️‍👨🏻",text:"",type:1,order:3495,group:1,subgroup:30,version:13.1,tone:[4,1],shortCodes:["couple_with_heart_mw_tone4-1","couple_with_heart_wm_tone4-1"]},{label:"couple with heart: woman, man, medium-dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👩🏾‍❤️‍👨🏼",text:"",type:1,order:3497,group:1,subgroup:30,version:13.1,tone:[4,2],shortCodes:["couple_with_heart_mw_tone4-2","couple_with_heart_wm_tone4-2"]},{label:"couple with heart: woman, man, medium-dark skin tone, medium skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👩🏾‍❤️‍👨🏽",text:"",type:1,order:3499,group:1,subgroup:30,version:13.1,tone:[4,3],shortCodes:["couple_with_heart_mw_tone4-3","couple_with_heart_wm_tone4-3"]},{label:"couple with heart: woman, man, medium-dark skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👩🏾‍❤️‍👨🏾",text:"",type:1,order:3501,group:1,subgroup:30,version:13.1,tone:4,shortCodes:["couple_with_heart_mw_tone4","couple_with_heart_wm_tone4"]},{label:"couple with heart: woman, man, medium-dark skin tone, dark skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👩🏾‍❤️‍👨🏿",text:"",type:1,order:3503,group:1,subgroup:30,version:13.1,tone:[4,5],shortCodes:["couple_with_heart_mw_tone4-5","couple_with_heart_wm_tone4-5"]},{label:"couple with heart: woman, man, dark skin tone, light skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👩🏿‍❤️‍👨🏻",text:"",type:1,order:3505,group:1,subgroup:30,version:13.1,tone:[5,1],shortCodes:["couple_with_heart_mw_tone5-1","couple_with_heart_wm_tone5-1"]},{label:"couple with heart: woman, man, dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👩🏿‍❤️‍👨🏼",text:"",type:1,order:3507,group:1,subgroup:30,version:13.1,tone:[5,2],shortCodes:["couple_with_heart_mw_tone5-2","couple_with_heart_wm_tone5-2"]},{label:"couple with heart: woman, man, dark skin tone, medium skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👩🏿‍❤️‍👨🏽",text:"",type:1,order:3509,group:1,subgroup:30,version:13.1,tone:[5,3],shortCodes:["couple_with_heart_mw_tone5-3","couple_with_heart_wm_tone5-3"]},{label:"couple with heart: woman, man, dark skin tone, medium-dark skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👩🏿‍❤️‍👨🏾",text:"",type:1,order:3511,group:1,subgroup:30,version:13.1,tone:[5,4],shortCodes:["couple_with_heart_mw_tone5-4","couple_with_heart_wm_tone5-4"]},{label:"couple with heart: woman, man, dark skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👩🏿‍❤️‍👨🏿",text:"",type:1,order:3513,group:1,subgroup:30,version:13.1,tone:5,shortCodes:["couple_with_heart_mw_tone5","couple_with_heart_wm_tone5"]}],shortCodes:["couple_with_heart_mw","couple_with_heart_wm"]},{label:"couple with heart: man, man",hexcode:"1F468-200D-2764-FE0F-200D-1F468",tags:["anniversary","babe","bae","couple","dating","heart","kiss","love","man","person","relationship","romance","together","you"],emoji:"👨‍❤️‍👨",text:"",type:1,order:3515,group:1,subgroup:30,version:2,skins:[{label:"couple with heart: man, man, light skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👨🏻‍❤️‍👨🏻",text:"",type:1,order:3517,group:1,subgroup:30,version:13.1,tone:1,shortCodes:["couple_with_heart_mm_tone1"]},{label:"couple with heart: man, man, light skin tone, medium-light skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👨🏻‍❤️‍👨🏼",text:"",type:1,order:3519,group:1,subgroup:30,version:13.1,tone:[1,2],shortCodes:["couple_with_heart_mm_tone1-2"]},{label:"couple with heart: man, man, light skin tone, medium skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👨🏻‍❤️‍👨🏽",text:"",type:1,order:3521,group:1,subgroup:30,version:13.1,tone:[1,3],shortCodes:["couple_with_heart_mm_tone1-3"]},{label:"couple with heart: man, man, light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👨🏻‍❤️‍👨🏾",text:"",type:1,order:3523,group:1,subgroup:30,version:13.1,tone:[1,4],shortCodes:["couple_with_heart_mm_tone1-4"]},{label:"couple with heart: man, man, light skin tone, dark skin tone",hexcode:"1F468-1F3FB-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👨🏻‍❤️‍👨🏿",text:"",type:1,order:3525,group:1,subgroup:30,version:13.1,tone:[1,5],shortCodes:["couple_with_heart_mm_tone1-5"]},{label:"couple with heart: man, man, medium-light skin tone, light skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👨🏼‍❤️‍👨🏻",text:"",type:1,order:3527,group:1,subgroup:30,version:13.1,tone:[2,1],shortCodes:["couple_with_heart_mm_tone2-1"]},{label:"couple with heart: man, man, medium-light skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👨🏼‍❤️‍👨🏼",text:"",type:1,order:3529,group:1,subgroup:30,version:13.1,tone:2,shortCodes:["couple_with_heart_mm_tone2"]},{label:"couple with heart: man, man, medium-light skin tone, medium skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👨🏼‍❤️‍👨🏽",text:"",type:1,order:3531,group:1,subgroup:30,version:13.1,tone:[2,3],shortCodes:["couple_with_heart_mm_tone2-3"]},{label:"couple with heart: man, man, medium-light skin tone, medium-dark skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👨🏼‍❤️‍👨🏾",text:"",type:1,order:3533,group:1,subgroup:30,version:13.1,tone:[2,4],shortCodes:["couple_with_heart_mm_tone2-4"]},{label:"couple with heart: man, man, medium-light skin tone, dark skin tone",hexcode:"1F468-1F3FC-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👨🏼‍❤️‍👨🏿",text:"",type:1,order:3535,group:1,subgroup:30,version:13.1,tone:[2,5],shortCodes:["couple_with_heart_mm_tone2-5"]},{label:"couple with heart: man, man, medium skin tone, light skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👨🏽‍❤️‍👨🏻",text:"",type:1,order:3537,group:1,subgroup:30,version:13.1,tone:[3,1],shortCodes:["couple_with_heart_mm_tone3-1"]},{label:"couple with heart: man, man, medium skin tone, medium-light skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👨🏽‍❤️‍👨🏼",text:"",type:1,order:3539,group:1,subgroup:30,version:13.1,tone:[3,2],shortCodes:["couple_with_heart_mm_tone3-2"]},{label:"couple with heart: man, man, medium skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👨🏽‍❤️‍👨🏽",text:"",type:1,order:3541,group:1,subgroup:30,version:13.1,tone:3,shortCodes:["couple_with_heart_mm_tone3"]},{label:"couple with heart: man, man, medium skin tone, medium-dark skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👨🏽‍❤️‍👨🏾",text:"",type:1,order:3543,group:1,subgroup:30,version:13.1,tone:[3,4],shortCodes:["couple_with_heart_mm_tone3-4"]},{label:"couple with heart: man, man, medium skin tone, dark skin tone",hexcode:"1F468-1F3FD-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👨🏽‍❤️‍👨🏿",text:"",type:1,order:3545,group:1,subgroup:30,version:13.1,tone:[3,5],shortCodes:["couple_with_heart_mm_tone3-5"]},{label:"couple with heart: man, man, medium-dark skin tone, light skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👨🏾‍❤️‍👨🏻",text:"",type:1,order:3547,group:1,subgroup:30,version:13.1,tone:[4,1],shortCodes:["couple_with_heart_mm_tone4-1"]},{label:"couple with heart: man, man, medium-dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👨🏾‍❤️‍👨🏼",text:"",type:1,order:3549,group:1,subgroup:30,version:13.1,tone:[4,2],shortCodes:["couple_with_heart_mm_tone4-2"]},{label:"couple with heart: man, man, medium-dark skin tone, medium skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👨🏾‍❤️‍👨🏽",text:"",type:1,order:3551,group:1,subgroup:30,version:13.1,tone:[4,3],shortCodes:["couple_with_heart_mm_tone4-3"]},{label:"couple with heart: man, man, medium-dark skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👨🏾‍❤️‍👨🏾",text:"",type:1,order:3553,group:1,subgroup:30,version:13.1,tone:4,shortCodes:["couple_with_heart_mm_tone4"]},{label:"couple with heart: man, man, medium-dark skin tone, dark skin tone",hexcode:"1F468-1F3FE-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👨🏾‍❤️‍👨🏿",text:"",type:1,order:3555,group:1,subgroup:30,version:13.1,tone:[4,5],shortCodes:["couple_with_heart_mm_tone4-5"]},{label:"couple with heart: man, man, dark skin tone, light skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FB",emoji:"👨🏿‍❤️‍👨🏻",text:"",type:1,order:3557,group:1,subgroup:30,version:13.1,tone:[5,1],shortCodes:["couple_with_heart_mm_tone5-1"]},{label:"couple with heart: man, man, dark skin tone, medium-light skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FC",emoji:"👨🏿‍❤️‍👨🏼",text:"",type:1,order:3559,group:1,subgroup:30,version:13.1,tone:[5,2],shortCodes:["couple_with_heart_mm_tone5-2"]},{label:"couple with heart: man, man, dark skin tone, medium skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FD",emoji:"👨🏿‍❤️‍👨🏽",text:"",type:1,order:3561,group:1,subgroup:30,version:13.1,tone:[5,3],shortCodes:["couple_with_heart_mm_tone5-3"]},{label:"couple with heart: man, man, dark skin tone, medium-dark skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FE",emoji:"👨🏿‍❤️‍👨🏾",text:"",type:1,order:3563,group:1,subgroup:30,version:13.1,tone:[5,4],shortCodes:["couple_with_heart_mm_tone5-4"]},{label:"couple with heart: man, man, dark skin tone",hexcode:"1F468-1F3FF-200D-2764-FE0F-200D-1F468-1F3FF",emoji:"👨🏿‍❤️‍👨🏿",text:"",type:1,order:3565,group:1,subgroup:30,version:13.1,tone:5,shortCodes:["couple_with_heart_mm_tone5"]}],shortCodes:["couple_with_heart_mm"]},{label:"couple with heart: woman, woman",hexcode:"1F469-200D-2764-FE0F-200D-1F469",tags:["anniversary","babe","bae","couple","dating","heart","kiss","love","person","relationship","romance","together","woman","you"],emoji:"👩‍❤️‍👩",text:"",type:1,order:3567,group:1,subgroup:30,version:2,skins:[{label:"couple with heart: woman, woman, light skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FB",emoji:"👩🏻‍❤️‍👩🏻",text:"",type:1,order:3569,group:1,subgroup:30,version:13.1,tone:1,shortCodes:["couple_with_heart_ww_tone1"]},{label:"couple with heart: woman, woman, light skin tone, medium-light skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FC",emoji:"👩🏻‍❤️‍👩🏼",text:"",type:1,order:3571,group:1,subgroup:30,version:13.1,tone:[1,2],shortCodes:["couple_with_heart_ww_tone1-2"]},{label:"couple with heart: woman, woman, light skin tone, medium skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FD",emoji:"👩🏻‍❤️‍👩🏽",text:"",type:1,order:3573,group:1,subgroup:30,version:13.1,tone:[1,3],shortCodes:["couple_with_heart_ww_tone1-3"]},{label:"couple with heart: woman, woman, light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FE",emoji:"👩🏻‍❤️‍👩🏾",text:"",type:1,order:3575,group:1,subgroup:30,version:13.1,tone:[1,4],shortCodes:["couple_with_heart_ww_tone1-4"]},{label:"couple with heart: woman, woman, light skin tone, dark skin tone",hexcode:"1F469-1F3FB-200D-2764-FE0F-200D-1F469-1F3FF",emoji:"👩🏻‍❤️‍👩🏿",text:"",type:1,order:3577,group:1,subgroup:30,version:13.1,tone:[1,5],shortCodes:["couple_with_heart_ww_tone1-5"]},{label:"couple with heart: woman, woman, medium-light skin tone, light skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FB",emoji:"👩🏼‍❤️‍👩🏻",text:"",type:1,order:3579,group:1,subgroup:30,version:13.1,tone:[2,1],shortCodes:["couple_with_heart_ww_tone2-1"]},{label:"couple with heart: woman, woman, medium-light skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FC",emoji:"👩🏼‍❤️‍👩🏼",text:"",type:1,order:3581,group:1,subgroup:30,version:13.1,tone:2,shortCodes:["couple_with_heart_ww_tone2"]},{label:"couple with heart: woman, woman, medium-light skin tone, medium skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FD",emoji:"👩🏼‍❤️‍👩🏽",text:"",type:1,order:3583,group:1,subgroup:30,version:13.1,tone:[2,3],shortCodes:["couple_with_heart_ww_tone2-3"]},{label:"couple with heart: woman, woman, medium-light skin tone, medium-dark skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FE",emoji:"👩🏼‍❤️‍👩🏾",text:"",type:1,order:3585,group:1,subgroup:30,version:13.1,tone:[2,4],shortCodes:["couple_with_heart_ww_tone2-4"]},{label:"couple with heart: woman, woman, medium-light skin tone, dark skin tone",hexcode:"1F469-1F3FC-200D-2764-FE0F-200D-1F469-1F3FF",emoji:"👩🏼‍❤️‍👩🏿",text:"",type:1,order:3587,group:1,subgroup:30,version:13.1,tone:[2,5],shortCodes:["couple_with_heart_ww_tone2-5"]},{label:"couple with heart: woman, woman, medium skin tone, light skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FB",emoji:"👩🏽‍❤️‍👩🏻",text:"",type:1,order:3589,group:1,subgroup:30,version:13.1,tone:[3,1],shortCodes:["couple_with_heart_ww_tone3-1"]},{label:"couple with heart: woman, woman, medium skin tone, medium-light skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FC",emoji:"👩🏽‍❤️‍👩🏼",text:"",type:1,order:3591,group:1,subgroup:30,version:13.1,tone:[3,2],shortCodes:["couple_with_heart_ww_tone3-2"]},{label:"couple with heart: woman, woman, medium skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FD",emoji:"👩🏽‍❤️‍👩🏽",text:"",type:1,order:3593,group:1,subgroup:30,version:13.1,tone:3,shortCodes:["couple_with_heart_ww_tone3"]},{label:"couple with heart: woman, woman, medium skin tone, medium-dark skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FE",emoji:"👩🏽‍❤️‍👩🏾",text:"",type:1,order:3595,group:1,subgroup:30,version:13.1,tone:[3,4],shortCodes:["couple_with_heart_ww_tone3-4"]},{label:"couple with heart: woman, woman, medium skin tone, dark skin tone",hexcode:"1F469-1F3FD-200D-2764-FE0F-200D-1F469-1F3FF",emoji:"👩🏽‍❤️‍👩🏿",text:"",type:1,order:3597,group:1,subgroup:30,version:13.1,tone:[3,5],shortCodes:["couple_with_heart_ww_tone3-5"]},{label:"couple with heart: woman, woman, medium-dark skin tone, light skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FB",emoji:"👩🏾‍❤️‍👩🏻",text:"",type:1,order:3599,group:1,subgroup:30,version:13.1,tone:[4,1],shortCodes:["couple_with_heart_ww_tone4-1"]},{label:"couple with heart: woman, woman, medium-dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FC",emoji:"👩🏾‍❤️‍👩🏼",text:"",type:1,order:3601,group:1,subgroup:30,version:13.1,tone:[4,2],shortCodes:["couple_with_heart_ww_tone4-2"]},{label:"couple with heart: woman, woman, medium-dark skin tone, medium skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FD",emoji:"👩🏾‍❤️‍👩🏽",text:"",type:1,order:3603,group:1,subgroup:30,version:13.1,tone:[4,3],shortCodes:["couple_with_heart_ww_tone4-3"]},{label:"couple with heart: woman, woman, medium-dark skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FE",emoji:"👩🏾‍❤️‍👩🏾",text:"",type:1,order:3605,group:1,subgroup:30,version:13.1,tone:4,shortCodes:["couple_with_heart_ww_tone4"]},{label:"couple with heart: woman, woman, medium-dark skin tone, dark skin tone",hexcode:"1F469-1F3FE-200D-2764-FE0F-200D-1F469-1F3FF",emoji:"👩🏾‍❤️‍👩🏿",text:"",type:1,order:3607,group:1,subgroup:30,version:13.1,tone:[4,5],shortCodes:["couple_with_heart_ww_tone4-5"]},{label:"couple with heart: woman, woman, dark skin tone, light skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FB",emoji:"👩🏿‍❤️‍👩🏻",text:"",type:1,order:3609,group:1,subgroup:30,version:13.1,tone:[5,1],shortCodes:["couple_with_heart_ww_tone5-1"]},{label:"couple with heart: woman, woman, dark skin tone, medium-light skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FC",emoji:"👩🏿‍❤️‍👩🏼",text:"",type:1,order:3611,group:1,subgroup:30,version:13.1,tone:[5,2],shortCodes:["couple_with_heart_ww_tone5-2"]},{label:"couple with heart: woman, woman, dark skin tone, medium skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FD",emoji:"👩🏿‍❤️‍👩🏽",text:"",type:1,order:3613,group:1,subgroup:30,version:13.1,tone:[5,3],shortCodes:["couple_with_heart_ww_tone5-3"]},{label:"couple with heart: woman, woman, dark skin tone, medium-dark skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FE",emoji:"👩🏿‍❤️‍👩🏾",text:"",type:1,order:3615,group:1,subgroup:30,version:13.1,tone:[5,4],shortCodes:["couple_with_heart_ww_tone5-4"]},{label:"couple with heart: woman, woman, dark skin tone",hexcode:"1F469-1F3FF-200D-2764-FE0F-200D-1F469-1F3FF",emoji:"👩🏿‍❤️‍👩🏿",text:"",type:1,order:3617,group:1,subgroup:30,version:13.1,tone:5,shortCodes:["couple_with_heart_ww_tone5"]}],shortCodes:["couple_with_heart_ww"]},{label:"family: man, woman, boy",hexcode:"1F468-200D-1F469-200D-1F466",tags:["boy","child","family","man","woman"],emoji:"👨‍👩‍👦",text:"",type:1,order:3619,group:1,subgroup:30,version:2,shortCodes:["family_mwb"]},{label:"family: man, woman, girl",hexcode:"1F468-200D-1F469-200D-1F467",tags:["child","family","girl","man","woman"],emoji:"👨‍👩‍👧",text:"",type:1,order:3620,group:1,subgroup:30,version:2,shortCodes:["family_mwg"]},{label:"family: man, woman, girl, boy",hexcode:"1F468-200D-1F469-200D-1F467-200D-1F466",tags:["boy","child","family","girl","man","woman"],emoji:"👨‍👩‍👧‍👦",text:"",type:1,order:3621,group:1,subgroup:30,version:2,shortCodes:["family_mwgb"]},{label:"family: man, woman, boy, boy",hexcode:"1F468-200D-1F469-200D-1F466-200D-1F466",tags:["boy","child","family","man","woman"],emoji:"👨‍👩‍👦‍👦",text:"",type:1,order:3622,group:1,subgroup:30,version:2,shortCodes:["family_mwbb"]},{label:"family: man, woman, girl, girl",hexcode:"1F468-200D-1F469-200D-1F467-200D-1F467",tags:["child","family","girl","man","woman"],emoji:"👨‍👩‍👧‍👧",text:"",type:1,order:3623,group:1,subgroup:30,version:2,shortCodes:["family_mwgg"]},{label:"family: man, man, boy",hexcode:"1F468-200D-1F468-200D-1F466",tags:["boy","child","family","man"],emoji:"👨‍👨‍👦",text:"",type:1,order:3624,group:1,subgroup:30,version:2,shortCodes:["family_mmb"]},{label:"family: man, man, girl",hexcode:"1F468-200D-1F468-200D-1F467",tags:["child","family","girl","man"],emoji:"👨‍👨‍👧",text:"",type:1,order:3625,group:1,subgroup:30,version:2,shortCodes:["family_mmg"]},{label:"family: man, man, girl, boy",hexcode:"1F468-200D-1F468-200D-1F467-200D-1F466",tags:["boy","child","family","girl","man"],emoji:"👨‍👨‍👧‍👦",text:"",type:1,order:3626,group:1,subgroup:30,version:2,shortCodes:["family_mmgb"]},{label:"family: man, man, boy, boy",hexcode:"1F468-200D-1F468-200D-1F466-200D-1F466",tags:["boy","child","family","man"],emoji:"👨‍👨‍👦‍👦",text:"",type:1,order:3627,group:1,subgroup:30,version:2,shortCodes:["family_mmbb"]},{label:"family: man, man, girl, girl",hexcode:"1F468-200D-1F468-200D-1F467-200D-1F467",tags:["child","family","girl","man"],emoji:"👨‍👨‍👧‍👧",text:"",type:1,order:3628,group:1,subgroup:30,version:2,shortCodes:["family_mmgg"]},{label:"family: woman, woman, boy",hexcode:"1F469-200D-1F469-200D-1F466",tags:["boy","child","family","woman"],emoji:"👩‍👩‍👦",text:"",type:1,order:3629,group:1,subgroup:30,version:2,shortCodes:["family_wwb"]},{label:"family: woman, woman, girl",hexcode:"1F469-200D-1F469-200D-1F467",tags:["child","family","girl","woman"],emoji:"👩‍👩‍👧",text:"",type:1,order:3630,group:1,subgroup:30,version:2,shortCodes:["family_wwg"]},{label:"family: woman, woman, girl, boy",hexcode:"1F469-200D-1F469-200D-1F467-200D-1F466",tags:["boy","child","family","girl","woman"],emoji:"👩‍👩‍👧‍👦",text:"",type:1,order:3631,group:1,subgroup:30,version:2,shortCodes:["family_wwgb"]},{label:"family: woman, woman, boy, boy",hexcode:"1F469-200D-1F469-200D-1F466-200D-1F466",tags:["boy","child","family","woman"],emoji:"👩‍👩‍👦‍👦",text:"",type:1,order:3632,group:1,subgroup:30,version:2,shortCodes:["family_wwbb"]},{label:"family: woman, woman, girl, girl",hexcode:"1F469-200D-1F469-200D-1F467-200D-1F467",tags:["child","family","girl","woman"],emoji:"👩‍👩‍👧‍👧",text:"",type:1,order:3633,group:1,subgroup:30,version:2,shortCodes:["family_wwgg"]},{label:"family: man, boy",hexcode:"1F468-200D-1F466",tags:["boy","child","family","man"],emoji:"👨‍👦",text:"",type:1,order:3634,group:1,subgroup:30,version:4,shortCodes:["family_mb"]},{label:"family: man, boy, boy",hexcode:"1F468-200D-1F466-200D-1F466",tags:["boy","child","family","man"],emoji:"👨‍👦‍👦",text:"",type:1,order:3635,group:1,subgroup:30,version:4,shortCodes:["family_mbb"]},{label:"family: man, girl",hexcode:"1F468-200D-1F467",tags:["child","family","girl","man"],emoji:"👨‍👧",text:"",type:1,order:3636,group:1,subgroup:30,version:4,shortCodes:["family_mg"]},{label:"family: man, girl, boy",hexcode:"1F468-200D-1F467-200D-1F466",tags:["boy","child","family","girl","man"],emoji:"👨‍👧‍👦",text:"",type:1,order:3637,group:1,subgroup:30,version:4,shortCodes:["family_mgb"]},{label:"family: man, girl, girl",hexcode:"1F468-200D-1F467-200D-1F467",tags:["child","family","girl","man"],emoji:"👨‍👧‍👧",text:"",type:1,order:3638,group:1,subgroup:30,version:4,shortCodes:["family_mgg"]},{label:"family: woman, boy",hexcode:"1F469-200D-1F466",tags:["boy","child","family","woman"],emoji:"👩‍👦",text:"",type:1,order:3639,group:1,subgroup:30,version:4,shortCodes:["family_wb"]},{label:"family: woman, boy, boy",hexcode:"1F469-200D-1F466-200D-1F466",tags:["boy","child","family","woman"],emoji:"👩‍👦‍👦",text:"",type:1,order:3640,group:1,subgroup:30,version:4,shortCodes:["family_wbb"]},{label:"family: woman, girl",hexcode:"1F469-200D-1F467",tags:["child","family","girl","woman"],emoji:"👩‍👧",text:"",type:1,order:3641,group:1,subgroup:30,version:4,shortCodes:["family_wg"]},{label:"family: woman, girl, boy",hexcode:"1F469-200D-1F467-200D-1F466",tags:["boy","child","family","girl","woman"],emoji:"👩‍👧‍👦",text:"",type:1,order:3642,group:1,subgroup:30,version:4,shortCodes:["family_wgb"]},{label:"family: woman, girl, girl",hexcode:"1F469-200D-1F467-200D-1F467",tags:["child","family","girl","woman"],emoji:"👩‍👧‍👧",text:"",type:1,order:3643,group:1,subgroup:30,version:4,shortCodes:["family_wgg"]},{label:"speaking head",hexcode:"1F5E3",tags:["face","head","silhouette","speak","speaking"],emoji:"🗣️",text:"🗣︎",type:0,order:3645,group:1,subgroup:31,version:.7,shortCodes:["speaking_head"]},{label:"bust in silhouette",hexcode:"1F464",tags:["bust","mysterious","shadow","silhouette"],emoji:"👤",text:"",type:1,order:3646,group:1,subgroup:31,version:.6,shortCodes:["bust_in_silhouette"]},{label:"busts in silhouette",hexcode:"1F465",tags:["bff","bust","busts","everyone","friend","friends","people","silhouette"],emoji:"👥",text:"",type:1,order:3647,group:1,subgroup:31,version:1,shortCodes:["busts_in_silhouette"]},{label:"people hugging",hexcode:"1FAC2",tags:["comfort","embrace","farewell","friendship","goodbye","hello","hug","hugging","love","people","thanks"],emoji:"🫂",text:"",type:1,order:3648,group:1,subgroup:31,version:13,shortCodes:["people_hugging"]},{label:"family",hexcode:"1F46A",tags:["child"],emoji:"👪️",text:"👪︎",type:1,order:3649,group:1,subgroup:31,version:.6,shortCodes:["family"]},{label:"family: adult, adult, child",hexcode:"1F9D1-200D-1F9D1-200D-1F9D2",tags:["adult","child","family"],emoji:"🧑‍🧑‍🧒",text:"",type:1,order:3650,group:1,subgroup:31,version:15.1,shortCodes:["family_aac"]},{label:"family: adult, adult, child, child",hexcode:"1F9D1-200D-1F9D1-200D-1F9D2-200D-1F9D2",tags:["adult","child","family"],emoji:"🧑‍🧑‍🧒‍🧒",text:"",type:1,order:3651,group:1,subgroup:31,version:15.1,shortCodes:["family_aacc"]},{label:"family: adult, child",hexcode:"1F9D1-200D-1F9D2",tags:["adult","child","family"],emoji:"🧑‍🧒",text:"",type:1,order:3652,group:1,subgroup:31,version:15.1,shortCodes:["family_aa","family_ac"]},{label:"family: adult, child, child",hexcode:"1F9D1-200D-1F9D2-200D-1F9D2",tags:["adult","child","family"],emoji:"🧑‍🧒‍🧒",text:"",type:1,order:3653,group:1,subgroup:31,version:15.1,shortCodes:["family_acc"]},{label:"footprints",hexcode:"1F463",tags:["barefoot","clothing","footprint","omw","print","walk"],emoji:"👣",text:"",type:1,order:3654,group:1,subgroup:31,version:.6,shortCodes:["footprints"]},{label:"fingerprint",hexcode:"1FAC6",tags:["clue","crime","detective","forensics","identity","mystery","print","safety","trace"],emoji:"🫆",text:"",type:1,order:3655,group:1,subgroup:31,version:16,shortCodes:["fingerprint"]},{label:"light skin tone",hexcode:"1F3FB",tags:["1–2","light","skin","tone","type"],emoji:"🏻",text:"",type:1,order:3656,group:2,subgroup:32,version:1,shortCodes:["tone1","tone_light"]},{label:"medium-light skin tone",hexcode:"1F3FC",tags:["3","medium-light","skin","tone","type"],emoji:"🏼",text:"",type:1,order:3657,group:2,subgroup:32,version:1,shortCodes:["tone2","tone_medium_light"]},{label:"medium skin tone",hexcode:"1F3FD",tags:["4","medium","skin","tone","type"],emoji:"🏽",text:"",type:1,order:3658,group:2,subgroup:32,version:1,shortCodes:["tone3","tone_medium"]},{label:"medium-dark skin tone",hexcode:"1F3FE",tags:["5","medium-dark","skin","tone","type"],emoji:"🏾",text:"",type:1,order:3659,group:2,subgroup:32,version:1,shortCodes:["tone4","tone_medium_dark"]},{label:"dark skin tone",hexcode:"1F3FF",tags:["6","dark","skin","tone","type"],emoji:"🏿",text:"",type:1,order:3660,group:2,subgroup:32,version:1,shortCodes:["tone5","tone_dark"]},{label:"red hair",hexcode:"1F9B0",tags:["ginger","hair","red","redhead"],emoji:"🦰",text:"",type:1,order:3661,group:2,subgroup:33,version:11,shortCodes:["red_hair"]},{label:"curly hair",hexcode:"1F9B1",tags:["afro","curly","hair","ringlets"],emoji:"🦱",text:"",type:1,order:3662,group:2,subgroup:33,version:11,shortCodes:["curly_hair"]},{label:"white hair",hexcode:"1F9B3",tags:["gray","hair","old","white"],emoji:"🦳",text:"",type:1,order:3663,group:2,subgroup:33,version:11,shortCodes:["white_hair"]},{label:"bald",hexcode:"1F9B2",tags:["chemotherapy","hair","hairless","no","shaven"],emoji:"🦲",text:"",type:1,order:3664,group:2,subgroup:33,version:11,shortCodes:["no_hair"]},{label:"monkey face",hexcode:"1F435",tags:["animal","banana","face","monkey"],emoji:"🐵",text:"",type:1,order:3665,group:3,subgroup:34,version:.6,shortCodes:["monkey_face"]},{label:"monkey",hexcode:"1F412",tags:["animal","banana"],emoji:"🐒",text:"",type:1,order:3666,group:3,subgroup:34,version:.6,shortCodes:["monkey"]},{label:"gorilla",hexcode:"1F98D",tags:["animal"],emoji:"🦍",text:"",type:1,order:3667,group:3,subgroup:34,version:3,shortCodes:["gorilla"]},{label:"orangutan",hexcode:"1F9A7",tags:["animal","ape","monkey"],emoji:"🦧",text:"",type:1,order:3668,group:3,subgroup:34,version:12,shortCodes:["orangutan"]},{label:"dog face",hexcode:"1F436",tags:["adorbs","animal","dog","face","pet","puppies","puppy"],emoji:"🐶",text:"",type:1,order:3669,group:3,subgroup:34,version:.6,shortCodes:["dog_face"]},{label:"dog",hexcode:"1F415",tags:["animal","animals","dogs","pet"],emoji:"🐕️",text:"🐕︎",type:1,order:3670,group:3,subgroup:34,version:.7,shortCodes:["dog"]},{label:"guide dog",hexcode:"1F9AE",tags:["accessibility","animal","blind","dog","guide"],emoji:"🦮",text:"",type:1,order:3671,group:3,subgroup:34,version:12,shortCodes:["guide_dog"]},{label:"service dog",hexcode:"1F415-200D-1F9BA",tags:["accessibility","animal","assistance","dog","service"],emoji:"🐕‍🦺",text:"",type:1,order:3672,group:3,subgroup:34,version:12,shortCodes:["service_dog"]},{label:"poodle",hexcode:"1F429",tags:["animal","dog","fluffy"],emoji:"🐩",text:"",type:1,order:3673,group:3,subgroup:34,version:.6,shortCodes:["poodle"]},{label:"wolf",hexcode:"1F43A",tags:["animal","face"],emoji:"🐺",text:"",type:1,order:3674,group:3,subgroup:34,version:.6,shortCodes:["wolf","wolf_face"]},{label:"fox",hexcode:"1F98A",tags:["animal","face"],emoji:"🦊",text:"",type:1,order:3675,group:3,subgroup:34,version:3,shortCodes:["fox","fox_face"]},{label:"raccoon",hexcode:"1F99D",tags:["animal","curious","sly"],emoji:"🦝",text:"",type:1,order:3676,group:3,subgroup:34,version:11,shortCodes:["raccoon"]},{label:"cat face",hexcode:"1F431",tags:["animal","cat","face","kitten","kitty","pet"],emoji:"🐱",text:"",type:1,order:3677,group:3,subgroup:34,version:.6,shortCodes:["cat_face"]},{label:"cat",hexcode:"1F408",tags:["animal","animals","cats","kitten","pet"],emoji:"🐈️",text:"🐈︎",type:1,order:3678,group:3,subgroup:34,version:.7,shortCodes:["cat"]},{label:"black cat",hexcode:"1F408-200D-2B1B",tags:["animal","black","cat","feline","halloween","meow","unlucky"],emoji:"🐈‍⬛",text:"",type:1,order:3679,group:3,subgroup:34,version:13,shortCodes:["black_cat"]},{label:"lion",hexcode:"1F981",tags:["alpha","animal","face","leo","mane","order","rawr","roar","safari","strong","zodiac"],emoji:"🦁",text:"",type:1,order:3680,group:3,subgroup:34,version:1,shortCodes:["lion","lion_face"]},{label:"tiger face",hexcode:"1F42F",tags:["animal","big","cat","face","predator","tiger"],emoji:"🐯",text:"",type:1,order:3681,group:3,subgroup:34,version:.6,shortCodes:["tiger_face"]},{label:"tiger",hexcode:"1F405",tags:["animal","big","cat","predator","zoo"],emoji:"🐅",text:"",type:1,order:3682,group:3,subgroup:34,version:1,shortCodes:["tiger"]},{label:"leopard",hexcode:"1F406",tags:["animal","big","cat","predator","zoo"],emoji:"🐆",text:"",type:1,order:3683,group:3,subgroup:34,version:1,shortCodes:["leopard"]},{label:"horse face",hexcode:"1F434",tags:["animal","dressage","equine","face","farm","horse","horses"],emoji:"🐴",text:"",type:1,order:3684,group:3,subgroup:34,version:.6,shortCodes:["horse_face"]},{label:"moose",hexcode:"1FACE",tags:["alces","animal","antlers","elk","mammal"],emoji:"🫎",text:"",type:1,order:3685,group:3,subgroup:34,version:15,shortCodes:["moose"]},{label:"donkey",hexcode:"1FACF",tags:["animal","ass","burro","hinny","mammal","mule","stubborn"],emoji:"🫏",text:"",type:1,order:3686,group:3,subgroup:34,version:15,shortCodes:["donkey"]},{label:"horse",hexcode:"1F40E",tags:["animal","equestrian","farm","racehorse","racing"],emoji:"🐎",text:"",type:1,order:3687,group:3,subgroup:34,version:.6,shortCodes:["horse","racehorse"]},{label:"unicorn",hexcode:"1F984",tags:["face"],emoji:"🦄",text:"",type:1,order:3688,group:3,subgroup:34,version:1,shortCodes:["unicorn","unicorn_face"]},{label:"zebra",hexcode:"1F993",tags:["animal","stripe"],emoji:"🦓",text:"",type:1,order:3689,group:3,subgroup:34,version:5,shortCodes:["zebra"]},{label:"deer",hexcode:"1F98C",tags:["animal"],emoji:"🦌",text:"",type:1,order:3690,group:3,subgroup:34,version:3,shortCodes:["deer"]},{label:"bison",hexcode:"1F9AC",tags:["animal","buffalo","herd","wisent"],emoji:"🦬",text:"",type:1,order:3691,group:3,subgroup:34,version:13,shortCodes:["bison"]},{label:"cow face",hexcode:"1F42E",tags:["animal","cow","face","farm","milk","moo"],emoji:"🐮",text:"",type:1,order:3692,group:3,subgroup:34,version:.6,shortCodes:["cow_face"]},{label:"ox",hexcode:"1F402",tags:["animal","animals","bull","farm","taurus","zodiac"],emoji:"🐂",text:"",type:1,order:3693,group:3,subgroup:34,version:1,shortCodes:["ox"]},{label:"water buffalo",hexcode:"1F403",tags:["animal","buffalo","water","zoo"],emoji:"🐃",text:"",type:1,order:3694,group:3,subgroup:34,version:1,shortCodes:["water_buffalo"]},{label:"cow",hexcode:"1F404",tags:["animal","animals","farm","milk","moo"],emoji:"🐄",text:"",type:1,order:3695,group:3,subgroup:34,version:1,shortCodes:["cow"]},{label:"pig face",hexcode:"1F437",tags:["animal","bacon","face","farm","pig","pork"],emoji:"🐷",text:"",type:1,order:3696,group:3,subgroup:34,version:.6,shortCodes:["pig_face"]},{label:"pig",hexcode:"1F416",tags:["animal","bacon","farm","pork","sow"],emoji:"🐖",text:"",type:1,order:3697,group:3,subgroup:34,version:1,shortCodes:["pig"]},{label:"boar",hexcode:"1F417",tags:["animal","pig"],emoji:"🐗",text:"",type:1,order:3698,group:3,subgroup:34,version:.6,shortCodes:["boar"]},{label:"pig nose",hexcode:"1F43D",tags:["animal","face","farm","nose","pig","smell","snout"],emoji:"🐽",text:"",type:1,order:3699,group:3,subgroup:34,version:.6,shortCodes:["pig_nose"]},{label:"ram",hexcode:"1F40F",tags:["animal","aries","horns","male","sheep","zodiac","zoo"],emoji:"🐏",text:"",type:1,order:3700,group:3,subgroup:34,version:1,shortCodes:["ram"]},{label:"ewe",hexcode:"1F411",tags:["animal","baa","farm","female","fluffy","lamb","sheep","wool"],emoji:"🐑",text:"",type:1,order:3701,group:3,subgroup:34,version:.6,shortCodes:["ewe","sheep"]},{label:"goat",hexcode:"1F410",tags:["animal","capricorn","farm","milk","zodiac"],emoji:"🐐",text:"",type:1,order:3702,group:3,subgroup:34,version:1,shortCodes:["goat"]},{label:"camel",hexcode:"1F42A",tags:["animal","desert","dromedary","hump","one"],emoji:"🐪",text:"",type:1,order:3703,group:3,subgroup:34,version:1,shortCodes:["dromedary_camel"]},{label:"two-hump camel",hexcode:"1F42B",tags:["animal","bactrian","camel","desert","hump","two","two-hump"],emoji:"🐫",text:"",type:1,order:3704,group:3,subgroup:34,version:.6,shortCodes:["camel"]},{label:"llama",hexcode:"1F999",tags:["alpaca","animal","guanaco","vicuña","wool"],emoji:"🦙",text:"",type:1,order:3705,group:3,subgroup:34,version:11,shortCodes:["llama"]},{label:"giraffe",hexcode:"1F992",tags:["animal","spots"],emoji:"🦒",text:"",type:1,order:3706,group:3,subgroup:34,version:5,shortCodes:["giraffe"]},{label:"elephant",hexcode:"1F418",tags:["animal"],emoji:"🐘",text:"",type:1,order:3707,group:3,subgroup:34,version:.6,shortCodes:["elephant"]},{label:"mammoth",hexcode:"1F9A3",tags:["animal","extinction","large","tusk","wooly"],emoji:"🦣",text:"",type:1,order:3708,group:3,subgroup:34,version:13,shortCodes:["mammoth"]},{label:"rhinoceros",hexcode:"1F98F",tags:["animal"],emoji:"🦏",text:"",type:1,order:3709,group:3,subgroup:34,version:3,shortCodes:["rhino","rhinoceros"]},{label:"hippopotamus",hexcode:"1F99B",tags:["animal","hippo"],emoji:"🦛",text:"",type:1,order:3710,group:3,subgroup:34,version:11,shortCodes:["hippo"]},{label:"mouse face",hexcode:"1F42D",tags:["animal","face","mouse"],emoji:"🐭",text:"",type:1,order:3711,group:3,subgroup:34,version:.6,shortCodes:["mouse_face"]},{label:"mouse",hexcode:"1F401",tags:["animal","animals"],emoji:"🐁",text:"",type:1,order:3712,group:3,subgroup:34,version:1,shortCodes:["mouse"]},{label:"rat",hexcode:"1F400",tags:["animal"],emoji:"🐀",text:"",type:1,order:3713,group:3,subgroup:34,version:1,shortCodes:["rat"]},{label:"hamster",hexcode:"1F439",tags:["animal","face","pet"],emoji:"🐹",text:"",type:1,order:3714,group:3,subgroup:34,version:.6,shortCodes:["hamster","hamster_face"]},{label:"rabbit face",hexcode:"1F430",tags:["animal","bunny","face","pet","rabbit"],emoji:"🐰",text:"",type:1,order:3715,group:3,subgroup:34,version:.6,shortCodes:["rabbit_face"]},{label:"rabbit",hexcode:"1F407",tags:["animal","bunny","pet"],emoji:"🐇",text:"",type:1,order:3716,group:3,subgroup:34,version:1,shortCodes:["rabbit"]},{label:"chipmunk",hexcode:"1F43F",tags:["animal","squirrel"],emoji:"🐿️",text:"🐿︎",type:0,order:3718,group:3,subgroup:34,version:.7,shortCodes:["chipmunk"]},{label:"beaver",hexcode:"1F9AB",tags:["animal","dam","teeth"],emoji:"🦫",text:"",type:1,order:3719,group:3,subgroup:34,version:13,shortCodes:["beaver"]},{label:"hedgehog",hexcode:"1F994",tags:["animal","spiny"],emoji:"🦔",text:"",type:1,order:3720,group:3,subgroup:34,version:5,shortCodes:["hedgehog"]},{label:"bat",hexcode:"1F987",tags:["animal","vampire"],emoji:"🦇",text:"",type:1,order:3721,group:3,subgroup:34,version:3,shortCodes:["bat"]},{label:"bear",hexcode:"1F43B",tags:["animal","face","grizzly","growl","honey"],emoji:"🐻",text:"",type:1,order:3722,group:3,subgroup:34,version:.6,shortCodes:["bear","bear_face"]},{label:"polar bear",hexcode:"1F43B-200D-2744-FE0F",tags:["animal","arctic","bear","polar","white"],emoji:"🐻‍❄️",text:"",type:1,order:3723,group:3,subgroup:34,version:13,shortCodes:["polar_bear","polar_bear_face"]},{label:"koala",hexcode:"1F428",tags:["animal","australia","bear","down","face","marsupial","under"],emoji:"🐨",text:"",type:1,order:3725,group:3,subgroup:34,version:.6,shortCodes:["koala","koala_face"]},{label:"panda",hexcode:"1F43C",tags:["animal","bamboo","face"],emoji:"🐼",text:"",type:1,order:3726,group:3,subgroup:34,version:.6,shortCodes:["panda","panda_face"]},{label:"sloth",hexcode:"1F9A5",tags:["lazy","slow"],emoji:"🦥",text:"",type:1,order:3727,group:3,subgroup:34,version:12,shortCodes:["sloth"]},{label:"otter",hexcode:"1F9A6",tags:["animal","fishing","playful"],emoji:"🦦",text:"",type:1,order:3728,group:3,subgroup:34,version:12,shortCodes:["otter"]},{label:"skunk",hexcode:"1F9A8",tags:["animal","stink"],emoji:"🦨",text:"",type:1,order:3729,group:3,subgroup:34,version:12,shortCodes:["skunk"]},{label:"kangaroo",hexcode:"1F998",tags:["animal","joey","jump","marsupial"],emoji:"🦘",text:"",type:1,order:3730,group:3,subgroup:34,version:11,shortCodes:["kangaroo"]},{label:"badger",hexcode:"1F9A1",tags:["animal","honey","pester"],emoji:"🦡",text:"",type:1,order:3731,group:3,subgroup:34,version:11,shortCodes:["badger"]},{label:"paw prints",hexcode:"1F43E",tags:["feet","paw","paws","print","prints"],emoji:"🐾",text:"",type:1,order:3732,group:3,subgroup:34,version:.6,shortCodes:["paw_prints"]},{label:"turkey",hexcode:"1F983",tags:["bird","gobble","thanksgiving"],emoji:"🦃",text:"",type:1,order:3733,group:3,subgroup:35,version:1,shortCodes:["turkey"]},{label:"chicken",hexcode:"1F414",tags:["animal","bird","ornithology"],emoji:"🐔",text:"",type:1,order:3734,group:3,subgroup:35,version:.6,shortCodes:["chicken","chicken_face"]},{label:"rooster",hexcode:"1F413",tags:["animal","bird","ornithology"],emoji:"🐓",text:"",type:1,order:3735,group:3,subgroup:35,version:1,shortCodes:["rooster"]},{label:"hatching chick",hexcode:"1F423",tags:["animal","baby","bird","chick","egg","hatching"],emoji:"🐣",text:"",type:1,order:3736,group:3,subgroup:35,version:.6,shortCodes:["hatching_chick"]},{label:"baby chick",hexcode:"1F424",tags:["animal","baby","bird","chick","ornithology"],emoji:"🐤",text:"",type:1,order:3737,group:3,subgroup:35,version:.6,shortCodes:["baby_chick"]},{label:"front-facing baby chick",hexcode:"1F425",tags:["animal","baby","bird","chick","front-facing","newborn","ornithology"],emoji:"🐥",text:"",type:1,order:3738,group:3,subgroup:35,version:.6,shortCodes:["hatched_chick"]},{label:"bird",hexcode:"1F426",tags:["animal","ornithology"],emoji:"🐦️",text:"🐦︎",type:1,order:3739,group:3,subgroup:35,version:.6,shortCodes:["bird","bird_face"]},{label:"penguin",hexcode:"1F427",tags:["animal","antarctica","bird","ornithology"],emoji:"🐧",text:"",type:1,order:3740,group:3,subgroup:35,version:.6,shortCodes:["penguin","penguin_face"]},{label:"dove",hexcode:"1F54A",tags:["bird","fly","ornithology","peace"],emoji:"🕊️",text:"🕊︎",type:0,order:3742,group:3,subgroup:35,version:.7,shortCodes:["dove"]},{label:"eagle",hexcode:"1F985",tags:["animal","bird","ornithology"],emoji:"🦅",text:"",type:1,order:3743,group:3,subgroup:35,version:3,shortCodes:["eagle"]},{label:"duck",hexcode:"1F986",tags:["animal","bird","ornithology"],emoji:"🦆",text:"",type:1,order:3744,group:3,subgroup:35,version:3,shortCodes:["duck"]},{label:"swan",hexcode:"1F9A2",tags:["animal","bird","cygnet","duckling","ornithology","ugly"],emoji:"🦢",text:"",type:1,order:3745,group:3,subgroup:35,version:11,shortCodes:["swan"]},{label:"owl",hexcode:"1F989",tags:["animal","bird","ornithology","wise"],emoji:"🦉",text:"",type:1,order:3746,group:3,subgroup:35,version:3,shortCodes:["owl"]},{label:"dodo",hexcode:"1F9A4",tags:["animal","bird","extinction","large","ornithology"],emoji:"🦤",text:"",type:1,order:3747,group:3,subgroup:35,version:13,shortCodes:["dodo"]},{label:"feather",hexcode:"1FAB6",tags:["bird","flight","light","plumage"],emoji:"🪶",text:"",type:1,order:3748,group:3,subgroup:35,version:13,shortCodes:["feather"]},{label:"flamingo",hexcode:"1F9A9",tags:["animal","bird","flamboyant","ornithology","tropical"],emoji:"🦩",text:"",type:1,order:3749,group:3,subgroup:35,version:12,shortCodes:["flamingo"]},{label:"peacock",hexcode:"1F99A",tags:["animal","bird","colorful","ornithology","ostentatious","peahen","pretty","proud"],emoji:"🦚",text:"",type:1,order:3750,group:3,subgroup:35,version:11,shortCodes:["peacock"]},{label:"parrot",hexcode:"1F99C",tags:["animal","bird","ornithology","pirate","talk"],emoji:"🦜",text:"",type:1,order:3751,group:3,subgroup:35,version:11,shortCodes:["parrot"]},{label:"wing",hexcode:"1FABD",tags:["angelic","ascend","aviation","bird","fly","flying","heavenly","mythology","soar"],emoji:"🪽",text:"",type:1,order:3752,group:3,subgroup:35,version:15,shortCodes:["wing"]},{label:"black bird",hexcode:"1F426-200D-2B1B",tags:["animal","beak","bird","black","caw","corvid","crow","ornithology","raven","rook"],emoji:"🐦‍⬛",text:"",type:1,order:3753,group:3,subgroup:35,version:15,shortCodes:["black_bird"]},{label:"goose",hexcode:"1FABF",tags:["animal","bird","duck","flock","fowl","gaggle","gander","geese","honk","ornithology","silly"],emoji:"🪿",text:"",type:1,order:3754,group:3,subgroup:35,version:15,shortCodes:["goose"]},{label:"phoenix",hexcode:"1F426-200D-1F525",tags:["ascend","ascension","emerge","fantasy","firebird","glory","immortal","rebirth","reincarnation","reinvent","renewal","revival","revive","rise","transform"],emoji:"🐦‍🔥",text:"",type:1,order:3755,group:3,subgroup:35,version:15.1,shortCodes:["phoenix"]},{label:"frog",hexcode:"1F438",tags:["animal","face"],emoji:"🐸",text:"",type:1,order:3756,group:3,subgroup:36,version:.6,shortCodes:["frog","frog_face"]},{label:"crocodile",hexcode:"1F40A",tags:["animal","zoo"],emoji:"🐊",text:"",type:1,order:3757,group:3,subgroup:37,version:1,shortCodes:["crocodile"]},{label:"turtle",hexcode:"1F422",tags:["animal","terrapin","tortoise"],emoji:"🐢",text:"",type:1,order:3758,group:3,subgroup:37,version:.6,shortCodes:["turtle"]},{label:"lizard",hexcode:"1F98E",tags:["animal","reptile"],emoji:"🦎",text:"",type:1,order:3759,group:3,subgroup:37,version:3,shortCodes:["lizard"]},{label:"snake",hexcode:"1F40D",tags:["animal","bearer","ophiuchus","serpent","zodiac"],emoji:"🐍",text:"",type:1,order:3760,group:3,subgroup:37,version:.6,shortCodes:["snake"]},{label:"dragon face",hexcode:"1F432",tags:["animal","dragon","face","fairy","fairytale","tale"],emoji:"🐲",text:"",type:1,order:3761,group:3,subgroup:37,version:.6,shortCodes:["dragon_face"]},{label:"dragon",hexcode:"1F409",tags:["animal","fairy","fairytale","knights","tale"],emoji:"🐉",text:"",type:1,order:3762,group:3,subgroup:37,version:1,shortCodes:["dragon"]},{label:"sauropod",hexcode:"1F995",tags:["brachiosaurus","brontosaurus","dinosaur","diplodocus"],emoji:"🦕",text:"",type:1,order:3763,group:3,subgroup:37,version:5,shortCodes:["sauropod"]},{label:"T-Rex",hexcode:"1F996",tags:["dinosaur","rex","t","t-rex","tyrannosaurus"],emoji:"🦖",text:"",type:1,order:3764,group:3,subgroup:37,version:5,shortCodes:["t-rex","trex"]},{label:"spouting whale",hexcode:"1F433",tags:["animal","beach","face","ocean","spouting","whale"],emoji:"🐳",text:"",type:1,order:3765,group:3,subgroup:38,version:.6,shortCodes:["spouting_whale"]},{label:"whale",hexcode:"1F40B",tags:["animal","beach","ocean"],emoji:"🐋",text:"",type:1,order:3766,group:3,subgroup:38,version:1,shortCodes:["whale"]},{label:"dolphin",hexcode:"1F42C",tags:["animal","beach","flipper","ocean"],emoji:"🐬",text:"",type:1,order:3767,group:3,subgroup:38,version:.6,shortCodes:["dolphin"]},{label:"seal",hexcode:"1F9AD",tags:["animal","lion","ocean","sea"],emoji:"🦭",text:"",type:1,order:3769,group:3,subgroup:38,version:13,shortCodes:["seal"]},{label:"fish",hexcode:"1F41F",tags:["animal","dinner","fishes","fishing","pisces","zodiac"],emoji:"🐟️",text:"🐟︎",type:1,order:3770,group:3,subgroup:38,version:.6,shortCodes:["fish"]},{label:"tropical fish",hexcode:"1F420",tags:["animal","fish","fishes","tropical"],emoji:"🐠",text:"",type:1,order:3771,group:3,subgroup:38,version:.6,shortCodes:["tropical_fish"]},{label:"blowfish",hexcode:"1F421",tags:["animal","fish"],emoji:"🐡",text:"",type:1,order:3772,group:3,subgroup:38,version:.6,shortCodes:["blowfish"]},{label:"shark",hexcode:"1F988",tags:["animal","fish"],emoji:"🦈",text:"",type:1,order:3773,group:3,subgroup:38,version:3,shortCodes:["shark"]},{label:"octopus",hexcode:"1F419",tags:["animal","creature","ocean"],emoji:"🐙",text:"",type:1,order:3774,group:3,subgroup:38,version:.6,shortCodes:["octopus"]},{label:"spiral shell",hexcode:"1F41A",tags:["animal","beach","conch","sea","shell","spiral"],emoji:"🐚",text:"",type:1,order:3775,group:3,subgroup:38,version:.6,shortCodes:["shell"]},{label:"coral",hexcode:"1FAB8",tags:["change","climate","ocean","reef","sea"],emoji:"🪸",text:"",type:1,order:3776,group:3,subgroup:38,version:14,shortCodes:["coral"]},{label:"jellyfish",hexcode:"1FABC",tags:["animal","aquarium","burn","invertebrate","jelly","life","marine","ocean","ouch","plankton","sea","sting","stinger","tentacles"],emoji:"🪼",text:"",type:1,order:3777,group:3,subgroup:38,version:15,shortCodes:["jellyfish"]},{label:"crab",hexcode:"1F980",tags:["cancer","zodiac"],emoji:"🦀",text:"",type:1,order:3778,group:3,subgroup:38,version:1,shortCodes:["crab"]},{label:"lobster",hexcode:"1F99E",tags:["animal","bisque","claws","seafood"],emoji:"🦞",text:"",type:1,order:3779,group:3,subgroup:38,version:11,shortCodes:["lobster"]},{label:"shrimp",hexcode:"1F990",tags:["food","shellfish","small"],emoji:"🦐",text:"",type:1,order:3780,group:3,subgroup:38,version:3,shortCodes:["shrimp"]},{label:"squid",hexcode:"1F991",tags:["animal","food","mollusk"],emoji:"🦑",text:"",type:1,order:3781,group:3,subgroup:38,version:3,shortCodes:["squid"]},{label:"oyster",hexcode:"1F9AA",tags:["diving","pearl"],emoji:"🦪",text:"",type:1,order:3782,group:3,subgroup:38,version:12,shortCodes:["oyster"]},{label:"snail",hexcode:"1F40C",tags:["animal","escargot","garden","nature","slug"],emoji:"🐌",text:"",type:1,order:3783,group:3,subgroup:39,version:.6,shortCodes:["snail"]},{label:"butterfly",hexcode:"1F98B",tags:["insect","pretty"],emoji:"🦋",text:"",type:1,order:3784,group:3,subgroup:39,version:3,shortCodes:["butterfly"]},{label:"bug",hexcode:"1F41B",tags:["animal","garden","insect"],emoji:"🐛",text:"",type:1,order:3785,group:3,subgroup:39,version:.6,shortCodes:["bug"]},{label:"ant",hexcode:"1F41C",tags:["animal","garden","insect"],emoji:"🐜",text:"",type:1,order:3786,group:3,subgroup:39,version:.6,shortCodes:["ant"]},{label:"honeybee",hexcode:"1F41D",tags:["animal","bee","bumblebee","honey","insect","nature","spring"],emoji:"🐝",text:"",type:1,order:3787,group:3,subgroup:39,version:.6,shortCodes:["bee"]},{label:"beetle",hexcode:"1FAB2",tags:["animal","bug","insect"],emoji:"🪲",text:"",type:1,order:3788,group:3,subgroup:39,version:13,shortCodes:["beetle"]},{label:"lady beetle",hexcode:"1F41E",tags:["animal","beetle","garden","insect","lady","ladybird","ladybug","nature"],emoji:"🐞",text:"",type:1,order:3789,group:3,subgroup:39,version:.6,shortCodes:["lady_beetle"]},{label:"cricket",hexcode:"1F997",tags:["animal","bug","grasshopper","insect","orthoptera"],emoji:"🦗",text:"",type:1,order:3790,group:3,subgroup:39,version:5,shortCodes:["cricket"]},{label:"cockroach",hexcode:"1FAB3",tags:["animal","insect","pest","roach"],emoji:"🪳",text:"",type:1,order:3791,group:3,subgroup:39,version:13,shortCodes:["cockroach"]},{label:"spider",hexcode:"1F577",tags:["animal","insect"],emoji:"🕷️",text:"🕷︎",type:0,order:3793,group:3,subgroup:39,version:.7,shortCodes:["spider"]},{label:"spider web",hexcode:"1F578",tags:["spider","web"],emoji:"🕸️",text:"🕸︎",type:0,order:3795,group:3,subgroup:39,version:.7,shortCodes:["spider_web"]},{label:"scorpion",hexcode:"1F982",tags:["scorpio","scorpius","zodiac"],emoji:"🦂",text:"",type:1,order:3796,group:3,subgroup:39,version:1,shortCodes:["scorpion"]},{label:"mosquito",hexcode:"1F99F",tags:["bite","disease","fever","insect","malaria","pest","virus"],emoji:"🦟",text:"",type:1,order:3797,group:3,subgroup:39,version:11,shortCodes:["mosquito"]},{label:"fly",hexcode:"1FAB0",tags:["animal","disease","insect","maggot","pest","rotting"],emoji:"🪰",text:"",type:1,order:3798,group:3,subgroup:39,version:13,shortCodes:["fly"]},{label:"worm",hexcode:"1FAB1",tags:["animal","annelid","earthworm","parasite"],emoji:"🪱",text:"",type:1,order:3799,group:3,subgroup:39,version:13,shortCodes:["worm"]},{label:"microbe",hexcode:"1F9A0",tags:["amoeba","bacteria","science","virus"],emoji:"🦠",text:"",type:1,order:3800,group:3,subgroup:39,version:11,shortCodes:["microbe"]},{label:"bouquet",hexcode:"1F490",tags:["anniversary","birthday","date","flower","love","plant","romance"],emoji:"💐",text:"",type:1,order:3801,group:3,subgroup:40,version:.6,shortCodes:["bouquet"]},{label:"cherry blossom",hexcode:"1F338",tags:["blossom","cherry","flower","plant","spring","springtime"],emoji:"🌸",text:"",type:1,order:3802,group:3,subgroup:40,version:.6,shortCodes:["cherry_blossom"]},{label:"white flower",hexcode:"1F4AE",tags:["flower","white"],emoji:"💮",text:"",type:1,order:3803,group:3,subgroup:40,version:.6,shortCodes:["white_flower"]},{label:"lotus",hexcode:"1FAB7",tags:["beauty","buddhism","calm","flower","hinduism","peace","purity","serenity"],emoji:"🪷",text:"",type:1,order:3804,group:3,subgroup:40,version:14,shortCodes:["lotus"]},{label:"rosette",hexcode:"1F3F5",tags:["plant"],emoji:"🏵️",text:"🏵︎",type:0,order:3806,group:3,subgroup:40,version:.7,shortCodes:["rosette"]},{label:"rose",hexcode:"1F339",tags:["beauty","elegant","flower","love","plant","red","valentine"],emoji:"🌹",text:"",type:1,order:3807,group:3,subgroup:40,version:.6,shortCodes:["rose"]},{label:"wilted flower",hexcode:"1F940",tags:["dying","flower","wilted"],emoji:"🥀",text:"",type:1,order:3808,group:3,subgroup:40,version:3,shortCodes:["wilted_flower"]},{label:"hibiscus",hexcode:"1F33A",tags:["flower","plant"],emoji:"🌺",text:"",type:1,order:3809,group:3,subgroup:40,version:.6,shortCodes:["hibiscus"]},{label:"sunflower",hexcode:"1F33B",tags:["flower","outdoors","plant","sun"],emoji:"🌻",text:"",type:1,order:3810,group:3,subgroup:40,version:.6,shortCodes:["sunflower"]},{label:"blossom",hexcode:"1F33C",tags:["buttercup","dandelion","flower","plant"],emoji:"🌼",text:"",type:1,order:3811,group:3,subgroup:40,version:.6,shortCodes:["blossom"]},{label:"tulip",hexcode:"1F337",tags:["blossom","flower","growth","plant"],emoji:"🌷",text:"",type:1,order:3812,group:3,subgroup:40,version:.6,shortCodes:["tulip"]},{label:"hyacinth",hexcode:"1FABB",tags:["bloom","bluebonnet","flower","indigo","lavender","lilac","lupine","plant","purple","shrub","snapdragon","spring","violet"],emoji:"🪻",text:"",type:1,order:3813,group:3,subgroup:40,version:15,shortCodes:["hyacinth"]},{label:"seedling",hexcode:"1F331",tags:["plant","sapling","sprout","young"],emoji:"🌱",text:"",type:1,order:3814,group:3,subgroup:41,version:.6,shortCodes:["seedling"]},{label:"potted plant",hexcode:"1FAB4",tags:["decor","grow","house","nurturing","plant","pot","potted"],emoji:"🪴",text:"",type:1,order:3815,group:3,subgroup:41,version:13,shortCodes:["potted_plant"]},{label:"evergreen tree",hexcode:"1F332",tags:["christmas","evergreen","forest","pine","tree"],emoji:"🌲",text:"",type:1,order:3816,group:3,subgroup:41,version:1,shortCodes:["evergreen_tree"]},{label:"deciduous tree",hexcode:"1F333",tags:["deciduous","forest","green","habitat","shedding","tree"],emoji:"🌳",text:"",type:1,order:3817,group:3,subgroup:41,version:1,shortCodes:["deciduous_tree"]},{label:"palm tree",hexcode:"1F334",tags:["beach","palm","plant","tree","tropical"],emoji:"🌴",text:"",type:1,order:3818,group:3,subgroup:41,version:.6,shortCodes:["palm_tree"]},{label:"cactus",hexcode:"1F335",tags:["desert","drought","nature","plant"],emoji:"🌵",text:"",type:1,order:3819,group:3,subgroup:41,version:.6,shortCodes:["cactus"]},{label:"sheaf of rice",hexcode:"1F33E",tags:["ear","grain","grains","plant","rice","sheaf"],emoji:"🌾",text:"",type:1,order:3820,group:3,subgroup:41,version:.6,shortCodes:["ear_of_rice","sheaf_of_rice"]},{label:"herb",hexcode:"1F33F",tags:["leaf","plant"],emoji:"🌿",text:"",type:1,order:3821,group:3,subgroup:41,version:.6,shortCodes:["herb"]},{label:"shamrock",hexcode:"2618",tags:["irish","plant"],emoji:"☘️",text:"☘︎",type:0,order:3823,group:3,subgroup:41,version:1,shortCodes:["shamrock"]},{label:"four leaf clover",hexcode:"1F340",tags:["4","clover","four","four-leaf","irish","leaf","lucky","plant"],emoji:"🍀",text:"",type:1,order:3824,group:3,subgroup:41,version:.6,shortCodes:["four_leaf_clover"]},{label:"maple leaf",hexcode:"1F341",tags:["falling","leaf","maple"],emoji:"🍁",text:"",type:1,order:3825,group:3,subgroup:41,version:.6,shortCodes:["maple_leaf"]},{label:"fallen leaf",hexcode:"1F342",tags:["autumn","fall","fallen","falling","leaf"],emoji:"🍂",text:"",type:1,order:3826,group:3,subgroup:41,version:.6,shortCodes:["fallen_leaf"]},{label:"leaf fluttering in wind",hexcode:"1F343",tags:["blow","flutter","fluttering","leaf","wind"],emoji:"🍃",text:"",type:1,order:3827,group:3,subgroup:41,version:.6,shortCodes:["leaves"]},{label:"empty nest",hexcode:"1FAB9",tags:["branch","empty","home","nest","nesting"],emoji:"🪹",text:"",type:1,order:3828,group:3,subgroup:41,version:14,shortCodes:["empty_nest","nest"]},{label:"nest with eggs",hexcode:"1FABA",tags:["bird","branch","egg","eggs","nest","nesting"],emoji:"🪺",text:"",type:1,order:3829,group:3,subgroup:41,version:14,shortCodes:["nest_with_eggs"]},{label:"mushroom",hexcode:"1F344",tags:["fungus","toadstool"],emoji:"🍄",text:"",type:1,order:3830,group:3,subgroup:41,version:.6,shortCodes:["mushroom"]},{label:"leafless tree",hexcode:"1FABE",tags:["bare","barren","branches","dead","drought","leafless","tree","trunk","winter","wood"],emoji:"🪾",text:"",type:1,order:3831,group:3,subgroup:41,version:16,shortCodes:["leafless_tree"]},{label:"grapes",hexcode:"1F347",tags:["dionysus","fruit","grape"],emoji:"🍇",text:"",type:1,order:3832,group:4,subgroup:42,version:.6,shortCodes:["grapes"]},{label:"melon",hexcode:"1F348",tags:["cantaloupe","fruit"],emoji:"🍈",text:"",type:1,order:3833,group:4,subgroup:42,version:.6,shortCodes:["melon"]},{label:"watermelon",hexcode:"1F349",tags:["fruit"],emoji:"🍉",text:"",type:1,order:3834,group:4,subgroup:42,version:.6,shortCodes:["watermelon"]},{label:"tangerine",hexcode:"1F34A",tags:["c","citrus","fruit","nectarine","orange","vitamin"],emoji:"🍊",text:"",type:1,order:3835,group:4,subgroup:42,version:.6,shortCodes:["orange","tangerine"]},{label:"lemon",hexcode:"1F34B",tags:["citrus","fruit","sour"],emoji:"🍋",text:"",type:1,order:3836,group:4,subgroup:42,version:1,shortCodes:["lemon"]},{label:"lime",hexcode:"1F34B-200D-1F7E9",tags:["acidity","citrus","cocktail","fruit","garnish","key","margarita","mojito","refreshing","salsa","sour","tangy","tequila","tropical","zest"],emoji:"🍋‍🟩",text:"",type:1,order:3837,group:4,subgroup:42,version:15.1,shortCodes:["lime"]},{label:"banana",hexcode:"1F34C",tags:["fruit","potassium"],emoji:"🍌",text:"",type:1,order:3838,group:4,subgroup:42,version:.6,shortCodes:["banana"]},{label:"pineapple",hexcode:"1F34D",tags:["colada","fruit","pina","tropical"],emoji:"🍍",text:"",type:1,order:3839,group:4,subgroup:42,version:.6,shortCodes:["pineapple"]},{label:"mango",hexcode:"1F96D",tags:["food","fruit","tropical"],emoji:"🥭",text:"",type:1,order:3840,group:4,subgroup:42,version:11,shortCodes:["mango"]},{label:"red apple",hexcode:"1F34E",tags:["apple","diet","food","fruit","health","red","ripe"],emoji:"🍎",text:"",type:1,order:3841,group:4,subgroup:42,version:.6,shortCodes:["apple","red_apple"]},{label:"green apple",hexcode:"1F34F",tags:["apple","fruit","green"],emoji:"🍏",text:"",type:1,order:3842,group:4,subgroup:42,version:.6,shortCodes:["green_apple"]},{label:"pear",hexcode:"1F350",tags:["fruit"],emoji:"🍐",text:"",type:1,order:3843,group:4,subgroup:42,version:1,shortCodes:["pear"]},{label:"peach",hexcode:"1F351",tags:["fruit"],emoji:"🍑",text:"",type:1,order:3844,group:4,subgroup:42,version:.6,shortCodes:["peach"]},{label:"cherries",hexcode:"1F352",tags:["berries","cherry","fruit","red"],emoji:"🍒",text:"",type:1,order:3845,group:4,subgroup:42,version:.6,shortCodes:["cherries"]},{label:"strawberry",hexcode:"1F353",tags:["berry","fruit"],emoji:"🍓",text:"",type:1,order:3846,group:4,subgroup:42,version:.6,shortCodes:["strawberry"]},{label:"blueberries",hexcode:"1FAD0",tags:["berries","berry","bilberry","blue","blueberry","food","fruit"],emoji:"🫐",text:"",type:1,order:3847,group:4,subgroup:42,version:13,shortCodes:["blueberries"]},{label:"kiwi fruit",hexcode:"1F95D",tags:["food","fruit","kiwi"],emoji:"🥝",text:"",type:1,order:3848,group:4,subgroup:42,version:3,shortCodes:["kiwi"]},{label:"tomato",hexcode:"1F345",tags:["food","fruit","vegetable"],emoji:"🍅",text:"",type:1,order:3849,group:4,subgroup:42,version:.6,shortCodes:["tomato"]},{label:"olive",hexcode:"1FAD2",tags:["food"],emoji:"🫒",text:"",type:1,order:3850,group:4,subgroup:42,version:13,shortCodes:["olive"]},{label:"coconut",hexcode:"1F965",tags:["colada","palm","piña"],emoji:"🥥",text:"",type:1,order:3851,group:4,subgroup:42,version:5,shortCodes:["coconut"]},{label:"avocado",hexcode:"1F951",tags:["food","fruit"],emoji:"🥑",text:"",type:1,order:3852,group:4,subgroup:43,version:3,shortCodes:["avocado"]},{label:"eggplant",hexcode:"1F346",tags:["aubergine","vegetable"],emoji:"🍆",text:"",type:1,order:3853,group:4,subgroup:43,version:.6,shortCodes:["eggplant"]},{label:"potato",hexcode:"1F954",tags:["food","vegetable"],emoji:"🥔",text:"",type:1,order:3854,group:4,subgroup:43,version:3,shortCodes:["potato"]},{label:"carrot",hexcode:"1F955",tags:["food","vegetable"],emoji:"🥕",text:"",type:1,order:3855,group:4,subgroup:43,version:3,shortCodes:["carrot"]},{label:"ear of corn",hexcode:"1F33D",tags:["corn","crops","ear","farm","maize","maze"],emoji:"🌽",text:"",type:1,order:3856,group:4,subgroup:43,version:.6,shortCodes:["corn","ear_of_corn"]},{label:"hot pepper",hexcode:"1F336",tags:["hot","pepper"],emoji:"🌶️",text:"🌶︎",type:0,order:3858,group:4,subgroup:43,version:.7,shortCodes:["hot_pepper"]},{label:"bell pepper",hexcode:"1FAD1",tags:["bell","capsicum","food","pepper","vegetable"],emoji:"🫑",text:"",type:1,order:3859,group:4,subgroup:43,version:13,shortCodes:["bell_pepper"]},{label:"cucumber",hexcode:"1F952",tags:["food","pickle","vegetable"],emoji:"🥒",text:"",type:1,order:3860,group:4,subgroup:43,version:3,shortCodes:["cucumber"]},{label:"leafy green",hexcode:"1F96C",tags:["bok","burgers","cabbage","choy","green","kale","leafy","lettuce","salad"],emoji:"🥬",text:"",type:1,order:3861,group:4,subgroup:43,version:11,shortCodes:["leafy_green"]},{label:"broccoli",hexcode:"1F966",tags:["cabbage","wild"],emoji:"🥦",text:"",type:1,order:3862,group:4,subgroup:43,version:5,shortCodes:["broccoli"]},{label:"garlic",hexcode:"1F9C4",tags:["flavoring"],emoji:"🧄",text:"",type:1,order:3863,group:4,subgroup:43,version:12,shortCodes:["garlic"]},{label:"onion",hexcode:"1F9C5",tags:["flavoring"],emoji:"🧅",text:"",type:1,order:3864,group:4,subgroup:43,version:12,shortCodes:["onion"]},{label:"peanuts",hexcode:"1F95C",tags:["food","nut","peanut","vegetable"],emoji:"🥜",text:"",type:1,order:3865,group:4,subgroup:43,version:3,shortCodes:["peanuts"]},{label:"beans",hexcode:"1FAD8",tags:["food","kidney","legume","small"],emoji:"🫘",text:"",type:1,order:3866,group:4,subgroup:43,version:14,shortCodes:["beans"]},{label:"chestnut",hexcode:"1F330",tags:["almond","plant"],emoji:"🌰",text:"",type:1,order:3867,group:4,subgroup:43,version:.6,shortCodes:["chestnut"]},{label:"ginger root",hexcode:"1FADA",tags:["beer","ginger","health","herb","natural","root","spice"],emoji:"🫚",text:"",type:1,order:3868,group:4,subgroup:43,version:15,shortCodes:["ginger"]},{label:"pea pod",hexcode:"1FADB",tags:["beans","beanstalk","edamame","legume","pea","pod","soybean","vegetable","veggie"],emoji:"🫛",text:"",type:1,order:3869,group:4,subgroup:43,version:15,shortCodes:["pea"]},{label:"brown mushroom",hexcode:"1F344-200D-1F7EB",tags:["food","fungi","fungus","mushroom","nature","pizza","portobello","shiitake","shroom","spore","sprout","toppings","truffle","vegetable","vegetarian","veggie"],emoji:"🍄‍🟫",text:"",type:1,order:3870,group:4,subgroup:43,version:15.1,shortCodes:["brown_mushroom"]},{label:"root vegetable",hexcode:"1FADC",tags:["beet","food","garden","radish","root","salad","turnip","vegetable","vegetarian"],emoji:"🫜",text:"",type:1,order:3871,group:4,subgroup:43,version:16,shortCodes:["root_vegetable"]},{label:"bread",hexcode:"1F35E",tags:["carbs","food","grain","loaf","restaurant","toast","wheat"],emoji:"🍞",text:"",type:1,order:3872,group:4,subgroup:44,version:.6,shortCodes:["bread"]},{label:"croissant",hexcode:"1F950",tags:["bread","breakfast","crescent","food","french","roll"],emoji:"🥐",text:"",type:1,order:3873,group:4,subgroup:44,version:3,shortCodes:["croissant"]},{label:"baguette bread",hexcode:"1F956",tags:["baguette","bread","food","french"],emoji:"🥖",text:"",type:1,order:3874,group:4,subgroup:44,version:3,shortCodes:["baguette_bread"]},{label:"flatbread",hexcode:"1FAD3",tags:["arepa","bread","food","gordita","lavash","naan","pita"],emoji:"🫓",text:"",type:1,order:3875,group:4,subgroup:44,version:13,shortCodes:["flatbread"]},{label:"pretzel",hexcode:"1F968",tags:["convoluted","twisted"],emoji:"🥨",text:"",type:1,order:3876,group:4,subgroup:44,version:5,shortCodes:["pretzel"]},{label:"bagel",hexcode:"1F96F",tags:["bakery","bread","breakfast","schmear"],emoji:"🥯",text:"",type:1,order:3877,group:4,subgroup:44,version:11,shortCodes:["bagel"]},{label:"pancakes",hexcode:"1F95E",tags:["breakfast","crêpe","food","hotcake","pancake"],emoji:"🥞",text:"",type:1,order:3878,group:4,subgroup:44,version:3,shortCodes:["pancakes"]},{label:"waffle",hexcode:"1F9C7",tags:["breakfast","indecisive","iron"],emoji:"🧇",text:"",type:1,order:3879,group:4,subgroup:44,version:12,shortCodes:["waffle"]},{label:"cheese wedge",hexcode:"1F9C0",tags:["cheese","wedge"],emoji:"🧀",text:"",type:1,order:3880,group:4,subgroup:44,version:1,shortCodes:["cheese"]},{label:"meat on bone",hexcode:"1F356",tags:["bone","meat"],emoji:"🍖",text:"",type:1,order:3881,group:4,subgroup:44,version:.6,shortCodes:["meat_on_bone"]},{label:"poultry leg",hexcode:"1F357",tags:["bone","chicken","drumstick","hungry","leg","poultry","turkey"],emoji:"🍗",text:"",type:1,order:3882,group:4,subgroup:44,version:.6,shortCodes:["poultry_leg"]},{label:"cut of meat",hexcode:"1F969",tags:["chop","cut","lambchop","meat","porkchop","red","steak"],emoji:"🥩",text:"",type:1,order:3883,group:4,subgroup:44,version:5,shortCodes:["cut_of_meat"]},{label:"bacon",hexcode:"1F953",tags:["breakfast","food","meat"],emoji:"🥓",text:"",type:1,order:3884,group:4,subgroup:44,version:3,shortCodes:["bacon"]},{label:"hamburger",hexcode:"1F354",tags:["burger","eat","fast","food","hungry"],emoji:"🍔",text:"",type:1,order:3885,group:4,subgroup:44,version:.6,shortCodes:["hamburger"]},{label:"french fries",hexcode:"1F35F",tags:["fast","food","french","fries"],emoji:"🍟",text:"",type:1,order:3886,group:4,subgroup:44,version:.6,shortCodes:["french_fries","fries"]},{label:"pizza",hexcode:"1F355",tags:["cheese","food","hungry","pepperoni","slice"],emoji:"🍕",text:"",type:1,order:3887,group:4,subgroup:44,version:.6,shortCodes:["pizza"]},{label:"hot dog",hexcode:"1F32D",tags:["dog","frankfurter","hot","hotdog","sausage"],emoji:"🌭",text:"",type:1,order:3888,group:4,subgroup:44,version:1,shortCodes:["hotdog"]},{label:"sandwich",hexcode:"1F96A",tags:["bread"],emoji:"🥪",text:"",type:1,order:3889,group:4,subgroup:44,version:5,shortCodes:["sandwich"]},{label:"taco",hexcode:"1F32E",tags:["mexican"],emoji:"🌮",text:"",type:1,order:3890,group:4,subgroup:44,version:1,shortCodes:["taco"]},{label:"burrito",hexcode:"1F32F",tags:["mexican","wrap"],emoji:"🌯",text:"",type:1,order:3891,group:4,subgroup:44,version:1,shortCodes:["burrito"]},{label:"tamale",hexcode:"1FAD4",tags:["food","mexican","pamonha","wrapped"],emoji:"🫔",text:"",type:1,order:3892,group:4,subgroup:44,version:13,shortCodes:["tamale"]},{label:"stuffed flatbread",hexcode:"1F959",tags:["falafel","flatbread","food","gyro","kebab","stuffed"],emoji:"🥙",text:"",type:1,order:3893,group:4,subgroup:44,version:3,shortCodes:["stuffed_flatbread"]},{label:"falafel",hexcode:"1F9C6",tags:["chickpea","meatball"],emoji:"🧆",text:"",type:1,order:3894,group:4,subgroup:44,version:12,shortCodes:["falafel"]},{label:"egg",hexcode:"1F95A",tags:["breakfast","food"],emoji:"🥚",text:"",type:1,order:3895,group:4,subgroup:44,version:3,shortCodes:["egg"]},{label:"cooking",hexcode:"1F373",tags:["breakfast","easy","egg","fry","frying","over","pan","restaurant","side","sunny","up"],emoji:"🍳",text:"",type:1,order:3896,group:4,subgroup:44,version:.6,shortCodes:["cooking","fried_egg"]},{label:"shallow pan of food",hexcode:"1F958",tags:["casserole","food","paella","pan","shallow"],emoji:"🥘",text:"",type:1,order:3897,group:4,subgroup:44,version:3,shortCodes:["shallow_pan_of_food"]},{label:"pot of food",hexcode:"1F372",tags:["food","pot","soup","stew"],emoji:"🍲",text:"",type:1,order:3898,group:4,subgroup:44,version:.6,shortCodes:["pot_of_food","stew"]},{label:"fondue",hexcode:"1FAD5",tags:["cheese","chocolate","food","melted","pot","ski"],emoji:"🫕",text:"",type:1,order:3899,group:4,subgroup:44,version:13,shortCodes:["fondue"]},{label:"bowl with spoon",hexcode:"1F963",tags:["bowl","breakfast","cereal","congee","oatmeal","porridge","spoon"],emoji:"🥣",text:"",type:1,order:3900,group:4,subgroup:44,version:5,shortCodes:["bowl_with_spoon"]},{label:"green salad",hexcode:"1F957",tags:["food","green","salad"],emoji:"🥗",text:"",type:1,order:3901,group:4,subgroup:44,version:3,shortCodes:["green_salad","salad"]},{label:"popcorn",hexcode:"1F37F",tags:["corn","movie","pop"],emoji:"🍿",text:"",type:1,order:3902,group:4,subgroup:44,version:1,shortCodes:["popcorn"]},{label:"butter",hexcode:"1F9C8",tags:["dairy"],emoji:"🧈",text:"",type:1,order:3903,group:4,subgroup:44,version:12,shortCodes:["butter"]},{label:"salt",hexcode:"1F9C2",tags:["condiment","flavor","mad","salty","shaker","taste","upset"],emoji:"🧂",text:"",type:1,order:3904,group:4,subgroup:44,version:11,shortCodes:["salt"]},{label:"canned food",hexcode:"1F96B",tags:["can","canned","food"],emoji:"🥫",text:"",type:1,order:3905,group:4,subgroup:44,version:5,shortCodes:["canned_food"]},{label:"bento box",hexcode:"1F371",tags:["bento","box","food"],emoji:"🍱",text:"",type:1,order:3906,group:4,subgroup:45,version:.6,shortCodes:["bento","bento_box"]},{label:"rice cracker",hexcode:"1F358",tags:["cracker","food","rice"],emoji:"🍘",text:"",type:1,order:3907,group:4,subgroup:45,version:.6,shortCodes:["rice_cracker"]},{label:"rice ball",hexcode:"1F359",tags:["ball","food","japanese","rice"],emoji:"🍙",text:"",type:1,order:3908,group:4,subgroup:45,version:.6,shortCodes:["rice_ball"]},{label:"cooked rice",hexcode:"1F35A",tags:["cooked","food","rice"],emoji:"🍚",text:"",type:1,order:3909,group:4,subgroup:45,version:.6,shortCodes:["cooked_rice","rice"]},{label:"curry rice",hexcode:"1F35B",tags:["curry","food","rice"],emoji:"🍛",text:"",type:1,order:3910,group:4,subgroup:45,version:.6,shortCodes:["curry","curry_rice"]},{label:"steaming bowl",hexcode:"1F35C",tags:["bowl","chopsticks","food","noodle","pho","ramen","soup","steaming"],emoji:"🍜",text:"",type:1,order:3911,group:4,subgroup:45,version:.6,shortCodes:["ramen","steaming_bowl"]},{label:"spaghetti",hexcode:"1F35D",tags:["food","meatballs","pasta","restaurant"],emoji:"🍝",text:"",type:1,order:3912,group:4,subgroup:45,version:.6,shortCodes:["spaghetti"]},{label:"roasted sweet potato",hexcode:"1F360",tags:["food","potato","roasted","sweet"],emoji:"🍠",text:"",type:1,order:3913,group:4,subgroup:45,version:.6,shortCodes:["sweet_potato"]},{label:"oden",hexcode:"1F362",tags:["food","kebab","restaurant","seafood","skewer","stick"],emoji:"🍢",text:"",type:1,order:3914,group:4,subgroup:45,version:.6,shortCodes:["oden"]},{label:"sushi",hexcode:"1F363",tags:["food"],emoji:"🍣",text:"",type:1,order:3915,group:4,subgroup:45,version:.6,shortCodes:["sushi"]},{label:"fried shrimp",hexcode:"1F364",tags:["fried","prawn","shrimp","tempura"],emoji:"🍤",text:"",type:1,order:3916,group:4,subgroup:45,version:.6,shortCodes:["fried_shrimp"]},{label:"fish cake with swirl",hexcode:"1F365",tags:["cake","fish","food","pastry","restaurant","swirl"],emoji:"🍥",text:"",type:1,order:3917,group:4,subgroup:45,version:.6,shortCodes:["fish_cake"]},{label:"moon cake",hexcode:"1F96E",tags:["autumn","cake","festival","moon","yuèbǐng"],emoji:"🥮",text:"",type:1,order:3918,group:4,subgroup:45,version:11,shortCodes:["moon_cake"]},{label:"dango",hexcode:"1F361",tags:["dessert","japanese","skewer","stick","sweet"],emoji:"🍡",text:"",type:1,order:3919,group:4,subgroup:45,version:.6,shortCodes:["dango"]},{label:"dumpling",hexcode:"1F95F",tags:["empanada","gyōza","jiaozi","pierogi","potsticker"],emoji:"🥟",text:"",type:1,order:3920,group:4,subgroup:45,version:5,shortCodes:["dumpling"]},{label:"fortune cookie",hexcode:"1F960",tags:["cookie","fortune","prophecy"],emoji:"🥠",text:"",type:1,order:3921,group:4,subgroup:45,version:5,shortCodes:["fortune_cookie"]},{label:"takeout box",hexcode:"1F961",tags:["box","chopsticks","delivery","food","oyster","pail","takeout"],emoji:"🥡",text:"",type:1,order:3922,group:4,subgroup:45,version:5,shortCodes:["takeout_box"]},{label:"soft ice cream",hexcode:"1F366",tags:["cream","dessert","food","ice","icecream","restaurant","serve","soft","sweet"],emoji:"🍦",text:"",type:1,order:3923,group:4,subgroup:46,version:.6,shortCodes:["icecream","soft_serve"]},{label:"shaved ice",hexcode:"1F367",tags:["dessert","ice","restaurant","shaved","sweet"],emoji:"🍧",text:"",type:1,order:3924,group:4,subgroup:46,version:.6,shortCodes:["shaved_ice"]},{label:"ice cream",hexcode:"1F368",tags:["cream","dessert","food","ice","restaurant","sweet"],emoji:"🍨",text:"",type:1,order:3925,group:4,subgroup:46,version:.6,shortCodes:["ice_cream"]},{label:"doughnut",hexcode:"1F369",tags:["breakfast","dessert","donut","food","sweet"],emoji:"🍩",text:"",type:1,order:3926,group:4,subgroup:46,version:.6,shortCodes:["doughnut"]},{label:"cookie",hexcode:"1F36A",tags:["chip","chocolate","dessert","sweet"],emoji:"🍪",text:"",type:1,order:3927,group:4,subgroup:46,version:.6,shortCodes:["cookie"]},{label:"birthday cake",hexcode:"1F382",tags:["bday","birthday","cake","celebration","dessert","happy","pastry","sweet"],emoji:"🎂",text:"",type:1,order:3928,group:4,subgroup:46,version:.6,shortCodes:["birthday","birthday_cake"]},{label:"shortcake",hexcode:"1F370",tags:["cake","dessert","pastry","slice","sweet"],emoji:"🍰",text:"",type:1,order:3929,group:4,subgroup:46,version:.6,shortCodes:["cake","shortcake"]},{label:"cupcake",hexcode:"1F9C1",tags:["bakery","dessert","sprinkles","sugar","sweet","treat"],emoji:"🧁",text:"",type:1,order:3930,group:4,subgroup:46,version:11,shortCodes:["cupcake"]},{label:"pie",hexcode:"1F967",tags:["apple","filling","fruit","meat","pastry","pumpkin","slice"],emoji:"🥧",text:"",type:1,order:3931,group:4,subgroup:46,version:5,shortCodes:["pie"]},{label:"chocolate bar",hexcode:"1F36B",tags:["bar","candy","chocolate","dessert","halloween","sweet","tooth"],emoji:"🍫",text:"",type:1,order:3932,group:4,subgroup:46,version:.6,shortCodes:["chocolate_bar"]},{label:"candy",hexcode:"1F36C",tags:["cavities","dessert","halloween","restaurant","sweet","tooth","wrapper"],emoji:"🍬",text:"",type:1,order:3933,group:4,subgroup:46,version:.6,shortCodes:["candy"]},{label:"lollipop",hexcode:"1F36D",tags:["candy","dessert","food","restaurant","sweet"],emoji:"🍭",text:"",type:1,order:3934,group:4,subgroup:46,version:.6,shortCodes:["lollipop"]},{label:"custard",hexcode:"1F36E",tags:["dessert","pudding","sweet"],emoji:"🍮",text:"",type:1,order:3935,group:4,subgroup:46,version:.6,shortCodes:["custard"]},{label:"honey pot",hexcode:"1F36F",tags:["barrel","bear","food","honey","honeypot","jar","pot","sweet"],emoji:"🍯",text:"",type:1,order:3936,group:4,subgroup:46,version:.6,shortCodes:["honey_pot"]},{label:"baby bottle",hexcode:"1F37C",tags:["babies","baby","birth","born","bottle","drink","infant","milk","newborn"],emoji:"🍼",text:"",type:1,order:3937,group:4,subgroup:47,version:1,shortCodes:["baby_bottle"]},{label:"glass of milk",hexcode:"1F95B",tags:["drink","glass","milk"],emoji:"🥛",text:"",type:1,order:3938,group:4,subgroup:47,version:3,shortCodes:["glass_of_milk","milk"]},{label:"hot beverage",hexcode:"2615",tags:["beverage","cafe","caffeine","chai","coffee","drink","hot","morning","steaming","tea"],emoji:"☕️",text:"☕︎",type:1,order:3939,group:4,subgroup:47,version:.6,shortCodes:["coffee"]},{label:"teapot",hexcode:"1FAD6",tags:["brew","drink","food","pot","tea"],emoji:"🫖",text:"",type:1,order:3940,group:4,subgroup:47,version:13,shortCodes:["teapot"]},{label:"teacup without handle",hexcode:"1F375",tags:["beverage","cup","drink","handle","oolong","tea","teacup"],emoji:"🍵",text:"",type:1,order:3941,group:4,subgroup:47,version:.6,shortCodes:["tea"]},{label:"sake",hexcode:"1F376",tags:["bar","beverage","bottle","cup","drink","restaurant"],emoji:"🍶",text:"",type:1,order:3942,group:4,subgroup:47,version:.6,shortCodes:["sake"]},{label:"bottle with popping cork",hexcode:"1F37E",tags:["bar","bottle","cork","drink","popping"],emoji:"🍾",text:"",type:1,order:3943,group:4,subgroup:47,version:1,shortCodes:["champagne"]},{label:"wine glass",hexcode:"1F377",tags:["alcohol","bar","beverage","booze","club","drink","drinking","drinks","glass","restaurant","wine"],emoji:"🍷",text:"",type:1,order:3944,group:4,subgroup:47,version:.6,shortCodes:["wine_glass"]},{label:"cocktail glass",hexcode:"1F378",tags:["alcohol","bar","booze","club","cocktail","drink","drinking","drinks","glass","mad","martini","men"],emoji:"🍸️",text:"🍸︎",type:1,order:3945,group:4,subgroup:47,version:.6,shortCodes:["cocktail"]},{label:"tropical drink",hexcode:"1F379",tags:["alcohol","bar","booze","club","cocktail","drink","drinking","drinks","drunk","mai","party","tai","tropical","tropics"],emoji:"🍹",text:"",type:1,order:3946,group:4,subgroup:47,version:.6,shortCodes:["tropical_drink"]},{label:"beer mug",hexcode:"1F37A",tags:["alcohol","ale","bar","beer","booze","drink","drinking","drinks","mug","octoberfest","oktoberfest","pint","stein","summer"],emoji:"🍺",text:"",type:1,order:3947,group:4,subgroup:47,version:.6,shortCodes:["beer"]},{label:"clinking beer mugs",hexcode:"1F37B",tags:["alcohol","bar","beer","booze","bottoms","cheers","clink","clinking","drinking","drinks","mugs"],emoji:"🍻",text:"",type:1,order:3948,group:4,subgroup:47,version:.6,shortCodes:["beers"]},{label:"clinking glasses",hexcode:"1F942",tags:["celebrate","clink","clinking","drink","glass","glasses"],emoji:"🥂",text:"",type:1,order:3949,group:4,subgroup:47,version:3,shortCodes:["clinking_glasses"]},{label:"tumbler glass",hexcode:"1F943",tags:["glass","liquor","scotch","shot","tumbler","whiskey","whisky"],emoji:"🥃",text:"",type:1,order:3950,group:4,subgroup:47,version:3,shortCodes:["tumbler_glass","whisky"]},{label:"pouring liquid",hexcode:"1FAD7",tags:["accident","drink","empty","glass","liquid","oops","pour","pouring","spill","water"],emoji:"🫗",text:"",type:1,order:3951,group:4,subgroup:47,version:14,shortCodes:["pour","pouring_liquid"]},{label:"cup with straw",hexcode:"1F964",tags:["cup","drink","juice","malt","soda","soft","straw","water"],emoji:"🥤",text:"",type:1,order:3952,group:4,subgroup:47,version:5,shortCodes:["cup_with_straw"]},{label:"bubble tea",hexcode:"1F9CB",tags:["boba","bubble","food","milk","pearl","tea"],emoji:"🧋",text:"",type:1,order:3953,group:4,subgroup:47,version:13,shortCodes:["boba_drink","bubble_tea"]},{label:"beverage box",hexcode:"1F9C3",tags:["beverage","box","juice","straw","sweet"],emoji:"🧃",text:"",type:1,order:3954,group:4,subgroup:47,version:12,shortCodes:["beverage_box","juice_box"]},{label:"mate",hexcode:"1F9C9",tags:["drink"],emoji:"🧉",text:"",type:1,order:3955,group:4,subgroup:47,version:12,shortCodes:["mate"]},{label:"ice",hexcode:"1F9CA",tags:["cold","cube","iceberg"],emoji:"🧊",text:"",type:1,order:3956,group:4,subgroup:47,version:12,shortCodes:["ice","ice_cube"]},{label:"chopsticks",hexcode:"1F962",tags:["hashi","jeotgarak","kuaizi"],emoji:"🥢",text:"",type:1,order:3957,group:4,subgroup:48,version:5,shortCodes:["chopsticks"]},{label:"fork and knife with plate",hexcode:"1F37D",tags:["cooking","dinner","eat","fork","knife","plate"],emoji:"🍽️",text:"🍽︎",type:0,order:3959,group:4,subgroup:48,version:.7,shortCodes:["fork_knife_plate"]},{label:"fork and knife",hexcode:"1F374",tags:["breakfast","breaky","cooking","cutlery","delicious","dinner","eat","feed","food","fork","hungry","knife","lunch","restaurant","yum","yummy"],emoji:"🍴",text:"",type:1,order:3960,group:4,subgroup:48,version:.6,shortCodes:["fork_and_knife"]},{label:"spoon",hexcode:"1F944",tags:["eat","tableware"],emoji:"🥄",text:"",type:1,order:3961,group:4,subgroup:48,version:3,shortCodes:["spoon"]},{label:"kitchen knife",hexcode:"1F52A",tags:["chef","cooking","hocho","kitchen","knife","tool","weapon"],emoji:"🔪",text:"",type:1,order:3962,group:4,subgroup:48,version:.6,shortCodes:["knife"]},{label:"jar",hexcode:"1FAD9",tags:["condiment","container","empty","nothing","sauce","store"],emoji:"🫙",text:"",type:1,order:3963,group:4,subgroup:48,version:14,shortCodes:["jar"]},{label:"amphora",hexcode:"1F3FA",tags:["aquarius","cooking","drink","jug","tool","weapon","zodiac"],emoji:"🏺",text:"",type:1,order:3964,group:4,subgroup:48,version:1,shortCodes:["amphora"]},{label:"globe showing Europe-Africa",hexcode:"1F30D",tags:["africa","earth","europe","europe-africa","globe","showing","world"],emoji:"🌍️",text:"🌍︎",type:1,order:3965,group:5,subgroup:49,version:.7,shortCodes:["earth_africa","earth_europe"]},{label:"globe showing Americas",hexcode:"1F30E",tags:["americas","earth","globe","showing","world"],emoji:"🌎️",text:"🌎︎",type:1,order:3966,group:5,subgroup:49,version:.7,shortCodes:["earth_americas"]},{label:"globe showing Asia-Australia",hexcode:"1F30F",tags:["asia","asia-australia","australia","earth","globe","showing","world"],emoji:"🌏️",text:"🌏︎",type:1,order:3967,group:5,subgroup:49,version:.6,shortCodes:["earth_asia"]},{label:"globe with meridians",hexcode:"1F310",tags:["earth","globe","internet","meridians","web","world","worldwide"],emoji:"🌐",text:"",type:1,order:3968,group:5,subgroup:49,version:1,shortCodes:["globe_with_meridians"]},{label:"world map",hexcode:"1F5FA",tags:["map","world"],emoji:"🗺️",text:"🗺︎",type:0,order:3970,group:5,subgroup:49,version:.7,shortCodes:["world_map"]},{label:"map of Japan",hexcode:"1F5FE",tags:["japan","map"],emoji:"🗾",text:"",type:1,order:3971,group:5,subgroup:49,version:.6,shortCodes:["japan_map"]},{label:"compass",hexcode:"1F9ED",tags:["direction","magnetic","navigation","orienteering"],emoji:"🧭",text:"",type:1,order:3972,group:5,subgroup:49,version:11,shortCodes:["compass"]},{label:"snow-capped mountain",hexcode:"1F3D4",tags:["cold","mountain","snow","snow-capped"],emoji:"🏔️",text:"🏔︎",type:0,order:3974,group:5,subgroup:50,version:.7,shortCodes:["mountain_snow"]},{label:"mountain",hexcode:"26F0",tags:["mountain"],emoji:"⛰️",text:"⛰︎",type:0,order:3976,group:5,subgroup:50,version:.7,shortCodes:["mountain"]},{label:"volcano",hexcode:"1F30B",tags:["eruption","mountain","nature"],emoji:"🌋",text:"",type:1,order:3978,group:5,subgroup:50,version:.6,shortCodes:["volcano"]},{label:"mount fuji",hexcode:"1F5FB",tags:["fuji","mount","mountain","nature"],emoji:"🗻",text:"",type:1,order:3979,group:5,subgroup:50,version:.6,shortCodes:["mount_fuji"]},{label:"camping",hexcode:"1F3D5",tags:["camping"],emoji:"🏕️",text:"🏕︎",type:0,order:3981,group:5,subgroup:50,version:.7,shortCodes:["camping"]},{label:"beach with umbrella",hexcode:"1F3D6",tags:["beach","umbrella"],emoji:"🏖️",text:"🏖︎",type:0,order:3983,group:5,subgroup:50,version:.7,shortCodes:["beach","beach_with_umbrella"]},{label:"desert",hexcode:"1F3DC",tags:["desert"],emoji:"🏜️",text:"🏜︎",type:0,order:3985,group:5,subgroup:50,version:.7,shortCodes:["desert"]},{label:"desert island",hexcode:"1F3DD",tags:["desert","island"],emoji:"🏝️",text:"🏝︎",type:0,order:3987,group:5,subgroup:50,version:.7,shortCodes:["desert_island","island"]},{label:"national park",hexcode:"1F3DE",tags:["national","park"],emoji:"🏞️",text:"🏞︎",type:0,order:3989,group:5,subgroup:50,version:.7,shortCodes:["national_park"]},{label:"stadium",hexcode:"1F3DF",tags:["stadium"],emoji:"🏟️",text:"🏟︎",type:0,order:3991,group:5,subgroup:51,version:.7,shortCodes:["stadium"]},{label:"classical building",hexcode:"1F3DB",tags:["building","classical"],emoji:"🏛️",text:"🏛︎",type:0,order:3993,group:5,subgroup:51,version:.7,shortCodes:["classical_building"]},{label:"building construction",hexcode:"1F3D7",tags:["building","construction","crane"],emoji:"🏗️",text:"🏗︎",type:0,order:3995,group:5,subgroup:51,version:.7,shortCodes:["building_construction","construction_site"]},{label:"brick",hexcode:"1F9F1",tags:["bricks","clay","mortar","wall"],emoji:"🧱",text:"",type:1,order:3996,group:5,subgroup:51,version:11,shortCodes:["bricks"]},{label:"rock",hexcode:"1FAA8",tags:["boulder","heavy","solid","stone","tough"],emoji:"🪨",text:"",type:1,order:3997,group:5,subgroup:51,version:13,shortCodes:["rock"]},{label:"wood",hexcode:"1FAB5",tags:["log","lumber","timber"],emoji:"🪵",text:"",type:1,order:3998,group:5,subgroup:51,version:13,shortCodes:["wood"]},{label:"hut",hexcode:"1F6D6",tags:["home","house","roundhouse","shelter","yurt"],emoji:"🛖",text:"",type:1,order:3999,group:5,subgroup:51,version:13,shortCodes:["hut"]},{label:"houses",hexcode:"1F3D8",tags:["house"],emoji:"🏘️",text:"🏘︎",type:0,order:4001,group:5,subgroup:51,version:.7,shortCodes:["homes","houses"]},{label:"derelict house",hexcode:"1F3DA",tags:["derelict","home","house"],emoji:"🏚️",text:"🏚︎",type:0,order:4003,group:5,subgroup:51,version:.7,shortCodes:["derelict_house","house_abandoned"]},{label:"house",hexcode:"1F3E0",tags:["building","country","heart","home","ranch","settle","simple","suburban","suburbia","where"],emoji:"🏠️",text:"🏠︎",type:1,order:4004,group:5,subgroup:51,version:.6,shortCodes:["house"]},{label:"house with garden",hexcode:"1F3E1",tags:["building","country","garden","heart","home","house","ranch","settle","simple","suburban","suburbia","where"],emoji:"🏡",text:"",type:1,order:4005,group:5,subgroup:51,version:.6,shortCodes:["house_with_garden"]},{label:"office building",hexcode:"1F3E2",tags:["building","city","cubical","job","office"],emoji:"🏢",text:"",type:1,order:4006,group:5,subgroup:51,version:.6,shortCodes:["office"]},{label:"Japanese post office",hexcode:"1F3E3",tags:["building","japanese","office","post"],emoji:"🏣",text:"",type:1,order:4007,group:5,subgroup:51,version:.6,shortCodes:["post_office"]},{label:"post office",hexcode:"1F3E4",tags:["building","european","office","post"],emoji:"🏤",text:"",type:1,order:4008,group:5,subgroup:51,version:1,shortCodes:["european_post_office"]},{label:"hospital",hexcode:"1F3E5",tags:["building","doctor","medicine"],emoji:"🏥",text:"",type:1,order:4009,group:5,subgroup:51,version:.6,shortCodes:["hospital"]},{label:"bank",hexcode:"1F3E6",tags:["building"],emoji:"🏦",text:"",type:1,order:4010,group:5,subgroup:51,version:.6,shortCodes:["bank"]},{label:"hotel",hexcode:"1F3E8",tags:["building"],emoji:"🏨",text:"",type:1,order:4011,group:5,subgroup:51,version:.6,shortCodes:["hotel"]},{label:"love hotel",hexcode:"1F3E9",tags:["building","hotel","love"],emoji:"🏩",text:"",type:1,order:4012,group:5,subgroup:51,version:.6,shortCodes:["love_hotel"]},{label:"convenience store",hexcode:"1F3EA",tags:["24","building","convenience","hours","store"],emoji:"🏪",text:"",type:1,order:4013,group:5,subgroup:51,version:.6,shortCodes:["convenience_store"]},{label:"school",hexcode:"1F3EB",tags:["building"],emoji:"🏫",text:"",type:1,order:4014,group:5,subgroup:51,version:.6,shortCodes:["school"]},{label:"department store",hexcode:"1F3EC",tags:["building","department","store"],emoji:"🏬",text:"",type:1,order:4015,group:5,subgroup:51,version:.6,shortCodes:["department_store"]},{label:"factory",hexcode:"1F3ED",tags:["building"],emoji:"🏭️",text:"🏭︎",type:1,order:4016,group:5,subgroup:51,version:.6,shortCodes:["factory"]},{label:"Japanese castle",hexcode:"1F3EF",tags:["building","castle","japanese"],emoji:"🏯",text:"",type:1,order:4017,group:5,subgroup:51,version:.6,shortCodes:["japanese_castle"]},{label:"castle",hexcode:"1F3F0",tags:["building","european"],emoji:"🏰",text:"",type:1,order:4018,group:5,subgroup:51,version:.6,shortCodes:["castle","european_castle"]},{label:"wedding",hexcode:"1F492",tags:["chapel","hitched","nuptials","romance"],emoji:"💒",text:"",type:1,order:4019,group:5,subgroup:51,version:.6,shortCodes:["wedding"]},{label:"Tokyo tower",hexcode:"1F5FC",tags:["tokyo","tower"],emoji:"🗼",text:"",type:1,order:4020,group:5,subgroup:51,version:.6,shortCodes:["tokyo_tower"]},{label:"Statue of Liberty",hexcode:"1F5FD",tags:["liberty","new","ny","nyc","statue","york"],emoji:"🗽",text:"",type:1,order:4021,group:5,subgroup:51,version:.6,shortCodes:["statue_of_liberty"]},{label:"church",hexcode:"26EA",tags:["bless","chapel","christian","cross","religion"],emoji:"⛪️",text:"⛪︎",type:1,order:4022,group:5,subgroup:52,version:.6,shortCodes:["church"]},{label:"mosque",hexcode:"1F54C",tags:["islam","masjid","muslim","religion"],emoji:"🕌",text:"",type:1,order:4023,group:5,subgroup:52,version:1,shortCodes:["mosque"]},{label:"hindu temple",hexcode:"1F6D5",tags:["hindu","temple"],emoji:"🛕",text:"",type:1,order:4024,group:5,subgroup:52,version:12,shortCodes:["hindu_temple"]},{label:"synagogue",hexcode:"1F54D",tags:["jew","jewish","judaism","religion","temple"],emoji:"🕍",text:"",type:1,order:4025,group:5,subgroup:52,version:1,shortCodes:["synagogue"]},{label:"shinto shrine",hexcode:"26E9",tags:["religion","shinto","shrine"],emoji:"⛩️",text:"⛩︎",type:0,order:4027,group:5,subgroup:52,version:.7,shortCodes:["shinto_shrine"]},{label:"kaaba",hexcode:"1F54B",tags:["hajj","islam","muslim","religion","umrah"],emoji:"🕋",text:"",type:1,order:4028,group:5,subgroup:52,version:1,shortCodes:["kaaba"]},{label:"fountain",hexcode:"26F2",tags:["fountain"],emoji:"⛲️",text:"⛲︎",type:1,order:4029,group:5,subgroup:53,version:.6,shortCodes:["fountain"]},{label:"tent",hexcode:"26FA",tags:["camping"],emoji:"⛺️",text:"⛺︎",type:1,order:4030,group:5,subgroup:53,version:.6,shortCodes:["tent"]},{label:"foggy",hexcode:"1F301",tags:["fog"],emoji:"🌁",text:"",type:1,order:4031,group:5,subgroup:53,version:.6,shortCodes:["foggy"]},{label:"night with stars",hexcode:"1F303",tags:["night","star","stars"],emoji:"🌃",text:"",type:1,order:4032,group:5,subgroup:53,version:.6,shortCodes:["night_with_stars"]},{label:"cityscape",hexcode:"1F3D9",tags:["city"],emoji:"🏙️",text:"🏙︎",type:0,order:4034,group:5,subgroup:53,version:.7,shortCodes:["cityscape"]},{label:"sunrise over mountains",hexcode:"1F304",tags:["morning","mountains","over","sun","sunrise"],emoji:"🌄",text:"",type:1,order:4035,group:5,subgroup:53,version:.6,shortCodes:["sunrise_over_mountains"]},{label:"sunrise",hexcode:"1F305",tags:["morning","nature","sun"],emoji:"🌅",text:"",type:1,order:4036,group:5,subgroup:53,version:.6,shortCodes:["sunrise"]},{label:"cityscape at dusk",hexcode:"1F306",tags:["at","building","city","cityscape","dusk","evening","landscape","sun","sunset"],emoji:"🌆",text:"",type:1,order:4037,group:5,subgroup:53,version:.6,shortCodes:["city_dusk"]},{label:"sunset",hexcode:"1F307",tags:["building","dusk","sun"],emoji:"🌇",text:"",type:1,order:4038,group:5,subgroup:53,version:.6,shortCodes:["city_sunrise","city_sunset"]},{label:"bridge at night",hexcode:"1F309",tags:["at","bridge","night"],emoji:"🌉",text:"",type:1,order:4039,group:5,subgroup:53,version:.6,shortCodes:["bridge_at_night"]},{label:"hot springs",hexcode:"2668",tags:["hot","hotsprings","springs","steaming"],emoji:"♨️",text:"♨︎",type:0,order:4041,group:5,subgroup:53,version:.6,shortCodes:["hotsprings"]},{label:"carousel horse",hexcode:"1F3A0",tags:["carousel","entertainment","horse"],emoji:"🎠",text:"",type:1,order:4042,group:5,subgroup:53,version:.6,shortCodes:["carousel_horse"]},{label:"playground slide",hexcode:"1F6DD",tags:["amusement","park","play","playground","playing","slide","sliding","theme"],emoji:"🛝",text:"",type:1,order:4043,group:5,subgroup:53,version:14,shortCodes:["playground_slide","slide"]},{label:"ferris wheel",hexcode:"1F3A1",tags:["amusement","ferris","park","theme","wheel"],emoji:"🎡",text:"",type:1,order:4044,group:5,subgroup:53,version:.6,shortCodes:["ferris_wheel"]},{label:"roller coaster",hexcode:"1F3A2",tags:["amusement","coaster","park","roller","theme"],emoji:"🎢",text:"",type:1,order:4045,group:5,subgroup:53,version:.6,shortCodes:["roller_coaster"]},{label:"barber pole",hexcode:"1F488",tags:["barber","cut","fresh","haircut","pole","shave"],emoji:"💈",text:"",type:1,order:4046,group:5,subgroup:53,version:.6,shortCodes:["barber","barber_pole"]},{label:"circus tent",hexcode:"1F3AA",tags:["circus","tent"],emoji:"🎪",text:"",type:1,order:4047,group:5,subgroup:53,version:.6,shortCodes:["circus_tent"]},{label:"locomotive",hexcode:"1F682",tags:["caboose","engine","railway","steam","train","trains","travel"],emoji:"🚂",text:"",type:1,order:4048,group:5,subgroup:54,version:1,shortCodes:["steam_locomotive"]},{label:"railway car",hexcode:"1F683",tags:["car","electric","railway","train","tram","travel","trolleybus"],emoji:"🚃",text:"",type:1,order:4049,group:5,subgroup:54,version:.6,shortCodes:["railway_car"]},{label:"high-speed train",hexcode:"1F684",tags:["high-speed","railway","shinkansen","speed","train"],emoji:"🚄",text:"",type:1,order:4050,group:5,subgroup:54,version:.6,shortCodes:["bullettrain_side"]},{label:"bullet train",hexcode:"1F685",tags:["bullet","high-speed","nose","railway","shinkansen","speed","train","travel"],emoji:"🚅",text:"",type:1,order:4051,group:5,subgroup:54,version:.6,shortCodes:["bullettrain_front"]},{label:"train",hexcode:"1F686",tags:["arrived","choo","railway"],emoji:"🚆",text:"",type:1,order:4052,group:5,subgroup:54,version:1,shortCodes:["train"]},{label:"metro",hexcode:"1F687",tags:["subway","travel"],emoji:"🚇️",text:"🚇︎",type:1,order:4053,group:5,subgroup:54,version:.6,shortCodes:["metro"]},{label:"light rail",hexcode:"1F688",tags:["arrived","light","monorail","rail","railway"],emoji:"🚈",text:"",type:1,order:4054,group:5,subgroup:54,version:1,shortCodes:["light_rail"]},{label:"station",hexcode:"1F689",tags:["railway","train"],emoji:"🚉",text:"",type:1,order:4055,group:5,subgroup:54,version:.6,shortCodes:["station"]},{label:"tram",hexcode:"1F68A",tags:["trolleybus"],emoji:"🚊",text:"",type:1,order:4056,group:5,subgroup:54,version:1,shortCodes:["tram"]},{label:"monorail",hexcode:"1F69D",tags:["vehicle"],emoji:"🚝",text:"",type:1,order:4057,group:5,subgroup:54,version:1,shortCodes:["monorail"]},{label:"mountain railway",hexcode:"1F69E",tags:["car","mountain","railway","trip"],emoji:"🚞",text:"",type:1,order:4058,group:5,subgroup:54,version:1,shortCodes:["mountain_railway"]},{label:"tram car",hexcode:"1F68B",tags:["bus","car","tram","trolley","trolleybus"],emoji:"🚋",text:"",type:1,order:4059,group:5,subgroup:54,version:1,shortCodes:["tram_car"]},{label:"bus",hexcode:"1F68C",tags:["school","vehicle"],emoji:"🚌",text:"",type:1,order:4060,group:5,subgroup:54,version:.6,shortCodes:["bus"]},{label:"oncoming bus",hexcode:"1F68D",tags:["bus","cars","oncoming"],emoji:"🚍️",text:"🚍︎",type:1,order:4061,group:5,subgroup:54,version:.7,shortCodes:["oncoming_bus"]},{label:"trolleybus",hexcode:"1F68E",tags:["bus","tram","trolley"],emoji:"🚎",text:"",type:1,order:4062,group:5,subgroup:54,version:1,shortCodes:["trolleybus"]},{label:"minibus",hexcode:"1F690",tags:["bus","drive","van","vehicle"],emoji:"🚐",text:"",type:1,order:4063,group:5,subgroup:54,version:1,shortCodes:["minibus"]},{label:"ambulance",hexcode:"1F691",tags:["emergency","vehicle"],emoji:"🚑️",text:"🚑︎",type:1,order:4064,group:5,subgroup:54,version:.6,shortCodes:["ambulance"]},{label:"fire engine",hexcode:"1F692",tags:["engine","fire","truck"],emoji:"🚒",text:"",type:1,order:4065,group:5,subgroup:54,version:.6,shortCodes:["fire_engine"]},{label:"police car",hexcode:"1F693",tags:["5–0","car","cops","patrol","police"],emoji:"🚓",text:"",type:1,order:4066,group:5,subgroup:54,version:.6,shortCodes:["police_car"]},{label:"oncoming police car",hexcode:"1F694",tags:["car","oncoming","police"],emoji:"🚔️",text:"🚔︎",type:1,order:4067,group:5,subgroup:54,version:.7,shortCodes:["oncoming_police_car"]},{label:"taxi",hexcode:"1F695",tags:["cab","cabbie","car","drive","vehicle","yellow"],emoji:"🚕",text:"",type:1,order:4068,group:5,subgroup:54,version:.6,shortCodes:["taxi"]},{label:"oncoming taxi",hexcode:"1F696",tags:["cab","cabbie","cars","drove","hail","oncoming","taxi","yellow"],emoji:"🚖",text:"",type:1,order:4069,group:5,subgroup:54,version:1,shortCodes:["oncoming_taxi"]},{label:"automobile",hexcode:"1F697",tags:["car","driving","vehicle"],emoji:"🚗",text:"",type:1,order:4070,group:5,subgroup:54,version:.6,shortCodes:["car","red_car"]},{label:"oncoming automobile",hexcode:"1F698",tags:["automobile","car","cars","drove","oncoming","vehicle"],emoji:"🚘️",text:"🚘︎",type:1,order:4071,group:5,subgroup:54,version:.7,shortCodes:["oncoming_automobile"]},{label:"sport utility vehicle",hexcode:"1F699",tags:["car","drive","recreational","sport","sportutility","utility","vehicle"],emoji:"🚙",text:"",type:1,order:4072,group:5,subgroup:54,version:.6,shortCodes:["blue_car","suv"]},{label:"pickup truck",hexcode:"1F6FB",tags:["automobile","car","flatbed","pick-up","pickup","transportation","truck"],emoji:"🛻",text:"",type:1,order:4073,group:5,subgroup:54,version:13,shortCodes:["pickup_truck"]},{label:"delivery truck",hexcode:"1F69A",tags:["car","delivery","drive","truck","vehicle"],emoji:"🚚",text:"",type:1,order:4074,group:5,subgroup:54,version:.6,shortCodes:["delivery_truck","truck"]},{label:"articulated lorry",hexcode:"1F69B",tags:["articulated","car","drive","lorry","move","semi","truck","vehicle"],emoji:"🚛",text:"",type:1,order:4075,group:5,subgroup:54,version:1,shortCodes:["articulated_lorry"]},{label:"tractor",hexcode:"1F69C",tags:["vehicle"],emoji:"🚜",text:"",type:1,order:4076,group:5,subgroup:54,version:1,shortCodes:["tractor"]},{label:"racing car",hexcode:"1F3CE",tags:["car","racing","zoom"],emoji:"🏎️",text:"🏎︎",type:0,order:4078,group:5,subgroup:54,version:.7,shortCodes:["racing_car"]},{label:"motorcycle",hexcode:"1F3CD",tags:["racing"],emoji:"🏍️",text:"🏍︎",type:0,order:4080,group:5,subgroup:54,version:.7,shortCodes:["motorcycle"]},{label:"motor scooter",hexcode:"1F6F5",tags:["motor","scooter"],emoji:"🛵",text:"",type:1,order:4081,group:5,subgroup:54,version:3,shortCodes:["motor_scooter"]},{label:"manual wheelchair",hexcode:"1F9BD",tags:["accessibility","manual","wheelchair"],emoji:"🦽",text:"",type:1,order:4082,group:5,subgroup:54,version:12,shortCodes:["manual_wheelchair"]},{label:"motorized wheelchair",hexcode:"1F9BC",tags:["accessibility","motorized","wheelchair"],emoji:"🦼",text:"",type:1,order:4083,group:5,subgroup:54,version:12,shortCodes:["motorized_wheelchair"]},{label:"auto rickshaw",hexcode:"1F6FA",tags:["auto","rickshaw","tuk"],emoji:"🛺",text:"",type:1,order:4084,group:5,subgroup:54,version:12,shortCodes:["auto_rickshaw"]},{label:"bicycle",hexcode:"1F6B2",tags:["bike","class","cycle","cycling","cyclist","gang","ride","spin","spinning"],emoji:"🚲️",text:"🚲︎",type:1,order:4085,group:5,subgroup:54,version:.6,shortCodes:["bicycle","bike"]},{label:"kick scooter",hexcode:"1F6F4",tags:["kick","scooter"],emoji:"🛴",text:"",type:1,order:4086,group:5,subgroup:54,version:3,shortCodes:["scooter"]},{label:"skateboard",hexcode:"1F6F9",tags:["board","skate","skater","wheels"],emoji:"🛹",text:"",type:1,order:4087,group:5,subgroup:54,version:11,shortCodes:["skateboard"]},{label:"roller skate",hexcode:"1F6FC",tags:["blades","roller","skate","skates","sport"],emoji:"🛼",text:"",type:1,order:4088,group:5,subgroup:54,version:13,shortCodes:["roller_skate"]},{label:"bus stop",hexcode:"1F68F",tags:["bus","busstop","stop"],emoji:"🚏",text:"",type:1,order:4089,group:5,subgroup:54,version:.6,shortCodes:["busstop"]},{label:"motorway",hexcode:"1F6E3",tags:["highway","road"],emoji:"🛣️",text:"🛣︎",type:0,order:4091,group:5,subgroup:54,version:.7,shortCodes:["motorway"]},{label:"railway track",hexcode:"1F6E4",tags:["railway","track","train"],emoji:"🛤️",text:"🛤︎",type:0,order:4093,group:5,subgroup:54,version:.7,shortCodes:["railway_track"]},{label:"oil drum",hexcode:"1F6E2",tags:["drum","oil"],emoji:"🛢️",text:"🛢︎",type:0,order:4095,group:5,subgroup:54,version:.7,shortCodes:["oil_drum"]},{label:"fuel pump",hexcode:"26FD",tags:["diesel","fuel","fuelpump","gas","gasoline","pump","station"],emoji:"⛽️",text:"⛽︎",type:1,order:4096,group:5,subgroup:54,version:.6,shortCodes:["fuelpump"]},{label:"wheel",hexcode:"1F6DE",tags:["car","circle","tire","turn","vehicle"],emoji:"🛞",text:"",type:1,order:4097,group:5,subgroup:54,version:14,shortCodes:["wheel"]},{label:"police car light",hexcode:"1F6A8",tags:["alarm","alert","beacon","car","emergency","light","police","revolving","siren"],emoji:"🚨",text:"",type:1,order:4098,group:5,subgroup:54,version:.6,shortCodes:["rotating_light"]},{label:"horizontal traffic light",hexcode:"1F6A5",tags:["horizontal","intersection","light","signal","stop","stoplight","traffic"],emoji:"🚥",text:"",type:1,order:4099,group:5,subgroup:54,version:.6,shortCodes:["traffic_light"]},{label:"vertical traffic light",hexcode:"1F6A6",tags:["drove","intersection","light","signal","stop","stoplight","traffic","vertical"],emoji:"🚦",text:"",type:1,order:4100,group:5,subgroup:54,version:1,shortCodes:["vertical_traffic_light"]},{label:"stop sign",hexcode:"1F6D1",tags:["octagonal","sign","stop"],emoji:"🛑",text:"",type:1,order:4101,group:5,subgroup:54,version:3,shortCodes:["octagonal_sign","stop_sign"]},{label:"construction",hexcode:"1F6A7",tags:["barrier"],emoji:"🚧",text:"",type:1,order:4102,group:5,subgroup:54,version:.6,shortCodes:["construction"]},{label:"anchor",hexcode:"2693",tags:["ship","tool"],emoji:"⚓️",text:"⚓︎",type:1,order:4103,group:5,subgroup:55,version:.6,shortCodes:["anchor"]},{label:"ring buoy",hexcode:"1F6DF",tags:["buoy","float","life","lifesaver","preserver","rescue","ring","safety","save","saver","swim"],emoji:"🛟",text:"",type:1,order:4104,group:5,subgroup:55,version:14,shortCodes:["lifebuoy","ring_buoy"]},{label:"sailboat",hexcode:"26F5",tags:["boat","resort","sailing","sea","yacht"],emoji:"⛵️",text:"⛵︎",type:1,order:4105,group:5,subgroup:55,version:.6,shortCodes:["sailboat"]},{label:"canoe",hexcode:"1F6F6",tags:["boat"],emoji:"🛶",text:"",type:1,order:4106,group:5,subgroup:55,version:3,shortCodes:["canoe"]},{label:"speedboat",hexcode:"1F6A4",tags:["billionaire","boat","lake","luxury","millionaire","summer","travel"],emoji:"🚤",text:"",type:1,order:4107,group:5,subgroup:55,version:.6,shortCodes:["speedboat"]},{label:"passenger ship",hexcode:"1F6F3",tags:["passenger","ship"],emoji:"🛳️",text:"🛳︎",type:0,order:4109,group:5,subgroup:55,version:.7,shortCodes:["cruise_ship","passenger_ship"]},{label:"ferry",hexcode:"26F4",tags:["boat","passenger"],emoji:"⛴️",text:"⛴︎",type:0,order:4111,group:5,subgroup:55,version:.7,shortCodes:["ferry"]},{label:"motor boat",hexcode:"1F6E5",tags:["boat","motor","motorboat"],emoji:"🛥️",text:"🛥︎",type:0,order:4113,group:5,subgroup:55,version:.7,shortCodes:["motorboat"]},{label:"ship",hexcode:"1F6A2",tags:["boat","passenger","travel"],emoji:"🚢",text:"",type:1,order:4114,group:5,subgroup:55,version:.6,shortCodes:["ship"]},{label:"airplane",hexcode:"2708",tags:["aeroplane","fly","flying","jet","plane","travel"],emoji:"✈️",text:"✈︎",type:0,order:4116,group:5,subgroup:56,version:.6,shortCodes:["airplane"]},{label:"small airplane",hexcode:"1F6E9",tags:["aeroplane","airplane","plane","small"],emoji:"🛩️",text:"🛩︎",type:0,order:4118,group:5,subgroup:56,version:.7,shortCodes:["small_airplane"]},{label:"airplane departure",hexcode:"1F6EB",tags:["aeroplane","airplane","check-in","departure","departures","plane"],emoji:"🛫",text:"",type:1,order:4119,group:5,subgroup:56,version:1,shortCodes:["airplane_departure"]},{label:"airplane arrival",hexcode:"1F6EC",tags:["aeroplane","airplane","arrival","arrivals","arriving","landing","plane"],emoji:"🛬",text:"",type:1,order:4120,group:5,subgroup:56,version:1,shortCodes:["airplane_arriving"]},{label:"parachute",hexcode:"1FA82",tags:["hang-glide","parasail","skydive"],emoji:"🪂",text:"",type:1,order:4121,group:5,subgroup:56,version:12,shortCodes:["parachute"]},{label:"seat",hexcode:"1F4BA",tags:["chair"],emoji:"💺",text:"",type:1,order:4122,group:5,subgroup:56,version:.6,shortCodes:["seat"]},{label:"helicopter",hexcode:"1F681",tags:["copter","roflcopter","travel","vehicle"],emoji:"🚁",text:"",type:1,order:4123,group:5,subgroup:56,version:1,shortCodes:["helicopter"]},{label:"suspension railway",hexcode:"1F69F",tags:["railway","suspension"],emoji:"🚟",text:"",type:1,order:4124,group:5,subgroup:56,version:1,shortCodes:["suspension_railway"]},{label:"mountain cableway",hexcode:"1F6A0",tags:["cable","cableway","gondola","lift","mountain","ski"],emoji:"🚠",text:"",type:1,order:4125,group:5,subgroup:56,version:1,shortCodes:["mountain_cableway"]},{label:"aerial tramway",hexcode:"1F6A1",tags:["aerial","cable","car","gondola","ropeway","tramway"],emoji:"🚡",text:"",type:1,order:4126,group:5,subgroup:56,version:1,shortCodes:["aerial_tramway"]},{label:"satellite",hexcode:"1F6F0",tags:["space"],emoji:"🛰️",text:"🛰︎",type:0,order:4128,group:5,subgroup:56,version:.7,shortCodes:["satellite"]},{label:"rocket",hexcode:"1F680",tags:["launch","rockets","space","travel"],emoji:"🚀",text:"",type:1,order:4129,group:5,subgroup:56,version:.6,shortCodes:["rocket"]},{label:"flying saucer",hexcode:"1F6F8",tags:["aliens","extra","flying","saucer","terrestrial","ufo"],emoji:"🛸",text:"",type:1,order:4130,group:5,subgroup:56,version:5,shortCodes:["flying_saucer"]},{label:"bellhop bell",hexcode:"1F6CE",tags:["bell","bellhop","hotel"],emoji:"🛎️",text:"🛎︎",type:0,order:4132,group:5,subgroup:57,version:.7,shortCodes:["bellhop"]},{label:"luggage",hexcode:"1F9F3",tags:["bag","packing","roller","suitcase","travel"],emoji:"🧳",text:"",type:1,order:4133,group:5,subgroup:57,version:11,shortCodes:["luggage"]},{label:"hourglass done",hexcode:"231B",tags:["done","hourglass","sand","time","timer"],emoji:"⌛️",text:"⌛︎",type:1,order:4134,group:5,subgroup:58,version:.6,shortCodes:["hourglass"]},{label:"hourglass not done",hexcode:"23F3",tags:["done","flowing","hourglass","hours","not","sand","timer","waiting","yolo"],emoji:"⏳️",text:"⏳︎",type:1,order:4135,group:5,subgroup:58,version:.6,shortCodes:["hourglass_flowing_sand"]},{label:"watch",hexcode:"231A",tags:["clock","time"],emoji:"⌚️",text:"⌚︎",type:1,order:4136,group:5,subgroup:58,version:.6,shortCodes:["watch"]},{label:"alarm clock",hexcode:"23F0",tags:["alarm","clock","hours","hrs","late","time","waiting"],emoji:"⏰️",text:"⏰︎",type:1,order:4137,group:5,subgroup:58,version:.6,shortCodes:["alarm_clock"]},{label:"stopwatch",hexcode:"23F1",tags:["clock","time"],emoji:"⏱️",text:"⏱︎",type:0,order:4139,group:5,subgroup:58,version:1,shortCodes:["stopwatch"]},{label:"timer clock",hexcode:"23F2",tags:["clock","timer"],emoji:"⏲️",text:"⏲︎",type:0,order:4141,group:5,subgroup:58,version:1,shortCodes:["timer_clock"]},{label:"mantelpiece clock",hexcode:"1F570",tags:["clock","mantelpiece","time"],emoji:"🕰️",text:"🕰︎",type:0,order:4143,group:5,subgroup:58,version:.7,shortCodes:["clock"]},{label:"twelve o’clock",hexcode:"1F55B",tags:["12","12:00","clock","o’clock","time","twelve"],emoji:"🕛️",text:"🕛︎",type:1,order:4144,group:5,subgroup:58,version:.6,shortCodes:["clock12"]},{label:"twelve-thirty",hexcode:"1F567",tags:["12","12:30","30","clock","thirty","time","twelve"],emoji:"🕧️",text:"🕧︎",type:1,order:4145,group:5,subgroup:58,version:.7,shortCodes:["clock1230"]},{label:"one o’clock",hexcode:"1F550",tags:["1","1:00","clock","one","o’clock","time"],emoji:"🕐️",text:"🕐︎",type:1,order:4146,group:5,subgroup:58,version:.6,shortCodes:["clock1"]},{label:"one-thirty",hexcode:"1F55C",tags:["1","1:30","30","clock","one","thirty","time"],emoji:"🕜️",text:"🕜︎",type:1,order:4147,group:5,subgroup:58,version:.7,shortCodes:["clock130"]},{label:"two o’clock",hexcode:"1F551",tags:["2","2:00","clock","o’clock","time","two"],emoji:"🕑️",text:"🕑︎",type:1,order:4148,group:5,subgroup:58,version:.6,shortCodes:["clock2"]},{label:"two-thirty",hexcode:"1F55D",tags:["2","2:30","30","clock","thirty","time","two"],emoji:"🕝️",text:"🕝︎",type:1,order:4149,group:5,subgroup:58,version:.7,shortCodes:["clock230"]},{label:"three o’clock",hexcode:"1F552",tags:["3","3:00","clock","o’clock","three","time"],emoji:"🕒️",text:"🕒︎",type:1,order:4150,group:5,subgroup:58,version:.6,shortCodes:["clock3"]},{label:"three-thirty",hexcode:"1F55E",tags:["3","30","3:30","clock","thirty","three","time"],emoji:"🕞️",text:"🕞︎",type:1,order:4151,group:5,subgroup:58,version:.7,shortCodes:["clock330"]},{label:"four o’clock",hexcode:"1F553",tags:["4","4:00","clock","four","o’clock","time"],emoji:"🕓️",text:"🕓︎",type:1,order:4152,group:5,subgroup:58,version:.6,shortCodes:["clock4"]},{label:"four-thirty",hexcode:"1F55F",tags:["30","4","4:30","clock","four","thirty","time"],emoji:"🕟️",text:"🕟︎",type:1,order:4153,group:5,subgroup:58,version:.7,shortCodes:["clock430"]},{label:"five o’clock",hexcode:"1F554",tags:["5","5:00","clock","five","o’clock","time"],emoji:"🕔️",text:"🕔︎",type:1,order:4154,group:5,subgroup:58,version:.6,shortCodes:["clock5"]},{label:"five-thirty",hexcode:"1F560",tags:["30","5","5:30","clock","five","thirty","time"],emoji:"🕠️",text:"🕠︎",type:1,order:4155,group:5,subgroup:58,version:.7,shortCodes:["clock530"]},{label:"six o’clock",hexcode:"1F555",tags:["6","6:00","clock","o’clock","six","time"],emoji:"🕕️",text:"🕕︎",type:1,order:4156,group:5,subgroup:58,version:.6,shortCodes:["clock6"]},{label:"six-thirty",hexcode:"1F561",tags:["30","6","6:30","clock","six","thirty"],emoji:"🕡️",text:"🕡︎",type:1,order:4157,group:5,subgroup:58,version:.7,shortCodes:["clock630"]},{label:"seven o’clock",hexcode:"1F556",tags:["0","7","7:00","clock","o’clock","seven"],emoji:"🕖️",text:"🕖︎",type:1,order:4158,group:5,subgroup:58,version:.6,shortCodes:["clock7"]},{label:"seven-thirty",hexcode:"1F562",tags:["30","7","7:30","clock","seven","thirty"],emoji:"🕢️",text:"🕢︎",type:1,order:4159,group:5,subgroup:58,version:.7,shortCodes:["clock730"]},{label:"eight o’clock",hexcode:"1F557",tags:["8","8:00","clock","eight","o’clock","time"],emoji:"🕗️",text:"🕗︎",type:1,order:4160,group:5,subgroup:58,version:.6,shortCodes:["clock8"]},{label:"eight-thirty",hexcode:"1F563",tags:["30","8","8:30","clock","eight","thirty","time"],emoji:"🕣️",text:"🕣︎",type:1,order:4161,group:5,subgroup:58,version:.7,shortCodes:["clock830"]},{label:"nine o’clock",hexcode:"1F558",tags:["9","9:00","clock","nine","o’clock","time"],emoji:"🕘️",text:"🕘︎",type:1,order:4162,group:5,subgroup:58,version:.6,shortCodes:["clock9"]},{label:"nine-thirty",hexcode:"1F564",tags:["30","9","9:30","clock","nine","thirty","time"],emoji:"🕤️",text:"🕤︎",type:1,order:4163,group:5,subgroup:58,version:.7,shortCodes:["clock930"]},{label:"ten o’clock",hexcode:"1F559",tags:["0","10","10:00","clock","o’clock","ten"],emoji:"🕙️",text:"🕙︎",type:1,order:4164,group:5,subgroup:58,version:.6,shortCodes:["clock10"]},{label:"ten-thirty",hexcode:"1F565",tags:["10","10:30","30","clock","ten","thirty","time"],emoji:"🕥️",text:"🕥︎",type:1,order:4165,group:5,subgroup:58,version:.7,shortCodes:["clock1030"]},{label:"eleven o’clock",hexcode:"1F55A",tags:["11","11:00","clock","eleven","o’clock","time"],emoji:"🕚️",text:"🕚︎",type:1,order:4166,group:5,subgroup:58,version:.6,shortCodes:["clock11"]},{label:"eleven-thirty",hexcode:"1F566",tags:["11","11:30","30","clock","eleven","thirty","time"],emoji:"🕦️",text:"🕦︎",type:1,order:4167,group:5,subgroup:58,version:.7,shortCodes:["clock1130"]},{label:"new moon",hexcode:"1F311",tags:["dark","moon","new","space"],emoji:"🌑",text:"",type:1,order:4168,group:5,subgroup:59,version:.6,shortCodes:["new_moon"]},{label:"waxing crescent moon",hexcode:"1F312",tags:["crescent","dreams","moon","space","waxing"],emoji:"🌒",text:"",type:1,order:4169,group:5,subgroup:59,version:1,shortCodes:["waxing_crescent_moon"]},{label:"first quarter moon",hexcode:"1F313",tags:["first","moon","quarter","space"],emoji:"🌓",text:"",type:1,order:4170,group:5,subgroup:59,version:.6,shortCodes:["first_quarter_moon"]},{label:"waxing gibbous moon",hexcode:"1F314",tags:["gibbous","moon","space","waxing"],emoji:"🌔",text:"",type:1,order:4171,group:5,subgroup:59,version:.6,shortCodes:["waxing_gibbous_moon"]},{label:"full moon",hexcode:"1F315",tags:["full","moon","space"],emoji:"🌕️",text:"🌕︎",type:1,order:4172,group:5,subgroup:59,version:.6,shortCodes:["full_moon"]},{label:"waning gibbous moon",hexcode:"1F316",tags:["gibbous","moon","space","waning"],emoji:"🌖",text:"",type:1,order:4173,group:5,subgroup:59,version:1,shortCodes:["waning_gibbous_moon"]},{label:"last quarter moon",hexcode:"1F317",tags:["last","moon","quarter","space"],emoji:"🌗",text:"",type:1,order:4174,group:5,subgroup:59,version:1,shortCodes:["last_quarter_moon"]},{label:"waning crescent moon",hexcode:"1F318",tags:["crescent","moon","space","waning"],emoji:"🌘",text:"",type:1,order:4175,group:5,subgroup:59,version:1,shortCodes:["waning_crescent_moon"]},{label:"crescent moon",hexcode:"1F319",tags:["crescent","moon","ramadan","space"],emoji:"🌙",text:"",type:1,order:4176,group:5,subgroup:59,version:.6,shortCodes:["crescent_moon"]},{label:"new moon face",hexcode:"1F31A",tags:["face","moon","new","space"],emoji:"🌚",text:"",type:1,order:4177,group:5,subgroup:59,version:1,shortCodes:["new_moon_with_face"]},{label:"first quarter moon face",hexcode:"1F31B",tags:["face","first","moon","quarter","space"],emoji:"🌛",text:"",type:1,order:4178,group:5,subgroup:59,version:.6,shortCodes:["first_quarter_moon_with_face"]},{label:"last quarter moon face",hexcode:"1F31C",tags:["dreams","face","last","moon","quarter"],emoji:"🌜️",text:"🌜︎",type:1,order:4179,group:5,subgroup:59,version:.7,shortCodes:["last_quarter_moon_with_face"]},{label:"thermometer",hexcode:"1F321",tags:["weather"],emoji:"🌡️",text:"🌡︎",type:0,order:4181,group:5,subgroup:59,version:.7,shortCodes:["thermometer"]},{label:"sun",hexcode:"2600",tags:["bright","rays","space","sunny","weather"],emoji:"☀️",text:"☀︎",type:0,order:4183,group:5,subgroup:59,version:.6,shortCodes:["sun"]},{label:"full moon face",hexcode:"1F31D",tags:["bright","face","full","moon"],emoji:"🌝",text:"",type:1,order:4184,group:5,subgroup:59,version:1,shortCodes:["full_moon_with_face"]},{label:"sun with face",hexcode:"1F31E",tags:["beach","bright","day","face","heat","shine","sun","sunny","sunshine","weather"],emoji:"🌞",text:"",type:1,order:4185,group:5,subgroup:59,version:1,shortCodes:["sun_with_face"]},{label:"ringed planet",hexcode:"1FA90",tags:["planet","ringed","saturn","saturnine"],emoji:"🪐",text:"",type:1,order:4186,group:5,subgroup:59,version:12,shortCodes:["ringed_planet","saturn"]},{label:"star",hexcode:"2B50",tags:["astronomy","medium","stars","white"],emoji:"⭐️",text:"⭐︎",type:1,order:4187,group:5,subgroup:59,version:.6,shortCodes:["star"]},{label:"glowing star",hexcode:"1F31F",tags:["glittery","glow","glowing","night","shining","sparkle","star","win"],emoji:"🌟",text:"",type:1,order:4188,group:5,subgroup:59,version:.6,shortCodes:["glowing_star","star2"]},{label:"shooting star",hexcode:"1F320",tags:["falling","night","shooting","space","star"],emoji:"🌠",text:"",type:1,order:4189,group:5,subgroup:59,version:.6,shortCodes:["shooting_star","stars"]},{label:"milky way",hexcode:"1F30C",tags:["milky","space","way"],emoji:"🌌",text:"",type:1,order:4190,group:5,subgroup:59,version:.6,shortCodes:["milky_way"]},{label:"cloud",hexcode:"2601",tags:["weather"],emoji:"☁️",text:"☁︎",type:0,order:4192,group:5,subgroup:59,version:.6,shortCodes:["cloud"]},{label:"sun behind cloud",hexcode:"26C5",tags:["behind","cloud","cloudy","sun","weather"],emoji:"⛅️",text:"⛅︎",type:1,order:4193,group:5,subgroup:59,version:.6,shortCodes:["partly_sunny","sun_behind_cloud"]},{label:"cloud with lightning and rain",hexcode:"26C8",tags:["cloud","lightning","rain","thunder","thunderstorm"],emoji:"⛈️",text:"⛈︎",type:0,order:4195,group:5,subgroup:59,version:.7,shortCodes:["stormy","thunder_cloud_and_rain"]},{label:"sun behind small cloud",hexcode:"1F324",tags:["behind","cloud","sun","weather"],emoji:"🌤️",text:"🌤︎",type:0,order:4197,group:5,subgroup:59,version:.7,shortCodes:["sun_behind_small_cloud","sunny"]},{label:"sun behind large cloud",hexcode:"1F325",tags:["behind","cloud","sun","weather"],emoji:"🌥️",text:"🌥︎",type:0,order:4199,group:5,subgroup:59,version:.7,shortCodes:["cloudy","sun_behind_large_cloud"]},{label:"sun behind rain cloud",hexcode:"1F326",tags:["behind","cloud","rain","sun","weather"],emoji:"🌦️",text:"🌦︎",type:0,order:4201,group:5,subgroup:59,version:.7,shortCodes:["sun_and_rain","sun_behind_rain_cloud"]},{label:"cloud with rain",hexcode:"1F327",tags:["cloud","rain","weather"],emoji:"🌧️",text:"🌧︎",type:0,order:4203,group:5,subgroup:59,version:.7,shortCodes:["cloud_with_rain","rainy"]},{label:"cloud with snow",hexcode:"1F328",tags:["cloud","cold","snow","weather"],emoji:"🌨️",text:"🌨︎",type:0,order:4205,group:5,subgroup:59,version:.7,shortCodes:["cloud_with_snow","snowy"]},{label:"cloud with lightning",hexcode:"1F329",tags:["cloud","lightning","weather"],emoji:"🌩️",text:"🌩︎",type:0,order:4207,group:5,subgroup:59,version:.7,shortCodes:["cloud_with_lightning","lightning"]},{label:"tornado",hexcode:"1F32A",tags:["cloud","weather","whirlwind"],emoji:"🌪️",text:"🌪︎",type:0,order:4209,group:5,subgroup:59,version:.7,shortCodes:["tornado"]},{label:"fog",hexcode:"1F32B",tags:["cloud","weather"],emoji:"🌫️",text:"🌫︎",type:0,order:4211,group:5,subgroup:59,version:.7,shortCodes:["fog"]},{label:"wind face",hexcode:"1F32C",tags:["blow","cloud","face","wind"],emoji:"🌬️",text:"🌬︎",type:0,order:4213,group:5,subgroup:59,version:.7,shortCodes:["wind_blowing_face"]},{label:"cyclone",hexcode:"1F300",tags:["dizzy","hurricane","twister","typhoon","weather"],emoji:"🌀",text:"",type:1,order:4214,group:5,subgroup:59,version:.6,shortCodes:["cyclone"]},{label:"rainbow",hexcode:"1F308",tags:["gay","genderqueer","glbt","glbtq","lesbian","lgbt","lgbtq","lgbtqia","nature","pride","queer","rain","trans","transgender","weather"],emoji:"🌈",text:"",type:1,order:4215,group:5,subgroup:59,version:.6,shortCodes:["rainbow"]},{label:"closed umbrella",hexcode:"1F302",tags:["closed","clothing","rain","umbrella"],emoji:"🌂",text:"",type:1,order:4216,group:5,subgroup:59,version:.6,shortCodes:["closed_umbrella"]},{label:"umbrella",hexcode:"2602",tags:["clothing","rain"],emoji:"☂️",text:"☂︎",type:0,order:4218,group:5,subgroup:59,version:.7,shortCodes:["umbrella"]},{label:"umbrella with rain drops",hexcode:"2614",tags:["clothing","drop","drops","rain","umbrella","weather"],emoji:"☔️",text:"☔︎",type:1,order:4219,group:5,subgroup:59,version:.6,shortCodes:["umbrella_with_rain"]},{label:"umbrella on ground",hexcode:"26F1",tags:["ground","rain","sun","umbrella"],emoji:"⛱️",text:"⛱︎",type:0,order:4221,group:5,subgroup:59,version:.7,shortCodes:["beach_umbrella","umbrella_on_ground"]},{label:"high voltage",hexcode:"26A1",tags:["danger","electric","electricity","high","lightning","nature","thunder","thunderbolt","voltage","zap"],emoji:"⚡️",text:"⚡︎",type:1,order:4222,group:5,subgroup:59,version:.6,shortCodes:["high_voltage","zap"]},{label:"snowflake",hexcode:"2744",tags:["cold","snow","weather"],emoji:"❄️",text:"❄︎",type:0,order:4224,group:5,subgroup:59,version:.6,shortCodes:["snowflake"]},{label:"snowman",hexcode:"2603",tags:["cold","man","snow"],emoji:"☃️",text:"☃︎",type:0,order:4226,group:5,subgroup:59,version:.7,shortCodes:["snowman2"]},{label:"snowman without snow",hexcode:"26C4",tags:["cold","man","snow","snowman"],emoji:"⛄️",text:"⛄︎",type:1,order:4227,group:5,subgroup:59,version:.6,shortCodes:["snowman"]},{label:"comet",hexcode:"2604",tags:["space"],emoji:"☄️",text:"☄︎",type:0,order:4229,group:5,subgroup:59,version:1,shortCodes:["comet"]},{label:"fire",hexcode:"1F525",tags:["af","burn","flame","hot","lit","litaf","tool"],emoji:"🔥",text:"",type:1,order:4230,group:5,subgroup:59,version:.6,shortCodes:["fire"]},{label:"droplet",hexcode:"1F4A7",tags:["cold","comic","drop","nature","sad","sweat","tear","water","weather"],emoji:"💧",text:"",type:1,order:4231,group:5,subgroup:59,version:.6,shortCodes:["droplet"]},{label:"water wave",hexcode:"1F30A",tags:["nature","ocean","surf","surfer","surfing","water","wave"],emoji:"🌊",text:"",type:1,order:4232,group:5,subgroup:59,version:.6,shortCodes:["ocean","water_wave"]},{label:"jack-o-lantern",hexcode:"1F383",tags:["celebration","halloween","jack","lantern","pumpkin"],emoji:"🎃",text:"",type:1,order:4233,group:6,subgroup:60,version:.6,shortCodes:["jack_o_lantern"]},{label:"Christmas tree",hexcode:"1F384",tags:["celebration","christmas","tree"],emoji:"🎄",text:"",type:1,order:4234,group:6,subgroup:60,version:.6,shortCodes:["christmas_tree"]},{label:"fireworks",hexcode:"1F386",tags:["boom","celebration","entertainment","yolo"],emoji:"🎆",text:"",type:1,order:4235,group:6,subgroup:60,version:.6,shortCodes:["fireworks"]},{label:"sparkler",hexcode:"1F387",tags:["boom","celebration","fireworks","sparkle"],emoji:"🎇",text:"",type:1,order:4236,group:6,subgroup:60,version:.6,shortCodes:["sparkler"]},{label:"firecracker",hexcode:"1F9E8",tags:["dynamite","explosive","fire","fireworks","light","pop","popping","spark"],emoji:"🧨",text:"",type:1,order:4237,group:6,subgroup:60,version:11,shortCodes:["firecracker"]},{label:"sparkles",hexcode:"2728",tags:["*","magic","sparkle","star"],emoji:"✨️",text:"✨︎",type:1,order:4238,group:6,subgroup:60,version:.6,shortCodes:["sparkles"]},{label:"balloon",hexcode:"1F388",tags:["birthday","celebrate","celebration"],emoji:"🎈",text:"",type:1,order:4239,group:6,subgroup:60,version:.6,shortCodes:["balloon"]},{label:"party popper",hexcode:"1F389",tags:["awesome","birthday","celebrate","celebration","excited","hooray","party","popper","tada","woohoo"],emoji:"🎉",text:"",type:1,order:4240,group:6,subgroup:60,version:.6,shortCodes:["party","party_popper","tada"]},{label:"confetti ball",hexcode:"1F38A",tags:["ball","celebrate","celebration","confetti","party","woohoo"],emoji:"🎊",text:"",type:1,order:4241,group:6,subgroup:60,version:.6,shortCodes:["confetti_ball"]},{label:"tanabata tree",hexcode:"1F38B",tags:["banner","celebration","japanese","tanabata","tree"],emoji:"🎋",text:"",type:1,order:4242,group:6,subgroup:60,version:.6,shortCodes:["tanabata_tree"]},{label:"pine decoration",hexcode:"1F38D",tags:["bamboo","celebration","decoration","japanese","pine","plant"],emoji:"🎍",text:"",type:1,order:4243,group:6,subgroup:60,version:.6,shortCodes:["bamboo"]},{label:"Japanese dolls",hexcode:"1F38E",tags:["celebration","doll","dolls","festival","japanese"],emoji:"🎎",text:"",type:1,order:4244,group:6,subgroup:60,version:.6,shortCodes:["dolls"]},{label:"carp streamer",hexcode:"1F38F",tags:["carp","celebration","streamer"],emoji:"🎏",text:"",type:1,order:4245,group:6,subgroup:60,version:.6,shortCodes:["carp_streamer","flags"]},{label:"wind chime",hexcode:"1F390",tags:["bell","celebration","chime","wind"],emoji:"🎐",text:"",type:1,order:4246,group:6,subgroup:60,version:.6,shortCodes:["wind_chime"]},{label:"moon viewing ceremony",hexcode:"1F391",tags:["celebration","ceremony","moon","viewing"],emoji:"🎑",text:"",type:1,order:4247,group:6,subgroup:60,version:.6,shortCodes:["moon_ceremony","rice_scene"]},{label:"red envelope",hexcode:"1F9E7",tags:["envelope","gift","good","hóngbāo","lai","luck","money","red","see"],emoji:"🧧",text:"",type:1,order:4248,group:6,subgroup:60,version:11,shortCodes:["red_envelope"]},{label:"ribbon",hexcode:"1F380",tags:["celebration"],emoji:"🎀",text:"",type:1,order:4249,group:6,subgroup:60,version:.6,shortCodes:["ribbon"]},{label:"wrapped gift",hexcode:"1F381",tags:["birthday","bow","box","celebration","christmas","gift","present","surprise","wrapped"],emoji:"🎁",text:"",type:1,order:4250,group:6,subgroup:60,version:.6,shortCodes:["gift"]},{label:"reminder ribbon",hexcode:"1F397",tags:["celebration","reminder","ribbon"],emoji:"🎗️",text:"🎗︎",type:0,order:4252,group:6,subgroup:60,version:.7,shortCodes:["reminder_ribbon"]},{label:"admission tickets",hexcode:"1F39F",tags:["admission","ticket","tickets"],emoji:"🎟️",text:"🎟︎",type:0,order:4254,group:6,subgroup:60,version:.7,shortCodes:["admission_tickets","tickets"]},{label:"ticket",hexcode:"1F3AB",tags:["admission","stub"],emoji:"🎫",text:"",type:1,order:4255,group:6,subgroup:60,version:.6,shortCodes:["ticket"]},{label:"military medal",hexcode:"1F396",tags:["award","celebration","medal","military"],emoji:"🎖️",text:"🎖︎",type:0,order:4257,group:6,subgroup:61,version:.7,shortCodes:["military_medal"]},{label:"trophy",hexcode:"1F3C6",tags:["champion","champs","prize","slay","sport","victory","win","winning"],emoji:"🏆️",text:"🏆︎",type:1,order:4258,group:6,subgroup:61,version:.6,shortCodes:["trophy"]},{label:"sports medal",hexcode:"1F3C5",tags:["award","gold","medal","sports","winner"],emoji:"🏅",text:"",type:1,order:4259,group:6,subgroup:61,version:1,shortCodes:["sports_medal"]},{label:"1st place medal",hexcode:"1F947",tags:["1st","first","gold","medal","place"],emoji:"🥇",text:"",type:1,order:4260,group:6,subgroup:61,version:3,shortCodes:["1st","first_place_medal"]},{label:"2nd place medal",hexcode:"1F948",tags:["2nd","medal","place","second","silver"],emoji:"🥈",text:"",type:1,order:4261,group:6,subgroup:61,version:3,shortCodes:["2nd","second_place_medal"]},{label:"3rd place medal",hexcode:"1F949",tags:["3rd","bronze","medal","place","third"],emoji:"🥉",text:"",type:1,order:4262,group:6,subgroup:61,version:3,shortCodes:["3rd","third_place_medal"]},{label:"soccer ball",hexcode:"26BD",tags:["ball","football","futbol","soccer","sport"],emoji:"⚽️",text:"⚽︎",type:1,order:4263,group:6,subgroup:62,version:.6,shortCodes:["soccer"]},{label:"baseball",hexcode:"26BE",tags:["ball","sport"],emoji:"⚾️",text:"⚾︎",type:1,order:4264,group:6,subgroup:62,version:.6,shortCodes:["baseball"]},{label:"softball",hexcode:"1F94E",tags:["ball","glove","sports","underarm"],emoji:"🥎",text:"",type:1,order:4265,group:6,subgroup:62,version:11,shortCodes:["softball"]},{label:"basketball",hexcode:"1F3C0",tags:["ball","hoop","sport"],emoji:"🏀",text:"",type:1,order:4266,group:6,subgroup:62,version:.6,shortCodes:["basketball"]},{label:"volleyball",hexcode:"1F3D0",tags:["ball","game"],emoji:"🏐",text:"",type:1,order:4267,group:6,subgroup:62,version:1,shortCodes:["volleyball"]},{label:"american football",hexcode:"1F3C8",tags:["american","ball","bowl","football","sport","super"],emoji:"🏈",text:"",type:1,order:4268,group:6,subgroup:62,version:.6,shortCodes:["football"]},{label:"rugby football",hexcode:"1F3C9",tags:["ball","football","rugby","sport"],emoji:"🏉",text:"",type:1,order:4269,group:6,subgroup:62,version:1,shortCodes:["rugby_football"]},{label:"tennis",hexcode:"1F3BE",tags:["ball","racquet","sport"],emoji:"🎾",text:"",type:1,order:4270,group:6,subgroup:62,version:.6,shortCodes:["tennis"]},{label:"flying disc",hexcode:"1F94F",tags:["disc","flying","ultimate"],emoji:"🥏",text:"",type:1,order:4271,group:6,subgroup:62,version:11,shortCodes:["flying_disc"]},{label:"bowling",hexcode:"1F3B3",tags:["ball","game","sport","strike"],emoji:"🎳",text:"",type:1,order:4272,group:6,subgroup:62,version:.6,shortCodes:["bowling"]},{label:"cricket game",hexcode:"1F3CF",tags:["ball","bat","cricket","game"],emoji:"🏏",text:"",type:1,order:4273,group:6,subgroup:62,version:1,shortCodes:["cricket_game"]},{label:"field hockey",hexcode:"1F3D1",tags:["ball","field","game","hockey","stick"],emoji:"🏑",text:"",type:1,order:4274,group:6,subgroup:62,version:1,shortCodes:["field_hockey"]},{label:"ice hockey",hexcode:"1F3D2",tags:["game","hockey","ice","puck","stick"],emoji:"🏒",text:"",type:1,order:4275,group:6,subgroup:62,version:1,shortCodes:["hockey"]},{label:"lacrosse",hexcode:"1F94D",tags:["ball","goal","sports","stick"],emoji:"🥍",text:"",type:1,order:4276,group:6,subgroup:62,version:11,shortCodes:["lacrosse"]},{label:"ping pong",hexcode:"1F3D3",tags:["ball","bat","game","paddle","ping","pingpong","pong","table","tennis"],emoji:"🏓",text:"",type:1,order:4277,group:6,subgroup:62,version:1,shortCodes:["ping_pong"]},{label:"badminton",hexcode:"1F3F8",tags:["birdie","game","racquet","shuttlecock"],emoji:"🏸",text:"",type:1,order:4278,group:6,subgroup:62,version:1,shortCodes:["badminton"]},{label:"boxing glove",hexcode:"1F94A",tags:["boxing","glove"],emoji:"🥊",text:"",type:1,order:4279,group:6,subgroup:62,version:3,shortCodes:["boxing_glove"]},{label:"martial arts uniform",hexcode:"1F94B",tags:["arts","judo","karate","martial","taekwondo","uniform"],emoji:"🥋",text:"",type:1,order:4280,group:6,subgroup:62,version:3,shortCodes:["martial_arts_uniform"]},{label:"goal net",hexcode:"1F945",tags:["goal","net"],emoji:"🥅",text:"",type:1,order:4281,group:6,subgroup:62,version:3,shortCodes:["goal_net"]},{label:"flag in hole",hexcode:"26F3",tags:["flag","golf","hole","sport"],emoji:"⛳️",text:"⛳︎",type:1,order:4282,group:6,subgroup:62,version:.6,shortCodes:["golf"]},{label:"ice skate",hexcode:"26F8",tags:["ice","skate","skating"],emoji:"⛸️",text:"⛸︎",type:0,order:4284,group:6,subgroup:62,version:.7,shortCodes:["ice_skate"]},{label:"fishing pole",hexcode:"1F3A3",tags:["entertainment","fish","fishing","pole","sport"],emoji:"🎣",text:"",type:1,order:4285,group:6,subgroup:62,version:.6,shortCodes:["fishing_pole","fishing_pole_and_fish"]},{label:"diving mask",hexcode:"1F93F",tags:["diving","mask","scuba","snorkeling"],emoji:"🤿",text:"",type:1,order:4286,group:6,subgroup:62,version:12,shortCodes:["diving_mask"]},{label:"running shirt",hexcode:"1F3BD",tags:["athletics","running","sash","shirt"],emoji:"🎽",text:"",type:1,order:4287,group:6,subgroup:62,version:.6,shortCodes:["running_shirt","running_shirt_with_sash"]},{label:"skis",hexcode:"1F3BF",tags:["ski","snow","sport"],emoji:"🎿",text:"",type:1,order:4288,group:6,subgroup:62,version:.6,shortCodes:["ski"]},{label:"sled",hexcode:"1F6F7",tags:["luge","sledge","sleigh","snow","toboggan"],emoji:"🛷",text:"",type:1,order:4289,group:6,subgroup:62,version:5,shortCodes:["sled"]},{label:"curling stone",hexcode:"1F94C",tags:["curling","game","rock","stone"],emoji:"🥌",text:"",type:1,order:4290,group:6,subgroup:62,version:5,shortCodes:["curling_stone"]},{label:"bullseye",hexcode:"1F3AF",tags:["bull","dart","direct","entertainment","game","hit","target"],emoji:"🎯",text:"",type:1,order:4291,group:6,subgroup:63,version:.6,shortCodes:["bullseye","dart","direct_hit"]},{label:"yo-yo",hexcode:"1FA80",tags:["fluctuate","toy"],emoji:"🪀",text:"",type:1,order:4292,group:6,subgroup:63,version:12,shortCodes:["yo_yo"]},{label:"kite",hexcode:"1FA81",tags:["fly","soar"],emoji:"🪁",text:"",type:1,order:4293,group:6,subgroup:63,version:12,shortCodes:["kite"]},{label:"water pistol",hexcode:"1F52B",tags:["gun","handgun","pistol","revolver","tool","water","weapon"],emoji:"🔫",text:"",type:1,order:4294,group:6,subgroup:63,version:.6,shortCodes:["gun","pistol"]},{label:"pool 8 ball",hexcode:"1F3B1",tags:["8","8ball","ball","billiard","eight","game","pool"],emoji:"🎱",text:"",type:1,order:4295,group:6,subgroup:63,version:.6,shortCodes:["8ball","billiards"]},{label:"crystal ball",hexcode:"1F52E",tags:["ball","crystal","fairy","fairytale","fantasy","fortune","future","magic","tale","tool"],emoji:"🔮",text:"",type:1,order:4296,group:6,subgroup:63,version:.6,shortCodes:["crystal_ball"]},{label:"magic wand",hexcode:"1FA84",tags:["magic","magician","wand","witch","wizard"],emoji:"🪄",text:"",type:1,order:4297,group:6,subgroup:63,version:13,shortCodes:["magic_wand"]},{label:"video game",hexcode:"1F3AE",tags:["controller","entertainment","game","video"],emoji:"🎮️",text:"🎮︎",type:1,order:4298,group:6,subgroup:63,version:.6,shortCodes:["controller","video_game"]},{label:"joystick",hexcode:"1F579",tags:["game","video","videogame"],emoji:"🕹️",text:"🕹︎",type:0,order:4300,group:6,subgroup:63,version:.7,shortCodes:["joystick"]},{label:"slot machine",hexcode:"1F3B0",tags:["casino","gamble","gambling","game","machine","slot","slots"],emoji:"🎰",text:"",type:1,order:4301,group:6,subgroup:63,version:.6,shortCodes:["slot_machine"]},{label:"game die",hexcode:"1F3B2",tags:["dice","die","entertainment","game"],emoji:"🎲",text:"",type:1,order:4302,group:6,subgroup:63,version:.6,shortCodes:["game_die"]},{label:"puzzle piece",hexcode:"1F9E9",tags:["clue","interlocking","jigsaw","piece","puzzle"],emoji:"🧩",text:"",type:1,order:4303,group:6,subgroup:63,version:11,shortCodes:["jigsaw","puzzle_piece"]},{label:"teddy bear",hexcode:"1F9F8",tags:["bear","plaything","plush","stuffed","teddy","toy"],emoji:"🧸",text:"",type:1,order:4304,group:6,subgroup:63,version:11,shortCodes:["teddy_bear"]},{label:"piñata",hexcode:"1FA85",tags:["candy","celebrate","celebration","cinco","de","festive","mayo","party","pinada","pinata"],emoji:"🪅",text:"",type:1,order:4305,group:6,subgroup:63,version:13,shortCodes:["pinata"]},{label:"mirror ball",hexcode:"1FAA9",tags:["ball","dance","disco","glitter","mirror","party"],emoji:"🪩",text:"",type:1,order:4306,group:6,subgroup:63,version:14,shortCodes:["disco","disco_ball","mirror_ball"]},{label:"nesting dolls",hexcode:"1FA86",tags:["babooshka","baboushka","babushka","doll","dolls","matryoshka","nesting","russia"],emoji:"🪆",text:"",type:1,order:4307,group:6,subgroup:63,version:13,shortCodes:["nesting_dolls"]},{label:"spade suit",hexcode:"2660",tags:["card","game","spade","suit"],emoji:"♠️",text:"♠︎",type:0,order:4309,group:6,subgroup:63,version:.6,shortCodes:["spades"]},{label:"heart suit",hexcode:"2665",tags:["card","emotion","game","heart","hearts","suit"],emoji:"♥️",text:"♥︎",type:0,order:4311,group:6,subgroup:63,version:.6,shortCodes:["hearts"]},{label:"diamond suit",hexcode:"2666",tags:["card","diamond","game","suit"],emoji:"♦️",text:"♦︎",type:0,order:4313,group:6,subgroup:63,version:.6,shortCodes:["diamonds"]},{label:"club suit",hexcode:"2663",tags:["card","club","clubs","game","suit"],emoji:"♣️",text:"♣︎",type:0,order:4315,group:6,subgroup:63,version:.6,shortCodes:["clubs"]},{label:"chess pawn",hexcode:"265F",tags:["chess","dupe","expendable","pawn"],emoji:"♟️",text:"♟︎",type:0,order:4317,group:6,subgroup:63,version:11,shortCodes:["chess_pawn"]},{label:"joker",hexcode:"1F0CF",tags:["card","game","wildcard"],emoji:"🃏",text:"",type:1,order:4318,group:6,subgroup:63,version:.6,shortCodes:["black_joker"]},{label:"mahjong red dragon",hexcode:"1F004",tags:["dragon","game","mahjong","red"],emoji:"🀄️",text:"🀄︎",type:1,order:4319,group:6,subgroup:63,version:.6,shortCodes:["mahjong"]},{label:"flower playing cards",hexcode:"1F3B4",tags:["card","cards","flower","game","japanese","playing"],emoji:"🎴",text:"",type:1,order:4320,group:6,subgroup:63,version:.6,shortCodes:["flower_playing_cards"]},{label:"performing arts",hexcode:"1F3AD",tags:["actor","actress","art","arts","entertainment","mask","performing","theater","theatre","thespian"],emoji:"🎭️",text:"🎭︎",type:1,order:4321,group:6,subgroup:64,version:.6,shortCodes:["performing_arts"]},{label:"framed picture",hexcode:"1F5BC",tags:["art","frame","framed","museum","painting","picture"],emoji:"🖼️",text:"🖼︎",type:0,order:4323,group:6,subgroup:64,version:.7,shortCodes:["frame_with_picture","framed_picture"]},{label:"artist palette",hexcode:"1F3A8",tags:["art","artist","artsy","arty","colorful","creative","entertainment","museum","painter","painting","palette"],emoji:"🎨",text:"",type:1,order:4324,group:6,subgroup:64,version:.6,shortCodes:["art","palette"]},{label:"thread",hexcode:"1F9F5",tags:["needle","sewing","spool","string"],emoji:"🧵",text:"",type:1,order:4325,group:6,subgroup:64,version:11,shortCodes:["thread"]},{label:"sewing needle",hexcode:"1FAA1",tags:["embroidery","needle","sew","sewing","stitches","sutures","tailoring","thread"],emoji:"🪡",text:"",type:1,order:4326,group:6,subgroup:64,version:13,shortCodes:["sewing_needle"]},{label:"yarn",hexcode:"1F9F6",tags:["ball","crochet","knit"],emoji:"🧶",text:"",type:1,order:4327,group:6,subgroup:64,version:11,shortCodes:["yarn"]},{label:"knot",hexcode:"1FAA2",tags:["cord","rope","tangled","tie","twine","twist"],emoji:"🪢",text:"",type:1,order:4328,group:6,subgroup:64,version:13,shortCodes:["knot"]},{label:"glasses",hexcode:"1F453",tags:["clothing","eye","eyeglasses","eyewear"],emoji:"👓️",text:"👓︎",type:1,order:4329,group:7,subgroup:65,version:.6,shortCodes:["eyeglasses","glasses"]},{label:"sunglasses",hexcode:"1F576",tags:["dark","eye","eyewear","glasses"],emoji:"🕶️",text:"🕶︎",type:0,order:4331,group:7,subgroup:65,version:.7,shortCodes:["sunglasses"]},{label:"goggles",hexcode:"1F97D",tags:["dive","eye","protection","scuba","swimming","welding"],emoji:"🥽",text:"",type:1,order:4332,group:7,subgroup:65,version:11,shortCodes:["goggles"]},{label:"lab coat",hexcode:"1F97C",tags:["clothes","coat","doctor","dr","experiment","jacket","lab","scientist","white"],emoji:"🥼",text:"",type:1,order:4333,group:7,subgroup:65,version:11,shortCodes:["lab_coat"]},{label:"safety vest",hexcode:"1F9BA",tags:["emergency","safety","vest"],emoji:"🦺",text:"",type:1,order:4334,group:7,subgroup:65,version:12,shortCodes:["safety_vest"]},{label:"necktie",hexcode:"1F454",tags:["clothing","employed","serious","shirt","tie"],emoji:"👔",text:"",type:1,order:4335,group:7,subgroup:65,version:.6,shortCodes:["necktie"]},{label:"t-shirt",hexcode:"1F455",tags:["blue","casual","clothes","clothing","collar","dressed","shirt","shopping","tshirt","weekend"],emoji:"👕",text:"",type:1,order:4336,group:7,subgroup:65,version:.6,shortCodes:["shirt"]},{label:"jeans",hexcode:"1F456",tags:["blue","casual","clothes","clothing","denim","dressed","pants","shopping","trousers","weekend"],emoji:"👖",text:"",type:1,order:4337,group:7,subgroup:65,version:.6,shortCodes:["jeans"]},{label:"scarf",hexcode:"1F9E3",tags:["bundle","cold","neck","up"],emoji:"🧣",text:"",type:1,order:4338,group:7,subgroup:65,version:5,shortCodes:["scarf"]},{label:"gloves",hexcode:"1F9E4",tags:["hand"],emoji:"🧤",text:"",type:1,order:4339,group:7,subgroup:65,version:5,shortCodes:["gloves"]},{label:"coat",hexcode:"1F9E5",tags:["brr","bundle","cold","jacket","up"],emoji:"🧥",text:"",type:1,order:4340,group:7,subgroup:65,version:5,shortCodes:["coat"]},{label:"socks",hexcode:"1F9E6",tags:["stocking"],emoji:"🧦",text:"",type:1,order:4341,group:7,subgroup:65,version:5,shortCodes:["socks"]},{label:"dress",hexcode:"1F457",tags:["clothes","clothing","dressed","fancy","shopping"],emoji:"👗",text:"",type:1,order:4342,group:7,subgroup:65,version:.6,shortCodes:["dress"]},{label:"kimono",hexcode:"1F458",tags:["clothing","comfortable"],emoji:"👘",text:"",type:1,order:4343,group:7,subgroup:65,version:.6,shortCodes:["kimono"]},{label:"sari",hexcode:"1F97B",tags:["clothing","dress"],emoji:"🥻",text:"",type:1,order:4344,group:7,subgroup:65,version:12,shortCodes:["sari"]},{label:"one-piece swimsuit",hexcode:"1FA71",tags:["bathing","one-piece","suit","swimsuit"],emoji:"🩱",text:"",type:1,order:4345,group:7,subgroup:65,version:12,shortCodes:["one_piece_swimsuit"]},{label:"briefs",hexcode:"1FA72",tags:["bathing","one-piece","suit","swimsuit","underwear"],emoji:"🩲",text:"",type:1,order:4346,group:7,subgroup:65,version:12,shortCodes:["briefs"]},{label:"shorts",hexcode:"1FA73",tags:["bathing","pants","suit","swimsuit","underwear"],emoji:"🩳",text:"",type:1,order:4347,group:7,subgroup:65,version:12,shortCodes:["shorts"]},{label:"bikini",hexcode:"1F459",tags:["bathing","beach","clothing","pool","suit","swim"],emoji:"👙",text:"",type:1,order:4348,group:7,subgroup:65,version:.6,shortCodes:["bikini"]},{label:"woman’s clothes",hexcode:"1F45A",tags:["blouse","clothes","clothing","collar","dress","dressed","lady","shirt","shopping","woman","woman’s"],emoji:"👚",text:"",type:1,order:4349,group:7,subgroup:65,version:.6,shortCodes:["womans_clothes"]},{label:"folding hand fan",hexcode:"1FAAD",tags:["clack","clap","cool","cooling","dance","fan","flirt","flutter","folding","hand","hot","shy"],emoji:"🪭",text:"",type:1,order:4350,group:7,subgroup:65,version:15,shortCodes:["folding_fan"]},{label:"purse",hexcode:"1F45B",tags:["clothes","clothing","coin","dress","fancy","handbag","shopping"],emoji:"👛",text:"",type:1,order:4351,group:7,subgroup:65,version:.6,shortCodes:["purse"]},{label:"handbag",hexcode:"1F45C",tags:["bag","clothes","clothing","dress","lady","purse","shopping"],emoji:"👜",text:"",type:1,order:4352,group:7,subgroup:65,version:.6,shortCodes:["handbag"]},{label:"clutch bag",hexcode:"1F45D",tags:["bag","clothes","clothing","clutch","dress","handbag","pouch","purse"],emoji:"👝",text:"",type:1,order:4353,group:7,subgroup:65,version:.6,shortCodes:["clutch_bag","pouch"]},{label:"shopping bags",hexcode:"1F6CD",tags:["bag","bags","hotel","shopping"],emoji:"🛍️",text:"🛍︎",type:0,order:4355,group:7,subgroup:65,version:.7,shortCodes:["shopping_bags"]},{label:"backpack",hexcode:"1F392",tags:["backpacking","bag","bookbag","education","rucksack","satchel","school"],emoji:"🎒",text:"",type:1,order:4356,group:7,subgroup:65,version:.6,shortCodes:["backpack","school_satchel"]},{label:"thong sandal",hexcode:"1FA74",tags:["beach","flip","flop","sandal","sandals","shoe","thong","thongs","zōri"],emoji:"🩴",text:"",type:1,order:4357,group:7,subgroup:65,version:13,shortCodes:["thong_sandal"]},{label:"man’s shoe",hexcode:"1F45E",tags:["brown","clothes","clothing","feet","foot","kick","man","man’s","shoe","shoes","shopping"],emoji:"👞",text:"",type:1,order:4358,group:7,subgroup:65,version:.6,shortCodes:["mans_shoe"]},{label:"running shoe",hexcode:"1F45F",tags:["athletic","clothes","clothing","fast","kick","running","shoe","shoes","shopping","sneaker","tennis"],emoji:"👟",text:"",type:1,order:4359,group:7,subgroup:65,version:.6,shortCodes:["athletic_shoe","sneaker"]},{label:"hiking boot",hexcode:"1F97E",tags:["backpacking","boot","brown","camping","hiking","outdoors","shoe"],emoji:"🥾",text:"",type:1,order:4360,group:7,subgroup:65,version:11,shortCodes:["hiking_boot"]},{label:"flat shoe",hexcode:"1F97F",tags:["ballet","comfy","flat","flats","shoe","slip-on","slipper"],emoji:"🥿",text:"",type:1,order:4361,group:7,subgroup:65,version:11,shortCodes:["flat_shoe","womans_flat_shoe"]},{label:"high-heeled shoe",hexcode:"1F460",tags:["clothes","clothing","dress","fashion","heel","heels","high-heeled","shoe","shoes","shopping","stiletto","woman"],emoji:"👠",text:"",type:1,order:4362,group:7,subgroup:65,version:.6,shortCodes:["high_heel"]},{label:"woman’s sandal",hexcode:"1F461",tags:["clothing","sandal","shoe","woman","woman’s"],emoji:"👡",text:"",type:1,order:4363,group:7,subgroup:65,version:.6,shortCodes:["sandal"]},{label:"ballet shoes",hexcode:"1FA70",tags:["ballet","dance","shoes"],emoji:"🩰",text:"",type:1,order:4364,group:7,subgroup:65,version:12,shortCodes:["ballet_shoes"]},{label:"woman’s boot",hexcode:"1F462",tags:["boot","clothes","clothing","dress","shoe","shoes","shopping","woman","woman’s"],emoji:"👢",text:"",type:1,order:4365,group:7,subgroup:65,version:.6,shortCodes:["boot"]},{label:"hair pick",hexcode:"1FAAE",tags:["afro","comb","groom","hair","pick"],emoji:"🪮",text:"",type:1,order:4366,group:7,subgroup:65,version:15,shortCodes:["hair_pick"]},{label:"crown",hexcode:"1F451",tags:["clothing","family","king","medieval","queen","royal","royalty","win"],emoji:"👑",text:"",type:1,order:4367,group:7,subgroup:65,version:.6,shortCodes:["crown"]},{label:"woman’s hat",hexcode:"1F452",tags:["clothes","clothing","garden","hat","hats","party","woman","woman’s"],emoji:"👒",text:"",type:1,order:4368,group:7,subgroup:65,version:.6,shortCodes:["womans_hat"]},{label:"top hat",hexcode:"1F3A9",tags:["clothes","clothing","fancy","formal","hat","magic","top","tophat"],emoji:"🎩",text:"",type:1,order:4369,group:7,subgroup:65,version:.6,shortCodes:["top_hat","tophat"]},{label:"graduation cap",hexcode:"1F393",tags:["cap","celebration","clothing","education","graduation","hat","scholar"],emoji:"🎓️",text:"🎓︎",type:1,order:4370,group:7,subgroup:65,version:.6,shortCodes:["graduation_cap","mortar_board"]},{label:"billed cap",hexcode:"1F9E2",tags:["baseball","bent","billed","cap","dad","hat"],emoji:"🧢",text:"",type:1,order:4371,group:7,subgroup:65,version:5,shortCodes:["billed_cap"]},{label:"military helmet",hexcode:"1FA96",tags:["army","helmet","military","soldier","war","warrior"],emoji:"🪖",text:"",type:1,order:4372,group:7,subgroup:65,version:13,shortCodes:["military_helmet"]},{label:"rescue worker’s helmet",hexcode:"26D1",tags:["aid","cross","face","hat","helmet","rescue","worker’s"],emoji:"⛑️",text:"⛑︎",type:0,order:4374,group:7,subgroup:65,version:.7,shortCodes:["helmet_with_cross","rescue_worker_helmet"]},{label:"prayer beads",hexcode:"1F4FF",tags:["beads","clothing","necklace","prayer","religion"],emoji:"📿",text:"",type:1,order:4375,group:7,subgroup:65,version:1,shortCodes:["prayer_beads"]},{label:"lipstick",hexcode:"1F484",tags:["cosmetics","date","makeup"],emoji:"💄",text:"",type:1,order:4376,group:7,subgroup:65,version:.6,shortCodes:["lipstick"]},{label:"ring",hexcode:"1F48D",tags:["diamond","engaged","engagement","married","romance","shiny","sparkling","wedding"],emoji:"💍",text:"",type:1,order:4377,group:7,subgroup:65,version:.6,shortCodes:["ring"]},{label:"gem stone",hexcode:"1F48E",tags:["diamond","engagement","gem","jewel","money","romance","stone","wedding"],emoji:"💎",text:"",type:1,order:4378,group:7,subgroup:65,version:.6,shortCodes:["gem"]},{label:"muted speaker",hexcode:"1F507",tags:["mute","muted","quiet","silent","sound","speaker"],emoji:"🔇",text:"",type:1,order:4379,group:7,subgroup:66,version:1,shortCodes:["mute","no_sound"]},{label:"speaker low volume",hexcode:"1F508",tags:["low","soft","sound","speaker","volume"],emoji:"🔈️",text:"🔈︎",type:1,order:4380,group:7,subgroup:66,version:.7,shortCodes:["low_volume","quiet_sound","speaker"]},{label:"speaker medium volume",hexcode:"1F509",tags:["medium","sound","speaker","volume"],emoji:"🔉",text:"",type:1,order:4381,group:7,subgroup:66,version:1,shortCodes:["medium_volumne","sound"]},{label:"speaker high volume",hexcode:"1F50A",tags:["high","loud","music","sound","speaker","volume"],emoji:"🔊",text:"",type:1,order:4382,group:7,subgroup:66,version:.6,shortCodes:["high_volume","loud_sound"]},{label:"loudspeaker",hexcode:"1F4E2",tags:["address","communication","loud","public","sound"],emoji:"📢",text:"",type:1,order:4383,group:7,subgroup:66,version:.6,shortCodes:["loudspeaker"]},{label:"megaphone",hexcode:"1F4E3",tags:["cheering","sound"],emoji:"📣",text:"",type:1,order:4384,group:7,subgroup:66,version:.6,shortCodes:["mega","megaphone"]},{label:"postal horn",hexcode:"1F4EF",tags:["horn","post","postal"],emoji:"📯",text:"",type:1,order:4385,group:7,subgroup:66,version:1,shortCodes:["postal_horn"]},{label:"bell",hexcode:"1F514",tags:["break","church","sound"],emoji:"🔔",text:"",type:1,order:4386,group:7,subgroup:66,version:.6,shortCodes:["bell"]},{label:"bell with slash",hexcode:"1F515",tags:["bell","forbidden","mute","no","not","prohibited","quiet","silent","slash","sound"],emoji:"🔕",text:"",type:1,order:4387,group:7,subgroup:66,version:1,shortCodes:["no_bell"]},{label:"musical score",hexcode:"1F3BC",tags:["music","musical","note","score"],emoji:"🎼",text:"",type:1,order:4388,group:7,subgroup:67,version:.6,shortCodes:["musical_score"]},{label:"musical note",hexcode:"1F3B5",tags:["music","musical","note","sound"],emoji:"🎵",text:"",type:1,order:4389,group:7,subgroup:67,version:.6,shortCodes:["musical_note"]},{label:"musical notes",hexcode:"1F3B6",tags:["music","musical","note","notes","sound"],emoji:"🎶",text:"",type:1,order:4390,group:7,subgroup:67,version:.6,shortCodes:["musical_notes","notes"]},{label:"studio microphone",hexcode:"1F399",tags:["mic","microphone","music","studio"],emoji:"🎙️",text:"🎙︎",type:0,order:4392,group:7,subgroup:67,version:.7,shortCodes:["studio_microphone"]},{label:"level slider",hexcode:"1F39A",tags:["level","music","slider"],emoji:"🎚️",text:"🎚︎",type:0,order:4394,group:7,subgroup:67,version:.7,shortCodes:["level_slider"]},{label:"control knobs",hexcode:"1F39B",tags:["control","knobs","music"],emoji:"🎛️",text:"🎛︎",type:0,order:4396,group:7,subgroup:67,version:.7,shortCodes:["control_knobs"]},{label:"microphone",hexcode:"1F3A4",tags:["karaoke","mic","music","sing","sound"],emoji:"🎤",text:"",type:1,order:4397,group:7,subgroup:67,version:.6,shortCodes:["microphone"]},{label:"headphone",hexcode:"1F3A7",tags:["earbud","sound"],emoji:"🎧️",text:"🎧︎",type:1,order:4398,group:7,subgroup:67,version:.6,shortCodes:["headphones"]},{label:"radio",hexcode:"1F4FB",tags:["entertainment","tbt","video"],emoji:"📻️",text:"📻︎",type:1,order:4399,group:7,subgroup:67,version:.6,shortCodes:["radio"]},{label:"saxophone",hexcode:"1F3B7",tags:["instrument","music","sax"],emoji:"🎷",text:"",type:1,order:4400,group:7,subgroup:68,version:.6,shortCodes:["saxophone"]},{label:"trumpet",hexcode:"1F3BA",tags:["instrument","music"],emoji:"🎺",text:"",type:1,order:4401,group:7,subgroup:68,version:.6,shortCodes:["trumpet"]},{label:"accordion",hexcode:"1FA97",tags:["box","concertina","instrument","music","squeeze","squeezebox"],emoji:"🪗",text:"",type:1,order:4403,group:7,subgroup:68,version:13,shortCodes:["accordion"]},{label:"guitar",hexcode:"1F3B8",tags:["instrument","music","strat"],emoji:"🎸",text:"",type:1,order:4404,group:7,subgroup:68,version:.6,shortCodes:["guitar"]},{label:"musical keyboard",hexcode:"1F3B9",tags:["instrument","keyboard","music","musical","piano"],emoji:"🎹",text:"",type:1,order:4405,group:7,subgroup:68,version:.6,shortCodes:["musical_keyboard"]},{label:"violin",hexcode:"1F3BB",tags:["instrument","music"],emoji:"🎻",text:"",type:1,order:4406,group:7,subgroup:68,version:.6,shortCodes:["violin"]},{label:"banjo",hexcode:"1FA95",tags:["music","stringed"],emoji:"🪕",text:"",type:1,order:4407,group:7,subgroup:68,version:12,shortCodes:["banjo"]},{label:"drum",hexcode:"1F941",tags:["drumsticks","music"],emoji:"🥁",text:"",type:1,order:4408,group:7,subgroup:68,version:3,shortCodes:["drum"]},{label:"long drum",hexcode:"1FA98",tags:["beat","conga","drum","instrument","long","rhythm"],emoji:"🪘",text:"",type:1,order:4409,group:7,subgroup:68,version:13,shortCodes:["long_drum"]},{label:"maracas",hexcode:"1FA87",tags:["cha","dance","instrument","music","party","percussion","rattle","shake","shaker"],emoji:"🪇",text:"",type:1,order:4410,group:7,subgroup:68,version:15,shortCodes:["maracas"]},{label:"flute",hexcode:"1FA88",tags:["band","fife","flautist","instrument","marching","music","orchestra","piccolo","pipe","recorder","woodwind"],emoji:"🪈",text:"",type:1,order:4411,group:7,subgroup:68,version:15,shortCodes:["flute"]},{label:"harp",hexcode:"1FA89",tags:["cupid","instrument","love","music","orchestra"],emoji:"🪉",text:"",type:1,order:4412,group:7,subgroup:68,version:16,shortCodes:["harp"]},{label:"mobile phone",hexcode:"1F4F1",tags:["cell","communication","mobile","phone","telephone"],emoji:"📱",text:"",type:1,order:4413,group:7,subgroup:69,version:.6,shortCodes:["android","iphone","mobile_phone"]},{label:"mobile phone with arrow",hexcode:"1F4F2",tags:["arrow","build","call","cell","communication","mobile","phone","receive","telephone"],emoji:"📲",text:"",type:1,order:4414,group:7,subgroup:69,version:.6,shortCodes:["calling","mobile_phone_arrow"]},{label:"telephone",hexcode:"260E",tags:["phone"],emoji:"☎️",text:"☎︎",type:0,order:4416,group:7,subgroup:69,version:.6,shortCodes:["telephone"]},{label:"telephone receiver",hexcode:"1F4DE",tags:["communication","phone","receiver","telephone","voip"],emoji:"📞",text:"",type:1,order:4417,group:7,subgroup:69,version:.6,shortCodes:["telephone_receiver"]},{label:"pager",hexcode:"1F4DF",tags:["communication"],emoji:"📟️",text:"📟︎",type:1,order:4418,group:7,subgroup:69,version:.6,shortCodes:["pager"]},{label:"fax machine",hexcode:"1F4E0",tags:["communication","fax","machine"],emoji:"📠",text:"",type:1,order:4419,group:7,subgroup:69,version:.6,shortCodes:["fax","fax_machine"]},{label:"battery",hexcode:"1F50B",tags:["battery"],emoji:"🔋",text:"",type:1,order:4420,group:7,subgroup:70,version:.6,shortCodes:["battery"]},{label:"low battery",hexcode:"1FAAB",tags:["battery","drained","electronic","energy","low","power"],emoji:"🪫",text:"",type:1,order:4421,group:7,subgroup:70,version:14,shortCodes:["low_battery"]},{label:"electric plug",hexcode:"1F50C",tags:["electric","electricity","plug"],emoji:"🔌",text:"",type:1,order:4422,group:7,subgroup:70,version:.6,shortCodes:["electric_plug"]},{label:"laptop",hexcode:"1F4BB",tags:["computer","office","pc","personal"],emoji:"💻️",text:"💻︎",type:1,order:4423,group:7,subgroup:70,version:.6,shortCodes:["laptop"]},{label:"desktop computer",hexcode:"1F5A5",tags:["computer","desktop","monitor"],emoji:"🖥️",text:"🖥︎",type:0,order:4425,group:7,subgroup:70,version:.7,shortCodes:["computer","desktop_computer"]},{label:"printer",hexcode:"1F5A8",tags:["computer"],emoji:"🖨️",text:"🖨︎",type:0,order:4427,group:7,subgroup:70,version:.7,shortCodes:["printer"]},{label:"keyboard",hexcode:"2328",tags:["computer"],emoji:"⌨️",text:"⌨︎",type:0,order:4429,group:7,subgroup:70,version:1,shortCodes:["keyboard"]},{label:"computer mouse",hexcode:"1F5B1",tags:["computer","mouse"],emoji:"🖱️",text:"🖱︎",type:0,order:4431,group:7,subgroup:70,version:.7,shortCodes:["computer_mouse"]},{label:"trackball",hexcode:"1F5B2",tags:["computer"],emoji:"🖲️",text:"🖲︎",type:0,order:4433,group:7,subgroup:70,version:.7,shortCodes:["trackball"]},{label:"computer disk",hexcode:"1F4BD",tags:["computer","disk","minidisk","optical"],emoji:"💽",text:"",type:1,order:4434,group:7,subgroup:70,version:.6,shortCodes:["computer_disk","minidisc"]},{label:"floppy disk",hexcode:"1F4BE",tags:["computer","disk","floppy"],emoji:"💾",text:"",type:1,order:4435,group:7,subgroup:70,version:.6,shortCodes:["floppy_disk"]},{label:"optical disk",hexcode:"1F4BF",tags:["blu-ray","cd","computer","disk","dvd","optical"],emoji:"💿️",text:"💿︎",type:1,order:4436,group:7,subgroup:70,version:.6,shortCodes:["cd","optical_disk"]},{label:"dvd",hexcode:"1F4C0",tags:["blu-ray","cd","computer","disk","optical"],emoji:"📀",text:"",type:1,order:4437,group:7,subgroup:70,version:.6,shortCodes:["dvd"]},{label:"abacus",hexcode:"1F9EE",tags:["calculation","calculator"],emoji:"🧮",text:"",type:1,order:4438,group:7,subgroup:70,version:11,shortCodes:["abacus"]},{label:"movie camera",hexcode:"1F3A5",tags:["bollywood","camera","cinema","film","hollywood","movie","record"],emoji:"🎥",text:"",type:1,order:4439,group:7,subgroup:71,version:.6,shortCodes:["movie_camera"]},{label:"film frames",hexcode:"1F39E",tags:["cinema","film","frames","movie"],emoji:"🎞️",text:"🎞︎",type:0,order:4441,group:7,subgroup:71,version:.7,shortCodes:["film_frames"]},{label:"film projector",hexcode:"1F4FD",tags:["cinema","film","movie","projector","video"],emoji:"📽️",text:"📽︎",type:0,order:4443,group:7,subgroup:71,version:.7,shortCodes:["film_projector"]},{label:"clapper board",hexcode:"1F3AC",tags:["action","board","clapper","movie"],emoji:"🎬️",text:"🎬︎",type:1,order:4444,group:7,subgroup:71,version:.6,shortCodes:["clapper"]},{label:"television",hexcode:"1F4FA",tags:["tv","video"],emoji:"📺️",text:"📺︎",type:1,order:4445,group:7,subgroup:71,version:.6,shortCodes:["tv"]},{label:"camera",hexcode:"1F4F7",tags:["photo","selfie","snap","tbt","trip","video"],emoji:"📷️",text:"📷︎",type:1,order:4446,group:7,subgroup:71,version:.6,shortCodes:["camera"]},{label:"camera with flash",hexcode:"1F4F8",tags:["camera","flash","video"],emoji:"📸",text:"",type:1,order:4447,group:7,subgroup:71,version:1,shortCodes:["camera_with_flash"]},{label:"video camera",hexcode:"1F4F9",tags:["camcorder","camera","tbt","video"],emoji:"📹️",text:"📹︎",type:1,order:4448,group:7,subgroup:71,version:.6,shortCodes:["video_camera"]},{label:"videocassette",hexcode:"1F4FC",tags:["old","school","tape","vcr","vhs","video"],emoji:"📼",text:"",type:1,order:4449,group:7,subgroup:71,version:.6,shortCodes:["vhs","videocassette"]},{label:"magnifying glass tilted left",hexcode:"1F50D",tags:["glass","lab","left","left-pointing","magnifying","science","search","tilted","tool"],emoji:"🔍️",text:"🔍︎",type:1,order:4450,group:7,subgroup:71,version:.6,shortCodes:["mag"]},{label:"magnifying glass tilted right",hexcode:"1F50E",tags:["contact","glass","lab","magnifying","right","right-pointing","science","search","tilted","tool"],emoji:"🔎",text:"",type:1,order:4451,group:7,subgroup:71,version:.6,shortCodes:["mag_right"]},{label:"candle",hexcode:"1F56F",tags:["light"],emoji:"🕯️",text:"🕯︎",type:0,order:4453,group:7,subgroup:71,version:.7,shortCodes:["candle"]},{label:"light bulb",hexcode:"1F4A1",tags:["bulb","comic","electric","idea","light"],emoji:"💡",text:"",type:1,order:4454,group:7,subgroup:71,version:.6,shortCodes:["bulb","light_bulb"]},{label:"flashlight",hexcode:"1F526",tags:["electric","light","tool","torch"],emoji:"🔦",text:"",type:1,order:4455,group:7,subgroup:71,version:.6,shortCodes:["flashlight"]},{label:"red paper lantern",hexcode:"1F3EE",tags:["bar","lantern","light","paper","red","restaurant"],emoji:"🏮",text:"",type:1,order:4456,group:7,subgroup:71,version:.6,shortCodes:["izakaya_lantern","red_paper_lantern"]},{label:"diya lamp",hexcode:"1FA94",tags:["diya","lamp","light","oil"],emoji:"🪔",text:"",type:1,order:4457,group:7,subgroup:71,version:12,shortCodes:["diya_lamp"]},{label:"notebook with decorative cover",hexcode:"1F4D4",tags:["book","cover","decorated","decorative","education","notebook","school","writing"],emoji:"📔",text:"",type:1,order:4458,group:7,subgroup:72,version:.6,shortCodes:["notebook_with_decorative_cover"]},{label:"closed book",hexcode:"1F4D5",tags:["book","closed","education"],emoji:"📕",text:"",type:1,order:4459,group:7,subgroup:72,version:.6,shortCodes:["closed_book"]},{label:"open book",hexcode:"1F4D6",tags:["book","education","fantasy","knowledge","library","novels","open","reading"],emoji:"📖",text:"",type:1,order:4460,group:7,subgroup:72,version:.6,shortCodes:["book","open_book"]},{label:"green book",hexcode:"1F4D7",tags:["book","education","fantasy","green","library","reading"],emoji:"📗",text:"",type:1,order:4461,group:7,subgroup:72,version:.6,shortCodes:["green_book"]},{label:"blue book",hexcode:"1F4D8",tags:["blue","book","education","fantasy","library","reading"],emoji:"📘",text:"",type:1,order:4462,group:7,subgroup:72,version:.6,shortCodes:["blue_book"]},{label:"orange book",hexcode:"1F4D9",tags:["book","education","fantasy","library","orange","reading"],emoji:"📙",text:"",type:1,order:4463,group:7,subgroup:72,version:.6,shortCodes:["orange_book"]},{label:"books",hexcode:"1F4DA",tags:["book","education","fantasy","knowledge","library","novels","reading","school","study"],emoji:"📚️",text:"📚︎",type:1,order:4464,group:7,subgroup:72,version:.6,shortCodes:["books"]},{label:"notebook",hexcode:"1F4D3",tags:["notebook"],emoji:"📓",text:"",type:1,order:4465,group:7,subgroup:72,version:.6,shortCodes:["notebook"]},{label:"ledger",hexcode:"1F4D2",tags:["notebook"],emoji:"📒",text:"",type:1,order:4466,group:7,subgroup:72,version:.6,shortCodes:["ledger"]},{label:"page with curl",hexcode:"1F4C3",tags:["curl","document","page","paper"],emoji:"📃",text:"",type:1,order:4467,group:7,subgroup:72,version:.6,shortCodes:["page_with_curl"]},{label:"scroll",hexcode:"1F4DC",tags:["paper"],emoji:"📜",text:"",type:1,order:4468,group:7,subgroup:72,version:.6,shortCodes:["scroll"]},{label:"page facing up",hexcode:"1F4C4",tags:["document","facing","page","paper","up"],emoji:"📄",text:"",type:1,order:4469,group:7,subgroup:72,version:.6,shortCodes:["page_facing_up"]},{label:"newspaper",hexcode:"1F4F0",tags:["communication","news","paper"],emoji:"📰",text:"",type:1,order:4470,group:7,subgroup:72,version:.6,shortCodes:["newspaper"]},{label:"rolled-up newspaper",hexcode:"1F5DE",tags:["news","newspaper","paper","rolled","rolled-up"],emoji:"🗞️",text:"🗞︎",type:0,order:4472,group:7,subgroup:72,version:.7,shortCodes:["rolled_up_newspaper"]},{label:"bookmark tabs",hexcode:"1F4D1",tags:["bookmark","mark","marker","tabs"],emoji:"📑",text:"",type:1,order:4473,group:7,subgroup:72,version:.6,shortCodes:["bookmark_tabs"]},{label:"bookmark",hexcode:"1F516",tags:["mark"],emoji:"🔖",text:"",type:1,order:4474,group:7,subgroup:72,version:.6,shortCodes:["bookmark"]},{label:"label",hexcode:"1F3F7",tags:["tag"],emoji:"🏷️",text:"🏷︎",type:0,order:4476,group:7,subgroup:72,version:.7,shortCodes:["label"]},{label:"coin",hexcode:"1FA99",tags:["dollar","euro","gold","metal","money","rich","silver","treasure"],emoji:"🪙",text:"",type:1,order:4477,group:7,subgroup:73,version:13,shortCodes:["coin"]},{label:"money bag",hexcode:"1F4B0",tags:["bag","bank","bet","billion","cash","cost","dollar","gold","million","money","moneybag","paid","paying","pot","rich","win"],emoji:"💰️",text:"💰︎",type:1,order:4478,group:7,subgroup:73,version:.6,shortCodes:["moneybag"]},{label:"yen banknote",hexcode:"1F4B4",tags:["bank","banknote","bill","currency","money","note","yen"],emoji:"💴",text:"",type:1,order:4480,group:7,subgroup:73,version:.6,shortCodes:["yen"]},{label:"dollar banknote",hexcode:"1F4B5",tags:["bank","banknote","bill","currency","dollar","money","note"],emoji:"💵",text:"",type:1,order:4481,group:7,subgroup:73,version:.6,shortCodes:["dollar"]},{label:"euro banknote",hexcode:"1F4B6",tags:["100","bank","banknote","bill","currency","euro","money","note","rich"],emoji:"💶",text:"",type:1,order:4482,group:7,subgroup:73,version:1,shortCodes:["euro"]},{label:"pound banknote",hexcode:"1F4B7",tags:["bank","banknote","bill","billion","cash","currency","money","note","pound","pounds"],emoji:"💷",text:"",type:1,order:4483,group:7,subgroup:73,version:1,shortCodes:["pound"]},{label:"money with wings",hexcode:"1F4B8",tags:["bank","banknote","bill","billion","cash","dollar","fly","million","money","note","pay","wings"],emoji:"💸",text:"",type:1,order:4484,group:7,subgroup:73,version:.6,shortCodes:["money_with_wings"]},{label:"credit card",hexcode:"1F4B3",tags:["bank","card","cash","charge","credit","money","pay"],emoji:"💳️",text:"💳︎",type:1,order:4485,group:7,subgroup:73,version:.6,shortCodes:["credit_card"]},{label:"receipt",hexcode:"1F9FE",tags:["accounting","bookkeeping","evidence","invoice","proof"],emoji:"🧾",text:"",type:1,order:4486,group:7,subgroup:73,version:11,shortCodes:["receipt"]},{label:"chart increasing with yen",hexcode:"1F4B9",tags:["bank","chart","currency","graph","growth","increasing","market","money","rise","trend","upward","yen"],emoji:"💹",text:"",type:1,order:4487,group:7,subgroup:73,version:.6,shortCodes:["chart"]},{label:"envelope",hexcode:"2709",tags:["e-mail","email","letter"],emoji:"✉️",text:"✉︎",type:0,order:4489,group:7,subgroup:74,version:.6,shortCodes:["envelope"]},{label:"e-mail",hexcode:"1F4E7",tags:["email","letter","mail"],emoji:"📧",text:"",type:1,order:4490,group:7,subgroup:74,version:.6,shortCodes:["e-mail","email"]},{label:"incoming envelope",hexcode:"1F4E8",tags:["delivering","e-mail","email","envelope","incoming","letter","mail","receive","sent"],emoji:"📨",text:"",type:1,order:4491,group:7,subgroup:74,version:.6,shortCodes:["incoming_envelope"]},{label:"envelope with arrow",hexcode:"1F4E9",tags:["arrow","communication","down","e-mail","email","envelope","letter","mail","outgoing","send","sent"],emoji:"📩",text:"",type:1,order:4492,group:7,subgroup:74,version:.6,shortCodes:["envelope_with_arrow"]},{label:"outbox tray",hexcode:"1F4E4",tags:["box","email","letter","mail","outbox","sent","tray"],emoji:"📤️",text:"📤︎",type:1,order:4493,group:7,subgroup:74,version:.6,shortCodes:["outbox_tray"]},{label:"inbox tray",hexcode:"1F4E5",tags:["box","email","inbox","letter","mail","receive","tray","zero"],emoji:"📥️",text:"📥︎",type:1,order:4494,group:7,subgroup:74,version:.6,shortCodes:["inbox_tray"]},{label:"package",hexcode:"1F4E6",tags:["box","communication","delivery","parcel","shipping"],emoji:"📦️",text:"📦︎",type:1,order:4495,group:7,subgroup:74,version:.6,shortCodes:["package"]},{label:"closed mailbox with raised flag",hexcode:"1F4EB",tags:["closed","communication","flag","mail","mailbox","postbox","raised"],emoji:"📫️",text:"📫︎",type:1,order:4496,group:7,subgroup:74,version:.6,shortCodes:["mailbox"]},{label:"closed mailbox with lowered flag",hexcode:"1F4EA",tags:["closed","flag","lowered","mail","mailbox","postbox"],emoji:"📪️",text:"📪︎",type:1,order:4497,group:7,subgroup:74,version:.6,shortCodes:["mailbox_closed"]},{label:"open mailbox with raised flag",hexcode:"1F4EC",tags:["flag","mail","mailbox","open","postbox","raised"],emoji:"📬️",text:"📬︎",type:1,order:4498,group:7,subgroup:74,version:.7,shortCodes:["mailbox_with_mail"]},{label:"open mailbox with lowered flag",hexcode:"1F4ED",tags:["flag","lowered","mail","mailbox","open","postbox"],emoji:"📭️",text:"📭︎",type:1,order:4499,group:7,subgroup:74,version:.7,shortCodes:["mailbox_with_no_mail"]},{label:"postbox",hexcode:"1F4EE",tags:["mail","mailbox"],emoji:"📮",text:"",type:1,order:4500,group:7,subgroup:74,version:.6,shortCodes:["postbox"]},{label:"ballot box with ballot",hexcode:"1F5F3",tags:["ballot","box"],emoji:"🗳️",text:"🗳︎",type:0,order:4502,group:7,subgroup:74,version:.7,shortCodes:["ballot_box"]},{label:"pencil",hexcode:"270F",tags:["pencil"],emoji:"✏️",text:"✏︎",type:0,order:4504,group:7,subgroup:75,version:.6,shortCodes:["pencil"]},{label:"black nib",hexcode:"2712",tags:["black","nib","pen"],emoji:"✒️",text:"✒︎",type:0,order:4506,group:7,subgroup:75,version:.6,shortCodes:["black_nib"]},{label:"fountain pen",hexcode:"1F58B",tags:["fountain","pen"],emoji:"🖋️",text:"🖋︎",type:0,order:4508,group:7,subgroup:75,version:.7,shortCodes:["fountain_pen"]},{label:"pen",hexcode:"1F58A",tags:["ballpoint"],emoji:"🖊️",text:"🖊︎",type:0,order:4510,group:7,subgroup:75,version:.7,shortCodes:["pen"]},{label:"paintbrush",hexcode:"1F58C",tags:["painting"],emoji:"🖌️",text:"🖌︎",type:0,order:4512,group:7,subgroup:75,version:.7,shortCodes:["paintbrush"]},{label:"crayon",hexcode:"1F58D",tags:["crayon"],emoji:"🖍️",text:"🖍︎",type:0,order:4514,group:7,subgroup:75,version:.7,shortCodes:["crayon"]},{label:"memo",hexcode:"1F4DD",tags:["communication","media","notes","pencil"],emoji:"📝",text:"",type:1,order:4515,group:7,subgroup:75,version:.6,shortCodes:["memo"]},{label:"briefcase",hexcode:"1F4BC",tags:["office"],emoji:"💼",text:"",type:1,order:4516,group:7,subgroup:76,version:.6,shortCodes:["briefcase"]},{label:"file folder",hexcode:"1F4C1",tags:["file","folder"],emoji:"📁",text:"",type:1,order:4517,group:7,subgroup:76,version:.6,shortCodes:["file_folder"]},{label:"open file folder",hexcode:"1F4C2",tags:["file","folder","open"],emoji:"📂",text:"",type:1,order:4518,group:7,subgroup:76,version:.6,shortCodes:["open_file_folder"]},{label:"card index dividers",hexcode:"1F5C2",tags:["card","dividers","index"],emoji:"🗂️",text:"🗂︎",type:0,order:4520,group:7,subgroup:76,version:.7,shortCodes:["card_index_dividers"]},{label:"calendar",hexcode:"1F4C5",tags:["date"],emoji:"📅",text:"",type:1,order:4521,group:7,subgroup:76,version:.6,shortCodes:["date"]},{label:"tear-off calendar",hexcode:"1F4C6",tags:["calendar","tear-off"],emoji:"📆",text:"",type:1,order:4522,group:7,subgroup:76,version:.6,shortCodes:["calendar"]},{label:"spiral notepad",hexcode:"1F5D2",tags:["note","notepad","pad","spiral"],emoji:"🗒️",text:"🗒︎",type:0,order:4524,group:7,subgroup:76,version:.7,shortCodes:["notepad_spiral"]},{label:"spiral calendar",hexcode:"1F5D3",tags:["calendar","pad","spiral"],emoji:"🗓️",text:"🗓︎",type:0,order:4526,group:7,subgroup:76,version:.7,shortCodes:["calendar_spiral"]},{label:"card index",hexcode:"1F4C7",tags:["card","index","old","rolodex","school"],emoji:"📇",text:"",type:1,order:4527,group:7,subgroup:76,version:.6,shortCodes:["card_index"]},{label:"chart increasing",hexcode:"1F4C8",tags:["chart","data","graph","growth","increasing","right","trend","up","upward"],emoji:"📈",text:"",type:1,order:4528,group:7,subgroup:76,version:.6,shortCodes:["chart_increasing","chart_with_upwards_trend"]},{label:"chart decreasing",hexcode:"1F4C9",tags:["chart","data","decreasing","down","downward","graph","negative","trend"],emoji:"📉",text:"",type:1,order:4529,group:7,subgroup:76,version:.6,shortCodes:["chart_decreasing","chart_with_downwards_trend"]},{label:"bar chart",hexcode:"1F4CA",tags:["bar","chart","data","graph"],emoji:"📊",text:"",type:1,order:4530,group:7,subgroup:76,version:.6,shortCodes:["bar_chart"]},{label:"clipboard",hexcode:"1F4CB",tags:["do","list","notes"],emoji:"📋️",text:"📋︎",type:1,order:4531,group:7,subgroup:76,version:.6,shortCodes:["clipboard"]},{label:"pushpin",hexcode:"1F4CC",tags:["collage","pin"],emoji:"📌",text:"",type:1,order:4532,group:7,subgroup:76,version:.6,shortCodes:["pushpin"]},{label:"round pushpin",hexcode:"1F4CD",tags:["location","map","pin","pushpin","round"],emoji:"📍",text:"",type:1,order:4533,group:7,subgroup:76,version:.6,shortCodes:["round_pushpin"]},{label:"paperclip",hexcode:"1F4CE",tags:["paperclip"],emoji:"📎",text:"",type:1,order:4534,group:7,subgroup:76,version:.6,shortCodes:["paperclip"]},{label:"linked paperclips",hexcode:"1F587",tags:["link","linked","paperclip","paperclips"],emoji:"🖇️",text:"🖇︎",type:0,order:4536,group:7,subgroup:76,version:.7,shortCodes:["paperclips"]},{label:"straight ruler",hexcode:"1F4CF",tags:["angle","edge","math","ruler","straight","straightedge"],emoji:"📏",text:"",type:1,order:4537,group:7,subgroup:76,version:.6,shortCodes:["straight_ruler"]},{label:"triangular ruler",hexcode:"1F4D0",tags:["angle","math","rule","ruler","set","slide","triangle","triangular"],emoji:"📐",text:"",type:1,order:4538,group:7,subgroup:76,version:.6,shortCodes:["triangular_ruler"]},{label:"scissors",hexcode:"2702",tags:["cut","cutting","paper","tool"],emoji:"✂️",text:"✂︎",type:0,order:4540,group:7,subgroup:76,version:.6,shortCodes:["scissors"]},{label:"card file box",hexcode:"1F5C3",tags:["box","card","file"],emoji:"🗃️",text:"🗃︎",type:0,order:4542,group:7,subgroup:76,version:.7,shortCodes:["card_file_box"]},{label:"file cabinet",hexcode:"1F5C4",tags:["cabinet","file","filing","paper"],emoji:"🗄️",text:"🗄︎",type:0,order:4544,group:7,subgroup:76,version:.7,shortCodes:["file_cabinet"]},{label:"wastebasket",hexcode:"1F5D1",tags:["can","garbage","trash","waste"],emoji:"🗑️",text:"🗑︎",type:0,order:4546,group:7,subgroup:76,version:.7,shortCodes:["trashcan","wastebasket"]},{label:"locked",hexcode:"1F512",tags:["closed","lock","private"],emoji:"🔒️",text:"🔒︎",type:1,order:4547,group:7,subgroup:77,version:.6,shortCodes:["lock","locked"]},{label:"unlocked",hexcode:"1F513",tags:["cracked","lock","open","unlock"],emoji:"🔓️",text:"🔓︎",type:1,order:4548,group:7,subgroup:77,version:.6,shortCodes:["unlock","unlocked"]},{label:"locked with pen",hexcode:"1F50F",tags:["ink","lock","locked","nib","pen","privacy"],emoji:"🔏",text:"",type:1,order:4549,group:7,subgroup:77,version:.6,shortCodes:["lock_with_ink_pen","locked_with_pen"]},{label:"locked with key",hexcode:"1F510",tags:["bike","closed","key","lock","locked","secure"],emoji:"🔐",text:"",type:1,order:4550,group:7,subgroup:77,version:.6,shortCodes:["closed_lock_with_key","locked_with_key"]},{label:"key",hexcode:"1F511",tags:["keys","lock","major","password","unlock"],emoji:"🔑",text:"",type:1,order:4551,group:7,subgroup:77,version:.6,shortCodes:["key"]},{label:"old key",hexcode:"1F5DD",tags:["clue","key","lock","old"],emoji:"🗝️",text:"🗝︎",type:0,order:4553,group:7,subgroup:77,version:.7,shortCodes:["old_key"]},{label:"hammer",hexcode:"1F528",tags:["home","improvement","repairs","tool"],emoji:"🔨",text:"",type:1,order:4554,group:7,subgroup:78,version:.6,shortCodes:["hammer"]},{label:"axe",hexcode:"1FA93",tags:["ax","chop","hatchet","split","wood"],emoji:"🪓",text:"",type:1,order:4555,group:7,subgroup:78,version:12,shortCodes:["axe"]},{label:"pick",hexcode:"26CF",tags:["hammer","mining","tool"],emoji:"⛏️",text:"⛏︎",type:0,order:4557,group:7,subgroup:78,version:.7,shortCodes:["pick"]},{label:"hammer and pick",hexcode:"2692",tags:["hammer","pick","tool"],emoji:"⚒️",text:"⚒︎",type:0,order:4559,group:7,subgroup:78,version:1,shortCodes:["hammer_and_pick"]},{label:"hammer and wrench",hexcode:"1F6E0",tags:["hammer","spanner","tool","wrench"],emoji:"🛠️",text:"🛠︎",type:0,order:4561,group:7,subgroup:78,version:.7,shortCodes:["hammer_and_wrench"]},{label:"dagger",hexcode:"1F5E1",tags:["knife","weapon"],emoji:"🗡️",text:"🗡︎",type:0,order:4563,group:7,subgroup:78,version:.7,shortCodes:["dagger"]},{label:"crossed swords",hexcode:"2694",tags:["crossed","swords","weapon"],emoji:"⚔️",text:"⚔︎",type:0,order:4565,group:7,subgroup:78,version:1,shortCodes:["crossed_swords"]},{label:"bomb",hexcode:"1F4A3",tags:["boom","comic","dangerous","explosion","hot"],emoji:"💣️",text:"💣︎",type:1,order:4566,group:7,subgroup:78,version:.6,shortCodes:["bomb"]},{label:"boomerang",hexcode:"1FA83",tags:["rebound","repercussion","weapon"],emoji:"🪃",text:"",type:1,order:4567,group:7,subgroup:78,version:13,shortCodes:["boomerang"]},{label:"bow and arrow",hexcode:"1F3F9",tags:["archer","archery","arrow","bow","sagittarius","tool","weapon","zodiac"],emoji:"🏹",text:"",type:1,order:4568,group:7,subgroup:78,version:1,shortCodes:["bow_and_arrow"]},{label:"shield",hexcode:"1F6E1",tags:["weapon"],emoji:"🛡️",text:"🛡︎",type:0,order:4570,group:7,subgroup:78,version:.7,shortCodes:["shield"]},{label:"carpentry saw",hexcode:"1FA9A",tags:["carpenter","carpentry","cut","lumber","saw","tool","trim"],emoji:"🪚",text:"",type:1,order:4571,group:7,subgroup:78,version:13,shortCodes:["carpentry_saw"]},{label:"wrench",hexcode:"1F527",tags:["home","improvement","spanner","tool"],emoji:"🔧",text:"",type:1,order:4572,group:7,subgroup:78,version:.6,shortCodes:["wrench"]},{label:"screwdriver",hexcode:"1FA9B",tags:["flathead","handy","screw","tool"],emoji:"🪛",text:"",type:1,order:4573,group:7,subgroup:78,version:13,shortCodes:["screwdriver"]},{label:"nut and bolt",hexcode:"1F529",tags:["bolt","home","improvement","nut","tool"],emoji:"🔩",text:"",type:1,order:4574,group:7,subgroup:78,version:.6,shortCodes:["nut_and_bolt"]},{label:"gear",hexcode:"2699",tags:["cog","cogwheel","tool"],emoji:"⚙️",text:"⚙︎",type:0,order:4576,group:7,subgroup:78,version:1,shortCodes:["gear"]},{label:"clamp",hexcode:"1F5DC",tags:["compress","tool","vice"],emoji:"🗜️",text:"🗜︎",type:0,order:4578,group:7,subgroup:78,version:.7,shortCodes:["clamp","compression"]},{label:"balance scale",hexcode:"2696",tags:["balance","justice","libra","scale","scales","tool","weight","zodiac"],emoji:"⚖️",text:"⚖︎",type:0,order:4580,group:7,subgroup:78,version:1,shortCodes:["scales"]},{label:"white cane",hexcode:"1F9AF",tags:["accessibility","blind","cane","probing","white"],emoji:"🦯",text:"",type:1,order:4581,group:7,subgroup:78,version:12,shortCodes:["probing_cane","white_cane"]},{label:"link",hexcode:"1F517",tags:["links"],emoji:"🔗",text:"",type:1,order:4582,group:7,subgroup:78,version:.6,shortCodes:["link"]},{label:"broken chain",hexcode:"26D3-FE0F-200D-1F4A5",tags:["break","breaking","broken","chain","cuffs","freedom"],emoji:"⛓️‍💥",text:"",type:1,order:4583,group:7,subgroup:78,version:15.1,shortCodes:["broken_chain"]},{label:"chains",hexcode:"26D3",tags:["chain"],emoji:"⛓️",text:"⛓︎",type:0,order:4586,group:7,subgroup:78,version:.7,shortCodes:["chains"]},{label:"hook",hexcode:"1FA9D",tags:["catch","crook","curve","ensnare","point","selling"],emoji:"🪝",text:"",type:1,order:4587,group:7,subgroup:78,version:13,shortCodes:["hook"]},{label:"toolbox",hexcode:"1F9F0",tags:["box","chest","mechanic","red","tool"],emoji:"🧰",text:"",type:1,order:4588,group:7,subgroup:78,version:11,shortCodes:["toolbox"]},{label:"magnet",hexcode:"1F9F2",tags:["attraction","horseshoe","magnetic","negative","positive","shape","u"],emoji:"🧲",text:"",type:1,order:4589,group:7,subgroup:78,version:11,shortCodes:["magnet"]},{label:"ladder",hexcode:"1FA9C",tags:["climb","rung","step"],emoji:"🪜",text:"",type:1,order:4590,group:7,subgroup:78,version:13,shortCodes:["ladder"]},{label:"shovel",hexcode:"1FA8F",tags:["bury","dig","garden","hole","plant","scoop","snow","spade"],emoji:"🪏",text:"",type:1,order:4591,group:7,subgroup:78,version:16,shortCodes:["shovel"]},{label:"alembic",hexcode:"2697",tags:["chemistry","tool"],emoji:"⚗️",text:"⚗︎",type:0,order:4593,group:7,subgroup:79,version:1,shortCodes:["alembic"]},{label:"test tube",hexcode:"1F9EA",tags:["chemist","chemistry","experiment","lab","science","test","tube"],emoji:"🧪",text:"",type:1,order:4594,group:7,subgroup:79,version:11,shortCodes:["test_tube"]},{label:"petri dish",hexcode:"1F9EB",tags:["bacteria","biologist","biology","culture","dish","lab","petri"],emoji:"🧫",text:"",type:1,order:4595,group:7,subgroup:79,version:11,shortCodes:["petri_dish"]},{label:"dna",hexcode:"1F9EC",tags:["biologist","evolution","gene","genetics","life"],emoji:"🧬",text:"",type:1,order:4596,group:7,subgroup:79,version:11,shortCodes:["dna","double_helix"]},{label:"microscope",hexcode:"1F52C",tags:["experiment","lab","science","tool"],emoji:"🔬",text:"",type:1,order:4597,group:7,subgroup:79,version:1,shortCodes:["microscope"]},{label:"telescope",hexcode:"1F52D",tags:["contact","extraterrestrial","science","tool"],emoji:"🔭",text:"",type:1,order:4598,group:7,subgroup:79,version:1,shortCodes:["telescope"]},{label:"satellite antenna",hexcode:"1F4E1",tags:["aliens","antenna","contact","dish","satellite","science"],emoji:"📡",text:"",type:1,order:4599,group:7,subgroup:79,version:.6,shortCodes:["satellite_antenna"]},{label:"syringe",hexcode:"1F489",tags:["doctor","flu","medicine","needle","shot","sick","tool","vaccination"],emoji:"💉",text:"",type:1,order:4600,group:7,subgroup:80,version:.6,shortCodes:["syringe"]},{label:"drop of blood",hexcode:"1FA78",tags:["bleed","blood","donation","drop","injury","medicine","menstruation"],emoji:"🩸",text:"",type:1,order:4601,group:7,subgroup:80,version:12,shortCodes:["drop_of_blood"]},{label:"pill",hexcode:"1F48A",tags:["doctor","drugs","medicated","medicine","pills","sick","vitamin"],emoji:"💊",text:"",type:1,order:4602,group:7,subgroup:80,version:.6,shortCodes:["pill"]},{label:"adhesive bandage",hexcode:"1FA79",tags:["adhesive","bandage"],emoji:"🩹",text:"",type:1,order:4603,group:7,subgroup:80,version:12,shortCodes:["adhesive_bandage","bandaid"]},{label:"crutch",hexcode:"1FA7C",tags:["aid","cane","disability","help","hurt","injured","mobility","stick"],emoji:"🩼",text:"",type:1,order:4604,group:7,subgroup:80,version:14,shortCodes:["crutch"]},{label:"stethoscope",hexcode:"1FA7A",tags:["doctor","heart","medicine"],emoji:"🩺",text:"",type:1,order:4605,group:7,subgroup:80,version:12,shortCodes:["stethoscope"]},{label:"x-ray",hexcode:"1FA7B",tags:["bones","doctor","medical","skeleton","skull","xray"],emoji:"🩻",text:"",type:1,order:4606,group:7,subgroup:80,version:14,shortCodes:["x-ray","xray"]},{label:"door",hexcode:"1F6AA",tags:["back","closet","front"],emoji:"🚪",text:"",type:1,order:4607,group:7,subgroup:81,version:.6,shortCodes:["door"]},{label:"elevator",hexcode:"1F6D7",tags:["accessibility","hoist","lift"],emoji:"🛗",text:"",type:1,order:4608,group:7,subgroup:81,version:13,shortCodes:["elevator"]},{label:"mirror",hexcode:"1FA9E",tags:["makeup","reflection","reflector","speculum"],emoji:"🪞",text:"",type:1,order:4609,group:7,subgroup:81,version:13,shortCodes:["mirror"]},{label:"window",hexcode:"1FA9F",tags:["air","frame","fresh","opening","transparent","view"],emoji:"🪟",text:"",type:1,order:4610,group:7,subgroup:81,version:13,shortCodes:["window"]},{label:"bed",hexcode:"1F6CF",tags:["hotel","sleep"],emoji:"🛏️",text:"🛏︎",type:0,order:4612,group:7,subgroup:81,version:.7,shortCodes:["bed"]},{label:"couch and lamp",hexcode:"1F6CB",tags:["couch","hotel","lamp"],emoji:"🛋️",text:"🛋︎",type:0,order:4614,group:7,subgroup:81,version:.7,shortCodes:["couch_and_lamp"]},{label:"chair",hexcode:"1FA91",tags:["seat","sit"],emoji:"🪑",text:"",type:1,order:4615,group:7,subgroup:81,version:12,shortCodes:["chair"]},{label:"toilet",hexcode:"1F6BD",tags:["bathroom"],emoji:"🚽",text:"",type:1,order:4616,group:7,subgroup:81,version:.6,shortCodes:["toilet"]},{label:"plunger",hexcode:"1FAA0",tags:["cup","force","plumber","poop","suction","toilet"],emoji:"🪠",text:"",type:1,order:4617,group:7,subgroup:81,version:13,shortCodes:["plunger"]},{label:"shower",hexcode:"1F6BF",tags:["water"],emoji:"🚿",text:"",type:1,order:4618,group:7,subgroup:81,version:1,shortCodes:["shower"]},{label:"bathtub",hexcode:"1F6C1",tags:["bath"],emoji:"🛁",text:"",type:1,order:4619,group:7,subgroup:81,version:1,shortCodes:["bathtub"]},{label:"mouse trap",hexcode:"1FAA4",tags:["bait","cheese","lure","mouse","mousetrap","snare","trap"],emoji:"🪤",text:"",type:1,order:4620,group:7,subgroup:81,version:13,shortCodes:["mouse_trap"]},{label:"razor",hexcode:"1FA92",tags:["sharp","shave"],emoji:"🪒",text:"",type:1,order:4621,group:7,subgroup:81,version:12,shortCodes:["razor"]},{label:"lotion bottle",hexcode:"1F9F4",tags:["bottle","lotion","moisturizer","shampoo","sunscreen"],emoji:"🧴",text:"",type:1,order:4622,group:7,subgroup:81,version:11,shortCodes:["lotion_bottle"]},{label:"safety pin",hexcode:"1F9F7",tags:["diaper","pin","punk","rock","safety"],emoji:"🧷",text:"",type:1,order:4623,group:7,subgroup:81,version:11,shortCodes:["safety_pin"]},{label:"broom",hexcode:"1F9F9",tags:["cleaning","sweeping","witch"],emoji:"🧹",text:"",type:1,order:4624,group:7,subgroup:81,version:11,shortCodes:["broom"]},{label:"basket",hexcode:"1F9FA",tags:["farming","laundry","picnic"],emoji:"🧺",text:"",type:1,order:4625,group:7,subgroup:81,version:11,shortCodes:["basket"]},{label:"roll of paper",hexcode:"1F9FB",tags:["paper","roll","toilet","towels"],emoji:"🧻",text:"",type:1,order:4626,group:7,subgroup:81,version:11,shortCodes:["roll_of_paper","toilet_paper"]},{label:"bucket",hexcode:"1FAA3",tags:["cask","pail","vat"],emoji:"🪣",text:"",type:1,order:4627,group:7,subgroup:81,version:13,shortCodes:["bucket"]},{label:"soap",hexcode:"1F9FC",tags:["bar","bathing","clean","cleaning","lather","soapdish"],emoji:"🧼",text:"",type:1,order:4628,group:7,subgroup:81,version:11,shortCodes:["soap"]},{label:"bubbles",hexcode:"1FAE7",tags:["bubble","burp","clean","floating","pearl","soap","underwater"],emoji:"🫧",text:"",type:1,order:4629,group:7,subgroup:81,version:14,shortCodes:["bubbles"]},{label:"toothbrush",hexcode:"1FAA5",tags:["bathroom","brush","clean","dental","hygiene","teeth","toiletry"],emoji:"🪥",text:"",type:1,order:4630,group:7,subgroup:81,version:13,shortCodes:["toothbrush"]},{label:"sponge",hexcode:"1F9FD",tags:["absorbing","cleaning","porous","soak"],emoji:"🧽",text:"",type:1,order:4631,group:7,subgroup:81,version:11,shortCodes:["sponge"]},{label:"fire extinguisher",hexcode:"1F9EF",tags:["extinguish","extinguisher","fire","quench"],emoji:"🧯",text:"",type:1,order:4632,group:7,subgroup:81,version:11,shortCodes:["fire_extinguisher"]},{label:"shopping cart",hexcode:"1F6D2",tags:["cart","shopping","trolley"],emoji:"🛒",text:"",type:1,order:4633,group:7,subgroup:81,version:3,shortCodes:["shopping_cart"]},{label:"cigarette",hexcode:"1F6AC",tags:["smoking"],emoji:"🚬",text:"",type:1,order:4634,group:7,subgroup:82,version:.6,shortCodes:["cigarette","smoking"]},{label:"coffin",hexcode:"26B0",tags:["dead","death","vampire"],emoji:"⚰️",text:"⚰︎",type:0,order:4636,group:7,subgroup:82,version:1,shortCodes:["coffin"]},{label:"headstone",hexcode:"1FAA6",tags:["cemetery","dead","grave","graveyard","memorial","rip","tomb","tombstone"],emoji:"🪦",text:"",type:1,order:4637,group:7,subgroup:82,version:13,shortCodes:["headstone"]},{label:"funeral urn",hexcode:"26B1",tags:["ashes","death","funeral","urn"],emoji:"⚱️",text:"⚱︎",type:0,order:4639,group:7,subgroup:82,version:1,shortCodes:["funeral_urn"]},{label:"nazar amulet",hexcode:"1F9FF",tags:["amulet","bead","blue","charm","evil-eye","nazar","talisman"],emoji:"🧿",text:"",type:1,order:4640,group:7,subgroup:82,version:11,shortCodes:["nazar_amulet"]},{label:"hamsa",hexcode:"1FAAC",tags:["amulet","fatima","fortune","guide","hand","mary","miriam","palm","protect","protection"],emoji:"🪬",text:"",type:1,order:4641,group:7,subgroup:82,version:14,shortCodes:["hamsa"]},{label:"moai",hexcode:"1F5FF",tags:["face","moyai","statue","stoneface","travel"],emoji:"🗿",text:"",type:1,order:4642,group:7,subgroup:82,version:.6,shortCodes:["moai","moyai"]},{label:"placard",hexcode:"1FAA7",tags:["card","demonstration","notice","picket","plaque","protest","sign"],emoji:"🪧",text:"",type:1,order:4643,group:7,subgroup:82,version:13,shortCodes:["placard"]},{label:"identification card",hexcode:"1FAAA",tags:["card","credentials","document","id","identification","license","security"],emoji:"🪪",text:"",type:1,order:4644,group:7,subgroup:82,version:14,shortCodes:["id_card"]},{label:"ATM sign",hexcode:"1F3E7",tags:["atm","automated","bank","cash","money","sign","teller"],emoji:"🏧",text:"",type:1,order:4645,group:8,subgroup:83,version:.6,shortCodes:["atm"]},{label:"litter in bin sign",hexcode:"1F6AE",tags:["bin","litter","litterbin","sign"],emoji:"🚮",text:"",type:1,order:4646,group:8,subgroup:83,version:1,shortCodes:["litter_bin","put_litter_in_its_place"]},{label:"potable water",hexcode:"1F6B0",tags:["drinking","potable","water"],emoji:"🚰",text:"",type:1,order:4647,group:8,subgroup:83,version:1,shortCodes:["potable_water"]},{label:"wheelchair symbol",hexcode:"267F",tags:["access","handicap","symbol","wheelchair"],emoji:"♿️",text:"♿︎",type:1,order:4648,group:8,subgroup:83,version:.6,shortCodes:["handicapped","wheelchair"]},{label:"men’s room",hexcode:"1F6B9",tags:["bathroom","lavatory","man","men’s","restroom","room","toilet","wc"],emoji:"🚹️",text:"🚹︎",type:1,order:4649,group:8,subgroup:83,version:.6,shortCodes:["mens"]},{label:"women’s room",hexcode:"1F6BA",tags:["bathroom","lavatory","restroom","room","toilet","wc","woman","women’s"],emoji:"🚺️",text:"🚺︎",type:1,order:4650,group:8,subgroup:83,version:.6,shortCodes:["womens"]},{label:"restroom",hexcode:"1F6BB",tags:["bathroom","lavatory","toilet","wc"],emoji:"🚻",text:"",type:1,order:4651,group:8,subgroup:83,version:.6,shortCodes:["bathroom","restroom"]},{label:"baby symbol",hexcode:"1F6BC",tags:["baby","changing","symbol"],emoji:"🚼️",text:"🚼︎",type:1,order:4652,group:8,subgroup:83,version:.6,shortCodes:["baby_symbol"]},{label:"water closet",hexcode:"1F6BE",tags:["bathroom","closet","lavatory","restroom","toilet","water","wc"],emoji:"🚾",text:"",type:1,order:4653,group:8,subgroup:83,version:.6,shortCodes:["water_closet","wc"]},{label:"passport control",hexcode:"1F6C2",tags:["control","passport"],emoji:"🛂",text:"",type:1,order:4654,group:8,subgroup:83,version:1,shortCodes:["passport_control"]},{label:"customs",hexcode:"1F6C3",tags:["packing"],emoji:"🛃",text:"",type:1,order:4655,group:8,subgroup:83,version:1,shortCodes:["customs"]},{label:"baggage claim",hexcode:"1F6C4",tags:["arrived","baggage","bags","case","checked","claim","journey","packing","plane","ready","travel","trip"],emoji:"🛄",text:"",type:1,order:4656,group:8,subgroup:83,version:1,shortCodes:["baggage_claim"]},{label:"left luggage",hexcode:"1F6C5",tags:["baggage","case","left","locker","luggage"],emoji:"🛅",text:"",type:1,order:4657,group:8,subgroup:83,version:1,shortCodes:["left_luggage"]},{label:"warning",hexcode:"26A0",tags:["caution"],emoji:"⚠️",text:"⚠︎",type:0,order:4659,group:8,subgroup:84,version:.6,shortCodes:["warning"]},{label:"children crossing",hexcode:"1F6B8",tags:["child","children","crossing","pedestrian","traffic"],emoji:"🚸",text:"",type:1,order:4660,group:8,subgroup:84,version:1,shortCodes:["children_crossing"]},{label:"no entry",hexcode:"26D4",tags:["do","entry","fail","forbidden","no","not","pass","prohibited","traffic"],emoji:"⛔️",text:"⛔︎",type:1,order:4661,group:8,subgroup:84,version:.6,shortCodes:["no_entry"]},{label:"prohibited",hexcode:"1F6AB",tags:["entry","forbidden","no","not","smoke"],emoji:"🚫",text:"",type:1,order:4662,group:8,subgroup:84,version:.6,shortCodes:["no_entry_sign"]},{label:"no bicycles",hexcode:"1F6B3",tags:["bicycle","bicycles","bike","forbidden","no","not","prohibited"],emoji:"🚳",text:"",type:1,order:4663,group:8,subgroup:84,version:1,shortCodes:["no_bicycles"]},{label:"no smoking",hexcode:"1F6AD",tags:["forbidden","no","not","prohibited","smoke","smoking"],emoji:"🚭️",text:"🚭︎",type:1,order:4664,group:8,subgroup:84,version:.6,shortCodes:["no_smoking"]},{label:"no littering",hexcode:"1F6AF",tags:["forbidden","litter","littering","no","not","prohibited"],emoji:"🚯",text:"",type:1,order:4665,group:8,subgroup:84,version:1,shortCodes:["do_not_litter","no_littering"]},{label:"non-potable water",hexcode:"1F6B1",tags:["dry","non-drinking","non-potable","prohibited","water"],emoji:"🚱",text:"",type:1,order:4666,group:8,subgroup:84,version:1,shortCodes:["non-potable_water"]},{label:"no pedestrians",hexcode:"1F6B7",tags:["forbidden","no","not","pedestrian","pedestrians","prohibited"],emoji:"🚷",text:"",type:1,order:4667,group:8,subgroup:84,version:1,shortCodes:["no_pedestrians"]},{label:"no mobile phones",hexcode:"1F4F5",tags:["cell","forbidden","mobile","no","not","phone","phones","prohibited","telephone"],emoji:"📵",text:"",type:1,order:4668,group:8,subgroup:84,version:1,shortCodes:["no_mobile_phones"]},{label:"no one under eighteen",hexcode:"1F51E",tags:["18","age","eighteen","forbidden","no","not","one","prohibited","restriction","underage"],emoji:"🔞",text:"",type:1,order:4669,group:8,subgroup:84,version:.6,shortCodes:["no_one_under_18","underage"]},{label:"radioactive",hexcode:"2622",tags:["sign"],emoji:"☢️",text:"☢︎",type:0,order:4671,group:8,subgroup:84,version:1,shortCodes:["radioactive"]},{label:"biohazard",hexcode:"2623",tags:["sign"],emoji:"☣️",text:"☣︎",type:0,order:4673,group:8,subgroup:84,version:1,shortCodes:["biohazard"]},{label:"up arrow",hexcode:"2B06",tags:["arrow","cardinal","direction","north","up"],emoji:"⬆️",text:"⬆︎",type:0,order:4675,group:8,subgroup:85,version:.6,shortCodes:["arrow_up"]},{label:"up-right arrow",hexcode:"2197",tags:["arrow","direction","intercardinal","northeast","up-right"],emoji:"↗️",text:"↗︎",type:0,order:4677,group:8,subgroup:85,version:.6,shortCodes:["arrow_upper_right"]},{label:"right arrow",hexcode:"27A1",tags:["arrow","cardinal","direction","east","right"],emoji:"➡️",text:"➡︎",type:0,order:4679,group:8,subgroup:85,version:.6,shortCodes:["arrow_right"]},{label:"down-right arrow",hexcode:"2198",tags:["arrow","direction","down-right","intercardinal","southeast"],emoji:"↘️",text:"↘︎",type:0,order:4681,group:8,subgroup:85,version:.6,shortCodes:["arrow_lower_right"]},{label:"down arrow",hexcode:"2B07",tags:["arrow","cardinal","direction","down","south"],emoji:"⬇️",text:"⬇︎",type:0,order:4683,group:8,subgroup:85,version:.6,shortCodes:["arrow_down"]},{label:"down-left arrow",hexcode:"2199",tags:["arrow","direction","down-left","intercardinal","southwest"],emoji:"↙️",text:"↙︎",type:0,order:4685,group:8,subgroup:85,version:.6,shortCodes:["arrow_lower_left"]},{label:"left arrow",hexcode:"2B05",tags:["arrow","cardinal","direction","left","west"],emoji:"⬅️",text:"⬅︎",type:0,order:4687,group:8,subgroup:85,version:.6,shortCodes:["arrow_left"]},{label:"up-left arrow",hexcode:"2196",tags:["arrow","direction","intercardinal","northwest","up-left"],emoji:"↖️",text:"↖︎",type:0,order:4689,group:8,subgroup:85,version:.6,shortCodes:["arrow_upper_left"]},{label:"up-down arrow",hexcode:"2195",tags:["arrow","up-down"],emoji:"↕️",text:"↕︎",type:0,order:4691,group:8,subgroup:85,version:.6,shortCodes:["arrow_up_down"]},{label:"left-right arrow",hexcode:"2194",tags:["arrow","left-right"],emoji:"↔️",text:"↔︎",type:0,order:4693,group:8,subgroup:85,version:.6,shortCodes:["left_right_arrow"]},{label:"right arrow curving left",hexcode:"21A9",tags:["arrow","curving","left","right"],emoji:"↩️",text:"↩︎",type:0,order:4695,group:8,subgroup:85,version:.6,shortCodes:["arrow_left_hook","leftwards_arrow_with_hook"]},{label:"left arrow curving right",hexcode:"21AA",tags:["arrow","curving","left","right"],emoji:"↪️",text:"↪︎",type:0,order:4697,group:8,subgroup:85,version:.6,shortCodes:["arrow_right_hook","rightwards_arrow_with_hook"]},{label:"right arrow curving up",hexcode:"2934",tags:["arrow","curving","right","up"],emoji:"⤴️",text:"⤴︎",type:0,order:4699,group:8,subgroup:85,version:.6,shortCodes:["arrow_heading_up"]},{label:"right arrow curving down",hexcode:"2935",tags:["arrow","curving","down","right"],emoji:"⤵️",text:"⤵︎",type:0,order:4701,group:8,subgroup:85,version:.6,shortCodes:["arrow_heading_down"]},{label:"clockwise vertical arrows",hexcode:"1F503",tags:["arrow","arrows","clockwise","refresh","reload","vertical"],emoji:"🔃",text:"",type:1,order:4702,group:8,subgroup:85,version:.6,shortCodes:["arrows_clockwise","clockwise"]},{label:"counterclockwise arrows button",hexcode:"1F504",tags:["again","anticlockwise","arrow","arrows","button","counterclockwise","deja","refresh","rewindershins","vu"],emoji:"🔄",text:"",type:1,order:4703,group:8,subgroup:85,version:1,shortCodes:["arrows_counterclockwise","counterclockwise"]},{label:"BACK arrow",hexcode:"1F519",tags:["arrow","back"],emoji:"🔙",text:"",type:1,order:4704,group:8,subgroup:85,version:.6,shortCodes:["back"]},{label:"END arrow",hexcode:"1F51A",tags:["arrow","end"],emoji:"🔚",text:"",type:1,order:4705,group:8,subgroup:85,version:.6,shortCodes:["end"]},{label:"ON! arrow",hexcode:"1F51B",tags:["arrow","mark","on!"],emoji:"🔛",text:"",type:1,order:4706,group:8,subgroup:85,version:.6,shortCodes:["on"]},{label:"SOON arrow",hexcode:"1F51C",tags:["arrow","brb","omw","soon"],emoji:"🔜",text:"",type:1,order:4707,group:8,subgroup:85,version:.6,shortCodes:["soon"]},{label:"TOP arrow",hexcode:"1F51D",tags:["arrow","homie","top","up"],emoji:"🔝",text:"",type:1,order:4708,group:8,subgroup:85,version:.6,shortCodes:["top"]},{label:"place of worship",hexcode:"1F6D0",tags:["place","pray","religion","worship"],emoji:"🛐",text:"",type:1,order:4709,group:8,subgroup:86,version:1,shortCodes:["place_of_worship"]},{label:"atom symbol",hexcode:"269B",tags:["atheist","atom","symbol"],emoji:"⚛️",text:"⚛︎",type:0,order:4711,group:8,subgroup:86,version:1,shortCodes:["atom","atom_symbol"]},{label:"om",hexcode:"1F549",tags:["hindu","religion"],emoji:"🕉️",text:"🕉︎",type:0,order:4713,group:8,subgroup:86,version:.7,shortCodes:["om"]},{label:"star of David",hexcode:"2721",tags:["david","jew","jewish","judaism","religion","star"],emoji:"✡️",text:"✡︎",type:0,order:4715,group:8,subgroup:86,version:.7,shortCodes:["star_of_david"]},{label:"wheel of dharma",hexcode:"2638",tags:["buddhist","dharma","religion","wheel"],emoji:"☸️",text:"☸︎",type:0,order:4717,group:8,subgroup:86,version:.7,shortCodes:["wheel_of_dharma"]},{label:"yin yang",hexcode:"262F",tags:["difficult","lives","religion","tao","taoist","total","yang","yin","yinyang"],emoji:"☯️",text:"☯︎",type:0,order:4719,group:8,subgroup:86,version:.7,shortCodes:["yin_yang"]},{label:"latin cross",hexcode:"271D",tags:["christ","christian","cross","latin","religion"],emoji:"✝️",text:"✝︎",type:0,order:4721,group:8,subgroup:86,version:.7,shortCodes:["latin_cross"]},{label:"orthodox cross",hexcode:"2626",tags:["christian","cross","orthodox","religion"],emoji:"☦️",text:"☦︎",type:0,order:4723,group:8,subgroup:86,version:1,shortCodes:["orthodox_cross"]},{label:"star and crescent",hexcode:"262A",tags:["crescent","islam","muslim","ramadan","religion","star"],emoji:"☪️",text:"☪︎",type:0,order:4725,group:8,subgroup:86,version:.7,shortCodes:["star_and_crescent"]},{label:"peace symbol",hexcode:"262E",tags:["healing","peace","peaceful","symbol"],emoji:"☮️",text:"☮︎",type:0,order:4727,group:8,subgroup:86,version:1,shortCodes:["peace","peace_symbol"]},{label:"menorah",hexcode:"1F54E",tags:["candelabrum","candlestick","hanukkah","jewish","judaism","religion"],emoji:"🕎",text:"",type:1,order:4728,group:8,subgroup:86,version:1,shortCodes:["menorah"]},{label:"dotted six-pointed star",hexcode:"1F52F",tags:["dotted","fortune","jewish","judaism","six-pointed","star"],emoji:"🔯",text:"",type:1,order:4729,group:8,subgroup:86,version:.6,shortCodes:["six_pointed_star"]},{label:"khanda",hexcode:"1FAAF",tags:["deg","fateh","khalsa","religion","sikh","sikhism","tegh"],emoji:"🪯",text:"",type:1,order:4730,group:8,subgroup:86,version:15,shortCodes:["khanda"]},{label:"Aries",hexcode:"2648",tags:["aries","horoscope","ram","zodiac"],emoji:"♈️",text:"♈︎",type:1,order:4731,group:8,subgroup:87,version:.6,shortCodes:["aries"]},{label:"Taurus",hexcode:"2649",tags:["bull","horoscope","ox","taurus","zodiac"],emoji:"♉️",text:"♉︎",type:1,order:4732,group:8,subgroup:87,version:.6,shortCodes:["taurus"]},{label:"Gemini",hexcode:"264A",tags:["gemini","horoscope","twins","zodiac"],emoji:"♊️",text:"♊︎",type:1,order:4733,group:8,subgroup:87,version:.6,shortCodes:["gemini"]},{label:"Cancer",hexcode:"264B",tags:["cancer","crab","horoscope","zodiac"],emoji:"♋️",text:"♋︎",type:1,order:4734,group:8,subgroup:87,version:.6,shortCodes:["cancer"]},{label:"Leo",hexcode:"264C",tags:["horoscope","leo","lion","zodiac"],emoji:"♌️",text:"♌︎",type:1,order:4735,group:8,subgroup:87,version:.6,shortCodes:["leo"]},{label:"Virgo",hexcode:"264D",tags:["horoscope","virgo","zodiac"],emoji:"♍️",text:"♍︎",type:1,order:4736,group:8,subgroup:87,version:.6,shortCodes:["virgo"]},{label:"Libra",hexcode:"264E",tags:["balance","horoscope","justice","libra","scales","zodiac"],emoji:"♎️",text:"♎︎",type:1,order:4737,group:8,subgroup:87,version:.6,shortCodes:["libra"]},{label:"Scorpio",hexcode:"264F",tags:["horoscope","scorpio","scorpion","scorpius","zodiac"],emoji:"♏️",text:"♏︎",type:1,order:4738,group:8,subgroup:87,version:.6,shortCodes:["scorpius"]},{label:"Sagittarius",hexcode:"2650",tags:["archer","horoscope","sagittarius","zodiac"],emoji:"♐️",text:"♐︎",type:1,order:4739,group:8,subgroup:87,version:.6,shortCodes:["sagittarius"]},{label:"Capricorn",hexcode:"2651",tags:["capricorn","goat","horoscope","zodiac"],emoji:"♑️",text:"♑︎",type:1,order:4740,group:8,subgroup:87,version:.6,shortCodes:["capricorn"]},{label:"Aquarius",hexcode:"2652",tags:["aquarius","bearer","horoscope","water","zodiac"],emoji:"♒️",text:"♒︎",type:1,order:4741,group:8,subgroup:87,version:.6,shortCodes:["aquarius"]},{label:"Pisces",hexcode:"2653",tags:["fish","horoscope","pisces","zodiac"],emoji:"♓️",text:"♓︎",type:1,order:4742,group:8,subgroup:87,version:.6,shortCodes:["pisces"]},{label:"Ophiuchus",hexcode:"26CE",tags:["bearer","ophiuchus","serpent","snake","zodiac"],emoji:"⛎️",text:"⛎︎",type:1,order:4743,group:8,subgroup:87,version:.6,shortCodes:["ophiuchus"]},{label:"shuffle tracks button",hexcode:"1F500",tags:["arrow","button","crossed","shuffle","tracks"],emoji:"🔀",text:"",type:1,order:4744,group:8,subgroup:88,version:1,shortCodes:["shuffle","twisted_rightwards_arrows"]},{label:"repeat button",hexcode:"1F501",tags:["arrow","button","clockwise","repeat"],emoji:"🔁",text:"",type:1,order:4745,group:8,subgroup:88,version:1,shortCodes:["repeat"]},{label:"repeat single button",hexcode:"1F502",tags:["arrow","button","clockwise","once","repeat","single"],emoji:"🔂",text:"",type:1,order:4746,group:8,subgroup:88,version:1,shortCodes:["repeat_one"]},{label:"play button",hexcode:"25B6",tags:["arrow","button","play","right","triangle"],emoji:"▶️",text:"▶︎",type:0,order:4748,group:8,subgroup:88,version:.6,shortCodes:["arrow_forward","play"]},{label:"fast-forward button",hexcode:"23E9",tags:["arrow","button","double","fast","fast-forward","forward"],emoji:"⏩️",text:"⏩︎",type:1,order:4749,group:8,subgroup:88,version:.6,shortCodes:["fast_forward"]},{label:"next track button",hexcode:"23ED",tags:["arrow","button","next","scene","track","triangle"],emoji:"⏭️",text:"⏭︎",type:0,order:4751,group:8,subgroup:88,version:.7,shortCodes:["next_track"]},{label:"play or pause button",hexcode:"23EF",tags:["arrow","button","pause","play","right","triangle"],emoji:"⏯️",text:"⏯︎",type:0,order:4753,group:8,subgroup:88,version:1,shortCodes:["play_pause"]},{label:"reverse button",hexcode:"25C0",tags:["arrow","button","left","reverse","triangle"],emoji:"◀️",text:"◀︎",type:0,order:4755,group:8,subgroup:88,version:.6,shortCodes:["arrow_backward","reverse"]},{label:"fast reverse button",hexcode:"23EA",tags:["arrow","button","double","fast","reverse","rewind"],emoji:"⏪️",text:"⏪︎",type:1,order:4756,group:8,subgroup:88,version:.6,shortCodes:["fast_reverse","rewind"]},{label:"last track button",hexcode:"23EE",tags:["arrow","button","last","previous","scene","track","triangle"],emoji:"⏮️",text:"⏮︎",type:0,order:4758,group:8,subgroup:88,version:.7,shortCodes:["previous_track"]},{label:"upwards button",hexcode:"1F53C",tags:["arrow","button","red","up","upwards"],emoji:"🔼",text:"",type:1,order:4759,group:8,subgroup:88,version:.6,shortCodes:["arrow_up_small","up"]},{label:"fast up button",hexcode:"23EB",tags:["arrow","button","double","fast","up"],emoji:"⏫️",text:"⏫︎",type:1,order:4760,group:8,subgroup:88,version:.6,shortCodes:["arrow_double_up","fast_up"]},{label:"downwards button",hexcode:"1F53D",tags:["arrow","button","down","downwards","red"],emoji:"🔽",text:"",type:1,order:4761,group:8,subgroup:88,version:.6,shortCodes:["arrow_down_small","down"]},{label:"fast down button",hexcode:"23EC",tags:["arrow","button","double","down","fast"],emoji:"⏬️",text:"⏬︎",type:1,order:4762,group:8,subgroup:88,version:.6,shortCodes:["arrow_double_down","fast_down"]},{label:"pause button",hexcode:"23F8",tags:["bar","button","double","pause","vertical"],emoji:"⏸️",text:"⏸︎",type:0,order:4764,group:8,subgroup:88,version:.7,shortCodes:["pause"]},{label:"stop button",hexcode:"23F9",tags:["button","square","stop"],emoji:"⏹️",text:"⏹︎",type:0,order:4766,group:8,subgroup:88,version:.7,shortCodes:["stop"]},{label:"record button",hexcode:"23FA",tags:["button","circle","record"],emoji:"⏺️",text:"⏺︎",type:0,order:4768,group:8,subgroup:88,version:.7,shortCodes:["record"]},{label:"eject button",hexcode:"23CF",tags:["button","eject"],emoji:"⏏️",text:"⏏︎",type:0,order:4770,group:8,subgroup:88,version:1,shortCodes:["eject"]},{label:"cinema",hexcode:"1F3A6",tags:["camera","film","movie"],emoji:"🎦",text:"",type:1,order:4771,group:8,subgroup:88,version:.6,shortCodes:["cinema"]},{label:"dim button",hexcode:"1F505",tags:["brightness","button","dim","low"],emoji:"🔅",text:"",type:1,order:4772,group:8,subgroup:88,version:1,shortCodes:["dim_button","low_brightness"]},{label:"bright button",hexcode:"1F506",tags:["bright","brightness","button","light"],emoji:"🔆",text:"",type:1,order:4773,group:8,subgroup:88,version:1,shortCodes:["bright_button","high_brightness"]},{label:"antenna bars",hexcode:"1F4F6",tags:["antenna","bar","bars","cell","communication","mobile","phone","signal","telephone"],emoji:"📶",text:"",type:1,order:4774,group:8,subgroup:88,version:.6,shortCodes:["antenna_bars","signal_strength"]},{label:"wireless",hexcode:"1F6DC",tags:["broadband","computer","connectivity","hotspot","internet","network","router","smartphone","wi-fi","wifi","wlan"],emoji:"🛜",text:"",type:1,order:4775,group:8,subgroup:88,version:15,shortCodes:["wireless"]},{label:"vibration mode",hexcode:"1F4F3",tags:["cell","communication","mobile","mode","phone","telephone","vibration"],emoji:"📳",text:"",type:1,order:4776,group:8,subgroup:88,version:.6,shortCodes:["vibration_mode"]},{label:"mobile phone off",hexcode:"1F4F4",tags:["cell","mobile","off","phone","telephone"],emoji:"📴",text:"",type:1,order:4777,group:8,subgroup:88,version:.6,shortCodes:["mobile_phone_off"]},{label:"female sign",hexcode:"2640",tags:["female","sign","woman"],emoji:"♀️",text:"♀︎",type:0,order:4779,group:8,subgroup:89,version:4,shortCodes:["female","female_sign"]},{label:"male sign",hexcode:"2642",tags:["male","man","sign"],emoji:"♂️",text:"♂︎",type:0,order:4781,group:8,subgroup:89,version:4,shortCodes:["male","male_sign"]},{label:"transgender symbol",hexcode:"26A7",tags:["symbol","transgender"],emoji:"⚧️",text:"⚧︎",type:0,order:4783,group:8,subgroup:89,version:13,shortCodes:["transgender_symbol"]},{label:"multiply",hexcode:"2716",tags:["cancel","multiplication","sign","x","×"],emoji:"✖️",text:"✖︎",type:0,order:4785,group:8,subgroup:90,version:.6,shortCodes:["multiplication","multiply"]},{label:"plus",hexcode:"2795",tags:["+"],emoji:"➕️",text:"➕︎",type:1,order:4786,group:8,subgroup:90,version:.6,shortCodes:["plus"]},{label:"minus",hexcode:"2796",tags:["-","heavy","math","sign","−"],emoji:"➖️",text:"➖︎",type:1,order:4787,group:8,subgroup:90,version:.6,shortCodes:["minus"]},{label:"divide",hexcode:"2797",tags:["division","heavy","math","sign","÷"],emoji:"➗️",text:"➗︎",type:1,order:4788,group:8,subgroup:90,version:.6,shortCodes:["divide","division"]},{label:"heavy equals sign",hexcode:"1F7F0",tags:["answer","equal","equality","equals","heavy","math","sign"],emoji:"🟰",text:"",type:1,order:4789,group:8,subgroup:90,version:14,shortCodes:["heavy_equals_sign"]},{label:"infinity",hexcode:"267E",tags:["forever","unbounded","universal"],emoji:"♾️",text:"♾︎",type:0,order:4791,group:8,subgroup:90,version:11,shortCodes:["infinity"]},{label:"double exclamation mark",hexcode:"203C",tags:["!","!!","bangbang","double","exclamation","mark","punctuation"],emoji:"‼️",text:"‼︎",type:0,order:4793,group:8,subgroup:91,version:.6,shortCodes:["bangbang","double_exclamation"]},{label:"exclamation question mark",hexcode:"2049",tags:["!","!?","?","exclamation","interrobang","mark","punctuation","question"],emoji:"⁉️",text:"⁉︎",type:0,order:4795,group:8,subgroup:91,version:.6,shortCodes:["exclamation_question","interrobang"]},{label:"red question mark",hexcode:"2753",tags:["?","mark","punctuation","question","red"],emoji:"❓️",text:"❓︎",type:1,order:4796,group:8,subgroup:91,version:.6,shortCodes:["question"]},{label:"white question mark",hexcode:"2754",tags:["?","mark","outlined","punctuation","question","white"],emoji:"❔️",text:"❔︎",type:1,order:4797,group:8,subgroup:91,version:.6,shortCodes:["white_question"]},{label:"white exclamation mark",hexcode:"2755",tags:["!","exclamation","mark","outlined","punctuation","white"],emoji:"❕️",text:"❕︎",type:1,order:4798,group:8,subgroup:91,version:.6,shortCodes:["white_exclamation"]},{label:"red exclamation mark",hexcode:"2757",tags:["!","exclamation","mark","punctuation","red"],emoji:"❗️",text:"❗︎",type:1,order:4799,group:8,subgroup:91,version:.6,shortCodes:["exclamation"]},{label:"wavy dash",hexcode:"3030",tags:["dash","punctuation","wavy"],emoji:"〰️",text:"〰︎",type:0,order:4801,group:8,subgroup:91,version:.6,shortCodes:["wavy_dash"]},{label:"currency exchange",hexcode:"1F4B1",tags:["bank","currency","exchange","money"],emoji:"💱",text:"",type:1,order:4802,group:8,subgroup:92,version:.6,shortCodes:["currency_exchange"]},{label:"heavy dollar sign",hexcode:"1F4B2",tags:["billion","cash","charge","currency","dollar","heavy","million","money","pay","sign"],emoji:"💲",text:"",type:1,order:4803,group:8,subgroup:92,version:.6,shortCodes:["heavy_dollar_sign"]},{label:"medical symbol",hexcode:"2695",tags:["aesculapius","medical","medicine","staff","symbol"],emoji:"⚕️",text:"⚕︎",type:0,order:4805,group:8,subgroup:93,version:4,shortCodes:["medical","medical_symbol"]},{label:"recycling symbol",hexcode:"267B",tags:["recycle","recycling","symbol"],emoji:"♻️",text:"♻︎",type:0,order:4807,group:8,subgroup:93,version:.6,shortCodes:["recycle","recycling_symbol"]},{label:"fleur-de-lis",hexcode:"269C",tags:["knights"],emoji:"⚜️",text:"⚜︎",type:0,order:4809,group:8,subgroup:93,version:1,shortCodes:["fleur-de-lis"]},{label:"trident emblem",hexcode:"1F531",tags:["anchor","emblem","poseidon","ship","tool","trident"],emoji:"🔱",text:"",type:1,order:4810,group:8,subgroup:93,version:.6,shortCodes:["trident"]},{label:"name badge",hexcode:"1F4DB",tags:["badge","name"],emoji:"📛",text:"",type:1,order:4811,group:8,subgroup:93,version:.6,shortCodes:["name_badge"]},{label:"Japanese symbol for beginner",hexcode:"1F530",tags:["beginner","chevron","green","japanese","leaf","symbol","tool","yellow"],emoji:"🔰",text:"",type:1,order:4812,group:8,subgroup:93,version:.6,shortCodes:["beginner"]},{label:"hollow red circle",hexcode:"2B55",tags:["circle","heavy","hollow","large","o","red"],emoji:"⭕️",text:"⭕︎",type:1,order:4813,group:8,subgroup:93,version:.6,shortCodes:["hollow_red_circle","red_o"]},{label:"check mark button",hexcode:"2705",tags:["button","check","checked","checkmark","complete","completed","done","fixed","mark","tick","✓"],emoji:"✅️",text:"✅︎",type:1,order:4814,group:8,subgroup:93,version:.6,shortCodes:["check_mark_button","white_check_mark"]},{label:"check box with check",hexcode:"2611",tags:["ballot","box","check","checked","done","off","tick","✓"],emoji:"☑️",text:"☑︎",type:0,order:4816,group:8,subgroup:93,version:.6,shortCodes:["ballot_box_with_check"]},{label:"check mark",hexcode:"2714",tags:["check","checked","checkmark","done","heavy","mark","tick","✓"],emoji:"✔️",text:"✔︎",type:0,order:4818,group:8,subgroup:93,version:.6,shortCodes:["check_mark","heavy_check_mark"]},{label:"cross mark",hexcode:"274C",tags:["cancel","cross","mark","multiplication","multiply","x","×"],emoji:"❌️",text:"❌︎",type:1,order:4819,group:8,subgroup:93,version:.6,shortCodes:["cross_mark","x"]},{label:"cross mark button",hexcode:"274E",tags:["button","cross","mark","multiplication","multiply","square","x","×"],emoji:"❎️",text:"❎︎",type:1,order:4820,group:8,subgroup:93,version:.6,shortCodes:["cross_mark_button","negative_squared_cross_mark"]},{label:"curly loop",hexcode:"27B0",tags:["curl","curly","loop"],emoji:"➰️",text:"➰︎",type:1,order:4821,group:8,subgroup:93,version:.6,shortCodes:["curly_loop"]},{label:"double curly loop",hexcode:"27BF",tags:["curl","curly","double","loop"],emoji:"➿️",text:"➿︎",type:1,order:4822,group:8,subgroup:93,version:1,shortCodes:["double_curly_loop","loop"]},{label:"part alternation mark",hexcode:"303D",tags:["alternation","mark","part"],emoji:"〽️",text:"〽︎",type:0,order:4824,group:8,subgroup:93,version:.6,shortCodes:["part_alternation_mark"]},{label:"eight-spoked asterisk",hexcode:"2733",tags:["*","asterisk","eight-spoked"],emoji:"✳️",text:"✳︎",type:0,order:4826,group:8,subgroup:93,version:.6,shortCodes:["eight_spoked_asterisk"]},{label:"eight-pointed star",hexcode:"2734",tags:["*","eight-pointed","star"],emoji:"✴️",text:"✴︎",type:0,order:4828,group:8,subgroup:93,version:.6,shortCodes:["eight_pointed_black_star"]},{label:"sparkle",hexcode:"2747",tags:["*"],emoji:"❇️",text:"❇︎",type:0,order:4830,group:8,subgroup:93,version:.6,shortCodes:["sparkle"]},{label:"copyright",hexcode:"00A9",tags:["c"],emoji:"©️",text:"©︎",type:0,order:4832,group:8,subgroup:93,version:.6,shortCodes:["copyright"]},{label:"registered",hexcode:"00AE",tags:["r"],emoji:"®️",text:"®︎",type:0,order:4834,group:8,subgroup:93,version:.6,shortCodes:["registered"]},{label:"trade mark",hexcode:"2122",tags:["mark","tm","trade","trademark"],emoji:"™️",text:"™︎",type:0,order:4836,group:8,subgroup:93,version:.6,shortCodes:["tm","trade_mark"]},{label:"splatter",hexcode:"1FADF",tags:["drip","holi","ink","liquid","mess","paint","spill","stain"],emoji:"🫟",text:"",type:1,order:4837,group:8,subgroup:93,version:16,shortCodes:["splatter"]},{label:"keycap: #",hexcode:"0023-FE0F-20E3",tags:["keycap"],emoji:"#️⃣",text:"",type:1,order:4838,group:8,subgroup:94,version:.6,shortCodes:["hash","number_sign"]},{label:"keycap: *",hexcode:"002A-FE0F-20E3",tags:["keycap"],emoji:"*️⃣",text:"",type:1,order:4840,group:8,subgroup:94,version:2,shortCodes:["asterisk"]},{label:"keycap: 0",hexcode:"0030-FE0F-20E3",tags:["0","keycap","zero"],emoji:"0️⃣",text:"",type:1,order:4842,group:8,subgroup:94,version:.6,shortCodes:["zero"]},{label:"keycap: 1",hexcode:"0031-FE0F-20E3",tags:["1","keycap","one"],emoji:"1️⃣",text:"",type:1,order:4844,group:8,subgroup:94,version:.6,shortCodes:["one"]},{label:"keycap: 2",hexcode:"0032-FE0F-20E3",tags:["2","keycap","two"],emoji:"2️⃣",text:"",type:1,order:4846,group:8,subgroup:94,version:.6,shortCodes:["two"]},{label:"keycap: 3",hexcode:"0033-FE0F-20E3",tags:["3","keycap","three"],emoji:"3️⃣",text:"",type:1,order:4848,group:8,subgroup:94,version:.6,shortCodes:["three"]},{label:"keycap: 4",hexcode:"0034-FE0F-20E3",tags:["4","four","keycap"],emoji:"4️⃣",text:"",type:1,order:4850,group:8,subgroup:94,version:.6,shortCodes:["four"]},{label:"keycap: 5",hexcode:"0035-FE0F-20E3",tags:["5","five","keycap"],emoji:"5️⃣",text:"",type:1,order:4852,group:8,subgroup:94,version:.6,shortCodes:["five"]},{label:"keycap: 6",hexcode:"0036-FE0F-20E3",tags:["6","keycap","six"],emoji:"6️⃣",text:"",type:1,order:4854,group:8,subgroup:94,version:.6,shortCodes:["six"]},{label:"keycap: 7",hexcode:"0037-FE0F-20E3",tags:["7","keycap","seven"],emoji:"7️⃣",text:"",type:1,order:4856,group:8,subgroup:94,version:.6,shortCodes:["seven"]},{label:"keycap: 8",hexcode:"0038-FE0F-20E3",tags:["8","eight","keycap"],emoji:"8️⃣",text:"",type:1,order:4858,group:8,subgroup:94,version:.6,shortCodes:["eight"]},{label:"keycap: 9",hexcode:"0039-FE0F-20E3",tags:["9","keycap","nine"],emoji:"9️⃣",text:"",type:1,order:4860,group:8,subgroup:94,version:.6,shortCodes:["nine"]},{label:"keycap: 10",hexcode:"1F51F",tags:["keycap"],emoji:"🔟",text:"",type:1,order:4862,group:8,subgroup:94,version:.6,shortCodes:["ten"]},{label:"input latin uppercase",hexcode:"1F520",tags:["abcd","input","latin","letters","uppercase"],emoji:"🔠",text:"",type:1,order:4863,group:8,subgroup:95,version:.6,shortCodes:["capital_abcd"]},{label:"input latin lowercase",hexcode:"1F521",tags:["abcd","input","latin","letters","lowercase"],emoji:"🔡",text:"",type:1,order:4864,group:8,subgroup:95,version:.6,shortCodes:["abcd"]},{label:"input numbers",hexcode:"1F522",tags:["1234","input","numbers"],emoji:"🔢",text:"",type:1,order:4865,group:8,subgroup:95,version:.6,shortCodes:["1234"]},{label:"input symbols",hexcode:"1F523",tags:["%","&","input","symbols","♪","〒"],emoji:"🔣",text:"",type:1,order:4866,group:8,subgroup:95,version:.6,shortCodes:["symbols"]},{label:"input latin letters",hexcode:"1F524",tags:["abc","alphabet","input","latin","letters"],emoji:"🔤",text:"",type:1,order:4867,group:8,subgroup:95,version:.6,shortCodes:["abc"]},{label:"A button (blood type)",hexcode:"1F170",tags:["blood","button","type"],emoji:"🅰️",text:"🅰︎",type:0,order:4869,group:8,subgroup:95,version:.6,shortCodes:["a","a_blood"]},{label:"AB button (blood type)",hexcode:"1F18E",tags:["ab","blood","button","type"],emoji:"🆎",text:"",type:1,order:4870,group:8,subgroup:95,version:.6,shortCodes:["ab","ab_blood"]},{label:"B button (blood type)",hexcode:"1F171",tags:["b","blood","button","type"],emoji:"🅱️",text:"🅱︎",type:0,order:4872,group:8,subgroup:95,version:.6,shortCodes:["b","b_blood"]},{label:"CL button",hexcode:"1F191",tags:["button","cl"],emoji:"🆑",text:"",type:1,order:4873,group:8,subgroup:95,version:.6,shortCodes:["cl"]},{label:"COOL button",hexcode:"1F192",tags:["button","cool"],emoji:"🆒",text:"",type:1,order:4874,group:8,subgroup:95,version:.6,shortCodes:["cool"]},{label:"FREE button",hexcode:"1F193",tags:["button","free"],emoji:"🆓",text:"",type:1,order:4875,group:8,subgroup:95,version:.6,shortCodes:["free"]},{label:"information",hexcode:"2139",tags:["i"],emoji:"ℹ️",text:"ℹ︎",type:0,order:4877,group:8,subgroup:95,version:.6,shortCodes:["info","information_source"]},{label:"ID button",hexcode:"1F194",tags:["button","id","identity"],emoji:"🆔",text:"",type:1,order:4878,group:8,subgroup:95,version:.6,shortCodes:["id"]},{label:"circled M",hexcode:"24C2",tags:["circle","circled","m"],emoji:"Ⓜ️",text:"Ⓜ︎",type:0,order:4880,group:8,subgroup:95,version:.6,shortCodes:["m"]},{label:"NEW button",hexcode:"1F195",tags:["button","new"],emoji:"🆕",text:"",type:1,order:4881,group:8,subgroup:95,version:.6,shortCodes:["new"]},{label:"NG button",hexcode:"1F196",tags:["button","ng"],emoji:"🆖",text:"",type:1,order:4882,group:8,subgroup:95,version:.6,shortCodes:["ng"]},{label:"O button (blood type)",hexcode:"1F17E",tags:["blood","button","o","type"],emoji:"🅾️",text:"🅾︎",type:0,order:4884,group:8,subgroup:95,version:.6,shortCodes:["o","o_blood"]},{label:"OK button",hexcode:"1F197",tags:["button","ok","okay"],emoji:"🆗",text:"",type:1,order:4885,group:8,subgroup:95,version:.6,shortCodes:["ok"]},{label:"P button",hexcode:"1F17F",tags:["button","p","parking"],emoji:"🅿️",text:"🅿︎",type:0,order:4887,group:8,subgroup:95,version:.6,shortCodes:["parking"]},{label:"SOS button",hexcode:"1F198",tags:["button","help","sos"],emoji:"🆘",text:"",type:1,order:4888,group:8,subgroup:95,version:.6,shortCodes:["sos"]},{label:"UP! button",hexcode:"1F199",tags:["button","mark","up","up!"],emoji:"🆙",text:"",type:1,order:4889,group:8,subgroup:95,version:.6,shortCodes:["up2"]},{label:"VS button",hexcode:"1F19A",tags:["button","versus","vs"],emoji:"🆚",text:"",type:1,order:4890,group:8,subgroup:95,version:.6,shortCodes:["vs"]},{label:"Japanese “here” button",hexcode:"1F201",tags:["button","here","japanese","katakana"],emoji:"🈁",text:"",type:1,order:4891,group:8,subgroup:95,version:.6,shortCodes:["ja_here","koko"]},{label:"Japanese “service charge” button",hexcode:"1F202",tags:["button","charge","japanese","katakana","service"],emoji:"🈂️",text:"🈂︎",type:0,order:4893,group:8,subgroup:95,version:.6,shortCodes:["ja_service_charge"]},{label:"Japanese “monthly amount” button",hexcode:"1F237",tags:["amount","button","ideograph","japanese","monthly"],emoji:"🈷️",text:"🈷︎",type:0,order:4895,group:8,subgroup:95,version:.6,shortCodes:["ja_monthly_amount"]},{label:"Japanese “not free of charge” button",hexcode:"1F236",tags:["button","charge","free","ideograph","japanese","not"],emoji:"🈶",text:"",type:1,order:4896,group:8,subgroup:95,version:.6,shortCodes:["ja_not_free_of_carge"]},{label:"Japanese “reserved” button",hexcode:"1F22F",tags:["button","ideograph","japanese","reserved"],emoji:"🈯️",text:"🈯︎",type:1,order:4897,group:8,subgroup:95,version:.6,shortCodes:["ja_reserved"]},{label:"Japanese “bargain” button",hexcode:"1F250",tags:["bargain","button","ideograph","japanese"],emoji:"🉐",text:"",type:1,order:4898,group:8,subgroup:95,version:.6,shortCodes:["ideograph_advantage","ja_bargain"]},{label:"Japanese “discount” button",hexcode:"1F239",tags:["button","discount","ideograph","japanese"],emoji:"🈹",text:"",type:1,order:4899,group:8,subgroup:95,version:.6,shortCodes:["ja_discount"]},{label:"Japanese “free of charge” button",hexcode:"1F21A",tags:["button","charge","free","ideograph","japanese"],emoji:"🈚️",text:"🈚︎",type:1,order:4900,group:8,subgroup:95,version:.6,shortCodes:["ja_free_of_charge"]},{label:"Japanese “prohibited” button",hexcode:"1F232",tags:["button","ideograph","japanese","prohibited"],emoji:"🈲",text:"",type:1,order:4901,group:8,subgroup:95,version:.6,shortCodes:["ja_prohibited"]},{label:"Japanese “acceptable” button",hexcode:"1F251",tags:["acceptable","button","ideograph","japanese"],emoji:"🉑",text:"",type:1,order:4902,group:8,subgroup:95,version:.6,shortCodes:["accept","ja_acceptable"]},{label:"Japanese “application” button",hexcode:"1F238",tags:["application","button","ideograph","japanese"],emoji:"🈸",text:"",type:1,order:4903,group:8,subgroup:95,version:.6,shortCodes:["ja_application"]},{label:"Japanese “passing grade” button",hexcode:"1F234",tags:["button","grade","ideograph","japanese","passing"],emoji:"🈴",text:"",type:1,order:4904,group:8,subgroup:95,version:.6,shortCodes:["ja_passing_grade"]},{label:"Japanese “vacancy” button",hexcode:"1F233",tags:["button","ideograph","japanese","vacancy"],emoji:"🈳",text:"",type:1,order:4905,group:8,subgroup:95,version:.6,shortCodes:["ja_vacancy"]},{label:"Japanese “congratulations” button",hexcode:"3297",tags:["button","congratulations","ideograph","japanese"],emoji:"㊗️",text:"㊗︎",type:0,order:4907,group:8,subgroup:95,version:.6,shortCodes:["congratulations","ja_congratulations"]},{label:"Japanese “secret” button",hexcode:"3299",tags:["button","ideograph","japanese","secret"],emoji:"㊙️",text:"㊙︎",type:0,order:4909,group:8,subgroup:95,version:.6,shortCodes:["ja_secret","secret"]},{label:"Japanese “open for business” button",hexcode:"1F23A",tags:["business","button","ideograph","japanese","open"],emoji:"🈺",text:"",type:1,order:4910,group:8,subgroup:95,version:.6,shortCodes:["ja_open_for_business"]},{label:"Japanese “no vacancy” button",hexcode:"1F235",tags:["button","ideograph","japanese","no","vacancy"],emoji:"🈵",text:"",type:1,order:4911,group:8,subgroup:95,version:.6,shortCodes:["ja_no_vacancy"]},{label:"red circle",hexcode:"1F534",tags:["circle","geometric","red"],emoji:"🔴",text:"",type:1,order:4912,group:8,subgroup:96,version:.6,shortCodes:["red_circle"]},{label:"orange circle",hexcode:"1F7E0",tags:["circle","orange"],emoji:"🟠",text:"",type:1,order:4913,group:8,subgroup:96,version:12,shortCodes:["orange_circle"]},{label:"yellow circle",hexcode:"1F7E1",tags:["circle","yellow"],emoji:"🟡",text:"",type:1,order:4914,group:8,subgroup:96,version:12,shortCodes:["yellow_circle"]},{label:"green circle",hexcode:"1F7E2",tags:["circle","green"],emoji:"🟢",text:"",type:1,order:4915,group:8,subgroup:96,version:12,shortCodes:["green_circle"]},{label:"blue circle",hexcode:"1F535",tags:["blue","circle","geometric"],emoji:"🔵",text:"",type:1,order:4916,group:8,subgroup:96,version:.6,shortCodes:["blue_circle"]},{label:"purple circle",hexcode:"1F7E3",tags:["circle","purple"],emoji:"🟣",text:"",type:1,order:4917,group:8,subgroup:96,version:12,shortCodes:["purple_circle"]},{label:"brown circle",hexcode:"1F7E4",tags:["brown","circle"],emoji:"🟤",text:"",type:1,order:4918,group:8,subgroup:96,version:12,shortCodes:["brown_circle"]},{label:"black circle",hexcode:"26AB",tags:["black","circle","geometric"],emoji:"⚫️",text:"⚫︎",type:1,order:4919,group:8,subgroup:96,version:.6,shortCodes:["black_circle"]},{label:"white circle",hexcode:"26AA",tags:["circle","geometric","white"],emoji:"⚪️",text:"⚪︎",type:1,order:4920,group:8,subgroup:96,version:.6,shortCodes:["white_circle"]},{label:"red square",hexcode:"1F7E5",tags:["card","penalty","red","square"],emoji:"🟥",text:"",type:1,order:4921,group:8,subgroup:96,version:12,shortCodes:["red_square"]},{label:"orange square",hexcode:"1F7E7",tags:["orange","square"],emoji:"🟧",text:"",type:1,order:4922,group:8,subgroup:96,version:12,shortCodes:["orange_square"]},{label:"yellow square",hexcode:"1F7E8",tags:["card","penalty","square","yellow"],emoji:"🟨",text:"",type:1,order:4923,group:8,subgroup:96,version:12,shortCodes:["yellow_square"]},{label:"green square",hexcode:"1F7E9",tags:["green","square"],emoji:"🟩",text:"",type:1,order:4924,group:8,subgroup:96,version:12,shortCodes:["green_square"]},{label:"blue square",hexcode:"1F7E6",tags:["blue","square"],emoji:"🟦",text:"",type:1,order:4925,group:8,subgroup:96,version:12,shortCodes:["blue_square"]},{label:"purple square",hexcode:"1F7EA",tags:["purple","square"],emoji:"🟪",text:"",type:1,order:4926,group:8,subgroup:96,version:12,shortCodes:["purple_square"]},{label:"brown square",hexcode:"1F7EB",tags:["brown","square"],emoji:"🟫",text:"",type:1,order:4927,group:8,subgroup:96,version:12,shortCodes:["brown_square"]},{label:"black large square",hexcode:"2B1B",tags:["black","geometric","large","square"],emoji:"⬛️",text:"⬛︎",type:1,order:4928,group:8,subgroup:96,version:.6,shortCodes:["black_large_square"]},{label:"white large square",hexcode:"2B1C",tags:["geometric","large","square","white"],emoji:"⬜️",text:"⬜︎",type:1,order:4929,group:8,subgroup:96,version:.6,shortCodes:["white_large_square"]},{label:"black medium square",hexcode:"25FC",tags:["black","geometric","medium","square"],emoji:"◼️",text:"◼︎",type:0,order:4931,group:8,subgroup:96,version:.6,shortCodes:["black_medium_square"]},{label:"white medium square",hexcode:"25FB",tags:["geometric","medium","square","white"],emoji:"◻️",text:"◻︎",type:0,order:4933,group:8,subgroup:96,version:.6,shortCodes:["white_medium_square"]},{label:"black medium-small square",hexcode:"25FE",tags:["black","geometric","medium-small","square"],emoji:"◾️",text:"◾︎",type:1,order:4934,group:8,subgroup:96,version:.6,shortCodes:["black_medium_small_square"]},{label:"white medium-small square",hexcode:"25FD",tags:["geometric","medium-small","square","white"],emoji:"◽️",text:"◽︎",type:1,order:4935,group:8,subgroup:96,version:.6,shortCodes:["white_medium_small_square"]},{label:"black small square",hexcode:"25AA",tags:["black","geometric","small","square"],emoji:"▪️",text:"▪︎",type:0,order:4937,group:8,subgroup:96,version:.6,shortCodes:["black_small_square"]},{label:"white small square",hexcode:"25AB",tags:["geometric","small","square","white"],emoji:"▫️",text:"▫︎",type:0,order:4939,group:8,subgroup:96,version:.6,shortCodes:["white_small_square"]},{label:"large orange diamond",hexcode:"1F536",tags:["diamond","geometric","large","orange"],emoji:"🔶",text:"",type:1,order:4940,group:8,subgroup:96,version:.6,shortCodes:["large_orange_diamond"]},{label:"large blue diamond",hexcode:"1F537",tags:["blue","diamond","geometric","large"],emoji:"🔷",text:"",type:1,order:4941,group:8,subgroup:96,version:.6,shortCodes:["large_blue_diamond"]},{label:"small orange diamond",hexcode:"1F538",tags:["diamond","geometric","orange","small"],emoji:"🔸",text:"",type:1,order:4942,group:8,subgroup:96,version:.6,shortCodes:["small_orange_diamond"]},{label:"small blue diamond",hexcode:"1F539",tags:["blue","diamond","geometric","small"],emoji:"🔹",text:"",type:1,order:4943,group:8,subgroup:96,version:.6,shortCodes:["small_blue_diamond"]},{label:"red triangle pointed up",hexcode:"1F53A",tags:["geometric","pointed","red","triangle","up"],emoji:"🔺",text:"",type:1,order:4944,group:8,subgroup:96,version:.6,shortCodes:["small_red_triangle"]},{label:"red triangle pointed down",hexcode:"1F53B",tags:["down","geometric","pointed","red","triangle"],emoji:"🔻",text:"",type:1,order:4945,group:8,subgroup:96,version:.6,shortCodes:["small_red_triangle_down"]},{label:"diamond with a dot",hexcode:"1F4A0",tags:["comic","diamond","dot","geometric"],emoji:"💠",text:"",type:1,order:4946,group:8,subgroup:96,version:.6,shortCodes:["diamond_shape_with_a_dot_inside","diamond_with_a_dot"]},{label:"radio button",hexcode:"1F518",tags:["button","geometric","radio"],emoji:"🔘",text:"",type:1,order:4947,group:8,subgroup:96,version:.6,shortCodes:["radio_button"]},{label:"white square button",hexcode:"1F533",tags:["button","geometric","outlined","square","white"],emoji:"🔳",text:"",type:1,order:4948,group:8,subgroup:96,version:.6,shortCodes:["white_square_button"]},{label:"black square button",hexcode:"1F532",tags:["black","button","geometric","square"],emoji:"🔲",text:"",type:1,order:4949,group:8,subgroup:96,version:.6,shortCodes:["black_square_button"]},{label:"chequered flag",hexcode:"1F3C1",tags:["checkered","chequered","finish","flag","flags","game","race","racing","sport","win"],emoji:"🏁",text:"",type:1,order:4950,group:9,subgroup:97,version:.6,shortCodes:["checkered_flag"]},{label:"triangular flag",hexcode:"1F6A9",tags:["construction","flag","golf","post","triangular"],emoji:"🚩",text:"",type:1,order:4951,group:9,subgroup:97,version:.6,shortCodes:["triangular_flag","triangular_flag_on_post"]},{label:"crossed flags",hexcode:"1F38C",tags:["celebration","cross","crossed","flags","japanese"],emoji:"🎌",text:"",type:1,order:4952,group:9,subgroup:97,version:.6,shortCodes:["crossed_flags"]},{label:"black flag",hexcode:"1F3F4",tags:["black","flag","waving"],emoji:"🏴",text:"",type:1,order:4953,group:9,subgroup:97,version:1,shortCodes:["black_flag"]},{label:"white flag",hexcode:"1F3F3",tags:["flag","waving","white"],emoji:"🏳️",text:"🏳︎",type:0,order:4955,group:9,subgroup:97,version:.7,shortCodes:["white_flag"]},{label:"rainbow flag",hexcode:"1F3F3-FE0F-200D-1F308",tags:["bisexual","flag","gay","genderqueer","glbt","glbtq","lesbian","lgbt","lgbtq","lgbtqia","pride","queer","rainbow","trans","transgender"],emoji:"🏳️‍🌈",text:"",type:1,order:4956,group:9,subgroup:97,version:4,shortCodes:["rainbow_flag"]},{label:"transgender flag",hexcode:"1F3F3-FE0F-200D-26A7-FE0F",tags:["blue","flag","light","pink","transgender","white"],emoji:"🏳️‍⚧️",text:"",type:1,order:4958,group:9,subgroup:97,version:13,shortCodes:["transgender_flag"]},{label:"pirate flag",hexcode:"1F3F4-200D-2620-FE0F",tags:["flag","jolly","pirate","plunder","roger","treasure"],emoji:"🏴‍☠️",text:"",type:1,order:4962,group:9,subgroup:97,version:11,shortCodes:["jolly_roger","pirate_flag"]},{label:"flag: Ascension Island",hexcode:"1F1E6-1F1E8",tags:["AC","flag"],emoji:"🇦🇨",text:"",type:1,order:4964,group:9,subgroup:98,version:2,shortCodes:["ascension_island","flag_ac"]},{label:"flag: Andorra",hexcode:"1F1E6-1F1E9",tags:["AD","flag"],emoji:"🇦🇩",text:"",type:1,order:4965,group:9,subgroup:98,version:2,shortCodes:["andorra","flag_ad"]},{label:"flag: United Arab Emirates",hexcode:"1F1E6-1F1EA",tags:["AE","flag"],emoji:"🇦🇪",text:"",type:1,order:4966,group:9,subgroup:98,version:2,shortCodes:["flag_ae","united_arab_emirates"]},{label:"flag: Afghanistan",hexcode:"1F1E6-1F1EB",tags:["AF","flag"],emoji:"🇦🇫",text:"",type:1,order:4967,group:9,subgroup:98,version:2,shortCodes:["afghanistan","flag_af"]},{label:"flag: Antigua & Barbuda",hexcode:"1F1E6-1F1EC",tags:["AG","flag"],emoji:"🇦🇬",text:"",type:1,order:4968,group:9,subgroup:98,version:2,shortCodes:["antigua_barbuda","flag_ag"]},{label:"flag: Anguilla",hexcode:"1F1E6-1F1EE",tags:["AI","flag"],emoji:"🇦🇮",text:"",type:1,order:4969,group:9,subgroup:98,version:2,shortCodes:["anguilla","flag_ai"]},{label:"flag: Albania",hexcode:"1F1E6-1F1F1",tags:["AL","flag"],emoji:"🇦🇱",text:"",type:1,order:4970,group:9,subgroup:98,version:2,shortCodes:["albania","flag_al"]},{label:"flag: Armenia",hexcode:"1F1E6-1F1F2",tags:["AM","flag"],emoji:"🇦🇲",text:"",type:1,order:4971,group:9,subgroup:98,version:2,shortCodes:["armenia","flag_am"]},{label:"flag: Angola",hexcode:"1F1E6-1F1F4",tags:["AO","flag"],emoji:"🇦🇴",text:"",type:1,order:4972,group:9,subgroup:98,version:2,shortCodes:["angola","flag_ao"]},{label:"flag: Antarctica",hexcode:"1F1E6-1F1F6",tags:["AQ","flag"],emoji:"🇦🇶",text:"",type:1,order:4973,group:9,subgroup:98,version:2,shortCodes:["antarctica","flag_aq"]},{label:"flag: Argentina",hexcode:"1F1E6-1F1F7",tags:["AR","flag"],emoji:"🇦🇷",text:"",type:1,order:4974,group:9,subgroup:98,version:2,shortCodes:["argentina","flag_ar"]},{label:"flag: American Samoa",hexcode:"1F1E6-1F1F8",tags:["AS","flag"],emoji:"🇦🇸",text:"",type:1,order:4975,group:9,subgroup:98,version:2,shortCodes:["american_samoa","flag_as"]},{label:"flag: Austria",hexcode:"1F1E6-1F1F9",tags:["AT","flag"],emoji:"🇦🇹",text:"",type:1,order:4976,group:9,subgroup:98,version:2,shortCodes:["austria","flag_at"]},{label:"flag: Australia",hexcode:"1F1E6-1F1FA",tags:["AU","flag"],emoji:"🇦🇺",text:"",type:1,order:4977,group:9,subgroup:98,version:2,shortCodes:["australia","flag_au"]},{label:"flag: Aruba",hexcode:"1F1E6-1F1FC",tags:["AW","flag"],emoji:"🇦🇼",text:"",type:1,order:4978,group:9,subgroup:98,version:2,shortCodes:["aruba","flag_aw"]},{label:"flag: Åland Islands",hexcode:"1F1E6-1F1FD",tags:["AX","flag"],emoji:"🇦🇽",text:"",type:1,order:4979,group:9,subgroup:98,version:2,shortCodes:["aland_islands","flag_ax"]},{label:"flag: Azerbaijan",hexcode:"1F1E6-1F1FF",tags:["AZ","flag"],emoji:"🇦🇿",text:"",type:1,order:4980,group:9,subgroup:98,version:2,shortCodes:["azerbaijan","flag_az"]},{label:"flag: Bosnia & Herzegovina",hexcode:"1F1E7-1F1E6",tags:["BA","flag"],emoji:"🇧🇦",text:"",type:1,order:4981,group:9,subgroup:98,version:2,shortCodes:["bosnia_herzegovina","flag_ba"]},{label:"flag: Barbados",hexcode:"1F1E7-1F1E7",tags:["BB","flag"],emoji:"🇧🇧",text:"",type:1,order:4982,group:9,subgroup:98,version:2,shortCodes:["barbados","flag_bb"]},{label:"flag: Bangladesh",hexcode:"1F1E7-1F1E9",tags:["BD","flag"],emoji:"🇧🇩",text:"",type:1,order:4983,group:9,subgroup:98,version:2,shortCodes:["bangladesh","flag_bd"]},{label:"flag: Belgium",hexcode:"1F1E7-1F1EA",tags:["BE","flag"],emoji:"🇧🇪",text:"",type:1,order:4984,group:9,subgroup:98,version:2,shortCodes:["belgium","flag_be"]},{label:"flag: Burkina Faso",hexcode:"1F1E7-1F1EB",tags:["BF","flag"],emoji:"🇧🇫",text:"",type:1,order:4985,group:9,subgroup:98,version:2,shortCodes:["burkina_faso","flag_bf"]},{label:"flag: Bulgaria",hexcode:"1F1E7-1F1EC",tags:["BG","flag"],emoji:"🇧🇬",text:"",type:1,order:4986,group:9,subgroup:98,version:2,shortCodes:["bulgaria","flag_bg"]},{label:"flag: Bahrain",hexcode:"1F1E7-1F1ED",tags:["BH","flag"],emoji:"🇧🇭",text:"",type:1,order:4987,group:9,subgroup:98,version:2,shortCodes:["bahrain","flag_bh"]},{label:"flag: Burundi",hexcode:"1F1E7-1F1EE",tags:["BI","flag"],emoji:"🇧🇮",text:"",type:1,order:4988,group:9,subgroup:98,version:2,shortCodes:["burundi","flag_bi"]},{label:"flag: Benin",hexcode:"1F1E7-1F1EF",tags:["BJ","flag"],emoji:"🇧🇯",text:"",type:1,order:4989,group:9,subgroup:98,version:2,shortCodes:["benin","flag_bj"]},{label:"flag: St. Barthélemy",hexcode:"1F1E7-1F1F1",tags:["BL","flag"],emoji:"🇧🇱",text:"",type:1,order:4990,group:9,subgroup:98,version:2,shortCodes:["flag_bl","st_barthelemy"]},{label:"flag: Bermuda",hexcode:"1F1E7-1F1F2",tags:["BM","flag"],emoji:"🇧🇲",text:"",type:1,order:4991,group:9,subgroup:98,version:2,shortCodes:["bermuda","flag_bm"]},{label:"flag: Brunei",hexcode:"1F1E7-1F1F3",tags:["BN","flag"],emoji:"🇧🇳",text:"",type:1,order:4992,group:9,subgroup:98,version:2,shortCodes:["brunei","flag_bn"]},{label:"flag: Bolivia",hexcode:"1F1E7-1F1F4",tags:["BO","flag"],emoji:"🇧🇴",text:"",type:1,order:4993,group:9,subgroup:98,version:2,shortCodes:["bolivia","flag_bo"]},{label:"flag: Caribbean Netherlands",hexcode:"1F1E7-1F1F6",tags:["BQ","flag"],emoji:"🇧🇶",text:"",type:1,order:4994,group:9,subgroup:98,version:2,shortCodes:["caribbean_netherlands","flag_bq"]},{label:"flag: Brazil",hexcode:"1F1E7-1F1F7",tags:["BR","flag"],emoji:"🇧🇷",text:"",type:1,order:4995,group:9,subgroup:98,version:2,shortCodes:["brazil","flag_br"]},{label:"flag: Bahamas",hexcode:"1F1E7-1F1F8",tags:["BS","flag"],emoji:"🇧🇸",text:"",type:1,order:4996,group:9,subgroup:98,version:2,shortCodes:["bahamas","flag_bs"]},{label:"flag: Bhutan",hexcode:"1F1E7-1F1F9",tags:["BT","flag"],emoji:"🇧🇹",text:"",type:1,order:4997,group:9,subgroup:98,version:2,shortCodes:["bhutan","flag_bt"]},{label:"flag: Bouvet Island",hexcode:"1F1E7-1F1FB",tags:["BV","flag"],emoji:"🇧🇻",text:"",type:1,order:4998,group:9,subgroup:98,version:2,shortCodes:["bouvet_island","flag_bv"]},{label:"flag: Botswana",hexcode:"1F1E7-1F1FC",tags:["BW","flag"],emoji:"🇧🇼",text:"",type:1,order:4999,group:9,subgroup:98,version:2,shortCodes:["botswana","flag_bw"]},{label:"flag: Belarus",hexcode:"1F1E7-1F1FE",tags:["BY","flag"],emoji:"🇧🇾",text:"",type:1,order:5e3,group:9,subgroup:98,version:2,shortCodes:["belarus","flag_by"]},{label:"flag: Belize",hexcode:"1F1E7-1F1FF",tags:["BZ","flag"],emoji:"🇧🇿",text:"",type:1,order:5001,group:9,subgroup:98,version:2,shortCodes:["belize","flag_bz"]},{label:"flag: Canada",hexcode:"1F1E8-1F1E6",tags:["CA","flag"],emoji:"🇨🇦",text:"",type:1,order:5002,group:9,subgroup:98,version:2,shortCodes:["canada","flag_ca"]},{label:"flag: Cocos (Keeling) Islands",hexcode:"1F1E8-1F1E8",tags:["CC","flag"],emoji:"🇨🇨",text:"",type:1,order:5003,group:9,subgroup:98,version:2,shortCodes:["cocos_islands","flag_cc"]},{label:"flag: Congo - Kinshasa",hexcode:"1F1E8-1F1E9",tags:["CD","flag"],emoji:"🇨🇩",text:"",type:1,order:5004,group:9,subgroup:98,version:2,shortCodes:["congo_kinshasa","flag_cd"]},{label:"flag: Central African Republic",hexcode:"1F1E8-1F1EB",tags:["CF","flag"],emoji:"🇨🇫",text:"",type:1,order:5005,group:9,subgroup:98,version:2,shortCodes:["central_african_republic","flag_cf"]},{label:"flag: Congo - Brazzaville",hexcode:"1F1E8-1F1EC",tags:["CG","flag"],emoji:"🇨🇬",text:"",type:1,order:5006,group:9,subgroup:98,version:2,shortCodes:["congo_brazzaville","flag_cg"]},{label:"flag: Switzerland",hexcode:"1F1E8-1F1ED",tags:["CH","flag"],emoji:"🇨🇭",text:"",type:1,order:5007,group:9,subgroup:98,version:2,shortCodes:["flag_ch","switzerland"]},{label:"flag: Côte d’Ivoire",hexcode:"1F1E8-1F1EE",tags:["CI","flag"],emoji:"🇨🇮",text:"",type:1,order:5008,group:9,subgroup:98,version:2,shortCodes:["cote_divoire","flag_ci"]},{label:"flag: Cook Islands",hexcode:"1F1E8-1F1F0",tags:["CK","flag"],emoji:"🇨🇰",text:"",type:1,order:5009,group:9,subgroup:98,version:2,shortCodes:["cook_islands","flag_ck"]},{label:"flag: Chile",hexcode:"1F1E8-1F1F1",tags:["CL","flag"],emoji:"🇨🇱",text:"",type:1,order:5010,group:9,subgroup:98,version:2,shortCodes:["chile","flag_cl"]},{label:"flag: Cameroon",hexcode:"1F1E8-1F1F2",tags:["CM","flag"],emoji:"🇨🇲",text:"",type:1,order:5011,group:9,subgroup:98,version:2,shortCodes:["cameroon","flag_cm"]},{label:"flag: China",hexcode:"1F1E8-1F1F3",tags:["CN","flag"],emoji:"🇨🇳",text:"",type:1,order:5012,group:9,subgroup:98,version:.6,shortCodes:["china","flag_cn"]},{label:"flag: Colombia",hexcode:"1F1E8-1F1F4",tags:["CO","flag"],emoji:"🇨🇴",text:"",type:1,order:5013,group:9,subgroup:98,version:2,shortCodes:["colombia","flag_co"]},{label:"flag: Clipperton Island",hexcode:"1F1E8-1F1F5",tags:["CP","flag"],emoji:"🇨🇵",text:"",type:1,order:5014,group:9,subgroup:98,version:2,shortCodes:["clipperton_island","flag_cp"]},{label:"flag: Sark",hexcode:"1F1E8-1F1F6",tags:["CQ","flag"],emoji:"🇨🇶",text:"",type:1,order:5015,group:9,subgroup:98,version:16,shortCodes:["flag_cq","sark"]},{label:"flag: Costa Rica",hexcode:"1F1E8-1F1F7",tags:["CR","flag"],emoji:"🇨🇷",text:"",type:1,order:5016,group:9,subgroup:98,version:2,shortCodes:["costa_rica","flag_cr"]},{label:"flag: Cuba",hexcode:"1F1E8-1F1FA",tags:["CU","flag"],emoji:"🇨🇺",text:"",type:1,order:5017,group:9,subgroup:98,version:2,shortCodes:["cuba","flag_cu"]},{label:"flag: Cape Verde",hexcode:"1F1E8-1F1FB",tags:["CV","flag"],emoji:"🇨🇻",text:"",type:1,order:5018,group:9,subgroup:98,version:2,shortCodes:["cape_verde","flag_cv"]},{label:"flag: Curaçao",hexcode:"1F1E8-1F1FC",tags:["CW","flag"],emoji:"🇨🇼",text:"",type:1,order:5019,group:9,subgroup:98,version:2,shortCodes:["curacao","flag_cw"]},{label:"flag: Christmas Island",hexcode:"1F1E8-1F1FD",tags:["CX","flag"],emoji:"🇨🇽",text:"",type:1,order:5020,group:9,subgroup:98,version:2,shortCodes:["christmas_island","flag_cx"]},{label:"flag: Cyprus",hexcode:"1F1E8-1F1FE",tags:["CY","flag"],emoji:"🇨🇾",text:"",type:1,order:5021,group:9,subgroup:98,version:2,shortCodes:["cyprus","flag_cy"]},{label:"flag: Czechia",hexcode:"1F1E8-1F1FF",tags:["CZ","flag"],emoji:"🇨🇿",text:"",type:1,order:5022,group:9,subgroup:98,version:2,shortCodes:["czech_republic","czechia","flag_cz"]},{label:"flag: Germany",hexcode:"1F1E9-1F1EA",tags:["DE","flag"],emoji:"🇩🇪",text:"",type:1,order:5023,group:9,subgroup:98,version:.6,shortCodes:["flag_de","germany"]},{label:"flag: Diego Garcia",hexcode:"1F1E9-1F1EC",tags:["DG","flag"],emoji:"🇩🇬",text:"",type:1,order:5024,group:9,subgroup:98,version:2,shortCodes:["diego_garcia","flag_dg"]},{label:"flag: Djibouti",hexcode:"1F1E9-1F1EF",tags:["DJ","flag"],emoji:"🇩🇯",text:"",type:1,order:5025,group:9,subgroup:98,version:2,shortCodes:["djibouti","flag_dj"]},{label:"flag: Denmark",hexcode:"1F1E9-1F1F0",tags:["DK","flag"],emoji:"🇩🇰",text:"",type:1,order:5026,group:9,subgroup:98,version:2,shortCodes:["denmark","flag_dk"]},{label:"flag: Dominica",hexcode:"1F1E9-1F1F2",tags:["DM","flag"],emoji:"🇩🇲",text:"",type:1,order:5027,group:9,subgroup:98,version:2,shortCodes:["dominica","flag_dm"]},{label:"flag: Dominican Republic",hexcode:"1F1E9-1F1F4",tags:["DO","flag"],emoji:"🇩🇴",text:"",type:1,order:5028,group:9,subgroup:98,version:2,shortCodes:["dominican_republic","flag_do"]},{label:"flag: Algeria",hexcode:"1F1E9-1F1FF",tags:["DZ","flag"],emoji:"🇩🇿",text:"",type:1,order:5029,group:9,subgroup:98,version:2,shortCodes:["algeria","flag_dz"]},{label:"flag: Ceuta & Melilla",hexcode:"1F1EA-1F1E6",tags:["EA","flag"],emoji:"🇪🇦",text:"",type:1,order:5030,group:9,subgroup:98,version:2,shortCodes:["ceuta_melilla","flag_ea"]},{label:"flag: Ecuador",hexcode:"1F1EA-1F1E8",tags:["EC","flag"],emoji:"🇪🇨",text:"",type:1,order:5031,group:9,subgroup:98,version:2,shortCodes:["ecuador","flag_ec"]},{label:"flag: Estonia",hexcode:"1F1EA-1F1EA",tags:["EE","flag"],emoji:"🇪🇪",text:"",type:1,order:5032,group:9,subgroup:98,version:2,shortCodes:["estonia","flag_ee"]},{label:"flag: Egypt",hexcode:"1F1EA-1F1EC",tags:["EG","flag"],emoji:"🇪🇬",text:"",type:1,order:5033,group:9,subgroup:98,version:2,shortCodes:["egypt","flag_eg"]},{label:"flag: Western Sahara",hexcode:"1F1EA-1F1ED",tags:["EH","flag"],emoji:"🇪🇭",text:"",type:1,order:5034,group:9,subgroup:98,version:2,shortCodes:["flag_eh","western_sahara"]},{label:"flag: Eritrea",hexcode:"1F1EA-1F1F7",tags:["ER","flag"],emoji:"🇪🇷",text:"",type:1,order:5035,group:9,subgroup:98,version:2,shortCodes:["eritrea","flag_er"]},{label:"flag: Spain",hexcode:"1F1EA-1F1F8",tags:["ES","flag"],emoji:"🇪🇸",text:"",type:1,order:5036,group:9,subgroup:98,version:.6,shortCodes:["flag_es","spain"]},{label:"flag: Ethiopia",hexcode:"1F1EA-1F1F9",tags:["ET","flag"],emoji:"🇪🇹",text:"",type:1,order:5037,group:9,subgroup:98,version:2,shortCodes:["ethiopia","flag_et"]},{label:"flag: European Union",hexcode:"1F1EA-1F1FA",tags:["EU","flag"],emoji:"🇪🇺",text:"",type:1,order:5038,group:9,subgroup:98,version:2,shortCodes:["european_union","flag_eu"]},{label:"flag: Finland",hexcode:"1F1EB-1F1EE",tags:["FI","flag"],emoji:"🇫🇮",text:"",type:1,order:5039,group:9,subgroup:98,version:2,shortCodes:["finland","flag_fi"]},{label:"flag: Fiji",hexcode:"1F1EB-1F1EF",tags:["FJ","flag"],emoji:"🇫🇯",text:"",type:1,order:5040,group:9,subgroup:98,version:2,shortCodes:["fiji","flag_fj"]},{label:"flag: Falkland Islands",hexcode:"1F1EB-1F1F0",tags:["FK","flag"],emoji:"🇫🇰",text:"",type:1,order:5041,group:9,subgroup:98,version:2,shortCodes:["falkland_islands","flag_fk"]},{label:"flag: Micronesia",hexcode:"1F1EB-1F1F2",tags:["FM","flag"],emoji:"🇫🇲",text:"",type:1,order:5042,group:9,subgroup:98,version:2,shortCodes:["flag_fm","micronesia"]},{label:"flag: Faroe Islands",hexcode:"1F1EB-1F1F4",tags:["FO","flag"],emoji:"🇫🇴",text:"",type:1,order:5043,group:9,subgroup:98,version:2,shortCodes:["faroe_islands","flag_fo"]},{label:"flag: France",hexcode:"1F1EB-1F1F7",tags:["FR","flag"],emoji:"🇫🇷",text:"",type:1,order:5044,group:9,subgroup:98,version:.6,shortCodes:["flag_fr","france"]},{label:"flag: Gabon",hexcode:"1F1EC-1F1E6",tags:["GA","flag"],emoji:"🇬🇦",text:"",type:1,order:5045,group:9,subgroup:98,version:2,shortCodes:["flag_ga","gabon"]},{label:"flag: United Kingdom",hexcode:"1F1EC-1F1E7",tags:["GB","flag"],emoji:"🇬🇧",text:"",type:1,order:5046,group:9,subgroup:98,version:.6,shortCodes:["flag_gb","uk","united_kingdom"]},{label:"flag: Grenada",hexcode:"1F1EC-1F1E9",tags:["GD","flag"],emoji:"🇬🇩",text:"",type:1,order:5047,group:9,subgroup:98,version:2,shortCodes:["flag_gd","grenada"]},{label:"flag: Georgia",hexcode:"1F1EC-1F1EA",tags:["GE","flag"],emoji:"🇬🇪",text:"",type:1,order:5048,group:9,subgroup:98,version:2,shortCodes:["flag_ge","georgia"]},{label:"flag: French Guiana",hexcode:"1F1EC-1F1EB",tags:["GF","flag"],emoji:"🇬🇫",text:"",type:1,order:5049,group:9,subgroup:98,version:2,shortCodes:["flag_gf","french_guiana"]},{label:"flag: Guernsey",hexcode:"1F1EC-1F1EC",tags:["GG","flag"],emoji:"🇬🇬",text:"",type:1,order:5050,group:9,subgroup:98,version:2,shortCodes:["flag_gg","guernsey"]},{label:"flag: Ghana",hexcode:"1F1EC-1F1ED",tags:["GH","flag"],emoji:"🇬🇭",text:"",type:1,order:5051,group:9,subgroup:98,version:2,shortCodes:["flag_gh","ghana"]},{label:"flag: Gibraltar",hexcode:"1F1EC-1F1EE",tags:["GI","flag"],emoji:"🇬🇮",text:"",type:1,order:5052,group:9,subgroup:98,version:2,shortCodes:["flag_gi","gibraltar"]},{label:"flag: Greenland",hexcode:"1F1EC-1F1F1",tags:["GL","flag"],emoji:"🇬🇱",text:"",type:1,order:5053,group:9,subgroup:98,version:2,shortCodes:["flag_gl","greenland"]},{label:"flag: Gambia",hexcode:"1F1EC-1F1F2",tags:["GM","flag"],emoji:"🇬🇲",text:"",type:1,order:5054,group:9,subgroup:98,version:2,shortCodes:["flag_gm","gambia"]},{label:"flag: Guinea",hexcode:"1F1EC-1F1F3",tags:["GN","flag"],emoji:"🇬🇳",text:"",type:1,order:5055,group:9,subgroup:98,version:2,shortCodes:["flag_gn","guinea"]},{label:"flag: Guadeloupe",hexcode:"1F1EC-1F1F5",tags:["GP","flag"],emoji:"🇬🇵",text:"",type:1,order:5056,group:9,subgroup:98,version:2,shortCodes:["flag_gp","guadeloupe"]},{label:"flag: Equatorial Guinea",hexcode:"1F1EC-1F1F6",tags:["GQ","flag"],emoji:"🇬🇶",text:"",type:1,order:5057,group:9,subgroup:98,version:2,shortCodes:["equatorial_guinea","flag_gq"]},{label:"flag: Greece",hexcode:"1F1EC-1F1F7",tags:["GR","flag"],emoji:"🇬🇷",text:"",type:1,order:5058,group:9,subgroup:98,version:2,shortCodes:["flag_gr","greece"]},{label:"flag: South Georgia & South Sandwich Islands",hexcode:"1F1EC-1F1F8",tags:["GS","flag"],emoji:"🇬🇸",text:"",type:1,order:5059,group:9,subgroup:98,version:2,shortCodes:["flag_gs","south_georgia_south_sandwich_islands"]},{label:"flag: Guatemala",hexcode:"1F1EC-1F1F9",tags:["GT","flag"],emoji:"🇬🇹",text:"",type:1,order:5060,group:9,subgroup:98,version:2,shortCodes:["flag_gt","guatemala"]},{label:"flag: Guam",hexcode:"1F1EC-1F1FA",tags:["GU","flag"],emoji:"🇬🇺",text:"",type:1,order:5061,group:9,subgroup:98,version:2,shortCodes:["flag_gu","guam"]},{label:"flag: Guinea-Bissau",hexcode:"1F1EC-1F1FC",tags:["GW","flag"],emoji:"🇬🇼",text:"",type:1,order:5062,group:9,subgroup:98,version:2,shortCodes:["flag_gw","guinea_bissau"]},{label:"flag: Guyana",hexcode:"1F1EC-1F1FE",tags:["GY","flag"],emoji:"🇬🇾",text:"",type:1,order:5063,group:9,subgroup:98,version:2,shortCodes:["flag_gy","guyana"]},{label:"flag: Hong Kong SAR China",hexcode:"1F1ED-1F1F0",tags:["HK","flag"],emoji:"🇭🇰",text:"",type:1,order:5064,group:9,subgroup:98,version:2,shortCodes:["flag_hk","hong_kong"]},{label:"flag: Heard & McDonald Islands",hexcode:"1F1ED-1F1F2",tags:["HM","flag"],emoji:"🇭🇲",text:"",type:1,order:5065,group:9,subgroup:98,version:2,shortCodes:["flag_hm","heard_mcdonald_islands"]},{label:"flag: Honduras",hexcode:"1F1ED-1F1F3",tags:["HN","flag"],emoji:"🇭🇳",text:"",type:1,order:5066,group:9,subgroup:98,version:2,shortCodes:["flag_hn","honduras"]},{label:"flag: Croatia",hexcode:"1F1ED-1F1F7",tags:["HR","flag"],emoji:"🇭🇷",text:"",type:1,order:5067,group:9,subgroup:98,version:2,shortCodes:["croatia","flag_hr"]},{label:"flag: Haiti",hexcode:"1F1ED-1F1F9",tags:["HT","flag"],emoji:"🇭🇹",text:"",type:1,order:5068,group:9,subgroup:98,version:2,shortCodes:["flag_ht","haiti"]},{label:"flag: Hungary",hexcode:"1F1ED-1F1FA",tags:["HU","flag"],emoji:"🇭🇺",text:"",type:1,order:5069,group:9,subgroup:98,version:2,shortCodes:["flag_hu","hungary"]},{label:"flag: Canary Islands",hexcode:"1F1EE-1F1E8",tags:["IC","flag"],emoji:"🇮🇨",text:"",type:1,order:5070,group:9,subgroup:98,version:2,shortCodes:["canary_islands","flag_ic"]},{label:"flag: Indonesia",hexcode:"1F1EE-1F1E9",tags:["ID","flag"],emoji:"🇮🇩",text:"",type:1,order:5071,group:9,subgroup:98,version:2,shortCodes:["flag_id","indonesia"]},{label:"flag: Ireland",hexcode:"1F1EE-1F1EA",tags:["IE","flag"],emoji:"🇮🇪",text:"",type:1,order:5072,group:9,subgroup:98,version:2,shortCodes:["flag_ie","ireland"]},{label:"flag: Israel",hexcode:"1F1EE-1F1F1",tags:["IL","flag"],emoji:"🇮🇱",text:"",type:1,order:5073,group:9,subgroup:98,version:2,shortCodes:["flag_il","israel"]},{label:"flag: Isle of Man",hexcode:"1F1EE-1F1F2",tags:["IM","flag"],emoji:"🇮🇲",text:"",type:1,order:5074,group:9,subgroup:98,version:2,shortCodes:["flag_im","isle_of_man"]},{label:"flag: India",hexcode:"1F1EE-1F1F3",tags:["IN","flag"],emoji:"🇮🇳",text:"",type:1,order:5075,group:9,subgroup:98,version:2,shortCodes:["flag_in","india"]},{label:"flag: British Indian Ocean Territory",hexcode:"1F1EE-1F1F4",tags:["IO","flag"],emoji:"🇮🇴",text:"",type:1,order:5076,group:9,subgroup:98,version:2,shortCodes:["british_indian_ocean_territory","flag_io"]},{label:"flag: Iraq",hexcode:"1F1EE-1F1F6",tags:["IQ","flag"],emoji:"🇮🇶",text:"",type:1,order:5077,group:9,subgroup:98,version:2,shortCodes:["flag_iq","iraq"]},{label:"flag: Iran",hexcode:"1F1EE-1F1F7",tags:["IR","flag"],emoji:"🇮🇷",text:"",type:1,order:5078,group:9,subgroup:98,version:2,shortCodes:["flag_ir","iran"]},{label:"flag: Iceland",hexcode:"1F1EE-1F1F8",tags:["IS","flag"],emoji:"🇮🇸",text:"",type:1,order:5079,group:9,subgroup:98,version:2,shortCodes:["flag_is","iceland"]},{label:"flag: Italy",hexcode:"1F1EE-1F1F9",tags:["IT","flag"],emoji:"🇮🇹",text:"",type:1,order:5080,group:9,subgroup:98,version:.6,shortCodes:["flag_it","italy"]},{label:"flag: Jersey",hexcode:"1F1EF-1F1EA",tags:["JE","flag"],emoji:"🇯🇪",text:"",type:1,order:5081,group:9,subgroup:98,version:2,shortCodes:["flag_je","jersey"]},{label:"flag: Jamaica",hexcode:"1F1EF-1F1F2",tags:["JM","flag"],emoji:"🇯🇲",text:"",type:1,order:5082,group:9,subgroup:98,version:2,shortCodes:["flag_jm","jamaica"]},{label:"flag: Jordan",hexcode:"1F1EF-1F1F4",tags:["JO","flag"],emoji:"🇯🇴",text:"",type:1,order:5083,group:9,subgroup:98,version:2,shortCodes:["flag_jo","jordan"]},{label:"flag: Japan",hexcode:"1F1EF-1F1F5",tags:["JP","flag"],emoji:"🇯🇵",text:"",type:1,order:5084,group:9,subgroup:98,version:.6,shortCodes:["flag_jp","japan"]},{label:"flag: Kenya",hexcode:"1F1F0-1F1EA",tags:["KE","flag"],emoji:"🇰🇪",text:"",type:1,order:5085,group:9,subgroup:98,version:2,shortCodes:["flag_ke","kenya"]},{label:"flag: Kyrgyzstan",hexcode:"1F1F0-1F1EC",tags:["KG","flag"],emoji:"🇰🇬",text:"",type:1,order:5086,group:9,subgroup:98,version:2,shortCodes:["flag_kg","kyrgyzstan"]},{label:"flag: Cambodia",hexcode:"1F1F0-1F1ED",tags:["KH","flag"],emoji:"🇰🇭",text:"",type:1,order:5087,group:9,subgroup:98,version:2,shortCodes:["cambodia","flag_kh"]},{label:"flag: Kiribati",hexcode:"1F1F0-1F1EE",tags:["KI","flag"],emoji:"🇰🇮",text:"",type:1,order:5088,group:9,subgroup:98,version:2,shortCodes:["flag_ki","kiribati"]},{label:"flag: Comoros",hexcode:"1F1F0-1F1F2",tags:["KM","flag"],emoji:"🇰🇲",text:"",type:1,order:5089,group:9,subgroup:98,version:2,shortCodes:["comoros","flag_km"]},{label:"flag: St. Kitts & Nevis",hexcode:"1F1F0-1F1F3",tags:["KN","flag"],emoji:"🇰🇳",text:"",type:1,order:5090,group:9,subgroup:98,version:2,shortCodes:["flag_kn","st_kitts_nevis"]},{label:"flag: North Korea",hexcode:"1F1F0-1F1F5",tags:["KP","flag"],emoji:"🇰🇵",text:"",type:1,order:5091,group:9,subgroup:98,version:2,shortCodes:["flag_kp","north_korea"]},{label:"flag: South Korea",hexcode:"1F1F0-1F1F7",tags:["KR","flag"],emoji:"🇰🇷",text:"",type:1,order:5092,group:9,subgroup:98,version:.6,shortCodes:["flag_kr","south_korea"]},{label:"flag: Kuwait",hexcode:"1F1F0-1F1FC",tags:["KW","flag"],emoji:"🇰🇼",text:"",type:1,order:5093,group:9,subgroup:98,version:2,shortCodes:["flag_kw","kuwait"]},{label:"flag: Cayman Islands",hexcode:"1F1F0-1F1FE",tags:["KY","flag"],emoji:"🇰🇾",text:"",type:1,order:5094,group:9,subgroup:98,version:2,shortCodes:["cayman_islands","flag_ky"]},{label:"flag: Kazakhstan",hexcode:"1F1F0-1F1FF",tags:["KZ","flag"],emoji:"🇰🇿",text:"",type:1,order:5095,group:9,subgroup:98,version:2,shortCodes:["flag_kz","kazakhstan"]},{label:"flag: Laos",hexcode:"1F1F1-1F1E6",tags:["LA","flag"],emoji:"🇱🇦",text:"",type:1,order:5096,group:9,subgroup:98,version:2,shortCodes:["flag_la","laos"]},{label:"flag: Lebanon",hexcode:"1F1F1-1F1E7",tags:["LB","flag"],emoji:"🇱🇧",text:"",type:1,order:5097,group:9,subgroup:98,version:2,shortCodes:["flag_lb","lebanon"]},{label:"flag: St. Lucia",hexcode:"1F1F1-1F1E8",tags:["LC","flag"],emoji:"🇱🇨",text:"",type:1,order:5098,group:9,subgroup:98,version:2,shortCodes:["flag_lc","st_lucia"]},{label:"flag: Liechtenstein",hexcode:"1F1F1-1F1EE",tags:["LI","flag"],emoji:"🇱🇮",text:"",type:1,order:5099,group:9,subgroup:98,version:2,shortCodes:["flag_li","liechtenstein"]},{label:"flag: Sri Lanka",hexcode:"1F1F1-1F1F0",tags:["LK","flag"],emoji:"🇱🇰",text:"",type:1,order:5100,group:9,subgroup:98,version:2,shortCodes:["flag_lk","sri_lanka"]},{label:"flag: Liberia",hexcode:"1F1F1-1F1F7",tags:["LR","flag"],emoji:"🇱🇷",text:"",type:1,order:5101,group:9,subgroup:98,version:2,shortCodes:["flag_lr","liberia"]},{label:"flag: Lesotho",hexcode:"1F1F1-1F1F8",tags:["LS","flag"],emoji:"🇱🇸",text:"",type:1,order:5102,group:9,subgroup:98,version:2,shortCodes:["flag_ls","lesotho"]},{label:"flag: Lithuania",hexcode:"1F1F1-1F1F9",tags:["LT","flag"],emoji:"🇱🇹",text:"",type:1,order:5103,group:9,subgroup:98,version:2,shortCodes:["flag_lt","lithuania"]},{label:"flag: Luxembourg",hexcode:"1F1F1-1F1FA",tags:["LU","flag"],emoji:"🇱🇺",text:"",type:1,order:5104,group:9,subgroup:98,version:2,shortCodes:["flag_lu","luxembourg"]},{label:"flag: Latvia",hexcode:"1F1F1-1F1FB",tags:["LV","flag"],emoji:"🇱🇻",text:"",type:1,order:5105,group:9,subgroup:98,version:2,shortCodes:["flag_lv","latvia"]},{label:"flag: Libya",hexcode:"1F1F1-1F1FE",tags:["LY","flag"],emoji:"🇱🇾",text:"",type:1,order:5106,group:9,subgroup:98,version:2,shortCodes:["flag_ly","libya"]},{label:"flag: Morocco",hexcode:"1F1F2-1F1E6",tags:["MA","flag"],emoji:"🇲🇦",text:"",type:1,order:5107,group:9,subgroup:98,version:2,shortCodes:["flag_ma","morocco"]},{label:"flag: Monaco",hexcode:"1F1F2-1F1E8",tags:["MC","flag"],emoji:"🇲🇨",text:"",type:1,order:5108,group:9,subgroup:98,version:2,shortCodes:["flag_mc","monaco"]},{label:"flag: Moldova",hexcode:"1F1F2-1F1E9",tags:["MD","flag"],emoji:"🇲🇩",text:"",type:1,order:5109,group:9,subgroup:98,version:2,shortCodes:["flag_md","moldova"]},{label:"flag: Montenegro",hexcode:"1F1F2-1F1EA",tags:["ME","flag"],emoji:"🇲🇪",text:"",type:1,order:5110,group:9,subgroup:98,version:2,shortCodes:["flag_me","montenegro"]},{label:"flag: St. Martin",hexcode:"1F1F2-1F1EB",tags:["MF","flag"],emoji:"🇲🇫",text:"",type:1,order:5111,group:9,subgroup:98,version:2,shortCodes:["flag_mf","st_martin"]},{label:"flag: Madagascar",hexcode:"1F1F2-1F1EC",tags:["MG","flag"],emoji:"🇲🇬",text:"",type:1,order:5112,group:9,subgroup:98,version:2,shortCodes:["flag_mg","madagascar"]},{label:"flag: Marshall Islands",hexcode:"1F1F2-1F1ED",tags:["MH","flag"],emoji:"🇲🇭",text:"",type:1,order:5113,group:9,subgroup:98,version:2,shortCodes:["flag_mh","marshall_islands"]},{label:"flag: North Macedonia",hexcode:"1F1F2-1F1F0",tags:["MK","flag"],emoji:"🇲🇰",text:"",type:1,order:5114,group:9,subgroup:98,version:2,shortCodes:["flag_mk","macedonia"]},{label:"flag: Mali",hexcode:"1F1F2-1F1F1",tags:["ML","flag"],emoji:"🇲🇱",text:"",type:1,order:5115,group:9,subgroup:98,version:2,shortCodes:["flag_ml","mali"]},{label:"flag: Myanmar (Burma)",hexcode:"1F1F2-1F1F2",tags:["MM","flag"],emoji:"🇲🇲",text:"",type:1,order:5116,group:9,subgroup:98,version:2,shortCodes:["burma","flag_mm","myanmar"]},{label:"flag: Mongolia",hexcode:"1F1F2-1F1F3",tags:["MN","flag"],emoji:"🇲🇳",text:"",type:1,order:5117,group:9,subgroup:98,version:2,shortCodes:["flag_mn","mongolia"]},{label:"flag: Macao SAR China",hexcode:"1F1F2-1F1F4",tags:["MO","flag"],emoji:"🇲🇴",text:"",type:1,order:5118,group:9,subgroup:98,version:2,shortCodes:["flag_mo","macao","macau"]},{label:"flag: Northern Mariana Islands",hexcode:"1F1F2-1F1F5",tags:["MP","flag"],emoji:"🇲🇵",text:"",type:1,order:5119,group:9,subgroup:98,version:2,shortCodes:["flag_mp","northern_mariana_islands"]},{label:"flag: Martinique",hexcode:"1F1F2-1F1F6",tags:["MQ","flag"],emoji:"🇲🇶",text:"",type:1,order:5120,group:9,subgroup:98,version:2,shortCodes:["flag_mq","martinique"]},{label:"flag: Mauritania",hexcode:"1F1F2-1F1F7",tags:["MR","flag"],emoji:"🇲🇷",text:"",type:1,order:5121,group:9,subgroup:98,version:2,shortCodes:["flag_mr","mauritania"]},{label:"flag: Montserrat",hexcode:"1F1F2-1F1F8",tags:["MS","flag"],emoji:"🇲🇸",text:"",type:1,order:5122,group:9,subgroup:98,version:2,shortCodes:["flag_ms","montserrat"]},{label:"flag: Malta",hexcode:"1F1F2-1F1F9",tags:["MT","flag"],emoji:"🇲🇹",text:"",type:1,order:5123,group:9,subgroup:98,version:2,shortCodes:["flag_mt","malta"]},{label:"flag: Mauritius",hexcode:"1F1F2-1F1FA",tags:["MU","flag"],emoji:"🇲🇺",text:"",type:1,order:5124,group:9,subgroup:98,version:2,shortCodes:["flag_mu","mauritius"]},{label:"flag: Maldives",hexcode:"1F1F2-1F1FB",tags:["MV","flag"],emoji:"🇲🇻",text:"",type:1,order:5125,group:9,subgroup:98,version:2,shortCodes:["flag_mv","maldives"]},{label:"flag: Malawi",hexcode:"1F1F2-1F1FC",tags:["MW","flag"],emoji:"🇲🇼",text:"",type:1,order:5126,group:9,subgroup:98,version:2,shortCodes:["flag_mw","malawi"]},{label:"flag: Mexico",hexcode:"1F1F2-1F1FD",tags:["MX","flag"],emoji:"🇲🇽",text:"",type:1,order:5127,group:9,subgroup:98,version:2,shortCodes:["flag_mx","mexico"]},{label:"flag: Malaysia",hexcode:"1F1F2-1F1FE",tags:["MY","flag"],emoji:"🇲🇾",text:"",type:1,order:5128,group:9,subgroup:98,version:2,shortCodes:["flag_my","malaysia"]},{label:"flag: Mozambique",hexcode:"1F1F2-1F1FF",tags:["MZ","flag"],emoji:"🇲🇿",text:"",type:1,order:5129,group:9,subgroup:98,version:2,shortCodes:["flag_mz","mozambique"]},{label:"flag: Namibia",hexcode:"1F1F3-1F1E6",tags:["NA","flag"],emoji:"🇳🇦",text:"",type:1,order:5130,group:9,subgroup:98,version:2,shortCodes:["flag_na","namibia"]},{label:"flag: New Caledonia",hexcode:"1F1F3-1F1E8",tags:["NC","flag"],emoji:"🇳🇨",text:"",type:1,order:5131,group:9,subgroup:98,version:2,shortCodes:["flag_nc","new_caledonia"]},{label:"flag: Niger",hexcode:"1F1F3-1F1EA",tags:["NE","flag"],emoji:"🇳🇪",text:"",type:1,order:5132,group:9,subgroup:98,version:2,shortCodes:["flag_ne","niger"]},{label:"flag: Norfolk Island",hexcode:"1F1F3-1F1EB",tags:["NF","flag"],emoji:"🇳🇫",text:"",type:1,order:5133,group:9,subgroup:98,version:2,shortCodes:["flag_nf","norfolk_island"]},{label:"flag: Nigeria",hexcode:"1F1F3-1F1EC",tags:["NG","flag"],emoji:"🇳🇬",text:"",type:1,order:5134,group:9,subgroup:98,version:2,shortCodes:["flag_ng","nigeria"]},{label:"flag: Nicaragua",hexcode:"1F1F3-1F1EE",tags:["NI","flag"],emoji:"🇳🇮",text:"",type:1,order:5135,group:9,subgroup:98,version:2,shortCodes:["flag_ni","nicaragua"]},{label:"flag: Netherlands",hexcode:"1F1F3-1F1F1",tags:["NL","flag"],emoji:"🇳🇱",text:"",type:1,order:5136,group:9,subgroup:98,version:2,shortCodes:["flag_nl","netherlands"]},{label:"flag: Norway",hexcode:"1F1F3-1F1F4",tags:["NO","flag"],emoji:"🇳🇴",text:"",type:1,order:5137,group:9,subgroup:98,version:2,shortCodes:["flag_no","norway"]},{label:"flag: Nepal",hexcode:"1F1F3-1F1F5",tags:["NP","flag"],emoji:"🇳🇵",text:"",type:1,order:5138,group:9,subgroup:98,version:2,shortCodes:["flag_np","nepal"]},{label:"flag: Nauru",hexcode:"1F1F3-1F1F7",tags:["NR","flag"],emoji:"🇳🇷",text:"",type:1,order:5139,group:9,subgroup:98,version:2,shortCodes:["flag_nr","nauru"]},{label:"flag: Niue",hexcode:"1F1F3-1F1FA",tags:["NU","flag"],emoji:"🇳🇺",text:"",type:1,order:5140,group:9,subgroup:98,version:2,shortCodes:["flag_nu","niue"]},{label:"flag: New Zealand",hexcode:"1F1F3-1F1FF",tags:["NZ","flag"],emoji:"🇳🇿",text:"",type:1,order:5141,group:9,subgroup:98,version:2,shortCodes:["flag_nz","new_zealand"]},{label:"flag: Oman",hexcode:"1F1F4-1F1F2",tags:["OM","flag"],emoji:"🇴🇲",text:"",type:1,order:5142,group:9,subgroup:98,version:2,shortCodes:["flag_om","oman"]},{label:"flag: Panama",hexcode:"1F1F5-1F1E6",tags:["PA","flag"],emoji:"🇵🇦",text:"",type:1,order:5143,group:9,subgroup:98,version:2,shortCodes:["flag_pa","panama"]},{label:"flag: Peru",hexcode:"1F1F5-1F1EA",tags:["PE","flag"],emoji:"🇵🇪",text:"",type:1,order:5144,group:9,subgroup:98,version:2,shortCodes:["flag_pe","peru"]},{label:"flag: French Polynesia",hexcode:"1F1F5-1F1EB",tags:["PF","flag"],emoji:"🇵🇫",text:"",type:1,order:5145,group:9,subgroup:98,version:2,shortCodes:["flag_pf","french_polynesia"]},{label:"flag: Papua New Guinea",hexcode:"1F1F5-1F1EC",tags:["PG","flag"],emoji:"🇵🇬",text:"",type:1,order:5146,group:9,subgroup:98,version:2,shortCodes:["flag_pg","papua_new_guinea"]},{label:"flag: Philippines",hexcode:"1F1F5-1F1ED",tags:["PH","flag"],emoji:"🇵🇭",text:"",type:1,order:5147,group:9,subgroup:98,version:2,shortCodes:["flag_ph","philippines"]},{label:"flag: Pakistan",hexcode:"1F1F5-1F1F0",tags:["PK","flag"],emoji:"🇵🇰",text:"",type:1,order:5148,group:9,subgroup:98,version:2,shortCodes:["flag_pk","pakistan"]},{label:"flag: Poland",hexcode:"1F1F5-1F1F1",tags:["PL","flag"],emoji:"🇵🇱",text:"",type:1,order:5149,group:9,subgroup:98,version:2,shortCodes:["flag_pl","poland"]},{label:"flag: St. Pierre & Miquelon",hexcode:"1F1F5-1F1F2",tags:["PM","flag"],emoji:"🇵🇲",text:"",type:1,order:5150,group:9,subgroup:98,version:2,shortCodes:["flag_pm","st_pierre_miquelon"]},{label:"flag: Pitcairn Islands",hexcode:"1F1F5-1F1F3",tags:["PN","flag"],emoji:"🇵🇳",text:"",type:1,order:5151,group:9,subgroup:98,version:2,shortCodes:["flag_pn","pitcairn_islands"]},{label:"flag: Puerto Rico",hexcode:"1F1F5-1F1F7",tags:["PR","flag"],emoji:"🇵🇷",text:"",type:1,order:5152,group:9,subgroup:98,version:2,shortCodes:["flag_pr","puerto_rico"]},{label:"flag: Palestinian Territories",hexcode:"1F1F5-1F1F8",tags:["PS","flag"],emoji:"🇵🇸",text:"",type:1,order:5153,group:9,subgroup:98,version:2,shortCodes:["flag_ps","palestinian_territories"]},{label:"flag: Portugal",hexcode:"1F1F5-1F1F9",tags:["PT","flag"],emoji:"🇵🇹",text:"",type:1,order:5154,group:9,subgroup:98,version:2,shortCodes:["flag_pt","portugal"]},{label:"flag: Palau",hexcode:"1F1F5-1F1FC",tags:["PW","flag"],emoji:"🇵🇼",text:"",type:1,order:5155,group:9,subgroup:98,version:2,shortCodes:["flag_pw","palau"]},{label:"flag: Paraguay",hexcode:"1F1F5-1F1FE",tags:["PY","flag"],emoji:"🇵🇾",text:"",type:1,order:5156,group:9,subgroup:98,version:2,shortCodes:["flag_py","paraguay"]},{label:"flag: Qatar",hexcode:"1F1F6-1F1E6",tags:["QA","flag"],emoji:"🇶🇦",text:"",type:1,order:5157,group:9,subgroup:98,version:2,shortCodes:["flag_qa","qatar"]},{label:"flag: Réunion",hexcode:"1F1F7-1F1EA",tags:["RE","flag"],emoji:"🇷🇪",text:"",type:1,order:5158,group:9,subgroup:98,version:2,shortCodes:["flag_re","reunion"]},{label:"flag: Romania",hexcode:"1F1F7-1F1F4",tags:["RO","flag"],emoji:"🇷🇴",text:"",type:1,order:5159,group:9,subgroup:98,version:2,shortCodes:["flag_ro","romania"]},{label:"flag: Serbia",hexcode:"1F1F7-1F1F8",tags:["RS","flag"],emoji:"🇷🇸",text:"",type:1,order:5160,group:9,subgroup:98,version:2,shortCodes:["flag_rs","serbia"]},{label:"flag: Russia",hexcode:"1F1F7-1F1FA",tags:["RU","flag"],emoji:"🇷🇺",text:"",type:1,order:5161,group:9,subgroup:98,version:.6,shortCodes:["flag_ru","russia"]},{label:"flag: Rwanda",hexcode:"1F1F7-1F1FC",tags:["RW","flag"],emoji:"🇷🇼",text:"",type:1,order:5162,group:9,subgroup:98,version:2,shortCodes:["flag_rw","rwanda"]},{label:"flag: Saudi Arabia",hexcode:"1F1F8-1F1E6",tags:["SA","flag"],emoji:"🇸🇦",text:"",type:1,order:5163,group:9,subgroup:98,version:2,shortCodes:["flag_sa","saudi_arabia"]},{label:"flag: Solomon Islands",hexcode:"1F1F8-1F1E7",tags:["SB","flag"],emoji:"🇸🇧",text:"",type:1,order:5164,group:9,subgroup:98,version:2,shortCodes:["flag_sb","solomon_islands"]},{label:"flag: Seychelles",hexcode:"1F1F8-1F1E8",tags:["SC","flag"],emoji:"🇸🇨",text:"",type:1,order:5165,group:9,subgroup:98,version:2,shortCodes:["flag_sc","seychelles"]},{label:"flag: Sudan",hexcode:"1F1F8-1F1E9",tags:["SD","flag"],emoji:"🇸🇩",text:"",type:1,order:5166,group:9,subgroup:98,version:2,shortCodes:["flag_sd","sudan"]},{label:"flag: Sweden",hexcode:"1F1F8-1F1EA",tags:["SE","flag"],emoji:"🇸🇪",text:"",type:1,order:5167,group:9,subgroup:98,version:2,shortCodes:["flag_se","sweden"]},{label:"flag: Singapore",hexcode:"1F1F8-1F1EC",tags:["SG","flag"],emoji:"🇸🇬",text:"",type:1,order:5168,group:9,subgroup:98,version:2,shortCodes:["flag_sg","singapore"]},{label:"flag: St. Helena",hexcode:"1F1F8-1F1ED",tags:["SH","flag"],emoji:"🇸🇭",text:"",type:1,order:5169,group:9,subgroup:98,version:2,shortCodes:["flag_sh","st_helena"]},{label:"flag: Slovenia",hexcode:"1F1F8-1F1EE",tags:["SI","flag"],emoji:"🇸🇮",text:"",type:1,order:5170,group:9,subgroup:98,version:2,shortCodes:["flag_si","slovenia"]},{label:"flag: Svalbard & Jan Mayen",hexcode:"1F1F8-1F1EF",tags:["SJ","flag"],emoji:"🇸🇯",text:"",type:1,order:5171,group:9,subgroup:98,version:2,shortCodes:["flag_sj","svalbard_jan_mayen"]},{label:"flag: Slovakia",hexcode:"1F1F8-1F1F0",tags:["SK","flag"],emoji:"🇸🇰",text:"",type:1,order:5172,group:9,subgroup:98,version:2,shortCodes:["flag_sk","slovakia"]},{label:"flag: Sierra Leone",hexcode:"1F1F8-1F1F1",tags:["SL","flag"],emoji:"🇸🇱",text:"",type:1,order:5173,group:9,subgroup:98,version:2,shortCodes:["flag_sl","sierra_leone"]},{label:"flag: San Marino",hexcode:"1F1F8-1F1F2",tags:["SM","flag"],emoji:"🇸🇲",text:"",type:1,order:5174,group:9,subgroup:98,version:2,shortCodes:["flag_sm","san_marino"]},{label:"flag: Senegal",hexcode:"1F1F8-1F1F3",tags:["SN","flag"],emoji:"🇸🇳",text:"",type:1,order:5175,group:9,subgroup:98,version:2,shortCodes:["flag_sn","senegal"]},{label:"flag: Somalia",hexcode:"1F1F8-1F1F4",tags:["SO","flag"],emoji:"🇸🇴",text:"",type:1,order:5176,group:9,subgroup:98,version:2,shortCodes:["flag_so","somalia"]},{label:"flag: Suriname",hexcode:"1F1F8-1F1F7",tags:["SR","flag"],emoji:"🇸🇷",text:"",type:1,order:5177,group:9,subgroup:98,version:2,shortCodes:["flag_sr","suriname"]},{label:"flag: South Sudan",hexcode:"1F1F8-1F1F8",tags:["SS","flag"],emoji:"🇸🇸",text:"",type:1,order:5178,group:9,subgroup:98,version:2,shortCodes:["flag_ss","south_sudan"]},{label:"flag: São Tomé & Príncipe",hexcode:"1F1F8-1F1F9",tags:["ST","flag"],emoji:"🇸🇹",text:"",type:1,order:5179,group:9,subgroup:98,version:2,shortCodes:["flag_st","sao_tome_principe"]},{label:"flag: El Salvador",hexcode:"1F1F8-1F1FB",tags:["SV","flag"],emoji:"🇸🇻",text:"",type:1,order:5180,group:9,subgroup:98,version:2,shortCodes:["el_salvador","flag_sv"]},{label:"flag: Sint Maarten",hexcode:"1F1F8-1F1FD",tags:["SX","flag"],emoji:"🇸🇽",text:"",type:1,order:5181,group:9,subgroup:98,version:2,shortCodes:["flag_sx","sint_maarten"]},{label:"flag: Syria",hexcode:"1F1F8-1F1FE",tags:["SY","flag"],emoji:"🇸🇾",text:"",type:1,order:5182,group:9,subgroup:98,version:2,shortCodes:["flag_sy","syria"]},{label:"flag: Eswatini",hexcode:"1F1F8-1F1FF",tags:["SZ","flag"],emoji:"🇸🇿",text:"",type:1,order:5183,group:9,subgroup:98,version:2,shortCodes:["eswatini","flag_sz","swaziland"]},{label:"flag: Tristan da Cunha",hexcode:"1F1F9-1F1E6",tags:["TA","flag"],emoji:"🇹🇦",text:"",type:1,order:5184,group:9,subgroup:98,version:2,shortCodes:["flag_ta","tristan_da_cunha"]},{label:"flag: Turks & Caicos Islands",hexcode:"1F1F9-1F1E8",tags:["TC","flag"],emoji:"🇹🇨",text:"",type:1,order:5185,group:9,subgroup:98,version:2,shortCodes:["flag_tc","turks_caicos_islands"]},{label:"flag: Chad",hexcode:"1F1F9-1F1E9",tags:["TD","flag"],emoji:"🇹🇩",text:"",type:1,order:5186,group:9,subgroup:98,version:2,shortCodes:["chad","flag_td"]},{label:"flag: French Southern Territories",hexcode:"1F1F9-1F1EB",tags:["TF","flag"],emoji:"🇹🇫",text:"",type:1,order:5187,group:9,subgroup:98,version:2,shortCodes:["flag_tf","french_southern_territories"]},{label:"flag: Togo",hexcode:"1F1F9-1F1EC",tags:["TG","flag"],emoji:"🇹🇬",text:"",type:1,order:5188,group:9,subgroup:98,version:2,shortCodes:["flag_tg","togo"]},{label:"flag: Thailand",hexcode:"1F1F9-1F1ED",tags:["TH","flag"],emoji:"🇹🇭",text:"",type:1,order:5189,group:9,subgroup:98,version:2,shortCodes:["flag_th","thailand"]},{label:"flag: Tajikistan",hexcode:"1F1F9-1F1EF",tags:["TJ","flag"],emoji:"🇹🇯",text:"",type:1,order:5190,group:9,subgroup:98,version:2,shortCodes:["flag_tj","tajikistan"]},{label:"flag: Tokelau",hexcode:"1F1F9-1F1F0",tags:["TK","flag"],emoji:"🇹🇰",text:"",type:1,order:5191,group:9,subgroup:98,version:2,shortCodes:["flag_tk","tokelau"]},{label:"flag: Timor-Leste",hexcode:"1F1F9-1F1F1",tags:["TL","flag"],emoji:"🇹🇱",text:"",type:1,order:5192,group:9,subgroup:98,version:2,shortCodes:["flag_tl","timor_leste"]},{label:"flag: Turkmenistan",hexcode:"1F1F9-1F1F2",tags:["TM","flag"],emoji:"🇹🇲",text:"",type:1,order:5193,group:9,subgroup:98,version:2,shortCodes:["flag_tm","turkmenistan"]},{label:"flag: Tunisia",hexcode:"1F1F9-1F1F3",tags:["TN","flag"],emoji:"🇹🇳",text:"",type:1,order:5194,group:9,subgroup:98,version:2,shortCodes:["flag_tn","tunisia"]},{label:"flag: Tonga",hexcode:"1F1F9-1F1F4",tags:["TO","flag"],emoji:"🇹🇴",text:"",type:1,order:5195,group:9,subgroup:98,version:2,shortCodes:["flag_to","tonga"]},{label:"flag: Türkiye",hexcode:"1F1F9-1F1F7",tags:["TR","flag"],emoji:"🇹🇷",text:"",type:1,order:5196,group:9,subgroup:98,version:2,shortCodes:["flag_tr","turkey_tr"]},{label:"flag: Trinidad & Tobago",hexcode:"1F1F9-1F1F9",tags:["TT","flag"],emoji:"🇹🇹",text:"",type:1,order:5197,group:9,subgroup:98,version:2,shortCodes:["flag_tt","trinidad_tobago"]},{label:"flag: Tuvalu",hexcode:"1F1F9-1F1FB",tags:["TV","flag"],emoji:"🇹🇻",text:"",type:1,order:5198,group:9,subgroup:98,version:2,shortCodes:["flag_tv","tuvalu"]},{label:"flag: Taiwan",hexcode:"1F1F9-1F1FC",tags:["TW","flag"],emoji:"🇹🇼",text:"",type:1,order:5199,group:9,subgroup:98,version:2,shortCodes:["flag_tw","taiwan"]},{label:"flag: Tanzania",hexcode:"1F1F9-1F1FF",tags:["TZ","flag"],emoji:"🇹🇿",text:"",type:1,order:5200,group:9,subgroup:98,version:2,shortCodes:["flag_tz","tanzania"]},{label:"flag: Ukraine",hexcode:"1F1FA-1F1E6",tags:["UA","flag"],emoji:"🇺🇦",text:"",type:1,order:5201,group:9,subgroup:98,version:2,shortCodes:["flag_ua","ukraine"]},{label:"flag: Uganda",hexcode:"1F1FA-1F1EC",tags:["UG","flag"],emoji:"🇺🇬",text:"",type:1,order:5202,group:9,subgroup:98,version:2,shortCodes:["flag_ug","uganda"]},{label:"flag: U.S. Outlying Islands",hexcode:"1F1FA-1F1F2",tags:["UM","flag"],emoji:"🇺🇲",text:"",type:1,order:5203,group:9,subgroup:98,version:2,shortCodes:["flag_um","us_outlying_islands"]},{label:"flag: United Nations",hexcode:"1F1FA-1F1F3",tags:["UN","flag"],emoji:"🇺🇳",text:"",type:1,order:5204,group:9,subgroup:98,version:4,shortCodes:["flag_un","un","united_nations"]},{label:"flag: United States",hexcode:"1F1FA-1F1F8",tags:["US","flag"],emoji:"🇺🇸",text:"",type:1,order:5205,group:9,subgroup:98,version:.6,shortCodes:["flag_us","united_states","usa"]},{label:"flag: Uruguay",hexcode:"1F1FA-1F1FE",tags:["UY","flag"],emoji:"🇺🇾",text:"",type:1,order:5206,group:9,subgroup:98,version:2,shortCodes:["flag_uy","uruguay"]},{label:"flag: Uzbekistan",hexcode:"1F1FA-1F1FF",tags:["UZ","flag"],emoji:"🇺🇿",text:"",type:1,order:5207,group:9,subgroup:98,version:2,shortCodes:["flag_uz","uzbekistan"]},{label:"flag: Vatican City",hexcode:"1F1FB-1F1E6",tags:["VA","flag"],emoji:"🇻🇦",text:"",type:1,order:5208,group:9,subgroup:98,version:2,shortCodes:["flag_va","vatican_city"]},{label:"flag: St. Vincent & Grenadines",hexcode:"1F1FB-1F1E8",tags:["VC","flag"],emoji:"🇻🇨",text:"",type:1,order:5209,group:9,subgroup:98,version:2,shortCodes:["flag_vc","st_vincent_grenadines"]},{label:"flag: Venezuela",hexcode:"1F1FB-1F1EA",tags:["VE","flag"],emoji:"🇻🇪",text:"",type:1,order:5210,group:9,subgroup:98,version:2,shortCodes:["flag_ve","venezuela"]},{label:"flag: British Virgin Islands",hexcode:"1F1FB-1F1EC",tags:["VG","flag"],emoji:"🇻🇬",text:"",type:1,order:5211,group:9,subgroup:98,version:2,shortCodes:["british_virgin_islands","flag_vg"]},{label:"flag: U.S. Virgin Islands",hexcode:"1F1FB-1F1EE",tags:["VI","flag"],emoji:"🇻🇮",text:"",type:1,order:5212,group:9,subgroup:98,version:2,shortCodes:["flag_vi","us_virgin_islands"]},{label:"flag: Vietnam",hexcode:"1F1FB-1F1F3",tags:["VN","flag"],emoji:"🇻🇳",text:"",type:1,order:5213,group:9,subgroup:98,version:2,shortCodes:["flag_vn","vietnam"]},{label:"flag: Vanuatu",hexcode:"1F1FB-1F1FA",tags:["VU","flag"],emoji:"🇻🇺",text:"",type:1,order:5214,group:9,subgroup:98,version:2,shortCodes:["flag_vu","vanuatu"]},{label:"flag: Wallis & Futuna",hexcode:"1F1FC-1F1EB",tags:["WF","flag"],emoji:"🇼🇫",text:"",type:1,order:5215,group:9,subgroup:98,version:2,shortCodes:["flag_wf","wallis_futuna"]},{label:"flag: Samoa",hexcode:"1F1FC-1F1F8",tags:["WS","flag"],emoji:"🇼🇸",text:"",type:1,order:5216,group:9,subgroup:98,version:2,shortCodes:["flag_ws","samoa"]},{label:"flag: Kosovo",hexcode:"1F1FD-1F1F0",tags:["XK","flag"],emoji:"🇽🇰",text:"",type:1,order:5217,group:9,subgroup:98,version:2,shortCodes:["flag_xk","kosovo"]},{label:"flag: Yemen",hexcode:"1F1FE-1F1EA",tags:["YE","flag"],emoji:"🇾🇪",text:"",type:1,order:5218,group:9,subgroup:98,version:2,shortCodes:["flag_ye","yemen"]},{label:"flag: Mayotte",hexcode:"1F1FE-1F1F9",tags:["YT","flag"],emoji:"🇾🇹",text:"",type:1,order:5219,group:9,subgroup:98,version:2,shortCodes:["flag_yt","mayotte"]},{label:"flag: South Africa",hexcode:"1F1FF-1F1E6",tags:["ZA","flag"],emoji:"🇿🇦",text:"",type:1,order:5220,group:9,subgroup:98,version:2,shortCodes:["flag_za","south_africa"]},{label:"flag: Zambia",hexcode:"1F1FF-1F1F2",tags:["ZM","flag"],emoji:"🇿🇲",text:"",type:1,order:5221,group:9,subgroup:98,version:2,shortCodes:["flag_zm","zambia"]},{label:"flag: Zimbabwe",hexcode:"1F1FF-1F1FC",tags:["ZW","flag"],emoji:"🇿🇼",text:"",type:1,order:5222,group:9,subgroup:98,version:2,shortCodes:["flag_zw","zimbabwe"]},{label:"flag: England",hexcode:"1F3F4-E0067-E0062-E0065-E006E-E0067-E007F",tags:["flag","gbeng"],emoji:"🏴󠁧󠁢󠁥󠁮󠁧󠁿",text:"",type:1,order:5223,group:9,subgroup:99,version:5,shortCodes:["england","flag_gbeng"]},{label:"flag: Scotland",hexcode:"1F3F4-E0067-E0062-E0073-E0063-E0074-E007F",tags:["flag","gbsct"],emoji:"🏴󠁧󠁢󠁳󠁣󠁴󠁿",text:"",type:1,order:5224,group:9,subgroup:99,version:5,shortCodes:["flag_gbsct","scotland"]},{label:"flag: Wales",hexcode:"1F3F4-E0067-E0062-E0077-E006C-E0073-E007F",tags:["flag","gbwls"],emoji:"🏴󠁧󠁢󠁷󠁬󠁳󠁿",text:"",type:1,order:5225,group:9,subgroup:99,version:5,shortCodes:["flag_gbwls","wales"]},{label:"regional indicator A",hexcode:"1F1E6",emoji:"🇦",text:"",type:1,version:0,shortCodes:["regional_indicator_a"]},{label:"regional indicator B",hexcode:"1F1E7",emoji:"🇧",text:"",type:1,version:0,shortCodes:["regional_indicator_b"]},{label:"regional indicator C",hexcode:"1F1E8",emoji:"🇨",text:"",type:1,version:0,shortCodes:["regional_indicator_c"]},{label:"regional indicator D",hexcode:"1F1E9",emoji:"🇩",text:"",type:1,version:0,shortCodes:["regional_indicator_d"]},{label:"regional indicator E",hexcode:"1F1EA",emoji:"🇪",text:"",type:1,version:0,shortCodes:["regional_indicator_e"]},{label:"regional indicator F",hexcode:"1F1EB",emoji:"🇫",text:"",type:1,version:0,shortCodes:["regional_indicator_f"]},{label:"regional indicator G",hexcode:"1F1EC",emoji:"🇬",text:"",type:1,version:0,shortCodes:["regional_indicator_g"]},{label:"regional indicator H",hexcode:"1F1ED",emoji:"🇭",text:"",type:1,version:0,shortCodes:["regional_indicator_h"]},{label:"regional indicator I",hexcode:"1F1EE",emoji:"🇮",text:"",type:1,version:0,shortCodes:["regional_indicator_i"]},{label:"regional indicator J",hexcode:"1F1EF",emoji:"🇯",text:"",type:1,version:0,shortCodes:["regional_indicator_j"]},{label:"regional indicator K",hexcode:"1F1F0",emoji:"🇰",text:"",type:1,version:0,shortCodes:["regional_indicator_k"]},{label:"regional indicator L",hexcode:"1F1F1",emoji:"🇱",text:"",type:1,version:0,shortCodes:["regional_indicator_l"]},{label:"regional indicator M",hexcode:"1F1F2",emoji:"🇲",text:"",type:1,version:0,shortCodes:["regional_indicator_m"]},{label:"regional indicator N",hexcode:"1F1F3",emoji:"🇳",text:"",type:1,version:0,shortCodes:["regional_indicator_n"]},{label:"regional indicator O",hexcode:"1F1F4",emoji:"🇴",text:"",type:1,version:0,shortCodes:["regional_indicator_o"]},{label:"regional indicator P",hexcode:"1F1F5",emoji:"🇵",text:"",type:1,version:0,shortCodes:["regional_indicator_p"]},{label:"regional indicator Q",hexcode:"1F1F6",emoji:"🇶",text:"",type:1,version:0,shortCodes:["regional_indicator_q"]},{label:"regional indicator R",hexcode:"1F1F7",emoji:"🇷",text:"",type:1,version:0,shortCodes:["regional_indicator_r"]},{label:"regional indicator S",hexcode:"1F1F8",emoji:"🇸",text:"",type:1,version:0,shortCodes:["regional_indicator_s"]},{label:"regional indicator T",hexcode:"1F1F9",emoji:"🇹",text:"",type:1,version:0,shortCodes:["regional_indicator_t"]},{label:"regional indicator U",hexcode:"1F1FA",emoji:"🇺",text:"",type:1,version:0,shortCodes:["regional_indicator_u"]},{label:"regional indicator V",hexcode:"1F1FB",emoji:"🇻",text:"",type:1,version:0,shortCodes:["regional_indicator_v"]},{label:"regional indicator W",hexcode:"1F1FC",emoji:"🇼",text:"",type:1,version:0,shortCodes:["regional_indicator_w"]},{label:"regional indicator X",hexcode:"1F1FD",emoji:"🇽",text:"",type:1,version:0,shortCodes:["regional_indicator_x"]},{label:"regional indicator Y",hexcode:"1F1FE",emoji:"🇾",text:"",type:1,version:0,shortCodes:["regional_indicator_y"]},{label:"regional indicator Z",hexcode:"1F1FF",emoji:"🇿",text:"",type:1,version:0,shortCodes:["regional_indicator_z"]}];
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/data/raw-emojis-custom.js +0 -1
……@@ -1 +0,0 @@
1export default[{label:"Keet Laughs",tags:["keet","laugh"],shortCodes:["keet_laughs"],emoji:"keet_laughs",path:"keet_laughs.png",pathRiv:"keet_laughs.riv"},{label:"Keet Party",tags:["keet","party"],shortCodes:["keet_party"],emoji:"keet_party",path:"keet_party.png",pathRiv:"keet_party.riv"},{label:"Keet Love",tags:["keet","love","heart"],shortCodes:["keet_love"],emoji:"keet_love",path:"keet_love.png",pathRiv:"keet_love.riv"},{label:"Keet Music",tags:["keet","music"],shortCodes:["keet_music"],emoji:"keet_music",path:"keet_music.png",pathRiv:"keet_music.riv"},{label:"Bitcoin",tags:["btc","bitcoin","crypto"],shortCodes:["bitcoin"],emoji:"bitcoin",path:"bitcoin.png",pathRiv:"bitcoin.riv"},{label:"Tether",tags:["tether","crypto","usdt"],shortCodes:["tether"],emoji:"tether",path:"tether.png",pathRiv:"tether.riv"},{label:"Pear",tags:["pear"],shortCodes:["keet_pear"],emoji:"keet_pear",path:"keet_pear.png",pathRiv:"keet_pear.riv"},{label:"Holepunch",tags:["holepunch"],shortCodes:["holepunch"],emoji:"holepunch",path:"holepunch.png",pathRiv:"holepunch.riv"},{label:"Bare",tags:["bare","bear"],shortCodes:["bare"],emoji:"bare",path:"bare.png"}];
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/data/raw-emojis-overwrite.js +0 -1
……@@ -1 +0,0 @@
1export default{"1F642":{emoticon:[":)",":-)"]},2639:{emoticon:[":(",":-("]},"1F609":{emoticon:[";)",";-)"]},"1F604":{emoticon:[":D",":-D"]},"1F61B":{emoticon:[":p",":P",":-P"]},"1F61C":{emoticon:[";p",";P",";-P"]},"1F632":{emoticon:[":o",":O",":-o"]},"1F615":{emoticon:[":/",":-/"]},"1F610":{emoticon:[":|",":-|"]},"1F61A":{emoticon:[":*",":-*"]},"1F618":{emoticon:[":x",":X",":-X"]},"1F633":{emoticon:[":$",":-$"]},"1F60E":{emoticon:["8)","8-)"]}};
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/data/skin-tones.js +0 -1
……@@ -1 +0,0 @@
1export default[{tone:0,emoji:"🤚"},{tone:1,emoji:"🤚🏻"},{tone:2,emoji:"🤚🏼"},{tone:3,emoji:"🤚🏽"},{tone:4,emoji:"🤚🏾"},{tone:5,emoji:"🤚🏿"}];
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/emoji_categories.json +0 -88
……@@ -1,88 +0,0 @@
1[
2 {
3 "key": "recent",
4 "message": "recentlyUsed",
5 "emoji": "🕛",
6 "icon": "clock-filled",
7 "data": []
8 },
9 {
10 "key": "keet-emoji",
11 "message": "keetEmoji",
12 "emoji": "🍐",
13 "icon": "keet-single-color",
14 "data": []
15 },
16 {
17 "key": "smileys-emotion",
18 "message": "smileyEmotion",
19 "emoji": "🤪",
20 "icon": "emoji-filled",
21 "group": 0,
22 "data": []
23 },
24 {
25 "key": "people-body",
26 "message": "peopleBody",
27 "emoji": "💁‍♀",
28 "icon": "users-two-filled",
29 "group": 1,
30 "data": []
31 },
32 {
33 "key": "animals-nature",
34 "message": "animalsNature",
35 "emoji": "🦄",
36 "icon": "leaf-filled",
37 "group": 3,
38 "data": []
39 },
40 {
41 "key": "food-drink",
42 "message": "foodDrink",
43 "emoji": "🍔",
44 "icon": "coffee-filled",
45 "group": 4,
46 "data": []
47 },
48 {
49 "key": "travel-places",
50 "message": "travelPlaces",
51 "emoji": "✈️",
52 "icon": "airplane-tilt-filled",
53 "group": 5,
54 "data": []
55 },
56 {
57 "key": "activities",
58 "message": "activities",
59 "emoji": "⚾️",
60 "icon": "game-controller-filled",
61 "group": 6,
62 "data": []
63 },
64 {
65 "key": "objects",
66 "message": "objects",
67 "emoji": "💡",
68 "icon": "light-bulb-filled",
69 "group": 7,
70 "data": []
71 },
72 {
73 "key": "symbols",
74 "message": "symbols",
75 "emoji": "⁉",
76 "icon": "symbols-filled",
77 "group": 8,
78 "data": []
79 },
80 {
81 "key": "flags",
82 "message": "flags",
83 "emoji": "🏳️‍🌈",
84 "icon": "flag-filled",
85 "group": 9,
86 "data": []
87 }
88]
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/index.js +0 -1
……@@ -1 +0,0 @@
1import t from"lodash.toarray";import o from"./data/raw-emojis-base.js";import e from"./data/raw-emojis-custom.js";import r from"./data/raw-emojis-overwrite.js";import s from"./data/messages.js";import n from"./data/skin-tones.js";export{default as emoji_categories}from"./emoji_categories.json"with{type:"json"};export const EMOJI_CATEGORY={RECENTS:"recents",CUSTOM:"custom",COMPONENT:"component",SMILEYS_EMOTION:"smileys-emotion",PEOPLE_BODY:"people-body",ANIMALS_NATURE:"animals-nature",FOOD_DRINK:"food-drink",TRAVEL_PLACES:"travel-places",ACTIVITIES:"activities",OBJECTS:"objects",SYMBOLS:"symbols",FLAGS:"flags",OTHER:"other"};export const SKIN_TONE_EMPTY="";export const SKIN_TONE_LIST=["light","medium-light","medium","medium-dark","dark"];const i={light:0,"medium-light":1,medium:2,"medium-dark":3,dark:4},a=new Map,m=new Map,u=new Map,c=[],p=[],f={},h=[],g={},E=(t,{emojisPath:o})=>{const{label:e,tags:r,shortCodes:s,emoji:n,path:i}=t;return{custom:!0,label:e,tags:r,shortCodes:s,emoji:n,url:i?`${o}${i}`:""}};function d(t){for(const o of t.shortCodes)a.set(o,t);m.set(t.emoji,t),u.set(t.hexcode,t),t.skins?.forEach(d)}function j(t,o){const e=[];for(const r of t){for(const t of r)if(e.push(t),e.length>=o)break;if(e.length>=o)break}return e}export function initEmojis({emojisPath:t="/assets/emojis/"}){e.forEach(o=>{const e=E(o,{emojisPath:t});d(e),c.push(e),p.push(e)}),o.forEach(t=>{r[t.hexcode]&&(t={...t,...r[t.hexcode]}),d(t),p.push(t)}),h.push(EMOJI_CATEGORY.RECENTS),h.push(EMOJI_CATEGORY.CUSTOM),s.groups.forEach(({key:t,order:o})=>{h.push(t),g[o]=t})}export function getEmojiData(t){return u.get(t)||a.get(t)||m.get(t)}export const getEmojiBySkinTone=(t,o)=>{const{skins:e}=t;return e&&e[i[o]]||t};export const isValidSkinTone=t=>""===t||Number.isInteger(i[t]);export function getDataOfSkin(t){return t?(f[t]||(f[t]=p.map(o=>o.skins?.find(o=>o.tone===t)||o)),f[t]):p}export function emojify(t,o){return t.split(/:([a-zA-Z0-9_\-+]+):/g).map((t,e)=>{if(e%2==0)return t;if(!a.has(t))return`:${t}:`;const r=a.get(t),{emoji:s,alt:n}=r;return o?o(s,t,r):n||s}).join("")}export function unemojify(o){return t(o).map(t=>{if(m.has(t))return`:${m.get(t).shortCodes[0]}:`;const o=t.codePointAt(0).toString(16).toUpperCase();return u.has(o)?`:${u.get(o).shortCodes[0]}:`:t}).join("")}export function getAllEmojisData(){return p}export function getCustomEmojisData(){return c}export function getEmojiMessages(){return s}export function getCategories(){return h}export function getCategoryByGroup(){return g}export function getSkinTones(){return n}export function getSkinToneSelectorEmoji(){return getEmojiData("1F91A")}export const emojiSearch=(t,o,e=20)=>{if(!o)return t.slice(0,e);const r=o.toLowerCase(),s=`:${r}`,n=[[],[],[],[],[]];for(const o of t){const{shortCodes:t=[],emoticon:e=[],tags:i=[]}=o,a=Array.isArray(e)?e:[e];let m=-1;t.some(t=>t===r)||a.some(t=>t===s)?m=0:t.some(t=>t.startsWith(r))?m=1:t.some(t=>t.includes(r))?m=2:i.some(t=>t.startsWith(r))?m=3:i.some(t=>t.includes(r))&&(m=4),-1!==m&&n[m].push(o)}return j(n,e)};
@holepunchto/keet-editor/node_modules/@holepunchto/emojis/package.json +0 -23
……@@ -1,23 +0,0 @@
1{
2 "name": "@holepunchto/emojis",
3 "version": "2.4.0",
4 "description": "HolePunch Emojis",
5 "type": "module",
6 "main": "index.js",
7 "scripts": {
8 "update": "node scripts/update-data.js",
9 "lint": "standard",
10 "test": "brittle test/index.js",
11 "test:single": "brittle $1"
12 },
13 "author": "",
14 "license": "MIT",
15 "devDependencies": {
16 "brittle": "^3.1.1",
17 "node-fetch": "^3.3.0",
18 "standard": "^17.0.0"
19 },
20 "dependencies": {
21 "lodash.toarray": "^4.4.0"
22 }
23}
@holepunchto/keet-editor/package.json +1 -2
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-editor",
3 "version": "3.17.2",
3 "version": "3.17.4",
44 "main": "index.js",
55 "type": "module",
66 "description": "A rich text editor for Keet",
……@@ -26,7 +26,6 @@
2626 "src"
2727 ],
2828 "dependencies": {
29 "@holepunchto/emojis": "^2.1.2",
3029 "@tiptap/core": "^2.6.6",
3130 "@tiptap/extension-blockquote": "^2.6.6",
3231 "@tiptap/extension-bold": "^2.6.6",
@holepunchto/keet-editor/src/extensions/submit.js +11 -16
……@@ -71,12 +71,7 @@ export const Submit = t.create({
7171 const s = t.getJSON(),
7272 r = e.getLinkPreviews(),
7373 n = e.getFiles()
74 return (
75 e.clearContent(!0),
76 i(s, n, r),
77 t.emit?.("submit", { doc: s, files: n, linkPreviews: r }),
78 !0
79 )
74 return (i(s, n, r), t.emit?.("submit", { doc: s, files: n, linkPreviews: r }), !0)
8075 },
8176 }
8277 },
……@@ -96,24 +91,24 @@ export const Submit = t.create({
9691 const s = i.state.doc,
9792 n = r(s),
9893 o = (s.content.content || []).filter((t) => t.attrs?.[e.ID]).length,
99 l = a(s),
100 u =
94 u = a(s),
95 l =
10196 n <= t &&
10297 !(this.options?.isFileSharingDisabled?.() && o > 0) &&
103 !(this.options?.isLinkSharingDisabled?.() && l),
98 !(this.options?.isLinkSharingDisabled?.() && u),
10499 m =
105100 (0 === n && !this.options.allowSubmitEmpty()) ||
106 !u ||
101 !l ||
107102 this.options.isSubmitDisabledInitial()
108103 ;(this.storage.charNumber !== n ||
109 this.storage.isValid !== u ||
104 this.storage.isValid !== l ||
110105 this.storage.isSubmitDisabled !== m ||
111 this.storage.hasLinks !== l) &&
106 this.storage.hasLinks !== u) &&
112107 ((this.storage.charNumber = n),
113 (this.storage.isValid = u),
108 (this.storage.isValid = l),
114109 (this.storage.isSubmitDisabled = m),
115110 (this.storage.filesNumber = o),
116 (this.storage.hasLinks = l),
111 (this.storage.hasLinks = u),
117112 i.dispatch(i.state.tr.setMeta("submit:update", Date.now())))
118113 },
119114 }),
……@@ -134,8 +129,8 @@ export const Submit = t.create({
134129 return ((o += r), !0)
135130 }),
136131 null === a && (a = n.doc.content.size))
137 const l = n.tr
138 return (l.delete(a, n.doc.content.size), l.setMeta("truncate", !0), l)
132 const u = n.tr
133 return (u.delete(a, n.doc.content.size), u.setMeta("truncate", !0), u)
139134 },
140135 filterTransaction: (e, i) =>
141136 this.storage.charNumber < t || r(e.doc) <= this.storage.charNumber,
@holepunchto/keet-indexing/lib/internal/index.js +35 -36
……@@ -1,19 +1,18 @@
1const e = require("compact-encoding"),
2 { InternalSchema: t } = require("@holepunchto/keet-core-schemas"),
1const { InternalSchema: e } = require("@holepunchto/keet-core-schemas"),
32 {
4 InternalOperation: i,
5 UpgradeOperation: n,
6 GenesisOperation: a,
7 AddPluginOperation: s,
8 } = t.Operations,
3 InternalOperation: t,
4 UpgradeOperation: i,
5 GenesisOperation: n,
6 AddPluginOperation: a,
7 } = e.Operations,
98 {
10 FEATURES: r,
11 isFeatureSupported: o,
12 CURRENT_ABI: l,
13 MIN_ABIS: p,
9 FEATURES: s,
10 isFeatureSupported: r,
11 CURRENT_ABI: o,
12 MIN_ABIS: l,
1413 } = require("@holepunchto/keet-core-api")
1514module.exports = class {
16 static Operations = new Set([i.TYPE])
15 static Operations = new Set([t.TYPE])
1716 constructor(e) {
1817 ;((this.view = e), (this.members = null), (this.config = null), (this._bee = null))
1918 }
……@@ -22,8 +21,8 @@ module.exports = class {
2221 (this.config = this.view.config),
2322 (this._bee = this.view.bee))
2423 }
25 async _getCodeVersion(e) {
26 const i = await e.get(t.CodeVersionKey, t.UpgraderEncoding)
24 async _getCodeVersion(t) {
25 const i = await t.get(e.CodeVersionKey, e.UpgraderEncoding)
2726 return i ? i.value : 0
2827 }
2928 async getCodeVersion(e = -1) {
……@@ -35,38 +34,38 @@ module.exports = class {
3534 await t.close()
3635 }
3736 }
38 updateCodeVersion(e) {
39 return this._bee.put(t.CodeVersionKey, e, t.UpgraderEncoding)
37 updateCodeVersion(t) {
38 return this._bee.put(e.CodeVersionKey, t, e.UpgraderEncoding)
4039 }
4140 setExperimentalMode() {
42 return this._bee.put(t.ExperimentalModeKey, 1, t.UpgraderEncoding)
41 return this._bee.put(e.ExperimentalModeKey, 1, e.UpgraderEncoding)
4342 }
4443 getExperimentalMode() {
45 return this._bee.get(t.ExperimentalModeKey, t.UpgraderEncoding)
44 return this._bee.get(e.ExperimentalModeKey, e.UpgraderEncoding)
4645 }
4746 async isExperimentalMode() {
4847 const e = await this.getExperimentalMode()
4948 return !!e && 1 === e.value
5049 }
5150 async listPlugins() {
52 const e = []
53 for await (const { value: i } of this._bee.createReadStream(t.PluginsEncoding)) e.push(i)
54 return e
51 const t = []
52 for await (const { value: i } of this._bee.createReadStream(e.PluginsEncoding)) t.push(i)
53 return t
5554 }
56 async updatePlugin(e, { key: i, length: n, fork: a }) {
55 async updatePlugin(t, { key: i, length: n, fork: a }) {
5756 const s = await this.listPlugins()
5857 let r = -1
59 for (let t = 0; t < s.length; t++)
60 if (s[t].name === e) {
61 r = t
58 for (let e = 0; e < s.length; e++)
59 if (s[e].name === t) {
60 r = e
6261 break
6362 }
6463 if (-1 === r) {
65 const e = { ...t.PluginsEncoding.keyEncoding.encodeRange({}), reverse: !0 },
66 i = await this._bee.peek(e)
67 r = i ? t.PluginsEncoding.keyEncoding.decode(i.key) + 1 : 0
64 const t = { ...e.PluginsEncoding.keyEncoding.encodeRange({}), reverse: !0 },
65 i = await this._bee.peek(t)
66 r = i ? e.PluginsEncoding.keyEncoding.decode(i.key) + 1 : 0
6867 }
69 await this._bee.put(r, { name: e, key: i, length: n, fork: a }, t.PluginsEncoding)
68 await this._bee.put(r, { name: t, key: i, length: n, fork: a }, e.PluginsEncoding)
7069 }
7170 async _applyGenesisOperation(e, { id: t }) {
7271 if (this.view.core.length > 0) return
……@@ -78,11 +77,11 @@ module.exports = class {
7877 async _applyUpgradeOperation(e) {
7978 const { version: t } = e.value.value,
8079 i = await this.getCodeVersion()
81 t > ((await this.isExperimentalMode()) ? l.EXPERIMENTAL : l.STABLE) ||
80 t > ((await this.isExperimentalMode()) ? o.EXPERIMENTAL : o.STABLE) ||
8281 (i && i >= t) ||
83 (i < p[r.V2_CONFIG] && o(t, r.V2_CONFIG) && (await this.config.migrate()),
84 i < p[r.V2_PRIVATE_PROFILE] &&
85 o(t, r.V2_PRIVATE_PROFILE) &&
82 (i < l[s.V2_CONFIG] && r(t, s.V2_CONFIG) && (await this.config.migrate()),
83 i < l[s.V2_PRIVATE_PROFILE] &&
84 r(t, s.V2_PRIVATE_PROFILE) &&
8685 (await this.view.privateProfile.migrate()),
8786 await this.updateCodeVersion(t))
8887 }
……@@ -93,11 +92,11 @@ module.exports = class {
9392 }
9493 async autobaseApply(e, t) {
9594 switch (e.value.subtype) {
96 case a.SUBTYPE:
97 return this._applyGenesisOperation(e, t)
9895 case n.SUBTYPE:
96 return this._applyGenesisOperation(e, t)
97 case i.SUBTYPE:
9998 return this._applyUpgradeOperation(e, t)
100 case s.SUBTYPE:
99 case a.SUBTYPE:
101100 return this._applyAddPluginOperation(e, t)
102101 }
103102 }
@holepunchto/keet-indexing/package.json +3 -3
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-indexing",
3 "version": "6.3.2",
3 "version": "6.4.0",
44 "description": "Indexing logic for Keet's Autobase DB",
55 "main": "index.js",
66 "repository": {
……@@ -14,12 +14,12 @@
1414 },
1515 "homepage": "https://github.com/holepunchto/keet-indexing#readme",
1616 "dependencies": {
17 "blind-pairing-core": "^2.0.0",
1817 "@holepunchto/hyperindex": "^2.2.0",
1918 "@holepunchto/keet-core-api": "^1.28.0",
2019 "@holepunchto/keet-core-schemas": "^2.13.0",
2120 "b4a": "^1.6.4",
22 "compact-encoding": "^2.12.0",
21 "blind-pairing-core": "^2.0.0",
22 "compact-encoding": "^3.0.1",
2323 "hyperbee": "^2.19.0",
2424 "keet-identity-key": "^3.0.0",
2525 "sub-encoder": "^2.1.3",
@holepunchto/keet-package/.gitattributes +0 -1
……@@ -1 +0,0 @@
1* text=auto eol=lf
@holepunchto/keet-package/README.md +0 -38
……@@ -1,38 +0,0 @@
1# Keet package
2
3Bundle packing for Keet core files. It uses [bare-pack](https://github.com/holepunchto/bare-pack/) to produce the bundle and allows obfuscating the bundle optionally.
4
5```
6npm i [-g] @holepunchto/keet-package
7```
8
9## Usage
10
11#### `keet-package <command> <flags>`
12
13##### - 'bundle'
14
15Bundle the module graph located at `--in` and save at `--out` path
16
17Flags include:
18
19```console
20--in <path>,
21--out <out>,
22--no-minify,
23--base <path>
24--defer <specifier>
25--linked
26--format|-f
27--encoding|-e
28--host,h <platform-arch>,
29--preset <name>
30```
31
32##### - 'version'
33
34Check the [bare-pack](https://github.com/holepunchto/bare-pack/blob/main/README.md) README to know more on the flags.
35
36## License
37
38UNLICENSED
@holepunchto/keet-package/bin.js +0 -53
……@@ -1,53 +0,0 @@
1#!/usr/bin/env node
2const { summary: e, command: o, flag: n } = require("paparam"),
3 { createBundle: i } = require("./index.js"),
4 { version: a } = require("./package.json"),
5 t = o(
6 "bundle",
7 e("Bundle a file"),
8 n("--in|-i <path>", "Path to the file to bundle"),
9 n("--out|-o <path>", "The output path of the bundle"),
10 n("--no-minify", "disable minification of the bundle"),
11 n("--minify-all", "minify all files, not just punch ones"),
12 n("--base <path>", "The base path of the bundle"),
13 n("--defer <specifier>", "A module specifier to defer resolution of").multiple(),
14 n("--linked", "Resolve linked: addons instead of file: prebuilds"),
15 n("--format|-f <name>", "The bundle format to use"),
16 n("--encoding|-e <name>", "The encoding to use for text bundle formats"),
17 n("--host <host>", "The host to bundle for").multiple(),
18 n("--preset <name>", "Apply an option preset"),
19 async (e) => {
20 const {
21 base: o,
22 out: n,
23 defer: t,
24 linked: l,
25 format: s,
26 encoding: r,
27 host: f,
28 preset: d,
29 minifyAll: u,
30 } = e.flags,
31 p = e.flags.in,
32 h = { all: !!u, holepunch: !0 }
33 if (!p || !n) throw new Error("Error: --in and --out are required")
34 e.flags.version
35 ? console.log(`v${a}`)
36 : await i(p, n, {
37 log: !0,
38 base: o,
39 defer: t,
40 linked: l,
41 format: s,
42 encoding: r,
43 hosts: f,
44 preset: d,
45 minify: !1 === e.flags.minify ? null : h,
46 })
47 },
48 ),
49 l = o("version", e("Version of package"), async () => {
50 console.log(`v${a}`)
51 }),
52 s = o("keet-package", t, l)
53s.parse()
@holepunchto/keet-package/index.js +0 -74
……@@ -1,74 +0,0 @@
1const e = require("terser"),
2 { pathToFileURL: n } = require("url"),
3 r = require("path"),
4 { resolve: t } = require("bare-module-traverse"),
5 s = require("bare-bundle-id"),
6 i = require("bare-pack"),
7 { writeFile: o, makeDir: l, readModule: u, listPrefix: a } = require("bare-pack/fs")
8function d(e, { all: n = !1, holepunch: t = !0, log: s } = {}) {
9 for (const [i, o] of e) {
10 const l = r.extname(i)
11 ;(".js" === l || ".cjs" === l || ".mjs" === l || ".ejs" === l) &&
12 ((!n && t && -1 === i.indexOf("@holepunchto")) ||
13 ((n || t) && (s && console.log("Minifying and mangling", i), e.write(i, c(o.toString())))))
14 }
15}
16function c(n) {
17 return (
18 Buffer.isBuffer(n) && (n = n.toString()),
19 e.minify_sync(n, { mangle: { toplevel: !0 }, compress: { passes: 2 } }).code
20 )
21}
22async function f(
23 e,
24 r,
25 {
26 base: c = ".",
27 defer: f = [],
28 linked: p = !1,
29 hosts: m = [`${process.platform}-${process.arch}`],
30 encoding: g = "utf-8",
31 format: h = b(r),
32 minify: j,
33 log: y,
34 preset: k,
35 },
36) {
37 let w = await i(
38 n(e),
39 { hosts: m, resolve: t.bare, builtins: [], imports: null, defer: f, linked: p, preset: k },
40 u,
41 a,
42 )
43 ;((w = w.unmount(n(c))), (w.id = s(w).toString("hex")), j && d(w, { ...j, log: y }))
44 let S = w.toBuffer()
45 switch (h) {
46 case "bundle":
47 break
48 case "bundle.cjs":
49 S = `module.exports = ${JSON.stringify(S.toString(g))}\n`
50 break
51 case "bundle.mjs":
52 S = `export default ${JSON.stringify(S.toString(g))}\n`
53 break
54 case "bundle.json":
55 S = JSON.stringify(S.toString(g)) + "\n"
56 break
57 default:
58 throw new Error(`Unknown format '${h}'`)
59 }
60 const x = n(r)
61 ;(await l(new URL(".", x)), await o(x, S))
62}
63function b(e) {
64 return "string" != typeof e
65 ? "bundle"
66 : e.endsWith(".bundle.js") || e.endsWith(".bundle.cjs")
67 ? "bundle.cjs"
68 : e.endsWith(".bundle.mjs")
69 ? "bundle.mjs"
70 : e.endsWith(".bundle.json")
71 ? "bundle.json"
72 : "bundle"
73}
74;((exports.minifySource = c), (exports.minifyBundle = d), (exports.createBundle = f))
@holepunchto/keet-package/package.json +0 -44
……@@ -1,44 +0,0 @@
1{
2 "name": "@holepunchto/keet-package",
3 "version": "3.0.3",
4 "description": "Automatically obfuscated private Holepunch repositories and produce a bundle",
5 "license": "UNLICENSED",
6 "author": "HOLEPUNCH INC",
7 "type": "commonjs",
8 "main": "index.js",
9 "scripts": {
10 "format": "prettier . --write",
11 "lint": "lunte && prettier . --check"
12 },
13 "exports": {
14 "./package": "./package.json",
15 ".": "./index.js"
16 },
17 "bin": {
18 "keet-package": "./bin.js"
19 },
20 "imports": {
21 "url": {
22 "bare": "bare-url",
23 "default": "url"
24 },
25 "path": {
26 "bare": "bare-path",
27 "default": "path"
28 }
29 },
30 "dependencies": {
31 "bare-bundle-id": "^1.0.2",
32 "bare-module-traverse": "^2.0.0",
33 "bare-pack": "^2.0.0",
34 "bare-path": "^3.0.0",
35 "bare-url": "^2.4.0",
36 "paparam": "^1.10.0",
37 "terser": "^5.46.1"
38 },
39 "devDependencies": {
40 "lunte": "^1.6.0",
41 "prettier": "^3.7.4",
42 "prettier-config-holepunch": "^2.0.0"
43 }
44}
@holepunchto/keet-push/lib/encoding.js +31 -26
……@@ -1,37 +1,42 @@
11const e = require("compact-encoding"),
22 o = "io.keet.app",
3 r = (global.Pear ? global.Pear.config.appId : null) || o,
4 d = {
5 preencode(d, n) {
6 ;(e.uint.preencode(d, n.version),
7 e.fixed32.preencode(d, n.roomDiscoveryKey),
8 e.buffer.preencode(d, n.payload),
9 r !== o && e.string.preencode(d, r))
3 d = (global.Pear ? global.Pear.config.appId : null) || o,
4 n = {
5 preencode(n, r) {
6 ;(e.uint.preencode(n, r.version),
7 e.fixed32.preencode(n, r.roomDiscoveryKey),
8 e.buffer.preencode(n, r.payload),
9 d !== o && e.string.preencode(n, d))
1010 },
11 encode(d, n) {
12 ;(e.uint.encode(d, n.version),
13 e.fixed32.encode(d, n.roomDiscoveryKey),
14 e.buffer.encode(d, n.payload),
15 r !== o && e.string.encode(d, r))
11 encode(n, r) {
12 ;(e.uint.encode(n, r.version),
13 e.fixed32.encode(n, r.roomDiscoveryKey),
14 e.buffer.encode(n, r.payload),
15 d !== o && e.string.encode(n, d))
1616 },
17 decode(r) {
18 const d = e.uint.decode(r)
19 if (0 !== d && 1 !== d) throw new Error("Unknown version: " + d)
17 decode(d) {
18 const n = e.uint.decode(d)
19 if (0 !== n && 1 !== n) throw new Error("Unknown version: " + n)
2020 return {
21 version: d,
22 roomDiscoveryKey: e.fixed32.decode(r),
23 payload: e.buffer.decode(r),
24 appId: r.start < r.end ? e.string.decode(r) : o,
21 version: n,
22 roomDiscoveryKey: e.fixed32.decode(d),
23 payload: e.buffer.decode(d),
24 appId: d.start < d.end ? e.string.decode(d) : o,
2525 }
2626 },
2727 },
28 n = {
29 preencode(o, r) {
30 ;(e.buffer.preencode(o, r.proof), e.buffer.preencode(o, r.attest))
28 r = {
29 preencode(o, d) {
30 ;(e.buffer.preencode(o, d.proof), e.uint.preencode(o, 0), e.buffer.preencode(o, d.attest))
3131 },
32 encode(o, r) {
33 ;(e.buffer.encode(o, r.proof), e.buffer.encode(o, r.attest))
32 encode(o, d) {
33 ;(e.buffer.encode(o, d.proof),
34 e.uint.encode(o, d.attest ? 1 : 0),
35 d.attest && e.buffer.encode(o, d.attest))
3436 },
35 decode: (o) => ({ proof: e.buffer.decode(o), attest: e.buffer.decode(o) }),
37 decode: (o) => ({
38 proof: e.buffer.decode(o),
39 attest: 1 & e.uint.decode(o) ? e.buffer.decode(o) : null,
40 }),
3641 }
37module.exports = { notification: d, payload: n }
42module.exports = { notification: n, payload: r }
@holepunchto/keet-push/package.json +2 -2
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-push",
3 "version": "4.2.0",
3 "version": "4.3.0",
44 "description": "Push notifications for Keet",
55 "scripts": {
66 "test": "standard"
……@@ -24,7 +24,7 @@
2424 "@hyperswarm/rpc": "^3.2.0",
2525 "autobase": "^7.0.0",
2626 "b4a": "^1.6.4",
27 "compact-encoding": "^2.11.0",
27 "compact-encoding": "^3.0.0",
2828 "hypercore": "^11.4.2",
2929 "hypercore-crypto": "^3.3.1",
3030 "hypercore-id-encoding": "^1.3.0",
@holepunchto/keet-registry-client/package.json +2 -2
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-registry-client",
3 "version": "5.1.1",
3 "version": "5.2.0",
44 "description": "Client for keet-registry-service",
55 "main": "index.js",
66 "scripts": {
……@@ -33,7 +33,7 @@
3333 "dependencies": {
3434 "@holepunchto/keet-registry": "^3.1.1",
3535 "@holepunchto/keet-registry-schema": "^3.4.0",
36 "compact-encoding": "^2.16.0",
36 "compact-encoding": "^3.0.0",
3737 "corestore": "^7.4.2",
3838 "graceful-goodbye": "^1.3.3",
3939 "hypercore-id-encoding": "^1.3.0",
@holepunchto/keet-registry/package.json +3 -3
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-registry",
3 "version": "3.7.0",
3 "version": "3.9.0",
44 "description": "Name service for Keet identities",
55 "main": "index.js",
66 "scripts": {
……@@ -40,13 +40,13 @@
4040 "dependencies": {
4141 "@holepunchto/keet-schemas": "blue",
4242 "b4a": "^1.6.7",
43 "compact-encoding": "^2.16.0",
43 "compact-encoding": "^3.0.0",
4444 "debounceify": "^1.1.0",
4545 "fast-fifo": "^1.3.2",
4646 "hyperblobs": "^2.8.0",
4747 "hypercore-crypto": "^3.6.1",
4848 "hypercore-id-encoding": "^1.3.0",
49 "hyperdb": "^5.0.0",
49 "hyperdb": "^6.0.0",
5050 "hyperschema": "^1.10.2",
5151 "keet-identity-key": "^3.0.0",
5252 "ready-resource": "^1.1.1",
@holepunchto/keet-store/api/core-type.d.ts +1 -0
……@@ -90,6 +90,7 @@ export type RoomInfoApiData = {
9090 isActive: boolean,
9191 isFullyMuted: boolean,
9292 isMentionsOnlyMuted: boolean,
93 isUnread: boolean,
9394 },
9495 },
9596 fileStats?: { total: number }
@holepunchto/keet-store/api/core.js +1 -1
……@@ -36,4 +36,4 @@ export function getChatMessagesApiPromise(e, { reverse: o, gte: n, lte: r }) {
3636 const i = { reverse: "boolean" != typeof o || o, lte: r, gte: n }
3737 return apiCallPromise(t().getChatMessages, e, i)
3838}
39export const ERROR_POSIX = { ENOSPC: "ENOSPC" }
39export const ERROR_POSIX = { ENOSPC: "ENOSPC", EIO: "EIO" }
@holepunchto/keet-store/package.json +1 -1
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-store",
3 "version": "6.14.30",
3 "version": "6.15.28",
44 "description": "Keet shared store",
55 "main": "index.js",
66 "types": "types/index.d.ts",
@holepunchto/keet-store/store/app/app-desktop.saga.js +1 -1
……@@ -111,7 +111,7 @@ export function* appDesktopHandlerSaga() {
111111 yield i(Eo, io),
112112 yield i(x, ao),
113113 yield i(So, ro),
114 yield t(P, to),
114 yield a(P, to),
115115 yield t(Y, po),
116116 yield i(B, To),
117117 yield t(h, H),
@holepunchto/keet-store/store/app/app-mobile.saga.js +1 -1
……@@ -204,7 +204,7 @@ function* qi() {
204204 yield o(ki),
205205 yield o(S),
206206 yield d(z, T),
207 yield r(ii, f),
207 yield y(ii, f),
208208 yield r(B, F),
209209 yield r(ei, u),
210210 yield r(Ii, Ki),
@holepunchto/keet-store/store/app/saga/app-error.saga.js +7 -7
……@@ -19,9 +19,9 @@ import {
1919import { getRoomItemById as f, getRoomTitle as g, setRoomShowWarning as u } from "../../room"
2020import { getAppCurrentRoomId as E } from "../app.reducer"
2121import { apiSubscribeSaga as I, safeCall as b } from "../../lib"
22import { APP_CONTEXT_KEY as C, ENV_CONTEXT_KEY as S } from "../../constants"
23import { getCoreBackend as k } from "../../../backend"
24import { getStatsUnlocked as O } from "../../stats"
22import { APP_CONTEXT_KEY as C, ENV_CONTEXT_KEY as O } from "../../constants"
23import { getCoreBackend as S } from "../../../backend"
24import { getStatsUnlocked as k } from "../../stats"
2525import {
2626 NOTIFICATION_CODE as T,
2727 userCustomNotification as W,
……@@ -34,7 +34,7 @@ function* P({ type: r, payload: i }) {
3434 m = yield e(f(t)),
3535 n = { ...i, roomId: t, roomTitle: m?.title },
3636 { message: p, errorCode: g } = i
37 g === G.ENOSPC
37 g === G.ENOSPC || g === G.EIO
3838 ? (yield o(y(n)), yield o(W({ code: T.STORAGE_LOW_SPACE, message: p })))
3939 : r === s.type
4040 ? yield o(d(n))
……@@ -43,13 +43,13 @@ function* P({ type: r, payload: i }) {
4343 : r === l.type && (yield o(c(n)))
4444}
4545function* $() {
46 const { onError: r } = yield m(S),
46 const { onError: r } = yield m(O),
4747 { consoleWarn: i } = yield m(C)
4848 r &&
49 (yield I([k().subscribeErrors], function* (t) {
49 (yield I([S().subscribeErrors], function* (t) {
5050 if (t.isContractError) return void (i && i(t))
5151 yield b(r, t, { source: "core" })
52 const m = yield e(O),
52 const m = yield e(k),
5353 d = yield e(A),
5454 s = t.details?.roomId
5555 if (m) {
@holepunchto/keet-store/store/app/saga/desktop-room-notifications.saga.js +1 -1
……@@ -63,7 +63,7 @@ function* F({
6363 )
6464 return
6565 }
66 const { title: N, roomType: I, avatarUrl: g } = M(y?.config),
66 const { title: N, roomType: I, avatarUrl: g } = M(y.config, t),
6767 B = I === T.DM,
6868 {
6969 member: h,
@holepunchto/keet-store/store/app/saga/mobile-room-notifications.saga.js +1 -1
……@@ -27,7 +27,7 @@ function* N({ roomId: o, message: i }) {
2727 s(t.getMember, o, i.memberId),
2828 s(t.getBlockedMembers),
2929 ]),
30 { title: l, roomType: f } = b(m?.config),
30 { title: l, roomType: f } = b(m.config, o),
3131 y = f === g.DM,
3232 {
3333 member: u,
@holepunchto/keet-store/store/call/call-presence.reducer.js +55 -51
……@@ -1,36 +1,36 @@
11import { STREAM_TYPE as e, PRESENCE_EVT as r } from "./call.constants"
22import {
33 getEmptyMemberMedia as m,
4 getEmptyMemberPresence as a,
5 hasStreamEverAdded as d,
4 getEmptyMemberPresence as d,
5 hasStreamEverAdded as a,
66 removeFromPresencesSortedByActivity as s,
77 updatePresencesSortedByActivity as t,
88} from "./utils"
99export const addCallUnknownPresenceEvtReducer = (e, { payload: m }) => {
1010 if (!m || !m.swarmId) return e
11 const { swarmId: a, type: s } = m,
11 const { swarmId: d, type: s } = m,
1212 t = { ...e.unknownMemberPresence },
13 n = t[a]
13 n = t[d]
1414 return s === r.REMOVE_MEMBER
15 ? (n && delete t[a], { ...e, unknownMemberPresence: t })
16 : s !== r.REMOVE_STREAM || d(m, n)
17 ? { ...e, unknownMemberPresence: { ...t, [a]: [...(n || []), m] } }
15 ? (n && delete t[d], { ...e, unknownMemberPresence: t })
16 : s !== r.REMOVE_STREAM || a(m, n)
17 ? { ...e, unknownMemberPresence: { ...t, [d]: [...(n || []), m] } }
1818 : e
1919}
2020export const removeCallMemberStreamReducer = (e, { payload: r }) => {
21 const { swarmId: m, streamId: a, streamName: d } = r,
21 const { swarmId: m, streamId: d, streamName: a } = r,
2222 s = {
2323 ...e.presenceBySwarmId[m],
2424 ...(e.presenceBySwarmId[m].streamByName && {
2525 streamByName: { ...e.presenceBySwarmId[m].streamByName },
2626 }),
2727 }
28 return s.streamByName?.[d]?.streamId === a
29 ? (delete s.streamByName[d], { ...e, presenceBySwarmId: { ...e.presenceBySwarmId, [m]: s } })
28 return s.streamByName?.[a]?.streamId === d
29 ? (delete s.streamByName[a], { ...e, presenceBySwarmId: { ...e.presenceBySwarmId, [m]: s } })
3030 : e
3131}
3232export const addCallMemberStreamReducer = (e, { payload: r }) => {
33 const { memberId: m, swarmId: d, streamId: s, streamName: t } = r
33 const { memberId: m, swarmId: a, streamId: s, streamName: t } = r
3434 let {
3535 presenceBySwarmId: n,
3636 presenceMemberSwarmIds: c,
……@@ -38,11 +38,11 @@ export const addCallMemberStreamReducer = (e, { payload: r }) => {
3838 presenceSwarmByMemberId: I,
3939 } = e
4040 return (
41 n[d] ||
42 ((n = { ...n, [d]: a({ memberId: m, swarmId: d }) }),
43 (c = [...c, d]),
41 n[a] ||
42 ((n = { ...n, [a]: d({ memberId: m, swarmId: a }) }),
43 (c = [...c, a]),
4444 o.includes(m) || (o = [...o, m]),
45 (I = { ...I, [m]: d })),
45 (I = { ...I, [m]: a })),
4646 {
4747 ...e,
4848 presenceMemberSwarmIds: c,
……@@ -50,29 +50,29 @@ export const addCallMemberStreamReducer = (e, { payload: r }) => {
5050 presenceSwarmByMemberId: I,
5151 presenceBySwarmId: {
5252 ...n,
53 [d]: {
54 ...n[d],
55 streamByName: { ...n[d].streamByName, [t]: { streamId: s, streamName: t } },
53 [a]: {
54 ...n[a],
55 streamByName: { ...n[a].streamByName, [t]: { streamId: s, streamName: t } },
5656 },
5757 },
5858 }
5959 )
6060}
6161export const removeCallMemberIdReducer = (e, { payload: r }) => {
62 const { memberId: m, swarmId: a } = r || {}
63 if (e.presenceBySwarmId[a]) {
62 const { memberId: m, swarmId: d } = r || {}
63 if (e.presenceBySwarmId[d]) {
6464 const r = Object.values(e.presenceBySwarmId).filter((e) => e.memberId === m).length,
65 d = { ...e.presenceBySwarmId }
66 delete d[a]
65 a = { ...e.presenceBySwarmId }
66 delete a[d]
6767 const t = 1 === r
6868 let { presenceSwarmByMemberId: n } = e
6969 return (
7070 t && ((n = { ...n }), delete n[m]),
7171 {
7272 ...e,
73 presenceBySwarmId: d,
74 presenceMemberSwarmIds: e.presenceMemberSwarmIds.filter((e) => e !== a),
75 presencesSortedByActivity: s(e, a),
73 presenceBySwarmId: a,
74 presenceMemberSwarmIds: e.presenceMemberSwarmIds.filter((e) => e !== d),
75 presencesSortedByActivity: s(e, d),
7676 presenceMemberIds: t ? e.presenceMemberIds.filter((e) => e !== m) : e.presenceMemberIds,
7777 presenceSwarmByMemberId: n,
7878 }
……@@ -81,8 +81,8 @@ export const removeCallMemberIdReducer = (e, { payload: r }) => {
8181 return e
8282}
8383export const addCallMemberIdReducer = (e, { payload: r }) => {
84 const { memberId: m, swarmId: d } = r || {},
85 s = e.unknownMemberPresence[d] ? { ...e.unknownMemberPresence } : e.unknownMemberPresence
84 const { memberId: m, swarmId: a } = r || {},
85 s = e.unknownMemberPresence[a] ? { ...e.unknownMemberPresence } : e.unknownMemberPresence
8686 let {
8787 presenceBySwarmId: n,
8888 presenceMemberSwarmIds: c,
……@@ -90,16 +90,16 @@ export const addCallMemberIdReducer = (e, { payload: r }) => {
9090 presenceMemberIds: I,
9191 presenceSwarmByMemberId: y,
9292 } = e,
93 p = n[d]
93 p = n[a]
9494 return (
9595 p ||
96 ((p = a({ memberId: m, swarmId: d })),
97 (n = { ...n, [d]: p }),
98 (c = [...c, d]),
99 (o = t(e, d)),
96 ((p = d({ memberId: m, swarmId: a })),
97 (n = { ...n, [a]: p }),
98 (c = [...c, a]),
99 (o = t(e, a)),
100100 I.includes(m) || (I = [...I, m]),
101 (y = { ...y, [m]: d })),
102 e.unknownMemberPresence[d] && delete s[d],
101 (y = { ...y, [m]: a })),
102 e.unknownMemberPresence[a] && delete s[a],
103103 {
104104 ...e,
105105 presenceBySwarmId: n,
……@@ -111,33 +111,37 @@ export const addCallMemberIdReducer = (e, { payload: r }) => {
111111 }
112112 )
113113}
114export const updateCallRemoteMediaReducer = (r, { payload: a }) => {
115 const { memberId: d, swarmId: s, audioMuted: n, videoMuted: c, streamName: o, streamId: I } = a
116 let y = r.mediaBySwarmId[s] || m({ memberId: d, swarmId: s }),
114export const updateCallRemoteMediaReducer = (r, { payload: d }) => {
115 const { memberId: a, swarmId: s, audioMuted: n, videoMuted: c, streamName: o, streamId: I } = d
116 let y = r.mediaBySwarmId[s] || m({ memberId: a, swarmId: s }),
117117 { presencesSortedByActivity: p } = r
118 return (
119 (y = { ...y, streamByName: { ...y.streamByName, [o]: { id: I } } }),
118 ;((y = { ...y, streamByName: { ...y.streamByName, [o]: { id: I } } }),
120119 o === e.CAMERA &&
121120 (n && y.audioError && delete y.audioError,
122121 (p = t(r, s, n, c)),
123122 (y.isAudioMuted = n),
124 (y.isVideoMuted = c)),
125 { ...r, presencesSortedByActivity: p, mediaBySwarmId: { ...r.mediaBySwarmId, [s]: y } }
126 )
123 (y.isVideoMuted = c)))
124 const w = r.connectedMemberIds?.[a] ? r.connectedMemberIds : { ...r.connectedMemberIds, [a]: !0 }
125 return {
126 ...r,
127 presencesSortedByActivity: p,
128 connectedMemberIds: w,
129 mediaBySwarmId: { ...r.mediaBySwarmId, [s]: y },
130 }
127131}
128132export const removeCallRemoteMediaReducer = (r, { payload: m }) => {
129 const { swarmId: a, streamName: d, streamId: s } = m
130 if (!a || !d || !s) return r
131 let t = { ...r.mediaBySwarmId[a] }
132 if (!t?.streamByName || !t.streamByName[d]) return r
133 if (t.streamByName[d].id !== s) return r
133 const { swarmId: d, streamName: a, streamId: s } = m
134 if (!d || !a || !s) return r
135 let t = { ...r.mediaBySwarmId[d] }
136 if (!t?.streamByName || !t.streamByName[a]) return r
137 if (t.streamByName[a].id !== s) return r
134138 if (Object.keys(t.streamByName).length > 1)
135139 return (
136140 (t = { ...t, streamByName: { ...t.streamByName } }),
137 delete t.streamByName[d],
138 d === e.CAMERA && (delete t.audioError, delete t.isAudioMuted, delete t.isVideoMuted),
139 { ...r, mediaBySwarmId: { ...r.mediaBySwarmId, [a]: t } }
141 delete t.streamByName[a],
142 a === e.CAMERA && (delete t.audioError, delete t.isAudioMuted, delete t.isVideoMuted),
143 { ...r, mediaBySwarmId: { ...r.mediaBySwarmId, [d]: t } }
140144 )
141145 const n = { ...r.mediaBySwarmId }
142 return (delete n[a], { ...r, mediaBySwarmId: n })
146 return (delete n[d], { ...r, mediaBySwarmId: n })
143147}
@holepunchto/keet-store/store/call/call-settings.saga.js +13 -10
……@@ -22,8 +22,8 @@ import {
2222import {
2323 getDeviceState as g,
2424 getCameraAudioConstraints as v,
25 getCameraVideoConstraints as D,
26 getVideoDevice as I,
25 getCameraVideoConstraints as I,
26 getVideoDevice as D,
2727 getAudioDevice as A,
2828 setVideoDevice as V,
2929 setAudioDevice as h,
……@@ -105,11 +105,11 @@ export function* windowsPermissionsHandleSaga(e) {
105105 i && (yield l(C({ permission: i, isGranted: !1, showPermissionDeniedModal: !0 })))
106106}
107107export function* updateCameraStream(e) {
108 const [i, a, o, t, n, y, r, s] = yield d([c(_), c(K), c(I), c(z), c(J), c(X), c(A), c(q)])
108 const [i, a, o, t, n, y, r, s] = yield d([c(_), c(K), c(D), c(z), c(J), c(X), c(A), c(q)])
109109 P(i) && (yield l(de(!1)))
110110 const u = y.meAllowed ? t : !y.allowed || t,
111111 p = Math.min(y.maxQuality, n),
112 f = D({ videoDevice: o, videoMuted: u, videoQuality: p }),
112 f = I({ videoDevice: o, videoMuted: u, videoQuality: p }),
113113 S = v({ audioDevice: r, audioMuted: s })
114114 try {
115115 yield m().local.applyStreamConstraints(a, { audio: S, video: f })
……@@ -172,10 +172,10 @@ export function* updateDevicePreferences() {
172172 yield l(h(S))
173173 const v = m[i[f.AUDIO_OUTPUT]] || s.devices.find((e) => e.default) || Se(s.devices) || null
174174 yield l(x(v))
175 const D = m[i[f.VIDEO]] || r.devices.find((e) => e.default) || Se(r.devices) || null
176 yield l(V(D))
177 const I = i[f.VIDEO_QUALITY]
178 ;("number" == typeof I && (yield l(ie(I))), d || (yield l(oe())))
175 const I = m[i[f.VIDEO]] || r.devices.find((e) => e.default) || Se(r.devices) || null
176 yield l(V(I))
177 const D = i[f.VIDEO_QUALITY]
178 ;("number" == typeof D && (yield l(ie(D))), d || (yield l(oe())))
179179}
180180export function* callPreferencesSaga() {
181181 ;(yield n(V, function* ({ payload: e }) {
……@@ -206,7 +206,10 @@ export function* callVideoToggleSaga() {
206206 { isVideoMuted: i } = yield c(Z)
207207 if (i) {
208208 if ((yield c(U)) < ce) {
209 ;((yield c(M)).find((i) => i.deviceStaticId === O(e)) && (yield l(b(O(e)))),
209 const i = yield c(M),
210 a = yield c(D)
211 ;((a && i.some((e) => e.deviceStaticId === a.deviceStaticId)) ||
212 (i.find((i) => i.deviceStaticId === O(e)) && (yield l(b(O(e))))),
210213 yield l(H(e ? 2 : 1)),
211214 yield l(F()))
212215 }
……@@ -221,7 +224,7 @@ export function* callVideoCloseSaga() {
221224export function* callSwapViewCameraSaga() {
222225 try {
223226 const e = yield c(M),
224 i = yield c(I),
227 i = yield c(D),
225228 a = e.find((e) => e.deviceStaticId !== i.deviceStaticId)
226229 a && (yield l(b(a.deviceStaticId)))
227230 } catch (e) {
@holepunchto/keet-store/store/call/call.reducer.js +102 -84
……@@ -2,8 +2,8 @@ import { createSelector as e } from "@reduxjs/toolkit"
22import {
33 CALL_STATUS as t,
44 STREAM_TYPE as r,
5 CALL_STATE_KEY as a,
6 CALL_SETTINGS_STATE_KEY as n,
5 CALL_STATE_KEY as n,
6 CALL_SETTINGS_STATE_KEY as a,
77} from "./call.constants"
88import {
99 CALL_SETTINGS_INITIAL_STATE as l,
……@@ -17,8 +17,8 @@ import {
1717 showCallAutoEndPopup as p,
1818 updateCallAutoEndCountdown as C,
1919 setCallShareScreenDialogOpened as i,
20 openCallSettings as u,
21 setCallRemoteMediaAudioError as g,
20 openCallSettings as g,
21 setCallRemoteMediaAudioError as u,
2222 removeCallRemoteMediaAudioError as I,
2323 updateCallRemoteMedia as S,
2424 removeCallRemoteMedia as y,
……@@ -27,38 +27,39 @@ import {
2727 removeCallPeersCount as x,
2828 setCallPeers as M,
2929 callSetIncomingDMCall as P,
30 callResetIncomingDMCall as E,
31 setDmCallsV2Enabled as B,
32 setActiveCalls as h,
30 callResetIncomingDMCall as B,
31 setDmCallsV2Enabled as f,
32 setActiveCalls as E,
3333 setPendingCall as A,
3434} from "./call.action"
3535import {
36 addCallMemberId as f,
36 addCallMemberId as h,
3737 removeCallMemberId as v,
3838 addCallMemberStream as N,
39 removeCallMemberStream as T,
40 addCallUnknownPresenceEvt as D,
39 removeCallMemberStream as k,
40 addCallUnknownPresenceEvt as T,
4141} from "./call-presence.action"
4242import {
43 callCancel as k,
44 callJoinCmd as L,
45 callJoinedEvt as O,
46 callLeave as R,
47 callReset as V,
43 callCancel as O,
44 callJoinCmd as D,
45 callJoinedEvt as L,
46 callLeave as G,
47 callReset as R,
4848} from "./call-status.action"
4949import {
50 addCallMemberIdReducer as G,
51 addCallMemberStreamReducer as U,
50 addCallMemberIdReducer as U,
51 addCallMemberStreamReducer as V,
5252 addCallUnknownPresenceEvtReducer as J,
5353 removeCallMemberIdReducer as j,
5454 removeCallMemberStreamReducer as _,
55 removeCallRemoteMediaReducer as z,
56 updateCallRemoteMediaReducer as H,
55 removeCallRemoteMediaReducer as H,
56 updateCallRemoteMediaReducer as z,
5757} from "./call-presence.reducer"
58import { getNextPositionPreservedList as K, createEmptyPresenceEntry as Y } from "./utils"
58import { getNextPositionPreservedList as K, mergeActivePresences as Y } from "./utils"
5959import { getMembersByRoomIdState as q } from "../member"
6060import { getRoomCallsV2Supported as F } from "../room/room.feature"
61import { EMPTY_ARRAY as Q } from "../lib/array"
61import { getNetworkPeers as Q } from "../network/network.reducer"
62import { EMPTY_ARRAY as W } from "../lib/array"
6263export const INITIAL_STATE = {
6364 callId: "",
6465 memberId: "",
……@@ -73,6 +74,7 @@ export const INITIAL_STATE = {
7374 activeCalls: null,
7475 activeCallMemberIds: null,
7576 mediaBySwarmId: {},
77 connectedMemberIds: {},
7678 peersCounter: {},
7779 showConfirmLeave: !1,
7880 showAutoEndPopup: !1,
……@@ -84,8 +86,8 @@ export const INITIAL_STATE = {
8486 dmCallsV2Enabled: !1,
8587}
8688export const callReducer = (e = INITIAL_STATE, r) => {
87 const { type: a, payload: l } = r
88 switch (a) {
89 const { type: n, payload: l } = r
90 switch (n) {
8991 case c.type: {
9092 const { callId: t, memberId: r } = l
9193 return { ...e, callId: t, memberId: r }
……@@ -104,32 +106,32 @@ export const callReducer = (e = INITIAL_STATE, r) => {
104106 return { ...e, autoEndCountdown: l }
105107 case i.type:
106108 return { ...e, shareScreenDialogOpened: !!l }
107 case u.type:
109 case g.type:
108110 return { ...e, status: t.SETTINGS }
109 case g.type: {
111 case u.type: {
110112 const { swarmId: t, error: r } = l,
111 a = e.mediaBySwarmId[t]
112 return a && r
113 ? { ...e, mediaBySwarmId: { ...e.mediaBySwarmId, [t]: { ...a, audioError: r } } }
113 n = e.mediaBySwarmId[t]
114 return n && r
115 ? { ...e, mediaBySwarmId: { ...e.mediaBySwarmId, [t]: { ...n, audioError: r } } }
114116 : e
115117 }
116118 case I.type: {
117119 const { swarmId: t } = l,
118120 r = e.mediaBySwarmId[t]
119121 if (r && r.audioError) {
120 const a = { ...r }
121 return (delete a.audioError, { ...e, mediaBySwarmId: { ...e.mediaBySwarmId, [t]: a } })
122 const n = { ...r }
123 return (delete n.audioError, { ...e, mediaBySwarmId: { ...e.mediaBySwarmId, [t]: n } })
122124 }
123125 return e
124126 }
125127 case S.type:
126 return H(e, r)
127 case y.type:
128128 return z(e, r)
129 case y.type:
130 return H(e, r)
129131 case w.type: {
130132 const { roomId: t, swarmId: r } = l,
131 a = e.peersCounter[t] || []
132 return a.indexOf(r) < 0 ? { ...e, peersCounter: { ...e.peersCounter, [t]: [...a, r] } } : e
133 n = e.peersCounter[t] || []
134 return n.indexOf(r) < 0 ? { ...e, peersCounter: { ...e.peersCounter, [t]: [...n, r] } } : e
133135 }
134136 case b.type: {
135137 const { roomId: t, swarmId: r } = l
……@@ -147,23 +149,23 @@ export const callReducer = (e = INITIAL_STATE, r) => {
147149 const { roomId: t, ids: r } = l
148150 return { ...e, peersCounter: { ...e.peersCounter, [t]: r } }
149151 }
150 case h.type:
152 case E.type:
151153 return { ...e, activeCalls: l.calls, activeCallMemberIds: l.memberIds }
152 case f.type:
153 return G(e, r)
154 case h.type:
155 return U(e, r)
154156 case v.type:
155157 return j(e, r)
156158 case N.type:
157 return U(e, r)
158 case T.type:
159 return V(e, r)
160 case k.type:
159161 return _(e, r)
160 case D.type:
162 case T.type:
161163 return J(e, r)
162 case L.type:
164 case D.type:
163165 return { ...e, status: t.JOINING }
164 case O.type:
166 case L.type:
165167 return { ...e, status: t.JOINED }
166 case V.type:
168 case R.type:
167169 return {
168170 ...INITIAL_STATE,
169171 peersCounter: e.peersCounter,
……@@ -171,38 +173,39 @@ export const callReducer = (e = INITIAL_STATE, r) => {
171173 pendingCall: e.pendingCall,
172174 dmCallsV2Enabled: e.dmCallsV2Enabled,
173175 }
174 case k.type:
175 case R.type:
176 case O.type:
177 case G.type:
176178 return {
177179 ...e,
178180 showConfirmLeave: !1,
179181 status: t.READY,
180182 mediaBySwarmId: {},
183 connectedMemberIds: {},
181184 activeCalls: null,
182185 activeCallMemberIds: null,
183186 pendingCall: null,
184187 }
185188 case P.type:
186189 return { ...e, incomingCall: l }
187 case E.type:
190 case B.type:
188191 return { ...e, incomingCall: null }
189192 case A.type:
190193 return { ...e, pendingCall: l }
191 case B.type:
194 case f.type:
192195 return { ...e, dmCallsV2Enabled: !!l }
193196 default: {
194 const t = s(e[n], r)
195 return e[n] === t ? e : { ...e, [n]: t }
197 const t = s(e[a], r)
198 return e[a] === t ? e : { ...e, [a]: t }
196199 }
197200 }
198201}
199202export const isCallReady = (e) => e !== t.DISABLED && e !== t.LOADING
200203export const isCallSettingsMode = (e) => e === t.SETTINGS
201204export const isCallJoinedMode = (e) => e === t.JOINING || e === t.JOINED
202export const getCallState = (e) => e[a]
203export const getCallId = (e) => e[a].callId
204export const getCallMyMemberId = (e) => e[a].memberId
205export const getCallStatus = (e) => e[a].status
205export const getCallState = (e) => e[n]
206export const getCallId = (e) => e[n].callId
207export const getCallMyMemberId = (e) => e[n].memberId
208export const getCallStatus = (e) => e[n].status
206209export const getCallShowConfirmLeave = (e) => getCallState(e).showConfirmLeave
207210export const getCallShowAutoEndPopup = (e) => getCallState(e).showAutoEndPopup
208211export const getCallAutoEndCountdown = (e) => getCallState(e).autoEndCountdown
……@@ -222,6 +225,8 @@ export const getIsActiveCallMember = (e) => (t) => {
222225 const r = getActiveCallMemberIds(t)
223226 return null !== r && r.includes(e)
224227}
228export const makeGetIsActiveCallMember = (t) =>
229 e([getActiveCallMemberIds], (e) => null !== e && e.includes(t))
225230export const getCallTopSortedPresences = (e) => getCallState(e).presencesSortedByActivity
226231export const getCallUnknownPresenceIds = e(getCallUnknownPresenceState, (e) => Object.keys(e))
227232export const getCallIncomingCall = (e) => getCallState(e).incomingCall
……@@ -235,46 +240,48 @@ export const getCallPresenceIds = e(
235240)
236241export const getCallPresenceCount = (e) => getCallPresenceIds(e).length
237242export const getIsPresenceUnknown = (e) => (t) => -1 !== getCallUnknownPresenceIds(t)?.indexOf(e)
243export const makeGetIsPresenceUnknown = (t) =>
244 e([getCallUnknownPresenceIds], (e) => -1 !== e?.indexOf(t))
238245export const getCallPresenceSwarmByMemberIds = (e) => getCallState(e).presenceSwarmByMemberId
239246export const getCallRemoteMediaById = (e) => (t) => {
240247 const { mediaBySwarmId: r } = getCallState(t)
241248 if (r[e]) return r[e]
242 const a = getCallPresenceSwarmByMemberIds(t)[e]
243 return a ? r[a] : void 0
249 const n = getCallPresenceSwarmByMemberIds(t)[e]
250 return n ? r[n] : void 0
244251}
245252export const getCallPresenceById = (e) => (t) => {
246253 const { presenceBySwarmId: r } = getCallState(t)
247254 if (r[e]) return r[e]
248 const a = getCallPresenceSwarmByMemberIds(t)[e]
249 return a ? r[a] : void 0
255 const n = getCallPresenceSwarmByMemberIds(t)[e]
256 return n ? r[n] : void 0
250257}
251258export const getCallIsOngoing = e(
252259 getCallState,
253260 getCallUnknownPresenceIds,
254 ({ status: e, presenceMemberIds: t, activeCallMemberIds: r }, a) =>
255 isCallJoinedMode(e) || t.length + a.length > 0 || (null !== r && r.length > 0),
261 ({ status: e, presenceMemberIds: t, activeCallMemberIds: r }, n) =>
262 isCallJoinedMode(e) || t.length + n.length > 0 || (null !== r && r.length > 0),
256263)
257264export const getCallPeersCount = (e, t) => getCallState(e).peersCounter?.[t]?.length || 0
258export const getCallPeerSwarmIds = (e) => (t) => getCallState(t).peersCounter?.[e] || Q
265export const getCallPeerSwarmIds = (e) => (t) => getCallState(t).peersCounter?.[e] || W
259266export const makeCallMemberIdsByRoomId = (t, r) => {
260 const a = new Map()
261 let n = []
267 const n = new Map()
268 let a = []
262269 return e(getCallPeerSwarmIds(t), q(t), (e, { bySwarmId: t, byMemberId: l }) => {
263 a.clear()
264 for (let n = 0; n < e.length && a.size < r; n += 1) {
265 const r = t[e[n]]?.memberId
266 r ? a.set(r, !0) : l[e[n]] && a.set(e[n], !0)
270 n.clear()
271 for (let a = 0; a < e.length && n.size < r; a += 1) {
272 const r = t[e[a]]?.memberId
273 r ? n.set(r, !0) : l[e[a]] && n.set(e[a], !0)
267274 }
268 return ((a.size !== n.length || n.some((e) => !a.has(e))) && (n = Array.from(a.keys())), n)
275 return ((n.size !== a.length || a.some((e) => !n.has(e))) && (a = Array.from(n.keys())), a)
269276 })
270277}
271278export const getCallPresenceStreamName = (e, t) => (r) => {
272 const a = getCallState(r).presenceBySwarmId[e]
273 return a && a.streamByName
274 ? Object.keys(a.streamByName).reduce((e, r) => {
279 const n = getCallState(r).presenceBySwarmId[e]
280 return n && n.streamByName
281 ? Object.keys(n.streamByName).reduce((e, r) => {
275282 if (e) return e
276 const n = a.streamByName[r]
277 return n?.streamId === t ? r : ""
283 const a = n.streamByName[r]
284 return a?.streamId === t ? r : ""
278285 }, "")
279286 : ""
280287}
……@@ -284,16 +291,16 @@ export const getScreenStreams = e(
284291 getCallMediaState,
285292 getCallMyMemberId,
286293 o,
287 (e, t, a, n, l) => {
294 (e, t, n, a, l) => {
288295 const s = []
289296 return (
290 n && l && s.push({ streamId: l, memberId: n, isLocal: !0 }),
297 a && l && s.push({ streamId: l, memberId: a, isLocal: !0 }),
291298 e.forEach((e) => {
292 const n = t[e],
293 l = a[e],
294 o = !!n.streamByName?.[r.SCREEN],
299 const a = t[e],
300 l = n[e],
301 o = !!a.streamByName?.[r.SCREEN],
295302 c = l && l.streamByName?.[r.SCREEN]?.id
296 o && s.push({ streamId: c, memberId: n.memberId, swarmId: e })
303 o && s.push({ streamId: c, memberId: a.memberId, swarmId: e })
297304 }),
298305 s
299306 )
……@@ -301,14 +308,25 @@ export const getScreenStreams = e(
301308)
302309export const getScreenSharingDisabled = e(getScreenStreams, (e) => !!e.find((e) => !e.isLocal))
303310export const getHasScreenSharingStreams = (e) => getScreenStreams(e).length > 0
304export const getActivePresences = e([getCallTopSortedPresences, getActiveCallMemberIds], (e, t) => {
305 const r = t || []
306 return e.length > 0 ? e : r.map(Y)
307})
311export const getActivePresences = e(
312 [getCallTopSortedPresences, getActiveCallMemberIds, getCallPresenceSwarmByMemberIds],
313 (e, t, r) => (t?.length ? Y(e, t, r) : W),
314)
315export const getIsPresenceOffline = (e) => (t) => {
316 if (!e) return !1
317 const { streamByName: r } = getCallState(t).mediaBySwarmId?.[e] || {}
318 return !Q(t).includes(e) || !(r?.camera || r?.screen)
319}
320const X = (e) => (t) => getCallState(t).mediaBySwarmId[e]?.streamByName
321export const makeGetIsPresenceOffline = (t) =>
322 e([X(t), Q], (e, r) => !(!t || ((e?.camera || e?.screen) && r.includes(t))))
323export const getHasCallMemberConnected = (e) => (t) => !!getCallState(t).connectedMemberIds?.[e]
324const Z = (e) => getCallState(e).connectedMemberIds
325export const makeGetHasCallMemberConnected = (t) => e([Z], (e) => !!e?.[t])
308326export const makeGetPositionPreservedActiveSwarmIds = () => {
309327 let t = []
310328 return e([getActivePresences, (e, t) => t], (e, r) => {
311 const a = e.slice(0, r)
312 return ((t = K(t, a)), t)
329 const n = e.slice(0, r)
330 return ((t = K(t, n)), t)
313331 })
314332}
@holepunchto/keet-store/store/call/utils.js +19 -12
……@@ -24,13 +24,13 @@ export const getNextPositionPreservedList = (e, t) => {
2424 const r = [],
2525 s = [],
2626 c = e.length === t.length
27 let o = c
27 let n = c
2828 return (
2929 e.forEach((e, c) => {
30 const i = t.findIndex((t) => t.swarmId === e.swarmId)
31 i > -1 ? (s.push(e), t.splice(i, 1)) : ((o = !1), s.push(void 0), r.push(c))
30 const o = t.findIndex((t) => t.swarmId === e.swarmId)
31 o > -1 ? (s.push(e), t.splice(o, 1)) : ((n = !1), s.push(void 0), r.push(c))
3232 }),
33 o
33 n
3434 ? e
3535 : (r.forEach((e) => {
3636 s[e] = t.pop()
……@@ -42,17 +42,24 @@ export const getMyDeviceId = (e) => e?.self?.deviceId || null
4242export const isDeviceInCall = (e, t) =>
4343 e?.members?.some((e) => e.devices?.some((e) => e.deviceId === t)) || !1
4444export const createEmptyPresenceEntry = (e) => ({ swarmId: e, activityScore: 0 })
45export const mergeActivePresences = (e, t, r) => {
46 const s = t.map((e) => r[e] || e),
47 c = new Set(s),
48 n = e.filter((e) => c.has(e.swarmId)),
49 o = new Set(n.map((e) => e.swarmId))
50 return [...n, ...s.filter((e) => !o.has(e)).map(createEmptyPresenceEntry)]
51}
4552export const calcActivityScore = (e, t) => (!1 !== e ? 0 : 1) + (!1 !== t ? 0 : 0.5)
4653export const updatePresencesSortedByActivity = (e, t, r, s) => {
4754 const c = calcActivityScore(r, s),
48 o = [...e.presencesSortedByActivity],
49 i = o.find((e) => e.swarmId === t)
50 if (i && i.activityScore === c) return e.presencesSortedByActivity
51 const n = { swarmId: t, activityScore: c },
52 d = o.findIndex((e) => e.swarmId === n.swarmId)
53 ;-1 !== d && o.splice(d, 1)
54 let m = o.findIndex((e) => e.activityScore <= n.activityScore)
55 return (-1 === m && (m = o.length), o.splice(m, 0, n), o)
55 n = [...e.presencesSortedByActivity],
56 o = n.find((e) => e.swarmId === t)
57 if (o && o.activityScore === c) return e.presencesSortedByActivity
58 const i = { swarmId: t, activityScore: c },
59 d = n.findIndex((e) => e.swarmId === i.swarmId)
60 ;-1 !== d && n.splice(d, 1)
61 let m = n.findIndex((e) => e.activityScore <= i.activityScore)
62 return (-1 === m && (m = n.length), n.splice(m, 0, i), n)
5663}
5764export const removeFromPresencesSortedByActivity = (e, t) => {
5865 const r = e.presencesSortedByActivity.filter((e) => e.swarmId !== t)
@holepunchto/keet-store/store/chat/chat.constant.js +9 -13
……@@ -40,23 +40,19 @@ export const CHAT_PENDING_FILE_SEND_MIN_DELAY = 500
4040export const CHAT_SEARCH_INPUT_THROTTLE = 250
4141export const CHAT_SEARCH_FIRST_FOUND_DELAY = 1e3
4242export const CHAT_SEARCH_RESULT_NO_JUMP_COUNT = 25
43export const MESSAGE_CATEGORIES = {
44 BLOCKED_USER_MSG: "blockedUserMsgCategory",
45 HIDDEN: "hiddenCategory",
43export const MESSAGE_CATEGORY = {
4644 JOINED: "joined",
45 CALL_STARTED: "callStarted",
46 ROOM_AVATAR_CHANGED: "roomAvatarChanged",
47 INVITATION_CREATED: "invitationCreated",
4748 LEFT: "left",
48 MEMBER_REMOVED: "memberRemovedCategory",
49 ROOM_TITLE_CHANGED: "roomTitleChanged",
50 MEMBER_REMOVED: "memberRemoved",
51 CALL_HANGUP: "callHangup",
52 CALL_MISSED: "callMissed",
53 LOCATION_SHARED: "locationShared",
4954 NO_CATEGORY: "",
5055}
51export const MESSAGE_TYPE_GROUPING_MAP = {
52 [CHAT_MESSAGE_TYPE.JOINED]: !0,
53 [CHAT_MESSAGE_TYPE.CALL_STARTED]: !1,
54 [CHAT_MESSAGE_TYPE.ROOM_AVATAR_CHANGED]: !1,
55 [CHAT_MESSAGE_TYPE.INVITATION_CREATED]: !1,
56 [CHAT_MESSAGE_TYPE.LEFT]: !0,
57 [CHAT_MESSAGE_TYPE.ROOM_TITLE_CHANGED]: !1,
58 [CHAT_MESSAGE_TYPE.MEMBER_REMOVED]: !0,
59}
6056export const CHAT_WORKER = { INITIAL: "initial", TOP: "top", BOTTOM: "bottom", SUB: "sub" }
6157export const CHAT_MESSAGE_FORMAT = { MARKDOWN: "MARKDOWN", DISPLAY: "DISPLAY" }
6258export const PEAR_LINK_PREVIEW_IMAGE_FECTH_TIMEOUT = 1e3
@holepunchto/keet-store/store/chat/chat.reducer.js +6 -5
……@@ -5,12 +5,13 @@ import { LAST_MESSAGE_STATE_KEY as t, lastMessageReducer as e } from "./last-mes
55import { REPLY_MESSAGE_STATE_KEY as i, replyMessageReducer as f } from "./reply-message"
66import { PIN_MESSAGE_STATE_KEY as p, pinMessageReducer as s } from "./pin-message"
77import { DRAFT_MESSAGE_STATE_KEY as a, draftMessageReducer as c } from "./draft-message"
8import { CHAT_REACTION_STATE_KEY as n, chatReactionReducer as d } from "./reaction"
9import { chatListViewReducer as l, chatListViewMessageReducer as u } from "./list-view"
8import { CHAT_REACTION_STATE_KEY as n, chatReactionReducer as u } from "./reaction"
9import { chatListViewReducer as d, chatListViewMessageReducer as l } from "./list-view"
1010import { CHAT_SEARCH_STATE_KEY as g, chatSearchReducer as h } from "./search"
1111import { chatUnreadReducer as R } from "./unread"
1212import { reduceReducers as b } from "../lib/reducer"
1313import { CHAT_FILE_UPLOAD_STATE_KEY as x, chatFileUploadReducer as v } from "./file"
14const w = m(o)
15export const fnReducer = r({ [t]: e, [i]: f, [p]: s, [a]: c, [n]: d, [g]: h, [x]: v })
16export const chatReducer = b(o, [w, fnReducer, u, R, l])
14import { CHAT_INPUT_STATE_KEY as w, chatInputReducer as y } from "./input"
15const j = m(o)
16export const fnReducer = r({ [t]: e, [i]: f, [p]: s, [a]: c, [n]: u, [g]: h, [x]: v, [w]: y })
17export const chatReducer = b(o, [j, fnReducer, l, R, d])
@holepunchto/keet-store/store/chat/chat.saga.js +45 -40
……@@ -5,8 +5,8 @@ import {
55 fork as i,
66 select as r,
77 takeLatest as d,
8 getContext as a,
9 delay as l,
8 getContext as l,
9 delay as a,
1010 takeLeading as s,
1111} from "redux-saga/effects"
1212import { FEATURES as m, isFeatureSupported as n } from "@holepunchto/keet-core/features"
……@@ -65,8 +65,8 @@ import { chatPinMessagesSaga as ie } from "./pin-message"
6565import { CHAT_MESSAGE_MAX_LENGTH as re } from "./chat.constant"
6666import { draftMessageSaga as de } from "./draft-message"
6767import {
68 chatReactionSaga as ae,
69 chatMessageReportHandler as le,
68 chatReactionSaga as le,
69 chatMessageReportHandler as ae,
7070 reportChatMessage as se,
7171 reportChatMember as me,
7272 chatMemberReportHandler as ne,
……@@ -89,8 +89,9 @@ import {
8989 getRoomIsAttachmentsDisabled as De,
9090 getRoomIsLinksDisabled as Ee,
9191} from "../room/room.selector"
92const _e = [c.UNKNOWN_ROOM_COMMAND, c.INVALID_ROOM_COMMAND_ARGUMENTS],
93 be = {
92import { setChatInputIsClearRequested as _e, setChatInputIsProcessing as be } from "./input"
93const ve = [c.UNKNOWN_ROOM_COMMAND, c.INVALID_ROOM_COMMAND_ARGUMENTS],
94 Be = {
9495 [y.BOLD]: "bold",
9596 [y.ITALIC]: "italic",
9697 [y.STRIKE_THROUGH]: "strike",
……@@ -101,29 +102,29 @@ const _e = [c.UNKNOWN_ROOM_COMMAND, c.INVALID_ROOM_COMMAND_ARGUMENTS],
101102 [y.HTTP_LINK]: "httpLinks",
102103 [y.PEAR_LINK]: "pearLinks",
103104 }
104function* ve(e, o, t, i) {
105function* qe(e, o, t, i) {
105106 const r = (o || []).filter((o) => f(e, o.type))
106107 yield Me(r, i)
107108 const d = r.reduce((e, o) => {
108109 const { type: t, ...i } = o,
109 r = be[t]
110 r = Be[t]
110111 return ((e[r] = e[r] || []), e[r].push(i), e)
111112 }, {})
112113 return (t && n(e, m.REPLY_TO) && (d.replyTo = t), g(d) ? void 0 : d)
113114}
114let Be = []
115let xe = []
115116export function* rateLimitSaga() {
116117 const e = yield r(L),
117118 o = yield r(K)
118119 if (e || o) return
119 Be.push(Date.now())
120 xe.push(Date.now())
120121 const { msgRateLimit: i, msgRateLimitInterval: d } = yield r(E)
121 if (Be.length < i) return
122 Be = Be.slice(-i)
123 const a = h(Be) + d - Date.now()
124 if (!(a <= 0))
122 if (xe.length < i) return
123 xe = xe.slice(-i)
124 const l = h(xe) + d - Date.now()
125 if (!(l <= 0))
125126 try {
126 ;(yield t(G(!0)), yield l(a))
127 ;(yield t(G(!0)), yield a(l))
127128 } finally {
128129 yield t(G(!1))
129130 }
……@@ -142,22 +143,23 @@ export function* chatAddMessageHandler({
142143 roomVersion: o,
143144 text: i,
144145 files: d,
145 display: a,
146 replyTo: l,
146 display: l,
147 replyTo: a,
147148 previewByLink: s,
148149 locationShared: c,
149150}) {
150151 if (yield r(K)) return
151152 const f = u()
152153 try {
153 if (i && i.length > re) return void (yield t(C({ message: "Message is too big" })))
154 if ((yield t(be(!0)), i && i.length > re))
155 return void (yield t(C({ message: "Message is too big" })))
154156 let p
155 l && (p = yield r(v, l))
157 a && (p = yield r(v, a))
156158 const I = yield r(De(e)),
157159 g = yield r(Ee(e)),
158 h = g ? a?.filter((e) => ![y.HTTP_LINK, y.PEAR_LINK].includes(e.type)) : a,
160 h = g ? l?.filter((e) => ![y.HTTP_LINK, y.PEAR_LINK].includes(e.type)) : l,
159161 u = I || g ? {} : s,
160 L = yield ve(o, h, p?.coreId, u),
162 L = yield qe(o, h, p?.coreId, u),
161163 M = n(o, m.MULTI_FILES),
162164 N = n(o, m.LOCATION_SHARED_EVENT),
163165 O = yield r((o) => Te(o, e))
……@@ -168,11 +170,14 @@ export function* chatAddMessageHandler({
168170 (yield S(f.addChatMessage, e, i, L), yield t(pe({ roomId: e }))),
169171 d?.length > 0 && !I && (yield t(Le({ files: d, text: i, opts: L, isMultiFileSupported: M }))),
170172 yield ke(O),
171 yield rateLimitSaga())
173 yield rateLimitSaga(),
174 yield t(_e(!0)))
172175 } catch (e) {
173 _e.includes(e.message)
176 ve.includes(e.message)
174177 ? yield t(C({ message: e.message }))
175178 : yield M("sendChatMessageSubmit", e)
179 } finally {
180 yield t(be(!1))
176181 }
177182}
178183export function* chatUpdateMessageHandler({
……@@ -180,8 +185,8 @@ export function* chatUpdateMessageHandler({
180185 roomVersion: o,
181186 messageId: i,
182187 text: d,
183 display: a,
184 previewByLink: l,
188 display: l,
189 previewByLink: a,
185190}) {
186191 const s = u()
187192 try {
……@@ -192,7 +197,7 @@ export function* chatUpdateMessageHandler({
192197 const e = yield r(v, t.replyTo)
193198 m = e ? e?.coreId : null
194199 }
195 const n = yield ve(o, a, m, l)
200 const n = yield qe(o, l, m, a)
196201 yield S(s.updateChatMessage, e, t.coreId, d, n)
197202 }
198203 yield t(R())
……@@ -205,11 +210,11 @@ export function* chatGetInitialData({ roomId: e, messageId: o }) {
205210 let i,
206211 r = null
207212 if (o) {
208 const { deviceId: d, seq: a } = fe(o),
209 l = yield S(t.getChatMessageById, e, { deviceId: d, seq: a })
210 l && Number.isInteger(l.seq)
211 ? ((i = l.seq), (r = W({ messageId: o, seq: i })))
212 : yield M("chatGetInitialData", `anchor: invalid data: ${JSON.stringify(l)}`)
213 const { deviceId: d, seq: l } = fe(o),
214 a = yield S(t.getChatMessageById, e, { deviceId: d, seq: l })
215 a && Number.isInteger(a.seq)
216 ? ((i = a.seq), (r = W({ messageId: o, seq: i })))
217 : yield M("chatGetInitialData", `anchor: invalid data: ${JSON.stringify(a)}`)
213218 }
214219 const d = yield Se({ roomId: e })
215220 return ((i = i ?? d), { lastSeenSeq: d, startSeq: i, anchor: r })
……@@ -217,7 +222,7 @@ export function* chatGetInitialData({ roomId: e, messageId: o }) {
217222export function* chatSaga(
218223 {
219224 roomId: r,
220 ignoreBlocked: l = !1,
225 ignoreBlocked: a = !1,
221226 filterNames: m,
222227 messageId: n,
223228 fileStatsChannel: c,
……@@ -228,16 +233,16 @@ export function* chatSaga(
228233 try {
229234 const g = yield o(e)
230235 ;(yield i(te, r, g),
231 yield i(F, { roomId: r, ignoreBlocked: l, coreEventChannel: g }),
236 yield i(F, { roomId: r, ignoreBlocked: a, coreEventChannel: g }),
232237 yield i(V, r),
233238 yield d([ge, Ie], ue, { roomId: r }),
234239 yield i(Z),
235240 yield i(U, { roomId: r }),
236 yield i(q, { roomId: r, ignoreBlocked: l }),
241 yield i(q, { roomId: r, ignoreBlocked: a }),
237242 yield i(Ce, { roomId: r, fileStatsChannel: c }),
238243 yield i(P, { roomId: r }),
239 yield i(ae, { roomId: r }),
240 yield i(ie, { roomId: r, ignoreBlocked: l }))
244 yield i(le, { roomId: r }),
245 yield i(ie, { roomId: r, ignoreBlocked: a }))
241246 const {
242247 lastSeenSeq: h,
243248 startSeq: S,
……@@ -246,7 +251,7 @@ export function* chatSaga(
246251 yield t(k({ ...f, roomId: r, lastSeenSeq: h, startSeq: S, anchor: L, filterNames: m }))
247252 const M = yield z({ roomId: r, coreEventChannel: g })
248253 ;(yield Ne({ roomId: r }), M && (yield Q()), yield d(j, X), yield d([J, pe], Y, r))
249 const { isDesktop: C } = yield a(_)
254 const { isDesktop: C } = yield l(_)
250255 ;(C && (yield d(H, $)),
251256 yield d([O, T], N, r),
252257 yield s(w, function* (e) {
……@@ -254,11 +259,11 @@ export function* chatSaga(
254259 yield chatDeleteMessageHandler(r, o)
255260 }),
256261 yield i(x, { roomId: r }),
257 yield i(B, { roomId: r, ignoreBlocked: l, fileStatsChannel: c }),
258 yield i(de, { roomId: r, ignoreBlocked: l }),
262 yield i(B, { roomId: r, ignoreBlocked: a, fileStatsChannel: c }),
263 yield i(de, { roomId: r, ignoreBlocked: a }),
259264 yield i(ee),
260265 yield d(ce, ye, { roomId: r }),
261 yield d(se, le, { roomId: r, useLabelsFeature: y }),
266 yield d(se, ae, { roomId: r, useLabelsFeature: y }),
262267 yield d(me, ne, { roomId: r }),
263268 yield I([u().subscribeChatLength, r, { reorders: !0 }], oe),
264269 yield i(he, { roomId: r, autoscroll: !1 }),
@holepunchto/keet-store/store/chat/chat.state.js +1 -0
……@@ -35,6 +35,7 @@ export const INITIAL_STATE = {
3535 isMessagePinnedMap: {},
3636 },
3737 reaction: { byId: {} },
38 input: { isClearRequested: !1, isProcessing: !1 },
3839 editingMessageId: "",
3940 selectedMessageId: "",
4041 sendLimited: !1,
@holepunchto/keet-store/store/chat/index.js +1 -0
……@@ -12,6 +12,7 @@ export * from "./draft-message"
1212export * from "./list-view"
1313export * from "./reaction"
1414export * from "./search"
15export * from "./input"
1516export * from "./unread"
1617export * from "./file"
1718export * from "./loader"
@holepunchto/keet-store/store/chat/input/chat-input.action.js +3 -0
……@@ -0,0 +1,3 @@
1import { createAction as t } from "@reduxjs/toolkit"
2export const setChatInputIsClearRequested = t("chat/set-input-clear-requested")
3export const setChatInputIsProcessing = t("chat/set-input-is-processing")
@holepunchto/keet-store/store/chat/input/chat-input.constant.js +1 -0
……@@ -0,0 +1 @@
1export const CHAT_INPUT_STATE_KEY = "input"
@holepunchto/keet-store/store/chat/input/chat-input.reducer.js +14 -0
……@@ -0,0 +1,14 @@
1import {
2 setChatInputIsClearRequested as e,
3 setChatInputIsProcessing as t,
4} from "./chat-input.action"
5export const chatInputReducer = (r, a) => {
6 switch (a.type) {
7 case e.type:
8 return { ...r, isClearRequested: a.payload }
9 case t.type:
10 return { ...r, isProcessing: a.payload }
11 default:
12 return r
13 }
14}
@holepunchto/keet-store/store/chat/input/chat-input.selector.js +5 -0
……@@ -0,0 +1,5 @@
1import { CHAT_STATE_KEY as t } from "../chat.constant"
2import { CHAT_INPUT_STATE_KEY as e } from "./chat-input.constant"
3export const getChatInputState = (n) => n[t][e]
4export const getChatInputIsProcessing = (t) => getChatInputState(t).isProcessing
5export const getChatInputIsClearRequested = (t) => getChatInputState(t).isClearRequested
@holepunchto/keet-store/store/chat/input/index.js +4 -0
……@@ -0,0 +1,4 @@
1export * from "./chat-input.selector"
2export * from "./chat-input.action"
3export * from "./chat-input.reducer"
4export * from "./chat-input.constant"
@holepunchto/keet-store/store/chat/list-view/list-view-data.selector.js +1 -1
……@@ -103,7 +103,7 @@ export const getChatMeJoinedOnly = (e) => {
103103 const a = t[e]
104104 if (!a.local) return !1
105105 const o = a.event?.type
106 if ((o !== s.JOINED || a.groupCount) && o !== s.ROOM_AVATAR_CHANGED) return !1
106 if (!((o === s.JOINED && (a.groupCount || 0) < 2) || o === s.ROOM_AVATAR_CHANGED)) return !1
107107 }
108108 return !0
109109}
@holepunchto/keet-store/store/chat/list-view/list-view.reducer.js +39 -39
……@@ -14,8 +14,8 @@ import {
1414 setChatListViewStartSeenSeq as m,
1515} from "./list-view.action"
1616import {
17 VIEW_MODE as V,
18 ANCHOR_STATUS as d,
17 VIEW_MODE as d,
18 ANCHOR_STATUS as V,
1919 CHAT_LIST_VIEW_CONFIG as p,
2020 CHAT_LIST_VIEW_STATE_KEY as E,
2121 ANCHOR_LOADED_RETRY_COUNT as S,
……@@ -56,41 +56,41 @@ export const chatListViewInViewReducer = (e, { payload: s }) => {
5656 if (!Number.isInteger(w) || !Number.isInteger(m)) return e
5757 if (c.top === w && c.bottom === m)
5858 return l && R(l.status) && y(c, l, o)
59 ? { ...e, listView: { ...e.listView, anchor: { ...l, status: d.RENDERED } } }
59 ? { ...e, listView: { ...e.listView, anchor: { ...l, status: V.RENDERED } } }
6060 : e
6161 const p = { top: w, bottom: m }
6262 let E = l
63 l && R(l.status) && y(p, l, o) && (E = { ...l, status: d.RENDERED })
63 l && R(l.status) && y(p, l, o) && (E = { ...l, status: V.RENDERED })
6464 let S = u
65 if (g(u) && c.bottom !== m && (!E || E.status === d.RENDERED)) {
66 const t = ("down" == (c.bottom - m > 0 ? "up" : "down") || m === a.bottom) && u === V.LATEST
67 S = m + 1 >= o || t ? V.LATEST : V.HISTORY
65 if (g(u) && c.bottom !== m && (!E || E.status === V.RENDERED)) {
66 const t = ("down" == (c.bottom - m > 0 ? "up" : "down") || m === a.bottom) && u === d.LATEST
67 S = m + 1 >= o || t ? d.LATEST : d.HISTORY
6868 }
6969 return { ...e, listView: { ...e.listView, inView: p, anchor: E, mode: S } }
7070}
7171export const chatListViewReducer = (t, i) => {
7272 switch (i.type) {
7373 case n.type: {
74 const e = i.payload
75 if (e) return { ...t, listView: { ...t.listView, paused: e, anchor: null } }
7674 const {
77 message: s,
78 listView: { inView: o, lastSeenSeq: n },
75 message: e,
76 listView: { mode: s, inView: o, lastSeenSeq: n },
7977 } = t,
80 { count: r, ids: a } = s,
81 c = f({ lastSeenSeq: n, count: r }),
82 l = findMessageBySeq(t, n),
83 u = l && b({ startSeq: c, count: r }),
84 w = u
85 ? h({ messageId: l.id, seq: c, status: o.bottom === c ? d.RENDERED : d.LOADED })
86 : D({ status: o.bottom === r - 1 ? d.RENDERED : d.LOADED, messageId: a[0] })
78 r = i.payload
79 if (r || !g(s)) return { ...t, listView: { ...t.listView, paused: r, anchor: null } }
80 const { count: a, ids: c } = e,
81 l = f({ lastSeenSeq: n, count: a }),
82 u = findMessageBySeq(t, n),
83 w = u && b({ startSeq: l, count: a }),
84 m = w
85 ? h({ messageId: u.id, seq: l, status: o.bottom === l ? V.RENDERED : V.LOADED })
86 : D({ status: o.bottom === a - 1 ? V.RENDERED : V.LOADED, messageId: c[0] })
8787 return {
8888 ...t,
8989 listView: {
9090 ...t.listView,
91 startLastSeen: c,
92 mode: u ? V.HISTORY : V.LATEST,
93 anchor: w,
91 startLastSeen: l,
92 mode: w ? d.HISTORY : d.LATEST,
93 anchor: m,
9494 stopAnchor: !1,
9595 paused: !1,
9696 },
……@@ -109,42 +109,42 @@ export const chatListViewReducer = (t, i) => {
109109 paused: c,
110110 },
111111 } = t
112 if (s === V.FRESH_LOADING) {
112 if (s === d.FRESH_LOADING) {
113113 const { count: s, ids: n } = e,
114114 l = findMessageBySeq(t, i),
115115 u = l && b({ startSeq: i, count: s }),
116116 w = f({ lastSeenSeq: a, count: s }),
117117 m = u
118 ? h({ messageId: l.id, seq: i, status: o.bottom === i ? d.RENDERED : d.LOADED })
119 : D({ status: o.bottom === s - 1 ? d.RENDERED : d.LOADED, messageId: n[0] })
118 ? h({ messageId: l.id, seq: i, status: o.bottom === i ? V.RENDERED : V.LOADED })
119 : D({ status: o.bottom === s - 1 ? V.RENDERED : V.LOADED, messageId: n[0] })
120120 return {
121121 ...t,
122122 listView: {
123123 ...t.listView,
124124 startLastSeen: w,
125 mode: u || r ? V.HISTORY : V.LATEST,
125 mode: u || r ? d.HISTORY : d.LATEST,
126126 anchor: r || c ? null : m,
127127 stopAnchor: !1,
128128 },
129129 }
130130 }
131 if (s === V.LATEST) {
131 if (s === d.LATEST) {
132132 const { byId: s, count: i } = e,
133133 n = i - 1
134134 if (o.bottom > 0 && o.bottom === n) return t
135135 const r = Object.values(s).find((t) => t.seq === n)
136136 if (!r) {
137137 const e = t.listView.anchor
138 return e?.lastMessage && e.status !== d.ASKED
139 ? { ...t, listView: { ...t.listView, anchor: { ...e, status: d.ASKED } } }
138 return e?.lastMessage && e.status !== V.ASKED
139 ? { ...t, listView: { ...t.listView, anchor: { ...e, status: V.ASKED } } }
140140 : t
141141 }
142142 return {
143143 ...t,
144 listView: { ...t.listView, anchor: c ? null : D({ status: d.LOADED, messageId: r.id }) },
144 listView: { ...t.listView, anchor: c ? null : D({ status: V.LOADED, messageId: r.id }) },
145145 }
146146 }
147 if (t.listView.anchor?.status === d.ASKED) {
147 if (t.listView.anchor?.status === V.ASKED) {
148148 const {
149149 message: { ids: e, seqLoaded: s, count: i },
150150 } = t
……@@ -161,7 +161,7 @@ export const chatListViewReducer = (t, i) => {
161161 ...t,
162162 listView: {
163163 ...t.listView,
164 anchor: { ...n, messageId: o, status: d.LOADED, retryCountProcessed: S },
164 anchor: { ...n, messageId: o, status: V.LOADED, retryCountProcessed: S },
165165 },
166166 }
167167 }
……@@ -180,20 +180,20 @@ export const chatListViewReducer = (t, i) => {
180180 let a = e
181181 if (r) {
182182 const { lastMessage: e, seq: s } = r
183 if (e) a = V.LATEST
183 if (e) a = d.LATEST
184184 else {
185185 const {
186186 message: { count: e },
187187 } = t
188 a = s + 1 >= e ? V.LATEST : V.HISTORY
188 a = s + 1 >= e ? d.LATEST : d.HISTORY
189189 }
190 } else s && s.status !== d.RENDERED && o.bottom !== n.count - 1 && (a = V.HISTORY)
190 } else s && s.status !== V.RENDERED && o.bottom !== n.count - 1 && (a = d.HISTORY)
191191 return { ...t, listView: { ...t.listView, anchor: r, mode: a } }
192192 }
193193 case u.type: {
194194 const e = i.payload,
195195 { anchor: s } = t.listView
196 if (!s || s?.status === e || s?.status === d.RENDERED) return t
196 if (!s || s?.status === e || s?.status === V.RENDERED) return t
197197 const o = { ...s, status: e }
198198 return { ...t, listView: { ...t.listView, anchor: o } }
199199 }
……@@ -203,12 +203,12 @@ export const chatListViewReducer = (t, i) => {
203203 listView: { startSeq: s, mode: i, inView: o, anchor: n, lastSeenSeq: r, paused: a },
204204 } = t
205205 if (0 === e)
206 return { ...t, listView: { ...t.listView, mode: V.LATEST, inView: { top: 0, bottom: 0 } } }
206 return { ...t, listView: { ...t.listView, mode: d.LATEST, inView: { top: 0, bottom: 0 } } }
207207 if (-1 === s || s + 1 > e) return { ...t, listView: { ...t.listView, startSeq: e - 1 } }
208208 const c = r === s && !b({ count: e, startSeq: s })
209 if (i === V.RESTORE_LAST && c) return { ...t, listView: { ...t.listView, startSeq: e - 1 } }
210 const l = n && n.status !== d.RENDERED && !a
211 return i === V.LATEST && !l && e > o.bottom + 1
209 if (i === d.RESTORE_LAST && c) return { ...t, listView: { ...t.listView, startSeq: e - 1 } }
210 const l = n && n.status !== V.RENDERED
211 return i === d.LATEST && !l && e > o.bottom + 1 && !a
212212 ? { ...t, listView: { ...t.listView, anchor: D() } }
213213 : t
214214 }
@holepunchto/keet-store/store/chat/loader/loader-step.js +2 -2
……@@ -1,7 +1,7 @@
11import { getChatMessagesApiPromise as t } from "../../../api/core"
22import { first as e, last as o } from "../../lib/array"
3import { MESSAGE_CATEGORIES as r } from "../chat.constant"
4import { getCoreEventCategoryName as a } from "../message"
3import { MESSAGE_CATEGORY as r } from "../chat.constant"
4import { calcMessageCategory as a } from "../message"
55import { PORTION_SIZE_MAX as n, PORTION_SIZE_MIN as s, EMPTY_ARRAY as c } from "./loader.constants"
66export const createCtrlCtxRef = () => {
77 let t = 0,
@holepunchto/keet-store/store/chat/loader/loader.js +1 -1
……@@ -1,7 +1,7 @@
11import { call as t } from "redux-saga/effects"
22import { loadInitial as e, loadMsgsBefore as o, loadMsgsAfter as r } from "./loader-step"
33import { EMPTY_ARRAY as c } from "./loader.constants"
4import { CHAT_WORKER as n, MESSAGE_CATEGORIES as d } from "../chat.constant"
4import { CHAT_WORKER as n, MESSAGE_CATEGORY as d } from "../chat.constant"
55export const createChatLoader = ({ roomId: f }) => ({
66 fetch: {
77 [n.INITIAL]: function* ({ query: o, count: r, ctxRef: c }) {
@holepunchto/keet-store/store/chat/message/message-create.js +40 -42
……@@ -1,63 +1,61 @@
11import { MS_5_MINUTES as t, formatTimestamp as e } from "../../lib/date"
2import { CHAT_MESSAGE_TYPE as r, MESSAGE_CATEGORIES as o } from "../chat.constant"
3import { groupByAuthor as n } from "./message-create-author"
2import { MESSAGE_CATEGORY as r } from "../chat.constant"
3import { groupByAuthor as o } from "./message-create-author"
44import { groupByDate as s } from "./message-create-date"
5import { getCoreEventCategoryName as a, getIsGroupCountLimitReached as m } from "./message"
6function i(t, e, o) {
7 if (o >= e) return
8 const n = t[o],
5import { calcMessageCategory as a, getIsGroupCountLimitReached as m } from "./message"
6function n(t, e, r) {
7 const o = t[r],
98 s = t[e],
109 a = s.id
11 let m, i
12 for (let r = o; r < e; r += 1) {
13 let e = t[r]
10 let m, n
11 for (let o = r; o < e; o += 1) {
12 let e = t[o]
1413 ;(e.isHead || e.datetime || e.parentId !== a) &&
1514 ((m ||= e.isHead),
16 e.datetime && !i && (i = e.datetime),
15 e.datetime && !n && (n = e.datetime),
1716 (e = { ...e, isHead: !1, datetime: void 0, parentId: a }),
18 (t[r] = e))
17 (t[o] = e))
1918 }
20 const d = []
21 for (let n = e; n >= o; n -= 1) {
22 const { event: e, memberId: o, targetMemberId: s } = t[n],
23 a = e.type === r.MEMBER_REMOVED
24 d.push(a ? s : o)
19 const i = []
20 for (let o = e; o >= r; o -= 1) {
21 const { memberId: e, targetMemberId: r } = t[o]
22 r ? i.push(r) : i.push(e)
2523 }
26 const p = e - o + 1,
27 u = n.seq
28 t[e] = { ...s, isHead: !0, groupMemberIds: d, groupCount: p, groupSeq: u }
29 const f = o - 1
30 i && f >= 0 && !t[f].datetime && (t[f] = { ...t[f], datetime: i })
24 const d = e - r + 1,
25 p = o.seq
26 t[e] = { ...s, isHead: !0, groupMemberIds: i, groupCount: d, groupSeq: p }
27 const u = r - 1
28 n && u >= 0 && !t[u].datetime && (t[u] = { ...t[u], datetime: n })
3129}
3230export function groupByCategory(t) {
33 let e = o.NO_CATEGORY,
34 r = -1
35 for (let o = t.length - 1; o >= 0; o -= 1) {
36 const n = t[o],
37 s = a(n),
38 d = o + 1,
39 p = m(s, r > -1 ? r - d + 1 : 0),
40 u = s !== e || p
41 ;(u && r > -1 && i(t, r, d), s && u && (r = o), s || (r = -1), (e = s))
31 let e = r.NO_CATEGORY,
32 o = -1
33 for (let r = t.length - 1; r >= 0; r -= 1) {
34 const s = t[r],
35 i = a(s),
36 d = r + 1,
37 p = m(i, o > -1 ? o - d + 1 : 0),
38 u = i !== e || p
39 ;(u && o > -1 && n(t, o, d), i && u && (o = r), i || (o = -1), (e = i))
4240 }
43 return (r > -1 && i(t, r, 0), t)
41 return (o > -1 && n(t, o, 0), t)
4442}
4543export function markOutOfOrders(t, r) {
4644 const { now: o } = r
47 let n = t.length,
48 s = t[t.length - 1],
49 a = s?.timestamp
50 for (; n > 0; ) {
51 ;((n -= 1), (s = t[n]))
52 const { timestamp: r } = s,
53 m = r > o || (a > s.timestamp && e(a) !== e(s.timestamp))
54 ;(!!s.isOutOfOrder !== m && (t[n] = { ...s, isOutOfOrder: m }), m || (a = r))
45 let s = t.length,
46 a = t[t.length - 1],
47 m = a?.timestamp
48 for (; s > 0; ) {
49 ;((s -= 1), (a = t[s]))
50 const { timestamp: r } = a,
51 n = r > o || (m > a.timestamp && e(m) !== e(a.timestamp))
52 ;(!!a.isOutOfOrder !== n && (t[s] = { ...a, isOutOfOrder: n }), n || (m = r))
5553 }
5654 return t
5755}
5856export function groupMessages(e, r = { now: Date.now() + t }) {
5957 if (!e?.length) return []
60 const o = markOutOfOrders(e, r),
61 a = n(o)
62 return groupByCategory(s(a))
58 const a = markOutOfOrders(e, r),
59 m = o(a)
60 return groupByCategory(s(m))
6361}
@holepunchto/keet-store/store/chat/message/message.js +75 -80
……@@ -1,6 +1,6 @@
11import { DISPLAY_TYPES as e } from "@holepunchto/keet-core/legacy-constants"
22import { first as t, last as s, isEmpty as r } from "../../lib/array"
3import { getFileId as n, MEDIA_TYPE as i, parseCoreFile as o } from "../../media/file"
3import { getFileId as n, MEDIA_TYPE as o, parseCoreFile as i } from "../../media/file"
44import {
55 isAudioMimeType as d,
66 isAudioVoicePath as a,
……@@ -11,18 +11,18 @@ import {
1111 LAST_MESSAGE_SEEN_PREFIX as p,
1212 CHAT_MESSAGE_TYPE as m,
1313 CHAT_MESSAGE_FORMAT as g,
14 MESSAGE_CATEGORIES as h,
15 KNOWN_EVENT_TYPES as I,
16 CHAT_MESSAGE_REPORT_COUNT as f,
14 MESSAGE_CATEGORY as I,
15 KNOWN_EVENT_TYPES as h,
16 CHAT_MESSAGE_REPORT_COUNT as E,
1717} from "../chat.constant"
18import { parseCoreReactions as u } from "../reaction/chat-reaction.model"
18import { parseCoreReactions as f } from "../reaction/chat-reaction.model"
1919import {
20 displayPartial as E,
21 displayToSegment as y,
22 displayReplaceMention as M,
20 displayPartial as A,
21 displayToSegment as u,
22 displayReplaceMention as y,
2323} from "./message-parser"
24export const GROUP_MAX_SIZE = 64
25const { HTTP_LINK: x, PEAR_LINK: b } = e
24export const GROUP_LIMIT = 64
25const { HTTP_LINK: M, PEAR_LINK: T } = e
2626export const getLastSeenMessageKey = (e) => `${p}_${e}`
2727export const UNKNOWN_ID = "unknown_id"
2828export const createMessageId = (e) => {
……@@ -50,7 +50,7 @@ export const isCallSystemEvent = (e) =>
5050 !(!e?.event?.type || ![m.CALL_STARTED, m.CALL_HANGUP].includes(e.event.type))
5151export const isStartCallMessage = (e) => e && e.event?.type === m.CALL_STARTED
5252export const updateMessage = (e, t) => {
53 const { memberById: s, blocked: r, local: n, hidden: i, range: o } = t || {}
53 const { memberById: s, blocked: r, local: n, hidden: o, range: i } = t || {}
5454 let d = { ...e }
5555 if (d.chat) {
5656 let { text: e, display: t } = d.chat
……@@ -58,17 +58,17 @@ export const updateMessage = (e, t) => {
5858 if (r.length > 0 && s)
5959 for (const n of r) {
6060 const { memberId: r } = n,
61 i = s[r]
62 if (i) {
63 const s = M({ text: e, display: t }, r, i.displayName)
61 o = s[r]
62 if (o) {
63 const s = y({ text: e, display: t }, r, o.displayName)
6464 ;((t = s.display), (e = s.text), (n.pending = !1))
6565 } else void 0 === n.pending && (n.pending = !0)
6666 }
6767 d.chat = { ...d.chat, display: t, text: e || "", mentions: r }
6868 }
69 if ((void 0 !== r && (d.blocked = r), void 0 !== n && (d.local = n), (d.hidden = !!i), o)) {
70 const { start: e, end: t } = o,
71 s = E({ text: d.chat?.text || "", display: d.chat?.display || [] }, { start: e, end: t })
69 if ((void 0 !== r && (d.blocked = r), void 0 !== n && (d.local = n), (d.hidden = !!o), i)) {
70 const { start: e, end: t } = i,
71 s = A({ text: d.chat?.text || "", display: d.chat?.display || [] }, { start: e, end: t })
7272 ;((d.chat.text = s.text), (d.chat.display = s.display))
7373 }
7474 return (
……@@ -76,71 +76,66 @@ export const updateMessage = (e, t) => {
7676 ...d,
7777 chat: {
7878 ...d.chat,
79 segments: y({ text: d.chat?.text, display: d.chat?.display }),
79 segments: u({ text: d.chat?.text, display: d.chat?.display }),
8080 format: g.DISPLAY,
8181 },
8282 }),
8383 d
8484 )
8585}
86export const getCoreEventCategoryName = (e) => {
87 const t = e.event?.type
88 switch (t) {
89 case m.JOINED:
90 return h.JOINED
91 case m.LEFT:
92 return h.LEFT
93 case m.MEMBER_REMOVED:
94 return h.MEMBER_REMOVED
95 default:
96 return h.NO_CATEGORY
97 }
86export const MESSAGE_TYPE_TO_CATEGORY = {
87 [m.JOINED]: I.JOINED,
88 [m.CALL_STARTED]: I.CALL_STARTED,
89 [m.ROOM_AVATAR_CHANGED]: I.ROOM_AVATAR_CHANGED,
90 [m.INVITATION_CREATED]: I.INVITATION_CREATED,
91 [m.LEFT]: I.LEFT,
92 [m.ROOM_TITLE_CHANGED]: I.ROOM_TITLE_CHANGED,
93 [m.MEMBER_REMOVED]: I.MEMBER_REMOVED,
94 [m.CALL_HANGUP]: I.CALL_HANGUP,
95 [m.CALL_MISSED]: I.CALL_MISSED,
96 [m.LOCATION_SHARED]: I.LOCATION_SHARED,
9897}
99export const getIsGroupCountLimitReached = (e, t) => {
100 switch (e) {
101 case h.JOINED:
102 case h.LEFT:
103 case h.MEMBER_REMOVED:
104 return t >= 64
105 default:
106 return !1
107 }
98export const calcMessageCategory = (e) => {
99 const t = e.event?.type
100 return t ? (MESSAGE_TYPE_TO_CATEGORY[t] ?? `UNKNOWN_${t}`) : I.NO_CATEGORY
108101}
102const _ = { [I.JOINED]: 64, [I.LEFT]: 64, [I.MEMBER_REMOVED]: 64 }
103export const getIsGroupCountLimitReached = (e, t) => t >= ((e && _[e]) || 1)
109104export const getFileMediaType = (e, t) =>
110 l(e) ? i.IMAGE : c(e) ? i.VIDEO : d(e) && a(t) ? i.VOICE : d(e) ? i.AUDIO : i.FILE
105 l(e) ? o.IMAGE : c(e) ? o.VIDEO : d(e) && a(t) ? o.VOICE : d(e) ? o.AUDIO : o.FILE
111106export const getFileListMediaType = (e) => {
112 if (!e.length) return i.FILE
107 if (!e.length) return o.FILE
113108 const t = new Set()
114109 for (let s = 0; s < e.length; s += 1) {
115110 const r = e[s]
116111 t.add(getFileMediaType(r.mimetype, r.name))
117112 }
118113 if (1 === t.size) {
119 if (t.has(i.IMAGE)) return i.IMAGE
120 if (t.has(i.VIDEO)) return i.VIDEO
121 if (t.has(i.AUDIO)) return i.AUDIO
122 if (t.has(i.VOICE)) return i.VOICE
123 } else if (2 === t.size && t.has(i.IMAGE) && t.has(i.VIDEO)) return i.MEDIA
124 return i.FILE
114 if (t.has(o.IMAGE)) return o.IMAGE
115 if (t.has(o.VIDEO)) return o.VIDEO
116 if (t.has(o.AUDIO)) return o.AUDIO
117 if (t.has(o.VOICE)) return o.VOICE
118 } else if (2 === t.size && t.has(o.IMAGE) && t.has(o.VIDEO)) return o.MEDIA
119 return o.FILE
125120}
126121export const parseFiles = (e) => {
127122 const t = [],
128123 s = []
129124 if (isSystemEvent(e)) return { fileId: "", fileIds: s, files: t, mediaType: null, chat: e.chat }
130 const { chat: r, files: i } = e
131 if (i)
132 for (let e = 0; e < i.length; e += 1) {
133 const r = o(i[e]),
125 const { chat: r, files: o } = e
126 if (o)
127 for (let e = 0; e < o.length; e += 1) {
128 const r = i(o[e]),
134129 { id: n } = r
135130 n && (t.push(r), s.push(n))
136131 }
137132 const d = r?.display,
138133 a = d
139134 ? d.map((s, r) => {
140 if ((s.type === x || s.type === b) && s.preview?.file) {
141 const i = o(s.preview.file),
142 d = n(i.pointer) || `${createMessageId(e)}-link-preview-${r}`
143 if (i) return ((i.id = d), t.push(i), { ...s, preview: { ...s.preview, fileId: d } })
135 if ((s.type === M || s.type === T) && s.preview?.file) {
136 const o = i(s.preview.file),
137 d = n(o.pointer) || `${createMessageId(e)}-link-preview-${r}`
138 if (o) return ((o.id = d), t.push(o), { ...s, preview: { ...s.preview, fileId: d } })
144139 }
145140 return s
146141 })
……@@ -190,7 +185,7 @@ export const parseMessage = (e, t) => {
190185 const s = createMessageId(e)
191186 if (s === UNKNOWN_ID)
192187 throw new Error("invalid core message", { cause: JSON.stringify(e, null, 2) })
193 const { fileId: r = "", mediaType: n, fileIds: i, files: o, chat: d } = parseFiles(e),
188 const { fileId: r = "", mediaType: n, fileIds: o, files: i, chat: d } = parseFiles(e),
194189 a = parseSystemEvents(e),
195190 l = {
196191 id: s,
……@@ -205,17 +200,17 @@ export const parseMessage = (e, t) => {
205200 deleted: e.deleted,
206201 fileId: r,
207202 mediaType: n,
208 fileIds: i,
203 fileIds: o,
209204 chat: d,
210 reactionCount: u(e.reactions, s).total,
211 reported: t?.reported || (e.labels?.flags || 0) >= f,
205 reactionCount: f(e.reactions, s).total,
206 reported: t?.reported || (e.labels?.flags || 0) >= E,
212207 reportedByMe: t?.reportedByMe || !!e.labels?.flagged,
213208 reportedClock: e.labels?.flagsClock || 0,
214209 reportedCount: e.labels?.flags || 0,
215210 labelsEditedAt: e.labels?.editedAt || 0,
216211 forwarded: e.forwarded,
217212 }
218 return { message: updateMessage(l, t), files: o }
213 return { message: updateMessage(l, t), files: i }
219214}
220215export const isMessageChanged = (e, t) =>
221216 !(
……@@ -254,10 +249,10 @@ export const isMessageChangedExcludeGrouping = (e, t) =>
254249export const CHAT_MESSAGE_FILTER_MAP = {}
255250export const hasMoreMessages = (e, r) => {
256251 const n = t(e)?.seq,
257 i = s(e)?.seq,
258 o = t(r)?.seq,
252 o = s(e)?.seq,
253 i = t(r)?.seq,
259254 d = s(r)?.seq
260 return o > n || d < i
255 return i > n || d < o
261256}
262257export const getChatDisplayNameForMention = ({ message: e, memberById: t }) =>
263258 e.chat?.segments
……@@ -271,7 +266,7 @@ export const getChatDisplayNameForMention = ({ message: e, memberById: t }) =>
271266 return r
272267 })
273268 .join("")
274const A = [e.MENTION, e.EMOJI]
269const O = [e.MENTION, e.EMOJI]
275270export function cutSegmentHighlight(e, t) {
276271 if (r(e)) return e
277272 const s = []
……@@ -288,35 +283,35 @@ export function cutSegmentHighlight(e, t) {
288283 )
289284}
290285export const cutFormattedText = ({ text: e, segments: t, limit: s, addToEndText: n }) => {
291 let i = s
292 if (i >= e.length) return { text: e, segments: t, exceedsLimit: !1 }
293 const o = t.reduce((e, t) => {
294 if (t.end <= i) e.push(t)
295 else if (t.start < i && t.end > i) {
296 const s = t.styles.find((e) => -1 !== A.indexOf(e.type))
297 i = s ? t.end : i
298 const n = { ...t, end: i }
286 let o = s
287 if (o >= e.length) return { text: e, segments: t, exceedsLimit: !1 }
288 const i = t.reduce((e, t) => {
289 if (t.end <= o) e.push(t)
290 else if (t.start < o && t.end > o) {
291 const s = t.styles.find((e) => -1 !== O.indexOf(e.type))
292 o = s ? t.end : o
293 const n = { ...t, end: o }
299294 if (!r(t.highlight)) {
300 const e = i - t.start
295 const e = o - t.start
301296 n.highlight = cutSegmentHighlight(t.highlight, e)
302297 }
303298 e.push(n)
304299 }
305300 return e
306301 }, []),
307 d = e.length > i
302 d = e.length > o
308303 if (!d) return { text: e, segments: t, exceedsLimit: d }
309 const a = o[o.length - 1]
310 let l = e.slice(0, i)
304 const a = i[i.length - 1]
305 let l = e.slice(0, o)
311306 const c = /\s/.test(l.slice(-1))
312307 if ((n && (l += c ? n : ` ${n}`), !t)) return { text: l, segments: t, exceedsLimit: d }
313308 if (n) {
314309 const e = c ? n.length : n.length + 1
315310 a.styles.length
316 ? o.push({ start: i, end: i + e, styles: [] })
317 : (o[o.length - 1] = { ...a, end: a.end + e })
311 ? i.push({ start: o, end: o + e, styles: [] })
312 : (i[i.length - 1] = { ...a, end: a.end + e })
318313 }
319 return { text: l, segments: o, exceedsLimit: d }
314 return { text: l, segments: i, exceedsLimit: d }
320315}
321316export function getIsMessageHidden(e, t) {
322317 for (const s of t) {
……@@ -324,5 +319,5 @@ export function getIsMessageHidden(e, t) {
324319 if (r?.(e)) return !0
325320 }
326321 const s = parseSystemEvents(e)?.type
327 return s && !I.includes(s)
322 return s && !h.includes(s)
328323}
@holepunchto/keet-store/store/chat/search/chat-search.reducer.js +59 -59
……@@ -2,16 +2,16 @@ import { chatInit as e } from "../init"
22import { EMPTY_ACTION as t } from "../../lib/reducer"
33import { chatMessageClickEvt as r } from "../message"
44import {
5 chatSearchDisable as a,
6 chatSearchGoNextMsgCmd as n,
5 chatSearchDisable as n,
6 chatSearchGoNextMsgCmd as a,
77 chatSearchGoPrevMsgCmd as d,
88 chatSearchInputEvt as s,
99 setChatSearchChatMode as c,
1010 setChatSearchListMode as o,
11 addChatSearchMessages as m,
12 setChatSearchTerms as i,
13 toggleChatSearching as h,
14 setChatSearchMessagesDone as u,
11 addChatSearchMessages as i,
12 setChatSearchTerms as m,
13 toggleChatSearching as u,
14 setChatSearchMessagesDone as h,
1515} from "./chat-search.action"
1616import {
1717 EMPTY_INDEX as p,
……@@ -23,43 +23,43 @@ import {
2323 CHAT_SEARCH_STATE_KEY as x,
2424} from "./chat-search.constant"
2525import {
26 addSegmentHighlight as A,
26 addSegmentHighlight as T,
2727 createHighlightSegments as S,
28 isChatSearching as T,
29 isEmptySearchTerms as D,
30 isSearchTermsLimited as E,
31 trimTextAndSegment as R,
28 isChatSearching as A,
29 isEmptySearchTerms as E,
30 isSearchTermsLimited as R,
31 trimTextAndSegment as v,
3232} from "./chat-search.model"
33export const chatSearchReducer = (v = l, C = t) => {
34 switch (C.type) {
35 case a.type:
36 return v === l ? v : l
37 case h.type:
38 return T(v.mode) ? l : { ...v, mode: y.CHAT }
39 case i.type: {
40 if (!T(v.mode)) return v
41 const e = C.payload.filter((e) => !!e),
42 { searchTerms: t, mode: r } = v
43 if (D(e)) return { ...l, mode: r }
44 if (E(e)) return { ...l, searchTerms: e, mode: r }
45 const a = t.length ? I.LOADING_MORE : I.ASKED
46 return { ...l, mode: r, searchTerms: e, dataStatus: a }
47 }
33export const chatSearchReducer = (C = l, H = t) => {
34 switch (H.type) {
35 case n.type:
36 return C === l ? C : l
37 case u.type:
38 return A(C.mode) ? l : { ...C, mode: y.CHAT }
4839 case m.type: {
49 const e = C.payload,
50 { ids: t, byId: r, mode: a, searchTerms: n } = v
51 if (!T(a)) return v
52 if (0 === e.length) return v
40 if (!A(C.mode)) return C
41 const e = H.payload.filter((e) => !!e),
42 { mode: t } = C
43 if (E(e)) return { ...l, mode: t }
44 if (R(e)) return { ...l, searchTerms: e, mode: t }
45 const r = e.length ? I.LOADING_MORE : I.RESET
46 return { ...l, mode: t, searchTerms: e, dataStatus: r }
47 }
48 case i.type: {
49 const e = H.payload,
50 { ids: t, byId: r, mode: n, searchTerms: a } = C
51 if (!A(n)) return C
52 if (0 === e.length) return C
5353 const {
5454 nextIds: d,
5555 nextById: s,
5656 changedIds: c,
5757 } = e.reduce(
5858 (e, t) => {
59 const r = S(n, t.chat.text),
60 a = A(t.chat.segments, r),
61 d = R(t.chat.text, a, v.config),
62 s = { ...t, chat: { ...t.chat, ...d, segments: a } }
59 const r = S(a, t.chat.text),
60 n = T(t.chat.segments, r),
61 d = v(t.chat.text, n, C.config),
62 s = { ...t, chat: { ...t.chat, ...d, segments: n } }
6363 return (
6464 (e.nextById[t.id] = s),
6565 e.nextIds.includes(t.id) || (e.nextIds.push(t.id), (e.changedIds = !0)),
……@@ -68,51 +68,51 @@ export const chatSearchReducer = (v = l, C = t) => {
6868 },
6969 { nextIds: [...t], nextById: { ...r }, changedIds: !1 },
7070 )
71 return { ...v, ids: c ? d : t, byId: s, dataStatus: I.READY }
71 return { ...C, ids: c ? d : t, byId: s, dataStatus: I.READY }
7272 }
73 case u.type:
74 return v.dataStatus === I.READY ? v : { ...v, dataStatus: I.READY }
73 case h.type:
74 return C.dataStatus === I.READY ? C : { ...C, dataStatus: I.READY }
7575 case r.type: {
76 if (!T(v.mode)) return v
77 const { messageId: e } = C.payload,
78 t = v.ids.findIndex((t) => t === e)
79 return t === p || (t === v.activeIndex && v.mode === y.CHAT)
80 ? v
81 : { ...v, activeIndex: t, mode: y.CHAT }
76 if (!A(C.mode)) return C
77 const { messageId: e } = H.payload,
78 t = C.ids.findIndex((t) => t === e)
79 return t === p || (t === C.activeIndex && C.mode === y.CHAT)
80 ? C
81 : { ...C, activeIndex: t, mode: y.CHAT }
8282 }
8383 case d.type: {
84 const { activeIndex: e, ids: t } = v
85 if (!T(v.mode) || !t.length) return v
84 const { activeIndex: e, ids: t } = C
85 if (!A(C.mode) || !t.length) return C
8686 let r = e
8787 return (
8888 (r = e === p || 0 === e ? t.length - 1 : Math.min(e - 1, t.length - 1)),
89 r === e ? v : { ...v, activeIndex: r }
89 r === e ? C : { ...C, activeIndex: r }
9090 )
9191 }
92 case n.type: {
93 const { activeIndex: e, ids: t } = v
94 if (!T(v.mode) || !t.length) return v
92 case a.type: {
93 const { activeIndex: e, ids: t } = C
94 if (!A(C.mode) || !t.length) return C
9595 let r = e
9696 return (
9797 (r = e === p || e === t.length - 1 ? 0 : Math.min(e + 1, t.length - 1)),
98 r === e ? v : { ...v, activeIndex: r }
98 r === e ? C : { ...C, activeIndex: r }
9999 )
100100 }
101101 case s.type: {
102 const e = C.payload.trim().length <= f.CHARS
103 if (!T(v.mode) || e) return v
104 const t = v.searchTerms.length ? I.LOADING_MORE : I.ASKED
105 return v.dataStatus === t ? v : { ...v, dataStatus: t }
102 const e = H.payload.trim().length <= f.CHARS
103 if (!A(C.mode) || e) return C
104 const t = C.searchTerms.length ? I.LOADING_MORE : I.RESET
105 return C.dataStatus === t ? C : { ...C, dataStatus: t }
106106 }
107107 case o.type:
108 return v.mode !== y.CHAT ? v : { ...v, mode: y.LIST }
108 return C.mode !== y.CHAT ? C : { ...C, mode: y.LIST }
109109 case c.type:
110 return v.mode !== y.LIST ? v : { ...v, mode: y.CHAT }
110 return C.mode !== y.LIST ? C : { ...C, mode: y.CHAT }
111111 case e.type: {
112 const e = C.payload?.[x]
113 return e ? { ...v, config: { ...g, ...e } } : v
112 const e = H.payload?.[x]
113 return e ? { ...C, config: { ...g, ...e } } : C
114114 }
115115 default:
116 return v
116 return C
117117 }
118118}
@holepunchto/keet-store/store/debug/debug.reducer.js +0 -7
……@@ -7,7 +7,6 @@ export const INITIAL_STATE = {
77 suspended: !1,
88 suspendDisabled: !1,
99 localDbCompact: { errorMsg: "", success: !1, running: !1 },
10 profileVersion: "",
1110 audit: { report: [], running: !1, issues: 0, dropped: 0, corrupt: 0, errorMsg: "" },
1211 flags: [],
1312}
……@@ -50,9 +49,6 @@ export const debugSlice = e({
5049 setSuspendDisabled: (e, { payload: t }) => {
5150 e.suspendDisabled = t
5251 },
53 setProfileVersion: (e, { payload: t }) => {
54 e.profileVersion = t
55 },
5652 setLocalDbCompacting: (e) => {
5753 ;((e.localDbCompact.errorMsg = ""),
5854 (e.localDbCompact.running = !0),
……@@ -73,7 +69,6 @@ export const getIsSuspendDisabled = (e) => s(e).suspendDisabled
7369export const getIsOffline = (e) => s(e).offline
7470export const getDebugFlags = (e) => s(e).flags
7571export const getAuditResult = (e) => s(e).audit
76export const getProfileVersion = (e) => s(e).profileVersion
7772export const getLocalDbCompact = (e) => s(e).localDbCompact
7873export const getIsLocalDbCompacting = (e) => getLocalDbCompact(e).running
7974export const getLocalDbCompactSuccess = (e) => getLocalDbCompact(e).success
……@@ -87,7 +82,6 @@ export const {
8782 setStartAudit: setStartAudit,
8883 setAuditReport: setAuditReport,
8984 setAuditError: setAuditError,
90 setProfileVersion: setProfileVersion,
9185 setLocalDbCompacting: setLocalDbCompacting,
9286 setLocalDbCompactError: setLocalDbCompactError,
9387 setLocalDbCompactSuccess: setLocalDbCompactSuccess,
……@@ -100,4 +94,3 @@ export const toggleOffline = t("debug/toggle-offline")
10094export const startAudit = t("debug/start-audit")
10195export const startLocalDbCompact = t("debug/start-local-db-compact")
10296export const upgradePrivateProfile = t("debug/upgrade-private-profile")
103export const subscribeProfileVersionCmd = t("debug/subscribe-profile-version-cmd")
@holepunchto/keet-store/store/debug/debug.saga.js +80 -96
……@@ -1,153 +1,137 @@
11import {
22 put as e,
33 all as a,
4 call as i,
5 select as t,
6 takeLatest as o,
7 fork as r,
8 take as l,
4 call as t,
5 select as i,
6 takeLatest as d,
7 fork as g,
8 take as o,
99} from "redux-saga/effects"
1010import {
11 lockDebug as d,
12 unlockDebug as g,
13 toggleDebug as s,
14 toggleOffline as u,
15 toggleSuspendCmd as y,
16 setDebugFlags as c,
17 fetchDebugFlags as p,
18 updateDebugFlag as n,
19 getIsSuspended as f,
11 lockDebug as l,
12 unlockDebug as r,
13 toggleDebug as u,
14 toggleOffline as y,
15 toggleSuspendCmd as c,
16 setDebugFlags as p,
17 fetchDebugFlags as s,
18 updateDebugFlag as f,
19 getIsSuspended as n,
2020 getIsDebugUnlocked as S,
21 getIsOffline as b,
22 setSuspended as m,
21 getIsOffline as m,
22 setSuspended as b,
2323 setSuspendDisabled as D,
2424 startAudit as h,
2525 setAuditReport as F,
2626 setAuditError as x,
27 setStartAudit as P,
28 upgradePrivateProfile as V,
29 subscribeProfileVersionCmd as A,
30 setProfileVersion as O,
31 setLocalDbCompacting as k,
32 startLocalDbCompact as v,
27 setStartAudit as A,
28 upgradePrivateProfile as O,
29 setLocalDbCompacting as P,
30 startLocalDbCompact as k,
3331 setLocalDbCompactSuccess as C,
34 setLocalDbCompactError as I,
32 setLocalDbCompactError as L,
3533} from "./debug.reducer"
36import { uiAutomationSaga as L } from "./ui-automation.saga"
37import { DEBUG_OFFLINE_FLAGS as B } from "./debug.constants"
38import { getCoreBackend as R } from "../../backend"
39import { apiCall as E } from "../../api/core"
40import { taskErrorSaga as M } from "../error"
41import { unlockStats as N } from "../stats"
42import { getMyIdentity as T, setPrivateProfileVersion as j } from "../identity"
43import { apiSubscribeSaga as q } from "../lib"
34import { uiAutomationSaga as B } from "./ui-automation.saga"
35import { DEBUG_OFFLINE_FLAGS as v } from "./debug.constants"
36import { getCoreBackend as I } from "../../backend"
37import { apiCall as M } from "../../api/core"
38import { taskErrorSaga as N } from "../error"
39import { unlockStats as R } from "../stats"
40import { getMyIdentity as T } from "../identity"
4441export function* fetchDebugFlagsSaga() {
4542 try {
46 const a = R(),
47 i = yield E(a.getDebugFlags)
48 yield e(c(i))
43 const a = I(),
44 t = yield M(a.getDebugFlags)
45 yield e(p(t))
4946 } catch (e) {
50 yield M("fetchDebugFlagsSaga", e)
47 yield N("fetchDebugFlagsSaga", e)
5148 }
5249}
5350export function* toggleOfflineSaga() {
5451 try {
55 const e = R(),
56 o = yield t(b),
57 r = B
58 ;(yield a(r.map((a) => E(e.updateDebugFlag, a, !o))), yield i(fetchDebugFlagsSaga))
52 const e = I(),
53 d = yield i(m),
54 g = v
55 ;(yield a(g.map((a) => M(e.updateDebugFlag, a, !d))), yield t(fetchDebugFlagsSaga))
5956 } catch (e) {
60 yield M("toggleOfflineSaga", e)
57 yield N("toggleOfflineSaga", e)
6158 }
6259}
6360export function* suspendSaga() {
6461 try {
65 const a = R()
62 const a = I()
6663 for (;;)
67 (yield l(y),
64 (yield o(c),
6865 yield e(D(!0)),
69 (yield t(f)) ? (yield E(a.resume), yield e(m(!1))) : (yield E(a.suspend), yield e(m(!0))),
66 (yield i(n)) ? (yield M(a.resume), yield e(b(!1))) : (yield M(a.suspend), yield e(b(!0))),
7067 yield e(D(!1)))
7168 } catch (e) {
72 yield M("toggleSuspendSaga", e)
69 yield N("toggleSuspendSaga", e)
7370 }
7471}
7572export function* toggleDebugSaga() {
76 ;(yield t(S)) ? yield e(d()) : yield e(g())
73 ;(yield i(S)) ? yield e(l()) : yield e(r())
7774}
7875export function* updateDebugFlagSaga({ payload: e }) {
7976 try {
80 const { key: a, value: t } = e,
81 o = R()
82 ;(yield E(o.updateDebugFlag, a, t), yield i(fetchDebugFlagsSaga))
77 const { key: a, value: i } = e,
78 d = I()
79 ;(yield M(d.updateDebugFlag, a, i), yield t(fetchDebugFlagsSaga))
8380 } catch (e) {
84 yield M("updateDebugFlagSaga", e)
81 yield N("updateDebugFlagSaga", e)
8582 }
8683}
8784export function* startAuditSaga() {
8885 try {
89 const a = R()
90 yield e(P())
91 const i = yield E(a.audit)
92 let t = 0,
93 o = 0,
94 r = 0
95 for (const { audit: e } of i)
86 const a = I()
87 yield e(A())
88 const t = yield M(a.audit)
89 let i = 0,
90 d = 0,
91 g = 0
92 for (const { audit: e } of t)
9693 (e.droppedBits || e.droppedBlocks || e.droppedTreeNodes || e.corrupt) &&
97 ((t += 1), e.corrupt ? (r += 1) : (o += 1))
98 yield e(F({ report: i, issues: t, dropped: o, corrupt: r }))
94 ((i += 1), e.corrupt ? (g += 1) : (d += 1))
95 yield e(F({ report: t, issues: i, dropped: d, corrupt: g }))
9996 } catch (a) {
100 ;(yield e(x(a.message)), yield M("startAuditSaga", a))
97 ;(yield e(x(a.message)), yield N("startAuditSaga", a))
10198 }
10299}
103100export function* startLocalDbCompactSaga() {
104101 try {
105 const a = R()
106 ;(yield e(k()), yield E(a.compact), yield e(C()))
102 const a = I()
103 ;(yield e(P()), yield M(a.compact), yield e(C()))
107104 } catch (a) {
108 ;(yield e(I(a.message)), yield M("compactSaga", a))
105 ;(yield e(L(a.message)), yield N("compactSaga", a))
109106 }
110107}
111108export function* upgradeProfileSaga() {
112109 try {
113 const a = R(),
114 o = yield t(T)
115 if (!o) return
116 yield i(a.upgradeRoom, o.profileId)
117 const { version: r } = yield i(a.getVersion, o.profileId)
118 yield e(j(r))
110 const e = I(),
111 a = yield i(T)
112 if (!a) return
113 yield t(e.upgradeRoom, a.profileId)
119114 } catch (e) {
120 yield M("upgradeProfileSaga", e)
115 yield N("upgradeProfileSaga", e)
121116 }
122117}
123export function* subscribeProfileVersionSaga({ payload: a }) {
124 if (!a) return
125 const i = yield t(T)
126 if (!i) return
127 const o = R()
128 yield q([o.subscribeRoomVersion, i.profileId], (a) => e(O(a?.version || "")), {
129 onError: (e) => M("subscribeProfileVersionSaga", e),
130 })
131}
132118export function* debugMobileSaga() {
133 ;(yield r(suspendSaga),
134 yield o(p, fetchDebugFlagsSaga),
135 yield o(n, updateDebugFlagSaga),
136 yield o(u, toggleOfflineSaga),
137 yield o(h, startAuditSaga),
138 yield o(v, startLocalDbCompactSaga),
139 yield o(A, subscribeProfileVersionSaga),
140 yield o(V, upgradeProfileSaga))
119 ;(yield g(suspendSaga),
120 yield d(s, fetchDebugFlagsSaga),
121 yield d(f, updateDebugFlagSaga),
122 yield d(y, toggleOfflineSaga),
123 yield d(h, startAuditSaga),
124 yield d(k, startLocalDbCompactSaga),
125 yield d(O, upgradeProfileSaga))
141126}
142127export function* debugSaga() {
143 ;(yield r(suspendSaga),
144 yield o(h, startAuditSaga),
145 yield o(v, startLocalDbCompactSaga),
146 yield o(s, toggleDebugSaga),
147 yield o(u, toggleOfflineSaga),
148 yield o(g, L),
149 yield o(A, subscribeProfileVersionSaga),
150 yield o(V, upgradeProfileSaga),
151 yield o(n, updateDebugFlagSaga),
152 yield o([N, p], fetchDebugFlagsSaga))
128 ;(yield g(suspendSaga),
129 yield d(h, startAuditSaga),
130 yield d(k, startLocalDbCompactSaga),
131 yield d(u, toggleDebugSaga),
132 yield d(y, toggleOfflineSaga),
133 yield d(r, B),
134 yield d(O, upgradeProfileSaga),
135 yield d(f, updateDebugFlagSaga),
136 yield d([R, s], fetchDebugFlagsSaga))
153137}
@holepunchto/keet-store/store/identity/identity.constants.js +2 -0
……@@ -54,3 +54,5 @@ export const AVATAR_SIZE_CONF = {
5454}
5555export const QUERY_IDENTITY_SOURCE = { GLOBAL: "GLOBAL", START_NEW_CHAT: "START_NEW_CHAT" }
5656export const USER_SETTINGS_KEY = { DISABLE_READ_RECEIPTS: "disableReadReceipts" }
57export const CHAT_INVITATION = "chat"
58export const LINK_INVITATION = "link"
@holepunchto/keet-store/store/identity/identity.invitation.js +2 -6
……@@ -1,3 +1,4 @@
1import { CHAT_INVITATION as t } from "./identity.constants"
12export const PUBLIC_INVITE_PREFIX = "https://pears.com/invite/"
23export const getPearInvitationContextRegExp = (t) => {
34 const n = t.join("|")
……@@ -21,12 +22,7 @@ export const parseInvitation = (t, n) => {
2122}
2223export const removeInvitationQueryParams = (t) => t.split("?")[0]
2324export const isInvitation = (t, n) => !!parseInvitation(t, n)
24export function createInvitationLink({
25 applicationKey: t,
26 invitation: n,
27 isPublic: o,
28 appProtocol: i,
29}) {
25export function createInvitationLink({ invitation: n, isPublic: o, appProtocol: i }) {
3026 return `${o ? PUBLIC_INVITE_PREFIX : `${i}://`}${t}/${n}`
3127}
3228export const trimRoomInvitation = (t, n) => {
@holepunchto/keet-store/store/identity/identity.model.js +11 -7
……@@ -1,4 +1,4 @@
1import { calcAvatarColor as e } from "../lib/color"
1import { calcAvatarColorById as e } from "../lib/color"
22import {
33 CONTROL_WORD_5TH_INDEX as t,
44 CONTROL_WORD_12TH_INDEX as r,
……@@ -53,8 +53,9 @@ export const normalizeIdentity = (t) => {
5353 isLoggedOut: i,
5454 hasDiscoveryKey: d,
5555 settings: c,
56 version: l,
5657 } = t || {},
57 l = a
58 m = a
5859 .map(({ deviceId: e, name: t, confirmed: a, isMobile: o }) => ({
5960 deviceId: e,
6061 name: t,
……@@ -62,23 +63,26 @@ export const normalizeIdentity = (t) => {
6263 current: e === r?.deviceId,
6364 confirmed: a,
6465 }))
65 .sort((e) => (e.current ? -1 : 1))
66 .sort((e) => (e.current ? -1 : 1)),
67 p = isAnonymousIdentityData(t) ? n.ANONYMOUS : n.COMPLETE,
68 u = t.memberId ?? ""
6669 return {
67 status: isAnonymousIdentityData(t) ? n.ANONYMOUS : n.COMPLETE,
70 status: p,
6871 avatar: t.avatar ?? null,
6972 avatarUrl: getAvatarUrl(t.avatar),
7073 avatarUrlMedium: getAvatarUrlMedium(t.avatar),
7174 displayName: t.displayName ?? "",
7275 username: t.username || "",
73 color: e(t.displayName || ""),
76 color: e(u),
7477 local: r,
75 memberId: t.memberId ?? "",
78 memberId: u,
7679 hasDiscoveryKey: d,
77 devices: l,
80 devices: m,
7881 loggedOut: i,
7982 confirmed: o,
8083 profileId: t.profileId || "",
8184 settings: c,
85 privateProfileVersion: l,
8286 }
8387}
8488export const normalizeRecoveryPhrase = (e) => e.toLowerCase().trim().split(/\s+/).join(" ")
@holepunchto/keet-store/store/identity/identity.reducer.js +17 -12
……@@ -4,8 +4,8 @@ import {
44 IDENTITY_MEMBER_STATUS as c,
55 IDENTITY_STATUS as a,
66 IDENTITY_USERNAME_STATUS as s,
7 IDENTITY_USERNAME_SAVE_STATUS as d,
8 QUERY_IDENTITY_SOURCE as o,
7 IDENTITY_USERNAME_SAVE_STATUS as o,
8 QUERY_IDENTITY_SOURCE as d,
99 MAX_REMAINING_EDITS as y,
1010 AVATAR_BASE_EMPTY_URL as I,
1111} from "./identity.constants"
……@@ -52,10 +52,10 @@ export const MY_IDENTITY_INITIAL_STATE = {
5252 local: {},
5353 memberId: "",
5454 profileId: "",
55 searchResults: { [o.GLOBAL]: l, [o.START_NEW_CHAT]: l },
55 searchResults: { [d.GLOBAL]: l, [d.START_NEW_CHAT]: l },
5656 selectedProfile: { contactInfo: null },
5757 usernameStatus: s.UNKNOWN,
58 createUsernameStatus: d.UNKNOWN,
58 createUsernameStatus: o.UNKNOWN,
5959 deviceLoading: !1,
6060 deviceLoadError: "",
6161 invitationLink: "",
……@@ -242,11 +242,11 @@ export const identitySlice = i({
242242 e.termsOfService = t
243243 },
244244 queryIdentityRecords: (e, { payload: t }) => {
245 const i = t.opts?.source || o.GLOBAL
245 const i = t.opts?.source || d.GLOBAL
246246 ;((e.myIdentity.searchResults[i].isSearching = !0), (e.myIdentity.searchResults[i].list = []))
247247 },
248248 updateIdentitySearchList: (e, { payload: t }) => {
249 const { list: i, source: r = o.GLOBAL } = t
249 const { list: i, source: r = d.GLOBAL } = t
250250 ;((e.myIdentity.searchResults[r].isSearching = !1), (e.myIdentity.searchResults[r].list = i))
251251 },
252252 updateIdentitySelectedProfile: (e, { payload: t }) => {
……@@ -260,14 +260,14 @@ export const identitySlice = i({
260260 },
261261 updateUsernameReservationInfo: (e, t) => {
262262 const { error: i, username: r, status: n, count: c } = t.payload || {}
263 ;(n === d.RESERVED && (e.myIdentity.actionType = void 0),
263 ;(n === o.RESERVED && (e.myIdentity.actionType = void 0),
264264 (e.myIdentity.createUsernameStatus = n ?? e.myIdentity.createUsernameStatus),
265265 (e.myIdentity.username = r ?? e.myIdentity.username),
266266 (e.myIdentity.usernameError = i ?? e.myIdentity.usernameError),
267267 (e.myIdentity.usernameEditCounts = c ?? e.myIdentity.usernameEditCounts))
268268 },
269269 resetUsernameReservationInfo: (e) => {
270 ;((e.myIdentity.usernameError = void 0), (e.myIdentity.createUsernameStatus = d.NOT_STARTED))
270 ;((e.myIdentity.usernameError = void 0), (e.myIdentity.createUsernameStatus = o.NOT_STARTED))
271271 },
272272 updatePeerIdentity: (e, { payload: t }) => {
273273 const { memberId: i, identityRecord: r } = t
……@@ -360,7 +360,7 @@ export const getTermsOfService = (e) => getIdentityState(e).termsOfService
360360export const getIdentityDeviceLoading = (e) => getIdentityState(e).myIdentity.deviceLoading
361361export const getIdentityDeviceLoadError = (e) => getIdentityState(e).myIdentity.deviceLoadError
362362export const getIdentitySearchResult =
363 (e = o.GLOBAL) =>
363 (e = d.GLOBAL) =>
364364 (t) =>
365365 getIdentityState(t).myIdentity.searchResults[e] || l
366366export const getIdentitySelectedProfile = (e) => getIdentityState(e).myIdentity.selectedProfile
……@@ -380,20 +380,25 @@ export const getRemainingEdits = (e) => {
380380export const getCanEditUsername = t(
381381 [(e) => getIdentityState(e).myIdentity, (e) => getRemainingEdits(e)],
382382 ({ createUsernameStatus: e, username: t }, i) =>
383 t && e !== d.RESERVING && e !== d.EDITING_LIMIT_EXCEEDED && null != i && i > 0,
383 t && e !== o.RESERVING && e !== o.EDITING_LIMIT_EXCEEDED && null != i && i > 0,
384384)
385385export const getRemoveDeviceStatus = (e) => getIdentityState(e).removeDeviceStatus
386386export const getUsernameError = (e) => getIdentityState(e).myIdentity.usernameError
387387export const getIsReadReceiptsDisabled = (e) =>
388388 getIdentityState(e).myIdentity.settings.disableReadReceipts
389export const getPrivateProfileVersion = (e) => getIdentityState(e).myIdentity.privateProfileVersion
389390export const getIsReadReceiptsSupported = (e) => {
390 const { privateProfileVersion: t } = getIdentityState(e).myIdentity
391 const t = getPrivateProfileVersion(e)
391392 return r(t, n.PRIVATE_PROFILE_SETTINGS)
392393}
393394export const getIsFavoriteRoomSupported = (e) => {
394 const { privateProfileVersion: t } = getIdentityState(e).myIdentity
395 const t = getPrivateProfileVersion(e)
395396 return r(t, n.FAVORITE_ROOMS)
396397}
398export const getIsRoomMarkUnreadSupported = (e) => {
399 const t = getPrivateProfileVersion(e)
400 return r(t, n.ROOM_MARK_UNREAD)
401}
397402export const {
398403 setAccountRecoveryAgreement: setAccountRecoveryAgreement,
399404 setAccountRecoverySuccess: setAccountRecoverySuccess,
@holepunchto/keet-store/store/identity/identity.saga.js +185 -199
……@@ -3,98 +3,98 @@ import { ERRORS as i } from "@holepunchto/keet-core/legacy-constants"
33import {
44 all as t,
55 call as r,
6 delay as n,
7 fork as d,
6 delay as d,
7 fork as n,
88 getContext as a,
99 put as o,
1010 race as y,
11 select as s,
12 take as c,
11 select as c,
12 take as s,
1313 takeEvery as l,
1414 takeLatest as m,
1515 takeLeading as u,
1616} from "redux-saga/effects"
17import { getCoreBackend as f } from "../../backend"
18import { apiCall as p } from "../../api/core"
17import { getCoreBackend as p } from "../../backend"
18import { apiCall as f } from "../../api/core"
1919import { ENV_CONTEXT_KEY as g, PLATFORM_CONTEXT_KEY as I } from "../constants"
20import { pairInvalidInviteError as v, taskErrorSaga as b } from "../error"
20import { pairInvalidInviteError as b, taskErrorSaga as v } from "../error"
2121import { apiSubscribeSaga as E, apiTakeEvery as S, apiTakeMatch as h } from "../lib"
2222import {
2323 IDENTITY_STATUS as D,
2424 IDENTITY_USERNAME_ACTION_TYPE as U,
25 IDENTITY_USERNAME_SAVE_STATUS as R,
26 IDENTITY_USERNAME_STATUS as x,
27 IDENTITY_VERIFY_DELAY as L,
28 QUERY_IDENTITY_DELAY as k,
29 QUERY_IDENTITY_LIMIT as P,
30 QUERY_IDENTITY_REQUEST_TIMEOUT as O,
31 QUERY_IDENTITY_SOURCE as A,
25 IDENTITY_USERNAME_SAVE_STATUS as L,
26 IDENTITY_USERNAME_STATUS as R,
27 IDENTITY_VERIFY_DELAY as x,
28 LINK_INVITATION as k,
29 QUERY_IDENTITY_DELAY as O,
30 QUERY_IDENTITY_LIMIT as A,
31 QUERY_IDENTITY_REQUEST_TIMEOUT as T,
32 QUERY_IDENTITY_SOURCE as C,
3233} from "./identity.constants"
3334import {
34 isValidIdentityUsername as T,
35 parseUserSearchItem as V,
36 parseUserSearchResponse as C,
35 isValidIdentityUsername as N,
36 parseUserSearchItem as P,
37 parseUserSearchResponse as w,
3738} from "./identity.model"
3839import {
39 addIdentityInvitedDevice as N,
40 approveIdentityInvitedDevice as w,
41 cancelIdentityInvitationLink as _,
42 createIdentityInvitationLink as F,
43 createIdentityUsernameCmd as G,
44 getIdentityInvitationLink as j,
45 getIdentityInvitedDevices as q,
46 getIdentityStatus as H,
47 rejectIdentityInvitedDevice as M,
40 addIdentityInvitedDevice as V,
41 approveIdentityInvitedDevice as _,
42 cancelIdentityInvitationLink as F,
43 createIdentityInvitationLink as G,
44 createIdentityUsernameCmd as j,
45 getIdentityInvitationLink as q,
46 getIdentityInvitedDevices as H,
47 getIdentityStatus as M,
48 rejectIdentityInvitedDevice as $,
4849 removeIdentityInvitedDevice as K,
49 setIdentity as $,
50 setIdentityAsked as B,
51 setIdentityInvitationLink as W,
52 setSyncDeviceErrorMsg as Y,
53 updateIdentityDeviceFailure as X,
54 updateIdentityDeviceRequest as z,
55 updateIdentityDeviceSuccess as J,
56 updateIdentitySearchList as Q,
57 verifyIdentityUsernameCmd as Z,
58 updateIdentityVerifyStatus as ee,
59 resetIdentityVerifyStatus as ie,
60 askIdentityLoad as te,
61 updatePeerIdentity as re,
50 setIdentity as B,
51 setIdentityAsked as W,
52 setIdentityInvitationLink as Y,
53 setSyncDeviceErrorMsg as X,
54 updateIdentityDeviceFailure as z,
55 updateIdentityDeviceRequest as J,
56 updateIdentityDeviceSuccess as Q,
57 updateIdentitySearchList as Z,
58 verifyIdentityUsernameCmd as ee,
59 updateIdentityVerifyStatus as ie,
60 resetIdentityVerifyStatus as te,
61 askIdentityLoad as re,
62 updatePeerIdentity as de,
6263 getMyMemberId as ne,
63 createAndSubmitBackup as de,
64 getIsIdentityConfirmed as ae,
65 submitBackupSuccess as oe,
66 queryIdentityRecords as ye,
64 createAndSubmitBackup as ae,
65 getIsIdentityConfirmed as oe,
66 submitBackupSuccess as ye,
67 queryIdentityRecords as ce,
6768 editIdentityUsernameCmd as se,
68 fetchMyContactInvitationCmd as ce,
69 getAccountRecoveryLoading as le,
70 setAccountRecoverySuccess as me,
71 removeLinkedDevice as ue,
69 fetchMyContactInvitationCmd as le,
70 getAccountRecoveryLoading as me,
71 setAccountRecoverySuccess as ue,
72 removeLinkedDevice as pe,
7273 updateRemoveDeviceStatus as fe,
73 getCreateUsernameStatus as pe,
74 setIdentityUsernameActionType as ge,
75 updateUsernameReservationInfo as Ie,
74 getCreateUsernameStatus as ge,
75 setIdentityUsernameActionType as Ie,
76 updateUsernameReservationInfo as be,
7677 resetUsernameReservationInfo as ve,
77 identityLoggedOut as be,
78 updateUserSettingsCmd as Ee,
79 fetchPrivateProfileStatsCmd as Se,
80 setPrivateProfileStats as he,
81 setPrivateProfileVersion as De,
78 identityLoggedOut as Ee,
79 updateUserSettingsCmd as Se,
80 fetchPrivateProfileStatsCmd as he,
81 setPrivateProfileStats as De,
8282 getMyIdentity as Ue,
83 getIdentityState as Re,
83 getIdentityState as Le,
8484} from "./identity.reducer"
85import { identityUserProfileSaga as xe } from "./identity-profile.saga"
86import { accountRecoverSaga as Le } from "./saga/account-recover.saga"
85import { identityUserProfileSaga as Re } from "./identity-profile.saga"
86import { accountRecoverSaga as xe } from "./saga/account-recover.saga"
8787import { backupCreateSaga as ke } from "./saga/backup-create.saga"
88import { syncDeviceSaga as Pe } from "./saga/sync-device.saga"
89import { secretPhraseSaga as Oe } from "./saga/secret-phrase-saga"
90import { blockMemberSaga as Ae, unblockMemberSaga as Te } from "./member/identity-member.saga"
88import { syncDeviceSaga as Oe } from "./saga/sync-device.saga"
89import { secretPhraseSaga as Ae } from "./saga/secret-phrase-saga"
90import { blockMemberSaga as Te, unblockMemberSaga as Ce } from "./member/identity-member.saga"
9191import {
92 blockMemberCmd as Ve,
93 initBlockedMembersSubscription as Ce,
94 unblockMemberCmd as Ne,
92 blockMemberCmd as Ne,
93 initBlockedMembersSubscription as Pe,
94 unblockMemberCmd as we,
9595} from "./member"
9696import {
97 NOTIFICATION_CODE as we,
97 NOTIFICATION_CODE as Ve,
9898 userCustomNotification as _e,
9999 userSuccessNotification as Fe,
100100} from "../notification"
……@@ -103,276 +103,262 @@ import { fetchMyContactInvitationSaga as je } from "./saga/fetch-my-contact-invi
103103export function* updateIdentityDeviceSaga({ payload: e }) {
104104 try {
105105 const { name: i, deviceId: t } = e,
106 r = f(),
107 n = i || t
108 ;(yield p(r.updateIdentityDevice, { name: n }), yield o(J({ name: n, deviceId: t })))
106 r = p(),
107 d = i || t
108 ;(yield f(r.updateIdentityDevice, { name: d }), yield o(Q({ name: d, deviceId: t })))
109109 } catch (e) {
110 ;(yield o(X({ error: e.message })), yield b("updateIdentityDeviceSaga", e))
110 ;(yield o(z({ error: e.message })), yield v("updateIdentityDeviceSaga", e))
111111 }
112112}
113113export function* approveIdentityInvitedDeviceSaga({ payload: e }) {
114114 try {
115 const i = (yield s(q)).find((i) => i.deviceId === e)
115 const i = (yield c(H)).find((i) => i.deviceId === e)
116116 if (!i) throw new Error("wrong device to approve")
117 const t = f()
118 yield p(t.confirmPairingRequest, i, !0)
117 const t = p()
118 yield f(t.confirmPairingRequest, i, !0)
119119 } catch (e) {
120 yield b("approveIdentityInvitedDeviceSaga", e)
120 yield v("approveIdentityInvitedDeviceSaga", e)
121121 } finally {
122122 yield o(K(e))
123123 }
124124}
125125export function* rejectIdentityInvitedDeviceSaga({ payload: e }) {
126126 try {
127 const i = (yield s(q)).find((i) => i.deviceId === e)
127 const i = (yield c(H)).find((i) => i.deviceId === e)
128128 if (!i) throw new Error("wrong device to reject")
129 const t = f()
130 yield p(t.confirmPairingRequest, i, !1)
129 const t = p()
130 yield f(t.confirmPairingRequest, i, !1)
131131 } catch (e) {
132 yield b("rejectIdentityInvitedDeviceSaga", e)
132 yield v("rejectIdentityInvitedDeviceSaga", e)
133133 } finally {
134134 yield o(K(e))
135135 }
136136}
137137export function* createIdentityInvitationLinkSaga() {
138138 try {
139 if (yield s(j)) return
140 const e = f(),
141 [i, t] = yield y([c(_), p(e.createIdentityInvitation)])
139 if (yield c(q)) return
140 const e = p(),
141 [i, t] = yield y([s(F), f(e.createIdentityInvitation)])
142142 if (!i && !t) throw new Error("unable to create invitation link")
143143 if (!i) {
144144 const {
145145 config: { appProtocol: e },
146146 } = yield a(I)
147 yield o(W(`${e}://keet/${t}`))
147 yield o(Y(`${e}://${k}/${t}`))
148148 }
149149 } catch (e) {
150 yield b("createIdentityInvitationLinkSaga", e)
150 yield v("createIdentityInvitationLinkSaga", e)
151151 }
152152}
153153export function* loadIdentitySync() {
154154 try {
155 yield o(B())
156 const e = f(),
157 i = yield p(e.getIdentity)
158 yield o($(i))
155 yield o(W())
156 const e = p(),
157 i = yield f(e.getIdentity)
158 yield o(B(i))
159159 } catch (e) {
160 yield b("loadIdentitySync", e, { isCritical: !0 })
160 yield v("loadIdentitySync", e, { isCritical: !0 })
161161 }
162162 return !0
163163}
164164function* qe({ payload: e }) {
165165 try {
166 if ((yield s(pe)) === R.RESERVING) return
167 yield o(ge(U.UPDATE))
168 const i = f()
169 yield p(i.updateUsername, e)
166 if ((yield c(ge)) === L.RESERVING) return
167 yield o(Ie(U.UPDATE))
168 const i = p()
169 yield f(i.updateUsername, e)
170170 } catch (e) {
171171 e?.code
172 ? yield o(Ie({ status: R.FAILED, error: e.code }))
173 : (yield b("editIdentityUsername", e), yield o(ve()))
172 ? yield o(be({ status: L.FAILED, error: e.code }))
173 : (yield v("editIdentityUsername", e), yield o(ve()))
174174 }
175175}
176176function* He({ payload: e }) {
177177 try {
178 yield o(ge(U.CREATE))
179 const i = f()
180 yield p(i.registerUsername, e)
178 yield o(Ie(U.CREATE))
179 const i = p()
180 yield f(i.registerUsername, e)
181181 } catch (e) {
182182 ;(yield o(ve()),
183 e.code === we.OUTDATED_CLOCK
184 ? yield o(_e({ code: we.OUTDATED_CLOCK }))
185 : yield b("createIdentityUsername", e))
183 e.code === Ve.OUTDATED_CLOCK
184 ? yield o(_e({ code: Ve.OUTDATED_CLOCK }))
185 : yield v("createIdentityUsername", e))
186186 }
187187}
188188function* Me({ payload: e }) {
189 yield n(k)
189 yield d(O)
190190 try {
191 const i = f(),
191 const i = p(),
192192 { prefix: t, opts: r = {} } = e,
193 { source: d = A.GLOBAL, limit: a = P } = r,
194 [s, c] = yield y([p(i.searchUsername, t, { limit: a }), n(O)])
195 if (c) return void (yield o(Q({ list: [], source: d })))
196 const l = C({ response: s })
197 yield o(Q({ list: l, source: d }))
193 { source: n = C.GLOBAL, limit: a = A } = r,
194 [c, s] = yield y([f(i.searchUsername, t, { limit: a }), d(T)])
195 if (s) return void (yield o(Z({ list: [], source: n })))
196 const l = w({ response: c })
197 yield o(Z({ list: l, source: n }))
198198 } catch (e) {
199 yield b("queryIdentityRecordsSaga", e)
199 yield v("queryIdentityRecordsSaga", e)
200200 }
201201}
202function* Ke({ payload: e }) {
202function* $e({ payload: e }) {
203203 try {
204 if ((yield o(ee(x.CHECKING)), yield n(L), !e)) return void (yield o(ie()))
205 if (!T(e)) return void (yield o(ee(x.INVALID_CHAR)))
206 const i = f(),
207 t = (yield p(i.checkUsername, e)) ? x.NOT_FOUND : x.EXISTS
208 yield o(ee(t))
204 if ((yield o(ie(R.CHECKING)), yield d(x), !e)) return void (yield o(te()))
205 if (!N(e)) return void (yield o(ie(R.INVALID_CHAR)))
206 const i = p(),
207 t = (yield f(i.checkUsername, e)) ? R.NOT_FOUND : R.EXISTS
208 yield o(ie(t))
209209 } catch (e) {
210 yield b("verifyIdentityUsernameSaga", e)
210 yield v("verifyIdentityUsernameSaga", e)
211211 }
212212}
213export function* identityPrivateProfileVersionSaga() {
214 const { profileId: e } = yield s(Ue),
215 i = f()
216 yield E(
217 [i.subscribeRoomVersion, e],
218 function* (e) {
219 const { privateProfileVersion: i } = yield s(Ue),
220 t = e?.version
221 t && t !== i && (yield o(De(t)))
222 },
223 { onError: (e) => b("identityPrivateProfileVersionSaga", e) },
224 )
225}
226function* $e() {
213function* Ke() {
227214 try {
228 const { profileId: e } = yield s(Ue),
229 i = f(),
230 [r, n] = yield t([p(i.getRoomStats, e), p(i.getRoomInfo, e)])
215 const { profileId: e } = yield c(Ue),
216 i = p(),
217 [r, d] = yield t([f(i.getRoomStats, e), f(i.getRoomInfo, e)])
231218 yield o(
232 he({
219 De({
233220 stats: {
234221 roomInfo: {
235 version: n?.digest?.abi.version,
236 experimental: n?.digest?.settings?.isExperimental,
222 version: d?.digest?.abi.version,
223 experimental: d?.digest?.settings?.isExperimental,
237224 },
238225 ...r,
239226 },
240227 }),
241228 )
242229 } catch (e) {
243 yield b("fetchRoomStatsSaga", e)
230 yield v("fetchRoomStatsSaga", e)
244231 }
245232}
246233export function* identityErrorHandler() {
247 yield l(v, function* () {
248 yield o(Y(i.INVALID_INVITATION_TYPE))
234 yield l(b, function* () {
235 yield o(X(i.INVALID_INVITATION_TYPE))
249236 })
250237}
251238function* Be({ payload: { deviceId: e, message: i } }) {
252239 try {
253 const t = f()
240 const t = p()
254241 ;(yield o(fe({ isLoading: !0 })),
255 yield p(t.removeIdentityDevice, e),
242 yield f(t.removeIdentityDevice, e),
256243 yield o(fe({ isLoading: !1, isSuccess: !0, isError: !1 })),
257244 yield o(Fe({ message: i })))
258245 } catch (e) {
259246 yield o(fe({ isLoading: !1, isError: !0, isSuccess: !1 }))
260247 }
261248}
262export function identityFeatureGate(i, t, n = []) {
249export function identityFeatureGate(i, t, d = []) {
263250 return function* () {
264251 for (;;) {
265 const t = yield s(Re),
252 const t = yield c(Le),
266253 r = t.myIdentity?.privateProfileVersion
267254 if (e(r, i)) break
268 yield c(De)
255 yield s(B)
269256 }
270 yield r(t, ...n)
257 yield r(t, ...d)
271258 }
272259}
273260export function* identityWorker(e) {
274261 const { username: i } = yield a(g)
275262 switch (e) {
276263 case D.ANONYMOUS:
277 yield b("Anonymous identity is not supported")
264 yield v("Anonymous identity is not supported")
278265 break
279266 case D.COMPLETE:
280 ;(yield d(Oe),
281 yield d(Ge),
282 yield u(w, approveIdentityInvitedDeviceSaga),
283 yield u(M, rejectIdentityInvitedDeviceSaga),
284 yield u(F, createIdentityInvitationLinkSaga),
285 yield u(z, updateIdentityDeviceSaga),
286 yield u(Ve, Ae),
267 ;(yield n(Ae),
268 yield n(Ge),
269 yield u(_, approveIdentityInvitedDeviceSaga),
270 yield u($, rejectIdentityInvitedDeviceSaga),
271 yield u(G, createIdentityInvitationLinkSaga),
272 yield u(J, updateIdentityDeviceSaga),
287273 yield u(Ne, Te),
288 yield u(ce, je),
289 yield u(ue, Be),
290 yield u(Se, $e),
291 yield d(identityPrivateProfileVersionSaga),
292 yield Ce(),
293 (i?.registerEnabled || i?.searchEnabled) && (yield m(Z, Ke)),
294 i?.registerEnabled && (yield u(G, He)),
295 i?.searchEnabled && (yield m(ye, Me)),
296 yield d(xe),
297 yield S([f().subscribeIdentityPairingRequests], (e) => o(N(e))))
274 yield u(we, Ce),
275 yield u(le, je),
276 yield u(pe, Be),
277 yield u(he, Ke),
278 yield Pe(),
279 (i?.registerEnabled || i?.searchEnabled) && (yield m(ee, $e)),
280 i?.registerEnabled && (yield u(j, He)),
281 i?.searchEnabled && (yield m(ce, Me)),
282 yield n(Re),
283 yield S([p().subscribeIdentityPairingRequests], (e) => o(V(e))))
298284 break
299285 default:
300 yield b("identitySaga", "no identity data available")
286 yield v("identitySaga", "no identity data available")
301287 }
302288}
303289export function* memberIdentityLoad() {
304 yield l(te, function* ({ payload: e }) {
305 const i = f(),
306 t = yield p(i.lookupUserByMemberId, e)
307 yield o(re({ memberId: e, identityRecord: V({ item: t }) }))
290 yield l(re, function* ({ payload: e }) {
291 const i = p(),
292 t = yield f(i.lookupUserByMemberId, e)
293 yield o(de({ memberId: e, identityRecord: P({ item: t }) }))
308294 })
309295}
310296export function* identityOnboardingSaga() {
311297 const { username: e } = yield a(g)
312 ;(yield d(ke),
313 yield d(Pe),
314 yield d(Le),
315 yield u(z, updateIdentityDeviceSaga),
316 (e?.searchEnabled || e?.registerEnabled) && (yield m(Z, Ke)))
298 ;(yield n(ke),
299 yield n(Oe),
300 yield n(xe),
301 yield u(J, updateIdentityDeviceSaga),
302 (e?.searchEnabled || e?.registerEnabled) && (yield m(ee, $e)))
317303}
318304export function* subscribeIdentityUsername() {
319305 yield E(
320 [f().subscribeUsername],
306 [p().subscribeUsername],
321307 function* (e) {
322308 const { status: i, record: t, error: r } = e || {}
323 ;(i?.isReserving && (yield o(Ie({ status: R.RESERVING }))),
309 ;(i?.isReserving && (yield o(be({ status: L.RESERVING }))),
324310 i?.hasRecord &&
325311 t &&
326 (yield o(Ie({ status: R.RESERVED, username: t.username, count: t.count }))),
327 i?.hasError && r && (yield o(Ie({ error: r, status: R.FAILED }))))
312 (yield o(be({ status: L.RESERVED, username: t.username, count: t.count }))),
313 i?.hasError && r && (yield o(be({ error: r, status: L.FAILED }))))
328314 },
329 { onError: (e) => b("subscribeUsername", e) },
315 { onError: (e) => v("subscribeUsername", e) },
330316 )
331317}
332318export function* subscribeIdentityDataSaga(e) {
333 ;(e.isLoggedOut && (yield o(be())), yield o($(e)))
319 ;(e.isLoggedOut && (yield o(Ee())), yield o(B(e)))
334320}
335321export function* updateUserSettings({ payload: e }) {
336322 try {
337 const i = f()
338 yield p(i.updateUserSettings, e.key, e.value)
323 const i = p()
324 yield f(i.updateUserSettings, e.key, e.value)
339325 } catch (e) {
340 yield b("updateUserSettings", e)
326 yield v("updateUserSettings", e)
341327 }
342328}
343329export function* identitySaga() {
344330 try {
345331 const { username: e } = yield a(g),
346 i = yield s(H)
347 if (i !== D.COMPLETE) return void (yield b("identitySaga", `incorrect initial ID status=${i}`))
348 if (!(yield s(ae))) {
349 const e = yield d(identityOnboardingSaga),
350 i = yield s(ne),
332 i = yield c(M)
333 if (i !== D.COMPLETE) return void (yield v("identitySaga", `incorrect initial ID status=${i}`))
334 if (!(yield c(oe))) {
335 const e = yield n(identityOnboardingSaga),
336 i = yield c(ne),
351337 [t, r] = yield y([
352 h([f().subscribeIdentity], {
338 h([p().subscribeIdentity], {
353339 matchFn: (e) => e.memberId !== i,
354 onError: (e) => b("Onboarding: subscribeIdentity", e),
340 onError: (e) => v("Onboarding: subscribeIdentity", e),
355341 }),
356 c(de),
342 s(ae),
357343 ])
358 if (t) ((yield s(le)) && (yield o(me())), yield o($(t)))
344 if (t) ((yield c(me)) && (yield o(ue())), yield o(B(t)))
359345 else {
360346 const { payload: e } = r,
361 i = f()
362 ;(yield p(i.confirmRecoveryPhrase, { persist: !e }), yield o(oe()))
347 i = p()
348 ;(yield f(i.confirmRecoveryPhrase, { persist: !e }), yield o(ye()))
363349 }
364350 e.cancel()
365351 }
366 ;(yield d(identityWorker, i),
367 yield d(identityErrorHandler),
368 (e?.registerEnabled || e?.searchEnabled) && (yield d(memberIdentityLoad)),
352 ;(yield n(identityWorker, i),
353 yield n(identityErrorHandler),
354 (e?.registerEnabled || e?.searchEnabled) && (yield n(memberIdentityLoad)),
369355 e?.editEnabled && (yield m(se, qe)),
370 (e?.registerEnabled || e?.editEnabled) && (yield d(subscribeIdentityUsername)),
371 yield m(Ee, updateUserSettings),
372 yield E([f().subscribeIdentity], subscribeIdentityDataSaga, {
373 onError: (e) => b("subscribeIdentity", e),
356 (e?.registerEnabled || e?.editEnabled) && (yield n(subscribeIdentityUsername)),
357 yield m(Se, updateUserSettings),
358 yield E([p().subscribeIdentity], subscribeIdentityDataSaga, {
359 onError: (e) => v("subscribeIdentity", e),
374360 }))
375361 } catch (e) {
376 yield b("identitySaga", e)
362 yield v("identitySaga", e)
377363 }
378364}
@holepunchto/keet-store/store/identity/saga/fetch-my-contact-invitation.saga.js +1 -2
……@@ -7,13 +7,12 @@ import { createInvitationLink as c } from "../identity.invitation"
77import { PLATFORM_CONTEXT_KEY as e } from "../../constants"
88export function* fetchMyContactInvitationSaga() {
99 const {
10 applicationKey: p,
1110 config: { appProtocol: f },
1211 } = yield t(e)
1312 try {
1413 const t = r(),
1514 n = yield i(t.getSelfContactInfo)
16 yield o(a(c({ invitation: n, isPublic: !1, applicationKey: p, appProtocol: f })))
15 yield o(a(c({ invitation: n, isPublic: !1, appProtocol: f })))
1716 } catch (t) {
1817 yield n("fetchMyContactInvitationSaga", t)
1918 }
@holepunchto/keet-store/store/lib/color.js +12 -4
……@@ -1,6 +1,14 @@
1const t = (t) => `hsl(${Math.abs(t) % 361}, 65%, 40%)`
2export const calcAvatarColor = (o) => {
1export const calculateBackgroundColor = (t) => `hsl(${Math.abs(t) % 361}, 65%, 40%)`
2export const BLANK_AVATAR_COLOR = calculateBackgroundColor(0)
3export const COLOR_BY_ID_MAX_SIZE = 1e3
4const t = new Map()
5export const calcAvatarColorById = (o) => {
6 if (!o) return BLANK_AVATAR_COLOR
7 let e = t.get(o)
8 if (e) return e
9 t.size > 1e3 && t.clear()
310 let r = 0
4 if (o) for (let t = 0; t < o.length; t += 1) r = o.charCodeAt(t) + ((r << 5) - r)
5 return t(r)
11 const c = Math.min(o.length, 6)
12 for (let t = 0; t < c; t += 1) r = o.charCodeAt(t) + ((r << 5) - r)
13 return ((e = calculateBackgroundColor(r)), t.set(o, e), e)
614}
@holepunchto/keet-store/store/member/member.model.js +5 -4
……@@ -1,4 +1,4 @@
1import { calcAvatarColor as e } from "../lib/color"
1import { calcAvatarColorById as e } from "../lib/color"
22import { getAvatarUrl as t, getAvatarUrlMedium as a } from "../identity"
33export const CAN_SHARE_FILES = 16
44export const CAN_REACT = 8
……@@ -100,9 +100,10 @@ export const getRolesSelectOptions = ({ myRole: e, managedMemberRole: t }) => {
100100}
101101export const parseMemberResponse = (E) => {
102102 const { status: o } = E,
103 { isActive: n, isMuted: R, isPending: r } = o || {}
103 { isActive: n, isMuted: R, isPending: r } = o || {},
104 M = E.memberId ?? ""
104105 return {
105 memberId: E.memberId ?? "",
106 memberId: M,
106107 name: E.name ?? "",
107108 displayName: E.displayName ?? "",
108109 capabilities: E.capabilities ?? null,
……@@ -110,7 +111,7 @@ export const parseMemberResponse = (E) => {
110111 avatar: E.avatar ?? "",
111112 avatarUrl: t(E.avatar),
112113 avatarUrlMedium: a(E.avatar),
113 color: e(E.displayName),
114 color: e(M),
114115 anonymous: !!E.anonymous,
115116 deviceIds: E.deviceIds ?? [],
116117 contactInfo: E.contactInfo ?? {},
@holepunchto/keet-store/store/preferences/preferences.constant.js +5 -0
……@@ -41,4 +41,9 @@ export const FIRST_VISIT_INTRO_ROOM_IDS = [
4141 "kd8r5xiqqd75wexjduwmcuapa4bcydqt3okwgscupw9qxfo5oory",
4242 "474kwn93d6tzc3ad7mwy3nc1sn74a4kdax7jxpbfyhw4ywxe1coy",
4343 "nm1nabjhw81yrug1gmrffc83px7rxj3q8xrhcyuontewn4whop5o",
44 "1cdbp5jcuqqkw75kic6gp7j5uu3fq3meksd4ike7f3ytrsmoon6o",
45 "hq1e4ymj8ed54xnm4uisr1qz31dkz19m69yfyo868r3k3koxhc6o",
46 "zt7en9fwcabkxkpy53ysn8tqqdb985daqtinj9346y7zjnzsdwoo",
47 "gpu8wma8a1377mg1nkjm4nky8xcwzdp3kb6cp5dyt5hn8dxo6jry",
48 "grimk9t5whmbsaa738sh47iuhiof8gdh6eoqzwsqbmcq4xo1tugo",
4449]
@holepunchto/keet-store/store/room/dm/room-dm.model.js +34 -31
……@@ -1,39 +1,42 @@
1import { parseCoreFile as e } from "../../media/file"
2import { calcAvatarColor as t } from "../../lib/color"
1import { parseCoreFile as t } from "../../media/file"
2import { calcAvatarColorById as e } from "../../lib/color"
33import { EMPTY_ROOM_AVATAR as o, ROOM_AVATAR_MIME_TYPE_DEFAULT as a } from "../room.constant"
44export const UNKNOWN_ID = "unknown_id"
5export const getDmAvatarData = (t) => {
6 const m = e(t.avatar?.small),
7 r = m?.pointer?.inlined,
8 s = m?.mimetype || a
9 return { avatar: m ?? o.avatar, avatarUrl: r ? `data:${s};base64,${r}` : "" }
5export const getDmAvatarData = (e) => {
6 const r = t(e.avatar?.small),
7 m = r?.pointer?.inlined,
8 s = r?.mimetype || a
9 return { avatar: r ?? o.avatar, avatarUrl: m ? `data:${s};base64,${m}` : "" }
1010}
11export const getDmRequestId = (e) => e?.id?.roomId || UNKNOWN_ID
12export const parseDmRoom = (e) => ({ roomId: e.roomId ?? "", dmMemberId: e.dmMemberId ?? "" })
13export const formatDmRequest = (e) => {
14 const { senderContactInfo: o } = e
11export const getDmRequestId = (t) => t?.id?.roomId || UNKNOWN_ID
12export const parseDmRoom = (t) => ({ roomId: t.roomId ?? "", dmMemberId: t.dmMemberId ?? "" })
13export const formatDmRequest = (t) => {
14 const { senderContactInfo: o } = t,
15 { memberId: a, displayName: r } = o,
16 { avatar: m, avatarUrl: s } = getDmAvatarData(o)
1517 return {
16 ...getDmAvatarData(o),
17 id: getDmRequestId(e),
18 color: t(o.displayName),
19 requestId: e.id,
20 senderId: o.memberId,
21 displayName: o.displayName,
22 message: e.message,
23 status: e.status,
24 timestamp: e.sentAt,
18 avatar: m,
19 avatarUrl: s,
20 id: getDmRequestId(t),
21 color: e(a),
22 requestId: t.id,
23 senderId: a,
24 displayName: r,
25 message: t.message,
26 status: t.status,
27 timestamp: t.sentAt,
2528 }
2629}
27export const parseDmContactInfo = (e) => ({
28 roomId: e.activeRoom?.id ?? "",
29 memberId: e.memberId,
30 ...e.pendingRequest?.status,
31 isBlocked: e.contactStatus?.isBlocked ?? !1,
32 isAccepted: e.activeRoom?.status?.isAccepted ?? !1,
33 isWritable: e.activeRoom?.status?.isWritable ?? !0,
30export const parseDmContactInfo = (t) => ({
31 roomId: t.activeRoom?.id ?? "",
32 memberId: t.memberId,
33 ...t.pendingRequest?.status,
34 isBlocked: t.contactStatus?.isBlocked ?? !1,
35 isAccepted: t.activeRoom?.status?.isAccepted ?? !1,
36 isWritable: t.activeRoom?.status?.isWritable ?? !0,
3437})
35export const parseDmRoomConfigIds = (e) => ({
36 roomId: e.roomId,
37 memberId: e.dmMemberId,
38 discoveryId: e.discoveryId,
38export const parseDmRoomConfigIds = (t) => ({
39 roomId: t.roomId,
40 memberId: t.dmMemberId,
41 discoveryId: t.discoveryId,
3942})
@holepunchto/keet-store/store/room/index.js +1 -0
……@@ -9,6 +9,7 @@ export * from "./main"
99export * from "./joint"
1010export * from "./list"
1111export * from "./dm"
12export * from "./room-discover"
1213export * from "./forward-message"
1314export * from "./share-message"
1415export * from "./room.feature"
@holepunchto/keet-store/store/room/joint/room-pairing.saga.js +24 -24
……@@ -5,14 +5,14 @@ import { getCoreBackend as a } from "../../../backend"
55import { apiCall as s } from "../../../api/core"
66import { PLATFORM_CONTEXT_KEY as d } from "../../constants"
77import {
8 taskErrorSaga as c,
9 pairInvalidInviteError as m,
8 taskErrorSaga as m,
9 pairInvalidInviteError as c,
1010 GENERIC_PAIRING_ERROR as l,
1111} from "../../error"
1212import {
1313 parseInvitation as p,
14 removeInvitationQueryParams as y,
15 createInvitationLink as I,
14 removeInvitationQueryParams as I,
15 createInvitationLink as y,
1616} from "../../identity"
1717import { NOTIFICATION_CODE as f, userCustomNotification as g } from "../../notification"
1818import { getRoomListDiscoveryIds as u } from "../list/room-list.reducer"
……@@ -37,24 +37,24 @@ import {
3737} from "./room-joint.model"
3838import { ROOM_INVITE_CONFIG_DEFAULT as w } from "../room.constant"
3939export function* createInvitationSaga(
40 { applicationKey: o, appProtocol: i },
41 { payload: { roomId: t, invitationPreview: n, messageId: d, isPublic: m = !1, opts: l = w } },
40 { appProtocol: o },
41 { payload: { roomId: i, invitationPreview: t, messageId: n, isPublic: d = !1, opts: c = w } },
4242) {
4343 try {
4444 const r = a(),
45 c = yield s(r.createInvitation, t, l)
46 let p
47 ;((p = I({ applicationKey: o, invitation: c, isPublic: m, appProtocol: i })),
48 d && (p = P({ invitationLink: p, messageId: d })),
49 yield e(N({ invitationLink: p, invitationPreview: n })))
45 m = yield s(r.createInvitation, i, c)
46 let l
47 ;((l = y({ invitation: m, isPublic: d, appProtocol: o })),
48 n && (l = P({ invitationLink: l, messageId: n })),
49 yield e(N({ invitationLink: l, invitationPreview: t })))
5050 } catch (o) {
5151 o.code === r.AUTOBASE_IS_NOT_WRITEABLE
5252 ? yield e(g({ code: f.INVITATION_AUTOBASE_WRITABLE_ERROR }))
53 : yield c("createInvitationSaga", o)
53 : yield m("createInvitationSaga", o)
5454 }
5555}
5656export function* roomInvitationHandler({ link: o, skipParse: i = !1, setActive: n = !1 }) {
57 const I = a()
57 const y = a()
5858 let f = !1
5959 try {
6060 const {
……@@ -63,18 +63,18 @@ export function* roomInvitationHandler({ link: o, skipParse: i = !1, setActive:
6363 let a = i ? o : p(o, r)
6464 if (!a) return f
6565 f = !0
66 const c = v(o)
67 i && c && (a = y(a))
68 const { seedId: m, key: l } = yield s(I.startPairingRoom, a)
69 if (l) yield e(E({ roomId: l, messageId: c }))
66 const m = v(o)
67 i && m && (a = I(a))
68 const { seedId: c, key: l } = yield s(y.startPairingRoom, a)
69 if (l) yield e(E({ roomId: l, messageId: m }))
7070 else {
71 if (!m) throw new Error("room pairing failed: no seedId")
72 ;(yield e(R(x({ seedId: m, messageId: c }))), n && (yield e(h({ seedId: m }))))
71 if (!c) throw new Error("room pairing failed: no seedId")
72 ;(yield e(R(x({ seedId: c, messageId: m }))), n && (yield e(h({ seedId: c }))))
7373 }
7474 } catch (o) {
75 ;(yield c("roomInvitationHandler", o, { logWarn: !0 }),
75 ;(yield m("roomInvitationHandler", o, { logWarn: !0 }),
7676 o.code === r.INVALID_INVITATION_TYPE
77 ? yield e(m())
77 ? yield e(c())
7878 : yield e(T(o.code && o.message ? o.message : l)))
7979 }
8080 return f
……@@ -84,7 +84,7 @@ export function* roomPairingCancelSaga({ payload: o }) {
8484 try {
8585 ;(yield s(i.stopPairingRoom, o), yield e(R({ seedId: o, status: C.CANCELLED })))
8686 } catch (o) {
87 yield c("roomPairingCancelSaga", o)
87 yield m("roomPairingCancelSaga", o)
8888 }
8989}
9090export function* roomsPairingDataSaga({ pendingRoomChannel: e }) {
……@@ -97,7 +97,7 @@ export function* roomsPairingDataSaga({ pendingRoomChannel: e }) {
9797 a = Object.values(n).flat()
9898 for (const o of a) e.put(o)
9999 },
100 { onError: (o) => c("subscribePendingRooms", o) },
100 { onError: (o) => m("subscribePendingRooms", o) },
101101 )
102102}
103103export function* roomPairingSaga({ pendingRoomChannel: t }) {
……@@ -124,7 +124,7 @@ export function* roomPairingSaga({ pendingRoomChannel: t }) {
124124 }
125125 }
126126 } catch (o) {
127 yield c("roomPairingSaga", o)
127 yield m("roomPairingSaga", o)
128128 } finally {
129129 t?.close()
130130 }
@holepunchto/keet-store/store/room/list/room-list.reducer.js +19 -2
……@@ -1,6 +1,6 @@
11import { createSlice as o, createAction as t, createSelector as e } from "@reduxjs/toolkit"
22import { ROOM_STATE_KEY as s } from "../room.constant"
3import { ROOM_LIST_STATE_KEY as r, ROOM_FILTER_MAP_INITIAL as i } from "./room-list.constant"
3import { ROOM_LIST_STATE_KEY as r, ROOM_FILTER_MAP_INITIAL as a } from "./room-list.constant"
44export const setRoomFilterMap = t("room/set-room-filter-map")
55export const setSearchRoomIds = t("room/set-search-room-ids")
66export const ROOM_LIST_INITIAL_STATE = {
……@@ -8,7 +8,7 @@ export const ROOM_LIST_INITIAL_STATE = {
88 discoveryIds: [],
99 actualRoomIds: [],
1010 searchRoomIds: [],
11 roomFilterMap: i,
11 roomFilterMap: a,
1212 searchText: "",
1313 inView: { top: -1, bottom: -1 },
1414 isLoading: !0,
……@@ -20,6 +20,7 @@ export const ROOM_LIST_INITIAL_STATE = {
2020 total: -1,
2121 recentRoomsBufferInterval: 1e3,
2222 scrollToRoomId: null,
23 preloadOverscan: 0,
2324}
2425export const roomListSlice = o({
2526 name: r,
……@@ -47,6 +48,9 @@ export const roomListSlice = o({
4748 resetScrollToRoomId: (o) => {
4849 o.scrollToRoomId = null
4950 },
51 setRoomListPreloadOverscan: (o, { payload: t }) => {
52 o.preloadOverscan = Math.max(0, Math.floor(t))
53 },
5054 },
5155})
5256export const getRoomListState = (o) => o[s][r]
……@@ -65,10 +69,22 @@ export const getRoomListInView = (o) => getRoomListState(o).inView
6569export const getRoomListIsLoading = (o) => getRoomListState(o).isLoading
6670export const getRoomFavoriteListIsLoading = (o) => getRoomListState(o).isRoomFavoriteLoading
6771export const getRoomListIsError = (o) => getRoomListState(o).isError
72export const getRoomListPreloadOverscan = (o) => getRoomListState(o).preloadOverscan
6873export const getRoomListInViewIds = e(getRoomListInView, getRoomListActualIds, (o, t) => {
6974 const { top: e, bottom: s } = o
7075 return e < 0 || s < 0 ? [] : t.slice(e, s + 1)
7176})
77export const getRoomListInViewOverscanIds = e(
78 getRoomListActualIds,
79 getRoomListInView,
80 getRoomListPreloadOverscan,
81 (o, t, e) => {
82 const { top: s, bottom: r } = t
83 return s < 0 || r < 0 || e <= 0
84 ? []
85 : [...o.slice(Math.max(0, s - e), s), ...o.slice(r + 1, r + 1 + e)]
86 },
87)
7288export const getRoomListSearchError = (o) => getRoomListState(o).searchError
7389export const getRoomListUnreadRoomsCount = (o) => getRoomListState(o).unreadRoomsCount
7490export const getRecentRoomsBufferInterval = (o) => getRoomListState(o).recentRoomsBufferInterval
……@@ -81,6 +97,7 @@ export const {
8197 setUnreadRoomsCount: setUnreadRoomsCount,
8298 setScrollToRoomId: setScrollToRoomId,
8399 resetScrollToRoomId: resetScrollToRoomId,
100 setRoomListPreloadOverscan: setRoomListPreloadOverscan,
84101} = roomListSlice.actions
85102export const roomListInViewIdsChangeEvt = t("room-list/in-view-ids-change-evt")
86103export const roomListReducer = roomListSlice.reducer
@holepunchto/keet-store/store/room/list/room-list.saga.js +226 -172
……@@ -1,261 +1,315 @@
1import { FEATURES as e } from "@holepunchto/keet-core/features"
2import { buffers as o, channel as t } from "redux-saga"
1import { FEATURES as o } from "@holepunchto/keet-core/features"
2import { buffers as e, channel as t } from "redux-saga"
33import {
4 fork as r,
5 select as i,
4 fork as i,
5 select as r,
66 call as a,
77 put as d,
8 takeEvery as l,
9 takeLatest as n,
8 takeEvery as n,
9 takeLatest as l,
1010 take as c,
1111 delay as s,
1212 flush as y,
1313 race as m,
14 takeLeading as p,
1415} from "redux-saga/effects"
1516import { getCoreBackend as f } from "../../../backend"
16import { apiCall as u, searchRoomsApi as p } from "../../../api/core"
17import { taskErrorSaga as g } from "../../error"
18import { apiSubscribeSaga as R, forkChildren as b, apiSubscribeLatest as h } from "../../lib"
19import { normalizedIncludes as I } from "../../lib/string"
17import { apiCall as u, searchRoomsApi as g } from "../../../api/core"
18import { taskErrorSaga as R } from "../../error"
19import { apiSubscribeSaga as h, forkChildren as I, apiSubscribeLatest as b } from "../../lib"
20import { normalizedIncludes as L } from "../../lib/string"
2021import { identityFeatureGate as S, setBlockedMembers as E } from "../../identity"
2122import {
22 getChatLastMessageByRoomId as L,
23 getChatLastMessageByRoomId as A,
2324 setChatMessageLastSeen as v,
24 updateChatLastMessage as A,
25 updateChatLastMessageBlocked as D,
26 sendChatMessageSuccess as F,
27 chatSubscribeUnreadSaga as O,
25 updateChatLastMessage as D,
26 updateChatLastMessageBlocked as O,
27 sendChatMessageSuccess as U,
28 chatSubscribeUnreadSaga as F,
2829 chatUnreadSyncData as k,
2930} from "../../chat"
3031import {
31 getRoomListSearchText as x,
32 searchAllRooms as U,
33 getRoomListAllIds as C,
34 setSearchRoomIds as M,
35 getRoomListInViewIds as N,
36 setItemsInView as V,
37 roomListInViewIdsChangeEvt as T,
38 setRoomListSearchError as P,
39 setUnreadRoomsCount as _,
32 getRoomListSearchText as V,
33 searchAllRooms as M,
34 getRoomListAllIds as x,
35 setSearchRoomIds as N,
36 getRoomListInViewIds as C,
37 getRoomListInViewOverscanIds as T,
38 setItemsInView as _,
39 roomListInViewIdsChangeEvt as w,
40 setRoomListSearchError as B,
41 setUnreadRoomsCount as P,
4042 getRoomListUnreadRoomsCount as j,
41 getRoomListSearchIds as w,
42 setRoomListIsSearching as B,
43 getRoomListIsSearching as G,
44 getRecentRoomsBufferInterval as H,
45 setScrollToRoomId as W,
46 setRoomFilterMap as q,
47 getRoomFilterMap as z,
43 getRoomListSearchIds as G,
44 setRoomListIsSearching as H,
45 getRoomListIsSearching as W,
46 getRecentRoomsBufferInterval as K,
47 setScrollToRoomId as q,
48 setRoomFilterMap as z,
49 getRoomFilterMap as J,
4850} from "./room-list.reducer"
4951import {
50 setAllRooms as J,
51 updateRecentRooms as K,
52 addOrRemoveRecentRoom as Q,
53 createRoomSubmit as X,
54 setFavoriteRooms as Y,
55 toggleRoomFavoriteCmd as Z,
56 addOrRemoveFavoriteRoom as $,
52 setAllRooms as Q,
53 updateRecentRooms as X,
54 addOrRemoveRecentRoom as Y,
55 createRoomSubmit as Z,
56 setFavoriteRooms as $,
57 toggleRoomFavoriteCmd as oo,
58 addOrRemoveFavoriteRoom as eo,
59 toggleRoomIsUnreadCmd as to,
5760} from "../room.action"
58import { getRoomAllNotifications as ee, getRoomNotificationById as oe } from "../room.selector"
5961import {
60 RECENT_ROOM_UPDATE as te,
61 ROOM_PREFERENCES as re,
62 defaultRoomPreferences as ie,
62 getRoomAllNotifications as io,
63 getRoomIsUnread as ro,
64 getRoomItemById as ao,
65 getRoomNotificationById as no,
66 getRoomState as lo,
67} from "../room.selector"
68import {
69 RECENT_ROOM_UPDATE as co,
70 ROOM_PREFERENCES as so,
71 defaultRoomPreferences as yo,
6372} from "../room.constant"
6473import {
65 parseRecentRoomsAllResponse as ae,
66 parseRecentRoomsChangeResponse as de,
67 parseRecentRoomsAddRemoveResponse as le,
74 parseRecentRoomsAllResponse as mo,
75 parseRecentRoomsChangeResponse as po,
76 parseRecentRoomsAddRemoveResponse as fo,
6877} from "../room.model"
6978import {
70 getPreferencesNotificationsType as ne,
71 getPreferencesRoomListFilter as ce,
72 NOTIFICATIONS_TYPES as se,
73 PREFERENCES as ye,
74 updatePreferencesCmd as me,
79 getPreferencesNotificationsType as uo,
80 getPreferencesRoomListFilter as go,
81 NOTIFICATIONS_TYPES as Ro,
82 PREFERENCES as ho,
83 updatePreferencesCmd as Io,
7584} from "../../preferences"
76import { roomListItemUpdateSaga as fe } from "./room-list-item-update-saga"
77function* ue() {
78 const e = {}
79 yield n([M, J, K, Q, V, q, Y, $], function* () {
80 const o = yield i(N)
81 let t = !1
82 ;(Object.keys(e).forEach((r) => {
83 o.includes(r) || (delete e[r], (t = !0))
85import { roomListItemUpdateSaga as bo } from "./room-list-item-update-saga"
86import { setAppCurrentRoomId as Lo, getAppCurrentRoomId as So } from "../../app/app.reducer"
87function* Eo({ roomId: o, appVersion: e }) {
88 try {
89 const t = f(),
90 i = yield u(t.getRoomInfo, o),
91 a = yield r(ao(o))
92 if (a?.isLoaded) return
93 yield bo({
94 data: i,
95 roomId: o,
96 appVersion: e,
97 trackLastMsgUpdates: !1,
98 trackNotificationsUpdates: !1,
99 })
100 } catch (o) {
101 yield R("preloadRoomListItemSaga", o, { logOnly: !0 })
102 }
103}
104function* Ao({ appVersion: o }) {
105 const e = {},
106 t = new Map()
107 yield l([N, Q, X, Y, _, z, $, eo], function* () {
108 const a = yield r(C)
109 let n = !1
110 ;(Object.keys(e).forEach((o) => {
111 a.includes(o) || (delete e[o], (n = !0))
84112 }),
85 o
113 a
86114 .filter((o) => !e[o])
87115 .forEach((o) => {
88 ;((e[o] = !0), (t = !0))
116 ;((e[o] = !0), (n = !0))
89117 }),
90 t && (yield d(T(Object.keys(e)))))
118 n && (yield d(w(Object.keys(e)))))
119 const l = yield r(T),
120 { roomById: c } = yield r(lo)
121 for (const e of l) {
122 if (c[e]?.isLoaded) continue
123 const r = t.get(e)
124 if (r?.isRunning()) continue
125 const a = yield i(Eo, { roomId: e, appVersion: o })
126 t.set(e, a)
127 }
91128 })
92129}
93130export function* roomSearchSaga() {
94 const e = yield i(x)
95 if (e)
131 const o = yield r(V)
132 if (o)
96133 try {
97 ;(yield i(G)) || (yield d(B(!0)))
98 const o = (yield* p()).reduce((o, t) => {
99 const { title: r, roomId: i } = t
100 return (r && I(r, e) && o.push(i), o)
134 ;(yield r(W)) || (yield d(H(!0)))
135 const e = (yield* g()).reduce((e, t) => {
136 const { title: i, roomId: r } = t
137 return (i && L(i, o) && e.push(r), e)
101138 }, [])
102 yield d(M(o))
103 } catch (e) {
104 ;(yield d(P(e.message)), yield g("roomSearchAll", e, { logOnly: !0 }))
139 yield d(N(e))
140 } catch (o) {
141 ;(yield d(B(o.message)), yield R("roomSearchAll", o, { logOnly: !0 }))
105142 }
106 else (yield i(w)).length > 0 && (yield d(M([])))
143 else (yield r(G)).length > 0 && (yield d(N([])))
107144}
108export function* roomListDataSaga({ appVersion: e }) {
109 ;(yield l(E, function* ({ payload: { blockedByMemberId: e } }) {
110 yield d(D({ blockedByMemberId: e }))
145export function* roomListDataSaga({ appVersion: o }) {
146 ;(yield n(E, function* ({ payload: { blockedByMemberId: o } }) {
147 yield d(O({ blockedByMemberId: o }))
111148 }),
112 yield b(
113 T,
114 ({ payload: e }) => e,
115 function* ({ taskId: o }) {
116 ;(yield r(O, { roomId: o }),
117 yield h(
118 [f().subscribeRoomInfo, o],
149 yield I(
150 w,
151 ({ payload: o }) => o,
152 function* ({ taskId: e }) {
153 ;(yield i(F, { roomId: e }),
154 yield b(
155 [f().subscribeRoomInfo, e],
119156 function* (t) {
120 yield fe({
157 yield bo({
121158 data: t,
122 roomId: o,
123 appVersion: e,
159 roomId: e,
160 appVersion: o,
124161 trackLastMsgUpdates: !0,
125162 trackNotificationsUpdates: !0,
126163 })
127164 },
128 { onError: (e) => g("roomListItemTask", e) },
165 { onError: (o) => R("roomListItemTask", o) },
129166 ))
130167 },
131 (e) => g("roomListItem", e),
168 (o) => R("roomListItem", o),
132169 ))
133170}
134171export function* calculateAndUpdateUnreadRoomsCount() {
135172 try {
136 const e = yield i(L),
137 o = yield i(C),
138 t = yield i(ne),
139 r = yield i(j),
140 a = t !== se.NONE
141 let l = 0
173 const o = yield r(A),
174 e = yield r(x),
175 t = yield r(uo),
176 i = yield r(j),
177 a = t !== Ro.NONE
178 let n = 0
142179 if (a) {
143 const t = yield i(ee)
144 for (const r of o) {
145 if (!(yield i(oe(r)))) continue
146 const o = t[r] || ie,
147 a = e[r]
148 a?.unread && o[re.NOTIFICATIONS] && (l += 1)
180 const t = yield r(io)
181 for (const i of e) {
182 if (!(yield r(no(i)))) continue
183 const e = t[i] || yo,
184 a = o[i]
185 a?.unread && e[so.NOTIFICATIONS] && (n += 1)
149186 }
150187 }
151 if (r === l) return
152 yield d(_(l))
153 } catch (e) {
154 yield g("calculateAndUpdateUnreadRoomsCount", e)
188 if (i === n) return
189 yield d(P(n))
190 } catch (o) {
191 yield R("calculateAndUpdateUnreadRoomsCount", o)
155192 }
156193}
157export function* throttleRecentRoomChanged(e) {
194export function* throttleRecentRoomChanged(o) {
158195 try {
159 const o = yield i(H)
196 const e = yield r(K)
160197 for (;;) {
161 const t = yield c(e),
162 r = yield y(e)
163 let i = [t]
164 ;(Array.isArray(r) && (i = r.reverse().concat(t)), yield d(K(i)), yield s(o))
198 const t = yield c(o),
199 i = yield y(o)
200 let r = [t]
201 ;(Array.isArray(i) && (r = i.reverse().concat(t)), yield d(X(r)), yield s(e))
165202 }
166 } catch (e) {
167 yield g("throttleRecentRoomUpdates", e)
203 } catch (o) {
204 yield R("throttleRecentRoomUpdates", o)
168205 }
169206}
170const pe = 400
171function* ge() {
207const vo = 400
208function* Do() {
172209 for (;;) {
173 yield c(X)
174 const { response: e } = yield m({ delay: s(pe), response: c(Q) }),
175 o = e?.payload
176 o?.roomId && o.type === te.ADDED && (yield d(W(o.roomId)))
210 yield c(Z)
211 const { response: o } = yield m({ delay: s(vo), response: c(Y) }),
212 e = o?.payload
213 e?.roomId && e.type === co.ADDED && (yield d(q(e.roomId)))
177214 }
178215}
179function* Re() {
180 ;(yield r(ge),
181 yield n(F, function* ({ payload: e }) {
182 yield d(W(e.roomId))
216function* Oo() {
217 ;(yield i(Do),
218 yield l(U, function* ({ payload: o }) {
219 yield d(q(o.roomId))
183220 }))
184221}
185export function* toggleRoomFavoriteSaga({ payload: e }) {
222export function* toggleRoomFavoriteSaga({ payload: o }) {
186223 try {
187 const { roomId: o, value: t } = e,
188 r = f()
189 yield u(r.setRoomFavorite, o, t)
190 } catch (e) {
191 yield g("toggleRoomFavoriteSaga", e)
224 const { roomId: e, value: t } = o,
225 i = f()
226 yield u(i.setRoomFavorite, e, t)
227 } catch (o) {
228 yield R("toggleRoomFavoriteSaga", o)
192229 }
193230}
194function* be() {
231function* Uo({ payload: o }) {
232 try {
233 const e = yield r(ro(o)),
234 t = f()
235 yield u(t.setRoomUnread, o, !e)
236 } catch (o) {
237 yield R("toggleRoomIsUnreadSaga", o)
238 }
239}
240function* Fo() {
241 ;(yield p(to, Uo),
242 yield n([Lo, U], function* () {
243 const o = yield r(So)
244 ;(yield r(ro(o))) && (yield Uo({ payload: o }))
245 }))
246}
247function* ko() {
195248 try {
196 yield R(
249 yield h(
197250 [f().subscribeFavoriteRooms, {}],
198 function* (e) {
199 switch (e.type) {
200 case te.ALL:
201 return void (yield d(Y(ae(e))))
202 case te.CHANGED:
251 function* (o) {
252 switch (o.type) {
253 case co.ALL:
254 return void (yield d($(mo(o))))
255 case co.CHANGED:
203256 return
204 case te.ADDED:
205 case te.REMOVED:
206 return void (yield d($(le(e))))
257 case co.ADDED:
258 case co.REMOVED:
259 return void (yield d(eo(fo(o))))
207260 default:
208 yield g("subscribeRecentRooms", "invalid data", { logWarn: !0 })
261 yield R("subscribeRecentRooms", "invalid data", { logWarn: !0 })
209262 }
210263 },
211 { onError: (e) => g("subscribeFavoriteRooms", e) },
264 { onError: (o) => R("subscribeFavoriteRooms", o) },
212265 )
213 } catch (e) {
214 yield g("roomListFavoritesSub", e)
266 } catch (o) {
267 yield R("roomListFavoritesSub", o)
215268 }
216269}
217270export function* roomListFilterPreferencesSaga() {
218271 try {
219 const e = yield i(ce)
220 ;(yield d(q(e)),
221 yield n(q, function* () {
222 const e = yield i(z)
223 yield d(me(ye.ROOM_LIST_FILTER, e))
272 const o = yield r(go)
273 ;(yield d(z(o)),
274 yield l(z, function* () {
275 const o = yield r(J)
276 yield d(Io(ho.ROOM_LIST_FILTER, o))
224277 }))
225 } catch (e) {
226 yield g("roomListFilterPreferencesSaga", e)
278 } catch (o) {
279 yield R("roomListFilterPreferencesSaga", o)
227280 }
228281}
229export function* roomListSaga({ appVersion: i }) {
282export function* roomListSaga({ appVersion: r }) {
230283 try {
231 ;(yield n([U, Q], roomSearchSaga),
232 yield l([A, v, k], calculateAndUpdateUnreadRoomsCount),
233 yield r(roomListFilterPreferencesSaga),
234 yield r(ue),
235 yield r(S(e.FAVORITE_ROOMS, be)),
236 yield n(Z, toggleRoomFavoriteSaga),
237 yield r(roomListDataSaga, { appVersion: i }),
238 yield r(Re))
239 const c = yield a(t, o.expanding(20))
240 ;(yield r(throttleRecentRoomChanged, c),
241 yield R(
284 ;(yield l([M, Y], roomSearchSaga),
285 yield n([D, v, k], calculateAndUpdateUnreadRoomsCount),
286 yield i(roomListFilterPreferencesSaga),
287 yield i(Ao, { appVersion: r }),
288 yield i(S(o.FAVORITE_ROOMS, ko)),
289 yield l(oo, toggleRoomFavoriteSaga),
290 yield i(S(o.ROOM_MARK_UNREAD, Fo)),
291 yield i(roomListDataSaga, { appVersion: r }),
292 yield i(Oo))
293 const c = yield a(t, e.expanding(20))
294 ;(yield i(throttleRecentRoomChanged, c),
295 yield h(
242296 [f().subscribeRecentRooms, {}],
243 function* (e) {
244 switch (e.type) {
245 case te.ALL:
246 return void (yield d(J(ae(e))))
247 case te.CHANGED:
248 return void (yield d(c, de(e)))
249 case te.ADDED:
250 case te.REMOVED:
251 return void (yield d(Q(le(e))))
297 function* (o) {
298 switch (o.type) {
299 case co.ALL:
300 return void (yield d(Q(mo(o))))
301 case co.CHANGED:
302 return void (yield d(c, po(o)))
303 case co.ADDED:
304 case co.REMOVED:
305 return void (yield d(Y(fo(o))))
252306 default:
253 yield g("subscribeRecentRooms", "invalid data", { logWarn: !0 })
307 yield R("subscribeRecentRooms", "invalid data", { logWarn: !0 })
254308 }
255309 },
256 { onError: (e) => g("subscribeRecentRooms", e) },
310 { onError: (o) => R("subscribeRecentRooms", o) },
257311 ))
258 } catch (e) {
259 yield g("roomListSaga", e)
312 } catch (o) {
313 yield R("roomListSaga", o)
260314 }
261315}
@holepunchto/keet-store/store/room/main/room-common.saga.js +47 -48
……@@ -4,12 +4,12 @@ import {
44 takeLeading as r,
55 getContext as m,
66 put as i,
7 call as t,
8 select as d,
7 call as d,
8 select as t,
99} from "redux-saga/effects"
1010import { FEATURES as a, isFeatureSupported as n } from "@holepunchto/keet-core/features"
11import { channel as p, buffers as l } from "redux-saga"
12import { getCoreBackend as s } from "../../../backend"
11import { channel as p, buffers as s } from "redux-saga"
12import { getCoreBackend as l } from "../../../backend"
1313import { apiCall as f } from "../../../api/core"
1414import { chatSaga as y, chatFilePendingSaga as c, chatMembersBlockedHandler as I } from "../../chat"
1515import {
……@@ -33,90 +33,89 @@ import { throttleFileStatsChanged as L } from "../../media/file/saga/file.saga"
3333import { memberChangeRoleSubmit as P, myMemberRemoved as k } from "../../member/member.reducer"
3434import {
3535 setFirstTimeRoomModal as w,
36 closeFirstTimeRoomModal as K,
37 closeRoomSubmit as X,
36 closeFirstTimeRoomModal as X,
37 closeRoomSubmit as j,
3838} from "../room.action"
3939import {
40 PREFERENCES as j,
41 preferenceUpdateTask as v,
42 getPreferencesRoomIntroModalNeeded as z,
43 getPreferencesIntroModalSeenRooms as F,
40 PREFERENCES as v,
41 preferenceUpdateTask as z,
42 getPreferencesRoomIntroModalNeeded as F,
43 getPreferencesIntroModalSeenRooms as G,
4444} from "../../preferences"
45import { forwardMessageToRoomSaga as G } from "../forward-message/forward-message.saga"
46import { reportedMessagesSaga as H } from "../../reported-messages"
47import { membersReportedSaga as U } from "../../member/reported"
45import { forwardMessageToRoomSaga as H } from "../forward-message/forward-message.saga"
46import { reportedMessagesSaga as U } from "../../reported-messages"
47import { membersReportedSaga as q } from "../../member/reported"
4848export function* unindexededRoomTipSaga(o) {
4949 try {
50 const e = s(),
50 const e = l(),
5151 r = yield f(e.getTipSize, o)
5252 yield i(x(r))
5353 } catch (o) {
5454 yield E("unindexededRoomTipSaga", o)
5555 }
5656}
57function* q(o, e) {
57function* J(o, e) {
5858 const { role: r, memberId: m } = e.payload
5959 if (r === R.MODERATOR || r === R.ADMIN) {
60 const e = yield d(M(o, m))
60 const e = yield t(M(o, m))
6161 if (!e?.isMuted) return
62 const r = s()
62 const r = l()
6363 yield f(r.unmuteMember, o, m)
6464 }
6565}
66function* J(o, e) {
66function* K(o, e) {
6767 const { roomId: r } = e.payload
68 r === o && (yield i(X({ openNextRoom: !0 })))
68 r === o && (yield i(j({ openNextRoom: !0 })))
6969}
7070function* Q({ roomId: o }) {
7171 try {
72 const e = yield d(_)
73 ;(e.isOpen || e.roomId) && (yield i(K()))
74 const r = yield d(F)
72 const e = yield t(_)
73 ;(e.isOpen || e.roomId) && (yield i(X()))
74 const r = yield t(G)
7575 yield i(w({ roomId: o, isOpen: !0 }))
7676 const m = { ...r, [o]: !0 }
77 yield t(v, j.INTRO_MODAL_SEEN_ROOMS, m)
77 yield d(z, v.INTRO_MODAL_SEEN_ROOMS, m)
7878 } catch (o) {
7979 yield E("firstTimeRoomModalSaga", o)
8080 }
8181}
8282export function* commonRoomSaga(i) {
83 const { roomId: s, myMemberId: f, roomType: R, roomVersion: M, messageId: x, appVersion: _ } = i
83 const { roomId: l, myMemberId: f, roomType: R, roomVersion: M, messageId: x, appVersion: _ } = i
8484 try {
8585 const {
86 applicationKey: i,
87 config: { appProtocol: E },
86 config: { appProtocol: i },
8887 } = yield m(V),
89 w = yield t(p, l.expanding(20))
90 ;(yield o(L, w),
91 yield o(D(a.REPORTED_MSG_INDEX, H, [s, f]), s),
92 yield o(D(a.REPORTED_MEMBER_INDEX, U, [s, f]), s))
93 const K = [],
88 E = yield d(p, s.expanding(20))
89 ;(yield o(L, E),
90 yield o(D(a.REPORTED_MSG_INDEX, U, [l, f]), l),
91 yield o(D(a.REPORTED_MEMBER_INDEX, q, [l, f]), l))
92 const w = [],
9493 X = R === B.BROADCAST,
9594 j = n(M, a.CHAT_LABELS)
9695 ;(yield o(y, {
97 roomId: s,
96 roomId: l,
9897 ignoreBlocked: X,
99 filterNames: K,
98 filterNames: w,
10099 messageId: x,
101 fileStatsChannel: w,
100 fileStatsChannel: E,
102101 useLabelsFeature: j,
103102 }),
104 yield o(c, { roomId: s }))
103 yield o(c, { roomId: l }))
105104 const v = n(M, a.MUTE_MEMBER)
106 ;(yield o(h, { roomId: s, myMemberId: f }),
107 yield o(g, { roomId: s, myMemberId: f, muteMemberSupported: v }),
108 v && (yield e(P, q, s)),
109 yield r(T, S, { applicationKey: i, appProtocol: E }),
110 yield r(k, J, s),
111 yield o(N, { roomId: s, fileStatsChannel: w }),
112 yield o(O, { roomId: s, appVersion: _ }),
113 yield o(A, { roomId: s, appVersion: _ }),
105 ;(yield o(h, { roomId: l, myMemberId: f }),
106 yield o(g, { roomId: l, myMemberId: f, muteMemberSupported: v }),
107 v && (yield e(P, J, l)),
108 yield r(T, S, { appProtocol: i }),
109 yield r(k, K, l),
110 yield o(N, { roomId: l, fileStatsChannel: E }),
111 yield o(O, { roomId: l, appVersion: _ }),
112 yield o(A, { roomId: l, appVersion: _ }),
114113 yield e(C, I),
115 yield o(unindexededRoomTipSaga, s),
116 yield o(b, { roomId: s }),
117 yield o(u, { roomId: s }),
118 (yield d(z, s)) && (yield o(Q, { roomId: s })),
119 yield o(G, { appVersion: _ }))
114 yield o(unindexededRoomTipSaga, l),
115 yield o(b, { roomId: l }),
116 yield o(u, { roomId: l }),
117 (yield t(F, l)) && (yield o(Q, { roomId: l })),
118 yield o(H, { appVersion: _ }))
120119 } catch (o) {
121120 yield E("commonRoomSaga", o)
122121 }
@holepunchto/keet-store/store/room/room-discover/index.js +2 -0
……@@ -0,0 +1,2 @@
1export * from "./room-discover.constant"
2export * from "./room-discover.model"
@holepunchto/keet-store/store/room/room-discover/room-discover.constant.js +145 -0
……@@ -0,0 +1,145 @@
1import { ROOM_TYPE as e } from "../room.constant"
2export const PRODUCTION_DISCOVER = {
3 keetWelcome: {
4 discoveryId: "stzm4d1ukqku5gd4s545b938g4oaqz5apqgw7whescybwstnogcy",
5 inviteLink:
6 "pear://keet/yfo65n76jzi9girwkdqffaa6istu4n9zrc8pje6qds1qqco448fk6cnoa5uuynb7tnje58r7mtpzs1bodbk8routkfmk3fhd4czh6y8x5jsj7t69pq3iatqd8jj38bjxy318atyxy7mnwg1zk4djry47cchdaye",
7 description:
8 "A vibrant community where p2p technology enthusiasts gather to discuss their interests (Official)",
9 title: "Keet Welcome",
10 },
11 keetWelcome_ru: {
12 discoveryId: "5e738gywy3yfqnmuy4cc7ijic8ofer73665d93f3gfss76neorno",
13 inviteLink:
14 "pear://keet/nfo19kgumsfx6yebdqhfgn5na9qiw1pcxny1dmzwj1s1tsazsyr9rt1e4arujn3kwe9gc7bgm8pbeiag13c4dmapqi6zzpwaednz9o9odjcoxsupzsopqc46ceyjfses3cw1oghudtgi6x1ifdhj1yc4woosgyed346wfg1paetn1iiuafiethafntfhr",
15 description:
16 "Общественная комната для всего, что связано с Keet & Pears. Пожалуйста, соблюдайте правила сообщества.",
17 title: "Keet Добро Пожаловать",
18 locale: ["ru"],
19 },
20 keetWelcome_es: {
21 discoveryId: "a4y3u6w7p4hfg5im94skfby3x3ayza7piusgjc8pa69idqprg7go",
22 inviteLink:
23 "pear://keet/nfozhdeghdhkmq6pjnot38qehk41tfdk7ezdrzop6eg1kf8j4315eyskw9jb9xaucsh8wekg9m5z3fxcooxf9fggkd9t6d3s4nbpzwnxmaa4jg7ow54kenfw4njk8hqa1jobcfkziiu37egtkq7ge6hdw6bfryedn7xcc9njakfrjraefdt1fgtg3jgcr",
24 description:
25 "Sala comunitaria para todo lo relacionado con Keet y Pears. Por favor, sigue las reglas de uso en la sala de la comunidad. ¡Disfruta!",
26 title: "Keet Bienvenido",
27 locale: ["es"],
28 },
29 keetWelcome_it: {
30 discoveryId: "948d99ahti8h9b9mnx96txfuzff4zjnz4rwy3hc8apkkoo9bskro",
31 inviteLink:
32 "pear://keet/nfoty8ery1i6q7urd4grpb8jbwu9zs7xitorcg4yypnd3cfzwp16g7cmink6dmr6jqjaodufpojo6x7j45g15sghb1mm1zstk8frdhf97etai3cpujbgmcf7x4mk4jtjun53pohwpspkq6rb6sdgngddahd9kyedwfoz16nkakuich9pjubfj77x6jfcr",
33 description:
34 "Sala comune per tutto ciò che riguarda Keet e 'Pears'. Si prega di seguire le regole della comunità.",
35 title: "Keet Benvenuto",
36 locale: ["it"],
37 },
38 keetWelcome_zh: {
39 discoveryId: "rcf6wcm4ohuj6715kswuxucrrcag97kepw119i5sabyk5iycogxy",
40 inviteLink:
41 "pear://keet/nfo4epyx159hi9s4abcyqmqf6cx5q5nhiemdr58swhyr1o3pfh8irmetf4kczst45dg9mn5gj4546cntiqdkmn65psbyeitnkorstex3kdg1dadm18ceihpk7q7hd6wyny9oghx4aahnjjcg661yuyom7yzzayedrj5nfb6opjcggy4sj8bewtrubywqg",
42 description:
43 "社区活动室,討論包含 Keet 和“Pear”的所有內容。 请遵守社区规则。 社群活動室,討論包含 Keet 和“Pear”的所有內容。 請遵守社群規則。",
44 title: "Keet 欢迎/ 歡迎",
45 locale: ["zh", "tw"],
46 },
47 keetWelcome_hi: {
48 discoveryId: "1yfpjjc9m6yjxgtw5ykz7enr8sbesx3qmbx1emiscag5mtpujgty",
49 inviteLink:
50 "pear://keet/nfo7sh8wp69zrnumu5tur1dozpf3mdfb8f741po8bk4dtwcm6dxhgfg3ms3ex69ya79wm69ztebkgif3h5ix86kmxa8kh5i47zsgipzzc4tnjgmczkqz5dbbt8fkw17k4swbkc13hxzfuejpttq3jfca84x4qyedaxro5knjakcdmam6j8bfdkaxmjrhr",
51 title: "Keet स्वागत",
52 description:
53 "Keet और Pears से जुड़ी हर चीज़ के लिए सामुदायिक कक्ष। कृपया सामुदायिक कक्ष के उपयोग के नियमों का पालन करें। आनंद लें!",
54 locale: ["hi"],
55 },
56 keetNews: {
57 discoveryId: "cbf1e8wxueaf7mu9biqhe64hugocnn5yhrcfp8dmiize7ifczwxo",
58 inviteLink:
59 "pear://keet/yfo7j69nb4d8sqtbex7p87e5ukiq9mzyuj3rrpxbwmtrx3ba5x3ga7bdr98c1ycomg1kuo3p9zgscrqahbyo7xsgkr4x5k9rerbpjmjxp3h555imc1ug1qyinw9utwf7n5csxq91n9wuf5p5orxmpsk97youaye",
60 description:
61 "A space to get the latest updates on new app features and all things Keet. (Official)",
62 title: "Keet News",
63 roomType: e.BROADCAST,
64 },
65 Bitcoin: {
66 discoveryId: "chtggppwfrnoieasy9bgwp9hwohqr849xc5pr1h4835kqyotgjoy",
67 inviteLink:
68 "pear://keet/yfo951jprdyzmfaj9hcxtahif3j3xp31phk1scr3cbo778kr7ghpcxkinyft5cs9m74rt9dcxf71sfxidkxoa7nh6gqr334ik5itkeg3rxyc84b9p7xud81wa375i79epjm8pz63kzkcjiq8f68yumg1syferye",
69 description:
70 "A lively space where Bitcoin enthusiasts share updates, news, and insights about cryptocurrency.",
71 title: "@bitcoin 🔥",
72 roomType: e.BROADCAST,
73 },
74 pearNews: {
75 discoveryId: "cyyqe9my6fqc88upa7zr76qff6z6i3y6gi7zddrky7e3w4eq9cby",
76 inviteLink:
77 "pear://keet/nfohjh8doay54bzgtrekddbk8wjx7tb5cpi9kukesrpuztgn13z9yekihpj9xtzqdomoe3wc3wnsdhn84migxe9dwg6rod6z5ben9dryz698gh4f76xicpfw56yugzpt7wt8xyk6z6y68qrgrrhw5egyo94iwyed1bg8cnkt4etjwjskzpij5pnrw3fhr",
78 description:
79 "A space to get the latest updates and all things about the Pear runtime. (Official)",
80 title: "Pear News",
81 roomType: e.BROADCAST,
82 },
83}
84export const NIGHTLY_DISCOVER = {
85 verifiedRoom: {
86 title: "Verified room 🟢",
87 inviteLink:
88 "keet-nightly://keet/gfoufdip6xet734gz7mupg7qf74fu8kqtt5eaf4g9t37i6nw5ygfyyigjc76zzdfu75ozbiwn59aq4c4s9riojyw4bcmmz8jnjtkgwu8frkg9ftfpjcgqjps7gguqy7tzecertrf8xipj3jqrkuu5zgea495gyedpq6t5y4cae1u3349nszawtrubn1hhye",
89 discoveryId: "perf5whp59dbjrru86sjc7i84d4q45bu417w9u5buimoqteb6qyy",
90 description: "",
91 },
92 verifiedBroadcast: {
93 title: "Verified Broadcast Room 🟢",
94 inviteLink:
95 "keet-nightly://keet/gfo6z4f8xgqu3qsbkbjc4n7957yzg8zbehsbk71cw36nfzms5wzxatkfrx6on1a3gzbda67m5bogter8nunyerw5zserdhsemn3ypzdmdbt5j18qaa4m6386da9mtxkbu78rnksfpsrwc7u3zrkmywujpup4ryedwe5ogskmakcdmyf7jzbnfgtg3k6swye",
96 discoveryId: "hxtow75oft93igk63inkb1jdwnw896fx77e3c8smnuop31jgmaqy",
97 description: "",
98 roomType: e.BROADCAST,
99 },
100}
101export const INTERNAL_DISCOVER = {
102 keetSocial: {
103 discoveryId: "qfgx38i5b5no7zpsxu6gkz9jd9r3ru6bo3m7sp58kt8s7p9xw5xo",
104 title: "Keet Social 🟡",
105 description: "The fun is now mandatory.",
106 inviteLink:
107 "keet-internal://keet/gfo7gpfz6cd1n5efs1dh4otkhy7hregxk6p7pejwoagwqdisosrqqsu9rimhzp98z7ubnaoa41y6eizqgn9kwfth4x1sc3bx8jkw5iogz7fdjc6wb7pw7hmnj73ngpr37p3tqhaw9hfzbf9zoxxuq6id41dmqyedmbtogi1jakcdmyf7yuud7wsgqcokgyo",
108 },
109 bugReports: {
110 discoveryId: "peeqc9ucg8adxo4ctbt1kq734xzq494o74gk5jdydwqbdaxmieco",
111 title: "Internal Bug Reports 🟡",
112 description:
113 "Room for reporting bugs on the internal Keet build only. Keep this room on topic please",
114 inviteLink:
115 "keet-internal://keet/gfoifsxtf7d1nb5xstg75z63iixx7e5mb4jioja9ntjio9f4tb86yo7ce54gukzfa1nxen1tkdonr8c6u3s8nree73p8xg3xqgcwabw1s6poq4on4gfi8ty5kw8c73xuhqy7gykaf6j6b55kdsdbc6srr4zowyedw7th3rkpambq1z6wjmbehzk4qfrhryo",
116 },
117 ama: {
118 discoveryId: "nk3p9u3nkx34hg3rd8b7a1hazzj4baegzyir13krkuk4xjjaaoqo",
119 title: "AMA 🟡",
120 inviteLink:
121 "keet-internal://keet/gfoiogcrsf95tefhbztzgw7gqyb91symbiny5d37x7e97yb4jokfascdnbxie6ttcq9pn8wsaaosxkmjqjsfyhs9t1obfgiqepnzadobh7ugqgtmrc6rhk3thrnegu37y7ftz71rtcsjc6ydnb66pciju8ndryedz1ubafdjicno181gj8bd7wsgqcmqeyo",
122 description: "",
123 },
124 keetDesktop: {
125 discoveryId: "mg4764rrzkankuonfx1p4petr65y4babw9m6dnax67f73mcbucsy",
126 title: "Keet Desktop 🟡",
127 inviteLink:
128 "keet-internal://keet/gfoupze7ex9s17cx1qb9wh44soshteqrfqyy6siwjkq5wgrjycddof65djqzhxr6gnfaczzb6hecoqqc9x418thjmerbzxuxgw43y4ufw9781yi4ks4ek9t5c5qip5spkkqagem18sh3kj8u33de6fdc979ucyed4rubhkeo36rghgkmjxbnrz9f83rhryo",
129 description: "",
130 },
131 keetMobile: {
132 discoveryId: "otiht3hkefkq9ekwmumpyk5otzkyghxnckh8e9zree4sqiyibn5y",
133 title: "Mobile 🟡",
134 inviteLink:
135 "keet-internal://keet/gfo995inofbz9kx46c5p5zoa77xud3ac6wt1jr5ydjfa54pfpkicrrztprqascu5jwabtff9m9p6uu1th9sc3kne1y5njo895m3nms6k55x7ksgp9m9z38yoxfo6kog483qqbkizyy4hc6z3ftoezqajwct3syedejx87tnkaetd6euuz7ijpn8pum6hayo",
136 description: "",
137 },
138 internalRoomsList: {
139 discoveryId: "sog44ojmo6ukscy11sp46zswan8dsbkzruibz37ei5ts38m9h7yy",
140 title: "Internal Rooms List 🟡",
141 inviteLink:
142 "keet-internal://keet/gfo37cxwigc3w3341o1x9j1h5akhy5jcinq4g567ta59qkq7t316647ifwyy8cf69p1yo19xif9ke9fpwpwcfu5tuug7ghxeo4c66hwan6mtjx79qnojganf8kfxcdqwznhsr6ibzg6qxjpdioggx5wxp5hekyedijyc6qkn4me1cgyrjubjopx6q7fhryo",
143 description: "",
144 },
145}
@holepunchto/keet-store/store/room/room-discover/room-discover.model.js +19 -0
……@@ -0,0 +1,19 @@
1import { ROOM_TYPE as e } from "../room.constant"
2export const createDiscoverRooms = (o, r, t = (e) => e) =>
3 Object.keys(o).reduce(
4 (c, s) => ((c[s] = t({ roomType: e.ROOM, avatarUrl: "", ...o[s], ...r[s] })), c),
5 {},
6 )
7export const filterDiscoverRooms = (e, o) => {
8 const { locale: r, excludeDiscoveryIds: t } = o,
9 c = new Set(t)
10 return Object.keys(e).reduce((o, t) => {
11 const s = e[t]
12 return (
13 c.has(s.discoveryId) ||
14 (r && s.locale?.length && !s.locale.some((e) => r.startsWith(e))) ||
15 (o[t] = s),
16 o
17 )
18 }, {})
19}
@holepunchto/keet-store/store/room/room.action.js +1 -0
……@@ -23,6 +23,7 @@ export const createRoomSubmit = o("room/create-submit")
2323export const toggleRoomNotifications = o("room/toggle-notifications")
2424export const roomNewActivity = o("room/new-activity")
2525export const toggleRoomMembershipEvents = o("room/toggle-membership-events")
26export const toggleRoomIsUnreadCmd = o("room/toggle-room-unread")
2627export const roomSetRepairingStatus = o("room/set-repairing-status")
2728export const repairRoom = o("room/room-repairing-status")
2829export const roomSetMoveIndexerStatus = o("room/set-move-indexer-status")
@holepunchto/keet-store/store/room/room.constant.js +1 -0
……@@ -20,6 +20,7 @@ export const ROOM_INVITE_CONFIG_DEFAULT = {
2020 canIndex: !1,
2121 expiration: INVITE_EXPIRATION.DAYS,
2222 reusable: !0,
23 readOnly: !1,
2324}
2425export const ROOM_PREFERENCES = { NOTIFICATIONS: "notifications" }
2526export const defaultRoomPreferences = { [ROOM_PREFERENCES.NOTIFICATIONS]: !0 }
@holepunchto/keet-store/store/room/room.model.js +42 -41
……@@ -1,26 +1,26 @@
11import {
22 DEFAULT_ROOM_TITLE as e,
33 ROOM_TYPE as o,
4 ROOM_DESCRIPTION_MAX_LENGTH as t,
5 RECENT_ROOM_UPDATE as s,
4 ROOM_DESCRIPTION_MAX_LENGTH as s,
5 RECENT_ROOM_UPDATE as t,
66} from "./room.constant"
7import { calcAvatarColor as i } from "../lib/color"
7import { calcAvatarColorById as i } from "../lib/color"
88import { getAvatarUrl as r, getAvatarUrlMedium as a } from "../identity"
9export const isDmPeerHasLeft = ({ dmMemberId: e, memberCount: t, roomType: s }) =>
10 s === o.DM && !!e && 1 === t
9export const isDmPeerHasLeft = ({ dmMemberId: e, memberCount: s, roomType: t }) =>
10 t === o.DM && !!e && 1 === s
1111export const parseRecentRoomsAllResponse = (e) => ({
1212 total: e.rooms?.length ?? 0,
1313 rooms: e.rooms.map((e) => ({ roomId: e.roomId ?? "", timestamp: e.timestamp ?? 0 })),
1414})
1515export const parseRecentRoomsChangeResponse = (e) => ({
16 type: s.CHANGED,
16 type: t.CHANGED,
1717 timestamp: e.timestamp ?? 0,
1818 roomId: e.roomId || "",
1919})
2020export const parseRecentRoomsAddRemoveResponse = (e) => {
2121 switch (e.type) {
22 case s.ADDED:
23 case s.REMOVED:
22 case t.ADDED:
23 case t.REMOVED:
2424 return { type: e.type, timestamp: e.timestamp ?? 0, roomId: e.roomId || "" }
2525 default:
2626 return null
……@@ -32,58 +32,58 @@ export const parseRoomConfigIdsResponse = (e) => ({
3232 discoveryId: e.discoveryId ?? "",
3333 isReadOnly: !e.self?.deviceId,
3434})
35export const parseRoomConfigResponse = (t) => {
36 const s = t.roomType === o.DM ? "" : e,
37 n = "string" != typeof t.canCall || "true" === t.canCall
35export const parseRoomConfigResponse = (s, t) => {
36 const n = s.roomType === o.DM ? "" : e,
37 m = "string" != typeof s.canCall || "true" === s.canCall
3838 return {
39 title: t.title ?? s,
40 description: t.description ?? "",
41 roomType: t.roomType ?? o.ROOM,
42 avatarUrl: r(t.avatar),
43 avatarUrlMedium: a(t.avatar),
44 avatarColor: i(t.title ?? s),
45 canCall: n,
46 isMembershipEventsDisabled: t.isMembershipEventsDisabled || !1,
39 title: s.title ?? n,
40 description: s.description ?? "",
41 roomType: s.roomType ?? o.ROOM,
42 avatarUrl: r(s.avatar),
43 avatarUrlMedium: a(s.avatar),
44 avatarColor: i(t),
45 canCall: m,
46 isMembershipEventsDisabled: s.isMembershipEventsDisabled || !1,
4747 }
4848}
49export const parseRoomVersionResponse = (e, o) => (t) => ({
49export const parseRoomVersionResponse = (e, o) => (s) => ({
5050 roomId: e,
51 isCompatible: o >= t?.version,
52 version: t?.version,
53 experimental: t?.experimental,
54 latest: o === t?.version,
51 isCompatible: o >= s?.version,
52 version: s?.version,
53 experimental: s?.experimental,
54 latest: o === s?.version,
5555})
56export const parseRoomVersionFromInfoResponse = (e, o) => (t) => ({
56export const parseRoomVersionFromInfoResponse = (e, o) => (s) => ({
5757 roomId: e,
58 isCompatible: o >= t.digest.abi.version,
59 version: t.digest.abi.version ?? 0,
60 experimental: !!t.digest.settings.isExperimental,
58 isCompatible: o >= s.digest.abi.version,
59 version: s.digest.abi.version ?? 0,
60 experimental: !!s.digest.settings.isExperimental,
6161})
6262export const parseRoomInfoResponse = (e, o) => {
6363 const {
64 title: t,
65 description: s,
64 title: s,
65 description: t,
6666 roomType: i,
6767 avatarUrl: r,
6868 avatarUrlMedium: a,
6969 avatarColor: n,
7070 canCall: m,
71 isMembershipEventsDisabled: p,
72 } = parseRoomConfigResponse(e.config),
73 { dmMemberId: d, discoveryId: l, isReadOnly: c } = parseRoomConfigIdsResponse(e)
71 isMembershipEventsDisabled: d,
72 } = parseRoomConfigResponse(e.config, e.roomId),
73 { dmMemberId: p, discoveryId: l, isReadOnly: c } = parseRoomConfigIdsResponse(e)
7474 return {
7575 roomId: e.roomId ?? "",
76 dmMemberId: d,
76 dmMemberId: p,
7777 discoveryId: l,
7878 isReadOnly: c,
79 title: t,
80 description: s,
79 title: s,
80 description: t,
8181 roomType: i,
8282 avatarUrl: r,
8383 avatarUrlMedium: a,
8484 avatarColor: n,
8585 canCall: m,
86 isMembershipEventsDisabled: p,
86 isMembershipEventsDisabled: d,
8787 isAttachmentsDisabled: !!e.digest.settings.isAttachmentsDisabled,
8888 isLinksDisabled: !!e.digest.settings.isLinksDisabled,
8989 isCompatible: o >= e.digest.abi.version,
……@@ -96,20 +96,21 @@ export const parseRoomInfoResponse = (e, o) => {
9696 fileTotalSize: e.fileStats?.total,
9797 activeCallId: e.activeCall?.callId || "",
9898 isVerified: e.isVerified,
99 isUnread: e.preferences?.status?.isUnread ?? !1,
99100 }
100101}
101102export const createRoomInitialConfig = (
102103 e,
103 { description: t = "", roomType: s = o.ROOM, canCall: i = "true" } = {},
104) => ({ title: e, description: t, roomType: s, canCall: i })
104 { description: s = "", roomType: t = o.ROOM, canCall: i = "true" } = {},
105) => ({ title: e, description: s, roomType: t, canCall: i })
105106export const getRoomConfigChanges = (e, o) =>
106107 e
107108 ? Object.keys(o).reduce(
108 (t, s) => (e[s] !== o[s] && "avatar" !== s && void 0 !== o[s] && (t[s] = o[s]), t),
109 (s, t) => (e[t] !== o[t] && "avatar" !== t && void 0 !== o[t] && (s[t] = o[t]), s),
109110 {},
110111 )
111112 : o
112export const sanitizeRoomDescription = (e) => (e ? e.trim().slice(0, t) : "")
113export const sanitizeRoomDescription = (e) => (e ? e.trim().slice(0, s) : "")
113114export const sanitizeRoomOpts = (e) => ({
114115 ...e,
115116 description: sanitizeRoomDescription(e.description),
@holepunchto/keet-store/store/room/room.reducer.js +93 -91
……@@ -8,104 +8,93 @@ import {
88import {
99 ROOM_MAIN_STATE_KEY as m,
1010 roomMainSlice as d,
11 ROOM_MAIN_INITIAL_STATE as a,
11 ROOM_MAIN_INITIAL_STATE as i,
1212} from "./main/room-main.reducer"
1313import {
14 ROOM_JOINT_STATE_KEY as i,
14 ROOM_JOINT_STATE_KEY as a,
1515 roomJointSlice as l,
1616 ROOM_JOINT_INITIAL_STATE as n,
1717} from "./joint/room-joint.reducer"
18import { ROOM_FILTER as c, ROOM_LIST_STATE_KEY as I } from "./list/room-list.constant"
18import { ROOM_FILTER as y, ROOM_LIST_STATE_KEY as I } from "./list/room-list.constant"
1919import {
20 ROOM_LIST_INITIAL_STATE as y,
20 ROOM_LIST_INITIAL_STATE as c,
2121 roomListSlice as p,
22 setRoomFilterMap as u,
23 setSearchRoomIds as B,
22 searchAllRooms as u,
23 setRoomFilterMap as B,
24 setSearchRoomIds as f,
2425} from "./list/room-list.reducer"
25import { ROOM_DM_INITIAL_STATE as f, roomDmSlice as R } from "./dm/room-dm.reducer"
26import { ROOM_DM_STATE_KEY as g } from "./dm/room-dm.constant"
26import { ROOM_DM_INITIAL_STATE as R, roomDmSlice as g } from "./dm/room-dm.reducer"
27import { ROOM_DM_STATE_KEY as h } from "./dm/room-dm.constant"
2728import {
28 setAllRooms as h,
29 setMainRoom as v,
29 setAllRooms as v,
30 setMainRoom as b,
3031 setRoomMyCapabilities as A,
31 setRoomVersion as b,
32 setRoomInfo as D,
33 setNotifications as T,
34 setRoomStats as w,
35 unlockDebug as M,
36 setCreatedRoomMeta as E,
37 roomSetRepairingStatus as C,
38 roomSetMoveIndexerStatus as L,
39 updateRecentRooms as x,
40 addOrRemoveRecentRoom as S,
41 setRoomDiscoveryKey as j,
42 setRoomShowWarning as k,
43 setFavoriteRooms as F,
44 addOrRemoveFavoriteRoom as O,
32 setRoomVersion as D,
33 setRoomInfo as T,
34 setNotifications as w,
35 setRoomStats as M,
36 unlockDebug as E,
37 setCreatedRoomMeta as C,
38 roomSetRepairingStatus as L,
39 roomSetMoveIndexerStatus as S,
40 updateRecentRooms as j,
41 addOrRemoveRecentRoom as k,
42 setRoomDiscoveryKey as x,
43 setRoomShowWarning as F,
44 setFavoriteRooms as O,
45 addOrRemoveFavoriteRoom as N,
4546} from "./room.action"
46import { getRecentRoomItemChanged as N, isDmPeerHasLeft as _ } from "./room.model"
47import { arrayEqual as K, getChanged as V } from "../lib/array"
48import { myMemberRemoved as W } from "../member"
47import { getRecentRoomItemChanged as _, isDmPeerHasLeft as K } from "./room.model"
48import { arrayEqual as V, getChanged as W } from "../lib/array"
49import { myMemberRemoved as q } from "../member"
4950import {
50 FORWARD_MESSAGE_INITIAL_STATE as q,
51 FORWARD_MESSAGE_STATE_KEY as z,
52 forwardMessageReducer as G,
51 FORWARD_MESSAGE_INITIAL_STATE as z,
52 FORWARD_MESSAGE_STATE_KEY as G,
53 forwardMessageReducer as H,
5354} from "./forward-message"
5455import {
55 SHARE_MESSAGE_IN_MESSAGE_INITIAL_STATE as H,
56 SHARE_MESSAGE_IN_STATE_KEY as J,
57 shareMessageInReducer as P,
56 SHARE_MESSAGE_IN_MESSAGE_INITIAL_STATE as J,
57 SHARE_MESSAGE_IN_STATE_KEY as P,
58 shareMessageInReducer as Q,
5859} from "./share-message"
59import { updateRoomFilterMap as Q } from "./list/room-list.model"
60export const calcActualRoomIds = (o) => {
61 const {
62 list: { searchText: r, searchRoomIds: t, allRoomIds: e, roomFilterMap: s },
63 favoriteByRoomId: m,
64 } = o
65 let d = r ? t : e
66 return (s[c.FAVORITES] && (d = d.filter((o) => m[o])), d)
67}
68export const updateActualRoomIds = (o) => {
69 const r = calcActualRoomIds(o)
70 return K(r, o.list.actualRoomIds) ? o : { ...o, list: { ...o.list, actualRoomIds: r } }
71}
72const U = (o) =>
60import { updateRoomFilterMap as U } from "./list/room-list.model"
61const X = (o) =>
7362 Object.values(o)
7463 .sort((o, r) => r.timestamp - o.timestamp)
7564 .map((o) => o.roomId),
76 X = { isDebugging: !1, debugClicks: e, showWarning: !1 }
65 Y = { isDebugging: !1, debugClicks: e, showWarning: !1 }
7766export const INITIAL_STATE = {
7867 stats: {},
7968 favoriteByRoomId: {},
8069 roomById: {},
8170 roomDiscoveryKeyById: {},
8271 notificationsById: {},
83 [m]: a,
84 [i]: n,
85 [I]: y,
86 [g]: f,
87 [z]: q,
88 [J]: H,
72 [m]: i,
73 [a]: n,
74 [I]: c,
75 [h]: R,
76 [G]: z,
77 [P]: J,
8978}
9079export const roomCommonReducer = (r = INITIAL_STATE, m) => {
9180 switch (m.type) {
92 case w.type: {
81 case M.type: {
9382 const { roomId: o, stats: t } = m.payload
9483 return { ...r, stats: { ...t, roomId: o } }
9584 }
96 case v.type: {
85 case b.type: {
9786 const { roomId: o } = m.payload
9887 let { joint: e } = r
9988 return (
10089 o && (e = { ...e, pairing: { ...e.pairing, activeSeedId: t } }),
101 { ...r, main: { ...a, roomId: o }, joint: e }
90 { ...r, main: { ...i, roomId: o }, joint: e }
10291 )
10392 }
104 case B.type: {
93 case f.type: {
10594 const { payload: o } = m
10695 return { ...r, list: { ...r.list, isSearching: !1, searchRoomIds: o } }
10796 }
108 case h.type: {
97 case v.type: {
10998 const { total: o, rooms: t } = m.payload
11099 let e = r
111100 if (
……@@ -114,16 +103,16 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
114103 0 === t.length && 0 === r.list.allRoomIds.length)
115104 )
116105 return e
117 const s = V(
106 const s = W(
118107 r.list.allRoomIds,
119108 t.map((o) => o.roomId),
120109 ),
121110 d = t.reduce((o, r) => {
122111 const { roomId: t } = r,
123 s = N(e.roomById[t], r)
112 s = _(e.roomById[t], r)
124113 if (s) {
125114 const r = o || {}
126 return ((r[s.roomId] = { ...(e.roomById[t] || X), ...s }), r)
115 return ((r[s.roomId] = { ...(e.roomById[t] || Y), ...s }), r)
127116 }
128117 return o
129118 }, null)
……@@ -133,12 +122,12 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
133122 e
134123 )
135124 }
136 case F.type: {
125 case O.type: {
137126 const o = {}
138127 for (const { roomId: r } of m.payload.rooms) o[r] = !0
139128 return { ...r, favoriteByRoomId: o, list: { ...r.list, isRoomFavoriteLoading: !1 } }
140129 }
141 case O.type: {
130 case N.type: {
142131 const o = { ...r.favoriteByRoomId },
143132 { type: t, roomId: e } = m.payload
144133 return (
……@@ -146,13 +135,13 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
146135 { ...r, favoriteByRoomId: o, list: { ...r.list, isRoomFavoriteLoading: !1 } }
147136 )
148137 }
149 case S.type: {
138 case k.type: {
150139 const { type: o, roomId: t, timestamp: e } = m.payload
151140 switch (o) {
152141 case s.ADDED: {
153142 if (r.roomById[t] && r.list.allRoomIds.includes(t)) return r
154 const o = { ...r.roomById, [t]: { ...X, ...r.roomById[t], roomId: t, timestamp: e } },
155 s = U(o)
143 const o = { ...r.roomById, [t]: { ...Y, ...r.roomById[t], roomId: t, timestamp: e } },
144 s = X(o)
156145 return { ...r, roomById: o, list: { ...r.list, allRoomIds: s } }
157146 }
158147 case s.REMOVED: {
……@@ -179,7 +168,7 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
179168 return r
180169 }
181170 }
182 case W.type: {
171 case q.type: {
183172 const { roomId: o } = m.payload
184173 if (!r.roomById[o]) return r
185174 const t = { ...r.roomById }
……@@ -200,7 +189,7 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
200189 }
201190 )
202191 }
203 case x.type: {
192 case j.type: {
204193 const o = m.payload
205194 if (!Array.isArray(o) || !o.length) return r
206195 const t = {}
……@@ -208,8 +197,8 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
208197 for (let s = 0; s < o.length; s += 1) {
209198 const { roomId: m, timestamp: d } = o[s]
210199 if (t[m]) continue
211 const a = r.roomById[m]
212 a && d && a.timestamp !== d && ((t[m] = { ...a, timestamp: d }), (e = !0))
200 const i = r.roomById[m]
201 i && d && i.timestamp !== d && ((t[m] = { ...i, timestamp: d }), (e = !0))
213202 }
214203 if (!e) return r
215204 let s = !1
……@@ -219,13 +208,13 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
219208 }
220209 const d = { ...r.roomById, ...t }
221210 if (s) return { ...r, roomById: d }
222 const a = U(d)
223 return { ...r, roomById: d, list: { ...r.list, allRoomIds: a } }
211 const i = X(d)
212 return { ...r, roomById: d, list: { ...r.list, allRoomIds: i } }
224213 }
225 case D.type: {
214 case T.type: {
226215 const o = m.payload,
227 t = { ...(r.roomById[o.roomId] || X), ...o }
228 t.isReadOnly = t.isReadOnly || _(t)
216 t = { ...(r.roomById[o.roomId] || Y), ...o, isLoaded: !0 }
217 t.isReadOnly = t.isReadOnly || K(t)
229218 let e = r.list
230219 return (
231220 t.discoveryId &&
……@@ -234,7 +223,7 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
234223 { ...r, roomById: { ...r.roomById, [o.roomId]: t }, list: e }
235224 )
236225 }
237 case k.type: {
226 case F.type: {
238227 const { roomId: o, showWarning: t } = m.payload,
239228 e = r.roomById[o]
240229 return e ? { ...r, roomById: { ...r.roomById, [o]: { ...e, showWarning: t } } } : r
……@@ -243,15 +232,15 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
243232 const { roomId: o, myCapabilites: t } = m.payload
244233 return { ...r, roomById: { ...r.roomById, [o]: { ...r.roomById[o], myCapabilites: t } } }
245234 }
246 case b.type: {
235 case D.type: {
247236 const { roomId: o, ...t } = m.payload || {}
248237 return o ? { ...r, roomById: { ...r.roomById, [o]: { ...r.roomById[o], ...t } } } : r
249238 }
250 case T.type: {
239 case w.type: {
251240 const o = m.payload
252241 return { ...r, notificationsById: { ...r.notificationsById, ...o } }
253242 }
254 case M.type: {
243 case E.type: {
255244 const o = m.payload,
256245 t = r.roomById[o]
257246 if (!t || t.isDebugging || "number" != typeof t.debugClicks) return r
……@@ -260,42 +249,55 @@ export const roomCommonReducer = (r = INITIAL_STATE, m) => {
260249 ? { ...r, roomById: { ...r.roomById, [o]: { ...t, debugClicks: s - 1 } } }
261250 : { ...r, roomById: { ...r.roomById, [o]: { ...t, debugClicks: 0, isDebugging: !0 } } }
262251 }
263 case E.type: {
252 case C.type: {
264253 const { roomId: o, title: t } = m.payload
265254 return o && t ? { ...r, roomById: { ...r.roomById, [o]: { ...r.roomById[o], title: t } } } : r
266255 }
267 case C.type: {
256 case L.type: {
268257 const { roomId: o, status: t } = m.payload
269258 return { ...r, roomById: { ...r.roomById, [o]: { ...r.roomById[o], isRepairing: t } } }
270259 }
271 case L.type: {
260 case S.type: {
272261 const { roomId: o, status: t } = m.payload
273262 return { ...r, roomById: { ...r.roomById, [o]: { ...r.roomById[o], isMovingIndexer: t } } }
274263 }
275264 case o.type:
276265 return INITIAL_STATE
277 case j.type: {
266 case x.type: {
278267 const { roomId: o, key: t } = m.payload
279268 return { ...r, roomDiscoveryKeyById: { ...r.roomDiscoveryKeyById, [o]: t } }
280269 }
281 case u.type: {
270 case B.type: {
282271 const { payload: o } = m,
283 t = Q(r.list.roomFilterMap, o)
272 t = U(r.list.roomFilterMap, o)
284273 return { ...r, list: { ...r.list, roomFilterMap: t } }
285274 }
286275 default:
287276 return r
288277 }
289278}
279const Z = new Set([j.type, k.type, v.type, O.type, N.type, u.type, f.type, B.type])
280export const actualRoomIdsReducer = (o, r) => {
281 if (!Z.has(r.type)) return o
282 const {
283 list: { searchText: t, searchRoomIds: e, allRoomIds: s, roomFilterMap: m },
284 favoriteByRoomId: d,
285 } = o
286 let i = t ? e : s
287 return (
288 m[y.FAVORITES] && (i = i.filter((o) => d[o])),
289 V(o.list.actualRoomIds, i) ? o : { ...o, list: { ...o.list, actualRoomIds: i } }
290 )
291}
290292export const roomReducer = (o = INITIAL_STATE, t) => {
291293 const e = {
292294 [m]: d.reducer(o[m], t),
293 [i]: l.reducer(o[i], t),
295 [a]: l.reducer(o[a], t),
294296 [I]: p.reducer(o[I], t),
295 [g]: R.reducer(o[g], t),
296 [z]: G(o[z], t),
297 [J]: P(o[J], t),
297 [h]: g.reducer(o[h], t),
298 [G]: H(o[G], t),
299 [P]: Q(o[P], t),
298300 }
299301 let s = r(o, e) ? { ...o, ...e } : o
300 return ((s = roomCommonReducer(s, t)), s !== o && (s = updateActualRoomIds(s)), s)
302 return ((s = roomCommonReducer(s, t)), (s = actualRoomIdsReducer(s, t)), s)
301303}
@holepunchto/keet-store/store/room/room.saga.js +7 -9
……@@ -35,9 +35,9 @@ import {
3535} from "./main"
3636import {
3737 switchRoomSubmit as N,
38 setMainRoom as F,
39 closeRoomSubmit as O,
40 setNotifications as w,
38 setMainRoom as w,
39 closeRoomSubmit as F,
40 setNotifications as O,
4141 toggleRoomNotifications as B,
4242 setCreatedRoomMeta as G,
4343 repairRoom as L,
……@@ -61,7 +61,7 @@ export function* roomToggleNotificationsHandler({ payload: { roomId: e } }) {
6161 const o = !(yield i(K(e))),
6262 t = y()
6363 ;(yield p(t.updateRoomPreferences, e, c.IS_FULLY_MUTED, !o),
64 yield r(w({ [e]: { notifications: o } })))
64 yield r(O({ [e]: { notifications: o } })))
6565}
6666export function* roomToggleMembershipEventsHandler({ payload: e }) {
6767 try {
……@@ -96,11 +96,11 @@ export function* roomGetStartStateData(o) {
9696export function* activeRoomSaga({ roomId: e, messageId: o, appVersion: n }) {
9797 const d = y()
9898 try {
99 if ((yield r(F({ roomId: e })), !e)) return
99 if ((yield r(w({ roomId: e })), !e)) return
100100 yield g([d.subscribeActivateRoom, e], () => {}, {
101101 onError: (e) => x("subscribeActivateRoom", e),
102102 onCleanup: ({ apiClose: e }) => {
103 if (e) return r(O({ openNextRoom: !0 }))
103 if (e) return r(F({ openNextRoom: !0 }))
104104 },
105105 })
106106 const [m, a] = yield roomGetStartStateData(e),
……@@ -158,9 +158,7 @@ function* ee({ payload: { roomId: e } }) {
158158 h({ title: "Move Indexer", message: "Could not find any device indexing" }),
159159 ))
160160 if (m.id === d)
161 return void (yield r(
162 b({ title: "Move Indexer", message: "The current device is already indexing" }),
163 ))
161 return void (yield r(b({ title: "Move Indexer", message: "This device is now the indexer" })))
164162 ;(yield p(o.moveIndexer, e, d, m.id),
165163 yield r(b({ title: "Move Indexer", message: "Indexer moved to this device" })))
166164 } catch (e) {
@holepunchto/keet-store/store/room/room.selector.js +8 -4
……@@ -15,8 +15,8 @@ import {
1515import { getRoomMainId as R } from "./main/room-main.reducer"
1616import { getRoomPairingCount as c } from "./joint/room-joint.reducer"
1717import { getRoomListAllIds as d } from "./list/room-list.reducer"
18import { getChatMessageById as p, getChatMyMessageNotSeenByPeer as l } from "../chat/list-view"
19import { getChatLastMessage as y } from "../chat/last-message"
18import { getChatMessageById as p, getChatMyMessageNotSeenByPeer as y } from "../chat/list-view"
19import { getChatLastMessage as l } from "../chat/last-message"
2020import { getMemberBlocked as x } from "../identity"
2121export const getRoomState = (o) => o[n]
2222export const getRoomItemById = (o) => (t) => getRoomState(t).roomById[o]
……@@ -68,6 +68,10 @@ export const getRoomNotificationById = (o) => (t) => {
6868 const e = getRoomState(t).notificationsById?.[o]
6969 return e?.[g.NOTIFICATIONS] ?? i[g.NOTIFICATIONS]
7070}
71export const getRoomIsUnread = (o) => (t) => {
72 const e = getRoomItemById(o)
73 return e?.(t)?.isUnread ?? !1
74}
7175export const getIsRoomDm = (t) => o(getRoomItemById(t), (o) => o?.roomType === I.DM)
7276export const canCurrentMemberManageRoles = (o) => {
7377 const m = R(o),
……@@ -87,7 +91,7 @@ export const getIsChatMessageSent = (o) => (t) => {
8791export const getLastMessageDeliveryStatus = (o) => {
8892 const t = getRoomIsDm(o)
8993 return (e) => {
90 const { peerNotSeen: m, message: r } = y(e, o)
94 const { peerNotSeen: m, message: r } = l(e, o)
9195 if (!r?.local || r.event) return a.NONE
9296 const s = t(e)
9397 if (!m && s) return a.READ
……@@ -96,7 +100,7 @@ export const getLastMessageDeliveryStatus = (o) => {
96100 }
97101}
98102export const getChatMessageDeliveryStatus = (o) => {
99 const t = l(o),
103 const t = y(o),
100104 e = getIsChatMessageSent(o)
101105 return (m) => {
102106 const r = p(m, o)?.local
@holepunchto/keet-store/store/ui-desktop/ui-room-info.saga.js +47 -60
……@@ -1,83 +1,70 @@
11import {
2 select as i,
3 put as e,
2 select as e,
3 put as i,
44 takeLatest as o,
55 takeLeading as t,
6 call as n,
6 call as d,
77} from "redux-saga/effects"
8import { memberRemoveSuccess as c } from "../member"
9import { UI_PANEL as r, ROOM_INFO_SECTION as d } from "./ui.constants"
8import { memberRemoveSuccess as l } from "../member"
9import { UI_PANEL as n, ROOM_INFO_SECTION as r } from "./ui.constants"
1010import {
11 setRoomInfoSectionsStack as l,
12 closeUIPanel as s,
11 setRoomInfoSectionsStack as y,
12 closeUIPanel as c,
1313 toggleUIPanel as m,
14 uiRoomInfoGoBackCmd as y,
14 uiRoomInfoGoBackCmd as s,
1515 ROOM_INFO_SECTION_STACK_DEFAULT as a,
1616 getRoomInfoCurrentSectionData as f,
1717 ROOM_INFO_SECTION_ROOT as u,
1818 getRoomInfoSectionsStack as p,
1919 uiRoomInfoGoToCmd as E,
2020 getUIPanelRoomInfoOpen as M,
21 resetUIPanels as R,
22 uiRoomInfoGoToMemberCmd as I,
21 resetUIPanels as I,
22 uiRoomInfoGoToMemberCmd as O,
2323} from "./ui.reducer"
24import { getAppCurrentRoomId as O, setAppCurrentRoomId as S } from "../app/app.reducer"
25import { canCurrentMemberManageRoles as P, roomFilesInitialFetchSaga as _ } from "../room"
26import { last as b } from "../lib/array"
27const {
28 ROOT: B,
29 FILES: N,
30 DM_REQUEST_MEMBER: g,
31 MANAGE_MEMBER: F,
32 MEMBER: h,
33 MEMBERS_PERMISSIONS: v,
34} = d
24import { getAppCurrentRoomId as R, setAppCurrentRoomId as _ } from "../app/app.reducer"
25import {
26 canCurrentMemberManageRoles as b,
27 roomFilesInitialFetchSaga as S,
28 switchRoomSubmit as g,
29} from "../room"
30import { last as B } from "../lib/array"
31const { ROOT: F, FILES: N, DM_REQUEST_MEMBER: h, MANAGE_MEMBER: v, MEMBER: x } = r
3532export function* uiRoomInfoSectionSaga() {
36 ;(yield o(S, function* () {
37 ;(yield i(M)) && (yield e(s(r.ROOM_INFO)))
33 ;(yield o(_, function* () {
34 ;(yield e(M)) && (yield i(c(n.ROOM_INFO)))
3835 }),
39 yield o(l, function* () {
40 const { section: e } = yield i(f),
41 o = yield i(O)
42 e === N && (yield n(_, { roomId: o }))
43 }),
4436 yield o(y, function* () {
45 const o = yield i(p),
37 const { section: i } = yield e(f),
38 o = yield e(R)
39 i === N && (yield d(S, { roomId: o }))
40 }),
41 yield o(s, function* () {
42 const o = yield e(p),
4643 t = o.length > 1 ? o.slice(0, -1) : a
47 yield e(l(t))
44 yield i(y(t))
4845 }),
4946 yield o(E, function* (o) {
50 const t = yield i(M)
51 t || (yield e(R()), yield e(m({ key: r.ROOM_INFO, value: !0 })))
52 const { payload: n } = o,
53 { section: c } = n
54 if (c === B) return void (yield e(l(a)))
55 let d = yield i(p)
56 t || (d = [u])
57 const s = b(d)?.section
58 let y = s === c ? d.slice(0, -1) : [...d]
59 if ((y.push(n), !t)) {
60 const e = yield i(P)
61 c === h
62 ? (y = e
63 ? [
64 u,
65 { section: v, sectionParams: {} },
66 { section: F, sectionParams: n.sectionParams },
67 n,
68 ]
69 : [u, n])
70 : c === F
71 ? (y = [u, { section: v, sectionParams: {} }, n])
72 : c === g && (y = [n])
73 }
74 yield e(l(y))
47 const { payload: t } = o,
48 {
49 section: d,
50 sectionParams: { roomId: l },
51 } = t,
52 r = yield e(R)
53 l && l !== r && (yield i(g({ roomId: l })))
54 const c = yield e(M)
55 if ((c || (yield i(I()), yield i(m({ key: n.ROOM_INFO, value: !0 }))), d === F))
56 return void (yield i(y(a)))
57 let s = yield e(p)
58 c || (s = [u])
59 const f = B(s)?.section
60 let E = f === d ? s.slice(0, -1) : [...s]
61 ;(E.push(t), c || d !== h || (E = [t]), yield i(y(E)))
7562 }),
76 yield o(I, function* ({ payload: { memberId: o } }) {
77 const t = (yield i(P)) ? F : h
78 yield e(E({ section: t, sectionParams: { memberId: o } }))
63 yield o(O, function* ({ payload: { memberId: o } }) {
64 const t = (yield e(b)) ? v : x
65 yield i(E({ section: t, sectionParams: { memberId: o } }))
7966 }),
80 yield t(c, function* () {
81 yield e(l(a))
67 yield t(l, function* () {
68 yield i(y(a))
8269 }))
8370}
@holepunchto/keet-store/store/ui-desktop/ui.constants.js +1 -0
……@@ -89,6 +89,7 @@ export const ROOM_INFO_SECTION = {
8989 REPORTED_MEMBERS_LIST: "reportedMembersList",
9090 DM_REQUEST_MEMBER: "dmRequestMember",
9191 DEBUG: "debug",
92 DEV_TOOLS: "devTools",
9293 GROUP_SETTINGS: "groupSettings",
9394}
9495export const PROFILE_SECTIONS = {
@holepunchto/keet-store/store/ui-desktop/ui.saga.js +61 -55
……@@ -3,15 +3,15 @@ import {
33 takeEvery as e,
44 select as o,
55 fork as l,
6 all as t,
7 takeLatest as r,
8 take as d,
6 all as d,
7 takeLatest as t,
8 take as r,
99} from "redux-saga/effects"
1010import {
1111 callCancel as y,
1212 callLeave as c,
13 callJoinedEvt as m,
14 callJoinDMIncoming as n,
13 callJoinedEvt as n,
14 callJoinDMIncoming as m,
1515 openCallSettings as a,
1616} from "../call/call.action"
1717import { getCallStatus as f, isCallJoinedMode as u } from "../call/call.reducer"
……@@ -44,37 +44,38 @@ import {
4444 getUICallExpanded as x,
4545 closeUIPanel as G,
4646 getUIPanelState as L,
47 setAppActive as Q,
4748} from "./ui.reducer"
48import { memberMuteToggleSuccess as Q, memberRemoveSuccess as V } from "../member/member.reducer"
49import { appActiveSaga as k } from "./ui-app-active.saga"
49import { memberMuteToggleSuccess as V, memberRemoveSuccess as k } from "../member/member.reducer"
50import { appActiveSaga as w } from "./ui-app-active.saga"
5051import {
51 setSyncDeviceSeedId as w,
52 addIdentityInvitedDevice as A,
52 setSyncDeviceSeedId as A,
53 addIdentityInvitedDevice as F,
5354} from "../identity/identity.reducer"
54import { LAYOUT_TYPE as F, ROOM_LIST_TAB as J, UI_PANEL as q } from "./ui.constants"
55import { LAYOUT_TYPE as J, ROOM_LIST_TAB as q, UI_PANEL as z } from "./ui.constants"
5556import {
56 clearPairingRoom as z,
57 getRoomPairingIdActive as B,
58 setRoomPairingActive as H,
57 clearPairingRoom as B,
58 getRoomPairingIdActive as H,
59 setRoomPairingActive as K,
5960} from "../room/joint/room-joint.reducer"
6061import {
61 setUIRemoveMemberModal as K,
62 setUIBlockMemberModal as W,
63 setUIMuteMemberToggleModal as X,
62 setUIRemoveMemberModal as W,
63 setUIBlockMemberModal as X,
64 setUIMuteMemberToggleModal as Z,
6465} from "./ui-modal.reducer"
65import { uiRoomInfoSectionSaga as Z } from "./ui-room-info.saga"
66import { getDmActiveId as $, setDmActiveId as ii } from "../room"
67import { callJoinCmd as ei } from "../call/call-status.action"
68import { getErrorFilter as oi, resetErrorFilter as li } from "../error"
66import { uiRoomInfoSectionSaga as $ } from "./ui-room-info.saga"
67import { getDmActiveId as ii, setDmActiveId as ei } from "../room"
68import { callJoinCmd as oi } from "../call/call-status.action"
69import { getErrorFilter as li, resetErrorFilter as di } from "../error"
6970import { getFileViewerFile as ti } from "../media/file/file.reducer"
7071import { resetFileViewer as ri } from "../media/file/file.action"
7172export function* uiLayoutSaga() {
72 ;(yield l(Z),
73 yield l(k),
73 ;(yield l($),
74 yield l(w),
7475 yield e(G, function* ({ payload: e }) {
75 if (e === q.PROFILE) {
76 const e = yield o(oi)
77 ;(e.key || e.value) && (yield i(li()))
76 if (e === z.PROFILE) {
77 const e = yield o(li)
78 ;(e.key || e.value) && (yield i(di()))
7879 }
7980 }),
8081 yield e(E, function* () {
……@@ -82,71 +83,76 @@ export function* uiLayoutSaga() {
8283 }),
8384 yield e([E, y, c], function* (e) {
8485 if ((yield o(Y)) && E.match(e)) return
85 const [l, r, d] = yield t([o(f), o(s), o(p)])
86 const [l, t, r] = yield d([o(f), o(s), o(p)])
8687 u(l)
87 ? r === d
88 ? t === r
8889 ? yield i(v({ chat: !0, callParticipants: !1 }))
8990 : yield i(v({ rooms: !0, chat: !0, callParticipants: !1 }))
9091 : yield i(v({ rooms: !0, chat: !0 }))
9192 }),
92 yield e(n, function* () {
93 yield e(m, function* () {
9394 ;(yield i(C(!0)),
94 yield d(a),
95 yield r(a),
9596 yield i(v({ rooms: !1, chat: !1 })),
96 yield d(ei),
97 yield r(oi),
9798 yield i(C(!1)))
9899 }),
99 yield e(m, function* () {
100 yield e(n, function* () {
100101 yield i(v({ chat: !1, rooms: !1 }))
101102 }),
102 yield e(w, function* ({ payload: e }) {
103 yield e(A, function* ({ payload: e }) {
103104 const l = yield o(M)
104 e && l !== F.SYNC_DEVICE && (yield i(j(F.SYNC_DEVICE)))
105 e && l !== J.SYNC_DEVICE && (yield i(j(J.SYNC_DEVICE)))
105106 }),
106 yield e(A, function* () {
107 yield e(F, function* () {
107108 yield i(v({ profile: !1 }))
108109 }),
109110 yield e([I, N], function* () {
110 const [e, l] = yield t([o(h), o(M)])
111 ;(e === O.RUNNING && l !== F.ROOM && (yield i(j(F.ROOM))),
112 e === O.IDENTITY_SETUP && l === F.ROOM && (yield i(j(F.IDENTITY_SETUP))))
111 const [e, l] = yield d([o(h), o(M)])
112 ;(e === O.RUNNING && l !== J.ROOM && (yield i(j(J.ROOM))),
113 e === O.IDENTITY_SETUP && l === J.ROOM && (yield i(j(J.IDENTITY_SETUP))))
113114 }),
114115 yield e(R, function* ({ payload: e }) {
115116 const { memberId: o } = e
116 yield i(W({ memberId: o }))
117 }),
118 yield e(Q, function* () {
119 yield i(X(null))
117 yield i(X({ memberId: o }))
120118 }),
121119 yield e(V, function* () {
122 yield i(K(null))
120 yield i(Z(null))
121 }),
122 yield e(k, function* () {
123 yield i(W(null))
123124 }),
124 yield r([H, z], function* () {
125 const { PAIRING: e, JOINED: l, DM_REQUESTS: t } = J,
126 r = yield o(B),
127 d = yield o(U)
128 if (r) yield i(g(e))
125 yield t([K, B], function* () {
126 const { PAIRING: e, JOINED: l, DM_REQUESTS: d } = q,
127 t = yield o(H),
128 r = yield o(U)
129 if (t) yield i(g(e))
129130 else
130 switch (d) {
131 case t:
131 switch (r) {
132 case d:
132133 case e:
133134 yield i(g(l))
134135 }
135136 }),
136 yield r([ii], function* () {
137 ;(yield o($)) && (yield i(g(J.DM_REQUESTS)), yield i(b()))
137 yield t([ei], function* () {
138 ;(yield o(ii)) && (yield i(g(q.DM_REQUESTS)), yield i(b()))
138139 }),
139140 yield e(T, function* () {
140 const [e, l, r, d] = yield t([o(f), o(S), o(x), o(D)])
141 u(e) && l && r && d && (yield i(v({ rooms: !0, chat: !0 })))
141 const [e, l, t, r] = yield d([o(f), o(S), o(x), o(D)])
142 u(e) && l && t && r && (yield i(v({ rooms: !0, chat: !0 })))
142143 }),
143144 yield e(v, function* () {
144145 const { chat: e } = yield o(L),
145146 l = yield o(P)
146147 e && l ? yield i(_(!1)) : e || l || (yield i(_(!0)))
147148 }),
149 yield e(Q, function* (e) {
150 const l = yield o(P),
151 d = e.payload
152 d || l ? d && l && (yield i(_(!1))) : yield i(_(!0))
153 }),
148154 yield e(v, function* (e) {
149 const { rooms: l, chat: t } = e.payload
150 ;(yield o(D)) && !1 === l && !1 === t && (yield i(T()))
155 const { rooms: l, chat: d } = e.payload
156 ;(yield o(D)) && !1 === l && !1 === d && (yield i(T()))
151157 }))
152158}
@holepunchto/keet-store/store/ui-mobile/ui-call.saga.js +141 -111
……@@ -1,176 +1,206 @@
11import {
2 select as i,
3 put as e,
2 select as e,
3 put as i,
44 take as l,
55 getContext as t,
66 call as a,
77 takeLatest as n,
8 delay as o,
9 fork as r,
10 race as d,
8 takeEvery as o,
9 delay as r,
10 fork as d,
11 race as c,
1112} from "redux-saga/effects"
12import { getAppCurrentRoomId as y, hasAppCurrentRoomCallMatch as c } from "../app"
13import { getRoomCanCall as s, getRoomItemById as m } from "../room"
14import { taskErrorSaga as g } from "../error"
13import { getAppCurrentRoomId as y, hasAppCurrentRoomCallMatch as s } from "../app"
14import { getRoomCanCall as m, getRoomItemById as g } from "../room"
15import { taskErrorSaga as u } from "../error"
1516import {
16 getCallStatus as u,
17 callJoinCmd as C,
18 callLeave as p,
19 CALL_STATUS as f,
20 openCallSettings as v,
17 getCallStatus as p,
18 getCallId as C,
19 callJoinCmd as f,
20 callLeave as S,
21 CALL_STATUS as v,
22 openCallSettings as R,
2123 isCallJoinedMode as A,
22 callCancel as S,
24 updateCallRemoteMedia as E,
25 removeCallRemoteMedia as b,
26 STREAM_TYPE as h,
27 callCancel as w,
2328} from "../call"
2429import {
25 uiLeaveAndJoinNewCall as R,
26 uiShowMicPermissionBottomSheet as E,
27 uiShowCallOnGoingBottomSheet as b,
28 uiStartCall as h,
29 uiCallWebrtcCleared as w,
30 uiExpoDeviceVibrateSuccess as _,
31 uiNavigateToRoute as O,
32 uiShowCallPreview as I,
33 uiCallFetchAudioOutputs as L,
34 uiUpdateWorklet as N,
30 uiLeaveAndJoinNewCall as N,
31 uiShowMicPermissionBottomSheet as O,
32 uiShowCallOnGoingBottomSheet as _,
33 uiStartCall as I,
34 uiCallWebrtcCleared as L,
35 uiExpoDeviceVibrateSuccess as x,
36 uiNavigateToRoute as M,
37 uiShowCallPreview as T,
38 uiCallFetchAudioOutputs as F,
39 uiUpdateWorklet as k,
3540} from "./ui.action"
36import { APP_CONTEXT_KEY as M } from "../constants"
37import { userErrorNotification as x, userInfoNotification as T } from "../notification"
41import { APP_CONTEXT_KEY as H } from "../constants"
42import { userErrorNotification as J, userInfoNotification as V } from "../notification"
3843import {
39 setUIIsCallLoading as F,
40 setUICallAudioOutputs as H,
41 setUICallCurrentAudioOutput as k,
42 getUIAppNavigatorCurrentRoute as J,
44 setUIIsCallLoading as j,
45 setUICallAudioOutputs as D,
46 setUICallCurrentAudioOutput as K,
47 getUIAppNavigatorCurrentRoute as P,
48 setUICallScreenVideoTrackId as U,
4349} from "./ui.reducer"
44import { requestMicPermissionSaga as D } from "../media/media-permissions.saga"
45import { getCoreBackend as K } from "../../backend"
46import { apiTakeMatch as P } from "../lib/external-src"
47import { setupWebrtcCallInfra as V } from "./ui-call.utils"
50import { requestMicPermissionSaga as W } from "../media/media-permissions.saga"
51import { getCallApi as B, getCoreBackend as X } from "../../backend"
52import { apiTakeMatch as q } from "../lib/external-src"
53import { setupWebrtcCallInfra as z } from "./ui-call.utils"
4854export const MAX_ACTIVE_CALL_WAIT = 2e4
49export function* waitForActiveCallSync(i) {
55export function* waitForActiveCallSync(e) {
5056 try {
51 const n = K(),
52 r = yield d({
53 hasActiveCall: P([n.subscribeActiveCalls, i], {
54 matchFn: (i) => i.length > 0,
55 onError: (i) => g("waitForActiveCallSync: subscribeActiveCalls", i),
57 const n = X(),
58 o = yield c({
59 hasActiveCall: q([n.subscribeActiveCalls, e], {
60 matchFn: (e) => e.length > 0,
61 onError: (e) => u("waitForActiveCallSync: subscribeActiveCalls", e),
5662 }),
57 cancelled: l(S),
58 timedout: o(2e4),
63 cancelled: l(w),
64 timedout: r(2e4),
5965 })
60 if (r.timedout) {
61 const { navigationHelpers: i, webRTC: l, localeManager: n } = yield t(M),
66 if (o.timedout) {
67 const { navigationHelpers: e, webRTC: l, localeManager: n } = yield t(H),
6268 o = n.getStrings(),
6369 { timedoutJoinCall: r } = o.call
64 ;(yield e(x({ message: r })),
65 i.back(),
70 ;(yield i(J({ message: r })),
71 e.back(),
6672 yield a(l.setInCall, { enabled: !1 }),
67 yield e(w()),
68 yield e(N()))
73 yield i(L()),
74 yield i(k()))
6975 }
70 return r
71 } catch (i) {
72 return (yield g("waitForActiveCallSync", i), { timedout: !0 })
76 return o
77 } catch (e) {
78 return (yield u("waitForActiveCallSync", e), { timedout: !0 })
7379 }
7480}
75function* W(l) {
81function* G(l) {
7682 try {
7783 const { payload: n } = l || {},
78 o = yield i(y),
84 o = yield e(y),
7985 r = n?.answeringCallRing
8086 if (o) {
81 const { localeManager: l, navigationConstants: d } = yield t(M),
82 y = l.getStrings(),
83 s = yield i(m(o))
84 if (!s.canCall) return void (yield e(T({ message: y.room.callDisabledNotification })))
85 const g = yield i(u),
86 p = yield i(c)
87 if (g === f.JOINED && !p) return void (yield e(b()))
88 if ((yield e(F(!0)), !(yield D()))) return void (yield e(E()))
87 const { localeManager: l, navigationConstants: d } = yield t(H),
88 c = l.getStrings(),
89 y = yield e(g(o))
90 if (!y.canCall) return void (yield i(V({ message: c.room.callDisabledNotification })))
91 const m = yield e(p),
92 u = yield e(s)
93 if (m === v.JOINED && !u) return void (yield i(_()))
94 if ((yield i(j(!0)), !(yield W()))) return void (yield i(O()))
8995 if (r) {
90 const { timedout: i, cancelled: e } = yield a(waitForActiveCallSync, o)
91 if (i || e) return
96 const { timedout: e, cancelled: i } = yield a(waitForActiveCallSync, o)
97 if (e || i) return
9298 }
93 ;(yield e(C()),
94 yield e(O({ routeName: d.SCREEN_ROOM_CALL, params: { roomId: o } })),
95 yield a(V, {
96 roomTitle: s.title,
99 ;(yield i(f()),
100 yield i(M({ routeName: d.SCREEN_ROOM_CALL, params: { roomId: o } })),
101 yield a(z, {
102 roomTitle: y.title,
97103 hasExistingCallKit: r,
98104 answeringInAppCallRing: n?.answeringInAppCallRing,
99105 }))
100106 }
101 } catch (i) {
102 yield g("startCallSaga", i)
107 } catch (e) {
108 yield u("startCallSaga", e)
103109 } finally {
104 yield e(F(!1))
110 yield i(j(!1))
105111 }
106112}
107function* j() {
113function* Q() {
108114 try {
109 const { navigationConstants: i, navigationHelpers: a } = yield t(M)
110 ;(yield e(p()), yield l(w), yield o(500), yield e(v()), a.navigate(i.SCREEN_ROOM_CALL_PREVIEW))
111 } catch (i) {
112 yield g("leaveAndJoinNewCallSaga", i)
115 const { navigationConstants: e, navigationHelpers: a } = yield t(H)
116 ;(yield i(S()), yield l(L), yield r(500), yield i(R()), a.navigate(e.SCREEN_ROOM_CALL_PREVIEW))
117 } catch (e) {
118 yield u("leaveAndJoinNewCallSaga", e)
113119 }
114120}
115function* B() {
121function* Y() {
116122 try {
117123 const {
118124 navigationConstants: l,
119125 navigationHelpers: n,
120126 webRTC: o,
121127 callBackgroundHandler: r,
122 } = yield t(M)
123 ;((yield i(J)) === l.SCREEN_ROOM_CALL && n.back(),
128 } = yield t(H)
129 ;((yield e(P)) === l.SCREEN_ROOM_CALL && n.back(),
124130 yield a(o.setInCall, { enabled: !1 }),
125131 yield a(r.stopService),
126132 yield a(o.setKeepScreenOn, !1),
127 yield e(w()))
128 } catch (i) {
129 yield g("uiCallLeaveSaga", i)
133 yield i(L()))
134 } catch (e) {
135 yield u("uiCallLeaveSaga", e)
130136 }
131137}
132function* X(l) {
138function* Z(l) {
133139 try {
134140 const { payload: a } = l || {},
135141 n = a?.joinCall,
136 o = yield i(y),
137 r = yield i(u),
138 d = yield i(c),
139 m = yield A(r),
140 g = yield i(s(o)),
141 { navigationConstants: C, navigationHelpers: p, localeManager: f } = yield t(M),
142 o = yield e(y),
143 r = yield e(p),
144 d = yield e(s),
145 c = yield A(r),
146 g = yield e(m(o)),
147 { navigationConstants: u, navigationHelpers: C, localeManager: f } = yield t(H),
142148 S = f.getStrings()
143 ;(yield e(_(o)),
144 m && !d
145 ? yield e(b())
149 ;(yield i(x(o)),
150 c && !d
151 ? yield i(_())
146152 : g
147 ? (yield e(v()), p.navigate(C.SCREEN_ROOM_CALL_PREVIEW, { joinCall: n }))
148 : yield e(T({ message: S.room.callDisabledNotification })))
149 } catch (i) {
150 yield g("showCallPreviewSaga", i)
153 ? (yield i(R()), C.navigate(u.SCREEN_ROOM_CALL_PREVIEW, { joinCall: n }))
154 : yield i(V({ message: S.room.callDisabledNotification })))
155 } catch (e) {
156 yield u("showCallPreviewSaga", e)
151157 }
152158}
153function* q() {
159function* $() {
154160 try {
155 const { webRTC: i } = yield t(M),
156 l = yield a(i.listAudioRoutes)
157 yield e(H(l))
158 const n = yield a(i.getAudioOutput)
159 yield e(k(n.type))
160 } catch (i) {
161 yield g("uiCallFetchAudioOutputsSaga", i)
161 const { webRTC: e } = yield t(H),
162 l = yield a(e.listAudioRoutes)
163 yield i(D(l))
164 const n = yield a(e.getAudioOutput)
165 yield i(K(n.type))
166 } catch (e) {
167 yield u("uiCallFetchAudioOutputsSaga", e)
162168 }
163169}
164function* z(e) {
170function* ee(i) {
165171 try {
166 if (!e.payload?.resume) return
167 const l = yield i(y),
168 t = yield i(m(l))
169 yield r(V, { roomTitle: t.title, hasExistingCallKit: !1, answeringInAppCallRing: !1 })
170 } catch (i) {
171 yield g("resumeCallJoinSaga", i)
172 if (!i.payload?.resume) return
173 const l = yield e(y),
174 t = yield e(g(l))
175 yield d(z, { roomTitle: t.title, hasExistingCallKit: !1, answeringInAppCallRing: !1 })
176 } catch (e) {
177 yield u("resumeCallJoinSaga", e)
172178 }
173179}
180export function* screenStreamUpdateSaga(l) {
181 try {
182 const { streamName: t, streamId: a, videoMuted: n } = l.payload
183 if (t !== h.SCREEN) return
184 if (n) return void (yield i(U(null)))
185 const o = yield e(C)
186 if (!o || !a) return
187 const r = B().getRemoteSrcObject(o, a),
188 d = r?.getVideoTracks?.()[0]
189 yield i(U(d ? String(d) : null))
190 } catch (e) {
191 yield u("screenStreamUpdateSaga", e)
192 }
193}
194export function* screenStreamRemoveSaga(e) {
195 e.payload?.streamName === h.SCREEN && (yield i(U(null)))
196}
174197export function* uiCallSaga() {
175 ;(yield n(h, W), yield n(p, B), yield n(R, j), yield n(I, X), yield n(L, q), yield n(C, z))
198 ;(yield n(I, G),
199 yield n(S, Y),
200 yield n(N, Q),
201 yield n(T, Z),
202 yield n(F, $),
203 yield n(f, ee),
204 yield o(E, screenStreamUpdateSaga),
205 yield o(b, screenStreamRemoveSaga))
176206}
@holepunchto/keet-store/store/ui-mobile/ui.reducer.js +35 -20
……@@ -1,16 +1,20 @@
11import { createSlice as t } from "@reduxjs/toolkit"
22import { MAX_AUDIO_SAMPLES as e, UI_APP_STATE as o, UI_MOBILE_STATE_KEY as a } from "./ui.constants"
33import { setAppCurrentRoomId as s, getAppStatusLoading as i } from "../app/app.reducer"
4const p = {
4import { callReset as p, callLeave as r } from "../call/call-status.action"
5const I = {
56 appState: o.INIT,
67 appActive: !0,
78 shareContent: [],
89 shareRoomId: "",
9 callAudioCurrentOutput: "earpiece",
10 callAudioOutputs: [],
11 callSpeakerOn: !1,
12 isCallLoading: !1,
13 nativeCallRinging: !1,
10 call: {
11 audioCurrentOutput: "earpiece",
12 audioOutputs: [],
13 speakerOn: !1,
14 isLoading: !1,
15 nativeCallRinging: !1,
16 screenVideoTrackId: null,
17 },
1418 deviceIsOnSilentMode: !1,
1519 onboarding: { showWalkthroughTooltip: !1, walkthroughStep: 0 },
1620 appModal: { showModal: !1, queue: [] },
……@@ -31,7 +35,7 @@ const p = {
3135}
3236export const uiMobileSlice = t({
3337 name: a,
34 initialState: p,
38 initialState: I,
3539 reducers: {
3640 setUIAppState: (t, e) => {
3741 t.appState = e.payload || o.INIT
……@@ -59,19 +63,22 @@ export const uiMobileSlice = t({
5963 t.shareRoomId = e.payload
6064 },
6165 setUICallCurrentAudioOutput: (t, e) => {
62 t.callAudioCurrentOutput = e.payload
66 t.call.audioCurrentOutput = e.payload
6367 },
6468 setUICallAudioOutputs: (t, e) => {
65 t.callAudioOutputs = e.payload
69 t.call.audioOutputs = e.payload
6670 },
6771 setUICallSpeaker: (t, e) => {
68 t.callSpeakerOn = e.payload
72 t.call.speakerOn = e.payload
6973 },
7074 setUIIsCallLoading: (t, e) => {
71 t.isCallLoading = e.payload
75 t.call.isLoading = e.payload
7276 },
7377 setUINativeCallRinging: (t, e) => {
74 t.nativeCallRinging = e.payload
78 t.call.nativeCallRinging = e.payload
79 },
80 setUICallScreenVideoTrackId: (t, e) => {
81 t.call.screenVideoTrackId = e.payload
7582 },
7683 setUIShowWalkthroughTooltip: (t) => {
7784 t.onboarding.showWalkthroughTooltip = !0
……@@ -139,9 +146,15 @@ export const uiMobileSlice = t({
139146 },
140147 },
141148 extraReducers: (t) => {
142 t.addCase(s, (t, e) => {
143 e.payload?.roomId || (t.room = p.room)
144 })
149 ;(t.addCase(s, (t, e) => {
150 e.payload?.roomId || (t.room = I.room)
151 }),
152 t.addCase(p, (t) => {
153 t.call.screenVideoTrackId = null
154 }),
155 t.addCase(r, (t) => {
156 t.call.screenVideoTrackId = null
157 }))
145158 },
146159})
147160export const getUIState = (t) => t[a]
……@@ -150,11 +163,12 @@ export const getUIAppActive = (t) => getUIState(t).appActive
150163export const getUIAppBackgrounded = (t) => getUIAppState(t) === o.BACKGROUND
151164export const getUIAppForegrounded = (t) => getUIAppState(t) === o.ACTIVE
152165export const getUIDeviceSilentMode = (t) => getUIState(t).deviceIsOnSilentMode
153export const getUICallCurrentAudioOutput = (t) => getUIState(t).callAudioCurrentOutput
154export const getUICallAudioOutputs = (t) => getUIState(t).callAudioOutputs
155export const getUICallSpeaker = (t) => getUIState(t).callSpeakerOn
156export const getUIIsCallLoading = (t) => getUIState(t).isCallLoading
157export const getUINativeCallRinging = (t) => getUIState(t).nativeCallRinging
166export const getUICallCurrentAudioOutput = (t) => getUIState(t).call.audioCurrentOutput
167export const getUICallAudioOutputs = (t) => getUIState(t).call.audioOutputs
168export const getUICallSpeaker = (t) => getUIState(t).call.speakerOn
169export const getUIIsCallLoading = (t) => getUIState(t).call.isLoading
170export const getUINativeCallRinging = (t) => getUIState(t).call.nativeCallRinging
171export const getUIScreenVideoTrackId = (t) => getUIState(t).call.screenVideoTrackId
158172export const getUIShareContent = (t) => getUIState(t).shareContent || []
159173export const getUIShareRoomId = (t) => getUIState(t).shareRoomId
160174export const getUIPushNotificationPermissionsGranted = (t) =>
……@@ -228,4 +242,5 @@ export const {
228242 setUIIsCallLoading: setUIIsCallLoading,
229243 setUIUserAuthenticationStatus: setUIUserAuthenticationStatus,
230244 setUINativeCallRinging: setUINativeCallRinging,
245 setUICallScreenVideoTrackId: setUICallScreenVideoTrackId,
231246} = uiMobileSlice.actions
@holepunchto/keet-store/types/index.d.ts +838 -391
……@@ -78,6 +78,7 @@ declare module "api/core" {
7878 export function setApiEnhancer(enhancer: any): void;
7979 export namespace ERROR_POSIX {
8080 let ENOSPC: string;
81 let EIO: string;
8182 }
8283 import type { QueryApiParam } from "api/core-type";
8384 import type { RoomInfoApiData } from "api/core-type";
……@@ -1044,6 +1045,9 @@ declare module "store/identity/identity.constants" {
10441045 export namespace USER_SETTINGS_KEY {
10451046 let DISABLE_READ_RECEIPTS: "disableReadReceipts";
10461047 }
1048 /** @typedef {USER_SETTINGS_KEY[keyof typeof USER_SETTINGS_KEY]} UserSettingsKey */
1049 export const CHAT_INVITATION: "chat";
1050 export const LINK_INVITATION: "link";
10471051 export type IdentityStatus = "UNKNOWN" | "ASKED" | "ANONYMOUS" | "COMPLETE";
10481052 export type IdentityDevice = "desktop" | "mobile";
10491053 export type IdentityUsernameStatus = "UNKNOWN" | "EXISTS" | "INVALID_CHAR" | "NOT_FOUND" | "CHECKING";
……@@ -1069,8 +1073,12 @@ declare module "store/identity/identity.constants" {
10691073 export type UserSettingsKey = "disableReadReceipts";
10701074}
10711075declare module "store/lib/color" {
1072 /** @type {(name: string) => string} */
1073 export const calcAvatarColor: (name: string) => string;
1076 /** @type {(hash: number) => string} */
1077 export const calculateBackgroundColor: (hash: number) => string;
1078 export const BLANK_AVATAR_COLOR: string;
1079 export const COLOR_BY_ID_MAX_SIZE: 1000;
1080 /** @type {(id: string) => string} */
1081 export const calcAvatarColorById: (id: string) => string;
10741082}
10751083declare module "store/media/file/file.constants" {
10761084 export const FILE_PREVIEW_MIME_TYPE: "image/webp";
……@@ -2054,6 +2062,7 @@ declare module "store/identity/identity.model" {
20542062 confirmed: boolean;
20552063 loggedOut: boolean;
20562064 settings: UserSettings;
2065 privateProfileVersion: number;
20572066 };
20582067 export type RawDevice = {
20592068 deviceId: string;
……@@ -2081,6 +2090,7 @@ declare module "store/identity/identity.model" {
20812090 confirmed: boolean;
20822091 isLoggedOut: boolean;
20832092 settings: any;
2093 version: number;
20842094 };
20852095 export type DeviceIdPayload = any;
20862096 export type DeviceUnlinkPayload = any;
……@@ -2715,8 +2725,10 @@ declare module "store/identity/identity.reducer" {
27152725 export function getRemoveDeviceStatus(state: any): import("store/identity").RemoveDeviceStatus;
27162726 export function getUsernameError(state: any): string;
27172727 export function getIsReadReceiptsDisabled(state: any): boolean;
2728 export function getPrivateProfileVersion(state: any): number;
27182729 export function getIsReadReceiptsSupported(state: any): any;
27192730 export function getIsFavoriteRoomSupported(state: any): any;
2731 export function getIsRoomMarkUnreadSupported(state: any): any;
27202732 export const setAccountRecoveryAgreement: ActionCreatorWithPayload<any, "identity/setAccountRecoveryAgreement">;
27212733 export const setAccountRecoverySuccess: ActionCreatorWithoutPayload<"identity/setAccountRecoverySuccess">;
27222734 export const setAccountRecoveryError: ActionCreatorWithPayload<any, "identity/setAccountRecoveryError">;
……@@ -2839,8 +2851,7 @@ declare module "store/identity/identity.reducer" {
28392851 import type { AvatarData } from "store/identity/identity.constants";
28402852}
28412853declare module "store/identity/identity.invitation" {
2842 export function createInvitationLink({ applicationKey, invitation, isPublic, appProtocol, }: {
2843 applicationKey: any;
2854 export function createInvitationLink({ invitation, isPublic, appProtocol, }: {
28442855 invitation: any;
28452856 isPublic: any;
28462857 appProtocol: any;
……@@ -3013,7 +3024,6 @@ declare module "store/identity/saga/fetch-my-contact-invitation.saga" {
30133024 payload: any;
30143025 type: "identity/setIdentityContactInvitation";
30153026 }>, void, {
3016 applicationKey: any;
30173027 config: {
30183028 appProtocol: any;
30193029 };
……@@ -3080,9 +3090,6 @@ declare module "store/identity/identity.saga" {
30803090 payload: import("store/identity").RawIdentity;
30813091 type: "identity/setIdentity";
30823092 }>, boolean, unknown>;
3083 export function identityPrivateProfileVersionSaga(): Generator<Generator<any, void, unknown> | import("redux-saga/effects").SelectEffect, void, {
3084 profileId: any;
3085 }>;
30863093 export function identityErrorHandler(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
30873094 /**
30883095 * @param {number} feature
……@@ -4736,6 +4743,7 @@ declare module "store/call/utils" {
47364743 swarmId: any;
47374744 activityScore: number;
47384745 };
4746 export function mergeActivePresences(topSorted: any, memberIds: any, swarmByMember: any): any[];
47394747 export function calcActivityScore(isAudioMuted: any, isVideoMuted: any): number;
47404748 export function updatePresencesSortedByActivity(state: any, swarmId: any, isAudioMuted: any, isVideoMuted: any): any;
47414749 export function removeFromPresencesSortedByActivity(state: any, swarmId: any): any;
……@@ -4806,6 +4814,7 @@ declare module "store/room/room.constant" {
48064814 import expiration = DAYS;
48074815 export { expiration };
48084816 export let reusable: boolean;
4817 export let readOnly: boolean;
48094818 }
48104819 export namespace ROOM_PREFERENCES {
48114820 let NOTIFICATIONS: "notifications";
……@@ -5140,6 +5149,7 @@ declare module "store/room/list/room-list.model" {
51405149 total: number;
51415150 recentRoomsBufferInterval: number;
51425151 scrollToRoomId: string | null;
5152 preloadOverscan: number;
51435153 };
51445154 import type { RoomFilterMap } from "store/room/list/room-list.constant";
51455155}
……@@ -5367,27 +5377,29 @@ declare module "store/chat/chat.constant" {
53675377 export const CHAT_SEARCH_INPUT_THROTTLE: 250;
53685378 export const CHAT_SEARCH_FIRST_FOUND_DELAY: 1000;
53695379 export const CHAT_SEARCH_RESULT_NO_JUMP_COUNT: 25;
5370 export namespace MESSAGE_CATEGORIES {
5371 export let BLOCKED_USER_MSG: "blockedUserMsgCategory";
5372 export let HIDDEN: "hiddenCategory";
5380 export namespace MESSAGE_CATEGORY {
53735381 let JOINED_1: "joined";
53745382 export { JOINED_1 as JOINED };
5383 let CALL_STARTED_1: "callStarted";
5384 export { CALL_STARTED_1 as CALL_STARTED };
5385 let ROOM_AVATAR_CHANGED_1: "roomAvatarChanged";
5386 export { ROOM_AVATAR_CHANGED_1 as ROOM_AVATAR_CHANGED };
5387 let INVITATION_CREATED_1: "invitationCreated";
5388 export { INVITATION_CREATED_1 as INVITATION_CREATED };
53755389 let LEFT_1: "left";
53765390 export { LEFT_1 as LEFT };
5377 let MEMBER_REMOVED_1: "memberRemovedCategory";
5391 let ROOM_TITLE_CHANGED_1: "roomTitleChanged";
5392 export { ROOM_TITLE_CHANGED_1 as ROOM_TITLE_CHANGED };
5393 let MEMBER_REMOVED_1: "memberRemoved";
53785394 export { MEMBER_REMOVED_1 as MEMBER_REMOVED };
5395 let CALL_HANGUP_1: "callHangup";
5396 export { CALL_HANGUP_1 as CALL_HANGUP };
5397 let CALL_MISSED_1: "callMissed";
5398 export { CALL_MISSED_1 as CALL_MISSED };
5399 let LOCATION_SHARED_1: "locationShared";
5400 export { LOCATION_SHARED_1 as LOCATION_SHARED };
53795401 export let NO_CATEGORY: "";
53805402 }
5381 /** @typedef {MESSAGE_CATEGORIES[keyof typeof MESSAGE_CATEGORIES]} ChatMessageCategory */
5382 export const MESSAGE_TYPE_GROUPING_MAP: {
5383 [CHAT_MESSAGE_TYPE.JOINED]: boolean;
5384 [CHAT_MESSAGE_TYPE.CALL_STARTED]: boolean;
5385 [CHAT_MESSAGE_TYPE.ROOM_AVATAR_CHANGED]: boolean;
5386 [CHAT_MESSAGE_TYPE.INVITATION_CREATED]: boolean;
5387 [CHAT_MESSAGE_TYPE.LEFT]: boolean;
5388 [CHAT_MESSAGE_TYPE.ROOM_TITLE_CHANGED]: boolean;
5389 [CHAT_MESSAGE_TYPE.MEMBER_REMOVED]: boolean;
5390 };
53915403 export namespace CHAT_WORKER {
53925404 let INITIAL: "initial";
53935405 let TOP: "top";
……@@ -5399,7 +5411,6 @@ declare module "store/chat/chat.constant" {
53995411 let DISPLAY: string;
54005412 }
54015413 export const PEAR_LINK_PREVIEW_IMAGE_FECTH_TIMEOUT: 1000;
5402 export type ChatMessageCategory = "" | "blockedUserMsgCategory" | "hiddenCategory" | "joined" | "left" | "memberRemovedCategory";
54035414 export type ChatWorkerType = "sub" | "initial" | "top" | "bottom";
54045415}
54055416declare module "store/chat/reaction/chat-reaction.model" {
……@@ -5457,7 +5468,7 @@ declare module "store/chat/message/message" {
54575468 * @param {string[]} chatMessageFilters
54585469 */
54595470 export function getIsMessageHidden(coreEvent: CoreEvent, chatMessageFilters: string[]): boolean;
5460 export const GROUP_MAX_SIZE: 64;
5471 export const GROUP_LIMIT: 64;
54615472 export function getLastSeenMessageKey(roomId: string): string;
54625473 export const UNKNOWN_ID: "unknown_id";
54635474 export function createMessageId(coreEvent: {
……@@ -5475,8 +5486,25 @@ declare module "store/chat/message/message" {
54755486 export function isCallSystemEvent(message: ChatMessage): boolean;
54765487 export function isStartCallMessage(message: ChatMessage): boolean;
54775488 export function updateMessage(message: ChatMessage, context?: MessageUpdateContext): ChatMessage;
5478 export function getCoreEventCategoryName(msg: CoreEvent | ChatMessage): ChatMessageCategory;
5479 export function getIsGroupCountLimitReached(category: ChatMessageCategory, count: number): boolean;
5489 /**
5490 * @typedef {Object} ContextParam
5491 * @prop {boolean} [hidden]
5492 * @prop {boolean} [blocked]
5493 */
5494 export const MESSAGE_TYPE_TO_CATEGORY: {
5495 readonly [CHAT_MESSAGE_TYPE.JOINED]: "joined";
5496 readonly [CHAT_MESSAGE_TYPE.CALL_STARTED]: "callStarted";
5497 readonly [CHAT_MESSAGE_TYPE.ROOM_AVATAR_CHANGED]: "roomAvatarChanged";
5498 readonly [CHAT_MESSAGE_TYPE.INVITATION_CREATED]: "invitationCreated";
5499 readonly [CHAT_MESSAGE_TYPE.LEFT]: "left";
5500 readonly [CHAT_MESSAGE_TYPE.ROOM_TITLE_CHANGED]: "roomTitleChanged";
5501 readonly [CHAT_MESSAGE_TYPE.MEMBER_REMOVED]: "memberRemoved";
5502 readonly [CHAT_MESSAGE_TYPE.CALL_HANGUP]: "callHangup";
5503 readonly [CHAT_MESSAGE_TYPE.CALL_MISSED]: "callMissed";
5504 readonly [CHAT_MESSAGE_TYPE.LOCATION_SHARED]: "locationShared";
5505 };
5506 export function calcMessageCategory(msg: CoreEvent | ChatMessage): string;
5507 export function getIsGroupCountLimitReached(category: any, count: number): boolean;
54805508 export function getFileMediaType(mimetype: string, name: string): "AUDIO" | "VIDEO" | "IMAGE" | "VOICE" | "FILE";
54815509 export function getFileListMediaType(files: FileEntry[]): "AUDIO" | "VIDEO" | "IMAGE" | "MEDIA" | "VOICE" | "FILE";
54825510 export function parseFiles(event: CoreEvent): {
……@@ -5637,7 +5665,7 @@ declare module "store/chat/message/message" {
56375665 import type { SegmentHighlight } from "store/chat/message/core-event";
56385666 import type { CoreEvent } from "api/core-event-type";
56395667 import type { CoreEventId } from "api/core-event-type";
5640 import type { ChatMessageCategory } from "store/chat/chat.constant";
5668 import { CHAT_MESSAGE_TYPE } from "store/chat/chat.constant";
56415669 import type { FileEntry } from "store/media/file/file.model";
56425670 import { MEDIA_TYPE } from "store/media/file/file.constants";
56435671 import type { CoreEventChat } from "api/core-event-type";
……@@ -6320,14 +6348,14 @@ declare module "store/chat/loader/loader-step" {
63206348 export function loadMsgsBefore({ roomId, topSeq, topMsgCategory, expectedCount, ctxRef, }: {
63216349 roomId: string;
63226350 topSeq: number;
6323 topMsgCategory: ChatMessageCategory;
6351 topMsgCategory: string;
63246352 expectedCount: number;
63256353 ctxRef?: LoaderCtrlContextRef;
63266354 }): Promise<CoreEvent[]>;
63276355 export function loadMsgsAfter({ roomId, bottomSeq, bottomMsgCategory, expectedCount, count, ctxRef, }: {
63286356 roomId: string;
63296357 bottomSeq: number;
6330 bottomMsgCategory: ChatMessageCategory;
6358 bottomMsgCategory: string;
63316359 expectedCount: number;
63326360 count: number;
63336361 ctxRef?: LoaderCtrlContextRef;
……@@ -6351,9 +6379,8 @@ declare module "store/chat/loader/loader-step" {
63516379 };
63526380 export type ChatLoaderEvtCounter = {
63536381 count: number;
6354 lastCategory: ChatMessageCategory;
6382 lastCategory: string;
63556383 };
6356 import type { ChatMessageCategory } from "store/chat/chat.constant";
63576384 import type { CoreEvent } from "api/core-event-type";
63586385 import type { MessageQuery } from "store/chat/message/message-query";
63596386}
……@@ -7410,6 +7437,7 @@ declare module "store/room/joint/room-joint.reducer" {
74107437 * @prop {boolean} canIndex
74117438 * @prop {string | number} expiration
74127439 * @prop {boolean} reusable
7440 * @prop {boolean} readOnly
74137441 */
74147442 /**
74157443 * @typedef {Object} RoomInvitationPayload
……@@ -7440,6 +7468,7 @@ declare module "store/room/joint/room-joint.reducer" {
74407468 canIndex: boolean;
74417469 expiration: string | number;
74427470 reusable: boolean;
7471 readOnly: boolean;
74437472 };
74447473 export type RoomInvitationPayload = {
74457474 roomId: string;
……@@ -7506,6 +7535,11 @@ declare module "store/room/list/room-list.reducer" {
75067535 type: string;
75077536 }) => void;
75087537 resetScrollToRoomId: (state: import("immer").WritableDraft<RoomListState>) => void;
7538 /**
7539 * @param {RoomListState} state
7540 * @param {PayloadAction<number>} action
7541 */
7542 setRoomListPreloadOverscan: (state: RoomListState, { payload }: PayloadAction<number>) => void;
75097543 }, "list", "list", import("@reduxjs/toolkit").SliceSelectors<RoomListState>>;
75107544 /** @type {(state: *) => RoomListState} */
75117545 export const getRoomListState: (state: any) => RoomListState;
……@@ -7526,6 +7560,7 @@ declare module "store/room/list/room-list.reducer" {
75267560 export function getRoomListIsLoading(state: any): boolean;
75277561 export function getRoomFavoriteListIsLoading(state: any): boolean;
75287562 export function getRoomListIsError(state: any): boolean;
7563 export function getRoomListPreloadOverscan(state: any): number;
75297564 export const getRoomListInViewIds: ((state: any) => string[]) & {
75307565 clearCache: () => void;
75317566 resultsCount: () => number;
……@@ -7556,6 +7591,36 @@ declare module "store/room/list/room-list.reducer" {
75567591 memoize: typeof import("reselect").weakMapMemoize;
75577592 argsMemoize: typeof import("reselect").weakMapMemoize;
75587593 };
7594 export const getRoomListInViewOverscanIds: ((state: any) => string[]) & {
7595 clearCache: () => void;
7596 resultsCount: () => number;
7597 resetResultsCount: () => void;
7598 } & {
7599 resultFunc: (resultFuncArgs_0: string[], resultFuncArgs_1: {
7600 top: number;
7601 bottom: number;
7602 }, resultFuncArgs_2: number) => string[];
7603 memoizedResultFunc: ((resultFuncArgs_0: string[], resultFuncArgs_1: {
7604 top: number;
7605 bottom: number;
7606 }, resultFuncArgs_2: number) => string[]) & {
7607 clearCache: () => void;
7608 resultsCount: () => number;
7609 resetResultsCount: () => void;
7610 };
7611 lastResult: () => string[];
7612 dependencies: [(state: any) => string[], (state: any) => {
7613 top: number;
7614 bottom: number;
7615 }, (state: any) => number];
7616 recomputations: () => number;
7617 resetRecomputations: () => void;
7618 dependencyRecomputations: () => number;
7619 resetDependencyRecomputations: () => void;
7620 } & {
7621 memoize: typeof import("reselect").weakMapMemoize;
7622 argsMemoize: typeof import("reselect").weakMapMemoize;
7623 };
75597624 export function getRoomListSearchError(state: any): string;
75607625 export function getRoomListUnreadRoomsCount(state: any): number;
75617626 export function getRecentRoomsBufferInterval(state: any): number;
……@@ -7570,6 +7635,7 @@ declare module "store/room/list/room-list.reducer" {
75707635 export const setUnreadRoomsCount: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number, "list/setUnreadRoomsCount">;
75717636 export const setScrollToRoomId: ActionCreatorWithPayload<any, "list/setScrollToRoomId">;
75727637 export const resetScrollToRoomId: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"list/resetScrollToRoomId">;
7638 export const setRoomListPreloadOverscan: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<number, "list/setRoomListPreloadOverscan">;
75737639 /** @type {ActionCreatorWithPayload<string[], 'room-list/in-view-ids-change-evt'>} */
75747640 export const roomListInViewIdsChangeEvt: ActionCreatorWithPayload<string[], "room-list/in-view-ids-change-evt">;
75757641 export const roomListReducer: import("redux").Reducer<RoomListState>;
……@@ -8607,6 +8673,40 @@ declare module "store/chat/unread/index" {
86078673 export * from "store/chat/unread/chat-unread.action";
86088674 export * from "store/chat/unread/chat-unread.saga";
86098675}
8676declare module "store/chat/input/chat-input.constant" {
8677 /** @import { ChatState } from '../chat.state' */
8678 export const CHAT_INPUT_STATE_KEY: "input";
8679}
8680declare module "store/chat/input/chat-input.selector" {
8681 export function getChatInputState(state: any): ChatInputState;
8682 export function getChatInputIsProcessing(state: any): boolean;
8683 export function getChatInputIsClearRequested(state: any): boolean;
8684 import type { ChatInputState } from "store/chat/chat.state";
8685}
8686declare module "store/chat/input/chat-input.action" {
8687 /** @type {ActionCreatorWithPayload<boolean, 'chat/set-input-clear-requested'>} */
8688 export const setChatInputIsClearRequested: ActionCreatorWithPayload<boolean, "chat/set-input-clear-requested">;
8689 /** @type {ActionCreatorWithPayload<boolean, 'chat/set-input-is-processing'>} */
8690 export const setChatInputIsProcessing: ActionCreatorWithPayload<boolean, "chat/set-input-is-processing">;
8691 import type { ActionCreatorWithPayload } from "@reduxjs/toolkit";
8692}
8693declare module "store/chat/input/chat-input.reducer" {
8694 /** @typedef {ReturnType<
8695 * (typeof setChatInputIsClearRequested | typeof setChatInputIsProcessing)
8696 * >} ChatInputAction */
8697 /** @type {(state: ChatInputState, action: ChatInputAction) => ChatInputState} */
8698 export const chatInputReducer: (state: ChatInputState, action: ChatInputAction) => ChatInputState;
8699 export type ChatInputAction = ReturnType<(typeof setChatInputIsClearRequested | typeof setChatInputIsProcessing)>;
8700 import type { ChatInputState } from "store/chat/chat.state";
8701 import { setChatInputIsClearRequested } from "store/chat/input/chat-input.action";
8702 import { setChatInputIsProcessing } from "store/chat/input/chat-input.action";
8703}
8704declare module "store/chat/input/index" {
8705 export * from "store/chat/input/chat-input.selector";
8706 export * from "store/chat/input/chat-input.action";
8707 export * from "store/chat/input/chat-input.reducer";
8708 export * from "store/chat/input/chat-input.constant";
8709}
86108710declare module "store/chat/chat.reducer" {
86118711 export const fnReducer: (state: any, action: any) => any;
86128712 /** @type {Reducer<ChatState, *>} */
……@@ -8923,6 +9023,9 @@ declare module "store/chat/chat.saga" {
89239023 }): Generator<Generator<any, any, any> | import("redux-saga/effects").SelectEffect | import("redux-saga/effects").PutEffect<{
89249024 payload: import("store/notification").ErrorNotificationParam;
89259025 type: string;
9026 }> | import("redux-saga/effects").PutEffect<{
9027 payload: boolean;
9028 type: "chat/set-input-is-processing";
89269029 }> | import("redux-saga/effects").PutEffect<{
89279030 payload: {
89289031 roomId: string;
……@@ -8931,6 +9034,9 @@ declare module "store/chat/chat.saga" {
89319034 }> | import("redux-saga/effects").PutEffect<{
89329035 payload: import("store/chat").SendChatFilesPayload;
89339036 type: "chat/sendChatFiles";
9037 }> | import("redux-saga/effects").PutEffect<{
9038 payload: boolean;
9039 type: "chat/set-input-clear-requested";
89349040 }>, void, any>;
89359041 /**
89369042 * @param {Object} param
……@@ -9101,6 +9207,7 @@ declare module "store/chat/index" {
91019207 export * from "store/chat/list-view";
91029208 export * from "store/chat/reaction";
91039209 export * from "store/chat/search";
9210 export * from "store/chat/input";
91049211 export * from "store/chat/unread";
91059212 export * from "store/chat/file";
91069213 export * from "store/chat/loader";
……@@ -9233,8 +9340,6 @@ declare module "store/room/list/index" {
92339340 export * from "store/room/list/room-list-item-update-saga";
92349341}
92359342declare module "store/room/room.reducer" {
9236 export function calcActualRoomIds(state: RoomState): string[];
9237 export function updateActualRoomIds(state: RoomState): RoomState;
92389343 /** @type {RoomState} */
92399344 export const INITIAL_STATE: RoomState;
92409345 /** @typedef {ReturnType<typeof setMainRoom
……@@ -9259,6 +9364,7 @@ declare module "store/room/room.reducer" {
92599364 * | typeof setRoomFilterMap> } RoomAction */
92609365 /** @type {(state: RoomState, action: RoomAction) => RoomState} */
92619366 export const roomCommonReducer: (state: RoomState, action: RoomAction) => RoomState;
9367 export function actualRoomIdsReducer(state: RoomState, action: any): RoomState;
92629368 /** @type {(state: RoomState, action: any) => RoomState} */
92639369 export const roomReducer: (state: RoomState, action: any) => RoomState;
92649370 export type RoomAction = ReturnType<typeof setMainRoom | typeof setAllRooms | typeof setSearchRoomIds | typeof updateRecentRooms | typeof addOrRemoveRecentRoom | typeof setRoomInfo | typeof setRoomShowWarning | typeof setRoomMyCapabilities | typeof setRoomVersion | typeof setNotifications | typeof setRoomStats | typeof unlockDebug | typeof setCreatedRoomMeta | typeof resetModuleStateCmd | typeof roomSetRepairingStatus | typeof roomSetMoveIndexerStatus | typeof setRoomDiscoveryKey | typeof setFavoriteRooms | typeof addOrRemoveFavoriteRoom | typeof setRoomFilterMap>;
……@@ -9887,11 +9993,10 @@ declare module "store/room/joint/room-leaving.saga" {
98879993}
98889994declare module "store/room/joint/room-pairing.saga" {
98899995 /**
9890 * @param {{ applicationKey: string, appProtocol: string }} param
9996 * @param {{ appProtocol: string }} param
98919997 * @param {ReturnType<typeof createRoomInvitation>} action
98929998 */
9893 export function createInvitationSaga({ applicationKey, appProtocol }: {
9894 applicationKey: string;
9999 export function createInvitationSaga({ appProtocol }: {
989510000 appProtocol: string;
989610001 }, { payload: { roomId, invitationPreview, messageId, isPublic, opts, }, }: ReturnType<typeof createRoomInvitation>): Generator<Generator<any, any, any> | import("redux-saga/effects").PutEffect<{
989710002 payload: any;
……@@ -11103,7 +11208,6 @@ declare module "store/room/main/room-common.saga" {
1110311208 payload: import("store/room").SetForwardMessageParam;
1110411209 type: "room/forward/set-forward-message";
1110511210 } & import("store/chat").ChatMessage>>, void, {
11106 applicationKey: any;
1110711211 config: {
1110811212 appProtocol: any;
1110911213 };
……@@ -11562,7 +11666,6 @@ declare module "store/room/room.saga" {
1156211666 payload: import("store/room").SetForwardMessageParam;
1156311667 type: "room/forward/set-forward-message";
1156411668 } & import("store/chat").ChatMessage>>, void, {
11565 applicationKey: any;
1156611669 config: {
1156711670 appProtocol: any;
1156811671 };
……@@ -11608,6 +11711,50 @@ declare module "store/room/room.saga" {
1160811711 import type { createRoomSubmit } from "store/room/room.action";
1160911712 import type { RoomType } from "store/room/room.constant";
1161011713}
11714declare module "store/room/room-discover/room-discover.constant" {
11715 /**
11716 * @typedef {Object} DiscoverRoom
11717 * @property {string} discoveryId
11718 * @property {string} inviteLink
11719 * @property {string} avatarUrl
11720 * @property {string} description
11721 * @property {string} title
11722 * @property {string} [roomType]
11723 * @property {string[]} [locale]
11724 */
11725 /**
11726 * @typedef {Omit<DiscoverRoom, 'avatarUrl'>} DiscoverRoomTemplate
11727 */
11728 /** @type {Record<string, DiscoverRoomTemplate>} */
11729 export const PRODUCTION_DISCOVER: Record<string, DiscoverRoomTemplate>;
11730 /** @type {Record<string, DiscoverRoomTemplate>} */
11731 export const NIGHTLY_DISCOVER: Record<string, DiscoverRoomTemplate>;
11732 /** @type {Record<string, DiscoverRoomTemplate>} */
11733 export const INTERNAL_DISCOVER: Record<string, DiscoverRoomTemplate>;
11734 export type DiscoverRoom = {
11735 discoveryId: string;
11736 inviteLink: string;
11737 avatarUrl: string;
11738 description: string;
11739 title: string;
11740 roomType?: string;
11741 locale?: string[];
11742 };
11743 export type DiscoverRoomTemplate = Omit<DiscoverRoom, "avatarUrl">;
11744}
11745declare module "store/room/room-discover/room-discover.model" {
11746 export function createDiscoverRooms(templates: Record<string, DiscoverRoomTemplate>, mixing: Record<string, Partial<DiscoverRoom>>, transform?: (room: DiscoverRoom) => DiscoverRoom): Record<string, DiscoverRoom>;
11747 export function filterDiscoverRooms(rooms: Record<string, DiscoverRoom>, options: {
11748 locale?: string;
11749 excludeDiscoveryIds?: string[];
11750 }): Record<string, DiscoverRoom>;
11751 import type { DiscoverRoomTemplate } from "store/room/room-discover/room-discover.constant";
11752 import type { DiscoverRoom } from "store/room/room-discover/room-discover.constant";
11753}
11754declare module "store/room/room-discover/index" {
11755 export * from "store/room/room-discover/room-discover.constant";
11756 export * from "store/room/room-discover/room-discover.model";
11757}
1161111758declare module "store/room/index" {
1161211759 export * from "store/room/room.action";
1161311760 export * from "store/room/room.selector";
……@@ -11620,6 +11767,7 @@ declare module "store/room/index" {
1162011767 export * from "store/room/joint";
1162111768 export * from "store/room/list";
1162211769 export * from "store/room/dm";
11770 export * from "store/room/room-discover";
1162311771 export * from "store/room/forward-message";
1162411772 export * from "store/room/share-message";
1162511773 export * from "store/room/room.feature";
……@@ -11793,6 +11941,11 @@ declare module "store/chat/chat.state" {
1179311941 * @prop {number} searchFirstFounDelay
1179411942 * @prop {number} searchResultNoJumpCount
1179511943 */
11944 /**
11945 * @typedef {Object} ChatInputState
11946 * @prop {boolean} isClearRequested
11947 * @prop {boolean} isProcessing
11948 */
1179611949 /**
1179711950 * @typedef {Object} ChatState
1179811951 * @prop {string} currentRoomId
……@@ -11804,6 +11957,7 @@ declare module "store/chat/chat.state" {
1180411957 * @prop {FileUploadState} fileUpload
1180511958 * @prop {ChatReactionState} reaction
1180611959 * @prop {string} editingMessageId
11960 * @prop {ChatInputState} input
1180711961 * @prop {string} selectedMessageId
1180811962 * @prop {boolean} sendLimited
1180911963 * @prop {ReplyMessageState} replyMessage
……@@ -11861,6 +12015,10 @@ declare module "store/chat/chat.state" {
1186112015 searchFirstFounDelay: number;
1186212016 searchResultNoJumpCount: number;
1186312017 };
12018 export type ChatInputState = {
12019 isClearRequested: boolean;
12020 isProcessing: boolean;
12021 };
1186412022 export type ChatState = {
1186512023 currentRoomId: string;
1186612024 error: string;
……@@ -11871,6 +12029,7 @@ declare module "store/chat/chat.state" {
1187112029 fileUpload: FileUploadState;
1187212030 reaction: ChatReactionState;
1187312031 editingMessageId: string;
12032 input: ChatInputState;
1187412033 selectedMessageId: string;
1187512034 sendLimited: boolean;
1187612035 replyMessage: ReplyMessageState;
……@@ -12280,6 +12439,7 @@ declare module "store/room/room.model" {
1228012439 * @prop {number} [fileTotalSize]
1228112440 * @prop {string} [activeCallId]
1228212441 * @prop {boolean} [isVerified]
12442 * @prop {boolean} [isUnread]
1228312443 */
1228412444 /**
1228512445 * @typedef {Object} RoomState
……@@ -12347,8 +12507,8 @@ declare module "store/room/room.model" {
1234712507 export const parseRecentRoomsAddRemoveResponse: (data: RecentRoomsApiAddRemoveData) => RecentRoomsApiAddRemoveData;
1234812508 /** @type {(data: RoomInfoApiData) => RoomConfigIdsData} */
1234912509 export const parseRoomConfigIdsResponse: (data: RoomInfoApiData) => RoomConfigIdsData;
12350 /** @type {(data: RoomConfigApiData) => RoomConfigData} */
12351 export const parseRoomConfigResponse: (data: RoomConfigApiData) => RoomConfigData;
12510 /** @type {(data: RoomConfigApiData, roomId: string) => RoomConfigData} */
12511 export const parseRoomConfigResponse: (data: RoomConfigApiData, roomId: string) => RoomConfigData;
1235212512 /**
1235312513 * @typedef {{ version: number, experimental?: boolean, isCompatible: boolean }} Version
1235412514 * @type {(roomId: string, appVersion: number) => (roomVersion: Version) => RoomVersionData}
……@@ -12423,6 +12583,7 @@ declare module "store/room/room.model" {
1242312583 fileTotalSize?: number;
1242412584 activeCallId?: string;
1242512585 isVerified?: boolean;
12586 isUnread?: boolean;
1242612587 };
1242712588 export type RoomState = {
1242812589 roomById: {
……@@ -12593,6 +12754,8 @@ declare module "store/room/room.action" {
1259312754 export const roomNewActivity: ActionCreatorWithPayload<string, "room/new-activity">;
1259412755 /** @type {ActionCreatorWithPayload<string, 'room/toggle-membership-events'>} */
1259512756 export const toggleRoomMembershipEvents: ActionCreatorWithPayload<string, "room/toggle-membership-events">;
12757 /** @type {ActionCreatorWithPayload<string, 'room/toggle-room-unread'>} */
12758 export const toggleRoomIsUnreadCmd: ActionCreatorWithPayload<string, "room/toggle-room-unread">;
1259612759 /**
1259712760 * @typedef {Object} RoomGenericStatusUpdatePayload
1259812761 * @prop {string} roomId
……@@ -13016,6 +13179,8 @@ declare module "store/room/room.selector" {
1301613179 [x: string]: import("store/room").RoomNotification;
1301713180 };
1301813181 export function getRoomNotificationById(roomId: any): (state: any) => boolean;
13182 /** @type {(roomId: string) => (state: any) => boolean} */
13183 export const getRoomIsUnread: (roomId: string) => (state: any) => boolean;
1301913184 export function getIsRoomDm(roomId: any): ((state: any) => boolean) & {
1302013185 clearCache: () => void;
1302113186 resultsCount: () => number;
……@@ -13057,6 +13222,128 @@ declare module "store/room/room.feature" {
1305713222 export function getRoomCallsV2Supported(roomId: any): (state: any) => any;
1305813223 export { FEATURES };
1305913224}
13225declare module "store/network/network.constants" {
13226 export namespace NETWORK_CONFIG {
13227 let NETWORK_UPDATE_DURATION: number;
13228 }
13229 export namespace NETWORK_STATUS {
13230 let ONLINE: "online";
13231 let OFFLINE: "offline";
13232 let TRICKY: "tricky";
13233 let UNKNOWN: "unknown";
13234 }
13235 export type NetworkStatusData = {
13236 host: string;
13237 port: number;
13238 online: boolean;
13239 degraded: boolean;
13240 loaded: boolean;
13241 connections: number;
13242 peers: string[];
13243 };
13244 export type NetworkSettingsValues = {
13245 concurrency: number;
13246 maxWindow: number;
13247 randomPunchInterval: number;
13248 connectionKeepAlive: number;
13249 };
13250 export type NetworkSettings = {
13251 default: NetworkSettingsValues;
13252 values: NetworkSettingsValues;
13253 isCustom: boolean;
13254 isLoaded: boolean;
13255 };
13256 export type NetworkConfig = typeof NETWORK_CONFIG;
13257 export type NetworkState = {
13258 config: NetworkConfig;
13259 status: NetworkStatusData;
13260 settings: NetworkSettings;
13261 };
13262 export type NetworkStatus = (typeof NETWORK_STATUS)[keyof typeof NETWORK_STATUS];
13263}
13264declare module "store/network/network.model" {
13265 export function calcNetworkStatus(data: NetworkStatusData): "unknown" | "online" | "offline" | "tricky";
13266 export function isNetworkStatusChanged(a: NetworkStatusData, b: NetworkStatusData): boolean;
13267 import type { NetworkStatusData } from "store/network/network.constants";
13268}
13269declare module "store/network/network.reducer" {
13270 export const NETWORK_STATE_KEY: "network";
13271 /** @type {NetworkState} */
13272 export const NETWORK_INITIAL_STATE: NetworkState;
13273 export const networkSlice: import("@reduxjs/toolkit").Slice<NetworkState, {
13274 setNetworkData: (state: import("immer").WritableDraft<NetworkState>, { payload: { host, port, online, degraded, connections, peers, loaded, }, }: {
13275 payload: any;
13276 type: string;
13277 }) => void;
13278 setNetworkSettingsDefault: (state: import("immer").WritableDraft<NetworkState>, { payload: { concurrency, maxWindow, randomPunchInterval, connectionKeepAlive, }, }: {
13279 payload: any;
13280 type: string;
13281 }) => void;
13282 setNetworkSettings: (state: import("immer").WritableDraft<NetworkState>, { payload: { concurrency, maxWindow, randomPunchInterval, connectionKeepAlive, isLoaded, }, }: {
13283 payload: any;
13284 type: string;
13285 }) => void;
13286 setNetworkSettingsIsCustom: (state: import("immer").WritableDraft<NetworkState>, { payload }: {
13287 payload: any;
13288 type: string;
13289 }) => void;
13290 resetNetworkSettings: (state: import("immer").WritableDraft<NetworkState>) => void;
13291 }, "network", "network", import("@reduxjs/toolkit").SliceSelectors<NetworkState>>;
13292 export function getNetworkState(state: any): NetworkState;
13293 export function getNetworkConfig(state: any): {
13294 NETWORK_UPDATE_DURATION: number;
13295 };
13296 export function getNetworkStatusState(state: any): NetworkStatusData;
13297 export function getNetworkIp(state: any): string;
13298 export function getNetworkPort(state: any): number;
13299 export function getNetworkLoaded(state: any): boolean;
13300 export function getNetworkOnline(state: any): boolean;
13301 export function getNetworkDegraded(state: any): boolean;
13302 export function getNetworkPeerCount(state: any): number;
13303 export function getNetworkPeers(state: any): string[];
13304 export function getNetworkSettings(state: any): import("store/network").NetworkSettings;
13305 export function getNetworkSettingsDefault(state: any): NetworkSettingsValues;
13306 export function getNetworkSettingsValues(state: any): NetworkSettingsValues;
13307 export function getNetworkSettingsLoading(state: any): boolean;
13308 export const getNetworkSettingsIsCustom: ((state: any) => boolean) & {
13309 clearCache: () => void;
13310 resultsCount: () => number;
13311 resetResultsCount: () => void;
13312 } & {
13313 resultFunc: (resultFuncArgs_0: import("store/network").NetworkSettings) => boolean;
13314 memoizedResultFunc: ((resultFuncArgs_0: import("store/network").NetworkSettings) => boolean) & {
13315 clearCache: () => void;
13316 resultsCount: () => number;
13317 resetResultsCount: () => void;
13318 };
13319 lastResult: () => boolean;
13320 dependencies: [(state: any) => import("store/network").NetworkSettings];
13321 recomputations: () => number;
13322 resetRecomputations: () => void;
13323 dependencyRecomputations: () => number;
13324 resetDependencyRecomputations: () => void;
13325 } & {
13326 memoize: typeof import("reselect").weakMapMemoize;
13327 argsMemoize: typeof import("reselect").weakMapMemoize;
13328 };
13329 export function getNetworkStatus(state: any): "unknown" | "online" | "offline" | "tricky";
13330 export const setNetworkData: ActionCreatorWithPayload<any, "network/setNetworkData">;
13331 export const setNetworkSettings: ActionCreatorWithPayload<any, "network/setNetworkSettings">;
13332 export const setNetworkSettingsDefault: ActionCreatorWithPayload<any, "network/setNetworkSettingsDefault">;
13333 export const setNetworkSettingsIsCustom: ActionCreatorWithPayload<any, "network/setNetworkSettingsIsCustom">;
13334 export const resetNetworkSettings: ActionCreatorWithoutPayload<"network/resetNetworkSettings">;
13335 export const getAppInitialState: () => NetworkState;
13336 export const appReducer: import("redux").Reducer<NetworkState>;
13337 /** @type {ActionCreatorWithoutPayload} */
13338 export const loadNetworkSettings: ActionCreatorWithoutPayload;
13339 /** @type {ActionCreatorWithPayload<NetworkSettingsValues, 'network/update-settings'>} */
13340 export const updateNetworkSettings: ActionCreatorWithPayload<NetworkSettingsValues, "network/update-settings">;
13341 import type { NetworkState } from "store/network/network.constants";
13342 import type { NetworkStatusData } from "store/network/network.constants";
13343 import type { NetworkSettingsValues } from "store/network/network.constants";
13344 import type { ActionCreatorWithPayload } from "@reduxjs/toolkit";
13345 import type { ActionCreatorWithoutPayload } from "@reduxjs/toolkit";
13346}
1306013347declare module "store/call/call.reducer" {
1306113348 export namespace INITIAL_STATE {
1306213349 export let callId: string;
……@@ -13072,6 +13359,7 @@ declare module "store/call/call.reducer" {
1307213359 export let activeCalls: any;
1307313360 export let activeCallMemberIds: any;
1307413361 export let mediaBySwarmId: {};
13362 export let connectedMemberIds: {};
1307513363 export let peersCounter: {};
1307613364 export let showConfirmLeave: boolean;
1307713365 export let showAutoEndPopup: boolean;
……@@ -13112,6 +13400,7 @@ declare module "store/call/call.reducer" {
1311213400 activeCalls: any;
1311313401 activeCallMemberIds: any;
1311413402 mediaBySwarmId: {};
13403 connectedMemberIds: {};
1311513404 peersCounter: {};
1311613405 showConfirmLeave: boolean;
1311713406 showAutoEndPopup: boolean;
……@@ -13142,6 +13431,27 @@ declare module "store/call/call.reducer" {
1314213431 export function getActiveCalls(state: any): any;
1314313432 export function getActiveCallMemberIds(state: any): any;
1314413433 export function getIsActiveCallMember(id: any): (state: any) => any;
13434 export function makeGetIsActiveCallMember(id: any): ((state: any) => any) & {
13435 clearCache: () => void;
13436 resultsCount: () => number;
13437 resetResultsCount: () => void;
13438 } & {
13439 resultFunc: (resultFuncArgs_0: any) => any;
13440 memoizedResultFunc: ((resultFuncArgs_0: any) => any) & {
13441 clearCache: () => void;
13442 resultsCount: () => number;
13443 resetResultsCount: () => void;
13444 };
13445 lastResult: () => any;
13446 dependencies: [(state: any) => any];
13447 recomputations: () => number;
13448 resetRecomputations: () => void;
13449 dependencyRecomputations: () => number;
13450 resetDependencyRecomputations: () => void;
13451 } & {
13452 memoize: typeof import("reselect").weakMapMemoize;
13453 argsMemoize: typeof import("reselect").weakMapMemoize;
13454 };
1314513455 export function getCallTopSortedPresences(state: any): any;
1314613456 export const getCallUnknownPresenceIds: ((state: any) => string[]) & {
1314713457 clearCache: () => void;
……@@ -13212,6 +13522,47 @@ declare module "store/call/call.reducer" {
1321213522 };
1321313523 export function getCallPresenceCount(state: any): any;
1321413524 export function getIsPresenceUnknown(presenceId: any): (state: any) => boolean;
13525 export function makeGetIsPresenceUnknown(presenceId: any): ((state: any) => boolean) & {
13526 clearCache: () => void;
13527 resultsCount: () => number;
13528 resetResultsCount: () => void;
13529 } & {
13530 resultFunc: (resultFuncArgs_0: string[]) => boolean;
13531 memoizedResultFunc: ((resultFuncArgs_0: string[]) => boolean) & {
13532 clearCache: () => void;
13533 resultsCount: () => number;
13534 resetResultsCount: () => void;
13535 };
13536 lastResult: () => boolean;
13537 dependencies: [((state: any) => string[]) & {
13538 clearCache: () => void;
13539 resultsCount: () => number;
13540 resetResultsCount: () => void;
13541 } & {
13542 resultFunc: (resultFuncArgs_0: any) => string[];
13543 memoizedResultFunc: ((resultFuncArgs_0: any) => string[]) & {
13544 clearCache: () => void;
13545 resultsCount: () => number;
13546 resetResultsCount: () => void;
13547 };
13548 lastResult: () => string[];
13549 dependencies: [(state: any) => any];
13550 recomputations: () => number;
13551 resetRecomputations: () => void;
13552 dependencyRecomputations: () => number;
13553 resetDependencyRecomputations: () => void;
13554 } & {
13555 memoize: typeof import("reselect").weakMapMemoize;
13556 argsMemoize: typeof import("reselect").weakMapMemoize;
13557 }];
13558 recomputations: () => number;
13559 resetRecomputations: () => void;
13560 dependencyRecomputations: () => number;
13561 resetDependencyRecomputations: () => void;
13562 } & {
13563 memoize: typeof import("reselect").weakMapMemoize;
13564 argsMemoize: typeof import("reselect").weakMapMemoize;
13565 };
1321513566 export function getCallPresenceSwarmByMemberIds(state: any): any;
1321613567 export function getCallRemoteMediaById(id: any): (state: any) => any;
1321713568 export function getCallPresenceById(id: any): (state: any) => any;
……@@ -13383,19 +13734,19 @@ declare module "store/call/call.reducer" {
1338313734 argsMemoize: typeof import("reselect").weakMapMemoize;
1338413735 };
1338513736 export function getHasScreenSharingStreams(state: any): boolean;
13386 export const getActivePresences: ((state: any) => any) & {
13737 export const getActivePresences: ((state: any) => readonly any[]) & {
1338713738 clearCache: () => void;
1338813739 resultsCount: () => number;
1338913740 resetResultsCount: () => void;
1339013741 } & {
13391 resultFunc: (resultFuncArgs_0: any, resultFuncArgs_1: any) => any;
13392 memoizedResultFunc: ((resultFuncArgs_0: any, resultFuncArgs_1: any) => any) & {
13742 resultFunc: (resultFuncArgs_0: any, resultFuncArgs_1: any, resultFuncArgs_2: any) => readonly any[];
13743 memoizedResultFunc: ((resultFuncArgs_0: any, resultFuncArgs_1: any, resultFuncArgs_2: any) => readonly any[]) & {
1339313744 clearCache: () => void;
1339413745 resultsCount: () => number;
1339513746 resetResultsCount: () => void;
1339613747 };
13397 lastResult: () => any;
13398 dependencies: [(state: any) => any, (state: any) => any];
13748 lastResult: () => readonly any[];
13749 dependencies: [(state: any) => any, (state: any) => any, (state: any) => any];
1339913750 recomputations: () => number;
1340013751 resetRecomputations: () => void;
1340113752 dependencyRecomputations: () => number;
……@@ -13404,35 +13755,79 @@ declare module "store/call/call.reducer" {
1340413755 memoize: typeof import("reselect").weakMapMemoize;
1340513756 argsMemoize: typeof import("reselect").weakMapMemoize;
1340613757 };
13407 export function makeGetPositionPreservedActiveSwarmIds(): ((state: any, limit: any) => any) & {
13758 export function getIsPresenceOffline(swarmId: any): (state: any) => boolean;
13759 export function makeGetIsPresenceOffline(swarmId: any): ((state: any) => boolean) & {
1340813760 clearCache: () => void;
1340913761 resultsCount: () => number;
1341013762 resetResultsCount: () => void;
1341113763 } & {
13412 resultFunc: (resultFuncArgs_0: any, resultFuncArgs_1: any) => any;
13413 memoizedResultFunc: ((resultFuncArgs_0: any, resultFuncArgs_1: any) => any) & {
13764 resultFunc: (resultFuncArgs_0: any, resultFuncArgs_1: string[]) => boolean;
13765 memoizedResultFunc: ((resultFuncArgs_0: any, resultFuncArgs_1: string[]) => boolean) & {
1341413766 clearCache: () => void;
1341513767 resultsCount: () => number;
1341613768 resetResultsCount: () => void;
1341713769 };
13418 lastResult: () => any;
13419 dependencies: [((state: any) => any) & {
13420 clearCache: () => void;
13421 resultsCount: () => number;
13422 resetResultsCount: () => void;
13423 } & {
13424 resultFunc: (resultFuncArgs_0: any, resultFuncArgs_1: any) => any;
13425 memoizedResultFunc: ((resultFuncArgs_0: any, resultFuncArgs_1: any) => any) & {
13426 clearCache: () => void;
13427 resultsCount: () => number;
13428 resetResultsCount: () => void;
13429 };
13430 lastResult: () => any;
13431 dependencies: [(state: any) => any, (state: any) => any];
13432 recomputations: () => number;
13433 resetRecomputations: () => void;
13434 dependencyRecomputations: () => number;
13435 resetDependencyRecomputations: () => void;
13770 lastResult: () => boolean;
13771 dependencies: [(state: any) => any, (state: any) => string[]];
13772 recomputations: () => number;
13773 resetRecomputations: () => void;
13774 dependencyRecomputations: () => number;
13775 resetDependencyRecomputations: () => void;
13776 } & {
13777 memoize: typeof import("reselect").weakMapMemoize;
13778 argsMemoize: typeof import("reselect").weakMapMemoize;
13779 };
13780 export function getHasCallMemberConnected(memberId: any): (state: any) => boolean;
13781 export function makeGetHasCallMemberConnected(memberId: any): ((state: any) => boolean) & {
13782 clearCache: () => void;
13783 resultsCount: () => number;
13784 resetResultsCount: () => void;
13785 } & {
13786 resultFunc: (resultFuncArgs_0: any) => boolean;
13787 memoizedResultFunc: ((resultFuncArgs_0: any) => boolean) & {
13788 clearCache: () => void;
13789 resultsCount: () => number;
13790 resetResultsCount: () => void;
13791 };
13792 lastResult: () => boolean;
13793 dependencies: [(state: any) => any];
13794 recomputations: () => number;
13795 resetRecomputations: () => void;
13796 dependencyRecomputations: () => number;
13797 resetDependencyRecomputations: () => void;
13798 } & {
13799 memoize: typeof import("reselect").weakMapMemoize;
13800 argsMemoize: typeof import("reselect").weakMapMemoize;
13801 };
13802 export function makeGetPositionPreservedActiveSwarmIds(): ((state: any, limit: any) => any) & {
13803 clearCache: () => void;
13804 resultsCount: () => number;
13805 resetResultsCount: () => void;
13806 } & {
13807 resultFunc: (resultFuncArgs_0: readonly any[], resultFuncArgs_1: any) => any;
13808 memoizedResultFunc: ((resultFuncArgs_0: readonly any[], resultFuncArgs_1: any) => any) & {
13809 clearCache: () => void;
13810 resultsCount: () => number;
13811 resetResultsCount: () => void;
13812 };
13813 lastResult: () => any;
13814 dependencies: [((state: any) => readonly any[]) & {
13815 clearCache: () => void;
13816 resultsCount: () => number;
13817 resetResultsCount: () => void;
13818 } & {
13819 resultFunc: (resultFuncArgs_0: any, resultFuncArgs_1: any, resultFuncArgs_2: any) => readonly any[];
13820 memoizedResultFunc: ((resultFuncArgs_0: any, resultFuncArgs_1: any, resultFuncArgs_2: any) => readonly any[]) & {
13821 clearCache: () => void;
13822 resultsCount: () => number;
13823 resetResultsCount: () => void;
13824 };
13825 lastResult: () => readonly any[];
13826 dependencies: [(state: any) => any, (state: any) => any, (state: any) => any];
13827 recomputations: () => number;
13828 resetRecomputations: () => void;
13829 dependencyRecomputations: () => number;
13830 resetDependencyRecomputations: () => void;
1343613831 } & {
1343713832 memoize: typeof import("reselect").weakMapMemoize;
1343813833 argsMemoize: typeof import("reselect").weakMapMemoize;
……@@ -13801,6 +14196,7 @@ declare module "store/ui-desktop/ui.constants" {
1380114196 let REPORTED_MEMBERS_LIST: "reportedMembersList";
1380214197 let DM_REQUEST_MEMBER: "dmRequestMember";
1380314198 let DEBUG: "debug";
14199 let DEV_TOOLS: "devTools";
1380414200 let GROUP_SETTINGS: "groupSettings";
1380514201 }
1380614202 export namespace PROFILE_SECTIONS {
……@@ -13845,12 +14241,12 @@ declare module "store/ui-desktop/ui.constants" {
1384514241 export type UIPanel = "chat" | "call" | "profile" | "rooms" | "roomInfo" | "feed" | "identityProfile" | "callParticipants";
1384614242 export type RoomListTab = "joined" | "pairing" | "dm-requests" | "discovering";
1384714243 export type UIChatEventModalType = "" | "REMOVE" | "REPORT";
13848 export type RoomInfoSectionType = "settings" | "member" | "files" | "roomInfo" | "members" | "mutedMembers" | "adminsModerators" | "manageMember" | "reportedMessagesList" | "membersReportedList" | "reportedMessage" | "reportedMembersList" | "dmRequestMember" | "debug" | "groupSettings";
14244 export type RoomInfoSectionType = "settings" | "member" | "files" | "roomInfo" | "members" | "mutedMembers" | "adminsModerators" | "manageMember" | "reportedMessagesList" | "membersReportedList" | "reportedMessage" | "reportedMembersList" | "dmRequestMember" | "debug" | "devTools" | "groupSettings";
1384914245 export type RoomInfoSection = {
1385014246 section: RoomInfoSectionType;
1385114247 sectionParams: any;
1385214248 };
13853 export type ProfileSection = "" | "settings" | "notifications" | "devices" | "callRingtone" | "notificationSound" | "version" | "debug" | "devices-add" | "network-status" | "network-settings" | "language" | "privacySecurity" | "recover" | "recoveryPhraseRequest" | "recoveryPhraseView" | "resetApp" | "resetAppRequest" | "qr" | "feedback" | "about-us" | "performance" | "wallet" | "wallet-configuration" | "wallet-import-configuration" | "error-log" | "error-log-details" | "error-log-report" | "error-log-syslog" | "error-log-time-stats";
14249 export type ProfileSection = "" | "settings" | "notifications" | "devices" | "version" | "callRingtone" | "notificationSound" | "debug" | "devices-add" | "network-status" | "network-settings" | "language" | "privacySecurity" | "recover" | "recoveryPhraseRequest" | "recoveryPhraseView" | "resetApp" | "resetAppRequest" | "qr" | "feedback" | "about-us" | "performance" | "wallet" | "wallet-configuration" | "wallet-import-configuration" | "error-log" | "error-log-details" | "error-log-report" | "error-log-syslog" | "error-log-time-stats";
1385414250}
1385514251declare module "store/ui-desktop/ui-modal.reducer" {
1385614252 /**
……@@ -15378,6 +15774,9 @@ declare module "store/app/app.saga" {
1537815774 }> | import("redux-saga/effects").SelectEffect | Generator<Generator<any, any, any> | import("redux-saga/effects").SelectEffect | import("redux-saga/effects").PutEffect<{
1537915775 payload: import("store/notification").ErrorNotificationParam;
1538015776 type: string;
15777 }> | import("redux-saga/effects").PutEffect<{
15778 payload: boolean;
15779 type: "chat/set-input-is-processing";
1538115780 }> | import("redux-saga/effects").PutEffect<{
1538215781 payload: {
1538315782 roomId: string;
……@@ -15386,6 +15785,9 @@ declare module "store/app/app.saga" {
1538615785 }> | import("redux-saga/effects").PutEffect<{
1538715786 payload: import("store/chat").SendChatFilesPayload;
1538815787 type: "chat/sendChatFiles";
15788 }> | import("redux-saga/effects").PutEffect<{
15789 payload: boolean;
15790 type: "chat/set-input-clear-requested";
1538915791 }>, void, any>, void, string & Record<string, {
1539015792 url: string;
1539115793 } & InvitationPreview> & RoomConfig>;
……@@ -15553,11 +15955,14 @@ declare module "store/ui-mobile/ui.reducer" {
1555315955 appActive: boolean;
1555415956 shareContent: any[];
1555515957 shareRoomId: string;
15556 callAudioCurrentOutput: string;
15557 callAudioOutputs: any[];
15558 callSpeakerOn: boolean;
15559 isCallLoading: boolean;
15560 nativeCallRinging: boolean;
15958 call: {
15959 audioCurrentOutput: string;
15960 audioOutputs: any[];
15961 speakerOn: boolean;
15962 isLoading: boolean;
15963 nativeCallRinging: boolean;
15964 screenVideoTrackId: any;
15965 };
1556115966 deviceIsOnSilentMode: boolean;
1556215967 onboarding: {
1556315968 showWalkthroughTooltip: boolean;
……@@ -15606,11 +16011,14 @@ declare module "store/ui-mobile/ui.reducer" {
1560616011 appActive: boolean;
1560716012 shareContent: any[];
1560816013 shareRoomId: string;
15609 callAudioCurrentOutput: string;
15610 callAudioOutputs: any[];
15611 callSpeakerOn: boolean;
15612 isCallLoading: boolean;
15613 nativeCallRinging: boolean;
16014 call: {
16015 audioCurrentOutput: string;
16016 audioOutputs: any[];
16017 speakerOn: boolean;
16018 isLoading: boolean;
16019 nativeCallRinging: boolean;
16020 screenVideoTrackId: any;
16021 };
1561416022 deviceIsOnSilentMode: boolean;
1561516023 onboarding: {
1561616024 showWalkthroughTooltip: boolean;
……@@ -15662,11 +16070,14 @@ declare module "store/ui-mobile/ui.reducer" {
1566216070 appActive: boolean;
1566316071 shareContent: any[];
1566416072 shareRoomId: string;
15665 callAudioCurrentOutput: string;
15666 callAudioOutputs: any[];
15667 callSpeakerOn: boolean;
15668 isCallLoading: boolean;
15669 nativeCallRinging: boolean;
16073 call: {
16074 audioCurrentOutput: string;
16075 audioOutputs: any[];
16076 speakerOn: boolean;
16077 isLoading: boolean;
16078 nativeCallRinging: boolean;
16079 screenVideoTrackId: any;
16080 };
1567016081 deviceIsOnSilentMode: boolean;
1567116082 onboarding: {
1567216083 showWalkthroughTooltip: boolean;
……@@ -15718,11 +16129,14 @@ declare module "store/ui-mobile/ui.reducer" {
1571816129 appActive: boolean;
1571916130 shareContent: any[];
1572016131 shareRoomId: string;
15721 callAudioCurrentOutput: string;
15722 callAudioOutputs: any[];
15723 callSpeakerOn: boolean;
15724 isCallLoading: boolean;
15725 nativeCallRinging: boolean;
16132 call: {
16133 audioCurrentOutput: string;
16134 audioOutputs: any[];
16135 speakerOn: boolean;
16136 isLoading: boolean;
16137 nativeCallRinging: boolean;
16138 screenVideoTrackId: any;
16139 };
1572616140 deviceIsOnSilentMode: boolean;
1572716141 onboarding: {
1572816142 showWalkthroughTooltip: boolean;
……@@ -15774,11 +16188,14 @@ declare module "store/ui-mobile/ui.reducer" {
1577416188 appActive: boolean;
1577516189 shareContent: any[];
1577616190 shareRoomId: string;
15777 callAudioCurrentOutput: string;
15778 callAudioOutputs: any[];
15779 callSpeakerOn: boolean;
15780 isCallLoading: boolean;
15781 nativeCallRinging: boolean;
16191 call: {
16192 audioCurrentOutput: string;
16193 audioOutputs: any[];
16194 speakerOn: boolean;
16195 isLoading: boolean;
16196 nativeCallRinging: boolean;
16197 screenVideoTrackId: any;
16198 };
1578216199 deviceIsOnSilentMode: boolean;
1578316200 onboarding: {
1578416201 showWalkthroughTooltip: boolean;
……@@ -15827,11 +16244,14 @@ declare module "store/ui-mobile/ui.reducer" {
1582716244 appActive: boolean;
1582816245 shareContent: any[];
1582916246 shareRoomId: string;
15830 callAudioCurrentOutput: string;
15831 callAudioOutputs: any[];
15832 callSpeakerOn: boolean;
15833 isCallLoading: boolean;
15834 nativeCallRinging: boolean;
16247 call: {
16248 audioCurrentOutput: string;
16249 audioOutputs: any[];
16250 speakerOn: boolean;
16251 isLoading: boolean;
16252 nativeCallRinging: boolean;
16253 screenVideoTrackId: any;
16254 };
1583516255 deviceIsOnSilentMode: boolean;
1583616256 onboarding: {
1583716257 showWalkthroughTooltip: boolean;
……@@ -15883,11 +16303,14 @@ declare module "store/ui-mobile/ui.reducer" {
1588316303 appActive: boolean;
1588416304 shareContent: any[];
1588516305 shareRoomId: string;
15886 callAudioCurrentOutput: string;
15887 callAudioOutputs: any[];
15888 callSpeakerOn: boolean;
15889 isCallLoading: boolean;
15890 nativeCallRinging: boolean;
16306 call: {
16307 audioCurrentOutput: string;
16308 audioOutputs: any[];
16309 speakerOn: boolean;
16310 isLoading: boolean;
16311 nativeCallRinging: boolean;
16312 screenVideoTrackId: any;
16313 };
1589116314 deviceIsOnSilentMode: boolean;
1589216315 onboarding: {
1589316316 showWalkthroughTooltip: boolean;
……@@ -15939,11 +16362,14 @@ declare module "store/ui-mobile/ui.reducer" {
1593916362 appActive: boolean;
1594016363 shareContent: any[];
1594116364 shareRoomId: string;
15942 callAudioCurrentOutput: string;
15943 callAudioOutputs: any[];
15944 callSpeakerOn: boolean;
15945 isCallLoading: boolean;
15946 nativeCallRinging: boolean;
16365 call: {
16366 audioCurrentOutput: string;
16367 audioOutputs: any[];
16368 speakerOn: boolean;
16369 isLoading: boolean;
16370 nativeCallRinging: boolean;
16371 screenVideoTrackId: any;
16372 };
1594716373 deviceIsOnSilentMode: boolean;
1594816374 onboarding: {
1594916375 showWalkthroughTooltip: boolean;
……@@ -15995,11 +16421,14 @@ declare module "store/ui-mobile/ui.reducer" {
1599516421 appActive: boolean;
1599616422 shareContent: any[];
1599716423 shareRoomId: string;
15998 callAudioCurrentOutput: string;
15999 callAudioOutputs: any[];
16000 callSpeakerOn: boolean;
16001 isCallLoading: boolean;
16002 nativeCallRinging: boolean;
16424 call: {
16425 audioCurrentOutput: string;
16426 audioOutputs: any[];
16427 speakerOn: boolean;
16428 isLoading: boolean;
16429 nativeCallRinging: boolean;
16430 screenVideoTrackId: any;
16431 };
1600316432 deviceIsOnSilentMode: boolean;
1600416433 onboarding: {
1600516434 showWalkthroughTooltip: boolean;
……@@ -16051,11 +16480,14 @@ declare module "store/ui-mobile/ui.reducer" {
1605116480 appActive: boolean;
1605216481 shareContent: any[];
1605316482 shareRoomId: string;
16054 callAudioCurrentOutput: string;
16055 callAudioOutputs: any[];
16056 callSpeakerOn: boolean;
16057 isCallLoading: boolean;
16058 nativeCallRinging: boolean;
16483 call: {
16484 audioCurrentOutput: string;
16485 audioOutputs: any[];
16486 speakerOn: boolean;
16487 isLoading: boolean;
16488 nativeCallRinging: boolean;
16489 screenVideoTrackId: any;
16490 };
1605916491 deviceIsOnSilentMode: boolean;
1606016492 onboarding: {
1606116493 showWalkthroughTooltip: boolean;
……@@ -16107,11 +16539,14 @@ declare module "store/ui-mobile/ui.reducer" {
1610716539 appActive: boolean;
1610816540 shareContent: any[];
1610916541 shareRoomId: string;
16110 callAudioCurrentOutput: string;
16111 callAudioOutputs: any[];
16112 callSpeakerOn: boolean;
16113 isCallLoading: boolean;
16114 nativeCallRinging: boolean;
16542 call: {
16543 audioCurrentOutput: string;
16544 audioOutputs: any[];
16545 speakerOn: boolean;
16546 isLoading: boolean;
16547 nativeCallRinging: boolean;
16548 screenVideoTrackId: any;
16549 };
1611516550 deviceIsOnSilentMode: boolean;
1611616551 onboarding: {
1611716552 showWalkthroughTooltip: boolean;
……@@ -16163,11 +16598,14 @@ declare module "store/ui-mobile/ui.reducer" {
1616316598 appActive: boolean;
1616416599 shareContent: any[];
1616516600 shareRoomId: string;
16166 callAudioCurrentOutput: string;
16167 callAudioOutputs: any[];
16168 callSpeakerOn: boolean;
16169 isCallLoading: boolean;
16170 nativeCallRinging: boolean;
16601 call: {
16602 audioCurrentOutput: string;
16603 audioOutputs: any[];
16604 speakerOn: boolean;
16605 isLoading: boolean;
16606 nativeCallRinging: boolean;
16607 screenVideoTrackId: any;
16608 };
1617116609 deviceIsOnSilentMode: boolean;
1617216610 onboarding: {
1617316611 showWalkthroughTooltip: boolean;
……@@ -16219,11 +16657,14 @@ declare module "store/ui-mobile/ui.reducer" {
1621916657 appActive: boolean;
1622016658 shareContent: any[];
1622116659 shareRoomId: string;
16222 callAudioCurrentOutput: string;
16223 callAudioOutputs: any[];
16224 callSpeakerOn: boolean;
16225 isCallLoading: boolean;
16226 nativeCallRinging: boolean;
16660 call: {
16661 audioCurrentOutput: string;
16662 audioOutputs: any[];
16663 speakerOn: boolean;
16664 isLoading: boolean;
16665 nativeCallRinging: boolean;
16666 screenVideoTrackId: any;
16667 };
1622716668 deviceIsOnSilentMode: boolean;
1622816669 onboarding: {
1622916670 showWalkthroughTooltip: boolean;
……@@ -16275,11 +16716,73 @@ declare module "store/ui-mobile/ui.reducer" {
1627516716 appActive: boolean;
1627616717 shareContent: any[];
1627716718 shareRoomId: string;
16278 callAudioCurrentOutput: string;
16279 callAudioOutputs: any[];
16280 callSpeakerOn: boolean;
16281 isCallLoading: boolean;
16282 nativeCallRinging: boolean;
16719 call: {
16720 audioCurrentOutput: string;
16721 audioOutputs: any[];
16722 speakerOn: boolean;
16723 isLoading: boolean;
16724 nativeCallRinging: boolean;
16725 screenVideoTrackId: any;
16726 };
16727 deviceIsOnSilentMode: boolean;
16728 onboarding: {
16729 showWalkthroughTooltip: boolean;
16730 walkthroughStep: number;
16731 };
16732 appModal: {
16733 showModal: boolean;
16734 queue: any[];
16735 };
16736 appNavigator: {
16737 currentRoute: string;
16738 isMounted: boolean;
16739 isInitialized: boolean;
16740 };
16741 stats: {
16742 showStats: boolean;
16743 collapseStats: boolean;
16744 statsExpanded: boolean;
16745 statsVisible: boolean;
16746 };
16747 bottomSheet: {
16748 showBottomSheet: boolean;
16749 sheetType: number;
16750 };
16751 voiceMessage: {
16752 currentSoundUri: string;
16753 uri: string;
16754 audioSamples: any[];
16755 duration: number;
16756 isLocked: boolean;
16757 isStopped: boolean;
16758 isRecording: boolean;
16759 };
16760 room: {
16761 chatBarHeight: number;
16762 isShowEmojiKeyboard: boolean;
16763 isShowPhotoPicker: boolean;
16764 isShowInputExtras: boolean;
16765 };
16766 passcode: {
16767 isAuthenticated: boolean;
16768 };
16769 }>, action: {
16770 payload: any;
16771 type: string;
16772 }) => void;
16773 setUICallScreenVideoTrackId: (state: import("immer").WritableDraft<{
16774 appState: "init";
16775 appActive: boolean;
16776 shareContent: any[];
16777 shareRoomId: string;
16778 call: {
16779 audioCurrentOutput: string;
16780 audioOutputs: any[];
16781 speakerOn: boolean;
16782 isLoading: boolean;
16783 nativeCallRinging: boolean;
16784 screenVideoTrackId: any;
16785 };
1628316786 deviceIsOnSilentMode: boolean;
1628416787 onboarding: {
1628516788 showWalkthroughTooltip: boolean;
……@@ -16331,11 +16834,14 @@ declare module "store/ui-mobile/ui.reducer" {
1633116834 appActive: boolean;
1633216835 shareContent: any[];
1633316836 shareRoomId: string;
16334 callAudioCurrentOutput: string;
16335 callAudioOutputs: any[];
16336 callSpeakerOn: boolean;
16337 isCallLoading: boolean;
16338 nativeCallRinging: boolean;
16837 call: {
16838 audioCurrentOutput: string;
16839 audioOutputs: any[];
16840 speakerOn: boolean;
16841 isLoading: boolean;
16842 nativeCallRinging: boolean;
16843 screenVideoTrackId: any;
16844 };
1633916845 deviceIsOnSilentMode: boolean;
1634016846 onboarding: {
1634116847 showWalkthroughTooltip: boolean;
……@@ -16384,11 +16890,14 @@ declare module "store/ui-mobile/ui.reducer" {
1638416890 appActive: boolean;
1638516891 shareContent: any[];
1638616892 shareRoomId: string;
16387 callAudioCurrentOutput: string;
16388 callAudioOutputs: any[];
16389 callSpeakerOn: boolean;
16390 isCallLoading: boolean;
16391 nativeCallRinging: boolean;
16893 call: {
16894 audioCurrentOutput: string;
16895 audioOutputs: any[];
16896 speakerOn: boolean;
16897 isLoading: boolean;
16898 nativeCallRinging: boolean;
16899 screenVideoTrackId: any;
16900 };
1639216901 deviceIsOnSilentMode: boolean;
1639316902 onboarding: {
1639416903 showWalkthroughTooltip: boolean;
……@@ -16437,11 +16946,14 @@ declare module "store/ui-mobile/ui.reducer" {
1643716946 appActive: boolean;
1643816947 shareContent: any[];
1643916948 shareRoomId: string;
16440 callAudioCurrentOutput: string;
16441 callAudioOutputs: any[];
16442 callSpeakerOn: boolean;
16443 isCallLoading: boolean;
16444 nativeCallRinging: boolean;
16949 call: {
16950 audioCurrentOutput: string;
16951 audioOutputs: any[];
16952 speakerOn: boolean;
16953 isLoading: boolean;
16954 nativeCallRinging: boolean;
16955 screenVideoTrackId: any;
16956 };
1644516957 deviceIsOnSilentMode: boolean;
1644616958 onboarding: {
1644716959 showWalkthroughTooltip: boolean;
……@@ -16493,11 +17005,14 @@ declare module "store/ui-mobile/ui.reducer" {
1649317005 appActive: boolean;
1649417006 shareContent: any[];
1649517007 shareRoomId: string;
16496 callAudioCurrentOutput: string;
16497 callAudioOutputs: any[];
16498 callSpeakerOn: boolean;
16499 isCallLoading: boolean;
16500 nativeCallRinging: boolean;
17008 call: {
17009 audioCurrentOutput: string;
17010 audioOutputs: any[];
17011 speakerOn: boolean;
17012 isLoading: boolean;
17013 nativeCallRinging: boolean;
17014 screenVideoTrackId: any;
17015 };
1650117016 deviceIsOnSilentMode: boolean;
1650217017 onboarding: {
1650317018 showWalkthroughTooltip: boolean;
……@@ -16549,11 +17064,14 @@ declare module "store/ui-mobile/ui.reducer" {
1654917064 appActive: boolean;
1655017065 shareContent: any[];
1655117066 shareRoomId: string;
16552 callAudioCurrentOutput: string;
16553 callAudioOutputs: any[];
16554 callSpeakerOn: boolean;
16555 isCallLoading: boolean;
16556 nativeCallRinging: boolean;
17067 call: {
17068 audioCurrentOutput: string;
17069 audioOutputs: any[];
17070 speakerOn: boolean;
17071 isLoading: boolean;
17072 nativeCallRinging: boolean;
17073 screenVideoTrackId: any;
17074 };
1655717075 deviceIsOnSilentMode: boolean;
1655817076 onboarding: {
1655917077 showWalkthroughTooltip: boolean;
……@@ -16602,11 +17120,14 @@ declare module "store/ui-mobile/ui.reducer" {
1660217120 appActive: boolean;
1660317121 shareContent: any[];
1660417122 shareRoomId: string;
16605 callAudioCurrentOutput: string;
16606 callAudioOutputs: any[];
16607 callSpeakerOn: boolean;
16608 isCallLoading: boolean;
16609 nativeCallRinging: boolean;
17123 call: {
17124 audioCurrentOutput: string;
17125 audioOutputs: any[];
17126 speakerOn: boolean;
17127 isLoading: boolean;
17128 nativeCallRinging: boolean;
17129 screenVideoTrackId: any;
17130 };
1661017131 deviceIsOnSilentMode: boolean;
1661117132 onboarding: {
1661217133 showWalkthroughTooltip: boolean;
……@@ -16655,11 +17176,14 @@ declare module "store/ui-mobile/ui.reducer" {
1665517176 appActive: boolean;
1665617177 shareContent: any[];
1665717178 shareRoomId: string;
16658 callAudioCurrentOutput: string;
16659 callAudioOutputs: any[];
16660 callSpeakerOn: boolean;
16661 isCallLoading: boolean;
16662 nativeCallRinging: boolean;
17179 call: {
17180 audioCurrentOutput: string;
17181 audioOutputs: any[];
17182 speakerOn: boolean;
17183 isLoading: boolean;
17184 nativeCallRinging: boolean;
17185 screenVideoTrackId: any;
17186 };
1666317187 deviceIsOnSilentMode: boolean;
1666417188 onboarding: {
1666517189 showWalkthroughTooltip: boolean;
……@@ -16711,11 +17235,14 @@ declare module "store/ui-mobile/ui.reducer" {
1671117235 appActive: boolean;
1671217236 shareContent: any[];
1671317237 shareRoomId: string;
16714 callAudioCurrentOutput: string;
16715 callAudioOutputs: any[];
16716 callSpeakerOn: boolean;
16717 isCallLoading: boolean;
16718 nativeCallRinging: boolean;
17238 call: {
17239 audioCurrentOutput: string;
17240 audioOutputs: any[];
17241 speakerOn: boolean;
17242 isLoading: boolean;
17243 nativeCallRinging: boolean;
17244 screenVideoTrackId: any;
17245 };
1671917246 deviceIsOnSilentMode: boolean;
1672017247 onboarding: {
1672117248 showWalkthroughTooltip: boolean;
……@@ -16767,11 +17294,14 @@ declare module "store/ui-mobile/ui.reducer" {
1676717294 appActive: boolean;
1676817295 shareContent: any[];
1676917296 shareRoomId: string;
16770 callAudioCurrentOutput: string;
16771 callAudioOutputs: any[];
16772 callSpeakerOn: boolean;
16773 isCallLoading: boolean;
16774 nativeCallRinging: boolean;
17297 call: {
17298 audioCurrentOutput: string;
17299 audioOutputs: any[];
17300 speakerOn: boolean;
17301 isLoading: boolean;
17302 nativeCallRinging: boolean;
17303 screenVideoTrackId: any;
17304 };
1677517305 deviceIsOnSilentMode: boolean;
1677617306 onboarding: {
1677717307 showWalkthroughTooltip: boolean;
……@@ -16823,11 +17353,14 @@ declare module "store/ui-mobile/ui.reducer" {
1682317353 appActive: boolean;
1682417354 shareContent: any[];
1682517355 shareRoomId: string;
16826 callAudioCurrentOutput: string;
16827 callAudioOutputs: any[];
16828 callSpeakerOn: boolean;
16829 isCallLoading: boolean;
16830 nativeCallRinging: boolean;
17356 call: {
17357 audioCurrentOutput: string;
17358 audioOutputs: any[];
17359 speakerOn: boolean;
17360 isLoading: boolean;
17361 nativeCallRinging: boolean;
17362 screenVideoTrackId: any;
17363 };
1683117364 deviceIsOnSilentMode: boolean;
1683217365 onboarding: {
1683317366 showWalkthroughTooltip: boolean;
……@@ -16879,11 +17412,14 @@ declare module "store/ui-mobile/ui.reducer" {
1687917412 appActive: boolean;
1688017413 shareContent: any[];
1688117414 shareRoomId: string;
16882 callAudioCurrentOutput: string;
16883 callAudioOutputs: any[];
16884 callSpeakerOn: boolean;
16885 isCallLoading: boolean;
16886 nativeCallRinging: boolean;
17415 call: {
17416 audioCurrentOutput: string;
17417 audioOutputs: any[];
17418 speakerOn: boolean;
17419 isLoading: boolean;
17420 nativeCallRinging: boolean;
17421 screenVideoTrackId: any;
17422 };
1688717423 deviceIsOnSilentMode: boolean;
1688817424 onboarding: {
1688917425 showWalkthroughTooltip: boolean;
……@@ -16935,11 +17471,14 @@ declare module "store/ui-mobile/ui.reducer" {
1693517471 appActive: boolean;
1693617472 shareContent: any[];
1693717473 shareRoomId: string;
16938 callAudioCurrentOutput: string;
16939 callAudioOutputs: any[];
16940 callSpeakerOn: boolean;
16941 isCallLoading: boolean;
16942 nativeCallRinging: boolean;
17474 call: {
17475 audioCurrentOutput: string;
17476 audioOutputs: any[];
17477 speakerOn: boolean;
17478 isLoading: boolean;
17479 nativeCallRinging: boolean;
17480 screenVideoTrackId: any;
17481 };
1694317482 deviceIsOnSilentMode: boolean;
1694417483 onboarding: {
1694517484 showWalkthroughTooltip: boolean;
……@@ -16991,11 +17530,14 @@ declare module "store/ui-mobile/ui.reducer" {
1699117530 appActive: boolean;
1699217531 shareContent: any[];
1699317532 shareRoomId: string;
16994 callAudioCurrentOutput: string;
16995 callAudioOutputs: any[];
16996 callSpeakerOn: boolean;
16997 isCallLoading: boolean;
16998 nativeCallRinging: boolean;
17533 call: {
17534 audioCurrentOutput: string;
17535 audioOutputs: any[];
17536 speakerOn: boolean;
17537 isLoading: boolean;
17538 nativeCallRinging: boolean;
17539 screenVideoTrackId: any;
17540 };
1699917541 deviceIsOnSilentMode: boolean;
1700017542 onboarding: {
1700117543 showWalkthroughTooltip: boolean;
……@@ -17047,11 +17589,14 @@ declare module "store/ui-mobile/ui.reducer" {
1704717589 appActive: boolean;
1704817590 shareContent: any[];
1704917591 shareRoomId: string;
17050 callAudioCurrentOutput: string;
17051 callAudioOutputs: any[];
17052 callSpeakerOn: boolean;
17053 isCallLoading: boolean;
17054 nativeCallRinging: boolean;
17592 call: {
17593 audioCurrentOutput: string;
17594 audioOutputs: any[];
17595 speakerOn: boolean;
17596 isLoading: boolean;
17597 nativeCallRinging: boolean;
17598 screenVideoTrackId: any;
17599 };
1705517600 deviceIsOnSilentMode: boolean;
1705617601 onboarding: {
1705717602 showWalkthroughTooltip: boolean;
……@@ -17103,11 +17648,14 @@ declare module "store/ui-mobile/ui.reducer" {
1710317648 appActive: boolean;
1710417649 shareContent: any[];
1710517650 shareRoomId: string;
17106 callAudioCurrentOutput: string;
17107 callAudioOutputs: any[];
17108 callSpeakerOn: boolean;
17109 isCallLoading: boolean;
17110 nativeCallRinging: boolean;
17651 call: {
17652 audioCurrentOutput: string;
17653 audioOutputs: any[];
17654 speakerOn: boolean;
17655 isLoading: boolean;
17656 nativeCallRinging: boolean;
17657 screenVideoTrackId: any;
17658 };
1711117659 deviceIsOnSilentMode: boolean;
1711217660 onboarding: {
1711317661 showWalkthroughTooltip: boolean;
……@@ -17159,11 +17707,14 @@ declare module "store/ui-mobile/ui.reducer" {
1715917707 appActive: boolean;
1716017708 shareContent: any[];
1716117709 shareRoomId: string;
17162 callAudioCurrentOutput: string;
17163 callAudioOutputs: any[];
17164 callSpeakerOn: boolean;
17165 isCallLoading: boolean;
17166 nativeCallRinging: boolean;
17710 call: {
17711 audioCurrentOutput: string;
17712 audioOutputs: any[];
17713 speakerOn: boolean;
17714 isLoading: boolean;
17715 nativeCallRinging: boolean;
17716 screenVideoTrackId: any;
17717 };
1716717718 deviceIsOnSilentMode: boolean;
1716817719 onboarding: {
1716917720 showWalkthroughTooltip: boolean;
……@@ -17215,11 +17766,14 @@ declare module "store/ui-mobile/ui.reducer" {
1721517766 appActive: boolean;
1721617767 shareContent: any[];
1721717768 shareRoomId: string;
17218 callAudioCurrentOutput: string;
17219 callAudioOutputs: any[];
17220 callSpeakerOn: boolean;
17221 isCallLoading: boolean;
17222 nativeCallRinging: boolean;
17769 call: {
17770 audioCurrentOutput: string;
17771 audioOutputs: any[];
17772 speakerOn: boolean;
17773 isLoading: boolean;
17774 nativeCallRinging: boolean;
17775 screenVideoTrackId: any;
17776 };
1722317777 deviceIsOnSilentMode: boolean;
1722417778 onboarding: {
1722517779 showWalkthroughTooltip: boolean;
……@@ -17271,11 +17825,14 @@ declare module "store/ui-mobile/ui.reducer" {
1727117825 appActive: boolean;
1727217826 shareContent: any[];
1727317827 shareRoomId: string;
17274 callAudioCurrentOutput: string;
17275 callAudioOutputs: any[];
17276 callSpeakerOn: boolean;
17277 isCallLoading: boolean;
17278 nativeCallRinging: boolean;
17828 call: {
17829 audioCurrentOutput: string;
17830 audioOutputs: any[];
17831 speakerOn: boolean;
17832 isLoading: boolean;
17833 nativeCallRinging: boolean;
17834 screenVideoTrackId: any;
17835 };
1727917836 deviceIsOnSilentMode: boolean;
1728017837 onboarding: {
1728117838 showWalkthroughTooltip: boolean;
……@@ -17327,11 +17884,14 @@ declare module "store/ui-mobile/ui.reducer" {
1732717884 appActive: boolean;
1732817885 shareContent: any[];
1732917886 shareRoomId: string;
17330 callAudioCurrentOutput: string;
17331 callAudioOutputs: any[];
17332 callSpeakerOn: boolean;
17333 isCallLoading: boolean;
17334 nativeCallRinging: boolean;
17887 call: {
17888 audioCurrentOutput: string;
17889 audioOutputs: any[];
17890 speakerOn: boolean;
17891 isLoading: boolean;
17892 nativeCallRinging: boolean;
17893 screenVideoTrackId: any;
17894 };
1733517895 deviceIsOnSilentMode: boolean;
1733617896 onboarding: {
1733717897 showWalkthroughTooltip: boolean;
……@@ -17383,11 +17943,14 @@ declare module "store/ui-mobile/ui.reducer" {
1738317943 appActive: boolean;
1738417944 shareContent: any[];
1738517945 shareRoomId: string;
17386 callAudioCurrentOutput: string;
17387 callAudioOutputs: any[];
17388 callSpeakerOn: boolean;
17389 isCallLoading: boolean;
17390 nativeCallRinging: boolean;
17946 call: {
17947 audioCurrentOutput: string;
17948 audioOutputs: any[];
17949 speakerOn: boolean;
17950 isLoading: boolean;
17951 nativeCallRinging: boolean;
17952 screenVideoTrackId: any;
17953 };
1739117954 deviceIsOnSilentMode: boolean;
1739217955 onboarding: {
1739317956 showWalkthroughTooltip: boolean;
……@@ -17442,6 +18005,7 @@ declare module "store/ui-mobile/ui.reducer" {
1744218005 export function getUICallSpeaker(state: any): any;
1744318006 export function getUIIsCallLoading(state: any): any;
1744418007 export function getUINativeCallRinging(state: any): any;
18008 export function getUIScreenVideoTrackId(state: any): any;
1744518009 export function getUIShareContent(state: any): any;
1744618010 export function getUIShareRoomId(state: any): any;
1744718011 export function getUIPushNotificationPermissionsGranted(state: any): any;
……@@ -17508,6 +18072,7 @@ declare module "store/ui-mobile/ui.reducer" {
1750818072 export const setUIIsCallLoading: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "ui-mobile/setUIIsCallLoading">;
1750918073 export const setUIUserAuthenticationStatus: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "ui-mobile/setUIUserAuthenticationStatus">;
1751018074 export const setUINativeCallRinging: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "ui-mobile/setUINativeCallRinging">;
18075 export const setUICallScreenVideoTrackId: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "ui-mobile/setUICallScreenVideoTrackId">;
1751118076}
1751218077declare module "store/ui-mobile/ui.action" {
1751318078 /** @type {ActionCreatorWithoutPayload} */
……@@ -18096,128 +18661,6 @@ declare module "store/app/index" {
1809618661 export * from "store/app/saga/app-call.saga";
1809718662 export * from "store/app/saga/mobile-room-notifications.saga";
1809818663}
18099declare module "store/network/network.constants" {
18100 export namespace NETWORK_CONFIG {
18101 let NETWORK_UPDATE_DURATION: number;
18102 }
18103 export namespace NETWORK_STATUS {
18104 let ONLINE: "online";
18105 let OFFLINE: "offline";
18106 let TRICKY: "tricky";
18107 let UNKNOWN: "unknown";
18108 }
18109 export type NetworkStatusData = {
18110 host: string;
18111 port: number;
18112 online: boolean;
18113 degraded: boolean;
18114 loaded: boolean;
18115 connections: number;
18116 peers: string[];
18117 };
18118 export type NetworkSettingsValues = {
18119 concurrency: number;
18120 maxWindow: number;
18121 randomPunchInterval: number;
18122 connectionKeepAlive: number;
18123 };
18124 export type NetworkSettings = {
18125 default: NetworkSettingsValues;
18126 values: NetworkSettingsValues;
18127 isCustom: boolean;
18128 isLoaded: boolean;
18129 };
18130 export type NetworkConfig = typeof NETWORK_CONFIG;
18131 export type NetworkState = {
18132 config: NetworkConfig;
18133 status: NetworkStatusData;
18134 settings: NetworkSettings;
18135 };
18136 export type NetworkStatus = (typeof NETWORK_STATUS)[keyof typeof NETWORK_STATUS];
18137}
18138declare module "store/network/network.model" {
18139 export function calcNetworkStatus(data: NetworkStatusData): "unknown" | "online" | "offline" | "tricky";
18140 export function isNetworkStatusChanged(a: NetworkStatusData, b: NetworkStatusData): boolean;
18141 import type { NetworkStatusData } from "store/network/network.constants";
18142}
18143declare module "store/network/network.reducer" {
18144 export const NETWORK_STATE_KEY: "network";
18145 /** @type {NetworkState} */
18146 export const NETWORK_INITIAL_STATE: NetworkState;
18147 export const networkSlice: import("@reduxjs/toolkit").Slice<NetworkState, {
18148 setNetworkData: (state: import("immer").WritableDraft<NetworkState>, { payload: { host, port, online, degraded, connections, peers, loaded, }, }: {
18149 payload: any;
18150 type: string;
18151 }) => void;
18152 setNetworkSettingsDefault: (state: import("immer").WritableDraft<NetworkState>, { payload: { concurrency, maxWindow, randomPunchInterval, connectionKeepAlive, }, }: {
18153 payload: any;
18154 type: string;
18155 }) => void;
18156 setNetworkSettings: (state: import("immer").WritableDraft<NetworkState>, { payload: { concurrency, maxWindow, randomPunchInterval, connectionKeepAlive, isLoaded, }, }: {
18157 payload: any;
18158 type: string;
18159 }) => void;
18160 setNetworkSettingsIsCustom: (state: import("immer").WritableDraft<NetworkState>, { payload }: {
18161 payload: any;
18162 type: string;
18163 }) => void;
18164 resetNetworkSettings: (state: import("immer").WritableDraft<NetworkState>) => void;
18165 }, "network", "network", import("@reduxjs/toolkit").SliceSelectors<NetworkState>>;
18166 export function getNetworkState(state: any): NetworkState;
18167 export function getNetworkConfig(state: any): {
18168 NETWORK_UPDATE_DURATION: number;
18169 };
18170 export function getNetworkStatusState(state: any): NetworkStatusData;
18171 export function getNetworkIp(state: any): string;
18172 export function getNetworkPort(state: any): number;
18173 export function getNetworkLoaded(state: any): boolean;
18174 export function getNetworkOnline(state: any): boolean;
18175 export function getNetworkDegraded(state: any): boolean;
18176 export function getNetworkPeerCount(state: any): number;
18177 export function getNetworkPeers(state: any): string[];
18178 export function getNetworkSettings(state: any): import("store/network").NetworkSettings;
18179 export function getNetworkSettingsDefault(state: any): NetworkSettingsValues;
18180 export function getNetworkSettingsValues(state: any): NetworkSettingsValues;
18181 export function getNetworkSettingsLoading(state: any): boolean;
18182 export const getNetworkSettingsIsCustom: ((state: any) => boolean) & {
18183 clearCache: () => void;
18184 resultsCount: () => number;
18185 resetResultsCount: () => void;
18186 } & {
18187 resultFunc: (resultFuncArgs_0: import("store/network").NetworkSettings) => boolean;
18188 memoizedResultFunc: ((resultFuncArgs_0: import("store/network").NetworkSettings) => boolean) & {
18189 clearCache: () => void;
18190 resultsCount: () => number;
18191 resetResultsCount: () => void;
18192 };
18193 lastResult: () => boolean;
18194 dependencies: [(state: any) => import("store/network").NetworkSettings];
18195 recomputations: () => number;
18196 resetRecomputations: () => void;
18197 dependencyRecomputations: () => number;
18198 resetDependencyRecomputations: () => void;
18199 } & {
18200 memoize: typeof import("reselect").weakMapMemoize;
18201 argsMemoize: typeof import("reselect").weakMapMemoize;
18202 };
18203 export function getNetworkStatus(state: any): "unknown" | "online" | "offline" | "tricky";
18204 export const setNetworkData: ActionCreatorWithPayload<any, "network/setNetworkData">;
18205 export const setNetworkSettings: ActionCreatorWithPayload<any, "network/setNetworkSettings">;
18206 export const setNetworkSettingsDefault: ActionCreatorWithPayload<any, "network/setNetworkSettingsDefault">;
18207 export const setNetworkSettingsIsCustom: ActionCreatorWithPayload<any, "network/setNetworkSettingsIsCustom">;
18208 export const resetNetworkSettings: ActionCreatorWithoutPayload<"network/resetNetworkSettings">;
18209 export const getAppInitialState: () => NetworkState;
18210 export const appReducer: import("redux").Reducer<NetworkState>;
18211 /** @type {ActionCreatorWithoutPayload} */
18212 export const loadNetworkSettings: ActionCreatorWithoutPayload;
18213 /** @type {ActionCreatorWithPayload<NetworkSettingsValues, 'network/update-settings'>} */
18214 export const updateNetworkSettings: ActionCreatorWithPayload<NetworkSettingsValues, "network/update-settings">;
18215 import type { NetworkState } from "store/network/network.constants";
18216 import type { NetworkStatusData } from "store/network/network.constants";
18217 import type { NetworkSettingsValues } from "store/network/network.constants";
18218 import type { ActionCreatorWithPayload } from "@reduxjs/toolkit";
18219 import type { ActionCreatorWithoutPayload } from "@reduxjs/toolkit";
18220}
1822118664declare module "store/network/network.saga" {
1822218665 export function networkStatusSaga(): Generator<Generator<any, any, any> | import("redux-saga/effects").CancelEffect | import("redux-saga/effects").PutEffect<{
1822318666 payload: any;
……@@ -18342,7 +18785,6 @@ declare module "store/debug/debug.reducer" {
1834218785 * @prop {boolean} suspendDisabled
1834318786 * @prop {DebugFlag[]} flags
1834418787 * @prop {AuditState} audit
18345 * @prop {string} profileVersion
1834618788 */
1834718789 export const DEBUG_STATE_KEY: "debug";
1834818790 /** @type {DebugState} */
……@@ -18385,12 +18827,6 @@ declare module "store/debug/debug.reducer" {
1838518827 * @param {PayloadAction<boolean>} action
1838618828 */
1838718829 setSuspendDisabled: (state: DebugState, { payload }: PayloadAction<boolean>) => void;
18388 /**
18389 *
18390 * @param {DebugState} state
18391 * @param {PayloadAction<string>} param
18392 */
18393 setProfileVersion: (state: DebugState, { payload }: PayloadAction<string>) => void;
1839418830 /**
1839518831 * @param {DebugState} state
1839618832 */
……@@ -18411,7 +18847,6 @@ declare module "store/debug/debug.reducer" {
1841118847 export function getIsOffline(state: any): boolean;
1841218848 export function getDebugFlags(state: any): DebugFlag[];
1841318849 export function getAuditResult(state: any): AuditState;
18414 export function getProfileVersion(state: any): string;
1841518850 export function getLocalDbCompact(state: any): LocalDbCompactState;
1841618851 export function getIsLocalDbCompacting(state: any): boolean;
1841718852 export function getLocalDbCompactSuccess(state: any): boolean;
……@@ -18424,7 +18859,6 @@ declare module "store/debug/debug.reducer" {
1842418859 export const setStartAudit: ActionCreatorWithoutPayload<"debug/setStartAudit">;
1842518860 export const setAuditReport: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<AuditResponse, "debug/setAuditReport">;
1842618861 export const setAuditError: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string, "debug/setAuditError">;
18427 export const setProfileVersion: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string, "debug/setProfileVersion">;
1842818862 export const setLocalDbCompacting: ActionCreatorWithoutPayload<"debug/setLocalDbCompacting">;
1842918863 export const setLocalDbCompactError: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string, "debug/setLocalDbCompactError">;
1843018864 export const setLocalDbCompactSuccess: ActionCreatorWithoutPayload<"debug/setLocalDbCompactSuccess">;
……@@ -18444,8 +18878,6 @@ declare module "store/debug/debug.reducer" {
1844418878 export const startLocalDbCompact: ActionCreatorWithoutPayload<"debug/start-local-db-compact">;
1844518879 /** @type {ActionCreatorWithoutPayload<'debug/upgrade-private-profile'>} */
1844618880 export const upgradePrivateProfile: ActionCreatorWithoutPayload<"debug/upgrade-private-profile">;
18447 /** @type {ActionCreatorWithPayload<boolean, 'debug/subscribe-profile-version-cmd'>} */
18448 export const subscribeProfileVersionCmd: ActionCreatorWithPayload<boolean, "debug/subscribe-profile-version-cmd">;
1844918881 export type UpdateDebugFlagPayload = {
1845018882 key: string;
1845118883 value: boolean;
……@@ -18485,7 +18917,6 @@ declare module "store/debug/debug.reducer" {
1848518917 suspendDisabled: boolean;
1848618918 flags: DebugFlag[];
1848718919 audit: AuditState;
18488 profileVersion: string;
1848918920 };
1849018921 import type { PayloadAction } from "@reduxjs/toolkit";
1849118922 import type { ActionCreatorWithoutPayload } from "@reduxjs/toolkit";
……@@ -19509,15 +19940,7 @@ declare module "store/debug/debug.saga" {
1950919940 onError: any;
1951019941 } & {
1951119942 consoleWarn: any;
19512 }> | import("redux-saga/effects").SelectEffect | import("redux-saga/effects").PutEffect<{
19513 payload: any;
19514 type: "identity/setPrivateProfileVersion";
19515 }>, void, {
19516 version: any;
19517 }>;
19518 export function subscribeProfileVersionSaga({ payload: startSubscription }: {
19519 payload: any;
19520 }): Generator<Generator<any, void, unknown> | import("redux-saga/effects").SelectEffect, void, unknown>;
19943 }> | import("redux-saga/effects").SelectEffect, void, unknown>;
1952119944 export function debugMobileSaga(): Generator<import("redux-saga/effects").ForkEffect<Generator<Generator<any, any, any> | import("redux-saga/effects").SelectEffect | import("redux-saga/effects").TakeEffect | import("redux-saga/effects").PutEffect<{
1952219945 payload: boolean;
1952319946 type: "debug/setSuspendDisabled";
……@@ -20182,6 +20605,7 @@ declare module "store/desktop" {
2018220605 activeCalls: any;
2018320606 activeCallMemberIds: any;
2018420607 mediaBySwarmId: {};
20608 connectedMemberIds: {};
2018520609 peersCounter: {};
2018620610 showConfirmLeave: boolean;
2018720611 showAutoEndPopup: boolean;
……@@ -20575,11 +20999,14 @@ declare module "store/mobile" {
2057520999 appActive: boolean;
2057621000 shareContent: any[];
2057721001 shareRoomId: string;
20578 callAudioCurrentOutput: string;
20579 callAudioOutputs: any[];
20580 callSpeakerOn: boolean;
20581 isCallLoading: boolean;
20582 nativeCallRinging: boolean;
21002 call: {
21003 audioCurrentOutput: string;
21004 audioOutputs: any[];
21005 speakerOn: boolean;
21006 isLoading: boolean;
21007 nativeCallRinging: boolean;
21008 screenVideoTrackId: any;
21009 };
2058321010 deviceIsOnSilentMode: boolean;
2058421011 onboarding: {
2058521012 showWalkthroughTooltip: boolean;
……@@ -20717,11 +21144,14 @@ declare module "store/mobile" {
2071721144 appActive: boolean;
2071821145 shareContent: any[];
2071921146 shareRoomId: string;
20720 callAudioCurrentOutput: string;
20721 callAudioOutputs: any[];
20722 callSpeakerOn: boolean;
20723 isCallLoading: boolean;
20724 nativeCallRinging: boolean;
21147 call: {
21148 audioCurrentOutput: string;
21149 audioOutputs: any[];
21150 speakerOn: boolean;
21151 isLoading: boolean;
21152 nativeCallRinging: boolean;
21153 screenVideoTrackId: any;
21154 };
2072521155 deviceIsOnSilentMode: boolean;
2072621156 onboarding: {
2072721157 showWalkthroughTooltip: boolean;
……@@ -20798,6 +21228,7 @@ declare module "store/mobile" {
2079821228 activeCalls: any;
2079921229 activeCallMemberIds: any;
2080021230 mediaBySwarmId: {};
21231 connectedMemberIds: {};
2080121232 peersCounter: {};
2080221233 showConfirmLeave: boolean;
2080321234 showAutoEndPopup: boolean;
……@@ -20882,6 +21313,22 @@ declare module "store/ui-mobile/ui-call.saga" {
2088221313 webRTC: any;
2088321314 localeManager: any;
2088421315 }>;
21316 export function screenStreamUpdateSaga(action: any): Generator<Generator<import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
21317 payload: any;
21318 type: string;
21319 }> | Generator<import("redux-saga/effects").CallEffect<any>, Error, any>, void, {
21320 isTest: any;
21321 onError: any;
21322 } & {
21323 consoleWarn: any;
21324 }> | import("redux-saga/effects").SelectEffect | import("redux-saga/effects").PutEffect<{
21325 payload: any;
21326 type: "ui-mobile/setUICallScreenVideoTrackId";
21327 }>, void, unknown>;
21328 export function screenStreamRemoveSaga(action: any): Generator<import("redux-saga/effects").PutEffect<{
21329 payload: any;
21330 type: "ui-mobile/setUICallScreenVideoTrackId";
21331 }>, void, unknown>;
2088521332 export function uiCallSaga(): Generator<import("redux-saga/effects").ForkEffect<never>, void, unknown>;
2088621333 export const MAX_ACTIVE_CALL_WAIT: 20000;
2088721334}
@holepunchto/keet-translations/locales/ar-SA.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "Manage member",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Max pins reached.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "ي",
11141115 "your-node-socket:8080": "مقبس العقدة الخاص بك:8080"
1115}
1116}
@holepunchto/keet-translations/locales/de-DE.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "Manage member",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manuelle Einrichtung",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Max. Pins erreicht.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "j",
11141115 "your-node-socket:8080": "Ihr-Node-Socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/es-ES.json +3 -2
……@@ -456,6 +456,7 @@
456456 "Manage member": "Administrar miembro",
457457 "Manage messages, files, and settings": "Administra mensajes, archivos y configuraciones",
458458 "Manual setup": "Configuración manual",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Petición concurrente máxima por cliente",
460461 "Max pins reached.": "Máximo de mensajes anclados.",
461462 "Max window for congestion": "Ventana máx para la congestión",
……@@ -617,7 +618,7 @@
617618 "QR code copied.": "Código QR copiado.",
618619 "Quality": "Calidad",
619620 "Quick setup": "Configuración rápida",
620 "RESET APP": "RESTABLECER LA APP",
621 "RESET APP": "RESET APP",
621622 "Random Holepunch interval (ms)": "Intervalo aleatorio de perforación (ms)",
622623 "Re-enter your seed phrase": "Vuelve a introducir tu frase semilla",
623624 "ReSync private profile": "ReSync perfil privado",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "fueron retirados del grupo.",
11131114 "y": "a",
11141115 "your-node-socket:8080": "tu-nodo-enchufe:8080"
1115}
1116}
@holepunchto/keet-translations/locales/fr-FR.json +3 -2
……@@ -456,6 +456,7 @@
456456 "Manage member": "Gérer le membre",
457457 "Manage messages, files, and settings": "Gérer les messages, les fichiers et les paramètres",
458458 "Manual setup": "Configuration manuelle",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Nombre maximal de demandes simultanées par client",
460461 "Max pins reached.": "Nombre maximal de messages épinglés atteint.",
461462 "Max window for congestion": "Fenêtre maximale pour la congestion",
……@@ -617,7 +618,7 @@
617618 "QR code copied.": "Code QR copié.",
618619 "Quality": "Qualité",
619620 "Quick setup": "Configuration rapide",
620 "RESET APP": "RÉINITIALISER L'APPLICATION",
621 "RESET APP": "RESET APP",
621622 "Random Holepunch interval (ms)": "Intervalle Holepunch aléatoire (ms)",
622623 "Re-enter your seed phrase": "Saisissez à nouveau votre phrase de récupération",
623624 "ReSync private profile": "Resynchroniser le profil privé",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "ont été retiré(e)s du groupe.",
11131114 "y": "a",
11141115 "your-node-socket:8080": "socket-du-nœud:8080"
1115}
1116}
@holepunchto/keet-translations/locales/hi-IN.json +3 -2
……@@ -456,6 +456,7 @@
456456 "Manage member": "मेंबर मैनेज करें",
457457 "Manage messages, files, and settings": "मैसेज, फ़ाइलें और सेटिंग मैनेज करें",
458458 "Manual setup": "मैनुअल सेटअप",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "एक क्लाइंट के लिए एक साथ अधिकतम रिक्वेस्ट सीमा",
460461 "Max pins reached.": "पिन करने की लिमिट पूरी हुई।",
461462 "Max window for congestion": "व्यस्तता की अधिकतम विंडो",
……@@ -617,7 +618,7 @@
617618 "QR code copied.": "QR कोड कॉपी किया।",
618619 "Quality": "क्वलिटी",
619620 "Quick setup": "क्विक सेटअप",
620 "RESET APP": "ऐप रीसेट करें",
621 "RESET APP": "RESET APP",
621622 "Random Holepunch interval (ms)": "रैंडम Holepunch इंटरवल (ms)",
622623 "Re-enter your seed phrase": "अपना सीड फ़्रेज़ दोबारा डालें",
623624 "ReSync private profile": "प्राइवेट प्रोफ़ाइल री-सिंक करें",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "को ग्रुप से हटा दिया गया है।",
11131114 "y": "साल",
11141115 "your-node-socket:8080": "your-node-socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/it-IT.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "Gestire i membri",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Raggiunto il numero massimo di messaggi fissati.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "y",
11141115 "your-node-socket:8080": "il tuo nodo-socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/ka-GE.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "მართე წევრი",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": " pin-ების მაქსიმუმი მიღწეულია. ",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "Y",
11141115 "your-node-socket:8080": ""
1115}
1116}
@holepunchto/keet-translations/locales/nl-NL.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "Manage member",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Max pins reached.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "j",
11141115 "your-node-socket:8080": "uw-node-socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/pt-PT.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "Manage member",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Máximo de Chats Fixados atingido.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "a",
11141115 "your-node-socket:8080": "your-node-socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/ro-RO.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "Gestionați membrul",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Numărul maxim de pini atins.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "y",
11141115 "your-node-socket:8080": "your-node-socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/ru-RU.json +44 -43
……@@ -7,7 +7,7 @@
77 "${0} messages blocked": "Заблокированных сообщений: ${0}",
88 "(edited)": "(изменено)",
99 "+10 new messages": "+10 новых сообщений",
10 "0 characters left": "0 characters left",
10 "0 characters left": "Осталось 0 символов",
1111 "1 audio": "1 аудио",
1212 "1 file": "1 файл",
1313 "1 image": "1 изображение",
……@@ -15,7 +15,7 @@
1515 "1 video": "1 видео",
1616 "1 voice message": "1 голосовое сообщение",
1717 "3 characters min.": "Не менее 3 символов.",
18 "A ${0} invitation link is copied to clipboard. ${1}": "Ссылка-приглашение ${0} скопирована в буфер обмена. ${1}",
18 "A ${0} invitation link is copied to clipboard. ${1}": "Пригласительна ссылка ${0} скопирована в буфер обмена. ${1}",
1919 "A few simple rules:": "Несколько простых правил:",
2020 "A few steps below to help you getting started.": "Ниже приведены несколько шагов, которые помогут вам начать.",
2121 "A group for larger communities and organizations, in which you can create Live space, make announcements and more.": "Группа для крупных сообществ и организаций, в которой вы можете создавать live-пространство, делать объявления и многое другое.",
……@@ -44,7 +44,7 @@
4444 "Admin dashboard": "Панель администратора",
4545 "Admin invites are single-use only": "Приглашения для администратора являются одноразовыми",
4646 "Admin role": "Роль администратора",
47 "Admins must be frequently online": "Admins must be frequently online",
47 "Admins must be frequently online": "Администраторы должны часто быть в сети",
4848 "Advanced": "Расширенные",
4949 "Advanced Settings": "Расширенные настройки",
5050 "Alert type": "Тип оповещения",
……@@ -61,7 +61,7 @@
6161 "Amount": "Сумма",
6262 "An error has occurred and the recovery was not completed. Ensure you have the correct recovery phrase and try again later.": "Произошла ошибка. Восстановление не было завершено. Убедитесь, что вы используете правильную фразу для восстановления, и повторите попытку позже.",
6363 "Animals & Nature": "Животные и природа",
64 "Any members can start a call.": "Any members can start a call.",
64 "Any members can start a call.": "Любой участник может начать звонок.",
6565 "App will restart in:": "Приложение перезапустится через:",
6666 "Apply changes": "Применить изменения",
6767 "Approve it there to link this device.": "Одобрите его там, чтобы привязать это устройство.",
……@@ -71,7 +71,7 @@
7171 "Are you sure you want to remove this device?": "Вы действительно хотите удалить это устройство?",
7272 "Are you sure you want to reset Keet?": "Вы действительно хотите сбросить Keet?",
7373 "As Group Admin, you help keep the group active and organized.": "Как администратор группы, вы помогаете поддерживать активность и организованность группы.",
74 "Assign role": "Assign role",
74 "Assign role": "Назначить роль",
7575 "Assigning admin role": "Назначение роли администратора",
7676 "Attach a file": "Прикрепить файл",
7777 "Audio": "Аудио",
……@@ -105,8 +105,8 @@
105105 "Call ringtone": "Рингтон",
106106 "Calls are disabled in this group.": "В этой группе отключены звонки.",
107107 "Camera": "Камера",
108 "Can't send message with files as file sharing has been disabled by group admin.": "Can't send message with files as file sharing has been disabled by group admin.",
109 "Can't send message with links as link sharing has been disabled by group admin.": "Can't send message with links as link sharing has been disabled by group admin.",
108 "Can't send message with files as file sharing has been disabled by group admin.": "Невозможно отправить файл, отправка медиа отключена администратором.",
109 "Can't send message with links as link sharing has been disabled by group admin.": "Невозможно отправить ссылку, отправка ссылок отключена администратором.",
110110 "Cancel": "Отмена",
111111 "Cancel request": "Отменить запрос",
112112 "Caution: You're generating a secure invitation to sync another device with your profile. Treat this invite with the same confidentiality as your password.": "Внимание! Вы генерируете безопасное приглашение для синхронизации другого устройства с вашим профилем. Соблюдайте для этого приглашения тот же уровень конфиденциальности, что и для пароля.",
……@@ -115,7 +115,7 @@
115115 "Chat": "Чат",
116116 "Chat Options": "Опции чата",
117117 "Chat privately with friends and family, start video calls, transfer money and much more!": "Приватно общайтесь с друзьями и семьей, совершайте видеозвонки, переводите деньги и не только!",
118 "Chat settings": "Chat settings",
118 "Chat settings": "Настройки чата",
119119 "Checking availability...": "Проверяем доступность…",
120120 "Choose": "Выберите",
121121 "Choose Photo": "Выберите фотографию",
……@@ -123,7 +123,7 @@
123123 "Choose a unique username so others can find you more easily. This is optional and can be changed anytime.": "Выберите уникальное имя пользователя, чтобы другие пользователи могли легко найти вас. Это необязательно. Вы можете изменить имя в любое время.",
124124 "Choose a username so your friends can easily find you and start chatting!": "Выберите имя пользователя, чтобы ваши друзья могли легко найти вас и начать общение!",
125125 "Choose what you want to do:": "Выберите, что вы хотите сделать:",
126 "Choose your default skin tone": "Choose your default skin tone",
126 "Choose your default skin tone": "Выберите тон кожи по умолчанию",
127127 "Clear": "Очистить",
128128 "Clear Cache": "Очистить кэш",
129129 "Clear Search": "Очистить поиск",
……@@ -132,10 +132,10 @@
132132 "Clear cache": "Очистить кэш",
133133 "Clear cached file": "Очистить кэшированный файл",
134134 "Clear cached files": "Очистить кэшированные файлы",
135 "Clear files": "Clear files",
136 "Clear old local files": "Clear old local files",
137 "Clear old local files?": "Clear old local files?",
138 "Cleared ${0} of old local files": "Cleared ${0} of old local files",
135 "Clear files": "Очистить файлы",
136 "Clear old local files": "Очистить устаревшие файлы",
137 "Clear old local files?": "Очистить устаревшие файлы на данном устройстве?",
138 "Cleared ${0} of old local files": "Удалено ${0} устаревших файлов",
139139 "Click the button bellow to upgrade this group to the latest version.": "Нажмите на кнопку ниже, чтобы обновить эту группу до последней версии.",
140140 "Click to copy information": "Нажмите, чтобы скопировать информацию",
141141 "Click to copy username": "Нажмите, чтобы скопировать имя пользователя",
……@@ -185,7 +185,7 @@
185185 "Create a unique username to make it easy for other members to find you and send chat requests or group invitations.": "Создайте уникальное имя пользователя, чтобы другие пользователи могли легко найти вас и отправить запрос на общение в чате или приглашение в группу.",
186186 "Create group chat": "Создать групповой чат",
187187 "Create your recovery seed phrase": "Создайте сид-фразу для восстановления",
188 "Current": "Current",
188 "Current": "Текущий",
189189 "Current group base length": "Текущая длина базового состояния группы",
190190 "Current group hash": "Текущий хеш группы",
191191 "Currently, to make a member a group Admin or upgrade a Moderator to Admin, create an Admin invite from the invite tab.": "Чтобы сделать участника администратором группы или повысить статус модератора до администратора, создайте приглашение на роль администратора на вкладке \"Приглашения\".",
……@@ -217,7 +217,7 @@
217217 "Device removal failed": "Не удалось удалить устройство",
218218 "Device removed from your profile": "Устройство удалено из вашего профиля",
219219 "Device removed successfully": "Устройство успешно удалено",
220 "Device storage may take a moment to update": "Device storage may take a moment to update",
220 "Device storage may take a moment to update": "Обновление хранилища может занять некоторое время",
221221 "Device successfully linked!": "Устройство успешно привязано!",
222222 "Direct Messaging:": "Личные сообщения:",
223223 "Disable rate limit": "Отключить ограничение частоты",
……@@ -242,8 +242,8 @@
242242 "Editing message": "Редактирование сообщения",
243243 "Emoji": "Эмодзи",
244244 "Enable calls": "Разрешить звонки",
245 "Enable file sharing": "Enable file sharing",
246 "Enable link sharing": "Enable link sharing",
245 "Enable file sharing": "Разрешить отправку файлов",
246 "Enable link sharing": "Разрешить отправку ссылок",
247247 "Enable messages": "Разрешить сообщения",
248248 "Enable toggle permission for Keet": "Разрешить переключение разрешений для Keet",
249249 "End call for all?": "Завершить звонок для всех?",
……@@ -281,10 +281,10 @@
281281 "File details": "Сведения о файле",
282282 "File loading is queued, and will automatically show when loading is complete": "Загрузка файла поставлена в очередь, файл будет автоматически показан после завершения загрузки",
283283 "File removed from Keet (${0})": "Файл удален мз Keet (${0})",
284 "File sharing has been disabled by group admin.": "File sharing has been disabled by group admin.",
285 "File sharing has been disabled for this group by group admin.": "File sharing has been disabled for this group by group admin.",
284 "File sharing has been disabled by group admin.": "Отправка файлов отключена администратором группы.",
285 "File sharing has been disabled for this group by group admin.": "Отправка ссылок отключена администратором группы.",
286286 "Filepath": "Путь к файлу",
287 "Files you haven’t used in the last 7 days will be removed from this device. You can download them later again.": "Files you haven’t used in the last 7 days will be removed from this device. You can download them later again.",
287 "Files you haven’t used in the last 7 days will be removed from this device. You can download them later again.": "Файлы, которые вы не использовали более 7 дней, будут удалены с этого устройства. Вы сможете снова загрузить их позже.",
288288 "Find out what exciting features and updates await you in this version.": "Узнайте, какие интересные функции и обновления ждут вас в этой версии.",
289289 "Finish": "Завершить",
290290 "Finish Setup": "Завершить настройку",
……@@ -320,7 +320,7 @@
320320 "Group Stats": "Статистика группы",
321321 "Group invitation created": "Приглашение в группу создано",
322322 "Group name": "Название группы",
323 "Group settings": "Group settings",
323 "Group settings": "Параметры группы",
324324 "Group type": "Тип группы",
325325 "Group version": "Версия группы",
326326 "Have you tried these options first?": "Вы уже попробовали эти варианты?",
……@@ -337,7 +337,7 @@
337337 "I already use Keet ": "Я уже использую Keet ",
338338 "I have read and agree to the Keet Application Terms of Use and understand that Quick setup generates and stores my recovery phrase on my device, while Manual setup requires me to manage it myself.": "Я прочитала(-а) Условия использования приложения Keet, соглашаюсь с ними и понимаю, что при быстрой настройке фраза для восстановления генерируется и хранится на устройстве, а при ручной настройке я самостоятельно создаю фразу для восстановления и управляю ею.",
339339 "I lost access to my device": "У меня нет доступа к моему устройству",
340 "I understand all data will be erased and irreversible without my recovery phrase.": "Я понимаю, что если я не укажу фразу для восстановления, все данные будут стерты без возможности восстановления.",
340 "I understand all data will be erased and irreversible without my recovery phrase.": "Я понимаю, что все данные будут стерты с данного устройства и не смогут быть восстановлены без сид-фразы.",
341341 "I understand that if I continue without a recovery phrase, all chats on this device will be merged.": "Я понимаю, что если я продолжу без фразы для восстановления, все чаты на этом устройстве будут объединены.",
342342 "I want to be called..": "Я хочу, чтобы мне звонили..",
343343 "I want to be searchable as..": "Я хочу, чтобы меня могли найти как..",
……@@ -366,7 +366,7 @@
366366 "Information copied to clipboard.": "Информация скопирована в буфер обмена.",
367367 "Input your recovery phrase": "Введите фразу для восстановления",
368368 "Insert short message": "Вставьте короткое сообщение",
369 "Internal": "Internal",
369 "Internal": "Внутренний",
370370 "Invalid attestation": "Недействительная аттестация",
371371 "Invalid group command arguments": "Недопустимые аргументы команды группы",
372372 "Invalid password": "Неправильный пароль",
……@@ -447,7 +447,7 @@
447447 "Loading...": "Загрузка...",
448448 "Low": "Низкое",
449449 "Maintain a positive and respectful online atmosphere by overseeing and managing the group and its peers.": "Поддерживайте позитивную и уважительную атмосферу в сети, контролируя и управляя группой и ее участниками.",
450 "Make": "Make",
450 "Make": "Сделать",
451451 "Make group admin": "Назначить администратором группы",
452452 "Make group moderator": "Назначить модератором группы",
453453 "Make sure you're in a secure location before viewing your recovery phrase:": "Прежде чем просматривать фразу для восстановления, убедитесь, что вы находитесь в безопасном месте:",
……@@ -456,6 +456,7 @@
456456 "Manage member": "Управление участником",
457457 "Manage messages, files, and settings": "Управляйте сообщениями, файлами и настройками",
458458 "Manual setup": "Ручная настройка",
459 "Mark as unread": "Пометить как непрочитанное",
459460 "Max concurrent request per client": "Максимальное количество одновременных запросов для одного клиента",
460461 "Max pins reached.": "Закреплено максимальное количество сообщений.",
461462 "Max window for congestion": "Максимальный размер окна перегрузки",
……@@ -469,12 +470,12 @@
469470 "Message deleted": "Сообщение удалено",
470471 "Message render error: ": "Ошибка воспроизведения сообщения: ",
471472 "Message requests": "Запросы на сообщение",
472 "Messages are disabled in this ${0}": "В группе \"${0}\" отключена функция сообщений",
473 "Messages are disabled in this ${0}": "Сообщения в ${0} отключены",
473474 "Microphone": "Микрофон",
474475 "Migrating Keet database...": "Выполняем перенос базы данных Keet…",
475476 "Minimize": "Минимизировать",
476477 "Mod": "Модератор",
477 "Moderation": "Moderation",
478 "Moderation": "Модерация",
478479 "Moderator": "Модератор",
479480 "Moderator and indexer groups": "Группы модератора и индексатора",
480481 "Moderator groups": "Группы модератора",
……@@ -486,8 +487,8 @@
486487 "Move indexer to this device": "Переместите индексатор на это устройство",
487488 "Multiple chats detected": "Обнаружено несколько чатов",
488489 "Must be at least 3 characters and include at least 1 letter and 1 number. Only letters, numbers, and underscores are allowed.": "Должен содержать не менее 3 символов и включать как минимум 1 букву и 1 цифру. Можно использовать только буквы, цифры и символ подчеркивания.",
489 "Mute": "Запретить отправку сообщений",
490 "Mute member": "Запретить участнику отправку сообщений",
490 "Mute": "Микрофон",
491 "Mute member": "Запретить отправку сообщений",
491492 "Muted member": "Этот участник не может отправлять сообщения",
492493 "My devices": "Мои устройства",
493494 "Name": "Имя",
……@@ -502,7 +503,7 @@
502503 "News": "Новости",
503504 "Next": "Далее",
504505 "No audio files": "Нет аудиофайлов",
505 "No emojis": "No emojis",
506 "No emojis": "Нет эмодзи",
506507 "No error logs found": "Журналы ошибок не найдены",
507508 "No expiry": "Без срока годности",
508509 "No favorites yet": "В избранном пока пусто",
……@@ -530,7 +531,7 @@
530531 "Not a valid image file.": "Недопустимый файл изображения.",
531532 "Not now": "Не сейчас",
532533 "Note that Keet cannot see the content of any communications.": "Напоминаем что Keet не имеет доступа к содержимому сообщений.",
533 "Nothing to clear now. All files have been used in the last 7 days": "Nothing to clear now. All files have been used in the last 7 days",
534 "Nothing to clear now. All files have been used in the last 7 days": "Нечего удалять. Все файлы были использованы за последние 7 дней",
534535 "Notification sound": "Звук уведомлений",
535536 "Notifications": "Уведомления",
536537 "Notifications Off": "Уведомления выключены",
……@@ -550,7 +551,7 @@
550551 "Once removed that device will no longer access this profile and you will need to link devices to restore your groups on that device.": "Удалив это устройство, вы больше не сможете использовать его для доступа к этому профилю. Чтобы восстановить группы на этом устройстве, вам нужно будет выполнить привязку устройства.",
551552 "One or more fields below failed to validate. Check if they are correct and try again.": "Одно или несколько полей ниже не прошли проверку. Убедитесь, что в них содержится правильная информация, и повторите попытку.",
552553 "Only Latin letters (a–z), numbers and underscores are allowed": "Допускаются только латинские буквы (a–z), цифры и символ подчеркивания",
553 "Only one person can share their screen at a time.": "Only one person can share their screen at a time.",
554 "Only one person can share their screen at a time.": "Только один участник может выполнять демонстрацию экрана.",
554555 "Only when mentioned": "Только при упоминании",
555556 "Oops! The group invitation you're trying to use has expired. To join the group, please request a new invitation from the group host.": "Упс! Срок действия приглашения в группу, которое вы пытаетесь использовать, истек. Чтобы присоединиться к группе, запросите новое приглашение у ведущего группы.",
556557 "Oops! You seem to be offline.": "Ой! Кажется, вы не в сети.",
……@@ -617,7 +618,7 @@
617618 "QR code copied.": "QR-код скопирован.",
618619 "Quality": "Качество",
619620 "Quick setup": "Быстрая настройка",
620 "RESET APP": "СБРОСИТЬ ПРИЛОЖЕНИЕ",
621 "RESET APP": "RESET APP",
621622 "Random Holepunch interval (ms)": "Случайный интервал Holepunch (мс)",
622623 "Re-enter your seed phrase": "Введите свою сид-фразу еще раз",
623624 "ReSync private profile": "Повторная синхронизация личного профиля",
……@@ -640,7 +641,7 @@
640641 "Remove content": "Удалить содержимое",
641642 "Remove device": "Удалить устройство",
642643 "Remove favorite": "Удалить из избранного",
643 "Remove files saved on this device that you haven’t used in the last 7 days to free up space.": "Remove files saved on this device that you haven’t used in the last 7 days to free up space.",
644 "Remove files saved on this device that you haven’t used in the last 7 days to free up space.": "Чтобы освободить место на данном устройстве, удалите файлы, которые вы не использовали в течение последних 7 дней.",
644645 "Remove member": "Удалить участника",
645646 "Remove these files from your device? Others may be still able to see and load them. If other peers still have then in their devices, you’ll also be able to see and load them again.": "Удалить эти файлы с вашего устройства? Другие пользователи смогут по-прежнему просматривать и загружать их. Если эти файлы все еще есть на устройствах других пользователей, вы также сможете просмотреть и загрузить эти файлы.",
646647 "Remove this file from your device? Others may be still able to see and load it. If other peers still have it in their devices, you’ll also be able to see and load it again.": "Удалить этот файл с вашего устройства? Другие пользователи смогут по-прежнему просматривать и загружать его. Если этот файл все еще есть на устройствах других пользователей, вы также сможете просмотреть и загрузить этот файл.",
……@@ -680,7 +681,7 @@
680681 "Roles in Keet": "Роли в Keet",
681682 "Rotate Writer": "Сменить узел записи",
682683 "Same as above": "То же, что и выше",
683 "Same as moderator": "Same as moderator",
684 "Same as moderator": "Те же, что и у модератора",
684685 "Save": "Сохранить",
685686 "Save or write down the 24 secret words below and store them in a secure location. These words are essential for recovering your profile if you ever lose access to your device.": "Сохраните или запишите 24 секретных слова, приведенных ниже, и храните их в надежном месте. Эти слова необходимы для восстановления профиля, если вы потеряете доступ к устройству.",
686687 "Save to files": "Сохранить в файлах",
……@@ -689,7 +690,7 @@
689690 "Screen share permissions": "Разрешения на демонстрацию экрана",
690691 "Scroll to latest message": "Прокрутить до последнего сообщения",
691692 "Search contacts or groups": "Поиск контактов или групп",
692 "Search emojis": "Search emojis",
693 "Search emojis": "Поиск эмодзи",
693694 "Search or join with a link": "Найти или присоединиться по ссылке",
694695 "Search this chat": "Поиск по этому чату",
695696 "Searching groups": "Поиск групп",
……@@ -763,7 +764,7 @@
763764 "Show time stats": "Показать статистику времени",
764765 "Shutting down": "Выключение",
765766 "Simple Setup:": "Простая настройка:",
766 "Skin tone": "Skin tone",
767 "Skin tone": "Тон кожи",
767768 "Skip": "Пропустить",
768769 "Skip and do this later": "Пропустить и сделать это позже",
769770 "Skip for now": "Пропустить",
……@@ -810,7 +811,7 @@
810811 "The character limit is ${0}.": "Максимальное количество символов — ${0}.",
811812 "The file has been cleared. Click to reload": "Файл очищен. Нажмите, чтобы перезагрузить.",
812813 "The group performance is not optimal at the moment. Please tag an Admin to come online to enhance performance.": "Производительность группы в данный момент не оптимальна. Пожалуйста, отметьте администратора, чтобы он вошел в сеть для повышения производительности.",
813 "The link is not a valid link": "The link is not a valid link",
814 "The link is not a valid link": "Ссылка недействительна",
814815 "The name does not conform to the requirements": "Имя не соответствует требованиям",
815816 "The name is already taken": "Это имя уже используется",
816817 "The registry already contains an entry for the name": "В реестре уже есть запись с таким именем",
……@@ -830,7 +831,7 @@
830831 "This device was unlinked from your profile.\nTo use it again, you can sync your devices or create a new profile.": "Это устройство отвязано от вашего профиля.\nЧтобы использовать его снова, синхронизируйте устройства или создайте новый профиль.",
831832 "This device’s QR code": "QR-код этого устройства",
832833 "This file is not supported for preview": "Предварительный просмотр этого файла не поддерживается",
833 "This group chat is on an old version that no longer supports calls; please ask admins or moderators to come online and upgrade it.": "This group chat is on an old version that no longer supports calls; please ask admins or moderators to come online and upgrade it.",
834 "This group chat is on an old version that no longer supports calls; please ask admins or moderators to come online and upgrade it.": "Звонки не поддерживаются в текущей версии группы. Попросите администраторов зайти в группу и, тем самым, обновить ее версию.",
834835 "This group is unindexed.": "Эта группа не индексируется.",
835836 "This group is unindexed...": "Эта группа не индексируется…",
836837 "This is a space to chat, share and connect. Let's make it a great place for everyone.": "Здесь можно общаться, делиться и заводить новые знакомства. Давайте сделаем это пространство комфортным для всех.",
……@@ -841,7 +842,7 @@
841842 "This member will now be visible to others.": "Профиль этого участника теперь будут видеть другие участники.",
842843 "This member won't be notified, and they can't send more requests unless you send them a message request.": "Пользователь не получит уведомление об этом. Он не сможет отправлять вам новые запросы до тех пор, пока вы не отправите ему запрос на сообщение.",
843844 "This member's role will be downgraded to Moderator, giving them Moderator capabilities.": "Роль этого пользователя будет понижена до модератора. Пользователь сможет выполнять функции модератора.",
844 "This message contains links. Link sharing has been disabled by group admin": "This message contains links. Link sharing has been disabled by group admin",
845 "This message contains links. Link sharing has been disabled by group admin": "Это сообщение содержит ссылки. Обмен ссылками отключен администратором группы",
845846 "This message was reported by users": "На это сообщение пожаловались пользователи",
846847 "This might take a moment...": "Это может занять некоторое время...",
847848 "This name has been reserved": "Это имя зарезервировано",
……@@ -910,7 +911,7 @@
910911 "Unsupported file": "Неподдерживаемый файл",
911912 "Update App": "Обновить",
912913 "Update Group": "Обновить группу",
913 "Update Keet to enable calls.": "Update Keet to enable calls.",
914 "Update Keet to enable calls.": "Обновите Keet, чтобы совершать звонки.",
914915 "Updating App": "Приложения обновляется",
915916 "Updating your username...": "Обновление имени пользователя…",
916917 "Upgrade Group": "Повысить уровень группы",
……@@ -994,7 +995,7 @@
994995 "You can pin a maximum of ${0} messages. To pin this one, you need to unpin an older message.": "Максимальное количество сообщений, которые вы можете закрепить, — ${0}. Чтобы закрепить это сообщение, открепите более старое.",
995996 "You can safely leave this conversation anytime.": "Вы можете покинуть этот разговор в любое время.",
996997 "You can send more messages, which will be visible once your request has been accepted.": "Вы можете отправить больше сообщений. Пользователь увидит их, как только примет ваш запрос.",
997 "You can unmute them at any time in ": "Вы можете разрешить отправку сообщений этим участником в любое время здесь: ",
998 "You can unmute them at any time in ": "Вы можете разрешить им отправку сообщений здесь: ",
998999 "You cannot reuse a previous used username.": "Повторно использовать ранее использованное имя пользователя нельзя.",
9991000 "You don't have any transactions yet. Send or receive money and it will show here.": "У вас пока нет транзакций. Как только вы отправите или получите средства, вы увидите информацию о транзакции здесь.",
10001001 "You have been removed from the room": "Вас удалили из комнаты",
……@@ -1010,7 +1011,7 @@
10101011 "You will join the group automatically when ${0} is online.": "Вы присоединитесь к группе автоматически, как только ${0} появится в сети.",
10111012 "You're about to create an admin invite. Remember, a few active admins are better than many inactive ones. A stable majority of frequently online admins is key to a smooth chat group. Keep your admin invites limited for the best experience.": "Вы собираетесь создать приглашение для администратора. Помните, что несколько активных администраторов лучше, чем много неактивных. Стабильное присутствие в сети большинства администраторов — залог слаженной работы чат-группы. Для наилучшей эффективности приглашайте ограниченное количество администраторов.",
10121013 "You're offline...": "Вы не в сети…",
1013 "You've been muted by the group's admin due to inappropriate content.": "Администратор группы запретил вам отправлять сообщения, поскольку ваши сообщения содержали неприемлемый контент.",
1014 "You've been muted by the group's admin due to inappropriate content.": "Администратор группы запретил вам отправлять сообщения, поскольку они содержали неприемлемый контент.",
10141015 "Your Keet Profile": "Ваш профиль Keet",
10151016 "Your Keet profile is ready to go.": "Ваш профиль Keet готов к использованию.",
10161017 "Your device name can't have special characters and must be under ${0} characters.": "Имя вашего устройства не должно содержать специальных символов. Максимальное количество символов в имени — ${0}.",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "удалены из группы.",
11131114 "y": "гг",
11141115 "your-node-socket:8080": "сокет-вашего-узла: 8080"
1115}
1116}
@holepunchto/keet-translations/locales/tr-TR.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "Üyeyi yönet",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Maksimum sabitleme sayısına ulaşıldı.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "y",
11141115 "your-node-socket:8080": "your-node-socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/uk-UA.json +3 -2
……@@ -456,6 +456,7 @@
456456 "Manage member": "Налаштування учасника",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Налаштувати вручну",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Досягнута максимальна кількість пінів.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -486,7 +487,7 @@
486487 "Move indexer to this device": "Move indexer to this device",
487488 "Multiple chats detected": "Multiple chats detected",
488489 "Must be at least 3 characters and include at least 1 letter and 1 number. Only letters, numbers, and underscores are allowed.": "Must be at least 3 characters and include at least 1 letter and 1 number. Only letters, numbers, and underscores are allowed.",
489 "Mute": "Вимкнути звук",
490 "Mute": "Мікрофон",
490491 "Mute member": "Обмежити повідомлення від користувача",
491492 "Muted member": "Muted member",
492493 "My devices": "Мої пристрої",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "р",
11141115 "your-node-socket:8080": "сокет-вашего-вузла: 8080"
1115}
1116}
@holepunchto/keet-translations/locales/vi-VN.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "Quản lý thành viên",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "Đã ghim ở mức tối đa.",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "y",
11141115 "your-node-socket:8080": "your-node-socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/zh-CN.json +3 -2
……@@ -456,6 +456,7 @@
456456 "Manage member": "管理成员",
457457 "Manage messages, files, and settings": "管理消息、文件和设置",
458458 "Manual setup": "手动设置",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "每个客户端的最大并发请求数",
460461 "Max pins reached.": "达到最大固定数。",
461462 "Max window for congestion": "拥堵的最大窗口",
……@@ -617,7 +618,7 @@
617618 "QR code copied.": "二维码已复制。",
618619 "Quality": "质量",
619620 "Quick setup": "快速设置",
620 "RESET APP": "重置应用",
621 "RESET APP": "RESET APP",
621622 "Random Holepunch interval (ms)": "随机打孔间隔 (ms)",
622623 "Re-enter your seed phrase": "重新输入助记词",
623624 "ReSync private profile": "重新同步不公开个人资料",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "已被移出群组。",
11131114 "y": "年",
11141115 "your-node-socket:8080": "your-node-socket:8080"
1115}
1116}
@holepunchto/keet-translations/locales/zh-TW.json +2 -1
……@@ -456,6 +456,7 @@
456456 "Manage member": "管理成員",
457457 "Manage messages, files, and settings": "Manage messages, files, and settings",
458458 "Manual setup": "Manual setup",
459 "Mark as unread": "Mark as unread",
459460 "Max concurrent request per client": "Max concurrent request per client",
460461 "Max pins reached.": "已達最高釘選數。",
461462 "Max window for congestion": "Max window for congestion",
……@@ -1112,4 +1113,4 @@
11121113 "were removed from the group.": "were removed from the group.",
11131114 "y": "年",
11141115 "your-node-socket:8080": "your-node-socket:8080"
1115}
1116}
@holepunchto/keet-translations/package.json +1 -1
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-translations",
3 "version": "2.5.0",
3 "version": "2.5.2",
44 "type": "module",
55 "description": "Keet translations",
66 "main": "index.js",
@holepunchto/keet-unread-anchors/.prettierrc +1 -0
……@@ -0,0 +1 @@
1"prettier-config-holepunch"
@holepunchto/keet-unread-anchors/build.js +1 -12
……@@ -1,12 +1 @@
1const e = require("hyperschema"),
2 n = e.from("./spec/hyperschema"),
3 t = n.namespace("keet-unreads")
4;(t.register({
5 name: "unread-anchors",
6 fields: [
7 { name: "timestamp", type: "uint" },
8 { name: "length", type: "uint" },
9 ],
10}),
11 t.register({ name: "info", fields: [{ name: "updated", type: "uint" }] }),
12 e.toDisk(n))
1const e=require("hyperschema"),n=e.from("./spec/hyperschema"),t=n.namespace("keet-unreads");t.register({name:"unread-anchors",fields:[{name:"timestamp",type:"uint"},{name:"length",type:"uint"}]}),t.register({name:"info",fields:[{name:"updated",type:"uint"}]}),e.toDisk(n);
@holepunchto/keet-unread-anchors/index.js +1 -156
……@@ -1,156 +1 @@
1const t = require("hyperbee2"),
2 e = require("ready-resource"),
3 s = require("b4a"),
4 i = require("compact-encoding"),
5 { getEncoding: n } = require("./spec/hyperschema"),
6 a = s.from([0]),
7 o = n("@keet-unreads/unread-anchors"),
8 r = n("@keet-unreads/info"),
9 h = 5e3,
10 c = 2,
11 l = 0
12class u {
13 constructor(t) {
14 ;((this.unreads = t), (this.ops = []))
15 }
16 tryPut(t, { timestamp: e = Date.now(), length: s = 0 }) {
17 this.ops.push({ key: t, value: { timestamp: e, length: s } })
18 }
19 tryDelete(t) {
20 this.ops.push({ key: t, value: null })
21 }
22 async flush() {
23 if (!this.ops.length) return
24 await this.unreads.ready()
25 const t = await this.unreads._getHead(),
26 e = this.unreads.db.write({ ...t, type: 0, timeout: h })
27 for (const { key: t, value: n } of this.ops) {
28 const a = s.concat([s.from([1]), t])
29 n ? e.tryPut(a, i.encode(o, n)) : e.tryDelete(a)
30 }
31 ;(e.tryPut(a, i.encode(r, { updated: Date.now() })), await e.flush())
32 }
33}
34function d() {
35 return null
36}
37module.exports = class extends e {
38 constructor(e, s = [], i = {}) {
39 super()
40 const {
41 encryptionKey: n,
42 encryption: a = n ? { key: n } : null,
43 name: o = "local-unread",
44 local: r = e.get({ name: o, encryption: a }),
45 blindPeering: h = null,
46 target: c = null,
47 } = i
48 ;((this.store = e),
49 (this.blindPeering = h),
50 (this.target = c),
51 (this.encryption = a),
52 (this.keys = s.slice(0)),
53 (this.local = r),
54 (this.db = new t(this.store, { core: this.local, encryption: this.encryption, t: 5 })),
55 (this.views = []))
56 }
57 async addWriter(t) {
58 if ((this.opened || (await this.ready()), s.equals(t, this.local.key))) return
59 for (const e of this.keys) if (s.equals(e, t)) return
60 this.keys.push(t)
61 const e = this.db.checkout({ key: t, length: 0 })
62 ;(this.views.push(e), await this._initView(e))
63 }
64 async removeWriter(t) {
65 this.opened || (await this.ready())
66 for (let e = 0; e < this.keys.length; e++) {
67 const i = this.keys[e],
68 n = this.views[e]
69 s.equals(i, t) && (this.keys.splice(e, 1), this.views.splice(e, 1), await n.close())
70 }
71 }
72 async _initView(t) {
73 ;(await t.ready(),
74 t.core.on("append", () => {
75 ;(t.update(), this.emit("update"), t.core !== this.local && this.emit("remote-update"))
76 }),
77 t.update())
78 }
79 async _open() {
80 ;(await this.local.ready(), this.views.push(this.db))
81 const t = new Set([s.toString(this.db.core.key, "hex")])
82 for (const e of this.keys) {
83 const i = s.toString(e, "hex")
84 t.has(i) || (t.add(i), this.views.push(this.db.checkout({ key: e, length: 0 })))
85 }
86 for (const t of this.views) await this._initView(t)
87 if (this.blindPeering) {
88 const t = await this.target
89 this.blindPeering.addCoreBackground(this.local, { target: t, pick: 2 })
90 }
91 }
92 async _close() {
93 for (let t = this.views.length - 1; t >= 0; t--) await this.views[t].close()
94 ;(await this.local.close(), await this.store.close())
95 }
96 write() {
97 return new u(this)
98 }
99 async get(t) {
100 this.opened || (await this.ready())
101 const e = s.concat([s.from([1]), t]),
102 n = new Array(this.views.length)
103 for (let t = 0; t < n.length; t++) {
104 const s = this.views[t]
105 n[t] = s.get(e, { timeout: h }).catch(d)
106 }
107 const a = await Promise.all(n)
108 let r = null
109 for (const t of a) {
110 if (!t) continue
111 const e = i.decode(o, t.value)
112 ;(!r || r.timestamp < e.timestamp) && (r = e)
113 }
114 return r
115 }
116 async reset() {
117 this.opened || (await this.ready())
118 const t = this.db.write({ key: this.local.key, length: 0, type: 0, timeout: h })
119 ;(t.tryPut(a, i.encode(r, { updated: Date.now() })), await t.flush())
120 }
121 async put(t, { timestamp: e = Date.now(), length: n = 0 }) {
122 this.opened || (await this.ready())
123 const c = await this._getHead(),
124 l = await this.get(t)
125 if (l && l.length >= n) return
126 const u = this.db.write({ ...c, type: 0, timeout: h }),
127 d = s.concat([s.from([1]), t])
128 ;(u.tryPut(d, i.encode(o, { timestamp: e, length: n })),
129 u.tryPut(a, i.encode(r, { updated: Date.now() })),
130 await u.flush())
131 }
132 async delete(t) {
133 this.opened || (await this.ready())
134 const e = await this._getHead()
135 if (!(await this.get(t))) return
136 const n = this.db.write({ ...e, type: 0, timeout: h }),
137 o = s.concat([s.from([1]), t])
138 return (n.tryDelete(o), n.tryPut(a, i.encode(r, { updated: Date.now() })), n.flush())
139 }
140 async _getHead() {
141 const t = new Array(this.views.length)
142 for (let e = 0; e < t.length; e++) {
143 const s = this.views[e]
144 t[e] = s.get(a, { timeout: h }).catch(d)
145 }
146 let e = null,
147 s = { key: this.local.key, length: this.local.length }
148 const n = await Promise.all(t)
149 for (const t of n) {
150 if (!t) continue
151 const n = i.decode(r, t.value)
152 ;(!e || e.updated < n.updated) && ((e = n), (s.key = t.core.key), (s.length = t.core.length))
153 }
154 return s
155 }
156}
1const t=require("hyperbee2"),e=require("ready-resource"),s=require("b4a"),i=require("compact-encoding"),{getEncoding:a}=require("./spec/hyperschema"),n=s.from([4]),o=a("@keet-unreads/unread-anchors"),r=a("@keet-unreads/info"),h=5e3,c=2,l=1;class u{constructor(t){this.unreads=t,this.ops=[]}tryPut(t,{timestamp:e=Date.now(),length:s=0}){this.ops.push({key:t,value:{timestamp:e,length:s}})}tryDelete(t){this.ops.push({key:t,value:null})}async flush(){if(!this.ops.length)return;await this.unreads.ready();const t=await this.unreads._getHead(),e=this.unreads.db.write({...t,type:1,timeout:h});for(const{key:t,value:a}of this.ops){const n=s.concat([s.from([1]),t]);a?e.tryPut(n,i.encode(o,a)):e.tryDelete(n)}e.tryPut(n,i.encode(r,{updated:Date.now()})),await e.flush()}}function d(){return null}module.exports=class extends e{constructor(e,s=[],i={}){super();const{encryptionKey:a,encryption:n=(a?{key:a}:null),name:o="local-unread",local:r=e.get({name:o,encryption:n}),blindPeering:h=null,target:c=null}=i;this.store=e,this.blindPeering=h,this.target=c,this.encryption=n,this.keys=s.slice(0),this.local=r,this.db=new t(this.store,{core:this.local,encryption:this.encryption,t:5}),this.views=[]}async addWriter(t){if(this.opened||await this.ready(),s.equals(t,this.local.key))return;for(const e of this.keys)if(s.equals(e,t))return;this.keys.push(t);const e=this.db.checkout({key:t,length:0});this.views.push(e),await this._initView(e)}async removeWriter(t){this.opened||await this.ready();for(let e=0;e<this.keys.length;e++){const i=this.keys[e],a=this.views[e];s.equals(i,t)&&(this.keys.splice(e,1),this.views.splice(e,1),await a.close())}}async _initView(t){await t.ready(),t.core.on("append",()=>{t.update(),this.emit("update"),t.core!==this.local&&this.emit("remote-update")}),t.update()}async _open(){await this.local.ready(),0===await this.db.compat()&&await this._reset(),this.views.push(this.db);const t=new Set([s.toString(this.db.core.key,"hex")]);for(const e of this.keys){const i=s.toString(e,"hex");t.has(i)||(t.add(i),this.views.push(this.db.checkout({key:e,length:0})))}for(const t of this.views)await this._initView(t);if(this.blindPeering){const t=await this.target;this.blindPeering.addCoreBackground(this.local,{target:t,pick:2})}}async _close(){for(let t=this.views.length-1;t>=0;t--)await this.views[t].close();await this.local.close(),await this.store.close()}write(){return new u(this)}async get(t){this.opened||await this.ready();const e=s.concat([s.from([1]),t]),a=new Array(this.views.length);for(let t=0;t<a.length;t++){const s=this.views[t];a[t]=s.get(e,{timeout:h}).catch(d)}const n=await Promise.all(a);let r=null;for(const t of n){if(!t)continue;const e=i.decode(o,t.value);(!r||r.timestamp<e.timestamp)&&(r=e)}return r}async reset(){this.opened||await this.ready(),await this._reset()}async _reset(){const t=this.db.write({key:this.local.key,length:0,type:1,timeout:h});t.tryPut(n,i.encode(r,{updated:Date.now()})),await t.flush()}async put(t,{timestamp:e=Date.now(),length:a=0}){this.opened||await this.ready();const c=await this._getHead(),l=await this.get(t);if(l&&l.length>=a)return;const u=this.db.write({...c,type:1,timeout:h}),d=s.concat([s.from([1]),t]);u.tryPut(d,i.encode(o,{timestamp:e,length:a})),u.tryPut(n,i.encode(r,{updated:Date.now()})),await u.flush()}async delete(t){this.opened||await this.ready();const e=await this._getHead();if(!await this.get(t))return;const a=this.db.write({...e,type:1,timeout:h}),o=s.concat([s.from([1]),t]);return a.tryDelete(o),a.tryPut(n,i.encode(r,{updated:Date.now()})),a.flush()}async _getHead(){const t=new Array(this.views.length);for(let e=0;e<t.length;e++){const s=this.views[e];t[e]=s.get(n,{timeout:h}).catch(d)}let e=null,s={key:this.local.key,length:0};const a=await Promise.all(t);for(const t of a){if(!t)continue;const a=i.decode(r,t.value);(!e||e.updated<a.updated)&&(e=a,s.key=t.core.key,s.length=t.core.length)}return s}};
@holepunchto/keet-unread-anchors/package.json +1 -1
……@@ -1,6 +1,6 @@
11{
22 "name": "@holepunchto/keet-unread-anchors",
3 "version": "2.0.0",
3 "version": "2.1.2",
44 "description": "Unread anchors",
55 "main": "index.js",
66 "dependencies": {
@holepunchto/keet-unread-anchors/spec/hyperschema/index.js +1 -75
……@@ -1,75 +1 @@
1const { c: e } = require("hyperschema/runtime"),
2 n = 1
3let t = 1
4const d = {
5 preencode(n, t) {
6 ;(n.end++,
7 t.timestamp && e.uint.preencode(n, t.timestamp),
8 t.length && e.uint.preencode(n, t.length))
9 },
10 encode(n, t) {
11 const d = (t.timestamp ? 1 : 0) | (t.length ? 2 : 0)
12 ;(e.uint.encode(n, d),
13 t.timestamp && e.uint.encode(n, t.timestamp),
14 t.length && e.uint.encode(n, t.length))
15 },
16 decode(n) {
17 const t = e.uint.decode(n)
18 return { timestamp: 1 & t ? e.uint.decode(n) : 0, length: 2 & t ? e.uint.decode(n) : 0 }
19 },
20 },
21 o = {
22 preencode(n, t) {
23 ;(n.end++, t.updated && e.uint.preencode(n, t.updated))
24 },
25 encode(n, t) {
26 const d = t.updated ? 1 : 0
27 ;(e.uint.encode(n, d), t.updated && e.uint.encode(n, t.updated))
28 },
29 decode: (n) => ({ updated: 1 & e.uint.decode(n) ? e.uint.decode(n) : 0 }),
30 }
31function c(e) {
32 t = e
33}
34function u(n, d, o = 1) {
35 return ((t = o), e.encode(s(n), d))
36}
37function r(n, d, o = 1) {
38 return ((t = o), e.decode(s(n), d))
39}
40function i(e) {
41 throw new Error("Enum not found " + e)
42}
43function s(e) {
44 switch (e) {
45 case "@keet-unreads/unread-anchors":
46 return d
47 case "@keet-unreads/info":
48 return o
49 default:
50 throw new Error("Encoder not found " + e)
51 }
52}
53function p(e, n = 1) {
54 const d = s(e)
55 return {
56 preencode(e, o) {
57 ;((t = n), d.preencode(e, o))
58 },
59 encode(e, o) {
60 ;((t = n), d.encode(e, o))
61 },
62 decode: (e) => ((t = n), d.decode(e)),
63 }
64}
65const a = p
66module.exports = {
67 resolveStruct: a,
68 getStruct: p,
69 getEnum: i,
70 getEncoding: s,
71 encode: u,
72 decode: r,
73 setVersion: c,
74 version: t,
75}
1const{c:e}=require("hyperschema/runtime"),n=1;let t=1;const d={preencode(n,t){n.end++,t.timestamp&&e.uint.preencode(n,t.timestamp),t.length&&e.uint.preencode(n,t.length)},encode(n,t){const d=(t.timestamp?1:0)|(t.length?2:0);e.uint.encode(n,d),t.timestamp&&e.uint.encode(n,t.timestamp),t.length&&e.uint.encode(n,t.length)},decode(n){const t=e.uint.decode(n);return{timestamp:1&t?e.uint.decode(n):0,length:2&t?e.uint.decode(n):0}}},o={preencode(n,t){n.end++,t.updated&&e.uint.preencode(n,t.updated)},encode(n,t){const d=t.updated?1:0;e.uint.encode(n,d),t.updated&&e.uint.encode(n,t.updated)},decode:n=>({updated:1&e.uint.decode(n)?e.uint.decode(n):0})};function c(e){t=e}function u(n,d,o=1){return t=o,e.encode(s(n),d)}function r(n,d,o=1){return t=o,e.decode(s(n),d)}function i(e){throw new Error("Enum not found "+e)}function s(e){switch(e){case"@keet-unreads/unread-anchors":return d;case"@keet-unreads/info":return o;default:throw new Error("Encoder not found "+e)}}function p(e,n=1){const d=s(e);return{preencode(e,o){t=n,d.preencode(e,o)},encode(e,o){t=n,d.encode(e,o)},decode:e=>(t=n,d.decode(e))}}const a=p;module.exports={resolveStruct:a,getStruct:p,getEnum:i,getEncoding:s,encode:u,decode:r,setVersion:c,version:t};
@holepunchto/legacy-keet-core-schemas/index.js +1 -32
……@@ -1,32 +1 @@
1const e = require("./lib/schema-builder"),
2 i = require("./lib/keet"),
3 r = require("./lib/internal"),
4 a = require("./lib/config"),
5 l = require("./lib/chat"),
6 c = require("./lib/members"),
7 m = require("./lib/reactions"),
8 b = require("./lib/invitations"),
9 t = require("./lib/devices"),
10 u = require("./lib/mailbox"),
11 o = require("./lib/private-mailbox"),
12 h = require("./lib/private-rooms"),
13 n = require("./lib/private-devices"),
14 q = require("./lib/plugins"),
15 S = require("./lib/plugins/private-profile")
16module.exports = {
17 SchemaBuilder: e,
18 KeetSchema: i,
19 InternalSchema: r,
20 ConfigSchema: a,
21 ChatSchema: l,
22 MemberSchema: c,
23 ReactionSchema: m,
24 InvitationSchema: b,
25 DeviceSchema: t,
26 MailboxSchema: u,
27 PluginSchema: q,
28 PrivateProfileSchema: S,
29 PrivateMailboxSchema: o,
30 PrivateRoomSchema: h,
31 PrivateDeviceSchema: n,
32}
1const e=require("./lib/schema-builder"),i=require("./lib/keet"),r=require("./lib/internal"),a=require("./lib/config"),l=require("./lib/chat"),c=require("./lib/members"),m=require("./lib/reactions"),b=require("./lib/invitations"),t=require("./lib/devices"),u=require("./lib/mailbox"),o=require("./lib/private-mailbox"),h=require("./lib/private-rooms"),n=require("./lib/private-devices"),q=require("./lib/plugins"),S=require("./lib/plugins/private-profile");module.exports={SchemaBuilder:e,KeetSchema:i,InternalSchema:r,ConfigSchema:a,ChatSchema:l,MemberSchema:c,ReactionSchema:m,InvitationSchema:b,DeviceSchema:t,MailboxSchema:u,PluginSchema:q,PrivateProfileSchema:S,PrivateMailboxSchema:o,PrivateRoomSchema:h,PrivateDeviceSchema:n};
@holepunchto/legacy-keet-core-schemas/lib/chat/index.js +1 -39
……@@ -1,39 +1 @@
1const e = require("@holepunchto/hyperindex"),
2 { IndexMemberId: n } = require("../members/messages"),
3 {
4 PRIMARY_THREAD_ID: t,
5 IndexEventId: a,
6 IndexMessageId: i,
7 ClockIndexEncoding: o,
8 EventIdValueEncoding: d,
9 EventRecord: s,
10 } = require("./messages"),
11 {
12 AddChatMessageOperation: r,
13 UpdateChatMessageOperation: c,
14 RemoveChatMessageOperation: p,
15 AddGenericEventOperation: g,
16 RemoveGenericEventOperation: E,
17 AddFileOperation: v,
18 RemoveFileOperation: R,
19 } = require("./ops")
20module.exports = class {
21 static Record = s
22 static Messages = { PRIMARY_THREAD_ID: t }
23 static Operations = {
24 AddChatMessageOperation: r,
25 UpdateChatMessageOperation: c,
26 RemoveChatMessageOperation: p,
27 AddGenericEventOperation: g,
28 RemoveGenericEventOperation: E,
29 AddFileOperation: v,
30 RemoveFileOperation: R,
31 }
32 static ChatCollection = { keyEncoding: a, valueEncoding: s }
33 static ChatIndexes = [
34 { keyEncoding: i, valueEncoding: d },
35 { keyEncoding: o, valueEncoding: d },
36 { keyEncoding: [n, ...a] },
37 { keyEncoding: [e.STRING, e.BUFFER, e.UINT] },
38 ]
39}
1const e=require("@holepunchto/hyperindex"),{IndexMemberId:n}=require("../members/messages"),{PRIMARY_THREAD_ID:t,IndexEventId:a,IndexMessageId:i,ClockIndexEncoding:o,EventIdValueEncoding:d,EventRecord:s}=require("./messages"),{AddChatMessageOperation:r,UpdateChatMessageOperation:c,RemoveChatMessageOperation:p,AddGenericEventOperation:g,RemoveGenericEventOperation:E,AddFileOperation:v,RemoveFileOperation:R}=require("./ops");module.exports=class{static Record=s;static Messages={PRIMARY_THREAD_ID:t};static Operations={AddChatMessageOperation:r,UpdateChatMessageOperation:c,RemoveChatMessageOperation:p,AddGenericEventOperation:g,RemoveGenericEventOperation:E,AddFileOperation:v,RemoveFileOperation:R};static ChatCollection={keyEncoding:a,valueEncoding:s};static ChatIndexes=[{keyEncoding:i,valueEncoding:d},{keyEncoding:o,valueEncoding:d},{keyEncoding:[n,...a]},{keyEncoding:[e.STRING,e.BUFFER,e.UINT]}]};
@holepunchto/legacy-keet-core-schemas/lib/chat/messages.js +1 -445
……@@ -1,445 +1 @@
1const e = require("compact-encoding"),
2 d = require("@holepunchto/hyperindex"),
3 { GENERIC_EVENTS: n, DISPLAY_TYPES: o } = require("@holepunchto/keet-core-api"),
4 c = 0,
5 t = [d.UINT, d.UINT],
6 r = [d.BUFFER, d.UINT],
7 i = e.fixed32,
8 p = d.UINT,
9 u = {
10 preencode(d, n) {
11 ;(e.fixed32.preencode(d, n.key), e.uint.preencode(d, n.seq))
12 },
13 encode(d, n) {
14 ;(e.fixed32.encode(d, n.key), e.uint.encode(d, n.seq))
15 },
16 decode: (d) => ({ key: e.fixed32.decode(d), seq: e.uint.decode(d) }),
17 },
18 s = {
19 preencode(d, n) {
20 ;(e.uint.preencode(d, n[0]), e.uint.preencode(d, n[1]))
21 },
22 encode(d, n) {
23 ;(e.uint.encode(d, n[0]), e.uint.encode(d, n[1]))
24 },
25 decode: (d) => [e.uint.decode(d), e.uint.decode(d)],
26 },
27 l = {
28 TYPE: o.MENTION,
29 preencode(e, d) {
30 ;(i.preencode(e, d.memberId), I.preencode(e, d))
31 },
32 encode(e, d) {
33 ;(i.encode(e, d.memberId), I.encode(e, d))
34 },
35 decode: (e) => ({ memberId: i.decode(e), ...I.decode(e) }),
36 },
37 a = {
38 preencode(d, n) {
39 let o = 0
40 ;(n.title && (o |= 1),
41 n.description && (o |= 2),
42 n.file && (o |= 4),
43 e.uint.preencode(d, o),
44 e.string.preencode(d, n.url),
45 n.title && e.string.preencode(d, n.title),
46 n.description && e.string.preencode(d, n.description),
47 n.file && L.preencode(d, n.file))
48 },
49 encode(d, n) {
50 let o = 0
51 ;(n.title && (o |= 1),
52 n.description && (o |= 2),
53 n.file && (o |= 4),
54 e.uint.encode(d, o),
55 e.string.encode(d, n.url),
56 n.title && e.string.encode(d, n.title),
57 n.description && e.string.encode(d, n.description),
58 n.file && L.encode(d, n.file))
59 },
60 decode(d) {
61 const n = e.uint.decode(d)
62 return {
63 url: e.string.decode(d),
64 title: 1 & n ? e.string.decode(d) : null,
65 description: 2 & n ? e.string.decode(d) : null,
66 file: 4 & n ? L.decode(d) : null,
67 }
68 },
69 },
70 E = {
71 TYPE: o.HTTP_LINK,
72 preencode(d, n) {
73 let o = 0
74 ;(n.preview && (o |= 1),
75 e.uint.preencode(d, o),
76 h.preencode(d, n),
77 n.preview && a.preencode(d, n.preview))
78 },
79 encode(d, n) {
80 let o = 0
81 ;(n.preview && (o |= 1),
82 e.uint.encode(d, o),
83 h.encode(d, n),
84 n.preview && a.encode(d, n.preview))
85 },
86 decode(d) {
87 const n = e.uint.decode(d)
88 return { ...h.decode(d), preview: 1 & n ? a.decode(d) : null }
89 },
90 },
91 v = {
92 TYPE: o.PEAR_LINK,
93 preencode(d, n) {
94 let o = 0
95 ;(n.preview && (o |= 1),
96 e.uint.preencode(d, o),
97 h.preencode(d, n),
98 n.preview && a.preencode(d, n.preview))
99 },
100 encode(d, n) {
101 let o = 0
102 ;(n.preview && (o |= 1),
103 e.uint.encode(d, o),
104 h.encode(d, n),
105 n.preview && a.encode(d, n.preview))
106 },
107 decode(d) {
108 const n = e.uint.decode(d)
109 return { ...h.decode(d), preview: 1 & n ? a.decode(d) : null }
110 },
111 },
112 y = {
113 TYPE: o.CODE,
114 preencode(e, d) {
115 I.preencode(e, d)
116 },
117 encode(e, d) {
118 I.encode(e, d)
119 },
120 decode: (e) => I.decode(e),
121 },
122 T = {
123 TYPE: o.CODE_BLOCK,
124 preencode(e, d) {
125 I.preencode(e, d)
126 },
127 encode(e, d) {
128 I.encode(e, d)
129 },
130 decode: (e) => I.decode(e),
131 },
132 f = {
133 TYPE: o.BOLD,
134 preencode(e, d) {
135 I.preencode(e, d)
136 },
137 encode(e, d) {
138 I.encode(e, d)
139 },
140 decode: (e) => I.decode(e),
141 },
142 w = {
143 TYPE: o.ITALIC,
144 preencode(e, d) {
145 I.preencode(e, d)
146 },
147 encode(e, d) {
148 I.encode(e, d)
149 },
150 decode: (e) => I.decode(e),
151 },
152 g = {
153 TYPE: o.STRIKE_THROUGH,
154 preencode(e, d) {
155 I.preencode(e, d)
156 },
157 encode(e, d) {
158 I.encode(e, d)
159 },
160 decode: (e) => I.decode(e),
161 },
162 m = {
163 TYPE: o.EMOJI,
164 preencode(e, d) {
165 h.preencode(e, d)
166 },
167 encode(e, d) {
168 h.encode(e, d)
169 },
170 decode: (e) => h.decode(e),
171 },
172 h = {
173 preencode(d, n) {
174 ;(e.string.preencode(d, n.content), I.preencode(d, n))
175 },
176 encode(d, n) {
177 ;(e.string.encode(d, n.content), I.encode(d, n))
178 },
179 decode: (d) => ({ content: e.string.decode(d), ...I.decode(d) }),
180 },
181 I = {
182 preencode(d, n) {
183 ;(e.uint.preencode(d, n.start), e.uint.preencode(d, n.length))
184 },
185 encode(d, n) {
186 ;(e.uint.encode(d, n.start), e.uint.encode(d, n.length))
187 },
188 decode: (d) => ({ start: e.uint.decode(d), length: e.uint.decode(d) }),
189 }
190function P(e) {
191 switch (e) {
192 case l.TYPE:
193 return l
194 case E.TYPE:
195 return E
196 case v.TYPE:
197 return v
198 case f.TYPE:
199 return f
200 case w.TYPE:
201 return w
202 case y.TYPE:
203 return y
204 case T.TYPE:
205 return T
206 case g.TYPE:
207 return g
208 case m.TYPE:
209 return m
210 default:
211 return null
212 }
213}
214const Y = {
215 preencode(d, n) {
216 const o = P(n.type)
217 if (!o) throw new Error("Unsupported display type")
218 ;(e.uint.preencode(d, n.type), o.preencode(d, n.value))
219 },
220 encode(d, n) {
221 const o = P(n.type)
222 if (!o) throw new Error("Unsupported display type")
223 ;(e.uint.encode(d, n.type), o.encode(d, n.value))
224 },
225 decode(d) {
226 const n = e.uint.decode(d),
227 o = P(n)
228 if (!o) throw new Error("Unsupported display type")
229 return { type: n, value: o.decode(d) }
230 },
231 },
232 R = e.array(Y),
233 x = {
234 preencode(d, n) {
235 ;(d.end++, e.string.preencode(d, n.text))
236 },
237 encode(d, n) {
238 const o = d.start++
239 e.string.encode(d, n.text)
240 let c = 0
241 ;(n.edited && (c |= 1), (d.buffer[o] = c))
242 },
243 decode(d) {
244 const n = e.uint.decode(d)
245 return { text: e.string.decode(d), edited: !!(1 & n) }
246 },
247 },
248 _ = {
249 preencode(e, d) {
250 L.preencode(e, d)
251 },
252 encode(e, d) {
253 L.encode(e, d)
254 },
255 decode: (e) => L.decode(e),
256 }
257function N(d) {
258 switch (d) {
259 case n.MEMBER_JOINED:
260 case n.CALL_STARTED:
261 case n.ROOM_AVATAR_CHANGED:
262 case n.INVITATION_CREATED:
263 case n.MEMBER_LEFT:
264 return M
265 case n.MEMBER_REMOVED:
266 return k
267 case n.ROOM_TITLE_CHANGED:
268 return O
269 default:
270 return e.buffer
271 }
272}
273const A = {
274 preencode(d, n) {
275 e.uint.preencode(d, n.type)
276 const o = N(n.type)
277 o.preencode && o.preencode(d, n.value)
278 },
279 encode(d, n) {
280 e.uint.encode(d, n.type)
281 const o = N(n.type)
282 o.preencode && o.encode(d, n.value)
283 },
284 decode(d) {
285 const n = e.uint.decode(d),
286 o = N(n)
287 return o.preencode ? { type: n, value: o.decode(d) } : { type: n, value: null }
288 },
289 },
290 M = {},
291 O = {
292 preencode(d, n) {
293 ;(e.string.preencode(d, n.from), e.string.preencode(d, n.to))
294 },
295 encode(d, n) {
296 ;(e.string.encode(d, n.from), e.string.encode(d, n.to))
297 },
298 decode: (d) => ({ from: e.string.decode(d), to: e.string.decode(d) }),
299 },
300 k = {
301 preencode(d, n) {
302 e.fixed32.preencode(d, n.memberKey)
303 },
304 encode(d, n) {
305 e.fixed32.encode(d, n.memberKey)
306 },
307 decode: (d) => ({ memberKey: e.fixed32.decode(d) }),
308 },
309 D = {
310 preencode(d, n) {
311 let o = 0
312 ;(n.deleted && (o |= 1),
313 n.timestamp && (o |= 2),
314 n.chat && (o |= 4),
315 n.file && (o |= 8),
316 n.display && (o |= 16),
317 n.event && (o |= 32),
318 n.parent && (o |= 64),
319 n.replyTo && (o |= 128),
320 e.uint.preencode(d, o),
321 e.uint.preencode(d, n.clock),
322 u.preencode(d, n.id),
323 n.timestamp && e.uint.preencode(d, n.timestamp),
324 n.chat && x.preencode(d, n.chat),
325 n.file && _.preencode(d, n.file),
326 n.display && R.preencode(d, n.display),
327 n.event && A.preencode(d, n.event),
328 n.parent && u.preencode(d, n.parent),
329 n.replyTo && u.preencode(d, n.replyTo))
330 },
331 encode(d, n) {
332 let o = 0
333 ;(n.deleted && (o |= 1),
334 n.timestamp && (o |= 2),
335 n.chat && (o |= 4),
336 n.file && (o |= 8),
337 n.display && (o |= 16),
338 n.event && (o |= 32),
339 n.parent && (o |= 64),
340 n.replyTo && (o |= 128),
341 e.uint.encode(d, o),
342 e.uint.encode(d, n.clock),
343 u.encode(d, n.id),
344 n.timestamp && e.uint.encode(d, n.timestamp),
345 n.chat && x.encode(d, n.chat),
346 n.file && _.encode(d, n.file),
347 n.display && R.encode(d, n.display),
348 n.event && A.encode(d, n.event),
349 n.parent && u.encode(d, n.parent),
350 n.replyTo && u.encode(d, n.replyTo))
351 },
352 decode(d) {
353 const n = e.uint.decode(d)
354 return {
355 clock: e.uint.decode(d),
356 id: u.decode(d),
357 deleted: !!(1 & n),
358 timestamp: 2 & n ? e.uint.decode(d) : null,
359 chat: 4 & n ? x.decode(d) : null,
360 file: 8 & n ? _.decode(d) : null,
361 display: 16 & n ? R.decode(d) : null,
362 event: 32 & n ? A.decode(d) : null,
363 parent: 64 & n ? u.decode(d) : null,
364 replyTo: 128 & n ? u.decode(d) : null,
365 }
366 },
367 },
368 b = {
369 preencode(d, n) {
370 ;(e.fixed32.preencode(d, n.key),
371 e.string.preencode(d, n.path),
372 e.uint.preencode(d, n.version))
373 },
374 encode(d, n) {
375 ;(e.fixed32.encode(d, n.key), e.string.encode(d, n.path), e.uint.encode(d, n.version))
376 },
377 decode: (d) => ({
378 key: e.fixed32.decode(d),
379 path: e.string.decode(d),
380 version: e.uint.decode(d),
381 }),
382 },
383 C = {
384 preencode(d, n) {
385 ;(e.uint.preencode(d, n.width), e.uint.preencode(d, n.height))
386 },
387 encode(d, n) {
388 ;(e.uint.encode(d, n.width), e.uint.encode(d, n.height))
389 },
390 decode: (d) => ({ width: e.uint.decode(d), height: e.uint.decode(d) }),
391 },
392 L = {
393 preencode(d, n) {
394 let o = 0
395 ;(n.type && (o |= 1),
396 n.dimensions && (o |= 2),
397 n.preview && (o |= 4),
398 n.previewPointer && (o |= 8),
399 e.uint.preencode(d, o),
400 b.preencode(d, n),
401 n.type && e.string.preencode(d, n.type),
402 n.dimensions && C.preencode(d, n.dimensions),
403 n.preview && e.buffer.preencode(d, n.preview),
404 n.previewPointer && b.preencode(d, n.previewPointer))
405 },
406 encode(d, n) {
407 let o = 0
408 ;(n.type && (o |= 1),
409 n.dimensions && (o |= 2),
410 n.preview && (o |= 4),
411 n.previewPointer && (o |= 8),
412 e.uint.encode(d, o),
413 b.encode(d, n),
414 n.type && e.string.encode(d, n.type),
415 n.dimensions && C.encode(d, n.dimensions),
416 n.preview && e.buffer.encode(d, n.preview),
417 n.previewPointer && b.encode(d, n.previewPointer))
418 },
419 decode(d) {
420 const n = e.uint.decode(d),
421 { key: o, path: c, version: t } = b.decode(d)
422 return {
423 key: o,
424 path: c,
425 version: t,
426 type: 1 & n ? e.string.decode(d) : null,
427 dimensions: 2 & n ? C.decode(d) : null,
428 preview: 4 & n ? e.buffer.decode(d) : null,
429 previewPointer: 8 & n ? b.decode(d) : null,
430 }
431 },
432 }
433module.exports = {
434 PRIMARY_THREAD_ID: 0,
435 IndexEventId: t,
436 IndexMessageId: r,
437 ClockIndexEncoding: p,
438 MessageId: u,
439 EventIdValueEncoding: s,
440 GenericEvent: A,
441 DisplayEvent: R,
442 ChatEvent: x,
443 EventRecord: D,
444 FileRecord: L,
445}
1const e=require("compact-encoding"),d=require("@holepunchto/hyperindex"),{GENERIC_EVENTS:n,DISPLAY_TYPES:o}=require("@holepunchto/keet-core-api"),c=0,t=[d.UINT,d.UINT],r=[d.BUFFER,d.UINT],i=e.fixed32,p=d.UINT,u={preencode(d,n){e.fixed32.preencode(d,n.key),e.uint.preencode(d,n.seq)},encode(d,n){e.fixed32.encode(d,n.key),e.uint.encode(d,n.seq)},decode:d=>({key:e.fixed32.decode(d),seq:e.uint.decode(d)})},s={preencode(d,n){e.uint.preencode(d,n[0]),e.uint.preencode(d,n[1])},encode(d,n){e.uint.encode(d,n[0]),e.uint.encode(d,n[1])},decode:d=>[e.uint.decode(d),e.uint.decode(d)]},l={TYPE:o.MENTION,preencode(e,d){i.preencode(e,d.memberId),I.preencode(e,d)},encode(e,d){i.encode(e,d.memberId),I.encode(e,d)},decode:e=>({memberId:i.decode(e),...I.decode(e)})},a={preencode(d,n){let o=0;n.title&&(o|=1),n.description&&(o|=2),n.file&&(o|=4),e.uint.preencode(d,o),e.string.preencode(d,n.url),n.title&&e.string.preencode(d,n.title),n.description&&e.string.preencode(d,n.description),n.file&&L.preencode(d,n.file)},encode(d,n){let o=0;n.title&&(o|=1),n.description&&(o|=2),n.file&&(o|=4),e.uint.encode(d,o),e.string.encode(d,n.url),n.title&&e.string.encode(d,n.title),n.description&&e.string.encode(d,n.description),n.file&&L.encode(d,n.file)},decode(d){const n=e.uint.decode(d);return{url:e.string.decode(d),title:1&n?e.string.decode(d):null,description:2&n?e.string.decode(d):null,file:4&n?L.decode(d):null}}},E={TYPE:o.HTTP_LINK,preencode(d,n){let o=0;n.preview&&(o|=1),e.uint.preencode(d,o),h.preencode(d,n),n.preview&&a.preencode(d,n.preview)},encode(d,n){let o=0;n.preview&&(o|=1),e.uint.encode(d,o),h.encode(d,n),n.preview&&a.encode(d,n.preview)},decode(d){const n=e.uint.decode(d);return{...h.decode(d),preview:1&n?a.decode(d):null}}},v={TYPE:o.PEAR_LINK,preencode(d,n){let o=0;n.preview&&(o|=1),e.uint.preencode(d,o),h.preencode(d,n),n.preview&&a.preencode(d,n.preview)},encode(d,n){let o=0;n.preview&&(o|=1),e.uint.encode(d,o),h.encode(d,n),n.preview&&a.encode(d,n.preview)},decode(d){const n=e.uint.decode(d);return{...h.decode(d),preview:1&n?a.decode(d):null}}},y={TYPE:o.CODE,preencode(e,d){I.preencode(e,d)},encode(e,d){I.encode(e,d)},decode:e=>I.decode(e)},T={TYPE:o.CODE_BLOCK,preencode(e,d){I.preencode(e,d)},encode(e,d){I.encode(e,d)},decode:e=>I.decode(e)},f={TYPE:o.BOLD,preencode(e,d){I.preencode(e,d)},encode(e,d){I.encode(e,d)},decode:e=>I.decode(e)},w={TYPE:o.ITALIC,preencode(e,d){I.preencode(e,d)},encode(e,d){I.encode(e,d)},decode:e=>I.decode(e)},g={TYPE:o.STRIKE_THROUGH,preencode(e,d){I.preencode(e,d)},encode(e,d){I.encode(e,d)},decode:e=>I.decode(e)},m={TYPE:o.EMOJI,preencode(e,d){h.preencode(e,d)},encode(e,d){h.encode(e,d)},decode:e=>h.decode(e)},h={preencode(d,n){e.string.preencode(d,n.content),I.preencode(d,n)},encode(d,n){e.string.encode(d,n.content),I.encode(d,n)},decode:d=>({content:e.string.decode(d),...I.decode(d)})},I={preencode(d,n){e.uint.preencode(d,n.start),e.uint.preencode(d,n.length)},encode(d,n){e.uint.encode(d,n.start),e.uint.encode(d,n.length)},decode:d=>({start:e.uint.decode(d),length:e.uint.decode(d)})};function P(e){switch(e){case l.TYPE:return l;case E.TYPE:return E;case v.TYPE:return v;case f.TYPE:return f;case w.TYPE:return w;case y.TYPE:return y;case T.TYPE:return T;case g.TYPE:return g;case m.TYPE:return m;default:return null}}const Y={preencode(d,n){const o=P(n.type);if(!o)throw new Error("Unsupported display type");e.uint.preencode(d,n.type),o.preencode(d,n.value)},encode(d,n){const o=P(n.type);if(!o)throw new Error("Unsupported display type");e.uint.encode(d,n.type),o.encode(d,n.value)},decode(d){const n=e.uint.decode(d),o=P(n);if(!o)throw new Error("Unsupported display type");return{type:n,value:o.decode(d)}}},R=e.array(Y),x={preencode(d,n){d.end++,e.string.preencode(d,n.text)},encode(d,n){const o=d.start++;e.string.encode(d,n.text);let c=0;n.edited&&(c|=1),d.buffer[o]=c},decode(d){const n=e.uint.decode(d);return{text:e.string.decode(d),edited:!!(1&n)}}},_={preencode(e,d){L.preencode(e,d)},encode(e,d){L.encode(e,d)},decode:e=>L.decode(e)};function N(d){switch(d){case n.MEMBER_JOINED:case n.CALL_STARTED:case n.ROOM_AVATAR_CHANGED:case n.INVITATION_CREATED:case n.MEMBER_LEFT:return M;case n.MEMBER_REMOVED:return k;case n.ROOM_TITLE_CHANGED:return O;default:return e.buffer}}const A={preencode(d,n){e.uint.preencode(d,n.type);const o=N(n.type);o.preencode&&o.preencode(d,n.value)},encode(d,n){e.uint.encode(d,n.type);const o=N(n.type);o.preencode&&o.encode(d,n.value)},decode(d){const n=e.uint.decode(d),o=N(n);return o.preencode?{type:n,value:o.decode(d)}:{type:n,value:null}}},M={},O={preencode(d,n){e.string.preencode(d,n.from),e.string.preencode(d,n.to)},encode(d,n){e.string.encode(d,n.from),e.string.encode(d,n.to)},decode:d=>({from:e.string.decode(d),to:e.string.decode(d)})},k={preencode(d,n){e.fixed32.preencode(d,n.memberKey)},encode(d,n){e.fixed32.encode(d,n.memberKey)},decode:d=>({memberKey:e.fixed32.decode(d)})},D={preencode(d,n){let o=0;n.deleted&&(o|=1),n.timestamp&&(o|=2),n.chat&&(o|=4),n.file&&(o|=8),n.display&&(o|=16),n.event&&(o|=32),n.parent&&(o|=64),n.replyTo&&(o|=128),e.uint.preencode(d,o),e.uint.preencode(d,n.clock),u.preencode(d,n.id),n.timestamp&&e.uint.preencode(d,n.timestamp),n.chat&&x.preencode(d,n.chat),n.file&&_.preencode(d,n.file),n.display&&R.preencode(d,n.display),n.event&&A.preencode(d,n.event),n.parent&&u.preencode(d,n.parent),n.replyTo&&u.preencode(d,n.replyTo)},encode(d,n){let o=0;n.deleted&&(o|=1),n.timestamp&&(o|=2),n.chat&&(o|=4),n.file&&(o|=8),n.display&&(o|=16),n.event&&(o|=32),n.parent&&(o|=64),n.replyTo&&(o|=128),e.uint.encode(d,o),e.uint.encode(d,n.clock),u.encode(d,n.id),n.timestamp&&e.uint.encode(d,n.timestamp),n.chat&&x.encode(d,n.chat),n.file&&_.encode(d,n.file),n.display&&R.encode(d,n.display),n.event&&A.encode(d,n.event),n.parent&&u.encode(d,n.parent),n.replyTo&&u.encode(d,n.replyTo)},decode(d){const n=e.uint.decode(d);return{clock:e.uint.decode(d),id:u.decode(d),deleted:!!(1&n),timestamp:2&n?e.uint.decode(d):null,chat:4&n?x.decode(d):null,file:8&n?_.decode(d):null,display:16&n?R.decode(d):null,event:32&n?A.decode(d):null,parent:64&n?u.decode(d):null,replyTo:128&n?u.decode(d):null}}},b={preencode(d,n){e.fixed32.preencode(d,n.key),e.string.preencode(d,n.path),e.uint.preencode(d,n.version)},encode(d,n){e.fixed32.encode(d,n.key),e.string.encode(d,n.path),e.uint.encode(d,n.version)},decode:d=>({key:e.fixed32.decode(d),path:e.string.decode(d),version:e.uint.decode(d)})},C={preencode(d,n){e.uint.preencode(d,n.width),e.uint.preencode(d,n.height)},encode(d,n){e.uint.encode(d,n.width),e.uint.encode(d,n.height)},decode:d=>({width:e.uint.decode(d),height:e.uint.decode(d)})},L={preencode(d,n){let o=0;n.type&&(o|=1),n.dimensions&&(o|=2),n.preview&&(o|=4),n.previewPointer&&(o|=8),e.uint.preencode(d,o),b.preencode(d,n),n.type&&e.string.preencode(d,n.type),n.dimensions&&C.preencode(d,n.dimensions),n.preview&&e.buffer.preencode(d,n.preview),n.previewPointer&&b.preencode(d,n.previewPointer)},encode(d,n){let o=0;n.type&&(o|=1),n.dimensions&&(o|=2),n.preview&&(o|=4),n.previewPointer&&(o|=8),e.uint.encode(d,o),b.encode(d,n),n.type&&e.string.encode(d,n.type),n.dimensions&&C.encode(d,n.dimensions),n.preview&&e.buffer.encode(d,n.preview),n.previewPointer&&b.encode(d,n.previewPointer)},decode(d){const n=e.uint.decode(d),{key:o,path:c,version:t}=b.decode(d);return{key:o,path:c,version:t,type:1&n?e.string.decode(d):null,dimensions:2&n?C.decode(d):null,preview:4&n?e.buffer.decode(d):null,previewPointer:8&n?b.decode(d):null}}};module.exports={PRIMARY_THREAD_ID:0,IndexEventId:t,IndexMessageId:r,ClockIndexEncoding:p,MessageId:u,EventIdValueEncoding:s,GenericEvent:A,DisplayEvent:R,ChatEvent:x,EventRecord:D,FileRecord:L};
@holepunchto/legacy-keet-core-schemas/lib/chat/ops.js +1 -125
……@@ -1,125 +1 @@
1const e = require("compact-encoding"),
2 {
3 MessageId: d,
4 ChatEvent: o,
5 DisplayEvent: n,
6 GenericEvent: c,
7 FileRecord: i,
8 } = require("./messages"),
9 r = {
10 TYPE: 3,
11 preencode(c, i) {
12 let r = 0
13 ;(i.display && (r |= 1),
14 i.replyTo && (r |= 2),
15 e.uint.preencode(c, r),
16 o.preencode(c, i),
17 i.display && n.preencode(c, i.display),
18 i.replyTo && d.preencode(c, i.replyTo))
19 },
20 encode(c, i) {
21 let r = 0
22 ;(i.display && (r |= 1),
23 i.replyTo && (r |= 2),
24 e.uint.encode(c, r),
25 o.encode(c, i),
26 i.display && n.encode(c, i.display),
27 i.replyTo && d.encode(c, i.replyTo))
28 },
29 decode(c) {
30 const i = e.uint.decode(c)
31 return {
32 ...o.decode(c),
33 display: 1 & i ? n.decode(c) : null,
34 replyTo: 2 & i ? d.decode(c) : null,
35 }
36 },
37 },
38 p = {
39 TYPE: 4,
40 preencode(c, i) {
41 let r = 0
42 ;(i.display && (r |= 1),
43 i.replyTo && (r |= 2),
44 e.uint.preencode(c, r),
45 d.preencode(c, i.id),
46 o.preencode(c, i),
47 i.display && n.preencode(c, i.display),
48 i.replyTo && d.preencode(c, i.replyTo))
49 },
50 encode(c, i) {
51 let r = 0
52 ;(i.display && (r |= 1),
53 i.replyTo && (r |= 2),
54 e.uint.encode(c, r),
55 d.encode(c, i.id),
56 o.encode(c, i),
57 i.display && n.encode(c, i.display),
58 i.replyTo && d.encode(c, i.replyTo))
59 },
60 decode(c) {
61 const i = e.uint.decode(c)
62 return {
63 id: d.decode(c),
64 ...o.decode(c),
65 display: 1 & i ? n.decode(c) : null,
66 replyTo: 2 & i ? d.decode(c) : null,
67 }
68 },
69 },
70 l = {
71 TYPE: 5,
72 preencode(e, o) {
73 d.preencode(e, o.id)
74 },
75 encode(e, o) {
76 d.encode(e, o.id)
77 },
78 decode: (e) => ({ id: d.decode(e) }),
79 },
80 t = { TYPE: 6, ...c },
81 s = {
82 TYPE: 7,
83 preencode(e, o) {
84 d.preencode(e, o.id)
85 },
86 encode(e, o) {
87 d.encode(e, o.id)
88 },
89 decode: (e) => ({ id: d.decode(e) }),
90 },
91 a = {
92 TYPE: 1,
93 preencode(d, o) {
94 ;(d.end++, i.preencode(d, o.file), o.description && e.string.preencode(d, o.description))
95 },
96 encode(d, o) {
97 const n = d.start++
98 i.encode(d, o.file)
99 let c = 0
100 ;(o.description && ((c |= 1), e.string.encode(d, o.description)), (d.buffer[n] = c))
101 },
102 decode(d) {
103 const o = e.uint.decode(d)
104 return { file: i.decode(d), description: 1 & o ? e.string.decode(d) : null }
105 },
106 },
107 y = {
108 TYPE: 2,
109 preencode(e, o) {
110 d.preencode(e, o.id)
111 },
112 encode(e, o) {
113 d.encode(e, o.id)
114 },
115 decode: (e) => ({ id: d.decode(e) }),
116 }
117module.exports = {
118 AddChatMessageOperation: r,
119 UpdateChatMessageOperation: p,
120 RemoveChatMessageOperation: l,
121 AddGenericEventOperation: t,
122 RemoveGenericEventOperation: s,
123 AddFileOperation: a,
124 RemoveFileOperation: y,
125}
1const e=require("compact-encoding"),{MessageId:d,ChatEvent:o,DisplayEvent:n,GenericEvent:c,FileRecord:i}=require("./messages"),r={TYPE:3,preencode(c,i){let r=0;i.display&&(r|=1),i.replyTo&&(r|=2),e.uint.preencode(c,r),o.preencode(c,i),i.display&&n.preencode(c,i.display),i.replyTo&&d.preencode(c,i.replyTo)},encode(c,i){let r=0;i.display&&(r|=1),i.replyTo&&(r|=2),e.uint.encode(c,r),o.encode(c,i),i.display&&n.encode(c,i.display),i.replyTo&&d.encode(c,i.replyTo)},decode(c){const i=e.uint.decode(c);return{...o.decode(c),display:1&i?n.decode(c):null,replyTo:2&i?d.decode(c):null}}},p={TYPE:4,preencode(c,i){let r=0;i.display&&(r|=1),i.replyTo&&(r|=2),e.uint.preencode(c,r),d.preencode(c,i.id),o.preencode(c,i),i.display&&n.preencode(c,i.display),i.replyTo&&d.preencode(c,i.replyTo)},encode(c,i){let r=0;i.display&&(r|=1),i.replyTo&&(r|=2),e.uint.encode(c,r),d.encode(c,i.id),o.encode(c,i),i.display&&n.encode(c,i.display),i.replyTo&&d.encode(c,i.replyTo)},decode(c){const i=e.uint.decode(c);return{id:d.decode(c),...o.decode(c),display:1&i?n.decode(c):null,replyTo:2&i?d.decode(c):null}}},l={TYPE:5,preencode(e,o){d.preencode(e,o.id)},encode(e,o){d.encode(e,o.id)},decode:e=>({id:d.decode(e)})},t={TYPE:6,...c},s={TYPE:7,preencode(e,o){d.preencode(e,o.id)},encode(e,o){d.encode(e,o.id)},decode:e=>({id:d.decode(e)})},a={TYPE:1,preencode(d,o){d.end++,i.preencode(d,o.file),o.description&&e.string.preencode(d,o.description)},encode(d,o){const n=d.start++;i.encode(d,o.file);let c=0;o.description&&(c|=1,e.string.encode(d,o.description)),d.buffer[n]=c},decode(d){const o=e.uint.decode(d);return{file:i.decode(d),description:1&o?e.string.decode(d):null}}},y={TYPE:2,preencode(e,o){d.preencode(e,o.id)},encode(e,o){d.encode(e,o.id)},decode:e=>({id:d.decode(e)})};module.exports={AddChatMessageOperation:r,UpdateChatMessageOperation:p,RemoveChatMessageOperation:l,AddGenericEventOperation:t,RemoveGenericEventOperation:s,AddFileOperation:a,RemoveFileOperation:y};
@holepunchto/legacy-keet-core-schemas/lib/config/index.js +1 -44
……@@ -1,44 +1 @@
1const e = require("compact-encoding"),
2 { CONFIG: a } = require("@holepunchto/keet-core-api"),
3 r = require("../internal"),
4 { UpdateConfigOperationV1: t, UpdateConfigOperationV2: s } = require("./ops"),
5 { MirrorRecord: n } = require("./messages.js"),
6 { MessageId: c } = require("../chat/messages.js")
7module.exports = class i {
8 static Encoding = r.ConfigEncoding
9 static Operations = { UpdateConfigOperationV1: t, UpdateConfigOperationV2: s }
10 static Collection = { keyEncoding: e.uint, valueEncoding: e.any }
11 static PinnedMessages = e.array(c)
12 static Mirrors = e.array(n)
13 static getValue(e) {
14 if (!e || !e.value) return null
15 const { key: a, value: r } = e
16 return i.decodeValue(a, r)
17 }
18 static decodeValue(e, a) {
19 return i.encodeValue(e, a, !0)
20 }
21 static encodeValue(r, t, s = !1) {
22 const n = s ? e.decode : e.encode
23 switch (r) {
24 case a.ID_PUBLIC_KEY:
25 case a.ID_SHARED_INVITE_SEED:
26 case a.ID_RECOVERY_PHRASE:
27 case a.ROOM_TITLE:
28 case a.ROOM_DESCRIPTION:
29 case a.ROOM_AVATAR:
30 case a.ROOM_TYPE:
31 case a.ROOM_CAN_CALL:
32 return n(e.string, t)
33 case a.PINNED_MESSAGES:
34 return n(i.PinnedMessages, t)
35 case a.ROOM_MIRRORS:
36 return n(i.Mirrors, t)
37 case a.ROOM_LOCKED:
38 case a.DISABLE_MEMBERSHIP_EVENTS:
39 return n(e.uint, t)
40 default:
41 return n(e.string, t)
42 }
43 }
44}
1const e=require("compact-encoding"),{CONFIG:a}=require("@holepunchto/keet-core-api"),r=require("../internal"),{UpdateConfigOperationV1:t,UpdateConfigOperationV2:s}=require("./ops"),{MirrorRecord:n}=require("./messages.js"),{MessageId:c}=require("../chat/messages.js");module.exports=class i{static Encoding=r.ConfigEncoding;static Operations={UpdateConfigOperationV1:t,UpdateConfigOperationV2:s};static Collection={keyEncoding:e.uint,valueEncoding:e.any};static PinnedMessages=e.array(c);static Mirrors=e.array(n);static getValue(e){if(!e||!e.value)return null;const{key:a,value:r}=e;return i.decodeValue(a,r)}static decodeValue(e,a){return i.encodeValue(e,a,!0)}static encodeValue(r,t,s=!1){const n=s?e.decode:e.encode;switch(r){case a.ID_PUBLIC_KEY:case a.ID_SHARED_INVITE_SEED:case a.ID_RECOVERY_PHRASE:case a.ROOM_TITLE:case a.ROOM_DESCRIPTION:case a.ROOM_AVATAR:case a.ROOM_TYPE:case a.ROOM_CAN_CALL:return n(e.string,t);case a.PINNED_MESSAGES:return n(i.PinnedMessages,t);case a.ROOM_MIRRORS:return n(i.Mirrors,t);case a.ROOM_LOCKED:case a.DISABLE_MEMBERSHIP_EVENTS:return n(e.uint,t);default:return n(e.string,t)}}};
@holepunchto/legacy-keet-core-schemas/lib/config/messages.js +1 -30
……@@ -1,30 +1 @@
1const e = require("compact-encoding"),
2 n = {
3 preencode(n, t) {
4 let d = 0
5 ;(t.type && (d |= 1),
6 t.signature && (d |= 2),
7 e.uint.preencode(n, d),
8 e.fixed32.preencode(n, t.key),
9 t.type && e.uint.preencode(n, t.type),
10 t.signature && e.buffer.preencode(n, t.signature))
11 },
12 encode(n, t) {
13 let d = 0
14 ;(t.type && (d |= 1),
15 t.signature && (d |= 2),
16 e.uint.encode(n, d),
17 e.fixed32.encode(n, t.key),
18 t.type && e.uint.encode(n, t.type),
19 t.signature && e.buffer.encode(n, t.signature))
20 },
21 decode(n) {
22 const t = e.uint.decode(n)
23 return {
24 key: e.fixed32.decode(n),
25 type: 1 & t ? e.uint.decode(n) : 0,
26 signature: 2 & t ? e.buffer.decode(n) : null,
27 }
28 },
29 }
30module.exports = { MirrorRecord: n }
1const e=require("compact-encoding"),n={preencode(n,t){let d=0;t.type&&(d|=1),t.signature&&(d|=2),e.uint.preencode(n,d),e.fixed32.preencode(n,t.key),t.type&&e.uint.preencode(n,t.type),t.signature&&e.buffer.preencode(n,t.signature)},encode(n,t){let d=0;t.type&&(d|=1),t.signature&&(d|=2),e.uint.encode(n,d),e.fixed32.encode(n,t.key),t.type&&e.uint.encode(n,t.type),t.signature&&e.buffer.encode(n,t.signature)},decode(n){const t=e.uint.decode(n);return{key:e.fixed32.decode(n),type:1&t?e.uint.decode(n):0,signature:2&t?e.buffer.decode(n):null}}};module.exports={MirrorRecord:n};
@holepunchto/legacy-keet-core-schemas/lib/config/ops.js +1 -28
……@@ -1,28 +1 @@
1const e = require("compact-encoding"),
2 n = {
3 TYPE: 11,
4 preencode(n, d) {
5 ;(n.end++, e.string.preencode(n, d.key), d.value && e.string.preencode(n, d.value))
6 },
7 encode(n, d) {
8 const o = n.start++
9 e.string.encode(n, d.key)
10 let r = 0
11 ;(d.value && ((r |= 1), e.string.encode(n, d.value)), (n.buffer[o] = r))
12 },
13 decode(n) {
14 const d = e.uint.decode(n)
15 return { key: e.string.decode(n), value: 1 & d ? e.string.decode(n) : null }
16 },
17 },
18 d = {
19 TYPE: 26,
20 preencode(n, d) {
21 ;(e.string.preencode(n, d.key), e.buffer.preencode(n, d.value))
22 },
23 encode(n, d) {
24 ;(e.string.encode(n, d.key), e.buffer.encode(n, d.value))
25 },
26 decode: (n) => ({ key: e.string.decode(n), value: e.buffer.decode(n) }),
27 }
28module.exports = { UpdateConfigOperationV1: n, UpdateConfigOperationV2: d }
1const e=require("compact-encoding"),n={TYPE:11,preencode(n,d){n.end++,e.string.preencode(n,d.key),d.value&&e.string.preencode(n,d.value)},encode(n,d){const o=n.start++;e.string.encode(n,d.key);let r=0;d.value&&(r|=1,e.string.encode(n,d.value)),n.buffer[o]=r},decode(n){const d=e.uint.decode(n);return{key:e.string.decode(n),value:1&d?e.string.decode(n):null}}},d={TYPE:26,preencode(n,d){e.string.preencode(n,d.key),e.buffer.preencode(n,d.value)},encode(n,d){e.string.encode(n,d.key),e.buffer.encode(n,d.value)},decode:n=>({key:e.string.decode(n),value:e.buffer.decode(n)})};module.exports={UpdateConfigOperationV1:n,UpdateConfigOperationV2:d};
@holepunchto/legacy-keet-core-schemas/lib/devices/index.js +1 -27
……@@ -1,27 +1 @@
1const e = require("compact-encoding"),
2 i = require("@holepunchto/hyperindex"),
3 { IndexMemberId: n } = require("../members/messages"),
4 { DeviceRecord: o } = require("./messages"),
5 {
6 AddDeviceOperationV1: c,
7 AddDeviceOperationV2: t,
8 UpdateDeviceOperation: a,
9 RemoveDeviceOperationV1: r,
10 RemoveDeviceOperationV2: d,
11 } = require("./ops")
12module.exports = class {
13 static Messages = {}
14 static Operations = {
15 AddDeviceOperationV1: c,
16 AddDeviceOperationV2: t,
17 UpdateDeviceOperation: a,
18 RemoveDeviceOperationV1: r,
19 RemoveDeviceOperationV2: d,
20 }
21 static DevicesCollection = { keyEncoding: n, valueEncoding: o }
22 static DevicesIndexes = [
23 { keyEncoding: i.BUFFER, valueEncoding: n },
24 { keyEncoding: i.UINT, valueEncoding: e.uint },
25 { keyEncoding: i.UINT, valueEncoding: e.uint },
26 ]
27}
1const e=require("compact-encoding"),i=require("@holepunchto/hyperindex"),{IndexMemberId:n}=require("../members/messages"),{DeviceRecord:o}=require("./messages"),{AddDeviceOperationV1:c,AddDeviceOperationV2:t,UpdateDeviceOperation:a,RemoveDeviceOperationV1:r,RemoveDeviceOperationV2:d}=require("./ops");module.exports=class{static Messages={};static Operations={AddDeviceOperationV1:c,AddDeviceOperationV2:t,UpdateDeviceOperation:a,RemoveDeviceOperationV1:r,RemoveDeviceOperationV2:d};static DevicesCollection={keyEncoding:n,valueEncoding:o};static DevicesIndexes=[{keyEncoding:i.BUFFER,valueEncoding:n},{keyEncoding:i.UINT,valueEncoding:e.uint},{keyEncoding:i.UINT,valueEncoding:e.uint}]};
@holepunchto/legacy-keet-core-schemas/lib/devices/messages.js +1 -34
……@@ -1,34 +1 @@
1const e = require("compact-encoding"),
2 i = {
3 preencode(i, c) {
4 ;(i.end++,
5 e.fixed32.preencode(i, c.key),
6 e.fixed32.preencode(i, c.noisePublicKey),
7 e.uint.preencode(i, c.capabilities),
8 c.receipt && e.buffer.preencode(i, c.receipt),
9 c.name && e.string.preencode(i, c.name))
10 },
11 encode(i, c) {
12 const d = i.start++
13 ;(e.fixed32.encode(i, c.key),
14 e.fixed32.encode(i, c.noisePublicKey),
15 e.uint.encode(i, c.capabilities))
16 let n = 0
17 ;(c.receipt && ((n |= 1), e.buffer.encode(i, c.receipt)),
18 c.isMobile && (n |= 2),
19 c.name && ((n |= 4), e.string.encode(i, c.name)),
20 (i.buffer[d] = n))
21 },
22 decode(i) {
23 const c = e.uint.decode(i)
24 return {
25 key: e.fixed32.decode(i),
26 noisePublicKey: e.fixed32.decode(i),
27 capabilities: e.uint.decode(i),
28 receipt: 1 & c ? e.buffer.decode(i) : null,
29 isMobile: !!(2 & c),
30 name: 4 & c ? e.string.decode(i) : null,
31 }
32 },
33 }
34module.exports = { DeviceRecord: i }
1const e=require("compact-encoding"),i={preencode(i,c){i.end++,e.fixed32.preencode(i,c.key),e.fixed32.preencode(i,c.noisePublicKey),e.uint.preencode(i,c.capabilities),c.receipt&&e.buffer.preencode(i,c.receipt),c.name&&e.string.preencode(i,c.name)},encode(i,c){const d=i.start++;e.fixed32.encode(i,c.key),e.fixed32.encode(i,c.noisePublicKey),e.uint.encode(i,c.capabilities);let n=0;c.receipt&&(n|=1,e.buffer.encode(i,c.receipt)),c.isMobile&&(n|=2),c.name&&(n|=4,e.string.encode(i,c.name)),i.buffer[d]=n},decode(i){const c=e.uint.decode(i);return{key:e.fixed32.decode(i),noisePublicKey:e.fixed32.decode(i),capabilities:e.uint.decode(i),receipt:1&c?e.buffer.decode(i):null,isMobile:!!(2&c),name:4&c?e.string.decode(i):null}}};module.exports={DeviceRecord:i};
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/.gitattributes +1 -0
……@@ -0,0 +1 @@
1* text=auto eol=lf
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/.github/workflows/test-node.yml +23 -0
……@@ -0,0 +1,23 @@
1name: Build Status
2on:
3 push:
4 branches:
5 - main
6 pull_request:
7 branches:
8 - main
9jobs:
10 build:
11 strategy:
12 matrix:
13 node-version: [lts/*]
14 os: [ubuntu-latest, macos-latest, windows-latest]
15 runs-on: ${{ matrix.os }}
16 steps:
17 - uses: actions/checkout@v2
18 - name: Use Node.js ${{ matrix.node-version }}
19 uses: actions/setup-node@v2
20 with:
21 node-version: ${{ matrix.node-version }}
22 - run: npm install
23 - run: npm test
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/.prettierrc +1 -0
……@@ -0,0 +1 @@
1prettier-config-holepunch
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/LICENSE +201 -0
……@@ -0,0 +1,201 @@
1 Apache License
2 Version 2.0, January 2004
3 http://www.apache.org/licenses/
4
5 TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
7 1. Definitions.
8
9 "License" shall mean the terms and conditions for use, reproduction,
10 and distribution as defined by Sections 1 through 9 of this document.
11
12 "Licensor" shall mean the copyright owner or entity authorized by
13 the copyright owner that is granting the License.
14
15 "Legal Entity" shall mean the union of the acting entity and all
16 other entities that control, are controlled by, or are under common
17 control with that entity. For the purposes of this definition,
18 "control" means (i) the power, direct or indirect, to cause the
19 direction or management of such entity, whether by contract or
20 otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 outstanding shares, or (iii) beneficial ownership of such entity.
22
23 "You" (or "Your") shall mean an individual or Legal Entity
24 exercising permissions granted by this License.
25
26 "Source" form shall mean the preferred form for making modifications,
27 including but not limited to software source code, documentation
28 source, and configuration files.
29
30 "Object" form shall mean any form resulting from mechanical
31 transformation or translation of a Source form, including but
32 not limited to compiled object code, generated documentation,
33 and conversions to other media types.
34
35 "Work" shall mean the work of authorship, whether in Source or
36 Object form, made available under the License, as indicated by a
37 copyright notice that is included in or attached to the work
38 (an example is provided in the Appendix below).
39
40 "Derivative Works" shall mean any work, whether in Source or Object
41 form, that is based on (or derived from) the Work and for which the
42 editorial revisions, annotations, elaborations, or other modifications
43 represent, as a whole, an original work of authorship. For the purposes
44 of this License, Derivative Works shall not include works that remain
45 separable from, or merely link (or bind by name) to the interfaces of,
46 the Work and Derivative Works thereof.
47
48 "Contribution" shall mean any work of authorship, including
49 the original version of the Work and any modifications or additions
50 to that Work or Derivative Works thereof, that is intentionally
51 submitted to Licensor for inclusion in the Work by the copyright owner
52 or by an individual or Legal Entity authorized to submit on behalf of
53 the copyright owner. For the purposes of this definition, "submitted"
54 means any form of electronic, verbal, or written communication sent
55 to the Licensor or its representatives, including but not limited to
56 communication on electronic mailing lists, source code control systems,
57 and issue tracking systems that are managed by, or on behalf of, the
58 Licensor for the purpose of discussing and improving the Work, but
59 excluding communication that is conspicuously marked or otherwise
60 designated in writing by the copyright owner as "Not a Contribution."
61
62 "Contributor" shall mean Licensor and any individual or Legal Entity
63 on behalf of whom a Contribution has been received by Licensor and
64 subsequently incorporated within the Work.
65
66 2. Grant of Copyright License. Subject to the terms and conditions of
67 this License, each Contributor hereby grants to You a perpetual,
68 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 copyright license to reproduce, prepare Derivative Works of,
70 publicly display, publicly perform, sublicense, and distribute the
71 Work and such Derivative Works in Source or Object form.
72
73 3. Grant of Patent License. Subject to the terms and conditions of
74 this License, each Contributor hereby grants to You a perpetual,
75 worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 (except as stated in this section) patent license to make, have made,
77 use, offer to sell, sell, import, and otherwise transfer the Work,
78 where such license applies only to those patent claims licensable
79 by such Contributor that are necessarily infringed by their
80 Contribution(s) alone or by combination of their Contribution(s)
81 with the Work to which such Contribution(s) was submitted. If You
82 institute patent litigation against any entity (including a
83 cross-claim or counterclaim in a lawsuit) alleging that the Work
84 or a Contribution incorporated within the Work constitutes direct
85 or contributory patent infringement, then any patent licenses
86 granted to You under this License for that Work shall terminate
87 as of the date such litigation is filed.
88
89 4. Redistribution. You may reproduce and distribute copies of the
90 Work or Derivative Works thereof in any medium, with or without
91 modifications, and in Source or Object form, provided that You
92 meet the following conditions:
93
94 (a) You must give any other recipients of the Work or
95 Derivative Works a copy of this License; and
96
97 (b) You must cause any modified files to carry prominent notices
98 stating that You changed the files; and
99
100 (c) You must retain, in the Source form of any Derivative Works
101 that You distribute, all copyright, patent, trademark, and
102 attribution notices from the Source form of the Work,
103 excluding those notices that do not pertain to any part of
104 the Derivative Works; and
105
106 (d) If the Work includes a "NOTICE" text file as part of its
107 distribution, then any Derivative Works that You distribute must
108 include a readable copy of the attribution notices contained
109 within such NOTICE file, excluding those notices that do not
110 pertain to any part of the Derivative Works, in at least one
111 of the following places: within a NOTICE text file distributed
112 as part of the Derivative Works; within the Source form or
113 documentation, if provided along with the Derivative Works; or,
114 within a display generated by the Derivative Works, if and
115 wherever such third-party notices normally appear. The contents
116 of the NOTICE file are for informational purposes only and
117 do not modify the License. You may add Your own attribution
118 notices within Derivative Works that You distribute, alongside
119 or as an addendum to the NOTICE text from the Work, provided
120 that such additional attribution notices cannot be construed
121 as modifying the License.
122
123 You may add Your own copyright statement to Your modifications and
124 may provide additional or different license terms and conditions
125 for use, reproduction, or distribution of Your modifications, or
126 for any such Derivative Works as a whole, provided Your use,
127 reproduction, and distribution of the Work otherwise complies with
128 the conditions stated in this License.
129
130 5. Submission of Contributions. Unless You explicitly state otherwise,
131 any Contribution intentionally submitted for inclusion in the Work
132 by You to the Licensor shall be under the terms and conditions of
133 this License, without any additional terms or conditions.
134 Notwithstanding the above, nothing herein shall supersede or modify
135 the terms of any separate license agreement you may have executed
136 with Licensor regarding such Contributions.
137
138 6. Trademarks. This License does not grant permission to use the trade
139 names, trademarks, service marks, or product names of the Licensor,
140 except as required for reasonable and customary use in describing the
141 origin of the Work and reproducing the content of the NOTICE file.
142
143 7. Disclaimer of Warranty. Unless required by applicable law or
144 agreed to in writing, Licensor provides the Work (and each
145 Contributor provides its Contributions) on an "AS IS" BASIS,
146 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 implied, including, without limitation, any warranties or conditions
148 of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 PARTICULAR PURPOSE. You are solely responsible for determining the
150 appropriateness of using or redistributing the Work and assume any
151 risks associated with Your exercise of permissions under this License.
152
153 8. Limitation of Liability. In no event and under no legal theory,
154 whether in tort (including negligence), contract, or otherwise,
155 unless required by applicable law (such as deliberate and grossly
156 negligent acts) or agreed to in writing, shall any Contributor be
157 liable to You for damages, including any direct, indirect, special,
158 incidental, or consequential damages of any character arising as a
159 result of this License or out of the use or inability to use the
160 Work (including but not limited to damages for loss of goodwill,
161 work stoppage, computer failure or malfunction, or any and all
162 other commercial damages or losses), even if such Contributor
163 has been advised of the possibility of such damages.
164
165 9. Accepting Warranty or Additional Liability. While redistributing
166 the Work or Derivative Works thereof, You may choose to offer,
167 and charge a fee for, acceptance of support, warranty, indemnity,
168 or other liability obligations and/or rights consistent with this
169 License. However, in accepting such obligations, You may act only
170 on Your own behalf and on Your sole responsibility, not on behalf
171 of any other Contributor, and only if You agree to indemnify,
172 defend, and hold each Contributor harmless for any liability
173 incurred by, or claims asserted against, such Contributor by reason
174 of your accepting any such warranty or additional liability.
175
176 END OF TERMS AND CONDITIONS
177
178 APPENDIX: How to apply the Apache License to your work.
179
180 To apply the Apache License to your work, attach the following
181 boilerplate notice, with the fields enclosed by brackets "[]"
182 replaced with your own identifying information. (Don't include
183 the brackets!) The text should be enclosed in the appropriate
184 comment syntax for the file format. We also recommend that a
185 file or class name and description of purpose be included on the
186 same "printed page" as the copyright notice for easier
187 identification within third-party archives.
188
189 Copyright [yyyy] [name of copyright owner]
190
191 Licensed under the Apache License, Version 2.0 (the "License");
192 you may not use this file except in compliance with the License.
193 You may obtain a copy of the License at
194
195 http://www.apache.org/licenses/LICENSE-2.0
196
197 Unless required by applicable law or agreed to in writing, software
198 distributed under the License is distributed on an "AS IS" BASIS,
199 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 See the License for the specific language governing permissions and
201 limitations under the License.
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/NOTICE +13 -0
……@@ -0,0 +1,13 @@
1Copyright 2023 Holepunch Inc
2
3Licensed under the Apache License, Version 2.0 (the "License");
4you may not use this file except in compliance with the License.
5You may obtain a copy of the License at
6
7 http://www.apache.org/licenses/LICENSE-2.0
8
9Unless required by applicable law or agreed to in writing, software
10distributed under the License is distributed on an "AS IS" BASIS,
11WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12See the License for the specific language governing permissions and
13limitations under the License.
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/README.md +165 -0
……@@ -0,0 +1,165 @@
1# compact-encoding
2
3A series of compact encoding schemes for building small and fast parsers and serializers
4
5```
6npm install compact-encoding
7```
8
9## Usage
10
11```js
12const cenc = require('compact-encoding')
13
14const state = cenc.state()
15
16// use preencode to figure out how big a buffer is needed
17cenc.uint.preencode(state, 42)
18cenc.string.preencode(state, 'hi')
19
20console.log(state) // { start: 0, end: 4, buffer: null }
21
22state.buffer = Buffer.allocUnsafe(state.end)
23
24// then use encode to actually encode it to the buffer
25cenc.uint.encode(state, 42)
26cenc.string.encode(state, 'hi')
27
28// to decode it simply use decode instead
29
30state.start = 0
31cenc.uint.decode(state) // 42
32cenc.string.decode(state) // 'hi'
33```
34
35## Encoder API
36
37#### `state`
38
39Should be an object that looks like this `{ start, end, buffer }`.
40
41You can also get a blank state object using `cenc.state()`.
42
43- `start` is the byte offset to start encoding/decoding at.
44- `end` is the byte offset indicating the end of the buffer.
45- `buffer` should be either a Node.js Buffer or Uint8Array.
46
47#### `enc.preencode(state, val)`
48
49Does a fast preencode dry-run that only sets state.end.
50Use this to figure out how big of a buffer you need.
51
52#### `enc.encode(state, val)`
53
54Encodes `val` into `state.buffer` at position `state.start`.
55Updates `state.start` to point after the encoded value when done.
56
57#### `val = enc.decode(state)`
58
59Decodes a value from `state.buffer` as position `state.start`.
60Updates `state.start` to point after the decoded value when done in the buffer.
61
62## Helpers
63
64If you are just encoding to a buffer or decoding from one you can use the `encode` and `decode` helpers
65to reduce your boilerplate
66
67```js
68const buf = cenc.encode(cenc.bool, true)
69const bool = cenc.decode(cenc.bool, buf)
70```
71
72## Bundled encodings
73
74The following encodings are bundled as they are primitives that can be used
75to build others on top. Feel free to PR more that are missing.
76
77- `cenc.raw` - Pass through encodes a buffer, i.e. a basic copy.
78- `cenc.uint` - Encodes a uint using the smallest fixed size encoding with a prefix to signal which one. Useful for uints that can be a wide range of values.
79- `cenc.uint8` - Encodes a fixed size uint8.
80- `cenc.uint16` - Encodes a fixed size uint16. Useful for things like ports.
81- `cenc.uint24` - Encodes a fixed size uint24. Useful for message framing.
82- `cenc.uint32` - Encodes a fixed size uint32. Useful for very large message framing.
83- `cenc.uint40` - Encodes a fixed size uint40.
84- `cenc.uint48` - Encodes a fixed size uint48.
85- `cenc.uint56` - Encodes a fixed size uint56.
86- `cenc.uint64` - Encodes a fixed size uint64.
87- `cenc.int` - Encodes an int using `cenc.uint` with ZigZag encoding.
88- `cenc.int8` - Encodes a fixed size int8 using `cenc.uint8` with ZigZag encoding.
89- `cenc.int16` - Encodes a fixed size int16 using `cenc.uint16` with ZigZag encoding.
90- `cenc.int24` - Encodes a fixed size int24 using `cenc.uint24` with ZigZag encoding.
91- `cenc.int32` - Encodes a fixed size int32 using `cenc.uint32` with ZigZag encoding.
92- `cenc.int40` - Encodes a fixed size int40 using `cenc.uint40` with ZigZag encoding.
93- `cenc.int48` - Encodes a fixed size int48 using `cenc.uint48` with ZigZag encoding.
94- `cenc.int56` - Encodes a fixed size int56 using `cenc.uint56` with ZigZag encoding.
95- `cenc.int64` - Encodes a fixed size int64 using `cenc.uint64` with ZigZag encoding.
96- `cenc.biguint64` - Encodes a fixed size biguint64.
97- `cenc.bigint64` - Encodes a fixed size bigint64 using `cenc.biguint64` with ZigZag encoding.
98- `cenc.biguint` - Encodes a biguint with its word count uint prefixed.
99- `cenc.bigint` - Encodes a bigint using `cenc.biguint` with ZigZag encoding.
100- `cenc.float32` - Encodes a fixed size float32.
101- `cenc.float64` - Encodes a fixed size float64.
102- `cenc.buffer` - Encodes a buffer with its length uint prefixed. When decoding an empty buffer, `null` is returned.
103- `cenc.raw.buffer` - Encodes a buffer without a length prefixed.
104- `cenc.arraybuffer` - Encodes an arraybuffer with its length uint prefixed.
105- `cenc.raw.arraybuffer` - Encodes an arraybuffer without a length prefixed.
106- `cenc.uint8array` - Encodes a uint8array with its element length uint prefixed.
107- `cenc.raw.uint8array` - Encodes a uint8array without a length prefixed.
108- `cenc.uint16array` - Encodes a uint16array with its element length uint prefixed.
109- `cenc.raw.uint16array` - Encodes a uint16array without a length prefixed.
110- `cenc.uint32array` - Encodes a uint32array with its element length uint prefixed.
111- `cenc.raw.uint32array` - Encodes a uint32array without a length prefixed.
112- `cenc.int8array` - Encodes a int8array with its element length uint prefixed.
113- `cenc.raw.int8array` - Encodes a int8array without a length prefixed.
114- `cenc.int16array` - Encodes a int16array with its element length uint prefixed.
115- `cenc.raw.int16array` - Encodes a int16array without a length prefixed.
116- `cenc.int32array` - Encodes a int32array with its element length uint prefixed.
117- `cenc.raw.int32array` - Encodes a int32array without a length prefixed.
118- `cenc.biguint64array` - Encodes a biguint64array with its element length uint prefixed.
119- `cenc.raw.biguint64array` - Encodes a biguint64array without a length prefixed.
120- `cenc.bigint64array` - Encodes a bigint64array with its element length uint prefixed.
121- `cenc.raw.bigint64array` - Encodes a bigint64array without a length prefixed.
122- `cenc.float32array` - Encodes a float32array with its element length uint prefixed.
123- `cenc.raw.float32array` - Encodes a float32array without a length prefixed.
124- `cenc.float64array` - Encodes a float64array with its element length uint prefixed.
125- `cenc.raw.float64array` - Encodes a float64array without a length prefixed.
126- `cenc.bool` - Encodes a boolean as 1 or 0.
127- `cenc.string`, `cenc.utf8` - Encodes a utf-8 string, similar to buffer.
128- `cenc.raw.string`, `cenc.raw.utf8` - Encodes a utf-8 string without a length prefixed.
129- `cenc.string.fixed(n)`, `cenc.utf8.fixed(n)` - Encodes a fixed sized utf-8 string.
130- `cenc.ascii` - Encodes an ascii string.
131- `cenc.raw.ascii` - Encodes an ascii string without a length prefixed.
132- `cenc.ascii.fixed(n)` - Encodes a fixed size ascii string.
133- `cenc.hex` - Encodes a hex string.
134- `cenc.raw.hex` - Encodes a hex string without a length prefixed.
135- `cenc.hex.fixed(n)` - Encodes a fixed size hex string.
136- `cenc.base64` - Encodes a base64 string.
137- `cenc.raw.base64` - Encodes a base64 string without a length prefixed.
138- `cenc.base64.fixed(n)` - Encodes a fixed size base64 string.
139- `cenc.utf16le`, `cenc.ucs2` - Encodes a utf16le string.
140- `cenc.raw.utf16le`, `cenc.raw.ucs2` - Encodes a utf16le string without a length prefixed.
141- `cenc.utf16le.fixed(n)`, `cenc.ucs2.fixed(n)` - Encodes a fixed size utf16le string.
142- `cenc.fixed32` - Encodes a fixed 32 byte buffer.
143- `cenc.fixed64` - Encodes a fixed 64 byte buffer.
144- `cenc.fixed(n)` - Makes a fixed sized encoder.
145- `cenc.date(d)` - Encodes a date object.
146- `cenc.array(enc)` - Makes an array encoder from another encoder. Arrays are uint prefixed with their length.
147- `cenc.raw.array(enc)` - Makes an array encoder from another encoder, without a length prefixed.
148- `cenc.json` - Encodes a JSON value as utf-8.
149- `cenc.raw.json` - Encodes a JSON value as utf-8 without a length prefixed.
150- `cenc.ndjson` - Encodes a JSON value as newline delimited utf-8.
151- `cenc.raw.ndjson` - Encodes a JSON value as newline delimited utf-8 without a length prefixed.
152- `cenc.any` - Encodes any JSON representable value into a self described buffer. Like JSON + buffer, but using compact types. Useful for schemaless codecs.
153- `cenc.port` - Encodes a port number for network addresses.
154- `cenc.ipv4` - Encodes an IPv4 network address.
155- `cenc.ipv4Address` Encodes an IPv4 network address and a port number.
156- `cenc.ipv6` - Encodes an IPv6 network address.
157- `cenc.ipv6Address` Encodes an IPv6 network address and a port number.
158- `cenc.ip` - Encodes a dual IPv4/6 network address.
159- `cenc.ipAddress` Encodes a dual IPv4/6 network address and a port number.
160- `cenc.from(enc)` - Makes a compact encoder from a [codec](https://github.com/mafintosh/codecs) or [abstract-encoding](https://github.com/mafintosh/abstract-encoding).
161- `cenc.none` - Helper for when you want to just express nothing
162
163## License
164
165Apache 2.0
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/endian.js +1 -0
……@@ -0,0 +1 @@
1const r=exports.LE=255===new Uint8Array(new Uint16Array([255]).buffer)[0];exports.BE=!r;
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/index.js +1 -0
……@@ -0,0 +1 @@
1const e=require("b4a"),{BE:t}=require("./endian");exports.state=function(e=0,t=0,r=null){return{start:e,end:t,buffer:r}};const r=exports.raw=require("./raw"),n=exports.uint={preencode(e,t){e.end+=t<=252?1:t<=65535?3:t<=4294967295?5:9},encode(e,t){t<=252?o.encode(e,t):t<=65535?(e.buffer[e.start++]=253,d.encode(e,t)):t<=4294967295?(e.buffer[e.start++]=254,c.encode(e,t)):(e.buffer[e.start++]=255,i.encode(e,t))},decode(e){const t=o.decode(e);return t<=252?t:253===t?d.decode(e):254===t?c.decode(e):i.decode(e)}},o=exports.uint8={preencode(e,t){e.end+=1},encode(e,t){R(t),e.buffer[e.start++]=t},decode(e){if(e.start>=e.end)throw new Error("Out of bounds");return e.buffer[e.start++]}},d=exports.uint16={preencode(e,t){e.end+=2},encode(e,t){R(t),e.buffer[e.start++]=t,e.buffer[e.start++]=t>>>8},decode(e){if(e.end-e.start<2)throw new Error("Out of bounds");return e.buffer[e.start++]+256*e.buffer[e.start++]}},s=exports.uint24={preencode(e,t){e.end+=3},encode(e,t){R(t),e.buffer[e.start++]=t,e.buffer[e.start++]=t>>>8,e.buffer[e.start++]=t>>>16},decode(e){if(e.end-e.start<3)throw new Error("Out of bounds");return e.buffer[e.start++]+256*e.buffer[e.start++]+65536*e.buffer[e.start++]}},c=exports.uint32={preencode(e,t){e.end+=4},encode(e,t){R(t),e.buffer[e.start++]=t,e.buffer[e.start++]=t>>>8,e.buffer[e.start++]=t>>>16,e.buffer[e.start++]=t>>>24},decode(e){if(e.end-e.start<4)throw new Error("Out of bounds");return e.buffer[e.start++]+256*e.buffer[e.start++]+65536*e.buffer[e.start++]+16777216*e.buffer[e.start++]}},f=exports.uint40={preencode(e,t){e.end+=5},encode(e,t){R(t);const r=Math.floor(t/256);o.encode(e,t),c.encode(e,r)},decode(e){if(e.end-e.start<5)throw new Error("Out of bounds");return o.decode(e)+256*c.decode(e)}},u=exports.uint48={preencode(e,t){e.end+=6},encode(e,t){R(t);const r=Math.floor(t/65536);d.encode(e,t),c.encode(e,r)},decode(e){if(e.end-e.start<6)throw new Error("Out of bounds");return d.decode(e)+65536*c.decode(e)}},a=exports.uint56={preencode(e,t){e.end+=7},encode(e,t){R(t);const r=Math.floor(t/16777216);s.encode(e,t),c.encode(e,r)},decode(e){if(e.end-e.start<7)throw new Error("Out of bounds");return s.decode(e)+16777216*c.decode(e)}},i=exports.uint64={preencode(e,t){e.end+=8},encode(e,t){R(t);const r=Math.floor(t/4294967296);c.encode(e,t),c.encode(e,r)},decode(e){if(e.end-e.start<8)throw new Error("Out of bounds");return c.decode(e)+4294967296*c.decode(e)}},p=exports.int=k(n);exports.int8=k(o),exports.int16=k(d),exports.int24=k(s),exports.int32=k(c),exports.int40=k(f),exports.int48=k(u),exports.int56=k(a),exports.int64=k(i);const b=exports.biguint64={preencode(e,t){e.end+=8},encode(e,t){new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8).setBigUint64(0,t,!0),e.start+=8},decode(e){if(e.end-e.start<8)throw new Error("Out of bounds");const t=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8).getBigUint64(0,!0);return e.start+=8,t}};exports.bigint64=q(b);const l=exports.biguint={preencode(e,t){let r=0;for(let e=t;e;e>>=64n)r++;n.preencode(e,r),e.end+=8*r},encode(e,t){let r=0;for(let e=t;e;e>>=64n)r++;n.encode(e,r);const o=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8*r);for(let e=t,r=0;e;e>>=64n,r+=8)o.setBigUint64(r,BigInt.asUintN(64,e),!0);e.start+=8*r},decode(e){const t=n.decode(e);if(e.end-e.start<8*t)throw new Error("Out of bounds");const r=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8*t);let o=0n;for(let e=t-1;e>=0;e--)o=(o<<64n)+r.getBigUint64(8*e,!0);return e.start+=8*t,o}};exports.bigint=q(l),exports.lexint=require("./lexint"),exports.float32={preencode(e,t){e.end+=4},encode(e,t){new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,4).setFloat32(0,t,!0),e.start+=4},decode(e){if(e.end-e.start<4)throw new Error("Out of bounds");const t=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,4).getFloat32(0,!0);return e.start+=4,t}},exports.float64={preencode(e,t){e.end+=8},encode(e,t){new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8).setFloat64(0,t,!0),e.start+=8},decode(e){if(e.end-e.start<8)throw new Error("Out of bounds");const t=new DataView(e.buffer.buffer,e.start+e.buffer.byteOffset,8).getFloat64(0,!0);return e.start+=8,t}};const x=exports.buffer={preencode(e,t){t?y.preencode(e,t):e.end++},encode(e,t){t?y.encode(e,t):e.buffer[e.start++]=0},decode(e){const t=n.decode(e);if(0===t)return null;if(e.end-e.start<t)throw new Error("Out of bounds");return e.buffer.subarray(e.start,e.start+=t)}};function w(e,r){const o=e.BYTES_PER_ELEMENT;return{preencode(e,t){n.preencode(e,t.length),e.end+=t.byteLength},encode(e,o){n.encode(e,o.length);const d=new Uint8Array(o.buffer,o.byteOffset,o.byteLength);t&&r&&r(d),e.buffer.set(d,e.start),e.start+=o.byteLength},decode(d){const s=n.decode(d);let c=d.buffer.subarray(d.start,d.start+=s*o);if(c.byteLength!==s*o)throw new Error("Out of bounds");return c.byteOffset%o!==0&&(c=new Uint8Array(c)),t&&r&&r(c),new e(c.buffer,c.byteOffset,c.byteLength/o)}}}exports.binary={...x,preencode(e,t){"string"==typeof t?g.preencode(e,t):x.preencode(e,t)},encode(e,t){"string"==typeof t?g.encode(e,t):x.encode(e,t)}},exports.arraybuffer={preencode(e,t){n.preencode(e,t.byteLength),e.end+=t.byteLength},encode(e,t){n.encode(e,t.byteLength);const r=new Uint8Array(t);e.buffer.set(r,e.start),e.start+=t.byteLength},decode(e){const t=n.decode(e),r=new ArrayBuffer(t);return new Uint8Array(r).set(e.buffer.subarray(e.start,e.start+=t)),r}};const y=exports.uint8array=w(Uint8Array);function h(t){return{preencode(r,o){const d=e.byteLength(o,t);n.preencode(r,d),r.end+=d},encode(r,o){const d=e.byteLength(o,t);n.encode(r,d),e.write(r.buffer,o,r.start,t),r.start+=d},decode(r){const o=n.decode(r);if(r.end-r.start<o)throw new Error("Out of bounds");return e.toString(r.buffer,t,r.start,r.start+=o)},fixed:r=>({preencode(e){e.end+=r},encode(n,o){e.write(n.buffer,o,n.start,r,t),n.start+=r},decode(n){if(n.end-n.start<r)throw new Error("Out of bounds");return e.toString(n.buffer,t,n.start,n.start+=r)}})}}exports.uint16array=w(Uint16Array,e.swap16),exports.uint32array=w(Uint32Array,e.swap32),exports.int8array=w(Int8Array),exports.int16array=w(Int16Array,e.swap16),exports.int32array=w(Int32Array,e.swap32),exports.biguint64array=w(BigUint64Array,e.swap64),exports.bigint64array=w(BigInt64Array,e.swap64),exports.float32array=w(Float32Array,e.swap32),exports.float64array=w(Float64Array,e.swap64);const g=exports.string=exports.utf8=h("utf-8");exports.ascii=h("ascii"),exports.hex=h("hex"),exports.base64=h("base64"),exports.ucs2=exports.utf16le=h("utf16le"),exports.bool={preencode(e,t){e.end++},encode(e,t){e.buffer[e.start++]=t?1:0},decode(e){if(e.start>=e.end)throw Error("Out of bounds");return 1===e.buffer[e.start++]}};const O=exports.fixed=function(e){return{preencode(t,r){if(r.byteLength!==e)throw new Error("Incorrect buffer size");t.end+=e},encode(t,r){t.buffer.set(r,t.start),t.start+=e},decode(t){if(t.end-t.start<e)throw new Error("Out of bounds");return t.buffer.subarray(t.start,t.start+=e)}}};exports.fixed32=O(32),exports.fixed64=O(64),exports.array=function(e){return{preencode(t,r){n.preencode(t,r.length);for(let n=0;n<r.length;n++)e.preencode(t,r[n])},encode(t,r){n.encode(t,r.length);for(let n=0;n<r.length;n++)e.encode(t,r[n])},decode(t){const r=n.decode(t);if(r>1048576)throw new Error("Array is too big");const o=new Array(r);for(let n=0;n<r;n++)o[n]=e.decode(t);return o}}},exports.frame=function(e){const t=exports.state();return{preencode(t,r){const o=t.end;e.preencode(t,r),n.preencode(t,t.end-o)},encode(r,o){t.end=0,e.preencode(t,o),n.encode(r,t.end),e.encode(r,o)},decode(t){const r=t.end,o=n.decode(t);t.end=t.start+o;const d=e.decode(t);return t.start=t.end,t.end=r,d}}},exports.date={preencode(e,t){p.preencode(e,t.getTime())},encode(e,t){p.encode(e,t.getTime())},decode:(e,t)=>new Date(p.decode(e))},exports.json={preencode(e,t){g.preencode(e,JSON.stringify(t))},encode(e,t){g.encode(e,JSON.stringify(t))},decode:e=>JSON.parse(g.decode(e))},exports.ndjson={preencode(e,t){g.preencode(e,JSON.stringify(t)+"\n")},encode(e,t){g.encode(e,JSON.stringify(t)+"\n")},decode:e=>JSON.parse(g.decode(e))},exports.none={preencode(e,t){},encode(e,t){},decode:e=>null};const E={preencode(e,t){n.preencode(e,t.length);for(let r=0;r<t.length;r++)S.preencode(e,t[r])},encode(e,t){n.encode(e,t.length);for(let r=0;r<t.length;r++)S.encode(e,t[r])},decode(e){const t=[];let r=n.decode(e);for(;r-- >0;)t.push(S.decode(e));return t}},A={preencode(e,t){const r=Object.keys(t);n.preencode(e,r.length);for(const n of r)g.preencode(e,n),S.preencode(e,t[n])},encode(e,t){const r=Object.keys(t);n.encode(e,r.length);for(const n of r)g.encode(e,n),S.encode(e,t[n])},decode(e){let t=n.decode(e);const r={};for(;t-- >0;)r[g.decode(e)]=S.decode(e);return r}},L=[exports.none,exports.bool,exports.string,exports.buffer,exports.uint,exports.int,exports.float64,E,A,exports.date],S=exports.any={preencode(e,t){const r=V(t);n.preencode(e,r),L[r].preencode(e,t)},encode(e,t){const r=V(t);n.encode(e,r),L[r].encode(e,t)},decode(e){const t=n.decode(e);if(t>=L.length)throw new Error("Unknown type: "+t);return L[t].decode(e)}},U=exports.port=d,j=(e,t)=>({preencode(t,r){e.preencode(t,r.host),U.preencode(t,r.port)},encode(t,r){e.encode(t,r.host),U.encode(t,r.port)},decode:r=>({host:e.decode(r),family:t,port:U.decode(r)})}),B=exports.ipv4={preencode(e){e.end+=4},encode(e,t){const r=e.start+4;let n=0;for(;n<t.length;){let r,o=0;for(;n<t.length&&46!==(r=t.charCodeAt(n++));)o=10*o+(r-48);e.buffer[e.start++]=o}e.start=r},decode(e){if(e.end-e.start<4)throw new Error("Out of bounds");return e.buffer[e.start++]+"."+e.buffer[e.start++]+"."+e.buffer[e.start++]+"."+e.buffer[e.start++]}};exports.ipv4Address=j(B,4);const D=exports.ipv6={preencode(e){e.end+=16},encode(e,t){const r=e.start+16;let n=0,o=null;for(;n<t.length;){let r,d=0;for(;n<t.length&&58!==(r=t.charCodeAt(n++));)r>=48&&r<=57?d=16*d+(r-48):r>=65&&r<=70?d=16*d+(r-65+10):r>=97&&r<=102&&(d=16*d+(r-97+10));e.buffer[e.start++]=d>>>8,e.buffer[e.start++]=d,n<t.length&&58===t.charCodeAt(n)&&(n++,o=e.start)}if(null!==o){const t=r-e.start;e.buffer.copyWithin(o+t,o).fill(0,o,o+t)}e.start=r},decode(e){if(e.end-e.start<16)throw new Error("Out of bounds");return(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)+":"+(256*e.buffer[e.start++]+e.buffer[e.start++]).toString(16)}};exports.ipv6Address=j(D,6);const m=exports.ip={preencode(e,t){const r=t.includes(":")?6:4;o.preencode(e,r),4===r?B.preencode(e):D.preencode(e)},encode(e,t){const r=t.includes(":")?6:4;o.encode(e,r),4===r?B.encode(e,t):D.encode(e,t)},decode:e=>4===o.decode(e)?B.decode(e):D.decode(e)};exports.ipAddress={preencode(e,t){m.preencode(e,t.host),U.preencode(e,t.port)},encode(e,t){m.encode(e,t.host),U.encode(e,t.port)},decode(e){const t=o.decode(e);return{host:4===t?B.decode(e):D.decode(e),family:t,port:U.decode(e)}}};const N=exports.record=function(e,t){return{preencode(r,o){const d=Object.keys(o);n.preencode(r,d.length);for(const n of d)e.preencode(r,n),t.preencode(r,o[n])},encode(r,o){const d=Object.keys(o);n.encode(r,d.length);for(const n of d)e.encode(r,n),t.encode(r,o[n])},decode(r){const o=Object.create(null),d=n.decode(r);for(let n=0;n<d;n++)o[e.decode(r)]=t.decode(r);return o}}};function V(t){if(null==t)return 0;if("boolean"==typeof t)return 1;if("string"==typeof t)return 2;if(e.isBuffer(t))return 3;if("number"==typeof t)return Number.isInteger(t)?t>=0?4:5:6;if(Array.isArray(t))return 7;if(t instanceof Date)return 9;if("object"==typeof t)return 8;throw new Error("Unsupported type for "+t)}function I(e){switch(e){case"ascii":return r.ascii;case"utf-8":case"utf8":return r.utf8;case"hex":return r.hex;case"base64":return r.base64;case"utf16-le":case"utf16le":case"ucs-2":case"ucs2":return r.ucs2;case"ndjson":return r.ndjson;case"json":return r.json;default:return r.binary}}function F(e){let t=null,n=null;return{preencode(r,o){t=o,n=e.encode(o),r.end+=n.byteLength},encode(o,d){r.encode(o,d===t?n:e.encode(d)),t=n=null},decode:t=>e.decode(r.decode(t))}}function J(e){return{preencode(t,r){t.end+=e.encodingLength(r)},encode(t,r){e.encode(r,t.buffer,t.start),t.start+=e.encode.bytes},decode(t){const r=e.decode(t.buffer,t.start,t.end);return t.start+=e.decode.bytes,r}}}function k(e){return{preencode(t,r){e.preencode(t,M(r))},encode(t,r){e.encode(t,M(r))},decode:t=>v(e.decode(t))}}function v(e){return 0===e?e:1&e?-(e+1)/2:e/2}function M(e){return e<0?2*-e-1:0===e?0:2*e}function q(e){return{preencode(t,r){e.preencode(t,C(r))},encode(t,r){e.encode(t,C(r))},decode:t=>T(e.decode(t))}}function T(e){return 0n===e?e:0n==(1n&e)?e/2n:-(e+1n)/2n}function C(e){return e<0n?2n*-e-1n:0n===e?0n:2n*e}function R(e){if(e>=0==0)throw new Error("uint must be positive")}exports.stringRecord=N(g,g),exports.from=function(e){return"string"==typeof e?I(e):e.preencode?e:e.encodingLength?J(e):F(e)},exports.encode=function(t,r){const n=exports.state();return t.preencode(n,r),n.buffer=e.allocUnsafe(n.end),t.encode(n,r),n.buffer},exports.decode=function(e,t){return e.decode(exports.state(0,t.byteLength,t))};
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/lexint.js +1 -0
……@@ -0,0 +1 @@
1function t(r,f){f<251?r.end++:f<256?r.end+=2:f<65536?r.end+=3:f<16777216?r.end+=4:f<4294967296?r.end+=5:(r.end++,t(r,Math.floor(Math.log(f)/Math.log(2))-32),r.end+=6)}function r(t,f){const e=f-251;if(f<251)t.buffer[t.start++]=f;else if(f<256)t.buffer[t.start++]=251,t.buffer[t.start++]=e;else if(f<65536)t.buffer[t.start++]=252,t.buffer[t.start++]=e>>8&255,t.buffer[t.start++]=255&e;else if(f<16777216)t.buffer[t.start++]=253,t.buffer[t.start++]=e>>16,t.buffer[t.start++]=e>>8&255,t.buffer[t.start++]=255&e;else if(f<4294967296)t.buffer[t.start++]=254,t.buffer[t.start++]=e>>24,t.buffer[t.start++]=e>>16&255,t.buffer[t.start++]=e>>8&255,t.buffer[t.start++]=255&e;else{const f=Math.floor(Math.log(e)/Math.log(2))-32;t.buffer[t.start++]=255,r(t,f);const s=e/Math.pow(2,f-11);for(let r=5;r>=0;r--)t.buffer[t.start++]=s/Math.pow(2,8*r)&255}}function f(t){const r=251;if(t.end-t.start<1)throw new Error("Out of bounds");const e=t.buffer[t.start++];if(e<r)return e;if(t.end-t.start<e-r+1)throw new Error("Out of bounds.");if(e<252)return t.buffer[t.start++]+r;if(e<253)return(t.buffer[t.start++]<<8)+t.buffer[t.start++]+r;if(e<254)return(t.buffer[t.start++]<<16)+(t.buffer[t.start++]<<8)+t.buffer[t.start++]+r;if(e<255)return 16777216*t.buffer[t.start++]+(t.buffer[t.start++]<<16)+(t.buffer[t.start++]<<8)+t.buffer[t.start++]+r;const s=f(t);if(t.end-t.start<6)throw new Error("Out of bounds");let u=0;for(let r=5;r>=0;r--)u+=t.buffer[t.start++]*Math.pow(2,8*r);return u*Math.pow(2,s-11)+r}module.exports={preencode:t,encode:r,decode:f};
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/package.json +28 -0
……@@ -0,0 +1,28 @@
1{
2 "name": "compact-encoding",
3 "version": "2.19.2",
4 "description": "A series of compact encoding schemes for building small and fast parsers and serializers",
5 "main": "index.js",
6 "dependencies": {
7 "b4a": "^1.3.0"
8 },
9 "devDependencies": {
10 "brittle": "^3.0.0",
11 "prettier": "^3.6.2",
12 "prettier-config-holepunch": "^1.0.0"
13 },
14 "scripts": {
15 "format": "prettier . --write",
16 "test": "prettier . --check && brittle test.js"
17 },
18 "repository": {
19 "type": "git",
20 "url": "https://github.com/holepunchto/compact-encoding.git"
21 },
22 "author": "Mathias Buus (@mafintosh)",
23 "license": "Apache-2.0",
24 "bugs": {
25 "url": "https://github.com/holepunchto/compact-encoding/issues"
26 },
27 "homepage": "https://github.com/holepunchto/compact-encoding"
28}
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/raw.js +1 -0
……@@ -0,0 +1 @@
1const e=require("b4a"),{BE:r}=require("./endian");exports=module.exports={preencode(e,r){e.end+=r.byteLength},encode(e,r){e.buffer.set(r,e.start),e.start+=r.byteLength},decode(e){const r=e.buffer.subarray(e.start,e.end);return e.start=e.end,r}};const t=exports.buffer={preencode(e,r){r?o.preencode(e,r):e.end++},encode(e,r){r?o.encode(e,r):e.buffer[e.start++]=0},decode(e){const r=e.buffer.subarray(e.start);return 0===r.byteLength?null:(e.start=e.end,r)}};function n(e,t){const n=e.BYTES_PER_ELEMENT;return{preencode(e,r){e.end+=r.byteLength},encode(e,n){const o=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);r&&t&&t(o),e.buffer.set(o,e.start),e.start+=n.byteLength},decode(o){let s=o.buffer.subarray(o.start);return s.byteOffset%n!==0&&(s=new Uint8Array(s)),r&&t&&t(s),o.start=o.end,new e(s.buffer,s.byteOffset,s.byteLength/n)}}}exports.binary={...t,preencode(e,r){"string"==typeof r?a.preencode(e,r):t.preencode(e,r)},encode(e,r){"string"==typeof r?a.encode(e,r):t.encode(e,r)}},exports.arraybuffer={preencode(e,r){e.end+=r.byteLength},encode(e,r){const t=new Uint8Array(r);e.buffer.set(t,e.start),e.start+=r.byteLength},decode(e){const r=new ArrayBuffer(e.end-e.start);return new Uint8Array(r).set(e.buffer.subarray(e.start)),e.start=e.end,r}};const o=exports.uint8array=n(Uint8Array);function s(r){return{preencode(t,n){t.end+=e.byteLength(n,r)},encode(t,n){t.start+=e.write(t.buffer,n,t.start,r)},decode(t){const n=e.toString(t.buffer,r,t.start);return t.start=t.end,n}}}exports.uint16array=n(Uint16Array,e.swap16),exports.uint32array=n(Uint32Array,e.swap32),exports.int8array=n(Int8Array),exports.int16array=n(Int16Array,e.swap16),exports.int32array=n(Int32Array,e.swap32),exports.biguint64array=n(BigUint64Array,e.swap64),exports.bigint64array=n(BigInt64Array,e.swap64),exports.float32array=n(Float32Array,e.swap32),exports.float64array=n(Float64Array,e.swap64);const a=exports.string=exports.utf8=s("utf-8");exports.ascii=s("ascii"),exports.hex=s("hex"),exports.base64=s("base64"),exports.ucs2=exports.utf16le=s("utf16le"),exports.array=function(e){return{preencode(r,t){for(const n of t)e.preencode(r,n)},encode(r,t){for(const n of t)e.encode(r,n)},decode(r){const t=[];for(;r.start<r.end;)t.push(e.decode(r));return t}}},exports.json={preencode(e,r){a.preencode(e,JSON.stringify(r))},encode(e,r){a.encode(e,JSON.stringify(r))},decode:e=>JSON.parse(a.decode(e))},exports.ndjson={preencode(e,r){a.preencode(e,JSON.stringify(r)+"\n")},encode(e,r){a.encode(e,JSON.stringify(r)+"\n")},decode:e=>JSON.parse(a.decode(e))};
@holepunchto/legacy-keet-core-schemas/node_modules/compact-encoding/test.js +1 -0
……@@ -0,0 +1 @@
1const e=require("./"),t=require("brittle"),a=require("b4a");t("uint",function(t){const n=e.state();e.uint.preencode(n,42),t.alike(n,e.state(0,1)),e.uint.preencode(n,4200),t.alike(n,e.state(0,4)),e.uint.preencode(n,Number.MAX_SAFE_INTEGER),t.alike(n,e.state(0,13)),n.buffer=a.alloc(n.end),e.uint.encode(n,42),t.alike(n,e.state(1,13,a.from([42,0,0,0,0,0,0,0,0,0,0,0,0]))),e.uint.encode(n,4200),t.alike(n,e.state(4,13,a.from([42,253,104,16,0,0,0,0,0,0,0,0,0]))),e.uint.encode(n,Number.MAX_SAFE_INTEGER),t.alike(n,e.state(13,13,a.from([42,253,104,16,255,255,255,255,255,255,255,31,0]))),n.start=0,t.is(e.uint.decode(n),42),t.is(e.uint.decode(n),4200),t.is(e.uint.decode(n),Number.MAX_SAFE_INTEGER),t.is(n.start,n.end),t.exception(()=>e.uint.decode(n))}),t("int",function(t){const n=e.state();e.int.preencode(n,42),t.alike(n,e.state(0,1)),e.int.preencode(n,-4200),t.alike(n,e.state(0,4)),n.buffer=a.alloc(n.end),e.int.encode(n,42),t.alike(n,e.state(1,4,a.from([84,0,0,0]))),e.int.encode(n,-4200),t.alike(n,e.state(4,4,a.from([84,253,207,32]))),n.start=0,t.is(e.int.decode(n),42),t.is(e.int.decode(n),-4200),t.is(n.start,n.end),t.exception(()=>e.int.decode(n))}),t("float64",function(t){const n=e.state();e.float64.preencode(n,162.2377294),t.alike(n,e.state(0,8)),n.buffer=a.alloc(n.end),t.alike(n,e.state(0,8,a.from([0,0,0,0,0,0,0,0]))),e.float64.encode(n,162.2377294),t.alike(n,e.state(8,8,a.from([135,201,175,122,155,71,100,64]))),n.start=0,t.is(e.float64.decode(n),162.2377294),t.is(n.start,n.end),t.exception(()=>e.float64.decode(n)),n.start=0,n.end=0,n.buffer=null,e.int.preencode(n,0),e.float64.preencode(n,162.2377294),t.alike(n,e.state(0,9)),n.buffer=a.alloc(n.end),t.alike(n,e.state(0,9,a.from([0,0,0,0,0,0,0,0,0]))),e.int.encode(n,0),e.float64.encode(n,162.2377294),t.alike(n,e.state(9,9,a.from([0,135,201,175,122,155,71,100,64]))),n.start=0,t.is(e.int.decode(n),0),t.is(e.float64.decode(n),162.2377294),t.is(n.start,n.end);const o=a.alloc(10);n.start=0,n.buffer=o.subarray(1),t.alike(n,e.state(0,9,a.from([0,0,0,0,0,0,0,0,0]))),e.int.encode(n,0),e.float64.encode(n,162.2377294),t.alike(n,e.state(9,9,a.from([0,135,201,175,122,155,71,100,64]))),t.alike(o,a.from([0,0,135,201,175,122,155,71,100,64])),n.start=0,t.is(e.int.decode(n),0),t.is(e.float64.decode(n),162.2377294),t.is(n.start,n.end),n.start=0,n.end=0,n.buffer=null,e.float64.preencode(n,162.2377294),n.buffer=a.alloc(n.end),e.float64.encode(n,0),t.alike(n,e.state(8,8,a.from([0,0,0,0,0,0,0,0]))),n.start=0,t.is(e.float64.decode(n),0),t.is(n.start,n.end),n.start=0,n.end=0,n.buffer=null,e.float64.preencode(n,1/0),n.buffer=a.alloc(n.end),e.float64.encode(n,1/0),t.alike(n,e.state(8,8,a.from([0,0,0,0,0,0,240,127]))),n.start=0,t.is(e.float64.decode(n),1/0),t.is(n.start,n.end),n.start=0,n.end=0,n.buffer=null,e.float64.preencode(n,.1+.2),n.buffer=a.alloc(n.end),e.float64.encode(n,.1+.2),t.alike(n,e.state(8,8,a.from([52,51,51,51,51,51,211,63]))),n.start=0,t.is(e.float64.decode(n),.1+.2),t.is(n.start,n.end)}),t("biguint64",function(t){const n=e.state(),o=0x0102030405060708n;e.biguint64.preencode(n,o),t.alike(n,e.state(0,8)),n.buffer=a.alloc(n.end),e.biguint64.encode(n,o),t.alike(n,e.state(8,8,a.from([8,7,6,5,4,3,2,1]))),n.start=0,t.is(e.biguint64.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.biguint64.decode(n))}),t("bigint64",function(t){const n=e.state(),o=-0x0102030405060708n;e.bigint64.preencode(n,o),t.alike(n,e.state(0,8)),n.buffer=a.alloc(n.end),e.bigint64.encode(n,o),t.alike(n,e.state(8,8,a.from([15,14,12,10,8,6,4,2]))),n.start=0,t.is(e.bigint64.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.bigint64.decode(n))}),t("biguint",function(t){const n=e.state(),o=0x0102030405060708090a0b0cn;e.biguint.preencode(n,o),t.alike(n,e.state(0,17)),n.buffer=a.alloc(n.end),e.biguint.encode(n,o),t.alike(n,e.state(17,17,a.from([2,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0]))),n.start=0,t.is(e.biguint.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.biguint.decode(n))}),t("bigint",function(t){const n=e.state(),o=-0x0102030405060708090a0b0cn;e.bigint.preencode(n,o),t.alike(n,e.state(0,17)),n.buffer=a.alloc(n.end),e.bigint.encode(n,o),t.alike(n,e.state(17,17,a.from([2,23,22,20,18,16,14,12,10,8,6,4,2,0,0,0,0]))),n.start=0,t.is(e.bigint.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.bigint.decode(n))}),t("buffer",function(t){const n=e.state();e.buffer.preencode(n,a.from("hi")),t.alike(n,e.state(0,3)),e.buffer.preencode(n,a.from("hello")),t.alike(n,e.state(0,9)),e.buffer.preencode(n,null),t.alike(n,e.state(0,10)),n.buffer=a.alloc(n.end),e.buffer.encode(n,a.from("hi")),t.alike(n,e.state(3,10,a.from("hi\0\0\0\0\0\0\0"))),e.buffer.encode(n,a.from("hello")),t.alike(n,e.state(9,10,a.from("hihello\0"))),e.buffer.encode(n,null),t.alike(n,e.state(10,10,a.from("hihello\0"))),n.start=0,t.alike(e.buffer.decode(n),a.from("hi")),t.alike(e.buffer.decode(n),a.from("hello")),t.is(e.buffer.decode(n),null),t.is(n.start,n.end),t.exception(()=>e.buffer.decode(n))}),t("arraybuffer",function(t){const n=e.state(),o=new ArrayBuffer(4);a.from(o).fill("a");const r=new ArrayBuffer(8);a.from(r).fill("b"),e.arraybuffer.preencode(n,o),t.alike(n,e.state(0,5)),e.arraybuffer.preencode(n,r),t.alike(n,e.state(0,14)),n.buffer=a.alloc(n.end),e.arraybuffer.encode(n,o),t.alike(n,e.state(5,14,a.from("aaaa\0\0\0\0\0\0\0\0\0"))),e.arraybuffer.encode(n,r),t.alike(n,e.state(14,14,a.from("aaaa\bbbbbbbbb"))),n.start=0,t.alike(e.arraybuffer.decode(n),o),t.alike(e.arraybuffer.decode(n),r),t.is(n.start,n.end),t.exception(()=>e.arraybuffer.decode(n))}),t("raw",function(t){const n=e.state();e.raw.preencode(n,a.from("hi")),t.alike(n,e.state(0,2)),n.buffer=a.alloc(n.end),e.raw.encode(n,a.from("hi")),t.alike(n,e.state(2,2,a.from("hi"))),n.start=0,t.alike(e.raw.decode(n),a.from("hi")),t.is(n.start,n.end)}),t("raw uint8array",function(t){const n=e.state();e.raw.uint8array.preencode(n,Uint8Array.of(1,2)),t.alike(n,e.state(0,2)),e.raw.uint8array.preencode(n,Uint8Array.of(3,4)),t.alike(n,e.state(0,4)),n.buffer=a.alloc(n.end),e.raw.uint8array.encode(n,Uint8Array.of(1,2)),t.alike(n,e.state(2,4,a.from([1,2,0,0]))),e.raw.uint8array.encode(n,Uint8Array.of(3,4)),t.alike(n,e.state(4,4,a.from([1,2,3,4]))),n.start=0,t.alike(e.raw.uint8array.decode(n),Uint8Array.of(1,2,3,4)),t.alike(e.raw.uint8array.decode(n),Uint8Array.of())}),t("uint16array",function(t){const n=e.state();e.uint16array.preencode(n,new Uint16Array([1,2,3])),t.alike(n,e.state(0,7)),n.buffer=a.alloc(n.end),e.uint16array.encode(n,new Uint16Array([1,2,3])),t.alike(n,e.state(7,7,a.from([3,1,0,2,0,3,0]))),n.start=0,t.alike(e.uint16array.decode(n),new Uint16Array([1,2,3])),t.is(n.start,n.end),t.exception(()=>e.uint16array.decode(n))}),t("uint32array",function(t){const n=e.state();e.uint32array.preencode(n,new Uint32Array([1])),t.alike(n,e.state(0,5)),e.uint32array.preencode(n,new Uint32Array([42,43])),t.alike(n,e.state(0,14)),n.buffer=a.alloc(n.end),e.uint32array.encode(n,new Uint32Array([1])),t.alike(n,e.state(5,14,a.from([1,1,0,0,0,0,0,0,0,0,0,0,0,0]))),e.uint32array.encode(n,new Uint32Array([42,43])),t.alike(n,e.state(14,14,a.from([1,1,0,0,0,2,42,0,0,0,43,0,0,0]))),n.start=0,t.alike(e.uint32array.decode(n),new Uint32Array([1])),t.alike(e.uint32array.decode(n),new Uint32Array([42,43])),t.is(n.start,n.end),t.exception(()=>e.uint32array.decode(n))}),t("int16array",function(t){const n=e.state();e.int16array.preencode(n,new Int16Array([1,-2,3])),t.alike(n,e.state(0,7)),n.buffer=a.alloc(n.end),e.int16array.encode(n,new Int16Array([1,-2,3])),t.alike(n,e.state(7,7,a.from([3,1,0,254,255,3,0]))),n.start=0,t.alike(e.int16array.decode(n),new Int16Array([1,-2,3])),t.is(n.start,n.end),t.exception(()=>e.int16array.decode(n))}),t("int32array",function(t){const n=e.state();e.int32array.preencode(n,new Int32Array([1,-2,3])),t.alike(n,e.state(0,13)),n.buffer=a.alloc(n.end),e.int32array.encode(n,new Int32Array([1,-2,3])),t.alike(n,e.state(13,13,a.from([3,1,0,0,0,254,255,255,255,3,0,0,0]))),n.start=0,t.alike(e.int32array.decode(n),new Int32Array([1,-2,3])),t.is(n.start,n.end),t.exception(()=>e.int32array.decode(n))}),t("biguint64array",function(t){const n=e.state(),o=new BigUint64Array([0x01020304n,0x05060708n,0x090a0b0cn]);e.biguint64array.preencode(n,o),t.alike(n,e.state(0,25)),n.buffer=a.alloc(n.end),e.biguint64array.encode(n,o),t.alike(n,e.state(25,25,a.from([3,4,3,2,1,0,0,0,0,8,7,6,5,0,0,0,0,12,11,10,9,0,0,0,0]))),n.start=0,t.alike(e.biguint64array.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.biguint64array.decode(n))}),t("bigint64array",function(t){const n=e.state(),o=new BigInt64Array([-0x01020304n,0x05060708n,-0x090a0b0cn]);e.bigint64array.preencode(n,o),t.alike(n,e.state(0,25)),n.buffer=a.alloc(n.end),e.bigint64array.encode(n,o),t.alike(n,e.state(25,25,a.from([3,252,252,253,254,255,255,255,255,8,7,6,5,0,0,0,0,244,244,245,246,255,255,255,255]))),n.start=0,t.alike(e.bigint64array.decode(n),o),t.is(n.start,n.end),t.exception(()=>e.bigint64array.decode(n))}),t("float32array",function(t){const n=e.state();e.float32array.preencode(n,new Float32Array([1.1,-2.2,3.3])),t.alike(n,e.state(0,13)),n.buffer=a.alloc(n.end),e.float32array.encode(n,new Float32Array([1.1,-2.2,3.3])),t.alike(n,e.state(13,13,a.from([3,205,204,140,63,205,204,12,192,51,51,83,64]))),n.start=0,t.alike(e.float32array.decode(n),new Float32Array([1.1,-2.2,3.3])),t.is(n.start,n.end),t.exception(()=>e.float32array.decode(n))}),t("float64array",function(t){const n=e.state();e.float64array.preencode(n,new Float64Array([1.1,-2.2,3.3])),t.alike(n,e.state(0,25)),n.buffer=a.alloc(n.end),e.float64array.encode(n,new Float64Array([1.1,-2.2,3.3])),t.alike(n,e.state(25,25,a.from([3,154,153,153,153,153,153,241,63,154,153,153,153,153,153,1,192,102,102,102,102,102,102,10,64]))),n.start=0,t.alike(e.float64array.decode(n),new Float64Array([1.1,-2.2,3.3])),t.is(n.start,n.end),t.exception(()=>e.float64array.decode(n))}),t("string",function(t){const n=e.state();e.string.preencode(n,"🌾"),t.alike(n,e.state(0,5)),e.string.preencode(n,"høsten er fin"),t.alike(n,e.state(0,20)),n.buffer=a.alloc(n.end),e.string.encode(n,"🌾"),t.alike(n,e.state(5,20,a.from("🌾\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"))),e.string.encode(n,"høsten er fin"),t.alike(n,e.state(20,20,a.from("🌾høsten er fin"))),n.start=0,t.is(e.string.decode(n),"🌾"),t.is(e.string.decode(n),"høsten er fin"),t.is(n.start,n.end),t.exception(()=>e.string.decode(n))}),t("raw string",function(t){const n=e.state();e.raw.string.preencode(n,"hello"),t.alike(n,e.state(0,5)),e.raw.string.preencode(n," world"),t.alike(n,e.state(0,11)),n.buffer=a.alloc(n.end),e.raw.string.encode(n,"hello"),e.raw.string.encode(n," world"),t.alike(n,e.state(11,11,a.from("hello world"))),n.start=0,t.is(e.raw.string.decode(n),"hello world"),t.is(e.raw.string.decode(n),"")}),t("fixed32",function(t){const n=e.state();e.fixed32.preencode(n,a.alloc(32).fill("a")),t.alike(n,e.state(0,32)),e.fixed32.preencode(n,a.alloc(32).fill("b")),t.alike(n,e.state(0,64)),n.buffer=a.alloc(n.end),e.fixed32.encode(n,a.alloc(32).fill("a")),t.alike(n,e.state(32,64,a.alloc(64).fill("a",0,32))),e.fixed32.encode(n,a.alloc(32).fill("b")),t.alike(n,e.state(64,64,a.alloc(64).fill("a",0,32).fill("b",32,64))),n.start=0,t.alike(e.fixed32.decode(n),a.alloc(32).fill("a")),t.alike(e.fixed32.decode(n),a.alloc(32).fill("b")),t.is(n.start,n.end),t.exception(()=>e.fixed32.decode(n))}),t("fixed64",function(t){const n=e.state();e.fixed64.preencode(n,a.alloc(64).fill("a")),t.alike(n,e.state(0,64)),e.fixed64.preencode(n,a.alloc(64).fill("b")),t.alike(n,e.state(0,128)),n.buffer=a.alloc(n.end),e.fixed64.encode(n,a.alloc(64).fill("a")),t.alike(n,e.state(64,128,a.alloc(128).fill("a",0,64))),e.fixed64.encode(n,a.alloc(64).fill("b")),t.alike(n,e.state(128,128,a.alloc(128).fill("a",0,64).fill("b",64,128))),n.start=0,t.alike(e.fixed64.decode(n),a.alloc(64).fill("a")),t.alike(e.fixed64.decode(n),a.alloc(64).fill("b")),t.is(n.start,n.end),t.exception(()=>e.fixed64.decode(n))}),t("fixed n",function(t){const n=e.state(),o=e.fixed(3);o.preencode(n,a.alloc(3).fill("a")),t.alike(n,e.state(0,3)),o.preencode(n,a.alloc(3).fill("b")),t.alike(n,e.state(0,6)),n.buffer=a.alloc(n.end),o.encode(n,a.alloc(3).fill("a")),t.alike(n,e.state(3,6,a.alloc(6).fill("a",0,3))),o.encode(n,a.alloc(3).fill("b")),t.alike(n,e.state(6,6,a.alloc(6).fill("a",0,3).fill("b",3,6))),n.start=0,t.alike(o.decode(n),a.alloc(3).fill("a")),t.alike(o.decode(n),a.alloc(3).fill("b")),t.is(n.start,n.end),t.exception(()=>o.decode(n)),n.start=4,t.exception(()=>o.decode(n))}),t("error for incorrect buffer sizes when encoding fixed-length buffers",function(t){const n=a.from("aa","hex"),o=a.from("aa".repeat(500),"hex");t.exception(()=>e.encode(e.fixed32,n),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed64,n),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed(100),n),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed32,o),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed64,o),/Incorrect buffer size/),t.exception(()=>e.encode(e.fixed(100),o),/Incorrect buffer size/)}),t("array",function(t){const n=e.state(),o=e.array(e.bool);o.preencode(n,[!0,!1,!0]),t.alike(n,e.state(0,4)),o.preencode(n,[!1,!1,!0,!0]),t.alike(n,e.state(0,9)),n.buffer=a.alloc(n.end),o.encode(n,[!0,!1,!0]),t.alike(n,e.state(4,9,a.from([3,1,0,1,0,0,0,0,0]))),o.encode(n,[!1,!1,!0,!0]),t.alike(n,e.state(9,9,a.from([3,1,0,1,4,0,0,1,1]))),n.start=0,t.alike(o.decode(n),[!0,!1,!0]),t.alike(o.decode(n),[!1,!1,!0,!0]),t.is(n.start,n.end),t.exception(()=>o.decode(n))}),t("raw array",function(t){const n=e.state(),o=e.raw.array(e.bool);o.preencode(n,[!0]),t.alike(n,e.state(0,1)),o.preencode(n,[!0]),t.alike(n,e.state(0,2)),n.buffer=a.alloc(n.end),o.encode(n,[!0]),t.alike(n,e.state(1,2,a.from([1,0]))),o.encode(n,[!0]),t.alike(n,e.state(2,2,a.from([1,1]))),n.start=0,t.alike(o.decode(n),[!0,!0]),t.alike(o.decode(n),[])}),t("json",function(t){const n=e.state();e.json.preencode(n,{a:1,b:2}),t.alike(n,e.state(0,14)),n.buffer=a.alloc(n.end),e.json.encode(n,{a:1,b:2}),t.alike(n,e.state(14,14,a.concat([a.from([13]),a.from('{"a":1,"b":2}')]))),n.start=0,t.alike(e.json.decode(n),{a:1,b:2}),t.exception(()=>e.json.decode(n))}),t("raw json",function(t){const n=e.state();e.raw.json.preencode(n,{a:1,b:2}),t.alike(n,e.state(0,13)),n.buffer=a.alloc(n.end),e.raw.json.encode(n,{a:1,b:2}),t.alike(n,e.state(13,13,a.from('{"a":1,"b":2}'))),n.start=0,t.alike(e.raw.json.decode(n),{a:1,b:2}),t.exception(()=>e.json.decode(n))}),t("lexint: big numbers",function(t){t.plan(1);let n,o=e.encode(e.lexint,0),r=1;for(n=1;n<Number.MAX_VALUE;n+=r){const t=e.encode(e.lexint,n);if(a.compare(t,o)<1)break;o=t,r=1+Math.pow(245,Math.ceil(Math.log(n)/Math.log(256)))}t.is(n,1/0)}),t("lexint: range precision",function(t){t.plan(2);const a=1e55,n=10000000000001e42,o=e.encode(e.lexint,a).toString("hex"),r=e.encode(e.lexint,n).toString("hex");t.not(a,n),t.not(o,r)}),t("lexint: range precision",function(t){let n=e.encode(e.lexint,0);for(let o=0,r=1e55;o<1e3;r=1e55+1e46*++o){const o=e.encode(e.lexint,r);a.compare(o,n)<1&&t.fail("cur <= prev"),n=o}t.ok(!0),t.end()}),t("lexint: small numbers",function(t){let n=e.encode(e.lexint,0);for(let o=1;o<1048576;o++){const r=e.encode(e.lexint,o);a.compare(r,n)<1&&t.fail("cur <= prev"),n=r}t.ok(!0),t.end()}),t("lexint: throws",function(t){t.exception(()=>{e.decode(e.lexint,a.alloc(1,251))});let n=252;const o=e.state();e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),n<<=8,o.start=0,o.end=0,o.buffer=null,e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),n<<=8,o.start=0,o.end=0,o.buffer=null,e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),n*=256,o.start=0,o.end=0,o.buffer=null,e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),n*=65536,o.start=0,o.end=0,o.buffer=null,e.lexint.preencode(o,n),o.buffer=a.alloc(o.end-o.start),e.lexint.encode(o,n),t.exception(()=>{e.decode(e.lexint,o.buffer.subarray(0,o.buffer.byteLength-2))}),t.end()}),t("lexint: unpack",function(t){let a,n=1;for(a=1;a<Number.MAX_VALUE;a+=n){const t=e.encode(e.lexint,a);o(a,e.decode(e.lexint,t)),n=1+Math.pow(245,Math.ceil(Math.log(a)/Math.log(256)))}function o(e,a){const n=e+" !=~ "+a;/e\+\d+$/.test(e)||/e\+\d+$/.test(a)?String(e).slice(0,8)===String(a).slice(0,8)&&/e\+(\d+)$/.exec(e)[1]===/e\+(\d+)$/.exec(a)[1]||t.fail(n):String(e).slice(0,8)===String(a).slice(0,8)&&String(e).length===String(a).length||t.fail(n)}t.is(a,1/0),t.end()}),t("date",function(t){const a=new Date;t.alike(e.decode(e.date,e.encode(e.date,a)),a)}),t("any",function(t){const a={hello:"world",num:42,neg:-42,arr:[{yes:1},{no:!1}],nest:{},today:new Date,float:.54};t.alike(e.decode(e.any,e.encode(e.any,a)),a);const n=new Array(3);t.alike(e.decode(e.any,e.encode(e.any,n)),[null,null,null])}),t("framed",function(t){const n=e.frame(e.uint);t.alike(e.encode(n,42),a.from([1,42])),t.alike(e.decode(n,a.from([1,42])),42),t.alike(e.encode(n,4200),a.from([3,253,104,16])),t.alike(e.decode(n,a.from([3,253,104,16])),4200)}),t("port",function(t){const a=Buffer.from([52,18]);t.alike(e.encode(e.port,4660),a),t.alike(e.decode(e.port,a),4660)}),t("ipv4",function(t){const a="1.2.3.4",n=Buffer.from([1,2,3,4]);t.alike(e.encode(e.ipv4,a),n),t.alike(e.decode(e.ipv4,n),a)}),t("ipv4 + port",function(t){const a="1.2.3.4";t.alike(e.decode(e.ipv4Address,e.encode(e.ipv4Address,{host:a,port:1234})),{host:a,family:4,port:1234})}),t("ipv6",function(t){const a="1:2:3:4:5:6:7:8",n=Buffer.from([0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8]);t.alike(e.encode(e.ipv6,a),n),t.alike(e.decode(e.ipv6,n),a),t.test("abbreviated",function(t){const a=Buffer.from([0,1,0,2,0,0,0,0,0,0,0,0,0,7,0,8]);t.alike(e.encode(e.ipv6,"1:2::7:8"),a),t.alike(e.decode(e.ipv6,a),"1:2:0:0:0:0:7:8")}),t.test("prefix abbreviated",function(t){const a=Buffer.from([0,0,0,0,0,0,0,0,0,5,0,6,0,7,0,8]);t.alike(e.encode(e.ipv6,"::5:6:7:8"),a),t.alike(e.decode(e.ipv6,a),"0:0:0:0:5:6:7:8")}),t.test("suffix abbreviated",function(t){const a=Buffer.from([0,1,0,2,0,3,0,4,0,0,0,0,0,0,0,0]);t.alike(e.encode(e.ipv6,"1:2:3:4::"),a),t.alike(e.decode(e.ipv6,a),"1:2:3:4:0:0:0:0")}),t.test("any",function(t){const a=Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);t.alike(e.encode(e.ipv6,"::"),a),t.alike(e.decode(e.ipv6,a),"0:0:0:0:0:0:0:0")}),t.test("lowercase hex",function(t){const a=Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,205]);t.alike(e.encode(e.ipv6,"::abcd"),a),t.alike(e.decode(e.ipv6,a),"0:0:0:0:0:0:0:abcd")}),t.test("uppercase hex",function(t){const a=Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,171,205]);t.alike(e.encode(e.ipv6,"::ABCD"),a),t.alike(e.decode(e.ipv6,a),"0:0:0:0:0:0:0:abcd")})}),t("ipv6 + port",function(t){const a="1:2:3:4:5:6:7:8";t.alike(e.decode(e.ipv6Address,e.encode(e.ipv6Address,{host:a,port:1234})),{host:a,family:6,port:1234})}),t("dual ip",function(t){{const a="1.2.3.4";t.alike(e.decode(e.ip,e.encode(e.ip,a)),a,"ipv4")}{const a="1:2:3:4:5:6:7:8";t.alike(e.decode(e.ip,e.encode(e.ip,a)),a,"ipv6")}}),t("dual ip + port",function(t){const a=1234;{const n="1.2.3.4";t.alike(e.decode(e.ipAddress,e.encode(e.ipAddress,{host:n,port:a})),{host:n,family:4,port:a},"ipv4")}{const n="1:2:3:4:5:6:7:8";t.alike(e.decode(e.ipAddress,e.encode(e.ipAddress,{host:n,port:a})),{host:n,family:6,port:a},"ipv6")}}),t("record",function(t){const a=e.record(e.string,e.string);t.alike(e.decode(a,e.encode(a,{a:"hello",b:"world"})),Object.assign(Object.create(null),{a:"hello",b:"world"}))}),t("record - nested",function(t){const a=e.record(e.string,e.record(e.string,e.string));t.alike(e.decode(a,e.encode(a,{a:{b:"record"},c:{d:"nested",e:"test"}})),Object.assign(Object.create(null),{a:Object.assign(Object.create(null),{b:"record"}),c:Object.assign(Object.create(null),{d:"nested",e:"test"})}))}),t("stringRecord",function(t){t.alike(e.decode(e.stringRecord,e.encode(e.stringRecord,{a:"hello",b:"world"})),Object.assign(Object.create(null),{a:"hello",b:"world"}))});
MANIFEST.md +16 -17
……@@ -1,35 +1,34 @@
11# Keet 4.x audit — package manifest
22
3Captured: 2026-05-11T19:05:06.071Z
4Source: /tmp/.mount_Keet.AjtX4HI/resources/app/node_modules
5AppImage app version: 4.14.1
3Captured: 2026-05-14T21:08:27.965Z
4Source: /tmp/.mount_Keet.AqNht9x/resources/app/node_modules
5AppImage app version: 4.15.0
66
77| Package | Version | Description |
88|---|---|---|
99| `@holepunchto/broadcast-call` | 2.0.0 | |
1010| `@holepunchto/emojis` | 3.2.0 | HolePunch Emojis |
11| `@holepunchto/hyperdiscovery` | 1.1.1 | Peer discovery powered by HyperDHT |
12| `@holepunchto/hyperindex` | 2.3.5 | Indexing and aggregation on Hyperbee |
13| `@holepunchto/keet-call` | 10.3.3 | Track management and relaying for Keet |
14| `@holepunchto/keet-core` | 4.14.4 | A version of keet-core built with rocksdb and hyperdb |
11| `@holepunchto/hyperdiscovery` | 1.2.0 | Peer discovery powered by HyperDHT |
12| `@holepunchto/hyperindex` | 2.4.0 | Indexing and aggregation on Hyperbee |
13| `@holepunchto/keet-call` | 10.3.4 | Track management and relaying for Keet |
14| `@holepunchto/keet-core` | 4.15.7 | A version of keet-core built with rocksdb and hyperdb |
1515| `@holepunchto/keet-core-api` | 2.14.2 | API definitions and structured error types for Keet Core |
1616| `@holepunchto/keet-core-schemas` | 2.17.0 | Database schemas used by keet-indexing |
1717| `@holepunchto/keet-debug-helper` | 2.0.3 | |
1818| `@holepunchto/keet-default-config` | 3.1.0 | Default config values for launching a Keep app |
19| `@holepunchto/keet-editor` | 3.17.2 | A rich text editor for Keet |
19| `@holepunchto/keet-editor` | 3.17.4 | A rich text editor for Keet |
2020| `@holepunchto/keet-editor-parser` | 4.0.2 | Parser for keet-editor |
21| `@holepunchto/keet-indexing` | 6.3.2 | Indexing logic for Keet's Autobase DB |
21| `@holepunchto/keet-indexing` | 6.4.0 | Indexing logic for Keet's Autobase DB |
2222| `@holepunchto/keet-link-preview` | 1.2.5 | Return the link preview information from a url |
2323| `@holepunchto/keet-media` | 2.4.1 | |
24| `@holepunchto/keet-package` | 3.0.3 | Automatically obfuscated private Holepunch repositories and produce a bundle |
25| `@holepunchto/keet-push` | 4.2.0 | Push notifications for Keet |
26| `@holepunchto/keet-registry` | 3.7.0 | Name service for Keet identities |
27| `@holepunchto/keet-registry-client` | 5.1.1 | Client for keet-registry-service |
24| `@holepunchto/keet-push` | 4.3.0 | Push notifications for Keet |
25| `@holepunchto/keet-registry` | 3.9.0 | Name service for Keet identities |
26| `@holepunchto/keet-registry-client` | 5.2.0 | Client for keet-registry-service |
2827| `@holepunchto/keet-registry-schema` | 3.4.0 | Schemas and encodings for keet-registry-service |
2928| `@holepunchto/keet-schemas` | 1.24.14 | |
30| `@holepunchto/keet-store` | 6.14.30 | Keet shared store |
31| `@holepunchto/keet-translations` | 2.5.0 | Keet translations |
32| `@holepunchto/keet-unread-anchors` | 2.0.0 | Unread anchors |
29| `@holepunchto/keet-store` | 6.15.28 | Keet shared store |
30| `@holepunchto/keet-translations` | 2.5.2 | Keet translations |
31| `@holepunchto/keet-unread-anchors` | 2.1.2 | Unread anchors |
3332| `@holepunchto/legacy-keet-core-schemas` | 2.17.0 | Database schemas used by keet-indexing |
34| `keet-identity-key` | 3.1.0 | Hierarchical Deterministic Keys for Keet Identities |
33| `keet-identity-key` | 3.2.0 | Hierarchical Deterministic Keys for Keet Identities |
3534
keet-identity-key/package.json +3 -3
……@@ -1,6 +1,6 @@
11{
22 "name": "keet-identity-key",
3 "version": "3.1.0",
3 "version": "3.2.0",
44 "description": "Hierarchical Deterministic Keys for Keet Identities",
55 "main": "index.js",
66 "scripts": {
……@@ -14,9 +14,9 @@
1414 "standard": "^17.1.0"
1515 },
1616 "dependencies": {
17 "bip39-mnemonic": "^2.2.0",
1817 "b4a": "^1.6.4",
19 "compact-encoding": "^2.13.0",
18 "bip39-mnemonic": "^2.2.0",
19 "compact-encoding": "^3.0.0",
2020 "nanoassert": "^2.0.0",
2121 "sodium-hmac": "^2.0.1",
2222 "sodium-universal": "^5.0.1"