@candypoets/nipworker 0.96.3 → 0.96.5

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 (180) hide show
  1. package/README.md +206 -73
  2. package/crates/native-ffi/README.md +14 -151
  3. package/crates/native-ffi/ios/README.md +4 -50
  4. package/crates/native-ffi/react-native/README.md +8 -7
  5. package/crates/native-ffi/react-native/android/build.gradle +1 -0
  6. package/crates/native-ffi/react-native/android/src/main/cpp/NipworkerByteRuntime.cpp +348 -0
  7. package/crates/native-ffi/react-native/android/src/main/java/com/candypoets/nipworker/reactnative/NipworkerHooks.kt +292 -0
  8. package/crates/native-ffi/react-native/android/src/main/java/com/candypoets/nipworker/reactnative/NipworkerReactNativeModule.kt +283 -89
  9. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/AddressPointer.java +75 -0
  10. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ArticleBlock.java +102 -0
  11. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ArticleBlockType.java +23 -0
  12. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ArticleEntity.java +80 -0
  13. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ArticleInline.java +85 -0
  14. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ArticleInlineType.java +24 -0
  15. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/BadgeAwardRecipient.java +61 -0
  16. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/BufferFull.java +52 -0
  17. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/CacheInput.java +16 -0
  18. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/CacheInputMessage.java +57 -0
  19. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/CacheRequest.java +84 -0
  20. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/CacheResponse.java +67 -0
  21. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/CashuData.java +55 -0
  22. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ChatLimiterPipeConfig.java +74 -0
  23. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/CodeData.java +61 -0
  24. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ConnectionStatus.java +68 -0
  25. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Contact.java +70 -0
  26. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ContentBlock.java +70 -0
  27. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ContentData.java +23 -0
  28. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Coordinate.java +75 -0
  29. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/CountResponse.java +60 -0
  30. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/CounterPipeConfig.java +67 -0
  31. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/DLEQProof.java +69 -0
  32. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Emoji.java +62 -0
  33. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/EmojiData.java +68 -0
  34. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Eoce.java +55 -0
  35. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/EventPointer.java +74 -0
  36. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/GetPublicKey.java +43 -0
  37. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/HTLCWitness.java +64 -0
  38. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/HashtagData.java +55 -0
  39. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/HistoryTag.java +74 -0
  40. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ImageData.java +67 -0
  41. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ImetaTag.java +100 -0
  42. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind0Parsed.java +168 -0
  43. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind10002Parsed.java +59 -0
  44. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind10019Parsed.java +73 -0
  45. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind1018Parsed.java +79 -0
  46. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind1068Parsed.java +107 -0
  47. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind1111Parsed.java +159 -0
  48. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind1311Parsed.java +91 -0
  49. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind17375Parsed.java +74 -0
  50. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind17Parsed.java +81 -0
  51. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind1Parsed.java +109 -0
  52. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind20Parsed.java +107 -0
  53. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind22Parsed.java +111 -0
  54. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind30023Parsed.java +113 -0
  55. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind3Parsed.java +59 -0
  56. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind4Parsed.java +78 -0
  57. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind6Parsed.java +53 -0
  58. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind7374Parsed.java +66 -0
  59. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind7375Parsed.java +79 -0
  60. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind7376Parsed.java +100 -0
  61. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind7Parsed.java +81 -0
  62. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind8Parsed.java +78 -0
  63. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind9321Parsed.java +117 -0
  64. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Kind9735Parsed.java +119 -0
  65. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/KindFilterPipeConfig.java +60 -0
  66. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/LinkPreviewData.java +73 -0
  67. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ListParsed.java +123 -0
  68. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/LiveActivityRef.java +72 -0
  69. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/LiveChatParticipant.java +61 -0
  70. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/LiveChatThreadRef.java +61 -0
  71. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/MainContent.java +20 -0
  72. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/MainMessage.java +57 -0
  73. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/MediaGroupData.java +58 -0
  74. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/MediaItem.java +58 -0
  75. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Message.java +24 -0
  76. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/MessageType.java +19 -0
  77. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/MintInfo.java +65 -0
  78. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/MintProofs.java +66 -0
  79. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/MuteFilterPipeConfig.java +84 -0
  80. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Nip07.java +43 -0
  81. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Nip46Bunker.java +61 -0
  82. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Nip46QR.java +61 -0
  83. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/NostrData.java +81 -0
  84. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/NostrEvent.java +95 -0
  85. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/NpubLimiterKey.java +15 -0
  86. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/NpubLimiterPipeConfig.java +64 -0
  87. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/P2PKWitness.java +57 -0
  88. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ParsePipeConfig.java +43 -0
  89. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ParsedData.java +39 -0
  90. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ParsedDataUnion.java +35 -0
  91. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ParsedEvent.java +108 -0
  92. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Pipe.java +57 -0
  93. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/PipeConfig.java +23 -0
  94. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/PipelineConfig.java +59 -0
  95. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/PollOption.java +62 -0
  96. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/PollType.java +15 -0
  97. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/PreGenericParsed.java +213 -0
  98. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/PreParticipant.java +73 -0
  99. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/PreRefEvent.java +67 -0
  100. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/PrivateKey.java +55 -0
  101. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ProfilePointer.java +64 -0
  102. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Proof.java +90 -0
  103. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ProofVerificationPipeConfig.java +52 -0
  104. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Pubkey.java +55 -0
  105. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Publish.java +80 -0
  106. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Raw.java +55 -0
  107. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ReactionType.java +17 -0
  108. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/RelayInfo.java +63 -0
  109. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Request.java +134 -0
  110. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SaveToDbPipeConfig.java +43 -0
  111. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SerializeEventsPipeConfig.java +55 -0
  112. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SetSigner.java +57 -0
  113. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SignEvent.java +54 -0
  114. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SignedEvent.java +54 -0
  115. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SignerOp.java +19 -0
  116. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SignerRequest.java +80 -0
  117. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SignerResponse.java +64 -0
  118. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SignerType.java +18 -0
  119. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/StringVec.java +57 -0
  120. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Subscribe.java +72 -0
  121. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SubscribeKind.java +19 -0
  122. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/SubscriptionConfig.java +95 -0
  123. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Tag.java +64 -0
  124. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Template.java +74 -0
  125. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Unsubscribe.java +55 -0
  126. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ValidProofs.java +59 -0
  127. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/VideoData.java +67 -0
  128. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/VideoVariant.java +102 -0
  129. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/Witness.java +17 -0
  130. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/WitnessString.java +54 -0
  131. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/WorkerMessage.java +74 -0
  132. package/crates/native-ffi/react-native/android/src/main/java/nostr/fb/ZapRequest.java +83 -0
  133. package/crates/native-ffi/react-native/ios/NipworkerReactNativeModule.h +18 -0
  134. package/crates/native-ffi/react-native/ios/NipworkerReactNativeModule.mm +263 -8
  135. package/dist/EngineManager.d.ts +1 -0
  136. package/dist/EngineManager.d.ts.map +1 -1
  137. package/dist/EngineManager.js +143 -137
  138. package/dist/NostrManager.d.ts +1 -0
  139. package/dist/NostrManager.d.ts.map +1 -1
  140. package/dist/NostrManager.js +49 -44
  141. package/dist/connections/index.js +87 -87
  142. package/dist/engine/index.js +119 -119
  143. package/dist/engine.d.ts.map +1 -1
  144. package/dist/hooks.d.ts +1 -1
  145. package/dist/hooks.d.ts.map +1 -1
  146. package/dist/hooks.js +27 -26
  147. package/dist/index.d.ts +1 -1
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/legacy.d.ts.map +1 -1
  150. package/dist/lib/ArrayBufferReader.d.ts +2 -1
  151. package/dist/lib/ArrayBufferReader.d.ts.map +1 -1
  152. package/dist/lib/BaseBackend.d.ts +5 -3
  153. package/dist/lib/BaseBackend.d.ts.map +1 -1
  154. package/dist/manager.d.ts +2 -6
  155. package/dist/manager.d.ts.map +1 -1
  156. package/dist/manager.js +10 -28
  157. package/dist/react-native.d.ts +33 -4
  158. package/dist/react-native.d.ts.map +1 -1
  159. package/dist/react-native.js +400 -122
  160. package/dist/scheduleMicrotask.js +58 -50
  161. package/package.json +13 -11
  162. package/swift/Package.swift +36 -0
  163. package/swift/README.md +438 -0
  164. package/swift/Sources/NipworkerSwift/ArrayBufferReader.swift +136 -0
  165. package/swift/Sources/NipworkerSwift/AuthSession.swift +24 -0
  166. package/swift/Sources/NipworkerSwift/FFI.swift +94 -0
  167. package/swift/Sources/NipworkerSwift/FlatBufferHelpers.swift +273 -0
  168. package/swift/Sources/NipworkerSwift/Generated/message_generated.swift +6530 -0
  169. package/swift/Sources/NipworkerSwift/Hooks.swift +300 -0
  170. package/swift/Sources/NipworkerSwift/Models.swift +156 -0
  171. package/swift/Sources/NipworkerSwift/NostrManager.swift +594 -0
  172. package/swift/Sources/NipworkerSwift/PublishTracker.swift +40 -0
  173. package/swift/Sources/NipworkerSwift/Subscription.swift +44 -0
  174. package/swift/Sources/NipworkerSwift/WorkerMessageView.swift +145 -0
  175. package/dist/NativeBackend.d.ts +0 -53
  176. package/dist/NativeBackend.d.ts.map +0 -1
  177. package/dist/NativeBackend.js +0 -464
  178. package/dist/native.d.ts +0 -29
  179. package/dist/native.d.ts.map +0 -1
  180. package/dist/native.js +0 -273
@@ -1,12 +1,12 @@
1
- import { ByteBuffer as P } from "flatbuffers";
1
+ import { ByteBuffer as p } from "flatbuffers";
2
2
  import { W as v } from "./worker-message.js";
3
- class D {
3
+ const _b = class _b {
4
4
  /**
5
5
  * Initialize a buffer for writing - sets the write position header to 4
6
6
  * @param buffer The ArrayBuffer to initialize
7
7
  */
8
- static initializeBuffer(e) {
9
- new DataView(e).setUint32(0, 4, true);
8
+ static initializeBuffer(t) {
9
+ new DataView(t).setUint32(0, 4, true);
10
10
  }
11
11
  /**
12
12
  * Write a message to the ArrayBuffer
@@ -14,13 +14,13 @@ class D {
14
14
  * @param data The data to write (already encoded as Uint8Array)
15
15
  * @returns True if written successfully, false if buffer is full
16
16
  */
17
- static writeMessage(e, t) {
18
- const i = new DataView(e), r = new Uint8Array(e), n = i.getUint32(0, true), s = 4 + t.length;
19
- if (n + s > e.byteLength)
17
+ static writeMessage(t, e) {
18
+ const n = new DataView(t), s = new Uint8Array(t), i = n.getUint32(0, true), r = 4 + e.length;
19
+ if (i + r > t.byteLength)
20
20
  return console.warn("Buffer full, cannot write message"), false;
21
- i.setUint32(n, t.length, true), r.set(t, n + 4);
22
- const a = n + s;
23
- return i.setUint32(0, a, true), true;
21
+ n.setUint32(i, e.length, true), s.set(e, i + 4);
22
+ const a = i + r;
23
+ return n.setUint32(0, a, true), true;
24
24
  }
25
25
  /**
26
26
  * Write raw batched data (already length-prefixed) to the ArrayBuffer.
@@ -29,21 +29,21 @@ class D {
29
29
  * @param data The batched data (already with length prefixes)
30
30
  * @returns True if written successfully, false if buffer is full
31
31
  */
32
- static writeBatchedData(e, t, i) {
33
- const r = new DataView(e), n = new Uint8Array(e), s = r.getUint32(0, true);
34
- if (s + t.length > e.byteLength)
32
+ static writeBatchedData(t, e, n) {
33
+ const s = new DataView(t), i = new Uint8Array(t), r = s.getUint32(0, true);
34
+ if (r + e.length > t.byteLength)
35
35
  return console.warn(
36
- `[ArrayBufferReader] Dropping ${i ? `event for subscription '${i}'` : "event"}: buffer full (${s}/${e.byteLength} bytes used, need ${t.length} more bytes). Consider increasing 'bytesPerEvent' or reducing subscription limits.`
36
+ `[ArrayBufferReader] Dropping ${n ? `event for subscription '${n}'` : "event"}: buffer full (${r}/${t.byteLength} bytes used, need ${e.length} more bytes). Consider increasing 'bytesPerEvent' or reducing subscription limits.`
37
37
  ), false;
38
- n.set(t, s);
39
- const a = s + t.length;
40
- return r.setUint32(0, a, true), true;
38
+ i.set(e, r);
39
+ const a = r + e.length;
40
+ return s.setUint32(0, a, true), true;
41
41
  }
42
- static writePayload(e, t, i) {
43
- const r = new DataView(e), n = new Uint8Array(e), s = r.getUint32(0, true), a = 4 + t.length;
44
- return s + a > e.byteLength ? (console.warn(
45
- `[ArrayBufferReader] Dropping ${i ? `event for subscription '${i}'` : "event"}: buffer full (${s}/${e.byteLength} bytes used, need ${a} more bytes). Consider increasing 'bytesPerEvent' or reducing subscription limits.`
46
- ), false) : (r.setUint32(s, t.length, true), n.set(t, s + 4), r.setUint32(0, s + a, true), true);
42
+ static writePayload(t, e, n) {
43
+ const s = new DataView(t), i = new Uint8Array(t), r = s.getUint32(0, true), a = 4 + e.length;
44
+ return r + a > t.byteLength ? (console.warn(
45
+ `[ArrayBufferReader] Dropping ${n ? `event for subscription '${n}'` : "event"}: buffer full (${r}/${t.byteLength} bytes used, need ${a} more bytes). Consider increasing 'bytesPerEvent' or reducing subscription limits.`
46
+ ), false) : (s.setUint32(r, e.length, true), i.set(e, r + 4), s.setUint32(0, r + a, true), true);
47
47
  }
48
48
  /**
49
49
  * Read new messages from ArrayBuffer since last read position
@@ -51,19 +51,25 @@ class D {
51
51
  * @param lastReadPosition Last position read (default: 0, meaning read from beginning)
52
52
  * @returns Object containing new messages and updated read position
53
53
  */
54
- static readMessages(e, t = 0, i) {
55
- const r = new DataView(e), n = new Uint8Array(e), s = r.getUint32(0, true), a = 4;
56
- let o = t < a ? a : t;
57
- if (s <= o)
54
+ static readMessages(t, e = 0, n) {
55
+ const s = new DataView(t), i = new Uint8Array(t), r = s.getUint32(0, true), a = 4;
56
+ let o = e < a ? a : e;
57
+ if (r <= o)
58
58
  return { messages: [], newReadPosition: o, hasNewData: false };
59
- const f = 128, c = new Array(f);
59
+ const h = 128, c = new Array(h);
60
60
  let u = 0;
61
61
  try {
62
- for (; o < s && !(u >= f || o + 4 > s); ) {
63
- const g = o, d = r.getUint32(g, true), h = g + 4, l = h + d;
64
- if (l > s) break;
65
- const y = new P(n.subarray(h, l)), m = v.getRootAsWorkerMessage(y);
66
- c[u++] = m, o = l;
62
+ for (; o < r && !(u >= h || o + 4 > r); ) {
63
+ const g = o, m = s.getUint32(g, true), w = g + 4, f = w + m, U = r - w;
64
+ if (f > r) {
65
+ const d = n || "__no_sub_id__";
66
+ this.malformedFrameLogOnceBySubId.has(d) || (this.malformedFrameLogOnceBySubId.add(d), console.error(
67
+ `[ArrayBufferReader] malformed frame, skipping remaining bytes: subId=${n ?? "unknown"}, subIdLen=${n ? n.length : -1}, payloadLen=${m}, currentWritePosition=${r}, lastReadPos=${e}`
68
+ )), o = r;
69
+ break;
70
+ }
71
+ const y = new p(i.subarray(w, f)), P = v.getRootAsWorkerMessage(y);
72
+ c[u++] = P, o = f;
67
73
  }
68
74
  return c.length = u, {
69
75
  messages: c,
@@ -73,7 +79,7 @@ class D {
73
79
  } catch (g) {
74
80
  return console.error("Failed to decode FlatBuffer data from ArrayBuffer:", g), c.length = u, {
75
81
  messages: c,
76
- newReadPosition: t < a ? a : t,
82
+ newReadPosition: e < a ? a : e,
77
83
  hasNewData: false
78
84
  };
79
85
  }
@@ -83,11 +89,11 @@ class D {
83
89
  * @param buffer The ArrayBuffer to read from
84
90
  * @returns Object containing all messages in the buffer
85
91
  */
86
- static readAllMessages(e) {
87
- const t = this.readMessages(e, 0);
92
+ static readAllMessages(t) {
93
+ const e = this.readMessages(t, 0);
88
94
  return {
89
- messages: t.messages,
90
- totalMessages: t.messages.length
95
+ messages: e.messages,
96
+ totalMessages: e.messages.length
91
97
  };
92
98
  }
93
99
  /**
@@ -95,8 +101,8 @@ class D {
95
101
  * @param buffer The ArrayBuffer to read from
96
102
  * @returns Current write position
97
103
  */
98
- static getCurrentWritePosition(e) {
99
- return new DataView(e).getUint32(0, true);
104
+ static getCurrentWritePosition(t) {
105
+ return new DataView(t).getUint32(0, true);
100
106
  }
101
107
  /**
102
108
  * Check if buffer has new data since last read
@@ -104,9 +110,9 @@ class D {
104
110
  * @param lastReadPosition Last position read
105
111
  * @returns True if there's new data to read
106
112
  */
107
- static hasNewData(e, t) {
108
- const i = this.getCurrentWritePosition(e), n = Math.max(t, 4);
109
- return i > n;
113
+ static hasNewData(t, e) {
114
+ const n = this.getCurrentWritePosition(t), i = Math.max(e, 4);
115
+ return n > i;
110
116
  }
111
117
  /**
112
118
  * Calculate recommended buffer size based on request limits
@@ -114,15 +120,17 @@ class D {
114
120
  * @param bytesPerEvent Estimated bytes per event (default: 3072)
115
121
  * @returns Recommended buffer size in bytes
116
122
  */
117
- static calculateBufferSize(e = 100, t = 3072) {
118
- const r = e * t, n = Math.floor(r * 0.25);
119
- return 4 + r + n;
123
+ static calculateBufferSize(t = 100, e = 3072) {
124
+ const s = t * e, i = Math.floor(s * 0.25);
125
+ return 4 + s + i;
120
126
  }
121
- }
122
- function M(w) {
123
- typeof queueMicrotask < "u" ? queueMicrotask(w) : typeof Promise < "u" ? Promise.resolve().then(w) : setTimeout(w, 0);
127
+ };
128
+ _b.malformedFrameLogOnceBySubId = /* @__PURE__ */ new Set();
129
+ let b = _b;
130
+ function S(l) {
131
+ typeof queueMicrotask < "u" ? queueMicrotask(l) : typeof Promise < "u" ? Promise.resolve().then(l) : setTimeout(l, 0);
124
132
  }
125
133
  export {
126
- D as A,
127
- M as s
134
+ b as A,
135
+ S as s
128
136
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@candypoets/nipworker",
3
- "version": "0.96.3",
3
+ "version": "0.96.5",
4
4
  "description": "Nostr client library with worker-based architecture using Rust WASM",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -36,11 +36,6 @@
36
36
  "import": "./dist/proxy/vite.js",
37
37
  "default": "./dist/proxy/vite.js"
38
38
  },
39
- "./native": {
40
- "types": "./dist/native.d.ts",
41
- "import": "./dist/native.js",
42
- "default": "./dist/native.js"
43
- },
44
39
  "./react-native": {
45
40
  "types": "./dist/react-native.d.ts",
46
41
  "import": "./dist/react-native.js",
@@ -71,6 +66,8 @@
71
66
  "crates/native-ffi/react-native/android/consumer-rules.pro",
72
67
  "crates/native-ffi/react-native/android/src",
73
68
  "crates/native-ffi/react-native/ios",
69
+ "swift/Package.swift",
70
+ "swift/Sources/NipworkerSwift",
74
71
  "README.md"
75
72
  ],
76
73
  "codegenConfig": {
@@ -89,18 +86,25 @@
89
86
  }
90
87
  },
91
88
  "scripts": {
92
- "build": "npm-run-all --parallel build:connections build:cache build:parser build:crypto build:engine && vite build",
89
+ "build": "npm-run-all --parallel build:connections build:cache build:parser build:crypto build:engine build:native:android build:native:ios && vite build",
90
+ "build:package": "npm run build:crates && vite build",
93
91
  "build:crates": "npm-run-all --parallel build:connections build:cache build:parser build:crypto build:engine",
92
+ "build:native:android": "cd crates/native-ffi/android && ./build-android-aar.sh",
93
+ "build:native:ios": "cd crates/native-ffi/ios && ./build-ios.sh",
94
+ "build:native": "npm-run-all --parallel build:native:android build:native:ios",
94
95
  "build:engine": "wasm-pack build ./src/engine --release --target web",
95
96
  "build:connections": "wasm-pack build ./crates/connections --release --target web",
96
97
  "build:cache": "wasm-pack build ./crates/cache --release --target web",
97
98
  "build:parser": "wasm-pack build ./crates/parser --release --target web",
98
99
  "build:crypto": "wasm-pack build ./crates/crypto --release --target web",
99
- "flatc": "npm run flatc:rust && npm run flatc:ts",
100
+ "flatc": "npm run flatc:rust && npm run flatc:ts && npm run flatc:java",
100
101
  "flatc:rust": "flatc --rust --gen-object-api --gen-all --filename-suffix '' -o ./crates/core/src/generated ./schemas/message.fbs",
101
102
  "flatc:ts": "flatc --ts --gen-object-api --gen-all --filename-suffix '' -o ./src/generated ./schemas/message.fbs",
103
+ "flatc:swift": "npm run flatc:swift:raw && node ./scripts/postprocess-flatc-swift.mjs ./swift/Sources/NipworkerSwift/Generated/message_generated.swift && swift build --package-path swift",
104
+ "flatc:swift:raw": "flatc --swift --gen-all --filename-suffix '_generated' -o ./swift/Sources/NipworkerSwift/Generated ./schemas/message.fbs",
105
+ "flatc:java": "flatc --java --gen-all --filename-suffix '' -o ./crates/native-ffi/react-native/android/src/main/java ./schemas/message.fbs && perl -pi -e 's/FLATBUFFERS_25_12_19/FLATBUFFERS_25_2_10/g' ./crates/native-ffi/react-native/android/src/main/java/nostr/fb/*.java",
102
106
  "build:types": "tsc --emitDeclarationOnly --outDir dist",
103
- "prepublishOnly": "npm run build",
107
+ "prepublishOnly": "npm run build:package",
104
108
  "test": "vitest run",
105
109
  "test:watch": "vitest",
106
110
  "test:ui": "vitest --ui",
@@ -142,8 +146,6 @@
142
146
  }
143
147
  },
144
148
  "devDependencies": {
145
- "@lynx-js/react": "^0.119.0",
146
- "@lynx-js/types": "^3.7.0",
147
149
  "@playwright/test": "^1.59.1",
148
150
  "@types/node": "^20.19.17",
149
151
  "@types/ws": "^8.5.12",
@@ -0,0 +1,36 @@
1
+ // swift-tools-version:5.9
2
+ import PackageDescription
3
+
4
+ let package = Package(
5
+ name: "NipworkerSwift",
6
+ platforms: [.iOS(.v14), .macOS(.v13)],
7
+ products: [
8
+ .library(
9
+ name: "NipworkerSwift",
10
+ targets: ["NipworkerSwift"]
11
+ ),
12
+ ],
13
+ dependencies: [
14
+ .package(url: "https://github.com/google/flatbuffers.git", from: "25.2.10")
15
+ ],
16
+ targets: [
17
+ .binaryTarget(
18
+ name: "NipworkerNativeFFI",
19
+ path: "../crates/native-ffi/ios/NipworkerNativeFFI.xcframework"
20
+ ),
21
+ .target(
22
+ name: "NipworkerSwift",
23
+ dependencies: [
24
+ "NipworkerNativeFFI",
25
+ .product(name: "FlatBuffers", package: "flatbuffers")
26
+ ],
27
+ path: "Sources/NipworkerSwift",
28
+ exclude: []
29
+ ),
30
+ .testTarget(
31
+ name: "NipworkerSwiftTests",
32
+ dependencies: ["NipworkerSwift"],
33
+ path: "Tests/NipworkerSwiftTests"
34
+ ),
35
+ ]
36
+ )