@amityco/ts-sdk-react-native 7.19.1-916b6fb.0 → 7.20.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqtt.d.ts","sourceRoot":"","sources":["../../../src/core/transports/mqtt.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,cAAc,EAAsB,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"mqtt.d.ts","sourceRoot":"","sources":["../../../src/core/transports/mqtt.ts"],"names":[],"mappings":"AAEA,OAAa,EAAE,cAAc,EAAsB,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAqBtF,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,cAAc,CAWjB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,aAAc,MAAM,KAAG,gBA4LtD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mqtt.test.d.ts","sourceRoot":"","sources":["../../../../src/core/transports/tests/mqtt.test.ts"],"names":[],"mappings":""}
|
package/dist/index.cjs.js
CHANGED
|
@@ -278,8 +278,8 @@ exports.AnalyticsSourceTypeEnum = void 0;
|
|
|
278
278
|
|
|
279
279
|
function getVersion() {
|
|
280
280
|
try {
|
|
281
|
-
// the string ''v7.
|
|
282
|
-
return 'v7.
|
|
281
|
+
// the string ''v7.20.0-cjs'' should be replaced by actual value by @rollup/plugin-replace
|
|
282
|
+
return 'v7.20.0-cjs';
|
|
283
283
|
}
|
|
284
284
|
catch (error) {
|
|
285
285
|
return '__dev__';
|
|
@@ -4768,6 +4768,10 @@ const getDeviceInfo = () => {
|
|
|
4768
4768
|
const QOS_FAILURE_CODE = 128;
|
|
4769
4769
|
const RETRY_BASE_TIMEOUT = 1000;
|
|
4770
4770
|
const RETRY_MAX_TIMEOUT = 8000;
|
|
4771
|
+
// Subscription-level retry constants (separate from connection-level reconnect)
|
|
4772
|
+
const MAX_RETRIES = 2;
|
|
4773
|
+
const SUB_RETRY_BASE_DELAY = 1000;
|
|
4774
|
+
const SUB_RETRY_MAX_DELAY = 5000;
|
|
4771
4775
|
var MqttError;
|
|
4772
4776
|
(function (MqttError) {
|
|
4773
4777
|
MqttError[MqttError["IDENTIFIER_REJECTED"] = 2] = "IDENTIFIER_REJECTED";
|
|
@@ -4798,6 +4802,7 @@ const createMqttTransport = (endpoint) => {
|
|
|
4798
4802
|
listener(state);
|
|
4799
4803
|
});
|
|
4800
4804
|
};
|
|
4805
|
+
const retryState = new Map();
|
|
4801
4806
|
async function connect(params) {
|
|
4802
4807
|
const clientId = await getMQTTClientId(params.userId);
|
|
4803
4808
|
updateConnectionState('connecting');
|
|
@@ -4832,13 +4837,46 @@ const createMqttTransport = (endpoint) => {
|
|
|
4832
4837
|
mqttClient.options.reconnectPeriod = Math.min((mqttClient.options.reconnectPeriod || RETRY_BASE_TIMEOUT) * 2, RETRY_MAX_TIMEOUT);
|
|
4833
4838
|
});
|
|
4834
4839
|
mqttClient.on('close', () => {
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
mqttClient.on('disconnect', () => {
|
|
4838
|
-
updateConnectionState('disconnected');
|
|
4840
|
+
retryState.forEach(({ timer }) => clearTimeout(timer));
|
|
4841
|
+
retryState.clear();
|
|
4839
4842
|
});
|
|
4840
4843
|
return new Promise(resolve => mqttClient.once('connect', () => resolve()));
|
|
4841
4844
|
}
|
|
4845
|
+
function attemptSubscribe(topic, attempt, callback) {
|
|
4846
|
+
const callbackWrapper = (error, granted) => {
|
|
4847
|
+
var _a;
|
|
4848
|
+
const failed = error || ((_a = granted[0]) === null || _a === void 0 ? void 0 : _a.qos) === QOS_FAILURE_CODE;
|
|
4849
|
+
if (failed) {
|
|
4850
|
+
if (attempt < MAX_RETRIES) {
|
|
4851
|
+
const delay = Math.min(2 ** attempt * SUB_RETRY_BASE_DELAY, SUB_RETRY_MAX_DELAY);
|
|
4852
|
+
console.warn(`Failed to subscribe to topic ${topic} (attempt ${attempt + 1}/${MAX_RETRIES + 1}). Retrying in ${delay}ms.`);
|
|
4853
|
+
const timer = setTimeout(() => {
|
|
4854
|
+
attemptSubscribe(topic, attempt + 1, callback);
|
|
4855
|
+
}, delay);
|
|
4856
|
+
retryState.set(topic, { timer, callback });
|
|
4857
|
+
}
|
|
4858
|
+
else {
|
|
4859
|
+
retryState.delete(topic);
|
|
4860
|
+
const ascError = error
|
|
4861
|
+
? new ASCError(error.message, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */)
|
|
4862
|
+
: new ASCUnknownError(800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
4863
|
+
console.warn(`Failed to subscribe to topic ${topic} after ${MAX_RETRIES + 1} attempts`, ascError);
|
|
4864
|
+
callback === null || callback === void 0 ? void 0 : callback(ascError);
|
|
4865
|
+
}
|
|
4866
|
+
}
|
|
4867
|
+
else {
|
|
4868
|
+
retryState.delete(topic);
|
|
4869
|
+
console.log(`Subscribed to topic ${topic}`);
|
|
4870
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
4871
|
+
}
|
|
4872
|
+
};
|
|
4873
|
+
if (mqttClient) {
|
|
4874
|
+
mqttClient.subscribe(topic, { qos: 0 }, callbackWrapper);
|
|
4875
|
+
}
|
|
4876
|
+
else {
|
|
4877
|
+
callbackWrapper(new Error('No connection to broker'), []);
|
|
4878
|
+
}
|
|
4879
|
+
}
|
|
4842
4880
|
return {
|
|
4843
4881
|
connect,
|
|
4844
4882
|
async disconnect() {
|
|
@@ -4881,33 +4919,18 @@ const createMqttTransport = (endpoint) => {
|
|
|
4881
4919
|
mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.removeAllListeners();
|
|
4882
4920
|
},
|
|
4883
4921
|
subscribe(topic, callback) {
|
|
4884
|
-
|
|
4885
|
-
|
|
4886
|
-
// In MQTT.js, when you subscribe to a topic with QoS 0, the granted parameter
|
|
4887
|
-
// in the callback will typically be empty or undefined
|
|
4888
|
-
if (error || ((_a = granted[0]) === null || _a === void 0 ? void 0 : _a.qos) === QOS_FAILURE_CODE) {
|
|
4889
|
-
const ascError = error
|
|
4890
|
-
? new ASCError(error.message, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */)
|
|
4891
|
-
: // TODO throw the actual error, once BE can tell us the actual error code
|
|
4892
|
-
new ASCUnknownError(800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
4893
|
-
// Use warning lv instead of error lv to prevent misunderstanding of user
|
|
4894
|
-
console.warn(`Failed to subscribe to topic ${topic}`, ascError);
|
|
4895
|
-
callback === null || callback === void 0 ? void 0 : callback(ascError);
|
|
4896
|
-
}
|
|
4897
|
-
else {
|
|
4898
|
-
console.log(`Subscribed to topic ${topic}`);
|
|
4899
|
-
callback === null || callback === void 0 ? void 0 : callback();
|
|
4900
|
-
}
|
|
4901
|
-
};
|
|
4902
|
-
if (mqttClient) {
|
|
4903
|
-
mqttClient.subscribe(topic, { qos: 0 }, callbackWrapper);
|
|
4904
|
-
}
|
|
4905
|
-
else {
|
|
4906
|
-
callbackWrapper(new Error('No connection to broker'), []);
|
|
4907
|
-
}
|
|
4908
|
-
return () => mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.unsubscribe(topic);
|
|
4922
|
+
attemptSubscribe(topic, 0, callback);
|
|
4923
|
+
return () => this.unsubscribe(topic);
|
|
4909
4924
|
},
|
|
4910
4925
|
unsubscribe(topic) {
|
|
4926
|
+
var _a;
|
|
4927
|
+
const pending = retryState.get(topic);
|
|
4928
|
+
if (pending !== undefined) {
|
|
4929
|
+
clearTimeout(pending.timer);
|
|
4930
|
+
retryState.delete(topic);
|
|
4931
|
+
const cancellationError = new ASCError('Subscription retry cancelled due to unsubscribe call', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
4932
|
+
(_a = pending.callback) === null || _a === void 0 ? void 0 : _a.call(pending, cancellationError);
|
|
4933
|
+
}
|
|
4911
4934
|
mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.unsubscribe(topic);
|
|
4912
4935
|
},
|
|
4913
4936
|
};
|
|
@@ -13370,7 +13393,7 @@ const getWatchSessionStorage = () => {
|
|
|
13370
13393
|
return storageInstance;
|
|
13371
13394
|
};
|
|
13372
13395
|
|
|
13373
|
-
const privateKey = "-----BEGIN PRIVATE KEY-----\
|
|
13396
|
+
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-----";
|
|
13374
13397
|
/*
|
|
13375
13398
|
* The crypto algorithm used for importing key and signing string
|
|
13376
13399
|
*/
|
package/dist/index.esm.js
CHANGED
|
@@ -244,8 +244,8 @@ var AnalyticsSourceTypeEnum;
|
|
|
244
244
|
|
|
245
245
|
function getVersion() {
|
|
246
246
|
try {
|
|
247
|
-
// the string ''v7.
|
|
248
|
-
return 'v7.
|
|
247
|
+
// the string ''v7.20.0-esm'' should be replaced by actual value by @rollup/plugin-replace
|
|
248
|
+
return 'v7.20.0-esm';
|
|
249
249
|
}
|
|
250
250
|
catch (error) {
|
|
251
251
|
return '__dev__';
|
|
@@ -20825,6 +20825,10 @@ const getDeviceInfo = () => {
|
|
|
20825
20825
|
const QOS_FAILURE_CODE = 128;
|
|
20826
20826
|
const RETRY_BASE_TIMEOUT = 1000;
|
|
20827
20827
|
const RETRY_MAX_TIMEOUT = 8000;
|
|
20828
|
+
// Subscription-level retry constants (separate from connection-level reconnect)
|
|
20829
|
+
const MAX_RETRIES = 2;
|
|
20830
|
+
const SUB_RETRY_BASE_DELAY = 1000;
|
|
20831
|
+
const SUB_RETRY_MAX_DELAY = 5000;
|
|
20828
20832
|
var MqttError;
|
|
20829
20833
|
(function (MqttError) {
|
|
20830
20834
|
MqttError[MqttError["IDENTIFIER_REJECTED"] = 2] = "IDENTIFIER_REJECTED";
|
|
@@ -20855,6 +20859,7 @@ const createMqttTransport = (endpoint) => {
|
|
|
20855
20859
|
listener(state);
|
|
20856
20860
|
});
|
|
20857
20861
|
};
|
|
20862
|
+
const retryState = new Map();
|
|
20858
20863
|
async function connect(params) {
|
|
20859
20864
|
const clientId = await getMQTTClientId(params.userId);
|
|
20860
20865
|
updateConnectionState('connecting');
|
|
@@ -20889,13 +20894,46 @@ const createMqttTransport = (endpoint) => {
|
|
|
20889
20894
|
mqttClient.options.reconnectPeriod = Math.min((mqttClient.options.reconnectPeriod || RETRY_BASE_TIMEOUT) * 2, RETRY_MAX_TIMEOUT);
|
|
20890
20895
|
});
|
|
20891
20896
|
mqttClient.on('close', () => {
|
|
20892
|
-
|
|
20893
|
-
|
|
20894
|
-
mqttClient.on('disconnect', () => {
|
|
20895
|
-
updateConnectionState('disconnected');
|
|
20897
|
+
retryState.forEach(({ timer }) => clearTimeout(timer));
|
|
20898
|
+
retryState.clear();
|
|
20896
20899
|
});
|
|
20897
20900
|
return new Promise(resolve => mqttClient.once('connect', () => resolve()));
|
|
20898
20901
|
}
|
|
20902
|
+
function attemptSubscribe(topic, attempt, callback) {
|
|
20903
|
+
const callbackWrapper = (error, granted) => {
|
|
20904
|
+
var _a;
|
|
20905
|
+
const failed = error || ((_a = granted[0]) === null || _a === void 0 ? void 0 : _a.qos) === QOS_FAILURE_CODE;
|
|
20906
|
+
if (failed) {
|
|
20907
|
+
if (attempt < MAX_RETRIES) {
|
|
20908
|
+
const delay = Math.min(2 ** attempt * SUB_RETRY_BASE_DELAY, SUB_RETRY_MAX_DELAY);
|
|
20909
|
+
console.warn(`Failed to subscribe to topic ${topic} (attempt ${attempt + 1}/${MAX_RETRIES + 1}). Retrying in ${delay}ms.`);
|
|
20910
|
+
const timer = setTimeout(() => {
|
|
20911
|
+
attemptSubscribe(topic, attempt + 1, callback);
|
|
20912
|
+
}, delay);
|
|
20913
|
+
retryState.set(topic, { timer, callback });
|
|
20914
|
+
}
|
|
20915
|
+
else {
|
|
20916
|
+
retryState.delete(topic);
|
|
20917
|
+
const ascError = error
|
|
20918
|
+
? new ASCError(error.message, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */)
|
|
20919
|
+
: new ASCUnknownError(800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
20920
|
+
console.warn(`Failed to subscribe to topic ${topic} after ${MAX_RETRIES + 1} attempts`, ascError);
|
|
20921
|
+
callback === null || callback === void 0 ? void 0 : callback(ascError);
|
|
20922
|
+
}
|
|
20923
|
+
}
|
|
20924
|
+
else {
|
|
20925
|
+
retryState.delete(topic);
|
|
20926
|
+
console.log(`Subscribed to topic ${topic}`);
|
|
20927
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
20928
|
+
}
|
|
20929
|
+
};
|
|
20930
|
+
if (mqttClient) {
|
|
20931
|
+
mqttClient.subscribe(topic, { qos: 0 }, callbackWrapper);
|
|
20932
|
+
}
|
|
20933
|
+
else {
|
|
20934
|
+
callbackWrapper(new Error('No connection to broker'), []);
|
|
20935
|
+
}
|
|
20936
|
+
}
|
|
20899
20937
|
return {
|
|
20900
20938
|
connect,
|
|
20901
20939
|
async disconnect() {
|
|
@@ -20938,33 +20976,18 @@ const createMqttTransport = (endpoint) => {
|
|
|
20938
20976
|
mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.removeAllListeners();
|
|
20939
20977
|
},
|
|
20940
20978
|
subscribe(topic, callback) {
|
|
20941
|
-
|
|
20942
|
-
|
|
20943
|
-
// In MQTT.js, when you subscribe to a topic with QoS 0, the granted parameter
|
|
20944
|
-
// in the callback will typically be empty or undefined
|
|
20945
|
-
if (error || ((_a = granted[0]) === null || _a === void 0 ? void 0 : _a.qos) === QOS_FAILURE_CODE) {
|
|
20946
|
-
const ascError = error
|
|
20947
|
-
? new ASCError(error.message, 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */)
|
|
20948
|
-
: // TODO throw the actual error, once BE can tell us the actual error code
|
|
20949
|
-
new ASCUnknownError(800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
20950
|
-
// Use warning lv instead of error lv to prevent misunderstanding of user
|
|
20951
|
-
console.warn(`Failed to subscribe to topic ${topic}`, ascError);
|
|
20952
|
-
callback === null || callback === void 0 ? void 0 : callback(ascError);
|
|
20953
|
-
}
|
|
20954
|
-
else {
|
|
20955
|
-
console.log(`Subscribed to topic ${topic}`);
|
|
20956
|
-
callback === null || callback === void 0 ? void 0 : callback();
|
|
20957
|
-
}
|
|
20958
|
-
};
|
|
20959
|
-
if (mqttClient) {
|
|
20960
|
-
mqttClient.subscribe(topic, { qos: 0 }, callbackWrapper);
|
|
20961
|
-
}
|
|
20962
|
-
else {
|
|
20963
|
-
callbackWrapper(new Error('No connection to broker'), []);
|
|
20964
|
-
}
|
|
20965
|
-
return () => mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.unsubscribe(topic);
|
|
20979
|
+
attemptSubscribe(topic, 0, callback);
|
|
20980
|
+
return () => this.unsubscribe(topic);
|
|
20966
20981
|
},
|
|
20967
20982
|
unsubscribe(topic) {
|
|
20983
|
+
var _a;
|
|
20984
|
+
const pending = retryState.get(topic);
|
|
20985
|
+
if (pending !== undefined) {
|
|
20986
|
+
clearTimeout(pending.timer);
|
|
20987
|
+
retryState.delete(topic);
|
|
20988
|
+
const cancellationError = new ASCError('Subscription retry cancelled due to unsubscribe call', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
|
|
20989
|
+
(_a = pending.callback) === null || _a === void 0 ? void 0 : _a.call(pending, cancellationError);
|
|
20990
|
+
}
|
|
20968
20991
|
mqttClient === null || mqttClient === void 0 ? void 0 : mqttClient.unsubscribe(topic);
|
|
20969
20992
|
},
|
|
20970
20993
|
};
|
|
@@ -29443,7 +29466,7 @@ const getWatchSessionStorage = () => {
|
|
|
29443
29466
|
return storageInstance;
|
|
29444
29467
|
};
|
|
29445
29468
|
|
|
29446
|
-
const privateKey = "-----BEGIN PRIVATE KEY-----\
|
|
29469
|
+
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-----";
|
|
29447
29470
|
/*
|
|
29448
29471
|
* The crypto algorithm used for importing key and signing string
|
|
29449
29472
|
*/
|