@openplayerjs/player 3.0.0-beta.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/LICENSE +21 -0
- package/README.md +453 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/index.js +2178 -0
- package/dist/index.js.map +1 -0
- package/dist/openplayer.css +1 -0
- package/dist/openplayer.umd.js +2 -0
- package/dist/openplayer.umd.js.map +1 -0
- package/dist/types/a11y.d.ts +7 -0
- package/dist/types/a11y.d.ts.map +1 -0
- package/dist/types/configuration.d.ts +52 -0
- package/dist/types/configuration.d.ts.map +1 -0
- package/dist/types/control.d.ts +21 -0
- package/dist/types/control.d.ts.map +1 -0
- package/dist/types/controls/base.d.ts +27 -0
- package/dist/types/controls/base.d.ts.map +1 -0
- package/dist/types/controls/captions.d.ts +11 -0
- package/dist/types/controls/captions.d.ts.map +1 -0
- package/dist/types/controls/currentTime.d.ts +9 -0
- package/dist/types/controls/currentTime.d.ts.map +1 -0
- package/dist/types/controls/duration.d.ts +9 -0
- package/dist/types/controls/duration.d.ts.map +1 -0
- package/dist/types/controls/fullscreen.d.ts +13 -0
- package/dist/types/controls/fullscreen.d.ts.map +1 -0
- package/dist/types/controls/play.d.ts +9 -0
- package/dist/types/controls/play.d.ts.map +1 -0
- package/dist/types/controls/progress.d.ts +11 -0
- package/dist/types/controls/progress.d.ts.map +1 -0
- package/dist/types/controls/settings.d.ts +20 -0
- package/dist/types/controls/settings.d.ts.map +1 -0
- package/dist/types/controls/time.d.ts +9 -0
- package/dist/types/controls/time.d.ts.map +1 -0
- package/dist/types/controls/volume.d.ts +9 -0
- package/dist/types/controls/volume.d.ts.map +1 -0
- package/dist/types/events.d.ts +4 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/extend.d.ts +7 -0
- package/dist/types/extend.d.ts.map +1 -0
- package/dist/types/index.d.ts +29 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/overlay.d.ts +11 -0
- package/dist/types/overlay.d.ts.map +1 -0
- package/dist/types/playback.d.ts +4 -0
- package/dist/types/playback.d.ts.map +1 -0
- package/dist/types/settings.d.ts +25 -0
- package/dist/types/settings.d.ts.map +1 -0
- package/dist/types/ui.d.ts +11 -0
- package/dist/types/ui.d.ts.map +1 -0
- package/dist/types/umd.d.ts +55 -0
- package/dist/types/umd.d.ts.map +1 -0
- package/package.json +50 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 Rafael Miranda
|
|
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,453 @@
|
|
|
1
|
+
# @openplayer/ui
|
|
2
|
+
|
|
3
|
+
> UI layer, built-in controls, and extension APIs for [OpenPlayerJS](https://github.com/openplayerjs/openplayerjs)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This is the ESM equivalent to the v2 old `OpenPlayerJS` constructor
|
|
8
|
+
|
|
9
|
+
> **v3 note:** The v2 `addElement` / `addControl` API accepted a large configuration object passed to the player constructor. In v3 that API has been redesigned for two reasons:
|
|
10
|
+
>
|
|
11
|
+
> 1. **Security** — the old API accepted arbitrary HTML strings (`content`, `icon`) that could be used for XSS attacks. The new API works with real DOM elements that you create yourself.
|
|
12
|
+
> 2. **Clarity** — separating UI extensions from the player constructor makes it obvious what is "core player" and what is "visual customisation".
|
|
13
|
+
>
|
|
14
|
+
> See [MIGRATION.v3.md](../MIGRATION.v3.md) for a complete before/after comparison.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install @openplayer/player @openplayer/core
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Quick start (ESM / bundlers)
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import { Core } from '@openplayer/core';
|
|
28
|
+
import { createUI, buildControls } from '@openplayer/player';
|
|
29
|
+
import '@openplayer/ui/style.css';
|
|
30
|
+
|
|
31
|
+
const video = document.querySelector<HTMLVideoElement>('#player')!;
|
|
32
|
+
const core = new Core(video, { plugins: [] });
|
|
33
|
+
|
|
34
|
+
const controls = buildControls({
|
|
35
|
+
'bottom-left': ['play', 'time', 'volume'],
|
|
36
|
+
right: ['captions', 'settings', 'fullscreen'],
|
|
37
|
+
'top-center': ['progress'],
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
createUI(core, video, controls);
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Configuration
|
|
46
|
+
|
|
47
|
+
`@openplayer/ui` owns UI-specific configuration (labels, sizing, keyboard seek step, and progress-bar interaction flags), but it **augments** the `PlayerConfig` type from `@openplayer/core`.
|
|
48
|
+
|
|
49
|
+
That means you can pass both core and UI options to the `Player` constructor:
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import { Player } from '@openplayer/core';
|
|
53
|
+
import { createUI } from '@openplayer/ui';
|
|
54
|
+
|
|
55
|
+
const core = new Core(video, {
|
|
56
|
+
// core
|
|
57
|
+
startTime: 0,
|
|
58
|
+
startVolume: 1,
|
|
59
|
+
|
|
60
|
+
// player
|
|
61
|
+
width: 640,
|
|
62
|
+
height: 360,
|
|
63
|
+
step: 5,
|
|
64
|
+
allowSkip: true,
|
|
65
|
+
allowRewind: false,
|
|
66
|
+
labels: {
|
|
67
|
+
play: 'Play',
|
|
68
|
+
pause: 'Pause',
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
createUI(core, video, controls);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### UI options
|
|
76
|
+
|
|
77
|
+
| Option | Type | Default | Description |
|
|
78
|
+
| ------------- | ------------------------ | ------- | -------------------------------------------------------------------------------- |
|
|
79
|
+
| `width` | `number \| string` | — | Force a specific player width (applied to the wrapper) |
|
|
80
|
+
| `height` | `number \| string` | — | Force a specific player height (applied to the wrapper) |
|
|
81
|
+
| `step` | `number` | `0` | Seek distance in seconds for keyboard shortcuts. `0` means use the default (5 s) |
|
|
82
|
+
| `allowSkip` | `boolean` | `true` | Allow seeking forward via the progress bar |
|
|
83
|
+
| `allowRewind` | `boolean` | `true` | Allow seeking backward via the progress bar |
|
|
84
|
+
| `labels` | `Record<string, string>` | — | Override built-in UI label strings (e.g. `play`, `pause`, `fullscreen`, etc.) |
|
|
85
|
+
|
|
86
|
+
> For engine/plugins and initial playback state options like `plugins`, `startTime`, `startVolume`, `startPlaybackRate`, and `duration`, see `@openplayer/core`.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## What's inside?
|
|
91
|
+
|
|
92
|
+
| Export | Purpose |
|
|
93
|
+
| -------------------------- | ------------------------------------------------------------------------------------------------- |
|
|
94
|
+
| `createUI` | Mounts the player wrapper, centre overlay, and control grid into the DOM |
|
|
95
|
+
| `buildControls` | Resolves a layout config object into an array of `Control` instances |
|
|
96
|
+
| `registerControl` | Registers a custom control factory globally, making it usable by string ID in `buildControls` |
|
|
97
|
+
| `extendControls` | Attaches the `player.controls` imperative API (`addElement`, `addControl`) to a `Player` instance |
|
|
98
|
+
| `createPlayControl` | Factory for the built-in play/pause button |
|
|
99
|
+
| `createVolumeControl` | Factory for the volume slider and mute/unmute button |
|
|
100
|
+
| `createProgressControl` | Factory for the seek bar with current-time tooltip |
|
|
101
|
+
| `createCurrentTimeControl` | Factory for the current playback position display (e.g. `1:23`) |
|
|
102
|
+
| `createDurationControl` | Factory for the total duration display (e.g. `5:00`) |
|
|
103
|
+
| `createTimeControl` | Factory for the combined time display (e.g. `1:23 / 5:00`) |
|
|
104
|
+
| `createCaptionsControl` | Factory for the captions/subtitle toggle button |
|
|
105
|
+
| `createSettingsControl` | Factory for the settings menu (speed, caption language) |
|
|
106
|
+
| `createFullscreenControl` | Factory for the fullscreen toggle |
|
|
107
|
+
| `BaseControl` | Base class you can extend to share common control lifecycle logic (**for dev purposes only**) |
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Stylesheet
|
|
112
|
+
|
|
113
|
+
The UI ships a standalone CSS file. Import it once per application:
|
|
114
|
+
|
|
115
|
+
### ESM
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
// Bundler (Vite / webpack / esbuild)
|
|
119
|
+
import '@openplayer/ui/style.css';
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### UMD
|
|
123
|
+
|
|
124
|
+
```html
|
|
125
|
+
<!-- CDN / plain HTML -->
|
|
126
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@openplayer/player@latest/dist/openplayer.umd.css" />
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
> All player elements use the `op-` CSS prefix. You can override any variables or classes in your own stylesheet. No `!important` should be needed for most overrides.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Built-in control IDs
|
|
134
|
+
|
|
135
|
+
Use these string IDs in `buildControls` to place the built-in controls:
|
|
136
|
+
|
|
137
|
+
| ID | Description |
|
|
138
|
+
| ------------- | ----------------------------------------------------------------------------- |
|
|
139
|
+
| `play` | Play / Pause toggle button |
|
|
140
|
+
| `volume` | Volume slider + Mute / Unmute button |
|
|
141
|
+
| `progress` | Seek bar with a current-time tooltip |
|
|
142
|
+
| `time` | Combined current time / duration display (e.g. `1:23 / 5:00`) |
|
|
143
|
+
| `currentTime` | Current playback position only (e.g. `1:23`) |
|
|
144
|
+
| `duration` | Total duration only (e.g. `5:00`) |
|
|
145
|
+
| `captions` | Caption / subtitle toggle button |
|
|
146
|
+
| `settings` | Settings menu (speed, caption language selection if `captions` are activated) |
|
|
147
|
+
| `fullscreen` | Fullscreen toggle |
|
|
148
|
+
|
|
149
|
+
> **`time` vs separate `currentTime` + `duration`:** Use `'time'` for the classic combined display. Use `'currentTime'` and `'duration'` individually when you want to place them in different positions or style them independently.
|
|
150
|
+
|
|
151
|
+
The built-in keyboard handling is active whenever the player wrapper has focus. You can override the `step` config option to change seek distances.
|
|
152
|
+
|
|
153
|
+
| Key | Action |
|
|
154
|
+
| ----------------- | ------------------------------------------------------------------ |
|
|
155
|
+
| `Space` / `Enter` | Play / Pause (when player has focus) |
|
|
156
|
+
| `K` | Play / Pause |
|
|
157
|
+
| `M` | Mute / Unmute |
|
|
158
|
+
| `F` | Toggle fullscreen |
|
|
159
|
+
| `←` (Left arrow) | Seek back 5 s (or the configured `step` value) |
|
|
160
|
+
| `→` (Right arrow) | Seek forward 5 s (or the configured `step` value) |
|
|
161
|
+
| `J` | Seek back 10 s (or double the configured `step` value) |
|
|
162
|
+
| `L` | Seek forward 10 s (or double the configured `step` value) |
|
|
163
|
+
| `↑` (Up arrow) | Volume up |
|
|
164
|
+
| `↓` (Down arrow) | Volume down |
|
|
165
|
+
| `Home` | Seek to the beginning |
|
|
166
|
+
| `End` | Seek to the end of the media (no-op for live streams) |
|
|
167
|
+
| `0`–`9` | While the progress bar has focus: seek to 0%–90% of total duration |
|
|
168
|
+
| `,` | While paused: step back one frame |
|
|
169
|
+
| `.` | While paused: step forward one frame |
|
|
170
|
+
| `<` | Slow down playback rate by `0.25` |
|
|
171
|
+
| `>` | Speed up playback rate by `0.25` |
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Player layout
|
|
176
|
+
|
|
177
|
+
The v3 UI renders the following DOM structure inside the player wrapper:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
.op-player ← outer wrapper (position: relative)
|
|
181
|
+
├── .op-player__media ← your original <video> / <audio> element
|
|
182
|
+
├── .op-player__overlay ← centre overlay (play icon, pause flash, loader)
|
|
183
|
+
└── .op-player__controls ← control bar
|
|
184
|
+
├── [top row] ← optional, only rendered when you add top controls
|
|
185
|
+
├── [main row] ← holds the progress bar by default
|
|
186
|
+
└── [bottom row] ← holds play, volume, time, captions, fullscreen, etc.
|
|
187
|
+
├── [left slot]
|
|
188
|
+
├── [middle slot]
|
|
189
|
+
└── [right slot]
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Control placement
|
|
195
|
+
|
|
196
|
+
`buildControls` accepts an object with position:
|
|
197
|
+
|
|
198
|
+
```ts
|
|
199
|
+
const controls = buildControls({
|
|
200
|
+
'top-left': [],
|
|
201
|
+
'top-middle': [], // this is the same as 'top'
|
|
202
|
+
'top-right': [],
|
|
203
|
+
'center-left': ['progress'], // full-width row
|
|
204
|
+
'center-middle': [], // this is the same as 'center'
|
|
205
|
+
'center-right': [], // full-width row
|
|
206
|
+
'bottom-left': ['play', 'currentTime', 'volume'],
|
|
207
|
+
'bottom-middle': [], // this is the same as 'bottom'
|
|
208
|
+
'bottom-right': ['duration', 'captions', 'settings', 'fullscreen'],
|
|
209
|
+
});
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
Omitting a slot or leaving it as an empty array means nothing would be rendered there.
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Public API
|
|
217
|
+
|
|
218
|
+
### `createUI(player, media, controls)`
|
|
219
|
+
|
|
220
|
+
Mounts the player's DOM structure. Call this after creating your `Player` instance and building your controls:
|
|
221
|
+
|
|
222
|
+
```ts
|
|
223
|
+
createUI(player, video, controls);
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
After `createUI` runs, the original media element is wrapped inside `.op-player`, the center overlay and control grid are injected, and each control's `create(player)` factory is called to render the buttons.
|
|
227
|
+
|
|
228
|
+
### `buildControls(layout)`
|
|
229
|
+
|
|
230
|
+
Converts a layout config object into an array of `Control` instances that `createUI` can render.
|
|
231
|
+
|
|
232
|
+
### `registerControl(id, factory)`
|
|
233
|
+
|
|
234
|
+
Registers a custom control globally so it can be referenced by string ID in `buildControls`:
|
|
235
|
+
|
|
236
|
+
```ts
|
|
237
|
+
import { registerControl } from '@openplayer/ui';
|
|
238
|
+
|
|
239
|
+
registerControl('my-button', () => ({
|
|
240
|
+
id: 'my-button',
|
|
241
|
+
placement: { v: 'bottom', h: 'right' },
|
|
242
|
+
create(player) {
|
|
243
|
+
const btn = document.createElement('button');
|
|
244
|
+
btn.textContent = 'My Action';
|
|
245
|
+
btn.onclick = () => player.pause();
|
|
246
|
+
return btn;
|
|
247
|
+
},
|
|
248
|
+
}));
|
|
249
|
+
|
|
250
|
+
// Now usable by ID:
|
|
251
|
+
buildControls({ bottom: { right: ['my-button', 'fullscreen'] }, main: ['progress'] });
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### `extendControls(player)`
|
|
255
|
+
|
|
256
|
+
Adds the `.controls` imperative API to a player instance. Call this once, **after** `createUI`:
|
|
257
|
+
|
|
258
|
+
```ts
|
|
259
|
+
import { extendControls } from '@openplayer/ui';
|
|
260
|
+
|
|
261
|
+
extendControls(player);
|
|
262
|
+
|
|
263
|
+
// player.controls is now available:
|
|
264
|
+
player.controls.addElement(element, { v: 'top', h: 'right' });
|
|
265
|
+
player.controls.addControl(myControl);
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
> **Important:** `extendControls` (and `addElement` / `addControl`) can only be called after the player has been fully initialized and `createUI` has run. Calling them before initialization will throw, because the UI DOM does not exist yet.
|
|
269
|
+
|
|
270
|
+
#### `player.controls.addElement(el, placement)`
|
|
271
|
+
|
|
272
|
+
Place any HTML element at a specific position in the player. Good for watermarks, brand logos, and overlays:
|
|
273
|
+
|
|
274
|
+
```ts
|
|
275
|
+
const badge = document.createElement('span');
|
|
276
|
+
badge.textContent = '● LIVE';
|
|
277
|
+
player.controls.addElement(badge, { v: 'top', h: 'right' });
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
| Argument | Type | Description |
|
|
281
|
+
| ----------- | ------------------------------------------------ | ------------------------------- |
|
|
282
|
+
| `el` | `HTMLElement` | The DOM element to insert |
|
|
283
|
+
| `placement` | `{ v: 'top' \| 'bottom', h: 'left' \| 'right' }` | Where to place it in the player |
|
|
284
|
+
|
|
285
|
+
> **Security note:** Because you create the DOM element yourself with standard browser APIs, there is no risk of XSS. Never set `.innerHTML` from untrusted input on your custom elements.
|
|
286
|
+
|
|
287
|
+
#### `player.controls.addControl(control)`
|
|
288
|
+
|
|
289
|
+
Register and mount a typed `Control` object in the control bar. This is the right approach for interactive buttons (skip intro, next episode, quality picker, etc.):
|
|
290
|
+
|
|
291
|
+
```ts
|
|
292
|
+
import type { Control } from '@openplayer/ui';
|
|
293
|
+
|
|
294
|
+
const skipIntro: Control = {
|
|
295
|
+
id: 'skip-intro',
|
|
296
|
+
placement: { v: 'bottom', h: 'right' },
|
|
297
|
+
create(player) {
|
|
298
|
+
const btn = document.createElement('button');
|
|
299
|
+
btn.textContent = 'Skip Intro';
|
|
300
|
+
btn.onclick = () => (player.media.currentTime = 90);
|
|
301
|
+
return btn;
|
|
302
|
+
},
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
player.controls.addControl(skipIntro);
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Adding a custom element
|
|
311
|
+
|
|
312
|
+
Use `addElement` to place any HTML element you create at a specific position in the player. This is the right approach for watermarks, brand logos, chapter markers, or anything that is not a button in the control bar. The element(s) will be created in the visible media area.
|
|
313
|
+
|
|
314
|
+
> **Recommendation:** As best practice, when adding a custom control, to make it compliant with the WCAG 2.2 standards, use the `setA11yLabel` method to properly set ARIA-\* elements
|
|
315
|
+
|
|
316
|
+
```ts
|
|
317
|
+
import { extendControls } from '@openplayer/ui';
|
|
318
|
+
|
|
319
|
+
// Call this once, after createUI(...)
|
|
320
|
+
extendControls(player);
|
|
321
|
+
|
|
322
|
+
// Create your element however you like
|
|
323
|
+
const badge = document.createElement('div');
|
|
324
|
+
badge.className = 'my-live-badge';
|
|
325
|
+
setA11yLabel(badge, 'Status of streaming');
|
|
326
|
+
badge.textContent = '● LIVE';
|
|
327
|
+
|
|
328
|
+
// Place it in the top-right corner of the visible media area
|
|
329
|
+
player.controls.addElement(badge, { v: 'top', h: 'right' });
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
The `placement` argument:
|
|
333
|
+
|
|
334
|
+
| Key | Values | Description |
|
|
335
|
+
| --- | --------------------- | ---------------------------------------- |
|
|
336
|
+
| `v` | `'top'` \| `'bottom'` | Vertical position relative to the player |
|
|
337
|
+
| `h` | `'left'` \| `'right'` | Horizontal position within that row |
|
|
338
|
+
|
|
339
|
+
> **Security note:** Because you create the DOM element yourself with standard browser APIs (`document.createElement`, `element.textContent`, etc.), there is no risk of XSS. Never set `.innerHTML` or `.outerHTML` from untrusted input on your custom elements.
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Writing a custom control
|
|
344
|
+
|
|
345
|
+
> **Recommendation:** As best practice, when adding a custom control, to make it compliant with the WCAG 2.2 standards, use the `setA11yLabel` method to properly set ARIA-\* elements
|
|
346
|
+
|
|
347
|
+
A `Control` is a plain object (or class instance) with this shape:
|
|
348
|
+
|
|
349
|
+
```ts
|
|
350
|
+
import type { Control, ControlPlacement } from '@openplayer/ui';
|
|
351
|
+
import type { Player } from '@openplayer/core';
|
|
352
|
+
import { setA11yLabel } from '@openplayer/ui';
|
|
353
|
+
|
|
354
|
+
function createMyControl(): Control {
|
|
355
|
+
return {
|
|
356
|
+
id: 'my-control',
|
|
357
|
+
placement: { v: 'bottom', h: 'right' } satisfies ControlPlacement,
|
|
358
|
+
|
|
359
|
+
create(player: Player): HTMLElement {
|
|
360
|
+
const btn = document.createElement('button');
|
|
361
|
+
btn.className = 'op-control__my-control';
|
|
362
|
+
setA11yLabel(btn, 'My action');
|
|
363
|
+
btn.textContent = 'Do it';
|
|
364
|
+
btn.addEventListener('click', () => player.pause());
|
|
365
|
+
return btn;
|
|
366
|
+
},
|
|
367
|
+
|
|
368
|
+
destroy() {
|
|
369
|
+
// Optional: clean up any timers or subscriptions you set up in create().
|
|
370
|
+
},
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
If you want to share a control across multiple player instances, package it as a factory function:
|
|
376
|
+
|
|
377
|
+
```ts
|
|
378
|
+
import type { Control, ControlPlacement } from '@openplayer/ui';
|
|
379
|
+
|
|
380
|
+
function createNextEpisodeControl(onNext: () => void): Control {
|
|
381
|
+
return {
|
|
382
|
+
id: 'next-episode',
|
|
383
|
+
placement: { v: 'bottom', h: 'right' } satisfies ControlPlacement,
|
|
384
|
+
create(player) {
|
|
385
|
+
const btn = document.createElement('button');
|
|
386
|
+
btn.className = 'op-control__next-episode';
|
|
387
|
+
btn.setAttribute('aria-label', 'Next episode');
|
|
388
|
+
btn.textContent = '⏭';
|
|
389
|
+
btn.addEventListener('click', () => {
|
|
390
|
+
player.pause();
|
|
391
|
+
onNext();
|
|
392
|
+
});
|
|
393
|
+
return btn;
|
|
394
|
+
},
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
// Usage:
|
|
399
|
+
player.controls.addControl(createNextEpisodeControl(() => loadNextEpisode()));
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
The `Control` interface:
|
|
405
|
+
|
|
406
|
+
| Property | Type | Required | Description |
|
|
407
|
+
| ----------- | --------------------------------- | -------- | -------------------------------------------------------------------------------- |
|
|
408
|
+
| `id` | `string` | Yes | Unique identifier used for tracking and deduplication |
|
|
409
|
+
| `placement` | `ControlPlacement` | Yes | Where to place the control: `{ v: 'bottom' \| 'top', h: 'left' \| 'right' }` |
|
|
410
|
+
| `create` | `(player: Player) => HTMLElement` | Yes | Returns the rendered DOM element. Receives the player instance for event binding |
|
|
411
|
+
| `destroy` | `() => void` | No | Called when the control is removed or the player is destroyed |
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
## Registering a control globally
|
|
416
|
+
|
|
417
|
+
Use `registerControl` to make a custom control available by string ID in `buildControls`. This is useful in plugin libraries or when you want to decouple the control definition from the layout configuration:
|
|
418
|
+
|
|
419
|
+
```ts
|
|
420
|
+
import { registerControl, buildControls } from '@openplayer/ui';
|
|
421
|
+
|
|
422
|
+
registerControl('next-episode', () => ({
|
|
423
|
+
id: 'next-episode',
|
|
424
|
+
placement: { v: 'bottom', h: 'right' },
|
|
425
|
+
create(player) {
|
|
426
|
+
const btn = document.createElement('button');
|
|
427
|
+
btn.textContent = '⏭';
|
|
428
|
+
btn.onclick = () => console.log('next');
|
|
429
|
+
return btn;
|
|
430
|
+
},
|
|
431
|
+
}));
|
|
432
|
+
|
|
433
|
+
// Now you can reference it by ID, just like built-in controls:
|
|
434
|
+
const controls = buildControls({
|
|
435
|
+
bottom: {
|
|
436
|
+
left: ['play', 'volume'],
|
|
437
|
+
right: ['next-episode', 'fullscreen'], // ← your custom control
|
|
438
|
+
},
|
|
439
|
+
main: ['progress'],
|
|
440
|
+
});
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## Code samples
|
|
446
|
+
|
|
447
|
+
Coming soon...
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## License
|
|
452
|
+
|
|
453
|
+
MIT — see [LICENSE](../../LICENSE).
|
|
@@ -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.dom.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.scripthost.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.esnext.disposable.d.ts","../../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.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/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.full.d.ts","../src/a11y.ts","../../core/dist/types/core/configuration.d.ts","../../core/dist/types/core/events.d.ts","../../core/dist/types/core/lease.d.ts","../../core/dist/types/core/dispose.d.ts","../../core/dist/types/core/state.d.ts","../../core/dist/types/core/plugin.d.ts","../../core/dist/types/core/index.d.ts","../../core/dist/types/core/media.d.ts","../../core/dist/types/engines/base.d.ts","../../core/dist/types/engines/html5.d.ts","../../core/dist/types/core/overlay.d.ts","../../core/dist/types/core/constants.d.ts","../../core/dist/types/core/utils.d.ts","../../core/dist/types/index.d.ts","../src/configuration.ts","../src/control.ts","../src/playback.ts","../src/overlay.ts","../src/events.ts","../src/extend.ts","../src/ui.ts","../src/controls/base.ts","../src/settings.ts","../src/controls/captions.ts","../src/controls/currenttime.ts","../src/controls/duration.ts","../src/controls/fullscreen.ts","../src/controls/play.ts","../src/controls/progress.ts","../src/controls/settings.ts","../src/controls/time.ts","../src/controls/volume.ts","../src/index.ts","../src/umd.ts","../../../node_modules/.pnpm/@jest+expect-utils@29.7.0/node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/.pnpm/chalk@4.1.2/node_modules/chalk/index.d.ts","../../../node_modules/.pnpm/@sinclair+typebox@0.27.10/node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/.pnpm/@jest+schemas@29.6.3/node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/.pnpm/pretty-format@29.7.0/node_modules/pretty-format/build/index.d.ts","../../../node_modules/.pnpm/jest-diff@29.7.0/node_modules/jest-diff/build/index.d.ts","../../../node_modules/.pnpm/jest-matcher-utils@29.7.0/node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/.pnpm/expect@29.7.0/node_modules/expect/build/index.d.ts","../../../node_modules/.pnpm/@types+jest@29.5.14/node_modules/@types/jest/index.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@24.11.0/node_modules/@types/node/index.d.ts"],"fileIdsList":[[100,154,171,172],[91,100,154,171,172],[93,96,100,154,171,172],[100,151,152,154,171,172],[100,153,154,171,172],[154,171,172],[100,154,159,171,172,189],[100,154,155,160,165,171,172,174,186,197],[100,154,155,156,165,171,172,174],[100,154,157,171,172,198],[100,154,158,159,166,171,172,175],[100,154,159,171,172,186,194],[100,154,160,162,165,171,172,174],[100,153,154,161,171,172],[100,154,162,163,171,172],[100,154,164,165,171,172],[100,153,154,165,171,172],[100,154,165,166,167,171,172,186,197],[100,154,165,166,167,171,172,181,186,189],[100,146,154,162,165,168,171,172,174,186,197],[100,154,165,166,168,169,171,172,174,186,194,197],[100,154,168,170,171,172,186,194,197],[98,99,100,101,102,103,104,105,147,148,149,150,151,152,153,154,155,156,157,158,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],[100,154,165,171,172],[100,154,171,172,173,197],[100,154,162,165,171,172,174,186],[100,154,171,172,175],[100,154,171,172,176],[100,153,154,171,172,177],[100,151,152,153,154,155,156,157,158,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],[100,154,171,172,179],[100,154,171,172,180],[100,154,165,171,172,181,182],[100,154,171,172,181,183,198,200],[100,154,166,171,172],[100,154,165,171,172,186,187,189],[100,154,171,172,188,189],[100,154,171,172,186,187],[100,154,171,172,189],[100,154,171,172,190],[100,151,154,171,172,186,191,197],[100,154,165,171,172,192,193],[100,154,171,172,192,193],[100,154,159,171,172,174,186,194],[100,154,171,172,195],[100,154,171,172,174,196],[100,154,168,171,172,180,197],[100,154,159,171,172,198],[100,154,171,172,186,199],[100,154,171,172,173,200],[100,154,171,172,201],[100,154,159,171,172],[100,146,154,171,172],[100,154,171,172,202],[100,146,154,165,167,171,172,177,186,189,197,199,200,202],[100,154,171,172,186,203],[89,95,100,154,171,172],[93,100,154,171,172],[90,94,100,154,171,172],[92,100,154,171,172],[100,112,115,118,119,154,171,172,197],[100,115,154,171,172,186,197],[100,115,119,154,171,172,197],[100,154,171,172,186],[100,109,154,171,172],[100,113,154,171,172],[100,111,112,115,154,171,172,197],[100,154,171,172,174,194],[100,154,171,172,204],[100,109,154,171,172,204],[100,111,115,154,171,172,174,197],[100,106,107,108,110,114,154,165,171,172,186,197],[100,115,123,131,154,171,172],[100,107,113,154,171,172],[100,115,140,141,154,171,172],[100,107,110,115,154,171,172,189,197,204],[100,115,154,171,172],[100,111,115,154,171,172,197],[100,106,154,171,172],[100,109,110,111,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,141,142,143,144,145,154,171,172],[100,115,133,136,154,162,171,172],[100,115,123,124,125,154,171,172],[100,113,115,124,126,154,171,172],[100,114,154,171,172],[100,107,109,115,154,171,172],[100,115,119,124,126,154,171,172],[100,119,154,171,172],[100,113,115,118,154,171,172,197],[100,107,111,115,123,154,171,172],[100,115,133,154,171,172],[100,126,154,171,172],[100,109,115,140,154,171,172,189,202,204],[55,56,57,59,60,100,154,171,172],[56,61,100,154,171,172],[56,100,154,171,172],[56,57,58,59,61,100,154,171,172],[56,62,100,154,171,172],[62,63,100,154,171,172],[55,56,57,58,59,60,61,62,63,64,65,66,67,100,154,171,172],[68,100,154,171,172],[68,70,100,154,171,172],[54,68,69,70,71,76,77,100,154,171,172],[68,70,76,100,154,171,172],[68,69,70,76,100,154,171,172],[54,68,69,70,76,100,154,171,172],[54,68,69,70,71,76,100,154,171,172],[54,68,69,70,76,77,100,154,171,172],[70,76,79,80,100,154,171,172],[68,69,71,72,100,154,171,172],[54,69,70,74,75,76,78,79,80,81,82,83,84,85,86,100,154,171,172],[54,68,69,71,100,154,171,172],[68,69,70,72,73,100,154,171,172],[68,70,74,75,76,78,79,80,81,82,83,84,85,86,100,154,171,172]],"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":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","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":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"fb561d6d15d9ca0ebf9f2429f0f6ff59a5b7f281d176438ea31496ba174a17a3","signature":"6966a135a6440d635b7535fe774e8b86bec2ee6433411f1ab0c032f93b80cd25"},"70fba65c9d1b53c6f9781c06f8957c12048e4152cc3d4075d1fd793be81b2122","2e2d4be3c79cdf4943849e9f72da272431d9ea24a4325df6dcbdf5c521a13638","81cf4184adbc41b34305f9472ccddabdd4f04c62b0ad99ba71bec06f61ada0eb","cdf2e11d4fc6fd22798ebed27d52d88633c177fa4c3e4d4691259b20eb565b0b","7a0a2e5ffc11cd14e752fb718636b56737a826d7db821f5e84c63ad73faa0b8a","b000a9e9daea63ef6fa8d9e7ea6d02e2b913164e86392e267b01752719891223","db2528617d48408ae0b225a2d81f85db2d3c398152522937c04d0b0e2415886b","f0e086799ee16bff822b9ca71c9c0b6dab6f6a8843cdcc76b67596d41494bde8","32258c96489e4699cad189c88a25c30844e96dfd31651c68e4a09e308e4374d3","ea4f730a74a42dffd08b822fdd60b2e94742566e8c270b3b5b03362298cb8283","a05d02394c51b9e0a82990dca7fcf9cbb55c39d9c44842c874974d00ee8ebdc3","593affee4870a2a8c5bcc6beab16382d5d4713191723e5e23aef03b366bc5ff3","18a813adec9859e3eaac20f7599cdec27a89f01b6c1387afd8ff50e527271d6e","464a2d6c3fea072d022f01509babb5ce69e2f89aa7f33548550732093ce1e021",{"version":"03c753a50a50b73ee16d197e089c83a20f45e8d4bfd50dc4a9abe970b888a6cf","signature":"9f68bbf3a49f82be6b5c69201b7fdedda900e5faf375d5be5d56298d47929cdc"},{"version":"048bd0430532683693bdf022ed6a947517ec1726a7577cdd2fabfaf8ab9a5b27","signature":"2e2e31400b0ad7ca73d84b411647e8a1484bfae0940c3414da576c2618e4e401"},{"version":"6dc04f7255ae262953c98ee87c8a2f1f7bebc007f323db153e9d449b2ed1923c","signature":"54fb34f114af3a6f1a402a066b50b855e2f27641a5b97fa25880bbabb16652ad"},{"version":"8d600e4627fee8e2f07b9a3ec70f87319b257a282dc4cd22edebc2888f1ea2da","signature":"deabc3a101bde26fa731a3f1034b12ab8e420e2c1c6b2e18702ec32a03350e4b"},{"version":"d3c30f3238c7a4febf4670076a1042ff092189f04fcf38822d1d450f4cb4f363","signature":"4322d7f517b552305f93df052b4d85b8afeb344f57437fdd68f0fe8a3fa05bcc"},{"version":"a432196f7d66a4f5cbb1539275cacfbac063ae3049ecf0731e8d6d0edc97ea03","signature":"86eb6aa1094f562606743bcbb51532c7090c3b6fb9a8804a55945988c84516f5"},{"version":"1e1f0de238495b6affbf8d13c595d2025e950c2014be856ee41ea610b1836cbf","signature":"4f62eb7b1b009c23af4ffe7faec99ec15a9f4b5fc6fda02f2792fb21497db7fa"},{"version":"986397aad6a90af9280321295838a3ab7f024d6bf68dec852056fbfe4c094531","signature":"f50c83c77df65ca4a28f9fab004eadd6d86c769c758cfae35c4b76222fe0f60d"},{"version":"8f43a1faa62d63d0008189d7bc4e1c94cd4b53116d6ebfb8d9468fd223911497","signature":"d44d499936e0f38bd5b2086eb7ce906bff2221cb5d0d2b2af123ed68ed8b9318"},{"version":"6bf10eb6551dddf49894906374be58b4de8d5c200be078802db265e7d68103f1","signature":"2dd9119f6d03ac355221d5ac37f5895b7e4610f9f8648be67c53abfa06ab8403"},{"version":"b05a84e90081257560ebed525d238dda1825c84d10e3f6dfd72443a821d9634f","signature":"8eac5205bef745012270e2990093a8b61bcab778b9b7eea4dcf174e7218f1769"},{"version":"0f795f76837aa807db274e2bcf362825927e895a05996aa01690ae3c849e6ab1","signature":"10782542a214ebd1d29c55f2daaf64f4b293fa02d63debc4c1bad885006770c4"},{"version":"e80e1c4c9f582ad97a4be4a200824fa563af3f8e96b87297505940bf05090794","signature":"3b161c83345becc38ed45e6545880c7f3eb84fe12f35c354b277ac3668ee492a"},{"version":"d22b02cd3f64a4943535e9ee2fd46696e474827c58ae5eac8668f3c1892929cf","signature":"d10a5c16f8276ce6fbbde574853eca4469bba4ac0aa199aafc6aecb095e2c279"},{"version":"3eb4f21f615922ba96e30748e20950b83854e7fd56c4a0ecd9c1f81c8984c13d","signature":"6532f5d02698416bf965e684927b661779f24803c2dde7c0f2d873924ef40399"},{"version":"7f72832b4cb9b2907c1036f0ed0c7d628fd8f958bab7df723123fda4d8181698","signature":"231e5324ab216a1d43830f5f0435ce98cf4e7529ad5742b96cd1088b79a55026"},{"version":"daa77abfb307546e16440c3acb39fda1e1fb21e4581f04568f9fc4ab4b79c349","signature":"6e1793fd2079c8fda25634f2d28200c25d8d89174f249ce519f5922e90580d1d"},{"version":"8b9aab2aa97e856538ebce2eec44abf95e1d0ec2befe1e7229085c5595212835","signature":"9607ec44700195bd77767cc8bb04957fa08aa921ef938a50c171a1dfc7da4665"},{"version":"36c3e78afe7e2b3fee3e8de031c973af228f474ff6e870d26c9ea98d9a51bb06","signature":"a4e1ea67103fc838f1790820c4f39a57f32835616986a8c424c08f7de9578c46"},{"version":"b0eaecd0bb9d3f761027d625eb46388b2b0bfa111122509f5b014af478a5bcd5","signature":"3474e256b46f1cf1e7e57cb507ad94204715dc532843cc85e7594a259b81379d","affectsGlobalScope":true},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"e1028394c1cf96d5d057ecc647e31e457b919092f882ed0c7092152b077fed9d","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"f724236417941ea77ec8d38c6b7021f5fb7f8521c7f8c1538e87661f2c6a0774","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b21e13ed07d0df176ae31d6b7f01f7b17d66dbeb489c0d31d00de2ca14883da","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"9d8f9e63e29a3396285620908e7f14d874d066caea747dc4b2c378f0599166b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f929f0b6b3421a2d34344b0f421f45aeb2c84ad365ebf29d04312023b3accc58","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc8c6f5322961b56d9906601b20798725df60baeab45ec014fba9f795d5596fd","impliedFormat":1},{"version":"0904660ae854e6d41f6ff25356db1d654436c6305b0f0aa89d1532df0253486e","impliedFormat":1},{"version":"9cdfd0a77dd7eeed57e91d3f449274ea2470abdb7e167a2f146b1ea8de6224e0","impliedFormat":1},{"version":"230bdc111d7578276e4a3bb9d075d85c78c6b68f428c3a9935e2eaa10f4ae1f5","impliedFormat":1},{"version":"e8aabbee5e7b9101b03bb4222607d57f38859b8115a8050a4eb91b4ee43a3a73","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"0e5974dfff7a97181c7c376545f126b20acf2f1341db7d3fccea4977bf3ce19c","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"145dcf25fd4967c610c53d93d7bc4dce8fbb1b6dd7935362472d4ae49363c7ba","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"04bf1aa481d1adfb16d93d76e44ce71c51c8ef68039d849926551199489637f6","impliedFormat":1},{"version":"9043daec15206650fa119bad6b8d70136021ea7d52673a71f79a87a42ee38d44","affectsGlobalScope":true,"impliedFormat":1},{"version":"19098980aa72095ea5786f527ff6b249cc940d1ee1e6a3b2cd2c1a73fcb5a376","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"2031147ea9cbd361712e0c5d5ebd518b5cead2bbc4d2d501ab15c88385a5aba7","impliedFormat":1},{"version":"b33b74b97952d9bf4fbd2951dcfbb5136656ddb310ce1c84518aaa77dbca9992","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"8d117798e5228c7fdff887f44851d07320739c5cc0d511afae8f250c51809a36","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"8e7c3bed5f19ade8f911677ddc83052e2283e25b0a8654cd89db9079d4b323c7","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"ccf3afaeebbeee4ca9092101e99fd6abd681116b6e5ec23e381bbb1e1f32262c","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"ab7818a9d57a9297b90e456fc68b77f84d74395a9210a3cfa9d87db33aff8b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"3585d6891e9ea18e07d0755a6d90d71331558ba5dc5561933553209f886db106","affectsGlobalScope":true,"impliedFormat":1},{"version":"86be71cbb0593468644932a6eb96d527cfa600cecfc0b698af5f52e51804451d","impliedFormat":1},{"version":"255d948f87f24ffd57bcb2fdf95792fd418a2e1f712a98cf2cce88744d75085c","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"0c613a01c175585bc5ab6d0d97ce3cf25e6539615ca61e16aa1cab0b1499ea43","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a034894bf28c220a331c7a0229d33564803abe2ac1b9a5feee91b6b9b6e88ea","impliedFormat":1},{"version":"d7e9ab1b0996639047c61c1e62f85c620e4382206b3abb430d9a21fb7bc23c77","impliedFormat":1}],"root":[54,[69,88]],"options":{"composite":true,"declaration":true,"declarationDir":"./types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":true},"referencedMap":[[89,1],[92,2],[91,1],[97,3],[151,4],[152,4],[153,5],[100,6],[154,7],[155,8],[156,9],[98,1],[157,10],[158,11],[159,12],[160,13],[161,14],[162,15],[163,15],[164,16],[165,17],[166,18],[167,19],[101,1],[99,1],[168,20],[169,21],[170,22],[204,23],[171,24],[172,1],[173,25],[174,26],[175,27],[176,28],[177,29],[178,30],[179,31],[180,32],[181,33],[182,33],[183,34],[184,1],[185,35],[186,36],[188,37],[187,38],[189,39],[190,40],[191,41],[192,42],[193,43],[194,44],[195,45],[196,46],[197,47],[198,48],[199,49],[200,50],[201,51],[102,1],[103,52],[104,1],[105,1],[147,53],[148,54],[149,1],[150,39],[202,55],[203,56],[90,1],[96,57],[94,58],[95,59],[93,60],[51,1],[52,1],[10,1],[8,1],[9,1],[14,1],[13,1],[2,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[3,1],[23,1],[24,1],[4,1],[25,1],[29,1],[26,1],[27,1],[28,1],[30,1],[31,1],[32,1],[5,1],[33,1],[34,1],[35,1],[36,1],[6,1],[40,1],[37,1],[38,1],[39,1],[41,1],[7,1],[42,1],[53,1],[47,1],[48,1],[43,1],[44,1],[45,1],[46,1],[1,1],[49,1],[50,1],[12,1],[11,1],[123,61],[135,62],[121,63],[136,64],[145,65],[112,66],[113,67],[111,68],[144,69],[139,70],[143,71],[115,72],[132,73],[114,74],[142,75],[109,76],[110,70],[116,77],[117,1],[122,78],[120,77],[107,79],[146,80],[137,81],[126,82],[125,77],[127,83],[130,84],[124,85],[128,86],[140,69],[118,87],[119,88],[131,89],[108,64],[134,90],[133,77],[129,91],[138,1],[106,1],[141,92],[55,1],[66,1],[58,1],[56,1],[61,93],[57,1],[62,94],[65,95],[60,96],[59,1],[67,1],[63,97],[64,98],[68,99],[54,1],[69,100],[70,100],[76,101],[78,102],[79,103],[80,104],[81,105],[82,106],[83,105],[84,107],[85,108],[86,106],[73,109],[74,101],[87,110],[72,111],[71,100],[77,100],[75,112],[88,113]],"latestChangedDtsFile":"./types/umd.d.ts","version":"5.9.3"}
|