@oh-just-another/scene 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.
Files changed (129) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/LICENSE +21 -0
  3. package/README.md +72 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/a11y.d.ts +23 -0
  6. package/dist/a11y.d.ts.map +1 -0
  7. package/dist/a11y.js +37 -0
  8. package/dist/a11y.js.map +1 -0
  9. package/dist/anchors.d.ts +120 -0
  10. package/dist/anchors.d.ts.map +1 -0
  11. package/dist/anchors.js +322 -0
  12. package/dist/anchors.js.map +1 -0
  13. package/dist/annotation-geometry.d.ts +11 -0
  14. package/dist/annotation-geometry.d.ts.map +1 -0
  15. package/dist/annotation-geometry.js +19 -0
  16. package/dist/annotation-geometry.js.map +1 -0
  17. package/dist/annotation.d.ts +32 -0
  18. package/dist/annotation.d.ts.map +1 -0
  19. package/dist/annotation.js +2 -0
  20. package/dist/annotation.js.map +1 -0
  21. package/dist/constants.d.ts +186 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js +186 -0
  24. package/dist/constants.js.map +1 -0
  25. package/dist/container.d.ts +112 -0
  26. package/dist/container.d.ts.map +1 -0
  27. package/dist/container.js +227 -0
  28. package/dist/container.js.map +1 -0
  29. package/dist/diff.d.ts +22 -0
  30. package/dist/diff.d.ts.map +1 -0
  31. package/dist/diff.js +18 -0
  32. package/dist/diff.js.map +1 -0
  33. package/dist/edge-curve.d.ts +37 -0
  34. package/dist/edge-curve.d.ts.map +1 -0
  35. package/dist/edge-curve.js +72 -0
  36. package/dist/edge-curve.js.map +1 -0
  37. package/dist/edge-geometry.d.ts +96 -0
  38. package/dist/edge-geometry.d.ts.map +1 -0
  39. package/dist/edge-geometry.js +467 -0
  40. package/dist/edge-geometry.js.map +1 -0
  41. package/dist/edge.d.ts +206 -0
  42. package/dist/edge.d.ts.map +1 -0
  43. package/dist/edge.js +2 -0
  44. package/dist/edge.js.map +1 -0
  45. package/dist/elbow-link.d.ts +23 -0
  46. package/dist/elbow-link.d.ts.map +1 -0
  47. package/dist/elbow-link.js +419 -0
  48. package/dist/elbow-link.js.map +1 -0
  49. package/dist/elbow-router.d.ts +20 -0
  50. package/dist/elbow-router.d.ts.map +1 -0
  51. package/dist/elbow-router.js +218 -0
  52. package/dist/elbow-router.js.map +1 -0
  53. package/dist/file.d.ts +41 -0
  54. package/dist/file.d.ts.map +1 -0
  55. package/dist/file.js +13 -0
  56. package/dist/file.js.map +1 -0
  57. package/dist/heading.d.ts +42 -0
  58. package/dist/heading.d.ts.map +1 -0
  59. package/dist/heading.js +77 -0
  60. package/dist/heading.js.map +1 -0
  61. package/dist/index.d.ts +47 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +40 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/layer.d.ts +18 -0
  66. package/dist/layer.d.ts.map +1 -0
  67. package/dist/layer.js +2 -0
  68. package/dist/layer.js.map +1 -0
  69. package/dist/layout-registry.d.ts +35 -0
  70. package/dist/layout-registry.d.ts.map +1 -0
  71. package/dist/layout-registry.js +13 -0
  72. package/dist/layout-registry.js.map +1 -0
  73. package/dist/layout.d.ts +128 -0
  74. package/dist/layout.d.ts.map +1 -0
  75. package/dist/layout.js +453 -0
  76. package/dist/layout.js.map +1 -0
  77. package/dist/operations.d.ts +32 -0
  78. package/dist/operations.d.ts.map +1 -0
  79. package/dist/operations.js +105 -0
  80. package/dist/operations.js.map +1 -0
  81. package/dist/outline.d.ts +36 -0
  82. package/dist/outline.d.ts.map +1 -0
  83. package/dist/outline.js +129 -0
  84. package/dist/outline.js.map +1 -0
  85. package/dist/patch.d.ts +57 -0
  86. package/dist/patch.d.ts.map +1 -0
  87. package/dist/patch.js +47 -0
  88. package/dist/patch.js.map +1 -0
  89. package/dist/queries.d.ts +115 -0
  90. package/dist/queries.d.ts.map +1 -0
  91. package/dist/queries.js +403 -0
  92. package/dist/queries.js.map +1 -0
  93. package/dist/render-bounds.d.ts +36 -0
  94. package/dist/render-bounds.d.ts.map +1 -0
  95. package/dist/render-bounds.js +36 -0
  96. package/dist/render-bounds.js.map +1 -0
  97. package/dist/scene.d.ts +80 -0
  98. package/dist/scene.d.ts.map +1 -0
  99. package/dist/scene.js +129 -0
  100. package/dist/scene.js.map +1 -0
  101. package/dist/shape.d.ts +306 -0
  102. package/dist/shape.d.ts.map +1 -0
  103. package/dist/shape.js +192 -0
  104. package/dist/shape.js.map +1 -0
  105. package/dist/snap.d.ts +88 -0
  106. package/dist/snap.d.ts.map +1 -0
  107. package/dist/snap.js +128 -0
  108. package/dist/snap.js.map +1 -0
  109. package/dist/spatial.d.ts +38 -0
  110. package/dist/spatial.d.ts.map +1 -0
  111. package/dist/spatial.js +95 -0
  112. package/dist/spatial.js.map +1 -0
  113. package/dist/style.d.ts +87 -0
  114. package/dist/style.d.ts.map +1 -0
  115. package/dist/style.js +43 -0
  116. package/dist/style.js.map +1 -0
  117. package/dist/text-measure.d.ts +29 -0
  118. package/dist/text-measure.d.ts.map +1 -0
  119. package/dist/text-measure.js +8 -0
  120. package/dist/text-measure.js.map +1 -0
  121. package/dist/three-way-merge.d.ts +59 -0
  122. package/dist/three-way-merge.d.ts.map +1 -0
  123. package/dist/three-way-merge.js +108 -0
  124. package/dist/three-way-merge.js.map +1 -0
  125. package/dist/viewport.d.ts +78 -0
  126. package/dist/viewport.d.ts.map +1 -0
  127. package/dist/viewport.js +62 -0
  128. package/dist/viewport.js.map +1 -0
  129. package/package.json +54 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ # @oh-just-another/scene
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/math@0.57.0
13
+ - @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,72 @@
1
+ # @oh-just-another/scene
2
+
3
+ L1 domain model: immutable scenes, patch-based operations, plugin-extensible elements, and a fast spatial index.
4
+
5
+ No DOM, no React, no Node API. Depends only on `@oh-just-another/types`, `@oh-just-another/math` and `fractional-keys`.
6
+
7
+ ## Concepts
8
+
9
+ - **Scene** — a container of elements, links, layers and a viewport. All fields are immutable; every operation returns a new `Scene`.
10
+ - **Element / Link / Layer** — entities. Elements have an open type discriminator (`type: string`) so plugins can register their own variants. Built-ins: `rectangle`, `ellipse`, `polygon`, `path`, `text`, `image`. (A `Link` is a connector between elements; an element's geometric _shape_ — rectangle/ellipse/path — is a form-primitive, distinct from the element itself.)
11
+ - **Order (fractional index)** — every element, link and layer carries an `order` string. Z-order = sort by `order`. Inserts and reorders are O(1) and conflict-free under concurrent edits (needed for Phase 13 collab).
12
+ - **Patch** — every operation returns a `Patch` with `before` and `after`. `invert(patch)` swaps them; this powers history and CRDT replay symmetrically.
13
+ - **Bounder registry** — local AABB computation is per-type. Built-in elements ship with bounders; plugins register their own via `registerBounder`.
14
+ - **Spatial index** — `SpatialGrid` uniform-cell index. `buildSpatialIndex(scene)` + `queryByIndex(scene, grid, range)` give sub-millisecond range queries on 1000-element scenes.
15
+
16
+ ## Quick start
17
+
18
+ ```ts
19
+ import {
20
+ emptyScene,
21
+ addElement,
22
+ apply,
23
+ invert,
24
+ orderForTop,
25
+ buildSpatialIndex,
26
+ queryByIndex,
27
+ DEFAULT_LAYER_ID,
28
+ type Element,
29
+ } from "@oh-just-another/scene";
30
+ import { elementId } from "@oh-just-another/types";
31
+
32
+ const r: Element = {
33
+ id: elementId("r1"),
34
+ layerId: DEFAULT_LAYER_ID,
35
+ type: "rectangle",
36
+ position: { x: 0, y: 0 },
37
+ rotation: 0,
38
+ scale: { x: 1, y: 1 },
39
+ order: orderForTop([]),
40
+ style: { fill: "#88f" },
41
+ width: 100,
42
+ height: 50,
43
+ };
44
+
45
+ const { scene: s1, patch } = addElement(emptyScene(), r);
46
+ const s2 = apply(s1, invert(patch)); // undo
47
+
48
+ const grid = buildSpatialIndex(s1);
49
+ const hits = queryByIndex(s1, grid, { x: 0, y: 0, width: 50, height: 50 });
50
+ ```
51
+
52
+ ## API surface
53
+
54
+ | Module | Highlights |
55
+ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
56
+ | Types | `Element`, `BuiltinElement`, `RectangleElement` … `ImageElement`, `PathCommand`, `Link`, `Layer`, `Viewport`. |
57
+ | Style | `Style`, `TextStyle`, plus `LineCap` / `LineJoin` / `TextAlign` / `TextBaseline`. |
58
+ | Element helpers | `isRectangle` … `isImage`, `registerBounder`, `getElementLocalBounds`, `getElementWorldBounds`. |
59
+ | Viewport helpers | `DEFAULT_VIEWPORT`, `getWorldToScreen`, `getScreenToWorld`, `panBy`, `zoomAt`, `resize`. |
60
+ | Scene constructors | `emptyScene`, `DEFAULT_LAYER_ID`, `apply`, `orderForTop`, `orderForBottom`, `orderBetween`. |
61
+ | Patch utilities | `invert`, `batch`, `isNoop`. |
62
+ | Operations | `addElement`, `removeElement`, `updateElement`, `moveElement`, `addLink`/`removeLink`/`updateLink`, `addLayer`/`removeLayer`/`updateLayer`, `setViewport`. |
63
+ | Queries | `getElement`, `getLink`, `getLayer`, `getLayersInOrder`, `getElementsInLayer`, `getLinksInLayer`, `getElementsInBounds`, `getElementAt`, `buildSpatialIndex`, `queryByIndex`. |
64
+ | Spatial | `SpatialGrid` (the underlying class for advanced use). |
65
+
66
+ ## Design notes
67
+
68
+ - **Open `Element`.** `Element = BuiltinElement | ElementBase` so plugins can extend without forking. Built-in variants are still strongly typed and pickable through type guards.
69
+ - **Membership stored on children, not on layers.** `element.layerId` is the single source of truth. Cross-layer moves are an O(1) field update; no rebalance of any list.
70
+ - **Layer/element z-order on the entity, not in a list.** `order: FractionalIndex` allows any insert position without renumbering. Tradeoff: every layer/element carries the order key.
71
+ - **Patches store `before` _and_ `after`.** `invert` is a pure swap; the kernel never needs to look at the surrounding scene to compute an undo. Tradeoff: slightly larger patches; this is bounded and worth it for symmetric history.
72
+ - **Spatial grid, not R-tree.** A uniform grid is simpler and faster for editor-scale (≤ ~10k elements) and is good enough to meet the < 1 ms range-query target. We can swap to an R-tree (`rbush`) if a workload demands it; the public surface (`SpatialGrid`-like API + `buildSpatialIndex`/`queryByIndex`) is small enough to keep stable.
@@ -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.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","../../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","../../../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","../../math/dist/vec2.d.ts","../../math/dist/matrix.d.ts","../../math/dist/bounds.d.ts","../../math/dist/hit-test.d.ts","../../math/dist/bezier.d.ts","../../math/dist/intersect.d.ts","../../math/dist/color.d.ts","../../math/dist/polygon.d.ts","../../math/dist/index.d.ts","../src/constants.ts","../src/style.ts","../src/edge.ts","../src/text-measure.ts","../src/shape.ts","../src/a11y.ts","../src/annotation.ts","../src/file.ts","../src/layer.ts","../src/viewport.ts","../src/patch.ts","../src/scene.ts","../src/spatial.ts","../src/queries.ts","../src/container.ts","../src/anchors.ts","../src/annotation-geometry.ts","../src/diff.ts","../src/edge-curve.ts","../src/heading.ts","../src/outline.ts","../src/edge-geometry.ts","../src/elbow-router.ts","../src/elbow-link.ts","../src/operations.ts","../src/render-bounds.ts","../src/snap.ts","../src/layout-registry.ts","../src/layout.ts","../src/three-way-merge.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":[[116,162,163,165,182,183],[116,164,165,182,183],[165,182,183],[116,165,170,182,183,200],[116,165,166,171,176,182,183,185,197,208],[116,165,166,167,176,182,183,185],[116,165,182,183],[111,112,113,116,165,182,183],[116,165,168,182,183,209],[116,165,169,170,177,182,183,186],[116,165,170,182,183,197,205],[116,165,171,173,176,182,183,185],[116,164,165,172,182,183],[116,165,173,174,182,183],[116,165,175,176,182,183],[116,164,165,176,182,183],[116,165,176,177,178,182,183,197,208],[116,165,176,177,178,182,183,192,197,200],[116,158,165,173,176,179,182,183,185,197,208],[116,165,176,177,179,180,182,183,185,197,205,208],[116,165,179,181,182,183,197,205,208],[114,115,116,117,118,119,120,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214],[116,165,176,182,183],[116,165,182,183,184,208],[116,165,173,176,182,183,185,197],[116,165,182,183,186],[116,165,182,183,187],[116,164,165,182,183,188],[116,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214],[116,165,182,183,190],[116,165,182,183,191],[116,165,176,182,183,192,193],[116,165,182,183,192,194,209,211],[116,165,177,182,183],[116,165,176,182,183,197,198,200],[116,165,182,183,199,200],[116,165,182,183,197,198],[116,165,182,183,200],[116,165,182,183,201],[116,162,165,182,183,197,202,208],[116,165,176,182,183,203,204],[116,165,182,183,203,204],[116,165,170,182,183,185,197,205],[116,165,182,183,206],[116,165,182,183,185,207],[116,165,179,182,183,191,208],[116,165,170,182,183,209],[116,165,182,183,197,210],[116,165,182,183,184,211],[116,165,182,183,212],[116,158,165,182,183],[116,158,165,176,178,182,183,188,197,200,208,210,211,213],[116,165,182,183,197,214],[65,116,165,182,183],[65,66,67,68,69,116,165,182,183],[116,130,134,165,182,183,208],[116,130,165,182,183,197,208],[116,125,165,182,183],[116,127,130,165,182,183,205,208],[116,165,182,183,185,205],[116,165,182,183,215],[116,125,165,182,183,215],[116,127,130,165,182,183,185,208],[116,122,123,126,129,165,176,182,183,197,208],[116,130,137,165,182,183],[116,122,128,165,182,183],[116,130,151,152,165,182,183],[116,126,130,165,182,183,200,208,215],[116,151,165,182,183,215],[116,124,125,165,182,183,215],[116,130,165,182,183],[116,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,152,153,154,155,156,157,165,182,183],[116,130,145,165,182,183],[116,130,137,138,165,182,183],[116,128,130,138,139,165,182,183],[116,129,165,182,183],[116,122,125,130,165,182,183],[116,130,134,138,139,165,182,183],[116,134,165,182,183],[116,128,130,133,165,182,183,208],[116,122,127,130,137,165,182,183],[116,165,182,183,197],[116,125,130,151,165,182,183,213,215],[64,116,165,182,183],[71,72,73,74,75,76,77,78,116,165,182,183],[84,116,165,182,183],[64,82,84,94,116,165,182,183],[64,86,91,93,116,165,182,183],[64,79,84,91,93,116,165,182,183],[64,91,116,165,182,183],[64,80,116,165,182,183],[64,79,80,82,84,91,93,95,98,99,100,116,165,182,183],[64,70,81,116,165,182,183],[64,80,82,84,91,93,99,101,102,116,165,182,183],[64,84,116,165,182,183],[70,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,116,165,182,183],[64,70,116,165,182,183],[64,90,91,116,165,182,183],[64,84,90,91,93,94,104,107,116,165,182,183],[64,82,84,86,88,89,90,91,116,165,182,183],[64,82,84,86,87,88,89,116,165,182,183],[64,79,81,82,84,88,91,92,116,165,182,183],[64,70,82,84,86,87,88,89,90,116,165,182,183],[64,70,79,80,81,82,83,116,165,182,183],[64,80,82,84,91,95,100,116,165,182,183],[64,84,91,116,165,182,183],[64,79,80,116,165,182,183],[58,116,165,182,183],[58,59,60,61,62,63,116,165,182,183]],"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":"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},"a9dc2e59fb40b94411bd995a0013c15385b99599a18b7141cf3eafd80c7f0f96","4015dc819b09b93f989d4df8f1f0f36cb99cb2aad8102ab8b4b27fb6020beb5f","ed06a7b359e2125c375f6bada6631fd038473dd624309b8a43a824693a6f6c89","46fa0b276ad58dc963c574f72bb9456b881f3d61bc0fe6827c24f3f02baa6038","1f0260dbafda11af88b11f1b6d662ee45517d44c8cc9a7248bd61d2d8ab1f880","502657b9a54e290098ba4f955efa476b91648b24d5310b8c6e7aa0d4cf8945ae","90755de39a18e2894ad3cced6cdf4cb670e09868b01a6f6465af558d865bf848",{"version":"bce89d3ef847715b91ffd525a157c779be8fafebe823671815f7ce96f27afcda","impliedFormat":99},{"version":"c67f9d85070618f586d632cf184b986eb604f426b90aa68ecdad1ac68ca3151c","impliedFormat":99},{"version":"c656cc6ded557aff87a6c823142852e3548c6a14f84bb48ee35c3e57b6ebc03b","impliedFormat":99},{"version":"0e34130243c29d8d826f868c4e00ff586b349627cb241b3d89f0459a6cdeff4d","impliedFormat":99},{"version":"d555c6cb465cc5cf8127adbbc496720d5200c9dfafa777bbf9dfdea74ebfe3a3","impliedFormat":99},{"version":"27a6936a863edf777150af3ebc65939fa34f51d68385f8a7f198d8ea53685a4d","impliedFormat":99},"ebfd3e57d9e7a8b7ae4c5b663c8d2838eaca3b3285a0c637ba8ca517cc2175d3","505847c2f2ca51addcc453c33269991e9173e0aa62289b452c8ab47df42c9d69","f476c7b455d73ec2f6601f601cb25fe4394bc0507b11742ca79b47959bc5f973","dc0ba5853cc4410c20acb0600f50b11c6bf2d1c3d359e2f4fdb544978de9b448","6a77481ec55fb135de07b99035cfe300dcc4c88d835aa3ce53c3238e27945e56","0129e9c0c12e615cdba3f6269bb1fac6f3fbe2c921833af0bc20aec91d1f05f4","bb8c6f2ece97c4e140b70dff14764b74fe9f94126ac9349587c23a7b8d7ad312","ffd7698fd0112628fca684563c8713e9e00d8e1d6ab3434e97118f6b94da38d4","6890123c41eab2722f06e6a9e419772463d1f8cba50b835190fd5d97e9168b1d",{"version":"ace46703366d57a01bdb80c7e69c6e9c0f21ee47aa2ade431c872b1946818071","signature":"c196961c4aa13e3bf28a7e56ac7fa0b0cbfc668eca4496292d629dd18f43296b"},{"version":"346c1a077f80d3d3c7d79222c9ec3173a4acc0acbd60df366e1e06c60c0ff56a","signature":"b8e3c1f3a85e05bcbc56fa28558cffc68ac40e4158afdc2d702ea825ce21d14d"},{"version":"e450607d8e68384cdc04c0b228496f96ea02f865ff58179e1c80b586ed1a90f2","signature":"17ee722c53770caad5479081a3db9f0df8135a8f061ea9ce57a507ca0c424cce"},{"version":"c6fdc876f586ff7e771a9e9e19064ee8a114f19f1d92310671bdceb341aa477a","signature":"26ce9aa6f798212e39770c45142239f3a54fa63697ba90bae90c6d7ac7da825a"},{"version":"3fc59c7fc528b079e01af4428b620bf5d475b12772efeb619aebeed36cf49297","signature":"78bde316dcb094df77d06b893e0b965d318ac5708d09e7cf6206931263be32e6"},{"version":"fb5eab9ea9b478dfaa49108b5577336581cce3268ce05fa7cfbeb297c3665d14","signature":"6e7e44d7615d2899c2dd6be4e15bbb2cd0b7f4afec2379c08db14b9eac5c9b43"},{"version":"09e51d54dafcb54a3e269e894a418222835a9465d5d2b7c9ff5c8858218fe144","signature":"b85f83aa4b7fb1abc375a73cb706295a146b9f22cf9fa5ec89105fcff6ea1495"},{"version":"ebcd37fc33d304904e44e74c25d6e9207940e7506e635c0c6f98cb4f426d9bb1","signature":"fd0cd0a179e95f7d4d5f7370209f6b413006242a045137d33ca230ae015ba760"},{"version":"50cbb0cbad7ad5458fcadd66b049c7f81ddfdb8b70e5969d3ea713373a7aabfb","signature":"fa716666e5bedc99e38d37def5182924b9dd9e6298c2751f8cebe0fc631ef697"},{"version":"1331cf0c367bbd777f44ef33edba76d102d774cbfab809d407268b4d47f42057","signature":"48280d2635c39dd226b7e5bb71d0519f355b60d4d92e9f6b5b4a427aa28412f8"},{"version":"6faf307cf70ec005026fc6416833ec4908d642e3a77009736544caf3de22b57d","signature":"8bdcd8a58fead736e81808193884907482c8d354f13a0516e9b236a07622c727"},{"version":"a0edc1b19f866a733758e688c654fcbbcfa0c65efd5dffd9cdedec18b6f69edd","signature":"8ebfa15cb2e79b885a21ae5f92507b5b9dd9b01041143554903c163f86611849"},{"version":"4a3303ef82833e5ad54c3de28e1c34d9eed43f9f4ea201489601a2a4a235205d","signature":"95784f449b26dbdf4aadd2f99a5c2f6c419d80f993ececa6c0c3e0159b452aa5"},{"version":"0aff49b1b29f98eec5519f0d4d9dad9c09147af8707c3de1a7e10da75e1b9d8d","signature":"89c0f7c64772fcb38eda1e15b26da3e53e4101c968a0eeb14954f154aee4dac1"},{"version":"363a8a4959eaad65bc28cc8e55924d8b3c34e86e242f8cdb2f4231dedd3c3d04","signature":"baeb8f9be968778478ffa26099ec4211dd28c6dea1633fd8fd1560c34fdd0269"},{"version":"694944e1fd18fe4163698c2fae4c889ad85528972cdf25b41637d7dd5fa9ab63","signature":"eceda86937454d399a4e4cd4a3e25835a4ac80ab930f399b20f53d8f1c772457"},{"version":"46c04c1e2260b02ed7e810f5846972dc10f8b020df35fca1766f86ba1eb6b55b","signature":"ae557ba7a3d28e8909ac395365eb5f8ff63bc28eb2eaace61650ed51f1bc1808"},{"version":"81817c75bdc2320effb5dd4e227522ca2f5b25b3749f9a9e93c64bcf7db0fdf2","signature":"60bd456f1b63861f880c386ddf1b3916098bbafbf4b5a46a5e5ebc4fcb9434c4"},{"version":"485a55be466932ca81f3a3d3b99daacd823a70b363124dea34d4be7b6cbab8a2","signature":"d081374b0bf74e2748138e8b0a56458e12e2ee7bd07fb239b92c97a33bba8d70"},{"version":"31345ef8ad7cbada6f250d7eedd80c0161b968d1c55f9cb3e87ca9865189419d","signature":"f730ff4577c8d45cb4a587d078ee5b692613c3de57f26a27a4be74c183adc226"},{"version":"00f2e56ac7df8a4ddfaa90d5b84b642e97d1863be77a27048616f49e0b5c0935","signature":"ebfed381c5296dbb1ebae8265ca08dbce33929fa829f6ac11f2f591beb1f4485"},{"version":"09a13e76ff50a96db13705516cebf99a5b21a5b243ed5f533d0e329c5b0bf44a","signature":"4233c4d8ac9cb79b3b71e4923eb486f08f5f2c6508fc177192081a402bee38b3"},{"version":"0c3e9c71b4b19608e5d70b404113c2c846cf2041f6f35d8a11a01b9532b9f06f","signature":"9a02cb3cccc3eeb3fea9327c47dbda2076e21f3da7b2eb659871dc91b8572f42"},{"version":"74275be0d81f63d07c396635afecde371e06ba0f66a7a95c3fcfd13483313bb8","signature":"1778dfd35a7d5885896c436792662c8d602ea8cf03aeed97b0381b6e82c4e980"},{"version":"b8c36e426ef70fabac5b9eeb6515e6d5f556efa0362f49c8227dd12cc8a2aa14","signature":"dfa88df7638cc24634255691d0a3fb72a4910b73211da89fab8f2362730cb3b2"},{"version":"cabbdd69707eb82ff7da49cc2d5ab927eeb7f208cfd83c0dd09b703520d08673","signature":"75ea946ee4d31489f494b0def56b2db669c3aac052713387d6edc51dc2ca86db"},{"version":"a5773bda0a29a40ebd2cf3d8ba652e359dfa8a480d81240b69afd32e209e1791","signature":"8b12bcaa49f76ee1ce7f77943a297078dba53abedd344da6d370012eab482c07"},{"version":"dee50164abb802b5ac8e07704a927c0ed47431972c6925648f16720a9323bdd2","signature":"d1b901b618ec72bff0fcb657edf03d83e2bcbb2687a9cddadea48a24ab23faf2"},{"version":"219072b8770d0e69f5c97a2e11a8541a8ea283efc43645e78c9c4b0b73b1c461","signature":"a1f5b4a129cd4b8f013533f200baf74615d690c41f1ef2147bd40ef6110c4a1b"},{"version":"efe83fa39bf0a263389f0c86e4e00644ac42cec704dd9a920e55b7f157e5a8fb","signature":"f2c0b5b634eed4010d9396710281a7fdc7019fe47507e8bcb706a58af985548a"},{"version":"9f976a3debb4c0c5847af438b8bdafac5899061a43a6e559a8e7b96ff430a99a","signature":"5df76ca2d799039334a825b621129061b89022808e0943397e045bc6feec894c"},{"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":[[80,110]],"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":[[162,1],[163,1],[164,2],[116,3],[165,4],[166,5],[167,6],[111,7],[114,8],[112,7],[113,7],[168,9],[169,10],[170,11],[171,12],[172,13],[173,14],[174,14],[175,15],[176,16],[177,17],[178,18],[117,7],[115,7],[179,19],[180,20],[181,21],[215,22],[182,23],[183,7],[184,24],[185,25],[186,26],[187,27],[188,28],[189,29],[190,30],[191,31],[192,32],[193,32],[194,33],[195,7],[196,34],[197,35],[199,36],[198,37],[200,38],[201,39],[202,40],[203,41],[204,42],[205,43],[206,44],[207,45],[208,46],[209,47],[210,48],[211,49],[212,50],[118,7],[119,7],[120,7],[159,51],[160,7],[161,7],[213,52],[214,53],[121,7],[68,7],[69,7],[66,54],[70,55],[67,54],[65,7],[56,7],[57,7],[11,7],[10,7],[2,7],[12,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7],[19,7],[3,7],[20,7],[21,7],[4,7],[22,7],[26,7],[23,7],[24,7],[25,7],[27,7],[28,7],[29,7],[5,7],[30,7],[31,7],[32,7],[33,7],[6,7],[37,7],[34,7],[35,7],[36,7],[38,7],[7,7],[39,7],[44,7],[45,7],[40,7],[41,7],[42,7],[43,7],[8,7],[49,7],[46,7],[47,7],[48,7],[50,7],[9,7],[51,7],[52,7],[53,7],[55,7],[54,7],[1,7],[137,56],[147,57],[136,56],[157,58],[128,59],[127,60],[156,61],[150,62],[155,63],[130,64],[144,65],[129,66],[153,67],[125,68],[124,61],[154,69],[126,70],[131,71],[132,7],[135,71],[122,7],[158,72],[148,73],[139,74],[140,75],[142,76],[138,77],[141,78],[151,61],[133,79],[134,80],[143,81],[123,82],[146,73],[145,71],[149,7],[152,83],[75,84],[73,84],[77,84],[74,84],[79,85],[76,84],[72,84],[78,84],[71,84],[85,86],[95,87],[96,88],[86,84],[80,7],[94,89],[97,90],[98,91],[101,92],[82,93],[103,94],[102,91],[87,84],[99,95],[110,96],[88,97],[107,98],[108,99],[104,100],[100,95],[90,101],[93,102],[105,95],[91,103],[84,104],[106,105],[92,84],[81,91],[83,7],[109,106],[89,107],[59,7],[61,7],[63,108],[62,7],[64,109],[60,7],[58,7]],"latestChangedDtsFile":"./queries.d.ts","version":"5.9.3"}
package/dist/a11y.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ import type { ElementBase } from "./shape.js";
2
+ /**
3
+ * Resolver from a shape to an accessible name (screen-reader label).
4
+ * Plugins register their own to handle custom shape types — defaults
5
+ * cover the built-ins: text → text content, template → `metadata.label`
6
+ * or `type`, others → titleised `type`.
7
+ *
8
+ * The resolver is synchronous and pure so it can run in a
9
+ * `getElementAccessibleName` query without side effects.
10
+ */
11
+ export type AccessibleNameResolver<S extends ElementBase = ElementBase> = (shape: S) => string;
12
+ export declare const registerAccessibleName: <S extends ElementBase>(type: string, resolver: AccessibleNameResolver<S>) => void;
13
+ /**
14
+ * Returns a short human-readable label for a shape. Falls back to the
15
+ * shape's `type` titleised when no resolver is registered.
16
+ *
17
+ * Examples:
18
+ * text shape with text "Hello" → "Hello"
19
+ * template "task-card" with metadata.label "Buy milk" → "Buy milk"
20
+ * rectangle → "Rectangle"
21
+ */
22
+ export declare const getElementAccessibleName: (shape: ElementBase) => string;
23
+ //# sourceMappingURL=a11y.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y.d.ts","sourceRoot":"","sources":["../src/a11y.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAgC,MAAM,YAAY,CAAC;AAE5E;;;;;;;;GAQG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;AAI/F,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,WAAW,EAC1D,MAAM,MAAM,EACZ,UAAU,sBAAsB,CAAC,CAAC,CAAC,KAClC,IAEF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,WAAW,KAAG,MAO7D,CAAC"}
package/dist/a11y.js ADDED
@@ -0,0 +1,37 @@
1
+ const registry = new Map();
2
+ export const registerAccessibleName = (type, resolver) => {
3
+ registry.set(type, resolver);
4
+ };
5
+ /**
6
+ * Returns a short human-readable label for a shape. Falls back to the
7
+ * shape's `type` titleised when no resolver is registered.
8
+ *
9
+ * Examples:
10
+ * text shape with text "Hello" → "Hello"
11
+ * template "task-card" with metadata.label "Buy milk" → "Buy milk"
12
+ * rectangle → "Rectangle"
13
+ */
14
+ export const getElementAccessibleName = (shape) => {
15
+ const resolver = registry.get(shape.type);
16
+ if (resolver) {
17
+ const name = resolver(shape).trim();
18
+ if (name)
19
+ return name;
20
+ }
21
+ return titleise(shape.type);
22
+ };
23
+ const titleise = (s) => s.length === 0 ? s : s.charAt(0).toUpperCase() + s.slice(1).replace(/[-_]/g, " ");
24
+ // --- Built-in resolvers ---
25
+ registerAccessibleName("text", (s) => {
26
+ // Collapse whitespace and truncate long bodies so screen-reader
27
+ // announcements stay actionable.
28
+ const body = s.text.replace(/\s+/g, " ").trim();
29
+ return body.length > 80 ? `${body.slice(0, 77)}…` : body;
30
+ });
31
+ registerAccessibleName("template", (s) => {
32
+ const label = s.metadata?.label;
33
+ if (typeof label === "string" && label.trim())
34
+ return label.trim();
35
+ return titleise(s.templateId);
36
+ });
37
+ //# sourceMappingURL=a11y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a11y.js","sourceRoot":"","sources":["../src/a11y.ts"],"names":[],"mappings":"AAaA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkC,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAY,EACZ,QAAmC,EAC7B,EAAE;IACR,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAkC,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,KAAkB,EAAU,EAAE;IACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACxB,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAU,EAAE,CACrC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAEpF,6BAA6B;AAE7B,sBAAsB,CAAc,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;IAChD,gEAAgE;IAChE,iCAAiC;IACjC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,sBAAsB,CAAkB,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;IACxD,MAAM,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACnE,OAAO,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,120 @@
1
+ import type { Vec2 } from "@oh-just-another/types";
2
+ import type { AnchorRef, NamedAnchor, StandardAnchor } from "./edge.js";
3
+ import type { ElementBase } from "./shape.js";
4
+ /**
5
+ * The 9 canonical named anchors every built-in shape exposes. They map to
6
+ * the local bounding box of a shape — four corners, four edge centres, and
7
+ * the geometric centre.
8
+ *
9
+ * top-left ─── top ─── top-right
10
+ * │ │ │
11
+ * left ─── center ─── right
12
+ * │ │ │
13
+ * bottom-left ─ bottom ─ bottom-right
14
+ *
15
+ * `top` / `right` / `bottom` / `left` are the edge centres; `top-left` etc.
16
+ * are the corners. Hosts may add custom anchors per shape via the
17
+ * `anchors` field on `ElementBase`.
18
+ */
19
+ export declare const STANDARD_ANCHOR_RATIOS: Readonly<Record<StandardAnchor, Vec2>>;
20
+ /** All 9 standard anchor names, in clockwise-from-top-left order. */
21
+ export declare const STANDARD_ANCHORS: readonly StandardAnchor[];
22
+ /**
23
+ * Resolve a named anchor to its *local-space* position inside the shape's
24
+ * bounding box. Returns `undefined` if the name isn't a standard anchor
25
+ * and isn't declared in the shape's own `anchors` map.
26
+ *
27
+ * Hosts looking up an `AnchorRef` should call `getAnchorLocal` /
28
+ * `getAnchorWorld` instead — those handle every `AnchorRef` kind.
29
+ */
30
+ export declare const getNamedAnchorLocal: (shape: ElementBase, name: NamedAnchor) => Vec2 | undefined;
31
+ /**
32
+ * Resolve any `AnchorRef` to a point in the shape's local coordinate
33
+ * space (before `position` / `rotation` / `scale`). Throws on an unknown
34
+ * named anchor — callers either pass a `ratio` / `absolute` ref or use a
35
+ * registered standard / custom name.
36
+ */
37
+ export declare const getAnchorLocal: (shape: ElementBase, anchor: AnchorRef) => Vec2;
38
+ /**
39
+ * Resolve any `AnchorRef` to a world-space point. Applies the shape's
40
+ * `position` + `rotation` + `scale` to the local resolution from
41
+ * `getAnchorLocal`.
42
+ */
43
+ export declare const getAnchorWorld: (shape: ElementBase, anchor: AnchorRef) => Vec2;
44
+ /**
45
+ * World-space outward unit normal at an anchor — the direction "away from
46
+ * the shape" used to push port dots a few pixels off the edge and to seed
47
+ * a link's exit stub.
48
+ *
49
+ * Computed as the direction from the shape's geometric centre to the
50
+ * anchor's world point, so it automatically respects rotation / non-
51
+ * uniform scale and works for cardinal ports, polygon edge midpoints, and
52
+ * corners alike. Returns `{ x: 0, y: -1 }` (up) as a stable fallback when
53
+ * the anchor coincides with the centre (e.g. a custom centre anchor),
54
+ * where "outward" is undefined.
55
+ */
56
+ export declare const getAnchorOutwardNormal: (shape: ElementBase, anchor: AnchorRef) => Vec2;
57
+ /**
58
+ * Find the anchor on `shape` whose world position is closest to
59
+ * `worldPoint`. Returns the canonical `AnchorRef` you can persist on an
60
+ * `LinkEndpoint` so future renders stay locked to that port.
61
+ *
62
+ * Useful when committing an edge whose endpoint dropped near a shape:
63
+ * snap the drop position to the nearest of the 9 standard anchors (plus
64
+ * custom ones) so the edge tracks the shape on subsequent edits.
65
+ */
66
+ export declare const findNearestAnchor: (shape: ElementBase, worldPoint: Vec2, excludeNames?: ReadonlySet<string>) => {
67
+ ref: AnchorRef;
68
+ world: Vec2;
69
+ distance: number;
70
+ };
71
+ /**
72
+ * Materialise the full anchor table for a shape — every standard anchor
73
+ * plus every custom one declared in `shape.anchors`. Custom entries with
74
+ * the same name as a standard anchor override the standard placement.
75
+ * Returns *local-space* coordinates.
76
+ *
77
+ * Renderers that draw port-dots use this to enumerate the dots once per
78
+ * frame instead of resolving each name individually.
79
+ */
80
+ /**
81
+ * Anchor names that should not be offered as snap targets for the
82
+ * given shape, used by the edge-draw snap engine and the hover port-
83
+ * dot overlay. Containers omit `center` because that point lives
84
+ * inside the drop-zone, where a snap-to-anchor would compete with
85
+ * the reparent / drop gesture. Hosts can still target the centre
86
+ * explicitly via `kind: "anchor", anchor: { kind: "named", name:
87
+ * "center" }` — only the auto snap is filtered.
88
+ */
89
+ export declare const snapExcludedAnchors: (shape: ElementBase) => ReadonlySet<string>;
90
+ export declare const listAnchorsLocal: (shape: ElementBase) => ReadonlyMap<string, Vec2>;
91
+ /**
92
+ * Geometry-aware default connection points for a shape, in *local* space.
93
+ *
94
+ * Unlike `listAnchorsLocal` (which always returns the 9 AABB-relative
95
+ * standard anchors), this returns the points the editor offers as the
96
+ * default snap/draw targets, derived from the shape's *real* geometry:
97
+ *
98
+ * - **polygon** — the midpoint of every edge (works for triangle,
99
+ * hexagon, …; points sit on the actual sloped edges, not the bbox).
100
+ * - **rectangle / ellipse / everything else** — the four bbox edge
101
+ * centres (`top` / `right` / `bottom` / `left`). For an axis-aligned
102
+ * rectangle these are the real edge midpoints; for an ellipse the
103
+ * cardinal points already lie on the curve.
104
+ *
105
+ * Corners and the centre are excluded — the centre is never a magnet
106
+ * target, and corner ports are visual noise for the default set
107
+ * (templates can still declare custom anchors there via `shape.anchors`).
108
+ *
109
+ * A shape's own `shape.anchors` entries are merged on top (and override a
110
+ * default with the same name), so a template can fully customise the port
111
+ * layout while non-templated shapes get sensible geometry-aware defaults.
112
+ *
113
+ * Returns a name→local-point map. Default names are the polygon edge
114
+ * indices (`edge-0`, `edge-1`, …) or the cardinal names (`top` / `right` /
115
+ * `bottom` / `left`).
116
+ */
117
+ export declare const geometryDefaultAnchorsLocal: (shape: ElementBase) => ReadonlyMap<string, Vec2>;
118
+ /** The four bbox edge centres — the default port set for non-polygon shapes. */
119
+ export declare const CARDINAL_ANCHORS: readonly StandardAnchor[];
120
+ //# sourceMappingURL=anchors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchors.d.ts","sourceRoot":"","sources":["../src/anchors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;AAK9D;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,CAUzE,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAUrD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,WAAW,EAAE,MAAM,WAAW,KAAG,IAAI,GAAG,SAElF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,WAAW,EAAE,QAAQ,SAAS,KAAG,IAEtE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,WAAW,EAAE,QAAQ,SAAS,KAAG,IAUtE,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,GAAI,OAAO,WAAW,EAAE,QAAQ,SAAS,KAAG,IAQ9E,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,WAAW,EAClB,YAAY,IAAI,EAChB,eAAc,WAAW,CAAC,MAAM,CAAwB,KACvD;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CA2BjD,CAAC;AAeF;;;;;;;;GAQG;AACH;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,WAAW,KAAG,WAAW,CAAC,MAAM,CAG1E,CAAC;AAIF,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,KAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAa7E,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,2BAA2B,GAAI,OAAO,WAAW,KAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAiBxF,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAAuC,CAAC"}