@pexip/media-control 20.3.5 → 21.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/CHANGELOG.md +47 -0
- package/api-docs/functions/extractConstraintsWithKeys.mdx +1 -1
- package/api-docs/interfaces/InputConstraintSet.mdx +16 -1
- package/dist/devices.js +3 -0
- package/dist/typeGuards.d.ts +3 -3
- package/dist/typeGuards.js +16 -0
- package/dist/types.d.ts +85 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 21.0.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1786b2d: `isStreamingRequestingDevice` returns `false` when request is `false`
|
|
8
|
+
Added an early return when request === false, so that a device kind explicitly
|
|
9
|
+
set to false in the constraints is correctly reported as not
|
|
10
|
+
streaming/requesting that device. Previously this case fell through to the
|
|
11
|
+
request === undefined check which returned true.
|
|
12
|
+
- a004e3c: Introduce new `renderParams` that can be applied via the video
|
|
13
|
+
constraints:
|
|
14
|
+
- `backgroundThreshold` - Segmentation threshold for classifying pixels as
|
|
15
|
+
background (lower values include more background).
|
|
16
|
+
- `downSampleFactor` - Factor for downsampling the video frame before
|
|
17
|
+
processing (higher values improve performance but reduce quality).
|
|
18
|
+
- `lightWrapBlurAmount` - Amount of blur applied to the light wrap effect
|
|
19
|
+
around the subject's edges.
|
|
20
|
+
- `lightWrapEdgeBand` - Width of the edge band in pixels where the light wrap
|
|
21
|
+
effect is applied.
|
|
22
|
+
- `lightWrapIntensity` - Intensity/strength of the light wrap effect (0.0 to
|
|
23
|
+
1.0).
|
|
24
|
+
- `lightWrapTightness` - Controls how tightly the light wrap effect hugs the
|
|
25
|
+
subject's edges.
|
|
26
|
+
- `morphDilateRadiusPx` - Radius in pixels for morphological dilation
|
|
27
|
+
operation on the segmentation mask.
|
|
28
|
+
- `morphErodeRadiusPx` - Radius in pixels for morphological erosion operation
|
|
29
|
+
on the segmentation mask.
|
|
30
|
+
- `morphPass` - Number of morphological filter passes to apply for mask
|
|
31
|
+
refinement.
|
|
32
|
+
- `personCenterX` - X-coordinate (0.0 to 1.0) of the expected center position
|
|
33
|
+
of the person in the frame for segmentation optimization.
|
|
34
|
+
- `personCenterY` - Y-coordinate (0.0 to 1.0) of the expected center position
|
|
35
|
+
of the person in the frame for segmentation optimization.
|
|
36
|
+
- `sigmaRangeHi` - Bilateral filter: upper bound of sigma in color space for
|
|
37
|
+
edge-preserving smoothing.
|
|
38
|
+
- `sigmaRangeLo` - Bilateral filter: lower bound of sigma in color space for
|
|
39
|
+
edge-preserving smoothing.
|
|
40
|
+
- `sigmaSpace` - Bilateral filter: sigma in pixel space for mask edge
|
|
41
|
+
snapping.
|
|
42
|
+
|
|
43
|
+
### Patch Changes
|
|
44
|
+
|
|
45
|
+
- Updated dependencies [1fff975]
|
|
46
|
+
- Updated dependencies [3963c2e]
|
|
47
|
+
- Updated dependencies [762ebd2]
|
|
48
|
+
- @pexip/utils@17.2.0
|
|
49
|
+
|
|
3
50
|
## 20.3.5
|
|
4
51
|
|
|
5
52
|
### Patch Changes
|
|
@@ -8,7 +8,7 @@ Extract the constraints with provided keys
|
|
|
8
8
|
|
|
9
9
|
| Type Parameter |
|
|
10
10
|
| ------ |
|
|
11
|
-
| `T` *extends* \| `"deviceId"` \| `"groupId"` \| `"device"` \| `"videoSegmentation"` \| `"videoSegmentationModel"` \| `"denoise"` \| `"vad"` \| `"asd"` \| `"mixWithAdditionalMedia"` \| `"backgroundImageUrl"` \| `"resizeMode"` \| `"pan"` \| `"tilt"` \| `"zoom"` \| `"contentHint"` \| `"facingMode"` \| `"echoCancellation"` \| `"autoGainControl"` \| `"noiseSuppression"` \| `ConstrainNumberKeys` |
|
|
11
|
+
| `T` *extends* \| `"deviceId"` \| `"groupId"` \| `"device"` \| `"videoSegmentation"` \| `"videoSegmentationModel"` \| `"denoise"` \| `"vad"` \| `"asd"` \| `"mixWithAdditionalMedia"` \| `"backgroundImageUrl"` \| `"excludeBystanders"` \| `"resizeMode"` \| `"pan"` \| `"tilt"` \| `"zoom"` \| `"contentHint"` \| `"facingMode"` \| `"echoCancellation"` \| `"autoGainControl"` \| `"noiseSuppression"` \| `ConstrainNumberKeys` |
|
|
12
12
|
|
|
13
13
|
## Parameters
|
|
14
14
|
|
|
@@ -17,7 +17,22 @@
|
|
|
17
17
|
| <a id="edgebluramount"></a> `edgeBlurAmount?` | `ConstrainULong` | Blur amount applied to the segmented person's edge | - |
|
|
18
18
|
| <a id="foregroundthreshold"></a> `foregroundThreshold?` | `ConstrainDouble` | Erode level for edge smoothing when using video segmentation | - |
|
|
19
19
|
| <a id="backgroundimageurl"></a> `backgroundImageUrl?` | `ConstrainDOMString` | Image Url that is being used for video overlay effects | - |
|
|
20
|
-
| <a id="maskcombineratio"></a> `maskCombineRatio?` | `ConstrainDouble` | The ratio to be used for smoothing segmentation mask | - |
|
|
20
|
+
| <a id="maskcombineratio"></a> `maskCombineRatio?` | `ConstrainDouble` | The ratio to be used for smoothing segmentation mask. How much uncertainty enables temporal blend, [0,1]. Higher = more frame-to-frame blending, more stability but more trailing ghosts. Typical: 0.6–0.85. | - |
|
|
21
|
+
| <a id="backgroundthreshold"></a> `backgroundThreshold?` | `ConstrainDouble` | [0,1] Lower mask confidence: all mask pixels <= this are considered definite background. Adjust to make mask edges tighter or more permissive for background inclusion. Example: 0.3 ("mask < 0.3 = sure background"). | - |
|
|
22
|
+
| <a id="sigmaspace"></a> `sigmaSpace?` | `ConstrainDouble` | Bilateral filter: sigma in pixel space for mask edge snapping. Controls the neighborhood/pixel distance—higher is larger window (5–10 typical). | - |
|
|
23
|
+
| <a id="sigmarangelo"></a> `sigmaRangeLo?` | `ConstrainDouble` | Bilateral filter: minimum sigma in color/luma (for mask interiors), [0,1]. Controls how little color difference is needed to cross-mask regions away from edge. Lower = sharper edge preservation in mask interiors. Example: 0.2 | - |
|
|
24
|
+
| <a id="sigmarangehi"></a> `sigmaRangeHi?` | `ConstrainDouble` | Bilateral filter: maximum sigma in color/luma (for mask uncertain zones), [0,1]. Controls how much color similarity is required at uncertain/edge mask locations. Higher = more mask smoothing at edges. Example: 0.8 | - |
|
|
25
|
+
| <a id="excludebystanders"></a> `excludeBystanders?` | `ConstrainBoolean` | Whether to exclude bystanders/connected people from the output mask. The main person instance (closest to personCenter OR largest blob) is kept in the output mask. All other bystanders/connected people are suppressed (bystander removal). | - |
|
|
26
|
+
| <a id="personcenterx"></a> `personCenterX?` | `ConstrainDouble` | Person center: normalized in [0,1] image coordinates for main subject selection. Used by the CCL/bias filter to select the main person blob. | - |
|
|
27
|
+
| <a id="personcentery"></a> `personCenterY?` | `ConstrainDouble` | Person center: normalized in [0,1] image coordinates for main subject selection. Used by the CCL/bias filter to select the main person blob. | - |
|
|
28
|
+
| <a id="morpheroderadiuspx"></a> `morphErodeRadiusPx?` | `ConstrainULong` | Morphological erosion: radius in pixels [1,12]. Sets kernel size for bridge-breaking. Larger values break thicker bridges but may erode fine details. | - |
|
|
29
|
+
| <a id="morphpass"></a> `morphPass?` | `ConstrainULong` | Morphological pass: number of separable passes [1,10]. More passes increase the effective span. | - |
|
|
30
|
+
| <a id="morphdilateradiuspx"></a> `morphDilateRadiusPx?` | `ConstrainULong` | Geodesic dilation: radius in pixels [1,12]. Must match erosion for good reconstruction. | - |
|
|
31
|
+
| <a id="lightwrapintensity"></a> `lightWrapIntensity?` | `ConstrainDouble` | [0,1] Light wrap amount (halo intensity) at mask edge. Wraps blurred background color just outside the subject edge onto the subject boundary for realism. | - |
|
|
32
|
+
| <a id="lightwraptightness"></a> `lightWrapTightness?` | `ConstrainDouble` | [0.5,4.0] Controls power/tightness of the wrap band falloff. Higher = tighter/narrower wrap. | - |
|
|
33
|
+
| <a id="lightwrapedgeband"></a> `lightWrapEdgeBand?` | `ConstrainDouble` | Width of the wrap band (feather size, in normalized mask units) between the backgroundThreshold and foregroundThreshold in [0.0, (foregroundThreshold - backgroundThreshold) / 2] Higher = wider soft halo. | - |
|
|
34
|
+
| <a id="lightwrapbluramount"></a> `lightWrapBlurAmount?` | `ConstrainULong` | Blur amount used for background color in the wrap band (units=blur passes). | - |
|
|
35
|
+
| <a id="downsamplefactor"></a> `downSampleFactor?` | `ConstrainULong` | Downsampling factor for mask/blurring, must be [2,4]. 2 = half resolution, 4 = quarter resolution for faster filtering. Use for performance tuning vs. quality. | - |
|
|
21
36
|
| <a id="resizemode"></a> `resizeMode?` | `ConstrainDOMString` | Image Url that is being used for video overlay effects | - |
|
|
22
37
|
| <a id="pan"></a> `pan?` | `boolean` | Current pan, tilt and zoom level for a PTZ controllable camera on web | - |
|
|
23
38
|
| <a id="tilt"></a> `tilt?` | `boolean` | - | - |
|
package/dist/devices.js
CHANGED
|
@@ -372,6 +372,9 @@ export const resolveInputDevice = (tracksOrDevice, findInput) => {
|
|
|
372
372
|
return undefined;
|
|
373
373
|
};
|
|
374
374
|
export const isStreamingRequestingDevice = (request, trackOrDevice, devices) => {
|
|
375
|
+
if (request === false) {
|
|
376
|
+
return false;
|
|
377
|
+
}
|
|
375
378
|
if (request === undefined) {
|
|
376
379
|
return true;
|
|
377
380
|
}
|
package/dist/typeGuards.d.ts
CHANGED
|
@@ -21,11 +21,11 @@ export declare const EXTENDED_CONSTRAIN_STRING_KEYS: readonly ["videoSegmentatio
|
|
|
21
21
|
export type ExtendedConstrainStringKeys = (typeof EXTENDED_CONSTRAIN_STRING_KEYS)[number];
|
|
22
22
|
export type ConstrainStringKeys = (typeof CONSTRAIN_STRING_KEYS)[number];
|
|
23
23
|
export declare const CONSTRAIN_U_LONG_KEYS: readonly ["width", "height", "sampleRate", "sampleSize", "channelCount"];
|
|
24
|
-
export declare const EXTENDED_CONSTRAIN_U_LONG_KEYS: readonly ["backgroundBlurAmount", "edgeBlurAmount"];
|
|
24
|
+
export declare const EXTENDED_CONSTRAIN_U_LONG_KEYS: readonly ["backgroundBlurAmount", "edgeBlurAmount", "morphErodeRadiusPx", "morphPass", "morphDilateRadiusPx", "lightWrapBlurAmount", "downSampleFactor"];
|
|
25
25
|
export type ExtendedConstrainULongKeys = (typeof EXTENDED_CONSTRAIN_U_LONG_KEYS)[number];
|
|
26
26
|
export type ConstrainULongKeys = (typeof CONSTRAIN_U_LONG_KEYS)[number];
|
|
27
27
|
export declare const CONSTRAIN_DOUBLE_KEYS: readonly ["aspectRatio", "frameRate", "latency"];
|
|
28
|
-
export declare const EXTENDED_CONSTRAIN_DOUBLE_KEYS: readonly ["foregroundThreshold", "maskCombineRatio"];
|
|
28
|
+
export declare const EXTENDED_CONSTRAIN_DOUBLE_KEYS: readonly ["foregroundThreshold", "backgroundThreshold", "sigmaSpace", "sigmaRangeLo", "sigmaRangeHi", "maskCombineRatio", "personCenterX", "personCenterY", "lightWrapIntensity", "lightWrapTightness", "lightWrapEdgeBand"];
|
|
29
29
|
export type ExtendedConstrainDoubleKeys = (typeof EXTENDED_CONSTRAIN_DOUBLE_KEYS)[number];
|
|
30
30
|
export type ConstrainDoubleKeys = (typeof CONSTRAIN_DOUBLE_KEYS)[number];
|
|
31
31
|
export declare const CONSTRAIN_BOOLEAN_KEYS: readonly ["echoCancellation", "autoGainControl", "noiseSuppression", "pan", "tilt", "zoom"];
|
|
@@ -33,7 +33,7 @@ export declare const CONSTRAIN_BOOLEAN_KEYS: readonly ["echoCancellation", "auto
|
|
|
33
33
|
* Extends boolean constraint keys for our own implementation of the media
|
|
34
34
|
* feature
|
|
35
35
|
*/
|
|
36
|
-
export declare const EXTENDED_CONSTRAIN_BOOLEAN_KEYS: readonly ["vad", "asd", "mixWithAdditionalMedia", "denoise"];
|
|
36
|
+
export declare const EXTENDED_CONSTRAIN_BOOLEAN_KEYS: readonly ["vad", "asd", "mixWithAdditionalMedia", "denoise", "excludeBystanders"];
|
|
37
37
|
export type ExtendedConstrainBooleanKeys = (typeof EXTENDED_CONSTRAIN_BOOLEAN_KEYS)[number];
|
|
38
38
|
export type ConstrainBooleanKeys = (typeof CONSTRAIN_BOOLEAN_KEYS)[number];
|
|
39
39
|
/**
|
package/dist/typeGuards.js
CHANGED
|
@@ -39,6 +39,11 @@ export const CONSTRAIN_U_LONG_KEYS = [
|
|
|
39
39
|
export const EXTENDED_CONSTRAIN_U_LONG_KEYS = [
|
|
40
40
|
'backgroundBlurAmount',
|
|
41
41
|
'edgeBlurAmount',
|
|
42
|
+
'morphErodeRadiusPx',
|
|
43
|
+
'morphPass',
|
|
44
|
+
'morphDilateRadiusPx',
|
|
45
|
+
'lightWrapBlurAmount',
|
|
46
|
+
'downSampleFactor',
|
|
42
47
|
];
|
|
43
48
|
export const CONSTRAIN_DOUBLE_KEYS = [
|
|
44
49
|
'aspectRatio',
|
|
@@ -47,7 +52,16 @@ export const CONSTRAIN_DOUBLE_KEYS = [
|
|
|
47
52
|
];
|
|
48
53
|
export const EXTENDED_CONSTRAIN_DOUBLE_KEYS = [
|
|
49
54
|
'foregroundThreshold',
|
|
55
|
+
'backgroundThreshold',
|
|
56
|
+
'sigmaSpace',
|
|
57
|
+
'sigmaRangeLo',
|
|
58
|
+
'sigmaRangeHi',
|
|
50
59
|
'maskCombineRatio',
|
|
60
|
+
'personCenterX',
|
|
61
|
+
'personCenterY',
|
|
62
|
+
'lightWrapIntensity',
|
|
63
|
+
'lightWrapTightness',
|
|
64
|
+
'lightWrapEdgeBand',
|
|
51
65
|
];
|
|
52
66
|
export const CONSTRAIN_BOOLEAN_KEYS = [
|
|
53
67
|
'echoCancellation',
|
|
@@ -70,6 +84,8 @@ export const EXTENDED_CONSTRAIN_BOOLEAN_KEYS = [
|
|
|
70
84
|
'mixWithAdditionalMedia',
|
|
71
85
|
// Noise Suppression using our own impl
|
|
72
86
|
'denoise',
|
|
87
|
+
// Bystander removal
|
|
88
|
+
'excludeBystanders',
|
|
73
89
|
];
|
|
74
90
|
/**
|
|
75
91
|
* The keys from the `MediaTrackConstraintSet`
|
package/dist/types.d.ts
CHANGED
|
@@ -107,9 +107,93 @@ export interface InputConstraintSet extends MediaTrackConstraints {
|
|
|
107
107
|
*/
|
|
108
108
|
backgroundImageUrl?: ConstrainDOMString;
|
|
109
109
|
/**
|
|
110
|
-
* The ratio to be used for smoothing segmentation mask
|
|
110
|
+
* The ratio to be used for smoothing segmentation mask.
|
|
111
|
+
* How much uncertainty enables temporal blend, [0,1].
|
|
112
|
+
* Higher = more frame-to-frame blending, more stability but more trailing ghosts.
|
|
113
|
+
* Typical: 0.6–0.85.
|
|
111
114
|
*/
|
|
112
115
|
maskCombineRatio?: ConstrainDouble;
|
|
116
|
+
/**
|
|
117
|
+
* [0,1] Lower mask confidence: all mask pixels <= this are considered definite background.
|
|
118
|
+
* Adjust to make mask edges tighter or more permissive for background inclusion.
|
|
119
|
+
* Example: 0.3 ("mask < 0.3 = sure background").
|
|
120
|
+
*/
|
|
121
|
+
backgroundThreshold?: ConstrainDouble;
|
|
122
|
+
/**
|
|
123
|
+
* Bilateral filter: sigma in pixel space for mask edge snapping.
|
|
124
|
+
* Controls the neighborhood/pixel distance—higher is larger window (5–10 typical).
|
|
125
|
+
*/
|
|
126
|
+
sigmaSpace?: ConstrainDouble;
|
|
127
|
+
/**
|
|
128
|
+
* Bilateral filter: minimum sigma in color/luma (for mask interiors), [0,1].
|
|
129
|
+
* Controls how little color difference is needed to cross-mask regions away from edge.
|
|
130
|
+
* Lower = sharper edge preservation in mask interiors.
|
|
131
|
+
* Example: 0.2
|
|
132
|
+
*/
|
|
133
|
+
sigmaRangeLo?: ConstrainDouble;
|
|
134
|
+
/**
|
|
135
|
+
* Bilateral filter: maximum sigma in color/luma (for mask uncertain zones), [0,1].
|
|
136
|
+
* Controls how much color similarity is required at uncertain/edge mask locations.
|
|
137
|
+
* Higher = more mask smoothing at edges.
|
|
138
|
+
* Example: 0.8
|
|
139
|
+
*/
|
|
140
|
+
sigmaRangeHi?: ConstrainDouble;
|
|
141
|
+
/**
|
|
142
|
+
* Whether to exclude bystanders/connected people from the output mask.
|
|
143
|
+
* The main person instance (closest to personCenter OR largest blob) is kept in
|
|
144
|
+
* the output mask.
|
|
145
|
+
* All other bystanders/connected people are suppressed (bystander removal).
|
|
146
|
+
*/
|
|
147
|
+
excludeBystanders?: ConstrainBoolean;
|
|
148
|
+
/**
|
|
149
|
+
* Person center: normalized in [0,1] image coordinates for main subject selection.
|
|
150
|
+
* Used by the CCL/bias filter to select the main person blob.
|
|
151
|
+
*/
|
|
152
|
+
personCenterX?: ConstrainDouble;
|
|
153
|
+
/**
|
|
154
|
+
* Person center: normalized in [0,1] image coordinates for main subject selection.
|
|
155
|
+
* Used by the CCL/bias filter to select the main person blob.
|
|
156
|
+
*/
|
|
157
|
+
personCenterY?: ConstrainDouble;
|
|
158
|
+
/**
|
|
159
|
+
* Morphological erosion: radius in pixels [1,12]. Sets kernel size for bridge-breaking.
|
|
160
|
+
* Larger values break thicker bridges but may erode fine details.
|
|
161
|
+
*/
|
|
162
|
+
morphErodeRadiusPx?: ConstrainULong;
|
|
163
|
+
/**
|
|
164
|
+
* Morphological pass: number of separable passes [1,10].
|
|
165
|
+
* More passes increase the effective span.
|
|
166
|
+
*/
|
|
167
|
+
morphPass?: ConstrainULong;
|
|
168
|
+
/**
|
|
169
|
+
* Geodesic dilation: radius in pixels [1,12]. Must match erosion for good reconstruction.
|
|
170
|
+
*/
|
|
171
|
+
morphDilateRadiusPx?: ConstrainULong;
|
|
172
|
+
/**
|
|
173
|
+
* [0,1] Light wrap amount (halo intensity) at mask edge.
|
|
174
|
+
* Wraps blurred background color just outside the subject edge onto the subject boundary for realism.
|
|
175
|
+
*/
|
|
176
|
+
lightWrapIntensity?: ConstrainDouble;
|
|
177
|
+
/**
|
|
178
|
+
* [0.5,4.0] Controls power/tightness of the wrap band falloff. Higher = tighter/narrower wrap.
|
|
179
|
+
*/
|
|
180
|
+
lightWrapTightness?: ConstrainDouble;
|
|
181
|
+
/**
|
|
182
|
+
* Width of the wrap band (feather size, in normalized mask units) between the backgroundThreshold
|
|
183
|
+
* and foregroundThreshold in [0.0, (foregroundThreshold - backgroundThreshold) / 2]
|
|
184
|
+
* Higher = wider soft halo.
|
|
185
|
+
*/
|
|
186
|
+
lightWrapEdgeBand?: ConstrainDouble;
|
|
187
|
+
/**
|
|
188
|
+
* Blur amount used for background color in the wrap band (units=blur passes).
|
|
189
|
+
*/
|
|
190
|
+
lightWrapBlurAmount?: ConstrainULong;
|
|
191
|
+
/**
|
|
192
|
+
* Downsampling factor for mask/blurring, must be [2,4].
|
|
193
|
+
* 2 = half resolution, 4 = quarter resolution for faster filtering.
|
|
194
|
+
* Use for performance tuning vs. quality.
|
|
195
|
+
*/
|
|
196
|
+
downSampleFactor?: ConstrainULong;
|
|
113
197
|
/**
|
|
114
198
|
* Image Url that is being used for video overlay effects
|
|
115
199
|
*/
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pexip/media-control",
|
|
3
|
-
"version": "
|
|
4
|
-
"homepage": "https://
|
|
3
|
+
"version": "21.0.0",
|
|
4
|
+
"homepage": "https://developer.pexip.com",
|
|
5
5
|
"bugs": "https://gitlab.com/pexip/zoo/issues",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"api-docs"
|
|
36
36
|
],
|
|
37
37
|
"scripts": {
|
|
38
|
-
"build": "pexip-bundler build
|
|
39
|
-
"build:sourcemap": "pexip-bundler build --sourcemap
|
|
38
|
+
"build": "pexip-bundler build",
|
|
39
|
+
"build:sourcemap": "pexip-bundler build --sourcemap",
|
|
40
40
|
"clean": "rm -rf dist api-docs",
|
|
41
41
|
"dev": "pexip-bundler dev",
|
|
42
|
-
"prepack": "yarn clean && yarn build",
|
|
42
|
+
"prepack": "yarn clean && yarn build && yarn docs",
|
|
43
43
|
"test": "jest",
|
|
44
44
|
"check-format": "prettier --ignore-path=../../.prettierignore --check .",
|
|
45
45
|
"format": "prettier --ignore-path=../../.prettierignore --write .",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"docs": "typedoc"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@pexip/utils": "17.
|
|
51
|
+
"@pexip/utils": "17.2.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@jest/globals": "^30.2.0",
|