@simplito/privmx-webendpoint 2.6.4 → 2.7.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/CONTRIBUTING.md +86 -0
- package/README.md +97 -7
- package/assets/driver-web-context.js +1 -1
- package/assets/e2ee-worker.js +1 -1
- package/assets/endpoint-wasm-module.js +3 -3
- package/assets/endpoint-wasm-module.wasm +0 -0
- package/assets/rms-processor.js +1 -0
- package/build-manifest.sh +6 -0
- package/{FinalizationHelper.js → dist/FinalizationHelper.js} +1 -1
- package/dist/ServerTypes.d.ts +7 -0
- package/{Types.d.ts → dist/Types.d.ts} +97 -10
- package/{Types.js → dist/Types.js} +17 -32
- package/{api → dist/api}/Api.d.ts +2 -0
- package/{api → dist/api}/Api.js +18 -1
- package/{api → dist/api}/ConnectionNative.js +1 -1
- package/{api → dist/api}/CryptoApiNative.js +1 -2
- package/{api → dist/api}/InboxApiNative.d.ts +21 -2
- package/{api → dist/api}/KvdbApiNative.d.ts +19 -2
- package/dist/api/NativeError.d.ts +13 -0
- package/dist/api/NativeError.js +20 -0
- package/{api → dist/api}/StoreApiNative.d.ts +19 -2
- package/dist/api/StreamApiNative.d.ts +72 -0
- package/dist/api/StreamApiNative.js +142 -0
- package/{api → dist/api}/ThreadApiNative.d.ts +19 -2
- package/dist/assets/e2ee-worker.js +1 -0
- package/dist/bundle/privmx-endpoint-web.js +2 -0
- package/dist/bundle/privmx-endpoint-web.js.LICENSE.txt +30 -0
- package/dist/bundle/rms-processor.js +1 -0
- package/{extra → dist/extra}/PrivmxClient.d.ts +9 -9
- package/{extra → dist/extra}/PrivmxClient.js +12 -12
- package/{extra → dist/extra}/PublicConnection.d.ts +2 -2
- package/{extra → dist/extra}/PublicConnection.js +2 -2
- package/{extra → dist/extra}/__tests__/connectionEventManager.test.js +1 -3
- package/{extra → dist/extra}/__tests__/customEventManager.test.js +1 -3
- package/{extra → dist/extra}/__tests__/userEventManager.test.js +2 -6
- package/{extra → dist/extra}/__tests__/utils.test.js +18 -18
- package/{extra → dist/extra}/events.js +32 -12
- package/{extra → dist/extra}/files.d.ts +5 -5
- package/{extra → dist/extra}/files.js +11 -11
- package/{extra → dist/extra}/generics.d.ts +1 -1
- package/{extra → dist/extra}/inbox.d.ts +1 -1
- package/{extra → dist/extra}/inbox.js +2 -2
- package/{extra → dist/extra}/index.d.ts +7 -7
- package/{extra → dist/extra}/managers.js +1 -1
- package/{extra → dist/extra}/utils.js +9 -9
- package/{index.d.ts → dist/index.d.ts} +3 -2
- package/{index.js → dist/index.js} +4 -1
- package/{service → dist/service}/Connection.js +13 -6
- package/{service → dist/service}/CryptoApi.js +2 -8
- package/{service → dist/service}/EndpointFactory.d.ts +11 -0
- package/{service → dist/service}/EndpointFactory.js +45 -10
- package/{service → dist/service}/EventApi.js +9 -5
- package/dist/service/EventDispatcher.d.ts +15 -0
- package/dist/service/EventDispatcher.js +25 -0
- package/{service → dist/service}/EventQueue.d.ts +4 -4
- package/{service → dist/service}/EventQueue.js +5 -9
- package/{service → dist/service}/ExtKey.d.ts +10 -10
- package/{service → dist/service}/ExtKey.js +10 -10
- package/{service → dist/service}/InboxApi.js +7 -11
- package/{service → dist/service}/KvdbApi.js +12 -7
- package/{service → dist/service}/StoreApi.js +10 -15
- package/dist/service/StreamApi.d.ts +237 -0
- package/dist/service/StreamApi.js +442 -0
- package/{service → dist/service}/ThreadApi.js +6 -7
- package/{service → dist/service}/UserVerifierInterface.d.ts +2 -2
- package/dist/service/UserVerifierInterface.js +2 -0
- package/dist/service/WebRtcInterface.d.ts +58 -0
- package/dist/service/WebRtcInterface.js +8 -0
- package/{service → dist/service}/index.d.ts +3 -2
- package/{service → dist/service}/index.js +5 -3
- package/dist/webStreams/CryptoUtils.d.ts +24 -0
- package/dist/webStreams/CryptoUtils.js +58 -0
- package/dist/webStreams/KeyStore.d.ts +9 -0
- package/dist/webStreams/KeyStore.js +29 -0
- package/dist/webStreams/Logger.d.ts +7 -0
- package/dist/webStreams/Logger.js +25 -0
- package/dist/webStreams/PeerConnectionsManager.d.ts +20 -0
- package/dist/webStreams/PeerConnectionsManager.js +92 -0
- package/dist/webStreams/Queue.d.ts +19 -0
- package/dist/webStreams/Queue.js +70 -0
- package/dist/webStreams/Utils.d.ts +20 -0
- package/dist/webStreams/Utils.js +211 -0
- package/dist/webStreams/WebRtcClient.d.ts +85 -0
- package/dist/webStreams/WebRtcClient.js +437 -0
- package/dist/webStreams/WebRtcClientTypes.d.ts +64 -0
- package/dist/webStreams/WebRtcClientTypes.js +2 -0
- package/dist/webStreams/WebRtcConfig.d.ts +20 -0
- package/dist/webStreams/WebRtcConfig.js +53 -0
- package/dist/webStreams/WebRtcInterfaceImpl.d.ts +28 -0
- package/dist/webStreams/WebRtcInterfaceImpl.js +85 -0
- package/dist/webStreams/WebWorkerHelper copy.d.ts +0 -0
- package/dist/webStreams/WebWorkerHelper copy.js +17 -0
- package/dist/webStreams/WebWorkerHelper.d.ts +18 -0
- package/dist/webStreams/WebWorkerHelper.js +69 -0
- package/dist/webStreams/audio/ActiveSpeakerDetector.d.ts +38 -0
- package/dist/webStreams/audio/ActiveSpeakerDetector.js +64 -0
- package/dist/webStreams/audio/LocalAudioLevelMeter.d.ts +12 -0
- package/dist/webStreams/audio/LocalAudioLevelMeter.js +101 -0
- package/dist/webStreams/types/ApiTypes.d.ts +74 -0
- package/dist/webStreams/types/ApiTypes.js +2 -0
- package/dist/webStreams/types/BaseServerTypes.d.ts +10 -0
- package/dist/webStreams/types/BaseServerTypes.js +2 -0
- package/dist/webStreams/types/MediaServerWebSocketApiTypes.d.ts +255 -0
- package/dist/webStreams/types/MediaServerWebSocketApiTypes.js +2 -0
- package/dist/webStreams/types/SignalingReceiverTypes.d.ts +13 -0
- package/dist/webStreams/types/SignalingReceiverTypes.js +2 -0
- package/dist/webStreams/types/SignalingSenderTypes.d.ts +24 -0
- package/dist/webStreams/types/SignalingSenderTypes.js +2 -0
- package/dist/webStreams/types/StreamsApiTypes.d.ts +144 -0
- package/dist/webStreams/types/StreamsApiTypes.js +2 -0
- package/dist/webStreams/worker/WorkerEvents.d.ts +11 -0
- package/dist/webStreams/worker/WorkerEvents.js +2 -0
- package/dist/webStreams/worker/worker.d.ts +13 -0
- package/dist/webStreams/worker/worker.js +202 -0
- package/package.json +46 -15
- package/assets/endpoint-wasm-module.worker.js +0 -1
- package/assets/privmx-endpoint-web.js +0 -2
- package/bundle/privmx-endpoint-web.js +0 -2
- package/bundle/privmx-endpoint-web.js.LICENSE.txt +0 -10
- /package/{FinalizationHelper.d.ts → dist/FinalizationHelper.d.ts} +0 -0
- /package/{extra/generics.js → dist/ServerTypes.js} +0 -0
- /package/{api → dist/api}/ApiStatic.d.ts +0 -0
- /package/{api → dist/api}/ApiStatic.js +0 -0
- /package/{api → dist/api}/BaseNative.d.ts +0 -0
- /package/{api → dist/api}/BaseNative.js +0 -0
- /package/{api → dist/api}/ConnectionNative.d.ts +0 -0
- /package/{api → dist/api}/CryptoApiNative.d.ts +0 -0
- /package/{api → dist/api}/EventApiNative.d.ts +0 -0
- /package/{api → dist/api}/EventApiNative.js +0 -0
- /package/{api → dist/api}/EventQueueNative.d.ts +0 -0
- /package/{api → dist/api}/EventQueueNative.js +0 -0
- /package/{api → dist/api}/ExtKeyNative.d.ts +0 -0
- /package/{api → dist/api}/ExtKeyNative.js +0 -0
- /package/{api → dist/api}/IdGenerator.d.ts +0 -0
- /package/{api → dist/api}/IdGenerator.js +0 -0
- /package/{api → dist/api}/InboxApiNative.js +0 -0
- /package/{api → dist/api}/KvdbApiNative.js +0 -0
- /package/{api → dist/api}/StoreApiNative.js +0 -0
- /package/{api → dist/api}/ThreadApiNative.js +0 -0
- /package/{bundle.d.ts → dist/bundle.d.ts} +0 -0
- /package/{bundle.js → dist/bundle.js} +0 -0
- /package/{extra → dist/extra}/__mocks__/constants.d.ts +0 -0
- /package/{extra → dist/extra}/__mocks__/constants.js +0 -0
- /package/{extra → dist/extra}/__mocks__/mockContainerSubscriber.d.ts +0 -0
- /package/{extra → dist/extra}/__mocks__/mockContainerSubscriber.js +0 -0
- /package/{extra → dist/extra}/__mocks__/mockEventQueue.d.ts +0 -0
- /package/{extra → dist/extra}/__mocks__/mockEventQueue.js +0 -0
- /package/{extra → dist/extra}/__mocks__/utils.d.ts +0 -0
- /package/{extra → dist/extra}/__mocks__/utils.js +0 -0
- /package/{extra → dist/extra}/__tests__/connectionEventManager.test.d.ts +0 -0
- /package/{extra → dist/extra}/__tests__/customEventManager.test.d.ts +0 -0
- /package/{extra → dist/extra}/__tests__/eventsManager.test.d.ts +0 -0
- /package/{extra → dist/extra}/__tests__/eventsManager.test.js +0 -0
- /package/{extra → dist/extra}/__tests__/inboxEventManager.d.ts +0 -0
- /package/{extra → dist/extra}/__tests__/inboxEventManager.js +0 -0
- /package/{extra → dist/extra}/__tests__/storeEventManager.test.d.ts +0 -0
- /package/{extra → dist/extra}/__tests__/storeEventManager.test.js +0 -0
- /package/{extra → dist/extra}/__tests__/threadEventManager.test.d.ts +0 -0
- /package/{extra → dist/extra}/__tests__/threadEventManager.test.js +0 -0
- /package/{extra → dist/extra}/__tests__/userEventManager.test.d.ts +0 -0
- /package/{extra → dist/extra}/__tests__/utils.test.d.ts +0 -0
- /package/{extra → dist/extra}/events.d.ts +0 -0
- /package/{service/UserVerifierInterface.js → dist/extra/generics.js} +0 -0
- /package/{extra → dist/extra}/index.js +0 -0
- /package/{extra → dist/extra}/managers.d.ts +0 -0
- /package/{extra → dist/extra}/subscriptions.d.ts +0 -0
- /package/{extra → dist/extra}/subscriptions.js +0 -0
- /package/{extra → dist/extra}/utils.d.ts +0 -0
- /package/{service → dist/service}/BaseApi.d.ts +0 -0
- /package/{service → dist/service}/BaseApi.js +0 -0
- /package/{service → dist/service}/Connection.d.ts +0 -0
- /package/{service → dist/service}/CryptoApi.d.ts +0 -0
- /package/{service → dist/service}/EventApi.d.ts +0 -0
- /package/{service → dist/service}/InboxApi.d.ts +0 -0
- /package/{service → dist/service}/KvdbApi.d.ts +0 -0
- /package/{service → dist/service}/StoreApi.d.ts +0 -0
- /package/{service → dist/service}/ThreadApi.d.ts +0 -0
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
class RMSProcessor extends AudioWorkletProcessor{constructor(){super(),this.smoothing=.3,this.prev=0}process(s){const t=s[0];if(!t||!t[0])return!0;const o=t[0];let r=0;for(let s=0;s<o.length;s++){const t=o[s];r+=t*t}const e=Math.sqrt(r/o.length),h=this.smoothing*e+(1-this.smoothing)*this.prev;this.prev=h;let c=20*Math.log10(h||1e-8);return c<-100&&(c=-100),this.port.postMessage({rmsDb:c}),!0}}registerProcessor("rms-processor",RMSProcessor);
|
|
@@ -23,7 +23,7 @@ class FinalizationHelper {
|
|
|
23
23
|
scheduler = null;
|
|
24
24
|
constructor(wasmLib) {
|
|
25
25
|
this.wasmLib = wasmLib;
|
|
26
|
-
this.finalizationRegistry = new FinalizationRegistry(onCleanup => {
|
|
26
|
+
this.finalizationRegistry = new FinalizationRegistry((onCleanup) => {
|
|
27
27
|
const api = ApiStatic_1.ApiStatic.getInstance();
|
|
28
28
|
this.finalizationQueue.push(onCleanup.onFree);
|
|
29
29
|
this.scheduleCleanup();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as ServerTypes from "./webStreams/types/ApiTypes";
|
|
2
|
+
import type * as StreamsApi from "./webStreams/types/StreamsApiTypes";
|
|
3
|
+
import type { AppRequest } from "./webStreams/types/BaseServerTypes";
|
|
4
|
+
import type * as SignalingFromServer from "./webStreams/types/SignalingSenderTypes";
|
|
5
|
+
import type * as SignalingApi from "./webStreams/types/SignalingReceiverTypes";
|
|
6
|
+
import type * as MediaServerApiTypes from "./webStreams/types/MediaServerWebSocketApiTypes";
|
|
7
|
+
export { ServerTypes as Types, AppRequest, StreamsApi, SignalingFromServer, SignalingApi, MediaServerApiTypes, };
|
|
@@ -9,6 +9,7 @@ See the License for the specific language governing permissions and
|
|
|
9
9
|
limitations under the License.
|
|
10
10
|
*/
|
|
11
11
|
import { ExtKey } from "./service/ExtKey";
|
|
12
|
+
import * as StreamsApiTypes from "./webStreams/types/ApiTypes";
|
|
12
13
|
export type SortOrder = "desc" | "asc";
|
|
13
14
|
/**
|
|
14
15
|
* Holds Event details
|
|
@@ -50,14 +51,14 @@ export interface PagingQuery {
|
|
|
50
51
|
queryAsJson?: string;
|
|
51
52
|
}
|
|
52
53
|
/**
|
|
53
|
-
* Contains results of listing methods
|
|
54
|
-
*
|
|
55
|
-
* @type {PagingList<T>}
|
|
56
|
-
*
|
|
57
|
-
* @param {number} totalAvailable total items available to get
|
|
58
|
-
* @param {T[]} readItems list of items read during single method call
|
|
59
|
-
*
|
|
60
|
-
*/
|
|
54
|
+
* Contains results of listing methods
|
|
55
|
+
*
|
|
56
|
+
* @type {PagingList<T>}
|
|
57
|
+
*
|
|
58
|
+
* @param {number} totalAvailable total items available to get
|
|
59
|
+
* @param {T[]} readItems list of items read during single method call
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
61
62
|
export interface PagingList<T> {
|
|
62
63
|
totalAvailable: number;
|
|
63
64
|
readItems: T[];
|
|
@@ -137,7 +138,7 @@ export interface ContextUserEventData {
|
|
|
137
138
|
*/
|
|
138
139
|
export interface UserWithAction {
|
|
139
140
|
user: UserWithPubKey;
|
|
140
|
-
action:
|
|
141
|
+
action: "login" | "logout";
|
|
141
142
|
}
|
|
142
143
|
/**
|
|
143
144
|
* Contains information about changed statuses of users in the Context.
|
|
@@ -561,6 +562,54 @@ export interface ItemPolicy {
|
|
|
561
562
|
update?: PolicyEntry;
|
|
562
563
|
delete?: PolicyEntry;
|
|
563
564
|
}
|
|
565
|
+
export type StreamId = StreamsApiTypes.StreamId;
|
|
566
|
+
export type StreamRoomId = StreamsApiTypes.StreamRoomId;
|
|
567
|
+
export type StreamHandle = number & {
|
|
568
|
+
_streamHandle: never;
|
|
569
|
+
};
|
|
570
|
+
export interface StreamRoom {
|
|
571
|
+
contextId: string;
|
|
572
|
+
streamRoomId: string;
|
|
573
|
+
createDate: number;
|
|
574
|
+
creator: string;
|
|
575
|
+
lastModificationDate: number;
|
|
576
|
+
lastModifier: string;
|
|
577
|
+
users: string[];
|
|
578
|
+
managers: string[];
|
|
579
|
+
version: number;
|
|
580
|
+
publicMeta: Uint8Array;
|
|
581
|
+
privateMeta: Uint8Array;
|
|
582
|
+
policy: ContainerPolicy;
|
|
583
|
+
statusCode: number;
|
|
584
|
+
closed: boolean;
|
|
585
|
+
}
|
|
586
|
+
export interface StreamInfo {
|
|
587
|
+
id: number;
|
|
588
|
+
userId: string;
|
|
589
|
+
dummy?: boolean;
|
|
590
|
+
tracks: TrackInfo[];
|
|
591
|
+
talking?: boolean;
|
|
592
|
+
}
|
|
593
|
+
export interface TrackInfo {
|
|
594
|
+
type: string;
|
|
595
|
+
mindex: string;
|
|
596
|
+
mid: string;
|
|
597
|
+
disabled?: boolean;
|
|
598
|
+
codec: string;
|
|
599
|
+
description?: string;
|
|
600
|
+
moderated?: boolean;
|
|
601
|
+
simulcast?: boolean;
|
|
602
|
+
svc?: boolean;
|
|
603
|
+
talking?: boolean;
|
|
604
|
+
}
|
|
605
|
+
export interface StreamPublishResult {
|
|
606
|
+
published: boolean;
|
|
607
|
+
data?: {
|
|
608
|
+
streamRoomId: StreamRoomId;
|
|
609
|
+
stream: StreamInfo;
|
|
610
|
+
userId: string;
|
|
611
|
+
};
|
|
612
|
+
}
|
|
564
613
|
/**
|
|
565
614
|
* Holds error details
|
|
566
615
|
*
|
|
@@ -584,7 +633,7 @@ export interface Error {
|
|
|
584
633
|
* @param {string} mnemonic BIP-39 mnemonic
|
|
585
634
|
* @param {ExtKey} extKey Ecc Key
|
|
586
635
|
* @param {Uint8Array} entropy BIP-39 entropy
|
|
587
|
-
*/
|
|
636
|
+
*/
|
|
588
637
|
export interface BIP39 {
|
|
589
638
|
mnemonic: string;
|
|
590
639
|
entropy: Uint8Array;
|
|
@@ -621,6 +670,26 @@ export interface BridgeIdentity {
|
|
|
621
670
|
pubKey?: string;
|
|
622
671
|
instanceId?: string;
|
|
623
672
|
}
|
|
673
|
+
export interface Key {
|
|
674
|
+
keyId: string;
|
|
675
|
+
key: Uint8Array;
|
|
676
|
+
type: number;
|
|
677
|
+
}
|
|
678
|
+
export interface StreamSubscription {
|
|
679
|
+
streamId: number;
|
|
680
|
+
streamTrackId?: string;
|
|
681
|
+
}
|
|
682
|
+
export interface TurnCredentials {
|
|
683
|
+
url: string;
|
|
684
|
+
username: string;
|
|
685
|
+
password: string;
|
|
686
|
+
expirationTime: number;
|
|
687
|
+
}
|
|
688
|
+
export interface RemoteStreamListener {
|
|
689
|
+
streamRoomId: StreamRoomId;
|
|
690
|
+
streamId?: StreamId;
|
|
691
|
+
onRemoteStreamTrack: (event: RTCTrackEvent) => void;
|
|
692
|
+
}
|
|
624
693
|
/**
|
|
625
694
|
* PKI Verification options
|
|
626
695
|
*
|
|
@@ -702,6 +771,20 @@ export declare enum KvdbEventSelectorType {
|
|
|
702
771
|
export declare enum EventsEventSelectorType {
|
|
703
772
|
CONTEXT_ID = 0
|
|
704
773
|
}
|
|
774
|
+
export declare enum StreamEventType {
|
|
775
|
+
STREAMROOM_CREATE = 0,
|
|
776
|
+
STREAMROOM_UPDATE = 1,
|
|
777
|
+
STREAMROOM_DELETE = 2,
|
|
778
|
+
STREAM_JOIN = 4,
|
|
779
|
+
STREAM_LEAVE = 5,
|
|
780
|
+
STREAM_PUBLISH = 6,
|
|
781
|
+
STREAM_UNPUBLISH = 7
|
|
782
|
+
}
|
|
783
|
+
export declare enum StreamEventSelectorType {
|
|
784
|
+
CONTEXT_ID = 0,
|
|
785
|
+
STREAMROOM_ID = 1,
|
|
786
|
+
STREAM_ID = 2
|
|
787
|
+
}
|
|
705
788
|
export type CollectionItemChange = {
|
|
706
789
|
itemId: string;
|
|
707
790
|
action: string;
|
|
@@ -712,3 +795,7 @@ export type CollectionChangedEventData = {
|
|
|
712
795
|
affectedItemsCount: number;
|
|
713
796
|
items: CollectionItemChange[];
|
|
714
797
|
};
|
|
798
|
+
export interface RecordingEncKey {
|
|
799
|
+
id: Uint8Array;
|
|
800
|
+
key: Uint8Array;
|
|
801
|
+
}
|
|
@@ -10,33 +10,7 @@ See the License for the specific language governing permissions and
|
|
|
10
10
|
limitations under the License.
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.EventsEventSelectorType = exports.KvdbEventSelectorType = exports.KvdbEventType = exports.InboxEventSelectorType = exports.InboxEventType = exports.ThreadEventSelectorType = exports.ThreadEventType = exports.StoreEventSelectorType = exports.StoreEventType = exports.ConnectionEventSelectorType = exports.ConnectionEventType = void 0;
|
|
14
|
-
;
|
|
15
|
-
;
|
|
16
|
-
;
|
|
17
|
-
;
|
|
18
|
-
;
|
|
19
|
-
;
|
|
20
|
-
;
|
|
21
|
-
;
|
|
22
|
-
;
|
|
23
|
-
;
|
|
24
|
-
;
|
|
25
|
-
;
|
|
26
|
-
;
|
|
27
|
-
;
|
|
28
|
-
;
|
|
29
|
-
;
|
|
30
|
-
;
|
|
31
|
-
;
|
|
32
|
-
;
|
|
33
|
-
;
|
|
34
|
-
;
|
|
35
|
-
;
|
|
36
|
-
;
|
|
37
|
-
;
|
|
38
|
-
;
|
|
39
|
-
;
|
|
13
|
+
exports.StreamEventSelectorType = exports.StreamEventType = exports.EventsEventSelectorType = exports.KvdbEventSelectorType = exports.KvdbEventType = exports.InboxEventSelectorType = exports.InboxEventType = exports.ThreadEventSelectorType = exports.ThreadEventType = exports.StoreEventSelectorType = exports.StoreEventType = exports.ConnectionEventSelectorType = exports.ConnectionEventType = void 0;
|
|
40
14
|
// Enums
|
|
41
15
|
var ConnectionEventType;
|
|
42
16
|
(function (ConnectionEventType) {
|
|
@@ -91,14 +65,12 @@ var InboxEventType;
|
|
|
91
65
|
InboxEventType[InboxEventType["ENTRY_DELETE"] = 4] = "ENTRY_DELETE";
|
|
92
66
|
InboxEventType[InboxEventType["COLLECTION_CHANGE"] = 5] = "COLLECTION_CHANGE";
|
|
93
67
|
})(InboxEventType || (exports.InboxEventType = InboxEventType = {}));
|
|
94
|
-
;
|
|
95
68
|
var InboxEventSelectorType;
|
|
96
69
|
(function (InboxEventSelectorType) {
|
|
97
70
|
InboxEventSelectorType[InboxEventSelectorType["CONTEXT_ID"] = 0] = "CONTEXT_ID";
|
|
98
71
|
InboxEventSelectorType[InboxEventSelectorType["INBOX_ID"] = 1] = "INBOX_ID";
|
|
99
72
|
InboxEventSelectorType[InboxEventSelectorType["ENTRY_ID"] = 2] = "ENTRY_ID";
|
|
100
73
|
})(InboxEventSelectorType || (exports.InboxEventSelectorType = InboxEventSelectorType = {}));
|
|
101
|
-
;
|
|
102
74
|
var KvdbEventType;
|
|
103
75
|
(function (KvdbEventType) {
|
|
104
76
|
KvdbEventType[KvdbEventType["KVDB_CREATE"] = 0] = "KVDB_CREATE";
|
|
@@ -110,16 +82,29 @@ var KvdbEventType;
|
|
|
110
82
|
KvdbEventType[KvdbEventType["ENTRY_DELETE"] = 6] = "ENTRY_DELETE";
|
|
111
83
|
KvdbEventType[KvdbEventType["COLLECTION_CHANGE"] = 7] = "COLLECTION_CHANGE";
|
|
112
84
|
})(KvdbEventType || (exports.KvdbEventType = KvdbEventType = {}));
|
|
113
|
-
;
|
|
114
85
|
var KvdbEventSelectorType;
|
|
115
86
|
(function (KvdbEventSelectorType) {
|
|
116
87
|
KvdbEventSelectorType[KvdbEventSelectorType["CONTEXT_ID"] = 0] = "CONTEXT_ID";
|
|
117
88
|
KvdbEventSelectorType[KvdbEventSelectorType["KVDB_ID"] = 1] = "KVDB_ID";
|
|
118
89
|
KvdbEventSelectorType[KvdbEventSelectorType["ENTRY_ID"] = 2] = "ENTRY_ID";
|
|
119
90
|
})(KvdbEventSelectorType || (exports.KvdbEventSelectorType = KvdbEventSelectorType = {}));
|
|
120
|
-
;
|
|
121
91
|
var EventsEventSelectorType;
|
|
122
92
|
(function (EventsEventSelectorType) {
|
|
123
93
|
EventsEventSelectorType[EventsEventSelectorType["CONTEXT_ID"] = 0] = "CONTEXT_ID";
|
|
124
94
|
})(EventsEventSelectorType || (exports.EventsEventSelectorType = EventsEventSelectorType = {}));
|
|
125
|
-
;
|
|
95
|
+
var StreamEventType;
|
|
96
|
+
(function (StreamEventType) {
|
|
97
|
+
StreamEventType[StreamEventType["STREAMROOM_CREATE"] = 0] = "STREAMROOM_CREATE";
|
|
98
|
+
StreamEventType[StreamEventType["STREAMROOM_UPDATE"] = 1] = "STREAMROOM_UPDATE";
|
|
99
|
+
StreamEventType[StreamEventType["STREAMROOM_DELETE"] = 2] = "STREAMROOM_DELETE";
|
|
100
|
+
StreamEventType[StreamEventType["STREAM_JOIN"] = 4] = "STREAM_JOIN";
|
|
101
|
+
StreamEventType[StreamEventType["STREAM_LEAVE"] = 5] = "STREAM_LEAVE";
|
|
102
|
+
StreamEventType[StreamEventType["STREAM_PUBLISH"] = 6] = "STREAM_PUBLISH";
|
|
103
|
+
StreamEventType[StreamEventType["STREAM_UNPUBLISH"] = 7] = "STREAM_UNPUBLISH";
|
|
104
|
+
})(StreamEventType || (exports.StreamEventType = StreamEventType = {}));
|
|
105
|
+
var StreamEventSelectorType;
|
|
106
|
+
(function (StreamEventSelectorType) {
|
|
107
|
+
StreamEventSelectorType[StreamEventSelectorType["CONTEXT_ID"] = 0] = "CONTEXT_ID";
|
|
108
|
+
StreamEventSelectorType[StreamEventSelectorType["STREAMROOM_ID"] = 1] = "STREAMROOM_ID";
|
|
109
|
+
StreamEventSelectorType[StreamEventSelectorType["STREAM_ID"] = 2] = "STREAM_ID";
|
|
110
|
+
})(StreamEventSelectorType || (exports.StreamEventSelectorType = StreamEventSelectorType = {}));
|
package/{api → dist/api}/Api.js
RENAMED
|
@@ -12,6 +12,7 @@ limitations under the License.
|
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.Api = void 0;
|
|
14
14
|
const IdGenerator_1 = require("./IdGenerator");
|
|
15
|
+
const NativeError_1 = require("./NativeError");
|
|
15
16
|
class Api {
|
|
16
17
|
lib;
|
|
17
18
|
promises;
|
|
@@ -34,7 +35,7 @@ class Api {
|
|
|
34
35
|
this.promises.get(result.taskId).resolve(result.result);
|
|
35
36
|
}
|
|
36
37
|
else {
|
|
37
|
-
this.promises.get(result.taskId).reject(result.error);
|
|
38
|
+
this.promises.get(result.taskId).reject(this.toNativeError(result.error));
|
|
38
39
|
}
|
|
39
40
|
this.promises.delete(result.taskId);
|
|
40
41
|
}
|
|
@@ -44,5 +45,21 @@ class Api {
|
|
|
44
45
|
setResultsCallback() {
|
|
45
46
|
this.lib.setResultsCallback((result) => this.resolveResult(result));
|
|
46
47
|
}
|
|
48
|
+
toNativeError(error) {
|
|
49
|
+
if (this.isRawCppError(error)) {
|
|
50
|
+
return new NativeError_1.NativeError(error);
|
|
51
|
+
}
|
|
52
|
+
if (error instanceof Error) {
|
|
53
|
+
return error;
|
|
54
|
+
}
|
|
55
|
+
return new Error(typeof error === "string" ? error : JSON.stringify(error));
|
|
56
|
+
}
|
|
57
|
+
isRawCppError(obj) {
|
|
58
|
+
return (typeof obj === "object" &&
|
|
59
|
+
obj !== null &&
|
|
60
|
+
"code" in obj &&
|
|
61
|
+
"name" in obj &&
|
|
62
|
+
"scope" in obj);
|
|
63
|
+
}
|
|
47
64
|
}
|
|
48
65
|
exports.Api = Api;
|
|
@@ -80,7 +80,7 @@ class ConnectionNative extends BaseNative_1.BaseNative {
|
|
|
80
80
|
return verifierInterface.verify(request);
|
|
81
81
|
}
|
|
82
82
|
throw new Error("Call on UserVerifierInterface with missing implementation");
|
|
83
|
-
}
|
|
83
|
+
},
|
|
84
84
|
};
|
|
85
85
|
this.userVerifierPtr = await this.runAsync((taskId) => this.api.lib.Connection_newUserVerifierInterface(taskId, connectionPtr, bindingId));
|
|
86
86
|
}
|
|
@@ -13,7 +13,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.CryptoApiNative = void 0;
|
|
14
14
|
const ExtKey_1 = require("../service/ExtKey");
|
|
15
15
|
const BaseNative_1 = require("./BaseNative");
|
|
16
|
-
;
|
|
17
16
|
class CryptoApiNative extends BaseNative_1.BaseNative {
|
|
18
17
|
async newApi() {
|
|
19
18
|
return this.runAsync((taskId) => this.api.lib.CryptoApi_newCryptoApi(taskId));
|
|
@@ -80,7 +79,7 @@ class CryptoApiNative extends BaseNative_1.BaseNative {
|
|
|
80
79
|
return {
|
|
81
80
|
mnemonic: bipNative.mnemonic,
|
|
82
81
|
entropy: bipNative.entropy,
|
|
83
|
-
extKey: ExtKey_1.ExtKey.fromPtr(bipNative.extKey)
|
|
82
|
+
extKey: ExtKey_1.ExtKey.fromPtr(bipNative.extKey),
|
|
84
83
|
};
|
|
85
84
|
}
|
|
86
85
|
}
|
|
@@ -14,8 +14,27 @@ export declare class InboxApiNative extends BaseNative {
|
|
|
14
14
|
newApi(connectionPtr: number, threadApiPtr: number, storeApiPtr: number): Promise<number>;
|
|
15
15
|
deleteApi(ptr: number): Promise<void>;
|
|
16
16
|
create(ptr: number, args: []): Promise<void>;
|
|
17
|
-
createInbox(ptr: number, args: [
|
|
18
|
-
|
|
17
|
+
createInbox(ptr: number, args: [
|
|
18
|
+
string,
|
|
19
|
+
UserWithPubKey[],
|
|
20
|
+
UserWithPubKey[],
|
|
21
|
+
Uint8Array,
|
|
22
|
+
Uint8Array,
|
|
23
|
+
FilesConfig | undefined,
|
|
24
|
+
ContainerWithoutItemPolicy | undefined
|
|
25
|
+
]): Promise<string>;
|
|
26
|
+
updateInbox(ptr: number, args: [
|
|
27
|
+
string,
|
|
28
|
+
UserWithPubKey[],
|
|
29
|
+
UserWithPubKey[],
|
|
30
|
+
Uint8Array,
|
|
31
|
+
Uint8Array,
|
|
32
|
+
FilesConfig | undefined,
|
|
33
|
+
number,
|
|
34
|
+
boolean,
|
|
35
|
+
boolean,
|
|
36
|
+
ContainerWithoutItemPolicy | undefined
|
|
37
|
+
]): Promise<void>;
|
|
19
38
|
getInbox(ptr: number, args: [string]): Promise<Inbox>;
|
|
20
39
|
listInboxes(ptr: number, args: [string, PagingQuery]): Promise<PagingList<Inbox>>;
|
|
21
40
|
getInboxPublicView(ptr: number, args: [string]): Promise<InboxPublicView>;
|
|
@@ -14,8 +14,25 @@ export declare class KvdbApiNative extends BaseNative {
|
|
|
14
14
|
newApi(connectionPtr: number): Promise<number>;
|
|
15
15
|
deleteApi(ptr: number): Promise<void>;
|
|
16
16
|
create(ptr: number, args: []): Promise<void>;
|
|
17
|
-
createKvdb(ptr: number, args: [
|
|
18
|
-
|
|
17
|
+
createKvdb(ptr: number, args: [
|
|
18
|
+
string,
|
|
19
|
+
UserWithPubKey[],
|
|
20
|
+
UserWithPubKey[],
|
|
21
|
+
Uint8Array,
|
|
22
|
+
Uint8Array,
|
|
23
|
+
ContainerPolicy | undefined
|
|
24
|
+
]): Promise<string>;
|
|
25
|
+
updateKvdb(ptr: number, args: [
|
|
26
|
+
string,
|
|
27
|
+
UserWithPubKey[],
|
|
28
|
+
UserWithPubKey[],
|
|
29
|
+
Uint8Array,
|
|
30
|
+
Uint8Array,
|
|
31
|
+
number,
|
|
32
|
+
boolean,
|
|
33
|
+
boolean,
|
|
34
|
+
ContainerPolicy | undefined
|
|
35
|
+
]): Promise<void>;
|
|
19
36
|
deleteKvdb(ptr: number, args: [string]): Promise<void>;
|
|
20
37
|
getKvdb(ptr: number, args: [string]): Promise<Kvdb>;
|
|
21
38
|
listKvdbs(ptr: number, args: [string, PagingQuery]): Promise<PagingList<Kvdb>>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface RawCppError {
|
|
2
|
+
code: number;
|
|
3
|
+
name: string;
|
|
4
|
+
scope: string;
|
|
5
|
+
description: string;
|
|
6
|
+
full: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class NativeError extends Error {
|
|
9
|
+
readonly code: number;
|
|
10
|
+
readonly scope: string;
|
|
11
|
+
readonly fullMessage: string;
|
|
12
|
+
constructor(raw: RawCppError);
|
|
13
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NativeError = void 0;
|
|
4
|
+
class NativeError extends Error {
|
|
5
|
+
code;
|
|
6
|
+
scope;
|
|
7
|
+
fullMessage;
|
|
8
|
+
constructor(raw) {
|
|
9
|
+
super(raw.description || raw.full);
|
|
10
|
+
Object.setPrototypeOf(this, NativeError.prototype);
|
|
11
|
+
this.name = raw.name || "NativeError";
|
|
12
|
+
this.code = raw.code;
|
|
13
|
+
this.scope = raw.scope;
|
|
14
|
+
this.fullMessage = raw.full;
|
|
15
|
+
if (this.stack && raw.full) {
|
|
16
|
+
this.stack += `\n Caused by Native C++ Exception: ${raw.full}`;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.NativeError = NativeError;
|
|
@@ -14,8 +14,25 @@ export declare class StoreApiNative extends BaseNative {
|
|
|
14
14
|
newApi(connectionPtr: number): Promise<number>;
|
|
15
15
|
deleteApi(ptr: number): Promise<void>;
|
|
16
16
|
create(ptr: number, args: []): Promise<void>;
|
|
17
|
-
createStore(ptr: number, args: [
|
|
18
|
-
|
|
17
|
+
createStore(ptr: number, args: [
|
|
18
|
+
string,
|
|
19
|
+
UserWithPubKey[],
|
|
20
|
+
UserWithPubKey[],
|
|
21
|
+
Uint8Array,
|
|
22
|
+
Uint8Array,
|
|
23
|
+
ContainerPolicy | undefined
|
|
24
|
+
]): Promise<string>;
|
|
25
|
+
updateStore(ptr: number, args: [
|
|
26
|
+
string,
|
|
27
|
+
UserWithPubKey[],
|
|
28
|
+
UserWithPubKey[],
|
|
29
|
+
Uint8Array,
|
|
30
|
+
Uint8Array,
|
|
31
|
+
number,
|
|
32
|
+
boolean,
|
|
33
|
+
boolean,
|
|
34
|
+
ContainerPolicy | undefined
|
|
35
|
+
]): Promise<void>;
|
|
19
36
|
deleteStore(ptr: number, args: [string]): Promise<void>;
|
|
20
37
|
getStore(ptr: number, args: [string]): Promise<Store>;
|
|
21
38
|
listStores(ptr: number, args: [string, PagingQuery]): Promise<PagingList<Store>>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
PrivMX Web Endpoint.
|
|
3
|
+
Copyright © 2024 Simplito sp. z o.o.
|
|
4
|
+
|
|
5
|
+
This file is part of the PrivMX Platform (https://privmx.dev).
|
|
6
|
+
This software is Licensed under the PrivMX Free License.
|
|
7
|
+
|
|
8
|
+
See the License for the specific language governing permissions and
|
|
9
|
+
limitations under the License.
|
|
10
|
+
*/
|
|
11
|
+
import { Jsep } from "../service/WebRtcInterface";
|
|
12
|
+
import { ContainerPolicy, PagingList, PagingQuery, StreamInfo, StreamEventSelectorType, StreamEventType, StreamRoom, TurnCredentials, UserWithPubKey } from "../Types";
|
|
13
|
+
import { WebRtcClient } from "../webStreams/WebRtcClient";
|
|
14
|
+
import { WebRtcInterfaceImpl } from "../webStreams/WebRtcInterfaceImpl";
|
|
15
|
+
import { Api } from "./Api";
|
|
16
|
+
import { BaseNative } from "./BaseNative";
|
|
17
|
+
import * as Types from "../Types";
|
|
18
|
+
export declare class StreamApiNative extends BaseNative {
|
|
19
|
+
protected webRtcClient: WebRtcClient;
|
|
20
|
+
protected static bindingId: number;
|
|
21
|
+
static getBindingId(): number;
|
|
22
|
+
protected webRtcInterfacePtr: number;
|
|
23
|
+
protected selfPtr: number;
|
|
24
|
+
protected webRtcInterfaceImpl: WebRtcInterfaceImpl | null;
|
|
25
|
+
constructor(api: Api, webRtcClient: WebRtcClient);
|
|
26
|
+
newApi(connectionPtr: number, eventApiPtr: number): Promise<number>;
|
|
27
|
+
deleteApi(ptr: number): Promise<void>;
|
|
28
|
+
create(ptr: number, args: []): Promise<void>;
|
|
29
|
+
createStreamRoom(ptr: number, args: [
|
|
30
|
+
string,
|
|
31
|
+
UserWithPubKey[],
|
|
32
|
+
UserWithPubKey[],
|
|
33
|
+
Uint8Array,
|
|
34
|
+
Uint8Array,
|
|
35
|
+
ContainerPolicy | undefined
|
|
36
|
+
]): Promise<string>;
|
|
37
|
+
updateStreamRoom(ptr: number, args: [
|
|
38
|
+
string,
|
|
39
|
+
UserWithPubKey[],
|
|
40
|
+
UserWithPubKey[],
|
|
41
|
+
Uint8Array,
|
|
42
|
+
Uint8Array,
|
|
43
|
+
number,
|
|
44
|
+
boolean,
|
|
45
|
+
boolean,
|
|
46
|
+
ContainerPolicy | undefined
|
|
47
|
+
]): Promise<void>;
|
|
48
|
+
deleteStreamRoom(ptr: number, args: [string]): Promise<void>;
|
|
49
|
+
getStreamRoom(ptr: number, args: [string]): Promise<StreamRoom>;
|
|
50
|
+
listStreamRooms(ptr: number, args: [string, PagingQuery]): Promise<PagingList<StreamRoom>>;
|
|
51
|
+
createStream(ptr: number, args: [string]): Promise<Types.StreamHandle>;
|
|
52
|
+
joinStreamRoom(ptr: number, args: [string]): Promise<void>;
|
|
53
|
+
leaveStreamRoom(ptr: number, args: [string]): Promise<void>;
|
|
54
|
+
enableStreamRoomRecording(ptr: number, args: [string]): Promise<void>;
|
|
55
|
+
getStreamRoomRecordingKeys(ptr: number, args: [string]): Promise<Types.RecordingEncKey[]>;
|
|
56
|
+
publishStream(ptr: number, args: [number]): Promise<Types.StreamPublishResult>;
|
|
57
|
+
updateStream(ptr: number, args: [number]): Promise<Types.StreamPublishResult>;
|
|
58
|
+
unpublishStream(ptr: number, args: [number]): Promise<void>;
|
|
59
|
+
listStreams(ptr: number, args: [string]): Promise<StreamInfo[]>;
|
|
60
|
+
subscribeToRemoteStreams(ptr: number, args: [string, Types.StreamSubscription[]]): Promise<void>;
|
|
61
|
+
modifyRemoteStreamsSubscriptions(ptr: number, args: [string, Types.StreamSubscription[], Types.StreamSubscription[]]): Promise<void>;
|
|
62
|
+
unsubscribeFromRemoteStreams(ptr: number, args: [string, Types.StreamSubscription[]]): Promise<void>;
|
|
63
|
+
keyManagement(ptr: number, args: [boolean]): Promise<void>;
|
|
64
|
+
getTurnCredentials(ptr: number, args: []): Promise<TurnCredentials[]>;
|
|
65
|
+
subscribeFor(ptr: number, args: [string[]]): Promise<string[]>;
|
|
66
|
+
unsubscribeFrom(ptr: number, args: [string[]]): Promise<void>;
|
|
67
|
+
buildSubscriptionQuery(ptr: number, args: [StreamEventType, StreamEventSelectorType, string]): Promise<string>;
|
|
68
|
+
trickle(ptr: number, args: [number, RTCIceCandidate]): Promise<void>;
|
|
69
|
+
acceptOfferOnReconfigure(ptr: number, args: [number, Jsep]): Promise<void>;
|
|
70
|
+
setNewOfferOnReconfigure(ptr: number, args: [number, Jsep]): Promise<void>;
|
|
71
|
+
protected bindWebRtcInterfaceAsHandler(bindingId: number): void;
|
|
72
|
+
}
|