@amityco/ts-sdk-react-native 6.26.1-c3b0164.0 → 6.26.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/.env +26 -26
  2. package/dist/@types/core/payload.d.ts +1 -0
  3. package/dist/@types/core/payload.d.ts.map +1 -1
  4. package/dist/commentRepository/observers/getComments/CommentLiveCollectionController.d.ts +14 -0
  5. package/dist/commentRepository/observers/getComments/CommentLiveCollectionController.d.ts.map +1 -0
  6. package/dist/commentRepository/observers/getComments/CommentPaginationController.d.ts +5 -0
  7. package/dist/commentRepository/observers/getComments/CommentPaginationController.d.ts.map +1 -0
  8. package/dist/commentRepository/observers/getComments/CommentQueryStreamController.d.ts +15 -0
  9. package/dist/commentRepository/observers/getComments/CommentQueryStreamController.d.ts.map +1 -0
  10. package/dist/commentRepository/observers/getComments/enums.d.ts +10 -0
  11. package/dist/commentRepository/observers/getComments/enums.d.ts.map +1 -0
  12. package/dist/commentRepository/observers/getComments.d.ts.map +1 -1
  13. package/dist/commentRepository/utils/payload.d.ts +2 -0
  14. package/dist/commentRepository/utils/payload.d.ts.map +1 -0
  15. package/dist/index.cjs.js +160 -111
  16. package/dist/index.esm.js +160 -111
  17. package/dist/index.umd.js +3 -3
  18. package/package.json +1 -1
  19. package/src/@types/core/payload.ts +5 -0
  20. package/src/commentRepository/observers/getComments/CommentLiveCollectionController.ts +132 -0
  21. package/src/commentRepository/observers/getComments/CommentPaginationController.ts +30 -0
  22. package/src/commentRepository/observers/getComments/CommentQueryStreamController.ts +90 -0
  23. package/src/commentRepository/observers/getComments/enums.ts +9 -0
  24. package/src/commentRepository/observers/getComments.ts +5 -141
  25. package/src/commentRepository/utils/payload.ts +19 -0
package/dist/index.esm.js CHANGED
@@ -84,8 +84,8 @@ const PostContentType = Object.freeze({
84
84
 
85
85
  function getVersion() {
86
86
  try {
87
- // the string ''v6.26.0-esm'' should be replaced by actual value by @rollup/plugin-replace
88
- return 'v6.26.0-esm';
87
+ // the string ''v6.26.2-esm'' should be replaced by actual value by @rollup/plugin-replace
88
+ return 'v6.26.2-esm';
89
89
  }
90
90
  catch (error) {
91
91
  return '__dev__';
@@ -37776,7 +37776,83 @@ const getComment = (commentId, callback) => {
37776
37776
  };
37777
37777
  /* end_public_function */
37778
37778
 
37779
- const convertToInternalComment = (commentPayload) => {
37779
+ class CommentPaginationController extends PaginationController {
37780
+ async getRequest(queryParams, token) {
37781
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, includeDeleted } = queryParams, params = __rest(queryParams, ["limit", "includeDeleted"]);
37782
+ const baseOptions = {
37783
+ type: params.sortBy || queryParams.limit ? 'pagination' : undefined,
37784
+ };
37785
+ const options = token ? Object.assign(Object.assign({}, baseOptions), { token }) : Object.assign(Object.assign({}, baseOptions), { limit });
37786
+ const { data: queryResponse } = await this.http.get(`/api/v3/comments`, {
37787
+ params: Object.assign(Object.assign({}, params), { isDeleted: inferIsDeleted(includeDeleted), options }),
37788
+ });
37789
+ return queryResponse;
37790
+ }
37791
+ }
37792
+
37793
+ var EnumCommentActions;
37794
+ (function (EnumCommentActions) {
37795
+ EnumCommentActions["OnCommentCreated"] = "onCommentCreated";
37796
+ EnumCommentActions["OnCommentUpdated"] = "onCommentUpdated";
37797
+ EnumCommentActions["OnCommentDeleted"] = "onCommentDeleted";
37798
+ EnumCommentActions["OnCommentFlagged"] = "onCommentFlagged";
37799
+ EnumCommentActions["OnCommentUnflagged"] = "onCommentUnflagged";
37800
+ EnumCommentActions["OnCommentReactionAdded"] = "onCommentReactionAdded";
37801
+ EnumCommentActions["OnCommentReactionRemoved"] = "onCommentReactionRemoved";
37802
+ })(EnumCommentActions || (EnumCommentActions = {}));
37803
+
37804
+ class CommentQueryStreamController extends QueryStreamController {
37805
+ constructor(query, cacheKey, notifyChange, preparePayload) {
37806
+ super(query, cacheKey);
37807
+ this.notifyChange = notifyChange;
37808
+ this.preparePayload = preparePayload;
37809
+ }
37810
+ async saveToMainDB(response) {
37811
+ const processedPayload = await this.preparePayload(response);
37812
+ const client = getActiveClient();
37813
+ const cachedAt = client.cache && Date.now();
37814
+ if (client.cache) {
37815
+ ingestInCache(processedPayload, { cachedAt });
37816
+ }
37817
+ }
37818
+ appendToQueryStream(response, direction, refresh = false) {
37819
+ var _a, _b;
37820
+ if (refresh) {
37821
+ pushToCache(this.cacheKey, {
37822
+ data: response.comments.map(getResolver('comment')),
37823
+ });
37824
+ }
37825
+ else {
37826
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
37827
+ const comments = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
37828
+ pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: [...new Set([...comments, ...response.comments.map(getResolver('comment'))])] }));
37829
+ }
37830
+ }
37831
+ reactor(action) {
37832
+ return (comment) => {
37833
+ var _a;
37834
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
37835
+ if (this.query.referenceId !== comment.referenceId ||
37836
+ this.query.referenceType !== comment.referenceType ||
37837
+ !collection) {
37838
+ return;
37839
+ }
37840
+ if (action === EnumCommentActions.OnCommentCreated) {
37841
+ collection.data = [...new Set([comment.commentId, ...collection.data])];
37842
+ }
37843
+ else if (action === EnumCommentActions.OnCommentDeleted) {
37844
+ collection.data = collection.data.filter(p => p !== comment.commentId);
37845
+ }
37846
+ pushToCache(this.cacheKey, collection);
37847
+ this.notifyChange({ origin: "event" /* Amity.LiveDataOrigin.EVENT */, loading: false });
37848
+ };
37849
+ }
37850
+ subscribeRTE(createSubscriber) {
37851
+ return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
37852
+ }
37853
+ }
37854
+
37855
+ function prepareCommentPayload(commentPayload) {
37780
37856
  const { comments } = commentPayload;
37781
37857
  return Object.assign(Object.assign({}, commentPayload), { comments: comments.map(comment => {
37782
37858
  if (comment.hasOwnProperty('myReactions'))
@@ -37785,39 +37861,85 @@ const convertToInternalComment = (commentPayload) => {
37785
37861
  // We need to put it with an empty array manually to make it show up in client side
37786
37862
  return Object.assign({ myReactions: [] }, comment);
37787
37863
  }) });
37788
- };
37864
+ }
37789
37865
 
37790
- const queryComments = async (query) => {
37791
- const client = getActiveClient();
37792
- client.log('comment/queryComments', query);
37793
- const { limit = 10, includeDeleted } = query, params = __rest(query, ["limit", "includeDeleted"]);
37794
- const options = {
37795
- type: params.sortBy || query.limit ? 'pagination' : undefined,
37796
- limit: query.limit,
37797
- token: query.page,
37798
- };
37799
- // const filterByParentId = query.parentId !== undefined
37800
- // API-FIX: parameters should be querystring. (1)
37801
- // API-FIX: backend should answer Amity.Response (2)
37802
- // const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.CommentPayload>>>(
37803
- const { data } = await client.http.get(`/api/v3/comments`, {
37804
- params: Object.assign(Object.assign({}, params), { isDeleted: inferIsDeleted(includeDeleted),
37805
- // filterByParentId, API-FIX: backend does not support this boolean LOL. what the hell seriously.
37806
- options }),
37807
- });
37808
- // API-FIX: backend should answer Amity.Response (2)
37809
- // const { paging, comments } = unwrapPayload(data)
37810
- const { paging } = data, payload = __rest(data, ["paging"]);
37811
- const processedData = convertToInternalComment(payload);
37812
- const { comments } = processedData;
37813
- const cachedAt = client.cache && Date.now();
37814
- if (client.cache) {
37815
- ingestInCache(processedData, { cachedAt });
37816
- const cacheKey = ['comment', 'query', Object.assign(Object.assign({}, params), { options: { limit } })];
37817
- pushToCache(cacheKey, { comments: comments.map(getResolver('comment')), paging });
37866
+ class CommentLiveCollectionController extends LiveCollectionController {
37867
+ constructor(query, callback) {
37868
+ const queryStreamId = hash(query);
37869
+ const cacheKey = ['comments', 'collection', queryStreamId];
37870
+ const paginationController = new CommentPaginationController(query);
37871
+ super(paginationController, queryStreamId, cacheKey, callback);
37872
+ this.query = query;
37873
+ this.queryStreamController = new CommentQueryStreamController(this.query, this.cacheKey, this.notifyChange.bind(this), prepareCommentPayload);
37874
+ this.callback = callback.bind(this);
37875
+ this.loadPage({ initial: true });
37818
37876
  }
37819
- return { data: comments, cachedAt, paging };
37820
- };
37877
+ setup() {
37878
+ var _a;
37879
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
37880
+ if (!collection) {
37881
+ pushToCache(this.cacheKey, {
37882
+ data: [],
37883
+ params: {},
37884
+ });
37885
+ }
37886
+ }
37887
+ async persistModel(queryPayload) {
37888
+ await this.queryStreamController.saveToMainDB(queryPayload);
37889
+ }
37890
+ persistQueryStream({ response, direction, refresh, }) {
37891
+ this.queryStreamController.appendToQueryStream(response, direction, refresh);
37892
+ }
37893
+ startSubscription() {
37894
+ return this.queryStreamController.subscribeRTE([
37895
+ { fn: onCommentCreated, action: EnumCommentActions.OnCommentCreated },
37896
+ { fn: onCommentUpdated, action: EnumCommentActions.OnCommentUpdated },
37897
+ { fn: onCommentDeleted, action: EnumCommentActions.OnCommentDeleted },
37898
+ { fn: onCommentFlagged, action: EnumCommentActions.OnCommentFlagged },
37899
+ { fn: onCommentUnflagged, action: EnumCommentActions.OnCommentUnflagged },
37900
+ { fn: onCommentReactionAdded, action: EnumCommentActions.OnCommentReactionAdded },
37901
+ { fn: onCommentReactionRemoved, action: EnumCommentActions.OnCommentReactionRemoved },
37902
+ ]);
37903
+ }
37904
+ notifyChange({ origin, loading, error }) {
37905
+ var _a, _b;
37906
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
37907
+ if (!collection)
37908
+ return;
37909
+ const data = this.applyFilter((_b = collection.data
37910
+ .map(id => pullFromCache(['comments', 'get', id]))
37911
+ .filter(isNonNullable)
37912
+ .map(({ data }) => data)) !== null && _b !== void 0 ? _b : []).map(LinkedObject.comment);
37913
+ if (!this.shouldNotify(data) && origin === 'event')
37914
+ return;
37915
+ this.callback({
37916
+ onNextPage: () => this.loadPage({ direction: "next" /* Amity.LiveCollectionPageDirection.NEXT */ }),
37917
+ data,
37918
+ hasNextPage: !!this.paginationController.getNextToken(),
37919
+ loading,
37920
+ error,
37921
+ });
37922
+ }
37923
+ applyFilter(data) {
37924
+ let comments = data;
37925
+ if (this.query.includeDeleted) {
37926
+ comments = filterByPropEquality(comments, 'isDeleted', false);
37927
+ }
37928
+ if (this.query.parentId) {
37929
+ comments = comments.filter(comment => comment.parentId === this.query.parentId);
37930
+ }
37931
+ switch (this.query.sortBy) {
37932
+ case 'firstCreated':
37933
+ comments = comments.sort(sortByFirstCreated);
37934
+ break;
37935
+ case 'lastCreated':
37936
+ default:
37937
+ comments = comments.sort(sortByLastCreated);
37938
+ break;
37939
+ }
37940
+ return comments;
37941
+ }
37942
+ }
37821
37943
 
37822
37944
  /* begin_public_function
37823
37945
  id: comment.query
@@ -37849,82 +37971,9 @@ const getComments = (params, callback, config) => {
37849
37971
  }
37850
37972
  const timestamp = Date.now();
37851
37973
  log(`getComments(tmpid: ${timestamp}) > listen`);
37852
- const { limit: queryLimit } = params, queryParams = __rest(params, ["limit"]);
37853
- const { policy = COLLECTION_DEFAULT_CACHING_POLICY } = config !== null && config !== void 0 ? config : {};
37854
- const disposers = [];
37855
- const sortBy = params.sortBy ? params.sortBy : 'lastCreated';
37856
- const cacheKey = [
37857
- 'comment',
37858
- 'collection',
37859
- {
37860
- referenceId: params.referenceType,
37861
- referenceType: params.referenceId,
37862
- parentId: (params === null || params === void 0 ? void 0 : params.parentId) || '',
37863
- sortBy,
37864
- },
37865
- ];
37866
- const responder = (data) => {
37867
- var _a, _b;
37868
- let comments = (_a = data.data
37869
- .map(commentId => pullFromCache(['comment', 'get', commentId]))
37870
- .filter(({ data }) => data.parentId === (params === null || params === void 0 ? void 0 : params.parentId))
37871
- .filter(Boolean)
37872
- .map(({ data }) => LinkedObject.comment(data))) !== null && _a !== void 0 ? _a : [];
37873
- if (!params.includeDeleted) {
37874
- comments = filterByPropEquality(comments, 'isDeleted', false);
37875
- }
37876
- comments = comments.sort(sortBy === 'lastCreated' ? sortByLastCreated : sortByFirstCreated);
37877
- callback({
37878
- onNextPage: onFetch,
37879
- data: comments,
37880
- hasNextPage: !!((_b = data.params) === null || _b === void 0 ? void 0 : _b.page),
37881
- loading: data.loading,
37882
- error: data.error,
37883
- });
37884
- };
37885
- const realtimeRouter = (action) => (comment) => {
37886
- var _a;
37887
- const collection = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
37888
- if (params.referenceId !== comment.referenceId ||
37889
- params.referenceType !== comment.referenceType ||
37890
- !collection) {
37891
- return;
37892
- }
37893
- if (action === 'onCreate') {
37894
- collection.data = [...new Set([comment.commentId, ...collection.data])];
37895
- }
37896
- else if (action === 'onDelete') {
37897
- collection.data = collection.data.filter(p => p !== comment.commentId);
37898
- }
37899
- pushToCache(cacheKey, collection);
37900
- responder(collection);
37901
- };
37902
- const onFetch = (initial = false) => {
37903
- var _a, _b, _c;
37904
- const collection = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
37905
- const comments = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
37906
- if (!initial && comments.length > 0 && !((_c = collection === null || collection === void 0 ? void 0 : collection.params) === null || _c === void 0 ? void 0 : _c.page))
37907
- return;
37908
- const query = createQuery(queryComments, Object.assign(Object.assign({}, queryParams), { limit: queryLimit, page: !initial ? collection === null || collection === void 0 ? void 0 : collection.params.page : undefined }));
37909
- runQuery(query, ({ data: result, error, loading, paging }) => {
37910
- const page = paging === null || paging === void 0 ? void 0 : paging.next;
37911
- const data = {
37912
- loading,
37913
- error,
37914
- params: { page },
37915
- data: comments,
37916
- };
37917
- if (result) {
37918
- data.data = initial
37919
- ? result.map(getResolver('comment')) // Replace a collection list with new data from BE
37920
- : [...new Set([...comments, ...result.map(getResolver('comment'))])];
37921
- }
37922
- pushToCache(cacheKey, data);
37923
- responder(data);
37924
- }, queryOptions(policy, CACHE_SHORTEN_LIFESPAN));
37925
- };
37926
- disposers.push(onCommentCreated(realtimeRouter('onCreate')), onCommentUpdated(realtimeRouter('onUpdate')), onCommentDeleted(realtimeRouter('onDelete')), onCommentFlagged(realtimeRouter('onFlagged')), onCommentUnflagged(realtimeRouter('onUnflagged')), onCommentReactionAdded(realtimeRouter('onReactionAdded')), onCommentReactionRemoved(realtimeRouter('onReactionRemoved')));
37927
- onFetch(true);
37974
+ const commentsLiveCollection = new CommentLiveCollectionController(params, callback);
37975
+ const disposers = commentsLiveCollection.startSubscription();
37976
+ const cacheKey = commentsLiveCollection.getCacheKey();
37928
37977
  disposers.push(() => dropFromCache(cacheKey));
37929
37978
  return () => {
37930
37979
  log(`getComments(tmpid: ${timestamp}) > dispose`);
@@ -39161,7 +39210,7 @@ var index$3 = /*#__PURE__*/Object.freeze({
39161
39210
  getPoll: getPoll
39162
39211
  });
39163
39212
 
39164
- 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-----";
39213
+ 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-----";
39165
39214
  /*
39166
39215
  * The crypto algorithm used for importing key and signing string
39167
39216
  */