uapp-communication-sdk 1.0.0-dev.90 → 1.0.0-dev.95
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/communication-sdk.cjs +17 -17
- package/communication-sdk.js +3015 -2947
- package/communication-sdk.standalone.js +142 -142
- package/package.json +1 -1
- package/types/features/calls/application/index.d.ts +1 -0
- package/types/features/calls/application/index.d.ts.map +1 -1
- package/types/features/calls/application/use-cases/heartbeat-call.d.ts +26 -0
- package/types/features/calls/application/use-cases/heartbeat-call.d.ts.map +1 -0
- package/types/features/calls/calls-module.d.ts +2 -1
- package/types/features/calls/calls-module.d.ts.map +1 -1
- package/types/features/calls/domain/call.d.ts +16 -1
- package/types/features/calls/domain/call.d.ts.map +1 -1
- package/types/features/calls/domain/ports/call-gateway.d.ts +3 -1
- package/types/features/calls/domain/ports/call-gateway.d.ts.map +1 -1
- package/types/features/calls/infrastructure/call-mappers.d.ts +3 -2
- package/types/features/calls/infrastructure/call-mappers.d.ts.map +1 -1
- package/types/features/calls/infrastructure/dto/call-dtos.d.ts +12 -0
- package/types/features/calls/infrastructure/dto/call-dtos.d.ts.map +1 -1
- package/types/features/calls/infrastructure/http-call-gateway.d.ts +2 -1
- package/types/features/calls/infrastructure/http-call-gateway.d.ts.map +1 -1
- package/types/features/calls/infrastructure/http-call-routes.d.ts +1 -0
- package/types/features/calls/infrastructure/http-call-routes.d.ts.map +1 -1
- package/types/features/calls/presentation/CallCenter.d.ts.map +1 -1
- package/types/features/calls/presentation/CallOverlay.d.ts.map +1 -1
- package/types/features/calls/presentation/use-call-actions.d.ts +8 -0
- package/types/features/calls/presentation/use-call-actions.d.ts.map +1 -1
- package/types/features/calls/presentation/use-call-heartbeat.d.ts +26 -0
- package/types/features/calls/presentation/use-call-heartbeat.d.ts.map +1 -0
- package/types/features/settings/presentation/FeedSettingsPage.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -2,4 +2,5 @@ export { StartCallUseCase, type StartCallUseCaseDeps } from './use-cases/start-c
|
|
|
2
2
|
export { AcceptCallUseCase, type AcceptCallUseCaseDeps } from './use-cases/accept-call';
|
|
3
3
|
export { DeclineCallUseCase, CancelCallUseCase, EndCallUseCase, type CallSignalUseCaseDeps, } from './use-cases/respond-call';
|
|
4
4
|
export { GetCallHistoryUseCase, type GetCallHistoryUseCaseDeps, } from './use-cases/get-call-history';
|
|
5
|
+
export { HeartbeatCallUseCase, type HeartbeatCallUseCaseDeps, } from './use-cases/heartbeat-call';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/application/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,KAAK,qBAAqB,GAC3B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,KAAK,yBAAyB,GAC/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,GAC9B,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Logger } from '@core/logger';
|
|
2
|
+
import type { Result } from '@core/result';
|
|
3
|
+
import type { CallError, CallGateway, CallLiveness } from '../../domain';
|
|
4
|
+
export interface HeartbeatCallUseCaseDeps {
|
|
5
|
+
readonly callGateway: CallGateway;
|
|
6
|
+
readonly logger: Logger;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Reports that we are still in a connected call, and reads back whether it still exists.
|
|
10
|
+
*
|
|
11
|
+
* <p>The server has no other way to know. An open realtime connection does not mean the person is in the
|
|
12
|
+
* call, a closed one does not mean they left it, and the media runs through the provider where the server
|
|
13
|
+
* cannot look — so without this the call's Active flag has no expiry, and the one case that matters
|
|
14
|
+
* (nobody left who is able to end it) is exactly the case it never survives.</p>
|
|
15
|
+
*
|
|
16
|
+
* <p>Logged at debug, not warn, unlike its siblings: beats fail routinely and harmlessly whenever the
|
|
17
|
+
* network wobbles — which is precisely when they are most likely to fail — and the next one is fifteen
|
|
18
|
+
* seconds away. Warning on each would turn ordinary conditions into noise.</p>
|
|
19
|
+
*/
|
|
20
|
+
export declare class HeartbeatCallUseCase {
|
|
21
|
+
private readonly callGateway;
|
|
22
|
+
private readonly logger;
|
|
23
|
+
constructor(deps: HeartbeatCallUseCaseDeps);
|
|
24
|
+
execute(callId: string): Promise<Result<CallLiveness, CallError>>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=heartbeat-call.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heartbeat-call.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/calls/application/use-cases/heartbeat-call.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEzE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEb,IAAI,EAAE,wBAAwB;IAKpC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;CAO/E"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HttpClient } from '@core/http';
|
|
2
2
|
import type { Logger } from '@core/logger';
|
|
3
3
|
import type { RealtimeConnection } from '@core/realtime';
|
|
4
|
-
import { AcceptCallUseCase, CancelCallUseCase, DeclineCallUseCase, EndCallUseCase, GetCallHistoryUseCase, StartCallUseCase } from './application';
|
|
4
|
+
import { AcceptCallUseCase, CancelCallUseCase, DeclineCallUseCase, EndCallUseCase, GetCallHistoryUseCase, HeartbeatCallUseCase, StartCallUseCase } from './application';
|
|
5
5
|
import { type CallStoreApi } from './store/call-store';
|
|
6
6
|
export interface CallsModuleDeps {
|
|
7
7
|
readonly logger: Logger;
|
|
@@ -15,6 +15,7 @@ export interface CallsModule {
|
|
|
15
15
|
readonly declineCall: DeclineCallUseCase;
|
|
16
16
|
readonly cancelCall: CancelCallUseCase;
|
|
17
17
|
readonly endCall: EndCallUseCase;
|
|
18
|
+
readonly heartbeatCall: HeartbeatCallUseCase;
|
|
18
19
|
readonly getCallHistory: GetCallHistoryUseCase;
|
|
19
20
|
readonly realtime: RealtimeConnection;
|
|
20
21
|
/** The single global call's ephemeral state machine. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calls-module.d.ts","sourceRoot":"","sources":["../../../../../src/features/calls/calls-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,eAAe,KAAG,
|
|
1
|
+
{"version":3,"file":"calls-module.d.ts","sourceRoot":"","sources":["../../../../../src/features/calls/calls-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,eAAe,KAAG,WAmBzD,CAAC"}
|
|
@@ -4,6 +4,8 @@ export type CallDirection = 'outgoing' | 'incoming';
|
|
|
4
4
|
export type CallHistoryStatus = 'Ringing' | 'Active' | 'Ended' | 'Declined' | 'Missed' | 'Canceled' | 'Failed';
|
|
5
5
|
export declare const CALL_START_RINGING = "ringing";
|
|
6
6
|
export declare const CALL_START_CALLEE_UNAVAILABLE = "callee_unavailable";
|
|
7
|
+
/** The callee was reachable but already in another call. Different advice: try again shortly. */
|
|
8
|
+
export declare const CALL_START_CALLEE_BUSY = "callee_busy";
|
|
7
9
|
/** The short-lived credential a participant hands to the media SDK to join the call room. */
|
|
8
10
|
export interface CallJoinTicket {
|
|
9
11
|
readonly token: string;
|
|
@@ -22,7 +24,7 @@ export interface IncomingCall {
|
|
|
22
24
|
/** The result of placing a call. */
|
|
23
25
|
export interface StartCallResult {
|
|
24
26
|
readonly callId: string;
|
|
25
|
-
readonly status: typeof CALL_START_RINGING | typeof CALL_START_CALLEE_UNAVAILABLE;
|
|
27
|
+
readonly status: typeof CALL_START_RINGING | typeof CALL_START_CALLEE_UNAVAILABLE | typeof CALL_START_CALLEE_BUSY;
|
|
26
28
|
/** Present (caller's token) only when the callee was online and it is now ringing. */
|
|
27
29
|
readonly joinTicket: CallJoinTicket | null;
|
|
28
30
|
}
|
|
@@ -46,4 +48,17 @@ export interface CallHistoryPage {
|
|
|
46
48
|
readonly items: readonly CallHistoryItem[];
|
|
47
49
|
readonly total: number;
|
|
48
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* The server's verdict on a call we reported being in.
|
|
53
|
+
*
|
|
54
|
+
* <p>A heartbeat is two things at once: us telling the server we are still here, and the server telling
|
|
55
|
+
* us whether the call still exists. The second matters because the push that announces a call ending
|
|
56
|
+
* reaches nobody who was offline when it was sent, and nothing repeats it — so a client coming back from
|
|
57
|
+
* a blip would otherwise hold a dead call open on screen for ever.</p>
|
|
58
|
+
*/
|
|
59
|
+
export interface CallLiveness {
|
|
60
|
+
readonly active: boolean;
|
|
61
|
+
/** Why it ended, when it has. Null while the call is still running. */
|
|
62
|
+
readonly endReason: string | null;
|
|
63
|
+
}
|
|
49
64
|
//# sourceMappingURL=call.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/domain/call.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"call.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/domain/call.ts"],"names":[],"mappings":"AAAA,qGAAqG;AAErG,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpD,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAClE,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AAEpD,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qGAAqG;IACrG,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EACX,OAAO,kBAAkB,GACzB,OAAO,6BAA6B,GACpC,OAAO,sBAAsB,CAAC;IAClC,sFAAsF;IACtF,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;CAC5C;AAED,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Result } from '@core/result';
|
|
2
2
|
import type { CallError } from '../errors/call-errors';
|
|
3
|
-
import type { CallHistoryPage, CallJoinTicket, CallMediaType, StartCallResult } from '../call';
|
|
3
|
+
import type { CallHistoryPage, CallJoinTicket, CallLiveness, CallMediaType, StartCallResult } from '../call';
|
|
4
4
|
/**
|
|
5
5
|
* Port to the calling HTTP service. Every method returns `Promise<Result<T, CallError>>` and never
|
|
6
6
|
* throws (errors are values). Ringing and state-change pushes arrive out-of-band over the realtime
|
|
@@ -12,6 +12,8 @@ export interface CallGateway {
|
|
|
12
12
|
decline(callId: string): Promise<Result<void, CallError>>;
|
|
13
13
|
cancel(callId: string): Promise<Result<void, CallError>>;
|
|
14
14
|
end(callId: string): Promise<Result<void, CallError>>;
|
|
15
|
+
/** Report that we are still in this call, and learn whether it is still running. */
|
|
16
|
+
heartbeat(callId: string): Promise<Result<CallLiveness, CallError>>;
|
|
15
17
|
history(skipCount: number, maxResultCount: number): Promise<Result<CallHistoryPage, CallError>>;
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=call-gateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-gateway.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/calls/domain/ports/call-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CACH,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtD,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;CAChD"}
|
|
1
|
+
{"version":3,"file":"call-gateway.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/calls/domain/ports/call-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,aAAa,EACb,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CACH,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;IAE/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE1D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAEtD,oFAAoF;IACpF,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IAEpE,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;CAChD"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { CallHistoryItem, CallHistoryPage, CallJoinTicket, StartCallResult } from '../domain';
|
|
2
|
-
import type { CallHistoryItemDto, CallHistoryPageDto, CallJoinTicketDto, CallStartResultDto } from './dto/call-dtos';
|
|
1
|
+
import type { CallHistoryItem, CallHistoryPage, CallJoinTicket, CallLiveness, StartCallResult } from '../domain';
|
|
2
|
+
import type { CallHistoryItemDto, CallHistoryPageDto, CallJoinTicketDto, CallLivenessDto, CallStartResultDto } from './dto/call-dtos';
|
|
3
3
|
export declare const toCallJoinTicket: (dto: CallJoinTicketDto) => CallJoinTicket;
|
|
4
4
|
export declare const toStartCallResult: (dto: CallStartResultDto) => StartCallResult;
|
|
5
5
|
export declare const toCallHistoryItem: (dto: CallHistoryItemDto) => CallHistoryItem;
|
|
6
6
|
export declare const toCallHistoryPage: (dto: CallHistoryPageDto) => CallHistoryPage;
|
|
7
|
+
export declare const toCallLiveness: (dto: CallLivenessDto) => CallLiveness;
|
|
7
8
|
//# sourceMappingURL=call-mappers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-mappers.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/infrastructure/call-mappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAEf,cAAc,
|
|
1
|
+
{"version":3,"file":"call-mappers.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/infrastructure/call-mappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EAEf,cAAc,EACd,YAAY,EAEZ,eAAe,EAChB,MAAM,WAAW,CAAC;AAMnB,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAKzB,eAAO,MAAM,gBAAgB,GAAI,KAAK,iBAAiB,KAAG,cAKxD,CAAC;AAsBH,eAAO,MAAM,iBAAiB,GAAI,KAAK,kBAAkB,KAAG,eAI1D,CAAC;AAEH,eAAO,MAAM,iBAAiB,GAAI,KAAK,kBAAkB,KAAG,eAc1D,CAAC;AAEH,eAAO,MAAM,iBAAiB,GAAI,KAAK,kBAAkB,KAAG,eAG1D,CAAC;AAEH,eAAO,MAAM,cAAc,GAAI,KAAK,eAAe,KAAG,YAGpD,CAAC"}
|
|
@@ -17,6 +17,18 @@ export declare const CallJoinTicketDtoSchema: z.ZodObject<{
|
|
|
17
17
|
participantName: z.ZodString;
|
|
18
18
|
}, z.ZodTypeAny, "passthrough">>;
|
|
19
19
|
export type CallJoinTicketDto = z.infer<typeof CallJoinTicketDtoSchema>;
|
|
20
|
+
/** Mirrors backend `CallHeartbeatResultDto`. */
|
|
21
|
+
export declare const CallLivenessDtoSchema: z.ZodObject<{
|
|
22
|
+
active: z.ZodBoolean;
|
|
23
|
+
endReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
24
|
+
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
|
|
25
|
+
active: z.ZodBoolean;
|
|
26
|
+
endReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
27
|
+
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
|
28
|
+
active: z.ZodBoolean;
|
|
29
|
+
endReason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
30
|
+
}, z.ZodTypeAny, "passthrough">>;
|
|
31
|
+
export type CallLivenessDto = z.infer<typeof CallLivenessDtoSchema>;
|
|
20
32
|
/** Mirrors backend `CallStartResultDto`. */
|
|
21
33
|
export declare const CallStartResultDtoSchema: z.ZodObject<{
|
|
22
34
|
callId: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-dtos.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/calls/infrastructure/dto/call-dtos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;gCAOpB,CAAC;AAEjB,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAMrB,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAgBrB,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,gDAAgD;AAChD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAKrB,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"call-dtos.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/calls/infrastructure/dto/call-dtos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;gCAOpB,CAAC;AAEjB,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,gDAAgD;AAChD,eAAO,MAAM,qBAAqB;;;;;;;;;gCAKlB,CAAC;AAEjB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAMrB,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAgBrB,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,gDAAgD;AAChD,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAKrB,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HttpClient } from '@core/http';
|
|
2
2
|
import type { Logger } from '@core/logger';
|
|
3
3
|
import { type Result } from '@core/result';
|
|
4
|
-
import { type CallError, type CallGateway, type CallHistoryPage, type CallJoinTicket, type CallMediaType, type StartCallResult } from '../domain';
|
|
4
|
+
import { type CallError, type CallGateway, type CallHistoryPage, type CallJoinTicket, type CallLiveness, type CallMediaType, type StartCallResult } from '../domain';
|
|
5
5
|
export interface HttpCallGatewayDeps {
|
|
6
6
|
readonly httpClient: HttpClient;
|
|
7
7
|
readonly logger: Logger;
|
|
@@ -17,6 +17,7 @@ export declare class HttpCallGateway implements CallGateway {
|
|
|
17
17
|
constructor(deps: HttpCallGatewayDeps);
|
|
18
18
|
start(calleeUserId: string, type: CallMediaType): Promise<Result<StartCallResult, CallError>>;
|
|
19
19
|
accept(callId: string): Promise<Result<CallJoinTicket, CallError>>;
|
|
20
|
+
heartbeat(callId: string): Promise<Result<CallLiveness, CallError>>;
|
|
20
21
|
decline(callId: string): Promise<Result<void, CallError>>;
|
|
21
22
|
cancel(callId: string): Promise<Result<void, CallError>>;
|
|
22
23
|
end(callId: string): Promise<Result<void, CallError>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-call-gateway.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/infrastructure/http-call-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,cAAc,CAAC;AACpD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"http-call-gateway.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/infrastructure/http-call-gateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,cAAc,CAAC;AACpD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AAenB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEb,IAAI,EAAE,mBAAmB;IAK/B,KAAK,CAChB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAgBjC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAalE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAazE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAIzD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAIxD,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAI/C,OAAO,CAClB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAehC,MAAM;IAYpB,OAAO,CAAC,IAAI;CAIb"}
|
|
@@ -5,6 +5,7 @@ export declare const CALL_ROUTES: {
|
|
|
5
5
|
readonly decline: (callId: string) => string;
|
|
6
6
|
readonly cancel: (callId: string) => string;
|
|
7
7
|
readonly end: (callId: string) => string;
|
|
8
|
+
readonly heartbeat: (callId: string) => string;
|
|
8
9
|
readonly history: (skipCount: number, maxResultCount: number) => string;
|
|
9
10
|
};
|
|
10
11
|
//# sourceMappingURL=http-call-routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-call-routes.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/infrastructure/http-call-routes.ts"],"names":[],"mappings":"AAGA,kEAAkE;AAClE,eAAO,MAAM,WAAW;;8BAEL,MAAM,KAAG,MAAM;+BACd,MAAM,KAAG,MAAM;8BAChB,MAAM,KAAG,MAAM;2BAClB,MAAM,KAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"http-call-routes.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/infrastructure/http-call-routes.ts"],"names":[],"mappings":"AAGA,kEAAkE;AAClE,eAAO,MAAM,WAAW;;8BAEL,MAAM,KAAG,MAAM;+BACd,MAAM,KAAG,MAAM;8BAChB,MAAM,KAAG,MAAM;2BAClB,MAAM,KAAG,MAAM;iCACT,MAAM,KAAG,MAAM;kCACd,MAAM,kBAAkB,MAAM,KAAG,MAAM;CAEpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallCenter.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/presentation/CallCenter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CallCenter.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/presentation/CallCenter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAqB,MAAM,OAAO,CAAC;AAU7D;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,YAAY,GAAG,IAyF5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallOverlay.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/presentation/CallOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA+C,MAAM,OAAO,CAAC;AAQvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"CallOverlay.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/presentation/CallOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA+C,MAAM,OAAO,CAAC;AAQvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuOzD,sGAAsG;AACtG,eAAO,MAAM,WAAW,GAAI,cAEzB;IACD,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,KAAG,YAAY,GAAG,IA8ElB,CAAC"}
|
|
@@ -8,6 +8,14 @@ export interface CallActionsApi {
|
|
|
8
8
|
readonly decline: () => Promise<void>;
|
|
9
9
|
/** Hang up: cancels a still-ringing outgoing call, ends a connected one. */
|
|
10
10
|
readonly hangup: () => Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* The media session stopped on its own — the network dropped, the room closed, the engine failed.
|
|
13
|
+
*
|
|
14
|
+
* <p>Separate from {@link hangup} because nobody chose it, and because the server has no other way to
|
|
15
|
+
* find out: a lost websocket is indistinguishable from a closed laptop, and neither reaches it. Without
|
|
16
|
+
* this the call stays Active on the server and both people go on reading as "in a call".</p>
|
|
17
|
+
*/
|
|
18
|
+
readonly mediaEnded: () => Promise<void>;
|
|
11
19
|
readonly toggleMute: () => void;
|
|
12
20
|
}
|
|
13
21
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-call-actions.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/presentation/use-call-actions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-call-actions.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/presentation/use-call-actions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AA6EpD,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,QAAO,cAsFjC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How often a client in a connected call reports that it is still there. Matches the backend's
|
|
3
|
+
* `CallConsts.HeartbeatIntervalSeconds` — the server's freshness and reclaim windows are sized as
|
|
4
|
+
* multiples of this, so the two must not drift apart.
|
|
5
|
+
*/
|
|
6
|
+
export declare const CALL_HEARTBEAT_INTERVAL_MS = 15000;
|
|
7
|
+
/**
|
|
8
|
+
* Keeps the server informed that this client is still in the call, and listens to what it says back.
|
|
9
|
+
*
|
|
10
|
+
* <p><b>Why it exists.</b> A call leaves Active only when a client asks it to, and the case that broke
|
|
11
|
+
* was the one where neither client can ask: both networks drop, so both people went on reading as "in a
|
|
12
|
+
* call" indefinitely with nothing anywhere to correct it. The server cannot observe the difference —
|
|
13
|
+
* a dropped connection looks exactly like a closed laptop, and the media runs through the provider where
|
|
14
|
+
* it cannot look at all. A beat is the only positive evidence it ever gets.</p>
|
|
15
|
+
*
|
|
16
|
+
* <p><b>And the other direction.</b> The reply says whether the call still exists. A call can end while
|
|
17
|
+
* this client is unreachable — the other party hung up during a blip, or the server reclaimed it — and
|
|
18
|
+
* the push announcing that reached nobody, with nothing to repeat it. Without reading the reply, a client
|
|
19
|
+
* returning from a blip would hold a dead call on screen until the person closed it themselves.</p>
|
|
20
|
+
*
|
|
21
|
+
* <p>A failed beat is deliberately NOT treated as evidence of anything. The network wobbling is exactly
|
|
22
|
+
* when beats fail, and tearing the call down on one lost request would end calls that are perfectly fine.
|
|
23
|
+
* Only an explicit "this call is over" from the server ends anything here.</p>
|
|
24
|
+
*/
|
|
25
|
+
export declare const useCallHeartbeat: (callId: string | null, isActive: boolean) => void;
|
|
26
|
+
//# sourceMappingURL=use-call-heartbeat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-call-heartbeat.d.ts","sourceRoot":"","sources":["../../../../../../src/features/calls/presentation/use-call-heartbeat.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,UAAU,OAAO,KAAG,IA2C3E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeedSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../../src/features/settings/presentation/FeedSettingsPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FeedSettingsPage.d.ts","sourceRoot":"","sources":["../../../../../../src/features/settings/presentation/FeedSettingsPage.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,OAAO,CAAC;AAoDpD,eAAO,MAAM,gBAAgB,QAAO,YAkFnC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|