@untemps/user-permissions-utils 1.3.3 → 1.3.5-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,6 +12,16 @@ Collection of utility functions to manage user permissions.
12
12
  yarn add @untemps/user-permissions-utils
13
13
  ```
14
14
 
15
+ ## TypeScript
16
+
17
+ This package is written in TypeScript and ships its own type declarations — no extra `@types/...` package is required. The option types are exported for convenience:
18
+
19
+ ```typescript
20
+ import { getPermission, getUserMediaStream, type GetPermissionOptions, type GetUserMediaStreamOptions } from '@untemps/user-permissions-utils'
21
+ ```
22
+
23
+ `permissionName` is typed as the DOM `PermissionName` (e.g. `'microphone'`, `'camera'`) and `mediaStreamConstraints` as the DOM `MediaStreamConstraints`.
24
+
15
25
  ## Utils
16
26
 
17
27
  `getPermission`:
@@ -0,0 +1,11 @@
1
+ export interface GetPermissionOptions {
2
+ signal?: AbortSignal;
3
+ }
4
+ /**
5
+ * Returns a promise resolved when the permission is granted by the user
6
+ * @param permissionName Name of the permission. @see https://w3c.github.io/permissions/#enumdef-permissionname
7
+ * @param options Optional settings
8
+ * @param options.signal Optional AbortSignal to cancel the pending permission wait
9
+ */
10
+ declare const getPermission: (permissionName: PermissionName, { signal }?: GetPermissionOptions) => Promise<"granted">;
11
+ export default getPermission;
@@ -0,0 +1,12 @@
1
+ export interface GetUserMediaStreamOptions {
2
+ signal?: AbortSignal;
3
+ }
4
+ /**
5
+ * Returns a promise resolved when the permission is granted by the user and the stream is retrieved
6
+ * @param permissionName Name of the permission. @see https://w3c.github.io/permissions/#enumdef-permissionname
7
+ * @param mediaStreamConstraints Constraints object. @see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamConstraints
8
+ * @param options Optional settings
9
+ * @param options.signal Optional AbortSignal to cancel the operation
10
+ */
11
+ declare const getUserMediaStream: (permissionName: PermissionName, mediaStreamConstraints: MediaStreamConstraints, { signal }?: GetUserMediaStreamOptions) => Promise<MediaStream>;
12
+ export default getUserMediaStream;
package/dist/index.d.ts CHANGED
@@ -1,11 +1,6 @@
1
- export declare function getPermission(
2
- permissionName: PermissionName,
3
- options?: { signal?: AbortSignal }
4
- ): Promise<'granted'>
5
- export declare function getUserMediaStream(
6
- permissionName: PermissionName,
7
- constraints: MediaStreamConstraints,
8
- options?: { signal?: AbortSignal }
9
- ): Promise<MediaStream>
10
- export declare function isNavigatorPermissionsSupported(): boolean
11
- export declare function isNavigatorMediaDevicesSupported(): boolean
1
+ export { default as isNavigatorPermissionsSupported } from './isNavigatorPermissionsSupported';
2
+ export { default as isNavigatorMediaDevicesSupported } from './isNavigatorMediaDevicesSupported';
3
+ export { default as getPermission } from './getPermission';
4
+ export { default as getUserMediaStream } from './getUserMediaStream';
5
+ export type { GetPermissionOptions } from './getPermission';
6
+ export type { GetUserMediaStreamOptions } from './getUserMediaStream';
package/dist/index.es.js CHANGED
@@ -1,4 +1,4 @@
1
- //#region src/isNavigatorPermissionsSupported.js
1
+ //#region src/isNavigatorPermissionsSupported.ts
2
2
  var e = () => !!navigator.permissions, t = () => !!navigator.mediaDevices, n = async (t, { signal: n } = {}) => {
3
3
  if (!e()) throw new DOMException("Navigator API: permissions not supported", "NOT_SUPPORTED_ERR");
4
4
  n?.throwIfAborted();
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Check whether Navigator API: mediaDevices is supported by the current browser
3
+ */
4
+ declare const _default: () => boolean;
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Check whether Navigator API: permissions is supported by the current browser
3
+ */
4
+ declare const _default: () => boolean;
5
+ export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@untemps/user-permissions-utils",
3
- "version": "1.3.3",
3
+ "version": "1.3.5-beta.1",
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": [
@@ -44,12 +44,19 @@
44
44
  "jsdom": "^29.1.1",
45
45
  "prettier": "^3.8.3",
46
46
  "semantic-release": "^25.0.3",
47
+ "typescript": "^6.0.3",
48
+ "typescript-eslint": "^8.60.1",
47
49
  "vite": "^8.0.12",
50
+ "vite-plugin-dts": "^5.0.2",
48
51
  "vitest": "^4.1.6"
49
52
  },
50
53
  "release": {
51
54
  "branches": [
52
- "main"
55
+ "main",
56
+ {
57
+ "name": "beta",
58
+ "prerelease": true
59
+ }
53
60
  ],
54
61
  "plugins": [
55
62
  [
@@ -73,9 +80,10 @@
73
80
  "dev": "vite demo --config demo/vite.config.js",
74
81
  "test": "vitest",
75
82
  "test:ci": "vitest run --coverage",
76
- "build": "vite build && cp src/index.d.ts dist/index.d.ts",
83
+ "typecheck": "tsc --noEmit",
84
+ "build": "vite build",
77
85
  "lint": "eslint src/",
78
- "prettier": "prettier \"./**/*.js\" --ignore-path ./.prettierignore --write",
86
+ "prettier": "prettier \"./**/*.{js,ts}\" --ignore-path ./.prettierignore --write",
79
87
  "prepare": "husky"
80
88
  }
81
89
  }