@sendbird/uikit-utils 2.4.1 → 2.4.2

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.
Files changed (63) hide show
  1. package/README.md +1 -1
  2. package/lib/commonjs/hooks/index.js +3 -30
  3. package/lib/commonjs/hooks/index.js.map +1 -1
  4. package/lib/commonjs/hooks/react-native.js +2 -11
  5. package/lib/commonjs/hooks/react-native.js.map +1 -1
  6. package/lib/commonjs/index.js +0 -42
  7. package/lib/commonjs/index.js.map +1 -1
  8. package/lib/commonjs/sendbird/attrs.js +8 -11
  9. package/lib/commonjs/sendbird/attrs.js.map +1 -1
  10. package/lib/commonjs/sendbird/channel.js +0 -16
  11. package/lib/commonjs/sendbird/channel.js.map +1 -1
  12. package/lib/commonjs/sendbird/message.js +3 -34
  13. package/lib/commonjs/sendbird/message.js.map +1 -1
  14. package/lib/commonjs/sendbird/user.js +0 -2
  15. package/lib/commonjs/sendbird/user.js.map +1 -1
  16. package/lib/commonjs/shared/arrayToMap.js +0 -6
  17. package/lib/commonjs/shared/arrayToMap.js.map +1 -1
  18. package/lib/commonjs/shared/bufferedRequest.js +5 -26
  19. package/lib/commonjs/shared/bufferedRequest.js.map +1 -1
  20. package/lib/commonjs/shared/file.js +11 -28
  21. package/lib/commonjs/shared/file.js.map +1 -1
  22. package/lib/commonjs/shared/index.js +3 -7
  23. package/lib/commonjs/shared/index.js.map +1 -1
  24. package/lib/commonjs/shared/logger.js +3 -22
  25. package/lib/commonjs/shared/logger.js.map +1 -1
  26. package/lib/commonjs/shared/regex.js +2 -9
  27. package/lib/commonjs/shared/regex.js.map +1 -1
  28. package/lib/commonjs/ui-format/common.js +6 -18
  29. package/lib/commonjs/ui-format/common.js.map +1 -1
  30. package/lib/commonjs/ui-format/groupChannel.js +0 -15
  31. package/lib/commonjs/ui-format/groupChannel.js.map +1 -1
  32. package/lib/commonjs/ui-format/openChannel.js +0 -4
  33. package/lib/commonjs/ui-format/openChannel.js.map +1 -1
  34. package/lib/module/hooks/index.js +3 -7
  35. package/lib/module/hooks/index.js.map +1 -1
  36. package/lib/module/hooks/react-native.js +2 -2
  37. package/lib/module/hooks/react-native.js.map +1 -1
  38. package/lib/module/index.js.map +1 -1
  39. package/lib/module/sendbird/attrs.js +6 -9
  40. package/lib/module/sendbird/attrs.js.map +1 -1
  41. package/lib/module/sendbird/channel.js +0 -1
  42. package/lib/module/sendbird/channel.js.map +1 -1
  43. package/lib/module/sendbird/message.js +3 -17
  44. package/lib/module/sendbird/message.js.map +1 -1
  45. package/lib/module/sendbird/user.js.map +1 -1
  46. package/lib/module/shared/arrayToMap.js +0 -4
  47. package/lib/module/shared/arrayToMap.js.map +1 -1
  48. package/lib/module/shared/bufferedRequest.js +5 -24
  49. package/lib/module/shared/bufferedRequest.js.map +1 -1
  50. package/lib/module/shared/file.js +11 -16
  51. package/lib/module/shared/file.js.map +1 -1
  52. package/lib/module/shared/index.js +3 -3
  53. package/lib/module/shared/index.js.map +1 -1
  54. package/lib/module/shared/logger.js +3 -21
  55. package/lib/module/shared/logger.js.map +1 -1
  56. package/lib/module/shared/regex.js +3 -2
  57. package/lib/module/shared/regex.js.map +1 -1
  58. package/lib/module/ui-format/common.js +6 -9
  59. package/lib/module/ui-format/common.js.map +1 -1
  60. package/lib/module/ui-format/groupChannel.js +0 -7
  61. package/lib/module/ui-format/groupChannel.js.map +1 -1
  62. package/lib/module/ui-format/openChannel.js.map +1 -1
  63. package/package.json +11 -7
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
2
3
  import { useCallback, useEffect, useLayoutEffect, useReducer, useRef, useState } from 'react';
3
4
  const idPool = {};
4
5
  export const useUniqId = key => {
@@ -24,14 +25,11 @@ export const useAsyncLayoutEffect = (asyncEffect, deps) => {
24
25
  export const useIIFE = callback => {
25
26
  return iife(callback);
26
27
  };
27
-
28
28
  const iife = callback => callback();
29
-
30
29
  const createAsyncEffectCallback = asyncEffect => () => {
31
30
  const destructor = iife(asyncEffect);
32
31
  return () => {
33
32
  if (!destructor) return;
34
-
35
33
  if (destructor instanceof Promise) {
36
34
  iife(async () => {
37
35
  const awaitedDestructor = await destructor;
@@ -42,7 +40,6 @@ const createAsyncEffectCallback = asyncEffect => () => {
42
40
  }
43
41
  };
44
42
  };
45
-
46
43
  export const useIsMountedRef = () => {
47
44
  const isMounted = useRef(true);
48
45
  useEffect(() => {
@@ -54,12 +51,10 @@ export const useIsMountedRef = () => {
54
51
  };
55
52
  export const useIsFirstMount = () => {
56
53
  const isFirstMount = useRef(true);
57
-
58
54
  if (isFirstMount.current) {
59
55
  isFirstMount.current = false;
60
56
  return true;
61
57
  }
62
-
63
58
  return isFirstMount.current;
64
59
  };
65
60
  export const useFreshCallback = callback => {
@@ -89,7 +84,8 @@ export const useDebounceEffect = function (action, delay) {
89
84
  }, [delay, ...deps]);
90
85
  };
91
86
  export const usePartialState = initialState => {
92
- return useReducer((prev, state) => ({ ...prev,
87
+ return useReducer((prev, state) => ({
88
+ ...prev,
93
89
  ...state
94
90
  }), initialState);
95
91
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useLayoutEffect","useReducer","useRef","useState","idPool","useUniqId","key","useUniqHandlerId","name","id","useForceUpdate","updater","prev","useAsyncEffect","asyncEffect","deps","createAsyncEffectCallback","useAsyncLayoutEffect","useIIFE","callback","iife","destructor","Promise","awaitedDestructor","useIsMountedRef","isMounted","current","useIsFirstMount","isFirstMount","useFreshCallback","ref","useDebounceEffect","action","delay","timeoutRef","setTimeout","undefined","clearTimeout","usePartialState","initialState","state"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useReducer, useRef, useState } from 'react';\n\ntype Destructor = () => void;\ntype AsyncEffectCallback = () => void | Destructor | Promise<void> | Promise<Destructor>;\n\nconst idPool: { [key: string]: number } = {};\nexport const useUniqId = (key: string) => {\n return useState(() => {\n if (!idPool[key]) idPool[key] = 1;\n return idPool[key]++;\n })[0];\n};\n\nexport const useUniqHandlerId = (name: string) => {\n const id = useUniqId(name);\n return `${name}_${id}`;\n};\n\nexport const useForceUpdate = () => {\n const [, updater] = useState(0);\n return useCallback(() => updater((prev) => prev + 1), []);\n};\n\nexport const useAsyncEffect = (asyncEffect: AsyncEffectCallback, deps?: DependencyList) => {\n useEffect(createAsyncEffectCallback(asyncEffect), deps);\n};\nexport const useAsyncLayoutEffect = (asyncEffect: AsyncEffectCallback, deps?: DependencyList) => {\n useLayoutEffect(createAsyncEffectCallback(asyncEffect), deps);\n};\nexport const useIIFE = <T>(callback: () => T) => {\n return iife(callback);\n};\nconst iife = <T extends (...args: any[]) => any>(callback: T): ReturnType<T> => callback();\nconst createAsyncEffectCallback = (asyncEffect: AsyncEffectCallback) => () => {\n const destructor = iife(asyncEffect);\n return () => {\n if (!destructor) return;\n\n if (destructor instanceof Promise) {\n iife(async () => {\n const awaitedDestructor = await destructor;\n if (awaitedDestructor) awaitedDestructor();\n });\n } else {\n iife(destructor);\n }\n };\n};\n\nexport const useIsMountedRef = () => {\n const isMounted = useRef(true);\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return isMounted;\n};\n\nexport const useIsFirstMount = () => {\n const isFirstMount = useRef(true);\n\n if (isFirstMount.current) {\n isFirstMount.current = false;\n return true;\n }\n\n return isFirstMount.current;\n};\n\nexport const useFreshCallback = <T extends (...args: any[]) => any>(callback: T): T => {\n const ref = useRef<T>(callback);\n ref.current = callback;\n return useCallback(((...args) => ref.current(...args)) as T, []);\n};\n\nexport const useDebounceEffect = (action: () => void, delay: number, deps: DependencyList = []) => {\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n timeoutRef.current = setTimeout(async () => {\n try {\n await action();\n } finally {\n timeoutRef.current = undefined;\n }\n }, delay);\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n };\n }, [delay, ...deps]);\n};\n\nexport const usePartialState = <S>(initialState: S) => {\n return useReducer((prev: S, state: Partial<S>) => ({ ...prev, ...state }), initialState);\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useCallback","useEffect","useLayoutEffect","useReducer","useRef","useState","idPool","useUniqId","key","useUniqHandlerId","name","id","useForceUpdate","updater","prev","useAsyncEffect","asyncEffect","deps","createAsyncEffectCallback","useAsyncLayoutEffect","useIIFE","callback","iife","destructor","Promise","awaitedDestructor","useIsMountedRef","isMounted","current","useIsFirstMount","isFirstMount","useFreshCallback","ref","arguments","useDebounceEffect","action","delay","length","undefined","timeoutRef","setTimeout","clearTimeout","usePartialState","initialState","state"],"sources":["index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { DependencyList } from 'react';\nimport { useCallback, useEffect, useLayoutEffect, useReducer, useRef, useState } from 'react';\n\ntype Destructor = () => void;\ntype AsyncEffectCallback = () => void | Destructor | Promise<void> | Promise<Destructor>;\n\nconst idPool: { [key: string]: number } = {};\nexport const useUniqId = (key: string) => {\n return useState(() => {\n if (!idPool[key]) idPool[key] = 1;\n return idPool[key]++;\n })[0];\n};\n\nexport const useUniqHandlerId = (name: string) => {\n const id = useUniqId(name);\n return `${name}_${id}`;\n};\n\nexport const useForceUpdate = () => {\n const [, updater] = useState(0);\n return useCallback(() => updater((prev) => prev + 1), []);\n};\n\nexport const useAsyncEffect = (asyncEffect: AsyncEffectCallback, deps?: DependencyList) => {\n useEffect(createAsyncEffectCallback(asyncEffect), deps);\n};\nexport const useAsyncLayoutEffect = (asyncEffect: AsyncEffectCallback, deps?: DependencyList) => {\n useLayoutEffect(createAsyncEffectCallback(asyncEffect), deps);\n};\nexport const useIIFE = <T>(callback: () => T) => {\n return iife(callback);\n};\nconst iife = <T extends (...args: any[]) => any>(callback: T): ReturnType<T> => callback();\nconst createAsyncEffectCallback = (asyncEffect: AsyncEffectCallback) => () => {\n const destructor = iife(asyncEffect);\n return () => {\n if (!destructor) return;\n\n if (destructor instanceof Promise) {\n iife(async () => {\n const awaitedDestructor = await destructor;\n if (awaitedDestructor) awaitedDestructor();\n });\n } else {\n iife(destructor);\n }\n };\n};\n\nexport const useIsMountedRef = () => {\n const isMounted = useRef(true);\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n return isMounted;\n};\n\nexport const useIsFirstMount = () => {\n const isFirstMount = useRef(true);\n\n if (isFirstMount.current) {\n isFirstMount.current = false;\n return true;\n }\n\n return isFirstMount.current;\n};\n\nexport const useFreshCallback = <T extends (...args: any[]) => any>(callback: T): T => {\n const ref = useRef<T>(callback);\n ref.current = callback;\n return useCallback(((...args) => ref.current(...args)) as T, []);\n};\n\nexport const useDebounceEffect = (action: () => void, delay: number, deps: DependencyList = []) => {\n const timeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n timeoutRef.current = setTimeout(async () => {\n try {\n await action();\n } finally {\n timeoutRef.current = undefined;\n }\n }, delay);\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n };\n }, [delay, ...deps]);\n};\n\nexport const usePartialState = <S>(initialState: S) => {\n return useReducer((prev: S, state: Partial<S>) => ({ ...prev, ...state }), initialState);\n};\n"],"mappings":"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"}
@@ -20,13 +20,13 @@ export const useAppState = (type, listener) => {
20
20
  callbackRef.current = listener;
21
21
  useEffect(() => {
22
22
  const eventListener = state => callbackRef.current(state);
23
-
24
23
  const subscriber = AppState.addEventListener(type, eventListener);
25
24
  return () => {
26
25
  // @ts-ignore
27
26
  if (subscriber !== null && subscriber !== void 0 && subscriber.remove) {
28
27
  subscriber.remove();
29
- } // @ts-ignore
28
+ }
29
+ // @ts-ignore
30
30
  else if (AppState.removeEventListener) {
31
31
  // @ts-ignore
32
32
  AppState.removeEventListener(type, eventListener);
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","AppState","useSafeAreaInsets","edgePaddingMap","left","right","top","bottom","useSafeAreaPadding","edges","safeAreaInsets","reduce","map","edge","paddingKey","useAppState","type","listener","callbackRef","current","eventListener","state","subscriber","addEventListener","remove","removeEventListener"],"sources":["react-native.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { AppState, AppStateEvent, AppStateStatus } from 'react-native';\nimport { EdgeInsets, useSafeAreaInsets } from 'react-native-safe-area-context';\n\ntype EdgePaddingMap = {\n left: 'paddingLeft';\n right: 'paddingRight';\n top: 'paddingTop';\n bottom: 'paddingBottom';\n};\nconst edgePaddingMap: EdgePaddingMap = {\n left: 'paddingLeft',\n right: 'paddingRight',\n top: 'paddingTop',\n bottom: 'paddingBottom',\n};\n\nexport const useSafeAreaPadding = <\n T extends keyof EdgeInsets,\n Result extends { [key in EdgePaddingMap[T]]: EdgeInsets[T] },\n>(\n edges: T[],\n): Result => {\n const safeAreaInsets = useSafeAreaInsets();\n return edges.reduce((map, edge) => {\n const paddingKey = edgePaddingMap[edge];\n map[paddingKey] = safeAreaInsets[edge];\n return map;\n }, {} as { [key in EdgePaddingMap[T]]: EdgeInsets[T] }) as Result;\n};\n\ntype AppStateListener = (status: AppStateStatus) => void;\n\nexport const useAppState = (type: AppStateEvent, listener: AppStateListener) => {\n const callbackRef = useRef<AppStateListener>(listener);\n callbackRef.current = listener;\n\n useEffect(() => {\n const eventListener = (state: AppStateStatus) => callbackRef.current(state);\n const subscriber = AppState.addEventListener(type, eventListener);\n\n return () => {\n // @ts-ignore\n if (subscriber?.remove) {\n subscriber.remove();\n }\n // @ts-ignore\n else if (AppState.removeEventListener) {\n // @ts-ignore\n AppState.removeEventListener(type, eventListener);\n }\n };\n }, []);\n};\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,MAApB,QAAkC,OAAlC;AACA,SAASC,QAAT,QAAwD,cAAxD;AACA,SAAqBC,iBAArB,QAA8C,gCAA9C;AAQA,MAAMC,cAA8B,GAAG;EACrCC,IAAI,EAAE,aAD+B;EAErCC,KAAK,EAAE,cAF8B;EAGrCC,GAAG,EAAE,YAHgC;EAIrCC,MAAM,EAAE;AAJ6B,CAAvC;AAOA,OAAO,MAAMC,kBAAkB,GAI7BC,KAJgC,IAKrB;EACX,MAAMC,cAAc,GAAGR,iBAAiB,EAAxC;EACA,OAAOO,KAAK,CAACE,MAAN,CAAa,CAACC,GAAD,EAAMC,IAAN,KAAe;IACjC,MAAMC,UAAU,GAAGX,cAAc,CAACU,IAAD,CAAjC;IACAD,GAAG,CAACE,UAAD,CAAH,GAAkBJ,cAAc,CAACG,IAAD,CAAhC;IACA,OAAOD,GAAP;EACD,CAJM,EAIJ,EAJI,CAAP;AAKD,CAZM;AAgBP,OAAO,MAAMG,WAAW,GAAG,CAACC,IAAD,EAAsBC,QAAtB,KAAqD;EAC9E,MAAMC,WAAW,GAAGlB,MAAM,CAAmBiB,QAAnB,CAA1B;EACAC,WAAW,CAACC,OAAZ,GAAsBF,QAAtB;EAEAlB,SAAS,CAAC,MAAM;IACd,MAAMqB,aAAa,GAAIC,KAAD,IAA2BH,WAAW,CAACC,OAAZ,CAAoBE,KAApB,CAAjD;;IACA,MAAMC,UAAU,GAAGrB,QAAQ,CAACsB,gBAAT,CAA0BP,IAA1B,EAAgCI,aAAhC,CAAnB;IAEA,OAAO,MAAM;MACX;MACA,IAAIE,UAAJ,aAAIA,UAAJ,eAAIA,UAAU,CAAEE,MAAhB,EAAwB;QACtBF,UAAU,CAACE,MAAX;MACD,CAFD,CAGA;MAHA,KAIK,IAAIvB,QAAQ,CAACwB,mBAAb,EAAkC;QACrC;QACAxB,QAAQ,CAACwB,mBAAT,CAA6BT,IAA7B,EAAmCI,aAAnC;MACD;IACF,CAVD;EAWD,CAfQ,EAeN,EAfM,CAAT;AAgBD,CApBM"}
1
+ {"version":3,"names":["useEffect","useRef","AppState","useSafeAreaInsets","edgePaddingMap","left","right","top","bottom","useSafeAreaPadding","edges","safeAreaInsets","reduce","map","edge","paddingKey","useAppState","type","listener","callbackRef","current","eventListener","state","subscriber","addEventListener","remove","removeEventListener"],"sources":["react-native.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { AppState, AppStateEvent, AppStateStatus } from 'react-native';\nimport { EdgeInsets, useSafeAreaInsets } from 'react-native-safe-area-context';\n\ntype EdgePaddingMap = {\n left: 'paddingLeft';\n right: 'paddingRight';\n top: 'paddingTop';\n bottom: 'paddingBottom';\n};\nconst edgePaddingMap: EdgePaddingMap = {\n left: 'paddingLeft',\n right: 'paddingRight',\n top: 'paddingTop',\n bottom: 'paddingBottom',\n};\n\nexport const useSafeAreaPadding = <\n T extends keyof EdgeInsets,\n Result extends { [key in EdgePaddingMap[T]]: EdgeInsets[T] },\n>(\n edges: T[],\n): Result => {\n const safeAreaInsets = useSafeAreaInsets();\n return edges.reduce((map, edge) => {\n const paddingKey = edgePaddingMap[edge];\n map[paddingKey] = safeAreaInsets[edge];\n return map;\n }, {} as { [key in EdgePaddingMap[T]]: EdgeInsets[T] }) as Result;\n};\n\ntype AppStateListener = (status: AppStateStatus) => void;\n\nexport const useAppState = (type: AppStateEvent, listener: AppStateListener) => {\n const callbackRef = useRef<AppStateListener>(listener);\n callbackRef.current = listener;\n\n useEffect(() => {\n const eventListener = (state: AppStateStatus) => callbackRef.current(state);\n const subscriber = AppState.addEventListener(type, eventListener);\n\n return () => {\n // @ts-ignore\n if (subscriber?.remove) {\n subscriber.remove();\n }\n // @ts-ignore\n else if (AppState.removeEventListener) {\n // @ts-ignore\n AppState.removeEventListener(type, eventListener);\n }\n };\n }, []);\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,QAAuC,cAAc;AACtE,SAAqBC,iBAAiB,QAAQ,gCAAgC;AAQ9E,MAAMC,cAA8B,GAAG;EACrCC,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAE,cAAc;EACrBC,GAAG,EAAE,YAAY;EACjBC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAI7BC,KAAU,IACC;EACX,MAAMC,cAAc,GAAGR,iBAAiB,EAAE;EAC1C,OAAOO,KAAK,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAK;IACjC,MAAMC,UAAU,GAAGX,cAAc,CAACU,IAAI,CAAC;IACvCD,GAAG,CAACE,UAAU,CAAC,GAAGJ,cAAc,CAACG,IAAI,CAAC;IACtC,OAAOD,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAkD;AACzD,CAAC;AAID,OAAO,MAAMG,WAAW,GAAGA,CAACC,IAAmB,EAAEC,QAA0B,KAAK;EAC9E,MAAMC,WAAW,GAAGlB,MAAM,CAAmBiB,QAAQ,CAAC;EACtDC,WAAW,CAACC,OAAO,GAAGF,QAAQ;EAE9BlB,SAAS,CAAC,MAAM;IACd,MAAMqB,aAAa,GAAIC,KAAqB,IAAKH,WAAW,CAACC,OAAO,CAACE,KAAK,CAAC;IAC3E,MAAMC,UAAU,GAAGrB,QAAQ,CAACsB,gBAAgB,CAACP,IAAI,EAAEI,aAAa,CAAC;IAEjE,OAAO,MAAM;MACX;MACA,IAAIE,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAEE,MAAM,EAAE;QACtBF,UAAU,CAACE,MAAM,EAAE;MACrB;MACA;MAAA,KACK,IAAIvB,QAAQ,CAACwB,mBAAmB,EAAE;QACrC;QACAxB,QAAQ,CAACwB,mBAAmB,CAACT,IAAI,EAAEI,aAAa,CAAC;MACnD;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["Logger","default","arrayToMap","arrayToMapWithGetter","NOOP","ASYNC_NOOP","PASS","val","toMegabyte","byte","isFunction","param","ifThenOr","cond","then","or","SBErrorCode","NON_AUTHORIZED","CHANNEL_NOT_FOUND_SERVER","CHANNEL_NOT_FOUND_SDK","SBErrorMessage","ACL"],"sources":["index.ts"],"sourcesContent":["export { Logger } from './shared/logger';\nexport { default as arrayToMap, arrayToMapWithGetter } from './shared/arrayToMap';\nexport * from './shared/regex';\nexport * from './shared/bufferedRequest';\nexport * from './shared/file';\nexport * from './shared';\n\nexport * from './hooks';\nexport * from './hooks/react-native';\nexport * from './ui-format/groupChannel';\nexport * from './ui-format/openChannel';\nexport * from './ui-format/common';\nexport * from './sendbird/channel';\nexport * from './sendbird/message';\nexport * from './sendbird/attrs';\nexport * from './sendbird/user';\n\nexport const NOOP: () => void = () => void 0;\nexport const ASYNC_NOOP = async () => void 0;\nexport const PASS = <T>(val: T) => val;\nexport const toMegabyte = (byte: number) => byte / 1024 / 1024;\nexport const isFunction = (param?: unknown): param is Function => typeof param === 'function';\n\nexport function ifThenOr<T>(cond: boolean, then: T): T | undefined;\nexport function ifThenOr<T, V>(cond: boolean, then: T, or: V): T | V;\nexport function ifThenOr(cond: boolean, then: unknown, or?: unknown) {\n if (cond) return then;\n return or;\n}\n\nexport const SBErrorCode = {\n NON_AUTHORIZED: 400108,\n CHANNEL_NOT_FOUND_SERVER: 400201,\n CHANNEL_NOT_FOUND_SDK: 900500,\n};\nexport const SBErrorMessage = {\n ACL:\n 'Sendbird provides various access control options when using the Chat SDK.\\n' +\n 'By default, the Allow retrieving user list attribute is turned on to facilitate creating sample apps.\\n' +\n 'However, this may grant access to unwanted data or operations, leading to potential security concerns.\\n' +\n 'To manage your access control settings, you can turn on or off each setting on Sendbird Dashboard.',\n};\n\nexport type {\n UserStruct,\n FilterByValueType,\n UnionToIntersection,\n OmittedValues,\n PartialDeep,\n Optional,\n ContextValue,\n OnBeforeHandler,\n SendbirdMessage,\n SendbirdChatSDK,\n SendbirdChannel,\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdOpenChannel,\n SendbirdUser,\n SendbirdMember,\n SendbirdBaseMessage,\n SendbirdUserMessage,\n SendbirdFileMessage,\n SendbirdAdminMessage,\n SendbirdGroupChannelCreateParams,\n SendbirdFileMessageCreateParams,\n SendbirdUserMessageCreateParams,\n SendbirdError,\n SendbirdMessageCollection,\n SendbirdGroupChannelCollection,\n NotificationFiles,\n NotificationMentionedUsers,\n NotificationTranslations,\n PartialNullable,\n SendbirdDataPayload,\n SendbirdPreviousMessageListQuery,\n SendbirdSendableMessage,\n SendbirdOpenChannelListQuery,\n SendbirdGroupChannelListQuery,\n SendbirdGroupChannelUpdateParams,\n SendbirdUserMessageUpdateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdUserUpdateParams,\n SendbirdRestrictedUser,\n SendbirdReaction,\n SendbirdEmojiContainer,\n SendbirdEmoji,\n SendbirdEmojiCategory,\n SendbirdOpenChannelUpdateParams,\n SendbirdOpenChannelCreateParams,\n SendbirdParticipant,\n} from './types';\n"],"mappings":"AAAA,SAASA,MAAT,QAAuB,iBAAvB;AACA,SAASC,OAAO,IAAIC,UAApB,EAAgCC,oBAAhC,QAA4D,qBAA5D;AACA,cAAc,gBAAd;AACA,cAAc,0BAAd;AACA,cAAc,eAAd;AACA,cAAc,UAAd;AAEA,cAAc,SAAd;AACA,cAAc,sBAAd;AACA,cAAc,0BAAd;AACA,cAAc,yBAAd;AACA,cAAc,oBAAd;AACA,cAAc,oBAAd;AACA,cAAc,oBAAd;AACA,cAAc,kBAAd;AACA,cAAc,iBAAd;AAEA,OAAO,MAAMC,IAAgB,GAAG,MAAM,KAAK,CAApC;AACP,OAAO,MAAMC,UAAU,GAAG,YAAY,KAAK,CAApC;AACP,OAAO,MAAMC,IAAI,GAAOC,GAAJ,IAAeA,GAA5B;AACP,OAAO,MAAMC,UAAU,GAAIC,IAAD,IAAkBA,IAAI,GAAG,IAAP,GAAc,IAAnD;AACP,OAAO,MAAMC,UAAU,GAAIC,KAAD,IAAwC,OAAOA,KAAP,KAAiB,UAA5E;AAIP,OAAO,SAASC,QAAT,CAAkBC,IAAlB,EAAiCC,IAAjC,EAAgDC,EAAhD,EAA8D;EACnE,IAAIF,IAAJ,EAAU,OAAOC,IAAP;EACV,OAAOC,EAAP;AACD;AAED,OAAO,MAAMC,WAAW,GAAG;EACzBC,cAAc,EAAE,MADS;EAEzBC,wBAAwB,EAAE,MAFD;EAGzBC,qBAAqB,EAAE;AAHE,CAApB;AAKP,OAAO,MAAMC,cAAc,GAAG;EAC5BC,GAAG,EACD,gFACA,yGADA,GAEA,0GAFA,GAGA;AAL0B,CAAvB"}
1
+ {"version":3,"names":["Logger","default","arrayToMap","arrayToMapWithGetter","NOOP","ASYNC_NOOP","PASS","val","toMegabyte","byte","isFunction","param","ifThenOr","cond","then","or","SBErrorCode","NON_AUTHORIZED","CHANNEL_NOT_FOUND_SERVER","CHANNEL_NOT_FOUND_SDK","SBErrorMessage","ACL"],"sources":["index.ts"],"sourcesContent":["export { Logger } from './shared/logger';\nexport { default as arrayToMap, arrayToMapWithGetter } from './shared/arrayToMap';\nexport * from './shared/regex';\nexport * from './shared/bufferedRequest';\nexport * from './shared/file';\nexport * from './shared';\n\nexport * from './hooks';\nexport * from './hooks/react-native';\nexport * from './ui-format/groupChannel';\nexport * from './ui-format/openChannel';\nexport * from './ui-format/common';\nexport * from './sendbird/channel';\nexport * from './sendbird/message';\nexport * from './sendbird/attrs';\nexport * from './sendbird/user';\n\nexport const NOOP: () => void = () => void 0;\nexport const ASYNC_NOOP = async () => void 0;\nexport const PASS = <T>(val: T) => val;\nexport const toMegabyte = (byte: number) => byte / 1024 / 1024;\nexport const isFunction = (param?: unknown): param is Function => typeof param === 'function';\n\nexport function ifThenOr<T>(cond: boolean, then: T): T | undefined;\nexport function ifThenOr<T, V>(cond: boolean, then: T, or: V): T | V;\nexport function ifThenOr(cond: boolean, then: unknown, or?: unknown) {\n if (cond) return then;\n return or;\n}\n\nexport const SBErrorCode = {\n NON_AUTHORIZED: 400108,\n CHANNEL_NOT_FOUND_SERVER: 400201,\n CHANNEL_NOT_FOUND_SDK: 900500,\n};\nexport const SBErrorMessage = {\n ACL:\n 'Sendbird provides various access control options when using the Chat SDK.\\n' +\n 'By default, the Allow retrieving user list attribute is turned on to facilitate creating sample apps.\\n' +\n 'However, this may grant access to unwanted data or operations, leading to potential security concerns.\\n' +\n 'To manage your access control settings, you can turn on or off each setting on Sendbird Dashboard.',\n};\n\nexport type {\n UserStruct,\n FilterByValueType,\n UnionToIntersection,\n OmittedValues,\n PartialDeep,\n Optional,\n ContextValue,\n OnBeforeHandler,\n SendbirdMessage,\n SendbirdChatSDK,\n SendbirdChannel,\n SendbirdBaseChannel,\n SendbirdGroupChannel,\n SendbirdOpenChannel,\n SendbirdUser,\n SendbirdMember,\n SendbirdBaseMessage,\n SendbirdUserMessage,\n SendbirdFileMessage,\n SendbirdAdminMessage,\n SendbirdGroupChannelCreateParams,\n SendbirdFileMessageCreateParams,\n SendbirdUserMessageCreateParams,\n SendbirdError,\n SendbirdMessageCollection,\n SendbirdGroupChannelCollection,\n NotificationFiles,\n NotificationMentionedUsers,\n NotificationTranslations,\n PartialNullable,\n SendbirdDataPayload,\n SendbirdPreviousMessageListQuery,\n SendbirdSendableMessage,\n SendbirdOpenChannelListQuery,\n SendbirdGroupChannelListQuery,\n SendbirdGroupChannelUpdateParams,\n SendbirdUserMessageUpdateParams,\n SendbirdFileMessageUpdateParams,\n SendbirdUserUpdateParams,\n SendbirdRestrictedUser,\n SendbirdReaction,\n SendbirdEmojiContainer,\n SendbirdEmoji,\n SendbirdEmojiCategory,\n SendbirdOpenChannelUpdateParams,\n SendbirdOpenChannelCreateParams,\n SendbirdParticipant,\n} from './types';\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,iBAAiB;AACxC,SAASC,OAAO,IAAIC,UAAU,EAAEC,oBAAoB,QAAQ,qBAAqB;AACjF,cAAc,gBAAgB;AAC9B,cAAc,0BAA0B;AACxC,cAAc,eAAe;AAC7B,cAAc,UAAU;AAExB,cAAc,SAAS;AACvB,cAAc,sBAAsB;AACpC,cAAc,0BAA0B;AACxC,cAAc,yBAAyB;AACvC,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,kBAAkB;AAChC,cAAc,iBAAiB;AAE/B,OAAO,MAAMC,IAAgB,GAAGA,CAAA,KAAM,KAAK,CAAC;AAC5C,OAAO,MAAMC,UAAU,GAAG,MAAAA,CAAA,KAAY,KAAK,CAAC;AAC5C,OAAO,MAAMC,IAAI,GAAOC,GAAM,IAAKA,GAAG;AACtC,OAAO,MAAMC,UAAU,GAAIC,IAAY,IAAKA,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D,OAAO,MAAMC,UAAU,GAAIC,KAAe,IAAwB,OAAOA,KAAK,KAAK,UAAU;AAI7F,OAAO,SAASC,QAAQA,CAACC,IAAa,EAAEC,IAAa,EAAEC,EAAY,EAAE;EACnE,IAAIF,IAAI,EAAE,OAAOC,IAAI;EACrB,OAAOC,EAAE;AACX;AAEA,OAAO,MAAMC,WAAW,GAAG;EACzBC,cAAc,EAAE,MAAM;EACtBC,wBAAwB,EAAE,MAAM;EAChCC,qBAAqB,EAAE;AACzB,CAAC;AACD,OAAO,MAAMC,cAAc,GAAG;EAC5BC,GAAG,EACD,6EAA6E,GAC7E,yGAAyG,GACzG,0GAA0G,GAC1G;AACJ,CAAC"}
@@ -1,6 +1,4 @@
1
- export let ApplicationAttributes;
2
-
3
- (function (ApplicationAttributes) {
1
+ export let ApplicationAttributes = /*#__PURE__*/function (ApplicationAttributes) {
4
2
  ApplicationAttributes["reactions"] = "reactions";
5
3
  ApplicationAttributes["message_search_v3"] = "message_search_v3";
6
4
  ApplicationAttributes["enable_og_tag"] = "enable_og_tag";
@@ -26,11 +24,9 @@ export let ApplicationAttributes;
26
24
  ApplicationAttributes["allow_group_channel_delete_from_sdk"] = "allow_group_channel_delete_from_sdk";
27
25
  ApplicationAttributes["allow_operators_to_ban_operators"] = "allow_operators_to_ban_operators";
28
26
  ApplicationAttributes["allow_operators_to_edit_operators"] = "allow_operators_to_edit_operators";
29
- })(ApplicationAttributes || (ApplicationAttributes = {}));
30
-
31
- export let PremiumFeatures;
32
-
33
- (function (PremiumFeatures) {
27
+ return ApplicationAttributes;
28
+ }({});
29
+ export let PremiumFeatures = /*#__PURE__*/function (PremiumFeatures) {
34
30
  PremiumFeatures["reactions"] = "reactions";
35
31
  PremiumFeatures["moderation_group"] = "moderation_group";
36
32
  PremiumFeatures["message_search_v3"] = "message_search_v3";
@@ -45,5 +41,6 @@ export let PremiumFeatures;
45
41
  PremiumFeatures["desk"] = "desk";
46
42
  PremiumFeatures["bot_interface"] = "bot_interface";
47
43
  PremiumFeatures["auto_trans"] = "auto_trans";
48
- })(PremiumFeatures || (PremiumFeatures = {}));
44
+ return PremiumFeatures;
45
+ }({});
49
46
  //# sourceMappingURL=attrs.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ApplicationAttributes","PremiumFeatures"],"sources":["attrs.ts"],"sourcesContent":["export enum ApplicationAttributes {\n reactions = 'reactions',\n message_search_v3 = 'message_search_v3',\n enable_og_tag = 'enable_og_tag',\n use_last_seen_at = 'use_last_seen_at',\n enable_message_threading = 'enable_message_threading',\n allow_message_update_from_sdk = 'allow_message_update_from_sdk',\n allow_group_channel_create_from_sdk = 'allow_group_channel_create_from_sdk',\n allow_migration_api = 'allow_migration_api',\n allow_only_operator_sdk_to_update_group_channel_image = 'allow_only_operator_sdk_to_update_group_channel_image',\n allow_user_update_from_sdk = 'allow_user_update_from_sdk',\n allow_broadcast_channel = 'allow_broadcast_channel',\n allow_sdk_file_message_urls = 'allow_sdk_file_message_urls',\n allow_group_channel_leave_from_sdk = 'allow_group_channel_leave_from_sdk',\n allow_user_list_from_sdk = 'allow_user_list_from_sdk',\n allow_group_channel_invite_from_sdk = 'allow_group_channel_invite_from_sdk',\n allow_only_operator_sdk_to_update_group_channel_name = 'allow_only_operator_sdk_to_update_group_channel_name',\n allow_group_channel_update_from_sdk = 'allow_group_channel_update_from_sdk',\n allow_super_group_channel = 'allow_super_group_channel',\n allow_non_operators_to_mention_channel = 'allow_non_operators_to_mention_channel',\n allow_file_messages_from_sdk = 'allow_file_messages_from_sdk',\n allow_open_channel_create_from_sdk = 'allow_open_channel_create_from_sdk',\n allow_anonymous_message_update = 'allow_anonymous_message_update',\n allow_group_channel_delete_from_sdk = 'allow_group_channel_delete_from_sdk',\n allow_operators_to_ban_operators = 'allow_operators_to_ban_operators',\n allow_operators_to_edit_operators = 'allow_operators_to_edit_operators',\n}\n\nexport enum PremiumFeatures {\n reactions = 'reactions',\n moderation_group = 'moderation_group',\n message_search_v3 = 'message_search_v3',\n data_export = 'data_export',\n migration = 'migration',\n delivery_receipt = 'delivery_receipt',\n auto_thumbnail = 'auto_thumbnail',\n image_moderation = 'image_moderation',\n super_group_channel = 'super_group_channel',\n announcement = 'announcement',\n moderation_open = 'moderation_open',\n desk = 'desk',\n bot_interface = 'bot_interface',\n auto_trans = 'auto_trans',\n}\n"],"mappings":"AAAA,WAAYA,qBAAZ;;WAAYA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;EAAAA,qB;GAAAA,qB,KAAAA,qB;;AA4BZ,WAAYC,eAAZ;;WAAYA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;EAAAA,e;GAAAA,e,KAAAA,e"}
1
+ {"version":3,"names":["ApplicationAttributes","PremiumFeatures"],"sources":["attrs.ts"],"sourcesContent":["export enum ApplicationAttributes {\n reactions = 'reactions',\n message_search_v3 = 'message_search_v3',\n enable_og_tag = 'enable_og_tag',\n use_last_seen_at = 'use_last_seen_at',\n enable_message_threading = 'enable_message_threading',\n allow_message_update_from_sdk = 'allow_message_update_from_sdk',\n allow_group_channel_create_from_sdk = 'allow_group_channel_create_from_sdk',\n allow_migration_api = 'allow_migration_api',\n allow_only_operator_sdk_to_update_group_channel_image = 'allow_only_operator_sdk_to_update_group_channel_image',\n allow_user_update_from_sdk = 'allow_user_update_from_sdk',\n allow_broadcast_channel = 'allow_broadcast_channel',\n allow_sdk_file_message_urls = 'allow_sdk_file_message_urls',\n allow_group_channel_leave_from_sdk = 'allow_group_channel_leave_from_sdk',\n allow_user_list_from_sdk = 'allow_user_list_from_sdk',\n allow_group_channel_invite_from_sdk = 'allow_group_channel_invite_from_sdk',\n allow_only_operator_sdk_to_update_group_channel_name = 'allow_only_operator_sdk_to_update_group_channel_name',\n allow_group_channel_update_from_sdk = 'allow_group_channel_update_from_sdk',\n allow_super_group_channel = 'allow_super_group_channel',\n allow_non_operators_to_mention_channel = 'allow_non_operators_to_mention_channel',\n allow_file_messages_from_sdk = 'allow_file_messages_from_sdk',\n allow_open_channel_create_from_sdk = 'allow_open_channel_create_from_sdk',\n allow_anonymous_message_update = 'allow_anonymous_message_update',\n allow_group_channel_delete_from_sdk = 'allow_group_channel_delete_from_sdk',\n allow_operators_to_ban_operators = 'allow_operators_to_ban_operators',\n allow_operators_to_edit_operators = 'allow_operators_to_edit_operators',\n}\n\nexport enum PremiumFeatures {\n reactions = 'reactions',\n moderation_group = 'moderation_group',\n message_search_v3 = 'message_search_v3',\n data_export = 'data_export',\n migration = 'migration',\n delivery_receipt = 'delivery_receipt',\n auto_thumbnail = 'auto_thumbnail',\n image_moderation = 'image_moderation',\n super_group_channel = 'super_group_channel',\n announcement = 'announcement',\n moderation_open = 'moderation_open',\n desk = 'desk',\n bot_interface = 'bot_interface',\n auto_trans = 'auto_trans',\n}\n"],"mappings":"AAAA,WAAYA,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA;AA4BjC,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA"}
@@ -1,5 +1,4 @@
1
1
  import { BufferedRequest } from '../shared/bufferedRequest';
2
-
3
2
  /**
4
3
  * Diff utils for channel
5
4
  * @param {SendbirdBaseChannel} [a]
@@ -1 +1 @@
1
- {"version":3,"names":["BufferedRequest","isDifferentChannel","a","b","url","getGroupChannelChatAvailableState","channel","isOperator","myRole","frozen","isFrozen","muted","myMutedState","disabled","getOpenChannelChatAvailableState","userId","getMyMutedInfo","isMuted","confirmAndMarkAsRead","channels","filter","it","isGroupChannel","unreadMessageCount","forEach","markAsRead","push","confirmAndMarkAsDelivered","markAsDelivered","isDefaultCoverImage","coverUrl","startsWith","getMembersExcludeMe","currentUserId","members","m","getGroupChannels","c","getOpenChannels","isOpenChannel","getChannelUniqId","getDefaultGroupChannelCreateParams","params","createParams","name","isDistinct","invitedUserIds","operatorUserIds"],"sources":["channel.ts"],"sourcesContent":["import { BufferedRequest } from '../shared/bufferedRequest';\nimport type {\n SendbirdBaseChannel,\n SendbirdChannel,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdOpenChannel,\n} from '../types';\n\n/**\n * Diff utils for channel\n * @param {SendbirdBaseChannel} [a]\n * @param {SendbirdBaseChannel} [b]\n * @returns {boolean}\n * */\nexport function isDifferentChannel<T extends SendbirdBaseChannel>(a?: T, b?: T): boolean {\n if (!a || !b) return true;\n return a.url !== b.url;\n}\n\nexport const getGroupChannelChatAvailableState = (channel: SendbirdGroupChannel) => {\n const isOperator = channel.myRole === 'operator';\n const frozen = channel.isFrozen && !isOperator;\n const muted = channel.myMutedState === 'muted';\n const disabled = frozen || muted;\n return { disabled, frozen, muted };\n};\n\nexport const getOpenChannelChatAvailableState = async (channel: SendbirdOpenChannel, userId: string) => {\n const isOperator = channel.isOperator(userId);\n const frozen = channel.isFrozen && !isOperator;\n const muted = (await channel.getMyMutedInfo()).isMuted;\n const disabled = frozen || muted;\n return { disabled, frozen, muted };\n};\n\nexport const confirmAndMarkAsRead = async (channels: SendbirdBaseChannel[]) => {\n channels\n .filter((it): it is SendbirdGroupChannel => it.isGroupChannel() && it.unreadMessageCount > 0)\n .forEach((it) => BufferedRequest.markAsRead.push(() => it.markAsRead(), it.url));\n};\n\nexport const confirmAndMarkAsDelivered = async (channels: SendbirdBaseChannel[]) => {\n channels\n .filter((it): it is SendbirdGroupChannel => it.isGroupChannel() && it.unreadMessageCount > 0)\n .forEach((it) => BufferedRequest.markAsDelivered.push(() => it.markAsDelivered(), it.url));\n};\n\nexport function isDefaultCoverImage(coverUrl: string) {\n return coverUrl === '' || coverUrl.startsWith('https://static.sendbird.com/sample/cover');\n}\n\nexport function getMembersExcludeMe(channel: SendbirdGroupChannel, currentUserId?: string) {\n return channel.members.filter((m) => m.userId !== currentUserId);\n}\n\nexport function getGroupChannels(channels: SendbirdChannel[]): SendbirdGroupChannel[] {\n return channels.filter((c): c is SendbirdGroupChannel => c.isGroupChannel());\n}\n\nexport function getOpenChannels(channels: SendbirdChannel[]): SendbirdOpenChannel[] {\n return channels.filter((c): c is SendbirdOpenChannel => c.isOpenChannel());\n}\n\nexport function getChannelUniqId(channel: SendbirdChannel) {\n return channel.url;\n}\n\nexport function getDefaultGroupChannelCreateParams(params: {\n invitedUserIds: string[];\n currentUserId?: string;\n}): SendbirdGroupChannelCreateParams {\n const createParams: SendbirdGroupChannelCreateParams = {\n name: '',\n coverUrl: '',\n isDistinct: false,\n invitedUserIds: params.invitedUserIds,\n };\n\n if (params.currentUserId) createParams.operatorUserIds = [params.currentUserId];\n\n return createParams;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["BufferedRequest","isDifferentChannel","a","b","url","getGroupChannelChatAvailableState","channel","isOperator","myRole","frozen","isFrozen","muted","myMutedState","disabled","getOpenChannelChatAvailableState","userId","getMyMutedInfo","isMuted","confirmAndMarkAsRead","channels","filter","it","isGroupChannel","unreadMessageCount","forEach","markAsRead","push","confirmAndMarkAsDelivered","markAsDelivered","isDefaultCoverImage","coverUrl","startsWith","getMembersExcludeMe","currentUserId","members","m","getGroupChannels","c","getOpenChannels","isOpenChannel","getChannelUniqId","getDefaultGroupChannelCreateParams","params","createParams","name","isDistinct","invitedUserIds","operatorUserIds"],"sources":["channel.ts"],"sourcesContent":["import { BufferedRequest } from '../shared/bufferedRequest';\nimport type {\n SendbirdBaseChannel,\n SendbirdChannel,\n SendbirdGroupChannel,\n SendbirdGroupChannelCreateParams,\n SendbirdOpenChannel,\n} from '../types';\n\n/**\n * Diff utils for channel\n * @param {SendbirdBaseChannel} [a]\n * @param {SendbirdBaseChannel} [b]\n * @returns {boolean}\n * */\nexport function isDifferentChannel<T extends SendbirdBaseChannel>(a?: T, b?: T): boolean {\n if (!a || !b) return true;\n return a.url !== b.url;\n}\n\nexport const getGroupChannelChatAvailableState = (channel: SendbirdGroupChannel) => {\n const isOperator = channel.myRole === 'operator';\n const frozen = channel.isFrozen && !isOperator;\n const muted = channel.myMutedState === 'muted';\n const disabled = frozen || muted;\n return { disabled, frozen, muted };\n};\n\nexport const getOpenChannelChatAvailableState = async (channel: SendbirdOpenChannel, userId: string) => {\n const isOperator = channel.isOperator(userId);\n const frozen = channel.isFrozen && !isOperator;\n const muted = (await channel.getMyMutedInfo()).isMuted;\n const disabled = frozen || muted;\n return { disabled, frozen, muted };\n};\n\nexport const confirmAndMarkAsRead = async (channels: SendbirdBaseChannel[]) => {\n channels\n .filter((it): it is SendbirdGroupChannel => it.isGroupChannel() && it.unreadMessageCount > 0)\n .forEach((it) => BufferedRequest.markAsRead.push(() => it.markAsRead(), it.url));\n};\n\nexport const confirmAndMarkAsDelivered = async (channels: SendbirdBaseChannel[]) => {\n channels\n .filter((it): it is SendbirdGroupChannel => it.isGroupChannel() && it.unreadMessageCount > 0)\n .forEach((it) => BufferedRequest.markAsDelivered.push(() => it.markAsDelivered(), it.url));\n};\n\nexport function isDefaultCoverImage(coverUrl: string) {\n return coverUrl === '' || coverUrl.startsWith('https://static.sendbird.com/sample/cover');\n}\n\nexport function getMembersExcludeMe(channel: SendbirdGroupChannel, currentUserId?: string) {\n return channel.members.filter((m) => m.userId !== currentUserId);\n}\n\nexport function getGroupChannels(channels: SendbirdChannel[]): SendbirdGroupChannel[] {\n return channels.filter((c): c is SendbirdGroupChannel => c.isGroupChannel());\n}\n\nexport function getOpenChannels(channels: SendbirdChannel[]): SendbirdOpenChannel[] {\n return channels.filter((c): c is SendbirdOpenChannel => c.isOpenChannel());\n}\n\nexport function getChannelUniqId(channel: SendbirdChannel) {\n return channel.url;\n}\n\nexport function getDefaultGroupChannelCreateParams(params: {\n invitedUserIds: string[];\n currentUserId?: string;\n}): SendbirdGroupChannelCreateParams {\n const createParams: SendbirdGroupChannelCreateParams = {\n name: '',\n coverUrl: '',\n isDistinct: false,\n invitedUserIds: params.invitedUserIds,\n };\n\n if (params.currentUserId) createParams.operatorUserIds = [params.currentUserId];\n\n return createParams;\n}\n"],"mappings":"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"}
@@ -11,14 +11,15 @@ export function isSendableMessage(msg) {
11
11
  }
12
12
  export function isMyMessage(msg) {
13
13
  var _msg$sender;
14
-
15
14
  let currentUserId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '##__USER_ID_IS_NOT_PROVIDED__##';
16
15
  if (!isSendableMessage(msg)) return false;
17
16
  return 'sender' in msg && ((_msg$sender = msg.sender) === null || _msg$sender === void 0 ? void 0 : _msg$sender.userId) === currentUserId || msg.sendingStatus === 'pending' || msg.sendingStatus === 'failed' || msg.sendingStatus === 'canceled';
18
17
  }
19
18
  export function messageKeyExtractor(message) {
20
19
  return getMessageUniqId(message);
21
- } // |-------------------|-------------------|-----------------|-------------------|
20
+ }
21
+
22
+ // |-------------------|-------------------|-----------------|-------------------|
22
23
  // | sending status | reqId | messageId | createdAt |
23
24
  // |-------------------|-------------------|-----------------|-------------------|
24
25
  // | pending | timestamp(A) | 0 | timestamp(B) |
@@ -26,7 +27,6 @@ export function messageKeyExtractor(message) {
26
27
  // | failed | timestamp(A) | 0 | ? |
27
28
  // | succeeded | timestamp(A) / '' | id from DB | timestamp(C) |
28
29
  // |-------------------|-------------------|-----------------|-------------------|
29
-
30
30
  export function messageComparator(a, b) {
31
31
  let aStatusOffset = 0;
32
32
  let bStatusOffset = 0;
@@ -36,7 +36,6 @@ export function messageComparator(a, b) {
36
36
  }
37
37
  export function hasSameSender(a, b) {
38
38
  var _a$sender, _b$sender;
39
-
40
39
  if (!a || !b) return false;
41
40
  if ('sender' in a && 'sender' in b) return ((_a$sender = a.sender) === null || _a$sender === void 0 ? void 0 : _a$sender.userId) === ((_b$sender = b.sender) === null || _b$sender === void 0 ? void 0 : _b$sender.userId);
42
41
  return false;
@@ -50,7 +49,6 @@ export function calcMessageGrouping(groupEnabled, curr, prev, next) {
50
49
  if (getMessageTimeFormat(new Date(curr.createdAt)) !== getMessageTimeFormat(new Date(prev.createdAt))) return false;
51
50
  return true;
52
51
  };
53
-
54
52
  const getNext = () => {
55
53
  if (!groupEnabled) return false;
56
54
  if (!next) return false;
@@ -59,7 +57,6 @@ export function calcMessageGrouping(groupEnabled, curr, prev, next) {
59
57
  if (getMessageTimeFormat(new Date(curr.createdAt)) !== getMessageTimeFormat(new Date(next.createdAt))) return false;
60
58
  return true;
61
59
  };
62
-
63
60
  return {
64
61
  groupWithPrev: getPrev(),
65
62
  groupWithNext: getNext()
@@ -70,14 +67,12 @@ export function getMessageUniqId(msg) {
70
67
  if (msg.sendingStatus === 'succeeded') return String(msg.messageId);
71
68
  return msg.reqId;
72
69
  }
73
-
74
70
  return String(msg.messageId);
75
71
  }
76
72
  export function getAvailableUriFromFileMessage(message) {
77
73
  if (!message.url && message.messageParams.file && 'uri' in message.messageParams.file) {
78
74
  return message.messageParams.file.uri;
79
75
  }
80
-
81
76
  return message.url;
82
77
  }
83
78
  export function isSendbirdNotification(dataPayload) {
@@ -91,12 +86,10 @@ export function shouldRenderReaction(channel, reactionEnabled) {
91
86
  if (channel.isOpenChannel()) {
92
87
  return false;
93
88
  }
94
-
95
89
  if (channel.isGroupChannel()) {
96
90
  if (channel.isBroadcast) return false;
97
91
  if (channel.isSuper) return false;
98
92
  }
99
-
100
93
  return reactionEnabled;
101
94
  }
102
95
  export function getReactionCount(reaction) {
@@ -109,37 +102,30 @@ export function getMessageType(message) {
109
102
  if (message.isAdminMessage()) {
110
103
  return 'admin';
111
104
  }
112
-
113
105
  if (message.isUserMessage()) {
114
106
  if (message.ogMetaData) {
115
107
  return 'user.opengraph';
116
108
  }
117
-
118
109
  return 'user';
119
110
  }
120
-
121
111
  if (message.isFileMessage()) {
122
112
  const fileType = getFileTypeFromMessage(message);
123
-
124
113
  switch (fileType) {
125
114
  case 'image':
126
115
  case 'video':
127
116
  {
128
117
  return `file.${fileType}`;
129
118
  }
130
-
131
119
  case 'audio':
132
120
  {
133
121
  return `file.${fileType}`;
134
122
  }
135
-
136
123
  default:
137
124
  {
138
125
  return 'file';
139
126
  }
140
127
  }
141
128
  }
142
-
143
129
  return 'unknown';
144
130
  }
145
131
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getFileExtension","getFileType","getMessageTimeFormat","isNewMessage","msg","currentUserId","myMessage","isMyMessage","isAdminMessage","updatedAt","isSendableMessage","undefined","sender","userId","sendingStatus","messageKeyExtractor","message","getMessageUniqId","messageComparator","a","b","aStatusOffset","bStatusOffset","createdAt","hasSameSender","calcMessageGrouping","groupEnabled","curr","prev","next","getPrev","Date","getNext","groupWithPrev","groupWithNext","isUserMessage","isFileMessage","String","messageId","reqId","getAvailableUriFromFileMessage","url","messageParams","file","uri","isSendbirdNotification","dataPayload","Boolean","parseSendbirdNotification","sendbird","JSON","parse","shouldRenderReaction","channel","reactionEnabled","isOpenChannel","isGroupChannel","isBroadcast","isSuper","getReactionCount","reaction","userIds","length","getFileTypeFromMessage","type","name","getMessageType","ogMetaData","fileType"],"sources":["message.ts"],"sourcesContent":["import { getFileExtension, getFileType } from '../shared/file';\nimport type {\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdDataPayload,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdReaction,\n SendbirdSendableMessage,\n} from '../types';\nimport { getMessageTimeFormat } from '../ui-format/common';\n\nexport function isNewMessage(msg: SendbirdMessage, currentUserId?: string) {\n const myMessage = isMyMessage(msg, currentUserId);\n if (myMessage) return false;\n if (msg.isAdminMessage()) return false;\n return msg.updatedAt === 0;\n}\n\nexport function isSendableMessage(msg?: SendbirdMessage | null): msg is SendbirdSendableMessage {\n return msg !== undefined && msg !== null && 'sendingStatus' in msg;\n}\n\nexport function isMyMessage(msg?: SendbirdMessage | null, currentUserId = '##__USER_ID_IS_NOT_PROVIDED__##') {\n if (!isSendableMessage(msg)) return false;\n return (\n ('sender' in msg && msg.sender?.userId === currentUserId) ||\n msg.sendingStatus === 'pending' ||\n msg.sendingStatus === 'failed' ||\n msg.sendingStatus === 'canceled'\n );\n}\n\nexport function messageKeyExtractor(message: SendbirdMessage): string {\n return getMessageUniqId(message);\n}\n\n// |-------------------|-------------------|-----------------|-------------------|\n// | sending status | reqId | messageId | createdAt |\n// |-------------------|-------------------|-----------------|-------------------|\n// | pending | timestamp(A) | 0 | timestamp(B) |\n// | canceled | timestamp(A) | 0 | ? |\n// | failed | timestamp(A) | 0 | ? |\n// | succeeded | timestamp(A) / '' | id from DB | timestamp(C) |\n// |-------------------|-------------------|-----------------|-------------------|\nexport function messageComparator(a: SendbirdMessage, b: SendbirdMessage) {\n let aStatusOffset = 0;\n let bStatusOffset = 0;\n\n if (isSendableMessage(a) && a.sendingStatus !== 'succeeded') aStatusOffset = 999999;\n if (isSendableMessage(b) && b.sendingStatus !== 'succeeded') bStatusOffset = 999999;\n\n return b.createdAt + bStatusOffset - (a.createdAt + aStatusOffset);\n}\n\nexport function hasSameSender(a?: SendbirdMessage, b?: SendbirdMessage) {\n if (!a || !b) return false;\n if ('sender' in a && 'sender' in b) return a.sender?.userId === b.sender?.userId;\n return false;\n}\n\nexport function calcMessageGrouping(\n groupEnabled: boolean,\n curr: SendbirdMessage,\n prev?: SendbirdMessage,\n next?: SendbirdMessage,\n) {\n const getPrev = () => {\n if (!groupEnabled) return false;\n if (!prev) return false;\n if (curr.isAdminMessage()) return false;\n if (!hasSameSender(curr, prev)) return false;\n if (getMessageTimeFormat(new Date(curr.createdAt)) !== getMessageTimeFormat(new Date(prev.createdAt))) return false;\n return true;\n };\n\n const getNext = () => {\n if (!groupEnabled) return false;\n if (!next) return false;\n if (curr.isAdminMessage()) return false;\n if (!hasSameSender(curr, next)) return false;\n if (getMessageTimeFormat(new Date(curr.createdAt)) !== getMessageTimeFormat(new Date(next.createdAt))) return false;\n return true;\n };\n\n return { groupWithPrev: getPrev(), groupWithNext: getNext() };\n}\n\nexport function getMessageUniqId(msg: SendbirdBaseMessage) {\n if (msg.isUserMessage() || msg.isFileMessage()) {\n if (msg.sendingStatus === 'succeeded') return String(msg.messageId);\n return msg.reqId;\n }\n\n return String(msg.messageId);\n}\n\nexport function getAvailableUriFromFileMessage(message: SendbirdFileMessage) {\n if (!message.url && message.messageParams.file && 'uri' in message.messageParams.file) {\n return message.messageParams.file.uri;\n }\n return message.url;\n}\n\ntype RawSendbirdDataPayload = { sendbird: string | object };\nexport function isSendbirdNotification(dataPayload?: {\n [key: string]: string | object;\n}): dataPayload is RawSendbirdDataPayload {\n if (!dataPayload) return false;\n return Boolean(dataPayload['sendbird']);\n}\n\nexport function parseSendbirdNotification(dataPayload: RawSendbirdDataPayload): SendbirdDataPayload {\n return typeof dataPayload.sendbird === 'string' ? JSON.parse(dataPayload.sendbird) : dataPayload.sendbird;\n}\n\nexport function shouldRenderReaction(channel: SendbirdBaseChannel, reactionEnabled: boolean) {\n if (channel.isOpenChannel()) {\n return false;\n }\n\n if (channel.isGroupChannel()) {\n if (channel.isBroadcast) return false;\n if (channel.isSuper) return false;\n }\n\n return reactionEnabled;\n}\n\nexport function getReactionCount(reaction: SendbirdReaction) {\n return reaction.userIds.length;\n}\n\ntype MessageType =\n | 'user'\n | 'admin'\n | 'file'\n | 'unknown'\n | `user.${'opengraph'}`\n | `file.${'image' | 'video' | 'audio'}`;\n\nexport function getFileTypeFromMessage(message: SendbirdFileMessage) {\n return getFileType(message.type || getFileExtension(message.name));\n}\n\nexport function getMessageType(message: SendbirdMessage): MessageType {\n if (message.isAdminMessage()) {\n return 'admin';\n }\n\n if (message.isUserMessage()) {\n if (message.ogMetaData) {\n return 'user.opengraph';\n }\n return 'user';\n }\n\n if (message.isFileMessage()) {\n const fileType = getFileTypeFromMessage(message);\n switch (fileType) {\n case 'image':\n case 'video': {\n return `file.${fileType}`;\n }\n case 'audio': {\n return `file.${fileType}`;\n }\n default: {\n return 'file';\n }\n }\n }\n\n return 'unknown';\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["getFileExtension","getFileType","getMessageTimeFormat","isNewMessage","msg","currentUserId","myMessage","isMyMessage","isAdminMessage","updatedAt","isSendableMessage","undefined","_msg$sender","arguments","length","sender","userId","sendingStatus","messageKeyExtractor","message","getMessageUniqId","messageComparator","a","b","aStatusOffset","bStatusOffset","createdAt","hasSameSender","_a$sender","_b$sender","calcMessageGrouping","groupEnabled","curr","prev","next","getPrev","Date","getNext","groupWithPrev","groupWithNext","isUserMessage","isFileMessage","String","messageId","reqId","getAvailableUriFromFileMessage","url","messageParams","file","uri","isSendbirdNotification","dataPayload","Boolean","parseSendbirdNotification","sendbird","JSON","parse","shouldRenderReaction","channel","reactionEnabled","isOpenChannel","isGroupChannel","isBroadcast","isSuper","getReactionCount","reaction","userIds","getFileTypeFromMessage","type","name","getMessageType","ogMetaData","fileType"],"sources":["message.ts"],"sourcesContent":["import { getFileExtension, getFileType } from '../shared/file';\nimport type {\n SendbirdBaseChannel,\n SendbirdBaseMessage,\n SendbirdDataPayload,\n SendbirdFileMessage,\n SendbirdMessage,\n SendbirdReaction,\n SendbirdSendableMessage,\n} from '../types';\nimport { getMessageTimeFormat } from '../ui-format/common';\n\nexport function isNewMessage(msg: SendbirdMessage, currentUserId?: string) {\n const myMessage = isMyMessage(msg, currentUserId);\n if (myMessage) return false;\n if (msg.isAdminMessage()) return false;\n return msg.updatedAt === 0;\n}\n\nexport function isSendableMessage(msg?: SendbirdMessage | null): msg is SendbirdSendableMessage {\n return msg !== undefined && msg !== null && 'sendingStatus' in msg;\n}\n\nexport function isMyMessage(msg?: SendbirdMessage | null, currentUserId = '##__USER_ID_IS_NOT_PROVIDED__##') {\n if (!isSendableMessage(msg)) return false;\n return (\n ('sender' in msg && msg.sender?.userId === currentUserId) ||\n msg.sendingStatus === 'pending' ||\n msg.sendingStatus === 'failed' ||\n msg.sendingStatus === 'canceled'\n );\n}\n\nexport function messageKeyExtractor(message: SendbirdMessage): string {\n return getMessageUniqId(message);\n}\n\n// |-------------------|-------------------|-----------------|-------------------|\n// | sending status | reqId | messageId | createdAt |\n// |-------------------|-------------------|-----------------|-------------------|\n// | pending | timestamp(A) | 0 | timestamp(B) |\n// | canceled | timestamp(A) | 0 | ? |\n// | failed | timestamp(A) | 0 | ? |\n// | succeeded | timestamp(A) / '' | id from DB | timestamp(C) |\n// |-------------------|-------------------|-----------------|-------------------|\nexport function messageComparator(a: SendbirdMessage, b: SendbirdMessage) {\n let aStatusOffset = 0;\n let bStatusOffset = 0;\n\n if (isSendableMessage(a) && a.sendingStatus !== 'succeeded') aStatusOffset = 999999;\n if (isSendableMessage(b) && b.sendingStatus !== 'succeeded') bStatusOffset = 999999;\n\n return b.createdAt + bStatusOffset - (a.createdAt + aStatusOffset);\n}\n\nexport function hasSameSender(a?: SendbirdMessage, b?: SendbirdMessage) {\n if (!a || !b) return false;\n if ('sender' in a && 'sender' in b) return a.sender?.userId === b.sender?.userId;\n return false;\n}\n\nexport function calcMessageGrouping(\n groupEnabled: boolean,\n curr: SendbirdMessage,\n prev?: SendbirdMessage,\n next?: SendbirdMessage,\n) {\n const getPrev = () => {\n if (!groupEnabled) return false;\n if (!prev) return false;\n if (curr.isAdminMessage()) return false;\n if (!hasSameSender(curr, prev)) return false;\n if (getMessageTimeFormat(new Date(curr.createdAt)) !== getMessageTimeFormat(new Date(prev.createdAt))) return false;\n return true;\n };\n\n const getNext = () => {\n if (!groupEnabled) return false;\n if (!next) return false;\n if (curr.isAdminMessage()) return false;\n if (!hasSameSender(curr, next)) return false;\n if (getMessageTimeFormat(new Date(curr.createdAt)) !== getMessageTimeFormat(new Date(next.createdAt))) return false;\n return true;\n };\n\n return { groupWithPrev: getPrev(), groupWithNext: getNext() };\n}\n\nexport function getMessageUniqId(msg: SendbirdBaseMessage) {\n if (msg.isUserMessage() || msg.isFileMessage()) {\n if (msg.sendingStatus === 'succeeded') return String(msg.messageId);\n return msg.reqId;\n }\n\n return String(msg.messageId);\n}\n\nexport function getAvailableUriFromFileMessage(message: SendbirdFileMessage) {\n if (!message.url && message.messageParams.file && 'uri' in message.messageParams.file) {\n return message.messageParams.file.uri;\n }\n return message.url;\n}\n\ntype RawSendbirdDataPayload = { sendbird: string | object };\nexport function isSendbirdNotification(dataPayload?: {\n [key: string]: string | object;\n}): dataPayload is RawSendbirdDataPayload {\n if (!dataPayload) return false;\n return Boolean(dataPayload['sendbird']);\n}\n\nexport function parseSendbirdNotification(dataPayload: RawSendbirdDataPayload): SendbirdDataPayload {\n return typeof dataPayload.sendbird === 'string' ? JSON.parse(dataPayload.sendbird) : dataPayload.sendbird;\n}\n\nexport function shouldRenderReaction(channel: SendbirdBaseChannel, reactionEnabled: boolean) {\n if (channel.isOpenChannel()) {\n return false;\n }\n\n if (channel.isGroupChannel()) {\n if (channel.isBroadcast) return false;\n if (channel.isSuper) return false;\n }\n\n return reactionEnabled;\n}\n\nexport function getReactionCount(reaction: SendbirdReaction) {\n return reaction.userIds.length;\n}\n\ntype MessageType =\n | 'user'\n | 'admin'\n | 'file'\n | 'unknown'\n | `user.${'opengraph'}`\n | `file.${'image' | 'video' | 'audio'}`;\n\nexport function getFileTypeFromMessage(message: SendbirdFileMessage) {\n return getFileType(message.type || getFileExtension(message.name));\n}\n\nexport function getMessageType(message: SendbirdMessage): MessageType {\n if (message.isAdminMessage()) {\n return 'admin';\n }\n\n if (message.isUserMessage()) {\n if (message.ogMetaData) {\n return 'user.opengraph';\n }\n return 'user';\n }\n\n if (message.isFileMessage()) {\n const fileType = getFileTypeFromMessage(message);\n switch (fileType) {\n case 'image':\n case 'video': {\n return `file.${fileType}`;\n }\n case 'audio': {\n return `file.${fileType}`;\n }\n default: {\n return 'file';\n }\n }\n }\n\n return 'unknown';\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["ifOperator","role","then","or","getUserUniqId","user","userId"],"sources":["user.ts"],"sourcesContent":["import type { Role } from '@sendbird/chat';\n\nimport type { UserStruct } from '../types';\n\nexport function ifOperator<T>(role: Role, then: T): T | undefined;\nexport function ifOperator<T, V>(role: Role, then: T, or: V): T | V;\nexport function ifOperator(role: Role, then: unknown, or?: unknown) {\n if (role === 'operator') return then;\n return or;\n}\n\nexport function getUserUniqId<T extends UserStruct>(user: T) {\n return user.userId;\n}\n"],"mappings":"AAMA,OAAO,SAASA,UAAT,CAAoBC,IAApB,EAAgCC,IAAhC,EAA+CC,EAA/C,EAA6D;EAClE,IAAIF,IAAI,KAAK,UAAb,EAAyB,OAAOC,IAAP;EACzB,OAAOC,EAAP;AACD;AAED,OAAO,SAASC,aAAT,CAA6CC,IAA7C,EAAsD;EAC3D,OAAOA,IAAI,CAACC,MAAZ;AACD"}
1
+ {"version":3,"names":["ifOperator","role","then","or","getUserUniqId","user","userId"],"sources":["user.ts"],"sourcesContent":["import type { Role } from '@sendbird/chat';\n\nimport type { UserStruct } from '../types';\n\nexport function ifOperator<T>(role: Role, then: T): T | undefined;\nexport function ifOperator<T, V>(role: Role, then: T, or: V): T | V;\nexport function ifOperator(role: Role, then: unknown, or?: unknown) {\n if (role === 'operator') return then;\n return or;\n}\n\nexport function getUserUniqId<T extends UserStruct>(user: T) {\n return user.userId;\n}\n"],"mappings":"AAMA,OAAO,SAASA,UAAUA,CAACC,IAAU,EAAEC,IAAa,EAAEC,EAAY,EAAE;EAClE,IAAIF,IAAI,KAAK,UAAU,EAAE,OAAOC,IAAI;EACpC,OAAOC,EAAE;AACX;AAEA,OAAO,SAASC,aAAaA,CAAuBC,IAAO,EAAE;EAC3D,OAAOA,IAAI,CAACC,MAAM;AACpB"}
@@ -23,21 +23,17 @@ export default function arrayToMap(arr, selector, fallbackSelector, combine) {
23
23
  return arr.reduce((accum, curr) => {
24
24
  if (combine && fallbackSelector) {
25
25
  const _key = curr[selector] + curr[fallbackSelector];
26
-
27
26
  accum[_key] = curr;
28
27
  } else {
29
28
  const _key = curr[selector] || curr[fallbackSelector];
30
-
31
29
  accum[_key] = curr;
32
30
  }
33
-
34
31
  return accum;
35
32
  }, {});
36
33
  }
37
34
  export function arrayToMapWithGetter(arr, getSelector) {
38
35
  return arr.reduce((accum, curr) => {
39
36
  const _key = getSelector(curr);
40
-
41
37
  accum[_key] = curr;
42
38
  return accum;
43
39
  }, {});
@@ -1 +1 @@
1
- {"version":3,"names":["arrayToMap","arr","selector","fallbackSelector","combine","reduce","accum","curr","_key","arrayToMapWithGetter","getSelector"],"sources":["arrayToMap.ts"],"sourcesContent":["import type { FilterByValueType } from '../types';\n\nexport default function arrayToMap<T extends Record<K, unknown>, K extends keyof T = keyof T>(\n arr: T[],\n selector: keyof FilterByValueType<T, string | number>,\n): Record<string, T>;\n\nexport default function arrayToMap<T extends Record<K, unknown>, K extends keyof T = keyof T>(\n arr: T[],\n selector: string,\n fallbackSelector: K,\n): Record<string, T>;\n\nexport default function arrayToMap<T extends Record<K, unknown>, K extends keyof T = keyof T>(\n arr: T[],\n selector: string,\n selector2: string,\n combineKey: true,\n): Record<string, T>;\n\n/**\n * Convert Array of the object to Object\n * @param {object[]} arr\n * @param {keyof object} selector\n * @param {keyof object} [fallbackSelector]\n * @param {boolean} [combine]\n * @returns {Record<keyof object, object>}\n * @example\n * ```\n * const arr = [{name: 'john'}, {name: 'chris'}, {name: 'sravan'}, {name: 'hoon'}];\n * const obj = arrayToMap(arr, 'name');\n *\n * console.log(obj);\n * // {\n * // 'john': {name: 'john'},\n * // 'chris': {name: 'chris'},\n * // 'sravan': {name: 'sravan'},\n * // 'hoon': {name: 'hoon'}\n * // }\n * ```\n * */\nexport default function arrayToMap<T extends Record<K, unknown>, K extends keyof T = keyof T>(\n arr: T[],\n selector: K,\n fallbackSelector?: K,\n combine?: boolean,\n) {\n return arr.reduce((accum, curr) => {\n if (combine && fallbackSelector) {\n const _key = curr[selector] + (curr[fallbackSelector] as string);\n accum[_key] = curr;\n } else {\n const _key = (curr[selector] || curr[fallbackSelector as K]) as string;\n accum[_key] = curr;\n }\n\n return accum;\n }, {} as Record<string, T>);\n}\n\nexport function arrayToMapWithGetter<T>(arr: T[], getSelector: (item: T) => string) {\n return arr.reduce((accum, curr) => {\n const _key = getSelector(curr);\n accum[_key] = curr;\n return accum;\n }, {} as Record<string, T>);\n}\n"],"mappings":"AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,UAAT,CACbC,GADa,EAEbC,QAFa,EAGbC,gBAHa,EAIbC,OAJa,EAKb;EACA,OAAOH,GAAG,CAACI,MAAJ,CAAW,CAACC,KAAD,EAAQC,IAAR,KAAiB;IACjC,IAAIH,OAAO,IAAID,gBAAf,EAAiC;MAC/B,MAAMK,IAAI,GAAGD,IAAI,CAACL,QAAD,CAAJ,GAAkBK,IAAI,CAACJ,gBAAD,CAAnC;;MACAG,KAAK,CAACE,IAAD,CAAL,GAAcD,IAAd;IACD,CAHD,MAGO;MACL,MAAMC,IAAI,GAAID,IAAI,CAACL,QAAD,CAAJ,IAAkBK,IAAI,CAACJ,gBAAD,CAApC;;MACAG,KAAK,CAACE,IAAD,CAAL,GAAcD,IAAd;IACD;;IAED,OAAOD,KAAP;EACD,CAVM,EAUJ,EAVI,CAAP;AAWD;AAED,OAAO,SAASG,oBAAT,CAAiCR,GAAjC,EAA2CS,WAA3C,EAA6E;EAClF,OAAOT,GAAG,CAACI,MAAJ,CAAW,CAACC,KAAD,EAAQC,IAAR,KAAiB;IACjC,MAAMC,IAAI,GAAGE,WAAW,CAACH,IAAD,CAAxB;;IACAD,KAAK,CAACE,IAAD,CAAL,GAAcD,IAAd;IACA,OAAOD,KAAP;EACD,CAJM,EAIJ,EAJI,CAAP;AAKD"}
1
+ {"version":3,"names":["arrayToMap","arr","selector","fallbackSelector","combine","reduce","accum","curr","_key","arrayToMapWithGetter","getSelector"],"sources":["arrayToMap.ts"],"sourcesContent":["import type { FilterByValueType } from '../types';\n\nexport default function arrayToMap<T extends Record<K, unknown>, K extends keyof T = keyof T>(\n arr: T[],\n selector: keyof FilterByValueType<T, string | number>,\n): Record<string, T>;\n\nexport default function arrayToMap<T extends Record<K, unknown>, K extends keyof T = keyof T>(\n arr: T[],\n selector: string,\n fallbackSelector: K,\n): Record<string, T>;\n\nexport default function arrayToMap<T extends Record<K, unknown>, K extends keyof T = keyof T>(\n arr: T[],\n selector: string,\n selector2: string,\n combineKey: true,\n): Record<string, T>;\n\n/**\n * Convert Array of the object to Object\n * @param {object[]} arr\n * @param {keyof object} selector\n * @param {keyof object} [fallbackSelector]\n * @param {boolean} [combine]\n * @returns {Record<keyof object, object>}\n * @example\n * ```\n * const arr = [{name: 'john'}, {name: 'chris'}, {name: 'sravan'}, {name: 'hoon'}];\n * const obj = arrayToMap(arr, 'name');\n *\n * console.log(obj);\n * // {\n * // 'john': {name: 'john'},\n * // 'chris': {name: 'chris'},\n * // 'sravan': {name: 'sravan'},\n * // 'hoon': {name: 'hoon'}\n * // }\n * ```\n * */\nexport default function arrayToMap<T extends Record<K, unknown>, K extends keyof T = keyof T>(\n arr: T[],\n selector: K,\n fallbackSelector?: K,\n combine?: boolean,\n) {\n return arr.reduce((accum, curr) => {\n if (combine && fallbackSelector) {\n const _key = curr[selector] + (curr[fallbackSelector] as string);\n accum[_key] = curr;\n } else {\n const _key = (curr[selector] || curr[fallbackSelector as K]) as string;\n accum[_key] = curr;\n }\n\n return accum;\n }, {} as Record<string, T>);\n}\n\nexport function arrayToMapWithGetter<T>(arr: T[], getSelector: (item: T) => string) {\n return arr.reduce((accum, curr) => {\n const _key = getSelector(curr);\n accum[_key] = curr;\n return accum;\n }, {} as Record<string, T>);\n}\n"],"mappings":"AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,UAAUA,CAChCC,GAAQ,EACRC,QAAW,EACXC,gBAAoB,EACpBC,OAAiB,EACjB;EACA,OAAOH,GAAG,CAACI,MAAM,CAAC,CAACC,KAAK,EAAEC,IAAI,KAAK;IACjC,IAAIH,OAAO,IAAID,gBAAgB,EAAE;MAC/B,MAAMK,IAAI,GAAGD,IAAI,CAACL,QAAQ,CAAC,GAAIK,IAAI,CAACJ,gBAAgB,CAAY;MAChEG,KAAK,CAACE,IAAI,CAAC,GAAGD,IAAI;IACpB,CAAC,MAAM;MACL,MAAMC,IAAI,GAAID,IAAI,CAACL,QAAQ,CAAC,IAAIK,IAAI,CAACJ,gBAAgB,CAAiB;MACtEG,KAAK,CAACE,IAAI,CAAC,GAAGD,IAAI;IACpB;IAEA,OAAOD,KAAK;EACd,CAAC,EAAE,CAAC,CAAC,CAAsB;AAC7B;AAEA,OAAO,SAASG,oBAAoBA,CAAIR,GAAQ,EAAES,WAAgC,EAAE;EAClF,OAAOT,GAAG,CAACI,MAAM,CAAC,CAACC,KAAK,EAAEC,IAAI,KAAK;IACjC,MAAMC,IAAI,GAAGE,WAAW,CAACH,IAAI,CAAC;IAC9BD,KAAK,CAACE,IAAI,CAAC,GAAGD,IAAI;IAClB,OAAOD,KAAK;EACd,CAAC,EAAE,CAAC,CAAC,CAAsB;AAC7B"}
@@ -1,42 +1,35 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  let REQ_PER_TIMEOUT = 5;
4
5
  let TIMEOUT_MILLS = 1000;
5
6
  const SAFE_TIMEOUT_BUFFER = 100;
6
-
7
7
  function generateRandomId() {
8
8
  return Math.random().toString(16).slice(2);
9
9
  }
10
-
11
10
  export class BufferedRequest {
12
11
  static updateMarkAsReadOptions(reqPerTimeout, timeoutMills) {
13
12
  BufferedRequest.markAsRead = BufferedRequest.create(reqPerTimeout, timeoutMills);
14
13
  }
15
-
16
14
  static updateMarkAsDeliveredOptions(reqPerTimeout, timeoutMills) {
17
15
  BufferedRequest.markAsDelivered = BufferedRequest.create(reqPerTimeout, timeoutMills);
18
16
  }
19
-
20
17
  static get reqPerTimeout() {
21
18
  return REQ_PER_TIMEOUT;
22
19
  }
23
-
24
20
  static set reqPerTimeout(value) {
25
21
  REQ_PER_TIMEOUT = value;
26
22
  BufferedRequest.markAsRead = BufferedRequest.create();
27
23
  BufferedRequest.markAsDelivered = BufferedRequest.create();
28
24
  }
29
-
30
25
  static get timeoutMills() {
31
26
  return TIMEOUT_MILLS;
32
27
  }
33
-
34
28
  static set timeoutMills(value) {
35
29
  TIMEOUT_MILLS = value;
36
30
  BufferedRequest.markAsRead = BufferedRequest.create();
37
31
  BufferedRequest.markAsDelivered = BufferedRequest.create();
38
32
  }
39
-
40
33
  static create() {
41
34
  let reqPerTimeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : REQ_PER_TIMEOUT;
42
35
  let timeoutMills = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : TIMEOUT_MILLS;
@@ -49,16 +42,13 @@ export class BufferedRequest {
49
42
  waitQueue.set(lane ?? generateRandomId(), func);
50
43
  this.invoke();
51
44
  },
52
-
53
45
  shift() {
54
46
  if (nextQueue.size < reqPerTimeout) {
55
47
  const nextRemains = Math.min(reqPerTimeout - nextQueue.size, waitQueue.size);
56
48
  const lanes = [...waitQueue.keys()];
57
-
58
49
  for (let n = 0; n < nextRemains; n++) {
59
50
  const lane = lanes[n];
60
51
  const func = waitQueue.get(lane);
61
-
62
52
  if (func) {
63
53
  waitQueue.delete(lane);
64
54
  nextQueue.set(lane, func);
@@ -66,19 +56,16 @@ export class BufferedRequest {
66
56
  }
67
57
  }
68
58
  },
69
-
70
59
  handleIdle() {
71
60
  if (0 < nextQueue.size) {
72
61
  state = 'processing';
73
62
  this.invoke();
74
63
  }
75
64
  },
76
-
77
65
  handleProcessing() {
78
66
  if (timeout) return;
79
67
  timeout = setTimeout(() => {
80
68
  timeout = undefined;
81
-
82
69
  if (0 < nextQueue.size || 0 < waitQueue.size) {
83
70
  this.invoke();
84
71
  } else {
@@ -89,32 +76,26 @@ export class BufferedRequest {
89
76
  const nextRequestBaseTimeout = timeoutMills / nextQueue.size;
90
77
  nextQueue.forEach(func => {
91
78
  setTimeout(() => {
92
- func(); // TODO: Add retry
79
+ func();
80
+ // TODO: Add retry
93
81
  //.catch(() => waitQueue.set(lane, func));
94
82
  }, nextRequestBaseTimeout * index);
95
83
  index++;
96
84
  });
97
85
  nextQueue.clear();
98
86
  },
99
-
100
87
  async invoke() {
101
88
  this.shift();
102
-
103
89
  if (state === 'idle') {
104
90
  this.handleIdle();
105
91
  }
106
-
107
92
  if (state === 'processing') {
108
93
  this.handleProcessing();
109
94
  }
110
95
  }
111
-
112
96
  };
113
97
  }
114
-
115
98
  }
116
-
117
99
  _defineProperty(BufferedRequest, "markAsRead", BufferedRequest.create());
118
-
119
100
  _defineProperty(BufferedRequest, "markAsDelivered", BufferedRequest.create());
120
101
  //# sourceMappingURL=bufferedRequest.js.map