@candypoets/nipworker 0.91.0 → 0.91.2

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 (44) hide show
  1. package/dist/NarrowTypes.js +279 -1
  2. package/dist/cache/index.js +431 -2
  3. package/dist/cache/pkg/cache.d.ts +3 -3
  4. package/dist/cache/pkg/cache_bg.wasm.d.ts +3 -3
  5. package/dist/connections/index.js +442 -2
  6. package/dist/connections/pkg/connections.d.ts +3 -3
  7. package/dist/connections/pkg/connections_bg.wasm.d.ts +3 -3
  8. package/dist/connections/proxy.js +2 -1
  9. package/dist/connections/proxy.js.map +7 -1
  10. package/dist/connections/types.d.ts +12 -0
  11. package/dist/connections/types.d.ts.map +1 -1
  12. package/dist/crypto/index.js +785 -2
  13. package/dist/hooks.js +94 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +231 -1
  16. package/dist/index2.js +2614 -1
  17. package/dist/parser/index.js +565 -2
  18. package/dist/proxy/relayProxyServer.d.ts +4 -0
  19. package/dist/proxy/relayProxyServer.d.ts.map +1 -1
  20. package/dist/proxy/server.js +7 -1
  21. package/dist/proxy/vite.d.ts.map +1 -1
  22. package/dist/proxy/vite.js +43 -2
  23. package/dist/relayProxyServer.js +518 -1
  24. package/dist/types/index.d.ts +2 -0
  25. package/dist/types/index.d.ts.map +1 -1
  26. package/dist/utils.js +357 -4
  27. package/dist/worker-message.js +6866 -1
  28. package/package.json +3 -1
  29. package/dist/NarrowTypes.js.map +0 -1
  30. package/dist/cache/index.js.map +0 -1
  31. package/dist/connections/index.js.map +0 -1
  32. package/dist/crypto/index.js.map +0 -1
  33. package/dist/hooks.js.map +0 -1
  34. package/dist/index.js.map +0 -1
  35. package/dist/index2.js.map +0 -1
  36. package/dist/parser/index.js.map +0 -1
  37. package/dist/proxy/index.js.map +0 -1
  38. package/dist/proxy/server.js.map +0 -1
  39. package/dist/proxy/vite.js.map +0 -1
  40. package/dist/relayProxyServer.js.map +0 -1
  41. package/dist/signer-response.js +0 -1
  42. package/dist/signer-response.js.map +0 -1
  43. package/dist/utils.js.map +0 -1
  44. package/dist/worker-message.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@candypoets/nipworker",
3
- "version": "0.91.0",
3
+ "version": "0.91.2",
4
4
  "description": "Nostr client library with worker-based architecture using Rust WASM",
5
5
  "type": "module",
6
6
  "module": "./dist/index.js",
@@ -92,6 +92,7 @@
92
92
  "@types/node": "^20.19.17",
93
93
  "@types/ws": "^8.5.12",
94
94
  "@vitest/ui": "^4.0.18",
95
+ "esbuild": "^0.27.4",
95
96
  "npm-run-all": "^4.1.5",
96
97
  "prettier": "^3.6.2",
97
98
  "typescript": "^5.0.0",
@@ -104,6 +105,7 @@
104
105
  },
105
106
  "dependencies": {
106
107
  "nostr-tools": "^2.0.0",
108
+ "socks-proxy-agent": "^9.0.0",
107
109
  "ws": "^8.0.0"
108
110
  },
109
111
  "engines": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"NarrowTypes.js","sources":["../src/lib/NarrowTypes.ts"],"sourcesContent":["import {\n\tWorkerMessage,\n\tMessageType,\n\tConnectionStatus,\n\tEoce,\n\tCountResponse,\n\tBufferFull,\n\tValidProofs,\n\tParsedEvent,\n\tKind0Parsed,\n\tKind1Parsed,\n\tKind3Parsed,\n\tKind4Parsed,\n\tKind6Parsed,\n\tKind7Parsed,\n\tKind17Parsed,\n\tKind20Parsed,\n\tKind22Parsed,\n\tKind1111Parsed,\n\tKind10002Parsed,\n\tKind10019Parsed,\n\tKind17375Parsed,\n\tKind7374Parsed,\n\tKind7375Parsed,\n\tKind7376Parsed,\n\tKind9321Parsed,\n\tKind9735Parsed,\n\tKind30023Parsed,\n\tKind1311Parsed,\n\tContentBlock,\n\tLinkPreviewData,\n\tContentData,\n\tCashuData,\n\tHashtagData,\n\tCodeData,\n\tMediaGroupData,\n\tNostrData,\n\tVideoData,\n\tNostrEvent,\n\tListParsed,\n\tPreGenericParsed\n} from 'src/generated/nostr/fb';\nimport { ImageData as FbImageData } from 'src/generated/nostr/fb';\nimport { ParsedData } from 'src/generated/nostr/fb/parsed-data';\n\n// ---- Top-level Message helpers ----\nexport function isConnectionStatus(msg: WorkerMessage): ConnectionStatus | null {\n\tif (msg.type() !== MessageType.ConnectionStatus) return null;\n\treturn msg.content(new ConnectionStatus()) ?? null;\n}\n\nexport const asConnectionStatus = isConnectionStatus;\n\nexport function isEoce(msg: WorkerMessage): Eoce | null {\n\tif (msg.type() !== MessageType.Eoce) return null;\n\treturn msg.content(new Eoce()) ?? null;\n}\n\nexport const asEoce = isEoce;\n\nexport function isCountResponse(msg: WorkerMessage): CountResponse | null {\n\tif (msg.type() !== MessageType.CountResponse) return null;\n\treturn msg.content(new CountResponse()) ?? null;\n}\n\nexport const asCountResponse = isCountResponse;\n\nexport function isBufferFull(msg: WorkerMessage): BufferFull | null {\n\tif (msg.type() !== MessageType.BufferFull) return null;\n\treturn msg.content(new BufferFull()) ?? null;\n}\n\nexport const asBufferFull = isBufferFull;\n\nexport function isValidProofs(msg: WorkerMessage): ValidProofs | null {\n\tif (msg.type() !== MessageType.ValidProofs) return null;\n\treturn msg.content(new ValidProofs()) ?? null;\n}\n\nexport const asValidProofs = isValidProofs;\n\n// ---- Generic ParsedEvent --------\nexport function isParsedEvent(msg: WorkerMessage): ParsedEvent | null {\n\tif (msg.type() !== MessageType.ParsedNostrEvent) return null;\n\treturn msg.content(new ParsedEvent()) ?? null;\n}\n\nexport const asParsedEvent = isParsedEvent;\n\nexport const isNostrEvent = (msg: WorkerMessage): NostrEvent | null => {\n\tif (msg.type() !== MessageType.NostrEvent) return null;\n\treturn msg.content(new NostrEvent()) ?? null;\n};\n\nexport const asNostrEvent = isNostrEvent;\n\n// ---- ParsedData Kind helpers ----\nfunction parsedKind<T>(msg: WorkerMessage, kind: ParsedData): T | null {\n\tif (!msg) return null;\n\tconst ev = isParsedEvent(msg);\n\tif (!ev) return null;\n\tconst parsedType = ev.parsedType();\n\tif (parsedType !== kind) return null;\n\n\tswitch (kind) {\n\t\tcase ParsedData.Kind0Parsed:\n\t\t\treturn ev.parsed(new Kind0Parsed()) as T | null;\n\t\tcase ParsedData.Kind1Parsed:\n\t\t\treturn ev.parsed(new Kind1Parsed()) as T | null;\n\t\tcase ParsedData.Kind3Parsed:\n\t\t\treturn ev.parsed(new Kind3Parsed()) as T | null;\n\t\tcase ParsedData.Kind4Parsed:\n\t\t\treturn ev.parsed(new Kind4Parsed()) as T | null;\n\t\tcase ParsedData.Kind6Parsed:\n\t\t\treturn ev.parsed(new Kind6Parsed()) as T | null;\n\t\tcase ParsedData.Kind7Parsed:\n\t\t\treturn ev.parsed(new Kind7Parsed()) as T | null;\n\t\tcase ParsedData.Kind17Parsed:\n\t\t\treturn ev.parsed(new Kind17Parsed()) as T | null;\n\t\tcase ParsedData.Kind20Parsed:\n\t\t\treturn ev.parsed(new Kind20Parsed()) as T | null;\n\t\tcase ParsedData.Kind22Parsed:\n\t\t\treturn ev.parsed(new Kind22Parsed()) as T | null;\n\t\tcase ParsedData.Kind1111Parsed:\n\t\t\treturn ev.parsed(new Kind1111Parsed()) as T | null;\n\t\tcase ParsedData.Kind1311Parsed:\n\t\t\treturn ev.parsed(new Kind1311Parsed()) as T | null;\n\t\tcase ParsedData.Kind10002Parsed:\n\t\t\treturn ev.parsed(new Kind10002Parsed()) as T | null;\n\t\tcase ParsedData.Kind10019Parsed:\n\t\t\treturn ev.parsed(new Kind10019Parsed()) as T | null;\n\t\tcase ParsedData.Kind17375Parsed:\n\t\t\treturn ev.parsed(new Kind17375Parsed()) as T | null;\n\t\tcase ParsedData.Kind7374Parsed:\n\t\t\treturn ev.parsed(new Kind7374Parsed()) as T | null;\n\t\tcase ParsedData.Kind7375Parsed:\n\t\t\treturn ev.parsed(new Kind7375Parsed()) as T | null;\n\t\tcase ParsedData.Kind7376Parsed:\n\t\t\treturn ev.parsed(new Kind7376Parsed()) as T | null;\n\t\tcase ParsedData.Kind9321Parsed:\n\t\t\treturn ev.parsed(new Kind9321Parsed()) as T | null;\n\t\tcase ParsedData.Kind9735Parsed:\n\t\t\treturn ev.parsed(new Kind9735Parsed()) as T | null;\n\t\tcase ParsedData.Kind30023Parsed:\n\t\t\treturn ev.parsed(new Kind30023Parsed()) as T | null;\n\t\tcase ParsedData.ListParsed:\n\t\t\treturn ev.parsed(new ListParsed()) as T | null;\n\t\tcase ParsedData.PreGenericParsed:\n\t\t\treturn ev.parsed(new PreGenericParsed()) as T | null;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function isKind0(msg: WorkerMessage): Kind0Parsed | null {\n\treturn parsedKind<Kind0Parsed>(msg, ParsedData.Kind0Parsed);\n}\nexport function asKind0(ev: ParsedEvent): Kind0Parsed | null {\n\tif (!ev) return null;\n\tif (ev.parsedType() !== ParsedData.Kind0Parsed) return null;\n\treturn ev.parsed(new Kind0Parsed()) ?? null;\n}\nexport function isKind1(msg: WorkerMessage): Kind1Parsed | null {\n\treturn parsedKind<Kind1Parsed>(msg, ParsedData.Kind1Parsed);\n}\nexport function asKind1(ev: ParsedEvent): Kind1Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind1Parsed) return null;\n\treturn ev.parsed(new Kind1Parsed()) ?? null;\n}\nexport function isKind3(msg: WorkerMessage): Kind3Parsed | null {\n\treturn parsedKind<Kind3Parsed>(msg, ParsedData.Kind3Parsed);\n}\nexport function asKind3(ev: ParsedEvent): Kind3Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind3Parsed) return null;\n\treturn ev.parsed(new Kind3Parsed()) ?? null;\n}\nexport function isKind4(msg: WorkerMessage): Kind4Parsed | null {\n\treturn parsedKind<Kind4Parsed>(msg, ParsedData.Kind4Parsed);\n}\nexport function asKind4(ev: ParsedEvent): Kind4Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind4Parsed) return null;\n\treturn ev.parsed(new Kind4Parsed()) ?? null;\n}\nexport function isKind6(msg: WorkerMessage): Kind6Parsed | null {\n\treturn parsedKind<Kind6Parsed>(msg, ParsedData.Kind6Parsed);\n}\nexport function asKind6(ev: ParsedEvent): Kind6Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind6Parsed) return null;\n\treturn ev.parsed(new Kind6Parsed()) ?? null;\n}\nexport function isKind7(msg: WorkerMessage): Kind7Parsed | null {\n\treturn parsedKind<Kind7Parsed>(msg, ParsedData.Kind7Parsed);\n}\nexport function asKind7(ev: ParsedEvent): Kind7Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind7Parsed) return null;\n\treturn ev.parsed(new Kind7Parsed()) ?? null;\n}\nexport function isKind17(msg: WorkerMessage): Kind17Parsed | null {\n\treturn parsedKind<Kind17Parsed>(msg, ParsedData.Kind17Parsed);\n}\nexport function asKind17(ev: ParsedEvent): Kind17Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind17Parsed) return null;\n\treturn ev.parsed(new Kind17Parsed()) ?? null;\n}\nexport function isKind1111(msg: WorkerMessage): Kind1111Parsed | null {\n\treturn parsedKind<Kind1111Parsed>(msg, ParsedData.Kind1111Parsed);\n}\nexport function asKind1111(ev: ParsedEvent): Kind1111Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind1111Parsed) return null;\n\treturn ev.parsed(new Kind1111Parsed()) ?? null;\n}\nexport function isKind1311(msg: WorkerMessage): Kind1311Parsed | null {\n\treturn parsedKind<Kind1311Parsed>(msg, ParsedData.Kind1311Parsed);\n}\nexport function asKind1311(ev: ParsedEvent): Kind1311Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind1311Parsed) return null;\n\treturn ev.parsed(new Kind1311Parsed()) ?? null;\n}\nexport function isKind10002(msg: WorkerMessage): Kind10002Parsed | null {\n\treturn parsedKind<Kind10002Parsed>(msg, ParsedData.Kind10002Parsed);\n}\nexport function asKind10002(ev: ParsedEvent): Kind10002Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind10002Parsed) return null;\n\treturn ev.parsed(new Kind10002Parsed()) ?? null;\n}\n\nexport function isKind10019(msg: WorkerMessage): Kind10019Parsed | null {\n\treturn parsedKind<Kind10019Parsed>(msg, ParsedData.Kind10019Parsed);\n}\nexport function asKind10019(ev: ParsedEvent): Kind10019Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind10019Parsed) return null;\n\treturn ev.parsed(new Kind10019Parsed()) ?? null;\n}\n\nexport function isKind17375(msg: WorkerMessage): Kind17375Parsed | null {\n\treturn parsedKind<Kind17375Parsed>(msg, ParsedData.Kind17375Parsed);\n}\nexport function asKind17375(ev: ParsedEvent): Kind17375Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind17375Parsed) return null;\n\treturn ev.parsed(new Kind17375Parsed()) ?? null;\n}\n\nexport function isKind7374(msg: WorkerMessage): Kind7374Parsed | null {\n\treturn parsedKind<Kind7374Parsed>(msg, ParsedData.Kind7374Parsed);\n}\nexport function asKind7374(ev: ParsedEvent): Kind7374Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind7374Parsed) return null;\n\treturn ev.parsed(new Kind7374Parsed()) ?? null;\n}\n\nexport function isKind7375(msg: WorkerMessage): Kind7375Parsed | null {\n\treturn parsedKind<Kind7375Parsed>(msg, ParsedData.Kind7375Parsed);\n}\nexport function asKind7375(ev: ParsedEvent): Kind7375Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind7375Parsed) return null;\n\treturn ev.parsed(new Kind7375Parsed()) ?? null;\n}\n\nexport function isKind7376(msg: WorkerMessage): Kind7376Parsed | null {\n\treturn parsedKind<Kind7376Parsed>(msg, ParsedData.Kind7376Parsed);\n}\nexport function asKind7376(ev: ParsedEvent): Kind7376Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind7376Parsed) return null;\n\treturn ev.parsed(new Kind7376Parsed()) ?? null;\n}\n\nexport function isKind9321(msg: WorkerMessage): Kind9321Parsed | null {\n\treturn parsedKind<Kind9321Parsed>(msg, ParsedData.Kind9321Parsed);\n}\nexport function asKind9321(ev: ParsedEvent): Kind9321Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind9321Parsed) return null;\n\treturn ev.parsed(new Kind9321Parsed()) ?? null;\n}\n\nexport function isKind9735(msg: WorkerMessage): Kind9735Parsed | null {\n\treturn parsedKind<Kind9735Parsed>(msg, ParsedData.Kind9735Parsed);\n}\nexport function asKind9735(ev: ParsedEvent): Kind9735Parsed | null {\n\tif (ev.parsedType() !== ParsedData.Kind9735Parsed) return null;\n\treturn ev.parsed(new Kind9735Parsed()) ?? null;\n}\n\nexport function isNip51(msg: WorkerMessage): ListParsed | null {\n\treturn parsedKind<ListParsed>(msg, ParsedData.ListParsed);\n}\n\nexport function asNip51(ev: ParsedEvent): ListParsed | null {\n\tif (ev.parsedType() !== ParsedData.ListParsed) return null;\n\treturn ev.parsed(new ListParsed()) ?? null;\n}\n\nexport function isPreGeneric(msg: WorkerMessage): PreGenericParsed | null {\n\treturn parsedKind<PreGenericParsed>(msg, ParsedData.PreGenericParsed);\n}\n\nexport function asPreGeneric(ev: ParsedEvent): PreGenericParsed | null {\n\tif (ev.parsedType() !== ParsedData.PreGenericParsed) return null;\n\treturn ev.parsed(new PreGenericParsed()) ?? null;\n}\n\nexport function asCodeData(block: ContentBlock): CodeData | null {\n\tif (block.dataType() !== ContentData.CodeData) return null;\n\treturn block.data(new CodeData()) ?? null;\n}\n\nexport function asHashtagData(block: ContentBlock): HashtagData | null {\n\tif (block.dataType() !== ContentData.HashtagData) return null;\n\treturn block.data(new HashtagData()) ?? null;\n}\n\nexport function asCashuData(block: ContentBlock): CashuData | null {\n\tif (block.dataType() !== ContentData.CashuData) return null;\n\treturn block.data(new CashuData()) ?? null;\n}\n\nexport function asImageData(block: ContentBlock): FbImageData | null {\n\tif (block.dataType() !== ContentData.ImageData) return null;\n\treturn block.data(new FbImageData()) ?? null;\n}\n\nexport function asVideoData(block: ContentBlock): VideoData | null {\n\tif (block.dataType() !== ContentData.VideoData) return null;\n\treturn block.data(new VideoData()) ?? null;\n}\n\nexport function asMediaGroupData(block: ContentBlock): MediaGroupData | null {\n\tif (block.dataType() !== ContentData.MediaGroupData) return null;\n\treturn block.data(new MediaGroupData()) ?? null;\n}\n\nexport function asNostrData(block: ContentBlock): NostrData | null {\n\tif (block.dataType() !== ContentData.NostrData) return null;\n\treturn block.data(new NostrData()) ?? null;\n}\n\nexport function asLinkPreview(block: ContentBlock): LinkPreviewData | null {\n\tif (block.dataType() !== ContentData.LinkPreviewData) return null;\n\treturn block.data(new LinkPreviewData()) ?? null;\n}\n"],"names":["isConnectionStatus","msg","MessageType","ConnectionStatus","asConnectionStatus","isEoce","Eoce","asEoce","isCountResponse","CountResponse","asCountResponse","isBufferFull","BufferFull","asBufferFull","isValidProofs","ValidProofs","asValidProofs","isParsedEvent","ParsedEvent","asParsedEvent","isNostrEvent","NostrEvent","asNostrEvent","parsedKind","kind","ev","ParsedData","Kind0Parsed","Kind1Parsed","Kind3Parsed","Kind4Parsed","Kind6Parsed","Kind7Parsed","Kind17Parsed","Kind20Parsed","Kind22Parsed","Kind1111Parsed","Kind1311Parsed","Kind10002Parsed","Kind10019Parsed","Kind17375Parsed","Kind7374Parsed","Kind7375Parsed","Kind7376Parsed","Kind9321Parsed","Kind9735Parsed","Kind30023Parsed","ListParsed","PreGenericParsed","isKind0","asKind0","isKind1","asKind1","isKind3","asKind3","isKind4","asKind4","isKind6","asKind6","isKind7","asKind7","isKind17","asKind17","isKind1111","asKind1111","isKind1311","asKind1311","isKind10002","asKind10002","isKind10019","asKind10019","isKind17375","asKind17375","isKind7374","asKind7374","isKind7375","asKind7375","isKind7376","asKind7376","isKind9321","asKind9321","isKind9735","asKind9735","isNip51","asNip51","isPreGeneric","asPreGeneric","asCodeData","block","ContentData","CodeData","asHashtagData","HashtagData","asCashuData","CashuData","asImageData","FbImageData","asVideoData","VideoData","asMediaGroupData","MediaGroupData","asNostrData","NostrData","asLinkPreview","LinkPreviewData"],"mappings":"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"}