@oh-just-another/collab 0.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +57 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/awareness.d.ts +60 -0
- package/dist/awareness.d.ts.map +1 -0
- package/dist/awareness.js +89 -0
- package/dist/awareness.js.map +1 -0
- package/dist/bind-awareness.d.ts +33 -0
- package/dist/bind-awareness.d.ts.map +1 -0
- package/dist/bind-awareness.js +125 -0
- package/dist/bind-awareness.js.map +1 -0
- package/dist/bind-editor.d.ts +34 -0
- package/dist/bind-editor.d.ts.map +1 -0
- package/dist/bind-editor.js +87 -0
- package/dist/bind-editor.js.map +1 -0
- package/dist/branch-doc.d.ts +53 -0
- package/dist/branch-doc.d.ts.map +1 -0
- package/dist/branch-doc.js +188 -0
- package/dist/branch-doc.js.map +1 -0
- package/dist/constants.d.ts +26 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +26 -0
- package/dist/constants.js.map +1 -0
- package/dist/encryption.d.ts +74 -0
- package/dist/encryption.d.ts.map +1 -0
- package/dist/encryption.js +124 -0
- package/dist/encryption.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/mentions.d.ts +33 -0
- package/dist/mentions.d.ts.map +1 -0
- package/dist/mentions.js +57 -0
- package/dist/mentions.js.map +1 -0
- package/dist/merge.d.ts +59 -0
- package/dist/merge.d.ts.map +1 -0
- package/dist/merge.js +2 -0
- package/dist/merge.js.map +1 -0
- package/dist/scene-doc.d.ts +41 -0
- package/dist/scene-doc.d.ts.map +1 -0
- package/dist/scene-doc.js +111 -0
- package/dist/scene-doc.js.map +1 -0
- package/dist/transport-provider.d.ts +21 -0
- package/dist/transport-provider.d.ts.map +1 -0
- package/dist/transport-provider.js +105 -0
- package/dist/transport-provider.js.map +1 -0
- package/dist/yjs-history.d.ts +68 -0
- package/dist/yjs-history.d.ts.map +1 -0
- package/dist/yjs-history.js +215 -0
- package/dist/yjs-history.js.map +1 -0
- package/package.json +59 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# @oh-just-another/collab
|
|
2
|
+
|
|
3
|
+
## 0.57.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Version bump just for publishing.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
- @oh-just-another/history@0.57.0
|
|
13
|
+
- @oh-just-another/network@0.57.0
|
|
14
|
+
- @oh-just-another/scene@0.57.0
|
|
15
|
+
- @oh-just-another/serialization@0.57.0
|
|
16
|
+
- @oh-just-another/state@0.57.0
|
|
17
|
+
- @oh-just-another/types@0.57.0
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Rustam Garifulin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# @oh-just-another/collab
|
|
2
|
+
|
|
3
|
+
Real-time collaboration on `@oh-just-another/scene` documents — Yjs CRDT binding for the scene + awareness (presence) for cursors and peer lists. Pair with a `@oh-just-another/network` transport (BroadcastChannel for tabs, WebSocket for cross-machine).
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @oh-just-another/collab
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Direct deps: `yjs` and `y-protocols`.
|
|
12
|
+
|
|
13
|
+
## Quick start
|
|
14
|
+
|
|
15
|
+
Same-tab demo (e.g. for testing):
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import * as Y from "yjs";
|
|
19
|
+
import { Editor } from "@oh-just-another/state";
|
|
20
|
+
import { BroadcastChannelTransport } from "@oh-just-another/network";
|
|
21
|
+
import { SceneDoc, CollabAwareness, TransportProvider, bindEditor } from "@oh-just-another/collab";
|
|
22
|
+
|
|
23
|
+
const doc = new Y.Doc();
|
|
24
|
+
const sceneDoc = new SceneDoc(doc);
|
|
25
|
+
const awareness = new CollabAwareness(doc);
|
|
26
|
+
awareness.updateLocal({ user: { id: "me", name: "Alice", color: "#1a73e8" } });
|
|
27
|
+
|
|
28
|
+
const transport = new BroadcastChannelTransport("room-foo");
|
|
29
|
+
const provider = new TransportProvider({ doc, transport, awareness: awareness.awareness });
|
|
30
|
+
|
|
31
|
+
const unbind = bindEditor(editor, sceneDoc);
|
|
32
|
+
// …later
|
|
33
|
+
unbind();
|
|
34
|
+
provider.destroy();
|
|
35
|
+
awareness.destroy();
|
|
36
|
+
transport.close();
|
|
37
|
+
doc.destroy();
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## API
|
|
41
|
+
|
|
42
|
+
| Name | Purpose |
|
|
43
|
+
| --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| `SceneDoc(doc?)` | Wraps `Y.Doc` exposing `shapes` / `edges` / `layers` / `viewport` maps. `snapshot()`, `replace(scene)`, `applyDelta(...)`. |
|
|
45
|
+
| `bindEditor(editor, sceneDoc)` | Wire an `Editor` to a `SceneDoc`. Returns unbind. |
|
|
46
|
+
| `CollabAwareness(doc)` | Typed wrapper over `y-protocols/awareness`: `updateLocal`, `getPeers` / `getOthers` / `onPeers`. |
|
|
47
|
+
| `Peer`, `PeerUser` | Public types for presence payload. |
|
|
48
|
+
| `TransportProvider({ doc, transport, awareness? })` | Bridge `Y.Doc` (+ awareness) onto a `Transport`. Multiplexes doc / awareness / sync-request over one channel. |
|
|
49
|
+
|
|
50
|
+
## Design notes
|
|
51
|
+
|
|
52
|
+
- **CRDT as the source of truth.** `SceneDoc.snapshot()` rebuilds a typed `Scene` from `Y.Map`s on demand. We don't try to incrementally patch the local scene from individual Yjs events — `editor.loadScene(snapshot)` after every remote update is simpler and within budget for typical scene sizes.
|
|
53
|
+
- **`Y.Map<id, Shape>` per kind**, not nested `Y.Map`s. Concurrent edits to different ids merge under classic CRDT last-writer-wins semantics. Per-shape conflict resolution (two peers editing the same shape) is also LWW today — fine for editor UX where one peer's drag obviously stops the moment the other commits.
|
|
54
|
+
- **Undo history dropped on remote updates (MVP).** `editor.history` is a linear local stack; CRDT-style multi-author undo needs a `Y.UndoManager`-backed history. Promoted to a follow-up phase.
|
|
55
|
+
- **Self-origin filter on Yjs transactions.** `bindEditor` tags its own writes so the `update` listener doesn't ricochet — without it every keystroke would flicker through `loadScene`.
|
|
56
|
+
- **Transport-agnostic.** The same `SceneDoc` works behind BroadcastChannel (same-origin tabs) or WebSocket (any server speaking y-protocols). Sharded WebRTC / WebTransport implementations slot in without touching the binding.
|
|
57
|
+
- **Single-tag wire format.** `TransportProvider` prepends one byte to every message: `0x00` doc / `0x01` awareness / `0x02` sync-request. Lets us multiplex over a single binary channel without a separate signalling layer.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/observable.d.ts","../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/random.d.ts","../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/encoding.d.ts","../../../node_modules/.pnpm/lib0@0.2.117/node_modules/lib0/decoding.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/updateencoder.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/updatedecoder.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/deleteset.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/yevent.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/transaction.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/eventhandler.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/snapshot.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/abstracttype.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/id.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/abstractstruct.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/gc.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/structstore.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/undomanager.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/item.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/yarray.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/ytext.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/ymap.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/yxmltext.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/yxmlhook.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/yxmlevent.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/yxmlfragment.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/types/yxmlelement.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/doc.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/abstractconnector.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/encoding.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/isparentof.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/logging.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/permanentuserdata.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/relativeposition.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/skip.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/utils/updates.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contentbinary.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contentdeleted.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contentdoc.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contentembed.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contentformat.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contentjson.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contentany.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contentstring.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/structs/contenttype.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/internals.d.ts","../../../node_modules/.pnpm/yjs@13.6.30/node_modules/yjs/dist/src/index.d.ts","../../../node_modules/.pnpm/y-protocols@1.0.7_yjs@13.6.30/node_modules/y-protocols/awareness.d.ts","../../types/dist/vec2.d.ts","../../types/dist/bounds.d.ts","../../types/dist/transform.d.ts","../../types/dist/color.d.ts","../../types/dist/ids.d.ts","../../types/dist/events.d.ts","../../types/dist/index.d.ts","../src/awareness.ts","../../scene/dist/style.d.ts","../../scene/dist/constants.d.ts","../../../node_modules/.pnpm/fractional-keys@0.1.1/node_modules/fractional-keys/dist/types.d.ts","../../../node_modules/.pnpm/fractional-keys@0.1.1/node_modules/fractional-keys/dist/generate.d.ts","../../../node_modules/.pnpm/fractional-keys@0.1.1/node_modules/fractional-keys/dist/jitter.d.ts","../../../node_modules/.pnpm/fractional-keys@0.1.1/node_modules/fractional-keys/dist/digits.d.ts","../../../node_modules/.pnpm/fractional-keys@0.1.1/node_modules/fractional-keys/dist/errors.d.ts","../../../node_modules/.pnpm/fractional-keys@0.1.1/node_modules/fractional-keys/dist/index.d.ts","../../scene/dist/edge.d.ts","../../scene/dist/shape.d.ts","../../scene/dist/edge-curve.d.ts","../../scene/dist/annotation.d.ts","../../scene/dist/file.d.ts","../../scene/dist/layer.d.ts","../../scene/dist/viewport.d.ts","../../scene/dist/patch.d.ts","../../scene/dist/scene.d.ts","../../scene/dist/edge-geometry.d.ts","../../scene/dist/operations.d.ts","../../scene/dist/render-bounds.d.ts","../../scene/dist/text-measure.d.ts","../../scene/dist/anchors.d.ts","../../scene/dist/snap.d.ts","../../scene/dist/outline.d.ts","../../scene/dist/annotation-geometry.d.ts","../../scene/dist/spatial.d.ts","../../scene/dist/queries.d.ts","../../scene/dist/a11y.d.ts","../../scene/dist/layout.d.ts","../../scene/dist/layout-registry.d.ts","../../scene/dist/elbow-router.d.ts","../../scene/dist/elbow-link.d.ts","../../scene/dist/heading.d.ts","../../scene/dist/diff.d.ts","../../scene/dist/three-way-merge.d.ts","../../scene/dist/container.d.ts","../../scene/dist/index.d.ts","../../state/dist/modes.d.ts","../../state/dist/selection.d.ts","../../state/dist/constants.d.ts","../../state/dist/handle.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/inspection.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/system.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/statemachine.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/statenode.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/state.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/raise.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/send.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actors/promise.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/symbolobservable.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/createactor.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/guards.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/types.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/spawn.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/assign.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/cancel.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/emit.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/spawnchild.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/stopchild.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/enqueueactions.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions/log.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actions.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actors/callback.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actors/observable.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actors/transition.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/actors/index.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/assert.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/createmachine.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/mapstate.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/getnextsnapshot.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/setup.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/simulatedclock.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/stateutils.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/topromise.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/utils.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/transition.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/waitfor.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/declarations/src/index.d.ts","../../../node_modules/.pnpm/xstate@5.31.1/node_modules/xstate/dist/xstate.cjs.d.mts","../../state/dist/machine.d.ts","../../renderer-core/dist/render-target.d.ts","../../renderer-core/dist/shape-renderer.d.ts","../../renderer-core/dist/layers.d.ts","../../renderer-core/dist/shape-cache.d.ts","../../renderer-core/dist/layer-cache-composite.d.ts","../../renderer-core/dist/scene-renderer.d.ts","../../renderer-core/dist/edge-cache.d.ts","../../renderer-core/dist/edge-cache-bitmap.d.ts","../../renderer-core/dist/edge-renderer.d.ts","../../renderer-core/dist/grid-renderer.d.ts","../../renderer-core/dist/built-in-renderers.d.ts","../../renderer-core/dist/text-shaper.d.ts","../../renderer-core/dist/text-layout.d.ts","../../renderer-core/dist/text-editing.d.ts","../../renderer-core/dist/shape-cache-bitmap.d.ts","../../renderer-core/dist/animation-adapter.d.ts","../../renderer-core/dist/rasterizer.d.ts","../../renderer-core/dist/js-rasterizer.d.ts","../../renderer-core/dist/worker-render.d.ts","../../renderer-core/dist/tile-renderer.d.ts","../../renderer-core/dist/constants.d.ts","../../renderer-core/dist/index.d.ts","../../state/dist/editor/hit-test.d.ts","../../state/dist/overlay.d.ts","../../state/dist/dom-events.d.ts","../../state/dist/interactive.d.ts","../../history/dist/provider.d.ts","../../history/dist/history.d.ts","../../history/dist/merge.d.ts","../../history/dist/describe.d.ts","../../history/dist/index.d.ts","../../state/dist/file-drop.d.ts","../../state/dist/editor-events.d.ts","../../state/dist/editor/long-press.d.ts","../../state/dist/editor/pinch.d.ts","../../state/dist/editor/public/brush.d.ts","../../state/dist/link-selection.d.ts","../../state/dist/editor.d.ts","../../state/dist/editor/public/link.d.ts","../../state/dist/actions/types.d.ts","../../state/dist/actions/registry.d.ts","../../state/dist/actions/actionhistory.d.ts","../../state/dist/actions/actionselection.d.ts","../../state/dist/actions/actionclipboard.d.ts","../../state/dist/actions/actionzorder.d.ts","../../state/dist/actions/actiongrouping.d.ts","../../state/dist/actions/actionzoom.d.ts","../../state/dist/actions/actionmode.d.ts","../../state/dist/actions/actionview.d.ts","../../state/dist/actions/index.d.ts","../../state/dist/platform.d.ts","../../state/dist/index.d.ts","../src/bind-awareness.ts","../src/scene-doc.ts","../src/bind-editor.ts","../src/merge.ts","../src/branch-doc.ts","../src/constants.ts","../../network/dist/transport.d.ts","../../network/dist/broadcast-channel.d.ts","../../network/dist/websocket.d.ts","../../network/dist/index.d.ts","../src/encryption.ts","../src/transport-provider.ts","../src/mentions.ts","../src/yjs-history.ts","../src/index.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/buffer@5.7.1/node_modules/buffer/index.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.19.19/node_modules/@types/node/index.d.ts"],"fileIdsList":[[266,312,313,315,332,333],[266,314,315,332,333],[315,332,333],[266,315,320,332,333,350],[266,315,316,321,326,332,333,335,347,358],[266,315,316,317,326,332,333,335],[266,315,332,333],[261,262,263,266,315,332,333],[266,315,318,332,333,359],[266,315,319,320,327,332,333,336],[266,315,320,332,333,347,355],[266,315,321,323,326,332,333,335],[266,314,315,322,332,333],[266,315,323,324,332,333],[266,315,325,326,332,333],[266,314,315,326,332,333],[266,315,326,327,328,332,333,347,358],[266,315,326,327,328,332,333,342,347,350],[266,308,315,323,326,329,332,333,335,347,358],[266,315,326,327,329,330,332,333,335,347,355,358],[266,315,329,331,332,333,347,355,358],[264,265,266,267,268,269,270,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364],[266,315,326,332,333],[266,315,332,333,334,358],[266,315,323,326,332,333,335,347],[266,315,332,333,336],[266,315,332,333,337],[266,314,315,332,333,338],[266,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364],[266,315,332,333,340],[266,315,332,333,341],[266,315,326,332,333,342,343],[266,315,332,333,342,344,359,361],[266,315,327,332,333],[266,315,326,332,333,347,348,350],[266,315,332,333,349,350],[266,315,332,333,347,348],[266,315,332,333,350],[266,315,332,333,351],[266,312,315,332,333,347,352,358],[266,315,326,332,333,353,354],[266,315,332,333,353,354],[266,315,320,332,333,335,347,355],[266,315,332,333,356],[266,315,332,333,335,357],[266,315,329,332,333,341,358],[266,315,320,332,333,359],[266,315,332,333,347,360],[266,315,332,333,334,361],[266,315,332,333,362],[266,308,315,332,333],[266,308,315,326,328,332,333,338,347,350,358,360,361,363],[266,315,332,333,347,364],[116,266,315,332,333],[116,117,118,119,120,266,315,332,333],[266,280,284,315,332,333,358],[266,280,315,332,333,347,358],[266,275,315,332,333],[266,277,280,315,332,333,355,358],[266,315,332,333,335,355],[266,315,332,333,365],[266,275,315,332,333,365],[266,277,280,315,332,333,335,358],[266,272,273,276,279,315,326,332,333,347,358],[266,280,287,315,332,333],[266,272,278,315,332,333],[266,280,301,302,315,332,333],[266,276,280,315,332,333,350,358,365],[266,301,315,332,333,365],[266,274,275,315,332,333,365],[266,280,315,332,333],[266,274,275,276,277,278,279,280,281,282,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,302,303,304,305,306,307,315,332,333],[266,280,295,315,332,333],[266,280,287,288,315,332,333],[266,278,280,288,289,315,332,333],[266,279,315,332,333],[266,272,275,280,315,332,333],[266,280,284,288,289,315,332,333],[266,284,315,332,333],[266,278,280,283,315,332,333,358],[266,272,277,280,287,315,332,333],[266,315,332,333,347],[266,275,280,301,315,332,333,363,365],[160,161,168,169,170,171,172,173,174,266,315,332,333],[166,167,266,315,332,333],[166,266,315,332,333],[160,161,165,166,168,169,170,171,172,266,315,332,333],[156,166,266,315,332,333],[162,166,176,177,178,266,315,332,333],[156,163,166,266,315,332,333],[157,166,266,315,332,333],[155,156,157,158,159,164,165,166,167,175,179,180,181,182,183,184,185,186,187,188,189,190,266,315,332,333],[157,160,161,165,166,168,169,170,171,172,173,174,266,315,332,333],[156,266,315,332,333],[157,158,166,266,315,332,333],[156,158,159,166,266,315,332,333],[158,159,166,266,315,332,333],[155,166,266,315,332,333],[155,156,157,158,159,160,161,162,164,165,167,168,266,315,332,333],[158,166,266,315,332,333],[191,266,315,332,333],[59,104,266,315,332,333],[103,266,315,332,333],[63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,266,315,332,333],[63,67,71,266,315,332,333],[63,64,67,74,76,266,315,332,333],[63,64,67,74,76,85,266,315,332,333],[63,64,67,70,74,76,266,315,332,333],[63,67,72,74,266,315,332,333],[63,64,65,67,70,71,72,74,75,266,315,332,333],[63,66,67,68,69,76,85,266,315,332,333],[64,66,67,70,76,85,266,315,332,333],[64,66,67,69,70,71,76,85,266,315,332,333],[64,69,70,80,83,266,315,332,333],[66,67,80,83,84,266,315,332,333],[64,70,76,80,81,82,84,85,266,315,332,333],[64,79,266,315,332,333],[64,78,84,266,315,332,333],[59,85,266,315,332,333],[63,64,67,71,73,74,76,266,315,332,333],[59,60,66,67,70,74,76,77,78,79,83,84,266,315,332,333],[62,63,64,67,73,74,76,85,266,315,332,333],[61,62,70,266,315,332,333],[70,76,266,315,332,333],[70,266,315,332,333],[65,67,71,79,85,266,315,332,333],[61,62,70,71,85,266,315,332,333],[63,64,65,67,76,85,266,315,332,333],[67,71,73,76,266,315,332,333],[63,65,66,70,71,72,74,76,85,266,315,332,333],[59,65,66,67,70,76,85,266,315,332,333],[62,71,266,315,332,333],[61,71,266,315,332,333],[63,64,65,73,76,92,266,315,332,333],[67,70,72,76,266,315,332,333],[104,105,112,266,315,332,333],[112,113,150,245,266,315,332,333],[104,150,245,247,266,315,332,333],[104,112,150,247,249,266,315,332,333],[251,255,266,315,332,333],[113,246,247,248,249,250,251,256,257,258,259,266,315,332,333],[113,266,315,332,333],[112,150,266,315,332,333],[104,112,150,266,315,332,333],[104,105,255,266,315,332,333],[104,150,224,247,266,315,332,333],[150,266,315,332,333],[150,220,266,315,332,333],[220,221,222,223,266,315,332,333],[150,221,266,315,332,333],[252,266,315,332,333],[252,253,254,266,315,332,333],[199,266,315,332,333],[112,150,194,200,201,266,315,332,333],[150,194,266,315,332,333],[194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,266,315,332,333],[210,266,315,332,333],[112,266,315,332,333],[112,150,194,197,198,266,315,332,333],[194,266,315,332,333],[194,205,266,315,332,333],[123,266,315,332,333],[112,122,123,266,315,332,333],[112,125,130,266,315,332,333],[112,123,130,266,315,332,333],[112,130,266,315,332,333],[112,122,124,130,266,315,332,333],[112,114,121,266,315,332,333],[112,122,130,266,315,332,333],[112,123,266,315,332,333],[114,115,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,266,315,332,333],[112,121,266,315,332,333],[112,129,130,266,315,332,333],[112,123,129,130,266,315,332,333],[112,122,123,125,127,128,129,130,266,315,332,333],[112,122,123,125,126,127,128,266,315,332,333],[112,122,123,127,130,139,266,315,332,333],[112,121,122,123,125,126,127,128,129,266,315,332,333],[112,114,121,122,266,315,332,333],[233,266,315,332,333],[233,234,235,236,237,238,239,240,241,242,266,315,332,333],[231,266,315,332,333],[150,151,152,266,315,332,333],[112,150,151,152,192,193,215,217,224,225,226,227,228,229,230,266,315,332,333],[112,150,152,193,215,266,315,332,333],[112,231,266,315,332,333],[112,153,266,315,332,333],[150,151,152,153,154,193,217,218,219,225,226,231,232,243,244,266,315,332,333],[112,150,193,266,315,332,333],[112,151,154,192,266,315,332,333],[112,150,152,215,216,266,315,332,333],[106,266,315,332,333],[106,107,108,109,110,111,266,315,332,333]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf2bb69c10b7b96ae10deb9eb729b80eef4cc8bdf8185ce71699efe0c119523c","impliedFormat":99},{"version":"0ec0fc134f1eae55319405fd07e9047fbe1b95633cb4cf2b7372295f17a97c8a","impliedFormat":99},{"version":"b7ff5469bbc422ee71f99e0cf80df682705418cab9debec98a179b507279422b","impliedFormat":99},{"version":"4aaec46d87b61005f0636086f814ebe4b74ca9eb8c8717a715a1704a0fd7cc4f","impliedFormat":99},{"version":"213cc2bbed6c63f88c837b322be41aa398d8b2e5f9cbace643070bece31c624f","impliedFormat":99},{"version":"f3745a58f2bd7ed2c210e882e95b67d0707f97b9ed7b2431f68e5cccec0e20ba","impliedFormat":99},{"version":"2435893282189602e1c3c5ae3f08a0129508c4ab3db3895c436525bd238ef2b6","impliedFormat":99},{"version":"48da7dc25036f0b595b89ee6a96b8a14f2be5508025ec6728d24c57ca46cb862","impliedFormat":99},{"version":"eb7375e005b02971567356809faeeecf14becb300aa9ca483fcd6c9f8aa80d8c","impliedFormat":99},{"version":"e7c738913fab4ba4b00fcf1d1eb1ddf8989b64355da34250407340f4894a2384","impliedFormat":99},{"version":"c871756fb890365824f416826bb7bb363b06c4aa48f1a99263c4fb75ab690b2d","impliedFormat":99},{"version":"c393916098a0b9efbb4ff8ca4ec3eea4af49b9bfe29dfa95ee114e31027281b0","impliedFormat":99},{"version":"431eef47c55a88198c1cc62ea7c9c7537c3219c3fd652c554d3d5bb7a63658a1","impliedFormat":99},{"version":"5af472ea6bfd88682ec2b0861190274781bc3663cd9def4e6ea19449c4027822","impliedFormat":99},{"version":"16b311651dbd580d429938c993c41e1c610ef0b1e83c38229f3ad4d81a35cd39","impliedFormat":99},{"version":"cf2d902695f41deaf5a8f2438fd2ff0c2d56c3a3c0b9ea238881810952ee688f","impliedFormat":99},{"version":"e2144e03793b72e207844641a7ee30d138498d4f7df7f1f2dceab39725591620","impliedFormat":99},{"version":"064733c01462ae496e7b62ffce6a3cb21facb351c0375b151ed66da38de60d69","impliedFormat":99},{"version":"7740c53681ca94000f5cda0c7e6ed6e59ac8157ed36ffdf4da33ec3b5dcc7252","impliedFormat":99},{"version":"a8f20ac0e03797b0d295255ea127050369890396af453a68646b2e18f0e5dd8a","impliedFormat":99},{"version":"4f1d88b42e347f1868a0bd8db7563bc54017c5112a6edb01d5617c342995fdc7","impliedFormat":99},{"version":"f1add31820a8e538ced1fa56092ad68adb998e0e48cecbf4e69b0638391fe5c5","impliedFormat":99},{"version":"a11c0481bbb4d82204954b2d83865b29878713af71d71e72bfb28e5c2138bcaa","impliedFormat":99},{"version":"641d8f8dfc4bfe0dde269a852b6e5711a64dc19faa7c4780f06f3614fc94280a","impliedFormat":99},{"version":"46430bab437cb8c642d528c3d620d483f6b8fa573db004cdcb174ed092170cb9","impliedFormat":99},{"version":"75c4e0aa4e6dd5efaeb4471455cd730c1c21baacdc60bb6d13ae87fd40a55625","impliedFormat":99},{"version":"3d7e49aaf4991f94fe1971cbb39959281274c488d209eac04b9a719bbcb13184","impliedFormat":99},{"version":"8249670da9c5c37d7cdd03576170536f4c3c9cdcfe8cf21df0bbb07a45e5f748","impliedFormat":99},{"version":"d9b96d27372967e8f53b3f7b7cb6e875b8d128080abc4fa204a13f0d3f2b6506","impliedFormat":99},{"version":"d41b65a0fb48a14a7b52eaa45d9b65988af076e63704cba1dd1f72e961e0e2f5","impliedFormat":99},{"version":"92b40a9393f937e4bd7eed4b0161ad03296607bfdf26b0bb323cde18c51e0687","impliedFormat":99},{"version":"fdcbabde604d3123e01b2dc359fe3a0d64e6c1563b8c6a27ec0d626f528f7670","impliedFormat":99},{"version":"2ad0442c75921db414cc44cbb07b3225796096ad660da7aa26a36ec54ac370f9","impliedFormat":99},{"version":"59217222f06b2b24784160c8e2eaf0de94906912505101576a1dd744fd90cdcf","impliedFormat":99},{"version":"c60e185eaab239d465baec8e4a8c2f76fdff641431cb57d12c4e233d61be5474","impliedFormat":99},{"version":"d8b6dc94bc2761afdcff7a1e29359a383472bd8af2ce03485a2792026f15f458","impliedFormat":99},{"version":"1955442a305cd1622782ce89c898be431c66c39c36a253abb0543052f4917613","impliedFormat":99},{"version":"2251d1a89b3d8aac866bc79839c28681886d289d117404276ecf1d4fd5f5c19c","impliedFormat":99},{"version":"2a55511100028e4af650f52bdd7826fb187b9eee380b7ce9249a69f0713503fa","impliedFormat":99},{"version":"8bdf3edd4e55c0167be8af39a89763628fba6d8670777f720957f080c2ce9a50","impliedFormat":99},{"version":"992442834491efb053df22fb8148f8fd1303c198c97f5b50ebf1dd0f63ae5e8b","impliedFormat":99},{"version":"092274870bfdbb373ea502c23b8205d30e622fd10a7e5370d752a6d8de761110","impliedFormat":99},{"version":"e86a45fac2071035f07ade063ad32754edd13f45f3f3b143387ec01b8eb8aec9","impliedFormat":99},{"version":"9d6fcf45c88c41f81ac9a39df453089cad491812291c260f19d85df9fd6ad130","impliedFormat":99},{"version":"819ff6185962272453fe11af8d9f3da27f5d3761b21e196272db43ff54e4caa4","impliedFormat":99},{"version":"eabd2ac406cae917ac8e00029972e27b29329e153c4146b3779f4863bd980298","impliedFormat":99},{"version":"fe27faad99a5cadbc311b6249c496142979d89593f36044999b4f74aa19af129","impliedFormat":99},"a9dc2e59fb40b94411bd995a0013c15385b99599a18b7141cf3eafd80c7f0f96","4015dc819b09b93f989d4df8f1f0f36cb99cb2aad8102ab8b4b27fb6020beb5f","ed06a7b359e2125c375f6bada6631fd038473dd624309b8a43a824693a6f6c89","46fa0b276ad58dc963c574f72bb9456b881f3d61bc0fe6827c24f3f02baa6038","1f0260dbafda11af88b11f1b6d662ee45517d44c8cc9a7248bd61d2d8ab1f880","502657b9a54e290098ba4f955efa476b91648b24d5310b8c6e7aa0d4cf8945ae","90755de39a18e2894ad3cced6cdf4cb670e09868b01a6f6465af558d865bf848",{"version":"19e499e6b14edd0ac611fcee8f88d991dcde1e2d7bde1fd411b69fb18277ae77","signature":"d95e098abf57cee73e2707e5f6ce4c318781ebb76d417745d8fa2e40c76151d5"},"b8e3c1f3a85e05bcbc56fa28558cffc68ac40e4158afdc2d702ea825ce21d14d","c196961c4aa13e3bf28a7e56ac7fa0b0cbfc668eca4496292d629dd18f43296b",{"version":"bce89d3ef847715b91ffd525a157c779be8fafebe823671815f7ce96f27afcda","impliedFormat":99},{"version":"c67f9d85070618f586d632cf184b986eb604f426b90aa68ecdad1ac68ca3151c","impliedFormat":99},{"version":"c656cc6ded557aff87a6c823142852e3548c6a14f84bb48ee35c3e57b6ebc03b","impliedFormat":99},{"version":"0e34130243c29d8d826f868c4e00ff586b349627cb241b3d89f0459a6cdeff4d","impliedFormat":99},{"version":"d555c6cb465cc5cf8127adbbc496720d5200c9dfafa777bbf9dfdea74ebfe3a3","impliedFormat":99},{"version":"27a6936a863edf777150af3ebc65939fa34f51d68385f8a7f198d8ea53685a4d","impliedFormat":99},"17ee722c53770caad5479081a3db9f0df8135a8f061ea9ce57a507ca0c424cce","78bde316dcb094df77d06b893e0b965d318ac5708d09e7cf6206931263be32e6","d081374b0bf74e2748138e8b0a56458e12e2ee7bd07fb239b92c97a33bba8d70","b85f83aa4b7fb1abc375a73cb706295a146b9f22cf9fa5ec89105fcff6ea1495","fd0cd0a179e95f7d4d5f7370209f6b413006242a045137d33ca230ae015ba760","fa716666e5bedc99e38d37def5182924b9dd9e6298c2751f8cebe0fc631ef697","48280d2635c39dd226b7e5bb71d0519f355b60d4d92e9f6b5b4a427aa28412f8","8bdcd8a58fead736e81808193884907482c8d354f13a0516e9b236a07622c727","8ebfa15cb2e79b885a21ae5f92507b5b9dd9b01041143554903c163f86611849","4233c4d8ac9cb79b3b71e4923eb486f08f5f2c6508fc177192081a402bee38b3","dfa88df7638cc24634255691d0a3fb72a4910b73211da89fab8f2362730cb3b2","75ea946ee4d31489f494b0def56b2db669c3aac052713387d6edc51dc2ca86db","26ce9aa6f798212e39770c45142239f3a54fa63697ba90bae90c6d7ac7da825a","eceda86937454d399a4e4cd4a3e25835a4ac80ab930f399b20f53d8f1c772457","8b12bcaa49f76ee1ce7f77943a297078dba53abedd344da6d370012eab482c07","ebfed381c5296dbb1ebae8265ca08dbce33929fa829f6ac11f2f591beb1f4485","ae557ba7a3d28e8909ac395365eb5f8ff63bc28eb2eaace61650ed51f1bc1808","95784f449b26dbdf4aadd2f99a5c2f6c419d80f993ececa6c0c3e0159b452aa5","89c0f7c64772fcb38eda1e15b26da3e53e4101c968a0eeb14954f154aee4dac1","6e7e44d7615d2899c2dd6be4e15bbb2cd0b7f4afec2379c08db14b9eac5c9b43","a1f5b4a129cd4b8f013533f200baf74615d690c41f1ef2147bd40ef6110c4a1b","d1b901b618ec72bff0fcb657edf03d83e2bcbb2687a9cddadea48a24ab23faf2","9a02cb3cccc3eeb3fea9327c47dbda2076e21f3da7b2eb659871dc91b8572f42","1778dfd35a7d5885896c436792662c8d602ea8cf03aeed97b0381b6e82c4e980","f730ff4577c8d45cb4a587d078ee5b692613c3de57f26a27a4be74c183adc226","60bd456f1b63861f880c386ddf1b3916098bbafbf4b5a46a5e5ebc4fcb9434c4","f2c0b5b634eed4010d9396710281a7fdc7019fe47507e8bcb706a58af985548a","baeb8f9be968778478ffa26099ec4211dd28c6dea1633fd8fd1560c34fdd0269","5df76ca2d799039334a825b621129061b89022808e0943397e045bc6feec894c","7292b43f431a49b71dfedceef3ec4825ba53451c05f00fc2baa857bdc4ff1ad0","9f9dba63cdb1803a6173ab5c5d53818c260e64b884424d5c5f03844b8adc2a19","9c1e6ed5208d1312437b7bc9e8ef795795b78c2cba2a34335f1f57eb6d400052","cc16bdece8ee5fc5c031a45a4d938477e7aca238e7579c8c32e51626881229e0",{"version":"3a22045e94ed099cf2d521ae47f8b0b2e50033fa0b24838c42a6a312fc7755f2","impliedFormat":1},{"version":"1723af1fd61438370ef2f9b162c21925d7d8263f02ea3786701207a2697bc570","impliedFormat":1},{"version":"a4aaa532e4e0c4387be0990919222f32a34cea09aed545e9751512868d9461de","impliedFormat":1},{"version":"92b81364ea40c145da7f730f660350935e49334a18faafbe7f86105763e6e486","impliedFormat":1},{"version":"672c3ab666d58c2e16ade2836c496278da896764c8f91143ad5c51fab2b9367b","impliedFormat":1},{"version":"d2617b18ac1e533346f2a3a054a2c6f31f86f909242e93c7a6b98c635e0f8792","impliedFormat":1},{"version":"bb892dcd5d3c7b31e1c251bb43384e0eac9604b32b54f27f682b78ba0fa6d257","impliedFormat":1},{"version":"9e49b5ba3cfc1de785d7c3941ea1bccb32e61b880af78748013a9bce376d9817","impliedFormat":1},{"version":"e653259e64adbe8acf9c33dc1a525ac1d1a1dd0f82580f73d81543f948485a86","impliedFormat":1},{"version":"93dc3a02e2e5b4359008b814fce081b4d53021b1f5140b79a2207a48eba472b5","impliedFormat":1},{"version":"1c328efb6045370a8303b4d2bf3fb67e226a07e9391f9044e40f791faa545c82","impliedFormat":1},{"version":"d39d6969c1d5f0abda60b19ad74db9894d1b1314923c398c1697852eef1762b1","impliedFormat":1},{"version":"9dc0ec853f1e803bdf9d2dcc69509f8dae488100664915ab1dd9ffbb732291ba","impliedFormat":1},{"version":"1559b4a59a19b452d5bc46c1f584d99f2775f6d016af0177a5a2150d4955676d","impliedFormat":1},{"version":"245b103ea8c3b19f25cc0b9bb8acc1330b55f0f04338b2d83e236869a6d99e71","impliedFormat":1},{"version":"a2553ad8aacc78a09e9d91d91f9bf21bb4ea98c45f44475c45ea9cc8a5a8b0d9","impliedFormat":1},{"version":"0bb0ba4030a0b3ada4eadf14ca3450653ec4a0e78ffa26ab742ac1548032b200","impliedFormat":1},{"version":"a0af6c85115a5c705af405fd8d3018cc681a9d86e2758395dd8fafd264e93e77","impliedFormat":1},{"version":"dd927c1c69750111f7b88dea99168831251b699486ed211b8f48d3d7790bdd10","impliedFormat":1},{"version":"d6e0a302299f70d42fb6068e4f9f98f95bf63e0d17f96ae0bc54c0fb61b00b92","impliedFormat":1},{"version":"98a7e602735736dee031310c9b49c16988ac523895c628eb358ab9d0c98c47ae","impliedFormat":1},{"version":"d77b19a94143dd761991f7f7f25f8dab258d3eb3e19b85048ba3d41f83d5de41","impliedFormat":1},{"version":"507057a5b3bd68b3056cfb09e9de27601a99e339907cf0fd0b03d5dd840b4c4a","impliedFormat":1},{"version":"3f246c5f9ac101ccef1e1aad6719b6dd1449461b071dea904856780cac690c94","impliedFormat":1},{"version":"24ca5a7d5faa57d04f86e622e614931bf6aeb2d50dfbb8bab1ff319630347407","impliedFormat":1},{"version":"dcca19a81187a21482680d12d92840af02cea5a06e3620d86c3e633242424c42","impliedFormat":1},{"version":"d5144eb14cb4d9292b841699fb53e9a6641b64d926170043412f1e5293bba369","impliedFormat":1},{"version":"94875290d1af98ca3ac9f89993a19b4163b47abccb27bbe728e78eb179765ac1","impliedFormat":1},{"version":"6af618a43f82b685b70b919a00aea9ff6bc2d574c016278b2413631f8ab7ce76","impliedFormat":1},{"version":"68baace0098c248dbee92001664c7eff0dc40182d61a255ba053ea9d68c749fb","impliedFormat":1},{"version":"b58d89b47b1fa76ce57bf1179e53f9d6f5118a301943cb4dea5987d72d529ce9","impliedFormat":1},{"version":"a0982cf55aad440267fc9432f3a12e3a67c497a34cac47f38a3e5a04156b46c1","impliedFormat":1},{"version":"8549892f753971e3ec5f8bad0bd9f74d1a8521f573fd006cfd00d3c27490f444","impliedFormat":1},{"version":"1d5454555a8ee7f7660b48a9d7cf3270d260d3bc61350d79b7c5e2700b7aa20a","impliedFormat":1},{"version":"68cc279fd82ace672f68b6996223f2d6125d81ca544510a52f59f911051d4068","impliedFormat":1},{"version":"7cdbd04d7f3657409c1cab924650dfe5ca74735d45e4f746cab2c571074f580f","impliedFormat":1},{"version":"b992766e7aa0e027fb625316373fb398cdedfb44893ddb10712573cfc86c589e","affectsGlobalScope":true,"impliedFormat":1},{"version":"b75d56703daaffcb31a7cdebf190856e07739a9481f01c2919f95bde99be9424","impliedFormat":99},"9f58817995e79572cc16ff9e7fde85e44e202f252b56227c24a141e51c26e597","799b9bc7d88f13ae6e51415c1e663e685fcbe77164eb2be78b08893d9b299bf0","9b6e1a724771bd1fb7ea1a2551ed5b13b92d87aeaba331d520716e725d7b63a5","66c6888608b17316a09ede6335f5568748a24af4090990c9cf8050ac8b318c34","e89c865ca4785f4a56fbfe95b04df807ebf6d320b174b484f3a08d54321447a7","403e6bc805dc2cdcbb3f6bb38cf78bd70d4202ebe405178fd8dc917bf84dd124","fcf3b586398c415038922a229576ddc3c9ac81f17113f4564f860b90222fc463","e6a79d0cfe8e75f37a20cb36e05795fa8116c4510a4b3cfc3fa89a427f356b3c","6aee942b8a0c7c10cd2315315b0b88b85daf969ed761cda7d1c045badba8b058","2a113e6e70cb236e8f367e088f0470fe9155b04ea16ce315606095ea7f9a06c1","b505287deeb59270e8d172f30f625adf6e8394c16e68f1caeff1d933fb6a239a","f9bdf17d1b11f604f4c3db96f3ab31d1a5d0e81f95765ba3eaf60069b6892f49","d84043e3d658e5b2fd1351c18cefeeed153fa37c5828c234c2c343e89511ce34","8bfb061a2c3561bd22bdf252a4a32e504cd1cf1af601e377d51fc006104e927d","28bc1aaad7be71d47e0e278e97f43ab7b736e4f042a3c086a239543e7d0f9b24","71441b9d36fd4591e4606665559a533274dc04ebabfa841a45362ef273f2e8ce","2b7e1ab6757e4fed93a787ff649719bc13aaf8607e12c0b3c8c3e8c190d65680","6257c11ddda8274e26d5e46fb41272edddd4a8d6a9686ddd79c86b0f5484ba8f","5f442f7b5b287323065b77d9e991937bc10f974bfd65a0f36d2ccc10bb490a6c","e2467441777ecea9f274b465d652ac217fb76872b2403a2fd049929a57a9e15d","54f06de0591cca133a51d2004cb4d3f6370315e1e1dd6618280524fe91f8a01c","9dae069538bed39f3ffbe84975f1deac55843f229314982ee15a4b8ed4d9a98d","d9579c3abb9e4ed7d64b4619f2732191a1917989e63120156adcbfaff100b001","c706068354cf2da62677ea9a9b191599368b77850771467dc854564b530d903b","26b9ae11d61b9f4262a1c9563898e5e774b6253d3edf0327901dd34fa89c7eec","ef15709773ea3e4ba95761f6a08e8ca3b9e80b7f1fc37ba3971d3f278407bc1d","ae41926f8dbd0dace08d34feaaaf2dcb370688d9f0cdef84933650c5bd489104","13540c6a09d86fd62349ceba561390cd1468481ebb46659a401c90bc9010a613","c883cc76a206788d1309f90a456993b6c60a576953e981b1a36bb18dd100632c","b82e615005b6b77992bf46f3e2be1a675b268054c494c34df5667d935d58284a","300ab95a9ea3196d03a723316337e91f354b8249973bf3bf3de10422252536b9","29836755cbd12110cd4229539ad820312f3b0357963339dc08f08c3cad7e620d","b9fdaa6cffc1cc4b5145bb659fe378f1c2b13f936ba4219bd9466acd521db266","5e24b1bc166720ed0be90a7d90c0e1e10b996cfb64d6b84888652dcf69ae460f","d2c56037e83468033b4c4094d5ad7868562625ca54f17494cc80203ab495e7e4","4de33a90c12732f0ad8cef19b77b61e9e49f32f89f0a6b670a93e6ca1dd5c615","9a823811473d8829a10bebc314567ef0b5ead3e34e46221dbb58703001091928","02dbcc520e3afe0c9228bdf7be914f940ba4ec96f2f4221f8a9d87b84b27de56","d360e8dce7e7e2305641cd3d9202404847c823a72cc5fd31d997962b1abe618f","f73a22858b70129834523738e7e1d3eb55e5b3007f651d537313d46fbcdf7f09","7f153e7574ea8aadf4b4f5672df5df7dea8fadf3747b9fbc69ff829ce9747917","11bc0628f98c712eb9037eb70390b5f3e28f951547b093c24fa9e86779c9af6b","05f09c2d6fc0a2e0b0e82e88e5868e606eb3d11334472106edcfaf78ecf5894e","4eaad172a7fcbc71545df6721f82525028d1ae364f7ce92f9ebc0ca2a088c3ef","ff0daa8e1a60a5cd9aa907dabcbb532c1e4dffb17bf04bf1a7c9172a79ff2361","3ece9ee6e1ae792516b4cd4e098a223160f3da08a33c6b5e48d17d9077ae2da7","c6c02247a327c93acf722977b526ad9c56f2b62a938599a5be23de1da5b4dc3d","0d372ea5e36a18afa55908e17e1dc1a3b170d202feea9290cd7ee1e689bbec49","72702cec5e57db42c0b7e7378dad41179d6cdab25185a717e6db735aa8d7aaba","fd12099d8ceb0fd041363963bf893a16b0ebf041f835bacd5ecb39066494adc9","c10823ca667b3fcb2dde1929091c5081e60748c58f71ce308c9543203026352e","3afe1fefb03647d43aa2ba4645beaa827cd594487eb0d18452997dc8fc9c9c6c","3b7acfd5165dcf0ec933d535f6a2887fe8bb6e5ab443a482d8d33f545c097f42",{"version":"d708c5ab3dbd7c3cb9223d15f2ea02304e9713fc30fc2ebf22923c4753041860","signature":"57ad0788c10c8937f95db1744200ae6c34411a114f8356fc4d96cd59958c277b"},{"version":"a097a61bb7e4d38648832f73757976c0f4f81943fba8c8955beea18e3f505ebf","signature":"448ed285499ed074416e76063ee70458fee75e9205ae992998bf74f4626eb088"},{"version":"58f682a08f337a7c505f35f6884e057eacc8f56c371bc56b4e08d5c84a070f33","signature":"c603c365f33d743091d10674ae1b6e43b80d3b20057a8bb0c171fd37bb711016"},{"version":"36200962dc8d928d1bd6dc1cb367375e20dd7267ab1821351cc422a9ff66cb41","signature":"5e6c2dc3650e7af363dd9e652c615ea82ea78bc996a9d857e208124a9720d591"},{"version":"1c3df6bef4d40479f88b392928ea1f69fc1d81c3723fb7c346e220c7c8098cbf","signature":"e852011913b88c297b21593d441c4c15968d7ea1413760c20b1aa57ce69ee74b"},{"version":"96fa85129030dafd6d502749642e3b3cc02bf1b96457490218d477f722908995","signature":"a63207d6da4d4e7460710891ec88e5f691d2607b7d8dedbcb8fc603198c1763a"},"0f7bae0a03dc27c5a390d9db1a72b89e6b310e16f6aeebc819fa0316d36445c4","46b7bec5f7e8191e47c759420e067a31b0c6bba602d1e53fa5896fa93ec2a357","f63d8ce6bbc1a3f80fa7dda80b46bfcf436804b5410adea00ab02d49243c4715","dda191ab72d5c566f373ee539e5e5da173c0d340d664dca13c4d80018af12b07",{"version":"f6b506cafa9a576876b4b288e2446da124b88809ec5b85b69e69384cbadf9c65","signature":"1cc55b9ef4424ef9991b6dbd2e62209b7fe79dd2b8226952511f398ea345d65c"},{"version":"f36ee3c030e1bbf1b3aaf4be58afd34fd0c97ae26b147b7cd4efc00578b65e36","signature":"b7449cfeb7d99430f6bc42aed57dac83daba7fa58a0329b06c6130fcd62df0b8"},{"version":"144c34aeb4cc22c528b9b0244424121d18552cc031583be705aa98e7ab822ce5","signature":"e54e0b244d72e0409b8cd34ad5c3e8a46cd7f31bb46775d5723331b25de286d2"},{"version":"9906e70d78d4470a4c7231141e458f185b4d9979a21ba31aad18ac9a255eeb40","signature":"56dee5d0f6d8ed4ab6a504a7c7b9b7fed71bb10ad629007199edf87a5db56be8"},{"version":"9b94945733c75385f359302cb747eb6c92286554efbe8b3e43043e1af773336a","signature":"185f77168f1d57a4501756de9b7bd403b29ca874d435edea4af80acda6d9b2c2"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"58647d85d0f722a1ce9de50955df60a7489f0593bf1a7015521efe901c06d770","impliedFormat":1},{"version":"73b5fa37db36eeac90c4d752e39586f1b57187400c4f5280fd05f16437287a45","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"80523c00b8544a2000ae0143e4a90a00b47f99823eb7926c1e03c494216fc363","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"746911b62b329587939560deb5c036aca48aece03147b021fa680223255d5183","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c8d3e5a18ba35629954e48c4cc8f11dc88224650067a172685c736b27a34a4dc","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2b55d426ff2b9087485e52ac4bc7cfafe1dc420fc76dad926cd46526567c501a","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1}],"root":[113,[246,251],[256,260]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":false,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[312,1],[313,1],[314,2],[266,3],[315,4],[316,5],[317,6],[261,7],[264,8],[262,7],[263,7],[318,9],[319,10],[320,11],[321,12],[322,13],[323,14],[324,14],[325,15],[326,16],[327,17],[328,18],[267,7],[265,7],[329,19],[330,20],[331,21],[365,22],[332,23],[333,7],[334,24],[335,25],[336,26],[337,27],[338,28],[339,29],[340,30],[341,31],[342,32],[343,32],[344,33],[345,7],[346,34],[347,35],[349,36],[348,37],[350,38],[351,39],[352,40],[353,41],[354,42],[355,43],[356,44],[357,45],[358,46],[359,47],[360,48],[361,49],[362,50],[268,7],[269,7],[270,7],[309,51],[310,7],[311,7],[363,52],[364,53],[271,7],[119,7],[120,7],[117,54],[121,55],[118,54],[116,7],[62,7],[61,7],[59,7],[60,7],[57,7],[58,7],[10,7],[12,7],[11,7],[2,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7],[19,7],[20,7],[3,7],[21,7],[22,7],[4,7],[23,7],[27,7],[24,7],[25,7],[26,7],[28,7],[29,7],[30,7],[5,7],[31,7],[32,7],[33,7],[34,7],[6,7],[38,7],[35,7],[36,7],[37,7],[39,7],[7,7],[40,7],[45,7],[46,7],[41,7],[42,7],[43,7],[44,7],[8,7],[50,7],[47,7],[48,7],[49,7],[51,7],[9,7],[52,7],[53,7],[54,7],[56,7],[55,7],[1,7],[287,56],[297,57],[286,56],[307,58],[278,59],[277,60],[306,61],[300,62],[305,63],[280,64],[294,65],[279,66],[303,67],[275,68],[274,61],[304,69],[276,70],[281,71],[282,7],[285,71],[272,7],[308,72],[298,73],[289,74],[290,75],[292,76],[288,77],[291,78],[301,61],[283,79],[284,80],[293,81],[273,82],[296,73],[295,71],[299,7],[302,83],[175,84],[168,85],[169,86],[170,86],[173,87],[174,86],[160,86],[161,86],[171,86],[172,86],[176,88],[179,89],[177,88],[162,88],[178,88],[180,86],[164,90],[181,91],[183,86],[165,86],[191,92],[155,86],[182,86],[184,93],[185,94],[167,86],[159,95],[157,96],[158,91],[186,97],[163,7],[156,98],[187,86],[189,86],[166,99],[188,100],[190,86],[192,101],[105,102],[104,103],[103,104],[72,105],[100,106],[94,106],[95,106],[96,107],[97,106],[98,106],[99,106],[101,106],[102,108],[73,109],[76,110],[92,109],[70,111],[77,112],[79,112],[78,113],[84,114],[82,115],[83,116],[81,117],[80,118],[86,119],[65,120],[85,121],[87,122],[68,7],[71,123],[88,124],[89,125],[90,126],[91,127],[69,128],[74,129],[67,130],[75,131],[64,132],[63,133],[93,134],[66,135],[113,136],[246,137],[248,138],[250,139],[251,7],[256,140],[260,141],[258,142],[249,143],[247,144],[257,145],[259,146],[223,147],[221,148],[224,149],[222,147],[220,150],[253,151],[255,152],[252,7],[254,151],[209,7],[204,7],[214,153],[201,147],[200,143],[202,154],[203,155],[215,156],[211,157],[198,158],[196,7],[210,143],[194,158],[199,159],[208,147],[197,143],[195,155],[207,160],[206,161],[205,160],[213,158],[212,143],[141,162],[135,163],[138,164],[125,158],[115,7],[149,165],[147,166],[124,158],[131,167],[122,168],[145,169],[144,158],[126,158],[146,170],[150,171],[127,172],[143,173],[142,174],[132,175],[137,170],[129,176],[140,177],[133,170],[130,178],[123,179],[136,166],[139,158],[114,158],[134,7],[148,165],[128,158],[237,180],[239,180],[235,180],[241,180],[236,180],[242,180],[240,180],[238,180],[243,181],[234,180],[233,182],[153,147],[218,158],[226,183],[231,184],[216,185],[227,158],[228,158],[229,143],[232,143],[225,186],[154,187],[245,188],[219,189],[230,158],[193,190],[151,7],[217,191],[244,7],[152,158],[107,7],[109,7],[111,192],[110,7],[112,193],[108,7],[106,7]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.3"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type * as Y from "yjs";
|
|
2
|
+
import { Awareness } from "y-protocols/awareness";
|
|
3
|
+
import type { Vec2 } from "@oh-just-another/types";
|
|
4
|
+
/**
|
|
5
|
+
* Identity + presence payload broadcast to every peer in the room.
|
|
6
|
+
* Hosts read the live peer list via `getPeers()` / `onPeers()` and render
|
|
7
|
+
* cursors / selection halos / "Alice is editing" badges from it.
|
|
8
|
+
*
|
|
9
|
+
* Element is open — hosts can stash whatever extra fields they want via
|
|
10
|
+
* `updateLocal({ avatarUrl: ..., currentTool: ... })`. The kernel only
|
|
11
|
+
* reads the typed fields below.
|
|
12
|
+
*/
|
|
13
|
+
export interface Peer {
|
|
14
|
+
readonly clientId: number;
|
|
15
|
+
readonly user: PeerUser;
|
|
16
|
+
readonly cursor?: Vec2;
|
|
17
|
+
readonly selection?: readonly string[];
|
|
18
|
+
/** Free-form host extensions. */
|
|
19
|
+
readonly extra?: Readonly<Record<string, unknown>>;
|
|
20
|
+
}
|
|
21
|
+
export interface PeerUser {
|
|
22
|
+
readonly id: string;
|
|
23
|
+
readonly name: string;
|
|
24
|
+
/** CSS colour. Used for cursors / selection halos. */
|
|
25
|
+
readonly color: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Thin wrapper around `y-protocols/awareness`. One per `Y.Doc` (you can
|
|
29
|
+
* pass the same instance to multiple transports).
|
|
30
|
+
*
|
|
31
|
+
* The wrapper:
|
|
32
|
+
* - parses raw awareness states into typed `Peer[]`,
|
|
33
|
+
* - normalises self vs others (`getOthers()` filters out the local id),
|
|
34
|
+
* - exposes a subscribe-style listener so React hooks can dedupe re-renders.
|
|
35
|
+
*/
|
|
36
|
+
export declare class CollabAwareness {
|
|
37
|
+
readonly awareness: Awareness;
|
|
38
|
+
private readonly listeners;
|
|
39
|
+
constructor(doc: Y.Doc);
|
|
40
|
+
/** Local peer's `clientId`. Stable for the lifetime of the awareness. */
|
|
41
|
+
get clientId(): number;
|
|
42
|
+
/** Write (or update) the local peer's payload. */
|
|
43
|
+
updateLocal(payload: {
|
|
44
|
+
user?: PeerUser;
|
|
45
|
+
cursor?: Vec2 | null;
|
|
46
|
+
selection?: readonly string[] | null;
|
|
47
|
+
extra?: Readonly<Record<string, unknown>>;
|
|
48
|
+
}): void;
|
|
49
|
+
/** Every connected peer, including the local one. */
|
|
50
|
+
getPeers(): readonly Peer[];
|
|
51
|
+
/** Every connected peer **except** the local one. */
|
|
52
|
+
getOthers(): readonly Peer[];
|
|
53
|
+
/** Subscribe to peer-list changes. Returns an unsubscribe function. */
|
|
54
|
+
onPeers(listener: (peers: readonly Peer[]) => void): () => void;
|
|
55
|
+
/** Release resources. The underlying `Awareness` is destroyed. */
|
|
56
|
+
destroy(): void;
|
|
57
|
+
private readonly onAwarenessChange;
|
|
58
|
+
private toPeer;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=awareness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awareness.d.ts","sourceRoot":"","sources":["../src/awareness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,iCAAiC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACpD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+C;gBAE7D,GAAG,EAAE,CAAC,CAAC,GAAG;IAKtB,yEAAyE;IACzE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,kDAAkD;IAClD,WAAW,CAAC,OAAO,EAAE;QACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QACrB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;QACrC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAC3C,GAAG,IAAI;IAgBR,qDAAqD;IACrD,QAAQ,IAAI,SAAS,IAAI,EAAE;IAS3B,qDAAqD;IACrD,SAAS,IAAI,SAAS,IAAI,EAAE;IAI5B,uEAAuE;IACvE,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI;IAK/D,kEAAkE;IAClE,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAGhC;IAEF,OAAO,CAAC,MAAM;CAYf"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Awareness } from "y-protocols/awareness";
|
|
2
|
+
/**
|
|
3
|
+
* Thin wrapper around `y-protocols/awareness`. One per `Y.Doc` (you can
|
|
4
|
+
* pass the same instance to multiple transports).
|
|
5
|
+
*
|
|
6
|
+
* The wrapper:
|
|
7
|
+
* - parses raw awareness states into typed `Peer[]`,
|
|
8
|
+
* - normalises self vs others (`getOthers()` filters out the local id),
|
|
9
|
+
* - exposes a subscribe-style listener so React hooks can dedupe re-renders.
|
|
10
|
+
*/
|
|
11
|
+
export class CollabAwareness {
|
|
12
|
+
awareness;
|
|
13
|
+
listeners = new Set();
|
|
14
|
+
constructor(doc) {
|
|
15
|
+
this.awareness = new Awareness(doc);
|
|
16
|
+
this.awareness.on("change", this.onAwarenessChange);
|
|
17
|
+
}
|
|
18
|
+
/** Local peer's `clientId`. Stable for the lifetime of the awareness. */
|
|
19
|
+
get clientId() {
|
|
20
|
+
return this.awareness.clientID;
|
|
21
|
+
}
|
|
22
|
+
/** Write (or update) the local peer's payload. */
|
|
23
|
+
updateLocal(payload) {
|
|
24
|
+
const current = this.awareness.getLocalState();
|
|
25
|
+
const next = { ...(current ?? {}) };
|
|
26
|
+
if (payload.user !== undefined)
|
|
27
|
+
next.user = payload.user;
|
|
28
|
+
if ("cursor" in payload) {
|
|
29
|
+
if (payload.cursor === null)
|
|
30
|
+
delete next.cursor;
|
|
31
|
+
else
|
|
32
|
+
next.cursor = payload.cursor;
|
|
33
|
+
}
|
|
34
|
+
if ("selection" in payload) {
|
|
35
|
+
if (payload.selection === null)
|
|
36
|
+
delete next.selection;
|
|
37
|
+
else
|
|
38
|
+
next.selection = payload.selection;
|
|
39
|
+
}
|
|
40
|
+
if (payload.extra !== undefined)
|
|
41
|
+
next.extra = payload.extra;
|
|
42
|
+
this.awareness.setLocalState(next);
|
|
43
|
+
}
|
|
44
|
+
/** Every connected peer, including the local one. */
|
|
45
|
+
getPeers() {
|
|
46
|
+
const out = [];
|
|
47
|
+
for (const [clientId, state] of this.awareness.getStates()) {
|
|
48
|
+
const peer = this.toPeer(clientId, state);
|
|
49
|
+
if (peer)
|
|
50
|
+
out.push(peer);
|
|
51
|
+
}
|
|
52
|
+
return out;
|
|
53
|
+
}
|
|
54
|
+
/** Every connected peer **except** the local one. */
|
|
55
|
+
getOthers() {
|
|
56
|
+
return this.getPeers().filter((p) => p.clientId !== this.clientId);
|
|
57
|
+
}
|
|
58
|
+
/** Subscribe to peer-list changes. Returns an unsubscribe function. */
|
|
59
|
+
onPeers(listener) {
|
|
60
|
+
this.listeners.add(listener);
|
|
61
|
+
return () => this.listeners.delete(listener);
|
|
62
|
+
}
|
|
63
|
+
/** Release resources. The underlying `Awareness` is destroyed. */
|
|
64
|
+
destroy() {
|
|
65
|
+
this.awareness.off("change", this.onAwarenessChange);
|
|
66
|
+
this.awareness.destroy();
|
|
67
|
+
this.listeners.clear();
|
|
68
|
+
}
|
|
69
|
+
onAwarenessChange = () => {
|
|
70
|
+
const peers = this.getPeers();
|
|
71
|
+
for (const l of this.listeners)
|
|
72
|
+
l(peers);
|
|
73
|
+
};
|
|
74
|
+
toPeer(clientId, state) {
|
|
75
|
+
if (!state || typeof state !== "object")
|
|
76
|
+
return null;
|
|
77
|
+
const s = state;
|
|
78
|
+
if (!s.user?.id || !s.user.name || !s.user.color)
|
|
79
|
+
return null;
|
|
80
|
+
return {
|
|
81
|
+
clientId,
|
|
82
|
+
user: s.user,
|
|
83
|
+
...(s.cursor !== undefined ? { cursor: s.cursor } : {}),
|
|
84
|
+
...(s.selection !== undefined ? { selection: s.selection } : {}),
|
|
85
|
+
...(s.extra !== undefined ? { extra: s.extra } : {}),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=awareness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awareness.js","sourceRoot":"","sources":["../src/awareness.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AA4BlD;;;;;;;;GAQG;AACH,MAAM,OAAO,eAAe;IACjB,SAAS,CAAY;IACb,SAAS,GAAG,IAAI,GAAG,EAAoC,CAAC;IAEzE,YAAY,GAAU;QACpB,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,CAAC;IAED,yEAAyE;IACzE,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,kDAAkD;IAClD,WAAW,CAAC,OAKX;QACC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAA0B,CAAC;QACvE,MAAM,IAAI,GAA4B,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzD,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC;;gBAC3C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACpC,CAAC;QACD,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC;;gBACjD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,qDAAqD;IACrD,QAAQ;QACN,MAAM,GAAG,GAAW,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,IAAI;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,qDAAqD;IACrD,SAAS;QACP,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;IAED,uEAAuE;IACvE,OAAO,CAAC,QAA0C;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,kEAAkE;IAClE,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAEgB,iBAAiB,GAAG,GAAS,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEM,MAAM,CAAC,QAAgB,EAAE,KAAc;QAC7C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACrD,MAAM,CAAC,GAAG,KAAsB,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAC9D,OAAO;YACL,QAAQ;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Editor } from "@oh-just-another/state";
|
|
2
|
+
import type { CollabAwareness, PeerUser } from "./awareness.js";
|
|
3
|
+
export interface BindAwarenessOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Local user identity broadcast to peers (name + colour shown on
|
|
6
|
+
* their screen). Stable for the lifetime of the binding.
|
|
7
|
+
*/
|
|
8
|
+
readonly user: PeerUser;
|
|
9
|
+
/**
|
|
10
|
+
* Throttle in ms for the local cursor broadcast. Defaults to
|
|
11
|
+
* `PEER_CURSOR_BROADCAST_INTERVAL_MS` (~30 fps). Lower → less
|
|
12
|
+
* network chatter; higher than 16 → the user sees their own
|
|
13
|
+
* pointer lag behind their peer's view.
|
|
14
|
+
*/
|
|
15
|
+
readonly cursorThrottleMs?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Wire an `Editor` to a `CollabAwareness`:
|
|
19
|
+
*
|
|
20
|
+
* - publishes the local user payload + cursor + selection into
|
|
21
|
+
* awareness, throttled so a fast drag does not flood the room;
|
|
22
|
+
* - pushes the room's other-peer cursors / selections back into the
|
|
23
|
+
* editor so the overlay paints them.
|
|
24
|
+
*
|
|
25
|
+
* Returns an unbind function. Clearing the editor selection or cursor
|
|
26
|
+
* leaves awareness in a sane state.
|
|
27
|
+
*
|
|
28
|
+
* The editor exposes `onCursorMove` / `setPeerCursors` /
|
|
29
|
+
* `setPeerSelections` as the extension points; `@state` knows nothing
|
|
30
|
+
* about Yjs / awareness.
|
|
31
|
+
*/
|
|
32
|
+
export declare const bindAwareness: (editor: Editor, awareness: CollabAwareness, options: BindAwarenessOptions) => (() => void);
|
|
33
|
+
//# sourceMappingURL=bind-awareness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bind-awareness.d.ts","sourceRoot":"","sources":["../src/bind-awareness.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,MAAM,EAGZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,eAAe,EAAQ,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,EACd,WAAW,eAAe,EAC1B,SAAS,oBAAoB,KAC5B,CAAC,MAAM,IAAI,CA+Fb,CAAC"}
|