@amityco/ts-sdk-react-native 7.8.3-e4f1111.0 → 7.8.3

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 (84) hide show
  1. package/.env +26 -26
  2. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts +0 -2
  3. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/@types/domains/client.js.map +1 -1
  5. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/createClient.d.ts.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/createClient.js +1 -2
  7. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/createClient.js.map +1 -1
  8. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/isConnected.d.ts.map +1 -1
  9. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/isConnected.js +1 -5
  10. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/isConnected.js.map +1 -1
  11. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/login.d.ts.map +1 -1
  12. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/login.js +0 -6
  13. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/login.js.map +1 -1
  14. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/logout.d.ts.map +1 -1
  15. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/logout.js +2 -9
  16. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/logout.js.map +1 -1
  17. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/resumeSession.d.ts.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/resumeSession.js +0 -13
  19. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/resumeSession.js.map +1 -1
  20. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/createClient.test.js +0 -4
  21. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/createClient.test.js.map +1 -1
  22. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/login.test.js +1 -7
  23. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/login.test.js.map +1 -1
  24. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/logout.test.js +0 -8
  25. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/logout.test.js.map +1 -1
  26. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/resumeSession.test.js +1 -8
  27. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/resumeSession.test.js.map +1 -1
  28. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/terminateClient.test.js +0 -3
  29. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/api/tests/terminateClient.test.js.map +1 -1
  30. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.d.ts.map +1 -1
  31. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js +0 -3
  32. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/client/utils/setClientToken.js.map +1 -1
  33. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/events.d.ts +0 -11
  34. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/events.d.ts.map +1 -1
  35. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/events.js +0 -17
  36. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/events.js.map +1 -1
  37. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/transports/index.d.ts +0 -1
  38. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/transports/index.d.ts.map +1 -1
  39. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/transports/index.js +0 -1
  40. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/transports/index.js.map +1 -1
  41. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/utils/tests/client.d.ts.map +1 -1
  42. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/utils/tests/client.js +1 -6
  43. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/utils/tests/client.js.map +1 -1
  44. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  45. package/dist/@types/domains/client.d.ts +0 -2
  46. package/dist/@types/domains/client.d.ts.map +1 -1
  47. package/dist/client/api/createClient.d.ts.map +1 -1
  48. package/dist/client/api/isConnected.d.ts.map +1 -1
  49. package/dist/client/api/login.d.ts.map +1 -1
  50. package/dist/client/api/logout.d.ts.map +1 -1
  51. package/dist/client/api/resumeSession.d.ts.map +1 -1
  52. package/dist/client/utils/setClientToken.d.ts.map +1 -1
  53. package/dist/core/events.d.ts +0 -11
  54. package/dist/core/events.d.ts.map +1 -1
  55. package/dist/core/transports/index.d.ts +0 -1
  56. package/dist/core/transports/index.d.ts.map +1 -1
  57. package/dist/index.cjs.js +6 -90
  58. package/dist/index.esm.js +6 -89
  59. package/dist/index.umd.js +3 -3
  60. package/dist/utils/tests/client.d.ts.map +1 -1
  61. package/package.json +1 -3
  62. package/src/@types/domains/client.ts +0 -1
  63. package/src/client/api/createClient.ts +0 -1
  64. package/src/client/api/isConnected.ts +1 -8
  65. package/src/client/api/login.ts +0 -6
  66. package/src/client/api/logout.ts +1 -8
  67. package/src/client/api/resumeSession.ts +0 -12
  68. package/src/client/api/tests/createClient.test.ts +0 -6
  69. package/src/client/api/tests/login.test.ts +42 -51
  70. package/src/client/api/tests/logout.test.ts +1 -12
  71. package/src/client/api/tests/resumeSession.test.ts +102 -111
  72. package/src/client/api/tests/terminateClient.test.ts +0 -6
  73. package/src/client/utils/setClientToken.ts +0 -3
  74. package/src/core/events.ts +0 -18
  75. package/src/core/transports/index.ts +0 -1
  76. package/src/utils/tests/client.ts +1 -7
  77. package/tsconfig.tsbuildinfo +1 -1
  78. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/transports/ws.d.ts +0 -27
  79. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/transports/ws.d.ts.map +0 -1
  80. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/transports/ws.js +0 -53
  81. package/.rollup.cache/home/runner/work/AmityReactNativeTypescriptSDK/AmityReactNativeTypescriptSDK/packages/sdk/dist/core/transports/ws.js.map +0 -1
  82. package/dist/core/transports/ws.d.ts +0 -27
  83. package/dist/core/transports/ws.d.ts.map +0 -1
  84. package/src/core/transports/ws.ts +0 -60
package/.env CHANGED
@@ -1,28 +1,28 @@
1
1
  LIVE_STREAM_KEY='-----BEGIN PRIVATE KEY-----
2
- MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAARz+hmBgi8pJ
3
- Qb8LeY41gtHhk+ACMwRfhsn7GqpqRQNG2qU0755mzZuVDUqjQMGSo8THJB7O+OJs
4
- flbZRkFXlFoFOVNw1UpNOgwEQZ6wB9oRwzepTJAfF1sVhm/o/ixvXh1zDFNDy6yZ
5
- pXyiiJHUVxqyjllZhxnwdvjoVtDs6hW6awG09bB9nh/TTejlUKXoAgzqVwu/1QMu
6
- UVViET495elEe19aUarEy+oL2iKeXCEvqda/pWNBdbieFyJvvZ08HN8dPuT88wq2
7
- jZLEAth1vrwQ2IAa4ktaLcBQdLJgIkrbDvAiVZ8lQAjS/bq5vXQikTGvoPlC5bbn
8
- vuOM/3eLAgMBAAECggEAVZ+peHAghq2QVj71nX5lxsNCKaCyYwixSJBpfouTt7Rz
9
- E6PpzMOXFi1W1o+I22jDakuSM2SOQKqI/u0QefB0r0O/KVk5NrZHXk0mkrdYtxOp
10
- UgaGyf8UvmjB+8VqHrNKyZdk9qtmbnNj01kTTcAtmE4H39zPR7eR/8Rul94vaZbs
11
- wCnKJS3mLT3JxyGug6lxanveKkjG+CKC1nJQYWaxCJxaFSzbwXQPvDhB+TvrIbee
12
- pd5v4EAyEJohpr+T9oDGGJkb/KARBZCtwLyB976PKJwwBA8MRVL1i5QwawuMiMq5
13
- UtnOnbGKtCeFzaLbNU0Qi8bqyims84EQxC6DOu1fkQKBgQDdvsoBsEhsOXV7hlIJ
14
- aEd0eSJZVkdqimxH8uGoMM2FeNaOrcB6yBXqTSP0R3OIyf8eaY6yjRvP30ZNXcll
15
- /gD3O1Mu6YmWQdt1W2WA6pKOsUuPXasf0pdOF7IiFZKlSabz5YHXFqwVuqm8loaj
16
- sXel3YWqPVdHiankE7tz+3ssnQKBgQDdqi4TNdD1MdEpihx19jr0QjUiXW3939FK
17
- qp30HESPEGDGQzXdmJgif9HhZb+cJSuWaHEbjgBrYahvgCF+y6LbEpOD+D/dmT+s
18
- DEAQaR84sah6dokwPjV8fjBSrcVFjCS+doxv0d3p/9OUEeyUhFrY03nxtIEYkLIE
19
- /Zvn37b4RwKBgQCLENVFe9XfsaVhQ5r9dV2iyTlmh7qgMZG5CbTFs12hQGhm8McO
20
- +Z7s41YSJCFr/yq1WwP4LJDtrBw99vyQr1zRsG35tNLp3gGRNzGQSQyC2uQFVHw2
21
- p+7mNewsfhUK/gbrXNsyFnDz6635rPlhfbII3sWuP2wWXFqkxE9CbMwR7QKBgQC6
22
- awDMzxmo2/iYArrkyevSuEuPVxvFwpF1RgAI6C0QVCnPE38dmdN4UB7mfHekje4W
23
- VEercMURidPp0cxZolCYBQtilUjAyL0vqC3In1/Ogjq6oy3FEMxSop1pKxMY5j+Q
24
- noqFD+6deLUrddeNH7J3X4LSr4dSbX4JjG+tlgt+yQKBgQCuwTL4hA6KqeInQ0Ta
25
- 9VQX5Qr8hFlqJz1gpymi/k63tW/Ob8yedbg3WWNWyShwRMFYyY9S81ITFWM95uL6
26
- vF3x9rmRjwElJw9PMwVu6dmf/CO0Z1wzXSp2VVD12gbrUD/0/d7MUoJ9LgC8X8f/
27
- n0txLHYGHbx+nf95+JUg6lV3hg==
2
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHo80SecH7FuF2
3
+ hFYnb+l26/VN8UMLXAQFLnxciNTEwkGVFMpdezlH8rU2HtUJL4RETogbAOLVY0XM
4
+ js6sPn8G1nALmh9qeDpUtVqFOVtBHxEZ910TLOtQiunjqJKO5nWdqZ71EC3OFluR
5
+ iGQkO84BiIFbv37ub7xl3S8XarbtKoLcyVpkDHi+1wx1pgCAn6gtBUgckPL5NR8j
6
+ Lseabl3HAXQfhTCKo4tmOFM2Dxwl1IUMmIJrJg/aIU/U0tj/1Eoo7mG0JcNWX19l
7
+ W3EecCbi0ncCJOrkUdwlBrcjaMayaX/ubEwyUeTGiLdyc4L3GRLHjyK8xgVNXRMH
8
+ bZWJ2a5NAgMBAAECggEASxuE+35zTFO/XydKgmvIGcWL9FbgMlXb7Vcf0nBoG945
9
+ biz0NVc2paraIhJXc608xbYF3qLmtAE1MVBI0ORyRdBHNxY024l/6H6SH60Ed+uI
10
+ M4ysp5ourY6Vj+DLwpdRiI9YDjqYAQDIUmhNxJP7XPhOMoZI6st+xZQBM34ic/bv
11
+ AMSJm9OZphSp3+qXVkFZztr2mxD2EZSJJLYxi8BCdgM2qhazalbcJ6zDKHCZWVWm
12
+ 8RRxDGldyMb/237JxETzP40tAlzOZDmBAbUgEnurDJ93RVDIE3rbZUshwgeQd18a
13
+ em096mWgvB1AIKYgsTAR3pw+V19YWAjq/glP6fz8wQKBgQD/oQq+ukKF0PRgBeM5
14
+ geTjSwsdGppQLmf5ndujvoiz/TpdjDEPu6R8kigQr1rG2t4K/yfdZoI8RdmJD1al
15
+ 3Q7N9hofooSy4rj6E3txzWZCHJjHad2cnCp/O26HiReGAl7wTcfTmNdiFHhZQzm5
16
+ JBkvWAiwuvQMNfEbnXxw6/vIDwKBgQDH7fX8gsc77JLvAWgp1MaQN/sbqVb6JeT1
17
+ FQfR8E/WFCSmzQBtNzd5KgYuCeelwr/8DyYytvN2BzCYZXp73gI1jF3YlW5jVn74
18
+ OY6TwQ095digwo6Z0yuxopdIOApKgAkL9PRKgNrqAf3NAyMua6lOGifzjDojC3KU
19
+ fylQmxMn4wKBgHp2B9O/H0dEBw5JQ8W0+JX6yWQz7mEjGiR2/1W+XXb8hQ1zr709
20
+ w1r6Gb+EghRpnZ3fBpYGGbYOMFx8wKHM+N6qW3F0ReX8v2juFGE8aRSa5oYBrWzt
21
+ U16Idjbv8hj84cZ1PJmdyvDtpYn9rpWHOZl4rxEbPvbqkIsOMyNVqdT5AoGAOSge
22
+ mwIIU2le2FVeohbibXiToWTYKMuMmURZ5/r72AgKMmWJKbAPe+Q3wBG01/7FRBpQ
23
+ oU8Ma0HC8s6QJbliiEyIx9JwrJWd1vkdecBHONrtA4ibm/5zD2WcOllLF+FitLhi
24
+ 3qnX6+6F0IaFGFBPJrTzlv0P4dTz/OAdv52V7GECgYEA2TttOKBAqWllgOaZOkql
25
+ LVMJVmgR7s6tLi1+cEP8ZcapV9aRbRzTAKXm4f8AEhtlG9F9kCOvHYCYGi6JaiWJ
26
+ ZkHjeex3T+eE6Di6y5Bm/Ift5jtVhJ4jCVwHOKTMej79NPUFTJfv8hCo29haBDv6
27
+ RXFrv+T21KCcw8k3sJeJWWQ=
28
28
  -----END PRIVATE KEY-----'
@@ -1,4 +1,3 @@
1
- /// <reference types="socket.io-client" />
2
1
  import { AxiosInstance } from 'axios';
3
2
  import { Emitter } from 'mitt';
4
3
  export declare const enum MembershipAcceptanceTypeEnum {
@@ -35,7 +34,6 @@ declare global {
35
34
  http: AxiosInstance;
36
35
  upload: AxiosInstance;
37
36
  mqtt?: Amity.MqttClient;
38
- ws?: SocketIOClient.Socket;
39
37
  emitter: Emitter<Amity.Events>;
40
38
  hasPermission: (permission: string) => Amity.PermissionChecker;
41
39
  validateUrls: (urls: string[]) => Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/@types/domains/client.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAkB,4BAGjB;AAHD,WAAkB,4BAA4B;IAC5C,uDAAuB,CAAA;IACvB,yDAAyB,CAAA;AAC3B,CAAC,EAHiB,4BAA4B,KAA5B,4BAA4B,QAG7C","sourcesContent":["import { AxiosInstance } from 'axios';\nimport { Emitter } from 'mitt';\n\nexport const enum MembershipAcceptanceTypeEnum {\n AUTOMATIC = 'automatic',\n INVITATION = 'invitation',\n}\n\ndeclare global {\n namespace Amity {\n type Logger = (topic: string, ...args: any[]) => void;\n\n type MembershipAcceptanceType = MembershipAcceptanceTypeEnum;\n\n const enum TokenTerminationReason {\n GLOBAL_BAN = 'globalBan',\n USER_DELETED = 'userDeleted',\n UNAUTHORIZED = 'unauthorized',\n }\n\n const enum SessionStates {\n NOT_LOGGED_IN = 'notLoggedIn',\n\n ESTABLISHING = 'establishing',\n ESTABLISHED = 'established',\n\n TOKEN_EXPIRED = 'tokenExpired',\n /*\n * Terminated is slightly different from NOT_LOGGED_IN:\n *\n * After established, upon receiving the termination code, the SDK will move to terminated.\n * Unlike tokenExpired that users can regain SDK usability by giving an auth token.\n * This state represents unrecoverable failures. The app must manually re-login with a valid user.\n *\n * For more details, please check tech spec:\n * https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#terminated\n */\n TERMINATED = 'terminated',\n }\n\n const enum RTEConnectionStateEnum {\n CONNECTING = 'connecting', // actively establishing a connection (initial or reconnection)\n CONNECTED = 'connected', // connected to broker\n RECONNECTING = 'reconnecting', // lost connection and attempting to reconnect\n DISCONNECTED = 'disconnected', // disconnected (not currently connected, and not automatically reconnecting)\n DISCONNECTING = 'disconnecting', // disconnected (not currently connected, and not automatically reconnecting)\n }\n\n type RTEConnectionState = `${Amity.RTEConnectionStateEnum}`;\n\n type Client = {\n version: string;\n\n log: Logger;\n http: AxiosInstance;\n upload: AxiosInstance;\n mqtt?: Amity.MqttClient;\n ws?: SocketIOClient.Socket;\n emitter: Emitter<Amity.Events>;\n\n hasPermission: (permission: string) => Amity.PermissionChecker;\n validateUrls: (urls: string[]) => Promise<boolean>;\n validateTexts: (texts: string[]) => Promise<boolean>;\n\n sessionState: Amity.SessionStates;\n sessionHandler?: Amity.SessionHandler;\n\n cache?: Amity.Cache;\n\n apiKey?: string;\n userId?: string;\n\n token?: Amity.Tokens;\n\n isUnreadCountEnabled: boolean;\n\n useLegacyUnreadCount: boolean;\n\n use: () => void;\n\n accessTokenExpiryWatcher: (sessionHandler: Amity.SessionHandler) => Amity.Unsubscriber;\n\n onRTEConnectionStateChange: (\n callback: (state: Amity.RTEConnectionState) => void,\n ) => (() => void) | undefined;\n\n getFeedSettings: () => Promise<Amity.FeedSettings>;\n getSocialSettings: () => Promise<Amity.SocialSettings>;\n getMessagePreviewSetting: (refresh?: boolean) => Promise<Amity.MessagePreviewSetting>;\n\n getMarkerSyncConsistentMode: () => boolean;\n\n prefixDeviceIdKey?: string;\n };\n\n type Device = {\n deviceId: string;\n deviceInfo: {\n kind: 'node' | 'web';\n model?: string;\n sdkVersion: string;\n };\n };\n\n type Tokens = {\n accessToken: string;\n // issuedAt, expiresAt is in iso Date format\n issuedAt: string;\n expiresAt: string;\n };\n\n type AccessTokenRenewal = {\n renew: () => void;\n renewWithAuthToken: (authToken: string) => void;\n unableToRetrieveAuthToken: () => void;\n };\n\n interface SessionHandler {\n sessionWillRenewAccessToken(renewal: AccessTokenRenewal): void;\n }\n\n type ChatSettings = {\n enabled: boolean;\n mention: {\n isAllowMentionedChannelEnabled: boolean;\n };\n messagePreview: {\n enabled: boolean;\n isIncludeDeleted: boolean;\n };\n };\n\n type ShareableLinkConfiguration = {\n domain: string;\n patterns: Record<string, string>;\n };\n\n type FeedSettings = {\n [name in Amity.ContentFeedType]?: Amity.ContentSetting[];\n };\n\n type SocialSettings = {\n enabled: boolean;\n isAllowEditPostWhenReviewingEnabled: boolean;\n isFollowWithRequestEnabled: boolean;\n globalFeed: {\n showCommunityPost: boolean;\n showEveryonePost: boolean;\n showFollowingPost: boolean;\n showMyPost: boolean;\n showOnlyMyFeed: boolean;\n };\n story: {\n allowAllUserToCreateStory: boolean;\n expiryTimeMinutes: number;\n };\n userPrivacySetting: 'public' | 'private';\n membershipAcceptance: Amity.MembershipAcceptanceType;\n };\n\n type ConnectClientParams = {\n userId: Amity.InternalUser['userId'];\n displayName?: Amity.InternalUser['displayName'];\n authToken?: string;\n deviceId?: Amity.Device['deviceId'];\n };\n\n type ConnectClientConfig = {\n disableRTE: boolean;\n };\n\n type ActiveUser = Pick<Amity.InternalUser, '_id' | 'userId' | 'path' | 'displayName'>;\n\n type UserUnread = Pick<Amity.UserMarker, 'unreadCount'> & {\n isMentioned: boolean;\n };\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/@types/domains/client.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAkB,4BAGjB;AAHD,WAAkB,4BAA4B;IAC5C,uDAAuB,CAAA;IACvB,yDAAyB,CAAA;AAC3B,CAAC,EAHiB,4BAA4B,KAA5B,4BAA4B,QAG7C","sourcesContent":["import { AxiosInstance } from 'axios';\nimport { Emitter } from 'mitt';\n\nexport const enum MembershipAcceptanceTypeEnum {\n AUTOMATIC = 'automatic',\n INVITATION = 'invitation',\n}\n\ndeclare global {\n namespace Amity {\n type Logger = (topic: string, ...args: any[]) => void;\n\n type MembershipAcceptanceType = MembershipAcceptanceTypeEnum;\n\n const enum TokenTerminationReason {\n GLOBAL_BAN = 'globalBan',\n USER_DELETED = 'userDeleted',\n UNAUTHORIZED = 'unauthorized',\n }\n\n const enum SessionStates {\n NOT_LOGGED_IN = 'notLoggedIn',\n\n ESTABLISHING = 'establishing',\n ESTABLISHED = 'established',\n\n TOKEN_EXPIRED = 'tokenExpired',\n /*\n * Terminated is slightly different from NOT_LOGGED_IN:\n *\n * After established, upon receiving the termination code, the SDK will move to terminated.\n * Unlike tokenExpired that users can regain SDK usability by giving an auth token.\n * This state represents unrecoverable failures. The app must manually re-login with a valid user.\n *\n * For more details, please check tech spec:\n * https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#terminated\n */\n TERMINATED = 'terminated',\n }\n\n const enum RTEConnectionStateEnum {\n CONNECTING = 'connecting', // actively establishing a connection (initial or reconnection)\n CONNECTED = 'connected', // connected to broker\n RECONNECTING = 'reconnecting', // lost connection and attempting to reconnect\n DISCONNECTED = 'disconnected', // disconnected (not currently connected, and not automatically reconnecting)\n DISCONNECTING = 'disconnecting', // disconnected (not currently connected, and not automatically reconnecting)\n }\n\n type RTEConnectionState = `${Amity.RTEConnectionStateEnum}`;\n\n type Client = {\n version: string;\n\n log: Logger;\n http: AxiosInstance;\n upload: AxiosInstance;\n mqtt?: Amity.MqttClient;\n emitter: Emitter<Amity.Events>;\n\n hasPermission: (permission: string) => Amity.PermissionChecker;\n validateUrls: (urls: string[]) => Promise<boolean>;\n validateTexts: (texts: string[]) => Promise<boolean>;\n\n sessionState: Amity.SessionStates;\n sessionHandler?: Amity.SessionHandler;\n\n cache?: Amity.Cache;\n\n apiKey?: string;\n userId?: string;\n\n token?: Amity.Tokens;\n\n isUnreadCountEnabled: boolean;\n\n useLegacyUnreadCount: boolean;\n\n use: () => void;\n\n accessTokenExpiryWatcher: (sessionHandler: Amity.SessionHandler) => Amity.Unsubscriber;\n\n onRTEConnectionStateChange: (\n callback: (state: Amity.RTEConnectionState) => void,\n ) => (() => void) | undefined;\n\n getFeedSettings: () => Promise<Amity.FeedSettings>;\n getSocialSettings: () => Promise<Amity.SocialSettings>;\n getMessagePreviewSetting: (refresh?: boolean) => Promise<Amity.MessagePreviewSetting>;\n\n getMarkerSyncConsistentMode: () => boolean;\n\n prefixDeviceIdKey?: string;\n };\n\n type Device = {\n deviceId: string;\n deviceInfo: {\n kind: 'node' | 'web';\n model?: string;\n sdkVersion: string;\n };\n };\n\n type Tokens = {\n accessToken: string;\n // issuedAt, expiresAt is in iso Date format\n issuedAt: string;\n expiresAt: string;\n };\n\n type AccessTokenRenewal = {\n renew: () => void;\n renewWithAuthToken: (authToken: string) => void;\n unableToRetrieveAuthToken: () => void;\n };\n\n interface SessionHandler {\n sessionWillRenewAccessToken(renewal: AccessTokenRenewal): void;\n }\n\n type ChatSettings = {\n enabled: boolean;\n mention: {\n isAllowMentionedChannelEnabled: boolean;\n };\n messagePreview: {\n enabled: boolean;\n isIncludeDeleted: boolean;\n };\n };\n\n type ShareableLinkConfiguration = {\n domain: string;\n patterns: Record<string, string>;\n };\n\n type FeedSettings = {\n [name in Amity.ContentFeedType]?: Amity.ContentSetting[];\n };\n\n type SocialSettings = {\n enabled: boolean;\n isAllowEditPostWhenReviewingEnabled: boolean;\n isFollowWithRequestEnabled: boolean;\n globalFeed: {\n showCommunityPost: boolean;\n showEveryonePost: boolean;\n showFollowingPost: boolean;\n showMyPost: boolean;\n showOnlyMyFeed: boolean;\n };\n story: {\n allowAllUserToCreateStory: boolean;\n expiryTimeMinutes: number;\n };\n userPrivacySetting: 'public' | 'private';\n membershipAcceptance: Amity.MembershipAcceptanceType;\n };\n\n type ConnectClientParams = {\n userId: Amity.InternalUser['userId'];\n displayName?: Amity.InternalUser['displayName'];\n authToken?: string;\n deviceId?: Amity.Device['deviceId'];\n };\n\n type ConnectClientConfig = {\n disableRTE: boolean;\n };\n\n type ActiveUser = Pick<Amity.InternalUser, '_id' | 'userId' | 'path' | 'displayName'>;\n\n type UserUnread = Pick<Amity.UserMarker, 'unreadCount'> & {\n isMentioned: boolean;\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../../src/client/api/createClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAc,MAAM,0BAA0B,CAAC;AAuBnE;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,YAAY,WACf,MAAM,cACH,CAAA,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;;;;;;;;;MAYtD,MAAM,MAgGR,CAAC"}
1
+ {"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../../src/client/api/createClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAc,MAAM,0BAA0B,CAAC;AAuBnE;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,YAAY,WACf,MAAM,cACH,CAAA,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;;;;;;;;;MAYtD,MAAM,MA+FR,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { VERSION } from '~/version';
2
2
  import { createLogger } from '~/core/debug';
3
3
  import { API_REGIONS, computeUrl } from '~/client/utils/endpoints';
4
- import { createHttpTransport, createMqttTransport, createWebsocketTransport, } from '~/core/transports';
4
+ import { createHttpTransport, createMqttTransport, } from '~/core/transports';
5
5
  import { createEventEmitter } from '~/core/events';
6
6
  import { getMessagePreviewSetting } from '~/client/utils/messagePreviewEngine';
7
7
  import { getSocialSettings } from '~/client/api/getSocialSettings';
@@ -45,7 +45,6 @@ export const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession
45
45
  let ws;
46
46
  let mqtt;
47
47
  if (rteEnabled) {
48
- ws = createWebsocketTransport(httpEndpoint);
49
48
  mqtt = createMqttTransport(mqttEndpoint);
50
49
  }
51
50
  const emitter = createEventEmitter();
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../../src/client/api/createClient.ts"],"names":[],"mappings":"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","sourcesContent":["import { VERSION } from '~/version';\n\nimport { createLogger } from '~/core/debug';\n\nimport { API_REGIONS, computeUrl } from '~/client/utils/endpoints';\nimport {\n createHttpTransport,\n createMqttTransport,\n createWebsocketTransport,\n} from '~/core/transports';\n\nimport { createEventEmitter } from '~/core/events';\n\nimport { getMessagePreviewSetting } from '~/client/utils/messagePreviewEngine';\nimport { getSocialSettings } from '~/client/api/getSocialSettings';\nimport { hasPermission } from '~/client/utils/hasPermission';\nimport { validateUrls } from './validateUrls';\nimport { validateTexts } from './validateTexts';\nimport { getActiveClient, setActiveClient } from './activeClient';\nimport { getFeedSettings } from './getFeedSettings';\n\nimport { accessTokenExpiryWatcher } from './accessTokenExpiryWatcher';\nimport { getMarkerSyncConsistentMode } from '../utils/markerSyncEngine';\nimport { onRTEConnectionStateChange } from './onRTEConnectionStateChange';\n\nconst DEFAULT_DEBUG_SESSION = 'amity';\n\n/**\n * ```js\n * import { createClient } from '@amityco/ts-sdk-react-native'\n * const client = createClient(apiKey, 'https://asc.server/', 'myClient')\n * ```\n *\n * Creates a new {@link Amity.Client} instance\n *\n * @param apiKey for the {@link Amity.Client} instance\n * @param apiRegion endpoint to connect to\n * @param apiEndpoint custom endpoint in case you don't want to use a preset endpoint\n * @param param.debugSession session's identifier for the client's logger instance\n * @returns A {@link Amity.Client} instance\n *\n * @category Client API\n * */\nexport const createClient = (\n apiKey: string,\n apiRegion: typeof API_REGIONS[keyof typeof API_REGIONS] = API_REGIONS.SG,\n {\n debugSession = DEFAULT_DEBUG_SESSION,\n apiEndpoint,\n prefixDeviceIdKey,\n rteEnabled = true,\n }: {\n debugSession?: string;\n apiEndpoint?: { http?: string; mqtt?: string; upload?: string };\n prefixDeviceIdKey?: string;\n rteEnabled?: boolean;\n } = {},\n): Amity.Client => {\n const log = createLogger(debugSession);\n\n log('client/api/createClient', {\n apiKey: apiKey.replace(/.{5}$/g, 'xxxxx'),\n apiRegion,\n });\n\n const httpEndpoint = apiEndpoint?.http ?? computeUrl('http', apiRegion);\n const uploadEndpoint = apiEndpoint?.upload ?? computeUrl('upload', apiRegion);\n const mqttEndpoint = apiEndpoint?.mqtt ?? computeUrl('mqtt', apiRegion);\n\n const http = createHttpTransport(httpEndpoint);\n const upload = createHttpTransport(uploadEndpoint);\n\n let ws;\n let mqtt;\n\n if (rteEnabled) {\n ws = createWebsocketTransport(httpEndpoint);\n mqtt = createMqttTransport(mqttEndpoint);\n }\n\n const emitter = createEventEmitter();\n\n /*\n * Since v6 cache is enabled by default\n */\n const cache = { data: {} };\n\n const sessionState = Amity.SessionStates.NOT_LOGGED_IN;\n const sessionHandler = undefined;\n\n const isUnreadCountEnabled = false;\n // Legacy unread count is true by default\n const useLegacyUnreadCount = true;\n\n const client = {\n version: `${VERSION}`,\n apiKey,\n\n /*\n * SDK Components\n */\n log,\n cache,\n\n /*\n * Network components\n */\n http,\n ws,\n mqtt,\n upload,\n emitter,\n\n /*\n * Session Components\n */\n sessionState,\n accessTokenExpiryWatcher,\n sessionHandler,\n\n hasPermission,\n validateUrls,\n validateTexts,\n getFeedSettings,\n getSocialSettings,\n getMessagePreviewSetting,\n\n onRTEConnectionStateChange,\n\n use: () => setActiveClient(client),\n\n isUnreadCountEnabled,\n useLegacyUnreadCount,\n\n getMarkerSyncConsistentMode,\n\n /**\n * Prefix for the deviceId key in the local storage or async storage.\n * This is allow user to have multiple SDK client and Mqtt client within the same app.\n */\n prefixDeviceIdKey,\n };\n\n try {\n const activeClient = getActiveClient();\n if (activeClient.apiKey === apiKey) return activeClient;\n\n setActiveClient(client);\n } catch {\n setActiveClient(client);\n }\n\n return client;\n};\n"]}
1
+ {"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../../src/client/api/createClient.ts"],"names":[],"mappings":"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","sourcesContent":["import { VERSION } from '~/version';\n\nimport { createLogger } from '~/core/debug';\n\nimport { API_REGIONS, computeUrl } from '~/client/utils/endpoints';\nimport {\n createHttpTransport,\n createMqttTransport,\n createWebsocketTransport,\n} from '~/core/transports';\n\nimport { createEventEmitter } from '~/core/events';\n\nimport { getMessagePreviewSetting } from '~/client/utils/messagePreviewEngine';\nimport { getSocialSettings } from '~/client/api/getSocialSettings';\nimport { hasPermission } from '~/client/utils/hasPermission';\nimport { validateUrls } from './validateUrls';\nimport { validateTexts } from './validateTexts';\nimport { getActiveClient, setActiveClient } from './activeClient';\nimport { getFeedSettings } from './getFeedSettings';\n\nimport { accessTokenExpiryWatcher } from './accessTokenExpiryWatcher';\nimport { getMarkerSyncConsistentMode } from '../utils/markerSyncEngine';\nimport { onRTEConnectionStateChange } from './onRTEConnectionStateChange';\n\nconst DEFAULT_DEBUG_SESSION = 'amity';\n\n/**\n * ```js\n * import { createClient } from '@amityco/ts-sdk-react-native'\n * const client = createClient(apiKey, 'https://asc.server/', 'myClient')\n * ```\n *\n * Creates a new {@link Amity.Client} instance\n *\n * @param apiKey for the {@link Amity.Client} instance\n * @param apiRegion endpoint to connect to\n * @param apiEndpoint custom endpoint in case you don't want to use a preset endpoint\n * @param param.debugSession session's identifier for the client's logger instance\n * @returns A {@link Amity.Client} instance\n *\n * @category Client API\n * */\nexport const createClient = (\n apiKey: string,\n apiRegion: typeof API_REGIONS[keyof typeof API_REGIONS] = API_REGIONS.SG,\n {\n debugSession = DEFAULT_DEBUG_SESSION,\n apiEndpoint,\n prefixDeviceIdKey,\n rteEnabled = true,\n }: {\n debugSession?: string;\n apiEndpoint?: { http?: string; mqtt?: string; upload?: string };\n prefixDeviceIdKey?: string;\n rteEnabled?: boolean;\n } = {},\n): Amity.Client => {\n const log = createLogger(debugSession);\n\n log('client/api/createClient', {\n apiKey: apiKey.replace(/.{5}$/g, 'xxxxx'),\n apiRegion,\n });\n\n const httpEndpoint = apiEndpoint?.http ?? computeUrl('http', apiRegion);\n const uploadEndpoint = apiEndpoint?.upload ?? computeUrl('upload', apiRegion);\n const mqttEndpoint = apiEndpoint?.mqtt ?? computeUrl('mqtt', apiRegion);\n\n const http = createHttpTransport(httpEndpoint);\n const upload = createHttpTransport(uploadEndpoint);\n\n let ws;\n let mqtt;\n\n if (rteEnabled) {\n mqtt = createMqttTransport(mqttEndpoint);\n }\n\n const emitter = createEventEmitter();\n\n /*\n * Since v6 cache is enabled by default\n */\n const cache = { data: {} };\n\n const sessionState = Amity.SessionStates.NOT_LOGGED_IN;\n const sessionHandler = undefined;\n\n const isUnreadCountEnabled = false;\n // Legacy unread count is true by default\n const useLegacyUnreadCount = true;\n\n const client = {\n version: `${VERSION}`,\n apiKey,\n\n /*\n * SDK Components\n */\n log,\n cache,\n\n /*\n * Network components\n */\n http,\n ws,\n mqtt,\n upload,\n emitter,\n\n /*\n * Session Components\n */\n sessionState,\n accessTokenExpiryWatcher,\n sessionHandler,\n\n hasPermission,\n validateUrls,\n validateTexts,\n getFeedSettings,\n getSocialSettings,\n getMessagePreviewSetting,\n\n onRTEConnectionStateChange,\n\n use: () => setActiveClient(client),\n\n isUnreadCountEnabled,\n useLegacyUnreadCount,\n\n getMarkerSyncConsistentMode,\n\n /**\n * Prefix for the deviceId key in the local storage or async storage.\n * This is allow user to have multiple SDK client and Mqtt client within the same app.\n */\n prefixDeviceIdKey,\n };\n\n try {\n const activeClient = getActiveClient();\n if (activeClient.apiKey === apiKey) return activeClient;\n\n setActiveClient(client);\n } catch {\n setActiveClient(client);\n }\n\n return client;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"isConnected.d.ts","sourceRoot":"","sources":["../../../src/client/api/isConnected.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,QAAO,OAY9B,CAAC"}
1
+ {"version":3,"file":"isConnected.d.ts","sourceRoot":"","sources":["../../../src/client/api/isConnected.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,WAAW,QAAO,OAK9B,CAAC"}
@@ -15,10 +15,6 @@ export const isConnected = () => {
15
15
  var _a, _b;
16
16
  const client = getActiveClient();
17
17
  client.log('client/api/isConnected', client);
18
- // if client is connected to ws, it means client is connected. If ws is undefined, it means ws is not used.
19
- const isWsConnected = (client.ws && client.ws.connected) || !!client.ws;
20
- return !!(client.userId &&
21
- ((_b = String((_a = client.http.defaults.headers.common) === null || _a === void 0 ? void 0 : _a.Authorization)) === null || _b === void 0 ? void 0 : _b.length) &&
22
- isWsConnected);
18
+ return !!(client.userId && ((_b = String((_a = client.http.defaults.headers.common) === null || _a === void 0 ? void 0 : _a.Authorization)) === null || _b === void 0 ? void 0 : _b.length));
23
19
  };
24
20
  //# sourceMappingURL=isConnected.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isConnected.js","sourceRoot":"","sources":["../../../src/client/api/isConnected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAY,EAAE;;IACvC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAE7C,2GAA2G;IAC3G,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IAExE,OAAO,CAAC,CAAC,CACP,MAAM,CAAC,MAAM;SACb,MAAA,MAAM,CAAC,MAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,0CAAE,aAAa,CAAC,0CAAE,MAAM,CAAA;QAClE,aAAa,CACd,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { getActiveClient } from './activeClient';\n\n/**\n * ```js\n * import { isConnected } from '@amityco/ts-sdk-react-native'\n * const connected = isConnected()\n * ```\n *\n * Checks if a {@link Amity.Client} instance is connected to ASC servers\n *\n * @returns a success boolean if connected\n *\n * @category Client API\n */\nexport const isConnected = (): boolean => {\n const client = getActiveClient();\n client.log('client/api/isConnected', client);\n\n // if client is connected to ws, it means client is connected. If ws is undefined, it means ws is not used.\n const isWsConnected = (client.ws && client.ws.connected) || !!client.ws;\n\n return !!(\n client.userId &&\n String(client.http.defaults.headers.common?.Authorization)?.length &&\n isWsConnected\n );\n};\n"]}
1
+ {"version":3,"file":"isConnected.js","sourceRoot":"","sources":["../../../src/client/api/isConnected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAY,EAAE;;IACvC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAE7C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAI,MAAA,MAAM,CAAC,MAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,0CAAE,aAAa,CAAC,0CAAE,MAAM,CAAA,CAAC,CAAC;AACjG,CAAC,CAAC","sourcesContent":["import { getActiveClient } from './activeClient';\n\n/**\n * ```js\n * import { isConnected } from '@amityco/ts-sdk-react-native'\n * const connected = isConnected()\n * ```\n *\n * Checks if a {@link Amity.Client} instance is connected to ASC servers\n *\n * @returns a success boolean if connected\n *\n * @category Client API\n */\nexport const isConnected = (): boolean => {\n const client = getActiveClient();\n client.log('client/api/isConnected', client);\n\n return !!(client.userId && String(client.http.defaults.headers.common?.Authorization)?.length);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/client/api/login.ts"],"names":[],"mappings":"AA8CA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,WACR,MAAM,mBAAmB,kBACjB,MAAM,cAAc,WAC3B,MAAM,mBAAmB,KACjC,QAAQ,OAAO,CA+IjB,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/client/api/login.ts"],"names":[],"mappings":"AA8CA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,WACR,MAAM,mBAAmB,kBACjB,MAAM,cAAc,WAC3B,MAAM,mBAAmB,KACjC,QAAQ,OAAO,CAyIjB,CAAC"}
@@ -2,7 +2,6 @@
2
2
  import { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';
3
3
  /* eslint-disable require-atomic-updates */
4
4
  import { getDeviceId } from '~/core/device';
5
- import { proxyWebsocketEvents } from '~/core/events';
6
5
  import { onChannelDeleted } from '~/channelRepository/events/onChannelDeleted';
7
6
  import { onChannelMemberBanned } from '~/channelRepository/events/onChannelMemberBanned';
8
7
  import { markReadEngineOnLoginHandler } from '~/subChannelRepository/utils/markReadEngine';
@@ -57,7 +56,6 @@ async function runMqtt() {
57
56
  * @async
58
57
  */
59
58
  export const login = async (params, sessionHandler, config) => {
60
- var _a;
61
59
  const client = getActiveClient();
62
60
  let unsubWatcher;
63
61
  client.log('client/api/connectClient', Object.assign({ apiKey: client.apiKey, sessionState: client.sessionState }, params));
@@ -89,10 +87,6 @@ export const login = async (params, sessionHandler, config) => {
89
87
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
90
88
  return false;
91
89
  }
92
- // FIXME: events are duplicated if connectClient is called few times without disconnectClient
93
- // wire websocket events to our event emitter
94
- proxyWebsocketEvents(client.ws, client.emitter);
95
- (_a = client.ws) === null || _a === void 0 ? void 0 : _a.open();
96
90
  client.userId = user.userId;
97
91
  client.sessionHandler = sessionHandler;
98
92
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/client/api/login.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';\n/* eslint-disable require-atomic-updates */\nimport { getDeviceId } from '~/core/device';\nimport { proxyWebsocketEvents } from '~/core/events';\nimport { onChannelDeleted } from '~/channelRepository/events/onChannelDeleted';\nimport { onChannelMemberBanned } from '~/channelRepository/events/onChannelMemberBanned';\n\nimport { markReadEngineOnLoginHandler } from '~/subChannelRepository/utils/markReadEngine';\nimport { onUserDeleted } from '~/userRepository/events/onUserDeleted';\n\nimport analyticsEngineOnLoginHandler from '~/analytic/utils/analyticsEngineOnLoginHandler';\nimport readReceiptSyncEngineOnLoginHandler from '~/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler';\nimport legacyReadReceiptSyncEngineOnLoginHandler from '~/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngineOnLoginHandler';\nimport objectResolverEngineOnLoginHandler from '~/client/utils/ObjectResolver/objectResolverEngineOnLoginHandler';\nimport reactionSyncEngineOnLoginHandler from '~/liveReactionRepository/utils/ReactionSyncEngineOnLoginHandler';\nimport { logout } from './logout';\n\nimport { getActiveClient } from './activeClient';\nimport { terminateClient } from './terminateClient';\nimport { setActiveUser } from './activeUser';\n\nimport { onClientBanned } from '../events';\nimport { onTokenExpired } from '../events/onTokenExpired';\nimport { onTokenTerminated } from '../events/onTokenTerminated';\n\nimport { setClientToken } from '../utils/setClientToken';\nimport { removeChannelMarkerCache } from '../utils/removeChannelMarkerCache';\nimport { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';\nimport { ASCError } from '~/core/errors';\nimport SessionWatcher from '../utils/SessionWatcher';\n\n/*\n * declared earlier to accomodate case when logging in with a different user\n * than the one already connected, in which case the existing subscriptions need\n * to be cleared\n */\nlet subscriptions: Amity.Unsubscriber[] = [];\n\nasync function runMqtt() {\n await modifyMqttConnection();\n}\n\n/* begin_public_function\n id: client.login\n*/\n/**\n * ```js\n * import { login } from '@amityco/ts-sdk-react-native/client/api'\n * const success = await login({\n * userId: 'XYZ123456789',\n * })\n * ```\n *\n * Connects an {@link Amity.Client} instance to ASC servers\n *\n * @param params the connect parameters\n * @param params.userId the user ID for the current session\n * @param params.displayName the user's displayName for the current session\n * @param params.deviceId Manual override of the user's device id (for device management)\n * @param params.authToken The authentication token - necessary when network option is set to secure\n * @returns a success boolean if connected\n *\n * @category Client API\n * @async\n */\nexport const login = async (\n params: Amity.ConnectClientParams,\n sessionHandler: Amity.SessionHandler,\n config?: Amity.ConnectClientConfig,\n): Promise<boolean> => {\n const client = getActiveClient();\n let unsubWatcher: Amity.Unsubscriber;\n\n client.log('client/api/connectClient', {\n apiKey: client.apiKey,\n sessionState: client.sessionState,\n ...params,\n });\n\n // if connecting to a different userId than the one that is connected currently\n if (client.userId && client.userId !== params.userId) {\n await logout();\n\n // Remove subscription to ban and delete\n subscriptions.forEach(fn => fn());\n subscriptions = [];\n }\n\n // default values\n const defaultDeviceId = await getDeviceId();\n\n try {\n const { users } = await setClientToken({\n params: {\n ...params,\n displayName: params?.displayName,\n deviceId: params?.deviceId || defaultDeviceId,\n },\n options: {\n setAccessTokenCookie: true,\n },\n });\n\n const user = users.find(u => u.userId === params.userId);\n\n if (user == null) {\n throw new ASCError(\n `${params.userId} has not been founded`,\n Amity.ClientError.UNKNOWN_ERROR,\n Amity.ErrorLevel.ERROR,\n );\n }\n\n if (user.isDeleted) {\n terminateClient(Amity.TokenTerminationReason.USER_DELETED);\n return false;\n }\n\n if (user.isGlobalBanned) {\n terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);\n return false;\n }\n\n // FIXME: events are duplicated if connectClient is called few times without disconnectClient\n // wire websocket events to our event emitter\n proxyWebsocketEvents(client.ws, client.emitter);\n\n client.ws?.open();\n\n client.userId = user.userId;\n\n client.sessionHandler = sessionHandler;\n\n /*\n * Cannot push to subscriptions as watcher needs to continue working even if\n * token expires\n */\n unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);\n\n setActiveUser(user);\n } catch (error) {\n /*\n * if getting token failed session state reverts to initial state when app\n * is first launched\n */\n SessionWatcher.getInstance().setSessionState(Amity.SessionStates.NOT_LOGGED_IN);\n\n // pass error down tree so the calling function handle it\n throw error;\n }\n\n if (config?.disableRTE !== true) {\n runMqtt();\n }\n\n await initializeMessagePreviewSetting();\n\n if (subscriptions.length === 0) {\n subscriptions.push(\n // GLOBAL_BAN\n onClientBanned((_: Amity.UserPayload) => {\n terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onTokenTerminated(_ => {\n terminateClient();\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onUserDeleted((user: Amity.InternalUser) => {\n if (user.userId === client.userId) {\n terminateClient(Amity.TokenTerminationReason.USER_DELETED);\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }\n }),\n\n onTokenExpired(state => {\n SessionWatcher.getInstance().setSessionState(state);\n\n logout();\n\n subscriptions.forEach(fn => fn());\n }),\n\n // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave\n // the channel because currently backend can't handle this, so every time a user is banned from\n // a channel or the channel is deleted the channel's unread count will not be reset to zero\n onChannelDeleted(removeChannelMarkerCache),\n onChannelMemberBanned(removeChannelMarkerCache),\n\n markReadEngineOnLoginHandler(),\n analyticsEngineOnLoginHandler(),\n objectResolverEngineOnLoginHandler(),\n reactionSyncEngineOnLoginHandler(),\n );\n\n if (client.useLegacyUnreadCount) {\n subscriptions.push(readReceiptSyncEngineOnLoginHandler());\n } else subscriptions.push(legacyReadReceiptSyncEngineOnLoginHandler());\n }\n\n return true;\n};\n/* end_public_function */\n"]}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/client/api/login.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';\n/* eslint-disable require-atomic-updates */\nimport { getDeviceId } from '~/core/device';\nimport { proxyWebsocketEvents } from '~/core/events';\nimport { onChannelDeleted } from '~/channelRepository/events/onChannelDeleted';\nimport { onChannelMemberBanned } from '~/channelRepository/events/onChannelMemberBanned';\n\nimport { markReadEngineOnLoginHandler } from '~/subChannelRepository/utils/markReadEngine';\nimport { onUserDeleted } from '~/userRepository/events/onUserDeleted';\n\nimport analyticsEngineOnLoginHandler from '~/analytic/utils/analyticsEngineOnLoginHandler';\nimport readReceiptSyncEngineOnLoginHandler from '~/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler';\nimport legacyReadReceiptSyncEngineOnLoginHandler from '~/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngineOnLoginHandler';\nimport objectResolverEngineOnLoginHandler from '~/client/utils/ObjectResolver/objectResolverEngineOnLoginHandler';\nimport reactionSyncEngineOnLoginHandler from '~/liveReactionRepository/utils/ReactionSyncEngineOnLoginHandler';\nimport { logout } from './logout';\n\nimport { getActiveClient } from './activeClient';\nimport { terminateClient } from './terminateClient';\nimport { setActiveUser } from './activeUser';\n\nimport { onClientBanned } from '../events';\nimport { onTokenExpired } from '../events/onTokenExpired';\nimport { onTokenTerminated } from '../events/onTokenTerminated';\n\nimport { setClientToken } from '../utils/setClientToken';\nimport { removeChannelMarkerCache } from '../utils/removeChannelMarkerCache';\nimport { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';\nimport { ASCError } from '~/core/errors';\nimport SessionWatcher from '../utils/SessionWatcher';\n\n/*\n * declared earlier to accomodate case when logging in with a different user\n * than the one already connected, in which case the existing subscriptions need\n * to be cleared\n */\nlet subscriptions: Amity.Unsubscriber[] = [];\n\nasync function runMqtt() {\n await modifyMqttConnection();\n}\n\n/* begin_public_function\n id: client.login\n*/\n/**\n * ```js\n * import { login } from '@amityco/ts-sdk-react-native/client/api'\n * const success = await login({\n * userId: 'XYZ123456789',\n * })\n * ```\n *\n * Connects an {@link Amity.Client} instance to ASC servers\n *\n * @param params the connect parameters\n * @param params.userId the user ID for the current session\n * @param params.displayName the user's displayName for the current session\n * @param params.deviceId Manual override of the user's device id (for device management)\n * @param params.authToken The authentication token - necessary when network option is set to secure\n * @returns a success boolean if connected\n *\n * @category Client API\n * @async\n */\nexport const login = async (\n params: Amity.ConnectClientParams,\n sessionHandler: Amity.SessionHandler,\n config?: Amity.ConnectClientConfig,\n): Promise<boolean> => {\n const client = getActiveClient();\n let unsubWatcher: Amity.Unsubscriber;\n\n client.log('client/api/connectClient', {\n apiKey: client.apiKey,\n sessionState: client.sessionState,\n ...params,\n });\n\n // if connecting to a different userId than the one that is connected currently\n if (client.userId && client.userId !== params.userId) {\n await logout();\n\n // Remove subscription to ban and delete\n subscriptions.forEach(fn => fn());\n subscriptions = [];\n }\n\n // default values\n const defaultDeviceId = await getDeviceId();\n\n try {\n const { users } = await setClientToken({\n params: {\n ...params,\n displayName: params?.displayName,\n deviceId: params?.deviceId || defaultDeviceId,\n },\n options: {\n setAccessTokenCookie: true,\n },\n });\n\n const user = users.find(u => u.userId === params.userId);\n\n if (user == null) {\n throw new ASCError(\n `${params.userId} has not been founded`,\n Amity.ClientError.UNKNOWN_ERROR,\n Amity.ErrorLevel.ERROR,\n );\n }\n\n if (user.isDeleted) {\n terminateClient(Amity.TokenTerminationReason.USER_DELETED);\n return false;\n }\n\n if (user.isGlobalBanned) {\n terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);\n return false;\n }\n\n client.userId = user.userId;\n\n client.sessionHandler = sessionHandler;\n\n /*\n * Cannot push to subscriptions as watcher needs to continue working even if\n * token expires\n */\n unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);\n\n setActiveUser(user);\n } catch (error) {\n /*\n * if getting token failed session state reverts to initial state when app\n * is first launched\n */\n SessionWatcher.getInstance().setSessionState(Amity.SessionStates.NOT_LOGGED_IN);\n\n // pass error down tree so the calling function handle it\n throw error;\n }\n\n if (config?.disableRTE !== true) {\n runMqtt();\n }\n\n await initializeMessagePreviewSetting();\n\n if (subscriptions.length === 0) {\n subscriptions.push(\n // GLOBAL_BAN\n onClientBanned((_: Amity.UserPayload) => {\n terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onTokenTerminated(_ => {\n terminateClient();\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onUserDeleted((user: Amity.InternalUser) => {\n if (user.userId === client.userId) {\n terminateClient(Amity.TokenTerminationReason.USER_DELETED);\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }\n }),\n\n onTokenExpired(state => {\n SessionWatcher.getInstance().setSessionState(state);\n\n logout();\n\n subscriptions.forEach(fn => fn());\n }),\n\n // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave\n // the channel because currently backend can't handle this, so every time a user is banned from\n // a channel or the channel is deleted the channel's unread count will not be reset to zero\n onChannelDeleted(removeChannelMarkerCache),\n onChannelMemberBanned(removeChannelMarkerCache),\n\n markReadEngineOnLoginHandler(),\n analyticsEngineOnLoginHandler(),\n objectResolverEngineOnLoginHandler(),\n reactionSyncEngineOnLoginHandler(),\n );\n\n if (client.useLegacyUnreadCount) {\n subscriptions.push(readReceiptSyncEngineOnLoginHandler());\n } else subscriptions.push(legacyReadReceiptSyncEngineOnLoginHandler());\n }\n\n return true;\n};\n/* end_public_function */\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/client/api/logout.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,QAAa,QAAQ,OAAO,CAyD9C,CAAC"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/client/api/logout.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,QAAa,QAAQ,OAAO,CAkD9C,CAAC"}
@@ -17,15 +17,12 @@ import { setSessionState } from './setSessionState';
17
17
  * @async
18
18
  */
19
19
  export const logout = async () => {
20
- var _a, _b;
20
+ var _a;
21
21
  const client = getActiveClient();
22
22
  client.log('client/api/disconnectClient');
23
23
  if (client.mqtt && client.mqtt.connected) {
24
24
  client.mqtt.disconnect();
25
25
  }
26
- if (client.ws && client.ws.connected) {
27
- client.ws.disconnect();
28
- }
29
26
  /*
30
27
  * for cases when session state is terminated (example on ban) or token expired,
31
28
  * the terminating block will set session state to terminated or for the or
@@ -41,9 +38,7 @@ export const logout = async () => {
41
38
  if (client.sessionState === "established" /* Amity.SessionStates.ESTABLISHED */)
42
39
  setSessionState("notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */);
43
40
  client.emitter.all.clear();
44
- // FIXME: it removes listener in ws.ts, it breaks global ban event
45
- (_a = client.ws) === null || _a === void 0 ? void 0 : _a.removeAllListeners();
46
- (_b = client.mqtt) === null || _b === void 0 ? void 0 : _b.removeAllListeners();
41
+ (_a = client.mqtt) === null || _a === void 0 ? void 0 : _a.removeAllListeners();
47
42
  client.userId = undefined;
48
43
  client.token = undefined;
49
44
  client.http.defaults.headers.common.Authorization = '';
@@ -52,8 +47,6 @@ export const logout = async () => {
52
47
  isGlobalBanned: false,
53
48
  isUserDeleted: false,
54
49
  };
55
- if (client.ws)
56
- client.ws.io.opts.query = { token: '' };
57
50
  if (typeof document !== 'undefined') {
58
51
  document.cookie = '_ascSession=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
59
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/client/api/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;EAEE;AACF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,IAAsB,EAAE;;IACjD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE1C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;KAC1B;IAED,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE;QACpC,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;KACxB;IAED;;;;;;;;;;;OAWG;IACH,IAAI,MAAM,CAAC,YAAY,wDAAoC;QACzD,eAAe,uDAAmC,CAAC;IAErD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAC3B,kEAAkE;IAClE,MAAA,MAAM,CAAC,EAAE,0CAAE,kBAAkB,EAAE,CAAC;IAChC,MAAA,MAAM,CAAC,IAAI,0CAAE,kBAAkB,EAAE,CAAC;IAClC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;QAC9B,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,IAAI,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAEvD,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,QAAQ,CAAC,MAAM,GAAG,8DAA8D,CAAC;KAClF;IAED;;;OAGG;IACH,IAAI,MAAM,CAAC,YAAY,2DAAsC,IAAI,MAAM,CAAC,KAAK,EAAE;QAC7E,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KAC7B;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF,yBAAyB","sourcesContent":["import { getActiveClient } from './activeClient';\nimport { setSessionState } from './setSessionState';\n\n/* begin_public_function\n id: client.logout\n*/\n/**\n * ```js\n * import { Client } from '@amityco/ts-sdk-react-native';\n * const success = await Client.logout()\n * ```\n *\n * Disconnects an {@link Amity.Client} instance from ASC servers\n *\n * @returns a success boolean if disconnected\n *\n * @category Client API\n * @async\n */\nexport const logout = async (): Promise<boolean> => {\n const client = getActiveClient();\n\n client.log('client/api/disconnectClient');\n\n if (client.mqtt && client.mqtt.connected) {\n client.mqtt.disconnect();\n }\n\n if (client.ws && client.ws.connected) {\n client.ws.disconnect();\n }\n\n /*\n * for cases when session state is terminated (example on ban) or token expired,\n * the terminating block will set session state to terminated or for the or\n * in the case of expired token the same happens\n *\n * establishing state also ignored in cases where accessTokenExpiryWatcher\n * calls renewal. There is a possibility that renewal will be called before\n * disconnectClient finishes execution\n *\n * IMPORTANT: call this before `emitter.all.clear()`, otherwise the session\n * event will never be triggered\n */\n if (client.sessionState === Amity.SessionStates.ESTABLISHED)\n setSessionState(Amity.SessionStates.NOT_LOGGED_IN);\n\n client.emitter.all.clear();\n // FIXME: it removes listener in ws.ts, it breaks global ban event\n client.ws?.removeAllListeners();\n client.mqtt?.removeAllListeners();\n client.userId = undefined;\n client.token = undefined;\n\n client.http.defaults.headers.common.Authorization = '';\n client.http.defaults.metadata = {\n tokenExpiry: '',\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n if (client.ws) client.ws.io.opts.query = { token: '' };\n\n if (typeof document !== 'undefined') {\n document.cookie = '_ascSession=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';\n }\n\n /*\n * Cache should be usable if tokenExpired\n * https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#SDK-usability-based-on-Session-State\n */\n if (client.sessionState !== Amity.SessionStates.TOKEN_EXPIRED && client.cache) {\n client.cache = { data: {} };\n }\n\n return true;\n};\n/* end_public_function */\n"]}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/client/api/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;EAEE;AACF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,IAAsB,EAAE;;IACjD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE1C,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;KAC1B;IAED;;;;;;;;;;;OAWG;IACH,IAAI,MAAM,CAAC,YAAY,wDAAoC;QACzD,eAAe,uDAAmC,CAAC;IAErD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IAE3B,MAAA,MAAM,CAAC,IAAI,0CAAE,kBAAkB,EAAE,CAAC;IAClC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IAEzB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,EAAE,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG;QAC9B,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,QAAQ,CAAC,MAAM,GAAG,8DAA8D,CAAC;KAClF;IAED;;;OAGG;IACH,IAAI,MAAM,CAAC,YAAY,2DAAsC,IAAI,MAAM,CAAC,KAAK,EAAE;QAC7E,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KAC7B;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AACF,yBAAyB","sourcesContent":["import { getActiveClient } from './activeClient';\nimport { setSessionState } from './setSessionState';\n\n/* begin_public_function\n id: client.logout\n*/\n/**\n * ```js\n * import { Client } from '@amityco/ts-sdk-react-native';\n * const success = await Client.logout()\n * ```\n *\n * Disconnects an {@link Amity.Client} instance from ASC servers\n *\n * @returns a success boolean if disconnected\n *\n * @category Client API\n * @async\n */\nexport const logout = async (): Promise<boolean> => {\n const client = getActiveClient();\n\n client.log('client/api/disconnectClient');\n\n if (client.mqtt && client.mqtt.connected) {\n client.mqtt.disconnect();\n }\n\n /*\n * for cases when session state is terminated (example on ban) or token expired,\n * the terminating block will set session state to terminated or for the or\n * in the case of expired token the same happens\n *\n * establishing state also ignored in cases where accessTokenExpiryWatcher\n * calls renewal. There is a possibility that renewal will be called before\n * disconnectClient finishes execution\n *\n * IMPORTANT: call this before `emitter.all.clear()`, otherwise the session\n * event will never be triggered\n */\n if (client.sessionState === Amity.SessionStates.ESTABLISHED)\n setSessionState(Amity.SessionStates.NOT_LOGGED_IN);\n\n client.emitter.all.clear();\n\n client.mqtt?.removeAllListeners();\n client.userId = undefined;\n client.token = undefined;\n\n client.http.defaults.headers.common.Authorization = '';\n client.http.defaults.metadata = {\n tokenExpiry: '',\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n if (typeof document !== 'undefined') {\n document.cookie = '_ascSession=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';\n }\n\n /*\n * Cache should be usable if tokenExpired\n * https://ekoapp.atlassian.net/wiki/spaces/UP/pages/2082537485/ASC+Core+-+Session+Management+3.0#SDK-usability-based-on-Session-State\n */\n if (client.sessionState !== Amity.SessionStates.TOKEN_EXPIRED && client.cache) {\n client.cache = { data: {} };\n }\n\n return true;\n};\n/* end_public_function */\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resumeSession.d.ts","sourceRoot":"","sources":["../../../src/client/api/resumeSession.ts"],"names":[],"mappings":"AA0CA,UAAU,MAAM;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AA+DD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa,WAChB,MAAM,kBACE,MAAM,cAAc,WAC3B,MAAM,mBAAmB,KACjC,QAAQ,OAAO,CA+IjB,CAAC"}
1
+ {"version":3,"file":"resumeSession.d.ts","sourceRoot":"","sources":["../../../src/client/api/resumeSession.ts"],"names":[],"mappings":"AA0CA,UAAU,MAAM;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AA4DD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,aAAa,WAChB,MAAM,kBACE,MAAM,cAAc,WAC3B,MAAM,mBAAmB,KACjC,QAAQ,OAAO,CAsIjB,CAAC"}
@@ -1,8 +1,6 @@
1
1
  import jwtDecode from 'jwt-decode';
2
2
  /* eslint-disable no-param-reassign */
3
3
  import { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';
4
- /* eslint-disable require-atomic-updates */
5
- import { proxyWebsocketEvents } from '~/core/events';
6
4
  import { onChannelDeleted } from '~/channelRepository/events/onChannelDeleted';
7
5
  import { onChannelMemberBanned } from '~/channelRepository/events/onChannelMemberBanned';
8
6
  import { markReadEngineOnLoginHandler } from '~/subChannelRepository/utils/markReadEngine';
@@ -60,9 +58,6 @@ const validateAccessToken = async ({ token, userId }) => {
60
58
  isGlobalBanned: false,
61
59
  isUserDeleted: false,
62
60
  };
63
- // manually setup the token for ws transport
64
- if (client.ws)
65
- client.ws.io.opts.query = { token: token.accessToken };
66
61
  client.token = token;
67
62
  setSessionState("established" /* Amity.SessionStates.ESTABLISHED */);
68
63
  return user;
@@ -92,7 +87,6 @@ const validateAccessToken = async ({ token, userId }) => {
92
87
  * @async
93
88
  */
94
89
  export const resumeSession = async (params, sessionHandler, config) => {
95
- var _a;
96
90
  const client = getActiveClient();
97
91
  let unsubWatcher;
98
92
  client.log('client/api/resumeSession', Object.assign({ apiKey: client.apiKey, sessionState: client.sessionState }, params));
@@ -103,9 +97,6 @@ export const resumeSession = async (params, sessionHandler, config) => {
103
97
  if (client.mqtt && client.mqtt.connected) {
104
98
  client.mqtt.disconnect();
105
99
  }
106
- if (client.ws && client.ws.connected) {
107
- client.ws.disconnect();
108
- }
109
100
  // Clear existing subscriptions
110
101
  subscriptions.forEach(fn => fn());
111
102
  subscriptions = [];
@@ -131,10 +122,6 @@ export const resumeSession = async (params, sessionHandler, config) => {
131
122
  terminateClient("globalBan" /* Amity.TokenTerminationReason.GLOBAL_BAN */);
132
123
  return false;
133
124
  }
134
- // FIXME: events are duplicated if connectClient is called few times without disconnectClient
135
- // wire websocket events to our event emitter
136
- proxyWebsocketEvents(client.ws, client.emitter);
137
- (_a = client.ws) === null || _a === void 0 ? void 0 : _a.open();
138
125
  client.userId = user.userId;
139
126
  client.sessionHandler = sessionHandler;
140
127
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"resumeSession.js","sourceRoot":"","sources":["../../../src/client/api/resumeSession.ts"],"names":[],"mappings":"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","sourcesContent":["import jwtDecode from 'jwt-decode';\n/* eslint-disable no-param-reassign */\nimport { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';\n/* eslint-disable require-atomic-updates */\nimport { proxyWebsocketEvents } from '~/core/events';\nimport { onChannelDeleted } from '~/channelRepository/events/onChannelDeleted';\nimport { onChannelMemberBanned } from '~/channelRepository/events/onChannelMemberBanned';\n\nimport { markReadEngineOnLoginHandler } from '~/subChannelRepository/utils/markReadEngine';\nimport { onUserDeleted } from '~/userRepository/events/onUserDeleted';\n\nimport analyticsEngineOnLoginHandler from '~/analytic/utils/analyticsEngineOnLoginHandler';\nimport readReceiptSyncEngineOnLoginHandler from '~/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler';\nimport legacyReadReceiptSyncEngineOnLoginHandler from '~/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngineOnLoginHandler';\nimport objectResolverEngineOnLoginHandler from '~/client/utils/ObjectResolver/objectResolverEngineOnLoginHandler';\nimport { logout } from './logout';\n\nimport { getActiveClient } from './activeClient';\nimport { terminateClient } from './terminateClient';\nimport { setActiveUser } from './activeUser';\nimport { setSessionState } from './setSessionState';\n\nimport { onClientBanned } from '../events';\nimport { onTokenExpired } from '../events/onTokenExpired';\nimport { onTokenTerminated } from '../events/onTokenTerminated';\n\nimport { removeChannelMarkerCache } from '../utils/removeChannelMarkerCache';\nimport { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';\nimport { ASCError } from '~/core/errors';\nimport SessionWatcher from '../utils/SessionWatcher';\n\n/*\n * declared earlier to accomodate case when logging in with a different user\n * than the one already connected, in which case the existing subscriptions need\n * to be cleared\n */\nlet subscriptions: Amity.Unsubscriber[] = [];\n\nasync function runMqtt() {\n await modifyMqttConnection();\n}\n\ninterface Params {\n userId: string;\n token: {\n issuedAt: string;\n expiresAt: string;\n accessToken: string;\n };\n}\n\nconst isSameUserId = (token: Params['token']['accessToken']) => {\n const client = getActiveClient();\n\n const decoded = jwtDecode<{\n user: {\n userId: string;\n publicUserId: string;\n deviceInfo: Amity.Device['deviceInfo'];\n networkId: string;\n displayName: string;\n refreshToken: string;\n };\n }>(token);\n\n return decoded?.user?.publicUserId === client.userId;\n};\n\nconst validateAccessToken = async ({ token, userId }: Params) => {\n const client = getActiveClient();\n // begin establishing session\n setSessionState(Amity.SessionStates.ESTABLISHING);\n\n const {\n data: { users },\n } = await client.http.get(`/api/v3/users/${userId}`, {\n headers: {\n Authorization: `Bearer ${token.accessToken}`,\n },\n });\n\n const user = users.find((u: Amity.User) => u.userId === userId);\n\n client.http.defaults.headers.common.Authorization = `Bearer ${token.accessToken}`;\n\n client.http.defaults.metadata = {\n tokenExpiry: token.expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.upload.defaults.headers.common.Authorization = `Bearer ${token.accessToken}`;\n\n client.upload.defaults.metadata = {\n tokenExpiry: token.expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n // manually setup the token for ws transport\n if (client.ws) client.ws.io.opts.query = { token: token.accessToken };\n\n client.token = token;\n\n setSessionState(Amity.SessionStates.ESTABLISHED);\n\n return user;\n};\n\n/* begin_public_function\n id: client.resumeSession\n*/\n/**\n * ```js\n * import { resumeSession } from '@amityco/ts-sdk/client/api'\n * const success = await resumeSession({\n * userId: 'XYZ123456789',\n * token: { accessToken: 'abc123', issuedAt: '2023-01-01T00:00:00Z', expiresAt: '2023-01-02T00:00:00Z' }\n * })\n * ```\n *\n * Connects an {@link Amity.Client} instance to ASC servers using an existing access token\n *\n * @param params the connect parameters\n * @param params.userId the user ID for the current session\n * @param params.token the existing access token with its metadata\n * @param sessionHandler the session handler for token renewal\n * @param config optional configuration\n * @returns a success boolean if connected\n *\n * @category Client API\n * @async\n */\nexport const resumeSession = async (\n params: Params,\n sessionHandler: Amity.SessionHandler,\n config?: Amity.ConnectClientConfig,\n): Promise<boolean> => {\n const client = getActiveClient();\n let unsubWatcher: Amity.Unsubscriber;\n\n client.log('client/api/resumeSession', {\n apiKey: client.apiKey,\n sessionState: client.sessionState,\n ...params,\n });\n\n // Handle existing connected user\n if (client.userId) {\n if (client.userId === params.userId && isSameUserId(params.token.accessToken)) {\n // Clear connections and listeners but preserve cache\n if (client.mqtt && client.mqtt.connected) {\n client.mqtt.disconnect();\n }\n if (client.ws && client.ws.connected) {\n client.ws.disconnect();\n }\n\n // Clear existing subscriptions\n subscriptions.forEach(fn => fn());\n subscriptions = [];\n } else {\n // Different user - do full logout\n await logout();\n\n // Remove subscription to ban and delete\n subscriptions.forEach(fn => fn());\n subscriptions = [];\n }\n }\n\n try {\n const user = await validateAccessToken(params);\n\n if (user == null) {\n throw new ASCError(\n `${params.userId} has not been found`,\n Amity.ClientError.UNKNOWN_ERROR,\n Amity.ErrorLevel.ERROR,\n );\n }\n\n if (user.isDeleted) {\n terminateClient(Amity.TokenTerminationReason.USER_DELETED);\n return false;\n }\n\n if (user.isGlobalBanned) {\n terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);\n return false;\n }\n\n // FIXME: events are duplicated if connectClient is called few times without disconnectClient\n // wire websocket events to our event emitter\n proxyWebsocketEvents(client.ws, client.emitter);\n\n client.ws?.open();\n\n client.userId = user.userId;\n\n client.sessionHandler = sessionHandler;\n\n /*\n * Cannot push to subscriptions as watcher needs to continue working even if\n * token expires\n */\n unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);\n\n setActiveUser(user);\n } catch (error) {\n /*\n * if getting token failed session state reverts to initial state when app\n * is first launched\n */\n SessionWatcher.getInstance().setSessionState(Amity.SessionStates.NOT_LOGGED_IN);\n\n // pass error down tree so the calling function handle it\n throw error;\n }\n\n if (config?.disableRTE !== true) {\n runMqtt();\n }\n\n await initializeMessagePreviewSetting();\n\n if (subscriptions.length === 0) {\n subscriptions.push(\n // GLOBAL_BAN\n onClientBanned((_: Amity.UserPayload) => {\n terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onTokenTerminated(_ => {\n terminateClient();\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onUserDeleted((user: Amity.InternalUser) => {\n if (user.userId === client.userId) {\n terminateClient(Amity.TokenTerminationReason.USER_DELETED);\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }\n }),\n\n onTokenExpired(state => {\n SessionWatcher.getInstance().setSessionState(state);\n\n logout();\n\n subscriptions.forEach(fn => fn());\n }),\n\n // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave\n // the channel because currently backend can't handle this, so every time a user is banned from\n // a channel or the channel is deleted the channel's unread count will not be reset to zero\n onChannelDeleted(removeChannelMarkerCache),\n onChannelMemberBanned(removeChannelMarkerCache),\n\n markReadEngineOnLoginHandler(),\n analyticsEngineOnLoginHandler(),\n objectResolverEngineOnLoginHandler(),\n );\n\n if (client.useLegacyUnreadCount) {\n subscriptions.push(readReceiptSyncEngineOnLoginHandler());\n } else subscriptions.push(legacyReadReceiptSyncEngineOnLoginHandler());\n }\n\n return true;\n};\n/* end_public_function */\n"]}
1
+ {"version":3,"file":"resumeSession.js","sourceRoot":"","sources":["../../../src/client/api/resumeSession.ts"],"names":[],"mappings":"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","sourcesContent":["import jwtDecode from 'jwt-decode';\n/* eslint-disable no-param-reassign */\nimport { modifyMqttConnection } from '~/client/utils/modifyMqttConnection';\n/* eslint-disable require-atomic-updates */\nimport { proxyWebsocketEvents } from '~/core/events';\nimport { onChannelDeleted } from '~/channelRepository/events/onChannelDeleted';\nimport { onChannelMemberBanned } from '~/channelRepository/events/onChannelMemberBanned';\n\nimport { markReadEngineOnLoginHandler } from '~/subChannelRepository/utils/markReadEngine';\nimport { onUserDeleted } from '~/userRepository/events/onUserDeleted';\n\nimport analyticsEngineOnLoginHandler from '~/analytic/utils/analyticsEngineOnLoginHandler';\nimport readReceiptSyncEngineOnLoginHandler from '~/client/utils/ReadReceiptSync/readReceiptSyncEngineOnLoginHandler';\nimport legacyReadReceiptSyncEngineOnLoginHandler from '~/client/utils/ReadReceiptSync/legacyReadReceiptSyncEngineOnLoginHandler';\nimport objectResolverEngineOnLoginHandler from '~/client/utils/ObjectResolver/objectResolverEngineOnLoginHandler';\nimport { logout } from './logout';\n\nimport { getActiveClient } from './activeClient';\nimport { terminateClient } from './terminateClient';\nimport { setActiveUser } from './activeUser';\nimport { setSessionState } from './setSessionState';\n\nimport { onClientBanned } from '../events';\nimport { onTokenExpired } from '../events/onTokenExpired';\nimport { onTokenTerminated } from '../events/onTokenTerminated';\n\nimport { removeChannelMarkerCache } from '../utils/removeChannelMarkerCache';\nimport { initializeMessagePreviewSetting } from '../utils/messagePreviewEngine';\nimport { ASCError } from '~/core/errors';\nimport SessionWatcher from '../utils/SessionWatcher';\n\n/*\n * declared earlier to accomodate case when logging in with a different user\n * than the one already connected, in which case the existing subscriptions need\n * to be cleared\n */\nlet subscriptions: Amity.Unsubscriber[] = [];\n\nasync function runMqtt() {\n await modifyMqttConnection();\n}\n\ninterface Params {\n userId: string;\n token: {\n issuedAt: string;\n expiresAt: string;\n accessToken: string;\n };\n}\n\nconst isSameUserId = (token: Params['token']['accessToken']) => {\n const client = getActiveClient();\n\n const decoded = jwtDecode<{\n user: {\n userId: string;\n publicUserId: string;\n deviceInfo: Amity.Device['deviceInfo'];\n networkId: string;\n displayName: string;\n refreshToken: string;\n };\n }>(token);\n\n return decoded?.user?.publicUserId === client.userId;\n};\n\nconst validateAccessToken = async ({ token, userId }: Params) => {\n const client = getActiveClient();\n // begin establishing session\n setSessionState(Amity.SessionStates.ESTABLISHING);\n\n const {\n data: { users },\n } = await client.http.get(`/api/v3/users/${userId}`, {\n headers: {\n Authorization: `Bearer ${token.accessToken}`,\n },\n });\n\n const user = users.find((u: Amity.User) => u.userId === userId);\n\n client.http.defaults.headers.common.Authorization = `Bearer ${token.accessToken}`;\n\n client.http.defaults.metadata = {\n tokenExpiry: token.expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.upload.defaults.headers.common.Authorization = `Bearer ${token.accessToken}`;\n\n client.upload.defaults.metadata = {\n tokenExpiry: token.expiresAt,\n isGlobalBanned: false,\n isUserDeleted: false,\n };\n\n client.token = token;\n\n setSessionState(Amity.SessionStates.ESTABLISHED);\n\n return user;\n};\n\n/* begin_public_function\n id: client.resumeSession\n*/\n/**\n * ```js\n * import { resumeSession } from '@amityco/ts-sdk/client/api'\n * const success = await resumeSession({\n * userId: 'XYZ123456789',\n * token: { accessToken: 'abc123', issuedAt: '2023-01-01T00:00:00Z', expiresAt: '2023-01-02T00:00:00Z' }\n * })\n * ```\n *\n * Connects an {@link Amity.Client} instance to ASC servers using an existing access token\n *\n * @param params the connect parameters\n * @param params.userId the user ID for the current session\n * @param params.token the existing access token with its metadata\n * @param sessionHandler the session handler for token renewal\n * @param config optional configuration\n * @returns a success boolean if connected\n *\n * @category Client API\n * @async\n */\nexport const resumeSession = async (\n params: Params,\n sessionHandler: Amity.SessionHandler,\n config?: Amity.ConnectClientConfig,\n): Promise<boolean> => {\n const client = getActiveClient();\n let unsubWatcher: Amity.Unsubscriber;\n\n client.log('client/api/resumeSession', {\n apiKey: client.apiKey,\n sessionState: client.sessionState,\n ...params,\n });\n\n // Handle existing connected user\n if (client.userId) {\n if (client.userId === params.userId && isSameUserId(params.token.accessToken)) {\n // Clear connections and listeners but preserve cache\n if (client.mqtt && client.mqtt.connected) {\n client.mqtt.disconnect();\n }\n\n // Clear existing subscriptions\n subscriptions.forEach(fn => fn());\n subscriptions = [];\n } else {\n // Different user - do full logout\n await logout();\n\n // Remove subscription to ban and delete\n subscriptions.forEach(fn => fn());\n subscriptions = [];\n }\n }\n\n try {\n const user = await validateAccessToken(params);\n\n if (user == null) {\n throw new ASCError(\n `${params.userId} has not been found`,\n Amity.ClientError.UNKNOWN_ERROR,\n Amity.ErrorLevel.ERROR,\n );\n }\n\n if (user.isDeleted) {\n terminateClient(Amity.TokenTerminationReason.USER_DELETED);\n return false;\n }\n\n if (user.isGlobalBanned) {\n terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);\n return false;\n }\n\n client.userId = user.userId;\n\n client.sessionHandler = sessionHandler;\n\n /*\n * Cannot push to subscriptions as watcher needs to continue working even if\n * token expires\n */\n unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);\n\n setActiveUser(user);\n } catch (error) {\n /*\n * if getting token failed session state reverts to initial state when app\n * is first launched\n */\n SessionWatcher.getInstance().setSessionState(Amity.SessionStates.NOT_LOGGED_IN);\n\n // pass error down tree so the calling function handle it\n throw error;\n }\n\n if (config?.disableRTE !== true) {\n runMqtt();\n }\n\n await initializeMessagePreviewSetting();\n\n if (subscriptions.length === 0) {\n subscriptions.push(\n // GLOBAL_BAN\n onClientBanned((_: Amity.UserPayload) => {\n terminateClient(Amity.TokenTerminationReason.GLOBAL_BAN);\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onTokenTerminated(_ => {\n terminateClient();\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }),\n\n onUserDeleted((user: Amity.InternalUser) => {\n if (user.userId === client.userId) {\n terminateClient(Amity.TokenTerminationReason.USER_DELETED);\n\n subscriptions.forEach(fn => fn());\n\n unsubWatcher();\n }\n }),\n\n onTokenExpired(state => {\n SessionWatcher.getInstance().setSessionState(state);\n\n logout();\n\n subscriptions.forEach(fn => fn());\n }),\n\n // NOTE: This is a temporary solution to handle the channel marker when the user is forced to leave\n // the channel because currently backend can't handle this, so every time a user is banned from\n // a channel or the channel is deleted the channel's unread count will not be reset to zero\n onChannelDeleted(removeChannelMarkerCache),\n onChannelMemberBanned(removeChannelMarkerCache),\n\n markReadEngineOnLoginHandler(),\n analyticsEngineOnLoginHandler(),\n objectResolverEngineOnLoginHandler(),\n );\n\n if (client.useLegacyUnreadCount) {\n subscriptions.push(readReceiptSyncEngineOnLoginHandler());\n } else subscriptions.push(legacyReadReceiptSyncEngineOnLoginHandler());\n }\n\n return true;\n};\n/* end_public_function */\n"]}
@@ -8,10 +8,6 @@ describe('createClient', () => {
8
8
  const client = createClient('test-api-key');
9
9
  expect(client.http).toBeDefined();
10
10
  });
11
- test('it should define ws transport', () => {
12
- const client = createClient('test-api-key');
13
- expect(client.ws).toBeDefined();
14
- });
15
11
  test('it should define mqtt transport', () => {
16
12
  const client = createClient('test-api-key');
17
13
  expect(client.mqtt).toBeDefined();
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.test.js","sourceRoot":"","sources":["../../../../src/client/api/tests/createClient.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE9C,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACrE,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;QAE7B,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,uDAAmC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { createClient } from '../createClient';\n\ndescribe('createClient', () => {\n test('it should create client', () => {\n const client = createClient('test-api-key');\n\n expect(client).toBeDefined();\n });\n\n test('it should define http transport', () => {\n const client = createClient('test-api-key');\n\n expect(client.http).toBeDefined();\n });\n\n test('it should define ws transport', () => {\n const client = createClient('test-api-key');\n\n expect(client.ws).toBeDefined();\n });\n\n test('it should define mqtt transport', () => {\n const client = createClient('test-api-key');\n\n expect(client.mqtt).toBeDefined();\n });\n\n test('it should define event emitter', () => {\n const client = createClient('test-api-key');\n\n expect(client.emitter).toBeDefined();\n });\n\n test('it should return existing client if there is one', () => {\n const expected = createClient('test-api-key');\n const recieved = createClient('test-api-key');\n\n expect(recieved).toStrictEqual(expected);\n });\n\n test('it should set not logged in as the start up session state', () => {\n const got = createClient('key', 'sg');\n const { sessionState } = got;\n\n expect(got).toBeDefined();\n expect(sessionState).toBe(Amity.SessionStates.NOT_LOGGED_IN);\n });\n});\n"]}
1
+ {"version":3,"file":"createClient.test.js","sourceRoot":"","sources":["../../../../src/client/api/tests/createClient.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC5D,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;QAE9C,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACrE,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACtC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC;QAE7B,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,uDAAmC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { createClient } from '../createClient';\n\ndescribe('createClient', () => {\n test('it should create client', () => {\n const client = createClient('test-api-key');\n\n expect(client).toBeDefined();\n });\n\n test('it should define http transport', () => {\n const client = createClient('test-api-key');\n\n expect(client.http).toBeDefined();\n });\n\n test('it should define mqtt transport', () => {\n const client = createClient('test-api-key');\n\n expect(client.mqtt).toBeDefined();\n });\n\n test('it should define event emitter', () => {\n const client = createClient('test-api-key');\n\n expect(client.emitter).toBeDefined();\n });\n\n test('it should return existing client if there is one', () => {\n const expected = createClient('test-api-key');\n const recieved = createClient('test-api-key');\n\n expect(recieved).toStrictEqual(expected);\n });\n\n test('it should set not logged in as the start up session state', () => {\n const got = createClient('key', 'sg');\n const { sessionState } = got;\n\n expect(got).toBeDefined();\n expect(sessionState).toBe(Amity.SessionStates.NOT_LOGGED_IN);\n });\n});\n"]}
@@ -8,13 +8,7 @@ const sessionHandler = {
8
8
  // do nothing
9
9
  },
10
10
  };
11
- const onConnect = () => setTimeout(() => {
12
- const CONNECT_PACKET = { type: 0, nsp: client.ws.nsp };
13
- client.ws.emit('connect');
14
- // simulate a connection ack packet from server
15
- client.ws.io.emit('packet', CONNECT_PACKET);
16
- }, 50);
17
- describe('login', () => {
11
+ const onConnect = () => describe('login', () => {
18
12
  beforeEach(() => {
19
13
  client = createClient('key', 'sg');
20
14
  client.mqtt.connect = jest.fn();
@@ -1 +1 @@
1
- {"version":3,"file":"login.test.js","sourceRoot":"","sources":["../../../../src/client/api/tests/login.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { ASCApiError } from '~/core/errors';\nimport { sessionResponse, user11, disconnectClient } from '~/utils/tests';\nimport { login, createClient } from '..';\nimport { setActiveClient } from '../activeClient';\n\nlet client: Amity.Client;\n\nconst sessionHandler: Amity.SessionHandler = {\n sessionWillRenewAccessToken(_) {\n // do nothing\n },\n};\n\nconst onConnect = () =>\n setTimeout(() => {\n const CONNECT_PACKET = { type: 0, nsp: client.ws.nsp };\n\n client.ws.emit('connect');\n\n // simulate a connection ack packet from server\n client.ws.io.emit('packet', CONNECT_PACKET);\n }, 50);\n\ndescribe('login', () => {\n beforeEach(() => {\n client = createClient('key', 'sg');\n client.mqtt.connect = jest.fn();\n client.mqtt.subscribe = jest.fn();\n client.http.post = jest.fn().mockResolvedValueOnce(sessionResponse);\n\n setActiveClient(client);\n });\n\n afterEach(async () => {\n if (client.sessionState === Amity.SessionStates.ESTABLISHED) await disconnectClient();\n });\n\n test('it should connect client', async () => {\n onConnect().unref();\n\n const recieved = await login({ userId: user11.userId }, sessionHandler);\n\n expect(recieved).toBe(true);\n });\n\n test('it should establish connection', async () => {\n onConnect().unref();\n\n await login({ userId: user11.userId }, sessionHandler);\n const { sessionState } = client;\n\n expect(sessionState).toBe(Amity.SessionStates.ESTABLISHED);\n });\n\n test('it should have session state establishing while connecting client', () => {\n login({ userId: user11.userId }, sessionHandler);\n\n expect(client.sessionState).toBe(Amity.SessionStates.ESTABLISHING);\n });\n\n test('it should have session state notLoggedIn on failure', async () => {\n client.http.post = jest\n .fn()\n .mockRejectedValue(\n new ASCApiError('unauthorzed', Amity.ServerError.UNAUTHORIZED, Amity.ErrorLevel.FATAL),\n );\n\n await expect(login({ userId: user11.userId }, sessionHandler)).rejects.toThrow('unauthorzed');\n expect(client.sessionState).toBe(Amity.SessionStates.NOT_LOGGED_IN);\n });\n\n test('it should terminate session on ban', async () => {\n onConnect().unref();\n\n await login({ userId: user11.userId }, sessionHandler);\n\n // ban user\n client.emitter.emit('user.didGlobalBan', {} as Amity.UserPayload);\n\n expect(client.sessionState).toBe(Amity.SessionStates.TERMINATED);\n });\n});\n"]}
1
+ {"version":3,"file":"login.test.js","sourceRoot":"","sources":["../../../../src/client/api/tests/login.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { ASCApiError } from '~/core/errors';\nimport { sessionResponse, user11, disconnectClient } from '~/utils/tests';\nimport { login, createClient } from '..';\nimport { setActiveClient } from '../activeClient';\n\nlet client: Amity.Client;\n\nconst sessionHandler: Amity.SessionHandler = {\n sessionWillRenewAccessToken(_) {\n // do nothing\n },\n};\n\nconst onConnect = () =>\n describe('login', () => {\n beforeEach(() => {\n client = createClient('key', 'sg');\n client.mqtt.connect = jest.fn();\n client.mqtt.subscribe = jest.fn();\n client.http.post = jest.fn().mockResolvedValueOnce(sessionResponse);\n\n setActiveClient(client);\n });\n\n afterEach(async () => {\n if (client.sessionState === Amity.SessionStates.ESTABLISHED) await disconnectClient();\n });\n\n test('it should connect client', async () => {\n onConnect().unref();\n\n const recieved = await login({ userId: user11.userId }, sessionHandler);\n\n expect(recieved).toBe(true);\n });\n\n test('it should establish connection', async () => {\n onConnect().unref();\n\n await login({ userId: user11.userId }, sessionHandler);\n const { sessionState } = client;\n\n expect(sessionState).toBe(Amity.SessionStates.ESTABLISHED);\n });\n\n test('it should have session state establishing while connecting client', () => {\n login({ userId: user11.userId }, sessionHandler);\n\n expect(client.sessionState).toBe(Amity.SessionStates.ESTABLISHING);\n });\n\n test('it should have session state notLoggedIn on failure', async () => {\n client.http.post = jest\n .fn()\n .mockRejectedValue(\n new ASCApiError('unauthorzed', Amity.ServerError.UNAUTHORIZED, Amity.ErrorLevel.FATAL),\n );\n\n await expect(login({ userId: user11.userId }, sessionHandler)).rejects.toThrow('unauthorzed');\n expect(client.sessionState).toBe(Amity.SessionStates.NOT_LOGGED_IN);\n });\n\n test('it should terminate session on ban', async () => {\n onConnect().unref();\n\n await login({ userId: user11.userId }, sessionHandler);\n\n // ban user\n client.emitter.emit('user.didGlobalBan', {} as Amity.UserPayload);\n\n expect(client.sessionState).toBe(Amity.SessionStates.TERMINATED);\n });\n });\n"]}