@candypoets/nipworker 0.0.9 → 0.0.13
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/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +1 -1
- package/dist/hooks.js.map +1 -1
- package/package.json +3 -3
package/dist/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,GAAG,CAAC;AAEtD,OAAO,KAAK,EAAuB,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9D,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,GAAE,GAAc,EACxB,OAAO,GAAE,mBAA4C,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,GAAG,CAAC;AAEtD,OAAO,KAAK,EAAuB,OAAO,EAAE,MAAM,WAAW,CAAC;AAE9D,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,GAAE,GAAc,EACxB,OAAO,GAAE,mBAA4C,GACpD,MAAM,IAAI,CAqFZ"}
|
package/dist/hooks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as
|
|
1
|
+
import{n as m,S as f}from"./index3.js";function h(n,c,t=()=>{},a={closeOnEose:!1}){if(!n)return console.warn("useSharedSubscription: No subscription ID provided"),()=>{};let i=null,l=4,o=null,s=15;const v=4e3;let E=!0,p=!1,b=!1;const r=()=>{E=!1,o!==null&&clearTimeout(o),b&&!p&&(m.unsubscribe(n),p=!0)};if(c.length>0){i=m.subscribe(n,c,a),b=!0;const d=()=>{if(!E||!i){o!==null&&clearTimeout(o);return}const u=f.readMessages(i,l);u.hasNewData?(s=5,u.messages.forEach(e=>{"SubscriptionEvent"in e?e.SubscriptionEvent.event_type==="BUFFER_FULL"?(t([],"BUFFER_FULL"),r()):e.SubscriptionEvent.event_data.forEach(S=>{t(S,e.SubscriptionEvent.event_type)}):"Eose"in e?(a.closeOnEose&&r(),t(e.Eose.data,"EOSE")):"Eoce"in e?t([],"EOCE"):"Proofs"in e&&t(e.Proofs)}),l=u.newReadPosition):s=Math.min(s*2,v),o!==null&&clearTimeout(o),o=window.setTimeout(d,s)};o=window.setTimeout(d,0)}return r}export{h as useSubscription};
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../src/hooks.ts"],"sourcesContent":["import { nostrManager, SubscriptionOptions } from \".\";\nimport { SharedBufferReader } from \"src/lib/sharedBuffer\";\nimport type { WorkerToMainMessage, Request } from \"src/types\";\n\nexport function useSubscription(\n subId: string,\n requests: Request[],\n callback: any = () => {},\n options: SubscriptionOptions = { closeOnEose: false },\n) {\n if (!subId) {\n console.warn(\"useSharedSubscription: No subscription ID provided\");\n return () => {};\n }\n let buffer: SharedArrayBuffer | null = null;\n let lastReadPos: number = 4;\n let timeoutId: number | null = null;\n let pollInterval: number = 15; // Start at 5ms - very aggressive\n const maxInterval: number = 4000; // Max 4 seconds\n let running: boolean = true;\n\n if (requests.length > 0) {\n buffer = nostrManager.subscribe(subId, requests, options);\n\n const processEvents = (): void => {\n if (!running || !buffer) {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n return;\n }\n\n const result = SharedBufferReader.readMessages(buffer, lastReadPos);\n\n if (result.hasNewData) {\n // Found new data - reset to aggressive polling\n pollInterval = 5;\n\n result.messages.forEach((message: WorkerToMainMessage) => {\n if (\"SubscriptionEvent\" in message) {\n if (message.SubscriptionEvent.event_type === \"BUFFER_FULL\" as any) {\n callback([], \"BUFFER_FULL\");\n } else {\n message.SubscriptionEvent.event_data.forEach((event) => {\n callback(event, message.SubscriptionEvent.event_type);\n });\n }\n } else if (\"Eose\" in message) {\n if (options.closeOnEose) {\n
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../src/hooks.ts"],"sourcesContent":["import { nostrManager, SubscriptionOptions } from \".\";\nimport { SharedBufferReader } from \"src/lib/sharedBuffer\";\nimport type { WorkerToMainMessage, Request } from \"src/types\";\n\nexport function useSubscription(\n subId: string,\n requests: Request[],\n callback: any = () => {},\n options: SubscriptionOptions = { closeOnEose: false },\n): () => void {\n if (!subId) {\n console.warn(\"useSharedSubscription: No subscription ID provided\");\n return () => {};\n }\n let buffer: SharedArrayBuffer | null = null;\n let lastReadPos: number = 4;\n let timeoutId: number | null = null;\n let pollInterval: number = 15; // Start at 5ms - very aggressive\n const maxInterval: number = 4000; // Max 4 seconds\n let running: boolean = true;\n\n let hasUnsubscribed = false;\n let hasSubscribed = false;\n\n const unsubscribe = (): void => {\n running = false;\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n if (hasSubscribed && !hasUnsubscribed) {\n nostrManager.unsubscribe(subId);\n hasUnsubscribed = true;\n }\n };\n\n if (requests.length > 0) {\n buffer = nostrManager.subscribe(subId, requests, options);\n hasSubscribed = true;\n\n const processEvents = (): void => {\n if (!running || !buffer) {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n return;\n }\n\n const result = SharedBufferReader.readMessages(buffer, lastReadPos);\n\n if (result.hasNewData) {\n // Found new data - reset to aggressive polling\n pollInterval = 5;\n\n result.messages.forEach((message: WorkerToMainMessage) => {\n if (\"SubscriptionEvent\" in message) {\n if (message.SubscriptionEvent.event_type === \"BUFFER_FULL\" as any) {\n callback([], \"BUFFER_FULL\");\n unsubscribe()\n } else {\n message.SubscriptionEvent.event_data.forEach((event) => {\n callback(event, message.SubscriptionEvent.event_type);\n });\n }\n } else if (\"Eose\" in message) {\n if (options.closeOnEose) {\n unsubscribe();\n }\n callback(message.Eose.data, \"EOSE\");\n } else if (\"Eoce\" in message) {\n callback([], \"EOCE\");\n } else if (\"Proofs\" in message) {\n callback(message.Proofs);\n }\n });\n lastReadPos = result.newReadPosition;\n } else {\n // No new data - back off exponentially (faster backoff)\n pollInterval = Math.min(pollInterval * 2, maxInterval);\n }\n\n // Clear any existing timeout before scheduling a new one\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n\n // Schedule next poll\n timeoutId = window.setTimeout(processEvents, pollInterval);\n };\n\n // Start after a minimal delay to ensure the return function is available\n timeoutId = window.setTimeout(processEvents, 0);\n }\n\n return unsubscribe\n}\n"],"names":["useSubscription","subId","requests","callback","options","buffer","lastReadPos","timeoutId","pollInterval","maxInterval","running","hasUnsubscribed","hasSubscribed","unsubscribe","nostrManager","processEvents","result","SharedBufferReader","message","event"],"mappings":";AAIO,SAASA,EACdC,GACAC,GACAC,IAAgB,MAAM;AAAC,GACvBC,IAA+B,EAAE,aAAa,MAClC;AACZ,MAAI,CAACH;AACH,mBAAQ,KAAK,oDAAoD,GAC1D,MAAM;AAAA,IAAC;AAEhB,MAAII,IAAmC,MACnCC,IAAsB,GACtBC,IAA2B,MAC3BC,IAAuB;AAC3B,QAAMC,IAAsB;AAC5B,MAAIC,IAAmB,IAEnBC,IAAkB,IAClBC,IAAgB;AAEpB,QAAMC,IAAc,MAAY;AAC9B,IAAAH,IAAU,IACNH,MAAc,QAChB,aAAaA,CAAS,GAEpBK,KAAiB,CAACD,MACpBG,EAAa,YAAYb,CAAK,GAC9BU,IAAkB;AAAA,EAEtB;AAEA,MAAIT,EAAS,SAAS,GAAG;AACvB,IAAAG,IAASS,EAAa,UAAUb,GAAOC,GAAUE,CAAO,GACxDQ,IAAgB;AAEhB,UAAMG,IAAgB,MAAY;AAChC,UAAI,CAACL,KAAW,CAACL,GAAQ;AACvB,QAAIE,MAAc,QAChB,aAAaA,CAAS;AAExB;AAAA,MACF;AAEA,YAAMS,IAASC,EAAmB,aAAaZ,GAAQC,CAAW;AAElE,MAAIU,EAAO,cAETR,IAAe,GAEfQ,EAAO,SAAS,QAAQ,CAACE,MAAiC;AACxD,QAAI,uBAAuBA,IACrBA,EAAQ,kBAAkB,eAAe,iBAC3Cf,EAAS,CAAA,GAAI,aAAa,GAC1BU,EAAA,KAEAK,EAAQ,kBAAkB,WAAW,QAAQ,CAACC,MAAU;AACtD,UAAAhB,EAASgB,GAAOD,EAAQ,kBAAkB,UAAU;AAAA,QACtD,CAAC,IAEM,UAAUA,KACfd,EAAQ,eACVS,EAAA,GAEFV,EAASe,EAAQ,KAAK,MAAM,MAAM,KACzB,UAAUA,IACnBf,EAAS,CAAA,GAAI,MAAM,IACV,YAAYe,KACrBf,EAASe,EAAQ,MAAM;AAAA,MAE3B,CAAC,GACDZ,IAAcU,EAAO,mBAGrBR,IAAe,KAAK,IAAIA,IAAe,GAAGC,CAAW,GAInDF,MAAc,QAChB,aAAaA,CAAS,GAIxBA,IAAY,OAAO,WAAWQ,GAAeP,CAAY;AAAA,IAC3D;AAGA,IAAAD,IAAY,OAAO,WAAWQ,GAAe,CAAC;AAAA,EAChD;AAEA,SAAOF;AACT;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@candypoets/nipworker",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"description": "Nostr client library with worker-based architecture using Rust WASM",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"vite-plugin-wasm": "^3.0.0"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@candypoets/rust-main": "0.0.
|
|
64
|
-
"@candypoets/rust-worker": "0.0.
|
|
63
|
+
"@candypoets/rust-main": "0.0.13",
|
|
64
|
+
"@candypoets/rust-worker": "0.0.13",
|
|
65
65
|
"@msgpack/msgpack": "^3.0.0",
|
|
66
66
|
"msgpackr": "^1.11.5",
|
|
67
67
|
"nostr-tools": "^2.0.0"
|