@gueshbzh-perso/scanner 0.7.0 → 0.9.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/README.md CHANGED
@@ -48,7 +48,7 @@ await reader.destroy(); // removes the preview, frees the engine
48
48
  | `tryInvert` | `true` | Also read light-on-dark codes. |
49
49
  | `preprocessing` | `true` | Contrast / binarization fallbacks for hard frames. |
50
50
  | `linearConfirmations` | `2` | Agreeing reads before a 1D code is reported. Weak 1D formats (Code 39/93, ITF, Codabar, UPC-E, EAN-8) need one more; 2D codes are reported on the first read. |
51
- | `camera` | `{ facingMode: 'environment', resolution: 'hd' }` | Also `deviceId`, `rememberDevice` (default `true`). |
51
+ | `camera` | `{ facingMode: 'environment', resolution: 'hd' }` | Also `deviceId`, `rememberDevice` (default `true`), `releaseWhenHidden` (default `true`: the camera is released while the page is hidden and reopened when it is visible again). |
52
52
  | `overlay` | all on | `showRegion`, `showDetections`, `showTorchButton`, `showCameraSwitch`, `color`, or `false`. |
53
53
  | `feedback` | beep + vibrate | `{ beep, vibrate }` or `false`. |
54
54
  | `processing` | `{ maxDimension: 1024, backend: 'auto' }` | Decoder image size; `'webgl'`, `'canvas'` or `'auto'`. |
package/dist/overlay.js CHANGED
@@ -150,7 +150,8 @@ function drawPolygon(ctx, pts) {
150
150
  return;
151
151
  ctx.beginPath();
152
152
  if (pts.length === 2 && second) {
153
- // 1D codes report the two ends of the scan line: draw a thick bar.
153
+ // Fallback for a 1D code whose box could not be measured: the two ends
154
+ // of the scan line, drawn as a thick bar.
154
155
  ctx.save();
155
156
  ctx.lineWidth = 10;
156
157
  ctx.globalAlpha *= 0.6;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
package/dist/reader.d.ts CHANGED
@@ -37,6 +37,9 @@ export declare class BarcodeReader {
37
37
  private lifecycle;
38
38
  /** Consecutive failed frames: only the first error of a streak is reported. */
39
39
  private failures;
40
+ /** Camera released while the page is hidden (see `onVisibilityChange`). */
41
+ private suspended;
42
+ private readonly onVisibility;
40
43
  private torchOn;
41
44
  private buffers;
42
45
  private frameHandle;
@@ -55,6 +58,20 @@ export declare class BarcodeReader {
55
58
  /** Open the camera and start scanning. Call it from a user gesture to allow the beep on iOS. */
56
59
  start(): Promise<void>;
57
60
  private open;
61
+ /** Open the camera into the preview. `false` if `cancelled()` became true meanwhile. */
62
+ private acquireCamera;
63
+ private releaseCamera;
64
+ /**
65
+ * Release the camera while the page is hidden, reopen it when it comes back.
66
+ *
67
+ * Decoding already stops on its own in a hidden page (no video frame
68
+ * callbacks), but the camera stayed on: camera indicator lit, battery
69
+ * drained, while the user cannot see the page. The reader stays "running"
70
+ * through the suspension (no `stopped` / `started` events), so the host
71
+ * application's UI state does not change. Opt out with
72
+ * `camera.releaseWhenHidden: false`.
73
+ */
74
+ private onVisibilityChange;
58
75
  /** Stop scanning and release the camera. Also cancels a `start()` in progress. */
59
76
  stop(): Promise<void>;
60
77
  /** Keep the camera running but stop decoding. */
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
package/dist/reader.js CHANGED
@@ -45,6 +45,9 @@ export class BarcodeReader {
45
45
  this.lifecycle = 0;
46
46
  /** Consecutive failed frames: only the first error of a streak is reported. */
47
47
  this.failures = 0;
48
+ /** Camera released while the page is hidden (see `onVisibilityChange`). */
49
+ this.suspended = false;
50
+ this.onVisibility = () => void this.onVisibilityChange();
48
51
  this.torchOn = false;
49
52
  this.buffers = [];
50
53
  this.frameHandle = 0;
@@ -55,6 +58,9 @@ export class BarcodeReader {
55
58
  this.preview.setRegion(this.region);
56
59
  this.grabber = createGrabber(options.processing?.backend);
57
60
  this.feedback = new Feedback(options.feedback ?? {});
61
+ if (options.camera?.releaseWhenHidden !== false && typeof document !== 'undefined') {
62
+ document.addEventListener('visibilitychange', this.onVisibility);
63
+ }
58
64
  }
59
65
  /** Load the engine (WebAssembly, in a Web Worker) and build the preview inside `options.host`. */
60
66
  static async create(options) {
@@ -110,11 +116,24 @@ export class BarcodeReader {
110
116
  const cancelled = () => lifecycle !== this.lifecycle || this.destroyed;
111
117
  // Synchronous, before the first await: must run inside the user gesture.
112
118
  this.feedback.unlock();
119
+ if (!(await this.acquireCamera(cancelled)))
120
+ return;
121
+ this.running = true;
122
+ this.suspended = false;
123
+ this.paused = false;
124
+ this.failures = 0;
125
+ this.perf.since = performance.now();
126
+ this.perf.frames = 0;
127
+ this.emit('started', undefined);
128
+ this.schedule();
129
+ }
130
+ /** Open the camera into the preview. `false` if `cancelled()` became true meanwhile. */
131
+ async acquireCamera(cancelled) {
113
132
  const stream = await openCamera(this.options.camera);
114
133
  if (cancelled()) {
115
134
  // stop() or destroy() was called while the camera was opening.
116
135
  stream.getTracks().forEach((t) => t.stop());
117
- return;
136
+ return false;
118
137
  }
119
138
  this.stream = stream;
120
139
  const video = this.preview.video;
@@ -122,20 +141,62 @@ export class BarcodeReader {
122
141
  await video.play().catch(() => undefined);
123
142
  await waitForVideo(video);
124
143
  if (cancelled())
125
- return; // stop() already released `this.stream`.
144
+ return false; // stop() already released `this.stream`.
126
145
  const track = this.track();
127
146
  if (this.options.camera?.rememberDevice !== false)
128
147
  rememberCamera(track?.getSettings().deviceId);
129
148
  this.torchOn = false;
130
149
  await this.refreshButtons();
131
- if (cancelled())
150
+ return !cancelled();
151
+ }
152
+ releaseCamera() {
153
+ this.cancelSchedule();
154
+ this.stream?.getTracks().forEach((t) => t.stop());
155
+ this.stream = null;
156
+ this.preview.video.srcObject = null;
157
+ this.preview.setDetections([]);
158
+ this.torchOn = false;
159
+ }
160
+ /**
161
+ * Release the camera while the page is hidden, reopen it when it comes back.
162
+ *
163
+ * Decoding already stops on its own in a hidden page (no video frame
164
+ * callbacks), but the camera stayed on: camera indicator lit, battery
165
+ * drained, while the user cannot see the page. The reader stays "running"
166
+ * through the suspension (no `stopped` / `started` events), so the host
167
+ * application's UI state does not change. Opt out with
168
+ * `camera.releaseWhenHidden: false`.
169
+ */
170
+ async onVisibilityChange() {
171
+ if (document.hidden) {
172
+ if (this.running && !this.suspended) {
173
+ this.suspended = true;
174
+ this.releaseCamera();
175
+ }
132
176
  return;
133
- this.running = true;
134
- this.paused = false;
177
+ }
178
+ if (!this.suspended || !this.running)
179
+ return;
180
+ this.suspended = false;
181
+ const lifecycle = this.lifecycle;
182
+ const cancelled = () => lifecycle !== this.lifecycle || this.destroyed || document.hidden;
183
+ try {
184
+ if (!(await this.acquireCamera(cancelled))) {
185
+ // Hidden again while reopening: wait for the next visibility change.
186
+ if (lifecycle === this.lifecycle && !this.destroyed) {
187
+ this.suspended = true;
188
+ this.releaseCamera();
189
+ }
190
+ return;
191
+ }
192
+ }
193
+ catch (err) {
194
+ // Camera taken by another app, permission revoked…: stop for good.
195
+ this.emit('error', err instanceof Error ? err : new Error(String(err)));
196
+ await this.stop();
197
+ return;
198
+ }
135
199
  this.failures = 0;
136
- this.perf.since = performance.now();
137
- this.perf.frames = 0;
138
- this.emit('started', undefined);
139
200
  this.schedule();
140
201
  }
141
202
  /** Stop scanning and release the camera. Also cancels a `start()` in progress. */
@@ -145,11 +206,8 @@ export class BarcodeReader {
145
206
  return;
146
207
  const wasRunning = this.running;
147
208
  this.running = false;
148
- this.cancelSchedule();
149
- this.stream?.getTracks().forEach((t) => t.stop());
150
- this.stream = null;
151
- this.preview.video.srcObject = null;
152
- this.preview.setDetections([]);
209
+ this.suspended = false;
210
+ this.releaseCamera();
153
211
  if (wasRunning)
154
212
  this.emit('stopped', undefined);
155
213
  }
@@ -166,6 +224,7 @@ export class BarcodeReader {
166
224
  return;
167
225
  await this.stop();
168
226
  this.destroyed = true;
227
+ document.removeEventListener('visibilitychange', this.onVisibility);
169
228
  this.grabber.destroy();
170
229
  this.preview.destroy();
171
230
  this.feedback.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAe,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAqB,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,MAAM,cAAc,GAAW,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AAgB3E;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAuCxB,YACU,MAAc,EACd,OAAsB,EAC9B,IAAiB;QAFT,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAe;QArCxB,WAAM,GAAuB,IAAI,CAAC;QAClC,cAAS,GAAkE;YACjF,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,KAAK,EAAE,IAAI,GAAG,EAAE;YAChB,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,OAAO,EAAE,IAAI,GAAG,EAAE;SACnB,CAAC;QAGM,YAAO,GAAG,KAAK,CAAC;QAChB,WAAM,GAAG,KAAK,CAAC;QACvB,4CAA4C;QACpC,aAAQ,GAAG,KAAK,CAAC;QACzB,2DAA2D;QACnD,aAAQ,GAAG,CAAC,CAAC;QACrB,4EAA4E;QACpE,YAAO,GAAG,CAAC,CAAC;QACZ,UAAK,GAAG,CAAC,CAAC;QAClB,0DAA0D;QAClD,YAAO,GAAwB,IAAI,CAAC;QACpC,cAAS,GAAG,KAAK,CAAC;QAC1B,+DAA+D;QACvD,aAAQ,GAAyB,IAAI,CAAC;QAC9C,yEAAyE;QACjE,cAAS,GAAG,CAAC,CAAC;QACtB,+EAA+E;QACvE,aAAQ,GAAG,CAAC,CAAC;QACrB,2EAA2E;QACnE,cAAS,GAAG,KAAK,CAAC;QACT,iBAAY,GAAG,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC7D,YAAO,GAAG,KAAK,CAAC;QAChB,YAAO,GAAkB,EAAE,CAAC;QAC5B,gBAAW,GAAG,CAAC,CAAC;QAChB,SAAI,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAOjF,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,MAAM,EAAE,iBAAiB,KAAK,KAAK,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACnF,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,kGAAkG;IAClG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAsB;QACxC,MAAM,IAAI,GACR,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAc,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACtG,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,WAAW;QAChB,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IAED,EAAE,CAA+B,KAAQ,EAAE,QAAmC;QAC5E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,qDAAqD;IACrD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;YAClB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC5B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SACjC,CAAC;IACJ,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,gGAAgG;IAChG,KAAK;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3C,uEAAuE;QACvE,yEAAyE;QACzE,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,EAAC;QACpE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;QACvE,yEAAyE;QACzE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAAE,OAAO;QAEnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,wFAAwF;IAChF,KAAK,CAAC,aAAa,CAAC,SAAwB;QAClD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,+DAA+D;YAC/D,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;QACzB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,SAAS,EAAE;YAAE,OAAO,KAAK,CAAC,CAAC,yCAAyC;QAExE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,KAAK,KAAK;YAAE,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;QACjG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,CAAC,SAAS,EAAE,CAAC;IACtB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,kBAAkB;QAC9B,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC7C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC1F,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC3C,qEAAqE;gBACrE,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mEAAmE;YACnE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,iDAAiD;IACjD,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,yFAAyF;IACzF,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAC/D,CAAC;IAED,mBAAmB,CAAC,MAAc;QAChC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,gGAAgG;IAChG,KAAK,CAAC,SAAS,CAAC,OAAsB;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;QAC3D,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,oDAAoD;IACpD,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAW;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,YAAY,CAAC,QAAiB;QAClC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;YAC1D,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QACrD,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QACjF,IAAI,UAAU;YAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,4EAA4E;IAEpE,QAAQ;QACd,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,IAAI,2BAA2B,IAAI,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,GAAG,qBAAqB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,IAAI,0BAA0B,IAAI,KAAK;YAAE,KAAK,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1F,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;OAWG;IACK,IAAI;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,SAAS,EAAE;iBACb,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBACpC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;iBAC1C,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC;QACpD,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACzF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,IAAI,IAAI,CAAC,CAAC;QAE1F,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9F,CAAC;IAEO,OAAO,CAAC,KAAmB;QACjC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACpD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAmB;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;aACpB,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;aAC1C,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAmB;QAC3C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAClF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAE7D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QACjC,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;QAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7B,MAAM,OAAO,GAAG,CAAC,CAAY,EAAa,EAAE,CAAC,CAAC;YAC5C,GAAG,CAAC;YACJ,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;SACtD,CAAC,CAAC;QACH,gFAAgF;QAChF,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACxF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,GAAY;QACnC,mEAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5C,IAAI,GAAG,YAAY,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC9D,4EAA4E;YAC5E,OAAO,CAAC,IAAI,CAAC,6DAA6D,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACvF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,4EAA4E;QAC5E,kEAAkE;QAClE,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;YAAE,OAAO;QAChC,MAAM,KAAK,GAAG,GAAG,YAAY,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,mEAAmE;QACnE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3D,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,UAAU,CAAC,MAAc,EAAE,QAAgB,EAAE,CAAS,EAAE,CAAS;QACvE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7D,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACR,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACR,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC1B,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACb,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;QAChB,CAAC;IACH,CAAC;IAED,4EAA4E;IAEpE,KAAK;QACX,OAAO,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;YAClE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE;YACjD,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,IAAI,CAA+B,KAAQ,EAAE,OAAwB;QAC3E,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,CAAC,CAAC,OAAO,CAAC,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC1E,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,SAAU,SAAQ,KAAK;IAC3B,YAA8B,KAAc;QAC1C,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QADlC,UAAK,GAAL,KAAK,CAAS;IAE5C,CAAC;CACF;AAED,SAAS,YAAY,CAAC,KAAuB;IAC3C,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,KAAM,CAAC,CAAC;QAC9F,KAAK,CAAC,gBAAgB,CACpB,YAAY,EACZ,GAAG,EAAE;YACH,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/types.d.ts CHANGED
@@ -19,8 +19,10 @@ export interface Detection {
19
19
  /** Symbology, e.g. `"qr_code"`, `"ean_13"`. */
20
20
  format: BarcodeFormat;
21
21
  /**
22
- * Location of the code. For camera scans: video pixels (`video.videoWidth`
23
- * space). For `scanImage`: pixels of the source image.
22
+ * Location of the code: corners of the symbol (2D codes: their finder
23
+ * points; 1D codes: start-top, end-top, end-bottom, start-bottom). For
24
+ * camera scans: video pixels (`video.videoWidth` space). For `scanImage`:
25
+ * pixels of the source image.
24
26
  */
25
27
  points: Point[];
26
28
  /** Raw payload bytes when the symbology provides them (binary QR codes…). */
@@ -72,6 +74,12 @@ export interface CameraOptions {
72
74
  resolution?: CameraResolution;
73
75
  /** Remember the last selected camera in `localStorage`. Default: `true`. */
74
76
  rememberDevice?: boolean;
77
+ /**
78
+ * Release the camera while the page is hidden (tab in the background,
79
+ * screen locked) and reopen it when the page is visible again. The reader
80
+ * stays running in between. Default: `true`.
81
+ */
82
+ releaseWhenHidden?: boolean;
75
83
  }
76
84
  export interface OverlayOptions {
77
85
  /** Dim everything outside the region of interest and draw its corners. Default: `true`. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B,yBAAyB;AACzB,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,mEAAmE;AACnE,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yBAAyB;AACzB,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,MAAM,EAAE,aAAa,CAAC;IACtB;;;;;OAKG;IACH,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,oGAAoG;AACpG,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACvB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACzB,sHAAsH;IACtH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,2FAA2F;IAC3F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CACvC;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa,EAAE,YAAY;IAChE,0FAA0F;IAC1F,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,kEAAkE;IAClE,OAAO,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;IACjC,QAAQ,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;IACnC,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC5B,gDAAgD;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,yCAAyC;IACzC,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;CACpB"}
@@ -24,15 +24,15 @@ below. Their license texts follow, each listed once with the crates using it
24
24
  | futures-core | 0.3.32 | MIT OR Apache-2.0 | [27480f391bd9](#license-27480f391bd9) [b420d8add23b](#license-b420d8add23b) |
25
25
  | futures-task | 0.3.32 | MIT OR Apache-2.0 | [27480f391bd9](#license-27480f391bd9) [b420d8add23b](#license-b420d8add23b) |
26
26
  | futures-util | 0.3.32 | MIT OR Apache-2.0 | [27480f391bd9](#license-27480f391bd9) [b420d8add23b](#license-b420d8add23b) |
27
- | gif | 0.13.3 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [1b6f7ab81ae2](#license-1b6f7ab81ae2) |
28
- | image | 0.25.8 | MIT OR Apache-2.0 | [4bf96504d6e8](#license-4bf96504d6e8) [77949ead506e](#license-77949ead506e) |
27
+ | gif | 0.14.2 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [1b6f7ab81ae2](#license-1b6f7ab81ae2) |
28
+ | image | 0.25.10 | MIT OR Apache-2.0 | [4bf96504d6e8](#license-4bf96504d6e8) [77949ead506e](#license-77949ead506e) |
29
29
  | image-webp | 0.2.4 | MIT OR Apache-2.0 | [4bf96504d6e8](#license-4bf96504d6e8) [77949ead506e](#license-77949ead506e) |
30
30
  | js-sys | 0.3.102 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [84e1bbfebd74](#license-84e1bbfebd74) |
31
31
  | libm | 0.2.16 | MIT | [5f5535fee8ec](#license-5f5535fee8ec) |
32
- | log | 0.4.32 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
32
+ | log | 0.4.35 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
33
33
  | memchr | 2.8.2 | Unlicense OR MIT | [65314a6c9668](#license-65314a6c9668) [154c1af2b38e](#license-154c1af2b38e) [ca2abdf69588](#license-ca2abdf69588) |
34
34
  | miniz_oxide | 0.8.9 | MIT OR Zlib OR Apache-2.0 | [7427abc63036](#license-7427abc63036) [4bf96504d6e8](#license-4bf96504d6e8) [ac9859ce4e9a](#license-ac9859ce4e9a) [eac3911cc3d4](#license-eac3911cc3d4) |
35
- | moxcms | 0.7.11 | BSD-3-Clause OR Apache-2.0 | [836a9c1227c6](#license-836a9c1227c6) [2aa92cada643](#license-2aa92cada643) |
35
+ | moxcms | 0.8.1 | BSD-3-Clause OR Apache-2.0 | [836a9c1227c6](#license-836a9c1227c6) [2aa92cada643](#license-2aa92cada643) |
36
36
  | num | 0.4.3 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
37
37
  | num-bigint | 0.4.6 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
38
38
  | num-complex | 0.4.6 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
@@ -47,23 +47,24 @@ below. Their license texts follow, each listed once with the crates using it
47
47
  | pxfm | 0.1.29 | BSD-3-Clause OR Apache-2.0 | [836a9c1227c6](#license-836a9c1227c6) [2aa92cada643](#license-2aa92cada643) |
48
48
  | quick-error | 2.0.1 | MIT/Apache-2.0 | [6dc0e068dcf3](#license-6dc0e068dcf3) [cf798811e9a0](#license-cf798811e9a0) |
49
49
  | quote | 1.0.45 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
50
- | regex | 1.12.4 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
51
- | regex-automata | 0.4.14 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
50
+ | regex | 1.13.1 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
51
+ | regex-automata | 0.4.18 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
52
52
  | regex-syntax | 0.8.11 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [14435fbcd271](#license-14435fbcd271) |
53
- | rxing | 0.9.1 | Apache-2.0 | [a3f4f39fb583](#license-a3f4f39fb583) |
53
+ | rxing | 0.9.3 | Apache-2.0 | [a3f4f39fb583](#license-a3f4f39fb583) |
54
54
  | rxing-one-d-proc-derive | 0.9.0 | Apache-2.0 | [283ea6cc2997](#license-283ea6cc2997) |
55
- | serde | 1.0.228 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
55
+ | serde | 1.0.229 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
56
56
  | serde_bytes | 0.11.19 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
57
- | serde_core | 1.0.228 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
58
- | serde_derive | 1.0.228 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
57
+ | serde_core | 1.0.229 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
58
+ | serde_derive | 1.0.229 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
59
59
  | serde_derive_internals | 0.28.0 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
60
60
  | serde-wasm-bindgen | 0.5.0 | MIT | [3d13193b22aa](#license-3d13193b22aa) |
61
61
  | serde-wasm-bindgen | 0.6.5 | MIT | [3d13193b22aa](#license-3d13193b22aa) |
62
62
  | simd-adler32 | 0.3.9 | MIT | [627eff66d6c4](#license-627eff66d6c4) |
63
63
  | slab | 0.4.12 | MIT | [12c7116c4425](#license-12c7116c4425) |
64
64
  | syn | 2.0.117 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
65
- | thiserror | 2.0.18 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
66
- | thiserror-impl | 2.0.18 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
65
+ | syn | 3.0.9 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
66
+ | thiserror | 2.0.21 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
67
+ | thiserror-impl | 2.0.21 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) |
67
68
  | tsify | 0.4.5 | MIT OR Apache-2.0 | [85ad950cce87](#license-85ad950cce87) [f5cc3c980258](#license-f5cc3c980258) |
68
69
  | tsify-macros | 0.4.5 | MIT OR Apache-2.0 | — |
69
70
  | unicode-ident | 1.0.24 | (MIT OR Apache-2.0) AND Unicode-3.0 | [85ad950cce87](#license-85ad950cce87) [30fefc3a7d6a](#license-30fefc3a7d6a) [361d79129578](#license-361d79129578) |
@@ -74,8 +75,8 @@ below. Their license texts follow, each listed once with the crates using it
74
75
  | wasm-bindgen-shared | 0.2.125 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [84e1bbfebd74](#license-84e1bbfebd74) |
75
76
  | web-time | 1.1.0 | MIT OR Apache-2.0 | [b7bb0c98ad20](#license-b7bb0c98ad20) [32ae0b6c9e4c](#license-32ae0b6c9e4c) |
76
77
  | weezl | 0.1.12 | MIT OR Apache-2.0 | [954f335b8baf](#license-954f335b8baf) [603c83c4c200](#license-603c83c4c200) |
77
- | zune-core | 0.4.12 | MIT OR Apache-2.0 OR Zlib | — |
78
- | zune-jpeg | 0.4.21 | MIT OR Apache-2.0 OR Zlib | — |
78
+ | zune-core | 0.5.3 | MIT OR Apache-2.0 OR Zlib | [283ea6cc2997](#license-283ea6cc2997) [4ae441972cdd](#license-4ae441972cdd) [b8cba0284c86](#license-b8cba0284c86) |
79
+ | zune-jpeg | 0.5.15 | MIT OR Apache-2.0 OR Zlib | [283ea6cc2997](#license-283ea6cc2997) [4ae441972cdd](#license-4ae441972cdd) [b8cba0284c86](#license-b8cba0284c86) |
79
80
 
80
81
  ## License a21c914647d3
81
82
 
@@ -306,7 +307,7 @@ limitations under the License.
306
307
 
307
308
  ## License 30fefc3a7d6a
308
309
 
309
- <a id="license-30fefc3a7d6a"></a>Used by: adler2 2.0.1, once_cell 1.21.4, pin-project-lite 0.2.17, proc-macro2 1.0.106, quote 1.0.45, serde 1.0.228, serde_bytes 0.11.19, serde_core 1.0.228, serde_derive 1.0.228, serde_derive_internals 0.28.0, syn 2.0.117, thiserror 2.0.18, thiserror-impl 2.0.18, unicode-ident 1.0.24
310
+ <a id="license-30fefc3a7d6a"></a>Used by: adler2 2.0.1, once_cell 1.21.4, pin-project-lite 0.2.17, proc-macro2 1.0.106, quote 1.0.45, serde 1.0.229, serde_bytes 0.11.19, serde_core 1.0.229, serde_derive 1.0.229, serde_derive_internals 0.28.0, syn 2.0.117, syn 3.0.9, thiserror 2.0.21, thiserror-impl 2.0.21, unicode-ident 1.0.24
310
311
 
311
312
  ```text
312
313
  Permission is hereby granted, free of charge, to any
@@ -405,7 +406,7 @@ For more information, please refer to <http://unlicense.org/>
405
406
 
406
407
  ## License 954f335b8baf
407
408
 
408
- <a id="license-954f335b8baf"></a>Used by: bitflags 2.13.0, bumpalo 3.20.3, cfg-if 1.0.4, flate2 1.1.9, gif 0.13.3, js-sys 0.3.102, log 0.4.32, num 0.4.3, num-bigint 0.4.6, num-complex 0.4.6, num-integer 0.1.46, num-iter 0.1.45, num-rational 0.4.2, num-traits 0.2.19, once_cell 1.21.4, png 0.18.1, regex 1.12.4, regex-automata 0.4.14, regex-syntax 0.8.11, unicode-segmentation 1.13.3, wasm-bindgen 0.2.125, wasm-bindgen-macro 0.2.125, wasm-bindgen-macro-support 0.2.125, wasm-bindgen-shared 0.2.125, weezl 0.1.12
409
+ <a id="license-954f335b8baf"></a>Used by: bitflags 2.13.0, bumpalo 3.20.3, cfg-if 1.0.4, flate2 1.1.9, gif 0.14.2, js-sys 0.3.102, log 0.4.35, num 0.4.3, num-bigint 0.4.6, num-complex 0.4.6, num-integer 0.1.46, num-iter 0.1.45, num-rational 0.4.2, num-traits 0.2.19, once_cell 1.21.4, png 0.18.1, regex 1.13.1, regex-automata 0.4.18, regex-syntax 0.8.11, unicode-segmentation 1.13.3, wasm-bindgen 0.2.125, wasm-bindgen-macro 0.2.125, wasm-bindgen-macro-support 0.2.125, wasm-bindgen-shared 0.2.125, weezl 0.1.12
409
410
 
410
411
  ```text
411
412
  Apache License
@@ -613,7 +614,7 @@ limitations under the License.
613
614
 
614
615
  ## License 14435fbcd271
615
616
 
616
- <a id="license-14435fbcd271"></a>Used by: bitflags 2.13.0, log 0.4.32, num 0.4.3, num-bigint 0.4.6, num-complex 0.4.6, num-integer 0.1.46, num-iter 0.1.45, num-rational 0.4.2, num-traits 0.2.19, regex 1.12.4, regex-automata 0.4.14, regex-syntax 0.8.11
617
+ <a id="license-14435fbcd271"></a>Used by: bitflags 2.13.0, log 0.4.35, num 0.4.3, num-bigint 0.4.6, num-complex 0.4.6, num-integer 0.1.46, num-iter 0.1.45, num-rational 0.4.2, num-traits 0.2.19, regex 1.13.1, regex-automata 0.4.18, regex-syntax 0.8.11
617
618
 
618
619
  ```text
619
620
  Copyright (c) 2014 The Rust Project Developers
@@ -1589,7 +1590,7 @@ SOFTWARE.
1589
1590
 
1590
1591
  ## License 283ea6cc2997
1591
1592
 
1592
- <a id="license-283ea6cc2997"></a>Used by: encoding_rs 0.8.35, rxing-one-d-proc-derive 0.9.0
1593
+ <a id="license-283ea6cc2997"></a>Used by: encoding_rs 0.8.35, rxing-one-d-proc-derive 0.9.0, zune-core 0.5.3, zune-jpeg 0.5.15
1593
1594
 
1594
1595
  ```text
1595
1596
  Apache License
@@ -1862,7 +1863,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1862
1863
 
1863
1864
  ## License 4bf96504d6e8
1864
1865
 
1865
- <a id="license-4bf96504d6e8"></a>Used by: fdeflate 0.3.7, image 0.25.8, image-webp 0.2.4, miniz_oxide 0.8.9, pin-project-lite 0.2.17
1866
+ <a id="license-4bf96504d6e8"></a>Used by: fdeflate 0.3.7, image 0.25.10, image-webp 0.2.4, miniz_oxide 0.8.9, pin-project-lite 0.2.17
1866
1867
 
1867
1868
  ```text
1868
1869
  Apache License
@@ -2045,7 +2046,7 @@ Apache License
2045
2046
 
2046
2047
  ## License 77949ead506e
2047
2048
 
2048
- <a id="license-77949ead506e"></a>Used by: fdeflate 0.3.7, image 0.25.8, image-webp 0.2.4
2049
+ <a id="license-77949ead506e"></a>Used by: fdeflate 0.3.7, image 0.25.10, image-webp 0.2.4
2049
2050
 
2050
2051
  ```text
2051
2052
  MIT License
@@ -2351,7 +2352,7 @@ DEALINGS IN THE SOFTWARE.
2351
2352
 
2352
2353
  ## License 1b6f7ab81ae2
2353
2354
 
2354
- <a id="license-1b6f7ab81ae2"></a>Used by: gif 0.13.3
2355
+ <a id="license-1b6f7ab81ae2"></a>Used by: gif 0.14.2
2355
2356
 
2356
2357
  ```text
2357
2358
  The MIT License (MIT)
@@ -2728,7 +2729,7 @@ Permission is granted to anyone to use this software for any purpose, including
2728
2729
 
2729
2730
  ## License 836a9c1227c6
2730
2731
 
2731
- <a id="license-836a9c1227c6"></a>Used by: moxcms 0.7.11, pxfm 0.1.29
2732
+ <a id="license-836a9c1227c6"></a>Used by: moxcms 0.8.1, pxfm 0.1.29
2732
2733
 
2733
2734
  ```text
2734
2735
  Apache License
@@ -2936,7 +2937,7 @@ Apache License
2936
2937
 
2937
2938
  ## License 2aa92cada643
2938
2939
 
2939
- <a id="license-2aa92cada643"></a>Used by: moxcms 0.7.11, pxfm 0.1.29
2940
+ <a id="license-2aa92cada643"></a>Used by: moxcms 0.8.1, pxfm 0.1.29
2940
2941
 
2941
2942
  ```text
2942
2943
  Copyright (c) Radzivon Bartoshyk. All rights reserved.
@@ -3001,7 +3002,7 @@ DEALINGS IN THE SOFTWARE.
3001
3002
 
3002
3003
  ## License 85ad950cce87
3003
3004
 
3004
- <a id="license-85ad950cce87"></a>Used by: proc-macro2 1.0.106, quote 1.0.45, serde 1.0.228, serde_bytes 0.11.19, serde_core 1.0.228, serde_derive 1.0.228, serde_derive_internals 0.28.0, syn 2.0.117, thiserror 2.0.18, thiserror-impl 2.0.18, tsify 0.4.5, unicode-ident 1.0.24
3005
+ <a id="license-85ad950cce87"></a>Used by: proc-macro2 1.0.106, quote 1.0.45, serde 1.0.229, serde_bytes 0.11.19, serde_core 1.0.229, serde_derive 1.0.229, serde_derive_internals 0.28.0, syn 2.0.117, syn 3.0.9, thiserror 2.0.21, thiserror-impl 2.0.21, tsify 0.4.5, unicode-ident 1.0.24
3005
3006
 
3006
3007
  ```text
3007
3008
  Apache License
@@ -3210,7 +3211,7 @@ SOFTWARE.
3210
3211
 
3211
3212
  ## License a3f4f39fb583
3212
3213
 
3213
- <a id="license-a3f4f39fb583"></a>Used by: rxing 0.9.1
3214
+ <a id="license-a3f4f39fb583"></a>Used by: rxing 0.9.3
3214
3215
 
3215
3216
  ```text
3216
3217
  Apache License
@@ -3877,3 +3878,57 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
3877
3878
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3878
3879
  SOFTWARE.
3879
3880
  ```
3881
+
3882
+ ## License 4ae441972cdd
3883
+
3884
+ <a id="license-4ae441972cdd"></a>Used by: zune-core 0.5.3, zune-jpeg 0.5.15
3885
+
3886
+ ```text
3887
+ MIT License
3888
+
3889
+ Copyright (c) zune-image developers
3890
+
3891
+ Permission is hereby granted, free of charge, to any person obtaining a copy
3892
+ of this software and associated documentation files (the "Software"), to deal
3893
+ in the Software without restriction, including without limitation the rights
3894
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
3895
+ copies of the Software, and to permit persons to whom the Software is
3896
+ furnished to do so, subject to the following conditions:
3897
+
3898
+ The above copyright notice and this permission notice shall be included in all
3899
+ copies or substantial portions of the Software.
3900
+
3901
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3902
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3903
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
3904
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3905
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
3906
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
3907
+ SOFTWARE.
3908
+ ```
3909
+
3910
+ ## License b8cba0284c86
3911
+
3912
+ <a id="license-b8cba0284c86"></a>Used by: zune-core 0.5.3, zune-jpeg 0.5.15
3913
+
3914
+ ```text
3915
+ zlib License
3916
+
3917
+ (C) zune-image developers
3918
+
3919
+ This software is provided 'as-is', without any express or implied
3920
+ warranty. In no event will the authors be held liable for any damages
3921
+ arising from the use of this software.
3922
+
3923
+ Permission is granted to anyone to use this software for any purpose,
3924
+ including commercial applications, and to alter it and redistribute it
3925
+ freely, subject to the following restrictions:
3926
+
3927
+ 1. The origin of this software must not be misrepresented; you must not
3928
+ claim that you wrote the original software. If you use this software
3929
+ in a product, an acknowledgment in the product documentation would be
3930
+ appreciated but is not required.
3931
+ 2. Altered source versions must be plainly marked as such, and must not be
3932
+ misrepresented as being the original software.
3933
+ 3. This notice may not be removed or altered from any source distribution.
3934
+ ```
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gueshbzh-perso/scanner",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Fast QR code & barcode scanning for the web: camera, WebGL frame pipeline, Web Worker and Rust/WebAssembly decoder.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/overlay.ts CHANGED
@@ -181,7 +181,8 @@ function drawPolygon(ctx: CanvasRenderingContext2D, pts: Point[]): void {
181
181
  if (!first) return;
182
182
  ctx.beginPath();
183
183
  if (pts.length === 2 && second) {
184
- // 1D codes report the two ends of the scan line: draw a thick bar.
184
+ // Fallback for a 1D code whose box could not be measured: the two ends
185
+ // of the scan line, drawn as a thick bar.
185
186
  ctx.save();
186
187
  ctx.lineWidth = 10;
187
188
  ctx.globalAlpha *= 0.6;
package/src/reader.ts CHANGED
@@ -71,6 +71,9 @@ export class BarcodeReader {
71
71
  private lifecycle = 0;
72
72
  /** Consecutive failed frames: only the first error of a streak is reported. */
73
73
  private failures = 0;
74
+ /** Camera released while the page is hidden (see `onVisibilityChange`). */
75
+ private suspended = false;
76
+ private readonly onVisibility = () => void this.onVisibilityChange();
74
77
  private torchOn = false;
75
78
  private buffers: ArrayBuffer[] = [];
76
79
  private frameHandle = 0;
@@ -87,6 +90,9 @@ export class BarcodeReader {
87
90
  this.preview.setRegion(this.region);
88
91
  this.grabber = createGrabber(options.processing?.backend);
89
92
  this.feedback = new Feedback(options.feedback ?? {});
93
+ if (options.camera?.releaseWhenHidden !== false && typeof document !== 'undefined') {
94
+ document.addEventListener('visibilitychange', this.onVisibility);
95
+ }
90
96
  }
91
97
 
92
98
  /** Load the engine (WebAssembly, in a Web Worker) and build the preview inside `options.host`. */
@@ -150,31 +156,87 @@ export class BarcodeReader {
150
156
  const cancelled = () => lifecycle !== this.lifecycle || this.destroyed;
151
157
  // Synchronous, before the first await: must run inside the user gesture.
152
158
  this.feedback.unlock();
159
+ if (!(await this.acquireCamera(cancelled))) return;
160
+
161
+ this.running = true;
162
+ this.suspended = false;
163
+ this.paused = false;
164
+ this.failures = 0;
165
+ this.perf.since = performance.now();
166
+ this.perf.frames = 0;
167
+ this.emit('started', undefined);
168
+ this.schedule();
169
+ }
170
+
171
+ /** Open the camera into the preview. `false` if `cancelled()` became true meanwhile. */
172
+ private async acquireCamera(cancelled: () => boolean): Promise<boolean> {
153
173
  const stream = await openCamera(this.options.camera);
154
174
  if (cancelled()) {
155
175
  // stop() or destroy() was called while the camera was opening.
156
176
  stream.getTracks().forEach((t) => t.stop());
157
- return;
177
+ return false;
158
178
  }
159
179
  this.stream = stream;
160
180
  const video = this.preview.video;
161
181
  video.srcObject = stream;
162
182
  await video.play().catch(() => undefined);
163
183
  await waitForVideo(video);
164
- if (cancelled()) return; // stop() already released `this.stream`.
184
+ if (cancelled()) return false; // stop() already released `this.stream`.
165
185
 
166
186
  const track = this.track();
167
187
  if (this.options.camera?.rememberDevice !== false) rememberCamera(track?.getSettings().deviceId);
168
188
  this.torchOn = false;
169
189
  await this.refreshButtons();
170
- if (cancelled()) return;
190
+ return !cancelled();
191
+ }
171
192
 
172
- this.running = true;
173
- this.paused = false;
193
+ private releaseCamera(): void {
194
+ this.cancelSchedule();
195
+ this.stream?.getTracks().forEach((t) => t.stop());
196
+ this.stream = null;
197
+ this.preview.video.srcObject = null;
198
+ this.preview.setDetections([]);
199
+ this.torchOn = false;
200
+ }
201
+
202
+ /**
203
+ * Release the camera while the page is hidden, reopen it when it comes back.
204
+ *
205
+ * Decoding already stops on its own in a hidden page (no video frame
206
+ * callbacks), but the camera stayed on: camera indicator lit, battery
207
+ * drained, while the user cannot see the page. The reader stays "running"
208
+ * through the suspension (no `stopped` / `started` events), so the host
209
+ * application's UI state does not change. Opt out with
210
+ * `camera.releaseWhenHidden: false`.
211
+ */
212
+ private async onVisibilityChange(): Promise<void> {
213
+ if (document.hidden) {
214
+ if (this.running && !this.suspended) {
215
+ this.suspended = true;
216
+ this.releaseCamera();
217
+ }
218
+ return;
219
+ }
220
+ if (!this.suspended || !this.running) return;
221
+ this.suspended = false;
222
+ const lifecycle = this.lifecycle;
223
+ const cancelled = () => lifecycle !== this.lifecycle || this.destroyed || document.hidden;
224
+ try {
225
+ if (!(await this.acquireCamera(cancelled))) {
226
+ // Hidden again while reopening: wait for the next visibility change.
227
+ if (lifecycle === this.lifecycle && !this.destroyed) {
228
+ this.suspended = true;
229
+ this.releaseCamera();
230
+ }
231
+ return;
232
+ }
233
+ } catch (err) {
234
+ // Camera taken by another app, permission revoked…: stop for good.
235
+ this.emit('error', err instanceof Error ? err : new Error(String(err)));
236
+ await this.stop();
237
+ return;
238
+ }
174
239
  this.failures = 0;
175
- this.perf.since = performance.now();
176
- this.perf.frames = 0;
177
- this.emit('started', undefined);
178
240
  this.schedule();
179
241
  }
180
242
 
@@ -184,11 +246,8 @@ export class BarcodeReader {
184
246
  if (!this.running && !this.stream) return;
185
247
  const wasRunning = this.running;
186
248
  this.running = false;
187
- this.cancelSchedule();
188
- this.stream?.getTracks().forEach((t) => t.stop());
189
- this.stream = null;
190
- this.preview.video.srcObject = null;
191
- this.preview.setDetections([]);
249
+ this.suspended = false;
250
+ this.releaseCamera();
192
251
  if (wasRunning) this.emit('stopped', undefined);
193
252
  }
194
253
 
@@ -206,6 +265,7 @@ export class BarcodeReader {
206
265
  if (this.destroyed) return;
207
266
  await this.stop();
208
267
  this.destroyed = true;
268
+ document.removeEventListener('visibilitychange', this.onVisibility);
209
269
  this.grabber.destroy();
210
270
  this.preview.destroy();
211
271
  this.feedback.destroy();
package/src/types.ts CHANGED
@@ -23,8 +23,10 @@ export interface Detection {
23
23
  /** Symbology, e.g. `"qr_code"`, `"ean_13"`. */
24
24
  format: BarcodeFormat;
25
25
  /**
26
- * Location of the code. For camera scans: video pixels (`video.videoWidth`
27
- * space). For `scanImage`: pixels of the source image.
26
+ * Location of the code: corners of the symbol (2D codes: their finder
27
+ * points; 1D codes: start-top, end-top, end-bottom, start-bottom). For
28
+ * camera scans: video pixels (`video.videoWidth` space). For `scanImage`:
29
+ * pixels of the source image.
28
30
  */
29
31
  points: Point[];
30
32
  /** Raw payload bytes when the symbology provides them (binary QR codes…). */
@@ -80,6 +82,12 @@ export interface CameraOptions {
80
82
  resolution?: CameraResolution;
81
83
  /** Remember the last selected camera in `localStorage`. Default: `true`. */
82
84
  rememberDevice?: boolean;
85
+ /**
86
+ * Release the camera while the page is hidden (tab in the background,
87
+ * screen locked) and reopen it when the page is visible again. The reader
88
+ * stays running in between. Default: `true`.
89
+ */
90
+ releaseWhenHidden?: boolean;
83
91
  }
84
92
 
85
93
  export interface OverlayOptions {