@arbidocs/react 0.5.88 → 0.5.90
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -6
- package/dist/artifacts/index.cjs +13 -13
- package/dist/artifacts/index.js +3 -3
- package/dist/calls/livekit/index.cjs +48 -48
- package/dist/calls/livekit/index.js +3 -3
- package/dist/{chunk-DS7NTSKH.cjs → chunk-6BXRZYL2.cjs} +38 -38
- package/dist/{chunk-DS7NTSKH.cjs.map → chunk-6BXRZYL2.cjs.map} +1 -1
- package/dist/{chunk-BFNY3RZG.js → chunk-7PMNITKA.js} +2 -2
- package/dist/chunk-7PMNITKA.js.map +1 -0
- package/dist/{chunk-AOPGD23L.cjs → chunk-7RUVJZZG.cjs} +57 -57
- package/dist/{chunk-AOPGD23L.cjs.map → chunk-7RUVJZZG.cjs.map} +1 -1
- package/dist/{chunk-C4WODQGO.cjs → chunk-BRFRQWAY.cjs} +2 -2
- package/dist/chunk-BRFRQWAY.cjs.map +1 -0
- package/dist/{chunk-YQBDEOVE.js → chunk-HGLS3IC6.js} +3 -3
- package/dist/{chunk-YQBDEOVE.js.map → chunk-HGLS3IC6.js.map} +1 -1
- package/dist/{chunk-DU2P354H.js → chunk-IIOOXKOB.js} +4 -4
- package/dist/{chunk-DU2P354H.js.map → chunk-IIOOXKOB.js.map} +1 -1
- package/dist/{chunk-S3OGDLDC.js → chunk-KZBYWXPS.js} +3 -3
- package/dist/{chunk-S3OGDLDC.js.map → chunk-KZBYWXPS.js.map} +1 -1
- package/dist/{chunk-KTXZ222T.js → chunk-N3SFVZ7H.js} +3 -3
- package/dist/{chunk-KTXZ222T.js.map → chunk-N3SFVZ7H.js.map} +1 -1
- package/dist/{chunk-GKWMT64A.cjs → chunk-NJDVQIJR.cjs} +4 -4
- package/dist/{chunk-GKWMT64A.cjs.map → chunk-NJDVQIJR.cjs.map} +1 -1
- package/dist/{chunk-ZHXYFJIA.cjs → chunk-NR6PUE5O.cjs} +44 -44
- package/dist/{chunk-ZHXYFJIA.cjs.map → chunk-NR6PUE5O.cjs.map} +1 -1
- package/dist/{chunk-73ENECAT.js → chunk-RIPYDSRJ.js} +259 -10
- package/dist/chunk-RIPYDSRJ.js.map +1 -0
- package/dist/{chunk-QLRDHLWR.cjs → chunk-X4HGUBWU.cjs} +344 -69
- package/dist/chunk-X4HGUBWU.cjs.map +1 -0
- package/dist/document-tools/core.cjs +98 -98
- package/dist/document-tools/core.js +3 -3
- package/dist/document-tools/index.cjs +100 -100
- package/dist/document-tools/index.js +4 -4
- package/dist/index.cjs +5882 -5768
- package/dist/index.cjs.map +1 -1
- package/dist/{index.d-1_bJB-Yl.d.ts → index.d-BMhTH98a.d.cts} +65 -65
- package/dist/{index.d-1_bJB-Yl.d.cts → index.d-BMhTH98a.d.ts} +65 -65
- package/dist/index.d.cts +123 -43
- package/dist/index.d.ts +123 -43
- package/dist/index.js +4986 -4879
- package/dist/index.js.map +1 -1
- package/dist/ui/index.d.cts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/package.json +3 -3
- package/dist/chunk-73ENECAT.js.map +0 -1
- package/dist/chunk-BFNY3RZG.js.map +0 -1
- package/dist/chunk-C4WODQGO.cjs.map +0 -1
- package/dist/chunk-QLRDHLWR.cjs.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { clearSealedDrafts, useWorkspaces } from './chunk-
|
|
2
|
-
import { useArbi, arbiQueryKeys, useArbiHost, callQueryKeys } from './chunk-
|
|
1
|
+
import { clearSealedDrafts, useWorkspaces } from './chunk-N3SFVZ7H.js';
|
|
2
|
+
import { useArbi, arbiQueryKeys, useArbiHost, callQueryKeys } from './chunk-7PMNITKA.js';
|
|
3
3
|
import { notify, clearChatArtifacts } from './chunk-BF5KW5ZI.js';
|
|
4
4
|
import { getUserDisplayName, DEFAULT_SEGMENTER_CONFIG, INITIAL_SEGMENTER_STATE, flushSegmenter, stepSegmenter, levelFromRms } from './chunk-APZZQZ6P.js';
|
|
5
5
|
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
6
6
|
import { useSyncExternalStore, useEffect, useState, useCallback, useMemo } from 'react';
|
|
7
7
|
import { chats, calls, ArbiApiError, CallApiError, documents, continuityPrompt } from '@arbidocs/sdk/browser';
|
|
8
|
-
import { generateChatKey, sealCallKey, sealChatKey, decryptCallTitle, encryptWithChatKey, decryptWithChatKey, initSodium, bytesToBase64, encryptFile, decryptFile, base64ToBytes, buildCallLink, encryptCallTitle } from '@arbidocs/client';
|
|
8
|
+
import { createOfflineSealer, generateChatKey, sealCallKey, sealChatKey, decryptCallTitle, encryptWithChatKey, decryptWithChatKey, initSodium, bytesToBase64, encryptFile, decryptFile, base64ToBytes, buildCallLink, encryptCallTitle } from '@arbidocs/client';
|
|
9
9
|
|
|
10
10
|
function useUserSettings(options) {
|
|
11
11
|
const arbi = useArbi();
|
|
@@ -94,7 +94,7 @@ function createLocalFeatureStore({
|
|
|
94
94
|
storage = defaultStorage(),
|
|
95
95
|
migrate
|
|
96
96
|
}) {
|
|
97
|
-
const
|
|
97
|
+
const listeners4 = /* @__PURE__ */ new Set();
|
|
98
98
|
const read = () => {
|
|
99
99
|
try {
|
|
100
100
|
return storage?.getItem(key) ?? null;
|
|
@@ -108,7 +108,7 @@ function createLocalFeatureStore({
|
|
|
108
108
|
} catch {
|
|
109
109
|
}
|
|
110
110
|
};
|
|
111
|
-
const notify2 = () =>
|
|
111
|
+
const notify2 = () => listeners4.forEach((listener) => listener());
|
|
112
112
|
const saved = parseValues(read());
|
|
113
113
|
let values = saved ?? {};
|
|
114
114
|
let hydrated = saved !== null || !migrate;
|
|
@@ -130,8 +130,8 @@ function createLocalFeatureStore({
|
|
|
130
130
|
notify2();
|
|
131
131
|
},
|
|
132
132
|
subscribe(listener) {
|
|
133
|
-
|
|
134
|
-
return () =>
|
|
133
|
+
listeners4.add(listener);
|
|
134
|
+
return () => listeners4.delete(listener);
|
|
135
135
|
},
|
|
136
136
|
isHydrated: () => hydrated,
|
|
137
137
|
hydrated: () => ready
|
|
@@ -666,6 +666,253 @@ function applyCallEvent(queryClient, event, options = {}) {
|
|
|
666
666
|
return false;
|
|
667
667
|
}
|
|
668
668
|
}
|
|
669
|
+
var OfflineMailLockedError = class extends Error {
|
|
670
|
+
constructor() {
|
|
671
|
+
super("Sign in to open the mail saved on this device");
|
|
672
|
+
this.name = "OfflineMailLockedError";
|
|
673
|
+
}
|
|
674
|
+
};
|
|
675
|
+
var sealer = createOfflineSealer("arbi-offline-mail-v1", {
|
|
676
|
+
locked: () => new OfflineMailLockedError()
|
|
677
|
+
});
|
|
678
|
+
var forgetOfflineMailKeys = sealer.forget;
|
|
679
|
+
var sealBytes = sealer.sealBytes;
|
|
680
|
+
var openBytes = sealer.openBytes;
|
|
681
|
+
var sealJson = sealer.sealJson;
|
|
682
|
+
var openJson = sealer.openJson;
|
|
683
|
+
var blind = sealer.blind;
|
|
684
|
+
|
|
685
|
+
// src/offline-store/store.ts
|
|
686
|
+
var DB_VERSION = 1;
|
|
687
|
+
var RECORDS = "records";
|
|
688
|
+
var META = "meta";
|
|
689
|
+
function promisify(request) {
|
|
690
|
+
return new Promise((resolve, reject) => {
|
|
691
|
+
request.onsuccess = () => resolve(request.result);
|
|
692
|
+
request.onerror = () => reject(request.error);
|
|
693
|
+
});
|
|
694
|
+
}
|
|
695
|
+
function createRecordStore(dbName) {
|
|
696
|
+
let dbPromise = null;
|
|
697
|
+
function openDB() {
|
|
698
|
+
if (dbPromise) return dbPromise;
|
|
699
|
+
dbPromise = new Promise((resolve, reject) => {
|
|
700
|
+
const request = indexedDB.open(dbName, DB_VERSION);
|
|
701
|
+
request.onerror = () => {
|
|
702
|
+
dbPromise = null;
|
|
703
|
+
reject(request.error);
|
|
704
|
+
};
|
|
705
|
+
request.onsuccess = () => {
|
|
706
|
+
const db = request.result;
|
|
707
|
+
db.onversionchange = () => {
|
|
708
|
+
db.close();
|
|
709
|
+
dbPromise = null;
|
|
710
|
+
};
|
|
711
|
+
resolve(db);
|
|
712
|
+
};
|
|
713
|
+
request.onupgradeneeded = () => {
|
|
714
|
+
const db = request.result;
|
|
715
|
+
if (!db.objectStoreNames.contains(RECORDS)) {
|
|
716
|
+
const records = db.createObjectStore(RECORDS, { keyPath: "key" });
|
|
717
|
+
records.createIndex("bucket", "bucket");
|
|
718
|
+
records.createIndex("kind", "kind");
|
|
719
|
+
}
|
|
720
|
+
if (!db.objectStoreNames.contains(META)) db.createObjectStore(META, { keyPath: "key" });
|
|
721
|
+
};
|
|
722
|
+
});
|
|
723
|
+
return dbPromise;
|
|
724
|
+
}
|
|
725
|
+
async function run(store2, mode, fn) {
|
|
726
|
+
const db = await openDB();
|
|
727
|
+
return promisify(fn(db.transaction(store2, mode).objectStore(store2)));
|
|
728
|
+
}
|
|
729
|
+
async function scan(pick) {
|
|
730
|
+
const db = await openDB();
|
|
731
|
+
const store2 = db.transaction(RECORDS, "readonly").objectStore(RECORDS);
|
|
732
|
+
return new Promise((resolve, reject) => {
|
|
733
|
+
const out = [];
|
|
734
|
+
const cursor = store2.openCursor();
|
|
735
|
+
cursor.onerror = () => reject(cursor.error);
|
|
736
|
+
cursor.onsuccess = () => {
|
|
737
|
+
const c = cursor.result;
|
|
738
|
+
if (!c) return resolve(out);
|
|
739
|
+
out.push(pick(c.value));
|
|
740
|
+
c.continue();
|
|
741
|
+
};
|
|
742
|
+
});
|
|
743
|
+
}
|
|
744
|
+
const self = {
|
|
745
|
+
dbName,
|
|
746
|
+
async putRecord(record) {
|
|
747
|
+
await run(RECORDS, "readwrite", (s) => s.put(record));
|
|
748
|
+
},
|
|
749
|
+
async getRecord(key) {
|
|
750
|
+
return await run(RECORDS, "readonly", (s) => s.get(key));
|
|
751
|
+
},
|
|
752
|
+
async hasRecord(key) {
|
|
753
|
+
return await run(RECORDS, "readonly", (s) => s.count(key)) > 0;
|
|
754
|
+
},
|
|
755
|
+
async deleteRecords(keys) {
|
|
756
|
+
if (keys.length === 0) return;
|
|
757
|
+
const db = await openDB();
|
|
758
|
+
const tx = db.transaction(RECORDS, "readwrite");
|
|
759
|
+
const store2 = tx.objectStore(RECORDS);
|
|
760
|
+
for (const key of keys) store2.delete(key);
|
|
761
|
+
await new Promise((resolve, reject) => {
|
|
762
|
+
tx.oncomplete = () => resolve();
|
|
763
|
+
tx.onerror = () => reject(tx.error);
|
|
764
|
+
tx.onabort = () => reject(tx.error);
|
|
765
|
+
});
|
|
766
|
+
},
|
|
767
|
+
async recordsInBucket(bucket) {
|
|
768
|
+
return await run(
|
|
769
|
+
RECORDS,
|
|
770
|
+
"readonly",
|
|
771
|
+
(s) => s.index("bucket").getAll(bucket)
|
|
772
|
+
);
|
|
773
|
+
},
|
|
774
|
+
async recordsOfKind(kind) {
|
|
775
|
+
return await run(
|
|
776
|
+
RECORDS,
|
|
777
|
+
"readonly",
|
|
778
|
+
(s) => s.index("kind").getAll(kind)
|
|
779
|
+
);
|
|
780
|
+
},
|
|
781
|
+
allRecordSizes() {
|
|
782
|
+
return scan(({ key, kind, size }) => ({ key, kind, size }));
|
|
783
|
+
},
|
|
784
|
+
allRecordAccess() {
|
|
785
|
+
return scan(({ key, kind, lastAccess }) => ({ key, kind, lastAccess }));
|
|
786
|
+
},
|
|
787
|
+
async touchRecord(key) {
|
|
788
|
+
const record = await self.getRecord(key);
|
|
789
|
+
if (record) await self.putRecord({ ...record, lastAccess: Date.now() });
|
|
790
|
+
},
|
|
791
|
+
async getMeta(key) {
|
|
792
|
+
const row = await run(META, "readonly", (s) => s.get(key));
|
|
793
|
+
return row?.value;
|
|
794
|
+
},
|
|
795
|
+
async setMeta(key, value) {
|
|
796
|
+
await run(META, "readwrite", (s) => s.put({ key, value }));
|
|
797
|
+
},
|
|
798
|
+
async deleteDatabase() {
|
|
799
|
+
const db = await dbPromise?.catch(() => null);
|
|
800
|
+
db?.close();
|
|
801
|
+
dbPromise = null;
|
|
802
|
+
await new Promise((resolve, reject) => {
|
|
803
|
+
const request = indexedDB.deleteDatabase(dbName);
|
|
804
|
+
request.onsuccess = () => resolve();
|
|
805
|
+
request.onerror = () => reject(request.error);
|
|
806
|
+
request.onblocked = () => {
|
|
807
|
+
};
|
|
808
|
+
});
|
|
809
|
+
}
|
|
810
|
+
};
|
|
811
|
+
return self;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
// src/mail/offline/store.ts
|
|
815
|
+
var OFFLINE_MAIL_DB = "arbi-offline-mail";
|
|
816
|
+
var store = createRecordStore(OFFLINE_MAIL_DB);
|
|
817
|
+
var putRecord = store.putRecord;
|
|
818
|
+
var getRecord = store.getRecord;
|
|
819
|
+
var hasRecord = store.hasRecord;
|
|
820
|
+
var deleteRecords = store.deleteRecords;
|
|
821
|
+
var recordsInBucket = store.recordsInBucket;
|
|
822
|
+
var recordsOfKind = store.recordsOfKind;
|
|
823
|
+
var allRecordSizes = store.allRecordSizes;
|
|
824
|
+
var touchRecord = store.touchRecord;
|
|
825
|
+
var getMeta = store.getMeta;
|
|
826
|
+
var setMeta = store.setMeta;
|
|
827
|
+
var deleteOfflineMailDatabase = store.deleteDatabase;
|
|
828
|
+
|
|
829
|
+
// src/mail/offline/settings.ts
|
|
830
|
+
var DEFAULT_OFFLINE_MAIL_SETTINGS = {
|
|
831
|
+
enabled: true,
|
|
832
|
+
scope: "7d",
|
|
833
|
+
attachmentCapMb: 25,
|
|
834
|
+
quotaMb: 1024
|
|
835
|
+
};
|
|
836
|
+
var SCOPE_DAYS = {
|
|
837
|
+
"1d": 1,
|
|
838
|
+
"7d": 7,
|
|
839
|
+
"30d": 30,
|
|
840
|
+
"90d": 90
|
|
841
|
+
};
|
|
842
|
+
var DAY_MS = 24 * 60 * 60 * 1e3;
|
|
843
|
+
function offlineWindowStart(settings, now = Date.now()) {
|
|
844
|
+
return now - SCOPE_DAYS[settings.scope] * DAY_MS;
|
|
845
|
+
}
|
|
846
|
+
function inOfflineWindow(settings, receivedAt, now = Date.now()) {
|
|
847
|
+
const at = receivedAt ? Date.parse(receivedAt) || 0 : 0;
|
|
848
|
+
return settings.enabled && (!at || at >= offlineWindowStart(settings, now));
|
|
849
|
+
}
|
|
850
|
+
function normalize(saved) {
|
|
851
|
+
const merged = { ...DEFAULT_OFFLINE_MAIL_SETTINGS, ...saved };
|
|
852
|
+
const scope = merged.scope;
|
|
853
|
+
if (scope in SCOPE_DAYS) return merged;
|
|
854
|
+
const longer = scope === "365d" || scope === "all";
|
|
855
|
+
return { ...merged, scope: longer ? "90d" : DEFAULT_OFFLINE_MAIL_SETTINGS.scope };
|
|
856
|
+
}
|
|
857
|
+
var STORAGE_PREFIX = "arbi-offline-mail-settings:";
|
|
858
|
+
var SIGNED_OUT = { ...DEFAULT_OFFLINE_MAIL_SETTINGS, enabled: false };
|
|
859
|
+
function getOfflineMailSettings(userExtId) {
|
|
860
|
+
if (!userExtId) return SIGNED_OUT;
|
|
861
|
+
const key = STORAGE_PREFIX + userExtId;
|
|
862
|
+
try {
|
|
863
|
+
const raw = localStorage.getItem(key);
|
|
864
|
+
return raw ? normalize(JSON.parse(raw)) : DEFAULT_OFFLINE_MAIL_SETTINGS;
|
|
865
|
+
} catch {
|
|
866
|
+
return DEFAULT_OFFLINE_MAIL_SETTINGS;
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
function setOfflineMailSettings(userExtId, patch) {
|
|
870
|
+
const next = { ...getOfflineMailSettings(userExtId), ...patch };
|
|
871
|
+
if (userExtId) {
|
|
872
|
+
try {
|
|
873
|
+
localStorage.setItem(STORAGE_PREFIX + userExtId, JSON.stringify(next));
|
|
874
|
+
} catch {
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
notifyOfflineMailChange("settings");
|
|
878
|
+
return next;
|
|
879
|
+
}
|
|
880
|
+
var listeners3 = /* @__PURE__ */ new Set();
|
|
881
|
+
var CHANNEL = "arbi-offline-mail";
|
|
882
|
+
var channel = null;
|
|
883
|
+
function getChannel() {
|
|
884
|
+
if (channel || typeof BroadcastChannel === "undefined") return channel;
|
|
885
|
+
channel = new BroadcastChannel(CHANNEL);
|
|
886
|
+
channel.onmessage = (event) => {
|
|
887
|
+
for (const listener of listeners3) listener(event.data);
|
|
888
|
+
};
|
|
889
|
+
return channel;
|
|
890
|
+
}
|
|
891
|
+
function notifyOfflineMailChange(change) {
|
|
892
|
+
for (const listener of listeners3) listener(change);
|
|
893
|
+
try {
|
|
894
|
+
getChannel()?.postMessage(change);
|
|
895
|
+
} catch {
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
function onOfflineMailChange(listener) {
|
|
899
|
+
getChannel();
|
|
900
|
+
listeners3.add(listener);
|
|
901
|
+
return () => listeners3.delete(listener);
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
// src/mail/offline/wipe.ts
|
|
905
|
+
var OWNER_KEY = "owner";
|
|
906
|
+
async function wipeOfflineMail() {
|
|
907
|
+
forgetOfflineMailKeys();
|
|
908
|
+
await deleteOfflineMailDatabase();
|
|
909
|
+
notifyOfflineMailChange("wiped");
|
|
910
|
+
}
|
|
911
|
+
async function claimOfflineMail(userExtId) {
|
|
912
|
+
const owner = await getMeta(OWNER_KEY);
|
|
913
|
+
if (owner && owner !== userExtId) await wipeOfflineMail();
|
|
914
|
+
await setMeta(OWNER_KEY, userExtId);
|
|
915
|
+
}
|
|
669
916
|
function toProfileView(profile) {
|
|
670
917
|
return {
|
|
671
918
|
...profile,
|
|
@@ -801,6 +1048,8 @@ function arbiAccountClient(arbi, overrides = {}) {
|
|
|
801
1048
|
} finally {
|
|
802
1049
|
clearSealedDrafts();
|
|
803
1050
|
clearChatArtifacts();
|
|
1051
|
+
await wipeOfflineMail().catch(() => {
|
|
1052
|
+
});
|
|
804
1053
|
}
|
|
805
1054
|
},
|
|
806
1055
|
requestDeletion: () => arbi.account.requestDeletion(),
|
|
@@ -2473,6 +2722,6 @@ function useOpenCallMeetingChat() {
|
|
|
2473
2722
|
);
|
|
2474
2723
|
}
|
|
2475
2724
|
|
|
2476
|
-
export { AUDIENCE_CHOICES, CALL_CAPTION_TOPIC, CALL_CHAT_MAX_CHARS, CALL_CHAT_TOPIC, CALL_MODERATION_TOPIC, CALL_RECORDING_TOPIC, CALL_TRANSCRIPTION_TOPIC, CALL_WEBINAR_TOPIC, CAPTION_MAX_CHARS, COMPOSITE_AUDIO_BITS_PER_SECOND, COMPOSITE_VIDEO_BITS_PER_SECOND, DEFAULT_JOIN_CHOICES, EMPTY_CALL_SESSION, EXPORT_SAMPLE_RATE, HISTORY_LIMIT, LIVE_SEGMENTER, MAX_AVATAR_FILE_BYTES, MUTED_DEDUPE_MS, PLAYBACK_LOOKAHEAD_MS, READ_ONLY_MEETING_TEXT, RECORDING_CHUNK_MS, RECORDING_SEGMENTER, SEGMENT_FRAME_MS, SEGMENT_ID_PATTERN, SEGMENT_PRE_ROLL_MS, SHORT_PIECE_MERGE_GAP_MS, SPEAKER_AUDIO_BITS_PER_SECOND, TrackUploader, UPLOAD_ATTEMPTS, UPLOAD_BACKOFF_MS, acceptRing, addConversationToList, appendToThread, applyAgentDmStatus, applyCallEvent, applyChatEvent, applyChatMessage, applyChatRead, applyChatUpdated, arbiAccountClient, buildMeetingChatBody, cachedChat, cachedChats, callLink, callMemberKeys, callSession, chatByExtId, chatHasLiveCall, chatLiveCallId, chatTranscriptRef, clearMeetingChatCache, clearTrackUploaders, clockTime, compositeFiles, compositeTrack, conversationKeyForCall, createLocalFeatureStore, createMutedNotifier, createTrackCutter, cutAtPauses, declineRing, decodeCallChatPacket, decodeCaptionPacket, decodeMono16k, decryptPart, deleteChatMessage, dropFromThread, encodeCallChatPacket, encodeCaptionPacket, encodeWav, encryptPart, ensureMeetingChat, entitlementRefusal, extensionFor, fetchPart, fileSafe, findConversation, floatToWav, formatTranscriptMarkdown, getOpenChat, hasRecordingTranscript, invalidateCall, invalidateConversationDetails, invalidateConversationLists, isConversationListKey, isConversationShared, isRecordingOver, isRecordingSegmentId, isRetryable, isWorkspaceGuestOf, joinFromPreJoin, knownMeetingChat, loadMeetingHistory, markRejoining, meetingChatRefFrom, meetingRefForCall, mergeChatLines, mutedNoticeFromEvent, mutedNoticeFromPacket, mutedNoticeText, myChatId, newPacketId, newSegmentId, newTrackKey, nextSeqAfter, onCallEvent, openCall, openQuestion, openRecording, parseWebinarPacket, partKey, partOffsetMs, partsDue, patchConversation, patchConversationList, persistMeetingMessage, persistTranscriptSegment, playheadAt, postRecordingDocsToThread, postTranscriptToThread, readLocalFeature, recordingFiles, recordingWindowsOf, rejoinAsAudience, removeChat, removeConversationFromLists, resetCallSession, resolveMeetingChat, saveRecordingFilesToThread, schedulePart, sealQuestionText, serverCallsExperimental, setOpenChat, sortTranscriptMessages, sortedParts, speakerTracks, speakerWav, splitIntoFiles, standalone, startChatCall, startContactsCall, startDmCall, startThreadCall, startsMediaFile, storeTranscriptSegment, stripSpeakerPrefix, supersedeLiveTranscript, supersededTranscriptLines, threadHasLiveCall, threadLiveCallId, threadTranscriptLines, threadTranscriptRef, threadTranscriptText, timelineDurationMs, timelineOf, toProfileView, trackUploaderFor, transcribeRecording, transcriptPersistRole, transcriptSegmentOf, unwrapTrackKey, upsertChat, useAccountClient, useAvatarCrop, useCall, useCallInviteLinks, useCallRecording, useCallRecordings, useCallSession, useCallTranscriptionAvailable, useCallsConfig, useCallsEnabled, useCanHostCalls, useEntitlements, useFeature, useFeatureSwitch, useInvalidateEntitlements, useIsEntitled, useMeetingReadOnly, useNameEditor, useOpenCallMeetingChat, useProfile, useRecordingActions, useRecordingWindows, useRevokeCallInviteLink, useSaveToThread, useServerCallsEnabled, useServerCallsExperimental, useUpdateProfile, useUpdateUserSettings, useUserSettings, wrapTrackKey, writeSamples };
|
|
2477
|
-
//# sourceMappingURL=chunk-
|
|
2478
|
-
//# sourceMappingURL=chunk-
|
|
2725
|
+
export { AUDIENCE_CHOICES, CALL_CAPTION_TOPIC, CALL_CHAT_MAX_CHARS, CALL_CHAT_TOPIC, CALL_MODERATION_TOPIC, CALL_RECORDING_TOPIC, CALL_TRANSCRIPTION_TOPIC, CALL_WEBINAR_TOPIC, CAPTION_MAX_CHARS, COMPOSITE_AUDIO_BITS_PER_SECOND, COMPOSITE_VIDEO_BITS_PER_SECOND, DEFAULT_JOIN_CHOICES, EMPTY_CALL_SESSION, EXPORT_SAMPLE_RATE, HISTORY_LIMIT, LIVE_SEGMENTER, MAX_AVATAR_FILE_BYTES, MUTED_DEDUPE_MS, OFFLINE_MAIL_DB, PLAYBACK_LOOKAHEAD_MS, READ_ONLY_MEETING_TEXT, RECORDING_CHUNK_MS, RECORDING_SEGMENTER, SCOPE_DAYS, SEGMENT_FRAME_MS, SEGMENT_ID_PATTERN, SEGMENT_PRE_ROLL_MS, SHORT_PIECE_MERGE_GAP_MS, SPEAKER_AUDIO_BITS_PER_SECOND, TrackUploader, UPLOAD_ATTEMPTS, UPLOAD_BACKOFF_MS, acceptRing, addConversationToList, allRecordSizes, appendToThread, applyAgentDmStatus, applyCallEvent, applyChatEvent, applyChatMessage, applyChatRead, applyChatUpdated, arbiAccountClient, blind, buildMeetingChatBody, cachedChat, cachedChats, callLink, callMemberKeys, callSession, chatByExtId, chatHasLiveCall, chatLiveCallId, chatTranscriptRef, claimOfflineMail, clearMeetingChatCache, clearTrackUploaders, clockTime, compositeFiles, compositeTrack, conversationKeyForCall, createLocalFeatureStore, createMutedNotifier, createRecordStore, createTrackCutter, cutAtPauses, declineRing, decodeCallChatPacket, decodeCaptionPacket, decodeMono16k, decryptPart, deleteChatMessage, deleteRecords, dropFromThread, encodeCallChatPacket, encodeCaptionPacket, encodeWav, encryptPart, ensureMeetingChat, entitlementRefusal, extensionFor, fetchPart, fileSafe, findConversation, floatToWav, formatTranscriptMarkdown, getMeta, getOfflineMailSettings, getOpenChat, getRecord, hasRecord, hasRecordingTranscript, inOfflineWindow, invalidateCall, invalidateConversationDetails, invalidateConversationLists, isConversationListKey, isConversationShared, isRecordingOver, isRecordingSegmentId, isRetryable, isWorkspaceGuestOf, joinFromPreJoin, knownMeetingChat, loadMeetingHistory, markRejoining, meetingChatRefFrom, meetingRefForCall, mergeChatLines, mutedNoticeFromEvent, mutedNoticeFromPacket, mutedNoticeText, myChatId, newPacketId, newSegmentId, newTrackKey, nextSeqAfter, notifyOfflineMailChange, offlineWindowStart, onCallEvent, onOfflineMailChange, openBytes, openCall, openJson, openQuestion, openRecording, parseWebinarPacket, partKey, partOffsetMs, partsDue, patchConversation, patchConversationList, persistMeetingMessage, persistTranscriptSegment, playheadAt, postRecordingDocsToThread, postTranscriptToThread, putRecord, readLocalFeature, recordingFiles, recordingWindowsOf, recordsInBucket, recordsOfKind, rejoinAsAudience, removeChat, removeConversationFromLists, resetCallSession, resolveMeetingChat, saveRecordingFilesToThread, schedulePart, sealBytes, sealJson, sealQuestionText, serverCallsExperimental, setMeta, setOfflineMailSettings, setOpenChat, sortTranscriptMessages, sortedParts, speakerTracks, speakerWav, splitIntoFiles, standalone, startChatCall, startContactsCall, startDmCall, startThreadCall, startsMediaFile, storeTranscriptSegment, stripSpeakerPrefix, supersedeLiveTranscript, supersededTranscriptLines, threadHasLiveCall, threadLiveCallId, threadTranscriptLines, threadTranscriptRef, threadTranscriptText, timelineDurationMs, timelineOf, toProfileView, touchRecord, trackUploaderFor, transcribeRecording, transcriptPersistRole, transcriptSegmentOf, unwrapTrackKey, upsertChat, useAccountClient, useAvatarCrop, useCall, useCallInviteLinks, useCallRecording, useCallRecordings, useCallSession, useCallTranscriptionAvailable, useCallsConfig, useCallsEnabled, useCanHostCalls, useEntitlements, useFeature, useFeatureSwitch, useInvalidateEntitlements, useIsEntitled, useMeetingReadOnly, useNameEditor, useOpenCallMeetingChat, useProfile, useRecordingActions, useRecordingWindows, useRevokeCallInviteLink, useSaveToThread, useServerCallsEnabled, useServerCallsExperimental, useUpdateProfile, useUpdateUserSettings, useUserSettings, wipeOfflineMail, wrapTrackKey, writeSamples };
|
|
2726
|
+
//# sourceMappingURL=chunk-RIPYDSRJ.js.map
|
|
2727
|
+
//# sourceMappingURL=chunk-RIPYDSRJ.js.map
|