@amityco/ts-sdk 7.8.7-bc517cf.0 → 7.8.7-f647ab9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.d.ts.map +1 -1
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js +11 -5
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/transports/http.js.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/getFile.d.ts +1 -1
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/getFile.d.ts.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/fileRepository/api/getFile.js.map +1 -1
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/categoryLinkedObject.js +1 -1
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/categoryLinkedObject.js.map +1 -1
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/communityLinkedObject.d.ts.map +1 -1
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/communityLinkedObject.js +12 -1
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/communityLinkedObject.js.map +1 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  13. package/dist/core/transports/http.d.ts.map +1 -1
  14. package/dist/fileRepository/api/getFile.d.ts +1 -1
  15. package/dist/fileRepository/api/getFile.d.ts.map +1 -1
  16. package/dist/index.cjs.js +21 -6
  17. package/dist/index.esm.js +21 -6
  18. package/dist/index.umd.js +2 -2
  19. package/dist/utils/linkedObject/communityLinkedObject.d.ts.map +1 -1
  20. package/package.json +1 -1
  21. package/src/core/transports/http.ts +18 -13
  22. package/src/fileRepository/api/getFile.ts +1 -1
  23. package/src/utils/linkedObject/categoryLinkedObject.ts +1 -1
  24. package/src/utils/linkedObject/communityLinkedObject.ts +11 -0
  25. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"AAeA,oBAAY,kBAAkB;IAC5B,WAAW,iBAAiB;IAC5B,gBAAgB,uBAAuB;IACvC,YAAY,kBAAkB;CAC/B;AAmDD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,kCA+GnD,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"AAeA,oBAAY,kBAAkB;IAC5B,WAAW,iBAAiB;IAC5B,gBAAgB,uBAAuB;IACvC,YAAY,kBAAkB;CAC/B;AAmDD;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,kCAoHnD,CAAC"}
@@ -113,17 +113,23 @@ export const createHttpTransport = (endpoint) => {
113
113
  return config;
114
114
  });
115
115
  instance.interceptors.response.use(response => {
116
+ var _a;
116
117
  const responseHeaders = new Headers();
117
118
  Object.entries(response.headers).forEach(([key, value]) => {
118
119
  if (typeof value === 'string') {
119
120
  responseHeaders.append(key, value);
120
121
  }
121
122
  });
122
- NetworkActivitiesWatcher.getInstance().setNetworkActivities(new Request(response.request.url, {
123
- method: response.request.method,
124
- headers: response.request.headers,
125
- body: response.request.data,
126
- }), {
123
+ const url = (response.config.baseURL || '') + (response.config.url || '');
124
+ const method = (_a = response.config.method) === null || _a === void 0 ? void 0 : _a.toUpperCase();
125
+ const requestInit = {
126
+ method,
127
+ headers: response.config.headers,
128
+ };
129
+ if (method !== 'GET' && method !== 'HEAD') {
130
+ requestInit.body = response.config.data;
131
+ }
132
+ NetworkActivitiesWatcher.getInstance().setNetworkActivities(new Request(url, requestInit), {
127
133
  data: response.data,
128
134
  status: response.status,
129
135
  statusText: response.statusText,
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,wBAAwB,MAAM,yCAAyC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,kDAA4B,CAAA;IAC5B,6DAAuC,CAAA;IACvC,oDAA8B,CAAA;AAChC,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AACD;;;;;;GAMG;AACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,CAAC,MAA0B,EAAE,EAAE;IAC9D,QAAQ,MAAM,EAAE;QACd,KAAK,kBAAkB,CAAC,gBAAgB;YACtC;;;;;eAKG;YACH,MAAM,IAAI,QAAQ,CAAC,MAAM,kFAAuD,CAAC;QAEnF,KAAK,kBAAkB,CAAC,WAAW;YACjC;;;;eAIG;YACH,MAAM,IAAI,QAAQ,CAAC,MAAM,oFAAyD,CAAC;QAErF,KAAK,kBAAkB,CAAC,YAAY;YAClC,SAAS,CAAC,cAAc,yDAAoC,CAAC;YAE7D,MAAM,IAAI,QAAQ,CAAC,MAAM,qFAA0D,CAAC;QAEtF;YACE,MAAM,IAAI,QAAQ,CAChB,iBAAiB,qFAGlB,CAAC;KACL;AACH,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,EAAE;IACtD,MAAM,OAAO,GAAG;QACd,UAAU,EAAE,GAAG;QACf,cAAc,EAAE,EAAE;QAClB,OAAO,EAAE,KAAK;QACd,iBAAiB,EAAE,KAAK;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC;QACjC,UAAU,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC;QACnC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB;;;;;;;WAOG;KACJ,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;IAE1C,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACzC,iDAAiD;QACjD,IAAI,MAAM,CAAC,GAAG,KAAK,kBAAkB,EAAE;YACrC,OAAO,MAAM,CAAC;SACf;QAED,0DAA0D;QAC1D,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;YAEvE,IAAI,cAAc,EAAE;gBAClB,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,wBAAwB,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;aAC/D;YAED,IAAI,aAAa,EAAE;gBACjB,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,wBAAwB,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;aAC1D;YAED,IAAI,WAAW,EAAE;gBACf,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;oBACzC,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;oBACjD,wBAAwB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;iBAC3D;aACF;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAChC,QAAQ,CAAC,EAAE;QACT,MAAM,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC;QAEtC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;QAEH,wBAAwB,CAAC,WAAW,EAAE,CAAC,oBAAoB,CACzD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO;YACjC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI;SAC5B,CAAC,EACF;YACE,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,eAAe;SACzB,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC,EACD,KAAK,CAAC,EAAE;;QACN,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QAE3B,8BAA8B;QAC9B,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,IAAI,iDAAmC,EAAE;YAC1D,SAAS,CAAC,iBAAiB,oDAAiC,CAAC;SAC9D;QAED,wDAAwD;QACxD,+BAA+B;QAC/B,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,MAAM,EAAE;YAC1B,aAAa,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAAC;SAC/B;QAED,+CAA+C;QAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE;YAC7B,MAAM,KAAK,CAAC;SACb;QACD,oBAAoB;QAEpB,MAAM,IAAI,KAAK,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,KAAK,CAAC,CAAC;IAC3C,CAAC,CACF,CAAC;IAEF,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,GAAG;QACnC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC;KAC7C,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC","sourcesContent":["import axios, { AxiosResponse } from 'axios';\nimport HttpAgent, { HttpsAgent } from 'agentkeepalive';\n\nimport { ASCError } from '~/core/errors';\n\nimport { fireEvent } from '../events';\nimport { unwrapPayload } from './utils';\nimport NetworkActivitiesWatcher from '~/client/utils/NetworkActivitiesWatcher';\n\n/*\n * Defined here as transport is a private module. Also, outside of this module\n * this enum holds no meaning.\n *\n * @private (exported for testing)\n */\nexport enum RequestCancelation {\n UserDeleted = 'User Deleted',\n UserGlobalBanned = 'User Global Banned',\n TokenExpired = 'Token Expired',\n}\n/*\n * Axios no longer supports `cancelToken`, since v0.22.0, and is marked as\n * deprecated. The doc asks to use the abort controller that fetch uses instead\n *\n * More Info:\n * https://axios-http.com/docs/cancellation\n */\nconst controller = new AbortController();\n\n/**\n * Handle Request Cancellation\n *\n * @param cancel Reason for cancelation\n *\n * @category Transport Util\n * @hidden\n */\nconst handleRequestCancelation = (cancel: RequestCancelation) => {\n switch (cancel) {\n case RequestCancelation.UserGlobalBanned:\n /*\n * Note:\n * Firing a virtual event (fireEvent) is not required as the metadata in\n * the request (isGlobalBanned) is only true once the user has been banned\n * and the SDK has recieved a global ban event\n */\n throw new ASCError(cancel, Amity.ServerError.GLOBAL_BAN, Amity.ErrorLevel.FATAL);\n\n case RequestCancelation.UserDeleted:\n /*\n * Note:\n * Firing a virtual event (fireEvent) is not required. For same reason as\n * above. Only difference is that the event recieved is user deleted\n */\n throw new ASCError(cancel, Amity.ServerError.UNAUTHORIZED, Amity.ErrorLevel.FATAL);\n\n case RequestCancelation.TokenExpired:\n fireEvent('tokenExpired', Amity.SessionStates.TOKEN_EXPIRED);\n\n throw new ASCError(cancel, Amity.ClientError.TOKEN_EXPIRED, Amity.ErrorLevel.FATAL);\n\n default:\n throw new ASCError(\n 'Request Aborted',\n Amity.ClientError.UNKNOWN_ERROR,\n Amity.ErrorLevel.ERROR,\n );\n }\n};\n\n/**\n * Creates a pre-configured axios instance\n *\n * @param endpoint The ASC rest api server's URL\n * @returns A pre-configured axios instance\n *\n * @category Transport\n * @hidden\n */\nexport const createHttpTransport = (endpoint: string) => {\n const options = {\n maxSockets: 100,\n maxFreeSockets: 10,\n timeout: 60000,\n freeSocketTimeout: 30000,\n };\n\n const instance = axios.create({\n baseURL: endpoint,\n httpAgent: new HttpAgent(options),\n httpsAgent: new HttpsAgent(options),\n signal: controller.signal,\n /*\n * If paramSerializer is required, use the serialize option to stringify\n * params. The encode option will pass complex params as string only whereas\n * the serialize option will pass params in the format Record<string, any>\n *\n * For more details:\n * https://github.com/axios/axios#request-config\n */\n });\n\n instance.defaults.withCredentials = false;\n\n instance.interceptors.request.use(config => {\n // do not check expiration for token creation url\n if (config.url === '/api/v5/sessions') {\n return config;\n }\n\n // check global.ts for the extension of AxiosRequestConfig\n if (config.metadata) {\n const { tokenExpiry, isGlobalBanned, isUserDeleted } = config.metadata;\n\n if (isGlobalBanned) {\n controller.abort();\n handleRequestCancelation(RequestCancelation.UserGlobalBanned);\n }\n\n if (isUserDeleted) {\n controller.abort();\n handleRequestCancelation(RequestCancelation.UserDeleted);\n }\n\n if (tokenExpiry) {\n if (Date.now() >= Date.parse(tokenExpiry)) {\n controller.abort(RequestCancelation.UserDeleted);\n handleRequestCancelation(RequestCancelation.TokenExpired);\n }\n }\n }\n\n return config;\n });\n\n instance.interceptors.response.use(\n response => {\n const responseHeaders = new Headers();\n\n Object.entries(response.headers).forEach(([key, value]) => {\n if (typeof value === 'string') {\n responseHeaders.append(key, value);\n }\n });\n\n NetworkActivitiesWatcher.getInstance().setNetworkActivities(\n new Request(response.request.url, {\n method: response.request.method,\n headers: response.request.headers,\n body: response.request.data,\n }),\n {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n },\n );\n\n return response;\n },\n error => {\n const { response } = error;\n\n // handle unauthorized request\n if (response?.data.code === Amity.ServerError.UNAUTHORIZED) {\n fireEvent('tokenTerminated', Amity.SessionStates.TERMINATED);\n }\n\n // if it's an error with status in the response payload,\n // then it's an expected error.\n if (response?.data?.status) {\n unwrapPayload(response?.data);\n }\n\n // as on request cancellation error is returned\n if (controller.signal.aborted) {\n throw error;\n }\n // unexpected error.\n\n throw new Error(response?.data ?? error);\n },\n );\n\n instance.defaults.paramsSerializer = {\n encode: params => encodeURIComponent(params),\n };\n\n return instance;\n};\n"]}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/transports/http.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, { AxiosResponse } from 'axios';\nimport HttpAgent, { HttpsAgent } from 'agentkeepalive';\n\nimport { ASCError } from '~/core/errors';\n\nimport { fireEvent } from '../events';\nimport { unwrapPayload } from './utils';\nimport NetworkActivitiesWatcher from '~/client/utils/NetworkActivitiesWatcher';\n\n/*\n * Defined here as transport is a private module. Also, outside of this module\n * this enum holds no meaning.\n *\n * @private (exported for testing)\n */\nexport enum RequestCancelation {\n UserDeleted = 'User Deleted',\n UserGlobalBanned = 'User Global Banned',\n TokenExpired = 'Token Expired',\n}\n/*\n * Axios no longer supports `cancelToken`, since v0.22.0, and is marked as\n * deprecated. The doc asks to use the abort controller that fetch uses instead\n *\n * More Info:\n * https://axios-http.com/docs/cancellation\n */\nconst controller = new AbortController();\n\n/**\n * Handle Request Cancellation\n *\n * @param cancel Reason for cancelation\n *\n * @category Transport Util\n * @hidden\n */\nconst handleRequestCancelation = (cancel: RequestCancelation) => {\n switch (cancel) {\n case RequestCancelation.UserGlobalBanned:\n /*\n * Note:\n * Firing a virtual event (fireEvent) is not required as the metadata in\n * the request (isGlobalBanned) is only true once the user has been banned\n * and the SDK has recieved a global ban event\n */\n throw new ASCError(cancel, Amity.ServerError.GLOBAL_BAN, Amity.ErrorLevel.FATAL);\n\n case RequestCancelation.UserDeleted:\n /*\n * Note:\n * Firing a virtual event (fireEvent) is not required. For same reason as\n * above. Only difference is that the event recieved is user deleted\n */\n throw new ASCError(cancel, Amity.ServerError.UNAUTHORIZED, Amity.ErrorLevel.FATAL);\n\n case RequestCancelation.TokenExpired:\n fireEvent('tokenExpired', Amity.SessionStates.TOKEN_EXPIRED);\n\n throw new ASCError(cancel, Amity.ClientError.TOKEN_EXPIRED, Amity.ErrorLevel.FATAL);\n\n default:\n throw new ASCError(\n 'Request Aborted',\n Amity.ClientError.UNKNOWN_ERROR,\n Amity.ErrorLevel.ERROR,\n );\n }\n};\n\n/**\n * Creates a pre-configured axios instance\n *\n * @param endpoint The ASC rest api server's URL\n * @returns A pre-configured axios instance\n *\n * @category Transport\n * @hidden\n */\nexport const createHttpTransport = (endpoint: string) => {\n const options = {\n maxSockets: 100,\n maxFreeSockets: 10,\n timeout: 60000,\n freeSocketTimeout: 30000,\n };\n\n const instance = axios.create({\n baseURL: endpoint,\n httpAgent: new HttpAgent(options),\n httpsAgent: new HttpsAgent(options),\n signal: controller.signal,\n /*\n * If paramSerializer is required, use the serialize option to stringify\n * params. The encode option will pass complex params as string only whereas\n * the serialize option will pass params in the format Record<string, any>\n *\n * For more details:\n * https://github.com/axios/axios#request-config\n */\n });\n\n instance.defaults.withCredentials = false;\n\n instance.interceptors.request.use(config => {\n // do not check expiration for token creation url\n if (config.url === '/api/v5/sessions') {\n return config;\n }\n\n // check global.ts for the extension of AxiosRequestConfig\n if (config.metadata) {\n const { tokenExpiry, isGlobalBanned, isUserDeleted } = config.metadata;\n\n if (isGlobalBanned) {\n controller.abort();\n handleRequestCancelation(RequestCancelation.UserGlobalBanned);\n }\n\n if (isUserDeleted) {\n controller.abort();\n handleRequestCancelation(RequestCancelation.UserDeleted);\n }\n\n if (tokenExpiry) {\n if (Date.now() >= Date.parse(tokenExpiry)) {\n controller.abort(RequestCancelation.UserDeleted);\n handleRequestCancelation(RequestCancelation.TokenExpired);\n }\n }\n }\n\n return config;\n });\n\n instance.interceptors.response.use(\n response => {\n const responseHeaders = new Headers();\n\n Object.entries(response.headers).forEach(([key, value]) => {\n if (typeof value === 'string') {\n responseHeaders.append(key, value);\n }\n });\n\n const url = (response.config.baseURL || '') + (response.config.url || '');\n const method = response.config.method?.toUpperCase();\n\n const requestInit: RequestInit = {\n method,\n headers: response.config.headers,\n };\n\n if (method !== 'GET' && method !== 'HEAD') {\n requestInit.body = response.config.data;\n }\n\n NetworkActivitiesWatcher.getInstance().setNetworkActivities(new Request(url, requestInit), {\n data: response.data,\n status: response.status,\n statusText: response.statusText,\n headers: responseHeaders,\n });\n\n return response;\n },\n error => {\n const { response } = error;\n\n // handle unauthorized request\n if (response?.data.code === Amity.ServerError.UNAUTHORIZED) {\n fireEvent('tokenTerminated', Amity.SessionStates.TERMINATED);\n }\n\n // if it's an error with status in the response payload,\n // then it's an expected error.\n if (response?.data?.status) {\n unwrapPayload(response?.data);\n }\n\n // as on request cancellation error is returned\n if (controller.signal.aborted) {\n throw error;\n }\n // unexpected error.\n\n throw new Error(response?.data ?? error);\n },\n );\n\n instance.defaults.paramsSerializer = {\n encode: params => encodeURIComponent(params),\n };\n\n return instance;\n};\n"]}
@@ -13,7 +13,7 @@
13
13
  * @async
14
14
  */
15
15
  export declare const getFile: {
16
- <T extends Amity.FileType = any>(fileId: Amity.File<any>['fileId']): Promise<Amity.Cached<Amity.File>>;
16
+ <T extends Amity.FileType = any>(fileId: Amity.File<T>["fileId"]): Promise<Amity.Cached<Amity.File>>;
17
17
  /**
18
18
  * ```js
19
19
  * import { getFile } from '@amityco/ts-sdk'
@@ -1 +1 @@
1
- {"version":3,"file":"getFile.d.ts","sourceRoot":"","sources":["../../../src/fileRepository/api/getFile.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO;6CACV,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAChC,QAAQ,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAmBpC;;;;;;;;;;;;OAYG;oBACwB,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS;CAhB1F,CAAC"}
1
+ {"version":3,"file":"getFile.d.ts","sourceRoot":"","sources":["../../../src/fileRepository/api/getFile.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO;uEAEjB,QAAQ,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAmBpC;;;;;;;;;;;;OAYG;oBACwB,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS;CAhB1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getFile.js","sourceRoot":"","sources":["../../../src/fileRepository/api/getFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;EAEE;AACF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,MAAiC,EACE,EAAE;IACrC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAEnC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAuB,iBAAiB,MAAM,EAAE,CAAC,CAAC;IAExF,uDAAuD;IACvD,yBAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,KAAK;QAAE,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjE,OAAO;QACL,IAAI;QACJ,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AACF,yBAAyB;AAEzB;;;;;;;;;;;;GAYG;AACH,OAAO,CAAC,OAAO,GAAG,CAAC,MAAiC,EAAwC,EAAE;IAC5F,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAE3C,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAE1B,MAAM,MAAM,GAAG,aAAa,CAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAElE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { getActiveClient } from '~/client/api';\n\nimport { pullFromCache } from '~/cache/api';\nimport { ingestInCache } from '~/cache/api/ingestInCache';\n\n/* begin_public_function\n id: file.get\n*/\n/**\n * ```js\n * import { getFile } from '@amityco/ts-sdk'\n * const file = await getFile('foo')\n * ```\n *\n * Fetches a {@link Amity.File} object\n *\n * @param fileId the ID of the {@link Amity.File} to fetch\n * @returns the associated {@link Amity.File} object\n *\n * @category File API\n * @async\n */\nexport const getFile = async <T extends Amity.FileType = any>(\n fileId: Amity.File<any>['fileId'],\n): Promise<Amity.Cached<Amity.File>> => {\n const client = getActiveClient();\n client.log('file/getFile', fileId);\n\n const { data } = await client.http.get<Amity.FilePayload<T>>(`/api/v3/files/${fileId}`);\n\n // API-FIX: backend bad serializer issue. it should be:\n // const { files } = data\n\n const cachedAt = client.cache && Date.now();\n if (client.cache) ingestInCache({ files: [data] }, { cachedAt });\n\n return {\n data,\n cachedAt,\n };\n};\n/* end_public_function */\n\n/**\n * ```js\n * import { getFile } from '@amityco/ts-sdk'\n * const file = getFile.locally('foo')\n * ```\n *\n * Fetches a {@link Amity.File} object from cache\n *\n * @param fileId the ID of the {@link Amity.File} to fetch\n * @returns the associated {@link Amity.File} object\n *\n * @category File API\n */\ngetFile.locally = (fileId: Amity.File<any>['fileId']): Amity.Cached<Amity.File> | undefined => {\n const client = getActiveClient();\n client.log('file/getFile.locally', fileId);\n\n if (!client.cache) return;\n\n const cached = pullFromCache<Amity.File>(['file', 'get', fileId]);\n\n if (!cached) return;\n\n return {\n data: cached.data,\n cachedAt: cached.cachedAt,\n };\n};\n"]}
1
+ {"version":3,"file":"getFile.js","sourceRoot":"","sources":["../../../src/fileRepository/api/getFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;EAEE;AACF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAC1B,MAA+B,EACI,EAAE;IACrC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAEnC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAuB,iBAAiB,MAAM,EAAE,CAAC,CAAC;IAExF,uDAAuD;IACvD,yBAAyB;IAEzB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,KAAK;QAAE,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEjE,OAAO;QACL,IAAI;QACJ,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AACF,yBAAyB;AAEzB;;;;;;;;;;;;GAYG;AACH,OAAO,CAAC,OAAO,GAAG,CAAC,MAAiC,EAAwC,EAAE;IAC5F,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAE3C,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO;IAE1B,MAAM,MAAM,GAAG,aAAa,CAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAElE,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { getActiveClient } from '~/client/api';\n\nimport { pullFromCache } from '~/cache/api';\nimport { ingestInCache } from '~/cache/api/ingestInCache';\n\n/* begin_public_function\n id: file.get\n*/\n/**\n * ```js\n * import { getFile } from '@amityco/ts-sdk'\n * const file = await getFile('foo')\n * ```\n *\n * Fetches a {@link Amity.File} object\n *\n * @param fileId the ID of the {@link Amity.File} to fetch\n * @returns the associated {@link Amity.File} object\n *\n * @category File API\n * @async\n */\nexport const getFile = async <T extends Amity.FileType = any>(\n fileId: Amity.File<T>['fileId'],\n): Promise<Amity.Cached<Amity.File>> => {\n const client = getActiveClient();\n client.log('file/getFile', fileId);\n\n const { data } = await client.http.get<Amity.FilePayload<T>>(`/api/v3/files/${fileId}`);\n\n // API-FIX: backend bad serializer issue. it should be:\n // const { files } = data\n\n const cachedAt = client.cache && Date.now();\n if (client.cache) ingestInCache({ files: [data] }, { cachedAt });\n\n return {\n data,\n cachedAt,\n };\n};\n/* end_public_function */\n\n/**\n * ```js\n * import { getFile } from '@amityco/ts-sdk'\n * const file = getFile.locally('foo')\n * ```\n *\n * Fetches a {@link Amity.File} object from cache\n *\n * @param fileId the ID of the {@link Amity.File} to fetch\n * @returns the associated {@link Amity.File} object\n *\n * @category File API\n */\ngetFile.locally = (fileId: Amity.File<any>['fileId']): Amity.Cached<Amity.File> | undefined => {\n const client = getActiveClient();\n client.log('file/getFile.locally', fileId);\n\n if (!client.cache) return;\n\n const cached = pullFromCache<Amity.File>(['file', 'get', fileId]);\n\n if (!cached) return;\n\n return {\n data: cached.data,\n cachedAt: cached.cachedAt,\n };\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { pullFromCache } from '~/cache/api';
1
+ import { pullFromCache } from '~/cache/api/pullFromCache';
2
2
  export const categoryLinkedObject = (category) => {
3
3
  return Object.assign(Object.assign({}, category), { get avatar() {
4
4
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"categoryLinkedObject.js","sourceRoot":"","sources":["../../../src/utils/linkedObject/categoryLinkedObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAgC,EAAkB,EAAE;IACvF,uCACK,QAAQ,KACX,IAAI,MAAM;;YACR,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAAE,OAAO,SAAS,CAAC;YAE7C,MAAM,MAAM,GAAG,MAAA,aAAa,CAAsB;gBAChD,MAAM;gBACN,KAAK;gBACL,GAAG,QAAQ,CAAC,YAAY,EAAE;aAC3B,CAAC,0CAAE,IAAI,CAAC;YAET,OAAO,MAAM,CAAC;QAChB,CAAC,IACD;AACJ,CAAC,CAAC","sourcesContent":["import { pullFromCache } from '~/cache/api';\n\nexport const categoryLinkedObject = (category: Amity.InternalCategory): Amity.Category => {\n return {\n ...category,\n get avatar(): Amity.File<'image'> | undefined {\n if (!category.avatarFileId) return undefined;\n\n const avatar = pullFromCache<Amity.File<'image'>>([\n 'file',\n 'get',\n `${category.avatarFileId}`,\n ])?.data;\n\n return avatar;\n },\n };\n};\n"]}
1
+ {"version":3,"file":"categoryLinkedObject.js","sourceRoot":"","sources":["../../../src/utils/linkedObject/categoryLinkedObject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,QAAgC,EAAkB,EAAE;IACvF,uCACK,QAAQ,KACX,IAAI,MAAM;;YACR,IAAI,CAAC,QAAQ,CAAC,YAAY;gBAAE,OAAO,SAAS,CAAC;YAE7C,MAAM,MAAM,GAAG,MAAA,aAAa,CAAsB;gBAChD,MAAM;gBACN,KAAK;gBACL,GAAG,QAAQ,CAAC,YAAY,EAAE;aAC3B,CAAC,0CAAE,IAAI,CAAC;YAET,OAAO,MAAM,CAAC;QAChB,CAAC,IACD;AACJ,CAAC,CAAC","sourcesContent":["import { pullFromCache } from '~/cache/api/pullFromCache';\n\nexport const categoryLinkedObject = (category: Amity.InternalCategory): Amity.Category => {\n return {\n ...category,\n get avatar(): Amity.File<'image'> | undefined {\n if (!category.avatarFileId) return undefined;\n\n const avatar = pullFromCache<Amity.File<'image'>>([\n 'file',\n 'get',\n `${category.avatarFileId}`,\n ])?.data;\n\n return avatar;\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"communityLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/communityLinkedObject.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,qBAAqB,cAAe,MAAM,iBAAiB,KAAG,MAAM,SAgDhF,CAAC"}
1
+ {"version":3,"file":"communityLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/communityLinkedObject.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,qBAAqB,cAAe,MAAM,iBAAiB,KAAG,MAAM,SAyDhF,CAAC"}
@@ -1,11 +1,22 @@
1
+ import { pullFromCache } from '~/cache/api/pullFromCache';
1
2
  import { getMyJoinRequest } from '~/communityRepository/internalAPI/getMyJoinRequest';
2
3
  import { joinRequest } from '~/communityRepository/internalAPI/joinCommunity';
3
4
  import { getJoinRequests } from '~/communityRepository/observers/getJoinRequests';
4
5
  import { createInvitations } from '~/invitationRepository/internalApi';
5
6
  import { getInvitation } from '~/invitationRepository/internalApi/getInvitation';
6
7
  import { getInvitations } from '~/invitationRepository/observers/getInvitations';
8
+ import { categoryLinkedObject } from './categoryLinkedObject';
7
9
  export const communityLinkedObject = (community) => {
8
- return Object.assign(Object.assign({}, community), { createInvitations: async (userIds) => {
10
+ return Object.assign(Object.assign({}, community), { get categories() {
11
+ return community.categoryIds
12
+ .map(categoryId => {
13
+ const cacheData = pullFromCache(['category', 'get', categoryId]);
14
+ if (cacheData === null || cacheData === void 0 ? void 0 : cacheData.data)
15
+ return categoryLinkedObject(cacheData.data);
16
+ return undefined;
17
+ })
18
+ .filter(category => !!category);
19
+ }, createInvitations: async (userIds) => {
9
20
  await createInvitations({
10
21
  type: "communityMemberInvite" /* InvitationTypeEnum.CommunityMemberInvite */,
11
22
  targetType: 'community',
@@ -1 +1 @@
1
- {"version":3,"file":"communityLinkedObject.js","sourceRoot":"","sources":["../../../src/utils/linkedObject/communityLinkedObject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,kDAAkD,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAEjF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAkC,EAAmB,EAAE;IAC3F,uCACK,SAAS,KACZ,iBAAiB,EAAE,KAAK,EAAE,OAAiB,EAAiB,EAAE;YAC5D,MAAM,iBAAiB,CAAC;gBACtB,IAAI,wEAA0C;gBAC9C,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE,SAAS,CAAC,WAAW;gBAC/B,OAAO;aACR,CAAC,CAAC;QACL,CAAC,EACD,oBAAoB,EAAE,CACpB,MAA6E,EAC7E,QAAwD,EACpC,EAAE;YACtB,OAAO,cAAc,iCAEd,MAAM,KACT,QAAQ,EAAE,SAAS,CAAC,WAAW,EAC/B,UAAU,EAAE,WAAW,EACvB,IAAI,6EAEN,QAAQ,CACT,CAAC;QACJ,CAAC,EACD,aAAa,EAAE,KAAK,IAAI,EAAE;YACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC,EACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,EAEpD,eAAe,EAAE,CACf,MAAmD,EACnD,QAAyD,EACrC,EAAE;YACtB,OAAO,eAAe,iCAEf,MAAM,KACT,WAAW,EAAE,SAAS,CAAC,WAAW,KAEpC,QAAQ,CACT,CAAC;QACJ,CAAC,EACD,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC,IACD;AACJ,CAAC,CAAC","sourcesContent":["import { InvitationTypeEnum } from '~/@types';\nimport { getMyJoinRequest } from '~/communityRepository/internalAPI/getMyJoinRequest';\nimport { joinRequest } from '~/communityRepository/internalAPI/joinCommunity';\nimport { getJoinRequests } from '~/communityRepository/observers/getJoinRequests';\nimport { createInvitations } from '~/invitationRepository/internalApi';\nimport { getInvitation } from '~/invitationRepository/internalApi/getInvitation';\nimport { getInvitations } from '~/invitationRepository/observers/getInvitations';\n\nexport const communityLinkedObject = (community: Amity.InternalCommunity): Amity.Community => {\n return {\n ...community,\n createInvitations: async (userIds: string[]): Promise<void> => {\n await createInvitations({\n type: InvitationTypeEnum.CommunityMemberInvite,\n targetType: 'community',\n targetId: community.communityId,\n userIds,\n });\n },\n getMemberInvitations: (\n params: Pick<Amity.InvitationLiveCollection, 'limit' | 'sortBy' | 'statuses'>,\n callback: Amity.LiveCollectionCallback<Amity.Invitation>,\n ): Amity.Unsubscriber => {\n return getInvitations(\n {\n ...params,\n targetId: community.communityId,\n targetType: 'community',\n type: InvitationTypeEnum.CommunityMemberInvite,\n },\n callback,\n );\n },\n getInvitation: async () => {\n const { data } = await getInvitation('community', community.communityId);\n return data;\n },\n join: async () => joinRequest(community.communityId),\n\n getJoinRequests: (\n params: Omit<Amity.QueryJoinRequest, 'communityId'>,\n callback: Amity.LiveCollectionCallback<Amity.JoinRequest>,\n ): Amity.Unsubscriber => {\n return getJoinRequests(\n {\n ...params,\n communityId: community.communityId,\n },\n callback,\n );\n },\n getMyJoinRequest: async () => {\n const { data } = await getMyJoinRequest(community.communityId);\n return data;\n },\n };\n};\n"]}
1
+ {"version":3,"file":"communityLinkedObject.js","sourceRoot":"","sources":["../../../src/utils/linkedObject/communityLinkedObject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,iDAAiD,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,kDAAkD,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAkC,EAAmB,EAAE;IAC3F,uCACK,SAAS,KACZ,IAAI,UAAU;YACZ,OAAO,SAAS,CAAC,WAAW;iBACzB,GAAG,CAAC,UAAU,CAAC,EAAE;gBAChB,MAAM,SAAS,GAAG,aAAa,CAAiB,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;gBACjF,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI;oBAAE,OAAO,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjE,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;iBACD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,EACD,iBAAiB,EAAE,KAAK,EAAE,OAAiB,EAAiB,EAAE;YAC5D,MAAM,iBAAiB,CAAC;gBACtB,IAAI,wEAA0C;gBAC9C,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE,SAAS,CAAC,WAAW;gBAC/B,OAAO;aACR,CAAC,CAAC;QACL,CAAC,EACD,oBAAoB,EAAE,CACpB,MAA6E,EAC7E,QAAwD,EACpC,EAAE;YACtB,OAAO,cAAc,iCAEd,MAAM,KACT,QAAQ,EAAE,SAAS,CAAC,WAAW,EAC/B,UAAU,EAAE,WAAW,EACvB,IAAI,6EAEN,QAAQ,CACT,CAAC;QACJ,CAAC,EACD,aAAa,EAAE,KAAK,IAAI,EAAE;YACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC,EACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,EAEpD,eAAe,EAAE,CACf,MAAmD,EACnD,QAAyD,EACrC,EAAE;YACtB,OAAO,eAAe,iCAEf,MAAM,KACT,WAAW,EAAE,SAAS,CAAC,WAAW,KAEpC,QAAQ,CACT,CAAC;QACJ,CAAC,EACD,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC,IACD;AACJ,CAAC,CAAC","sourcesContent":["import { InvitationTypeEnum } from '~/@types';\nimport { pullFromCache } from '~/cache/api/pullFromCache';\nimport { getMyJoinRequest } from '~/communityRepository/internalAPI/getMyJoinRequest';\nimport { joinRequest } from '~/communityRepository/internalAPI/joinCommunity';\nimport { getJoinRequests } from '~/communityRepository/observers/getJoinRequests';\nimport { createInvitations } from '~/invitationRepository/internalApi';\nimport { getInvitation } from '~/invitationRepository/internalApi/getInvitation';\nimport { getInvitations } from '~/invitationRepository/observers/getInvitations';\nimport { categoryLinkedObject } from './categoryLinkedObject';\n\nexport const communityLinkedObject = (community: Amity.InternalCommunity): Amity.Community => {\n return {\n ...community,\n get categories(): Amity.Category[] {\n return community.categoryIds\n .map(categoryId => {\n const cacheData = pullFromCache<Amity.Category>(['category', 'get', categoryId]);\n if (cacheData?.data) return categoryLinkedObject(cacheData.data);\n return undefined;\n })\n .filter(category => !!category);\n },\n createInvitations: async (userIds: string[]): Promise<void> => {\n await createInvitations({\n type: InvitationTypeEnum.CommunityMemberInvite,\n targetType: 'community',\n targetId: community.communityId,\n userIds,\n });\n },\n getMemberInvitations: (\n params: Pick<Amity.InvitationLiveCollection, 'limit' | 'sortBy' | 'statuses'>,\n callback: Amity.LiveCollectionCallback<Amity.Invitation>,\n ): Amity.Unsubscriber => {\n return getInvitations(\n {\n ...params,\n targetId: community.communityId,\n targetType: 'community',\n type: InvitationTypeEnum.CommunityMemberInvite,\n },\n callback,\n );\n },\n getInvitation: async () => {\n const { data } = await getInvitation('community', community.communityId);\n return data;\n },\n join: async () => joinRequest(community.communityId),\n\n getJoinRequests: (\n params: Omit<Amity.QueryJoinRequest, 'communityId'>,\n callback: Amity.LiveCollectionCallback<Amity.JoinRequest>,\n ): Amity.Unsubscriber => {\n return getJoinRequests(\n {\n ...params,\n communityId: community.communityId,\n },\n callback,\n );\n },\n getMyJoinRequest: async () => {\n const { data } = await getMyJoinRequest(community.communityId);\n return data;\n },\n };\n};\n"]}