@amityco/ts-sdk-react-native 7.26.1-c29647b8.0 → 7.27.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/@types/core/transport.d.ts +3 -3
- package/dist/@types/core/transport.d.ts.map +1 -1
- package/dist/@types/domains/client.d.ts +9 -0
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/@types/domains/content.d.ts +6 -1
- package/dist/@types/domains/content.d.ts.map +1 -1
- package/dist/@types/domains/file.d.ts +11 -2
- package/dist/@types/domains/file.d.ts.map +1 -1
- package/dist/@types/domains/liveViewerCount.d.ts +22 -0
- package/dist/@types/domains/liveViewerCount.d.ts.map +1 -0
- package/dist/@types/index.d.ts +1 -0
- package/dist/@types/index.d.ts.map +1 -1
- package/dist/cache/utils/index.d.ts.map +1 -1
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/client/api/getLiveViewerCountConfig.d.ts +24 -0
- package/dist/client/api/getLiveViewerCountConfig.d.ts.map +1 -0
- package/dist/client/api/index.d.ts +1 -0
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/client/api/loginWithAccessToken.d.ts.map +1 -1
- package/dist/client/api/logout.d.ts.map +1 -1
- package/dist/client/api/renewTokenWithHandler.d.ts.map +1 -1
- package/dist/client/api/renewWithAccessToken.d.ts.map +1 -1
- package/dist/client/api/resumeSession.d.ts.map +1 -1
- package/dist/client/api/tests/renewTokenWithHandler.test.d.ts +2 -0
- package/dist/client/api/tests/renewTokenWithHandler.test.d.ts.map +1 -0
- package/dist/client/api/tests/renewWithAccessToken.test.d.ts +2 -0
- package/dist/client/api/tests/renewWithAccessToken.test.d.ts.map +1 -0
- package/dist/client/api/tests/validateAccessToken.test.d.ts +2 -0
- package/dist/client/api/tests/validateAccessToken.test.d.ts.map +1 -0
- package/dist/client/api/validateAccessToken.d.ts +1 -1
- package/dist/client/api/validateAccessToken.d.ts.map +1 -1
- package/dist/client/utils/endpoints.d.ts +1 -1
- package/dist/client/utils/endpoints.d.ts.map +1 -1
- package/dist/core/transports/mqtt.d.ts.map +1 -1
- package/dist/fileRepository/api/getFile.d.ts.map +1 -1
- package/dist/fileRepository/api/uploadImage.d.ts.map +1 -1
- package/dist/fileRepository/api/uploadVideo.d.ts.map +1 -1
- package/dist/index.cjs.js +227 -79
- package/dist/index.esm.js +228 -80
- package/dist/index.umd.js +1 -1
- package/dist/userRepository/observers/index.d.ts +1 -0
- package/dist/userRepository/observers/index.d.ts.map +1 -1
- package/dist/userRepository/observers/searchUserByDisplayName.d.ts +2 -0
- package/dist/userRepository/observers/searchUserByDisplayName.d.ts.map +1 -1
- package/dist/userRepository/observers/searchUsers.d.ts +26 -0
- package/dist/userRepository/observers/searchUsers.d.ts.map +1 -0
- package/dist/userRepository/observers/tests/integrations/searchUsers.integration.test.d.ts +2 -0
- package/dist/userRepository/observers/tests/integrations/searchUsers.integration.test.d.ts.map +1 -0
- package/dist/userRepository/observers/tests/searchUsers.test.d.ts +2 -0
- package/dist/userRepository/observers/tests/searchUsers.test.d.ts.map +1 -0
- package/dist/utils/linkedObject/fileLinkedObject.d.ts +2 -0
- package/dist/utils/linkedObject/fileLinkedObject.d.ts.map +1 -0
- package/dist/utils/linkedObject/index.d.ts +1 -0
- package/dist/utils/linkedObject/index.d.ts.map +1 -1
- package/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -1
- package/dist/utils/tests/dummy/file.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -308,10 +308,17 @@ var NotificationRolesFilterTypeEnum;
|
|
|
308
308
|
NotificationRolesFilterTypeEnum["ONLY"] = "only";
|
|
309
309
|
})(NotificationRolesFilterTypeEnum || (NotificationRolesFilterTypeEnum = {}));
|
|
310
310
|
|
|
311
|
+
var AmityLiveViewerCountMode;
|
|
312
|
+
(function (AmityLiveViewerCountMode) {
|
|
313
|
+
AmityLiveViewerCountMode["ALWAYS_SHOW"] = "always";
|
|
314
|
+
AmityLiveViewerCountMode["HIDE_ENTIRELY"] = "hidden";
|
|
315
|
+
AmityLiveViewerCountMode["SHOW_ABOVE_MINIMUM"] = "above-minimum";
|
|
316
|
+
})(AmityLiveViewerCountMode || (AmityLiveViewerCountMode = {}));
|
|
317
|
+
|
|
311
318
|
function getVersion() {
|
|
312
319
|
try {
|
|
313
|
-
// the string ''v7.
|
|
314
|
-
return 'v7.
|
|
320
|
+
// the string ''v7.27.0-esm'' should be replaced by actual value by @rollup/plugin-replace
|
|
321
|
+
return 'v7.27.0-esm';
|
|
315
322
|
}
|
|
316
323
|
catch (error) {
|
|
317
324
|
return '__dev__';
|
|
@@ -364,7 +371,13 @@ const normalize = (source) => Object.keys(source)
|
|
|
364
371
|
* @category Cache
|
|
365
372
|
* @hidden
|
|
366
373
|
*/
|
|
367
|
-
const encodeKey = (key) => JSON.stringify(key, (_, val) =>
|
|
374
|
+
const encodeKey = (key) => JSON.stringify(key, (_, val) =>
|
|
375
|
+
// `typeof null` is `'object'`, so a nullish segment would reach normalize()
|
|
376
|
+
// and throw on Object.keys(null) — taking down whichever cache read built
|
|
377
|
+
// the key. Amity.Serializable does not admit null in the first place, so a
|
|
378
|
+
// null here is a payload that broke its own contract: encode it as null and
|
|
379
|
+
// let the miss be a miss.
|
|
380
|
+
val !== null && typeof val === 'object' ? normalize(val) : val);
|
|
368
381
|
/**
|
|
369
382
|
* Decodes a string back into a {@link Amity.CacheKey}
|
|
370
383
|
|
|
@@ -1931,8 +1944,7 @@ const API_REGIONS = {
|
|
|
1931
1944
|
};
|
|
1932
1945
|
const URLS = {
|
|
1933
1946
|
http: 'https://apix.{region}.amity.co',
|
|
1934
|
-
|
|
1935
|
-
upload: 'https://apix.{region}.amity.co',
|
|
1947
|
+
upload: 'https://upload.{region}.amity.co',
|
|
1936
1948
|
mqtt: 'wss://sse.{region}.amity.co:443/mqtt',
|
|
1937
1949
|
};
|
|
1938
1950
|
function computeUrl(type, region) {
|
|
@@ -2456,10 +2468,11 @@ var MqttError;
|
|
|
2456
2468
|
MqttError[MqttError["BAD_USERNAME_OR_PASSWORD"] = 134] = "BAD_USERNAME_OR_PASSWORD";
|
|
2457
2469
|
MqttError[MqttError["NOT_AUTHORIZED"] = 135] = "NOT_AUTHORIZED";
|
|
2458
2470
|
})(MqttError || (MqttError = {}));
|
|
2459
|
-
// MQTT 5 session expiry, in seconds.
|
|
2460
|
-
//
|
|
2461
|
-
//
|
|
2462
|
-
|
|
2471
|
+
// MQTT 5 session expiry, in seconds. Under MQTT 3.1.1 the broker capped
|
|
2472
|
+
// retained sessions at ~30 min; under MQTT 5 the client's value wins, so an
|
|
2473
|
+
// unbounded value ("never") left disconnected sessions piling up on the broker.
|
|
2474
|
+
// 1800s matches the previous 3.1.1 cap.
|
|
2475
|
+
const SESSION_EXPIRY_INTERVAL = 1800;
|
|
2463
2476
|
function getMqttOptions(params) {
|
|
2464
2477
|
return Object.assign({ clean: false, clientId: `mqttjs_ + ${Math.random().toString(16).substring(2, 10)}`, protocolId: 'MQTT', protocolVersion: 5, reconnectPeriod: RETRY_BASE_TIMEOUT, resubscribe: true,
|
|
2465
2478
|
// The broker/LB drops idle sockets at ~60s. mqtt.js v5 sends its first
|
|
@@ -2576,8 +2589,16 @@ const createMqttTransport = (endpoint) => {
|
|
|
2576
2589
|
}
|
|
2577
2590
|
return {
|
|
2578
2591
|
connect,
|
|
2579
|
-
async disconnect() {
|
|
2592
|
+
async disconnect(options) {
|
|
2580
2593
|
if (this.connected) {
|
|
2594
|
+
// On logout we want the broker to release the session immediately
|
|
2595
|
+
// instead of keeping it around for SESSION_EXPIRY_INTERVAL. mqtt.js
|
|
2596
|
+
// only sends a DISCONNECT packet when `force` is false; force=true
|
|
2597
|
+
// just tears the socket down and the broker keeps the session until
|
|
2598
|
+
// it expires on its own.
|
|
2599
|
+
if (options === null || options === void 0 ? void 0 : options.endSession) {
|
|
2600
|
+
return new Promise(resolve => mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.end(false, { reasonCode: 0, properties: { sessionExpiryInterval: 0 } }, () => resolve()));
|
|
2601
|
+
}
|
|
2581
2602
|
return new Promise(resolve => mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.end(true, undefined, () => resolve()));
|
|
2582
2603
|
}
|
|
2583
2604
|
},
|
|
@@ -5073,6 +5094,51 @@ const getCoreUserSettings = async () => {
|
|
|
5073
5094
|
return data;
|
|
5074
5095
|
};
|
|
5075
5096
|
|
|
5097
|
+
const DEFAULT_CONFIG = {
|
|
5098
|
+
mode: AmityLiveViewerCountMode.ALWAYS_SHOW,
|
|
5099
|
+
threshold: 50,
|
|
5100
|
+
};
|
|
5101
|
+
const isValidMode = (value) => value === AmityLiveViewerCountMode.ALWAYS_SHOW ||
|
|
5102
|
+
value === AmityLiveViewerCountMode.HIDE_ENTIRELY ||
|
|
5103
|
+
value === AmityLiveViewerCountMode.SHOW_ABOVE_MINIMUM;
|
|
5104
|
+
const isValidThreshold = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 1 && value <= 1000;
|
|
5105
|
+
/**
|
|
5106
|
+
* ```js
|
|
5107
|
+
* import { getLiveViewerCountConfig } from '@amityco/ts-sdk'
|
|
5108
|
+
* const config = await getLiveViewerCountConfig()
|
|
5109
|
+
* ```
|
|
5110
|
+
*
|
|
5111
|
+
* Fetches the network-level {@link Amity.LiveViewerCountConfig} governing
|
|
5112
|
+
* how the live viewer count is displayed to viewers on a livestream.
|
|
5113
|
+
*
|
|
5114
|
+
* Cold-read — no observable, no cache. Call once per livestream mount /
|
|
5115
|
+
* rejoin. Admin-driven config changes take effect on the next join, not
|
|
5116
|
+
* mid-stream.
|
|
5117
|
+
*
|
|
5118
|
+
* On a malformed payload (unknown mode, out-of-range or missing threshold)
|
|
5119
|
+
* the SDK falls open to `{ mode: ALWAYS_SHOW, threshold: 50 }` and logs a
|
|
5120
|
+
* warning. Network errors reject.
|
|
5121
|
+
*
|
|
5122
|
+
* @returns A Promise of {@link Amity.LiveViewerCountConfig}
|
|
5123
|
+
*
|
|
5124
|
+
* @category Client API
|
|
5125
|
+
* @async
|
|
5126
|
+
*/
|
|
5127
|
+
/* begin_public_function id: client.getLiveViewerCountConfig */
|
|
5128
|
+
const getLiveViewerCountConfig = async () => {
|
|
5129
|
+
var _a, _b;
|
|
5130
|
+
const client = getActiveClient();
|
|
5131
|
+
const { data } = await client.http.get('/api/v3/network-settings/video-streaming');
|
|
5132
|
+
const mode = (_a = data === null || data === void 0 ? void 0 : data.videoStreaming) === null || _a === void 0 ? void 0 : _a.viewerCountDisplayMode;
|
|
5133
|
+
const threshold = (_b = data === null || data === void 0 ? void 0 : data.videoStreaming) === null || _b === void 0 ? void 0 : _b.viewerCountDisplayMinimum;
|
|
5134
|
+
if (!isValidMode(mode) || !isValidThreshold(threshold)) {
|
|
5135
|
+
client.log('client/getLiveViewerCountConfig', 'malformed videoStreaming settings, falling back to default', { mode, threshold });
|
|
5136
|
+
return DEFAULT_CONFIG;
|
|
5137
|
+
}
|
|
5138
|
+
return { mode, threshold };
|
|
5139
|
+
};
|
|
5140
|
+
/* end_public_function */
|
|
5141
|
+
|
|
5076
5142
|
/* begin_public_function
|
|
5077
5143
|
id: client.getProductCatalogueSetting
|
|
5078
5144
|
*/
|
|
@@ -5439,7 +5505,7 @@ const logout = async () => {
|
|
|
5439
5505
|
const client = getActiveClient();
|
|
5440
5506
|
client.log('client/api/disconnectClient');
|
|
5441
5507
|
if (client.mqtt && client.mqtt.connected) {
|
|
5442
|
-
client.mqtt.disconnect();
|
|
5508
|
+
await client.mqtt.disconnect({ endSession: true });
|
|
5443
5509
|
}
|
|
5444
5510
|
/*
|
|
5445
5511
|
* for cases when session state is terminated (example on ban) or token expired,
|
|
@@ -5460,6 +5526,7 @@ const logout = async () => {
|
|
|
5460
5526
|
client.userId = undefined;
|
|
5461
5527
|
client.token = undefined;
|
|
5462
5528
|
client.loginType = undefined;
|
|
5529
|
+
client.isGloballyBanned = false;
|
|
5463
5530
|
client.http.defaults.headers.common.Authorization = '';
|
|
5464
5531
|
client.http.defaults.metadata = {
|
|
5465
5532
|
tokenExpiry: '',
|
|
@@ -7755,19 +7822,21 @@ const renewal = () => {
|
|
|
7755
7822
|
|
|
7756
7823
|
const validateAccessToken = async ({ token, userId }) => {
|
|
7757
7824
|
const client = getActiveClient();
|
|
7758
|
-
//
|
|
7759
|
-
await client.http.get('/api/
|
|
7760
|
-
headers: {
|
|
7761
|
-
Authorization: `Bearer ${token.accessToken}`,
|
|
7762
|
-
},
|
|
7763
|
-
});
|
|
7764
|
-
// Get user details
|
|
7765
|
-
const { data: { users }, } = await client.http.get(`/api/v3/users/${userId}`, {
|
|
7825
|
+
// Verify the token and hydrate the caller in a single call.
|
|
7826
|
+
const { data } = await client.http.get('/api/v4/sessions', {
|
|
7766
7827
|
headers: {
|
|
7767
7828
|
Authorization: `Bearer ${token.accessToken}`,
|
|
7768
7829
|
},
|
|
7769
7830
|
});
|
|
7770
|
-
const
|
|
7831
|
+
const { users, files, userType } = data;
|
|
7832
|
+
const [user] = users;
|
|
7833
|
+
if (userId && (user === null || user === void 0 ? void 0 : user.userId) && userId !== user.userId) {
|
|
7834
|
+
client.log('client/api/validateAccessToken', {
|
|
7835
|
+
message: 'session userId does not match the token userId; using the server value',
|
|
7836
|
+
tokenUserId: userId,
|
|
7837
|
+
sessionUserId: user.userId,
|
|
7838
|
+
});
|
|
7839
|
+
}
|
|
7771
7840
|
client.http.defaults.headers.common.Authorization = `Bearer ${token.accessToken}`;
|
|
7772
7841
|
client.http.defaults.metadata = {
|
|
7773
7842
|
tokenExpiry: token.expiresAt,
|
|
@@ -7781,6 +7850,8 @@ const validateAccessToken = async ({ token, userId }) => {
|
|
|
7781
7850
|
isUserDeleted: false,
|
|
7782
7851
|
};
|
|
7783
7852
|
client.token = token;
|
|
7853
|
+
ingestInCache(prepareUserPayload({ users, files }));
|
|
7854
|
+
setCurrentUserType(userType);
|
|
7784
7855
|
return user;
|
|
7785
7856
|
};
|
|
7786
7857
|
|
|
@@ -7863,14 +7934,6 @@ const loginWithAccessToken = async (accessToken) => {
|
|
|
7863
7934
|
setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
|
|
7864
7935
|
throw new ASCError(`User ${userId} has not been found`, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
7865
7936
|
}
|
|
7866
|
-
if (user.isDeleted) {
|
|
7867
|
-
setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
|
|
7868
|
-
throw new ASCError(`User ${userId} has been deleted`, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
7869
|
-
}
|
|
7870
|
-
if (user.isGlobalBanned) {
|
|
7871
|
-
setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
|
|
7872
|
-
throw new ASCError(`User ${userId} is globally banned`, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
7873
|
-
}
|
|
7874
7937
|
// Set userId and login method flag
|
|
7875
7938
|
client.userId = user.userId;
|
|
7876
7939
|
// Set login method flag to 'accessToken' in platform-specific login session
|
|
@@ -7884,8 +7947,10 @@ const loginWithAccessToken = async (accessToken) => {
|
|
|
7884
7947
|
catch (error) {
|
|
7885
7948
|
// If error occurs, revert session state to not logged in
|
|
7886
7949
|
setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
|
|
7887
|
-
// Re-throw if it's already an ASCError
|
|
7888
7950
|
if (error instanceof ASCError) {
|
|
7951
|
+
if (error.code === 400312 /* Amity.ServerError.GLOBAL_BAN */) {
|
|
7952
|
+
client.isGloballyBanned = true;
|
|
7953
|
+
}
|
|
7889
7954
|
throw error;
|
|
7890
7955
|
}
|
|
7891
7956
|
// Wrap other errors
|
|
@@ -7953,11 +8018,18 @@ const renewWithAccessToken = async (accessToken) => {
|
|
|
7953
8018
|
await loginWithAccessToken(accessToken);
|
|
7954
8019
|
}
|
|
7955
8020
|
else {
|
|
7956
|
-
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
7960
|
-
|
|
8021
|
+
try {
|
|
8022
|
+
await validateAccessToken({
|
|
8023
|
+
token: tokenObject,
|
|
8024
|
+
userId,
|
|
8025
|
+
});
|
|
8026
|
+
}
|
|
8027
|
+
catch (error) {
|
|
8028
|
+
if (error instanceof ASCError && error.code === 400312 /* Amity.ServerError.GLOBAL_BAN */) {
|
|
8029
|
+
client.isGloballyBanned = true;
|
|
8030
|
+
}
|
|
8031
|
+
throw error;
|
|
8032
|
+
}
|
|
7961
8033
|
}
|
|
7962
8034
|
};
|
|
7963
8035
|
/* end_public_function */
|
|
@@ -7974,6 +8046,9 @@ const renewTokenWithHandler = async ({ useScheduledTask = false, }) => {
|
|
|
7974
8046
|
if (!client.userId || !client.accessTokenHandler) {
|
|
7975
8047
|
return;
|
|
7976
8048
|
}
|
|
8049
|
+
if (client.isGloballyBanned) {
|
|
8050
|
+
return;
|
|
8051
|
+
}
|
|
7977
8052
|
try {
|
|
7978
8053
|
const newToken = await client.accessTokenHandler.onTokenRenew(client.userId);
|
|
7979
8054
|
if (useScheduledTask) {
|
|
@@ -8572,6 +8647,7 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
|
|
|
8572
8647
|
getCoreUserSettings,
|
|
8573
8648
|
getSocialSettings,
|
|
8574
8649
|
getChatSettings,
|
|
8650
|
+
getLiveViewerCountConfig,
|
|
8575
8651
|
getVisitorDeviceId: getDeviceId,
|
|
8576
8652
|
getMessagePreviewSetting: getMessagePreviewSetting$1,
|
|
8577
8653
|
onRTEConnectionStateChange,
|
|
@@ -8711,21 +8787,13 @@ const resumeSession = async (params, sessionHandler, config) => {
|
|
|
8711
8787
|
if (user == null) {
|
|
8712
8788
|
throw new ASCError(`${params.userId} has not been found`, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
8713
8789
|
}
|
|
8714
|
-
if (user.isDeleted) {
|
|
8715
|
-
terminateClient("userDeleted" /* Amity.TokenTerminationReason.USER_DELETED */);
|
|
8716
|
-
return false;
|
|
8717
|
-
}
|
|
8718
|
-
if (user.isGlobalBanned) {
|
|
8719
|
-
terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
|
|
8720
|
-
return false;
|
|
8721
|
-
}
|
|
8722
8790
|
client.userId = user.userId;
|
|
8723
8791
|
client.sessionHandler = sessionHandler;
|
|
8724
8792
|
/*
|
|
8725
8793
|
* Cannot push to subscriptions as watcher needs to continue working even if
|
|
8726
8794
|
* token expires
|
|
8727
8795
|
*/
|
|
8728
|
-
unsubWatcher = client.accessTokenExpiryWatcher(
|
|
8796
|
+
unsubWatcher = client.accessTokenExpiryWatcher();
|
|
8729
8797
|
setActiveUser(user);
|
|
8730
8798
|
}
|
|
8731
8799
|
catch (error) {
|
|
@@ -9711,6 +9779,7 @@ var index$s = /*#__PURE__*/Object.freeze({
|
|
|
9711
9779
|
setCurrentUserType: setCurrentUserType,
|
|
9712
9780
|
setAccessTokenHandler: setAccessTokenHandler,
|
|
9713
9781
|
getChatSettings: getChatSettings,
|
|
9782
|
+
getLiveViewerCountConfig: getLiveViewerCountConfig,
|
|
9714
9783
|
getCoreUserSettings: getCoreUserSettings,
|
|
9715
9784
|
notifications: notifications,
|
|
9716
9785
|
enableAutoSubscriptions: enableAutoSubscriptions,
|
|
@@ -12627,7 +12696,7 @@ const getWatchSessionStorage = () => {
|
|
|
12627
12696
|
return storageInstance;
|
|
12628
12697
|
};
|
|
12629
12698
|
|
|
12630
|
-
const privateKey = "-----BEGIN PRIVATE KEY-----\
|
|
12699
|
+
const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHo80SecH7FuF2\nhFYnb+l26/VN8UMLXAQFLnxciNTEwkGVFMpdezlH8rU2HtUJL4RETogbAOLVY0XM\njs6sPn8G1nALmh9qeDpUtVqFOVtBHxEZ910TLOtQiunjqJKO5nWdqZ71EC3OFluR\niGQkO84BiIFbv37ub7xl3S8XarbtKoLcyVpkDHi+1wx1pgCAn6gtBUgckPL5NR8j\nLseabl3HAXQfhTCKo4tmOFM2Dxwl1IUMmIJrJg/aIU/U0tj/1Eoo7mG0JcNWX19l\nW3EecCbi0ncCJOrkUdwlBrcjaMayaX/ubEwyUeTGiLdyc4L3GRLHjyK8xgVNXRMH\nbZWJ2a5NAgMBAAECggEASxuE+35zTFO/XydKgmvIGcWL9FbgMlXb7Vcf0nBoG945\nbiz0NVc2paraIhJXc608xbYF3qLmtAE1MVBI0ORyRdBHNxY024l/6H6SH60Ed+uI\nM4ysp5ourY6Vj+DLwpdRiI9YDjqYAQDIUmhNxJP7XPhOMoZI6st+xZQBM34ic/bv\nAMSJm9OZphSp3+qXVkFZztr2mxD2EZSJJLYxi8BCdgM2qhazalbcJ6zDKHCZWVWm\n8RRxDGldyMb/237JxETzP40tAlzOZDmBAbUgEnurDJ93RVDIE3rbZUshwgeQd18a\nem096mWgvB1AIKYgsTAR3pw+V19YWAjq/glP6fz8wQKBgQD/oQq+ukKF0PRgBeM5\ngeTjSwsdGppQLmf5ndujvoiz/TpdjDEPu6R8kigQr1rG2t4K/yfdZoI8RdmJD1al\n3Q7N9hofooSy4rj6E3txzWZCHJjHad2cnCp/O26HiReGAl7wTcfTmNdiFHhZQzm5\nJBkvWAiwuvQMNfEbnXxw6/vIDwKBgQDH7fX8gsc77JLvAWgp1MaQN/sbqVb6JeT1\nFQfR8E/WFCSmzQBtNzd5KgYuCeelwr/8DyYytvN2BzCYZXp73gI1jF3YlW5jVn74\nOY6TwQ095digwo6Z0yuxopdIOApKgAkL9PRKgNrqAf3NAyMua6lOGifzjDojC3KU\nfylQmxMn4wKBgHp2B9O/H0dEBw5JQ8W0+JX6yWQz7mEjGiR2/1W+XXb8hQ1zr709\nw1r6Gb+EghRpnZ3fBpYGGbYOMFx8wKHM+N6qW3F0ReX8v2juFGE8aRSa5oYBrWzt\nU16Idjbv8hj84cZ1PJmdyvDtpYn9rpWHOZl4rxEbPvbqkIsOMyNVqdT5AoGAOSge\nmwIIU2le2FVeohbibXiToWTYKMuMmURZ5/r72AgKMmWJKbAPe+Q3wBG01/7FRBpQ\noU8Ma0HC8s6QJbliiEyIx9JwrJWd1vkdecBHONrtA4ibm/5zD2WcOllLF+FitLhi\n3qnX6+6F0IaFGFBPJrTzlv0P4dTz/OAdv52V7GECgYEA2TttOKBAqWllgOaZOkql\nLVMJVmgR7s6tLi1+cEP8ZcapV9aRbRzTAKXm4f8AEhtlG9F9kCOvHYCYGi6JaiWJ\nZkHjeex3T+eE6Di6y5Bm/Ift5jtVhJ4jCVwHOKTMej79NPUFTJfv8hCo29haBDv6\nRXFrv+T21KCcw8k3sJeJWWQ=\n-----END PRIVATE KEY-----";
|
|
12631
12700
|
/*
|
|
12632
12701
|
* The crypto algorithm used for importing key and signing string
|
|
12633
12702
|
*/
|
|
@@ -13055,6 +13124,21 @@ const productTagLinkedObject = (productTag) => {
|
|
|
13055
13124
|
return Object.assign(Object.assign({}, productTag), { product: internalProduct ? productLinkedObject(internalProduct) : undefined });
|
|
13056
13125
|
};
|
|
13057
13126
|
|
|
13127
|
+
const fileLinkedObject = (file) => {
|
|
13128
|
+
var _a, _b, _c;
|
|
13129
|
+
if (!file)
|
|
13130
|
+
return file;
|
|
13131
|
+
if (file.type === 'video') {
|
|
13132
|
+
const video = (_b = (_a = file.attributes) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.video;
|
|
13133
|
+
return Object.assign(Object.assign({}, file), { getWidth: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.width) !== null && _a !== void 0 ? _a : 0; }, getHeight: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.height) !== null && _a !== void 0 ? _a : 0; }, getRotation: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.rotation) !== null && _a !== void 0 ? _a : 0; } });
|
|
13134
|
+
}
|
|
13135
|
+
if (file.type === 'image') {
|
|
13136
|
+
const metadata = (_c = file.attributes) === null || _c === void 0 ? void 0 : _c.metadata;
|
|
13137
|
+
return Object.assign(Object.assign({}, file), { getWidth: () => { var _a; return (_a = metadata === null || metadata === void 0 ? void 0 : metadata.width) !== null && _a !== void 0 ? _a : 0; }, getHeight: () => { var _a; return (_a = metadata === null || metadata === void 0 ? void 0 : metadata.height) !== null && _a !== void 0 ? _a : 0; } });
|
|
13138
|
+
}
|
|
13139
|
+
return file;
|
|
13140
|
+
};
|
|
13141
|
+
|
|
13058
13142
|
const postLinkedObject = (post) => {
|
|
13059
13143
|
return shallowClone(post, {
|
|
13060
13144
|
childrenPosts: post.children
|
|
@@ -13093,85 +13177,99 @@ const postLinkedObject = (post) => {
|
|
|
13093
13177
|
.filter(Boolean) || []);
|
|
13094
13178
|
},
|
|
13095
13179
|
get creator() {
|
|
13180
|
+
// The id is checked for a value, not just for presence: a payload can
|
|
13181
|
+
// carry the field as null, and a null segment in a cache key throws while
|
|
13182
|
+
// being encoded rather than simply missing the cache.
|
|
13183
|
+
if (!post.postedUserId)
|
|
13184
|
+
return undefined;
|
|
13096
13185
|
const cacheData = pullFromCache(['user', 'get', post.postedUserId]);
|
|
13097
13186
|
if (!(cacheData === null || cacheData === void 0 ? void 0 : cacheData.data))
|
|
13098
|
-
return;
|
|
13187
|
+
return undefined;
|
|
13099
13188
|
return userLinkedObject(cacheData.data);
|
|
13100
13189
|
},
|
|
13101
13190
|
get targetCommunity() {
|
|
13102
13191
|
var _a;
|
|
13192
|
+
if (!post.targetId)
|
|
13193
|
+
return undefined;
|
|
13103
13194
|
const communityCache = (_a = pullFromCache([
|
|
13104
13195
|
'community',
|
|
13105
13196
|
'get',
|
|
13106
13197
|
post.targetId,
|
|
13107
13198
|
])) === null || _a === void 0 ? void 0 : _a.data;
|
|
13108
13199
|
if (!communityCache)
|
|
13109
|
-
return;
|
|
13200
|
+
return undefined;
|
|
13110
13201
|
return communityLinkedObject(communityCache);
|
|
13111
13202
|
},
|
|
13112
13203
|
getImageInfo() {
|
|
13113
13204
|
var _a, _b;
|
|
13114
|
-
|
|
13115
|
-
|
|
13116
|
-
|
|
13205
|
+
if (!isAmityImagePost(post) || !((_a = post.data) === null || _a === void 0 ? void 0 : _a.fileId))
|
|
13206
|
+
return undefined;
|
|
13207
|
+
return fileLinkedObject((_b = pullFromCache(['file', 'get', post.data.fileId])) === null || _b === void 0 ? void 0 : _b.data);
|
|
13117
13208
|
},
|
|
13118
13209
|
getVideoInfo() {
|
|
13119
13210
|
var _a, _b, _c;
|
|
13120
|
-
|
|
13121
|
-
|
|
13122
|
-
|
|
13211
|
+
const originalFileId = isAmityVideoPost(post) ? (_b = (_a = post.data) === null || _a === void 0 ? void 0 : _a.videoFileId) === null || _b === void 0 ? void 0 : _b.original : undefined;
|
|
13212
|
+
if (!originalFileId)
|
|
13213
|
+
return undefined;
|
|
13214
|
+
return fileLinkedObject((_c = pullFromCache(['file', 'get', originalFileId])) === null || _c === void 0 ? void 0 : _c.data);
|
|
13123
13215
|
},
|
|
13124
13216
|
getVideoThumbnailInfo() {
|
|
13125
13217
|
var _a, _b;
|
|
13126
|
-
|
|
13127
|
-
|
|
13128
|
-
|
|
13218
|
+
// `isAmityVideoPost` proves the field is *present* — it tests
|
|
13219
|
+
// `'thumbnailFileId' in post.data` — and presence is not a value. The
|
|
13220
|
+
// server sends the field as null until it has finished transcoding the
|
|
13221
|
+
// video, so a just-published post reaches here with a null id and used to
|
|
13222
|
+
// build the cache key ['file', 'get', null].
|
|
13223
|
+
const thumbnailFileId = isAmityVideoPost(post) ? (_a = post.data) === null || _a === void 0 ? void 0 : _a.thumbnailFileId : undefined;
|
|
13224
|
+
if (!thumbnailFileId)
|
|
13225
|
+
return undefined;
|
|
13226
|
+
return fileLinkedObject((_b = pullFromCache(['file', 'get', thumbnailFileId])) === null || _b === void 0 ? void 0 : _b.data);
|
|
13129
13227
|
},
|
|
13130
13228
|
getFileInfo() {
|
|
13131
13229
|
var _a, _b;
|
|
13132
|
-
|
|
13133
|
-
|
|
13134
|
-
|
|
13230
|
+
if (!isAmityFilePost(post) || !((_a = post.data) === null || _a === void 0 ? void 0 : _a.fileId))
|
|
13231
|
+
return undefined;
|
|
13232
|
+
return (_b = pullFromCache(['file', 'get', post.data.fileId])) === null || _b === void 0 ? void 0 : _b.data;
|
|
13135
13233
|
},
|
|
13136
13234
|
getLivestreamInfo() {
|
|
13137
13235
|
var _a, _b;
|
|
13138
|
-
if (!isAmityLivestreamPost(post))
|
|
13139
|
-
return;
|
|
13236
|
+
if (!isAmityLivestreamPost(post) || !((_a = post.data) === null || _a === void 0 ? void 0 : _a.streamId))
|
|
13237
|
+
return undefined;
|
|
13140
13238
|
const cache = (_b = pullFromCache([
|
|
13141
13239
|
'stream',
|
|
13142
13240
|
'get',
|
|
13143
|
-
|
|
13241
|
+
post.data.streamId,
|
|
13144
13242
|
])) === null || _b === void 0 ? void 0 : _b.data;
|
|
13145
13243
|
if (!cache)
|
|
13146
|
-
return;
|
|
13244
|
+
return undefined;
|
|
13147
13245
|
return streamLinkedObject(cache);
|
|
13148
13246
|
},
|
|
13149
13247
|
getPollInfo() {
|
|
13150
13248
|
var _a, _b;
|
|
13151
|
-
if (!isAmityPollPost(post))
|
|
13152
|
-
return;
|
|
13153
|
-
const cache = (_b = pullFromCache(['poll', 'get',
|
|
13249
|
+
if (!isAmityPollPost(post) || !((_a = post.data) === null || _a === void 0 ? void 0 : _a.pollId))
|
|
13250
|
+
return undefined;
|
|
13251
|
+
const cache = (_b = pullFromCache(['poll', 'get', post.data.pollId])) === null || _b === void 0 ? void 0 : _b.data;
|
|
13154
13252
|
if (!cache)
|
|
13155
|
-
return;
|
|
13253
|
+
return undefined;
|
|
13156
13254
|
return pollLinkedObject(cache);
|
|
13157
13255
|
},
|
|
13158
13256
|
getClipInfo() {
|
|
13159
13257
|
var _a, _b;
|
|
13160
|
-
|
|
13161
|
-
|
|
13162
|
-
|
|
13258
|
+
if (!isAmityClipPost(post) || !((_a = post.data) === null || _a === void 0 ? void 0 : _a.fileId))
|
|
13259
|
+
return undefined;
|
|
13260
|
+
return (_b = pullFromCache(['file', 'get', post.data.fileId])) === null || _b === void 0 ? void 0 : _b.data;
|
|
13163
13261
|
},
|
|
13164
13262
|
getAudioInfo() {
|
|
13165
13263
|
var _a, _b;
|
|
13166
|
-
|
|
13167
|
-
|
|
13168
|
-
|
|
13264
|
+
if (!isAmityAudioPost(post) || !((_a = post.data) === null || _a === void 0 ? void 0 : _a.fileId))
|
|
13265
|
+
return undefined;
|
|
13266
|
+
return (_b = pullFromCache(['file', 'get', post.data.fileId])) === null || _b === void 0 ? void 0 : _b.data;
|
|
13169
13267
|
},
|
|
13170
13268
|
getRoomInfo() {
|
|
13171
13269
|
var _a, _b;
|
|
13172
|
-
if (!isAmityRoomPost(post))
|
|
13173
|
-
return;
|
|
13174
|
-
const room = (_b = pullFromCache(['room', 'get',
|
|
13270
|
+
if (!isAmityRoomPost(post) || !((_a = post.data) === null || _a === void 0 ? void 0 : _a.roomId))
|
|
13271
|
+
return undefined;
|
|
13272
|
+
const room = (_b = pullFromCache(['room', 'get', post.data.roomId])) === null || _b === void 0 ? void 0 : _b.data;
|
|
13175
13273
|
return room ? roomLinkedObject(room) : undefined;
|
|
13176
13274
|
},
|
|
13177
13275
|
getEventInfo() {
|
|
@@ -14115,6 +14213,7 @@ const eventLinkedObject = (event) => {
|
|
|
14115
14213
|
};
|
|
14116
14214
|
|
|
14117
14215
|
const LinkedObject = {
|
|
14216
|
+
file: fileLinkedObject,
|
|
14118
14217
|
ad: adLinkedObject,
|
|
14119
14218
|
comment: commentLinkedObject,
|
|
14120
14219
|
post: postLinkedObject,
|
|
@@ -15278,10 +15377,58 @@ class SearchUserLiveCollectionController extends LiveCollectionController {
|
|
|
15278
15377
|
}
|
|
15279
15378
|
}
|
|
15280
15379
|
|
|
15380
|
+
/* begin_public_function
|
|
15381
|
+
id: user.searchUsers
|
|
15382
|
+
*/
|
|
15383
|
+
/**
|
|
15384
|
+
* ```js
|
|
15385
|
+
* import { UserRepository } from '@amityco/ts-sdk'
|
|
15386
|
+
*
|
|
15387
|
+
* let users = []
|
|
15388
|
+
* const unsub = UserRepository.searchUsers(
|
|
15389
|
+
* { displayName: 'jack', searchBy: [SearchUsersByEnum.DISPLAY_NAME] },
|
|
15390
|
+
* response => merge(users, response.data),
|
|
15391
|
+
* )
|
|
15392
|
+
* ```
|
|
15393
|
+
*
|
|
15394
|
+
* Observe all mutations on a list of {@link Amity.InternalUser}s.
|
|
15395
|
+
*
|
|
15396
|
+
* Pass `searchBy` in `params` to restrict which user fields are matched
|
|
15397
|
+
* (e.g. `[SearchUsersByEnum.DISPLAY_NAME]`). When omitted, the backend
|
|
15398
|
+
* default (both `displayName` and `userId`) applies.
|
|
15399
|
+
*
|
|
15400
|
+
* @param params for searching users
|
|
15401
|
+
* @param callback the function to call when new data are available
|
|
15402
|
+
* @param config the configuration for the live collection
|
|
15403
|
+
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the users
|
|
15404
|
+
*
|
|
15405
|
+
* @category Category Live Collection
|
|
15406
|
+
*/
|
|
15407
|
+
const searchUsers = (params, callback, config) => {
|
|
15408
|
+
const { log, cache } = getActiveClient();
|
|
15409
|
+
if (!cache) {
|
|
15410
|
+
// eslint-disable-next-line no-console
|
|
15411
|
+
console.log(ENABLE_CACHE_MESSAGE);
|
|
15412
|
+
}
|
|
15413
|
+
const timestamp = Date.now();
|
|
15414
|
+
log(`liveSearchUsers(tmpid: ${timestamp}) > listen`);
|
|
15415
|
+
const searchUsersLiveCollection = new SearchUserLiveCollectionController(params, callback);
|
|
15416
|
+
const disposers = searchUsersLiveCollection.startSubscription();
|
|
15417
|
+
const cacheKey = searchUsersLiveCollection.getCacheKey();
|
|
15418
|
+
disposers.push(() => dropFromCache(cacheKey));
|
|
15419
|
+
return () => {
|
|
15420
|
+
log(`liveSearchUsers(tmpid: ${timestamp}) > dispose`);
|
|
15421
|
+
disposers.forEach(fn => fn());
|
|
15422
|
+
};
|
|
15423
|
+
};
|
|
15424
|
+
/* end_public_function */
|
|
15425
|
+
|
|
15281
15426
|
/* begin_public_function
|
|
15282
15427
|
id: user.search
|
|
15283
15428
|
*/
|
|
15284
15429
|
/**
|
|
15430
|
+
* @deprecated Use {@link searchUsers} instead. `searchUserByDisplayName` will be removed in a future major version.
|
|
15431
|
+
*
|
|
15285
15432
|
* ```js
|
|
15286
15433
|
* import { UserRepository } from '@amityco/ts-sdk-react-native'
|
|
15287
15434
|
*
|
|
@@ -15430,6 +15577,7 @@ var index$q = /*#__PURE__*/Object.freeze({
|
|
|
15430
15577
|
getUsers: getUsers,
|
|
15431
15578
|
getBlockedUsers: getBlockedUsers,
|
|
15432
15579
|
getBlockingUsers: getBlockingUsers,
|
|
15580
|
+
searchUsers: searchUsers,
|
|
15433
15581
|
searchUserByDisplayName: searchUserByDisplayName,
|
|
15434
15582
|
getReachedUsers: getReachedUsers,
|
|
15435
15583
|
get AmityUserSearchMatchType () { return AmityUserSearchMatchType; }
|
|
@@ -15462,7 +15610,7 @@ const getFile = async (fileId) => {
|
|
|
15462
15610
|
if (client.cache)
|
|
15463
15611
|
ingestInCache({ files: [data] }, { cachedAt });
|
|
15464
15612
|
return {
|
|
15465
|
-
data,
|
|
15613
|
+
data: fileLinkedObject(data),
|
|
15466
15614
|
cachedAt,
|
|
15467
15615
|
};
|
|
15468
15616
|
};
|
|
@@ -15489,7 +15637,7 @@ getFile.locally = (fileId) => {
|
|
|
15489
15637
|
if (!cached)
|
|
15490
15638
|
return;
|
|
15491
15639
|
return {
|
|
15492
|
-
data: cached.data,
|
|
15640
|
+
data: fileLinkedObject(cached.data),
|
|
15493
15641
|
cachedAt: cached.cachedAt,
|
|
15494
15642
|
};
|
|
15495
15643
|
};
|
|
@@ -15626,7 +15774,7 @@ const uploadVideo = async (formData, feedType, onProgress) => {
|
|
|
15626
15774
|
if (client.cache)
|
|
15627
15775
|
ingestInCache({ files: data }, { cachedAt });
|
|
15628
15776
|
return {
|
|
15629
|
-
data,
|
|
15777
|
+
data: data.map(file => fileLinkedObject(file)),
|
|
15630
15778
|
cachedAt,
|
|
15631
15779
|
};
|
|
15632
15780
|
};
|
|
@@ -15687,7 +15835,7 @@ const uploadImage = async (formData, onProgress, altText) => {
|
|
|
15687
15835
|
if (client.cache)
|
|
15688
15836
|
ingestInCache({ files: data }, { cachedAt });
|
|
15689
15837
|
return {
|
|
15690
|
-
data,
|
|
15838
|
+
data: data.map(file => fileLinkedObject(file)),
|
|
15691
15839
|
cachedAt,
|
|
15692
15840
|
};
|
|
15693
15841
|
};
|
|
@@ -35637,4 +35785,4 @@ class AmityAttachmentProductTags {
|
|
|
35637
35785
|
}
|
|
35638
35786
|
}
|
|
35639
35787
|
|
|
35640
|
-
export { API_REGIONS, index$5 as AdRepository, AmityAttachmentProductTags, AmityAutoSubscription, AmityChannelNotificationModeEnum, AmityCommunityType, AmityEventOrderOption, AmityEventOriginType, AmityEventResponseStatus, AmityEventSortOption, AmityEventStatus, AmityEventType, AmitySharableContentType, AnalyticsSourceTypeEnum, index$f as CategoryRepository, index$j as ChannelRepository, index$s as Client, index$e as CommentRepository, CommunityNotificationEventNameEnum, CommunityPostSettingMaps, CommunityPostSettings, index$g as CommunityRepository, ContentFeedType, ContentFlagReasonEnum, DefaultCommunityPostSetting, index$1 as EventRepository, FeedDataTypeEnum, index$d as FeedRepository, FeedSortByEnum, FeedSourceEnum, FeedTypeEnum, FileAccessTypeEnum, index$p as FileRepository, FileType, GET_WATCHER_URLS, index$3 as InvitationRepository, InvitationSortByEnum, InvitationStatusEnum, InvitationTargetTypeEnum, InvitationTypeEnum, JoinRequestStatusEnum, JoinResultStatusEnum, index$2 as LiveReactionRepository, index$7 as LiveStreamPlayer, MembershipAcceptanceTypeEnum, MessageContentType, index$n as MessageRepository, NotificationRolesFilterTypeEnum, NotificationSettingsLevelEnum, index$8 as PollRepository, PostContentType, index$b as PostRepository, PostStructureType, index as ProductRepository, index$o as ReactionRepository, index$9 as RoomPresenceRepository, index$c as RoomRepository, SearchUsersByEnum, index$6 as StoryRepository, index$a as StreamRepository, index$m as SubChannelRepository, SubscriptionLevels, UserNotificationModuleNameEnum, UserReportTypeEnum, index$q as UserRepository, UserTypeEnum, VERSION, VideoResolution, VideoSize, VideoTranscodingStatus, backupCache, createQuery, createReport, createUserToken, deleteReport, disableCache, dropFromCache, enableCache, exceedsUntilAtBoundary, filterByChannelMembership, filterByCommunityMembership, filterByFeedType, filterByPostDataTypes, filterByPropEquality, filterByPropInclusion, filterByPropIntersection, filterBySearchTerm, filterByStringComparePartially, filterByUntilAt, filterCommentsByBlockUsers, filterPostsByBlockUsers, getBlockUsersId, getChannelTopic, getCommentTopic, getCommunityStoriesTopic, getCommunityTopic, getLiveReactionTopic, getLiveStreamTopic, getMarkedMessageTopic, getMarkerUserFeedTopic, getMessageTopic, getMyFollowersTopic, getMyFollowingsTopic, getNetworkId, getNetworkTopic, getPostTopic, getRole, getRoomStreamerTopic, getRoomWatcherTopic, getSmartFeedChannelTopic, getSmartFeedMessageTopic, getSmartFeedSubChannelTopic, getStoryTopic, getSubChannelTopic, getUserTopic, isAfterBefore, isAfterBeforeRaw, isCachable, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkip, mergeInCache, index$4 as notificationTray, onChannelMarkerFetched, onFeedMarkerFetched, onFeedMarkerUpdated, onMessageMarked, onMessageMarkerFetched, onSubChannelMarkerFetched, onSubChannelMarkerUpdated, onUserMarkerFetched, onUserMarkerFetchedLegacy, pullFromCache, pushToCache, queryCache, queryOptions, queryRoles, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByFirstUpdated, sortByLastActivity, sortByLastCreated, sortByLastUpdated, sortByLocalSortingDate, sortByName, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, upsertInCache, validateUntilAt, wipeCache };
|
|
35788
|
+
export { API_REGIONS, index$5 as AdRepository, AmityAttachmentProductTags, AmityAutoSubscription, AmityChannelNotificationModeEnum, AmityCommunityType, AmityEventOrderOption, AmityEventOriginType, AmityEventResponseStatus, AmityEventSortOption, AmityEventStatus, AmityEventType, AmityLiveViewerCountMode, AmitySharableContentType, AnalyticsSourceTypeEnum, index$f as CategoryRepository, index$j as ChannelRepository, index$s as Client, index$e as CommentRepository, CommunityNotificationEventNameEnum, CommunityPostSettingMaps, CommunityPostSettings, index$g as CommunityRepository, ContentFeedType, ContentFlagReasonEnum, DefaultCommunityPostSetting, index$1 as EventRepository, FeedDataTypeEnum, index$d as FeedRepository, FeedSortByEnum, FeedSourceEnum, FeedTypeEnum, FileAccessTypeEnum, index$p as FileRepository, FileType, GET_WATCHER_URLS, index$3 as InvitationRepository, InvitationSortByEnum, InvitationStatusEnum, InvitationTargetTypeEnum, InvitationTypeEnum, JoinRequestStatusEnum, JoinResultStatusEnum, index$2 as LiveReactionRepository, index$7 as LiveStreamPlayer, MembershipAcceptanceTypeEnum, MessageContentType, index$n as MessageRepository, NotificationRolesFilterTypeEnum, NotificationSettingsLevelEnum, index$8 as PollRepository, PostContentType, index$b as PostRepository, PostStructureType, index as ProductRepository, index$o as ReactionRepository, index$9 as RoomPresenceRepository, index$c as RoomRepository, SearchUsersByEnum, index$6 as StoryRepository, index$a as StreamRepository, index$m as SubChannelRepository, SubscriptionLevels, UserNotificationModuleNameEnum, UserReportTypeEnum, index$q as UserRepository, UserTypeEnum, VERSION, VideoResolution, VideoSize, VideoTranscodingStatus, backupCache, createQuery, createReport, createUserToken, deleteReport, disableCache, dropFromCache, enableCache, exceedsUntilAtBoundary, filterByChannelMembership, filterByCommunityMembership, filterByFeedType, filterByPostDataTypes, filterByPropEquality, filterByPropInclusion, filterByPropIntersection, filterBySearchTerm, filterByStringComparePartially, filterByUntilAt, filterCommentsByBlockUsers, filterPostsByBlockUsers, getBlockUsersId, getChannelTopic, getCommentTopic, getCommunityStoriesTopic, getCommunityTopic, getLiveReactionTopic, getLiveStreamTopic, getMarkedMessageTopic, getMarkerUserFeedTopic, getMessageTopic, getMyFollowersTopic, getMyFollowingsTopic, getNetworkId, getNetworkTopic, getPostTopic, getRole, getRoomStreamerTopic, getRoomWatcherTopic, getSmartFeedChannelTopic, getSmartFeedMessageTopic, getSmartFeedSubChannelTopic, getStoryTopic, getSubChannelTopic, getUserTopic, isAfterBefore, isAfterBeforeRaw, isCachable, isFetcher, isFresh, isLocal, isMutator, isOffline, isPaged, isReportedByMe, isSkip, mergeInCache, index$4 as notificationTray, onChannelMarkerFetched, onFeedMarkerFetched, onFeedMarkerUpdated, onMessageMarked, onMessageMarkerFetched, onSubChannelMarkerFetched, onSubChannelMarkerUpdated, onUserMarkerFetched, onUserMarkerFetchedLegacy, pullFromCache, pushToCache, queryCache, queryOptions, queryRoles, restoreCache, runQuery, sortByChannelSegment, sortByDisplayName, sortByFirstCreated, sortByFirstUpdated, sortByLastActivity, sortByLastCreated, sortByLastUpdated, sortByLocalSortingDate, sortByName, sortBySegmentNumber, subscribeTopic, toPage, toPageRaw, toToken, upsertInCache, validateUntilAt, wipeCache };
|