@webcam/react 1.0.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 +97 -0
- package/dist/cjs/components/Webcam/Webcam.js +3 -0
- package/dist/cjs/components/Webcam/Webcam.js.map +1 -0
- package/dist/cjs/components/Webcam/hooks/index.js +3 -0
- package/dist/cjs/components/Webcam/hooks/index.js.map +1 -0
- package/dist/cjs/components/Webcam/hooks/useWebcam.js +3 -0
- package/dist/cjs/components/Webcam/hooks/useWebcam.js.map +1 -0
- package/dist/cjs/components/index.js +3 -0
- package/dist/cjs/components/index.js.map +1 -0
- package/dist/cjs/index-a4e0b8ec.js +3 -0
- package/dist/cjs/index-a4e0b8ec.js.map +1 -0
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/useMediaStream-4231673b.js +7 -0
- package/dist/cjs/useMediaStream-4231673b.js.map +1 -0
- package/dist/cjs/utils/helpers/animationFrame.js +3 -0
- package/dist/cjs/utils/helpers/animationFrame.js.map +1 -0
- package/dist/cjs/utils/helpers/index.js +3 -0
- package/dist/cjs/utils/helpers/index.js.map +1 -0
- package/dist/cjs/utils/hooks/index.js +3 -0
- package/dist/cjs/utils/hooks/index.js.map +1 -0
- package/dist/cjs/utils/hooks/useAnimationFrame.js +3 -0
- package/dist/cjs/utils/hooks/useAnimationFrame.js.map +1 -0
- package/dist/cjs/utils/hooks/useIsomorphicLayoutEffect.js +3 -0
- package/dist/cjs/utils/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/cjs/utils/hooks/useMediaStream.js +3 -0
- package/dist/cjs/utils/hooks/useMediaStream.js.map +1 -0
- package/dist/esm/components/Webcam/Webcam.js +3 -0
- package/dist/esm/components/Webcam/Webcam.js.map +1 -0
- package/dist/esm/components/Webcam/hooks/index.js +3 -0
- package/dist/esm/components/Webcam/hooks/index.js.map +1 -0
- package/dist/esm/components/Webcam/hooks/useWebcam.js +3 -0
- package/dist/esm/components/Webcam/hooks/useWebcam.js.map +1 -0
- package/dist/esm/components/index.js +3 -0
- package/dist/esm/components/index.js.map +1 -0
- package/dist/esm/index-022e8735.js +5 -0
- package/dist/esm/index-022e8735.js.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/useMediaStream-4f24b75b.js +6 -0
- package/dist/esm/useMediaStream-4f24b75b.js.map +1 -0
- package/dist/esm/utils/helpers/animationFrame.js +3 -0
- package/dist/esm/utils/helpers/animationFrame.js.map +1 -0
- package/dist/esm/utils/helpers/index.js +3 -0
- package/dist/esm/utils/helpers/index.js.map +1 -0
- package/dist/esm/utils/hooks/index.js +3 -0
- package/dist/esm/utils/hooks/index.js.map +1 -0
- package/dist/esm/utils/hooks/useAnimationFrame.js +3 -0
- package/dist/esm/utils/hooks/useAnimationFrame.js.map +1 -0
- package/dist/esm/utils/hooks/useIsomorphicLayoutEffect.js +3 -0
- package/dist/esm/utils/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/esm/utils/hooks/useMediaStream.js +3 -0
- package/dist/esm/utils/hooks/useMediaStream.js.map +1 -0
- package/dist/index.d.ts +77 -0
- package/package.json +107 -0
package/README.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# 📸 Webcam React
|
|
2
|
+
|
|
3
|
+
Ultimate tool for working with media stream in your React application
|
|
4
|
+
|
|
5
|
+
## References
|
|
6
|
+
|
|
7
|
+
- [**Demo**](https://react-webcam-ultimate.vercel.app/en/react)
|
|
8
|
+
- [**Web API**](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia)
|
|
9
|
+
- [**Browser Сompatibility**](https://caniuse.com/stream)
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
Install with [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/)
|
|
14
|
+
|
|
15
|
+
```shell
|
|
16
|
+
npm i @webcam/react
|
|
17
|
+
# or
|
|
18
|
+
yarn add @webcam/react
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 🦉 Philosophy
|
|
22
|
+
|
|
23
|
+
📸 **Webcam React** is a package that includes ready-made solutions for common cases of setting up and using a media stream from your webcam using Web API. Our goal is to create simple and flexible tools that allow users to create, test and maintain their products.
|
|
24
|
+
|
|
25
|
+
## Features
|
|
26
|
+
|
|
27
|
+
- TypeScript support out of the box - full typed package
|
|
28
|
+
- Webcam Snapshots - creating an image from a video stream
|
|
29
|
+
- Media Stream Handling - request, errors, update, stop, etc
|
|
30
|
+
- Advanced Video Settings - selecting camera type and resolution
|
|
31
|
+
- Legacy API Support - outdated implementations for each browser
|
|
32
|
+
- React Apps Support - component and hooks for working with playing a media stream
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
```jsx
|
|
37
|
+
import React from 'react';
|
|
38
|
+
import ReactDOM from 'react-dom';
|
|
39
|
+
import { Webcam } from '@webcam/react';
|
|
40
|
+
|
|
41
|
+
const App = () => (
|
|
42
|
+
<Webcam />
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
const root = ReactDOM.createRoot(document.getElementById('root'));
|
|
46
|
+
root.render(<App/>);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### How to get webcam snapshot
|
|
50
|
+
|
|
51
|
+
Returns a base64 encoded string of the current video stream frame in the specified format and quality.
|
|
52
|
+
|
|
53
|
+
```jsx
|
|
54
|
+
import { Webcam } from '@webcam/react';
|
|
55
|
+
|
|
56
|
+
const YourComponent = () => (
|
|
57
|
+
<Webcam mirrored>
|
|
58
|
+
{({ getSnapshot }) => (
|
|
59
|
+
<button onClick={() => getSnapshot({ quality: 0.8 })}>
|
|
60
|
+
Make photo
|
|
61
|
+
</button>
|
|
62
|
+
)}
|
|
63
|
+
</Webcam>
|
|
64
|
+
);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## API
|
|
68
|
+
|
|
69
|
+
You can pass any supported [properties](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video) to the underlying video tag (eg `autoPlay`, `className`, etc). However, for convenience, the component uses its own values for these properties, but you can reassign them without any problems:
|
|
70
|
+
| **Prop** | **Type** | **Default** | **Note** |
|
|
71
|
+
| ------------------------- | -------- | ------------ | --------------------------------------------------------------------------------------- |
|
|
72
|
+
| muted | boolean | true | excludes audio constraints from the MediaStream request |
|
|
73
|
+
| autoPlay | boolean | true | |
|
|
74
|
+
| playsInline | boolean | true | |
|
|
75
|
+
| controls | boolean | false | |
|
|
76
|
+
|
|
77
|
+
The component also supports many properties for more specific work:
|
|
78
|
+
| **Prop** | **Type** | **Default** | **Note** |
|
|
79
|
+
| ------------------------- | -------- | ------------ | --------------------------------------------------------------------------------------- |
|
|
80
|
+
| mirrored | boolean | false | show camera preview and get the screenshot mirrored |
|
|
81
|
+
| mainCamera | boolean \| object | false | should use a main camera (requires Navigator.mediaDevices.enumerateDevices) |
|
|
82
|
+
| frontCamera | boolean | false | should use a front camera (MediaTrackConstraints['facingFront'] === 'user') |
|
|
83
|
+
| applyConstraints | boolean | false | should new constraints be applied to the media stream |
|
|
84
|
+
| cameraResolutionMode | string | 'ideal' | video track resolution mode - `('min' \| 'max' \| 'ideal' \| 'exact')` |
|
|
85
|
+
| cameraResolutionType | string | | video track resolution size - `('UHD' \| 'QHD' \| 'FHD' \| 'HD')` |
|
|
86
|
+
| requestTimeLimit | number | | limiting the media stream request by time |
|
|
87
|
+
| onStreamRequest | function | | callback for when component requests a media stream |
|
|
88
|
+
| onStreamStart | function | | callback for when component starts a media stream |
|
|
89
|
+
| onStreamStop | function | | callback for when component stops a media stream |
|
|
90
|
+
| onStreamError | function | | callback for when component can't receive a media stream |
|
|
91
|
+
| audioConstraints | object ||[MediaStreamConstraints['audio']](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints)|
|
|
92
|
+
| videoConstraints | object ||[MediaStreamConstraints['video']](https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints)|
|
|
93
|
+
| stream | object ||external [MediaStream](https://developer.mozilla.org/en-US/docs/Web/API/MediaStream) (turns off internal media stream handling logic)|
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";require("../../useMediaStream-4231673b.js"),require("react");var e=require("../../index-a4e0b8ec.js");require("./hooks/useWebcam.js"),require("../../utils/hooks/useIsomorphicLayoutEffect.js"),exports.Webcam=e.Webcam;
|
|
3
|
+
//# sourceMappingURL=Webcam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Webcam.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";var t=require("../../../useMediaStream-4231673b.js"),r=require("react"),e=require("../../../utils/hooks/useIsomorphicLayoutEffect.js"),o=["onStreamStart","onStreamStop"];exports.useWebcam=function(a){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=c.onStreamStart,u=c.onStreamStop,n=t._objectWithoutProperties(c,o),i=r.useState(),S=t._slicedToArray(i,2),p=S[0],l=S[1],m=r.useRef({start:s,stop:u});e.useIsomorphicLayoutEffect((function(){m.current={start:s,stop:u}}),[s,u]);var d=function(t){var r,e;null===(r=(e=m.current).start)||void 0===r||r.call(e,t),a.current&&"srcObject"in a.current?a.current.srcObject=t:l(window.URL.createObjectURL(t))},f=function(t){var r,e;null===(r=(e=m.current).stop)||void 0===r||r.call(e,t),p&&window.URL.revokeObjectURL(p)};return t.useMediaStream(t._objectSpread2({onStreamStart:d,onStreamStop:f},n)),{start:d,stop:f,source:p}};
|
|
3
|
+
//# sourceMappingURL=useWebcam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWebcam.js","sources":["../../../../../src/components/Webcam/hooks/useWebcam.ts"],"sourcesContent":["import type { RefObject } from 'react';\r\nimport { useRef, useState } from 'react';\r\n\r\nimport type { UseMediaStreamParams } from '@/utils/hooks';\r\nimport { useIsomorphicLayoutEffect, useMediaStream } from '@/utils/hooks';\r\n\r\n/**\r\n * Helps get/set the media stream source for a video element\r\n *\r\n * @param {RefObject<HTMLVideoElement>} videoRef - video element reference object\r\n * @param {UseMediaStreamParams} params - parameters for receiving media stream\r\n * @return {string | undefined} media stream source\r\n */\r\nexport const useWebcam = (\r\n videoRef: RefObject<HTMLVideoElement>,\r\n { onStreamStart, onStreamStop, ...params }: UseMediaStreamParams = {}\r\n) => {\r\n const [streamSource, setStreamSource] = useState<string>();\r\n const handlerRef = useRef({\r\n start: onStreamStart,\r\n stop: onStreamStop\r\n });\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n handlerRef.current = {\r\n start: onStreamStart,\r\n stop: onStreamStop\r\n };\r\n }, [onStreamStart, onStreamStop]);\r\n\r\n const handleStreamStart = (stream: MediaStream) => {\r\n handlerRef.current.start?.(stream);\r\n\r\n if (videoRef.current && 'srcObject' in videoRef.current) {\r\n // eslint-disable-next-line no-param-reassign\r\n videoRef.current.srcObject = stream;\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n setStreamSource(window.URL.createObjectURL(stream));\r\n };\r\n\r\n const handleStreamStop = (stream?: MediaStream) => {\r\n handlerRef.current.stop?.(stream);\r\n\r\n if (!streamSource) return;\r\n window.URL.revokeObjectURL(streamSource);\r\n };\r\n\r\n useMediaStream({\r\n onStreamStart: handleStreamStart,\r\n onStreamStop: handleStreamStop,\r\n ...params\r\n });\r\n\r\n return {\r\n start: handleStreamStart,\r\n stop: handleStreamStop,\r\n source: streamSource\r\n };\r\n};\r\n"],"names":["videoRef","_ref","arguments","length","undefined","onStreamStart","onStreamStop","params","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","streamSource","setStreamSource","handlerRef","useRef","start","stop","useIsomorphicLayoutEffect","current","handleStreamStart","stream","_handlerRef$current$s","_handlerRef$current","call","srcObject","window","URL","createObjectURL","handleStreamStop","_handlerRef$current$s2","_handlerRef$current2","revokeObjectURL","useMediaStream","_objectSpread","source"],"mappings":";yMAayB,SACvBA,GAEG,IAAAC,EAAAC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GADgE,CAAE,EAAnEG,EAAaJ,EAAbI,cAAeC,EAAYL,EAAZK,aAAiBC,EAAMC,EAAAA,yBAAAP,EAAAQ,GAExCC,EAAwCC,EAAAA,WAAkBC,EAAAC,EAAAA,eAAAH,EAAA,GAAnDI,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GAC9BI,EAAaC,EAAAA,OAAO,CACxBC,MAAOb,EACPc,KAAMb,IAGRc,EAAAA,2BAA0B,WACxBJ,EAAWK,QAAU,CACnBH,MAAOb,EACPc,KAAMb,EAEV,GAAG,CAACD,EAAeC,IAEnB,IAAMgB,EAAoB,SAACC,GAAwB,IAAAC,EAAAC,UACjDD,GAAAC,EAAAT,EAAWK,SAAQH,aAAK,IAAAM,GAAxBA,EAAAE,KAAAD,EAA2BF,GAEvBvB,EAASqB,SAAW,cAAerB,EAASqB,QAE9CrB,EAASqB,QAAQM,UAAYJ,EAK/BR,EAAgBa,OAAOC,IAAIC,gBAAgBP,KAGvCQ,EAAmB,SAACR,GAAyB,IAAAS,EAAAC,UACjDD,GAAAC,EAAAjB,EAAWK,SAAQF,YAAI,IAAAa,GAAvBA,EAAAN,KAAAO,EAA0BV,GAErBT,GACLc,OAAOC,IAAIK,gBAAgBpB,IAS7B,OANAqB,EAAAA,eAAcC,EAAAA,eAAA,CACZ/B,cAAeiB,EACfhB,aAAcyB,GACXxB,IAGE,CACLW,MAAOI,EACPH,KAAMY,EACNM,OAAQvB,EAEZ"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";var e=require("./Webcam/hooks/useWebcam.js"),r=require("../index-a4e0b8ec.js");require("../useMediaStream-4231673b.js"),require("react"),require("../utils/hooks/useIsomorphicLayoutEffect.js"),exports.useWebcam=e.useWebcam,exports.Webcam=r.Webcam;
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";var e=require("./components/Webcam/hooks/useWebcam.js"),t=require("./useMediaStream-4231673b.js"),r=require("react"),a=["imageSmoothingEnabled","mirrored"],o=function(e){var r,o,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.imageSmoothingEnabled,m=void 0===i||i,s=n.mirrored,d=t.u$1(n,a),u=e.videoWidth,c=e.videoHeight,l=document.createElement("canvas");l.width=null!==(r=d.width)&&void 0!==r?r:u,l.height=null!==(o=d.height)&&void 0!==o?o:c;var p=l.getContext("2d");if(p)return s&&(p.translate(l.width,0),p.scale(-1,1)),p.imageSmoothingEnabled=m,p.drawImage(e,0,0,l.width,l.height),s&&(p.scale(-1,1),p.translate(-l.width,0)),l},n=["format","quality"],i=function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.format,i=void 0===a?"image/jpeg":a,m=r.quality,s=void 0===m?1:m,d=t.u$1(r,n),u=o(e,d);if(u)return u.toDataURL(i,s)},m=["innerRef","stream","cameraResolutionMode","cameraResolutionType","videoConstraints","audioConstraints","requestTimeLimit","applyConstraints","frontCamera","mainCamera","mirrored","muted","style","children","onLoadedMetadata","onStreamRequest","onStreamError","onStreamStart","onStreamStop"];exports.Webcam=function(a){var n=a.innerRef,s=a.stream,d=a.cameraResolutionMode,u=a.cameraResolutionType,c=a.videoConstraints,l=a.audioConstraints,p=a.requestTimeLimit,S=a.applyConstraints,f=a.frontCamera,v=a.mainCamera,h=a.mirrored,g=void 0===h||h,C=a.muted,b=void 0===C||C,y=a.style,R=void 0===y?{}:y,q=a.children,E=a.onLoadedMetadata,j=a.onStreamRequest,_=a.onStreamError,L=a.onStreamStart,M=a.onStreamStop,T=t._objectWithoutProperties(a,m),w=r.useRef(null),W=null!=n?n:w,x=e.useWebcam(W,s?{disable:!0}:{applyConstraints:S,requestTimeLimit:p,onStreamRequest:j,onStreamError:_,onStreamStart:L,onStreamStop:M,videoConstraints:c,audioConstraints:l,cameraResolutionMode:d,cameraResolutionType:u,frontCamera:f,mainCamera:v,muted:b});return r.useEffect((function(){if(s)return x.start(s),function(){x.stop(s)}}),[s]),r.createElement(r.Fragment,null,r.createElement("video",t._extends({autoPlay:!0,playsInline:!0,muted:b,ref:W,controls:!1,src:x.source,onLoadedMetadata:function(e){null==E||E(e),e.currentTarget.play()},style:t._objectSpread2(t._objectSpread2({},R),g&&{transform:"".concat(R.transform?"".concat(R.transform," "):"","scaleX(-1)")})},T)),"function"==typeof q?q({videoElement:W.current,getCanvas:function(e){return W.current?o(W.current,t._objectSpread2(t._objectSpread2({},e),{},{mirrored:g})):void 0},getSnapshot:function(e){return W.current?i(W.current,t._objectSpread2(t._objectSpread2({},e),{},{mirrored:g})):void 0}}):q)},exports.t=o,exports.t$1=i;
|
|
3
|
+
//# sourceMappingURL=index-a4e0b8ec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-a4e0b8ec.js","sources":["../../../core/dist/esm/helpers/snapshot/getVideoFrameCanvas.js","../../../core/dist/esm/helpers/snapshot/getWebcamSnapshot.js","../../src/components/Webcam/Webcam.tsx"],"sourcesContent":["/* @license @webcam/core v0.0.0 */\nimport{b as e}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";var i=[\"imageSmoothingEnabled\",\"mirrored\"],t=function(t){var a,o,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=d.imageSmoothingEnabled,n=void 0===r||r,l=d.mirrored,h=e(d,i),g=t.videoWidth,m=t.videoHeight,v=document.createElement(\"canvas\");v.width=null!==(a=h.width)&&void 0!==a?a:g,v.height=null!==(o=h.height)&&void 0!==o?o:m;var s=v.getContext(\"2d\");if(s)return l&&(s.translate(v.width,0),s.scale(-1,1)),s.imageSmoothingEnabled=n,s.drawImage(t,0,0,v.width,v.height),l&&(s.scale(-1,1),s.translate(-v.width,0)),v};export{t as getVideoFrameCanvas};\n//# sourceMappingURL=getVideoFrameCanvas.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{getVideoFrameCanvas as a}from\"./getVideoFrameCanvas.js\";import{b as o}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";var r=[\"format\",\"quality\"],t=function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=i.format,l=void 0===e?\"image/jpeg\":e,m=i.quality,f=void 0===m?1:m,n=o(i,r),p=a(t,n);if(p)return p.toDataURL(l,f)};export{t as getWebcamSnapshot};\n//# sourceMappingURL=getWebcamSnapshot.js.map\n","import type { ComponentPropsWithoutRef, FC, ReactNode, RefObject, SyntheticEvent } from 'react';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport type { GetVideoFrameCanvasOptions, GetWebcamSnapshotOptions } from '@webcam/core';\r\nimport { getVideoFrameCanvas, getWebcamSnapshot } from '@webcam/core';\r\n\r\nimport type { UseMediaStreamParams } from '@/utils/hooks';\r\n\r\nimport { useWebcam } from './hooks';\r\n\r\ntype VideoElementProps = Omit<ComponentPropsWithoutRef<'video'>, 'children'>;\r\ntype AvailableUseMediaStreamParams = Omit<UseMediaStreamParams, 'disable'>;\r\n\r\nexport type WebcamRenderProps = (options: {\r\n getCanvas: (options?: GetVideoFrameCanvasOptions) => HTMLCanvasElement | undefined;\r\n getSnapshot: (options?: GetWebcamSnapshotOptions) => string | undefined;\r\n videoElement: HTMLVideoElement | null;\r\n}) => ReactNode;\r\n\r\ninterface BaseWebcamProps extends VideoElementProps {\r\n children?: ReactNode | WebcamRenderProps;\r\n innerRef?: RefObject<HTMLVideoElement>;\r\n mirrored?: boolean;\r\n}\r\n\r\ninterface WebcamPropsWithInternalStream extends BaseWebcamProps, AvailableUseMediaStreamParams {\r\n stream?: undefined;\r\n}\r\n\r\ninterface WebcamPropsWithExternalStream extends BaseWebcamProps {\r\n stream?: MediaStream;\r\n}\r\n\r\ntype WebcamPropsEnumeration = WebcamPropsWithExternalStream &\r\n Omit<WebcamPropsWithInternalStream, 'stream'>;\r\n\r\nexport type WebcamProps = WebcamPropsWithInternalStream | WebcamPropsWithExternalStream;\r\n\r\n/**\r\n * Renders the Webcam component and handles the requesting and displaying of the media stream\r\n *\r\n * @param {WebcamProps} props - The props for the Webcam component\r\n * @return {ReactElement} The rendered Webcam component\r\n */\r\nexport const Webcam: FC<WebcamProps> = ({\r\n innerRef: externalVideoRef,\r\n stream: externalStream,\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n videoConstraints,\r\n audioConstraints,\r\n requestTimeLimit,\r\n applyConstraints,\r\n frontCamera,\r\n mainCamera,\r\n mirrored = true,\r\n muted = true,\r\n style = {},\r\n children,\r\n onLoadedMetadata,\r\n onStreamRequest,\r\n onStreamError,\r\n onStreamStart,\r\n onStreamStop,\r\n ...props\r\n}: WebcamPropsEnumeration) => {\r\n const internalVideoRef = useRef<HTMLVideoElement | null>(null);\r\n const videoRef = externalVideoRef ?? internalVideoRef;\r\n\r\n const onMediaStreamLoad = (event: SyntheticEvent<HTMLVideoElement, Event>) => {\r\n onLoadedMetadata?.(event);\r\n event.currentTarget.play();\r\n };\r\n\r\n const stream = useWebcam(\r\n videoRef,\r\n !externalStream\r\n ? {\r\n // STREAM PARAMS:\r\n applyConstraints,\r\n requestTimeLimit,\r\n // STREAM HANDLERS:\r\n onStreamRequest,\r\n onStreamError,\r\n onStreamStart,\r\n onStreamStop,\r\n // DEFAULT CONSTRAINTS:\r\n videoConstraints,\r\n audioConstraints,\r\n // CUSTOM CONSTRAINTS:\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n frontCamera,\r\n mainCamera,\r\n muted\r\n }\r\n : {\r\n disable: true\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n if (!externalStream) return;\r\n\r\n stream.start(externalStream);\r\n\r\n return () => {\r\n stream.stop(externalStream);\r\n };\r\n }, [externalStream]);\r\n\r\n return (\r\n <>\r\n <video\r\n autoPlay\r\n playsInline\r\n muted={muted}\r\n ref={videoRef}\r\n controls={false}\r\n src={stream.source}\r\n onLoadedMetadata={onMediaStreamLoad}\r\n style={{\r\n ...style,\r\n ...(mirrored && {\r\n transform: `${style.transform ? `${style.transform} ` : ''}scaleX(-1)`\r\n })\r\n }}\r\n {...props}\r\n />\r\n {typeof children === 'function'\r\n ? children({\r\n videoElement: videoRef.current,\r\n getCanvas: (options?: GetVideoFrameCanvasOptions) =>\r\n videoRef.current\r\n ? getVideoFrameCanvas(videoRef.current, { ...options, mirrored })\r\n : undefined,\r\n getSnapshot: (options?: GetWebcamSnapshotOptions) =>\r\n videoRef.current\r\n ? getWebcamSnapshot(videoRef.current, { ...options, mirrored })\r\n : undefined\r\n })\r\n : children}\r\n </>\r\n );\r\n};\r\n"],"names":["t","a","o","d","arguments","length","r","imageSmoothingEnabled","n","l","mirrored","h","e","i","g","videoWidth","m","videoHeight","v","document","createElement","width","height","s","getContext","translate","scale","drawImage","format","quality","f","p","toDataURL","_ref","externalVideoRef","innerRef","externalStream","stream","cameraResolutionMode","cameraResolutionType","videoConstraints","audioConstraints","requestTimeLimit","applyConstraints","frontCamera","mainCamera","_ref$mirrored","_ref$muted","muted","_ref$style","style","children","onLoadedMetadata","onStreamRequest","onStreamError","onStreamStart","onStreamStop","props","_objectWithoutProperties","_excluded","internalVideoRef","useRef","videoRef","useWebcam","disable","useEffect","start","stop","React","Fragment","_extends","autoPlay","playsInline","ref","controls","src","source","event","currentTarget","play","_objectSpread","_objectSpread2","transform","concat","videoElement","current","getCanvas","options","getVideoFrameCanvas","undefined","getSnapshot","getWebcamSnapshot"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";var e=require("./components/Webcam/hooks/useWebcam.js"),r=require("./index-a4e0b8ec.js"),t=require("./utils/hooks/useAnimationFrame.js");require("react");var s=require("./useMediaStream-4231673b.js");require("./utils/hooks/useIsomorphicLayoutEffect.js"),require("./utils/helpers/animationFrame.js");exports.useWebcam=e.useWebcam,exports.Webcam=r.Webcam,exports.getVideoFrameCanvas=r.t,exports.getWebcamSnapshot=r.t$1,exports.useAnimationFrame=t.useAnimationFrame,exports.applyMediaStreamConstraints=s.n,exports.canGetUserMedia=s.i,exports.getMediaStream=s.s,exports.getMediaStreamConstraints=s.u,exports.stopMediaStream=s.o,exports.useMediaStream=s.useMediaStream,exports.getDevices=function(){return"mediaDevices"in navigator&&navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices():Promise.reject(new Error("Method enumerateDevices of Navigator is not implemented in this browser"))};
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../core/dist/esm/helpers/getDevices.js"],"sourcesContent":["/* @license @webcam/core v0.0.0 */\nvar e=function(){return\"mediaDevices\"in navigator&&navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices():Promise.reject(new Error(\"Method enumerateDevices of Navigator is not implemented in this browser\"))};export{e as getDevices};\n//# sourceMappingURL=getDevices.js.map\n"],"names":["navigator","mediaDevices","enumerateDevices","Promise","reject","Error"],"mappings":";wrBAA0B,WACxB,MAAM,iBAAkBA,WAAaA,UAAUC,aAAaC,iBAMrDF,UAAUC,aAAaC,mBALrBC,QAAQC,OACb,IAAIC,MAAM,2EAKhB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";var t=require("react"),r=require("./utils/hooks/useIsomorphicLayoutEffect.js");function e(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function n(){n=function(){return r};var t,r={},e=Object.prototype,o=e.hasOwnProperty,i=Object.defineProperty||function(t,r,e){t[r]=e.value},a="function"==typeof Symbol?Symbol:{},u=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function f(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{f({},"")}catch(t){f=function(t,r,e){return t[r]=e}}function l(t,r,e,n){var o=r&&r.prototype instanceof g?r:g,a=Object.create(o.prototype),u=new A(n||[]);return i(a,"_invoke",{value:L(t,e,u)}),a}function h(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}r.wrap=l;var p="suspendedStart",v="suspendedYield",y="executing",d="completed",m={};function g(){}function b(){}function w(){}var x={};f(x,u,(function(){return this}));var O=Object.getPrototypeOf,j=O&&O(O(D([])));j&&j!==e&&o.call(j,u)&&(x=j);var E=w.prototype=g.prototype=Object.create(x);function k(t){["next","throw","return"].forEach((function(r){f(t,r,(function(t){return this._invoke(r,t)}))}))}function S(t,r){function e(n,i,a,u){var c=h(t[n],t,i);if("throw"!==c.type){var s=c.arg,f=s.value;return f&&"object"==typeof f&&o.call(f,"__await")?r.resolve(f.__await).then((function(t){e("next",t,a,u)}),(function(t){e("throw",t,a,u)})):r.resolve(f).then((function(t){s.value=t,a(s)}),(function(t){return e("throw",t,a,u)}))}u(c.arg)}var n;i(this,"_invoke",{value:function(t,o){function i(){return new r((function(r,n){e(t,o,r,n)}))}return n=n?n.then(i,i):i()}})}function L(r,e,n){var o=p;return function(i,a){if(o===y)throw new Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var u=n.delegate;if(u){var c=P(u,n);if(c){if(c===m)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var s=h(r,e,n);if("normal"===s.type){if(o=n.done?d:v,s.arg===m)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=d,n.method="throw",n.arg=s.arg)}}}function P(r,e){var n=e.method,o=r.iterator[n];if(o===t)return e.delegate=null,"throw"===n&&r.iterator.return&&(e.method="return",e.arg=t,P(r,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=h(o,r.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,m;var a=i.arg;return a?a.done?(e[r.resultName]=a.value,e.next=r.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,m):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,m)}function T(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function _(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function A(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function D(r){if(r||""===r){var e=r[u];if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var n=-1,i=function e(){for(;++n<r.length;)if(o.call(r,n))return e.value=r[n],e.done=!1,e;return e.value=t,e.done=!0,e};return i.next=i}}throw new TypeError(typeof r+" is not iterable")}return b.prototype=w,i(E,"constructor",{value:w,configurable:!0}),i(w,"constructor",{value:b,configurable:!0}),b.displayName=f(w,s,"GeneratorFunction"),r.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===b||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,f(t,s,"GeneratorFunction")),t.prototype=Object.create(E),t},r.awrap=function(t){return{__await:t}},k(S.prototype),f(S.prototype,c,(function(){return this})),r.AsyncIterator=S,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new S(l(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},k(E),f(E,s,"Generator"),f(E,u,(function(){return this})),f(E,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var r=Object(t),e=[];for(var n in r)e.push(n);return e.reverse(),function t(){for(;e.length;){var n=e.pop();if(n in r)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=D,A.prototype={constructor:A,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(_),!r)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function n(n,o){return u.type="throw",u.arg=r,e.next=n,o&&(e.method="next",e.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var c=o.call(a,"catchLoc"),s=o.call(a,"finallyLoc");if(c&&s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),m},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),_(e),m}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;_(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(r,e,n){return this.delegate={iterator:D(r),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=t),m}},r}function o(t){var r=function(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==typeof r?r:String(r)}function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function a(t,r,e,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void e(t)}u.done?r(c):Promise.resolve(c).then(n,o)}function u(t,r,e){return(r=o(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function c(){return c=Object.assign?Object.assign.bind():function(t){for(var r=1;r<arguments.length;r++){var e=arguments[r];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t},c.apply(this,arguments)}function s(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}
|
|
3
|
+
/* @license @webcam/core v0.0.0 */
|
|
4
|
+
function f(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function l(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?f(Object(e),!0).forEach((function(r){d(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):f(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function h(){h=function(){return r};var t,r={},e=Object.prototype,n=e.hasOwnProperty,o=Object.defineProperty||function(t,r,e){t[r]=e.value},a="function"==typeof Symbol?Symbol:{},u=a.iterator||"@@iterator",c=a.asyncIterator||"@@asyncIterator",s=a.toStringTag||"@@toStringTag";function f(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{f({},"")}catch(t){f=function(t,r,e){return t[r]=e}}function l(t,r,e,n){var i=r&&r.prototype instanceof b?r:b,a=Object.create(i.prototype),u=new D(n||[]);return o(a,"_invoke",{value:P(t,e,u)}),a}function p(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}r.wrap=l;var v="suspendedStart",y="suspendedYield",d="executing",m="completed",g={};function b(){}function w(){}function x(){}var O={};f(O,u,(function(){return this}));var j=Object.getPrototypeOf,E=j&&j(j(I([])));E&&E!==e&&n.call(E,u)&&(O=E);var k=x.prototype=b.prototype=Object.create(O);function S(t){["next","throw","return"].forEach((function(r){f(t,r,(function(t){return this._invoke(r,t)}))}))}function L(t,r){function e(o,a,u,c){var s=p(t[o],t,a);if("throw"!==s.type){var f=s.arg,l=f.value;return l&&"object"==i(l)&&n.call(l,"__await")?r.resolve(l.__await).then((function(t){e("next",t,u,c)}),(function(t){e("throw",t,u,c)})):r.resolve(l).then((function(t){f.value=t,u(f)}),(function(t){return e("throw",t,u,c)}))}c(s.arg)}var a;o(this,"_invoke",{value:function(t,n){function o(){return new r((function(r,o){e(t,n,r,o)}))}return a=a?a.then(o,o):o()}})}function P(r,e,n){var o=v;return function(i,a){if(o===d)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var u=n.delegate;if(u){var c=T(u,n);if(c){if(c===g)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===v)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var s=p(r,e,n);if("normal"===s.type){if(o=n.done?m:y,s.arg===g)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=m,n.method="throw",n.arg=s.arg)}}}function T(r,e){var n=e.method,o=r.iterator[n];if(o===t)return e.delegate=null,"throw"===n&&r.iterator.return&&(e.method="return",e.arg=t,T(r,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=p(o,r.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,g;var a=i.arg;return a?a.done?(e[r.resultName]=a.value,e.next=r.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,g):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,g)}function _(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function A(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function D(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function I(r){if(r||""===r){var e=r[u];if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,a=function e(){for(;++o<r.length;)if(n.call(r,o))return e.value=r[o],e.done=!1,e;return e.value=t,e.done=!0,e};return a.next=a}}throw new TypeError(i(r)+" is not iterable")}return w.prototype=x,o(k,"constructor",{value:x,configurable:!0}),o(x,"constructor",{value:w,configurable:!0}),w.displayName=f(x,s,"GeneratorFunction"),r.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===w||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,x):(t.__proto__=x,f(t,s,"GeneratorFunction")),t.prototype=Object.create(k),t},r.awrap=function(t){return{__await:t}},S(L.prototype),f(L.prototype,c,(function(){return this})),r.AsyncIterator=L,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new L(l(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},S(k),f(k,s,"Generator"),f(k,u,(function(){return this})),f(k,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var r=Object(t),e=[];for(var n in r)e.push(n);return e.reverse(),function t(){for(;e.length;){var n=e.pop();if(n in r)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=I,D.prototype={constructor:D,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!r)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function o(n,o){return u.type="throw",u.arg=r,e.next=n,o&&(e.method="next",e.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var c=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(c&&s){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,g):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),g},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),A(e),g}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;A(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(r,e,n){return this.delegate={iterator:I(r),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=t),g}},r}function p(t){return p="function"==typeof Symbol&&"symbol"==i(Symbol.iterator)?function(t){return i(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":i(t)},p(t)}function v(t,r,e,n,o,i,a){try{var u=t[i](a),c=u.value}catch(t){return void e(t)}u.done?r(c):Promise.resolve(c).then(n,o)}function y(t){return function(){var r=this,e=arguments;return new Promise((function(n,o){var i=t.apply(r,e);function a(t){v(i,n,o,a,u,"next",t)}function u(t){v(i,n,o,a,u,"throw",t)}a(void 0)}))}}function d(t,r,e){return(r=function(t){var r=function(t,r){if("object"!=i(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==i(r)?r:String(r)}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function m(t,r){if(null==t)return{};var e,n,o=function(t,r){if(null==t)return{};var e,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||(o[e]=t[e]);return o}(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o}function g(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,u=[],c=!0,s=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;c=!1}else for(;!(c=(n=i.call(e)).done)&&(u.push(n.value),u.length!==r);c=!0);}catch(t){s=!0,o=t}finally{try{if(!c&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(s)throw o}}return u}}(t,r)||function(t,r){if(t){if("string"==typeof t)return b(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?b(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}
|
|
5
|
+
/* @license @webcam/core v0.0.0 */var w=function(){var t=y(h().mark((function t(r,e){var n,o,i,a,u,c,s,f;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.video,o=e.audio,i=r.getVideoTracks(),a=g(i,1),!(u=a[0])){t.next=5;break}return t.next=5,u.applyConstraints("object"===p(n)?n:{});case 5:if(c=r.getAudioTracks(),s=g(c,1),!(f=s[0])){t.next=9;break}return t.next=9,f.applyConstraints("object"===p(o)?o:{});case 9:case"end":return t.stop()}}),t)})));return function(r,e){return t.apply(this,arguments)}}(),x=function(t){if(t)return{optional:[{sourceId:t}]}},O=function(t){if("object"===p(t)){var r=t.deviceId;return"string"==typeof r?r:Array.isArray(r)?r[0]:"object"===p(r)&&r.ideal?Array.isArray(r.ideal)?r.ideal[0]:r.ideal:void 0}},j=function(){var t=y(h().mark((function t(r){var e,n,o,i,a,u;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e={video:void 0,audio:void 0},t.next=3,new Promise((function(t){"getSources"in MediaStreamTrack?MediaStreamTrack.getSources(t):t(void 0)}));case 3:if(n=t.sent){t.next=6;break}return t.abrupt("return",e);case 6:return n.forEach((function(t){"video"!==t.kind?"audio"===t.kind&&(i=t.id):o=t.id})),a=O(r.video),u=O(r.audio),e.audio=x(null!=a?a:o),e.video=x(null!=u?u:i),t.abrupt("return",e);case 12:case"end":return t.stop()}}),t)})));return function(r){return t.apply(this,arguments)}}(),E={back:/(?=.*\bback\b)(?=.*\b0\b)/,front:/\bfront\b/},k=function(){var t=y(h().mark((function t(r,e){var n,o,i,a;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("mediaDevices"in navigator&&navigator.mediaDevices.enumerateDevices){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,navigator.mediaDevices.enumerateDevices();case 4:if(n=t.sent,!((o=n.filter((function(t){return"videoinput"===t.kind}))).length<=2)){t.next=8;break}return t.abrupt("return");case 8:return a=e?"front":"back","object"===p(r)&&(i=r instanceof RegExp?r:r[a]),t.abrupt("return",o.find((function(t){var r,e=t.label;return(null!==(r=i)&&void 0!==r?r:E[a]).test(e)})));case 11:case"end":return t.stop()}}),t)})));return function(r,e){return t.apply(this,arguments)}}(),S={UHD:{width:3840,height:2160},QHD:{width:2560,height:1440},FHD:{width:1920,height:1080},HD:{width:1280,height:720}},L=function(){var t=y(h().mark((function t(r,e){var n,o,i,a,u,c,s,f;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.mainCamera,o=e.frontCamera,i=e.cameraResolutionType,a=e.cameraResolutionMode,u=void 0===a?"ideal":a,c=l({},i&&{width:d({},u,S[i].width),height:d({},u,S[i].height)}),!n){t.next=7;break}return t.next=5,k("object"===p(n)?n:void 0,o);case 5:null!=(s=t.sent)&&s.deviceId&&(c.deviceId={exact:s.deviceId});case 7:return c.deviceId||"boolean"!=typeof o||(c.facingMode=o?"user":"environment"),f=l(l({},c),r),t.abrupt("return",f);case 10:case"end":return t.stop()}}),t)})));return function(r,e){return t.apply(this,arguments)}}(),P=["video","audio"],T=["muted"],_=function(){var t=y(h().mark((function t(){var r,e,n,o,i,a,u,c,s,f,v,y,d,g,b,w,x,O=arguments;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=(r=O.length>0&&void 0!==O[0]?O[0]:{}).constraints,o=(n=void 0===e?{}:e).video,i=void 0===o||o,a=n.audio,u=void 0!==a&&a,c=m(n,P),s=r.options,v=(f=void 0===s?{}:s).muted,y=void 0!==v&&v,d=m(f,T),!("mediaDevices"in navigator)){t.next=9;break}if(b=u,!i){t.next=7;break}return t.next=6,L("object"===p(i)?i:{},d);case 6:g=t.sent;case 7:t.next=14;break;case 9:return t.next=11,j({video:i,audio:u});case 11:w=t.sent,b=w.audio,g=w.video;case 14:return x=l(l(l({},c),!y&&{audio:void 0===b||b}),{},{video:void 0===g||g}),t.abrupt("return",x);case 16:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),A=function(){return!(!("mediaDevices"in navigator)||!navigator.mediaDevices.getUserMedia)},D="undefined"!=typeof window&&(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia),I=function(t){return A()?navigator.mediaDevices.getUserMedia(t):D?new Promise((function(r,e){D.call(navigator,t,r,e)})):Promise.reject(new Error("Method getUserMedia of Navigator is not implemented in this browser"))},M=function(){return"undefined"!=typeof navigator&&(A()?!!navigator.mediaDevices.getUserMedia:!!D)},G=function(){var t=y(h().mark((function t(r,e){var n,o;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(M()){t.next=2;break}throw new Error("Method getUserMedia of Navigator is not supported");case 2:return t.next=4,_(r);case 4:if(o=t.sent,!e){t.next=11;break}return t.next=8,new Promise((function(t,r){var n=setTimeout((function(){r(new Error("User media request has reached the specified time limit"))}),e);I(o).then((function(r){return clearTimeout(n),t(r)})).catch((function(t){clearTimeout(n),r(t)}))}));case 8:n=t.sent,t.next=14;break;case 11:return t.next=13,I(o);case 13:n=t.sent;case 14:if(n){t.next=16;break}throw new Error("Stream of media content was not found");case 16:return t.abrupt("return",n);case 17:case"end":return t.stop()}}),t)})));return function(r,e){return t.apply(this,arguments)}}(),N=function(t){if(t){if(!(t instanceof MediaStreamTrack))return t.getVideoTracks&&t.getAudioTracks?(t.getVideoTracks().forEach((function(r){t.removeTrack(r),r.stop()})),void t.getAudioTracks().forEach((function(r){t.removeTrack(r),r.stop()}))):void(t.getTracks&&t.getTracks().forEach((function(r){t.removeTrack(r),r.stop()})));t.stop()}};
|
|
6
|
+
/* @license @webcam/core v0.0.0 */exports._extends=c,exports._objectSpread2=function(t){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?e(Object(n),!0).forEach((function(r){u(t,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):e(Object(n)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))}))}return t},exports._objectWithoutProperties=function(t,r){if(null==t)return{};var e,n,o=function(t,r){if(null==t)return{};var e,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||(o[e]=t[e]);return o}(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o},exports._slicedToArray=function(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,u=[],c=!0,s=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;c=!1}else for(;!(c=(n=i.call(e)).done)&&(u.push(n.value),u.length!==r);c=!0);}catch(t){s=!0,o=t}finally{try{if(!c&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(s)throw o}}return u}}(t,r)||function(t,r){if(!t)return;if("string"==typeof t)return s(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return s(t,r)}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()},exports.i=M,exports.n=w,exports.o=N,exports.s=G,exports.u=_,exports.u$1=m,exports.useMediaStream=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=e.onStreamRequest,i=e.onStreamError,u=e.onStreamStart,c=e.onStreamStop,s=e.disable,f=e.applyConstraints,l=e.requestTimeLimit,h=e.videoConstraints,p=e.audioConstraints,v=e.cameraResolutionMode,y=e.cameraResolutionType,d=e.frontCamera,m=e.mainCamera,g=e.muted,b=t.useRef(),x=t.useRef({request:o,error:i,start:u,stop:c});return r.useIsomorphicLayoutEffect((function(){x.current={request:o,error:i,start:u,stop:c}}),[o,i,u,c]),t.useEffect((function(){if(!s){var t={constraints:{video:h,audio:p},options:{cameraResolutionMode:v,cameraResolutionType:y,frontCamera:d,mainCamera:m,muted:g}},r=function(){var t,r=(t=n().mark((function t(r){var e,o,i,a,u,c,s;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,null===(e=(o=x.current).request)||void 0===e||e.call(o),t.next=4,G(r,l);case 4:u=t.sent,null===(i=(a=x.current).start)||void 0===i||i.call(a,u),t.next=11;break;case 8:t.prev=8,t.t0=t.catch(0),null===(c=(s=x.current).error)||void 0===c||c.call(s,t.t0);case 11:case"end":return t.stop()}}),t,null,[[0,8]])})),function(){var r=this,e=arguments;return new Promise((function(n,o){var i=t.apply(r,e);function u(t){a(i,n,o,u,c,"next",t)}function c(t){a(i,n,o,u,c,"throw",t)}u(void 0)}))});return function(t){return r.apply(this,arguments)}}(),e=b.current;return f&&e?_(t).then((function(t){return w(e,t)})).catch((function(){return r(t)})):r(t),function(){var t,r;null===(t=(r=x.current).stop)||void 0===t||t.call(r,e),N(e)}}}),[s,f,l,h,p,v,y,d,m,g]),b.current};
|
|
7
|
+
//# sourceMappingURL=useMediaStream-4231673b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaStream-4231673b.js","sources":["../../../core/dist/esm/helpers/constraints/applyMediaStreamConstraints.js","../../../core/dist/esm/helpers/constraints/getConstraintsBySource.js","../../../core/dist/esm/helpers/getMediaTrackSources.js","../../../core/dist/esm/helpers/getMainCamera.js","../../../core/dist/esm/helpers/constraints/getVideoTrackConstraints.js","../../../core/dist/esm/helpers/constraints/getMediaStreamConstraints.js","../../../core/dist/esm/helpers/stream/hasGetUserMedia.js","../../../core/dist/esm/helpers/stream/getUserMedia.js","../../../core/dist/esm/helpers/stream/canGetUserMedia.js","../../../core/dist/esm/helpers/stream/getMediaStream.js","../../../core/dist/esm/helpers/stream/stopMediaStream.js","../../src/utils/hooks/useMediaStream.ts"],"sourcesContent":["/* @license @webcam/core v0.0.0 */\nimport{_ as r,a as e,f as t,d as a}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";var n=function(){var n=r(e().mark((function r(n,s){var o,i,u,c,p,f,l,d;return e().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=s.video,i=s.audio,u=n.getVideoTracks(),c=t(u,1),!(p=c[0])){r.next=5;break}return r.next=5,p.applyConstraints(\"object\"===a(o)?o:{});case 5:if(f=n.getAudioTracks(),l=t(f,1),!(d=l[0])){r.next=9;break}return r.next=9,d.applyConstraints(\"object\"===a(i)?i:{});case 9:case\"end\":return r.stop()}}),r)})));return function(r,e){return n.apply(this,arguments)}}();export{n as applyMediaStreamConstraints};\n//# sourceMappingURL=applyMediaStreamConstraints.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as r,a as e,d as i}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";import{getMediaTrackSources as n}from\"../getMediaTrackSources.js\";var a=function(r){if(r)return{optional:[{sourceId:r}]}},t=function(r){if(\"object\"===i(r)){var e=r.deviceId;return\"string\"==typeof e?e:Array.isArray(e)?e[0]:\"object\"===i(e)&&e.ideal?Array.isArray(e.ideal)?e.ideal[0]:e.ideal:void 0}},o=function(){var i=r(e().mark((function r(i){var o,u,d,c,s,f;return e().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o={video:void 0,audio:void 0},r.next=3,n();case 3:if(u=r.sent){r.next=6;break}return r.abrupt(\"return\",o);case 6:return u.forEach((function(r){\"video\"!==r.kind?\"audio\"===r.kind&&(c=r.id):d=r.id})),s=t(i.video),f=t(i.audio),o.audio=a(null!=s?s:d),o.video=a(null!=f?f:c),r.abrupt(\"return\",o);case 12:case\"end\":return r.stop()}}),r)})));return function(r){return i.apply(this,arguments)}}();export{o as getConstraintsBySource};\n//# sourceMappingURL=getConstraintsBySource.js.map\n","/* @license @webcam/core v0.0.0 */\nvar e=function(){return new Promise((function(e){\"getSources\"in MediaStreamTrack?MediaStreamTrack.getSources(e):e(void 0)}))};export{e as getMediaTrackSources};\n//# sourceMappingURL=getMediaTrackSources.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as e,a as r,d as n}from\"../_rollupPluginBabelHelpers-59ed2110.js\";var t={back:/(?=.*\\bback\\b)(?=.*\\b0\\b)/,front:/\\bfront\\b/},a=function(){var a=e(r().mark((function e(a,i){var u,c,o,s;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(\"mediaDevices\"in navigator&&navigator.mediaDevices.enumerateDevices){e.next=2;break}return e.abrupt(\"return\");case 2:return e.next=4,navigator.mediaDevices.enumerateDevices();case 4:if(u=e.sent,!((c=u.filter((function(e){return\"videoinput\"===e.kind}))).length<=2)){e.next=8;break}return e.abrupt(\"return\");case 8:return s=i?\"front\":\"back\",\"object\"===n(a)&&(o=a instanceof RegExp?a:a[s]),e.abrupt(\"return\",c.find((function(e){var r,n=e.label;return(null!==(r=o)&&void 0!==r?r:t[s]).test(n)})));case 11:case\"end\":return e.stop()}}),e)})));return function(e,r){return a.apply(this,arguments)}}();export{t as DEFAULT_MAIN_CAMERA_REG_EXP,a as getMainCamera};\n//# sourceMappingURL=getMainCamera.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as e,a as t,c as r,e as a,d as i}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";import{getMainCamera as n}from\"../getMainCamera.js\";var o={UHD:{width:3840,height:2160},QHD:{width:2560,height:1440},FHD:{width:1920,height:1080},HD:{width:1280,height:720}},d=function(){var d=e(t().mark((function e(d,c){var h,s,u,p,l,m,f,v;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(h=c.mainCamera,s=c.frontCamera,u=c.cameraResolutionType,p=c.cameraResolutionMode,l=void 0===p?\"ideal\":p,m=r({},u&&{width:a({},l,o[u].width),height:a({},l,o[u].height)}),!h){e.next=7;break}return e.next=5,n(\"object\"===i(h)?h:void 0,s);case 5:null!=(f=e.sent)&&f.deviceId&&(m.deviceId={exact:f.deviceId});case 7:return m.deviceId||\"boolean\"!=typeof s||(m.facingMode=s?\"user\":\"environment\"),v=r(r({},m),d),e.abrupt(\"return\",v);case 10:case\"end\":return e.stop()}}),e)})));return function(e,t){return d.apply(this,arguments)}}();export{o as VIDEO_RESOLUTION_SIZE,d as getVideoTrackConstraints};\n//# sourceMappingURL=getVideoTrackConstraints.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as e,a as r,c as t,b as o,d as i}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";import{getConstraintsBySource as a}from\"./getConstraintsBySource.js\";import{getVideoTrackConstraints as n}from\"./getVideoTrackConstraints.js\";import\"../getMediaTrackSources.js\";import\"../getMainCamera.js\";var s=[\"video\",\"audio\"],d=[\"muted\"],u=function(){var u=e(r().mark((function e(){var u,c,v,p,m,f,b,g,l,x,j,k,h,C,w,y,B,M=arguments;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=(u=M.length>0&&void 0!==M[0]?M[0]:{}).constraints,p=(v=void 0===c?{}:c).video,m=void 0===p||p,f=v.audio,b=void 0!==f&&f,g=o(v,s),l=u.options,j=(x=void 0===l?{}:l).muted,k=void 0!==j&&j,h=o(x,d),!(\"mediaDevices\"in navigator)){e.next=9;break}if(w=b,!m){e.next=7;break}return e.next=6,n(\"object\"===i(m)?m:{},h);case 6:C=e.sent;case 7:e.next=14;break;case 9:return e.next=11,a({video:m,audio:b});case 11:y=e.sent,w=y.audio,C=y.video;case 14:return B=t(t(t({},g),!k&&{audio:void 0===w||w}),{},{video:void 0===C||C}),e.abrupt(\"return\",B);case 16:case\"end\":return e.stop()}}),e)})));return function(){return u.apply(this,arguments)}}();export{u as getMediaStreamConstraints};\n//# sourceMappingURL=getMediaStreamConstraints.js.map\n","/* @license @webcam/core v0.0.0 */\nvar e=function(){return!(!(\"mediaDevices\"in navigator)||!navigator.mediaDevices.getUserMedia)};export{e as hasGetUserMedia};\n//# sourceMappingURL=hasGetUserMedia.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{hasGetUserMedia as e}from\"./hasGetUserMedia.js\";var i=\"undefined\"!=typeof window&&(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia),r=function(r){return e()?navigator.mediaDevices.getUserMedia(r):i?new Promise((function(e,t){i.call(navigator,r,e,t)})):Promise.reject(new Error(\"Method getUserMedia of Navigator is not implemented in this browser\"))};export{r as getUserMedia,i as getUserMediaFunction};\n//# sourceMappingURL=getUserMedia.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{getUserMediaFunction as e}from\"./getUserMedia.js\";import{hasGetUserMedia as r}from\"./hasGetUserMedia.js\";var i=function(){return\"undefined\"!=typeof navigator&&(r()?!!navigator.mediaDevices.getUserMedia:!!e)};export{i as canGetUserMedia};\n//# sourceMappingURL=canGetUserMedia.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as e,a as r}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";import{getMediaStreamConstraints as t}from\"../constraints/getMediaStreamConstraints.js\";import{canGetUserMedia as n}from\"./canGetUserMedia.js\";import{getUserMedia as a}from\"./getUserMedia.js\";import\"../constraints/getConstraintsBySource.js\";import\"../getMediaTrackSources.js\";import\"../constraints/getVideoTrackConstraints.js\";import\"../getMainCamera.js\";import\"./hasGetUserMedia.js\";var s=function(){var s=e(r().mark((function e(s,o){var i,c;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n()){e.next=2;break}throw new Error(\"Method getUserMedia of Navigator is not supported\");case 2:return e.next=4,t(s);case 4:if(c=e.sent,!o){e.next=11;break}return e.next=8,new Promise((function(e,r){var t=setTimeout((function(){r(new Error(\"User media request has reached the specified time limit\"))}),o);a(c).then((function(r){return clearTimeout(t),e(r)})).catch((function(e){clearTimeout(t),r(e)}))}));case 8:i=e.sent,e.next=14;break;case 11:return e.next=13,a(c);case 13:i=e.sent;case 14:if(i){e.next=16;break}throw new Error(\"Stream of media content was not found\");case 16:return e.abrupt(\"return\",i);case 17:case\"end\":return e.stop()}}),e)})));return function(e,r){return s.apply(this,arguments)}}();export{s as getMediaStream};\n//# sourceMappingURL=getMediaStream.js.map\n","/* @license @webcam/core v0.0.0 */\nvar o=function(o){if(o){if(!(o instanceof MediaStreamTrack))return o.getVideoTracks&&o.getAudioTracks?(o.getVideoTracks().forEach((function(r){o.removeTrack(r),r.stop()})),void o.getAudioTracks().forEach((function(r){o.removeTrack(r),r.stop()}))):void(o.getTracks&&o.getTracks().forEach((function(r){o.removeTrack(r),r.stop()})));o.stop()}};export{o as stopMediaStream};\n//# sourceMappingURL=stopMediaStream.js.map\n","import { useEffect, useRef } from 'react';\r\nimport type { GetMediaStreamConstraintsParams, MediaTrackConstraintsOptions } from '@webcam/core';\r\nimport {\r\n applyMediaStreamConstraints,\r\n getMediaStream,\r\n getMediaStreamConstraints,\r\n stopMediaStream\r\n} from '@webcam/core';\r\n\r\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\r\n\r\nexport interface UseMediaStreamParams extends MediaTrackConstraintsOptions {\r\n disable?: boolean;\r\n requestTimeLimit?: number;\r\n applyConstraints?: boolean;\r\n audioConstraints?: MediaTrackConstraints;\r\n videoConstraints?: MediaTrackConstraints;\r\n onStreamRequest?: () => void;\r\n onStreamError?: (error: Error) => void;\r\n onStreamStart?: (stream: MediaStream) => void;\r\n onStreamStop?: (stream?: MediaStream) => void;\r\n}\r\n\r\n/**\r\n * Returns and manages the media stream in accordance with the passed parameters for configuration\r\n *\r\n * @param {UseMediaStreamParams} params - parameters for receiving media stream\r\n * @return {MediaStream | undefined} media stream instance\r\n */\r\nexport const useMediaStream = ({\r\n onStreamRequest,\r\n onStreamError,\r\n onStreamStart,\r\n onStreamStop,\r\n disable,\r\n applyConstraints,\r\n requestTimeLimit,\r\n videoConstraints,\r\n audioConstraints,\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n frontCamera,\r\n mainCamera,\r\n muted\r\n}: UseMediaStreamParams = {}) => {\r\n const streamRef = useRef<MediaStream>();\r\n const handlerRef = useRef({\r\n request: onStreamRequest,\r\n error: onStreamError,\r\n start: onStreamStart,\r\n stop: onStreamStop\r\n });\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n handlerRef.current = {\r\n request: onStreamRequest,\r\n error: onStreamError,\r\n start: onStreamStart,\r\n stop: onStreamStop\r\n };\r\n }, [onStreamRequest, onStreamError, onStreamStart, onStreamStop]);\r\n\r\n useEffect(() => {\r\n if (disable) return;\r\n\r\n const streamConstraintsParams: GetMediaStreamConstraintsParams = {\r\n constraints: {\r\n video: videoConstraints,\r\n audio: audioConstraints\r\n },\r\n options: {\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n frontCamera,\r\n mainCamera,\r\n muted\r\n }\r\n };\r\n\r\n const requestMediaStream = async (params: GetMediaStreamConstraintsParams) => {\r\n try {\r\n handlerRef.current.request?.();\r\n\r\n const mediaStream = await getMediaStream(params, requestTimeLimit);\r\n\r\n handlerRef.current.start?.(mediaStream);\r\n } catch (error) {\r\n handlerRef.current.error?.(error as Error);\r\n }\r\n };\r\n\r\n const runningStream = streamRef.current;\r\n if (applyConstraints && runningStream) {\r\n getMediaStreamConstraints(streamConstraintsParams)\r\n .then((constraints) => applyMediaStreamConstraints(runningStream, constraints))\r\n .catch(() => requestMediaStream(streamConstraintsParams));\r\n } else {\r\n requestMediaStream(streamConstraintsParams);\r\n }\r\n\r\n return () => {\r\n handlerRef.current.stop?.(runningStream);\r\n stopMediaStream(runningStream);\r\n };\r\n }, [\r\n // STREAM PARAMS:\r\n disable,\r\n applyConstraints,\r\n requestTimeLimit,\r\n // DEFAULT CONSTRAINTS:\r\n videoConstraints,\r\n audioConstraints,\r\n // CUSTOM CONSTRAINTS:\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n frontCamera,\r\n mainCamera,\r\n muted\r\n ]);\r\n\r\n return streamRef.current;\r\n};\r\n"],"names":["n","r","e","mark","s","o","i","u","c","p","f","l","d","wrap","prev","next","video","audio","getVideoTracks","t","applyConstraints","a","getAudioTracks","stop","apply","this","arguments","optional","sourceId","deviceId","Array","isArray","ideal","Promise","MediaStreamTrack","getSources","sent","abrupt","forEach","kind","id","back","front","navigator","mediaDevices","enumerateDevices","filter","length","RegExp","find","label","test","UHD","width","height","QHD","FHD","HD","h","m","v","mainCamera","frontCamera","cameraResolutionType","cameraResolutionMode","exact","facingMode","b","g","x","j","k","C","w","y","B","M","constraints","options","muted","getUserMedia","window","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","call","reject","Error","setTimeout","then","clearTimeout","removeTrack","getTracks","_ref","undefined","onStreamRequest","onStreamError","onStreamStart","onStreamStop","disable","requestTimeLimit","videoConstraints","audioConstraints","streamRef","useRef","handlerRef","request","error","start","useIsomorphicLayoutEffect","current","useEffect","streamConstraintsParams","requestMediaStream","_ref2","_regeneratorRuntime","_callee","params","_handlerRef$current$r","_handlerRef$current","_handlerRef$current$s","_handlerRef$current2","mediaStream","_handlerRef$current$e","_handlerRef$current3","_context","getMediaStream","t0","_x","runningStream","getMediaStreamConstraints","applyMediaStreamConstraints","_handlerRef$current$s2","_handlerRef$current4","stopMediaStream"],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,i=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame;exports.cancelAnimationFrame=i,exports.requestAnimationFrame=n;
|
|
3
|
+
//# sourceMappingURL=animationFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animationFrame.js","sources":["../../../../src/utils/helpers/animationFrame.ts"],"sourcesContent":["// ✅ important\r\n// Implementations for each browser need to be supported\r\nexport const requestAnimationFrame =\r\n window.requestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.msRequestAnimationFrame;\r\n\r\nexport const cancelAnimationFrame =\r\n window.cancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.msCancelAnimationFrame;\r\n"],"names":["requestAnimationFrame","window","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame"],"mappings":";iBAEaA,EACXC,OAAOD,uBACPC,OAAOC,0BACPD,OAAOE,6BACPF,OAAOG,wBAEIC,EACXJ,OAAOI,sBACPJ,OAAOK,yBACPL,OAAOM,4BACPN,OAAOO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";var e=require("./useAnimationFrame.js"),r=require("./useIsomorphicLayoutEffect.js"),s=require("../../useMediaStream-4231673b.js");require("react"),require("../helpers/animationFrame.js"),exports.useAnimationFrame=e.useAnimationFrame,exports.useIsomorphicLayoutEffect=r.useIsomorphicLayoutEffect,exports.useMediaStream=s.useMediaStream;
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
"use strict";var e=require("react"),r=require("../helpers/animationFrame.js"),n=require("./useIsomorphicLayoutEffect.js");exports.useAnimationFrame=function(t,u){var c=e.useRef(),i=e.useRef(),a=e.useRef(t);n.useIsomorphicLayoutEffect((function(){a.current=t}),[t]);var o=function e(n){if(n){if(i.current=n,void 0===i.current)return;a.current(n-i.current)}c.current=r.requestAnimationFrame(e)},f=function(){c.current&&r.cancelAnimationFrame(c.current)};return e.useEffect((function(){if(!u)return f(),function(){return f()};c.current=r.requestAnimationFrame(o)}),[u]),{request:o,cancel:f}};
|
|
3
|
+
//# sourceMappingURL=useAnimationFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAnimationFrame.js","sources":["../../../../src/utils/hooks/useAnimationFrame.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\r\n\r\nimport { cancelAnimationFrame, requestAnimationFrame } from '../helpers';\r\n\r\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\r\n\r\n/**\r\n * Helps request and cancel animation frame\r\n *\r\n * @param {Function} callback - frame request callback\r\n * @param {boolean} active - should animation frame be requested\r\n * @return {Object} request/cancel animation frame handlers\r\n */\r\nexport const useAnimationFrame = (callback: (time: number) => void, active?: boolean) => {\r\n const animationFrameRequestRef = useRef<number>();\r\n const previousTimestampRef = useRef<number>();\r\n const savedHandlerRef = useRef(callback);\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n savedHandlerRef.current = callback;\r\n }, [callback]);\r\n\r\n const onFrameRequest = (timestamp?: DOMHighResTimeStamp) => {\r\n if (timestamp) {\r\n previousTimestampRef.current = timestamp;\r\n if (typeof previousTimestampRef.current === 'undefined') return;\r\n savedHandlerRef.current(timestamp - previousTimestampRef.current);\r\n }\r\n\r\n animationFrameRequestRef.current = requestAnimationFrame(onFrameRequest);\r\n };\r\n\r\n const onFrameCancel = () => {\r\n if (!animationFrameRequestRef.current) return;\r\n cancelAnimationFrame(animationFrameRequestRef.current);\r\n };\r\n\r\n useEffect(() => {\r\n if (active) {\r\n animationFrameRequestRef.current = requestAnimationFrame(onFrameRequest);\r\n return;\r\n }\r\n\r\n onFrameCancel();\r\n return () => onFrameCancel();\r\n }, [active]);\r\n\r\n return {\r\n request: onFrameRequest,\r\n cancel: onFrameCancel\r\n };\r\n};\r\n"],"names":["callback","active","animationFrameRequestRef","useRef","previousTimestampRef","savedHandlerRef","useIsomorphicLayoutEffect","current","onFrameRequest","timestamp","requestAnimationFrame","onFrameCancel","cancelAnimationFrame","useEffect","request","cancel"],"mappings":";oJAaiC,SAACA,EAAkCC,GAClE,IAAMC,EAA2BC,EAAAA,SAC3BC,EAAuBD,EAAAA,SACvBE,EAAkBF,SAAOH,GAE/BM,EAAAA,2BAA0B,WACxBD,EAAgBE,QAAUP,CAC5B,GAAG,CAACA,IAEJ,IAAMQ,EAAiB,SAAjBA,EAAkBC,GACtB,GAAIA,EAAW,CAEb,GADAL,EAAqBG,QAAUE,OACa,IAAjCL,EAAqBG,QAAyB,OACzDF,EAAgBE,QAAQE,EAAYL,EAAqBG,QAC3D,CAEAL,EAAyBK,QAAUG,wBAAsBF,IAGrDG,EAAgB,WACfT,EAAyBK,SAC9BK,uBAAqBV,EAAyBK,UAahD,OAVAM,EAAAA,WAAU,WACR,IAAIZ,EAMJ,OADAU,IACO,WAAA,OAAMA,GAAe,EAL1BT,EAAyBK,QAAUG,wBAAsBF,EAM7D,GAAG,CAACP,IAEG,CACLa,QAASN,EACTO,OAAQJ,EAEZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsomorphicLayoutEffect.js","sources":["../../../../src/utils/hooks/useIsomorphicLayoutEffect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\r\n\r\nexport const useIsomorphicLayoutEffect =\r\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\r\n"],"names":["useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect"],"mappings":";oCAEaA,EACO,oBAAXC,OAAyBC,kBAAkBC,EAAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaStream.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Webcam.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
import{_ as t,e as r,u as o,d as e}from"../../../useMediaStream-4f24b75b.js";import{useState as a,useRef as n}from"react";import{useIsomorphicLayoutEffect as c}from"../../../utils/hooks/useIsomorphicLayoutEffect.js";var s=["onStreamStart","onStreamStop"],u=function(u){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=i.onStreamStart,S=i.onStreamStop,p=t(i,s),l=a(),f=r(l,2),v=f[0],d=f[1],j=n({start:m,stop:S});c((function(){j.current={start:m,stop:S}}),[m,S]);var L=function(t){var r,o;null===(r=(o=j.current).start)||void 0===r||r.call(o,t),u.current&&"srcObject"in u.current?u.current.srcObject=t:d(window.URL.createObjectURL(t))},b=function(t){var r,o;null===(r=(o=j.current).stop)||void 0===r||r.call(o,t),v&&window.URL.revokeObjectURL(v)};return o(e({onStreamStart:L,onStreamStop:b},p)),{start:L,stop:b,source:v}};export{u as useWebcam};
|
|
3
|
+
//# sourceMappingURL=useWebcam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWebcam.js","sources":["../../../../../src/components/Webcam/hooks/useWebcam.ts"],"sourcesContent":["import type { RefObject } from 'react';\r\nimport { useRef, useState } from 'react';\r\n\r\nimport type { UseMediaStreamParams } from '@/utils/hooks';\r\nimport { useIsomorphicLayoutEffect, useMediaStream } from '@/utils/hooks';\r\n\r\n/**\r\n * Helps get/set the media stream source for a video element\r\n *\r\n * @param {RefObject<HTMLVideoElement>} videoRef - video element reference object\r\n * @param {UseMediaStreamParams} params - parameters for receiving media stream\r\n * @return {string | undefined} media stream source\r\n */\r\nexport const useWebcam = (\r\n videoRef: RefObject<HTMLVideoElement>,\r\n { onStreamStart, onStreamStop, ...params }: UseMediaStreamParams = {}\r\n) => {\r\n const [streamSource, setStreamSource] = useState<string>();\r\n const handlerRef = useRef({\r\n start: onStreamStart,\r\n stop: onStreamStop\r\n });\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n handlerRef.current = {\r\n start: onStreamStart,\r\n stop: onStreamStop\r\n };\r\n }, [onStreamStart, onStreamStop]);\r\n\r\n const handleStreamStart = (stream: MediaStream) => {\r\n handlerRef.current.start?.(stream);\r\n\r\n if (videoRef.current && 'srcObject' in videoRef.current) {\r\n // eslint-disable-next-line no-param-reassign\r\n videoRef.current.srcObject = stream;\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n setStreamSource(window.URL.createObjectURL(stream));\r\n };\r\n\r\n const handleStreamStop = (stream?: MediaStream) => {\r\n handlerRef.current.stop?.(stream);\r\n\r\n if (!streamSource) return;\r\n window.URL.revokeObjectURL(streamSource);\r\n };\r\n\r\n useMediaStream({\r\n onStreamStart: handleStreamStart,\r\n onStreamStop: handleStreamStop,\r\n ...params\r\n });\r\n\r\n return {\r\n start: handleStreamStart,\r\n stop: handleStreamStop,\r\n source: streamSource\r\n };\r\n};\r\n"],"names":["useWebcam","videoRef","_ref","arguments","length","undefined","onStreamStart","onStreamStop","params","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","streamSource","setStreamSource","handlerRef","useRef","start","stop","useIsomorphicLayoutEffect","current","handleStreamStart","stream","_handlerRef$current$s","_handlerRef$current","call","srcObject","window","URL","createObjectURL","handleStreamStop","_handlerRef$current$s2","_handlerRef$current2","revokeObjectURL","useMediaStream","_objectSpread","source"],"mappings":";+PAaaA,EAAY,SACvBC,GAEG,IAAAC,EAAAC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GADgE,CAAE,EAAnEG,EAAaJ,EAAbI,cAAeC,EAAYL,EAAZK,aAAiBC,EAAMC,EAAAP,EAAAQ,GAExCC,EAAwCC,IAAkBC,EAAAC,EAAAH,EAAA,GAAnDI,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GAC9BI,EAAaC,EAAO,CACxBC,MAAOb,EACPc,KAAMb,IAGRc,GAA0B,WACxBJ,EAAWK,QAAU,CACnBH,MAAOb,EACPc,KAAMb,EAEV,GAAG,CAACD,EAAeC,IAEnB,IAAMgB,EAAoB,SAACC,GAAwB,IAAAC,EAAAC,UACjDD,GAAAC,EAAAT,EAAWK,SAAQH,aAAK,IAAAM,GAAxBA,EAAAE,KAAAD,EAA2BF,GAEvBvB,EAASqB,SAAW,cAAerB,EAASqB,QAE9CrB,EAASqB,QAAQM,UAAYJ,EAK/BR,EAAgBa,OAAOC,IAAIC,gBAAgBP,KAGvCQ,EAAmB,SAACR,GAAyB,IAAAS,EAAAC,UACjDD,GAAAC,EAAAjB,EAAWK,SAAQF,YAAI,IAAAa,GAAvBA,EAAAN,KAAAO,EAA0BV,GAErBT,GACLc,OAAOC,IAAIK,gBAAgBpB,IAS7B,OANAqB,EAAcC,EAAA,CACZ/B,cAAeiB,EACfhB,aAAcyB,GACXxB,IAGE,CACLW,MAAOI,EACPH,KAAMY,EACNM,OAAQvB,EAEZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
import{useWebcam as t}from"./components/Webcam/hooks/useWebcam.js";import{b as e,_ as r,c as a,d as o}from"./useMediaStream-4f24b75b.js";import n,{useRef as i,useEffect as m}from"react";
|
|
3
|
+
/* @license @webcam/core v0.0.0 */var s=["imageSmoothingEnabled","mirrored"],d=function(t){var r,a,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=o.imageSmoothingEnabled,i=void 0===n||n,m=o.mirrored,d=e(o,s),u=t.videoWidth,l=t.videoHeight,c=document.createElement("canvas");c.width=null!==(r=d.width)&&void 0!==r?r:u,c.height=null!==(a=d.height)&&void 0!==a?a:l;var f=c.getContext("2d");if(f)return m&&(f.translate(c.width,0),f.scale(-1,1)),f.imageSmoothingEnabled=i,f.drawImage(t,0,0,c.width,c.height),m&&(f.scale(-1,1),f.translate(-c.width,0)),c},u=["format","quality"],l=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.format,o=void 0===a?"image/jpeg":a,n=r.quality,i=void 0===n?1:n,m=e(r,u),s=d(t,m);if(s)return s.toDataURL(o,i)},c=["innerRef","stream","cameraResolutionMode","cameraResolutionType","videoConstraints","audioConstraints","requestTimeLimit","applyConstraints","frontCamera","mainCamera","mirrored","muted","style","children","onLoadedMetadata","onStreamRequest","onStreamError","onStreamStart","onStreamStop"],f=function(e){var s=e.innerRef,u=e.stream,f=e.cameraResolutionMode,v=e.cameraResolutionType,p=e.videoConstraints,S=e.audioConstraints,h=e.requestTimeLimit,g=e.applyConstraints,C=e.frontCamera,y=e.mainCamera,R=e.mirrored,E=void 0===R||R,q=e.muted,b=void 0===q||q,L=e.style,M=void 0===L?{}:L,T=e.children,w=e.onLoadedMetadata,W=e.onStreamRequest,j=e.onStreamError,x=e.onStreamStart,I=e.onStreamStop,k=r(e,c),D=i(null),F=null!=s?s:D,H=t(F,u?{disable:!0}:{applyConstraints:g,requestTimeLimit:h,onStreamRequest:W,onStreamError:j,onStreamStart:x,onStreamStop:I,videoConstraints:p,audioConstraints:S,cameraResolutionMode:f,cameraResolutionType:v,frontCamera:C,mainCamera:y,muted:b});return m((function(){if(u)return H.start(u),function(){H.stop(u)}}),[u]),n.createElement(n.Fragment,null,n.createElement("video",a({autoPlay:!0,playsInline:!0,muted:b,ref:F,controls:!1,src:H.source,onLoadedMetadata:function(t){null==w||w(t),t.currentTarget.play()},style:o(o({},M),E&&{transform:"".concat(M.transform?"".concat(M.transform," "):"","scaleX(-1)")})},k)),"function"==typeof T?T({videoElement:F.current,getCanvas:function(t){return F.current?d(F.current,o(o({},t),{},{mirrored:E})):void 0},getSnapshot:function(t){return F.current?l(F.current,o(o({},t),{},{mirrored:E})):void 0}}):T)};
|
|
4
|
+
/* @license @webcam/core v0.0.0 */export{f as W,l as a,d as t};
|
|
5
|
+
//# sourceMappingURL=index-022e8735.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-022e8735.js","sources":["../../../core/dist/esm/helpers/snapshot/getVideoFrameCanvas.js","../../../core/dist/esm/helpers/snapshot/getWebcamSnapshot.js","../../src/components/Webcam/Webcam.tsx"],"sourcesContent":["/* @license @webcam/core v0.0.0 */\nimport{b as e}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";var i=[\"imageSmoothingEnabled\",\"mirrored\"],t=function(t){var a,o,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=d.imageSmoothingEnabled,n=void 0===r||r,l=d.mirrored,h=e(d,i),g=t.videoWidth,m=t.videoHeight,v=document.createElement(\"canvas\");v.width=null!==(a=h.width)&&void 0!==a?a:g,v.height=null!==(o=h.height)&&void 0!==o?o:m;var s=v.getContext(\"2d\");if(s)return l&&(s.translate(v.width,0),s.scale(-1,1)),s.imageSmoothingEnabled=n,s.drawImage(t,0,0,v.width,v.height),l&&(s.scale(-1,1),s.translate(-v.width,0)),v};export{t as getVideoFrameCanvas};\n//# sourceMappingURL=getVideoFrameCanvas.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{getVideoFrameCanvas as a}from\"./getVideoFrameCanvas.js\";import{b as o}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";var r=[\"format\",\"quality\"],t=function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=i.format,l=void 0===e?\"image/jpeg\":e,m=i.quality,f=void 0===m?1:m,n=o(i,r),p=a(t,n);if(p)return p.toDataURL(l,f)};export{t as getWebcamSnapshot};\n//# sourceMappingURL=getWebcamSnapshot.js.map\n","import type { ComponentPropsWithoutRef, FC, ReactNode, RefObject, SyntheticEvent } from 'react';\r\nimport React, { useEffect, useRef } from 'react';\r\nimport type { GetVideoFrameCanvasOptions, GetWebcamSnapshotOptions } from '@webcam/core';\r\nimport { getVideoFrameCanvas, getWebcamSnapshot } from '@webcam/core';\r\n\r\nimport type { UseMediaStreamParams } from '@/utils/hooks';\r\n\r\nimport { useWebcam } from './hooks';\r\n\r\ntype VideoElementProps = Omit<ComponentPropsWithoutRef<'video'>, 'children'>;\r\ntype AvailableUseMediaStreamParams = Omit<UseMediaStreamParams, 'disable'>;\r\n\r\nexport type WebcamRenderProps = (options: {\r\n getCanvas: (options?: GetVideoFrameCanvasOptions) => HTMLCanvasElement | undefined;\r\n getSnapshot: (options?: GetWebcamSnapshotOptions) => string | undefined;\r\n videoElement: HTMLVideoElement | null;\r\n}) => ReactNode;\r\n\r\ninterface BaseWebcamProps extends VideoElementProps {\r\n children?: ReactNode | WebcamRenderProps;\r\n innerRef?: RefObject<HTMLVideoElement>;\r\n mirrored?: boolean;\r\n}\r\n\r\ninterface WebcamPropsWithInternalStream extends BaseWebcamProps, AvailableUseMediaStreamParams {\r\n stream?: undefined;\r\n}\r\n\r\ninterface WebcamPropsWithExternalStream extends BaseWebcamProps {\r\n stream?: MediaStream;\r\n}\r\n\r\ntype WebcamPropsEnumeration = WebcamPropsWithExternalStream &\r\n Omit<WebcamPropsWithInternalStream, 'stream'>;\r\n\r\nexport type WebcamProps = WebcamPropsWithInternalStream | WebcamPropsWithExternalStream;\r\n\r\n/**\r\n * Renders the Webcam component and handles the requesting and displaying of the media stream\r\n *\r\n * @param {WebcamProps} props - The props for the Webcam component\r\n * @return {ReactElement} The rendered Webcam component\r\n */\r\nexport const Webcam: FC<WebcamProps> = ({\r\n innerRef: externalVideoRef,\r\n stream: externalStream,\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n videoConstraints,\r\n audioConstraints,\r\n requestTimeLimit,\r\n applyConstraints,\r\n frontCamera,\r\n mainCamera,\r\n mirrored = true,\r\n muted = true,\r\n style = {},\r\n children,\r\n onLoadedMetadata,\r\n onStreamRequest,\r\n onStreamError,\r\n onStreamStart,\r\n onStreamStop,\r\n ...props\r\n}: WebcamPropsEnumeration) => {\r\n const internalVideoRef = useRef<HTMLVideoElement | null>(null);\r\n const videoRef = externalVideoRef ?? internalVideoRef;\r\n\r\n const onMediaStreamLoad = (event: SyntheticEvent<HTMLVideoElement, Event>) => {\r\n onLoadedMetadata?.(event);\r\n event.currentTarget.play();\r\n };\r\n\r\n const stream = useWebcam(\r\n videoRef,\r\n !externalStream\r\n ? {\r\n // STREAM PARAMS:\r\n applyConstraints,\r\n requestTimeLimit,\r\n // STREAM HANDLERS:\r\n onStreamRequest,\r\n onStreamError,\r\n onStreamStart,\r\n onStreamStop,\r\n // DEFAULT CONSTRAINTS:\r\n videoConstraints,\r\n audioConstraints,\r\n // CUSTOM CONSTRAINTS:\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n frontCamera,\r\n mainCamera,\r\n muted\r\n }\r\n : {\r\n disable: true\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n if (!externalStream) return;\r\n\r\n stream.start(externalStream);\r\n\r\n return () => {\r\n stream.stop(externalStream);\r\n };\r\n }, [externalStream]);\r\n\r\n return (\r\n <>\r\n <video\r\n autoPlay\r\n playsInline\r\n muted={muted}\r\n ref={videoRef}\r\n controls={false}\r\n src={stream.source}\r\n onLoadedMetadata={onMediaStreamLoad}\r\n style={{\r\n ...style,\r\n ...(mirrored && {\r\n transform: `${style.transform ? `${style.transform} ` : ''}scaleX(-1)`\r\n })\r\n }}\r\n {...props}\r\n />\r\n {typeof children === 'function'\r\n ? children({\r\n videoElement: videoRef.current,\r\n getCanvas: (options?: GetVideoFrameCanvasOptions) =>\r\n videoRef.current\r\n ? getVideoFrameCanvas(videoRef.current, { ...options, mirrored })\r\n : undefined,\r\n getSnapshot: (options?: GetWebcamSnapshotOptions) =>\r\n videoRef.current\r\n ? getWebcamSnapshot(videoRef.current, { ...options, mirrored })\r\n : undefined\r\n })\r\n : children}\r\n </>\r\n );\r\n};\r\n"],"names":["t","a","o","d","arguments","length","r","imageSmoothingEnabled","n","l","mirrored","h","e","i","g","videoWidth","m","videoHeight","v","document","createElement","width","height","s","getContext","translate","scale","drawImage","format","quality","f","p","toDataURL","Webcam","_ref","externalVideoRef","innerRef","externalStream","stream","cameraResolutionMode","cameraResolutionType","videoConstraints","audioConstraints","requestTimeLimit","applyConstraints","frontCamera","mainCamera","_ref$mirrored","_ref$muted","muted","_ref$style","style","children","onLoadedMetadata","onStreamRequest","onStreamError","onStreamStart","onStreamStop","props","_objectWithoutProperties","_excluded","internalVideoRef","useRef","videoRef","useWebcam","disable","useEffect","start","stop","React","Fragment","_extends","autoPlay","playsInline","ref","controls","src","source","event","currentTarget","play","_objectSpread","transform","concat","videoElement","current","getCanvas","options","getVideoFrameCanvas","undefined","getSnapshot","getWebcamSnapshot"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
export{useWebcam}from"./components/Webcam/hooks/useWebcam.js";export{W as Webcam,t as getVideoFrameCanvas,a as getWebcamSnapshot}from"./index-022e8735.js";export{useAnimationFrame}from"./utils/hooks/useAnimationFrame.js";import"react";export{n as applyMediaStreamConstraints,i as canGetUserMedia,s as getMediaStream,a as getMediaStreamConstraints,o as stopMediaStream,u as useMediaStream}from"./useMediaStream-4f24b75b.js";import"./utils/hooks/useIsomorphicLayoutEffect.js";import"./utils/helpers/animationFrame.js";
|
|
3
|
+
/* @license @webcam/core v0.0.0 */var e=function(){return"mediaDevices"in navigator&&navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices():Promise.reject(new Error("Method enumerateDevices of Navigator is not implemented in this browser"))};export{e as getDevices};
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../core/dist/esm/helpers/getDevices.js"],"sourcesContent":["/* @license @webcam/core v0.0.0 */\nvar e=function(){return\"mediaDevices\"in navigator&&navigator.mediaDevices.enumerateDevices?navigator.mediaDevices.enumerateDevices():Promise.reject(new Error(\"Method enumerateDevices of Navigator is not implemented in this browser\"))};export{e as getDevices};\n//# sourceMappingURL=getDevices.js.map\n"],"names":["e","navigator","mediaDevices","enumerateDevices","Promise","reject","Error"],"mappings":";;sCAAaA,EAAa,WACxB,MAAM,iBAAkBC,WAAaA,UAAUC,aAAaC,iBAMrDF,UAAUC,aAAaC,mBALrBC,QAAQC,OACb,IAAIC,MAAM,2EAKhB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
import{useRef as t,useEffect as r}from"react";import{useIsomorphicLayoutEffect as e}from"./utils/hooks/useIsomorphicLayoutEffect.js";function n(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function o(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?n(Object(e),!0).forEach((function(r){f(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):n(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function i(){i=function(){return r};var t,r={},e=Object.prototype,n=e.hasOwnProperty,o=Object.defineProperty||function(t,r,e){t[r]=e.value},a="function"==typeof Symbol?Symbol:{},c=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",f=a.toStringTag||"@@toStringTag";function s(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{s({},"")}catch(t){s=function(t,r,e){return t[r]=e}}function l(t,r,e,n){var i=r&&r.prototype instanceof g?r:g,a=Object.create(i.prototype),c=new A(n||[]);return o(a,"_invoke",{value:S(t,e,c)}),a}function h(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}r.wrap=l;var p="suspendedStart",v="suspendedYield",y="executing",d="completed",m={};function g(){}function b(){}function w(){}var O={};s(O,c,(function(){return this}));var x=Object.getPrototypeOf,j=x&&x(x(D([])));j&&j!==e&&n.call(j,c)&&(O=j);var E=w.prototype=g.prototype=Object.create(O);function k(t){["next","throw","return"].forEach((function(r){s(t,r,(function(t){return this._invoke(r,t)}))}))}function L(t,r){function e(o,i,a,c){var u=h(t[o],t,i);if("throw"!==u.type){var f=u.arg,s=f.value;return s&&"object"==typeof s&&n.call(s,"__await")?r.resolve(s.__await).then((function(t){e("next",t,a,c)}),(function(t){e("throw",t,a,c)})):r.resolve(s).then((function(t){f.value=t,a(f)}),(function(t){return e("throw",t,a,c)}))}c(u.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new r((function(r,o){e(t,n,r,o)}))}return i=i?i.then(o,o):o()}})}function S(r,e,n){var o=p;return function(i,a){if(o===y)throw new Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=P(c,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var f=h(r,e,n);if("normal"===f.type){if(o=n.done?d:v,f.arg===m)continue;return{value:f.arg,done:n.done}}"throw"===f.type&&(o=d,n.method="throw",n.arg=f.arg)}}}function P(r,e){var n=e.method,o=r.iterator[n];if(o===t)return e.delegate=null,"throw"===n&&r.iterator.return&&(e.method="return",e.arg=t,P(r,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=h(o,r.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,m;var a=i.arg;return a?a.done?(e[r.resultName]=a.value,e.next=r.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,m):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,m)}function T(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function _(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function A(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(T,this),this.reset(!0)}function D(r){if(r||""===r){var e=r[c];if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,i=function e(){for(;++o<r.length;)if(n.call(r,o))return e.value=r[o],e.done=!1,e;return e.value=t,e.done=!0,e};return i.next=i}}throw new TypeError(typeof r+" is not iterable")}return b.prototype=w,o(E,"constructor",{value:w,configurable:!0}),o(w,"constructor",{value:b,configurable:!0}),b.displayName=s(w,f,"GeneratorFunction"),r.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===b||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,s(t,f,"GeneratorFunction")),t.prototype=Object.create(E),t},r.awrap=function(t){return{__await:t}},k(L.prototype),s(L.prototype,u,(function(){return this})),r.AsyncIterator=L,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new L(l(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},k(E),s(E,f,"Generator"),s(E,c,(function(){return this})),s(E,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var r=Object(t),e=[];for(var n in r)e.push(n);return e.reverse(),function t(){for(;e.length;){var n=e.pop();if(n in r)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=D,A.prototype={constructor:A,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(_),!r)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function o(n,o){return c.type="throw",c.arg=r,e.next=n,o&&(e.method="next",e.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),f=n.call(a,"finallyLoc");if(u&&f){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!f)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,m):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),m},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),_(e),m}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;_(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(r,e,n){return this.delegate={iterator:D(r),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=t),m}},r}function a(t){var r=function(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"==typeof r?r:String(r)}function c(t){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},c(t)}function u(t,r,e,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void e(t)}c.done?r(u):Promise.resolve(u).then(n,o)}function f(t,r,e){return(r=a(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function s(){return s=Object.assign?Object.assign.bind():function(t){for(var r=1;r<arguments.length;r++){var e=arguments[r];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t},s.apply(this,arguments)}function l(t,r){if(null==t)return{};var e,n,o=function(t,r){if(null==t)return{};var e,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||(o[e]=t[e]);return o}(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o}function h(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,c=[],u=!0,f=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(c.push(n.value),c.length!==r);u=!0);}catch(t){f=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(f)throw o}}return c}}(t,r)||function(t,r){if(!t)return;if("string"==typeof t)return p(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return p(t,r)}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}
|
|
3
|
+
/* @license @webcam/core v0.0.0 */()}function p(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function v(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function y(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?v(Object(e),!0).forEach((function(r){w(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):v(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}function d(){d=function(){return r};var t,r={},e=Object.prototype,n=e.hasOwnProperty,o=Object.defineProperty||function(t,r,e){t[r]=e.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",f=i.toStringTag||"@@toStringTag";function s(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{s({},"")}catch(t){s=function(t,r,e){return t[r]=e}}function l(t,r,e,n){var i=r&&r.prototype instanceof b?r:b,a=Object.create(i.prototype),c=new D(n||[]);return o(a,"_invoke",{value:P(t,e,c)}),a}function h(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}r.wrap=l;var p="suspendedStart",v="suspendedYield",y="executing",m="completed",g={};function b(){}function w(){}function O(){}var x={};s(x,a,(function(){return this}));var j=Object.getPrototypeOf,E=j&&j(j(I([])));E&&E!==e&&n.call(E,a)&&(x=E);var k=O.prototype=b.prototype=Object.create(x);function L(t){["next","throw","return"].forEach((function(r){s(t,r,(function(t){return this._invoke(r,t)}))}))}function S(t,r){function e(o,i,a,u){var f=h(t[o],t,i);if("throw"!==f.type){var s=f.arg,l=s.value;return l&&"object"==c(l)&&n.call(l,"__await")?r.resolve(l.__await).then((function(t){e("next",t,a,u)}),(function(t){e("throw",t,a,u)})):r.resolve(l).then((function(t){s.value=t,a(s)}),(function(t){return e("throw",t,a,u)}))}u(f.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new r((function(r,o){e(t,n,r,o)}))}return i=i?i.then(o,o):o()}})}function P(r,e,n){var o=p;return function(i,a){if(o===y)throw new Error("Generator is already running");if(o===m){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=T(c,n);if(u){if(u===g)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=m,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var f=h(r,e,n);if("normal"===f.type){if(o=n.done?m:v,f.arg===g)continue;return{value:f.arg,done:n.done}}"throw"===f.type&&(o=m,n.method="throw",n.arg=f.arg)}}}function T(r,e){var n=e.method,o=r.iterator[n];if(o===t)return e.delegate=null,"throw"===n&&r.iterator.return&&(e.method="return",e.arg=t,T(r,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),g;var i=h(o,r.iterator,e.arg);if("throw"===i.type)return e.method="throw",e.arg=i.arg,e.delegate=null,g;var a=i.arg;return a?a.done?(e[r.resultName]=a.value,e.next=r.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,g):a:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,g)}function _(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function A(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function D(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(_,this),this.reset(!0)}function I(r){if(r||""===r){var e=r[a];if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var o=-1,i=function e(){for(;++o<r.length;)if(n.call(r,o))return e.value=r[o],e.done=!1,e;return e.value=t,e.done=!0,e};return i.next=i}}throw new TypeError(c(r)+" is not iterable")}return w.prototype=O,o(k,"constructor",{value:O,configurable:!0}),o(O,"constructor",{value:w,configurable:!0}),w.displayName=s(O,f,"GeneratorFunction"),r.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===w||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,O):(t.__proto__=O,s(t,f,"GeneratorFunction")),t.prototype=Object.create(k),t},r.awrap=function(t){return{__await:t}},L(S.prototype),s(S.prototype,u,(function(){return this})),r.AsyncIterator=S,r.async=function(t,e,n,o,i){void 0===i&&(i=Promise);var a=new S(l(t,e,n,o),i);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},L(k),s(k,f,"Generator"),s(k,a,(function(){return this})),s(k,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var r=Object(t),e=[];for(var n in r)e.push(n);return e.reverse(),function t(){for(;e.length;){var n=e.pop();if(n in r)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=I,D.prototype={constructor:D,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(A),!r)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function o(n,o){return c.type="throw",c.arg=r,e.next=n,o&&(e.method="next",e.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),f=n.call(a,"finallyLoc");if(u&&f){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!f)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,g):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),g},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),A(e),g}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;A(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(r,e,n){return this.delegate={iterator:I(r),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=t),g}},r}function m(t){return m="function"==typeof Symbol&&"symbol"==c(Symbol.iterator)?function(t){return c(t)}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":c(t)},m(t)}function g(t,r,e,n,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void e(t)}c.done?r(u):Promise.resolve(u).then(n,o)}function b(t){return function(){var r=this,e=arguments;return new Promise((function(n,o){var i=t.apply(r,e);function a(t){g(i,n,o,a,c,"next",t)}function c(t){g(i,n,o,a,c,"throw",t)}a(void 0)}))}}function w(t,r,e){return(r=function(t){var r=function(t,r){if("object"!=c(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==c(r)?r:String(r)}(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function O(t,r){if(null==t)return{};var e,n,o=function(t,r){if(null==t)return{};var e,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||(o[e]=t[e]);return o}(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o}function x(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,c=[],u=!0,f=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(c.push(n.value),c.length!==r);u=!0);}catch(t){f=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(f)throw o}}return c}}(t,r)||function(t,r){if(t){if("string"==typeof t)return j(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?j(t,r):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function j(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}
|
|
4
|
+
/* @license @webcam/core v0.0.0 */var E=function(){var t=b(d().mark((function t(r,e){var n,o,i,a,c,u,f,s;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.video,o=e.audio,i=r.getVideoTracks(),a=x(i,1),!(c=a[0])){t.next=5;break}return t.next=5,c.applyConstraints("object"===m(n)?n:{});case 5:if(u=r.getAudioTracks(),f=x(u,1),!(s=f[0])){t.next=9;break}return t.next=9,s.applyConstraints("object"===m(o)?o:{});case 9:case"end":return t.stop()}}),t)})));return function(r,e){return t.apply(this,arguments)}}(),k=function(t){if(t)return{optional:[{sourceId:t}]}},L=function(t){if("object"===m(t)){var r=t.deviceId;return"string"==typeof r?r:Array.isArray(r)?r[0]:"object"===m(r)&&r.ideal?Array.isArray(r.ideal)?r.ideal[0]:r.ideal:void 0}},S=function(){var t=b(d().mark((function t(r){var e,n,o,i,a,c;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e={video:void 0,audio:void 0},t.next=3,new Promise((function(t){"getSources"in MediaStreamTrack?MediaStreamTrack.getSources(t):t(void 0)}));case 3:if(n=t.sent){t.next=6;break}return t.abrupt("return",e);case 6:return n.forEach((function(t){"video"!==t.kind?"audio"===t.kind&&(i=t.id):o=t.id})),a=L(r.video),c=L(r.audio),e.audio=k(null!=a?a:o),e.video=k(null!=c?c:i),t.abrupt("return",e);case 12:case"end":return t.stop()}}),t)})));return function(r){return t.apply(this,arguments)}}(),P={back:/(?=.*\bback\b)(?=.*\b0\b)/,front:/\bfront\b/},T=function(){var t=b(d().mark((function t(r,e){var n,o,i,a;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if("mediaDevices"in navigator&&navigator.mediaDevices.enumerateDevices){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,navigator.mediaDevices.enumerateDevices();case 4:if(n=t.sent,!((o=n.filter((function(t){return"videoinput"===t.kind}))).length<=2)){t.next=8;break}return t.abrupt("return");case 8:return a=e?"front":"back","object"===m(r)&&(i=r instanceof RegExp?r:r[a]),t.abrupt("return",o.find((function(t){var r,e=t.label;return(null!==(r=i)&&void 0!==r?r:P[a]).test(e)})));case 11:case"end":return t.stop()}}),t)})));return function(r,e){return t.apply(this,arguments)}}(),_={UHD:{width:3840,height:2160},QHD:{width:2560,height:1440},FHD:{width:1920,height:1080},HD:{width:1280,height:720}},A=function(){var t=b(d().mark((function t(r,e){var n,o,i,a,c,u,f,s;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.mainCamera,o=e.frontCamera,i=e.cameraResolutionType,a=e.cameraResolutionMode,c=void 0===a?"ideal":a,u=y({},i&&{width:w({},c,_[i].width),height:w({},c,_[i].height)}),!n){t.next=7;break}return t.next=5,T("object"===m(n)?n:void 0,o);case 5:null!=(f=t.sent)&&f.deviceId&&(u.deviceId={exact:f.deviceId});case 7:return u.deviceId||"boolean"!=typeof o||(u.facingMode=o?"user":"environment"),s=y(y({},u),r),t.abrupt("return",s);case 10:case"end":return t.stop()}}),t)})));return function(r,e){return t.apply(this,arguments)}}(),D=["video","audio"],I=["muted"],M=function(){var t=b(d().mark((function t(){var r,e,n,o,i,a,c,u,f,s,l,h,p,v,g,b,w,x=arguments;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=(r=x.length>0&&void 0!==x[0]?x[0]:{}).constraints,o=(n=void 0===e?{}:e).video,i=void 0===o||o,a=n.audio,c=void 0!==a&&a,u=O(n,D),f=r.options,l=(s=void 0===f?{}:f).muted,h=void 0!==l&&l,p=O(s,I),!("mediaDevices"in navigator)){t.next=9;break}if(g=c,!i){t.next=7;break}return t.next=6,A("object"===m(i)?i:{},p);case 6:v=t.sent;case 7:t.next=14;break;case 9:return t.next=11,S({video:i,audio:c});case 11:b=t.sent,g=b.audio,v=b.video;case 14:return w=y(y(y({},u),!h&&{audio:void 0===g||g}),{},{video:void 0===v||v}),t.abrupt("return",w);case 16:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),G=function(){return!(!("mediaDevices"in navigator)||!navigator.mediaDevices.getUserMedia)},N="undefined"!=typeof window&&(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia),C=function(t){return G()?navigator.mediaDevices.getUserMedia(t):N?new Promise((function(r,e){N.call(navigator,t,r,e)})):Promise.reject(new Error("Method getUserMedia of Navigator is not implemented in this browser"))},U=function(){return"undefined"!=typeof navigator&&(G()?!!navigator.mediaDevices.getUserMedia:!!N)},F=function(){var t=b(d().mark((function t(r,e){var n,o;return d().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(U()){t.next=2;break}throw new Error("Method getUserMedia of Navigator is not supported");case 2:return t.next=4,M(r);case 4:if(o=t.sent,!e){t.next=11;break}return t.next=8,new Promise((function(t,r){var n=setTimeout((function(){r(new Error("User media request has reached the specified time limit"))}),e);C(o).then((function(r){return clearTimeout(n),t(r)})).catch((function(t){clearTimeout(n),r(t)}))}));case 8:n=t.sent,t.next=14;break;case 11:return t.next=13,C(o);case 13:n=t.sent;case 14:if(n){t.next=16;break}throw new Error("Stream of media content was not found");case 16:return t.abrupt("return",n);case 17:case"end":return t.stop()}}),t)})));return function(r,e){return t.apply(this,arguments)}}(),R=function(t){if(t){if(!(t instanceof MediaStreamTrack))return t.getVideoTracks&&t.getAudioTracks?(t.getVideoTracks().forEach((function(r){t.removeTrack(r),r.stop()})),void t.getAudioTracks().forEach((function(r){t.removeTrack(r),r.stop()}))):void(t.getTracks&&t.getTracks().forEach((function(r){t.removeTrack(r),r.stop()})));t.stop()}},q=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=n.onStreamRequest,a=n.onStreamError,c=n.onStreamStart,f=n.onStreamStop,s=n.disable,l=n.applyConstraints,h=n.requestTimeLimit,p=n.videoConstraints,v=n.audioConstraints,y=n.cameraResolutionMode,d=n.cameraResolutionType,m=n.frontCamera,g=n.mainCamera,b=n.muted,w=t(),O=t({request:o,error:a,start:c,stop:f});return e((function(){O.current={request:o,error:a,start:c,stop:f}}),[o,a,c,f]),r((function(){if(!s){var t={constraints:{video:p,audio:v},options:{cameraResolutionMode:y,cameraResolutionType:d,frontCamera:m,mainCamera:g,muted:b}},r=function(){var t,r=(t=i().mark((function t(r){var e,n,o,a,c,u,f;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,null===(e=(n=O.current).request)||void 0===e||e.call(n),t.next=4,F(r,h);case 4:c=t.sent,null===(o=(a=O.current).start)||void 0===o||o.call(a,c),t.next=11;break;case 8:t.prev=8,t.t0=t.catch(0),null===(u=(f=O.current).error)||void 0===u||u.call(f,t.t0);case 11:case"end":return t.stop()}}),t,null,[[0,8]])})),function(){var r=this,e=arguments;return new Promise((function(n,o){var i=t.apply(r,e);function a(t){u(i,n,o,a,c,"next",t)}function c(t){u(i,n,o,a,c,"throw",t)}a(void 0)}))});return function(t){return r.apply(this,arguments)}}(),e=w.current;return l&&e?M(t).then((function(t){return E(e,t)})).catch((function(){return r(t)})):r(t),function(){var t,r;null===(t=(r=O.current).stop)||void 0===t||t.call(r,e),R(e)}}}),[s,l,h,p,v,y,d,m,g,b]),w.current};
|
|
5
|
+
/* @license @webcam/core v0.0.0 */export{l as _,M as a,O as b,s as c,o as d,h as e,U as i,E as n,R as o,F as s,q as u};
|
|
6
|
+
//# sourceMappingURL=useMediaStream-4f24b75b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaStream-4f24b75b.js","sources":["../../../core/dist/esm/helpers/constraints/applyMediaStreamConstraints.js","../../../core/dist/esm/helpers/constraints/getConstraintsBySource.js","../../../core/dist/esm/helpers/getMediaTrackSources.js","../../../core/dist/esm/helpers/getMainCamera.js","../../../core/dist/esm/helpers/constraints/getVideoTrackConstraints.js","../../../core/dist/esm/helpers/constraints/getMediaStreamConstraints.js","../../../core/dist/esm/helpers/stream/hasGetUserMedia.js","../../../core/dist/esm/helpers/stream/getUserMedia.js","../../../core/dist/esm/helpers/stream/canGetUserMedia.js","../../../core/dist/esm/helpers/stream/getMediaStream.js","../../../core/dist/esm/helpers/stream/stopMediaStream.js","../../src/utils/hooks/useMediaStream.ts"],"sourcesContent":["/* @license @webcam/core v0.0.0 */\nimport{_ as r,a as e,f as t,d as a}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";var n=function(){var n=r(e().mark((function r(n,s){var o,i,u,c,p,f,l,d;return e().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=s.video,i=s.audio,u=n.getVideoTracks(),c=t(u,1),!(p=c[0])){r.next=5;break}return r.next=5,p.applyConstraints(\"object\"===a(o)?o:{});case 5:if(f=n.getAudioTracks(),l=t(f,1),!(d=l[0])){r.next=9;break}return r.next=9,d.applyConstraints(\"object\"===a(i)?i:{});case 9:case\"end\":return r.stop()}}),r)})));return function(r,e){return n.apply(this,arguments)}}();export{n as applyMediaStreamConstraints};\n//# sourceMappingURL=applyMediaStreamConstraints.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as r,a as e,d as i}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";import{getMediaTrackSources as n}from\"../getMediaTrackSources.js\";var a=function(r){if(r)return{optional:[{sourceId:r}]}},t=function(r){if(\"object\"===i(r)){var e=r.deviceId;return\"string\"==typeof e?e:Array.isArray(e)?e[0]:\"object\"===i(e)&&e.ideal?Array.isArray(e.ideal)?e.ideal[0]:e.ideal:void 0}},o=function(){var i=r(e().mark((function r(i){var o,u,d,c,s,f;return e().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o={video:void 0,audio:void 0},r.next=3,n();case 3:if(u=r.sent){r.next=6;break}return r.abrupt(\"return\",o);case 6:return u.forEach((function(r){\"video\"!==r.kind?\"audio\"===r.kind&&(c=r.id):d=r.id})),s=t(i.video),f=t(i.audio),o.audio=a(null!=s?s:d),o.video=a(null!=f?f:c),r.abrupt(\"return\",o);case 12:case\"end\":return r.stop()}}),r)})));return function(r){return i.apply(this,arguments)}}();export{o as getConstraintsBySource};\n//# sourceMappingURL=getConstraintsBySource.js.map\n","/* @license @webcam/core v0.0.0 */\nvar e=function(){return new Promise((function(e){\"getSources\"in MediaStreamTrack?MediaStreamTrack.getSources(e):e(void 0)}))};export{e as getMediaTrackSources};\n//# sourceMappingURL=getMediaTrackSources.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as e,a as r,d as n}from\"../_rollupPluginBabelHelpers-59ed2110.js\";var t={back:/(?=.*\\bback\\b)(?=.*\\b0\\b)/,front:/\\bfront\\b/},a=function(){var a=e(r().mark((function e(a,i){var u,c,o,s;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(\"mediaDevices\"in navigator&&navigator.mediaDevices.enumerateDevices){e.next=2;break}return e.abrupt(\"return\");case 2:return e.next=4,navigator.mediaDevices.enumerateDevices();case 4:if(u=e.sent,!((c=u.filter((function(e){return\"videoinput\"===e.kind}))).length<=2)){e.next=8;break}return e.abrupt(\"return\");case 8:return s=i?\"front\":\"back\",\"object\"===n(a)&&(o=a instanceof RegExp?a:a[s]),e.abrupt(\"return\",c.find((function(e){var r,n=e.label;return(null!==(r=o)&&void 0!==r?r:t[s]).test(n)})));case 11:case\"end\":return e.stop()}}),e)})));return function(e,r){return a.apply(this,arguments)}}();export{t as DEFAULT_MAIN_CAMERA_REG_EXP,a as getMainCamera};\n//# sourceMappingURL=getMainCamera.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as e,a as t,c as r,e as a,d as i}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";import{getMainCamera as n}from\"../getMainCamera.js\";var o={UHD:{width:3840,height:2160},QHD:{width:2560,height:1440},FHD:{width:1920,height:1080},HD:{width:1280,height:720}},d=function(){var d=e(t().mark((function e(d,c){var h,s,u,p,l,m,f,v;return t().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(h=c.mainCamera,s=c.frontCamera,u=c.cameraResolutionType,p=c.cameraResolutionMode,l=void 0===p?\"ideal\":p,m=r({},u&&{width:a({},l,o[u].width),height:a({},l,o[u].height)}),!h){e.next=7;break}return e.next=5,n(\"object\"===i(h)?h:void 0,s);case 5:null!=(f=e.sent)&&f.deviceId&&(m.deviceId={exact:f.deviceId});case 7:return m.deviceId||\"boolean\"!=typeof s||(m.facingMode=s?\"user\":\"environment\"),v=r(r({},m),d),e.abrupt(\"return\",v);case 10:case\"end\":return e.stop()}}),e)})));return function(e,t){return d.apply(this,arguments)}}();export{o as VIDEO_RESOLUTION_SIZE,d as getVideoTrackConstraints};\n//# sourceMappingURL=getVideoTrackConstraints.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as e,a as r,c as t,b as o,d as i}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";import{getConstraintsBySource as a}from\"./getConstraintsBySource.js\";import{getVideoTrackConstraints as n}from\"./getVideoTrackConstraints.js\";import\"../getMediaTrackSources.js\";import\"../getMainCamera.js\";var s=[\"video\",\"audio\"],d=[\"muted\"],u=function(){var u=e(r().mark((function e(){var u,c,v,p,m,f,b,g,l,x,j,k,h,C,w,y,B,M=arguments;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(c=(u=M.length>0&&void 0!==M[0]?M[0]:{}).constraints,p=(v=void 0===c?{}:c).video,m=void 0===p||p,f=v.audio,b=void 0!==f&&f,g=o(v,s),l=u.options,j=(x=void 0===l?{}:l).muted,k=void 0!==j&&j,h=o(x,d),!(\"mediaDevices\"in navigator)){e.next=9;break}if(w=b,!m){e.next=7;break}return e.next=6,n(\"object\"===i(m)?m:{},h);case 6:C=e.sent;case 7:e.next=14;break;case 9:return e.next=11,a({video:m,audio:b});case 11:y=e.sent,w=y.audio,C=y.video;case 14:return B=t(t(t({},g),!k&&{audio:void 0===w||w}),{},{video:void 0===C||C}),e.abrupt(\"return\",B);case 16:case\"end\":return e.stop()}}),e)})));return function(){return u.apply(this,arguments)}}();export{u as getMediaStreamConstraints};\n//# sourceMappingURL=getMediaStreamConstraints.js.map\n","/* @license @webcam/core v0.0.0 */\nvar e=function(){return!(!(\"mediaDevices\"in navigator)||!navigator.mediaDevices.getUserMedia)};export{e as hasGetUserMedia};\n//# sourceMappingURL=hasGetUserMedia.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{hasGetUserMedia as e}from\"./hasGetUserMedia.js\";var i=\"undefined\"!=typeof window&&(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia),r=function(r){return e()?navigator.mediaDevices.getUserMedia(r):i?new Promise((function(e,t){i.call(navigator,r,e,t)})):Promise.reject(new Error(\"Method getUserMedia of Navigator is not implemented in this browser\"))};export{r as getUserMedia,i as getUserMediaFunction};\n//# sourceMappingURL=getUserMedia.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{getUserMediaFunction as e}from\"./getUserMedia.js\";import{hasGetUserMedia as r}from\"./hasGetUserMedia.js\";var i=function(){return\"undefined\"!=typeof navigator&&(r()?!!navigator.mediaDevices.getUserMedia:!!e)};export{i as canGetUserMedia};\n//# sourceMappingURL=canGetUserMedia.js.map\n","/* @license @webcam/core v0.0.0 */\nimport{_ as e,a as r}from\"../../_rollupPluginBabelHelpers-59ed2110.js\";import{getMediaStreamConstraints as t}from\"../constraints/getMediaStreamConstraints.js\";import{canGetUserMedia as n}from\"./canGetUserMedia.js\";import{getUserMedia as a}from\"./getUserMedia.js\";import\"../constraints/getConstraintsBySource.js\";import\"../getMediaTrackSources.js\";import\"../constraints/getVideoTrackConstraints.js\";import\"../getMainCamera.js\";import\"./hasGetUserMedia.js\";var s=function(){var s=e(r().mark((function e(s,o){var i,c;return r().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n()){e.next=2;break}throw new Error(\"Method getUserMedia of Navigator is not supported\");case 2:return e.next=4,t(s);case 4:if(c=e.sent,!o){e.next=11;break}return e.next=8,new Promise((function(e,r){var t=setTimeout((function(){r(new Error(\"User media request has reached the specified time limit\"))}),o);a(c).then((function(r){return clearTimeout(t),e(r)})).catch((function(e){clearTimeout(t),r(e)}))}));case 8:i=e.sent,e.next=14;break;case 11:return e.next=13,a(c);case 13:i=e.sent;case 14:if(i){e.next=16;break}throw new Error(\"Stream of media content was not found\");case 16:return e.abrupt(\"return\",i);case 17:case\"end\":return e.stop()}}),e)})));return function(e,r){return s.apply(this,arguments)}}();export{s as getMediaStream};\n//# sourceMappingURL=getMediaStream.js.map\n","/* @license @webcam/core v0.0.0 */\nvar o=function(o){if(o){if(!(o instanceof MediaStreamTrack))return o.getVideoTracks&&o.getAudioTracks?(o.getVideoTracks().forEach((function(r){o.removeTrack(r),r.stop()})),void o.getAudioTracks().forEach((function(r){o.removeTrack(r),r.stop()}))):void(o.getTracks&&o.getTracks().forEach((function(r){o.removeTrack(r),r.stop()})));o.stop()}};export{o as stopMediaStream};\n//# sourceMappingURL=stopMediaStream.js.map\n","import { useEffect, useRef } from 'react';\r\nimport type { GetMediaStreamConstraintsParams, MediaTrackConstraintsOptions } from '@webcam/core';\r\nimport {\r\n applyMediaStreamConstraints,\r\n getMediaStream,\r\n getMediaStreamConstraints,\r\n stopMediaStream\r\n} from '@webcam/core';\r\n\r\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\r\n\r\nexport interface UseMediaStreamParams extends MediaTrackConstraintsOptions {\r\n disable?: boolean;\r\n requestTimeLimit?: number;\r\n applyConstraints?: boolean;\r\n audioConstraints?: MediaTrackConstraints;\r\n videoConstraints?: MediaTrackConstraints;\r\n onStreamRequest?: () => void;\r\n onStreamError?: (error: Error) => void;\r\n onStreamStart?: (stream: MediaStream) => void;\r\n onStreamStop?: (stream?: MediaStream) => void;\r\n}\r\n\r\n/**\r\n * Returns and manages the media stream in accordance with the passed parameters for configuration\r\n *\r\n * @param {UseMediaStreamParams} params - parameters for receiving media stream\r\n * @return {MediaStream | undefined} media stream instance\r\n */\r\nexport const useMediaStream = ({\r\n onStreamRequest,\r\n onStreamError,\r\n onStreamStart,\r\n onStreamStop,\r\n disable,\r\n applyConstraints,\r\n requestTimeLimit,\r\n videoConstraints,\r\n audioConstraints,\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n frontCamera,\r\n mainCamera,\r\n muted\r\n}: UseMediaStreamParams = {}) => {\r\n const streamRef = useRef<MediaStream>();\r\n const handlerRef = useRef({\r\n request: onStreamRequest,\r\n error: onStreamError,\r\n start: onStreamStart,\r\n stop: onStreamStop\r\n });\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n handlerRef.current = {\r\n request: onStreamRequest,\r\n error: onStreamError,\r\n start: onStreamStart,\r\n stop: onStreamStop\r\n };\r\n }, [onStreamRequest, onStreamError, onStreamStart, onStreamStop]);\r\n\r\n useEffect(() => {\r\n if (disable) return;\r\n\r\n const streamConstraintsParams: GetMediaStreamConstraintsParams = {\r\n constraints: {\r\n video: videoConstraints,\r\n audio: audioConstraints\r\n },\r\n options: {\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n frontCamera,\r\n mainCamera,\r\n muted\r\n }\r\n };\r\n\r\n const requestMediaStream = async (params: GetMediaStreamConstraintsParams) => {\r\n try {\r\n handlerRef.current.request?.();\r\n\r\n const mediaStream = await getMediaStream(params, requestTimeLimit);\r\n\r\n handlerRef.current.start?.(mediaStream);\r\n } catch (error) {\r\n handlerRef.current.error?.(error as Error);\r\n }\r\n };\r\n\r\n const runningStream = streamRef.current;\r\n if (applyConstraints && runningStream) {\r\n getMediaStreamConstraints(streamConstraintsParams)\r\n .then((constraints) => applyMediaStreamConstraints(runningStream, constraints))\r\n .catch(() => requestMediaStream(streamConstraintsParams));\r\n } else {\r\n requestMediaStream(streamConstraintsParams);\r\n }\r\n\r\n return () => {\r\n handlerRef.current.stop?.(runningStream);\r\n stopMediaStream(runningStream);\r\n };\r\n }, [\r\n // STREAM PARAMS:\r\n disable,\r\n applyConstraints,\r\n requestTimeLimit,\r\n // DEFAULT CONSTRAINTS:\r\n videoConstraints,\r\n audioConstraints,\r\n // CUSTOM CONSTRAINTS:\r\n cameraResolutionMode,\r\n cameraResolutionType,\r\n frontCamera,\r\n mainCamera,\r\n muted\r\n ]);\r\n\r\n return streamRef.current;\r\n};\r\n"],"names":["n","r","e","mark","s","o","i","u","c","p","f","l","d","wrap","prev","next","video","audio","getVideoTracks","t","applyConstraints","a","getAudioTracks","stop","apply","this","arguments","optional","sourceId","deviceId","Array","isArray","ideal","Promise","MediaStreamTrack","getSources","sent","abrupt","forEach","kind","id","back","front","navigator","mediaDevices","enumerateDevices","filter","length","RegExp","find","label","test","UHD","width","height","QHD","FHD","HD","h","m","v","mainCamera","frontCamera","cameraResolutionType","cameraResolutionMode","exact","facingMode","b","g","x","j","k","C","w","y","B","M","constraints","options","muted","getUserMedia","window","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","call","reject","Error","setTimeout","then","clearTimeout","removeTrack","getTracks","useMediaStream","_ref","undefined","onStreamRequest","onStreamError","onStreamStart","onStreamStop","disable","requestTimeLimit","videoConstraints","audioConstraints","streamRef","useRef","handlerRef","request","error","start","useIsomorphicLayoutEffect","current","useEffect","streamConstraintsParams","requestMediaStream","_ref2","_regeneratorRuntime","_callee","params","_handlerRef$current$r","_handlerRef$current","_handlerRef$current$s","_handlerRef$current2","mediaStream","_handlerRef$current$e","_handlerRef$current3","_context","getMediaStream","t0","_x","runningStream","getMediaStreamConstraints","applyMediaStreamConstraints","_handlerRef$current$s2","_handlerRef$current4","stopMediaStream"],"mappings":";;;kCAKaA,IAAAA,EAA2B,WAAA,IAAAA,EAAAC,EAAAC,IAAAC,MAAG,SAAAF,EACzCD,EAAmBI,GAAA,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAV,IAAAW,MAAA,SAAAZ,GAAA,OAAA,OAAAA,EAAAa,KAAAb,EAAAc,MAAA,KAAA,EAGF,GAFfV,EAAKD,EAALY,MAAOV,EAAKF,EAALa,MAAKV,EAEOP,EAAOkB,iBAAgBV,EAAAW,EAAAZ,EAArC,KAAAE,EAAUD,EACH,IAAA,CAAAP,EAAAc,KAAA,EAAA,KAAA,CAAA,OAAAd,EAAAc,KAAA,EACNN,EAAWW,iBAAkC,WAAjBC,EAAOhB,GAAqBA,EAAQ,CAAA,GAAG,KAAA,EAG1D,GAH0DK,EAGtDV,EAAOsB,iBAAgBX,EAAAQ,EAAAT,EAArC,KAAAE,EAAUD,EACH,IAAA,CAAAV,EAAAc,KAAA,EAAA,KAAA,CAAA,OAAAd,EAAAc,KAAA,EACNH,EAAWQ,iBAAkC,WAAjBC,EAAOf,GAAqBA,EAAQ,CAAA,GAAG,KAAA,EAAA,IAAA,MAAA,OAAAL,EAAAsB,OAAA,GAAAtB,EAE5E,KAAA,OAbuCA,SAAAA,EAAAC,GAAA,OAAAF,EAAAwB,MAAAC,KAAAC,UAAA,CAAA,CAAA,GCHlCL,EAA+B,SAACpB,GACpC,GAAKA,EAEL,MAAO,CAAE0B,SAAU,CAAC,CAAEC,SAAU3B,IAClC,EAEMkB,EAA2B,SAAClB,GAChC,GAA2B,WAAvBK,EAAOL,GAAX,CAEA,IAAQC,EAAaD,EAAb4B,SAER,MAAwB,iBAAb3B,EAA8BA,EAErC4B,MAAMC,QAAQ7B,GAAkBA,EAAS,GAErB,WAApBI,EAAOJ,IAAyBA,EAAS8B,MACpCF,MAAMC,QAAQ7B,EAAS8B,OAAS9B,EAAS8B,MAAM,GAAK9B,EAAS8B,YATjC,CAWvC,EAIa3B,EAAsB,WAAA,IAAAC,EAAAL,EAAAC,IAAAC,MAAG,SAAAF,EAAOK,GAAmC,IAAAD,EAAAE,EAAAK,EAAAJ,EAAAJ,EAAAM,EAAA,OAAAR,IAAAW,MAAA,SAAAZ,GAAA,OAAA,OAAAA,EAAAa,KAAAb,EAAAc,MAAA,KAAA,EACD,OAAvEV,EAAiC,CAAEW,WAAO,EAAWC,WAAO,GAAWhB,EAAAc,KAAA,ECxB7E,IAAIkB,SAAwC,SAAC/B,GACvC,eAAgBgC,iBAElBA,iBAAiBC,WAAWjC,GAI9BA,OAAA,MDmB0C,KAAA,EAA/B,GAAPK,EAAON,EAAAmC,KACD,CAAAnC,EAAAc,KAAA,EAAA,KAAA,CAAA,OAAAd,EAAAoC,OAAA,SAAShC,GAAM,KAAA,EAoB+C,OAf1EE,EAAQ+B,SAAQ,SAACrC,GACK,UAAhBA,EAAOsC,KAKS,UAAhBtC,EAAOsC,OACT/B,EAAcP,EAAOuC,IALrB5B,EAAcX,EAAOuC,EASnBpC,IAAAA,EAAgBe,EAAyBb,EAAYU,OACrDN,EAAgBS,EAAyBb,EAAYW,OAE3DZ,EAAOY,MAAQI,EAA6B,MAAAjB,EAAAA,EAAiBQ,GAC7DP,EAAOW,MAAQK,EAA6B,MAAAX,EAAAA,EAAiBF,GAAaP,EAAAoC,OAAA,SAEnEhC,GAAM,KAAA,GAAA,IAAA,MAAA,OAAAJ,EAAAsB,OAAA,GAAAtB,EACd,KAAA,OA3BY,SAAsBA,GAAA,OAAAK,EAAAkB,MAAAC,KAAAC,UAAA,CAAA,CAAA,GEtBtBP,EAA8B,CACzCsB,KAAM,4BACNC,MAAO,aAUIrB,EAAa,WAAA,IAAAA,EAAAnB,EAAAD,IAAAE,MAAG,SAAAD,EAAOmB,EAA8Bf,GAAuB,IAAAC,EAAAC,EAAAH,EAAAD,EAAA,OAAAH,IAAAY,MAAA,SAAAX,GAAA,OAAA,OAAAA,EAAAY,KAAAZ,EAAAa,MAAA,KAAA,EAAA,GACjF,iBAAkB4B,WAAaA,UAAUC,aAAaC,iBAAgB,CAAA3C,EAAAa,KAAA,EAAA,KAAA,CAAA,OAAAb,EAAAmC,OAAA,UAAA,KAAA,EAAA,OAAAnC,EAAAa,KAAA,EAEjD4B,UAAUC,aAAaC,mBAAkB,KAAA,EACI,GADlEtC,EAAYL,EAAAkC,QACZ5B,EAAUD,EAAauC,QAAO,SAAA5C,GAAO,MAAgB,eAAhBA,EAAJqC,SAE3BQ,QAAU,GAAC,CAAA7C,EAAAa,KAAA,EAAA,KAAA,CAAA,OAAAb,EAAAmC,OAAA,UAAA,KAAA,EAOtB,OAJKjC,EAAYE,EAAgB,QAAU,OAEtB,WAAlBN,EAAOqB,KACThB,EAASgB,aAAkB2B,OAAS3B,EAASA,EAAOjB,IACrDF,EAAAmC,OAAA,SAEM7B,EAAQyC,MAAK,SAAA/C,GAAA,IAAAD,EAAGD,EAAKE,EAALgD,MAAK,OACnB,QAAPjD,EAACI,SAAA,IAAMJ,EAAAA,EAAIkB,EAA4Bf,IAAY+C,KAAKnD,EAC1D,KAAC,KAAA,GAAA,IAAA,MAAA,OAAAE,EAAAqB,OAAA,GAAArB,EACF,KAAA,OAlByBA,SAAAA,EAAAD,GAAA,OAAAoB,EAAAG,MAAAC,KAAAC,UAAA,CAAA,CAAA,GCHbrB,EAA2E,CACtF+C,IAAK,CACHC,MAAO,KACPC,OAAQ,MAEVC,IAAK,CACHF,MAAO,KACPC,OAAQ,MAEVE,IAAK,CACHH,MAAO,KACPC,OAAQ,MAEVG,GAAI,CACFJ,MAAO,KACPC,OAAQ,MAiBC1C,EAAwB,WAAA,IAAAA,EAAAV,EAAAiB,IAAAhB,MAAG,SAAAD,EACtCU,EAA0CJ,GAAA,IAAAkD,EAAAtD,EAAAG,EAAAE,EAAAE,EAAAgD,EAAAjD,EAAAkD,EAAA,OAAAzC,IAAAN,MAAA,SAAAX,GAAA,OAAA,OAAAA,EAAAY,KAAAZ,EAAAa,MAAA,KAAA,EAgBvC,GAdW2C,EAAalD,EAAzBqD,WACazD,EAAcI,EAA3BsD,YACAvD,EAAoBC,EAApBuD,qBAAoBtD,EAAAD,EACpBwD,qBAAArD,OAAA,IAAoBF,EAAG,QAAOA,EAG1BkD,EAAwC1D,EACxC,CAAA,EAAAM,GAAwB,CAC1B8C,MAAKhC,EACFV,GAAAA,EAAuBN,EAAsBE,GAAsB8C,OAEtEC,OAAMjC,EACHV,GAAAA,EAAuBN,EAAsBE,GAAsB+C,WAKtEI,EAAa,CAAAxD,EAAAa,KAAA,EAAA,KAAA,CAAA,OAAAb,EAAAa,KAAA,EACUf,EACE,WAAzBM,EAAOoD,GAA6BA,OAAA,EACpCtD,GACD,KAAA,EAEG,OALEM,EAAUR,EAAAkC,OAKZ1B,EAAYmB,WACd8B,EAAkB9B,SAAW,CAAEoC,MAAOvD,EAAWmB,WAClD,KAAA,EASqB,OANnB8B,EAAkB9B,UAAsC,kBAAnBzB,IACxCuD,EAAkBO,WAAa9D,EAAiB,OAAS,eAGrDwD,EAAuC3D,EAAAA,EACxC,GAAA0D,GACA/C,GAAmBV,EAAAmC,gBAGjBuB,GAAgB,KAAA,GAAA,IAAA,MAAA,OAAA1D,EAAAqB,OAAA,GAAArB,EACxB,KAAA,OAzCoCA,SAAAA,EAAAiB,GAAA,OAAAP,EAAAY,MAAAC,KAAAC,UAAA,CAAA,CAAA,mCCxBxBnB,EAAyB,WAAA,IAAAA,EAAAL,EAAAD,IAAAE,MAAG,SAAAD,IAAA,IAAAK,EAAAC,EAAAoD,EAAAnD,EAAAkD,EAAAjD,EAAAyD,EAAAC,EAAAzD,EAAA0D,EAAAC,EAAAC,EAAAb,EAAAc,EAAAC,EAAAC,EAAAC,EAAAC,EAAAlD,UAAA,OAAAzB,IAAAY,MAAA,SAAAX,GAAA,OAAA,OAAAA,EAAAY,KAAAZ,EAAAa,MAAA,KAAA,EAEH,GACCP,GAHED,EAAAqE,EAAA7B,OAAA6B,QAAAA,IAAAA,KAAAA,EAAA,GAGJ,CAFnCC,GAAAA,YAAsEpE,GAA3DmD,OAAApD,IAAAA,EAAyD,CAAA,EAAEA,GAAvDQ,MAAA2C,OAAA,IAAKlD,GAAOA,EAAAC,EAAAkD,EAAE3C,MAAAkD,WAAKzD,GAAQA,EAAK0D,EAAgB/D,EAAAuD,EAAAxD,GAAAO,EAAAJ,EAC/DuE,QAA2CR,GAApCD,WAAA1D,EAAkC,CAAA,EAAEA,GAAhCoE,MAAAR,OAAKD,IAAAA,GAAQA,EAAKZ,EAAOrD,EAAAgE,EAAAzD,KAKhC,iBAAkB+B,WAAS,CAAAzC,EAAAa,KAAA,EAAA,KAAA,CACJ,GAAzB0D,EAAmBN,GAEfR,EAAK,CAAAzD,EAAAa,KAAA,EAAA,KAAA,CAAA,OAAAb,EAAAa,KAAA,EACkBf,EACN,WAAjBM,EAAOqD,GAAqBA,EAAQ,GACpCD,GACD,KAAA,EAHDc,EAAgBtE,EAAAkC,KAAA,KAAA,EAAAlC,EAAAa,KAAA,GAAA,MAAA,KAAA,EAAA,OAAAb,EAAAa,KAAA,GAMgBM,EAAuB,CAAEL,MAAA2C,EAAO1C,MAAAkD,IAAQ,KAAA,GAApEO,EAAmBxE,EAAAkC,KACzBqC,EAAmBC,EAAoBzD,MACvCuD,EAAmBE,EAAoB1D,MAAM,KAAA,GAQ2B,OALpE2D,EAAwCxD,EAAAA,EAAAA,EACzCiD,CAAAA,EAAAA,IACEG,GAAS,CACZtD,WAAA,IAAcwD,GAAmCA,IAClD,CAAA,EAAA,CACDzD,WAAA,IAAcwD,GAAmCA,IAAuBtE,EAAAmC,OAAA,SAGnEsC,GAAgB,KAAA,GAAA,IAAA,MAAA,OAAAzE,EAAAqB,OAAA,GAAArB,EACxB,KAAA,OAAA,WA/BqC,OAAAK,EAAAiB,MAAAC,KAAAC,UAAA,CAAA,CAAA,GCdzBxB,EAAkB,WAAH,UACvB,iBAAkByC,aAAaA,UAAUC,aAAaoC,aAAa,ECC3D1E,EACO,oBAAX2E,SACNtC,UAAUqC,cACTrC,UAAUuC,oBACVvC,UAAUwC,iBACVxC,UAAUyC,gBAODnF,EAAe,SAACA,GAC3B,OAAKC,IAYEyC,UAAUC,aAAaoC,aAAa/E,GAXpCK,EAME,IAAI2B,SAAQ,SAAC/B,EAASiB,GAC3Bb,EAAqB+E,KAAK1C,UAAW1C,EAAaC,EAASiB,EAC7D,IAPSc,QAAQqD,OACb,IAAIC,MAAM,uEAUlB,ECzBajF,EAAkB,WAC7B,MAAyB,oBAAdqC,YAEN1C,MAII0C,UAAUC,aAAaoC,eAHrB9E,EAIb,ECHaE,EAAc,WAAA,IAAAA,EAAAF,EAAAD,IAAAE,MAAG,SAAAD,EAC5BE,EACAC,GAAoB,IAAAC,EAAAE,EAAA,OAAAP,IAAAY,MAAA,SAAAX,GAAA,OAAA,OAAAA,EAAAY,KAAAZ,EAAAa,MAAA,KAAA,EAAA,GAEff,IAAiB,CAAAE,EAAAa,KAAA,EAAA,KAAA,CAAA,MACd,IAAIwE,MAAM,qDAAoD,KAAA,EAAA,OAAArF,EAAAa,KAIjCI,EAAAA,EAA0Bf,GAAO,KAAA,EAA1C,GAAtBI,EAAsBN,EAAAkC,MAExB/B,EAAW,CAAAH,EAAAa,KAAA,GAAA,KAAA,CAAA,OAAAb,EAAAa,KACO,EAAA,IAAIkB,SAAQ,SAAC/B,EAASD,GACxC,IAAMkB,EAAQqE,YAAW,WACvBvF,EAAO,IAAIsF,MAAM,2DAClB,GAAElF,GAEHgB,EAAab,GACViF,MAAK,SAACxF,GAEL,OADAyF,aAAavE,GACNjB,EAAQD,MACf,OACK,SAACC,GACNwF,aAAavE,GACblB,EAAOC,KAEb,IAAE,KAAA,EAdFI,EAAWJ,EAAAkC,KAAAlC,EAAAa,KAAA,GAAA,MAAA,KAAA,GAAA,OAAAb,EAAAa,KAgBSM,GAAAA,EAAab,GAAuB,KAAA,GAAxDF,EAAWJ,EAAAkC,KAAA,KAAA,GAAA,GAGR9B,EAAW,CAAAJ,EAAAa,KAAA,GAAA,KAAA,CAAA,MACR,IAAIwE,MAAM,yCAAwC,KAAA,GAAA,OAAArF,EAAAmC,OAAA,SAGnD/B,GAAW,KAAA,GAAA,IAAA,MAAA,OAAAJ,EAAAqB,OAAA,GAAArB,EACnB,KAAA,OApC0BA,SAAAA,EAAAD,GAAA,OAAAG,EAAAoB,MAAAC,KAAAC,UAAA,CAAA,CAAA,GCRdrB,EAAkB,SAACA,GAC9B,GAAKA,EAAL,CAEA,KAAIA,aAAkB6B,kBAKtB,OAAI7B,EAAOa,gBAAkBb,EAAOiB,gBAClCjB,EAAOa,iBAAiBoB,SAAQ,SAACrC,GAC/BI,EAAOsF,YAAY1F,GACnBA,EAAMsB,MACR,SACAlB,EAAOiB,iBAAiBgB,SAAQ,SAACrC,GAC/BI,EAAOsF,YAAY1F,GACnBA,EAAMsB,gBAQNlB,EAAOuF,WACTvF,EAAOuF,YAAYtD,SAAQ,SAACrC,GAC1BI,EAAOsF,YAAY1F,GACnBA,EAAMsB,MACR,KAvBAlB,EAAOkB,MAHI,CA4Bf,ECLasE,EAAiB,WAeG,IAAAC,EAAApE,UAAAqB,OAAA,QAAAgD,IAAArE,UAAA,GAAAA,UAAA,GAAP,CAAE,EAd1BsE,EAAeF,EAAfE,gBACAC,EAAaH,EAAbG,cACAC,EAAaJ,EAAbI,cACAC,EAAYL,EAAZK,aACAC,EAAON,EAAPM,QACAhF,EAAgB0E,EAAhB1E,iBACAiF,EAAgBP,EAAhBO,iBACAC,EAAgBR,EAAhBQ,iBACAC,EAAgBT,EAAhBS,iBACAvC,EAAoB8B,EAApB9B,qBACAD,EAAoB+B,EAApB/B,qBACAD,EAAWgC,EAAXhC,YACAD,EAAUiC,EAAVjC,WACAkB,EAAKe,EAALf,MAEMyB,EAAYC,IACZC,EAAaD,EAAO,CACxBE,QAASX,EACTY,MAAOX,EACPY,MAAOX,EACP3E,KAAM4E,IAsER,OAnEAW,GAA0B,WACxBJ,EAAWK,QAAU,CACnBJ,QAASX,EACTY,MAAOX,EACPY,MAAOX,EACP3E,KAAM4E,EAET,GAAE,CAACH,EAAiBC,EAAeC,EAAeC,IAEnDa,GAAU,WACR,IAAIZ,EAAJ,CAEA,IAAMa,EAA2D,CAC/DpC,YAAa,CACX7D,MAAOsF,EACPrF,MAAOsF,GAETzB,QAAS,CACPd,qBAAAA,EACAD,qBAAAA,EACAD,YAAAA,EACAD,WAAAA,EACAkB,MAAAA,IAIEmC,EAAkB,WAAA,MAAAC,KAAAC,IAAAjH,MAAG,SAAAkH,EAAOC,GAAuC,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,OAAAT,IAAAvG,MAAA,SAAAiH,GAAA,cAAAA,EAAAhH,KAAAgH,EAAA/G,MAAA,KAAA,EAEtC,OAFsC+G,EAAAhH,KAAA,EAE3C,QAA1ByG,GAAAC,EAAAd,EAAWK,SAAQJ,eAAnBY,IAA0BA,GAA1BA,EAAAlC,KAAAmC,GAA+BM,EAAA/G,KAAA,EAELgH,EAAeT,EAAQjB,GAAiB,KAAA,EAA5DsB,EAAWG,EAAA1F,aAEjBqF,GAAAC,EAAAhB,EAAWK,SAAQF,aAAK,IAAAY,GAAxBA,EAAApC,KAAAqC,EAA2BC,GAAaG,EAAA/G,KAAA,GAAA,MAAA,KAAA,EAAA+G,EAAAhH,KAAA,EAAAgH,EAAAE,GAAAF,EAAA,MAAA,GAEhB,QAAxBF,GAAAC,EAAAnB,EAAWK,SAAQH,aAAnBgB,IAAwBA,GAAxBA,EAAAvC,KAAAwC,EAAAC,EAAAE,IAA2C,KAAA,GAAA,IAAA,MAAA,OAAAF,EAAAvG,OAAA,GAAA8F,EAAA,KAAA,CAAA,CAAA,EAAA,IAE9C,mLAAA,OAVKH,SAAkBe,GAAA,OAAAd,EAAA3F,MAAAC,KAAAC,UAAA,EAAA,GAYlBwG,EAAgB1B,EAAUO,QAShC,OARI3F,GAAoB8G,EACtBC,EAA0BlB,GACvBxB,MAAK,SAACZ,GAAW,OAAKuD,EAA4BF,EAAerD,EAAY,WACvE,WAAA,OAAMqC,EAAmBD,MAElCC,EAAmBD,GAGd,WAAM,IAAAoB,EAAAC,UACXD,GAAAC,EAAA5B,EAAWK,SAAQxF,YAAI,IAAA8G,GAAvBA,EAAAhD,KAAAiD,EAA0BJ,GAC1BK,EAAgBL,GAvCL,CAyCf,GAAG,CAED9B,EACAhF,EACAiF,EAEAC,EACAC,EAEAvC,EACAD,EACAD,EACAD,EACAkB,IAGKyB,EAAUO,OACnB;"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,i=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame;export{i as cancelAnimationFrame,n as requestAnimationFrame};
|
|
3
|
+
//# sourceMappingURL=animationFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animationFrame.js","sources":["../../../../src/utils/helpers/animationFrame.ts"],"sourcesContent":["// ✅ important\r\n// Implementations for each browser need to be supported\r\nexport const requestAnimationFrame =\r\n window.requestAnimationFrame ||\r\n window.mozRequestAnimationFrame ||\r\n window.webkitRequestAnimationFrame ||\r\n window.msRequestAnimationFrame;\r\n\r\nexport const cancelAnimationFrame =\r\n window.cancelAnimationFrame ||\r\n window.mozCancelAnimationFrame ||\r\n window.webkitCancelAnimationFrame ||\r\n window.msCancelAnimationFrame;\r\n"],"names":["requestAnimationFrame","window","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame"],"mappings":";IAEaA,EACXC,OAAOD,uBACPC,OAAOC,0BACPD,OAAOE,6BACPF,OAAOG,wBAEIC,EACXJ,OAAOI,sBACPJ,OAAOK,yBACPL,OAAOM,4BACPN,OAAOO"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
export{useAnimationFrame}from"./useAnimationFrame.js";export{useIsomorphicLayoutEffect}from"./useIsomorphicLayoutEffect.js";export{u as useMediaStream}from"../../useMediaStream-4f24b75b.js";import"react";import"../helpers/animationFrame.js";
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* @license @webcam/react v0.0.0 */
|
|
2
|
+
import{useRef as r,useEffect as n}from"react";import{requestAnimationFrame as t,cancelAnimationFrame as e}from"../helpers/animationFrame.js";import{useIsomorphicLayoutEffect as u}from"./useIsomorphicLayoutEffect.js";var c=function(c,o){var i=r(),f=r(),a=r(c);u((function(){a.current=c}),[c]);var m=function r(n){if(n){if(f.current=n,void 0===f.current)return;a.current(n-f.current)}i.current=t(r)},p=function(){i.current&&e(i.current)};return n((function(){if(!o)return p(),function(){return p()};i.current=t(m)}),[o]),{request:m,cancel:p}};export{c as useAnimationFrame};
|
|
3
|
+
//# sourceMappingURL=useAnimationFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAnimationFrame.js","sources":["../../../../src/utils/hooks/useAnimationFrame.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\r\n\r\nimport { cancelAnimationFrame, requestAnimationFrame } from '../helpers';\r\n\r\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\r\n\r\n/**\r\n * Helps request and cancel animation frame\r\n *\r\n * @param {Function} callback - frame request callback\r\n * @param {boolean} active - should animation frame be requested\r\n * @return {Object} request/cancel animation frame handlers\r\n */\r\nexport const useAnimationFrame = (callback: (time: number) => void, active?: boolean) => {\r\n const animationFrameRequestRef = useRef<number>();\r\n const previousTimestampRef = useRef<number>();\r\n const savedHandlerRef = useRef(callback);\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n savedHandlerRef.current = callback;\r\n }, [callback]);\r\n\r\n const onFrameRequest = (timestamp?: DOMHighResTimeStamp) => {\r\n if (timestamp) {\r\n previousTimestampRef.current = timestamp;\r\n if (typeof previousTimestampRef.current === 'undefined') return;\r\n savedHandlerRef.current(timestamp - previousTimestampRef.current);\r\n }\r\n\r\n animationFrameRequestRef.current = requestAnimationFrame(onFrameRequest);\r\n };\r\n\r\n const onFrameCancel = () => {\r\n if (!animationFrameRequestRef.current) return;\r\n cancelAnimationFrame(animationFrameRequestRef.current);\r\n };\r\n\r\n useEffect(() => {\r\n if (active) {\r\n animationFrameRequestRef.current = requestAnimationFrame(onFrameRequest);\r\n return;\r\n }\r\n\r\n onFrameCancel();\r\n return () => onFrameCancel();\r\n }, [active]);\r\n\r\n return {\r\n request: onFrameRequest,\r\n cancel: onFrameCancel\r\n };\r\n};\r\n"],"names":["useAnimationFrame","callback","active","animationFrameRequestRef","useRef","previousTimestampRef","savedHandlerRef","useIsomorphicLayoutEffect","current","onFrameRequest","timestamp","requestAnimationFrame","onFrameCancel","cancelAnimationFrame","useEffect","request","cancel"],"mappings":";wNAaO,IAAMA,EAAoB,SAACC,EAAkCC,GAClE,IAAMC,EAA2BC,IAC3BC,EAAuBD,IACvBE,EAAkBF,EAAOH,GAE/BM,GAA0B,WACxBD,EAAgBE,QAAUP,CAC5B,GAAG,CAACA,IAEJ,IAAMQ,EAAiB,SAAjBA,EAAkBC,GACtB,GAAIA,EAAW,CAEb,GADAL,EAAqBG,QAAUE,OACa,IAAjCL,EAAqBG,QAAyB,OACzDF,EAAgBE,QAAQE,EAAYL,EAAqBG,QAC3D,CAEAL,EAAyBK,QAAUG,EAAsBF,IAGrDG,EAAgB,WACfT,EAAyBK,SAC9BK,EAAqBV,EAAyBK,UAahD,OAVAM,GAAU,WACR,IAAIZ,EAMJ,OADAU,IACO,WAAA,OAAMA,GAAe,EAL1BT,EAAyBK,QAAUG,EAAsBF,EAM7D,GAAG,CAACP,IAEG,CACLa,QAASN,EACTO,OAAQJ,EAEZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIsomorphicLayoutEffect.js","sources":["../../../../src/utils/hooks/useIsomorphicLayoutEffect.ts"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react';\r\n\r\nexport const useIsomorphicLayoutEffect =\r\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\r\n"],"names":["useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect"],"mappings":";uDAEO,IAAMA,EACO,oBAAXC,OAAyBC,EAAkBC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaStream.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { RefObject, FC, ReactNode, ComponentPropsWithoutRef } from 'react';
|
|
2
|
+
import { UseMediaStreamParams as UseMediaStreamParams$1 } from '@/utils/hooks';
|
|
3
|
+
import { GetVideoFrameCanvasOptions, GetWebcamSnapshotOptions, MediaTrackConstraintsOptions } from '@webcam/core';
|
|
4
|
+
export { applyMediaStreamConstraints, canGetUserMedia, getDevices, getMediaStream, getMediaStreamConstraints, getVideoFrameCanvas, getWebcamSnapshot, stopMediaStream } from '@webcam/core';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Helps get/set the media stream source for a video element
|
|
8
|
+
*
|
|
9
|
+
* @param {RefObject<HTMLVideoElement>} videoRef - video element reference object
|
|
10
|
+
* @param {UseMediaStreamParams} params - parameters for receiving media stream
|
|
11
|
+
* @return {string | undefined} media stream source
|
|
12
|
+
*/
|
|
13
|
+
declare const useWebcam: (videoRef: RefObject<HTMLVideoElement>, { onStreamStart, onStreamStop, ...params }?: UseMediaStreamParams$1) => {
|
|
14
|
+
start: (stream: MediaStream) => void;
|
|
15
|
+
stop: (stream?: MediaStream) => void;
|
|
16
|
+
source: string | undefined;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
type VideoElementProps = Omit<ComponentPropsWithoutRef<'video'>, 'children'>;
|
|
20
|
+
type AvailableUseMediaStreamParams = Omit<UseMediaStreamParams$1, 'disable'>;
|
|
21
|
+
type WebcamRenderProps = (options: {
|
|
22
|
+
getCanvas: (options?: GetVideoFrameCanvasOptions) => HTMLCanvasElement | undefined;
|
|
23
|
+
getSnapshot: (options?: GetWebcamSnapshotOptions) => string | undefined;
|
|
24
|
+
videoElement: HTMLVideoElement | null;
|
|
25
|
+
}) => ReactNode;
|
|
26
|
+
interface BaseWebcamProps extends VideoElementProps {
|
|
27
|
+
children?: ReactNode | WebcamRenderProps;
|
|
28
|
+
innerRef?: RefObject<HTMLVideoElement>;
|
|
29
|
+
mirrored?: boolean;
|
|
30
|
+
}
|
|
31
|
+
interface WebcamPropsWithInternalStream extends BaseWebcamProps, AvailableUseMediaStreamParams {
|
|
32
|
+
stream?: undefined;
|
|
33
|
+
}
|
|
34
|
+
interface WebcamPropsWithExternalStream extends BaseWebcamProps {
|
|
35
|
+
stream?: MediaStream;
|
|
36
|
+
}
|
|
37
|
+
type WebcamProps = WebcamPropsWithInternalStream | WebcamPropsWithExternalStream;
|
|
38
|
+
/**
|
|
39
|
+
* Renders the Webcam component and handles the requesting and displaying of the media stream
|
|
40
|
+
*
|
|
41
|
+
* @param {WebcamProps} props - The props for the Webcam component
|
|
42
|
+
* @return {ReactElement} The rendered Webcam component
|
|
43
|
+
*/
|
|
44
|
+
declare const Webcam: FC<WebcamProps>;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Helps request and cancel animation frame
|
|
48
|
+
*
|
|
49
|
+
* @param {Function} callback - frame request callback
|
|
50
|
+
* @param {boolean} active - should animation frame be requested
|
|
51
|
+
* @return {Object} request/cancel animation frame handlers
|
|
52
|
+
*/
|
|
53
|
+
declare const useAnimationFrame: (callback: (time: number) => void, active?: boolean) => {
|
|
54
|
+
request: (timestamp?: DOMHighResTimeStamp) => void;
|
|
55
|
+
cancel: () => void;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
interface UseMediaStreamParams extends MediaTrackConstraintsOptions {
|
|
59
|
+
disable?: boolean;
|
|
60
|
+
requestTimeLimit?: number;
|
|
61
|
+
applyConstraints?: boolean;
|
|
62
|
+
audioConstraints?: MediaTrackConstraints;
|
|
63
|
+
videoConstraints?: MediaTrackConstraints;
|
|
64
|
+
onStreamRequest?: () => void;
|
|
65
|
+
onStreamError?: (error: Error) => void;
|
|
66
|
+
onStreamStart?: (stream: MediaStream) => void;
|
|
67
|
+
onStreamStop?: (stream?: MediaStream) => void;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns and manages the media stream in accordance with the passed parameters for configuration
|
|
71
|
+
*
|
|
72
|
+
* @param {UseMediaStreamParams} params - parameters for receiving media stream
|
|
73
|
+
* @return {MediaStream | undefined} media stream instance
|
|
74
|
+
*/
|
|
75
|
+
declare const useMediaStream: ({ onStreamRequest, onStreamError, onStreamStart, onStreamStop, disable, applyConstraints, requestTimeLimit, videoConstraints, audioConstraints, cameraResolutionMode, cameraResolutionType, frontCamera, mainCamera, muted }?: UseMediaStreamParams) => MediaStream | undefined;
|
|
76
|
+
|
|
77
|
+
export { Webcam, useAnimationFrame, useMediaStream, useWebcam };
|
package/package.json
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@webcam/react",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Ultimate tool for working with media stream and displaying it in your React application",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": {
|
|
7
|
+
"name": "SIBERIA CAN CODE 🧊",
|
|
8
|
+
"url": "https://github.com/siberiacancode"
|
|
9
|
+
},
|
|
10
|
+
"contributors": [
|
|
11
|
+
{
|
|
12
|
+
"name": "Mironychev Michael",
|
|
13
|
+
"url": "https://github.com/michael-mir"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"name": "Dmitry Babin",
|
|
17
|
+
"url": "https://github.com/debabin"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "Sergey Kryavkin",
|
|
21
|
+
"url": "https://github.com/RiceWithMeat"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=14"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "https://github.com/siberiacancode/webcam.git"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://github.com/siberiacancode/webcam",
|
|
35
|
+
"bugs": "https://github.com/siberiacancode/webcam/issues",
|
|
36
|
+
"files": [
|
|
37
|
+
"dist/**/*"
|
|
38
|
+
],
|
|
39
|
+
"main": "dist/cjs/index.js",
|
|
40
|
+
"module": "dist/esm/index.js",
|
|
41
|
+
"types": "dist/index.d.ts",
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "shx rm -rf dist && rollup -c --bundleConfigAsCjs",
|
|
44
|
+
"lint": "eslint . --ext ts --ext tsx --no-error-on-unmatched-pattern --fix",
|
|
45
|
+
"format": "prettier --write **/*.{ts,tsx,js,jsx}",
|
|
46
|
+
"type": "tsc --noEmit",
|
|
47
|
+
"pretty": "yarn type && yarn format && yarn lint",
|
|
48
|
+
"storybook": "storybook dev -p 6011"
|
|
49
|
+
},
|
|
50
|
+
"lint-staged": {
|
|
51
|
+
"*.js": "prettier --write",
|
|
52
|
+
"*.{ts,tsx}": [
|
|
53
|
+
"prettier --write",
|
|
54
|
+
"eslint --no-error-on-unmatched-pattern --fix"
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"peerDependencies": {
|
|
58
|
+
"@types/react": "^18.0.0",
|
|
59
|
+
"react": "^17.0.2 || ^18.0.0"
|
|
60
|
+
},
|
|
61
|
+
"peerDependenciesMeta": {
|
|
62
|
+
"@types/react": {
|
|
63
|
+
"optional": true
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"dependencies": {
|
|
67
|
+
"@webcam/core": "*"
|
|
68
|
+
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@siberiacancode/builder": "^1.3.0",
|
|
71
|
+
"@siberiacancode/eslint": "^1.1.0",
|
|
72
|
+
"@siberiacancode/prettier": "^1.1.0",
|
|
73
|
+
"@storybook/addon-actions": "^7.6.16",
|
|
74
|
+
"@storybook/addon-essentials": "^7.6.16",
|
|
75
|
+
"@storybook/addon-interactions": "^7.6.16",
|
|
76
|
+
"@storybook/addon-links": "^7.6.16",
|
|
77
|
+
"@storybook/react": "^7.6.16",
|
|
78
|
+
"@storybook/react-vite": "^7.6.16",
|
|
79
|
+
"@storybook/testing-library": "^0.2.2",
|
|
80
|
+
"@types/node": "^20.11.19",
|
|
81
|
+
"@types/react": "^18.2.56",
|
|
82
|
+
"babel-loader": "^9.1.3",
|
|
83
|
+
"eslint": "^8.56.0",
|
|
84
|
+
"react": "^18.2.0",
|
|
85
|
+
"react-dom": "^18.2.0",
|
|
86
|
+
"shx": "^0.3.4",
|
|
87
|
+
"storybook": "^7.6.16",
|
|
88
|
+
"typescript": "^5.3.3",
|
|
89
|
+
"vite": "^5.1.3"
|
|
90
|
+
},
|
|
91
|
+
"keywords": [
|
|
92
|
+
"media",
|
|
93
|
+
"video",
|
|
94
|
+
"react",
|
|
95
|
+
"canvas",
|
|
96
|
+
"camera",
|
|
97
|
+
"webcam",
|
|
98
|
+
"stream",
|
|
99
|
+
"userMedia",
|
|
100
|
+
"navigator",
|
|
101
|
+
"screenshot",
|
|
102
|
+
"constraints",
|
|
103
|
+
"getUserMedia",
|
|
104
|
+
"react-webcam",
|
|
105
|
+
"webcam-canvas"
|
|
106
|
+
]
|
|
107
|
+
}
|