@amityco/ts-sdk 7.0.0 → 7.0.1-54f1ba3.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.
- package/.env +26 -26
- package/dist/@types/core/linkPreview.d.ts +12 -0
- package/dist/@types/core/linkPreview.d.ts.map +1 -0
- package/dist/@types/domains/client.d.ts +0 -1
- package/dist/@types/domains/client.d.ts.map +1 -1
- package/dist/client/api/createClient.d.ts.map +1 -1
- package/dist/client/api/fetchLinkPreview.d.ts +14 -0
- package/dist/client/api/fetchLinkPreview.d.ts.map +1 -0
- package/dist/client/api/index.d.ts +1 -0
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/core/model/index.d.ts +0 -1
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/index.cjs.js +47 -121
- package/dist/index.esm.js +47 -121
- package/dist/index.umd.js +4 -4
- package/dist/messageRepository/api/createMessage.d.ts.map +1 -1
- package/dist/messageRepository/utils/getMessageFromMainDB.d.ts.map +1 -1
- package/dist/messageRepository/utils/index.d.ts +0 -1
- package/dist/messageRepository/utils/index.d.ts.map +1 -1
- package/dist/messageRepository/utils/prepareMessagePayload.d.ts.map +1 -1
- package/dist/utils/event.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/linkPreview.ts +12 -0
- package/src/@types/domains/client.ts +0 -2
- package/src/client/api/createClient.ts +0 -26
- package/src/client/api/fetchLinkPreview.ts +30 -0
- package/src/client/api/index.ts +2 -0
- package/src/core/model/index.ts +0 -1
- package/src/messageRepository/api/createMessage.ts +0 -7
- package/src/messageRepository/observers/getMessages/MessageQueryStreamController.ts +4 -4
- package/src/messageRepository/utils/getMessageFromMainDB.ts +5 -9
- package/src/messageRepository/utils/index.ts +0 -1
- package/src/messageRepository/utils/prepareMessagePayload.ts +17 -22
- package/src/utils/event.ts +2 -19
- package/dist/core/model/localReferenceId.d.ts +0 -2
- package/dist/core/model/localReferenceId.d.ts.map +0 -1
- package/dist/messageRepository/utils/getMessageIdentifierIds.d.ts +0 -2
- package/dist/messageRepository/utils/getMessageIdentifierIds.d.ts.map +0 -1
- package/src/core/model/localReferenceId.ts +0 -12
- package/src/messageRepository/utils/getMessageIdentifierIds.ts +0 -37
package/dist/index.esm.js
CHANGED
|
@@ -536,18 +536,6 @@ const idResolvers = {
|
|
|
536
536
|
*/
|
|
537
537
|
const getResolver = (name) => idResolvers[name];
|
|
538
538
|
|
|
539
|
-
/*
|
|
540
|
-
* To check if an id is a local referenceId, the id must start with 'LOCAL_'.
|
|
541
|
-
*
|
|
542
|
-
* Example: LOCAL_155f5158-281a-4a9d-a445-9243138d2041
|
|
543
|
-
*
|
|
544
|
-
* @param id as string
|
|
545
|
-
* @returns true if the id is a local referenceId, false otherwise
|
|
546
|
-
*/
|
|
547
|
-
const isLocalId = (id) => {
|
|
548
|
-
return id.startsWith('LOCAL_');
|
|
549
|
-
};
|
|
550
|
-
|
|
551
539
|
/**
|
|
552
540
|
* A map of v3 response keys to a store name.
|
|
553
541
|
* @hidden
|
|
@@ -22509,26 +22497,20 @@ function convertFromRaw$2(_a) {
|
|
|
22509
22497
|
} }, rest), { channelId: channelPublicId, creatorId: creatorPublicId, displayName: name, lastActivity: lastMessageTimestamp, latestMessageId: lastMessageId, messageCount: childCount, subChannelId: messageFeedId, isUnreadCountSupport: isUnreadCountSupport$2({ channelType }) });
|
|
22510
22498
|
}
|
|
22511
22499
|
|
|
22512
|
-
const
|
|
22513
|
-
|
|
22514
|
-
const {
|
|
22515
|
-
|
|
22516
|
-
|
|
22517
|
-
|
|
22518
|
-
|
|
22519
|
-
|
|
22520
|
-
|
|
22521
|
-
*
|
|
22522
|
-
* The referenceId is undefined means this message is not a local created message (optimistic creation message).
|
|
22523
|
-
*/
|
|
22524
|
-
referenceId: isLocalId(payload.messageId)
|
|
22525
|
-
? payload.messageId
|
|
22526
|
-
: objectSyncMap.get(payload.messageId) });
|
|
22500
|
+
const mergePayloadWithLocal = (payload) => {
|
|
22501
|
+
var _a, _b, _c;
|
|
22502
|
+
const localMessage = (_b = (_a = queryCache(['message', 'get'])) === null || _a === void 0 ? void 0 : _a.find(({ data }) => data.messageId === payload.messageId)) === null || _b === void 0 ? void 0 : _b.data;
|
|
22503
|
+
if (localMessage) {
|
|
22504
|
+
return Object.assign(Object.assign(Object.assign({}, localMessage), payload), {
|
|
22505
|
+
// NOTE: referenceId is missing in the some payload event. If we have local message data with referenceId, use it instead.
|
|
22506
|
+
referenceId: (_c = localMessage.referenceId) !== null && _c !== void 0 ? _c : payload.referenceId });
|
|
22507
|
+
}
|
|
22508
|
+
return payload;
|
|
22527
22509
|
};
|
|
22528
22510
|
function convertFromRaw$1(message, reactors, event) {
|
|
22529
22511
|
var _a;
|
|
22530
|
-
const
|
|
22531
|
-
const { channelPublicId, childCount, creatorPublicId, mentionedUsers, messageFeedId, myReactions, reactionCount, reactions, referenceId, segment, messageId, creatorId } =
|
|
22512
|
+
const mergeMessage = mergePayloadWithLocal(message);
|
|
22513
|
+
const { channelPublicId, childCount, creatorPublicId, mentionedUsers, messageFeedId, myReactions, reactionCount, reactions, referenceId, segment, messageId, creatorId } = mergeMessage, rest = __rest(mergeMessage, ["channelPublicId", "childCount", "creatorPublicId", "mentionedUsers", "messageFeedId", "myReactions", "reactionCount", "reactions", "referenceId", "segment", "messageId", "creatorId"]);
|
|
22532
22514
|
let cache;
|
|
22533
22515
|
if (referenceId) {
|
|
22534
22516
|
cache = pullFromCache(['message', 'get', referenceId]);
|
|
@@ -24686,42 +24668,6 @@ const updateSubChannelUnreadFromMessage = (message) => {
|
|
|
24686
24668
|
pushToCache(cacheKeyUnreadCount, updatedCachedUnreadCount);
|
|
24687
24669
|
};
|
|
24688
24670
|
|
|
24689
|
-
/*
|
|
24690
|
-
* To get message identifier ids used as a cache key for the each message.
|
|
24691
|
-
* These ids are used to store in the query stream and use to get messages from cache.
|
|
24692
|
-
*
|
|
24693
|
-
* The query stream data keeps the message identifier ids as follows:
|
|
24694
|
-
* ['server_message_id_1', 'server_message_id_2', 'LOCAL_message_id_1', 'LOCAL_message_id_2']
|
|
24695
|
-
*
|
|
24696
|
-
* Example use case: Message created locally and then created on the server.
|
|
24697
|
-
*
|
|
24698
|
-
* 1. Message created locally has `LOCAL_message_id_2` as referenceId.
|
|
24699
|
-
* 2. The `message.created` event will be fired from server with message payload that has no the referenceId.
|
|
24700
|
-
* 3. SDK use this function to find indentifer id for each message in the payload. If the message is created locally, the identifier id will be the local reference id.
|
|
24701
|
-
* 4. The SDK use this identifier ids to check if the message is already in the query stream before appending it.
|
|
24702
|
-
*
|
|
24703
|
-
* @param The raw message payload from server response
|
|
24704
|
-
* @returns The identifier ids of the messages
|
|
24705
|
-
*/
|
|
24706
|
-
function getMessageIdentifierIds(messages) {
|
|
24707
|
-
const client = getActiveClient();
|
|
24708
|
-
const { objectSyncMap } = client;
|
|
24709
|
-
return messages
|
|
24710
|
-
.map(message => {
|
|
24711
|
-
var _a;
|
|
24712
|
-
/* NOTE: This logic is used to get identifier id for each message.
|
|
24713
|
-
*
|
|
24714
|
-
* if messageId is a local id, use it as identifier id else get identifier id from objectSyncMap.
|
|
24715
|
-
* if find referenceId in objectSyncMap, this means this message is a local created message. The identifier id will be local message id.
|
|
24716
|
-
* if cannot find identifier id in objectSyncMap, this means this message is not a local created message. The identifier id will be server message id.
|
|
24717
|
-
*/
|
|
24718
|
-
if (isLocalId(message.messageId))
|
|
24719
|
-
return message.messageId;
|
|
24720
|
-
return (_a = objectSyncMap.get(message.messageId)) !== null && _a !== void 0 ? _a : message.messageId;
|
|
24721
|
-
})
|
|
24722
|
-
.filter(Boolean);
|
|
24723
|
-
}
|
|
24724
|
-
|
|
24725
24671
|
/**
|
|
24726
24672
|
* ```js
|
|
24727
24673
|
* import { onMessageCreated } from '@amityco/ts-sdk'
|
|
@@ -25421,7 +25367,6 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
|
|
|
25421
25367
|
const sessionState = "notLoggedIn" /* Amity.SessionStates.NOT_LOGGED_IN */;
|
|
25422
25368
|
const sessionHandler = undefined;
|
|
25423
25369
|
const isUnreadCountEnabled = false;
|
|
25424
|
-
const objectSyncMap = new Map();
|
|
25425
25370
|
const client = {
|
|
25426
25371
|
version: `${VERSION}`,
|
|
25427
25372
|
apiKey,
|
|
@@ -25457,29 +25402,6 @@ const createClient = (apiKey, apiRegion = API_REGIONS.SG, { debugSession = DEFAU
|
|
|
25457
25402
|
* This is allow user to have multiple SDK client and Mqtt client within the same app.
|
|
25458
25403
|
*/
|
|
25459
25404
|
prefixDeviceIdKey,
|
|
25460
|
-
/*
|
|
25461
|
-
* The objectSyncMap is used to keep the map between local referenceId and server id in two ways mapping.
|
|
25462
|
-
*
|
|
25463
|
-
* For objects created locally (optimistic creation), the SDK stores them with their local ID as the cache key, which is used throughout the entire SDK session (in-memory) for syncing updates.
|
|
25464
|
-
* If the payload or response only contains the remote ID of the same object, the SDK will look up the corresponding local ID to retrieve the object through ObjectSyncMap.
|
|
25465
|
-
*
|
|
25466
|
-
* This is useful for syncing updates to the object, as the SDK can find the local ID from the server ID and update the object in the cache correctly.
|
|
25467
|
-
*
|
|
25468
|
-
* Example:
|
|
25469
|
-
* In the case of message optimistically creation. The referenceId is created locally.
|
|
25470
|
-
*
|
|
25471
|
-
* 1. When creating a message optimistically, a local referenceId is created. The objectSyncMap will have the following structure.
|
|
25472
|
-
* {
|
|
25473
|
-
* "LOCAL_uuid": undefined,
|
|
25474
|
-
* }
|
|
25475
|
-
*
|
|
25476
|
-
* 2. After the message was created on the server and SDK received the response from server, the objectSyncMap will be updated to
|
|
25477
|
-
* {
|
|
25478
|
-
* "LOCAL_uuid": "server_message_id",
|
|
25479
|
-
* "server_message_id": "LOCAL_uuid"
|
|
25480
|
-
* }
|
|
25481
|
-
*/
|
|
25482
|
-
objectSyncMap,
|
|
25483
25405
|
};
|
|
25484
25406
|
try {
|
|
25485
25407
|
const activeClient = getActiveClient();
|
|
@@ -25570,6 +25492,28 @@ function setUploadedFileAccessType(accessType) {
|
|
|
25570
25492
|
GlobalFileAccessType$1.getInstance().setFileAccessType(accessType);
|
|
25571
25493
|
}
|
|
25572
25494
|
|
|
25495
|
+
/**
|
|
25496
|
+
* ```js
|
|
25497
|
+
* import { fetchLinkPreview } from '@amityco/ts-sdk'
|
|
25498
|
+
* const { title, description, imageUrl } = fetchLinkPreview('https://www.example.com/')
|
|
25499
|
+
* ```
|
|
25500
|
+
*
|
|
25501
|
+
*
|
|
25502
|
+
* @param url the url to fetch link preview
|
|
25503
|
+
* @returns A {@link Amity.LinkPreview} instance
|
|
25504
|
+
*
|
|
25505
|
+
* @category Client API
|
|
25506
|
+
* */
|
|
25507
|
+
const fetchLinkPreview = async (url) => {
|
|
25508
|
+
const client = getActiveClient();
|
|
25509
|
+
let fetchUrl = url;
|
|
25510
|
+
if (!/^https?:\/\//i.test(url)) {
|
|
25511
|
+
fetchUrl = `https://${url}`;
|
|
25512
|
+
}
|
|
25513
|
+
const { data } = await client.http.get(`/api/v1/link-preview?url=${encodeURIComponent(fetchUrl)}`);
|
|
25514
|
+
return data;
|
|
25515
|
+
};
|
|
25516
|
+
|
|
25573
25517
|
/**
|
|
25574
25518
|
* ```js
|
|
25575
25519
|
* import { onChannelMarkerFetched } from '@amityco/ts-sdk'
|
|
@@ -25937,6 +25881,7 @@ var index$l = /*#__PURE__*/Object.freeze({
|
|
|
25937
25881
|
markerSync: markerSync,
|
|
25938
25882
|
enableUnreadCount: enableUnreadCount,
|
|
25939
25883
|
setUploadedFileAccessType: setUploadedFileAccessType,
|
|
25884
|
+
fetchLinkPreview: fetchLinkPreview,
|
|
25940
25885
|
onConnectionError: onConnectionError,
|
|
25941
25886
|
onClientDisconnected: onClientDisconnected,
|
|
25942
25887
|
onClientBanned: onClientBanned,
|
|
@@ -27766,24 +27711,12 @@ function prepareBlockedUserPayload(response) {
|
|
|
27766
27711
|
}
|
|
27767
27712
|
|
|
27768
27713
|
const convertEventPayload = (eventHandler, sourceModelProp, destinationDomain) => (callback) => eventHandler(sourceModel => {
|
|
27769
|
-
var _a
|
|
27714
|
+
var _a;
|
|
27770
27715
|
if (!sourceModel) {
|
|
27771
27716
|
return sourceModel;
|
|
27772
27717
|
}
|
|
27773
|
-
const
|
|
27774
|
-
const
|
|
27775
|
-
/*
|
|
27776
|
-
* NOTE: For objects created locally (optimistic creation), the SDK stores them with their local ID as the cache key, which is used throughout the entire SDK session (in-memory) for syncing updates.
|
|
27777
|
-
* If the payload or response only contains the remote ID of the same object, the SDK will look up the corresponding local ID to retrieve the object.
|
|
27778
|
-
*/
|
|
27779
|
-
const resolvedId = isLocalId(sourceModel[sourceModelProp])
|
|
27780
|
-
? sourceModel[sourceModelProp]
|
|
27781
|
-
: (_a = objectSyncMap.get(sourceModel[sourceModelProp])) !== null && _a !== void 0 ? _a : sourceModel[sourceModelProp];
|
|
27782
|
-
const model = (_b = pullFromCache([
|
|
27783
|
-
destinationDomain,
|
|
27784
|
-
'get',
|
|
27785
|
-
`${resolvedId}`,
|
|
27786
|
-
])) === null || _b === void 0 ? void 0 : _b.data;
|
|
27718
|
+
const cacheKey = [destinationDomain, 'get', `${sourceModel[sourceModelProp]}`];
|
|
27719
|
+
const model = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
27787
27720
|
if (!model)
|
|
27788
27721
|
return;
|
|
27789
27722
|
return callback(model);
|
|
@@ -31011,7 +30944,6 @@ let uniqueId;
|
|
|
31011
30944
|
const createMessageOptimistic = (bundle) => {
|
|
31012
30945
|
var _a, _b;
|
|
31013
30946
|
const client = getActiveClient();
|
|
31014
|
-
const { objectSyncMap } = client;
|
|
31015
30947
|
if (!client.cache)
|
|
31016
30948
|
return;
|
|
31017
30949
|
/*
|
|
@@ -31044,7 +30976,6 @@ const createMessageOptimistic = (bundle) => {
|
|
|
31044
30976
|
const message = Object.assign({ creatorId: client.userId, creatorPrivateId: getActiveUser()._id, channelSegment: ((_b = subChannel === null || subChannel === void 0 ? void 0 : subChannel.data.messageCount) !== null && _b !== void 0 ? _b : 0) + 1, childrenNumber: 0, createdAt: createdTime, updatedAt: createdTime, syncState: "syncing" /* Amity.SyncState.Syncing */, isDeleted: false }, bundleWithMessageId);
|
|
31045
30977
|
const cachedAt = UNSYNCED_OBJECT_CACHED_AT_VALUE;
|
|
31046
30978
|
pushToCache(['message', 'get', message.messageId], message, { cachedAt });
|
|
31047
|
-
objectSyncMap.set(message.messageId, undefined);
|
|
31048
30979
|
fireEvent('local.message.created', { messages: [message] });
|
|
31049
30980
|
return message;
|
|
31050
30981
|
};
|
|
@@ -31072,15 +31003,12 @@ const createMessageOptimistic = (bundle) => {
|
|
|
31072
31003
|
*/
|
|
31073
31004
|
const createMessage = async (bundle) => {
|
|
31074
31005
|
const client = getActiveClient();
|
|
31075
|
-
const { objectSyncMap } = client;
|
|
31076
31006
|
client.log('message/createMessage', bundle);
|
|
31077
31007
|
const optimisticData = createMessageOptimistic(bundle);
|
|
31078
31008
|
const referenceId = bundle.referenceId || uniqueId || getLocalId();
|
|
31079
31009
|
uniqueId = undefined;
|
|
31080
31010
|
try {
|
|
31081
31011
|
const { data: payload } = await client.http.post('/api/v5/messages', Object.assign(Object.assign({}, convertParams(bundle)), { referenceId }));
|
|
31082
|
-
objectSyncMap.set(referenceId, payload.messages[0].messageId);
|
|
31083
|
-
objectSyncMap.set(payload.messages[0].messageId, referenceId);
|
|
31084
31012
|
const data = await prepareMessagePayload(payload);
|
|
31085
31013
|
const { messages } = data;
|
|
31086
31014
|
const cachedAt = client.cache && Date.now();
|
|
@@ -31835,7 +31763,7 @@ class MessageQueryStreamController extends QueryStreamController {
|
|
|
31835
31763
|
var _a, _b;
|
|
31836
31764
|
if (refresh) {
|
|
31837
31765
|
pushToCache(this.cacheKey, {
|
|
31838
|
-
data:
|
|
31766
|
+
data: response.messages.map(getResolver('message')),
|
|
31839
31767
|
query: this.query,
|
|
31840
31768
|
});
|
|
31841
31769
|
}
|
|
@@ -31843,8 +31771,8 @@ class MessageQueryStreamController extends QueryStreamController {
|
|
|
31843
31771
|
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
31844
31772
|
const messages = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
|
|
31845
31773
|
pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: direction === 'next'
|
|
31846
|
-
? [...new Set([...messages, ...
|
|
31847
|
-
: [...new Set([...
|
|
31774
|
+
? [...new Set([...messages, ...response.messages.map(getResolver('message'))])]
|
|
31775
|
+
: [...new Set([...response.messages.map(getResolver('message')), ...messages])] }));
|
|
31848
31776
|
}
|
|
31849
31777
|
}
|
|
31850
31778
|
reactor(action) {
|
|
@@ -31911,12 +31839,11 @@ class MessagePaginationController extends PaginationController {
|
|
|
31911
31839
|
|
|
31912
31840
|
const getMessageFromMainDB = (messageId) => {
|
|
31913
31841
|
var _a, _b;
|
|
31914
|
-
const
|
|
31915
|
-
|
|
31916
|
-
|
|
31917
|
-
|
|
31918
|
-
|
|
31919
|
-
return (_b = pullFromCache(['message', 'get', resolvedMessageId])) === null || _b === void 0 ? void 0 : _b.data;
|
|
31842
|
+
const message = (_a = pullFromCache(['message', 'get', messageId])) === null || _a === void 0 ? void 0 : _a.data;
|
|
31843
|
+
if (message)
|
|
31844
|
+
return message;
|
|
31845
|
+
const messages = queryCache(['message', 'get']);
|
|
31846
|
+
return (_b = messages === null || messages === void 0 ? void 0 : messages.find(({ data }) => data.messageId === messageId)) === null || _b === void 0 ? void 0 : _b.data;
|
|
31920
31847
|
};
|
|
31921
31848
|
|
|
31922
31849
|
class MessageLiveCollectionController extends LiveCollectionController {
|
|
@@ -32077,8 +32004,7 @@ var index$g = /*#__PURE__*/Object.freeze({
|
|
|
32077
32004
|
convertFromRaw: convertFromRaw$1,
|
|
32078
32005
|
prepareMessagePayload: prepareMessagePayload,
|
|
32079
32006
|
convertParams: convertParams,
|
|
32080
|
-
convertQueryParams: convertQueryParams$1
|
|
32081
|
-
getMessageIdentifierIds: getMessageIdentifierIds
|
|
32007
|
+
convertQueryParams: convertQueryParams$1
|
|
32082
32008
|
});
|
|
32083
32009
|
|
|
32084
32010
|
/**
|
|
@@ -39939,7 +39865,7 @@ var index$3 = /*#__PURE__*/Object.freeze({
|
|
|
39939
39865
|
getPoll: getPoll
|
|
39940
39866
|
});
|
|
39941
39867
|
|
|
39942
|
-
const privateKey = "-----BEGIN PRIVATE KEY-----\
|
|
39868
|
+
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-----";
|
|
39943
39869
|
/*
|
|
39944
39870
|
* The crypto algorithm used for importing key and signing string
|
|
39945
39871
|
*/
|