@amityco/ts-sdk 6.22.1-d1a3e66.0 → 6.23.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 (53) hide show
  1. package/.env +26 -26
  2. package/dist/@types/domains/channel.d.ts +1 -0
  3. package/dist/@types/domains/channel.d.ts.map +1 -1
  4. package/dist/channelRepository/api/getChannel.d.ts +1 -1
  5. package/dist/channelRepository/api/getChannel.d.ts.map +1 -1
  6. package/dist/channelRepository/api/getChannelByIds.d.ts +1 -1
  7. package/dist/channelRepository/api/getChannelByIds.d.ts.map +1 -1
  8. package/dist/channelRepository/api/markAsRead.d.ts +3 -1
  9. package/dist/channelRepository/api/markAsRead.d.ts.map +1 -1
  10. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberQueryStreamController.d.ts +2 -2
  11. package/dist/channelRepository/channelMembership/observers/getMembers/ChannelMemberQueryStreamController.d.ts.map +1 -1
  12. package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts +1 -1
  13. package/dist/channelRepository/events/onChannelMemberRoleAdded.d.ts.map +1 -1
  14. package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts +1 -1
  15. package/dist/channelRepository/events/onChannelMemberRoleRemoved.d.ts.map +1 -1
  16. package/dist/channelRepository/observers/getChannel.d.ts.map +1 -1
  17. package/dist/channelRepository/observers/getChannels/ChannelLiveCollectionController.d.ts.map +1 -1
  18. package/dist/channelRepository/observers/observeChannel.d.ts.map +1 -1
  19. package/dist/channelRepository/observers/observeChannels.d.ts.map +1 -1
  20. package/dist/core/liveCollection/LiveCollectionController.d.ts.map +1 -1
  21. package/dist/index.cjs.js +90 -59
  22. package/dist/index.esm.js +90 -59
  23. package/dist/index.umd.js +2 -2
  24. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts +35 -1
  25. package/dist/messagePreview/utils/getChannelMessagePreviewWithUser.d.ts.map +1 -1
  26. package/dist/subChannelRepository/observers/getSubChannel.d.ts.map +1 -1
  27. package/dist/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.d.ts.map +1 -1
  28. package/dist/utils/linkedObject/channelLinkedObject.d.ts +2 -0
  29. package/dist/utils/linkedObject/channelLinkedObject.d.ts.map +1 -0
  30. package/dist/utils/linkedObject/index.d.ts +1 -0
  31. package/dist/utils/linkedObject/index.d.ts.map +1 -1
  32. package/dist/utils/object.d.ts +1 -0
  33. package/dist/utils/object.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/src/@types/domains/channel.ts +1 -0
  36. package/src/channelRepository/api/getChannel.ts +1 -1
  37. package/src/channelRepository/api/getChannelByIds.ts +4 -3
  38. package/src/channelRepository/api/markAsRead.ts +6 -2
  39. package/src/channelRepository/channelMembership/observers/getMembers/ChannelMemberQueryStreamController.ts +5 -2
  40. package/src/channelRepository/events/onChannelMemberRoleAdded.ts +1 -1
  41. package/src/channelRepository/events/onChannelMemberRoleRemoved.ts +1 -1
  42. package/src/channelRepository/observers/getChannel.ts +6 -2
  43. package/src/channelRepository/observers/getChannels/ChannelLiveCollectionController.ts +3 -1
  44. package/src/channelRepository/observers/observeChannel.ts +15 -3
  45. package/src/channelRepository/observers/observeChannels.ts +8 -4
  46. package/src/communityRepository/communityMembership/events/utils.ts +2 -2
  47. package/src/core/liveCollection/LiveCollectionController.ts +4 -3
  48. package/src/messagePreview/utils/getChannelMessagePreviewWithUser.ts +5 -1
  49. package/src/subChannelRepository/observers/getSubChannel.ts +8 -4
  50. package/src/subChannelRepository/observers/getSubChannels/SubChannelLiveCollectionController.ts +9 -6
  51. package/src/utils/linkedObject/channelLinkedObject.ts +8 -0
  52. package/src/utils/linkedObject/index.ts +2 -0
  53. package/src/utils/object.ts +15 -0
package/dist/index.esm.js CHANGED
@@ -82,8 +82,8 @@ const PostContentType = Object.freeze({
82
82
 
83
83
  function getVersion() {
84
84
  try {
85
- // the string ''v6.22.0-esm'' should be replaced by actual value by @rollup/plugin-replace
86
- return 'v6.22.0-esm';
85
+ // the string ''v6.23.0-esm'' should be replaced by actual value by @rollup/plugin-replace
86
+ return 'v6.23.0-esm';
87
87
  }
88
88
  catch (error) {
89
89
  return '__dev__';
@@ -21751,6 +21751,45 @@ const reactorLinkedObject = (reactor) => {
21751
21751
  } });
21752
21752
  };
21753
21753
 
21754
+ /**
21755
+ * ```js
21756
+ * import { ChannelRepository } from '@amityco/ts-sdk'
21757
+ * const success = await ChannelRepository.markAsRead('channelId')
21758
+ * ```
21759
+ *
21760
+ * @deprecated Please use the {@link Amity.Channel.markAsRead} method instead
21761
+ *
21762
+ * Updating all {@link Amity.SubChannel} in specify {@link Amity.Channel} as read
21763
+ *
21764
+ * @param channelId the ID of to specify {@link Amity.Channel}
21765
+ * @returns A success boolean if the {@link Amity.Channel} was mark read
21766
+ *
21767
+ * @category Channel API
21768
+ * @async
21769
+ */
21770
+ const markAsRead = async (channelId) => {
21771
+ const client = getActiveClient();
21772
+ client.log('channel/markAsRead', channelId);
21773
+ const { data } = await client.http.put(`/api/v1/markers/channels/${channelId}/mark-read`);
21774
+ const { userMarkers, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
21775
+ const cachedAt = client.cache && Date.now();
21776
+ const channelMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
21777
+ const subChannelMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
21778
+ if (client.cache)
21779
+ ingestInCache(Object.assign({ userMarkers, userEntityMarkers: channelMarkers, userFeedMarkers: subChannelMarkers }, rest), { cachedAt });
21780
+ fireEvent('local.channelMarker.updated', {
21781
+ userEntityMarkers: channelMarkers,
21782
+ });
21783
+ fireEvent('local.subChannelMarker.updated', {
21784
+ userFeedMarkers: subChannelMarkers,
21785
+ });
21786
+ return true;
21787
+ };
21788
+
21789
+ const channelLinkedObject = (channel) => {
21790
+ return Object.assign(Object.assign({}, channel), { markAsRead: () => markAsRead(channel.channelInternalId) });
21791
+ };
21792
+
21754
21793
  const LinkedObject = {
21755
21794
  comment: commentLinkedObject,
21756
21795
  post: postLinkedObject,
@@ -21760,6 +21799,7 @@ const LinkedObject = {
21760
21799
  storyTarget: storyTargetLinkedObject,
21761
21800
  message: messageLinkedObject,
21762
21801
  reactor: reactorLinkedObject,
21802
+ channel: channelLinkedObject,
21763
21803
  };
21764
21804
 
21765
21805
  const getChannelMessagePreviewWithUser = (channel) => {
@@ -22314,7 +22354,7 @@ const getChannelByIds = async (channelIds) => {
22314
22354
  ingestInCache(data, { cachedAt });
22315
22355
  fireEvent('local.channel.fetched', data.channels);
22316
22356
  return {
22317
- data: data.channels,
22357
+ data: data.channels.map(channel => LinkedObject.channel(channel)),
22318
22358
  cachedAt,
22319
22359
  };
22320
22360
  };
@@ -22345,7 +22385,7 @@ getChannelByIds.locally = (channelIds) => {
22345
22385
  const channels = cached.map(({ data }) => data);
22346
22386
  const oldest = (_b = cached.sort((a, b) => (a.cachedAt < b.cachedAt ? -1 : 1))) === null || _b === void 0 ? void 0 : _b[0];
22347
22387
  return {
22348
- data: channels,
22388
+ data: channels.map(channel => LinkedObject.channel(channel)),
22349
22389
  cachedAt: oldest.cachedAt,
22350
22390
  };
22351
22391
  };
@@ -25366,6 +25406,18 @@ const convertGetterPropsToStatic = (obj) => {
25366
25406
  return [key, value];
25367
25407
  });
25368
25408
  return Object.fromEntries(entries);
25409
+ };
25410
+ const removeFunctionProperties = (obj) => {
25411
+ if (!isObject(obj)) {
25412
+ return obj;
25413
+ }
25414
+ const entries = Object.entries(obj).map(([key, value]) => {
25415
+ if (typeof value === 'function') {
25416
+ return [key, undefined];
25417
+ }
25418
+ return [key, value];
25419
+ });
25420
+ return Object.fromEntries(entries);
25369
25421
  };
25370
25422
 
25371
25423
  /**
@@ -29989,39 +30041,6 @@ const unmuteChannel = async (channelId) => {
29989
30041
  };
29990
30042
  /* end_public_function */
29991
30043
 
29992
- /**
29993
- * ```js
29994
- * import { ChannelRepository } from '@amityco/ts-sdk'
29995
- * const success = await ChannelRepository.markAsRead('channelId')
29996
- * ```
29997
- *
29998
- * Updating all {@link Amity.SubChannel} in specify {@link Amity.Channel} as read
29999
- *
30000
- * @param channelId the ID of to specify {@link Amity.Channel}
30001
- * @returns A success boolean if the {@link Amity.Channel} was mark read
30002
- *
30003
- * @category Channel API
30004
- * @async
30005
- */
30006
- const markAsRead = async (channelId) => {
30007
- const client = getActiveClient();
30008
- client.log('channel/markAsRead', channelId);
30009
- const { data } = await client.http.put(`/api/v1/markers/channels/${channelId}/mark-read`);
30010
- const { userMarkers, userEntityMarkers: userEntityMarkersPayload, userFeedMarkers: userFeedMarkersPayload } = data, rest = __rest(data, ["userMarkers", "userEntityMarkers", "userFeedMarkers"]);
30011
- const cachedAt = client.cache && Date.now();
30012
- const channelMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
30013
- const subChannelMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
30014
- if (client.cache)
30015
- ingestInCache(Object.assign({ userMarkers, userEntityMarkers: channelMarkers, userFeedMarkers: subChannelMarkers }, rest), { cachedAt });
30016
- fireEvent('local.channelMarker.updated', {
30017
- userEntityMarkers: channelMarkers,
30018
- });
30019
- fireEvent('local.subChannelMarker.updated', {
30020
- userFeedMarkers: subChannelMarkers,
30021
- });
30022
- return true;
30023
- };
30024
-
30025
30044
  const convertEventPayload = (eventHandler, sourceModelProp, destinationDomain) => (callback) => eventHandler(sourceModel => {
30026
30045
  var _a;
30027
30046
  if (!sourceModel) {
@@ -30061,10 +30080,10 @@ const observeChannel = (channelId, callback) => {
30061
30080
  if (((_a = result.data) === null || _a === void 0 ? void 0 : _a.channelId) !== channelId)
30062
30081
  return;
30063
30082
  if (callback instanceof Function)
30064
- return callback(result);
30083
+ return callback(Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
30065
30084
  if (action !== 'onFetch')
30066
- (_b = callback.onEvent) === null || _b === void 0 ? void 0 : _b.call(callback, action, result);
30067
- (_c = callback[action]) === null || _c === void 0 ? void 0 : _c.call(callback, result);
30085
+ (_b = callback.onEvent) === null || _b === void 0 ? void 0 : _b.call(callback, action, Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
30086
+ (_c = callback[action]) === null || _c === void 0 ? void 0 : _c.call(callback, Object.assign(Object.assign({}, result), { data: LinkedObject.channel(result.data) }));
30068
30087
  };
30069
30088
  const disposers = [];
30070
30089
  disposers.push(onChannelUpdated(data => router({ data, loading: false, origin: 'event' }, "onUpdate" /* Amity.ChannelActionType.OnUpdate */)), onChannelDeleted(data => router({ data, loading: false, origin: 'event' }, "onDelete" /* Amity.ChannelActionType.OnDelete */)), onChannelJoined(data => router({ data, loading: false, origin: 'event' }, "onJoin" /* Amity.ChannelActionType.OnJoin */)), onChannelLeft(data => router({ data, loading: false, origin: 'event' }, "onLeft" /* Amity.ChannelActionType.OnLeft */)), onChannelMuted(data => router({ data, loading: false, origin: 'event' }, "onMute" /* Amity.ChannelActionType.OnMute */)), onChannelMemberAdded(data => router({ data, loading: false, origin: 'event' }, "onMemberAdded" /* Amity.ChannelActionType.OnMemberAdded */)), onChannelMemberRemoved(data => router({ data, loading: false, origin: 'event' }, "onMemberRemoved" /* Amity.ChannelActionType.OnMemberRemoved */)), convertEventPayload(onChannelMarkerFetched, 'entityId', 'channel')(data => router({ data, loading: false, origin: 'event' }, "onUpdate" /* Amity.ChannelActionType.OnUpdate */)));
@@ -30098,9 +30117,9 @@ const observeChannels = (callback) => {
30098
30117
  const router = (channel, action) => {
30099
30118
  var _a, _b;
30100
30119
  if (callback instanceof Function)
30101
- return callback(channel);
30102
- (_a = callback.onEvent) === null || _a === void 0 ? void 0 : _a.call(callback, action, channel);
30103
- (_b = callback[action]) === null || _b === void 0 ? void 0 : _b.call(callback, channel);
30120
+ return callback(LinkedObject.channel(channel));
30121
+ (_a = callback.onEvent) === null || _a === void 0 ? void 0 : _a.call(callback, action, LinkedObject.channel(channel));
30122
+ (_b = callback[action]) === null || _b === void 0 ? void 0 : _b.call(callback, LinkedObject.channel(channel));
30104
30123
  };
30105
30124
  disposers.push(onChannelCreated(data => router(data, "onCreate" /* Amity.ChannelActionType.OnCreate */)), onChannelUpdated(data => router(data, "onUpdate" /* Amity.ChannelActionType.OnUpdate */)), onChannelDeleted(data => router(data, "onDelete" /* Amity.ChannelActionType.OnDelete */)), onChannelJoined(data => router(data, "onJoin" /* Amity.ChannelActionType.OnJoin */)), onChannelLeft(data => router(data, "onLeft" /* Amity.ChannelActionType.OnLeft */)), onChannelMuted(data => router(data, "onMute" /* Amity.ChannelActionType.OnMute */)), onChannelMemberAdded(data => router(data, "onMemberAdded" /* Amity.ChannelActionType.OnMemberAdded */)), onChannelMemberRemoved(data => router(data, "onMemberRemoved" /* Amity.ChannelActionType.OnMemberRemoved */)), convertEventPayload(onChannelMarkerFetched, 'entityId', 'channel')(data => router(data, "onUpdate" /* Amity.ChannelActionType.OnUpdate */)));
30106
30125
  return () => {
@@ -31506,9 +31525,10 @@ class LiveCollectionController {
31506
31525
  }
31507
31526
  }
31508
31527
  shouldNotify(data) {
31509
- if (isEqual(this.snapshot, data))
31528
+ const newData = data.map(convertGetterPropsToStatic).map(removeFunctionProperties);
31529
+ if (isEqual(this.snapshot, newData))
31510
31530
  return false;
31511
- this.snapshot = data.map(payload => convertGetterPropsToStatic(payload));
31531
+ this.snapshot = newData;
31512
31532
  return true;
31513
31533
  }
31514
31534
  getCacheKey() {
@@ -31947,9 +31967,11 @@ const getSubChannel = (subChannelId, callback) => {
31947
31967
  updateSubChannelCache(message.subChannelId, subChannel, {
31948
31968
  messagePreviewId: message.messageId,
31949
31969
  });
31950
- callback(message);
31951
31970
  };
31952
- return onMessageCreatedMqtt(updateMessagePreview);
31971
+ return onMessageCreatedMqtt(async (message) => {
31972
+ await updateMessagePreview(message);
31973
+ callback(message);
31974
+ });
31953
31975
  }, 'subChannelId', 'subChannel'),
31954
31976
  convertEventPayload((callback) => {
31955
31977
  const updateMessagePreview = async (message) => {
@@ -31970,9 +31992,11 @@ const getSubChannel = (subChannelId, callback) => {
31970
31992
  updateSubChannelCache(message.subChannelId, subChannel, {
31971
31993
  messagePreviewId: message.messageId,
31972
31994
  });
31973
- callback(message);
31974
31995
  };
31975
- return onMessageCreatedLocal(updateMessagePreview);
31996
+ return onMessageCreatedLocal(async (message) => {
31997
+ await updateMessagePreview(message);
31998
+ callback(message);
31999
+ });
31976
32000
  }, 'subChannelId', 'subChannel'),
31977
32001
  convertEventPayload((callback) => {
31978
32002
  const updateMessagePreview = async (message) => {
@@ -32138,6 +32162,13 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
32138
32162
  },
32139
32163
  {
32140
32164
  fn: callback => {
32165
+ const updateMessagePreview = async (message) => {
32166
+ const client = getActiveClient();
32167
+ const messagePreviewSetting = await client.getMessagePreviewSetting(false);
32168
+ if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
32169
+ return;
32170
+ handleMessageCreated(message);
32171
+ };
32141
32172
  return onMessageCreatedMqtt(async (message) => {
32142
32173
  var _a, _b;
32143
32174
  const cacheData = pullFromCache([
@@ -32150,11 +32181,7 @@ class SubChannelLiveCollectionController extends LiveCollectionController {
32150
32181
  const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
32151
32182
  if (!collection || !collection.data.includes(message.subChannelId))
32152
32183
  return;
32153
- const client = getActiveClient();
32154
- const messagePreviewSetting = await client.getMessagePreviewSetting(false);
32155
- if (messagePreviewSetting === "no-message-preview" /* Amity.MessagePreviewSetting.NO_MESSAGE_PREVIEW */)
32156
- return;
32157
- handleMessageCreated(message);
32184
+ await updateMessagePreview(message);
32158
32185
  const subChannelCache = (_b = pullFromCache([
32159
32186
  'subChannel',
32160
32187
  'get',
@@ -32454,7 +32481,7 @@ const getChannel = (channelId, callback) => {
32454
32481
  const reactor = async (response) => {
32455
32482
  if (!response.data)
32456
32483
  return callback(response);
32457
- const data = Object.assign(Object.assign({}, response), { data: getChannelMessagePreviewWithUser(response.data) });
32484
+ const data = Object.assign(Object.assign({}, response), { data: LinkedObject.channel(getChannelMessagePreviewWithUser(response.data)) });
32458
32485
  const newSnapshot = __rest(data, ["origin"]);
32459
32486
  /**
32460
32487
  * check equality of previous data and current data to avoid redundancy
@@ -32496,7 +32523,10 @@ const getChannel = (channelId, callback) => {
32496
32523
  });
32497
32524
  callback(message);
32498
32525
  };
32499
- return onMessageCreatedMqtt(updateMessagePreview);
32526
+ return onMessageCreatedMqtt(async (message) => {
32527
+ await updateMessagePreview(message);
32528
+ callback(message);
32529
+ });
32500
32530
  }, 'channelId', 'channel'),
32501
32531
  convertEventPayload((callback) => {
32502
32532
  const updateMessagePreview = async (message) => {
@@ -32788,7 +32818,8 @@ class ChannelLiveCollectionController extends LiveCollectionController {
32788
32818
  .map(channelId => pullFromCache(['channel', 'get', channelId]))
32789
32819
  .filter(Boolean)
32790
32820
  .map(({ data }) => data)
32791
- .map(getChannelMessagePreviewWithUser)) !== null && _b !== void 0 ? _b : [];
32821
+ .map(getChannelMessagePreviewWithUser)
32822
+ .map(LinkedObject.channel)) !== null && _b !== void 0 ? _b : [];
32792
32823
  if (this.paginationController instanceof ChannelPaginationController) {
32793
32824
  data = this.applyFilter(data);
32794
32825
  }
@@ -34213,7 +34244,7 @@ function hasPermission(member, payload, permission) {
34213
34244
  return true;
34214
34245
  }
34215
34246
  return payload
34216
- .users.find(user => user.userId === member.userId)
34247
+ .communityUsers.find(user => user.userId === member.userId)
34217
34248
  .permissions.some(x => x === permission);
34218
34249
  }
34219
34250
  function getEventRelatedMember(event, payload) {
@@ -38316,7 +38347,7 @@ var index$2 = /*#__PURE__*/Object.freeze({
38316
38347
  getPoll: getPoll
38317
38348
  });
38318
38349
 
38319
- const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAARz+hmBgi8pJ\nQb8LeY41gtHhk+ACMwRfhsn7GqpqRQNG2qU0755mzZuVDUqjQMGSo8THJB7O+OJs\nflbZRkFXlFoFOVNw1UpNOgwEQZ6wB9oRwzepTJAfF1sVhm/o/ixvXh1zDFNDy6yZ\npXyiiJHUVxqyjllZhxnwdvjoVtDs6hW6awG09bB9nh/TTejlUKXoAgzqVwu/1QMu\nUVViET495elEe19aUarEy+oL2iKeXCEvqda/pWNBdbieFyJvvZ08HN8dPuT88wq2\njZLEAth1vrwQ2IAa4ktaLcBQdLJgIkrbDvAiVZ8lQAjS/bq5vXQikTGvoPlC5bbn\nvuOM/3eLAgMBAAECggEAVZ+peHAghq2QVj71nX5lxsNCKaCyYwixSJBpfouTt7Rz\nE6PpzMOXFi1W1o+I22jDakuSM2SOQKqI/u0QefB0r0O/KVk5NrZHXk0mkrdYtxOp\nUgaGyf8UvmjB+8VqHrNKyZdk9qtmbnNj01kTTcAtmE4H39zPR7eR/8Rul94vaZbs\nwCnKJS3mLT3JxyGug6lxanveKkjG+CKC1nJQYWaxCJxaFSzbwXQPvDhB+TvrIbee\npd5v4EAyEJohpr+T9oDGGJkb/KARBZCtwLyB976PKJwwBA8MRVL1i5QwawuMiMq5\nUtnOnbGKtCeFzaLbNU0Qi8bqyims84EQxC6DOu1fkQKBgQDdvsoBsEhsOXV7hlIJ\naEd0eSJZVkdqimxH8uGoMM2FeNaOrcB6yBXqTSP0R3OIyf8eaY6yjRvP30ZNXcll\n/gD3O1Mu6YmWQdt1W2WA6pKOsUuPXasf0pdOF7IiFZKlSabz5YHXFqwVuqm8loaj\nsXel3YWqPVdHiankE7tz+3ssnQKBgQDdqi4TNdD1MdEpihx19jr0QjUiXW3939FK\nqp30HESPEGDGQzXdmJgif9HhZb+cJSuWaHEbjgBrYahvgCF+y6LbEpOD+D/dmT+s\nDEAQaR84sah6dokwPjV8fjBSrcVFjCS+doxv0d3p/9OUEeyUhFrY03nxtIEYkLIE\n/Zvn37b4RwKBgQCLENVFe9XfsaVhQ5r9dV2iyTlmh7qgMZG5CbTFs12hQGhm8McO\n+Z7s41YSJCFr/yq1WwP4LJDtrBw99vyQr1zRsG35tNLp3gGRNzGQSQyC2uQFVHw2\np+7mNewsfhUK/gbrXNsyFnDz6635rPlhfbII3sWuP2wWXFqkxE9CbMwR7QKBgQC6\nawDMzxmo2/iYArrkyevSuEuPVxvFwpF1RgAI6C0QVCnPE38dmdN4UB7mfHekje4W\nVEercMURidPp0cxZolCYBQtilUjAyL0vqC3In1/Ogjq6oy3FEMxSop1pKxMY5j+Q\nnoqFD+6deLUrddeNH7J3X4LSr4dSbX4JjG+tlgt+yQKBgQCuwTL4hA6KqeInQ0Ta\n9VQX5Qr8hFlqJz1gpymi/k63tW/Ob8yedbg3WWNWyShwRMFYyY9S81ITFWM95uL6\nvF3x9rmRjwElJw9PMwVu6dmf/CO0Z1wzXSp2VVD12gbrUD/0/d7MUoJ9LgC8X8f/\nn0txLHYGHbx+nf95+JUg6lV3hg==\n-----END PRIVATE KEY-----";
38350
+ const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHo80SecH7FuF2\nhFYnb+l26/VN8UMLXAQFLnxciNTEwkGVFMpdezlH8rU2HtUJL4RETogbAOLVY0XM\njs6sPn8G1nALmh9qeDpUtVqFOVtBHxEZ910TLOtQiunjqJKO5nWdqZ71EC3OFluR\niGQkO84BiIFbv37ub7xl3S8XarbtKoLcyVpkDHi+1wx1pgCAn6gtBUgckPL5NR8j\nLseabl3HAXQfhTCKo4tmOFM2Dxwl1IUMmIJrJg/aIU/U0tj/1Eoo7mG0JcNWX19l\nW3EecCbi0ncCJOrkUdwlBrcjaMayaX/ubEwyUeTGiLdyc4L3GRLHjyK8xgVNXRMH\nbZWJ2a5NAgMBAAECggEASxuE+35zTFO/XydKgmvIGcWL9FbgMlXb7Vcf0nBoG945\nbiz0NVc2paraIhJXc608xbYF3qLmtAE1MVBI0ORyRdBHNxY024l/6H6SH60Ed+uI\nM4ysp5ourY6Vj+DLwpdRiI9YDjqYAQDIUmhNxJP7XPhOMoZI6st+xZQBM34ic/bv\nAMSJm9OZphSp3+qXVkFZztr2mxD2EZSJJLYxi8BCdgM2qhazalbcJ6zDKHCZWVWm\n8RRxDGldyMb/237JxETzP40tAlzOZDmBAbUgEnurDJ93RVDIE3rbZUshwgeQd18a\nem096mWgvB1AIKYgsTAR3pw+V19YWAjq/glP6fz8wQKBgQD/oQq+ukKF0PRgBeM5\ngeTjSwsdGppQLmf5ndujvoiz/TpdjDEPu6R8kigQr1rG2t4K/yfdZoI8RdmJD1al\n3Q7N9hofooSy4rj6E3txzWZCHJjHad2cnCp/O26HiReGAl7wTcfTmNdiFHhZQzm5\nJBkvWAiwuvQMNfEbnXxw6/vIDwKBgQDH7fX8gsc77JLvAWgp1MaQN/sbqVb6JeT1\nFQfR8E/WFCSmzQBtNzd5KgYuCeelwr/8DyYytvN2BzCYZXp73gI1jF3YlW5jVn74\nOY6TwQ095digwo6Z0yuxopdIOApKgAkL9PRKgNrqAf3NAyMua6lOGifzjDojC3KU\nfylQmxMn4wKBgHp2B9O/H0dEBw5JQ8W0+JX6yWQz7mEjGiR2/1W+XXb8hQ1zr709\nw1r6Gb+EghRpnZ3fBpYGGbYOMFx8wKHM+N6qW3F0ReX8v2juFGE8aRSa5oYBrWzt\nU16Idjbv8hj84cZ1PJmdyvDtpYn9rpWHOZl4rxEbPvbqkIsOMyNVqdT5AoGAOSge\nmwIIU2le2FVeohbibXiToWTYKMuMmURZ5/r72AgKMmWJKbAPe+Q3wBG01/7FRBpQ\noU8Ma0HC8s6QJbliiEyIx9JwrJWd1vkdecBHONrtA4ibm/5zD2WcOllLF+FitLhi\n3qnX6+6F0IaFGFBPJrTzlv0P4dTz/OAdv52V7GECgYEA2TttOKBAqWllgOaZOkql\nLVMJVmgR7s6tLi1+cEP8ZcapV9aRbRzTAKXm4f8AEhtlG9F9kCOvHYCYGi6JaiWJ\nZkHjeex3T+eE6Di6y5Bm/Ift5jtVhJ4jCVwHOKTMej79NPUFTJfv8hCo29haBDv6\nRXFrv+T21KCcw8k3sJeJWWQ=\n-----END PRIVATE KEY-----";
38320
38351
  /*
38321
38352
  * The crypto algorithm used for importing key and signing string
38322
38353
  */