videomail-client 15.3.3 → 15.5.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/dist/cjs/index.cjs +8700 -9204
- package/dist/esm/index.d.ts +0 -2
- package/dist/esm/index.js +58 -61
- package/dist/esm/types/error.d.ts +0 -2
- package/dist/esm/wrappers/visuals/recorder.d.ts +4 -0
- package/dist/umd/index.js +74 -635
- package/package.json +6 -7
- package/dist/cjs/236~1.cjs +0 -120
- package/dist/esm/types/device.d.ts +0 -10
- package/dist/esm/util/getCapacitorDeviceMetadata.d.ts +0 -3
package/dist/esm/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export type { BrowserStats } from "./types/BrowserStats.js";
|
|
|
4
4
|
export type { VideomailCommand } from "./types/command.js";
|
|
5
5
|
export type { VideomailCommandArgs } from "./types/command.js";
|
|
6
6
|
export type { DeliveryRecord } from "./types/Delivery.js";
|
|
7
|
-
export type { CapacitorDeviceMetadata } from "./types/device.js";
|
|
8
7
|
export type { EmailAddress, EmailAddresses } from "./types/EmailAddress.js";
|
|
9
8
|
export type { FullVideomailErrorData, VideomailErrorData } from "./types/error.js";
|
|
10
9
|
export type { VideomailEvents } from "./types/events/index.js";
|
|
@@ -17,5 +16,4 @@ export type { RecordingStats } from "./types/RecordingStats.js";
|
|
|
17
16
|
export type { VideomailThread } from "./types/thread.js";
|
|
18
17
|
export type { PartialVideomail, Videomail } from "./types/Videomail.js";
|
|
19
18
|
export type { VideoTypeType } from "./types/VideoType.js";
|
|
20
|
-
export { default as getCapacitorDeviceMetadata } from "./util/getCapacitorDeviceMetadata.js";
|
|
21
19
|
export { VideoType };
|
package/dist/esm/index.js
CHANGED
|
@@ -2,7 +2,6 @@ import { deserializeError, serializeError } from "serialize-error";
|
|
|
2
2
|
import superagent from "superagent";
|
|
3
3
|
import defined from "defined";
|
|
4
4
|
import { UAParser } from "ua-parser-js";
|
|
5
|
-
import { Device } from "@capacitor/device";
|
|
6
5
|
import get_form_data from "get-form-data";
|
|
7
6
|
import { createNanoEvents } from "nanoevents";
|
|
8
7
|
import deepmerge from "deepmerge";
|
|
@@ -70,11 +69,11 @@ __webpack_require__.m = __webpack_modules__;
|
|
|
70
69
|
})();
|
|
71
70
|
__webpack_require__.add({
|
|
72
71
|
2791 (module, __webpack_exports__, __webpack_require__) {
|
|
73
|
-
var
|
|
74
|
-
var
|
|
75
|
-
var
|
|
76
|
-
var
|
|
77
|
-
var ___CSS_LOADER_EXPORT___ =
|
|
72
|
+
var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__rspack_import_1 = __webpack_require__(5068);
|
|
73
|
+
var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__rspack_import_1_default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__rspack_import_1);
|
|
74
|
+
var _node_modules_rsbuild_core_compiled_css_loader_api_js__rspack_import_0 = __webpack_require__(37);
|
|
75
|
+
var _node_modules_rsbuild_core_compiled_css_loader_api_js__rspack_import_0_default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_api_js__rspack_import_0);
|
|
76
|
+
var ___CSS_LOADER_EXPORT___ = _node_modules_rsbuild_core_compiled_css_loader_api_js__rspack_import_0_default()(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__rspack_import_1_default());
|
|
78
77
|
___CSS_LOADER_EXPORT___.push([
|
|
79
78
|
module.id,
|
|
80
79
|
`@keyframes blink {
|
|
@@ -3621,7 +3620,7 @@ const constants = {
|
|
|
3621
3620
|
}
|
|
3622
3621
|
};
|
|
3623
3622
|
var package_namespaceObject = {
|
|
3624
|
-
rE: "15.
|
|
3623
|
+
rE: "15.5.0"
|
|
3625
3624
|
};
|
|
3626
3625
|
function isAudioEnabled(options) {
|
|
3627
3626
|
return Boolean(options.audio.enabled);
|
|
@@ -3985,44 +3984,6 @@ function findOriginalExc(exc) {
|
|
|
3985
3984
|
return exc;
|
|
3986
3985
|
}
|
|
3987
3986
|
const error_findOriginalExc = findOriginalExc;
|
|
3988
|
-
async function getCapacitorDeviceMetadata() {
|
|
3989
|
-
const errors = [];
|
|
3990
|
-
let battery;
|
|
3991
|
-
let info;
|
|
3992
|
-
let languageCode;
|
|
3993
|
-
let languageTag;
|
|
3994
|
-
try {
|
|
3995
|
-
info = await Device.getInfo();
|
|
3996
|
-
} catch (exc) {
|
|
3997
|
-
const err = serializeError(exc);
|
|
3998
|
-
let ignore = false;
|
|
3999
|
-
if (err.message?.includes("Device API not available in this browser")) ignore = true;
|
|
4000
|
-
if (!ignore) errors.push(err);
|
|
4001
|
-
}
|
|
4002
|
-
try {
|
|
4003
|
-
battery = await Device.getBatteryInfo();
|
|
4004
|
-
} catch (exc) {
|
|
4005
|
-
errors.push(serializeError(exc));
|
|
4006
|
-
}
|
|
4007
|
-
try {
|
|
4008
|
-
languageCode = await Device.getLanguageCode();
|
|
4009
|
-
} catch (exc) {
|
|
4010
|
-
errors.push(serializeError(exc));
|
|
4011
|
-
}
|
|
4012
|
-
try {
|
|
4013
|
-
languageTag = await Device.getLanguageTag();
|
|
4014
|
-
} catch (exc) {
|
|
4015
|
-
errors.push(serializeError(exc));
|
|
4016
|
-
}
|
|
4017
|
-
const metadata = {};
|
|
4018
|
-
if (battery) metadata.battery = battery;
|
|
4019
|
-
if (errors.length > 0) metadata.errors = errors;
|
|
4020
|
-
if (info) metadata.info = info;
|
|
4021
|
-
if (languageCode) metadata.languageCode = languageCode;
|
|
4022
|
-
if (languageTag) metadata.languageTag = languageTag;
|
|
4023
|
-
return metadata;
|
|
4024
|
-
}
|
|
4025
|
-
const util_getCapacitorDeviceMetadata = getCapacitorDeviceMetadata;
|
|
4026
3987
|
function Despot_define_property(obj, key, value) {
|
|
4027
3988
|
if (key in obj) Object.defineProperty(obj, key, {
|
|
4028
3989
|
value: value,
|
|
@@ -4447,11 +4408,9 @@ class Resource {
|
|
|
4447
4408
|
[constants.WHITELIST_KEY_LABEL]: this.options.whitelistKey
|
|
4448
4409
|
};
|
|
4449
4410
|
const url = `${this.options.apiUrl}/client-error/`;
|
|
4450
|
-
const capacitorDevice = await util_getCapacitorDeviceMetadata();
|
|
4451
4411
|
const supportedConstraints = navigator.mediaDevices.getSupportedConstraints();
|
|
4452
4412
|
const enumerateDevices = await navigator.mediaDevices.enumerateDevices();
|
|
4453
4413
|
const fullVideomailErrorData = {
|
|
4454
|
-
capacitorDevice,
|
|
4455
4414
|
browser: err.browser,
|
|
4456
4415
|
code: err.code,
|
|
4457
4416
|
cookie: err.cookie,
|
|
@@ -4738,19 +4697,19 @@ function mergeWithDefaultOptions(options = {}) {
|
|
|
4738
4697
|
return newOptions;
|
|
4739
4698
|
}
|
|
4740
4699
|
const options_mergeWithDefaultOptions = mergeWithDefaultOptions;
|
|
4741
|
-
const
|
|
4742
|
-
|
|
4743
|
-
|
|
4744
|
-
var styleDomAPI_default = /*#__PURE__*/ __webpack_require__.n(styleDomAPI);
|
|
4745
|
-
const insertBySelector = __webpack_require__("3175");
|
|
4746
|
-
var insertBySelector_default = /*#__PURE__*/ __webpack_require__.n(insertBySelector);
|
|
4700
|
+
const main_0 = __webpack_require__("2791");
|
|
4701
|
+
const styleTagTransform = __webpack_require__("2045");
|
|
4702
|
+
var styleTagTransform_default = /*#__PURE__*/ __webpack_require__.n(styleTagTransform);
|
|
4747
4703
|
const setAttributesWithoutAttributes = __webpack_require__("7956");
|
|
4748
4704
|
var setAttributesWithoutAttributes_default = /*#__PURE__*/ __webpack_require__.n(setAttributesWithoutAttributes);
|
|
4705
|
+
const insertBySelector = __webpack_require__("3175");
|
|
4706
|
+
var insertBySelector_default = /*#__PURE__*/ __webpack_require__.n(insertBySelector);
|
|
4707
|
+
const styleDomAPI = __webpack_require__("7045");
|
|
4708
|
+
var styleDomAPI_default = /*#__PURE__*/ __webpack_require__.n(styleDomAPI);
|
|
4749
4709
|
const insertStyleElement = __webpack_require__("6384");
|
|
4750
4710
|
var insertStyleElement_default = /*#__PURE__*/ __webpack_require__.n(insertStyleElement);
|
|
4751
|
-
const
|
|
4752
|
-
var
|
|
4753
|
-
const main_0 = __webpack_require__("2791");
|
|
4711
|
+
const injectStylesIntoStyleTag = __webpack_require__("4860");
|
|
4712
|
+
var injectStylesIntoStyleTag_default = /*#__PURE__*/ __webpack_require__.n(injectStylesIntoStyleTag);
|
|
4754
4713
|
var main_options = {};
|
|
4755
4714
|
main_options.styleTagTransform = styleTagTransform_default();
|
|
4756
4715
|
main_options.setAttributes = setAttributesWithoutAttributes_default();
|
|
@@ -6636,6 +6595,30 @@ class Recorder extends util_Despot {
|
|
|
6636
6595
|
window.clearTimeout(this.retryTimeout);
|
|
6637
6596
|
this.retryTimeout = void 0;
|
|
6638
6597
|
}
|
|
6598
|
+
clearConnectionTimeout() {
|
|
6599
|
+
if (!this.connectionTimeout) return;
|
|
6600
|
+
this.options.logger.debug("Recorder: clearConnectionTimeout()");
|
|
6601
|
+
window.clearTimeout(this.connectionTimeout);
|
|
6602
|
+
this.connectionTimeout = void 0;
|
|
6603
|
+
}
|
|
6604
|
+
failConnection(params) {
|
|
6605
|
+
if (this.connectionFailed || this.connected || this.unloaded) return;
|
|
6606
|
+
this.connectionFailed = true;
|
|
6607
|
+
this.connecting = false;
|
|
6608
|
+
this.clearConnectionTimeout();
|
|
6609
|
+
if (this.stream) {
|
|
6610
|
+
this.stream.destroy();
|
|
6611
|
+
this.stream = void 0;
|
|
6612
|
+
}
|
|
6613
|
+
const err = error_createError({
|
|
6614
|
+
message: "Unable to connect to the server",
|
|
6615
|
+
explanation: params.explanation,
|
|
6616
|
+
options: this.options
|
|
6617
|
+
});
|
|
6618
|
+
this.emit("ERROR", {
|
|
6619
|
+
err
|
|
6620
|
+
});
|
|
6621
|
+
}
|
|
6639
6622
|
calculateFrameProgress() {
|
|
6640
6623
|
return `${(this.confirmedFrameNumber / (this.framesCount || 1) * 100).toFixed(2)}%`;
|
|
6641
6624
|
}
|
|
@@ -6707,6 +6690,7 @@ class Recorder extends util_Despot {
|
|
|
6707
6690
|
initSocket(cb) {
|
|
6708
6691
|
if (!this.connected) {
|
|
6709
6692
|
this.connecting = true;
|
|
6693
|
+
this.connectionFailed = false;
|
|
6710
6694
|
this.emit("CONNECTING");
|
|
6711
6695
|
let url2Connect;
|
|
6712
6696
|
try {
|
|
@@ -6761,16 +6745,27 @@ class Recorder extends util_Despot {
|
|
|
6761
6745
|
});
|
|
6762
6746
|
}
|
|
6763
6747
|
if (this.stream) {
|
|
6764
|
-
this.
|
|
6748
|
+
const connectionTimeoutMs = this.options.timeouts.connection;
|
|
6749
|
+
this.connectionTimeout = window.setTimeout(()=>{
|
|
6750
|
+
this.failConnection({
|
|
6751
|
+
url2Connect,
|
|
6752
|
+
explanation: `The server at ${url2Connect} did not respond within ${connectionTimeoutMs}ms. Please check your internet connection and try again. If the problem persists, contact us.`
|
|
6753
|
+
});
|
|
6754
|
+
}, connectionTimeoutMs);
|
|
6755
|
+
this.stream.on("close", ()=>{
|
|
6765
6756
|
this.options.logger.debug(`${PIPE_SYMBOL}Stream has closed`);
|
|
6757
|
+
const neverConnected = this.connecting && !this.connected;
|
|
6758
|
+
this.clearConnectionTimeout();
|
|
6766
6759
|
this.connecting = this.connected = false;
|
|
6767
|
-
if (
|
|
6768
|
-
|
|
6760
|
+
if (neverConnected) this.failConnection({
|
|
6761
|
+
url2Connect,
|
|
6762
|
+
explanation: `The connection to ${url2Connect} was refused or could not be reached. Please check your internet connection and try again. If the problem persists, contact us.`
|
|
6769
6763
|
});
|
|
6770
6764
|
else if (this.userMediaLoaded) this.initSocket();
|
|
6771
6765
|
});
|
|
6772
6766
|
this.stream.on("connect", ()=>{
|
|
6773
6767
|
this.options.logger.debug(`${PIPE_SYMBOL}Stream *connect* event emitted`);
|
|
6768
|
+
this.clearConnectionTimeout();
|
|
6774
6769
|
const isClosing = this.stream?.socket.readyState === WebSocket.CLOSING;
|
|
6775
6770
|
if (!this.connected && !isClosing && !this.unloaded) {
|
|
6776
6771
|
this.connected = true;
|
|
@@ -7129,6 +7124,8 @@ class Recorder extends util_Despot {
|
|
|
7129
7124
|
this.options.logger.debug(`Recorder: unload()${prettyCause}`);
|
|
7130
7125
|
this.reset();
|
|
7131
7126
|
this.clearUserMediaTimeout();
|
|
7127
|
+
this.clearConnectionTimeout();
|
|
7128
|
+
this.connecting = false;
|
|
7132
7129
|
if (this.userMedia) this.userMedia.unloadRemainingEventListeners();
|
|
7133
7130
|
if (this.submitting) ;
|
|
7134
7131
|
else if (this.stream) {
|
|
@@ -7531,7 +7528,7 @@ class Recorder extends util_Despot {
|
|
|
7531
7528
|
return this.userMediaLoaded;
|
|
7532
7529
|
}
|
|
7533
7530
|
constructor(visuals, replay, options){
|
|
7534
|
-
super("Recorder", options), recorder_define_property(this, "visuals", void 0), recorder_define_property(this, "replay", void 0), recorder_define_property(this, "loop", void 0), recorder_define_property(this, "originalAnimationFrameObject", void 0), recorder_define_property(this, "samplesCount", 0), recorder_define_property(this, "framesCount", 0), recorder_define_property(this, "recordingStats", void 0), recorder_define_property(this, "confirmedFrameNumber", 0), recorder_define_property(this, "confirmedSampleNumber", 0), recorder_define_property(this, "recorderElement", void 0), recorder_define_property(this, "userMedia", void 0), recorder_define_property(this, "userMediaTimeout", void 0), recorder_define_property(this, "retryTimeout", void 0), recorder_define_property(this, "frameProgress", void 0), recorder_define_property(this, "sampleProgress", void 0), recorder_define_property(this, "canvas", void 0), recorder_define_property(this, "ctx", void 0), recorder_define_property(this, "userMediaLoaded", void 0), recorder_define_property(this, "userMediaLoading", false), recorder_define_property(this, "submitting", false), recorder_define_property(this, "unloaded", void 0), recorder_define_property(this, "stopTime", void 0), recorder_define_property(this, "stream", void 0), recorder_define_property(this, "connecting", false), recorder_define_property(this, "connected", false), recorder_define_property(this, "blocking", false), recorder_define_property(this, "built", false), recorder_define_property(this, "key", void 0), recorder_define_property(this, "waitingTime", void 0), recorder_define_property(this, "pingInterval", void 0), recorder_define_property(this, "frame", void 0), recorder_define_property(this, "recordingBuffer", void 0), recorder_define_property(this, "facingMode", void 0);
|
|
7531
|
+
super("Recorder", options), recorder_define_property(this, "visuals", void 0), recorder_define_property(this, "replay", void 0), recorder_define_property(this, "loop", void 0), recorder_define_property(this, "originalAnimationFrameObject", void 0), recorder_define_property(this, "samplesCount", 0), recorder_define_property(this, "framesCount", 0), recorder_define_property(this, "recordingStats", void 0), recorder_define_property(this, "confirmedFrameNumber", 0), recorder_define_property(this, "confirmedSampleNumber", 0), recorder_define_property(this, "recorderElement", void 0), recorder_define_property(this, "userMedia", void 0), recorder_define_property(this, "userMediaTimeout", void 0), recorder_define_property(this, "retryTimeout", void 0), recorder_define_property(this, "connectionTimeout", void 0), recorder_define_property(this, "frameProgress", void 0), recorder_define_property(this, "sampleProgress", void 0), recorder_define_property(this, "canvas", void 0), recorder_define_property(this, "ctx", void 0), recorder_define_property(this, "userMediaLoaded", void 0), recorder_define_property(this, "userMediaLoading", false), recorder_define_property(this, "submitting", false), recorder_define_property(this, "unloaded", void 0), recorder_define_property(this, "stopTime", void 0), recorder_define_property(this, "stream", void 0), recorder_define_property(this, "connecting", false), recorder_define_property(this, "connected", false), recorder_define_property(this, "connectionFailed", false), recorder_define_property(this, "blocking", false), recorder_define_property(this, "built", false), recorder_define_property(this, "key", void 0), recorder_define_property(this, "waitingTime", void 0), recorder_define_property(this, "pingInterval", void 0), recorder_define_property(this, "frame", void 0), recorder_define_property(this, "recordingBuffer", void 0), recorder_define_property(this, "facingMode", void 0);
|
|
7535
7532
|
this.visuals = visuals;
|
|
7536
7533
|
this.replay = replay;
|
|
7537
7534
|
this.facingMode = options.video.facingMode;
|
|
@@ -8721,4 +8718,4 @@ const Reactions = {
|
|
|
8721
8718
|
label: "Sad"
|
|
8722
8719
|
}
|
|
8723
8720
|
};
|
|
8724
|
-
export { Reactions, VideoType, VideomailClient
|
|
8721
|
+
export { Reactions, VideoType, VideomailClient };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ErrorObject } from "serialize-error";
|
|
2
2
|
import type { IBrowser, ICPU, IDevice, IEngine, IOS } from "ua-parser-js";
|
|
3
|
-
import { CapacitorDeviceMetadata } from "./device.js";
|
|
4
3
|
export interface VideomailErrorData {
|
|
5
4
|
cause?: any;
|
|
6
5
|
promise?: any;
|
|
@@ -41,7 +40,6 @@ export interface FullVideomailErrorData extends VideomailErrorData {
|
|
|
41
40
|
clientIp?: string | null | undefined;
|
|
42
41
|
userAgent?: string | null | undefined;
|
|
43
42
|
isBot?: boolean | undefined;
|
|
44
|
-
capacitorDevice: CapacitorDeviceMetadata;
|
|
45
43
|
supportedConstraints?: MediaTrackSupportedConstraints | undefined;
|
|
46
44
|
enumerateDevices?: MediaDeviceInfo[] | undefined;
|
|
47
45
|
usedConstraints?: MediaStreamConstraints | undefined;
|
|
@@ -25,6 +25,7 @@ declare class Recorder extends Despot {
|
|
|
25
25
|
private userMedia?;
|
|
26
26
|
private userMediaTimeout?;
|
|
27
27
|
private retryTimeout?;
|
|
28
|
+
private connectionTimeout?;
|
|
28
29
|
private frameProgress?;
|
|
29
30
|
private sampleProgress?;
|
|
30
31
|
private canvas?;
|
|
@@ -37,6 +38,7 @@ declare class Recorder extends Despot {
|
|
|
37
38
|
private stream?;
|
|
38
39
|
private connecting;
|
|
39
40
|
private connected;
|
|
41
|
+
private connectionFailed;
|
|
40
42
|
private blocking;
|
|
41
43
|
private built;
|
|
42
44
|
private key?;
|
|
@@ -53,6 +55,8 @@ declare class Recorder extends Despot {
|
|
|
53
55
|
show(): void;
|
|
54
56
|
private onUserMediaReady;
|
|
55
57
|
private clearRetryTimeout;
|
|
58
|
+
private clearConnectionTimeout;
|
|
59
|
+
private failConnection;
|
|
56
60
|
private calculateFrameProgress;
|
|
57
61
|
private calculateSampleProgress;
|
|
58
62
|
private updateOverallProgress;
|