@untemps/user-permissions-utils 1.1.26 → 1.1.28

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/dist/index.es.js CHANGED
@@ -1,2 +1,31 @@
1
- var e=function(){return!!navigator.permissions},r=function(){return!!navigator.mediaDevices};function t(e,r,t,n,a,i,o){try{var u=e[i](o),c=u.value}catch(e){return void t(e)}u.done?r(c):Promise.resolve(c).then(n,a)}function n(e){return function(){var r=this,n=arguments;return new Promise((function(a,i){var o=e.apply(r,n);function u(e){t(o,a,i,u,c,"next",e)}function c(e){t(o,a,i,u,c,"throw",e)}u(void 0)}))}}function a(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,a,i=[],o=!0,u=!1;try{for(t=t.call(e);!(o=(n=t.next()).done)&&(i.push(n.value),!r||i.length!==r);o=!0);}catch(e){u=!0,a=e}finally{try{o||null==t.return||t.return()}finally{if(u)throw a}}return i}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return i(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return i(e,r)}(e,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 i(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var o=function(){var r=n(regeneratorRuntime.mark((function r(t){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",new Promise(function(){var r=n(regeneratorRuntime.mark((function r(n,a){var i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return e()||a(new DOMException("Navigator API: permissions not supported","NOT_SUPPORTED_ERR")),r.prev=1,r.next=4,navigator.permissions.query({name:t});case 4:i=r.sent,o=function e(r){i.removeEventListener("change",e),u(r.target.state,n,a)},i.addEventListener("change",o),u(i.state,n,a),r.next=13;break;case 10:r.prev=10,r.t0=r.catch(1),a(r.t0);case 13:case"end":return r.stop()}}),r,null,[[1,10]])})));return function(e,t){return r.apply(this,arguments)}}()));case 1:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}(),u=function(e,r,t){switch(e){case"denied":t(new DOMException("Permission denied","NOT_ALLOWED_ERR"));break;default:r(e)}},c=function(){var t=n(regeneratorRuntime.mark((function t(i,u){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(){var t=n(regeneratorRuntime.mark((function t(n,c){var s,f,p;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e()&&r()||c(new DOMException("Navigator API: permissions or Navigator API: mediaDevices not supported","NOT_SUPPORTED_ERR")),t.prev=1,t.t0=Promise,t.next=5,o(i);case 5:return t.t1=t.sent,t.next=8,navigator.mediaDevices.getUserMedia(u);case 8:return t.t2=t.sent,t.t3=[t.t1,t.t2],t.next=12,t.t0.all.call(t.t0,t.t3);case 12:s=t.sent,f=a(s,2),p=f[1],n(p),t.next=21;break;case 18:t.prev=18,t.t4=t.catch(1),c(t.t4);case 21:case"end":return t.stop()}}),t,null,[[1,18]])})));return function(e,r){return t.apply(this,arguments)}}()));case 1:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}();export{o as getPermission,c as getUserMediaStream,r as isNavigatorMediaDevicesSupported,e as isNavigatorPermissionsSupported};
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9pc05hdmlnYXRvclBlcm1pc3Npb25zU3VwcG9ydGVkLmpzIiwiLi4vc3JjL2lzTmF2aWdhdG9yTWVkaWFEZXZpY2VzU3VwcG9ydGVkLmpzIiwiLi4vc3JjL2dldFBlcm1pc3Npb24uanMiLCIuLi9zcmMvZ2V0VXNlck1lZGlhU3RyZWFtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2sgd2hldGhlciBOYXZpZ2F0b3IgQVBJOiBwZXJtaXNzaW9ucyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGN1cnJlbnQgYnJvd3NlclxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBkZWZhdWx0ICgpID0+ICEhbmF2aWdhdG9yLnBlcm1pc3Npb25zXG4iLCIvKipcbiAqIENoZWNrIHdoZXRoZXIgTmF2aWdhdG9yIEFQSTogbWVkaWFEZXZpY2VzIGlzIHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBicm93c2VyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgKCkgPT4gISFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzXG4iLCJpbXBvcnQgaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZCBmcm9tICcuL2lzTmF2aWdhdG9yUGVybWlzc2lvbnNTdXBwb3J0ZWQnXG5cbi8qKlxuICogUmV0dXJucyBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiB0aGUgcGVybWlzc2lvbiBpcyBncmFudGVkIGJ5IHRoZSB1c2VyXG4gKiBAcGFyYW0gcGVybWlzc2lvbk5hbWUgICAgICAgICAgICBOYW1lIG9mIHRoZSBwZXJtaXNzaW9uLiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wZXJtaXNzaW9ucy8jZW51bWRlZi1wZXJtaXNzaW9ubmFtZVxuICogQHJldHVybnMge1Byb21pc2V9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIChwZXJtaXNzaW9uTmFtZSkgPT4ge1xuXHRyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdGlmICghaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZCgpKSB7XG5cdFx0XHRyZWplY3QobmV3IERPTUV4Y2VwdGlvbignTmF2aWdhdG9yIEFQSTogcGVybWlzc2lvbnMgbm90IHN1cHBvcnRlZCcsICdOT1RfU1VQUE9SVEVEX0VSUicpKVxuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBwZXJtaXNzaW9uU3RhdHVzID0gYXdhaXQgbmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHsgbmFtZTogcGVybWlzc2lvbk5hbWUgfSlcblx0XHRcdGNvbnN0IG9uQ2hhbmdlID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdHBlcm1pc3Npb25TdGF0dXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpXG5cdFx0XHRcdHJlc29sdmVPclJlamVjdEJhc2VkT25TdGF0ZShldmVudC50YXJnZXQuc3RhdGUsIHJlc29sdmUsIHJlamVjdClcblx0XHRcdH1cblx0XHRcdHBlcm1pc3Npb25TdGF0dXMuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpXG5cdFx0XHRyZXNvbHZlT3JSZWplY3RCYXNlZE9uU3RhdGUocGVybWlzc2lvblN0YXR1cy5zdGF0ZSwgcmVzb2x2ZSwgcmVqZWN0KVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRyZWplY3QoZXJyb3IpXG5cdFx0fVxuXHR9KVxufVxuXG5jb25zdCByZXNvbHZlT3JSZWplY3RCYXNlZE9uU3RhdGUgPSAoc3RhdGUsIHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRzd2l0Y2ggKHN0YXRlKSB7XG5cdFx0Y2FzZSAnZGVuaWVkJzpcblx0XHRcdHJlamVjdChuZXcgRE9NRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcsICdOT1RfQUxMT1dFRF9FUlInKSlcblx0XHRcdGJyZWFrXG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJlc29sdmUoc3RhdGUpXG5cdH1cbn1cbiIsImltcG9ydCBpc05hdmlnYXRvclBlcm1pc3Npb25zU3VwcG9ydGVkIGZyb20gJy4vaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZCdcbmltcG9ydCBpc05hdmlnYXRvck1lZGlhRGV2aWNlc1N1cHBvcnRlZCBmcm9tICcuL2lzTmF2aWdhdG9yTWVkaWFEZXZpY2VzU3VwcG9ydGVkJ1xuaW1wb3J0IGdldFBlcm1pc3Npb24gZnJvbSAnLi9nZXRQZXJtaXNzaW9uJ1xuXG4vKipcbiAqIFJldHVybnMgYSBwcm9taXNlIHJlc29sdmVkIHdoZW4gdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRlZCBieSB0aGUgdXNlciBhbmQgdGhlIHN0cmVhbSBpcyByZXRyaWV2ZWRcbiAqIEBwYXJhbSBwZXJtaXNzaW9uTmFtZSAgICAgICAgICAgIE5hbWUgb2YgdGhlIHBlcm1pc3Npb24uIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Blcm1pc3Npb25zLyNlbnVtZGVmLXBlcm1pc3Npb25uYW1lXG4gKiBAcGFyYW0gbWVkaWFTdHJlYW1Db25zdHJhaW50cyAgICBDb25zdHJhaW50cyBvYmplY3QuIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL01lZGlhU3RyZWFtQ29uc3RyYWludHNcbiAqIEByZXR1cm5zIHtQcm9taXNlfVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyAocGVybWlzc2lvbk5hbWUsIG1lZGlhU3RyZWFtQ29uc3RyYWludHMpID0+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRpZiAoIWlzTmF2aWdhdG9yUGVybWlzc2lvbnNTdXBwb3J0ZWQoKSB8fCAhaXNOYXZpZ2F0b3JNZWRpYURldmljZXNTdXBwb3J0ZWQoKSkge1xuXHRcdFx0cmVqZWN0KFxuXHRcdFx0XHRuZXcgRE9NRXhjZXB0aW9uKFxuXHRcdFx0XHRcdCdOYXZpZ2F0b3IgQVBJOiBwZXJtaXNzaW9ucyBvciBOYXZpZ2F0b3IgQVBJOiBtZWRpYURldmljZXMgbm90IHN1cHBvcnRlZCcsXG5cdFx0XHRcdFx0J05PVF9TVVBQT1JURURfRVJSJ1xuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IFssIHN0cmVhbV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG5cdFx0XHRcdGF3YWl0IGdldFBlcm1pc3Npb24ocGVybWlzc2lvbk5hbWUpLFxuXHRcdFx0XHRhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShtZWRpYVN0cmVhbUNvbnN0cmFpbnRzKSxcblx0XHRcdF0pXG5cdFx0XHRyZXNvbHZlKHN0cmVhbSlcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0cmVqZWN0KGVycm9yKVxuXHRcdH1cblx0fSlcbn1cbiJdLCJuYW1lcyI6WyJpc05hdmlnYXRvclBlcm1pc3Npb25zU3VwcG9ydGVkIiwibmF2aWdhdG9yIiwicGVybWlzc2lvbnMiLCJpc05hdmlnYXRvck1lZGlhRGV2aWNlc1N1cHBvcnRlZCIsIm1lZGlhRGV2aWNlcyIsImdldFBlcm1pc3Npb24iLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJyZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwicGVybWlzc2lvbk5hbWUiLCJ3cmFwIiwiX2NvbnRleHQyIiwicHJldiIsIm5leHQiLCJhYnJ1cHQiLCJQcm9taXNlIiwiX3JlZjIiLCJfY2FsbGVlIiwicmVzb2x2ZSIsInJlamVjdCIsInBlcm1pc3Npb25TdGF0dXMiLCJvbkNoYW5nZSIsIl9jb250ZXh0IiwiRE9NRXhjZXB0aW9uIiwicXVlcnkiLCJuYW1lIiwic2VudCIsImV2ZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlc29sdmVPclJlamVjdEJhc2VkT25TdGF0ZSIsInRhcmdldCIsInN0YXRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInQwIiwic3RvcCIsIl94MiIsIl94MyIsImFwcGx5IiwidGhpcyIsImFyZ3VtZW50cyIsIl9jYWxsZWUyIiwiX3giLCJnZXRVc2VyTWVkaWFTdHJlYW0iLCJtZWRpYVN0cmVhbUNvbnN0cmFpbnRzIiwiX3lpZWxkJFByb21pc2UkYWxsIiwiX3lpZWxkJFByb21pc2UkYWxsMiIsInN0cmVhbSIsInQxIiwiZ2V0VXNlck1lZGlhIiwidDIiLCJ0MyIsImFsbCIsImNhbGwiLCJfc2xpY2VkVG9BcnJheSIsInQ0IiwiX3g0Il0sIm1hcHBpbmdzIjoiQUFJQSxJQUFBQSxFQUFlLFdBQUEsUUFBUUMsVUFBVUMsYUNBakNDLEVBQWUsV0FBQSxRQUFRRixVQUFVRywweENDR2pDLElBQUFDLEVBQUEsV0FBQSxJQUFBQyxFQUFBQyxFQUFBQyxtQkFBQUMsTUFBZSxXQUFPQyxHQUFQLE9BQUFGLG1CQUFBRyxNQUFBLFNBQUFDLEdBQUEsT0FBQSxPQUFBQSxFQUFBQyxLQUFBRCxFQUFBRSxNQUFBLEtBQUEsRUFBQSxPQUFBRixFQUFBRyxPQUFBLFNBQ1AsSUFBSUMsUUFBSixXQUFZLElBQUFDLEVBQUFWLEVBQUFDLG1CQUFBQyxNQUFBLFNBQUFTLEVBQU9DLEVBQVNDLEdBQWhCLElBQUFDLEVBQUFDLEVBQUEsT0FBQWQsbUJBQUFHLE1BQUEsU0FBQVksR0FBQSxPQUFBLE9BQUFBLEVBQUFWLEtBQUFVLEVBQUFULE1BQUEsS0FBQSxFQUFBLE9BQ2JkLEtBQ0pvQixFQUFPLElBQUlJLGFBQWEsMkNBQTRDLHNCQUZuREQsRUFBQVYsS0FBQSxFQUFBVSxFQUFBVCxLQUFBLEVBTWNiLFVBQVVDLFlBQVl1QixNQUFNLENBQUVDLEtBQU1oQixJQU5sRCxLQUFBLEVBTVhXLEVBTldFLEVBQUFJLEtBT1hMLEVBQVcsU0FBWEEsRUFBWU0sR0FDakJQLEVBQWlCUSxvQkFBb0IsU0FBVVAsR0FDL0NRLEVBQTRCRixFQUFNRyxPQUFPQyxNQUFPYixFQUFTQyxJQUUxREMsRUFBaUJZLGlCQUFpQixTQUFVWCxHQUM1Q1EsRUFBNEJULEVBQWlCVyxNQUFPYixFQUFTQyxHQVo1Q0csRUFBQVQs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
1
+ //#region src/isNavigatorPermissionsSupported.js
2
+ var e = () => !!navigator.permissions, t = () => !!navigator.mediaDevices, n = async (t) => new Promise(async (n, i) => {
3
+ e() || i(new DOMException("Navigator API: permissions not supported", "NOT_SUPPORTED_ERR"));
4
+ try {
5
+ let e = await navigator.permissions.query({ name: t }), a = (t) => {
6
+ e.removeEventListener("change", a), r(t.target.state, n, i);
7
+ };
8
+ e.addEventListener("change", a), r(e.state, n, i);
9
+ } catch (e) {
10
+ i(e);
11
+ }
12
+ }), r = (e, t, n) => {
13
+ switch (e) {
14
+ case "denied":
15
+ n(new DOMException("Permission denied", "NOT_ALLOWED_ERR"));
16
+ break;
17
+ default: t(e);
18
+ }
19
+ }, i = async (r, i) => new Promise(async (a, o) => {
20
+ (!e() || !t()) && o(new DOMException("Navigator API: permissions or Navigator API: mediaDevices not supported", "NOT_SUPPORTED_ERR"));
21
+ try {
22
+ let [, e] = await Promise.all([await n(r), await navigator.mediaDevices.getUserMedia(i)]);
23
+ a(e);
24
+ } catch (e) {
25
+ o(e);
26
+ }
27
+ });
28
+ //#endregion
29
+ export { n as getPermission, i as getUserMediaStream, t as isNavigatorMediaDevicesSupported, e as isNavigatorPermissionsSupported };
30
+
31
+ //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","names":["isNavigatorPermissionsSupported","isNavigatorPermissionsSupported","isNavigatorMediaDevicesSupported","getPermission"],"sources":["../src/isNavigatorPermissionsSupported.js","../src/isNavigatorMediaDevicesSupported.js","../src/getPermission.js","../src/getUserMediaStream.js"],"sourcesContent":["/**\n * Check whether Navigator API: permissions is supported by the current browser\n * @returns {boolean}\n */\nexport default () => !!navigator.permissions\n","/**\n * Check whether Navigator API: mediaDevices is supported by the current browser\n * @returns {boolean}\n */\nexport default () => !!navigator.mediaDevices\n","import isNavigatorPermissionsSupported from './isNavigatorPermissionsSupported'\n\n/**\n * Returns a promise resolved when the permission is granted by the user\n * @param permissionName Name of the permission. @see https://w3c.github.io/permissions/#enumdef-permissionname\n * @returns {Promise}\n */\nexport default async (permissionName) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\tif (!isNavigatorPermissionsSupported()) {\n\t\t\treject(new DOMException('Navigator API: permissions not supported', 'NOT_SUPPORTED_ERR'))\n\t\t}\n\n\t\ttry {\n\t\t\tconst permissionStatus = await navigator.permissions.query({ name: permissionName })\n\t\t\tconst onChange = (event) => {\n\t\t\t\tpermissionStatus.removeEventListener('change', onChange)\n\t\t\t\tresolveOrRejectBasedOnState(event.target.state, resolve, reject)\n\t\t\t}\n\t\t\tpermissionStatus.addEventListener('change', onChange)\n\t\t\tresolveOrRejectBasedOnState(permissionStatus.state, resolve, reject)\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n\nconst resolveOrRejectBasedOnState = (state, resolve, reject) => {\n\tswitch (state) {\n\t\tcase 'denied':\n\t\t\treject(new DOMException('Permission denied', 'NOT_ALLOWED_ERR'))\n\t\t\tbreak\n\t\tdefault:\n\t\t\tresolve(state)\n\t}\n}\n","import isNavigatorPermissionsSupported from './isNavigatorPermissionsSupported'\nimport isNavigatorMediaDevicesSupported from './isNavigatorMediaDevicesSupported'\nimport getPermission from './getPermission'\n\n/**\n * Returns a promise resolved when the permission is granted by the user and the stream is retrieved\n * @param permissionName Name of the permission. @see https://w3c.github.io/permissions/#enumdef-permissionname\n * @param mediaStreamConstraints Constraints object. @see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints\n * @returns {Promise}\n */\nexport default async (permissionName, mediaStreamConstraints) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\tif (!isNavigatorPermissionsSupported() || !isNavigatorMediaDevicesSupported()) {\n\t\t\treject(\n\t\t\t\tnew DOMException(\n\t\t\t\t\t'Navigator API: permissions or Navigator API: mediaDevices not supported',\n\t\t\t\t\t'NOT_SUPPORTED_ERR'\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\n\t\ttry {\n\t\t\tconst [, stream] = await Promise.all([\n\t\t\t\tawait getPermission(permissionName),\n\t\t\t\tawait navigator.mediaDevices.getUserMedia(mediaStreamConstraints),\n\t\t\t])\n\t\t\tresolve(stream)\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n"],"mappings":";AAIA,IAAA,UAAqB,CAAC,CAAC,UAAU,aCAjC,UAAqB,CAAC,CAAC,UAAU,cCGjC,IAAe,OAAO,MACd,IAAI,QAAQ,OAAO,GAAS,MAAW;CAC7C,AAAKA,GAAiC,IACrC,EAAO,IAAI,aAAa,4CAA4C,oBAAoB,CAAC;CAG1F,IAAI;EACH,IAAM,IAAmB,MAAM,UAAU,YAAY,MAAM,EAAE,MAAM,GAAgB,CAAC,EAC9E,KAAY,MAAU;GAE3B,AADA,EAAiB,oBAAoB,UAAU,EAAS,EACxD,EAA4B,EAAM,OAAO,OAAO,GAAS,EAAO;;EAGjE,AADA,EAAiB,iBAAiB,UAAU,EAAS,EACrD,EAA4B,EAAiB,OAAO,GAAS,EAAO;UAC5D,GAAO;EACf,EAAO,EAAM;;EAEb,EAGG,KAA+B,GAAO,GAAS,MAAW;CAC/D,QAAQ,GAAR;EACC,KAAK;GACJ,EAAO,IAAI,aAAa,qBAAqB,kBAAkB,CAAC;GAChE;EACD,SACC,EAAQ,EAAM;;GCvBjB,IAAe,OAAO,GAAgB,MAC9B,IAAI,QAAQ,OAAO,GAAS,MAAW;CAC7C,CAAI,CAACC,GAAiC,IAAI,CAACC,GAAkC,KAC5E,EACC,IAAI,aACH,2EACA,oBACA,CACD;CAGF,IAAI;EACH,IAAM,GAAG,KAAU,MAAM,QAAQ,IAAI,CACpC,MAAMC,EAAc,EAAe,EACnC,MAAM,UAAU,aAAa,aAAa,EAAuB,CACjE,CAAC;EACF,EAAQ,EAAO;UACP,GAAO;EACf,EAAO,EAAM;;EAEb"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=function(){return!!navigator.permissions},r=function(){return!!navigator.mediaDevices};function t(e,r,t,n,a,i,o){try{var u=e[i](o),s=u.value}catch(e){return void t(e)}u.done?r(s):Promise.resolve(s).then(n,a)}function n(e){return function(){var r=this,n=arguments;return new Promise((function(a,i){var o=e.apply(r,n);function u(e){t(o,a,i,u,s,"next",e)}function s(e){t(o,a,i,u,s,"throw",e)}u(void 0)}))}}function a(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var n,a,i=[],o=!0,u=!1;try{for(t=t.call(e);!(o=(n=t.next()).done)&&(i.push(n.value),!r||i.length!==r);o=!0);}catch(e){u=!0,a=e}finally{try{o||null==t.return||t.return()}finally{if(u)throw a}}return i}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return i(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return i(e,r)}(e,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 i(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var o=function(){var r=n(regeneratorRuntime.mark((function r(t){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.abrupt("return",new Promise(function(){var r=n(regeneratorRuntime.mark((function r(n,a){var i,o;return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return e()||a(new DOMException("Navigator API: permissions not supported","NOT_SUPPORTED_ERR")),r.prev=1,r.next=4,navigator.permissions.query({name:t});case 4:i=r.sent,o=function e(r){i.removeEventListener("change",e),u(r.target.state,n,a)},i.addEventListener("change",o),u(i.state,n,a),r.next=13;break;case 10:r.prev=10,r.t0=r.catch(1),a(r.t0);case 13:case"end":return r.stop()}}),r,null,[[1,10]])})));return function(e,t){return r.apply(this,arguments)}}()));case 1:case"end":return r.stop()}}),r)})));return function(e){return r.apply(this,arguments)}}(),u=function(e,r,t){switch(e){case"denied":t(new DOMException("Permission denied","NOT_ALLOWED_ERR"));break;default:r(e)}},s=function(){var t=n(regeneratorRuntime.mark((function t(i,u){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise(function(){var t=n(regeneratorRuntime.mark((function t(n,s){var c,p,f;return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e()&&r()||s(new DOMException("Navigator API: permissions or Navigator API: mediaDevices not supported","NOT_SUPPORTED_ERR")),t.prev=1,t.t0=Promise,t.next=5,o(i);case 5:return t.t1=t.sent,t.next=8,navigator.mediaDevices.getUserMedia(u);case 8:return t.t2=t.sent,t.t3=[t.t1,t.t2],t.next=12,t.t0.all.call(t.t0,t.t3);case 12:c=t.sent,p=a(c,2),f=p[1],n(f),t.next=21;break;case 18:t.prev=18,t.t4=t.catch(1),s(t.t4);case 21:case"end":return t.stop()}}),t,null,[[1,18]])})));return function(e,r){return t.apply(this,arguments)}}()));case 1:case"end":return t.stop()}}),t)})));return function(e,r){return t.apply(this,arguments)}}();exports.getPermission=o,exports.getUserMediaStream=s,exports.isNavigatorMediaDevicesSupported=r,exports.isNavigatorPermissionsSupported=e;
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9pc05hdmlnYXRvclBlcm1pc3Npb25zU3VwcG9ydGVkLmpzIiwiLi4vc3JjL2lzTmF2aWdhdG9yTWVkaWFEZXZpY2VzU3VwcG9ydGVkLmpzIiwiLi4vc3JjL2dldFBlcm1pc3Npb24uanMiLCIuLi9zcmMvZ2V0VXNlck1lZGlhU3RyZWFtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2sgd2hldGhlciBOYXZpZ2F0b3IgQVBJOiBwZXJtaXNzaW9ucyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGN1cnJlbnQgYnJvd3NlclxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBkZWZhdWx0ICgpID0+ICEhbmF2aWdhdG9yLnBlcm1pc3Npb25zXG4iLCIvKipcbiAqIENoZWNrIHdoZXRoZXIgTmF2aWdhdG9yIEFQSTogbWVkaWFEZXZpY2VzIGlzIHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBicm93c2VyXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgKCkgPT4gISFuYXZpZ2F0b3IubWVkaWFEZXZpY2VzXG4iLCJpbXBvcnQgaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZCBmcm9tICcuL2lzTmF2aWdhdG9yUGVybWlzc2lvbnNTdXBwb3J0ZWQnXG5cbi8qKlxuICogUmV0dXJucyBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiB0aGUgcGVybWlzc2lvbiBpcyBncmFudGVkIGJ5IHRoZSB1c2VyXG4gKiBAcGFyYW0gcGVybWlzc2lvbk5hbWUgICAgICAgICAgICBOYW1lIG9mIHRoZSBwZXJtaXNzaW9uLiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wZXJtaXNzaW9ucy8jZW51bWRlZi1wZXJtaXNzaW9ubmFtZVxuICogQHJldHVybnMge1Byb21pc2V9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIChwZXJtaXNzaW9uTmFtZSkgPT4ge1xuXHRyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdGlmICghaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZCgpKSB7XG5cdFx0XHRyZWplY3QobmV3IERPTUV4Y2VwdGlvbignTmF2aWdhdG9yIEFQSTogcGVybWlzc2lvbnMgbm90IHN1cHBvcnRlZCcsICdOT1RfU1VQUE9SVEVEX0VSUicpKVxuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBwZXJtaXNzaW9uU3RhdHVzID0gYXdhaXQgbmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHsgbmFtZTogcGVybWlzc2lvbk5hbWUgfSlcblx0XHRcdGNvbnN0IG9uQ2hhbmdlID0gKGV2ZW50KSA9PiB7XG5cdFx0XHRcdHBlcm1pc3Npb25TdGF0dXMucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpXG5cdFx0XHRcdHJlc29sdmVPclJlamVjdEJhc2VkT25TdGF0ZShldmVudC50YXJnZXQuc3RhdGUsIHJlc29sdmUsIHJlamVjdClcblx0XHRcdH1cblx0XHRcdHBlcm1pc3Npb25TdGF0dXMuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25DaGFuZ2UpXG5cdFx0XHRyZXNvbHZlT3JSZWplY3RCYXNlZE9uU3RhdGUocGVybWlzc2lvblN0YXR1cy5zdGF0ZSwgcmVzb2x2ZSwgcmVqZWN0KVxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRyZWplY3QoZXJyb3IpXG5cdFx0fVxuXHR9KVxufVxuXG5jb25zdCByZXNvbHZlT3JSZWplY3RCYXNlZE9uU3RhdGUgPSAoc3RhdGUsIHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRzd2l0Y2ggKHN0YXRlKSB7XG5cdFx0Y2FzZSAnZGVuaWVkJzpcblx0XHRcdHJlamVjdChuZXcgRE9NRXhjZXB0aW9uKCdQZXJtaXNzaW9uIGRlbmllZCcsICdOT1RfQUxMT1dFRF9FUlInKSlcblx0XHRcdGJyZWFrXG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJlc29sdmUoc3RhdGUpXG5cdH1cbn1cbiIsImltcG9ydCBpc05hdmlnYXRvclBlcm1pc3Npb25zU3VwcG9ydGVkIGZyb20gJy4vaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZCdcbmltcG9ydCBpc05hdmlnYXRvck1lZGlhRGV2aWNlc1N1cHBvcnRlZCBmcm9tICcuL2lzTmF2aWdhdG9yTWVkaWFEZXZpY2VzU3VwcG9ydGVkJ1xuaW1wb3J0IGdldFBlcm1pc3Npb24gZnJvbSAnLi9nZXRQZXJtaXNzaW9uJ1xuXG4vKipcbiAqIFJldHVybnMgYSBwcm9taXNlIHJlc29sdmVkIHdoZW4gdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRlZCBieSB0aGUgdXNlciBhbmQgdGhlIHN0cmVhbSBpcyByZXRyaWV2ZWRcbiAqIEBwYXJhbSBwZXJtaXNzaW9uTmFtZSAgICAgICAgICAgIE5hbWUgb2YgdGhlIHBlcm1pc3Npb24uIEBzZWUgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Blcm1pc3Npb25zLyNlbnVtZGVmLXBlcm1pc3Npb25uYW1lXG4gKiBAcGFyYW0gbWVkaWFTdHJlYW1Db25zdHJhaW50cyAgICBDb25zdHJhaW50cyBvYmplY3QuIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL01lZGlhU3RyZWFtQ29uc3RyYWludHNcbiAqIEByZXR1cm5zIHtQcm9taXNlfVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyAocGVybWlzc2lvbk5hbWUsIG1lZGlhU3RyZWFtQ29uc3RyYWludHMpID0+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRpZiAoIWlzTmF2aWdhdG9yUGVybWlzc2lvbnNTdXBwb3J0ZWQoKSB8fCAhaXNOYXZpZ2F0b3JNZWRpYURldmljZXNTdXBwb3J0ZWQoKSkge1xuXHRcdFx0cmVqZWN0KFxuXHRcdFx0XHRuZXcgRE9NRXhjZXB0aW9uKFxuXHRcdFx0XHRcdCdOYXZpZ2F0b3IgQVBJOiBwZXJtaXNzaW9ucyBvciBOYXZpZ2F0b3IgQVBJOiBtZWRpYURldmljZXMgbm90IHN1cHBvcnRlZCcsXG5cdFx0XHRcdFx0J05PVF9TVVBQT1JURURfRVJSJ1xuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IFssIHN0cmVhbV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG5cdFx0XHRcdGF3YWl0IGdldFBlcm1pc3Npb24ocGVybWlzc2lvbk5hbWUpLFxuXHRcdFx0XHRhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShtZWRpYVN0cmVhbUNvbnN0cmFpbnRzKSxcblx0XHRcdF0pXG5cdFx0XHRyZXNvbHZlKHN0cmVhbSlcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0cmVqZWN0KGVycm9yKVxuXHRcdH1cblx0fSlcbn1cbiJdLCJuYW1lcyI6WyJpc05hdmlnYXRvclBlcm1pc3Npb25zU3VwcG9ydGVkIiwibmF2aWdhdG9yIiwicGVybWlzc2lvbnMiLCJpc05hdmlnYXRvck1lZGlhRGV2aWNlc1N1cHBvcnRlZCIsIm1lZGlhRGV2aWNlcyIsImdldFBlcm1pc3Npb24iLCJfcmVmIiwiX2FzeW5jVG9HZW5lcmF0b3IiLCJyZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwicGVybWlzc2lvbk5hbWUiLCJ3cmFwIiwiX2NvbnRleHQyIiwicHJldiIsIm5leHQiLCJhYnJ1cHQiLCJQcm9taXNlIiwiX3JlZjIiLCJfY2FsbGVlIiwicmVzb2x2ZSIsInJlamVjdCIsInBlcm1pc3Npb25TdGF0dXMiLCJvbkNoYW5nZSIsIl9jb250ZXh0IiwiRE9NRXhjZXB0aW9uIiwicXVlcnkiLCJuYW1lIiwic2VudCIsImV2ZW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlc29sdmVPclJlamVjdEJhc2VkT25TdGF0ZSIsInRhcmdldCIsInN0YXRlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInQwIiwic3RvcCIsIl94MiIsIl94MyIsImFwcGx5IiwidGhpcyIsImFyZ3VtZW50cyIsIl9jYWxsZWUyIiwiX3giLCJnZXRVc2VyTWVkaWFTdHJlYW0iLCJtZWRpYVN0cmVhbUNvbnN0cmFpbnRzIiwiX3lpZWxkJFByb21pc2UkYWxsIiwiX3lpZWxkJFByb21pc2UkYWxsMiIsInN0cmVhbSIsInQxIiwiZ2V0VXNlck1lZGlhIiwidDIiLCJ0MyIsImFsbCIsImNhbGwiLCJfc2xpY2VkVG9BcnJheSIsInQ0IiwiX3g0Il0sIm1hcHBpbmdzIjoib0VBSUEsSUFBQUEsRUFBZSxXQUFBLFFBQVFDLFVBQVVDLGFDQWpDQyxFQUFlLFdBQUEsUUFBUUYsVUFBVUcsMHhDQ0dqQyxJQUFBQyxFQUFBLFdBQUEsSUFBQUMsRUFBQUMsRUFBQUMsbUJBQUFDLE1BQWUsV0FBT0MsR0FBUCxPQUFBRixtQkFBQUcsTUFBQSxTQUFBQyxHQUFBLE9BQUEsT0FBQUEsRUFBQUMsS0FBQUQsRUFBQUUsTUFBQSxLQUFBLEVBQUEsT0FBQUYsRUFBQUcsT0FBQSxTQUNQLElBQUlDLFFBQUosV0FBWSxJQUFBQyxFQUFBVixFQUFBQyxtQkFBQUMsTUFBQSxTQUFBUyxFQUFPQyxFQUFTQyxHQUFoQixJQUFBQyxFQUFBQyxFQUFBLE9BQUFkLG1CQUFBRyxNQUFBLFNBQUFZLEdBQUEsT0FBQSxPQUFBQSxFQUFBVixLQUFBVSxFQUFBVCxNQUFBLEtBQUEsRUFBQSxPQUNiZCxLQUNKb0IsRUFBTyxJQUFJSSxhQUFhLDJDQUE0QyxzQkFGbkRELEVBQUFWLEtBQUEsRUFBQVUsRUFBQVQsS0FBQSxFQU1jYixVQUFVQyxZQUFZdUIsTUFBTSxDQUFFQyxLQUFNaEIsSUFObEQsS0FBQSxFQU1YVyxFQU5XRSxFQUFBSSxLQU9YTCxFQUFXLFNBQVhBLEVBQVlNLEdBQ2pCUCxFQUFpQlEsb0JBQW9CLFNBQVVQLEdBQy9DUSxFQUE0QkYsRUFBTUcsT0FBT0MsTUFBT2IsRUFBU0MsSUFFMURDLEVBQWlCWSxpQkFBaUIsU0FBVVgsR0FDNUNRLEVBQTRCVCxFQUFpQlcsTUFBT2IsRUFBU0MsR0FaNUNHLEVBQUFULEtB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
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=()=>!!navigator.permissions,t=()=>!!navigator.mediaDevices,n=async t=>new Promise(async(n,i)=>{e()||i(new DOMException(`Navigator API: permissions not supported`,`NOT_SUPPORTED_ERR`));try{let e=await navigator.permissions.query({name:t}),a=t=>{e.removeEventListener(`change`,a),r(t.target.state,n,i)};e.addEventListener(`change`,a),r(e.state,n,i)}catch(e){i(e)}}),r=(e,t,n)=>{switch(e){case`denied`:n(new DOMException(`Permission denied`,`NOT_ALLOWED_ERR`));break;default:t(e)}},i=async(r,i)=>new Promise(async(a,o)=>{(!e()||!t())&&o(new DOMException(`Navigator API: permissions or Navigator API: mediaDevices not supported`,`NOT_SUPPORTED_ERR`));try{let[,e]=await Promise.all([await n(r),await navigator.mediaDevices.getUserMedia(i)]);a(e)}catch(e){o(e)}});exports.getPermission=n,exports.getUserMediaStream=i,exports.isNavigatorMediaDevicesSupported=t,exports.isNavigatorPermissionsSupported=e;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["isNavigatorPermissionsSupported","isNavigatorPermissionsSupported","isNavigatorMediaDevicesSupported","getPermission"],"sources":["../src/isNavigatorPermissionsSupported.js","../src/isNavigatorMediaDevicesSupported.js","../src/getPermission.js","../src/getUserMediaStream.js"],"sourcesContent":["/**\n * Check whether Navigator API: permissions is supported by the current browser\n * @returns {boolean}\n */\nexport default () => !!navigator.permissions\n","/**\n * Check whether Navigator API: mediaDevices is supported by the current browser\n * @returns {boolean}\n */\nexport default () => !!navigator.mediaDevices\n","import isNavigatorPermissionsSupported from './isNavigatorPermissionsSupported'\n\n/**\n * Returns a promise resolved when the permission is granted by the user\n * @param permissionName Name of the permission. @see https://w3c.github.io/permissions/#enumdef-permissionname\n * @returns {Promise}\n */\nexport default async (permissionName) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\tif (!isNavigatorPermissionsSupported()) {\n\t\t\treject(new DOMException('Navigator API: permissions not supported', 'NOT_SUPPORTED_ERR'))\n\t\t}\n\n\t\ttry {\n\t\t\tconst permissionStatus = await navigator.permissions.query({ name: permissionName })\n\t\t\tconst onChange = (event) => {\n\t\t\t\tpermissionStatus.removeEventListener('change', onChange)\n\t\t\t\tresolveOrRejectBasedOnState(event.target.state, resolve, reject)\n\t\t\t}\n\t\t\tpermissionStatus.addEventListener('change', onChange)\n\t\t\tresolveOrRejectBasedOnState(permissionStatus.state, resolve, reject)\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n\nconst resolveOrRejectBasedOnState = (state, resolve, reject) => {\n\tswitch (state) {\n\t\tcase 'denied':\n\t\t\treject(new DOMException('Permission denied', 'NOT_ALLOWED_ERR'))\n\t\t\tbreak\n\t\tdefault:\n\t\t\tresolve(state)\n\t}\n}\n","import isNavigatorPermissionsSupported from './isNavigatorPermissionsSupported'\nimport isNavigatorMediaDevicesSupported from './isNavigatorMediaDevicesSupported'\nimport getPermission from './getPermission'\n\n/**\n * Returns a promise resolved when the permission is granted by the user and the stream is retrieved\n * @param permissionName Name of the permission. @see https://w3c.github.io/permissions/#enumdef-permissionname\n * @param mediaStreamConstraints Constraints object. @see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints\n * @returns {Promise}\n */\nexport default async (permissionName, mediaStreamConstraints) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\tif (!isNavigatorPermissionsSupported() || !isNavigatorMediaDevicesSupported()) {\n\t\t\treject(\n\t\t\t\tnew DOMException(\n\t\t\t\t\t'Navigator API: permissions or Navigator API: mediaDevices not supported',\n\t\t\t\t\t'NOT_SUPPORTED_ERR'\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\n\t\ttry {\n\t\t\tconst [, stream] = await Promise.all([\n\t\t\t\tawait getPermission(permissionName),\n\t\t\t\tawait navigator.mediaDevices.getUserMedia(mediaStreamConstraints),\n\t\t\t])\n\t\t\tresolve(stream)\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n"],"mappings":"mEAIA,IAAA,MAAqB,CAAC,CAAC,UAAU,YCAjC,MAAqB,CAAC,CAAC,UAAU,aCGjC,EAAe,KAAO,IACd,IAAI,QAAQ,MAAO,EAAS,IAAW,CACxCA,GAAiC,EACrC,EAAO,IAAI,aAAa,2CAA4C,oBAAoB,CAAC,CAG1F,GAAI,CACH,IAAM,EAAmB,MAAM,UAAU,YAAY,MAAM,CAAE,KAAM,EAAgB,CAAC,CAC9E,EAAY,GAAU,CAC3B,EAAiB,oBAAoB,SAAU,EAAS,CACxD,EAA4B,EAAM,OAAO,MAAO,EAAS,EAAO,EAEjE,EAAiB,iBAAiB,SAAU,EAAS,CACrD,EAA4B,EAAiB,MAAO,EAAS,EAAO,OAC5D,EAAO,CACf,EAAO,EAAM,GAEb,CAGG,GAA+B,EAAO,EAAS,IAAW,CAC/D,OAAQ,EAAR,CACC,IAAK,SACJ,EAAO,IAAI,aAAa,oBAAqB,kBAAkB,CAAC,CAChE,MACD,QACC,EAAQ,EAAM,GCvBjB,EAAe,MAAO,EAAgB,IAC9B,IAAI,QAAQ,MAAO,EAAS,IAAW,EACzC,CAACC,GAAiC,EAAI,CAACC,GAAkC,GAC5E,EACC,IAAI,aACH,0EACA,oBACA,CACD,CAGF,GAAI,CACH,GAAM,EAAG,GAAU,MAAM,QAAQ,IAAI,CACpC,MAAMC,EAAc,EAAe,CACnC,MAAM,UAAU,aAAa,aAAa,EAAuB,CACjE,CAAC,CACF,EAAQ,EAAO,OACP,EAAO,CACf,EAAO,EAAM,GAEb"}
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["user-permissions-utils"]={})}(this,(function(e){"use strict";var t=function(){return!!navigator.permissions},r=function(){return!!navigator.mediaDevices};function n(e,t,r,n,i,o,a){try{var u=e[o](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,i)}function i(e){return function(){var t=this,r=arguments;return new Promise((function(i,o){var a=e.apply(t,r);function u(e){n(a,i,o,u,s,"next",e)}function s(e){n(a,i,o,u,s,"throw",e)}u(void 0)}))}}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,i,o=[],a=!0,u=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){u=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(u)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return a(e,t)}(e,t)||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 a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var u=function(){var e=i(regeneratorRuntime.mark((function e(r){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=i(regeneratorRuntime.mark((function e(n,i){var o,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t()||i(new DOMException("Navigator API: permissions not supported","NOT_SUPPORTED_ERR")),e.prev=1,e.next=4,navigator.permissions.query({name:r});case 4:o=e.sent,a=function e(t){o.removeEventListener("change",e),s(t.target.state,n,i)},o.addEventListener("change",a),s(o.state,n,i),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),i(e.t0);case 13:case"end":return e.stop()}}),e,null,[[1,10]])})));return function(t,r){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),s=function(e,t,r){switch(e){case"denied":r(new DOMException("Permission denied","NOT_ALLOWED_ERR"));break;default:t(e)}},c=function(){var e=i(regeneratorRuntime.mark((function e(n,a){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(){var e=i(regeneratorRuntime.mark((function e(i,s){var c,f,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t()&&r()||s(new DOMException("Navigator API: permissions or Navigator API: mediaDevices not supported","NOT_SUPPORTED_ERR")),e.prev=1,e.t0=Promise,e.next=5,u(n);case 5:return e.t1=e.sent,e.next=8,navigator.mediaDevices.getUserMedia(a);case 8:return e.t2=e.sent,e.t3=[e.t1,e.t2],e.next=12,e.t0.all.call(e.t0,e.t3);case 12:c=e.sent,f=o(c,2),p=f[1],i(p),e.next=21;break;case 18:e.prev=18,e.t4=e.catch(1),s(e.t4);case 21:case"end":return e.stop()}}),e,null,[[1,18]])})));return function(t,r){return e.apply(this,arguments)}}()));case 1:case"end":return e.stop()}}),e)})));return function(t,r){return e.apply(this,arguments)}}();e.getPermission=u,e.getUserMediaStream=c,e.isNavigatorMediaDevicesSupported=r,e.isNavigatorPermissionsSupported=t,Object.defineProperty(e,"__esModule",{value:!0})}));
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgudW1kLmpzIiwic291cmNlcyI6WyIuLi9zcmMvaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZC5qcyIsIi4uL3NyYy9pc05hdmlnYXRvck1lZGlhRGV2aWNlc1N1cHBvcnRlZC5qcyIsIi4uL3NyYy9nZXRQZXJtaXNzaW9uLmpzIiwiLi4vc3JjL2dldFVzZXJNZWRpYVN0cmVhbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHdoZXRoZXIgTmF2aWdhdG9yIEFQSTogcGVybWlzc2lvbnMgaXMgc3VwcG9ydGVkIGJ5IHRoZSBjdXJyZW50IGJyb3dzZXJcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5leHBvcnQgZGVmYXVsdCAoKSA9PiAhIW5hdmlnYXRvci5wZXJtaXNzaW9uc1xuIiwiLyoqXG4gKiBDaGVjayB3aGV0aGVyIE5hdmlnYXRvciBBUEk6IG1lZGlhRGV2aWNlcyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGN1cnJlbnQgYnJvd3NlclxuICogQHJldHVybnMge2Jvb2xlYW59XG4gKi9cbmV4cG9ydCBkZWZhdWx0ICgpID0+ICEhbmF2aWdhdG9yLm1lZGlhRGV2aWNlc1xuIiwiaW1wb3J0IGlzTmF2aWdhdG9yUGVybWlzc2lvbnNTdXBwb3J0ZWQgZnJvbSAnLi9pc05hdmlnYXRvclBlcm1pc3Npb25zU3VwcG9ydGVkJ1xuXG4vKipcbiAqIFJldHVybnMgYSBwcm9taXNlIHJlc29sdmVkIHdoZW4gdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRlZCBieSB0aGUgdXNlclxuICogQHBhcmFtIHBlcm1pc3Npb25OYW1lICAgICAgICAgICAgTmFtZSBvZiB0aGUgcGVybWlzc2lvbi4gQHNlZSBodHRwczovL3czYy5naXRodWIuaW8vcGVybWlzc2lvbnMvI2VudW1kZWYtcGVybWlzc2lvbm5hbWVcbiAqIEByZXR1cm5zIHtQcm9taXNlfVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyAocGVybWlzc2lvbk5hbWUpID0+IHtcblx0cmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRpZiAoIWlzTmF2aWdhdG9yUGVybWlzc2lvbnNTdXBwb3J0ZWQoKSkge1xuXHRcdFx0cmVqZWN0KG5ldyBET01FeGNlcHRpb24oJ05hdmlnYXRvciBBUEk6IHBlcm1pc3Npb25zIG5vdCBzdXBwb3J0ZWQnLCAnTk9UX1NVUFBPUlRFRF9FUlInKSlcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcGVybWlzc2lvblN0YXR1cyA9IGF3YWl0IG5hdmlnYXRvci5wZXJtaXNzaW9ucy5xdWVyeSh7IG5hbWU6IHBlcm1pc3Npb25OYW1lIH0pXG5cdFx0XHRjb25zdCBvbkNoYW5nZSA9IChldmVudCkgPT4ge1xuXHRcdFx0XHRwZXJtaXNzaW9uU3RhdHVzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKVxuXHRcdFx0XHRyZXNvbHZlT3JSZWplY3RCYXNlZE9uU3RhdGUoZXZlbnQudGFyZ2V0LnN0YXRlLCByZXNvbHZlLCByZWplY3QpXG5cdFx0XHR9XG5cdFx0XHRwZXJtaXNzaW9uU3RhdHVzLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKVxuXHRcdFx0cmVzb2x2ZU9yUmVqZWN0QmFzZWRPblN0YXRlKHBlcm1pc3Npb25TdGF0dXMuc3RhdGUsIHJlc29sdmUsIHJlamVjdClcblx0XHR9IGNhdGNoIChlcnJvcikge1xuXHRcdFx0cmVqZWN0KGVycm9yKVxuXHRcdH1cblx0fSlcbn1cblxuY29uc3QgcmVzb2x2ZU9yUmVqZWN0QmFzZWRPblN0YXRlID0gKHN0YXRlLCByZXNvbHZlLCByZWplY3QpID0+IHtcblx0c3dpdGNoIChzdGF0ZSkge1xuXHRcdGNhc2UgJ2RlbmllZCc6XG5cdFx0XHRyZWplY3QobmV3IERPTUV4Y2VwdGlvbignUGVybWlzc2lvbiBkZW5pZWQnLCAnTk9UX0FMTE9XRURfRVJSJykpXG5cdFx0XHRicmVha1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRyZXNvbHZlKHN0YXRlKVxuXHR9XG59XG4iLCJpbXBvcnQgaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZCBmcm9tICcuL2lzTmF2aWdhdG9yUGVybWlzc2lvbnNTdXBwb3J0ZWQnXG5pbXBvcnQgaXNOYXZpZ2F0b3JNZWRpYURldmljZXNTdXBwb3J0ZWQgZnJvbSAnLi9pc05hdmlnYXRvck1lZGlhRGV2aWNlc1N1cHBvcnRlZCdcbmltcG9ydCBnZXRQZXJtaXNzaW9uIGZyb20gJy4vZ2V0UGVybWlzc2lvbidcblxuLyoqXG4gKiBSZXR1cm5zIGEgcHJvbWlzZSByZXNvbHZlZCB3aGVuIHRoZSBwZXJtaXNzaW9uIGlzIGdyYW50ZWQgYnkgdGhlIHVzZXIgYW5kIHRoZSBzdHJlYW0gaXMgcmV0cmlldmVkXG4gKiBAcGFyYW0gcGVybWlzc2lvbk5hbWUgICAgICAgICAgICBOYW1lIG9mIHRoZSBwZXJtaXNzaW9uLiBAc2VlIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9wZXJtaXNzaW9ucy8jZW51bWRlZi1wZXJtaXNzaW9ubmFtZVxuICogQHBhcmFtIG1lZGlhU3RyZWFtQ29uc3RyYWludHMgICAgQ29uc3RyYWludHMgb2JqZWN0LiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9NZWRpYVN0cmVhbUNvbnN0cmFpbnRzXG4gKiBAcmV0dXJucyB7UHJvbWlzZX1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKHBlcm1pc3Npb25OYW1lLCBtZWRpYVN0cmVhbUNvbnN0cmFpbnRzKSA9PiB7XG5cdHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0aWYgKCFpc05hdmlnYXRvclBlcm1pc3Npb25zU3VwcG9ydGVkKCkgfHwgIWlzTmF2aWdhdG9yTWVkaWFEZXZpY2VzU3VwcG9ydGVkKCkpIHtcblx0XHRcdHJlamVjdChcblx0XHRcdFx0bmV3IERPTUV4Y2VwdGlvbihcblx0XHRcdFx0XHQnTmF2aWdhdG9yIEFQSTogcGVybWlzc2lvbnMgb3IgTmF2aWdhdG9yIEFQSTogbWVkaWFEZXZpY2VzIG5vdCBzdXBwb3J0ZWQnLFxuXHRcdFx0XHRcdCdOT1RfU1VQUE9SVEVEX0VSUidcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBbLCBzdHJlYW1dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuXHRcdFx0XHRhd2FpdCBnZXRQZXJtaXNzaW9uKHBlcm1pc3Npb25OYW1lKSxcblx0XHRcdFx0YXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEobWVkaWFTdHJlYW1Db25zdHJhaW50cyksXG5cdFx0XHRdKVxuXHRcdFx0cmVzb2x2ZShzdHJlYW0pXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdHJlamVjdChlcnJvcilcblx0XHR9XG5cdH0pXG59XG4iXSwibmFtZXMiOlsiaXNOYXZpZ2F0b3JQZXJtaXNzaW9uc1N1cHBvcnRlZCIsIm5hdmlnYXRvciIsInBlcm1pc3Npb25zIiwiaXNOYXZpZ2F0b3JNZWRpYURldmljZXNTdXBwb3J0ZWQiLCJtZWRpYURldmljZXMiLCJnZXRQZXJtaXNzaW9uIiwiX3JlZiIsIl9hc3luY1RvR2VuZXJhdG9yIiwicmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsInBlcm1pc3Npb25OYW1lIiwid3JhcCIsIl9jb250ZXh0MiIsInByZXYiLCJuZXh0IiwiYWJydXB0IiwiUHJvbWlzZSIsIl9yZWYyIiwiX2NhbGxlZSIsInJlc29sdmUiLCJyZWplY3QiLCJwZXJtaXNzaW9uU3RhdHVzIiwib25DaGFuZ2UiLCJfY29udGV4dCIsIkRPTUV4Y2VwdGlvbiIsInF1ZXJ5IiwibmFtZSIsInNlbnQiLCJldmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZXNvbHZlT3JSZWplY3RCYXNlZE9uU3RhdGUiLCJ0YXJnZXQiLCJzdGF0ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJ0MCIsInN0b3AiLCJfeDIiLCJfeDMiLCJhcHBseSIsInRoaXMiLCJhcmd1bWVudHMiLCJfY2FsbGVlMiIsIl94IiwiZ2V0VXNlck1lZGlhU3RyZWFtIiwibWVkaWFTdHJlYW1Db25zdHJhaW50cyIsIl95aWVsZCRQcm9taXNlJGFsbCIsIl95aWVsZCRQcm9taXNlJGFsbDIiLCJzdHJlYW0iLCJ0MSIsImdldFVzZXJNZWRpYSIsInQyIiwidDMiLCJhbGwiLCJjYWxsIiwiX3NsaWNlZFRvQXJyYXkiLCJ0NCIsIl94NCJdLCJtYXBwaW5ncyI6ImlRQUlBLElBQUFBLEVBQWUsV0FBQSxRQUFRQyxVQUFVQyxhQ0FqQ0MsRUFBZSxXQUFBLFFBQVFGLFVBQVVHLDB4Q0NHakMsSUFBQUMsRUFBQSxXQUFBLElBQUFDLEVBQUFDLEVBQUFDLG1CQUFBQyxNQUFlLFdBQU9DLEdBQVAsT0FBQUYsbUJBQUFHLE1BQUEsU0FBQUMsR0FBQSxPQUFBLE9BQUFBLEVBQUFDLEtBQUFELEVBQUFFLE1BQUEsS0FBQSxFQUFBLE9BQUFGLEVBQUFHLE9BQUEsU0FDUCxJQUFJQyxRQUFKLFdBQVksSUFBQUMsRUFBQVYsRUFBQUMsbUJBQUFDLE1BQUEsU0FBQVMsRUFBT0MsRUFBU0MsR0FBaEIsSUFBQUMsRUFBQUMsRUFBQSxPQUFBZCxtQkFBQUcsTUFBQSxTQUFBWSxHQUFBLE9BQUEsT0FBQUEsRUFBQVYsS0FBQVUsRUFBQVQsTUFBQSxLQUFBLEVBQUEsT0FDYmQsS0FDSm9CLEVBQU8sSUFBSUksYUFBYSwyQ0FBNEMsc0JBRm5ERCxFQUFBVixLQUFBLEVBQUFVLEVBQUFULEtBQUEsRUFNY2IsVUFBVUMsWUFBWXVCLE1BQU0sQ0FBRUMsS0FBTWhCLElBTmxELEtBQUEsRUFNWFcsRUFOV0UsRUFBQUksS0FPWEwsRUFBVyxTQUFYQSxFQUFZTSxHQUNqQlAsRUFBaUJRLG9CQUFvQixTQUFVUCxHQUMvQ1EsRUFBNEJGLEVBQU1HLE9BQU9DLE1BQU9iLEVBQVNDLElBRTFEQyxFQUFpQlksaUJBQWlCLFNBQVVYLEdBQzVDUSxFQUE0QlQsRUFBaUJXLE1BQU9iLEVBQVNDLEdBWjVDRyxFQUFB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
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UserPermissionsUtils={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=()=>!!navigator.permissions,n=()=>!!navigator.mediaDevices,r=async e=>new Promise(async(n,r)=>{t()||r(new DOMException(`Navigator API: permissions not supported`,`NOT_SUPPORTED_ERR`));try{let t=await navigator.permissions.query({name:e}),a=e=>{t.removeEventListener(`change`,a),i(e.target.state,n,r)};t.addEventListener(`change`,a),i(t.state,n,r)}catch(e){r(e)}}),i=(e,t,n)=>{switch(e){case`denied`:n(new DOMException(`Permission denied`,`NOT_ALLOWED_ERR`));break;default:t(e)}};e.getPermission=r,e.getUserMediaStream=async(e,i)=>new Promise(async(a,o)=>{(!t()||!n())&&o(new DOMException(`Navigator API: permissions or Navigator API: mediaDevices not supported`,`NOT_SUPPORTED_ERR`));try{let[,t]=await Promise.all([await r(e),await navigator.mediaDevices.getUserMedia(i)]);a(t)}catch(e){o(e)}}),e.isNavigatorMediaDevicesSupported=n,e.isNavigatorPermissionsSupported=t});
2
+ //# sourceMappingURL=index.umd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.umd.js","names":["isNavigatorPermissionsSupported","isNavigatorPermissionsSupported","isNavigatorMediaDevicesSupported","getPermission"],"sources":["../src/isNavigatorPermissionsSupported.js","../src/isNavigatorMediaDevicesSupported.js","../src/getPermission.js","../src/getUserMediaStream.js"],"sourcesContent":["/**\n * Check whether Navigator API: permissions is supported by the current browser\n * @returns {boolean}\n */\nexport default () => !!navigator.permissions\n","/**\n * Check whether Navigator API: mediaDevices is supported by the current browser\n * @returns {boolean}\n */\nexport default () => !!navigator.mediaDevices\n","import isNavigatorPermissionsSupported from './isNavigatorPermissionsSupported'\n\n/**\n * Returns a promise resolved when the permission is granted by the user\n * @param permissionName Name of the permission. @see https://w3c.github.io/permissions/#enumdef-permissionname\n * @returns {Promise}\n */\nexport default async (permissionName) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\tif (!isNavigatorPermissionsSupported()) {\n\t\t\treject(new DOMException('Navigator API: permissions not supported', 'NOT_SUPPORTED_ERR'))\n\t\t}\n\n\t\ttry {\n\t\t\tconst permissionStatus = await navigator.permissions.query({ name: permissionName })\n\t\t\tconst onChange = (event) => {\n\t\t\t\tpermissionStatus.removeEventListener('change', onChange)\n\t\t\t\tresolveOrRejectBasedOnState(event.target.state, resolve, reject)\n\t\t\t}\n\t\t\tpermissionStatus.addEventListener('change', onChange)\n\t\t\tresolveOrRejectBasedOnState(permissionStatus.state, resolve, reject)\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n\nconst resolveOrRejectBasedOnState = (state, resolve, reject) => {\n\tswitch (state) {\n\t\tcase 'denied':\n\t\t\treject(new DOMException('Permission denied', 'NOT_ALLOWED_ERR'))\n\t\t\tbreak\n\t\tdefault:\n\t\t\tresolve(state)\n\t}\n}\n","import isNavigatorPermissionsSupported from './isNavigatorPermissionsSupported'\nimport isNavigatorMediaDevicesSupported from './isNavigatorMediaDevicesSupported'\nimport getPermission from './getPermission'\n\n/**\n * Returns a promise resolved when the permission is granted by the user and the stream is retrieved\n * @param permissionName Name of the permission. @see https://w3c.github.io/permissions/#enumdef-permissionname\n * @param mediaStreamConstraints Constraints object. @see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints\n * @returns {Promise}\n */\nexport default async (permissionName, mediaStreamConstraints) => {\n\treturn new Promise(async (resolve, reject) => {\n\t\tif (!isNavigatorPermissionsSupported() || !isNavigatorMediaDevicesSupported()) {\n\t\t\treject(\n\t\t\t\tnew DOMException(\n\t\t\t\t\t'Navigator API: permissions or Navigator API: mediaDevices not supported',\n\t\t\t\t\t'NOT_SUPPORTED_ERR'\n\t\t\t\t)\n\t\t\t)\n\t\t}\n\n\t\ttry {\n\t\t\tconst [, stream] = await Promise.all([\n\t\t\t\tawait getPermission(permissionName),\n\t\t\t\tawait navigator.mediaDevices.getUserMedia(mediaStreamConstraints),\n\t\t\t])\n\t\t\tresolve(stream)\n\t\t} catch (error) {\n\t\t\treject(error)\n\t\t}\n\t})\n}\n"],"mappings":"4RAIA,IAAA,MAAqB,CAAC,CAAC,UAAU,YCAjC,MAAqB,CAAC,CAAC,UAAU,aCGjC,EAAe,KAAO,IACd,IAAI,QAAQ,MAAO,EAAS,IAAW,CACxCA,GAAiC,EACrC,EAAO,IAAI,aAAa,2CAA4C,oBAAoB,CAAC,CAG1F,GAAI,CACH,IAAM,EAAmB,MAAM,UAAU,YAAY,MAAM,CAAE,KAAM,EAAgB,CAAC,CAC9E,EAAY,GAAU,CAC3B,EAAiB,oBAAoB,SAAU,EAAS,CACxD,EAA4B,EAAM,OAAO,MAAO,EAAS,EAAO,EAEjE,EAAiB,iBAAiB,SAAU,EAAS,CACrD,EAA4B,EAAiB,MAAO,EAAS,EAAO,OAC5D,EAAO,CACf,EAAO,EAAM,GAEb,CAGG,GAA+B,EAAO,EAAS,IAAW,CAC/D,OAAQ,EAAR,CACC,IAAK,SACJ,EAAO,IAAI,aAAa,oBAAqB,kBAAkB,CAAC,CAChE,MACD,QACC,EAAQ,EAAM,gDCvBK,EAAgB,IAC9B,IAAI,QAAQ,MAAO,EAAS,IAAW,EACzC,CAACC,GAAiC,EAAI,CAACC,GAAkC,GAC5E,EACC,IAAI,aACH,0EACA,oBACA,CACD,CAGF,GAAI,CACH,GAAM,EAAG,GAAU,MAAM,QAAQ,IAAI,CACpC,MAAMC,EAAc,EAAe,CACnC,MAAM,UAAU,aAAa,aAAa,EAAuB,CACjE,CAAC,CACF,EAAQ,EAAO,OACP,EAAO,CACf,EAAO,EAAM,GAEb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@untemps/user-permissions-utils",
3
- "version": "1.1.26",
3
+ "version": "1.1.28",
4
4
  "description": "Collection of utility functions to manage user permissions",
5
5
  "repository": "git@github.com:untemps/user-permissions-utils.git",
6
6
  "keywords": [
@@ -20,40 +20,19 @@
20
20
  "dist"
21
21
  ],
22
22
  "devDependencies": {
23
- "@babel/cli": "^7.10.1",
24
- "@babel/core": "^7.10.2",
25
- "@babel/plugin-proposal-class-properties": "^7.8.3",
26
- "@babel/plugin-transform-runtime": "^7.10.1",
27
- "@babel/preset-env": "^7.9.6",
28
- "@rollup/plugin-babel": "^5.0.2",
29
- "@rollup/plugin-commonjs": "^12.0.0",
30
- "@rollup/plugin-node-resolve": "^8.0.0",
31
23
  "@semantic-release/changelog": "^6.0.1",
32
24
  "@semantic-release/git": "^10.0.1",
33
- "@untemps/event-dispatcher": "^1.1.0",
34
- "babel-jest": "^26.0.1",
35
- "cross-env": "^7.0.2",
36
- "husky": "^4.2.5",
37
- "jest": "^26.0.1",
38
- "prettier": "^2.0.5",
39
- "rollup": "^2.12.0",
40
- "rollup-plugin-sizes": "^1.0.4",
41
- "rollup-plugin-terser": "^6.1.0",
42
- "rollup-plugin-visualizer": "^4.0.4",
43
- "semantic-release": "^19.0.3"
44
- },
45
- "husky": {
46
- "hooks": {
47
- "pre-commit": "yarn test:ci && yarn prettier"
48
- }
49
- },
50
- "jest": {
51
- "coverageDirectory": "./coverage/",
52
- "collectCoverage": true
25
+ "@vitest/coverage-v8": "^4.1.6",
26
+ "husky": "^9.1.7",
27
+ "jsdom": "^29.1.1",
28
+ "prettier": "^3.8.3",
29
+ "semantic-release": "^25.0.3",
30
+ "vite": "^8.0.12",
31
+ "vitest": "^4.1.6"
53
32
  },
54
33
  "release": {
55
34
  "branches": [
56
- "master"
35
+ "main"
57
36
  ],
58
37
  "plugins": [
59
38
  [
@@ -74,12 +53,10 @@
74
53
  ]
75
54
  },
76
55
  "scripts": {
77
- "test": "jest -u --watch",
78
- "test:ci": "jest -u -b --coverage",
79
- "build": " rimraf dist && yarn build:cjs && yarn build:es && yarn build:umd",
80
- "build:cjs": "cross-env NODE_ENV=production BABEL_ENV=cjs rollup -c",
81
- "build:es": "cross-env NODE_ENV=production BABEL_ENV=es rollup -c",
82
- "build:umd": "cross-env NODE_ENV=production BABEL_ENV=umd rollup -c",
83
- "prettier": "prettier \"*/**/*.js\" --ignore-path ./.prettierignore --write"
56
+ "test": "vitest",
57
+ "test:ci": "vitest run --coverage",
58
+ "build": "vite build",
59
+ "prettier": "prettier \"*/**/*.js\" --ignore-path ./.prettierignore --write",
60
+ "prepare": "husky"
84
61
  }
85
62
  }