spasm.js 2.0.0-beta.8 → 2.0.0-rc

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 (98) hide show
  1. package/README.md +156 -8
  2. package/lib.commonjs/convert/convertToEventForSpasmid.d.ts.map +1 -1
  3. package/lib.commonjs/convert/convertToEventForSpasmid.js.map +1 -1
  4. package/lib.commonjs/convert/convertToNostr.d.ts +4 -0
  5. package/lib.commonjs/convert/convertToNostr.d.ts.map +1 -0
  6. package/lib.commonjs/convert/convertToNostr.js +477 -0
  7. package/lib.commonjs/convert/convertToNostr.js.map +1 -0
  8. package/lib.commonjs/convert/convertToSpasm.d.ts +7 -1
  9. package/lib.commonjs/convert/convertToSpasm.d.ts.map +1 -1
  10. package/lib.commonjs/convert/convertToSpasm.js +754 -29
  11. package/lib.commonjs/convert/convertToSpasm.js.map +1 -1
  12. package/lib.commonjs/convert/convertToSpasmEventDatabase.d.ts.map +1 -1
  13. package/lib.commonjs/convert/convertToSpasmEventDatabase.js.map +1 -1
  14. package/lib.commonjs/convert/convertToSpasmEventEnvelope.d.ts.map +1 -1
  15. package/lib.commonjs/convert/convertToSpasmEventEnvelope.js.map +1 -1
  16. package/lib.commonjs/convert/convertToSpasmEventEnvelopeWithTree.d.ts +2 -2
  17. package/lib.commonjs/convert/convertToSpasmEventEnvelopeWithTree.d.ts.map +1 -1
  18. package/lib.commonjs/convert/convertToSpasmEventEnvelopeWithTree.js +41 -7
  19. package/lib.commonjs/convert/convertToSpasmEventEnvelopeWithTree.js.map +1 -1
  20. package/lib.commonjs/convert/getSpasmId.d.ts.map +1 -1
  21. package/lib.commonjs/convert/getSpasmId.js +3 -1
  22. package/lib.commonjs/convert/getSpasmId.js.map +1 -1
  23. package/lib.commonjs/convert/index.d.ts +2 -1
  24. package/lib.commonjs/convert/index.d.ts.map +1 -1
  25. package/lib.commonjs/convert/index.js +7 -1
  26. package/lib.commonjs/convert/index.js.map +1 -1
  27. package/lib.commonjs/identify/identifyEvent.d.ts +5 -5
  28. package/lib.commonjs/identify/identifyEvent.d.ts.map +1 -1
  29. package/lib.commonjs/identify/identifyEvent.js +11 -0
  30. package/lib.commonjs/identify/identifyEvent.js.map +1 -1
  31. package/lib.commonjs/types/interfaces.d.ts +12 -3
  32. package/lib.commonjs/types/interfaces.d.ts.map +1 -1
  33. package/lib.commonjs/types/interfaces.js +0 -5
  34. package/lib.commonjs/types/interfaces.js.map +1 -1
  35. package/lib.commonjs/utils/nostrUtils.d.ts +6 -0
  36. package/lib.commonjs/utils/nostrUtils.d.ts.map +1 -1
  37. package/lib.commonjs/utils/nostrUtils.js +94 -1
  38. package/lib.commonjs/utils/nostrUtils.js.map +1 -1
  39. package/lib.commonjs/utils/utils.d.ts +90 -18
  40. package/lib.commonjs/utils/utils.d.ts.map +1 -1
  41. package/lib.commonjs/utils/utils.js +1222 -42
  42. package/lib.commonjs/utils/utils.js.map +1 -1
  43. package/lib.esm/convert/convertToEventForSpasmid.d.ts.map +1 -1
  44. package/lib.esm/convert/convertToEventForSpasmid.js +1 -3
  45. package/lib.esm/convert/convertToEventForSpasmid.js.map +1 -1
  46. package/lib.esm/convert/convertToNostr.d.ts +4 -0
  47. package/lib.esm/convert/convertToNostr.d.ts.map +1 -0
  48. package/lib.esm/convert/convertToNostr.js +472 -0
  49. package/lib.esm/convert/convertToNostr.js.map +1 -0
  50. package/lib.esm/convert/convertToSpasm.d.ts +7 -1
  51. package/lib.esm/convert/convertToSpasm.d.ts.map +1 -1
  52. package/lib.esm/convert/convertToSpasm.js +749 -33
  53. package/lib.esm/convert/convertToSpasm.js.map +1 -1
  54. package/lib.esm/convert/convertToSpasmEventDatabase.d.ts.map +1 -1
  55. package/lib.esm/convert/convertToSpasmEventDatabase.js.map +1 -1
  56. package/lib.esm/convert/convertToSpasmEventEnvelope.d.ts.map +1 -1
  57. package/lib.esm/convert/convertToSpasmEventEnvelope.js.map +1 -1
  58. package/lib.esm/convert/convertToSpasmEventEnvelopeWithTree.d.ts +2 -2
  59. package/lib.esm/convert/convertToSpasmEventEnvelopeWithTree.d.ts.map +1 -1
  60. package/lib.esm/convert/convertToSpasmEventEnvelopeWithTree.js +42 -8
  61. package/lib.esm/convert/convertToSpasmEventEnvelopeWithTree.js.map +1 -1
  62. package/lib.esm/convert/getSpasmId.d.ts.map +1 -1
  63. package/lib.esm/convert/getSpasmId.js +4 -2
  64. package/lib.esm/convert/getSpasmId.js.map +1 -1
  65. package/lib.esm/convert/index.d.ts +2 -1
  66. package/lib.esm/convert/index.d.ts.map +1 -1
  67. package/lib.esm/convert/index.js +2 -1
  68. package/lib.esm/convert/index.js.map +1 -1
  69. package/lib.esm/identify/identifyEvent.d.ts +5 -5
  70. package/lib.esm/identify/identifyEvent.d.ts.map +1 -1
  71. package/lib.esm/identify/identifyEvent.js +11 -0
  72. package/lib.esm/identify/identifyEvent.js.map +1 -1
  73. package/lib.esm/types/interfaces.d.ts +12 -3
  74. package/lib.esm/types/interfaces.d.ts.map +1 -1
  75. package/lib.esm/types/interfaces.js +0 -5
  76. package/lib.esm/types/interfaces.js.map +1 -1
  77. package/lib.esm/utils/nostrUtils.d.ts +6 -0
  78. package/lib.esm/utils/nostrUtils.d.ts.map +1 -1
  79. package/lib.esm/utils/nostrUtils.js +92 -1
  80. package/lib.esm/utils/nostrUtils.js.map +1 -1
  81. package/lib.esm/utils/utils.d.ts +90 -18
  82. package/lib.esm/utils/utils.d.ts.map +1 -1
  83. package/lib.esm/utils/utils.js +1171 -39
  84. package/lib.esm/utils/utils.js.map +1 -1
  85. package/package.json +1 -1
  86. package/src.ts/convert/convertToEventForSpasmid.ts +0 -2
  87. package/src.ts/convert/convertToNostr.ts +615 -0
  88. package/src.ts/convert/convertToSpasm.ts +923 -68
  89. package/src.ts/convert/convertToSpasmEventDatabase.ts +0 -6
  90. package/src.ts/convert/convertToSpasmEventEnvelope.ts +1 -3
  91. package/src.ts/convert/convertToSpasmEventEnvelopeWithTree.ts +63 -8
  92. package/src.ts/convert/getSpasmId.ts +6 -1
  93. package/src.ts/convert/index.ts +8 -1
  94. package/src.ts/docs/architecture.md +1 -1
  95. package/src.ts/identify/identifyEvent.ts +19 -5
  96. package/src.ts/types/interfaces.ts +21 -67
  97. package/src.ts/utils/nostrUtils.ts +109 -1
  98. package/src.ts/utils/utils.ts +1482 -93
package/README.md CHANGED
@@ -5,11 +5,11 @@ Signer and Protocol Agnostic Social Media (Spasm)
5
5
 
6
6
  The future of social media is agnostic to signing keys, messaging formats, transport protocols and storage infrastructure. However, such design places significant burden on developers, who must maintain a myriad of protocols, formats, and architectures.
7
7
 
8
- This library simplifies the process by encapsulating the complexities of various messaging formats into a single, standardized JSON object. By abstracting the underlying differences between these formats, it provides a unified interface for developers to work with, ensuring consistency and reducing the need for custom handling of each format.
8
+ This library simplifies the process by encapsulating the complexities of various messaging formats into a single, standardized JSON object called `SpasmEvent`. By abstracting the underlying differences between these formats, it provides a unified interface for developers to work with, ensuring consistency and reducing the need for custom handling of each format.
9
9
 
10
10
  For instance, instead of maintaining three distinct versions of the frontend (UI) and three separate database tables for three different messaging formats, developers can leverage this library to standardize all messages into a single format. This approach simplifies the architecture by consolidating the database tables into one and requiring only a single version of the UI, with minor adjustments as needed.
11
11
 
12
- This library also introduces an innovative concept of signing the same message with multiple protocols and different private keys, while still sharing the same Spasm event ID, allowing not only the distribution of the message across different networks, but also chaining of all the replies back to the original message.
12
+ This library also introduces an innovative concept of signing the same message with multiple protocols and different private keys, while still sharing the same deterministic Spasm event ID, allowing not only the distribution of the message across different networks, but also chaining of all replies and reactions back to the original message.
13
13
 
14
14
  TypeScript interfaces of JSON objects of messaging formats that can be standardized with this library can be found at `./src.ts/types/interfaces.ts`.
15
15
 
@@ -27,10 +27,11 @@ export type UnknownEventV2 =
27
27
  SpasmEventBodyV2 |
28
28
  SpasmEventEnvelopeV2 |
29
29
  SpasmEventEnvelopeWithTreeV2 |
30
- SpasmEventDatabaseV2
30
+ SpasmEventDatabaseV2 |
31
+ SpasmEventBodySignedClosedV2
31
32
  ```
32
33
 
33
- After converting an unknown event to the Spasm event, you can now easily access common properties across most public messaging formats such as:
34
+ After converting an unknown event to a Spasm event, you can easily access common properties across most public messaging formats such as:
34
35
  - `spasmEvent.action`
35
36
  - `spasmEvent.content`
36
37
  - `spasmEvent.timestamp`
@@ -48,7 +49,7 @@ After converting an unknown event to the Spasm event, you can now easily access
48
49
  - `spasmEvent.signatures[0].pubkey`
49
50
  - `spasmEvent.signatures[0].format.name`
50
51
 
51
- The Spasm event can be signed with different protocols (e.g., Spasm, Dmp, Nostr), so the original signed events are stored at:
52
+ Any Spasm event can be signed with different protocols (e.g., Spasm, Dmp, Nostr), so all the original (un)signed event objects/strings are stored at:
52
53
  - `spasmEvent.siblings`
53
54
 
54
55
  See the full list of properties of `SpasmEventV2` at `./src.ts/types/interfaces.ts`.
@@ -276,9 +277,14 @@ const event = {
276
277
  // Identify the event
277
278
  const info = identifyObject(event)
278
279
 
279
- // Convert to Spasm
280
+ // Convert to Spasm (the latest version)
280
281
  const spasmEvent = convertToSpasm(event)
281
282
 
283
+ // Convert to Spasm (specify version)
284
+ const spasmEvent = convertToSpasm(
285
+ event, { to: { spasm: { version: "2.0.0" } } }
286
+ )
287
+
282
288
  // Merge events into one event
283
289
  const spasmEvent = mergeSpasmEventsV2([
284
290
  event, eventWithStats, eventWithComments
@@ -363,6 +369,13 @@ const signers = spasm.getAllSigners(event)
363
369
  // Get an array of signers/pubkeys which have
364
370
  // been verified against attached signatures
365
371
  const verifiedSigners = spasm.getVerifiedSigners(event)
372
+
373
+ const spasmSigners = getAllSpasmSigners(event)
374
+ const ethereumSigners = getAllEthereumSigners(event)
375
+ const nostrSigners = getAllNostrSigners(event)
376
+ const verifiedSpasmSigners = getVerifiedSpasmSigners(event)
377
+ const verifiedEthereumSigners = getVerifiedEthereumSigners(event)
378
+ const verifiedNostrSigners = getVerifiedNostrSigners(event)
366
379
  ```
367
380
 
368
381
  ```js
@@ -450,13 +463,49 @@ const spasmId = spasm.extractIdByFormat(event, {
450
463
  name: "spasmid"
451
464
  })
452
465
 
453
- // Note: the function above doesn't calculate a new ID, but
466
+ // other aliases for extracting event, parent, and root IDs:
467
+ // extractSpasmId01()
468
+ // extractParentIdByFormat()
469
+ // extractParentSpasmId01()
470
+ // extractRootIdByFormat()
471
+ // extractRootSpasmId01()
472
+
473
+ // Note: the functions above don't calculate new IDs, but
454
474
  // simply extracts an existing ID from an event object.
455
- // If you want to calculate an ID (e.g., to verify it),
475
+ // If you want to calculate a Spasm ID (e.g., to verify it),
456
476
  // then you must use another function, for example:
457
477
  const spasmId = spasm.getSpasmId(event)
458
478
  ```
459
479
 
480
+ ```js
481
+ // Extract Nostr event(s) from a Spasm event.
482
+ const nostrEvent = extractNostrEvent(spasmEvent)
483
+ const nostrSignedEvent = extractSignedNostrEvent(spasmEvent)
484
+ const nostrEvents = extractNostrEvents(spasmEvent)
485
+ const nostrSignedEvents = extractSignedNostrEvents(spasmEvent)
486
+
487
+ // Note: Spasm event can have multiple siblings of Nostr event type
488
+ ```
489
+
490
+ ```js
491
+ // Check if Spasm event has any sibling of protocol type
492
+ const ifHasSiblingOfProtocol = hasSiblingOfProtocol(event, "spasm")
493
+ const ifHasSiblingSpasm = hasSiblingSpasm(event)
494
+ const ifHasSiblingDmp = hasSiblingDmp(event)
495
+ const ifHasSiblingNostr = hasSiblingNostr(event)
496
+ const ifHasSiblingWeb2 = hasSiblingWeb2(event)
497
+ ```
498
+
499
+ ```js
500
+ const idFormatName = extractIdFormatNameFromSpasmEventIdV2(event)
501
+
502
+ const ifFormatNames = extractAllIdFormatNamesFromSpasmEventV2(event)
503
+
504
+ // aliases
505
+ const ifFormatNames = getAllFormatNamesFromSpasmEventV2(event)
506
+ const ifFormatNames = getAllFormatNamesFromEvent(event)
507
+ ```
508
+
460
509
  ```js
461
510
  const ifEventHasThisId = spasm.checkIfEventHasThisId(
462
511
  event, "spasmid01192d1f9994bf436f50841459d0a43c0de13ef4aaa5233827bdfe2ea2bc030d6f"
@@ -485,6 +534,10 @@ const events = spasm.getEventsByIds(
485
534
  // it's not SpasmEventV2 yet.
486
535
  const spasmEventV2 = toBeSpasmEventV2(event)
487
536
 
537
+ // Convert each event of an array of events to SpasmEventV2 only
538
+ // if event is not SpasmEventV2 yet.
539
+ const spasmEventsV2 = toBeSpasmEventsV2(events)
540
+
488
541
  // Note: you must use convertToSpasm() at least one time
489
542
  // upon receiving an event, because by default it will
490
543
  // verify all the signatures and sanitize nested strings.
@@ -492,6 +545,101 @@ const spasmEventV2 = toBeSpasmEventV2(event)
492
545
  // function to minimize computational load.
493
546
  ```
494
547
 
548
+ ```js
549
+ // Merge event children
550
+ const mergedChildren = mergedChildrenV2(children1, children2)
551
+ ```
552
+
553
+ ```js
554
+ // Add events (root, parent, children) to event's tree recursively
555
+ const eventWithTree = addEventsToTree(mainEvent, relatives)
556
+
557
+ // Aliases
558
+ // addParentToTree()
559
+ // addParentToEvent()
560
+ // addRootToTree()
561
+ // addRootToEvent()
562
+ // addChildrenToTree()
563
+ // addCommentsToEvent()
564
+ // addRepliesToEvent()
565
+
566
+ // Attaching events as relatives to event's tree
567
+ const eventWithRoot = attachEventAsRoot(mainEvent, root)
568
+ const eventWithParent = attachEventAsParent(mainEvent, parent)
569
+ const eventWithChildren = attachEventAsChild(mainEvent, child)
570
+ ```
571
+
572
+ ```js
573
+ // Check if arrays have common IDs
574
+ const ifCommonId = ifArraysHaveCommonId(array1, array2)
575
+
576
+ // Example of finding whether events are relatives
577
+ // and then attaching event as a root
578
+ const event1RootIds = getAllRootIds(event1)
579
+ const event2Ids = getAllEventIds(event2)
580
+ if (ifArraysHaveCommonId(event1RootIds, event2Ids)) {
581
+ treeEventV2 = attachEventAsRoot(event1, event2)
582
+ }
583
+ ```
584
+
585
+ ```js
586
+ // Check if an array already has this event
587
+ checkIfArrayHasThisEvent(array, event)
588
+
589
+ // alias
590
+ checkIfArrayHasThisSpasmEventV2
591
+
592
+ // Insert or merge an event into array
593
+ insertIntoArrayIfEventIsUnique(array, event)
594
+
595
+ // alias (merge enabled by default)
596
+ appendToArrayIfEventIsUnique(array, event)
597
+ pushToArrayIfEventIsUnique(array, event)
598
+
599
+ // alias (merge enabled by default)
600
+ prependToArrayIfEventIsUnique(array, event)
601
+ unshiftToArrayIfEventIsUnique(array, event)
602
+
603
+ // Merge event into array (only if not unique)
604
+ mergeEventIntoArray(array, event)
605
+ ```
606
+
607
+ ```js
608
+ // Sort events by added timestamp ascending
609
+ const asc = sortSpasmEventsV2ByDbAddedTimestamp(events, "asc")
610
+
611
+ // Sort events by added timestamp descending
612
+ const desc = sortSpasmEventsV2ByDbAddedTimestamp(events, "desc")
613
+
614
+ // alias
615
+ const sortDesc = sortSpasmEventsV2()
616
+ ```
617
+
618
+ ```js
619
+ // Check if two events have the same Spasm ID version 01
620
+ const ifSameEvent = ifEventsHaveSameSpasmId01(event1, event2)
621
+ ```
622
+
623
+ ```js
624
+ // Merge stats
625
+ const mergedStats = mergeStatsV2(arrayOfStats)
626
+ ```
627
+
628
+ ```js
629
+ const mergedChildren = mergeChildrenV2(arrayOfChildren)
630
+ ```
631
+
632
+ ```js
633
+ // Remove siblings without signatures if signed siblings
634
+ // of the same protocol and protocol version are attached.
635
+ cleanSpasmEventV2(spasmEventV2)
636
+ ```
637
+
638
+ ```js
639
+ // Assign formats for IDs, signatures, addresses if don't exist
640
+ assignFormats(event)
641
+ ```
642
+
495
643
  ## Examples
496
644
 
497
645
  ### Convert DmpEventSignedClosed to Spasm
@@ -1 +1 @@
1
- {"version":3,"file":"convertToEventForSpasmid.d.ts","sourceRoot":"","sources":["../../src.ts/convert/convertToEventForSpasmid.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EASb,MAAM,0BAA0B,CAAC;AAqBlC,eAAO,MAAM,wBAAwB,iBACrB,cAAc,yBAE3B,iBAAiB,GAAG,IA+BtB,CAAA;AAED,eAAO,MAAM,sCAAsC,eACrC,YAAY,KAEvB,iBAAiB,GAAG,IA4NtB,CAAA"}
1
+ {"version":3,"file":"convertToEventForSpasmid.d.ts","sourceRoot":"","sources":["../../src.ts/convert/convertToEventForSpasmid.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EAQb,MAAM,0BAA0B,CAAC;AAoBlC,eAAO,MAAM,wBAAwB,iBACrB,cAAc,yBAE3B,iBAAiB,GAAG,IA+BtB,CAAA;AAED,eAAO,MAAM,sCAAsC,eACrC,YAAY,KAEvB,iBAAiB,GAAG,IA4NtB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"convertToEventForSpasmid.js","sourceRoot":"","sources":["../../src.ts/convert/convertToEventForSpasmid.ts"],"names":[],"mappings":";;;AAcA,2DAAoD;AAEpD,kDAc6B;AAE7B,WAAW;AACJ,MAAM,wBAAwB,GAAG,CACtC,YAA4B,EAC5B,SAAS,GAAG,IAAI,EACU,EAAE;IAE5B,IAAI,YAAY,GAAwB;QACtC,IAAI,EAAE,cAAc;KACrB,CAAA;IAED,eAAe;IACf,IACE,MAAM,IAAI,YAAY;QACtB,YAAY,CAAC,IAAI,KAAK,cAAc,EACpC,CAAC;QACD,YAAY,GAAG,YAAY,CAAA;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAA+B;YAC/C,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;SACpC,CAAA;QACD,YAAY,GAAG,IAAA,kCAAc,EAAC,YAAY,EAAE,YAAY,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAE9B,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,iBAAiB,GACrB,IAAA,8CAAsC,EACpC,YAAY,CAEf,CAAA;QACD,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAlCY,QAAA,wBAAwB,4BAkCpC;AAEM,MAAM,sCAAsC,GAAG,CACpD,UAAwB,EAEE,EAAE;IAE5B,IAAI,CAAC,IAAA,6BAAkB,EAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAA;IAEhD,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAA;IAEnD,MAAM,eAAe,GAAsB,EAAE,CAAA;IAE7C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,4DAA4D;QAC5D,MAAM,WAAW,GACf,IAAA,gCAAqB,EACnB,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CACX,CAAA;QAE7B,MAAM,YAAY,GAAG,IAAA,iCAAsB,EAAC,WAAW,CAAC,CAAA;QAExD,eAAe,CAAC,MAAM,GAAG,YAAY,CAAA;IACvC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,eAAe,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAC5C,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,eAAe,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC1C,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IAC9C,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,eAAe,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IAClD,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB;;;;WAIG;QACF,MAAM,YAAY,GAChB,IAAA,wCAA6B,EAC7B,UAAU,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAC7B,CAAA;QAE7B,MAAM,aAAa,GAAG,IAAA,kCAAuB,EAAC,YAAY,CAAC,CAAA;QAE3D,eAAe,CAAC,OAAO,GAAG,aAAa,CAAA;IACzC,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,eAAe,CAAC,IAAI,GAAG,IAAA,6BAAkB,EACvC,UAAU,CAAC,IAAI,EAAE,SAAS,CAC3B,CAAA;IACH,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,GACd,IAAA,wCAA6B,EAC3B,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CACZ,CAAA;QAE7B,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,UAAU,CAAC,CAAA;QAErD,eAAe,CAAC,KAAK,GAAG,WAAW,CAAA;IACrC,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,GACd,IAAA,wCAA6B,EAC3B,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CACZ,CAAA;QAE7B,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,UAAU,CAAC,CAAA;QAErD,eAAe,CAAC,KAAK,GAAG,WAAW,CAAA;IACrC,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,eAAe,CAAC,QAAQ;YACtB,IAAA,uCAA4B,EAC1B,UAAU,CAAC,QAAQ,CACV,CAAA;IACf,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,eAAe,CAAC,IAAI,GAAG,IAAA,+BAAoB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,YAAY,GAChB,IAAA,iCAAsB,EAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAE3C,eAAe,CAAC,MAAM,GAAG,YAAY,CAAA;IACvC,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAA,wCAA6B,EACnD,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CACV,CAAA;QAEhC,MAAM,gBAAgB,GAAG,IAAA,qCAA0B,EACjD,eAAe,CAChB,CAAA;QAED,eAAe,CAAC,UAAU,GAAG,gBAAgB,CAAA;IAC/C,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzB;;;;WAIG;QACF,MAAM,aAAa,GACjB,IAAA,wCAA6B,EAC7B,UAAU,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CACjC,CAAA;QAE1B,wCAAwC;QACxC,MAAM,cAAc,GAAG,IAAA,kCAAuB,EAAC,aAAa,CAAC,CAAA;QAE7D,eAAe,CAAC,QAAQ,GAAG,cAAc,CAAA;IAC3C,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,eAAe,CAAC,MAAM,GAAG,IAAA,6BAAkB,EACzC,UAAU,CAAC,MAAM,EAAE,OAAO,CAC3B,CAAA;QAED,oBAAoB;QACpB,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9C,IACE,KAAK,IAAI,KAAK,CAAC,KAAK;gBACpB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC1B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACd,CAAC;gBACD,MAAM,UAAU,GACd,IAAA,wCAA6B,EAC3B,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CACP,CAAA;gBAE7B,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,UAAU,CAAC,CAAA;gBAErD,IACE,eAAe,CAAC,MAAM;oBACtB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACrC,CAAC;oBACD,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,WAAW,CAAA;gBACnD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IAC9C,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,eAAe,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAChD,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,eAAe,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC1C,CAAC;IAEF;;;;;;OAMG;IACF,IACE,UAAU,CAAC,IAAI;QACf,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAClB,CAAC;QACD,qCAAqC;QACrC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC5B,IACE,GAAG,IAAI,QAAQ,IAAI,GAAG;gBACtB,GAAG,CAAC,MAAM,KAAK,WAAW,EAC1B,CAAC;gBACD,4CAA4C;gBAC5C,uCAAuC;gBACvC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;oBAC1B,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC9B,CAAC;qBAAM,IACL,eAAe,CAAC,IAAI;oBACpB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;oBACnC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;oBACvB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;oBAClC,OAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ;oBACvD,GAAG,CAAC,UAAU;oBACd,OAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ;oBACnC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,EACnD,CAAC;oBACD,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QACF,wBAAwB;QACxB,IACE,eAAe,CAAC,IAAI;YACpB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;YACnC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACvB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;YAC7B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC5C,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC3B,IAAA,uCAA4B,EAC1B,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CACpB,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AA/NY,QAAA,sCAAsC,0CA+NlD"}
1
+ {"version":3,"file":"convertToEventForSpasmid.js","sourceRoot":"","sources":["../../src.ts/convert/convertToEventForSpasmid.ts"],"names":[],"mappings":";;;AAaA,2DAAoD;AAEpD,kDAa6B;AAE7B,WAAW;AACJ,MAAM,wBAAwB,GAAG,CACtC,YAA4B,EAC5B,SAAS,GAAG,IAAI,EACU,EAAE;IAE5B,IAAI,YAAY,GAAwB;QACtC,IAAI,EAAE,cAAc;KACrB,CAAA;IAED,eAAe;IACf,IACE,MAAM,IAAI,YAAY;QACtB,YAAY,CAAC,IAAI,KAAK,cAAc,EACpC,CAAC;QACD,YAAY,GAAG,YAAY,CAAA;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAA+B;YAC/C,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;SACpC,CAAA;QACD,YAAY,GAAG,IAAA,kCAAc,EAAC,YAAY,EAAE,YAAY,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAA;IAE9B,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,iBAAiB,GACrB,IAAA,8CAAsC,EACpC,YAAY,CAEf,CAAA;QACD,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAlCY,QAAA,wBAAwB,4BAkCpC;AAEM,MAAM,sCAAsC,GAAG,CACpD,UAAwB,EAEE,EAAE;IAE5B,IAAI,CAAC,IAAA,6BAAkB,EAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAA;IAEhD,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAA;IAEnD,MAAM,eAAe,GAAsB,EAAE,CAAA;IAE7C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,4DAA4D;QAC5D,MAAM,WAAW,GACf,IAAA,gCAAqB,EACnB,UAAU,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CACX,CAAA;QAE7B,MAAM,YAAY,GAAG,IAAA,iCAAsB,EAAC,WAAW,CAAC,CAAA;QAExD,eAAe,CAAC,MAAM,GAAG,YAAY,CAAA;IACvC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,eAAe,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;IAC5C,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,eAAe,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC1C,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IAC9C,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,eAAe,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IAClD,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB;;;;WAIG;QACF,MAAM,YAAY,GAChB,IAAA,wCAA6B,EAC7B,UAAU,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAC7B,CAAA;QAE7B,MAAM,aAAa,GAAG,IAAA,kCAAuB,EAAC,YAAY,CAAC,CAAA;QAE3D,eAAe,CAAC,OAAO,GAAG,aAAa,CAAA;IACzC,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,eAAe,CAAC,IAAI,GAAG,IAAA,6BAAkB,EACvC,UAAU,CAAC,IAAI,EAAE,SAAS,CAC3B,CAAA;IACH,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,GACd,IAAA,wCAA6B,EAC3B,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CACZ,CAAA;QAE7B,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,UAAU,CAAC,CAAA;QAErD,eAAe,CAAC,KAAK,GAAG,WAAW,CAAA;IACrC,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,UAAU,GACd,IAAA,wCAA6B,EAC3B,UAAU,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CACZ,CAAA;QAE7B,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,UAAU,CAAC,CAAA;QAErD,eAAe,CAAC,KAAK,GAAG,WAAW,CAAA;IACrC,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,eAAe,CAAC,QAAQ;YACtB,IAAA,uCAA4B,EAC1B,UAAU,CAAC,QAAQ,CACV,CAAA;IACf,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACpB,eAAe,CAAC,IAAI,GAAG,IAAA,+BAAoB,EAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,MAAM,YAAY,GAChB,IAAA,iCAAsB,EAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAE3C,eAAe,CAAC,MAAM,GAAG,YAAY,CAAA;IACvC,CAAC;IAED,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;QAC1B,MAAM,eAAe,GAAG,IAAA,wCAA6B,EACnD,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CACV,CAAA;QAEhC,MAAM,gBAAgB,GAAG,IAAA,qCAA0B,EACjD,eAAe,CAChB,CAAA;QAED,eAAe,CAAC,UAAU,GAAG,gBAAgB,CAAA;IAC/C,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACzB;;;;WAIG;QACF,MAAM,aAAa,GACjB,IAAA,wCAA6B,EAC7B,UAAU,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CACjC,CAAA;QAE1B,wCAAwC;QACxC,MAAM,cAAc,GAAG,IAAA,kCAAuB,EAAC,aAAa,CAAC,CAAA;QAE7D,eAAe,CAAC,QAAQ,GAAG,cAAc,CAAA;IAC3C,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtB,eAAe,CAAC,MAAM,GAAG,IAAA,6BAAkB,EACzC,UAAU,CAAC,MAAM,EAAE,OAAO,CAC3B,CAAA;QAED,oBAAoB;QACpB,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9C,IACE,KAAK,IAAI,KAAK,CAAC,KAAK;gBACpB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC1B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACd,CAAC;gBACD,MAAM,UAAU,GACd,IAAA,wCAA6B,EAC3B,KAAK,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CACP,CAAA;gBAE7B,MAAM,WAAW,GAAG,IAAA,gCAAqB,EAAC,UAAU,CAAC,CAAA;gBAErD,IACE,eAAe,CAAC,MAAM;oBACtB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EACrC,CAAC;oBACD,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,WAAW,CAAA;gBACnD,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IAC9C,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,eAAe,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAChD,CAAC;IAED,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,eAAe,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IAC1C,CAAC;IAEF;;;;;;OAMG;IACF,IACE,UAAU,CAAC,IAAI;QACf,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC9B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAClB,CAAC;QACD,qCAAqC;QACrC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC5B,IACE,GAAG,IAAI,QAAQ,IAAI,GAAG;gBACtB,GAAG,CAAC,MAAM,KAAK,WAAW,EAC1B,CAAC;gBACD,4CAA4C;gBAC5C,uCAAuC;gBACvC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;oBAC1B,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC9B,CAAC;qBAAM,IACL,eAAe,CAAC,IAAI;oBACpB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;oBACnC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;oBACvB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU;oBAClC,OAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,QAAQ;oBACvD,GAAG,CAAC,UAAU;oBACd,OAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ;oBACnC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,EACnD,CAAC;oBACD,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QACF,wBAAwB;QACxB,IACE,eAAe,CAAC,IAAI;YACpB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;YACnC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACvB,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;YAC7B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC5C,CAAC;YACD,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;gBAC3B,IAAA,uCAA4B,EAC1B,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CACpB,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AA/NY,QAAA,sCAAsC,0CA+NlD"}
@@ -0,0 +1,4 @@
1
+ import { NostrEvent, NostrEventSignedOpened, NostrSpasmEvent, NostrSpasmEventSignedOpened, SpasmEventV2, UnknownEventV2 } from "../types/interfaces.js";
2
+ export declare const convertToNostr: (unknownEvent: UnknownEventV2, nostrSpasmVersion?: "2.0.0") => NostrEvent | NostrEventSignedOpened | NostrSpasmEvent | NostrSpasmEventSignedOpened | null;
3
+ export declare const convertSpasmEventV2ToNostrSpasmV2: (spasmEventV2: SpasmEventV2) => NostrEvent | NostrEventSignedOpened | NostrSpasmEvent | NostrSpasmEventSignedOpened | null;
4
+ //# sourceMappingURL=convertToNostr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertToNostr.d.ts","sourceRoot":"","sources":["../../src.ts/convert/convertToNostr.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,eAAe,EACf,2BAA2B,EAG3B,YAAY,EACZ,cAAc,EACf,MAAM,wBAAwB,CAAA;AAmB/B,eAAO,MAAM,cAAc,iBACX,cAAc,sBACT,OAAO,KAE1B,UAAU,GACV,sBAAsB,GACtB,eAAe,GACf,2BAA2B,GAC3B,IAoBD,CAAA;AAED,eAAO,MAAM,iCAAiC,iBAC9B,YAAY,KAE1B,UAAU,GACV,sBAAsB,GACtB,eAAe,GACf,2BAA2B,GAC3B,IAuMD,CAAA"}