@yume-chan/scrcpy-decoder-webcodecs 0.0.22 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.json CHANGED
@@ -1,6 +1,21 @@
1
1
  {
2
2
  "name": "@yume-chan/scrcpy-decoder-webcodecs",
3
3
  "entries": [
4
+ {
5
+ "version": "0.0.23",
6
+ "tag": "@yume-chan/scrcpy-decoder-webcodecs_v0.0.23",
7
+ "date": "Thu, 21 Mar 2024 03:15:10 GMT",
8
+ "comments": {
9
+ "none": [
10
+ {
11
+ "comment": "Add `sizeChanged` event"
12
+ },
13
+ {
14
+ "comment": "Add WebGL and Bitmap based video renderers, which are 1.5 to 3 times faster on Android devices"
15
+ }
16
+ ]
17
+ }
18
+ },
4
19
  {
5
20
  "version": "0.0.22",
6
21
  "tag": "@yume-chan/scrcpy-decoder-webcodecs_v0.0.22",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,14 @@
1
1
  # Change Log - @yume-chan/scrcpy-decoder-webcodecs
2
2
 
3
- This log was last generated on Wed, 13 Dec 2023 05:57:27 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 21 Mar 2024 03:15:10 GMT and should not be manually modified.
4
+
5
+ ## 0.0.23
6
+ Thu, 21 Mar 2024 03:15:10 GMT
7
+
8
+ ### Updates
9
+
10
+ - Add `sizeChanged` event
11
+ - Add WebGL and Bitmap based video renderers, which are 1.5 to 3 times faster on Android devices
4
12
 
5
13
  ## 0.0.22
6
14
  Wed, 13 Dec 2023 05:57:27 GMT
@@ -0,0 +1,7 @@
1
+ import type { FrameRenderer } from "./renderer.js";
2
+ export declare class BitmapFrameRenderer implements FrameRenderer {
3
+ #private;
4
+ constructor(canvas: HTMLCanvasElement);
5
+ draw(frame: VideoFrame): void;
6
+ }
7
+ //# sourceMappingURL=bitmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitmap.d.ts","sourceRoot":"","sources":["../src/bitmap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,qBAAa,mBAAoB,YAAW,aAAa;;gBAGzC,MAAM,EAAE,iBAAiB;IAIrC,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;CAchC"}
package/esm/bitmap.js ADDED
@@ -0,0 +1,17 @@
1
+ export class BitmapFrameRenderer {
2
+ #context;
3
+ constructor(canvas) {
4
+ this.#context = canvas.getContext("bitmaprenderer", { alpha: false });
5
+ }
6
+ draw(frame) {
7
+ createImageBitmap(frame)
8
+ .then((bitmap) => {
9
+ this.#context.transferFromImageBitmap(bitmap);
10
+ frame.close();
11
+ })
12
+ .catch((e) => {
13
+ console.warn("[@yume-chan/scrcpy-decoder-webcodecs]", "VideoDecoder error", e);
14
+ });
15
+ }
16
+ }
17
+ //# sourceMappingURL=bitmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bitmap.js","sourceRoot":"","sources":["../src/bitmap.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;IAC5B,QAAQ,CAA8B;IAEtC,YAAY,MAAyB;QACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,CAAC;IAC3E,CAAC;IAED,IAAI,CAAC,KAAiB;QAClB,iBAAiB,CAAC,KAAK,CAAC;aACnB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACb,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC9C,KAAK,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,OAAO,CAAC,IAAI,CACR,uCAAuC,EACvC,oBAAoB,EACpB,CAAC,CACJ,CAAC;QACN,CAAC,CAAC,CAAC;IACX,CAAC;CACJ"}
package/esm/index.d.ts CHANGED
@@ -11,6 +11,10 @@ export declare class WebCodecsDecoder implements ScrcpyVideoDecoder {
11
11
  get renderer(): HTMLCanvasElement;
12
12
  get frameRendered(): number;
13
13
  get frameSkipped(): number;
14
+ get sizeChanged(): import("@yume-chan/event").AddEventListener<{
15
+ width: number;
16
+ height: number;
17
+ }, unknown>;
14
18
  constructor(codec: ScrcpyVideoCodecId);
15
19
  dispose(): void;
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,uBAAuB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,kBAAkB,EAGrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACR,kBAAkB,EAClB,4BAA4B,EAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAezD,qBAAa,gBAAiB,YAAW,kBAAkB;;IACvD,MAAM,CAAC,WAAW;IAIlB,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAIpE;IAGN,IAAI,KAAK,uBAER;IAGD,IAAI,QAAQ,4CAEX;IAGD,IAAI,QAAQ,sBAEX;IAGD,IAAI,aAAa,WAEhB;IAGD,IAAI,YAAY,WAEf;gBASW,KAAK,EAAE,kBAAkB;IA+IrC,OAAO;CAMV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAER,uBAAuB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,kBAAkB,EAGrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACR,kBAAkB,EAClB,4BAA4B,EAC/B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAmBzD,qBAAa,gBAAiB,YAAW,kBAAkB;;IACvD,MAAM,CAAC,WAAW;IAIlB,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAIpE;IAGN,IAAI,KAAK,uBAER;IAGD,IAAI,QAAQ,4CAEX;IAGD,IAAI,QAAQ,sBAEX;IAGD,IAAI,aAAa,WAEhB;IAGD,IAAI,YAAY,WAEf;IAGD,IAAI,WAAW;;;gBAEd;gBASW,KAAK,EAAE,kBAAkB;IA+JrC,OAAO;CAMV"}
package/esm/index.js CHANGED
@@ -1,5 +1,8 @@
1
+ import { EventEmitter } from "@yume-chan/event";
1
2
  import { ScrcpyVideoCodecId, h264ParseConfiguration, h265ParseConfiguration, } from "@yume-chan/scrcpy";
2
3
  import { WritableStream } from "@yume-chan/stream-extra";
4
+ import { BitmapFrameRenderer } from "./bitmap.js";
5
+ import { WebGLFrameRenderer } from "./webgl.js";
3
6
  function toHex(value) {
4
7
  return value.toString(16).padStart(2, "0").toUpperCase();
5
8
  }
@@ -25,9 +28,9 @@ export class WebCodecsDecoder {
25
28
  get writable() {
26
29
  return this.#writable;
27
30
  }
28
- #renderer;
31
+ #canvas;
29
32
  get renderer() {
30
- return this.#renderer;
33
+ return this.#canvas;
31
34
  }
32
35
  #frameRendered = 0;
33
36
  get frameRendered() {
@@ -37,35 +40,43 @@ export class WebCodecsDecoder {
37
40
  get frameSkipped() {
38
41
  return this.#frameSkipped;
39
42
  }
40
- #context;
43
+ #sizeChanged = new EventEmitter();
44
+ get sizeChanged() {
45
+ return this.#sizeChanged.event;
46
+ }
41
47
  #decoder;
42
48
  #config;
49
+ #renderer;
43
50
  #currentFrameRendered = false;
44
51
  #animationFrameId = 0;
45
52
  constructor(codec) {
46
53
  this.#codec = codec;
47
- this.#renderer = document.createElement("canvas");
48
- this.#context = this.#renderer.getContext("2d");
54
+ this.#canvas = document.createElement("canvas");
55
+ try {
56
+ this.#renderer = new WebGLFrameRenderer(this.#canvas);
57
+ }
58
+ catch {
59
+ this.#renderer = new BitmapFrameRenderer(this.#canvas);
60
+ }
49
61
  this.#decoder = new VideoDecoder({
50
62
  output: (frame) => {
51
63
  if (this.#currentFrameRendered) {
52
- this.#frameSkipped += 1;
64
+ this.#frameRendered += 1;
53
65
  }
54
66
  else {
55
- this.#currentFrameRendered = true;
56
- this.#frameRendered += 1;
67
+ this.#frameSkipped += 1;
57
68
  }
69
+ this.#currentFrameRendered = false;
58
70
  // PERF: H.264 renderer may draw multiple frames in one vertical sync interval to minimize latency.
59
71
  // When multiple frames are drawn in one vertical sync interval,
60
72
  // only the last one is visible to users.
61
73
  // But this ensures users can always see the most up-to-date screen.
62
74
  // This is also the behavior of official Scrcpy client.
63
75
  // https://github.com/Genymobile/scrcpy/issues/3679
64
- this.#context.drawImage(frame, 0, 0);
65
- frame.close();
76
+ this.#renderer.draw(frame);
66
77
  },
67
78
  error(e) {
68
- void e;
79
+ console.warn("[@yume-chan/scrcpy-decoder-webcodecs]", "VideoDecoder error", e);
69
80
  },
70
81
  });
71
82
  this.#writable = new WritableStream({
@@ -83,15 +94,19 @@ export class WebCodecsDecoder {
83
94
  this.#onFramePresented();
84
95
  }
85
96
  #onFramePresented = () => {
86
- this.#currentFrameRendered = false;
97
+ this.#currentFrameRendered = true;
87
98
  this.#animationFrameId = requestAnimationFrame(this.#onFramePresented);
88
99
  };
89
100
  #configure(data) {
90
101
  switch (this.#codec) {
91
102
  case ScrcpyVideoCodecId.H264: {
92
103
  const { profileIndex, constraintSet, levelIndex, croppedWidth, croppedHeight, } = h264ParseConfiguration(data);
93
- this.#renderer.width = croppedWidth;
94
- this.#renderer.height = croppedHeight;
104
+ this.#canvas.width = croppedWidth;
105
+ this.#canvas.height = croppedHeight;
106
+ this.#sizeChanged.fire({
107
+ width: croppedWidth,
108
+ height: croppedHeight,
109
+ });
95
110
  // https://www.rfc-editor.org/rfc/rfc6381#section-3.3
96
111
  // ISO Base Media File Format Name Space
97
112
  const codec = `avc1.${[profileIndex, constraintSet, levelIndex]
@@ -105,8 +120,12 @@ export class WebCodecsDecoder {
105
120
  }
106
121
  case ScrcpyVideoCodecId.H265: {
107
122
  const { generalProfileSpace, generalProfileIndex, generalProfileCompatibilitySet, generalTierFlag, generalLevelIndex, generalConstraintSet, croppedWidth, croppedHeight, } = h265ParseConfiguration(data);
108
- this.#renderer.width = croppedWidth;
109
- this.#renderer.height = croppedHeight;
123
+ this.#canvas.width = croppedWidth;
124
+ this.#canvas.height = croppedHeight;
125
+ this.#sizeChanged.fire({
126
+ width: croppedWidth,
127
+ height: croppedHeight,
128
+ });
110
129
  const codec = [
111
130
  "hev1",
112
131
  ["", "A", "B", "C"][generalProfileSpace] +
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export interface FrameRenderer {
2
+ draw(frame: VideoFrame): void;
3
+ }
4
+ //# sourceMappingURL=renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":""}
package/esm/webgl.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { FrameRenderer } from "./renderer.js";
2
+ export declare class WebGLFrameRenderer implements FrameRenderer {
3
+ #private;
4
+ static vertexShaderSource: string;
5
+ static fragmentShaderSource: string;
6
+ constructor(canvas: HTMLCanvasElement);
7
+ draw(frame: VideoFrame): void;
8
+ }
9
+ //# sourceMappingURL=webgl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl.d.ts","sourceRoot":"","sources":["../src/webgl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,qBAAa,kBAAmB,YAAW,aAAa;;IACpD,MAAM,CAAC,kBAAkB,SAW3B;IAEE,MAAM,CAAC,oBAAoB,SAQ7B;gBAIc,MAAM,EAAE,iBAAiB;IA+DrC,IAAI,CAAC,KAAK,EAAE,UAAU;CAezB"}
package/esm/webgl.js ADDED
@@ -0,0 +1,80 @@
1
+ export class WebGLFrameRenderer {
2
+ static vertexShaderSource = `
3
+ attribute vec2 xy;
4
+
5
+ varying highp vec2 uv;
6
+
7
+ void main(void) {
8
+ gl_Position = vec4(xy, 0.0, 1.0);
9
+ // Map vertex coordinates (-1 to +1) to UV coordinates (0 to 1).
10
+ // UV coordinates are Y-flipped relative to vertex coordinates.
11
+ uv = vec2((1.0 + xy.x) / 2.0, (1.0 - xy.y) / 2.0);
12
+ }
13
+ `;
14
+ static fragmentShaderSource = `
15
+ varying highp vec2 uv;
16
+
17
+ uniform sampler2D texture;
18
+
19
+ void main(void) {
20
+ gl_FragColor = texture2D(texture, uv);
21
+ }
22
+ `;
23
+ #context;
24
+ constructor(canvas) {
25
+ const gl = canvas.getContext("webgl2", {
26
+ alpha: false,
27
+ failIfMajorPerformanceCaveat: true,
28
+ }) ||
29
+ canvas.getContext("webgl", {
30
+ alpha: false,
31
+ failIfMajorPerformanceCaveat: true,
32
+ });
33
+ if (!gl) {
34
+ throw new Error("WebGL not supported");
35
+ }
36
+ this.#context = gl;
37
+ const vertexShader = gl.createShader(gl.VERTEX_SHADER);
38
+ gl.shaderSource(vertexShader, WebGLFrameRenderer.vertexShaderSource);
39
+ gl.compileShader(vertexShader);
40
+ if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
41
+ throw new Error(gl.getShaderInfoLog(vertexShader));
42
+ }
43
+ const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
44
+ gl.shaderSource(fragmentShader, WebGLFrameRenderer.fragmentShaderSource);
45
+ gl.compileShader(fragmentShader);
46
+ if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
47
+ throw new Error(gl.getShaderInfoLog(fragmentShader));
48
+ }
49
+ const shaderProgram = gl.createProgram();
50
+ gl.attachShader(shaderProgram, vertexShader);
51
+ gl.attachShader(shaderProgram, fragmentShader);
52
+ gl.linkProgram(shaderProgram);
53
+ if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
54
+ throw new Error(gl.getProgramInfoLog(shaderProgram));
55
+ }
56
+ gl.useProgram(shaderProgram);
57
+ // Vertex coordinates, clockwise from bottom-left.
58
+ const vertexBuffer = gl.createBuffer();
59
+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
60
+ gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1.0, -1.0, -1.0, +1.0, +1.0, +1.0, +1.0, -1.0]), gl.STATIC_DRAW);
61
+ const xyLocation = gl.getAttribLocation(shaderProgram, "xy");
62
+ gl.vertexAttribPointer(xyLocation, 2, gl.FLOAT, false, 0, 0);
63
+ gl.enableVertexAttribArray(xyLocation);
64
+ // Create one texture to upload frames to.
65
+ const texture = gl.createTexture();
66
+ gl.bindTexture(gl.TEXTURE_2D, texture);
67
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
68
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
69
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
70
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
71
+ }
72
+ draw(frame) {
73
+ const gl = this.#context;
74
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, frame);
75
+ frame.close();
76
+ gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
77
+ gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
78
+ }
79
+ }
80
+ //# sourceMappingURL=webgl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl.js","sourceRoot":"","sources":["../src/webgl.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yume-chan/scrcpy-decoder-webcodecs",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "description": "Raw H.264 stream decoder and renderer using WebCodecs API (requires modern browser).",
5
5
  "keywords": [
6
6
  "adb",
@@ -27,21 +27,22 @@
27
27
  "main": "esm/index.js",
28
28
  "types": "esm/index.d.ts",
29
29
  "dependencies": {
30
- "@yume-chan/scrcpy": "^0.0.22",
31
- "@yume-chan/scrcpy-decoder-tinyh264": "^0.0.22",
32
- "@yume-chan/stream-extra": "^0.0.22",
30
+ "@yume-chan/event": "^0.0.23",
31
+ "@yume-chan/scrcpy": "^0.0.23",
32
+ "@yume-chan/scrcpy-decoder-tinyh264": "^0.0.23",
33
+ "@yume-chan/stream-extra": "^0.0.23",
33
34
  "tslib": "^2.6.2"
34
35
  },
35
36
  "devDependencies": {
36
- "@jest/globals": "^29.7.0",
37
+ "@jest/globals": "^30.0.0-alpha.3",
37
38
  "@yume-chan/eslint-config": "^1.0.0",
38
39
  "@yume-chan/tsconfig": "^1.0.0",
39
40
  "cross-env": "^7.0.3",
40
- "eslint": "^8.55.0",
41
- "jest": "^29.7.0",
42
- "prettier": "^3.1.0",
43
- "ts-jest": "^29.1.1",
44
- "typescript": "^5.3.2"
41
+ "eslint": "^8.57.0",
42
+ "jest": "^30.0.0-alpha.3",
43
+ "prettier": "^3.2.5",
44
+ "ts-jest": "^29.1.2",
45
+ "typescript": "^5.4.2"
45
46
  },
46
47
  "scripts": {
47
48
  "build": "tsc -b tsconfig.build.json",
package/src/bitmap.ts ADDED
@@ -0,0 +1,24 @@
1
+ import type { FrameRenderer } from "./renderer.js";
2
+
3
+ export class BitmapFrameRenderer implements FrameRenderer {
4
+ #context: ImageBitmapRenderingContext;
5
+
6
+ constructor(canvas: HTMLCanvasElement) {
7
+ this.#context = canvas.getContext("bitmaprenderer", { alpha: false })!;
8
+ }
9
+
10
+ draw(frame: VideoFrame): void {
11
+ createImageBitmap(frame)
12
+ .then((bitmap) => {
13
+ this.#context.transferFromImageBitmap(bitmap);
14
+ frame.close();
15
+ })
16
+ .catch((e) => {
17
+ console.warn(
18
+ "[@yume-chan/scrcpy-decoder-webcodecs]",
19
+ "VideoDecoder error",
20
+ e,
21
+ );
22
+ });
23
+ }
24
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { EventEmitter } from "@yume-chan/event";
1
2
  import type {
2
3
  ScrcpyMediaStreamDataPacket,
3
4
  ScrcpyMediaStreamPacket,
@@ -13,6 +14,10 @@ import type {
13
14
  } from "@yume-chan/scrcpy-decoder-tinyh264";
14
15
  import { WritableStream } from "@yume-chan/stream-extra";
15
16
 
17
+ import { BitmapFrameRenderer } from "./bitmap.js";
18
+ import type { FrameRenderer } from "./renderer.js";
19
+ import { WebGLFrameRenderer } from "./webgl.js";
20
+
16
21
  function toHex(value: number) {
17
22
  return value.toString(16).padStart(2, "0").toUpperCase();
18
23
  }
@@ -47,9 +52,9 @@ export class WebCodecsDecoder implements ScrcpyVideoDecoder {
47
52
  return this.#writable;
48
53
  }
49
54
 
50
- #renderer: HTMLCanvasElement;
55
+ #canvas: HTMLCanvasElement;
51
56
  get renderer() {
52
- return this.#renderer;
57
+ return this.#canvas;
53
58
  }
54
59
 
55
60
  #frameRendered = 0;
@@ -62,9 +67,14 @@ export class WebCodecsDecoder implements ScrcpyVideoDecoder {
62
67
  return this.#frameSkipped;
63
68
  }
64
69
 
65
- #context: CanvasRenderingContext2D;
70
+ #sizeChanged = new EventEmitter<{ width: number; height: number }>();
71
+ get sizeChanged() {
72
+ return this.#sizeChanged.event;
73
+ }
74
+
66
75
  #decoder: VideoDecoder;
67
76
  #config: Uint8Array | undefined;
77
+ #renderer: FrameRenderer;
68
78
 
69
79
  #currentFrameRendered = false;
70
80
  #animationFrameId = 0;
@@ -72,17 +82,22 @@ export class WebCodecsDecoder implements ScrcpyVideoDecoder {
72
82
  constructor(codec: ScrcpyVideoCodecId) {
73
83
  this.#codec = codec;
74
84
 
75
- this.#renderer = document.createElement("canvas");
85
+ this.#canvas = document.createElement("canvas");
86
+
87
+ try {
88
+ this.#renderer = new WebGLFrameRenderer(this.#canvas);
89
+ } catch {
90
+ this.#renderer = new BitmapFrameRenderer(this.#canvas);
91
+ }
76
92
 
77
- this.#context = this.#renderer.getContext("2d")!;
78
93
  this.#decoder = new VideoDecoder({
79
94
  output: (frame) => {
80
95
  if (this.#currentFrameRendered) {
81
- this.#frameSkipped += 1;
82
- } else {
83
- this.#currentFrameRendered = true;
84
96
  this.#frameRendered += 1;
97
+ } else {
98
+ this.#frameSkipped += 1;
85
99
  }
100
+ this.#currentFrameRendered = false;
86
101
 
87
102
  // PERF: H.264 renderer may draw multiple frames in one vertical sync interval to minimize latency.
88
103
  // When multiple frames are drawn in one vertical sync interval,
@@ -90,11 +105,14 @@ export class WebCodecsDecoder implements ScrcpyVideoDecoder {
90
105
  // But this ensures users can always see the most up-to-date screen.
91
106
  // This is also the behavior of official Scrcpy client.
92
107
  // https://github.com/Genymobile/scrcpy/issues/3679
93
- this.#context.drawImage(frame, 0, 0);
94
- frame.close();
108
+ this.#renderer.draw(frame);
95
109
  },
96
110
  error(e) {
97
- void e;
111
+ console.warn(
112
+ "[@yume-chan/scrcpy-decoder-webcodecs]",
113
+ "VideoDecoder error",
114
+ e,
115
+ );
98
116
  },
99
117
  });
100
118
 
@@ -115,7 +133,7 @@ export class WebCodecsDecoder implements ScrcpyVideoDecoder {
115
133
  }
116
134
 
117
135
  #onFramePresented = () => {
118
- this.#currentFrameRendered = false;
136
+ this.#currentFrameRendered = true;
119
137
  this.#animationFrameId = requestAnimationFrame(this.#onFramePresented);
120
138
  };
121
139
 
@@ -130,8 +148,12 @@ export class WebCodecsDecoder implements ScrcpyVideoDecoder {
130
148
  croppedHeight,
131
149
  } = h264ParseConfiguration(data);
132
150
 
133
- this.#renderer.width = croppedWidth;
134
- this.#renderer.height = croppedHeight;
151
+ this.#canvas.width = croppedWidth;
152
+ this.#canvas.height = croppedHeight;
153
+ this.#sizeChanged.fire({
154
+ width: croppedWidth,
155
+ height: croppedHeight,
156
+ });
135
157
 
136
158
  // https://www.rfc-editor.org/rfc/rfc6381#section-3.3
137
159
  // ISO Base Media File Format Name Space
@@ -156,8 +178,12 @@ export class WebCodecsDecoder implements ScrcpyVideoDecoder {
156
178
  croppedHeight,
157
179
  } = h265ParseConfiguration(data);
158
180
 
159
- this.#renderer.width = croppedWidth;
160
- this.#renderer.height = croppedHeight;
181
+ this.#canvas.width = croppedWidth;
182
+ this.#canvas.height = croppedHeight;
183
+ this.#sizeChanged.fire({
184
+ width: croppedWidth,
185
+ height: croppedHeight,
186
+ });
161
187
 
162
188
  const codec = [
163
189
  "hev1",
@@ -0,0 +1,3 @@
1
+ export interface FrameRenderer {
2
+ draw(frame: VideoFrame): void;
3
+ }
package/src/webgl.ts ADDED
@@ -0,0 +1,107 @@
1
+ import type { FrameRenderer } from "./renderer.js";
2
+
3
+ export class WebGLFrameRenderer implements FrameRenderer {
4
+ static vertexShaderSource = `
5
+ attribute vec2 xy;
6
+
7
+ varying highp vec2 uv;
8
+
9
+ void main(void) {
10
+ gl_Position = vec4(xy, 0.0, 1.0);
11
+ // Map vertex coordinates (-1 to +1) to UV coordinates (0 to 1).
12
+ // UV coordinates are Y-flipped relative to vertex coordinates.
13
+ uv = vec2((1.0 + xy.x) / 2.0, (1.0 - xy.y) / 2.0);
14
+ }
15
+ `;
16
+
17
+ static fragmentShaderSource = `
18
+ varying highp vec2 uv;
19
+
20
+ uniform sampler2D texture;
21
+
22
+ void main(void) {
23
+ gl_FragColor = texture2D(texture, uv);
24
+ }
25
+ `;
26
+
27
+ #context: WebGLRenderingContext;
28
+
29
+ constructor(canvas: HTMLCanvasElement) {
30
+ const gl =
31
+ canvas.getContext("webgl2", {
32
+ alpha: false,
33
+ failIfMajorPerformanceCaveat: true,
34
+ }) ||
35
+ canvas.getContext("webgl", {
36
+ alpha: false,
37
+ failIfMajorPerformanceCaveat: true,
38
+ });
39
+ if (!gl) {
40
+ throw new Error("WebGL not supported");
41
+ }
42
+ this.#context = gl;
43
+
44
+ const vertexShader = gl.createShader(gl.VERTEX_SHADER)!;
45
+ gl.shaderSource(vertexShader, WebGLFrameRenderer.vertexShaderSource);
46
+ gl.compileShader(vertexShader);
47
+ if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
48
+ throw new Error(gl.getShaderInfoLog(vertexShader)!);
49
+ }
50
+
51
+ const fragmentShader = gl.createShader(gl.FRAGMENT_SHADER)!;
52
+ gl.shaderSource(
53
+ fragmentShader,
54
+ WebGLFrameRenderer.fragmentShaderSource,
55
+ );
56
+ gl.compileShader(fragmentShader);
57
+ if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
58
+ throw new Error(gl.getShaderInfoLog(fragmentShader)!);
59
+ }
60
+
61
+ const shaderProgram = gl.createProgram()!;
62
+ gl.attachShader(shaderProgram, vertexShader);
63
+ gl.attachShader(shaderProgram, fragmentShader);
64
+ gl.linkProgram(shaderProgram);
65
+ if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
66
+ throw new Error(gl.getProgramInfoLog(shaderProgram)!);
67
+ }
68
+ gl.useProgram(shaderProgram);
69
+
70
+ // Vertex coordinates, clockwise from bottom-left.
71
+ const vertexBuffer = gl.createBuffer();
72
+ gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
73
+ gl.bufferData(
74
+ gl.ARRAY_BUFFER,
75
+ new Float32Array([-1.0, -1.0, -1.0, +1.0, +1.0, +1.0, +1.0, -1.0]),
76
+ gl.STATIC_DRAW,
77
+ );
78
+
79
+ const xyLocation = gl.getAttribLocation(shaderProgram, "xy");
80
+ gl.vertexAttribPointer(xyLocation, 2, gl.FLOAT, false, 0, 0);
81
+ gl.enableVertexAttribArray(xyLocation);
82
+
83
+ // Create one texture to upload frames to.
84
+ const texture = gl.createTexture();
85
+ gl.bindTexture(gl.TEXTURE_2D, texture);
86
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
87
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
88
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
89
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
90
+ }
91
+
92
+ draw(frame: VideoFrame) {
93
+ const gl = this.#context;
94
+ gl.texImage2D(
95
+ gl.TEXTURE_2D,
96
+ 0,
97
+ gl.RGBA,
98
+ gl.RGBA,
99
+ gl.UNSIGNED_BYTE,
100
+ frame,
101
+ );
102
+ frame.close();
103
+
104
+ gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
105
+ gl.drawArrays(gl.TRIANGLE_FAN, 0, 4);
106
+ }
107
+ }
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es5.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2016.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2017.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2018.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2019.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2021.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2022.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2023.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.esnext.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.dom.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2023.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.decorators.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.3.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../common/temp/node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.d.ts","../../common/temp/node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/modules/index.d.ts","../scrcpy/esm/codec/av1.d.ts","../scrcpy/esm/codec/h264.d.ts","../scrcpy/esm/codec/nalu.d.ts","../scrcpy/esm/codec/h265.d.ts","../scrcpy/esm/codec/index.d.ts","../struct/esm/basic/options.d.ts","../struct/esm/basic/struct-value.d.ts","../struct/esm/basic/field-value.d.ts","../struct/esm/utils.d.ts","../struct/esm/basic/stream.d.ts","../struct/esm/basic/definition.d.ts","../struct/esm/basic/index.d.ts","../struct/esm/types/bigint.d.ts","../struct/esm/types/buffer/base.d.ts","../struct/esm/types/buffer/fixed-length.d.ts","../struct/esm/types/buffer/variable-length.d.ts","../struct/esm/types/buffer/index.d.ts","../struct/esm/types/number.d.ts","../struct/esm/types/index.d.ts","../struct/esm/struct.d.ts","../struct/esm/sync-promise.d.ts","../struct/esm/index.d.ts","../../common/temp/node_modules/.pnpm/web-streams-polyfill@4.0.0-beta.3/node_modules/web-streams-polyfill/types/ponyfill.d.ts","../stream-extra/esm/stream.d.ts","../stream-extra/esm/buffered.d.ts","../stream-extra/esm/buffered-transform.d.ts","../stream-extra/esm/concat.d.ts","../stream-extra/esm/consumable.d.ts","../stream-extra/esm/decode-utf8.d.ts","../stream-extra/esm/distribution.d.ts","../stream-extra/esm/wrap-readable.d.ts","../stream-extra/esm/duplex.d.ts","../stream-extra/esm/inspect.d.ts","../stream-extra/esm/pipe-from.d.ts","../stream-extra/esm/push-readable.d.ts","../stream-extra/esm/split-string.d.ts","../stream-extra/esm/struct-deserialize.d.ts","../stream-extra/esm/struct-serialize.d.ts","../stream-extra/esm/wrap-writable.d.ts","../stream-extra/esm/index.d.ts","../scrcpy/esm/options/1_16/scroll.d.ts","../scrcpy/esm/options/codec.d.ts","../scrcpy/esm/options/types.d.ts","../scrcpy/esm/options/1_16/codec-options.d.ts","../scrcpy/esm/options/1_16/float-to-uint16.d.ts","../scrcpy/esm/options/1_16/init.d.ts","../scrcpy/esm/options/1_16/message.d.ts","../scrcpy/esm/options/1_16/options.d.ts","../scrcpy/esm/options/1_16/index.d.ts","../scrcpy/esm/options/1_17.d.ts","../scrcpy/esm/options/1_18.d.ts","../scrcpy/esm/options/1_21.d.ts","../scrcpy/esm/options/1_22/init.d.ts","../scrcpy/esm/options/1_22/options.d.ts","../scrcpy/esm/options/1_22/scroll.d.ts","../scrcpy/esm/options/1_22/index.d.ts","../scrcpy/esm/options/1_23.d.ts","../scrcpy/esm/options/1_24.d.ts","../scrcpy/esm/options/1_25/options.d.ts","../scrcpy/esm/options/1_25/scroll.d.ts","../scrcpy/esm/options/1_25/index.d.ts","../scrcpy/esm/options/2_0.d.ts","../scrcpy/esm/options/2_1.d.ts","../scrcpy/esm/options/2_2.d.ts","../scrcpy/esm/options/latest.d.ts","../scrcpy/esm/options/index.d.ts","../scrcpy/esm/control/back-or-screen-on.d.ts","../scrcpy/esm/control/basic.d.ts","../scrcpy/esm/control/inject-touch.d.ts","../scrcpy/esm/control/hover-helper.d.ts","../scrcpy/esm/control/inject-keycode.d.ts","../scrcpy/esm/control/inject-scroll.d.ts","../scrcpy/esm/control/inject-text.d.ts","../scrcpy/esm/control/rotate-device.d.ts","../scrcpy/esm/control/set-screen-power-mode.d.ts","../scrcpy/esm/control/serializer.d.ts","../scrcpy/esm/control/set-clipboard.d.ts","../scrcpy/esm/control/type.d.ts","../scrcpy/esm/control/writer.d.ts","../scrcpy/esm/control/index.d.ts","../scrcpy/esm/device-message/type.d.ts","../scrcpy/esm/device-message/ack-clipboard.d.ts","../scrcpy/esm/device-message/clipboard.d.ts","../scrcpy/esm/device-message/stream.d.ts","../scrcpy/esm/device-message/index.d.ts","../scrcpy/esm/index.d.ts","../event/esm/disposable.d.ts","../event/esm/event.d.ts","../event/esm/event-emitter.d.ts","../event/esm/utils.d.ts","../event/esm/index.d.ts","../scrcpy-decoder-tinyh264/esm/types.d.ts","../scrcpy-decoder-tinyh264/esm/decoder.d.ts","../scrcpy-decoder-tinyh264/esm/wrapper.d.ts","../scrcpy-decoder-tinyh264/esm/index.d.ts","./src/index.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","impliedFormat":1},{"version":"bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c","impliedFormat":1},{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true,"impliedFormat":1},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","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":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","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":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true,"impliedFormat":1},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true,"impliedFormat":1},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true,"impliedFormat":1},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true,"impliedFormat":1},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","impliedFormat":1},{"version":"31973b272be35eab5ecf20a38ea54bec84cdc0317117590cb813c72fe0ef75b3","impliedFormat":99},{"version":"ad324e6170d0e050a2681b9f6e7bb93d5c84240df5b513db656331fab3f238a6","impliedFormat":99},{"version":"8ba25a7b32fa40a6aad84745006f198b725c9c8013574df36505dbb4d098d92f","impliedFormat":99},{"version":"e87104e6d7ad32243163934f20940162c104eaaaddfafe5267e219991bbdd00b","impliedFormat":99},{"version":"4d7dc3c4b187c585b3328077821638ec38bb68454f331809fd977030178da96e","impliedFormat":99},{"version":"8dcee60e0ce1d2b35cb1ada17420565cd6a5307ae280f62b3d92e10fd344aebc","impliedFormat":99},{"version":"7ceac7d7800ef7065908464aba0a009e9a03ff95f177a44f999687bdf10d039f","impliedFormat":99},{"version":"6043ab81faab77b975cb2a8457cc28c3b6f90a766cbbd27914da686bc41c83a0","impliedFormat":99},{"version":"613051be0c04c0fadf883f5ec01dcb0a4639ac92d9e2c12a222680c91b374595","impliedFormat":99},{"version":"a740a1e2d889fc4344fbb49a7f8b02ee664850be5cdcf029ace8ceb4316623db","impliedFormat":99},{"version":"ffe3c0472cf0ad60edbf5037319135c645bd92e7acbf403d72101df3598258e0","impliedFormat":99},{"version":"64ebe41006e87ea8b5e9b3acf048018b5226c4b08c6575526a76f6801143bf90","impliedFormat":99},{"version":"5af3b8b1a9063e033fc1e32a3e95956f5f5e22548d5ccca628b1ab87e42087d1","impliedFormat":99},{"version":"2414e378fb9e46fe36d8a0f4fb7af126441078299c03a46096713b03a5f6571d","impliedFormat":99},{"version":"1ed47fe653ec1bbcbd8ed241873938642755f2917f9e9a2e78daef11519f0745","impliedFormat":99},{"version":"4e74287ad61c1544e88339e78a4da19cb79c729be8799b8cd190353368532e30","impliedFormat":99},{"version":"21a136c72551be7c24d797d4fa1401d35ee62325bec7442a6869cea50a50ad7a","impliedFormat":99},{"version":"5ea1325a998e722fffc89ff8c2d00eaf35e491f3fada16fb56c6360f63d16d79","impliedFormat":99},{"version":"2f50c2700b3397c9961c1e14b903d0ff1120e064755603740cecdcdf3b05d20f","impliedFormat":99},{"version":"e24d67437856c921a9a40f7fbac38ac576439e6616eb698fb769279ecbc7802a","impliedFormat":99},{"version":"cff4f19e514fccc06aafecb44d2c6b10516d604d2972da407fa38d344872389e","impliedFormat":99},{"version":"15cc3dd9a039f8ba1628d1e27cdf4b45582fc387a4241ebb65eff1786b89f522","impliedFormat":99},{"version":"01056fd3092681e2f1c0cb0e1fec91ac081b5bb758551494fca1c1d27f06c2b4","affectsGlobalScope":true,"impliedFormat":99},{"version":"19c2d8da51e4944a19e0ca377df3fd9d249dd8f9cab9544632fb8d10a72808f7","impliedFormat":1},{"version":"a387648b45b3d02c838a213809bf7aa3a3c6e009b0cfedbbb98e7863219fd0b4","impliedFormat":99},{"version":"d189c9a6203dd8c814cbabb78ee77ec7f806a8c4f92c4029e8c84cf4d3b69013","impliedFormat":99},{"version":"7e9aecc83330a5c15b10f8995dfce2e1004f9bbdd0c4a9df18e8483facd76703","impliedFormat":99},{"version":"f2afaf5947dd98685a6b7996b57d7fedd13a04ca95820e6d8e1db0e6ec6d24ae","impliedFormat":99},{"version":"115cd4fb80b878cfcdc7f6fd16ff105eee596ec4336c9ecf8482753c4def34b1","impliedFormat":99},{"version":"316d7bdfb430fa119cbd460e01ffbf726321a5e54575c22b70e8ff56241d849a","impliedFormat":99},{"version":"d5a938d49803873c6de2daa0e81fa87ab44eee5259df765345932a28ecfb64fc","impliedFormat":99},{"version":"17044e5e7e129f8374daa67588cfb05367a511523f62d55ac215f86ed31b7bd5","impliedFormat":99},{"version":"2089a59a5359a6e33ab03808a1f2eb66169a8854d31c165e5586a0c9e83a008c","impliedFormat":99},{"version":"4ebc57d20caf062019a2b8c9ce1e54602a411022eb4f7fa325888b9bcf63693a","impliedFormat":99},{"version":"662cafdf363d512eff0d6c525c711684dba726ac5f4d09f473110a05c8ecd8e5","impliedFormat":99},{"version":"bc5687c148ac8c68aa2e732086df6691e8658c7d39ea6a3e4f2d29cc7c28945b","impliedFormat":99},{"version":"98678d6ac29dfa3f80452de2a87f464dee4908476f817d6f5e0677802ad43f7b","impliedFormat":99},{"version":"057f28f1e4c53bfdc397099ee4bf873ef32f26a938a135881b19bf10f968a805","impliedFormat":99},{"version":"d00e790b0d3738482ddb18bb446210b41019520dd32438570d6bc533f7b95239","impliedFormat":99},{"version":"c4e45ef293b9b228aad0d51acb0ef0397dad22a3454b3f6f751b6de1ac9e11e0","impliedFormat":99},{"version":"4665f7e4f0fa5900321d33f85d167ad7653b758ea654e5b6cd63481c6592f7df","impliedFormat":99},{"version":"981cb93ad7614aa65352d5ac31a51e90802284d28fb41a9fc583150ec94621ce","impliedFormat":99},{"version":"3802746f13335d428ea68f2a6b867e031cb8ffcbf5b6ee2f101b2bde38d9408b","impliedFormat":99},{"version":"078e626b45a175b01f691bc1f1fcb31357c7d105773f7bddc5cfe71d13dc12cf","impliedFormat":99},{"version":"21c0fdfb5f295a8f75815b89ddd2ce35ca67ee594996bc398e2f593927b72f7d","impliedFormat":99},{"version":"5e5bd661156168b6fd7a94d95deddea447a33a315cc5ceff165e3db6ebb17400","impliedFormat":99},{"version":"52ba05f2c14d30fc792c73f2c66ebbc85465dd630cb5553da997b282a24ce6f3","impliedFormat":99},{"version":"8f05922f3c5759f330d7fe66eb851f6b7ea832257c4abb48dad1cc8890ffe1a0","impliedFormat":99},{"version":"a8634e7c68875e6826de64501c813a1978613c115126c3ab07ca0d8803e5ba63","impliedFormat":99},{"version":"124e3dec3b595520139287b8b87ea1d9a17d1b6288a66cecf7318e868e8b445b","impliedFormat":99},{"version":"acece64467d97b31ce832aa6f93bc1cbd0f49e5e9e7bc0ef4976ea04c39b12f9","impliedFormat":99},{"version":"f20aaac0dd3957e75c40a3b5d30bbbbe2639c6af494b6ebaefc92c920d173ba4","impliedFormat":99},{"version":"9d1a7890dc88f0f68e3a5e4dd28a29566174644469a025e25837500e08cdb608","impliedFormat":99},{"version":"d82a659eab5a7bc4e555b8ed631db1e0b2277959c07097c3f1279c3dc74d843a","impliedFormat":99},{"version":"2d4e41ea9b4c2a5f924a221600988d9af6c631e111bd6fde3f5ce3d47b2e888e","impliedFormat":99},{"version":"e332d35d49326925df3c905987be62a101b1ddd0278cea0d321c54fb32fc1d2a","impliedFormat":99},{"version":"72920918942e421145fa7d3405d1e20e36126336f11355b0fad4ddf66c96b395","impliedFormat":99},{"version":"e932f7cdd6fee4f3cd57c0df201495f7111f4d843cfb20a73b31134babddad27","impliedFormat":99},{"version":"8dd893c4af9ecfbd6adeed499b9a34adb3562f9cdb461e7a390bf6c587706170","impliedFormat":99},{"version":"f82f1de6aec147664152eba85e4360be97387efb19a664ae97b248b6ff1bfc15","impliedFormat":99},{"version":"5aad98287d23e42aac230bab0c29d881e91e2042488f0268556f22b397a3b038","impliedFormat":99},{"version":"ffe342c99bb841bdc1955f43c0b1f388f6522560612fe3dade4c45f9982198d4","impliedFormat":99},{"version":"75eb76a81087ce95155f897e349b9a9b5ca3594d35252a0651aad2b74e94f4b4","impliedFormat":99},{"version":"a2503ed7836b0320bc274dfe29e786532ede72f43c844c4836bd6d634185d2f0","impliedFormat":99},{"version":"f485f3f6a0c8ca14161610a17c098957966c33f2dca98a57c5cce816d0ef7e39","impliedFormat":99},{"version":"e876d167fe328784d25f43057300ee5941e157a096691a0c3b7c5f49f80f987f","impliedFormat":99},{"version":"f157b9c028d71bf9c818186b3ee886641111cd91e710d0d98f854f83f531e647","impliedFormat":99},{"version":"49d33b0cec814e71f33a3c680b46ef8112b7b4ac76c304e8d86bcf5e8aafc148","impliedFormat":99},{"version":"e7e5890c53c38e44024c21be92850fbc323decccc2814e6e1582592e840a734d","impliedFormat":99},{"version":"a499d988e788c73d1ce066166f8a696ea0c72e497c8513fafd7b5c78a3c1c67f","impliedFormat":99},{"version":"014b27d82e806d9b835e7c09e499a07531c2f2f810fe2609d7c1eb597671f7b9","impliedFormat":99},{"version":"b3df52c6c8236e8117edb6724b572fbea846e2eec25c0dd768cdee7210caec95","impliedFormat":99},{"version":"75941176e22eb9eb3749de66634b65ab20420243da96054723fa823085c6c9ec","impliedFormat":99},{"version":"75010ee3a47aca74876cbe76c08636b376a0e4c622aeaa49fb905b767153a551","impliedFormat":99},{"version":"3d7cd95d231e345e45db12793781582bfaa84964e0d05882eb05b3aec2329cf1","impliedFormat":99},{"version":"92dc737f6c44f1a60d1aa575cfbb7c1b31610c27a8e028d922ac2b322f0fe4af","impliedFormat":99},{"version":"f03bcee0b61f7737004079f5d784a15f7f832dddb5f58c0112d5b2be4d719356","impliedFormat":99},{"version":"5785cabdf475ceb1493b6e215070ae2d3d212effd091c46bfeecbc9fb69363b3","impliedFormat":99},{"version":"e76f1c18be68f038519be05bae9ff4557ce664adc2f6bbd6ba88ae2d7a23a20a","impliedFormat":99},{"version":"0eeb382c1048583a94d9f630ca23e7f7b985d501c2287456869768bcc63b6a75","impliedFormat":99},{"version":"fc01dcdadd606a25fdcd89fe718544ff33c17db1c571eaf9f4ac18377a0716f3","impliedFormat":99},{"version":"24d7294c4165c6f0b171b41b6844c7bc9a7ce8f438b323ff293d09bcf4dd2282","impliedFormat":99},{"version":"0f525826e09edc94309b391668644cfdadc704918bf1c0c6b760a0ab5511a08e","impliedFormat":99},{"version":"5be129fe7c0b1d5c36a2c4f1a36a576b6b05fecbad1a8398c72924298eeffadb","impliedFormat":99},{"version":"d432bf55b58ee8fac50d09bb54cf844b9374e705b6a094d48c5b54d18147b88c","impliedFormat":99},{"version":"2396fac6caf45f20c826e40cc5aa0dd6dd33947c9f2a0f4cb1faef982018f668","impliedFormat":99},{"version":"c0a17bcedf9c0ce6eb1c5471261c15f1ee0ac7c17bf4b543f22845959a977bf0","impliedFormat":99},{"version":"207ecf493b69ddca525bbbd8f1d120d99d00be1448ae8c0e690526f24dc182ca","impliedFormat":99},{"version":"af6ac8a19dbd05c34feff97d0eae81194fd0be1358bd2366478e9a574492d332","impliedFormat":99},{"version":"a21c587d34edbe9808b8f4fac207d190f802687b477ef55ee0f494d79a427f31","impliedFormat":99},{"version":"f00b8fc0c970cfd54d4df6047aae216bce4d7a2ceb6610655541a678ac54c57a","impliedFormat":99},{"version":"11fd6a023d60896a902933f64a2c8363102e5276838dbe29aa02a24c2e69fbd1","impliedFormat":99},{"version":"d733ff04df93b131ff1d93300255400ccb5c7f807d130ace3447463c5b0107bf","impliedFormat":99},{"version":"85d3fe2d268f20c10cb35e83adf4868a42bda39e4cecac9f86ac7254df250f47","impliedFormat":99},{"version":"f811e036cb1c0580170cf9354001e34ec3cb8df2f8788d9f07bf37c44c608e36","impliedFormat":99},{"version":"92d7af328f554f85413a55f83e6718c3b8a827c3ae5abe5bef319ea25c32153a","impliedFormat":99},{"version":"08d77743e9ac7b4d9414d7286c9089600ccc87ce8e5d3972326aeb41c1b3680e","signature":"9aa4d058ece308996deed5971548a866f0e5bedc296e598724277a8f7e8ff203","impliedFormat":99}],"root":[162],"options":{"composite":true,"declaration":true,"declarationDir":"./esm","declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"importHelpers":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"outDir":"./esm","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":99},"fileIdsList":[[65],[153,154],[153],[153,154,155,156],[154],[106,152,158],[158,159,160],[106,152,157],[157],[66,106,152,161],[69],[67,68,69,70],[132],[88],[135],[133,134,135,136,137,138,139,140,141,142,143,144,145],[132,135,137,138,141],[106,132,135,137,138,141],[88,147],[147,148,149,150],[106,148,149],[71,132,146,151],[109],[107,110,111,112,113,114],[110],[88,146],[88,106,107,108,109,110,112,146],[109,110,112,115],[88,109,110,116,146],[88,109,117,132,146],[119,120,121],[118],[88,106,108,109,110,115,117,118,119],[88,115],[106,108,109,117,122,132],[109,117,123,132],[125,126],[109,115,124],[88,115,146],[88,106,108,109,115,117,124,127,146],[109,117,128,132],[109,117,128,129,132],[106,109],[108,109,115,116,117,118,122,123,124,127,128,129,130,131],[117,130],[88,106,107,108,146],[88,90,91],[88,90],[90],[94],[88,90,97],[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105],[89,90],[89],[88,92],[72,73,74,76],[72,73,77],[72,73,74,76,77],[75],[74],[75,78,85,86,87],[75,78,85],[78],[80],[80,81,82],[75,78,80],[79,83,84],[106,152,161]],"referencedMap":[[66,1],[155,2],[154,3],[157,4],[156,5],[159,6],[161,7],[158,8],[160,9],[162,10],[70,11],[71,12],[133,13],[134,14],[136,15],[146,16],[137,14],[138,13],[139,14],[135,13],[140,14],[142,17],[143,13],[141,14],[144,13],[145,18],[148,19],[149,19],[151,20],[150,21],[152,22],[110,23],[111,14],[115,24],[112,25],[113,26],[114,27],[107,26],[116,28],[117,29],[118,30],[122,31],[119,32],[120,33],[121,34],[123,35],[124,36],[127,37],[125,38],[126,39],[128,40],[129,41],[130,42],[108,43],[132,44],[131,45],[109,46],[92,47],[91,48],[93,49],[94,49],[95,49],[96,50],[98,51],[106,52],[99,49],[100,53],[101,49],[102,49],[90,54],[103,55],[104,48],[97,48],[105,48],[77,56],[74,57],[78,58],[76,59],[73,60],[88,61],[86,62],[79,63],[80,63],[81,64],[83,65],[82,66],[85,67],[84,63]],"exportedModulesMap":[[66,1],[155,2],[154,3],[157,4],[156,5],[159,6],[161,7],[158,8],[160,9],[162,68],[70,11],[71,12],[133,13],[134,14],[136,15],[146,16],[137,14],[138,13],[139,14],[135,13],[140,14],[142,17],[143,13],[141,14],[144,13],[145,18],[148,19],[149,19],[151,20],[150,21],[152,22],[110,23],[111,14],[115,24],[112,25],[113,26],[114,27],[107,26],[116,28],[117,29],[118,30],[122,31],[119,32],[120,33],[121,34],[123,35],[124,36],[127,37],[125,38],[126,39],[128,40],[129,41],[130,42],[108,43],[132,44],[131,45],[109,46],[92,47],[91,48],[93,49],[94,49],[95,49],[96,50],[98,51],[106,52],[99,49],[100,53],[101,49],[102,49],[90,54],[103,55],[104,48],[97,48],[105,48],[77,56],[74,57],[78,58],[76,59],[73,60],[88,61],[86,62],[79,63],[80,63],[81,64],[83,65],[82,66],[85,67],[84,63]],"semanticDiagnosticsPerFile":[66,65,63,64,12,14,13,2,15,16,17,18,19,20,21,22,3,4,23,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,59,10,1,11,62,61,60,89,153,155,154,157,156,159,161,158,160,162,67,68,70,71,69,133,134,136,146,137,138,139,135,140,142,143,141,144,145,148,149,151,150,147,152,110,111,115,112,113,114,107,116,117,118,122,119,120,121,123,124,127,125,126,128,129,130,108,132,131,109,92,91,93,94,95,96,98,106,99,100,101,102,90,103,104,97,105,77,74,78,72,76,73,88,86,87,79,80,81,83,82,85,84,75],"latestChangedDtsFile":"./esm/index.d.ts"},"version":"5.3.2"}
1
+ {"program":{"fileNames":["../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es5.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2021.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2022.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2023.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.dom.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.core.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.date.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.date.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2020.number.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2021.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2022.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2022.error.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2022.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2022.string.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2023.array.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.esnext.object.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.decorators.d.ts","../../common/temp/node_modules/.pnpm/typescript@5.4.2/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../common/temp/node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.d.ts","../../common/temp/node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/modules/index.d.ts","./src/renderer.ts","./src/bitmap.ts","../event/esm/disposable.d.ts","../event/esm/event.d.ts","../event/esm/event-emitter.d.ts","../event/esm/utils.d.ts","../event/esm/index.d.ts","../scrcpy/esm/codec/av1.d.ts","../scrcpy/esm/codec/h264.d.ts","../scrcpy/esm/codec/nalu.d.ts","../scrcpy/esm/codec/h265.d.ts","../scrcpy/esm/codec/index.d.ts","../struct/esm/basic/options.d.ts","../struct/esm/basic/struct-value.d.ts","../struct/esm/basic/field-value.d.ts","../struct/esm/utils.d.ts","../struct/esm/basic/stream.d.ts","../struct/esm/basic/definition.d.ts","../struct/esm/basic/index.d.ts","../struct/esm/types/bigint.d.ts","../struct/esm/types/buffer/base.d.ts","../struct/esm/types/buffer/fixed-length.d.ts","../struct/esm/types/buffer/variable-length.d.ts","../struct/esm/types/buffer/index.d.ts","../struct/esm/types/number.d.ts","../struct/esm/types/index.d.ts","../struct/esm/struct.d.ts","../struct/esm/sync-promise.d.ts","../struct/esm/index.d.ts","../stream-extra/esm/types.d.ts","../stream-extra/esm/stream.d.ts","../stream-extra/esm/buffered.d.ts","../stream-extra/esm/buffered-transform.d.ts","../stream-extra/esm/concat.d.ts","../stream-extra/esm/consumable.d.ts","../stream-extra/esm/decode-utf8.d.ts","../stream-extra/esm/distribution.d.ts","../stream-extra/esm/wrap-readable.d.ts","../stream-extra/esm/duplex.d.ts","../stream-extra/esm/inspect.d.ts","../stream-extra/esm/pipe-from.d.ts","../stream-extra/esm/push-readable.d.ts","../stream-extra/esm/split-string.d.ts","../stream-extra/esm/struct-deserialize.d.ts","../stream-extra/esm/struct-serialize.d.ts","../stream-extra/esm/wrap-writable.d.ts","../stream-extra/esm/index.d.ts","../scrcpy/esm/options/1_16/scroll.d.ts","../scrcpy/esm/options/codec.d.ts","../scrcpy/esm/options/types.d.ts","../scrcpy/esm/options/1_16/codec-options.d.ts","../scrcpy/esm/options/1_16/float-to-uint16.d.ts","../scrcpy/esm/options/1_16/init.d.ts","../scrcpy/esm/options/1_16/message.d.ts","../scrcpy/esm/options/1_16/options.d.ts","../scrcpy/esm/options/1_16/index.d.ts","../scrcpy/esm/options/1_17.d.ts","../scrcpy/esm/options/1_18.d.ts","../scrcpy/esm/options/1_21.d.ts","../scrcpy/esm/options/1_22/init.d.ts","../scrcpy/esm/options/1_22/options.d.ts","../scrcpy/esm/options/1_22/scroll.d.ts","../scrcpy/esm/options/1_22/index.d.ts","../scrcpy/esm/options/1_23.d.ts","../scrcpy/esm/options/1_24.d.ts","../scrcpy/esm/options/1_25/options.d.ts","../scrcpy/esm/options/1_25/scroll.d.ts","../scrcpy/esm/options/1_25/index.d.ts","../scrcpy/esm/options/2_0.d.ts","../scrcpy/esm/options/2_1.d.ts","../scrcpy/esm/options/2_2.d.ts","../scrcpy/esm/options/latest.d.ts","../scrcpy/esm/options/index.d.ts","../scrcpy/esm/control/back-or-screen-on.d.ts","../scrcpy/esm/control/basic.d.ts","../scrcpy/esm/control/inject-touch.d.ts","../scrcpy/esm/control/hover-helper.d.ts","../scrcpy/esm/control/inject-keycode.d.ts","../scrcpy/esm/control/inject-scroll.d.ts","../scrcpy/esm/control/inject-text.d.ts","../scrcpy/esm/control/rotate-device.d.ts","../scrcpy/esm/control/set-screen-power-mode.d.ts","../scrcpy/esm/control/serializer.d.ts","../scrcpy/esm/control/set-clipboard.d.ts","../scrcpy/esm/control/type.d.ts","../scrcpy/esm/control/writer.d.ts","../scrcpy/esm/control/index.d.ts","../scrcpy/esm/device-message/type.d.ts","../scrcpy/esm/device-message/ack-clipboard.d.ts","../scrcpy/esm/device-message/clipboard.d.ts","../scrcpy/esm/device-message/stream.d.ts","../scrcpy/esm/device-message/index.d.ts","../scrcpy/esm/index.d.ts","../scrcpy-decoder-tinyh264/esm/types.d.ts","../scrcpy-decoder-tinyh264/esm/decoder.d.ts","../scrcpy-decoder-tinyh264/esm/wrapper.d.ts","../scrcpy-decoder-tinyh264/esm/index.d.ts","./src/webgl.ts","./src/index.ts"],"fileInfos":[{"version":"824cb491a40f7e8fdeb56f1df5edf91b23f3e3ee6b4cde84d4a99be32338faee","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","impliedFormat":1},{"version":"886e50ef125efb7878f744e86908884c0133e7a6d9d80013f421b0cd8fb2af94","impliedFormat":1},{"version":"87d693a4920d794a73384b3c779cadcb8548ac6945aa7a925832fe2418c9527a","affectsGlobalScope":true,"impliedFormat":1},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","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":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true,"impliedFormat":1},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b20fe0eca9a4e405f1a5ae24a2b3290b37cf7f21eba6cbe4fc3fab979237d4f3","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":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true,"impliedFormat":1},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true,"impliedFormat":1},{"version":"8073890e29d2f46fdbc19b8d6d2eb9ea58db9a2052f8640af20baff9afbc8640","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true,"impliedFormat":1},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true,"impliedFormat":1},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a1971efcba559ea9002ada4c4e3c925004fb67a755300d53b5edf9399354900","impliedFormat":1},{"version":"31973b272be35eab5ecf20a38ea54bec84cdc0317117590cb813c72fe0ef75b3","impliedFormat":99},{"version":"f933f5db6e2eb630d3c83f221e0a7e2897dd02665822e13ea9b447ffcf3aceba","impliedFormat":99},{"version":"f315c84ae0b6750b7886963c0969f00cfec81edac1321c7d7b061eb0c5493889","signature":"322da539748d40d57d89eb452a60fc1228e00285fca8a34c60cb83f95d42a4be","impliedFormat":99},{"version":"207ecf493b69ddca525bbbd8f1d120d99d00be1448ae8c0e690526f24dc182ca","impliedFormat":99},{"version":"af6ac8a19dbd05c34feff97d0eae81194fd0be1358bd2366478e9a574492d332","impliedFormat":99},{"version":"a21c587d34edbe9808b8f4fac207d190f802687b477ef55ee0f494d79a427f31","impliedFormat":99},{"version":"f00b8fc0c970cfd54d4df6047aae216bce4d7a2ceb6610655541a678ac54c57a","impliedFormat":99},{"version":"11fd6a023d60896a902933f64a2c8363102e5276838dbe29aa02a24c2e69fbd1","impliedFormat":99},{"version":"ad324e6170d0e050a2681b9f6e7bb93d5c84240df5b513db656331fab3f238a6","impliedFormat":99},{"version":"8ba25a7b32fa40a6aad84745006f198b725c9c8013574df36505dbb4d098d92f","impliedFormat":99},{"version":"e87104e6d7ad32243163934f20940162c104eaaaddfafe5267e219991bbdd00b","impliedFormat":99},{"version":"4d7dc3c4b187c585b3328077821638ec38bb68454f331809fd977030178da96e","impliedFormat":99},{"version":"8dcee60e0ce1d2b35cb1ada17420565cd6a5307ae280f62b3d92e10fd344aebc","impliedFormat":99},{"version":"7ceac7d7800ef7065908464aba0a009e9a03ff95f177a44f999687bdf10d039f","impliedFormat":99},{"version":"6043ab81faab77b975cb2a8457cc28c3b6f90a766cbbd27914da686bc41c83a0","impliedFormat":99},{"version":"613051be0c04c0fadf883f5ec01dcb0a4639ac92d9e2c12a222680c91b374595","impliedFormat":99},{"version":"a740a1e2d889fc4344fbb49a7f8b02ee664850be5cdcf029ace8ceb4316623db","impliedFormat":99},{"version":"ffe3c0472cf0ad60edbf5037319135c645bd92e7acbf403d72101df3598258e0","impliedFormat":99},{"version":"64ebe41006e87ea8b5e9b3acf048018b5226c4b08c6575526a76f6801143bf90","impliedFormat":99},{"version":"5af3b8b1a9063e033fc1e32a3e95956f5f5e22548d5ccca628b1ab87e42087d1","impliedFormat":99},{"version":"2414e378fb9e46fe36d8a0f4fb7af126441078299c03a46096713b03a5f6571d","impliedFormat":99},{"version":"1ed47fe653ec1bbcbd8ed241873938642755f2917f9e9a2e78daef11519f0745","impliedFormat":99},{"version":"4e74287ad61c1544e88339e78a4da19cb79c729be8799b8cd190353368532e30","impliedFormat":99},{"version":"21a136c72551be7c24d797d4fa1401d35ee62325bec7442a6869cea50a50ad7a","impliedFormat":99},{"version":"5ea1325a998e722fffc89ff8c2d00eaf35e491f3fada16fb56c6360f63d16d79","impliedFormat":99},{"version":"2f50c2700b3397c9961c1e14b903d0ff1120e064755603740cecdcdf3b05d20f","impliedFormat":99},{"version":"e24d67437856c921a9a40f7fbac38ac576439e6616eb698fb769279ecbc7802a","impliedFormat":99},{"version":"cff4f19e514fccc06aafecb44d2c6b10516d604d2972da407fa38d344872389e","impliedFormat":99},{"version":"15cc3dd9a039f8ba1628d1e27cdf4b45582fc387a4241ebb65eff1786b89f522","impliedFormat":99},{"version":"01056fd3092681e2f1c0cb0e1fec91ac081b5bb758551494fca1c1d27f06c2b4","affectsGlobalScope":true,"impliedFormat":99},{"version":"13f965dea037ca58f3b0a5bd7541d1b3e2c71286759478c2aadba2a9647e5b0a","impliedFormat":99},{"version":"45771e2ee1ae0e12008b5090224a0a47d7c4af0a3b248deba572ab19232b1621","impliedFormat":99},{"version":"d189c9a6203dd8c814cbabb78ee77ec7f806a8c4f92c4029e8c84cf4d3b69013","impliedFormat":99},{"version":"7e9aecc83330a5c15b10f8995dfce2e1004f9bbdd0c4a9df18e8483facd76703","impliedFormat":99},{"version":"f2afaf5947dd98685a6b7996b57d7fedd13a04ca95820e6d8e1db0e6ec6d24ae","impliedFormat":99},{"version":"bbda3357c726ff3765eedddba81ee347295d3cdf4bc413e83e4d2f2d040e190f","impliedFormat":99},{"version":"316d7bdfb430fa119cbd460e01ffbf726321a5e54575c22b70e8ff56241d849a","impliedFormat":99},{"version":"d5a938d49803873c6de2daa0e81fa87ab44eee5259df765345932a28ecfb64fc","impliedFormat":99},{"version":"17044e5e7e129f8374daa67588cfb05367a511523f62d55ac215f86ed31b7bd5","impliedFormat":99},{"version":"2089a59a5359a6e33ab03808a1f2eb66169a8854d31c165e5586a0c9e83a008c","impliedFormat":99},{"version":"4ebc57d20caf062019a2b8c9ce1e54602a411022eb4f7fa325888b9bcf63693a","impliedFormat":99},{"version":"52279f70738da349b60a09be1294e3295c7e37189c10deb083ed6b5eb1c86744","impliedFormat":99},{"version":"bc5687c148ac8c68aa2e732086df6691e8658c7d39ea6a3e4f2d29cc7c28945b","impliedFormat":99},{"version":"98678d6ac29dfa3f80452de2a87f464dee4908476f817d6f5e0677802ad43f7b","impliedFormat":99},{"version":"057f28f1e4c53bfdc397099ee4bf873ef32f26a938a135881b19bf10f968a805","impliedFormat":99},{"version":"d00e790b0d3738482ddb18bb446210b41019520dd32438570d6bc533f7b95239","impliedFormat":99},{"version":"f36862ddf4c1d6dc6c2638baa6fa84ba196b0642b765e6af0163a4d688b6676d","impliedFormat":99},{"version":"4665f7e4f0fa5900321d33f85d167ad7653b758ea654e5b6cd63481c6592f7df","impliedFormat":99},{"version":"981cb93ad7614aa65352d5ac31a51e90802284d28fb41a9fc583150ec94621ce","impliedFormat":99},{"version":"3802746f13335d428ea68f2a6b867e031cb8ffcbf5b6ee2f101b2bde38d9408b","impliedFormat":99},{"version":"078e626b45a175b01f691bc1f1fcb31357c7d105773f7bddc5cfe71d13dc12cf","impliedFormat":99},{"version":"21c0fdfb5f295a8f75815b89ddd2ce35ca67ee594996bc398e2f593927b72f7d","impliedFormat":99},{"version":"5e5bd661156168b6fd7a94d95deddea447a33a315cc5ceff165e3db6ebb17400","impliedFormat":99},{"version":"52ba05f2c14d30fc792c73f2c66ebbc85465dd630cb5553da997b282a24ce6f3","impliedFormat":99},{"version":"8f05922f3c5759f330d7fe66eb851f6b7ea832257c4abb48dad1cc8890ffe1a0","impliedFormat":99},{"version":"792184de8c4aa96dfea1f1f573d1797e5baa0a603c330b54e251007563791c8a","impliedFormat":99},{"version":"124e3dec3b595520139287b8b87ea1d9a17d1b6288a66cecf7318e868e8b445b","impliedFormat":99},{"version":"9ce62dd72334b05ad761b4bc5bacb0b3493207feb1ec34526b2850467d307b76","impliedFormat":99},{"version":"88611fc3b0f708c8a5a138fd457e9229bad092af6c2885d776dd5a41c0873370","impliedFormat":99},{"version":"127ee9705ba1030ebcbc14eee3d55aebd9331cab619e7d6eb8106f2a6907acc4","impliedFormat":99},{"version":"d82a659eab5a7bc4e555b8ed631db1e0b2277959c07097c3f1279c3dc74d843a","impliedFormat":99},{"version":"aad9eca2a759c57dd744701712ec42b68f840081a57878d60e69e4574502bc84","impliedFormat":99},{"version":"e332d35d49326925df3c905987be62a101b1ddd0278cea0d321c54fb32fc1d2a","impliedFormat":99},{"version":"72920918942e421145fa7d3405d1e20e36126336f11355b0fad4ddf66c96b395","impliedFormat":99},{"version":"fa94ca9166e9094fe832050a2083d737e334fc08110ec559378351c9ef0a014c","impliedFormat":99},{"version":"9f90a838a7e6b1aeebe5cde674c1e0c77a4b3b646f9935ec0babd1959a107203","impliedFormat":99},{"version":"f82f1de6aec147664152eba85e4360be97387efb19a664ae97b248b6ff1bfc15","impliedFormat":99},{"version":"5aad98287d23e42aac230bab0c29d881e91e2042488f0268556f22b397a3b038","impliedFormat":99},{"version":"ffe342c99bb841bdc1955f43c0b1f388f6522560612fe3dade4c45f9982198d4","impliedFormat":99},{"version":"6008894e5fcaf85bf93b283af7ad6ae2644286a45a64c71213f4ecb35f202bf0","impliedFormat":99},{"version":"53f70d5b3a5f099fc3c1d0bfbc2e32cbef84b7bb3391af5c4b48cc25531673da","impliedFormat":99},{"version":"4ff9aee1f04b0e6488b93906d7061cc55ffb87a3724c40a02fc21c85ff2be6c7","impliedFormat":99},{"version":"e876d167fe328784d25f43057300ee5941e157a096691a0c3b7c5f49f80f987f","impliedFormat":99},{"version":"f157b9c028d71bf9c818186b3ee886641111cd91e710d0d98f854f83f531e647","impliedFormat":99},{"version":"49d33b0cec814e71f33a3c680b46ef8112b7b4ac76c304e8d86bcf5e8aafc148","impliedFormat":99},{"version":"e7e5890c53c38e44024c21be92850fbc323decccc2814e6e1582592e840a734d","impliedFormat":99},{"version":"a499d988e788c73d1ce066166f8a696ea0c72e497c8513fafd7b5c78a3c1c67f","impliedFormat":99},{"version":"014b27d82e806d9b835e7c09e499a07531c2f2f810fe2609d7c1eb597671f7b9","impliedFormat":99},{"version":"b3df52c6c8236e8117edb6724b572fbea846e2eec25c0dd768cdee7210caec95","impliedFormat":99},{"version":"75941176e22eb9eb3749de66634b65ab20420243da96054723fa823085c6c9ec","impliedFormat":99},{"version":"75010ee3a47aca74876cbe76c08636b376a0e4c622aeaa49fb905b767153a551","impliedFormat":99},{"version":"3d7cd95d231e345e45db12793781582bfaa84964e0d05882eb05b3aec2329cf1","impliedFormat":99},{"version":"92dc737f6c44f1a60d1aa575cfbb7c1b31610c27a8e028d922ac2b322f0fe4af","impliedFormat":99},{"version":"f03bcee0b61f7737004079f5d784a15f7f832dddb5f58c0112d5b2be4d719356","impliedFormat":99},{"version":"5785cabdf475ceb1493b6e215070ae2d3d212effd091c46bfeecbc9fb69363b3","impliedFormat":99},{"version":"e76f1c18be68f038519be05bae9ff4557ce664adc2f6bbd6ba88ae2d7a23a20a","impliedFormat":99},{"version":"0eeb382c1048583a94d9f630ca23e7f7b985d501c2287456869768bcc63b6a75","impliedFormat":99},{"version":"fc01dcdadd606a25fdcd89fe718544ff33c17db1c571eaf9f4ac18377a0716f3","impliedFormat":99},{"version":"24d7294c4165c6f0b171b41b6844c7bc9a7ce8f438b323ff293d09bcf4dd2282","impliedFormat":99},{"version":"0f525826e09edc94309b391668644cfdadc704918bf1c0c6b760a0ab5511a08e","impliedFormat":99},{"version":"5be129fe7c0b1d5c36a2c4f1a36a576b6b05fecbad1a8398c72924298eeffadb","impliedFormat":99},{"version":"d432bf55b58ee8fac50d09bb54cf844b9374e705b6a094d48c5b54d18147b88c","impliedFormat":99},{"version":"2396fac6caf45f20c826e40cc5aa0dd6dd33947c9f2a0f4cb1faef982018f668","impliedFormat":99},{"version":"c0a17bcedf9c0ce6eb1c5471261c15f1ee0ac7c17bf4b543f22845959a977bf0","impliedFormat":99},{"version":"af85a4638d055a58476dbd6f6be841baf6962828cf3432db82f5a36ff5d8b202","impliedFormat":99},{"version":"9ed45042d274b91c8308ae63eb3e1f2e4086d88a3ade3c4fd5f04930d3caad7b","impliedFormat":99},{"version":"f811e036cb1c0580170cf9354001e34ec3cb8df2f8788d9f07bf37c44c608e36","impliedFormat":99},{"version":"92d7af328f554f85413a55f83e6718c3b8a827c3ae5abe5bef319ea25c32153a","impliedFormat":99},{"version":"44f1363f038b7d67a31f701d0c192f068a1c9008c748ff78ade7718fa06e896b","signature":"3d9118f15159adc177d976a481472f0b22a80c9dfb111a9c1a95f52bda93c87c","impliedFormat":99},{"version":"c45ff6803ed0d0c892793dfb50dabbf71feb6937259d2f95bff266b8838edd1f","signature":"a385720cf82fc9d225f9e0d8e34c697a3b4cc010c6256d26ce25e63aa40da012","impliedFormat":99}],"root":[71,72,168,169],"options":{"composite":true,"declaration":true,"declarationDir":"./esm","declarationMap":true,"esModuleInterop":true,"exactOptionalPropertyTypes":true,"importHelpers":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitAny":true,"noImplicitOverride":true,"noImplicitReturns":true,"noImplicitThis":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"outDir":"./esm","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":99},"fileIdsList":[[69],[73,74],[73],[73,74,75,76],[74],[77,117,163,164],[164,165,166],[77,117,163],[77],[70,71],[70,71,72,77,117,163,167,168],[70],[80],[78,79,80,81],[143],[99],[146],[144,145,146,147,148,149,150,151,152,153,154,155,156],[143,146,148,149,152],[117,143,146,148,149,152],[99,158],[158,159,160,161],[117,159,160],[82,143,157,162],[120],[118,121,122,123,124,125],[121],[99,157],[99,117,118,119,120,121,123,157],[120,121,123,126],[99,120,121,127,157],[99,120,128,143,157],[130,131,132],[129],[99,117,119,120,121,126,128,129,130],[99,126],[117,119,120,128,133,143],[120,128,134,143],[136,137],[120,126,135],[99,126,157],[99,117,119,120,126,128,135,138,157],[120,128,139,143],[120,128,139,140,143],[117,120],[119,120,126,127,128,129,133,134,135,138,139,140,141,142],[128,141],[99,117,118,119,157],[99,101,102],[99,101],[101],[105],[99,101,108],[101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116],[100,101],[100],[99,103],[83,84,85,87],[83,84,88],[83,84,85,87,88],[86],[85],[86,89,96,97,98],[86,89,96],[89],[91],[91,92,93],[86,89,91],[90,94,95],[71],[77,117,163,167]],"referencedMap":[[70,1],[75,2],[74,3],[77,4],[76,5],[165,6],[167,7],[164,8],[166,9],[72,10],[169,11],[71,12],[168,10],[81,13],[82,14],[144,15],[145,16],[147,17],[157,18],[148,16],[149,15],[150,16],[146,15],[151,16],[153,19],[154,15],[152,16],[155,15],[156,20],[159,21],[160,21],[162,22],[161,23],[163,24],[121,25],[122,16],[126,26],[123,27],[124,28],[125,29],[118,28],[127,30],[128,31],[129,32],[133,33],[130,34],[131,35],[132,36],[134,37],[135,38],[138,39],[136,40],[137,41],[139,42],[140,43],[141,44],[119,45],[143,46],[142,47],[120,48],[103,49],[102,50],[104,51],[105,51],[106,51],[107,52],[109,53],[117,54],[110,51],[111,55],[112,51],[113,51],[101,56],[114,57],[115,50],[108,50],[116,50],[88,58],[85,59],[89,60],[87,61],[84,62],[99,63],[97,64],[90,65],[91,65],[92,66],[94,67],[93,68],[96,69],[95,65]],"exportedModulesMap":[[70,1],[75,2],[74,3],[77,4],[76,5],[165,6],[167,7],[164,8],[166,9],[72,70],[169,71],[71,12],[168,70],[81,13],[82,14],[144,15],[145,16],[147,17],[157,18],[148,16],[149,15],[150,16],[146,15],[151,16],[153,19],[154,15],[152,16],[155,15],[156,20],[159,21],[160,21],[162,22],[161,23],[163,24],[121,25],[122,16],[126,26],[123,27],[124,28],[125,29],[118,28],[127,30],[128,31],[129,32],[133,33],[130,34],[131,35],[132,36],[134,37],[135,38],[138,39],[136,40],[137,41],[139,42],[140,43],[141,44],[119,45],[143,46],[142,47],[120,48],[103,49],[102,50],[104,51],[105,51],[106,51],[107,52],[109,53],[117,54],[110,51],[111,55],[112,51],[113,51],[101,56],[114,57],[115,50],[108,50],[116,50],[88,58],[85,59],[89,60],[87,61],[84,62],[99,63],[97,64],[90,65],[91,65],[92,66],[94,67],[93,68],[96,69],[95,65]],"semanticDiagnosticsPerFile":[70,69,67,68,12,14,13,2,15,16,17,18,19,20,21,22,3,23,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,54,55,58,56,57,59,60,10,1,61,11,65,63,62,66,64,73,75,74,77,76,165,167,164,166,72,169,71,168,78,79,81,82,80,144,145,147,157,148,149,150,146,151,153,154,152,155,156,159,160,162,161,158,163,121,122,126,123,124,125,118,127,128,129,133,130,131,132,134,135,138,136,137,139,140,141,119,143,142,120,103,102,104,105,106,107,109,117,110,111,112,113,101,114,115,100,108,116,88,85,89,83,87,84,99,97,98,90,91,92,94,93,96,95,86],"latestChangedDtsFile":"./esm/index.d.ts"},"version":"5.4.2"}