spasm.js 2.0.0-beta.4 → 2.0.0-beta.6
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/README.md +49 -4
- package/lib.commonjs/utils/utils.d.ts +18 -0
- package/lib.commonjs/utils/utils.d.ts.map +1 -1
- package/lib.commonjs/utils/utils.js +224 -13
- package/lib.commonjs/utils/utils.js.map +1 -1
- package/lib.esm/utils/utils.d.ts +18 -0
- package/lib.esm/utils/utils.d.ts.map +1 -1
- package/lib.esm/utils/utils.js +212 -11
- package/lib.esm/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/src.ts/utils/utils.ts +262 -15
package/README.md
CHANGED
|
@@ -267,6 +267,7 @@ Option 1. Import separate functions:
|
|
|
267
267
|
const {identifyObject} = require('spasm.js')
|
|
268
268
|
const {convertToSpasm} = require('spasm.js')
|
|
269
269
|
const {mergeSpasmEventsV2} = require('spasm.js')
|
|
270
|
+
const {mergeDifferentSpasmEventsV2} = require('spasm.js')
|
|
270
271
|
|
|
271
272
|
const event = {
|
|
272
273
|
// some event
|
|
@@ -279,9 +280,15 @@ const info = identifyObject(event)
|
|
|
279
280
|
const spasmEvent = convertToSpasm(event)
|
|
280
281
|
|
|
281
282
|
// Merge events into one event
|
|
282
|
-
const spasmEvent = mergeSpasmEventsV2(
|
|
283
|
+
const spasmEvent = mergeSpasmEventsV2([
|
|
283
284
|
event, eventWithStats, eventWithComments
|
|
284
|
-
)
|
|
285
|
+
])
|
|
286
|
+
|
|
287
|
+
// Merge different events
|
|
288
|
+
const spasmEvents = mergeDifferentSpasmEventsV2([
|
|
289
|
+
event, eventWithStats, eventWithComments,
|
|
290
|
+
anotherEvent, anotherEventWithStats
|
|
291
|
+
])
|
|
285
292
|
```
|
|
286
293
|
|
|
287
294
|
Option 2. Import all functions:
|
|
@@ -300,9 +307,15 @@ const info = spasm.identifyObject(event)
|
|
|
300
307
|
const spasmEvent = spasm.convertToSpasm(event)
|
|
301
308
|
|
|
302
309
|
// Merge events into one event
|
|
303
|
-
const spasmEvent = spasm.mergeSpasmEventsV2(
|
|
310
|
+
const spasmEvent = spasm.mergeSpasmEventsV2([
|
|
304
311
|
event, eventWithStats, eventWithComments
|
|
305
|
-
)
|
|
312
|
+
])
|
|
313
|
+
|
|
314
|
+
// Merge different events
|
|
315
|
+
const spasmEvents = spasm.mergeDifferentSpasmEventsV2([
|
|
316
|
+
event, eventWithStats, eventWithComments,
|
|
317
|
+
anotherEvent, anotherEventWithStats
|
|
318
|
+
])
|
|
306
319
|
```
|
|
307
320
|
|
|
308
321
|
#### ESM (import)
|
|
@@ -392,6 +405,38 @@ const rootIds = spasm.getAllRootIds(event)
|
|
|
392
405
|
const signatures = spasm.getAllSignatures(event)
|
|
393
406
|
```
|
|
394
407
|
|
|
408
|
+
```js
|
|
409
|
+
// Get a stat object of a specified action
|
|
410
|
+
const stats = spasm.getStatByAction(event, "react")
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
```js
|
|
414
|
+
// Get a total number of a specified action
|
|
415
|
+
const stats = spasm.getTotalOfAction(event, "reply")
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
```js
|
|
419
|
+
// Get a total number of a specified reaction
|
|
420
|
+
const stats = spasm.getTotalOfReaction(event, "upvote")
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
```js
|
|
424
|
+
// Get a total number of the most popular reaction
|
|
425
|
+
const stats = spasm.getTotalOfMostPopularReaction(event)
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
```js
|
|
429
|
+
// Get a total number of a react/reply action
|
|
430
|
+
const stats = spasm.getTotalOfReact(event)
|
|
431
|
+
const stats = spasm.getTotalOfReply(event)
|
|
432
|
+
|
|
433
|
+
// aliases
|
|
434
|
+
const stats = spasm.getTotalOfActionReact(event)
|
|
435
|
+
const stats = spasm.getTotalOfReactAction(event)
|
|
436
|
+
const stats = spasm.getTotalOfActionReply(event)
|
|
437
|
+
const stats = spasm.getTotalOfReplyAction(event)
|
|
438
|
+
```
|
|
439
|
+
|
|
395
440
|
```js
|
|
396
441
|
// Extract an ID from an event.
|
|
397
442
|
const nostrId = spasm.getIdByFormat(event, { name: "nostr-hex" })
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { UnknownPostOrEvent, UnknownEvent, NostrSpasmEvent, NostrSpasmEventSignedOpened, NostrSpasmVersion, LinkObject, SpasmEventIdFormatV2, SpasmEventAddressFormatV2, SpasmEventSignatureFormatV2, SpasmEventV2, SpasmEventAuthorV2, SpasmEventBodyHostV2, SpasmEventMediaV2, SpasmEventIdV2, SpasmEventBodyReferenceV2, SpasmEventBodyParentV2, ConvertToSpasmConfig, CustomConvertToSpasmConfig, CustomSanitizationConfig, SanitizationConfig, UnknownEventV2, SpasmEventStatV2, SpasmEventChildV2 } from "./../types/interfaces.js";
|
|
2
2
|
export declare const hasValue: (el?: any) => boolean;
|
|
3
|
+
export declare const isStringOrNumber: (val: any) => boolean;
|
|
4
|
+
export declare const isNumberOrString: (val: any) => boolean;
|
|
5
|
+
export declare const ifStringOrNumber: (val: any) => boolean;
|
|
6
|
+
export declare const ifNumberOrString: (val: any) => boolean;
|
|
3
7
|
export declare const isObjectWithValues: (val: any) => boolean;
|
|
8
|
+
export declare const isArrayWithValues: (array: any) => boolean;
|
|
4
9
|
export declare const extractVersion: (versionString: string) => string;
|
|
5
10
|
export declare const extractSealedEvent: (unknownPostOrEvent: UnknownPostOrEvent) => UnknownEvent | false;
|
|
6
11
|
export declare const toBeTimestamp: (time: any) => number | undefined;
|
|
@@ -58,6 +63,16 @@ export declare const getAllRootIds: (unknownEvent: UnknownEventV2, toLowerCase?:
|
|
|
58
63
|
export declare const getAllSignatures: (unknownEvent: UnknownEventV2, toLowerCase?: boolean) => (string | number)[];
|
|
59
64
|
export declare const getSignersListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => (string | number)[];
|
|
60
65
|
export declare const getPubkeysListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => (string | number)[];
|
|
66
|
+
export declare const getStatByAction: (unknownEvent: any, action?: string | number) => SpasmEventStatV2 | null;
|
|
67
|
+
export declare const getTotalOfReaction: (unknownEvent: any, reaction?: string | number) => number;
|
|
68
|
+
export declare const getTotalOfMostPopularReaction: (unknownEvent: any) => number;
|
|
69
|
+
export declare const getTotalOfAction: (unknownEvent: any, action?: string | number) => number;
|
|
70
|
+
export declare const getTotalOfReply: (unknownEvent: any) => number;
|
|
71
|
+
export declare const getTotalOfReplyAction: (unknownEvent: any) => number;
|
|
72
|
+
export declare const getTotalOfActionReply: (unknownEvent: any) => number;
|
|
73
|
+
export declare const getTotalOfReact: (unknownEvent: any) => number;
|
|
74
|
+
export declare const getTotalOfReactAction: (unknownEvent: any) => number;
|
|
75
|
+
export declare const getTotalOfActionReact: (unknownEvent: any) => number;
|
|
61
76
|
export declare const isAnySignerListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => boolean;
|
|
62
77
|
export declare const isAnyPubkeyListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => boolean;
|
|
63
78
|
export declare const areAllSignersListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => boolean;
|
|
@@ -66,9 +81,12 @@ export declare const getIdByFormat: (unknownEvent: UnknownEventV2, customIdForma
|
|
|
66
81
|
export declare const extractIdByFormat: (unknownEvent: UnknownEventV2, customIdFormat?: SpasmEventIdFormatV2) => string | number | null;
|
|
67
82
|
export declare const extractSpasmId01: (unknownEvent: UnknownEventV2) => string | number;
|
|
68
83
|
export declare const toBeSpasmEventV2: (unknownEvent: UnknownEventV2) => SpasmEventV2 | null;
|
|
84
|
+
export declare const toBeSpasmEventsV2: (unknownEvents: any[]) => SpasmEventV2[] | null;
|
|
69
85
|
export declare const extractSignerFromEthereumSignature: (signedString: string, signature: string) => string | null;
|
|
70
86
|
export declare const mergeSpasmEventsV2: (spasmEvents: any[], depth?: number) => SpasmEventV2 | null;
|
|
71
87
|
export declare const mergeDifferentSpasmEventsV2: (unknownEvents: any[], depth?: number) => SpasmEventV2[] | null;
|
|
88
|
+
export declare const sortSpasmEventsV2ByDbAddedTimestamp: (unknownEvents: any[], order?: "asc" | "desc") => SpasmEventV2[] | null;
|
|
89
|
+
export declare const sortSpasmEventsV2: (unknownEvents: any[], order?: "asc" | "desc") => SpasmEventV2[] | null;
|
|
72
90
|
export declare const ifEventsHaveSameSpasmId01: (event1: UnknownEventV2, event2: UnknownEventV2) => Boolean;
|
|
73
91
|
export declare const deepCopyOfObject: (obj: any) => any;
|
|
74
92
|
export declare const copyOf: (obj: any) => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src.ts/utils/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src.ts/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
27
|
-
exports.mergeChildrenV2 = exports.mergeStatsV2 = exports.cleanSpasmEventV2 = exports.copyOf = exports.deepCopyOfObject = exports.ifEventsHaveSameSpasmId01 = exports.mergeDifferentSpasmEventsV2 = exports.mergeSpasmEventsV2 = exports.extractSignerFromEthereumSignature = exports.toBeSpasmEventV2 = exports.extractSpasmId01 = exports.extractIdByFormat = exports.getIdByFormat = exports.areAllPubkeysListedIn = exports.areAllSignersListedIn = exports.isAnyPubkeyListedIn = exports.isAnySignerListedIn = exports.getPubkeysListedIn = exports.getSignersListedIn = exports.getAllSignatures = exports.getAllRootIds = exports.getAllParentIds = exports.getAllEventIds = exports.getAllIdsFromArrayOfIdObjects = exports.getVerifiedSigners = void 0;
|
|
26
|
+
exports.hasSiblingOfProtocol = exports.hasSignatureNostr = exports.hasSignatureEthereum = exports.hasSignatureOfFormat = exports.mergeSanitizationConfigs = exports.mergeConfigs = exports.mergeObjects = exports.clearObject = exports.clearArray = exports.sanitizeEvent = exports.sanitizeEventWithDompurify = exports.sanitizeStringWithDompurify = exports.sanitizeEventWith = exports.executeFunctionForAllNestedValuesOfType = exports.utilsStatus = exports.verifyEthereumSignature = exports.markSpasmEventAddressAsVerified = exports.sortTagsForSpasmid01 = exports.sortParentForSpasmid01 = exports.sortReferencesForSpasmid01 = exports.sortMediasForSpasmid01 = exports.sortLinksForSpasmid01 = exports.sortLinksForSpasmEventV2 = exports.sortHostsForSpasmid01 = exports.sortHostsForSpasmEventV2 = exports.sortArrayOfObjectsByKeyValue = exports.sortAuthorsForSpasmid01 = exports.sortAuthorsForSpasmEventV2 = exports.sortArrayOfObjects = exports.sortArrayOfStringsAndNumbers = exports.keepTheseKeysInObjectsInArray = exports.keepTheseKeysInObject = exports.getHashOfString = exports.getFormatFromSignature = exports.getFormatFromAddress = exports.getFormatFromId = exports.getFormatFromValue = exports.createLinkObjectFromUrl = exports.isValidUrl = exports.getNostrSpasmVersion = exports.toBeTimestamp = exports.extractSealedEvent = exports.extractVersion = exports.isArrayWithValues = exports.isObjectWithValues = exports.ifNumberOrString = exports.ifStringOrNumber = exports.isNumberOrString = exports.isStringOrNumber = exports.hasValue = void 0;
|
|
27
|
+
exports.mergeChildrenV2 = exports.mergeStatsV2 = exports.cleanSpasmEventV2 = exports.copyOf = exports.deepCopyOfObject = exports.ifEventsHaveSameSpasmId01 = exports.sortSpasmEventsV2 = exports.sortSpasmEventsV2ByDbAddedTimestamp = exports.mergeDifferentSpasmEventsV2 = exports.mergeSpasmEventsV2 = exports.extractSignerFromEthereumSignature = exports.toBeSpasmEventsV2 = exports.toBeSpasmEventV2 = exports.extractSpasmId01 = exports.extractIdByFormat = exports.getIdByFormat = exports.areAllPubkeysListedIn = exports.areAllSignersListedIn = exports.isAnyPubkeyListedIn = exports.isAnySignerListedIn = exports.getTotalOfActionReact = exports.getTotalOfReactAction = exports.getTotalOfReact = exports.getTotalOfActionReply = exports.getTotalOfReplyAction = exports.getTotalOfReply = exports.getTotalOfAction = exports.getTotalOfMostPopularReaction = exports.getTotalOfReaction = exports.getStatByAction = exports.getPubkeysListedIn = exports.getSignersListedIn = exports.getAllSignatures = exports.getAllRootIds = exports.getAllParentIds = exports.getAllEventIds = exports.getAllIdsFromArrayOfIdObjects = exports.getVerifiedSigners = exports.getAllSigners = exports.hasSiblingWeb2 = exports.hasSiblingNostr = exports.hasSiblingDmp = exports.hasSiblingSpasm = void 0;
|
|
28
28
|
/*
|
|
29
29
|
* Using sha256 from 'js-sha256' npm package, because
|
|
30
30
|
* built-in 'crypto' module works only in a server-side
|
|
@@ -92,6 +92,19 @@ const hasValue = (el) => {
|
|
|
92
92
|
return true;
|
|
93
93
|
};
|
|
94
94
|
exports.hasValue = hasValue;
|
|
95
|
+
const isStringOrNumber = (val) => {
|
|
96
|
+
if (!val && val !== 0)
|
|
97
|
+
return false;
|
|
98
|
+
if (typeof (val) === "string")
|
|
99
|
+
return true;
|
|
100
|
+
if (typeof (val) === "number")
|
|
101
|
+
return true;
|
|
102
|
+
return false;
|
|
103
|
+
};
|
|
104
|
+
exports.isStringOrNumber = isStringOrNumber;
|
|
105
|
+
exports.isNumberOrString = exports.isStringOrNumber;
|
|
106
|
+
exports.ifStringOrNumber = exports.isStringOrNumber;
|
|
107
|
+
exports.ifNumberOrString = exports.isStringOrNumber;
|
|
95
108
|
const isObjectWithValues = (val) => {
|
|
96
109
|
if (!val)
|
|
97
110
|
return false;
|
|
@@ -104,6 +117,16 @@ const isObjectWithValues = (val) => {
|
|
|
104
117
|
return true;
|
|
105
118
|
};
|
|
106
119
|
exports.isObjectWithValues = isObjectWithValues;
|
|
120
|
+
const isArrayWithValues = (array) => {
|
|
121
|
+
if (!array)
|
|
122
|
+
return false;
|
|
123
|
+
if (!Array.isArray(array))
|
|
124
|
+
return false;
|
|
125
|
+
if (!(0, exports.hasValue)(array))
|
|
126
|
+
return false;
|
|
127
|
+
return true;
|
|
128
|
+
};
|
|
129
|
+
exports.isArrayWithValues = isArrayWithValues;
|
|
107
130
|
const extractVersion = (versionString) => {
|
|
108
131
|
if (!versionString ||
|
|
109
132
|
typeof (versionString) !== "string")
|
|
@@ -1200,6 +1223,126 @@ const getSignersListedIn = (unknownEvent, list) => {
|
|
|
1200
1223
|
};
|
|
1201
1224
|
exports.getSignersListedIn = getSignersListedIn;
|
|
1202
1225
|
exports.getPubkeysListedIn = exports.getSignersListedIn;
|
|
1226
|
+
const getStatByAction = (unknownEvent, action = "react") => {
|
|
1227
|
+
if (!action || !exports.isStringOrNumber) {
|
|
1228
|
+
return null;
|
|
1229
|
+
}
|
|
1230
|
+
const spasmEvent = (0, exports.toBeSpasmEventV2)(unknownEvent);
|
|
1231
|
+
if (!spasmEvent || !(0, exports.isObjectWithValues)(spasmEvent)) {
|
|
1232
|
+
return null;
|
|
1233
|
+
}
|
|
1234
|
+
if (!("stats" in spasmEvent) || !spasmEvent.stats) {
|
|
1235
|
+
return null;
|
|
1236
|
+
}
|
|
1237
|
+
let spasmEventStat = null;
|
|
1238
|
+
spasmEvent.stats?.forEach(stat => {
|
|
1239
|
+
if ((0, exports.isObjectWithValues)(stat) &&
|
|
1240
|
+
"action" in stat && stat.action &&
|
|
1241
|
+
stat.action === action) {
|
|
1242
|
+
spasmEventStat = stat;
|
|
1243
|
+
}
|
|
1244
|
+
});
|
|
1245
|
+
return spasmEventStat;
|
|
1246
|
+
};
|
|
1247
|
+
exports.getStatByAction = getStatByAction;
|
|
1248
|
+
const getTotalOfReaction = (unknownEvent, reaction = "upvote") => {
|
|
1249
|
+
if (!reaction || !exports.isStringOrNumber) {
|
|
1250
|
+
return 0;
|
|
1251
|
+
}
|
|
1252
|
+
const spasmEvent = (0, exports.toBeSpasmEventV2)(unknownEvent);
|
|
1253
|
+
if (!spasmEvent || !(0, exports.isObjectWithValues)(spasmEvent)) {
|
|
1254
|
+
return 0;
|
|
1255
|
+
}
|
|
1256
|
+
const reactionStat = (0, exports.getStatByAction)(spasmEvent, "react");
|
|
1257
|
+
if (!reactionStat) {
|
|
1258
|
+
return 0;
|
|
1259
|
+
}
|
|
1260
|
+
if (!("contents" in reactionStat) || !reactionStat.contents ||
|
|
1261
|
+
!(0, exports.isArrayWithValues)(reactionStat.contents)) {
|
|
1262
|
+
return 0;
|
|
1263
|
+
}
|
|
1264
|
+
let total = 0;
|
|
1265
|
+
reactionStat.contents.forEach(content => {
|
|
1266
|
+
if ("value" in content && content.value &&
|
|
1267
|
+
content.value === reaction &&
|
|
1268
|
+
"total" in content && content.total) {
|
|
1269
|
+
if (typeof (content.total) === "number") {
|
|
1270
|
+
total = content.total;
|
|
1271
|
+
}
|
|
1272
|
+
else if (typeof (content.total) === "string") {
|
|
1273
|
+
total = Number(content.total);
|
|
1274
|
+
}
|
|
1275
|
+
}
|
|
1276
|
+
});
|
|
1277
|
+
return total;
|
|
1278
|
+
};
|
|
1279
|
+
exports.getTotalOfReaction = getTotalOfReaction;
|
|
1280
|
+
const getTotalOfMostPopularReaction = (unknownEvent) => {
|
|
1281
|
+
const spasmEvent = (0, exports.toBeSpasmEventV2)(unknownEvent);
|
|
1282
|
+
if (!spasmEvent || !(0, exports.isObjectWithValues)(spasmEvent)) {
|
|
1283
|
+
return 0;
|
|
1284
|
+
}
|
|
1285
|
+
const reactionStat = (0, exports.getStatByAction)(spasmEvent, "react");
|
|
1286
|
+
if (!reactionStat) {
|
|
1287
|
+
return 0;
|
|
1288
|
+
}
|
|
1289
|
+
if (!("contents" in reactionStat) || !reactionStat.contents ||
|
|
1290
|
+
!(0, exports.isArrayWithValues)(reactionStat.contents)) {
|
|
1291
|
+
return 0;
|
|
1292
|
+
}
|
|
1293
|
+
let total = 0;
|
|
1294
|
+
reactionStat.contents.forEach(content => {
|
|
1295
|
+
if ("total" in content && content.total) {
|
|
1296
|
+
let newTotal = 0;
|
|
1297
|
+
if (typeof (content.total) === "number") {
|
|
1298
|
+
newTotal = content.total;
|
|
1299
|
+
}
|
|
1300
|
+
else if (typeof (content.total) === "string") {
|
|
1301
|
+
newTotal = Number(content.total);
|
|
1302
|
+
}
|
|
1303
|
+
if (newTotal > total) {
|
|
1304
|
+
total = newTotal;
|
|
1305
|
+
}
|
|
1306
|
+
}
|
|
1307
|
+
});
|
|
1308
|
+
return total;
|
|
1309
|
+
};
|
|
1310
|
+
exports.getTotalOfMostPopularReaction = getTotalOfMostPopularReaction;
|
|
1311
|
+
const getTotalOfAction = (unknownEvent, action = "reply") => {
|
|
1312
|
+
if (!action || !exports.isStringOrNumber) {
|
|
1313
|
+
return 0;
|
|
1314
|
+
}
|
|
1315
|
+
const spasmEvent = (0, exports.toBeSpasmEventV2)(unknownEvent);
|
|
1316
|
+
if (!spasmEvent || !(0, exports.isObjectWithValues)(spasmEvent)) {
|
|
1317
|
+
return 0;
|
|
1318
|
+
}
|
|
1319
|
+
const actionStat = (0, exports.getStatByAction)(spasmEvent, action);
|
|
1320
|
+
if (!actionStat) {
|
|
1321
|
+
return 0;
|
|
1322
|
+
}
|
|
1323
|
+
if ("total" in actionStat && actionStat.total) {
|
|
1324
|
+
if (typeof (actionStat.total) === "number") {
|
|
1325
|
+
return actionStat.total;
|
|
1326
|
+
}
|
|
1327
|
+
else if (typeof (actionStat.total) === "string") {
|
|
1328
|
+
return Number(actionStat.total);
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
return 0;
|
|
1332
|
+
};
|
|
1333
|
+
exports.getTotalOfAction = getTotalOfAction;
|
|
1334
|
+
const getTotalOfReply = (unknownEvent) => {
|
|
1335
|
+
return (0, exports.getTotalOfAction)(unknownEvent, "reply");
|
|
1336
|
+
};
|
|
1337
|
+
exports.getTotalOfReply = getTotalOfReply;
|
|
1338
|
+
exports.getTotalOfReplyAction = exports.getTotalOfReply;
|
|
1339
|
+
exports.getTotalOfActionReply = exports.getTotalOfReply;
|
|
1340
|
+
const getTotalOfReact = (unknownEvent) => {
|
|
1341
|
+
return (0, exports.getTotalOfAction)(unknownEvent, "react");
|
|
1342
|
+
};
|
|
1343
|
+
exports.getTotalOfReact = getTotalOfReact;
|
|
1344
|
+
exports.getTotalOfReactAction = exports.getTotalOfReact;
|
|
1345
|
+
exports.getTotalOfActionReact = exports.getTotalOfReact;
|
|
1203
1346
|
const isAnySignerListedIn = (unknownEvent, list) => {
|
|
1204
1347
|
const signersListedIn = (0, exports.getSignersListedIn)(unknownEvent, list);
|
|
1205
1348
|
if (signersListedIn &&
|
|
@@ -1327,6 +1470,22 @@ const toBeSpasmEventV2 = (unknownEvent) => {
|
|
|
1327
1470
|
return null;
|
|
1328
1471
|
};
|
|
1329
1472
|
exports.toBeSpasmEventV2 = toBeSpasmEventV2;
|
|
1473
|
+
const toBeSpasmEventsV2 = (unknownEvents) => {
|
|
1474
|
+
if (!unknownEvents || !Array.isArray(unknownEvents))
|
|
1475
|
+
return null;
|
|
1476
|
+
let spasmEvents = [];
|
|
1477
|
+
unknownEvents.forEach(event => {
|
|
1478
|
+
const spasmEvent = (0, exports.toBeSpasmEventV2)(event);
|
|
1479
|
+
if (spasmEvent && (0, exports.isObjectWithValues)(spasmEvent)) {
|
|
1480
|
+
spasmEvents.push(spasmEvent);
|
|
1481
|
+
}
|
|
1482
|
+
});
|
|
1483
|
+
if (!spasmEvents[0] ||
|
|
1484
|
+
!(0, exports.isObjectWithValues)(spasmEvents[0]))
|
|
1485
|
+
return null;
|
|
1486
|
+
return spasmEvents;
|
|
1487
|
+
};
|
|
1488
|
+
exports.toBeSpasmEventsV2 = toBeSpasmEventsV2;
|
|
1330
1489
|
const extractSignerFromEthereumSignature = (signedString, signature) => {
|
|
1331
1490
|
try {
|
|
1332
1491
|
if (signature && typeof (signature) === 'string') {
|
|
@@ -1683,16 +1842,8 @@ const mergeDifferentSpasmEventsV2 = (unknownEvents, depth = 0) => {
|
|
|
1683
1842
|
if (depth > maxRecursionDepth) {
|
|
1684
1843
|
throw new Error("Maximum recursion depth exceeded");
|
|
1685
1844
|
}
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
let spasmEvents = [];
|
|
1689
|
-
unknownEvents.forEach(event => {
|
|
1690
|
-
const spasmEvent = (0, exports.toBeSpasmEventV2)(event);
|
|
1691
|
-
if (spasmEvent && (0, exports.isObjectWithValues)(spasmEvent)) {
|
|
1692
|
-
spasmEvents.push(spasmEvent);
|
|
1693
|
-
}
|
|
1694
|
-
});
|
|
1695
|
-
if (!spasmEvents[0] ||
|
|
1845
|
+
const spasmEvents = (0, exports.toBeSpasmEventsV2)(unknownEvents);
|
|
1846
|
+
if (!spasmEvents || !spasmEvents[0] ||
|
|
1696
1847
|
!(0, exports.isObjectWithValues)(spasmEvents[0]))
|
|
1697
1848
|
return null;
|
|
1698
1849
|
const uniqueIds = new Set();
|
|
@@ -1729,7 +1880,7 @@ const mergeDifferentSpasmEventsV2 = (unknownEvents, depth = 0) => {
|
|
|
1729
1880
|
typeof (uniqueEventId.value) === "number")) {
|
|
1730
1881
|
if (uniqueEventId.value === id.value) {
|
|
1731
1882
|
const mergedEvent = (0, exports.mergeSpasmEventsV2)([
|
|
1732
|
-
uniqueEvent, event
|
|
1883
|
+
uniqueEvent, event, depth
|
|
1733
1884
|
]);
|
|
1734
1885
|
if (mergedEvent) {
|
|
1735
1886
|
uniqueEvents[uniqueEventIndex] =
|
|
@@ -1757,6 +1908,66 @@ const mergeDifferentSpasmEventsV2 = (unknownEvents, depth = 0) => {
|
|
|
1757
1908
|
}
|
|
1758
1909
|
};
|
|
1759
1910
|
exports.mergeDifferentSpasmEventsV2 = mergeDifferentSpasmEventsV2;
|
|
1911
|
+
const sortSpasmEventsV2ByDbAddedTimestamp = (unknownEvents, order = "desc") => {
|
|
1912
|
+
const spasmEvents = (0, exports.toBeSpasmEventsV2)(unknownEvents);
|
|
1913
|
+
if (!spasmEvents || !spasmEvents[0] ||
|
|
1914
|
+
!(0, exports.isObjectWithValues)(spasmEvents[0]))
|
|
1915
|
+
return null;
|
|
1916
|
+
try {
|
|
1917
|
+
const spasmEventsWithDbTimestamp = [];
|
|
1918
|
+
const spasmEventsWithoutDbTimestamp = [];
|
|
1919
|
+
// Events without db.addedTimestamp are moved into a separate
|
|
1920
|
+
// array which is joined with the sorted array at the end.
|
|
1921
|
+
spasmEvents.forEach(event => {
|
|
1922
|
+
if ('db' in event && event.db &&
|
|
1923
|
+
'addedTimestamp' in event.db &&
|
|
1924
|
+
event.db.addedTimestamp &&
|
|
1925
|
+
typeof (event.db.addedTimestamp) === "number") {
|
|
1926
|
+
spasmEventsWithDbTimestamp.push(event);
|
|
1927
|
+
}
|
|
1928
|
+
else {
|
|
1929
|
+
spasmEventsWithoutDbTimestamp.push(event);
|
|
1930
|
+
}
|
|
1931
|
+
});
|
|
1932
|
+
spasmEventsWithDbTimestamp.sort((a, b) => {
|
|
1933
|
+
if (a.db?.addedTimestamp && b.db?.addedTimestamp) {
|
|
1934
|
+
if (order === "desc") {
|
|
1935
|
+
const result = String(b.db.addedTimestamp)
|
|
1936
|
+
.localeCompare(String(a.db.addedTimestamp));
|
|
1937
|
+
return result;
|
|
1938
|
+
}
|
|
1939
|
+
else if (order === "asc") {
|
|
1940
|
+
const result = String(a.db.addedTimestamp)
|
|
1941
|
+
.localeCompare(String(b.db.addedTimestamp));
|
|
1942
|
+
return result;
|
|
1943
|
+
}
|
|
1944
|
+
}
|
|
1945
|
+
// Ideally, return 1 should never happen because we've
|
|
1946
|
+
// filtered out events without db.addedTimestamp above.
|
|
1947
|
+
// In case if we missed some scenarios,
|
|
1948
|
+
// then 'return 1' should push an element without
|
|
1949
|
+
// db.addedTimestamp to the end of the array,
|
|
1950
|
+
// but it can still mess up the sorting.
|
|
1951
|
+
return 1;
|
|
1952
|
+
});
|
|
1953
|
+
const sortedSpasmEvents = [
|
|
1954
|
+
...spasmEventsWithDbTimestamp,
|
|
1955
|
+
...spasmEventsWithoutDbTimestamp
|
|
1956
|
+
];
|
|
1957
|
+
if ((0, exports.isArrayWithValues)(sortedSpasmEvents)) {
|
|
1958
|
+
return sortedSpasmEvents;
|
|
1959
|
+
}
|
|
1960
|
+
else {
|
|
1961
|
+
return null;
|
|
1962
|
+
}
|
|
1963
|
+
}
|
|
1964
|
+
catch (err) {
|
|
1965
|
+
console.error(err);
|
|
1966
|
+
return null;
|
|
1967
|
+
}
|
|
1968
|
+
};
|
|
1969
|
+
exports.sortSpasmEventsV2ByDbAddedTimestamp = sortSpasmEventsV2ByDbAddedTimestamp;
|
|
1970
|
+
exports.sortSpasmEventsV2 = exports.sortSpasmEventsV2ByDbAddedTimestamp;
|
|
1760
1971
|
const ifEventsHaveSameSpasmId01 = (event1, event2) => {
|
|
1761
1972
|
if (!event1 || !event2)
|
|
1762
1973
|
return false;
|