spasm.js 2.0.0-beta.5 → 2.0.0-beta.7
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 +72 -4
- package/lib.commonjs/utils/utils.d.ts +17 -0
- package/lib.commonjs/utils/utils.d.ts.map +1 -1
- package/lib.commonjs/utils/utils.js +227 -4
- package/lib.commonjs/utils/utils.js.map +1 -1
- package/lib.esm/utils/utils.d.ts +17 -0
- package/lib.esm/utils/utils.d.ts.map +1 -1
- package/lib.esm/utils/utils.js +215 -2
- package/lib.esm/utils/utils.js.map +1 -1
- package/package.json +1 -1
- package/src.ts/utils/utils.ts +277 -2
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" })
|
|
@@ -412,6 +457,29 @@ const spasmId = spasm.extractIdByFormat(event, {
|
|
|
412
457
|
const spasmId = spasm.getSpasmId(event)
|
|
413
458
|
```
|
|
414
459
|
|
|
460
|
+
```js
|
|
461
|
+
const ifEventHasThisId = spasm.checkIfEventHasThisId(
|
|
462
|
+
event, "spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
|
|
463
|
+
)
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
```js
|
|
467
|
+
const event = spasm.getEventById(
|
|
468
|
+
[ event1, event2, event3 ],
|
|
469
|
+
"spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
|
|
470
|
+
)
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
```js
|
|
474
|
+
const events = spasm.getEventsByIds(
|
|
475
|
+
[ event1, event2, event3 ],
|
|
476
|
+
[
|
|
477
|
+
"spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f",
|
|
478
|
+
"db300d320853b25b57fa03c586d18f69ad9786ec5e21114253fc3762b22a5651"
|
|
479
|
+
]
|
|
480
|
+
)
|
|
481
|
+
```
|
|
482
|
+
|
|
415
483
|
```js
|
|
416
484
|
// Convert an event to SpasmEventV2 only if
|
|
417
485
|
// it's not SpasmEventV2 yet.
|
|
@@ -1,5 +1,9 @@
|
|
|
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;
|
|
4
8
|
export declare const isArrayWithValues: (array: any) => boolean;
|
|
5
9
|
export declare const extractVersion: (versionString: string) => string;
|
|
@@ -59,11 +63,24 @@ export declare const getAllRootIds: (unknownEvent: UnknownEventV2, toLowerCase?:
|
|
|
59
63
|
export declare const getAllSignatures: (unknownEvent: UnknownEventV2, toLowerCase?: boolean) => (string | number)[];
|
|
60
64
|
export declare const getSignersListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => (string | number)[];
|
|
61
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;
|
|
62
76
|
export declare const isAnySignerListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => boolean;
|
|
63
77
|
export declare const isAnyPubkeyListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => boolean;
|
|
64
78
|
export declare const areAllSignersListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => boolean;
|
|
65
79
|
export declare const areAllPubkeysListedIn: (unknownEvent: UnknownEventV2, list: (string | number)[]) => boolean;
|
|
66
80
|
export declare const getIdByFormat: (unknownEvent: UnknownEventV2, customIdFormat?: SpasmEventIdFormatV2) => string | number | null;
|
|
81
|
+
export declare const checkIfEventHasThisId: (unknownEvent: UnknownEventV2, id: (string | number)) => Boolean;
|
|
82
|
+
export declare const getEventById: (unknownEvents: UnknownEventV2[], id?: (string | number)) => SpasmEventV2 | null;
|
|
83
|
+
export declare const getEventsByIds: (unknownEvents: UnknownEventV2[], ids?: (string | number)[]) => SpasmEventV2[] | null;
|
|
67
84
|
export declare const extractIdByFormat: (unknownEvent: UnknownEventV2, customIdFormat?: SpasmEventIdFormatV2) => string | number | null;
|
|
68
85
|
export declare const extractSpasmId01: (unknownEvent: UnknownEventV2) => string | number;
|
|
69
86
|
export declare const toBeSpasmEventV2: (unknownEvent: UnknownEventV2) => SpasmEventV2 | null;
|
|
@@ -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.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.getPubkeysListedIn = exports.getSignersListedIn = exports.getAllSignatures = exports.getAllRootIds = exports.getAllParentIds = exports.getAllEventIds = exports.getAllIdsFromArrayOfIdObjects = exports.getVerifiedSigners = exports.getAllSigners = 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.getEventsByIds = exports.getEventById = exports.checkIfEventHasThisId = 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;
|
|
@@ -1210,6 +1223,126 @@ const getSignersListedIn = (unknownEvent, list) => {
|
|
|
1210
1223
|
};
|
|
1211
1224
|
exports.getSignersListedIn = getSignersListedIn;
|
|
1212
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;
|
|
1213
1346
|
const isAnySignerListedIn = (unknownEvent, list) => {
|
|
1214
1347
|
const signersListedIn = (0, exports.getSignersListedIn)(unknownEvent, list);
|
|
1215
1348
|
if (signersListedIn &&
|
|
@@ -1308,6 +1441,81 @@ const getIdByFormat = (unknownEvent, customIdFormat) => {
|
|
|
1308
1441
|
return idValue;
|
|
1309
1442
|
};
|
|
1310
1443
|
exports.getIdByFormat = getIdByFormat;
|
|
1444
|
+
const checkIfEventHasThisId = (unknownEvent, id) => {
|
|
1445
|
+
if (!id || !(0, exports.isStringOrNumber)(id)) {
|
|
1446
|
+
return false;
|
|
1447
|
+
}
|
|
1448
|
+
const spasmEvent = (0, exports.toBeSpasmEventV2)(unknownEvent);
|
|
1449
|
+
if (!spasmEvent || !(0, exports.isObjectWithValues)(spasmEvent)) {
|
|
1450
|
+
return false;
|
|
1451
|
+
}
|
|
1452
|
+
const eventIds = (0, exports.getAllEventIds)(spasmEvent);
|
|
1453
|
+
if (!eventIds || !(0, exports.isArrayWithValues)(eventIds)) {
|
|
1454
|
+
return false;
|
|
1455
|
+
}
|
|
1456
|
+
if (eventIds.includes(id)) {
|
|
1457
|
+
return true;
|
|
1458
|
+
}
|
|
1459
|
+
else {
|
|
1460
|
+
return false;
|
|
1461
|
+
}
|
|
1462
|
+
};
|
|
1463
|
+
exports.checkIfEventHasThisId = checkIfEventHasThisId;
|
|
1464
|
+
const getEventById = (unknownEvents, id) => {
|
|
1465
|
+
if (!id || !(0, exports.isStringOrNumber)(id)) {
|
|
1466
|
+
return null;
|
|
1467
|
+
}
|
|
1468
|
+
const spasmEvents = (0, exports.toBeSpasmEventsV2)(unknownEvents);
|
|
1469
|
+
if (!spasmEvents || !spasmEvents[0] ||
|
|
1470
|
+
!(0, exports.isObjectWithValues)(spasmEvents[0]))
|
|
1471
|
+
return null;
|
|
1472
|
+
const foundEvents = [];
|
|
1473
|
+
spasmEvents.forEach(event => {
|
|
1474
|
+
if ((0, exports.checkIfEventHasThisId)(event, id)) {
|
|
1475
|
+
foundEvents.push(event);
|
|
1476
|
+
}
|
|
1477
|
+
});
|
|
1478
|
+
if (foundEvents && Array.isArray(foundEvents) &&
|
|
1479
|
+
foundEvents.length === 1 &&
|
|
1480
|
+
(0, exports.isObjectWithValues)(foundEvents[0])) {
|
|
1481
|
+
return foundEvents[0];
|
|
1482
|
+
}
|
|
1483
|
+
else if (foundEvents && Array.isArray(foundEvents) &&
|
|
1484
|
+
foundEvents.length > 1 &&
|
|
1485
|
+
(0, exports.isArrayWithValues)(foundEvents)) {
|
|
1486
|
+
const mergedEvent = (0, exports.mergeSpasmEventsV2)(foundEvents);
|
|
1487
|
+
if (mergedEvent) {
|
|
1488
|
+
return mergedEvent;
|
|
1489
|
+
}
|
|
1490
|
+
}
|
|
1491
|
+
return null;
|
|
1492
|
+
};
|
|
1493
|
+
exports.getEventById = getEventById;
|
|
1494
|
+
const getEventsByIds = (unknownEvents, ids) => {
|
|
1495
|
+
if (!ids || !(0, exports.isArrayWithValues)(ids)) {
|
|
1496
|
+
return null;
|
|
1497
|
+
}
|
|
1498
|
+
const spasmEvents = (0, exports.toBeSpasmEventsV2)(unknownEvents);
|
|
1499
|
+
if (!spasmEvents || !spasmEvents[0] ||
|
|
1500
|
+
!(0, exports.isObjectWithValues)(spasmEvents[0]))
|
|
1501
|
+
return null;
|
|
1502
|
+
const foundEvents = [];
|
|
1503
|
+
ids.forEach(id => {
|
|
1504
|
+
spasmEvents.forEach(event => {
|
|
1505
|
+
if ((0, exports.checkIfEventHasThisId)(event, id)) {
|
|
1506
|
+
foundEvents.push(event);
|
|
1507
|
+
}
|
|
1508
|
+
});
|
|
1509
|
+
});
|
|
1510
|
+
const mergedEvents = (0, exports.mergeDifferentSpasmEventsV2)(foundEvents);
|
|
1511
|
+
if (mergedEvents && (0, exports.isArrayWithValues)(mergedEvents)) {
|
|
1512
|
+
return mergedEvents;
|
|
1513
|
+
}
|
|
1514
|
+
else {
|
|
1515
|
+
return null;
|
|
1516
|
+
}
|
|
1517
|
+
};
|
|
1518
|
+
exports.getEventsByIds = getEventsByIds;
|
|
1311
1519
|
exports.extractIdByFormat = exports.getIdByFormat;
|
|
1312
1520
|
const extractSpasmId01 = (unknownEvent) => {
|
|
1313
1521
|
return (0, exports.extractIdByFormat)(unknownEvent, { name: "spasmid", version: "01" });
|
|
@@ -1715,19 +1923,34 @@ const mergeDifferentSpasmEventsV2 = (unknownEvents, depth = 0) => {
|
|
|
1715
1923
|
return null;
|
|
1716
1924
|
const uniqueIds = new Set();
|
|
1717
1925
|
const uniqueEvents = [];
|
|
1718
|
-
|
|
1926
|
+
const checkIfEventIsAlreadyInUnique = (event) => {
|
|
1927
|
+
const allEventIds = (0, exports.getAllEventIds)(event);
|
|
1928
|
+
let isAlreadyAdded = false;
|
|
1929
|
+
if (allEventIds && Array.isArray(allEventIds)) {
|
|
1930
|
+
allEventIds.forEach(id => {
|
|
1931
|
+
if (uniqueIds.has(id)) {
|
|
1932
|
+
isAlreadyAdded = true;
|
|
1933
|
+
}
|
|
1934
|
+
});
|
|
1935
|
+
}
|
|
1936
|
+
return isAlreadyAdded;
|
|
1937
|
+
};
|
|
1719
1938
|
spasmEvents?.forEach(event => {
|
|
1720
1939
|
// Spasm events might have multiple IDs so we need to use
|
|
1721
1940
|
// flags below to avoid redoing the same actions.
|
|
1722
1941
|
let isEventAddedToUnique = false;
|
|
1942
|
+
const isEventAlreadyInUnique = checkIfEventIsAlreadyInUnique(event);
|
|
1723
1943
|
let isEventMerged = false;
|
|
1944
|
+
// TODO check if other IDs of an event
|
|
1945
|
+
// are not in uniqueIds
|
|
1724
1946
|
if ('ids' in event && event.ids &&
|
|
1725
1947
|
Array.isArray(event.ids)) {
|
|
1726
1948
|
event.ids.forEach(id => {
|
|
1727
1949
|
if ("value" in id && id.value &&
|
|
1728
1950
|
(typeof (id.value) === "string" ||
|
|
1729
1951
|
typeof (id.value) === "number")) {
|
|
1730
|
-
if (!uniqueIds.has(id.value)
|
|
1952
|
+
if (!uniqueIds.has(id.value) &&
|
|
1953
|
+
!isEventAlreadyInUnique) {
|
|
1731
1954
|
uniqueIds.add(id.value);
|
|
1732
1955
|
if (!isEventAddedToUnique) {
|
|
1733
1956
|
uniqueEvents.push(event);
|