@multiplatform.one/frappe 6.6.0 → 7.0.0

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 (224) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/auth.native.js.map +1 -1
  3. package/dist/cjs/call.native.js.map +1 -1
  4. package/dist/cjs/collection.native.js.map +1 -1
  5. package/dist/cjs/common/types.native.js.map +1 -1
  6. package/dist/cjs/core/http.cjs +45 -1
  7. package/dist/cjs/core/http.native.js +72 -1
  8. package/dist/cjs/core/http.native.js.map +1 -1
  9. package/dist/cjs/core/types.native.js.map +1 -1
  10. package/dist/cjs/core/wire.native.js.map +1 -1
  11. package/dist/cjs/db.native.js.map +1 -1
  12. package/dist/cjs/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  13. package/dist/cjs/devtools/index.native.js.map +1 -1
  14. package/dist/cjs/devtools/plugin.native.js.map +1 -1
  15. package/dist/cjs/devtools/theme.native.js.map +1 -1
  16. package/dist/cjs/doctype.cjs +15 -2
  17. package/dist/cjs/doctype.native.js +22 -5
  18. package/dist/cjs/doctype.native.js.map +1 -1
  19. package/dist/cjs/file.native.js.map +1 -1
  20. package/dist/cjs/fixtureDb.native.js.map +1 -1
  21. package/dist/cjs/fixtures.native.js.map +1 -1
  22. package/dist/cjs/frappeApp.native.js.map +1 -1
  23. package/dist/cjs/frappeReact.cjs +55 -1
  24. package/dist/cjs/frappeReact.native.js +67 -2
  25. package/dist/cjs/frappeReact.native.js.map +1 -1
  26. package/dist/cjs/index.cjs +8 -0
  27. package/dist/cjs/index.native.js +10 -2
  28. package/dist/cjs/index.native.js.map +1 -1
  29. package/dist/cjs/optimistic.cjs +32 -2
  30. package/dist/cjs/optimistic.native.js +34 -1
  31. package/dist/cjs/optimistic.native.js.map +1 -1
  32. package/dist/cjs/pacer.native.js.map +1 -1
  33. package/dist/cjs/plugin/index.native.js.map +1 -1
  34. package/dist/cjs/realtime.cjs +234 -11
  35. package/dist/cjs/realtime.native.js +368 -18
  36. package/dist/cjs/realtime.native.js.map +1 -1
  37. package/dist/cjs/sync/backfill.native.js.map +1 -1
  38. package/dist/cjs/sync/filters.native.js.map +1 -1
  39. package/dist/cjs/sync/index.cjs +45 -1
  40. package/dist/cjs/sync/index.native.js +71 -1
  41. package/dist/cjs/sync/index.native.js.map +1 -1
  42. package/dist/cjs/sync/merge.native.js.map +1 -1
  43. package/dist/cjs/sync/mutationEngine.cjs +51 -15
  44. package/dist/cjs/sync/mutationEngine.native.js +69 -16
  45. package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
  46. package/dist/cjs/sync/mutationJournal.cjs +8 -0
  47. package/dist/cjs/sync/mutationJournal.native.js +10 -0
  48. package/dist/cjs/sync/mutationJournal.native.js.map +1 -1
  49. package/dist/cjs/sync/normalizedCache.native.js.map +1 -1
  50. package/dist/cjs/sync/persistence.native.js.map +1 -1
  51. package/dist/cjs/sync/realtime.native.js.map +1 -1
  52. package/dist/cjs/sync/rehydration.native.js.map +1 -1
  53. package/dist/cjs/sync/storage.native.js.map +1 -1
  54. package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
  55. package/dist/cjs/sync/types.native.js.map +1 -1
  56. package/dist/cjs/sync/virtualPageManager.native.js.map +1 -1
  57. package/dist/cjs/useLiveQuery.native.js.map +1 -1
  58. package/dist/cjs/util.native.js.map +1 -1
  59. package/dist/esm/auth.native.js.map +1 -1
  60. package/dist/esm/call.native.js.map +1 -1
  61. package/dist/esm/collection.native.js +1 -1
  62. package/dist/esm/collection.native.js.map +1 -1
  63. package/dist/esm/common/types.native.js.map +1 -1
  64. package/dist/esm/core/http.mjs +45 -2
  65. package/dist/esm/core/http.mjs.map +1 -1
  66. package/dist/esm/core/http.native.js +74 -4
  67. package/dist/esm/core/http.native.js.map +1 -1
  68. package/dist/esm/core/types.native.js.map +1 -1
  69. package/dist/esm/core/wire.native.js.map +1 -1
  70. package/dist/esm/db.native.js +1 -1
  71. package/dist/esm/db.native.js.map +1 -1
  72. package/dist/esm/devtools/FrappeDevtoolsPanel.native.js +2 -2
  73. package/dist/esm/devtools/FrappeDevtoolsPanel.native.js.map +1 -1
  74. package/dist/esm/devtools/index.native.js +2 -2
  75. package/dist/esm/devtools/index.native.js.map +1 -1
  76. package/dist/esm/devtools/plugin.native.js +1 -1
  77. package/dist/esm/devtools/plugin.native.js.map +1 -1
  78. package/dist/esm/devtools/theme.native.js.map +1 -1
  79. package/dist/esm/doctype.mjs +15 -2
  80. package/dist/esm/doctype.mjs.map +1 -1
  81. package/dist/esm/doctype.native.js +23 -6
  82. package/dist/esm/doctype.native.js.map +1 -1
  83. package/dist/esm/file.native.js.map +1 -1
  84. package/dist/esm/fixtureDb.native.js +1 -1
  85. package/dist/esm/fixtureDb.native.js.map +1 -1
  86. package/dist/esm/fixtures.native.js.map +1 -1
  87. package/dist/esm/frappeApp.native.js +7 -7
  88. package/dist/esm/frappeApp.native.js.map +1 -1
  89. package/dist/esm/frappeReact.mjs +55 -3
  90. package/dist/esm/frappeReact.mjs.map +1 -1
  91. package/dist/esm/frappeReact.native.js +73 -10
  92. package/dist/esm/frappeReact.native.js.map +1 -1
  93. package/dist/esm/index.mjs +5 -5
  94. package/dist/esm/index.mjs.map +1 -1
  95. package/dist/esm/index.native.js +22 -22
  96. package/dist/esm/index.native.js.map +1 -1
  97. package/dist/esm/optimistic.mjs +27 -1
  98. package/dist/esm/optimistic.mjs.map +1 -1
  99. package/dist/esm/optimistic.native.js +30 -1
  100. package/dist/esm/optimistic.native.js.map +1 -1
  101. package/dist/esm/pacer.mjs.map +1 -1
  102. package/dist/esm/pacer.native.js +4 -4
  103. package/dist/esm/pacer.native.js.map +1 -1
  104. package/dist/esm/plugin/index.native.js.map +1 -1
  105. package/dist/esm/realtime.mjs +234 -11
  106. package/dist/esm/realtime.mjs.map +1 -1
  107. package/dist/esm/realtime.native.js +369 -19
  108. package/dist/esm/realtime.native.js.map +1 -1
  109. package/dist/esm/sync/backfill.native.js +1 -1
  110. package/dist/esm/sync/backfill.native.js.map +1 -1
  111. package/dist/esm/sync/filters.native.js.map +1 -1
  112. package/dist/esm/sync/index.mjs +45 -1
  113. package/dist/esm/sync/index.mjs.map +1 -1
  114. package/dist/esm/sync/index.native.js +79 -9
  115. package/dist/esm/sync/index.native.js.map +1 -1
  116. package/dist/esm/sync/merge.native.js.map +1 -1
  117. package/dist/esm/sync/mutationEngine.mjs +51 -15
  118. package/dist/esm/sync/mutationEngine.mjs.map +1 -1
  119. package/dist/esm/sync/mutationEngine.native.js +73 -20
  120. package/dist/esm/sync/mutationEngine.native.js.map +1 -1
  121. package/dist/esm/sync/mutationJournal.mjs +8 -0
  122. package/dist/esm/sync/mutationJournal.mjs.map +1 -1
  123. package/dist/esm/sync/mutationJournal.native.js +11 -1
  124. package/dist/esm/sync/mutationJournal.native.js.map +1 -1
  125. package/dist/esm/sync/normalizedCache.native.js.map +1 -1
  126. package/dist/esm/sync/persistence.native.js +2 -2
  127. package/dist/esm/sync/persistence.native.js.map +1 -1
  128. package/dist/esm/sync/realtime.native.js +1 -1
  129. package/dist/esm/sync/realtime.native.js.map +1 -1
  130. package/dist/esm/sync/rehydration.native.js +1 -1
  131. package/dist/esm/sync/rehydration.native.js.map +1 -1
  132. package/dist/esm/sync/storage.native.js.map +1 -1
  133. package/dist/esm/sync/subscriptionManager.native.js +4 -4
  134. package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
  135. package/dist/esm/sync/types.mjs.map +1 -1
  136. package/dist/esm/sync/types.native.js.map +1 -1
  137. package/dist/esm/sync/virtualPageManager.native.js +1 -1
  138. package/dist/esm/sync/virtualPageManager.native.js.map +1 -1
  139. package/dist/esm/useLiveQuery.native.js.map +1 -1
  140. package/dist/esm/util.native.js.map +1 -1
  141. package/dist/jsx/core/http.mjs +45 -2
  142. package/dist/jsx/core/http.mjs.map +1 -1
  143. package/dist/jsx/core/http.native.js +72 -1
  144. package/dist/jsx/core/http.native.js.map +1 -1
  145. package/dist/jsx/doctype.mjs +15 -2
  146. package/dist/jsx/doctype.mjs.map +1 -1
  147. package/dist/jsx/doctype.native.js +22 -5
  148. package/dist/jsx/doctype.native.js.map +1 -1
  149. package/dist/jsx/frappeReact.mjs +55 -3
  150. package/dist/jsx/frappeReact.mjs.map +1 -1
  151. package/dist/jsx/frappeReact.native.js +66 -1
  152. package/dist/jsx/frappeReact.native.js.map +1 -1
  153. package/dist/jsx/index.js +5 -5
  154. package/dist/jsx/index.js.map +1 -1
  155. package/dist/jsx/index.mjs +5 -5
  156. package/dist/jsx/index.mjs.map +1 -1
  157. package/dist/jsx/index.native.js +8 -0
  158. package/dist/jsx/index.native.js.map +1 -1
  159. package/dist/jsx/optimistic.mjs +27 -1
  160. package/dist/jsx/optimistic.mjs.map +1 -1
  161. package/dist/jsx/optimistic.native.js +34 -1
  162. package/dist/jsx/optimistic.native.js.map +1 -1
  163. package/dist/jsx/pacer.mjs.map +1 -1
  164. package/dist/jsx/pacer.native.js.map +1 -1
  165. package/dist/jsx/realtime.mjs +234 -11
  166. package/dist/jsx/realtime.mjs.map +1 -1
  167. package/dist/jsx/realtime.native.js +368 -18
  168. package/dist/jsx/realtime.native.js.map +1 -1
  169. package/dist/jsx/sync/index.mjs +45 -1
  170. package/dist/jsx/sync/index.mjs.map +1 -1
  171. package/dist/jsx/sync/index.native.js +71 -1
  172. package/dist/jsx/sync/index.native.js.map +1 -1
  173. package/dist/jsx/sync/mutationEngine.mjs +51 -15
  174. package/dist/jsx/sync/mutationEngine.mjs.map +1 -1
  175. package/dist/jsx/sync/mutationEngine.native.js +69 -16
  176. package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
  177. package/dist/jsx/sync/mutationJournal.mjs +8 -0
  178. package/dist/jsx/sync/mutationJournal.mjs.map +1 -1
  179. package/dist/jsx/sync/mutationJournal.native.js +10 -0
  180. package/dist/jsx/sync/mutationJournal.native.js.map +1 -1
  181. package/dist/jsx/sync/types.mjs.map +1 -1
  182. package/dist/jsx/sync/types.native.js.map +1 -1
  183. package/package.json +8 -8
  184. package/src/core/http.spec.ts +81 -0
  185. package/src/core/http.ts +80 -3
  186. package/src/doctype.spec.ts +82 -3
  187. package/src/doctype.ts +51 -7
  188. package/src/frappeReact.ts +126 -4
  189. package/src/index.ts +28 -3
  190. package/src/optimistic.spec.ts +113 -2
  191. package/src/optimistic.ts +95 -0
  192. package/src/pacer.ts +8 -0
  193. package/src/realtime.spec.ts +62 -0
  194. package/src/realtime.ts +440 -14
  195. package/src/realtimeSse.spec.ts +547 -0
  196. package/src/sync/index.ts +44 -1
  197. package/src/sync/mutationEngine.spec.ts +7 -2
  198. package/src/sync/mutationEngine.ts +83 -27
  199. package/src/sync/mutationJournal.ts +9 -0
  200. package/src/sync/mutations.spec.ts +1 -1
  201. package/src/sync/syncModule.spec.ts +255 -1
  202. package/src/sync/types.ts +20 -0
  203. package/types/core/http.d.ts +11 -0
  204. package/types/core/http.d.ts.map +1 -1
  205. package/types/doctype.d.ts +7 -0
  206. package/types/doctype.d.ts.map +1 -1
  207. package/types/frappeReact.d.ts +50 -2
  208. package/types/frappeReact.d.ts.map +1 -1
  209. package/types/index.d.ts +8 -6
  210. package/types/index.d.ts.map +1 -1
  211. package/types/optimistic.d.ts +38 -0
  212. package/types/optimistic.d.ts.map +1 -1
  213. package/types/pacer.d.ts +8 -0
  214. package/types/pacer.d.ts.map +1 -1
  215. package/types/realtime.d.ts +183 -1
  216. package/types/realtime.d.ts.map +1 -1
  217. package/types/sync/index.d.ts +16 -1
  218. package/types/sync/index.d.ts.map +1 -1
  219. package/types/sync/mutationEngine.d.ts +7 -0
  220. package/types/sync/mutationEngine.d.ts.map +1 -1
  221. package/types/sync/mutationJournal.d.ts +6 -0
  222. package/types/sync/mutationJournal.d.ts.map +1 -1
  223. package/types/sync/types.d.ts +20 -0
  224. package/types/sync/types.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["isNative","io","isBrowser","isGjs","RealtimePlatform","RealtimePlatform2","docRoomKey","doctype","name","RealtimeModule","socket","handlerMap","Map","attachedSocketEvents","Set","socketEventHandlers","docRooms","listRooms","socketHealthy","isConnecting","healthyWaiters","config","authRefreshInflight","constructor","platform","detectPlatform","navigator","product","userAgent","includes","getSocketURL","base","baseURL","replace","url","URL","port","socketPort","String","host","hostname","siteName","protocol","result","split","getAuthOptions","authOptions","extraHeaders","Origin","origin","auth","sessionId","Cookie","useToken","token","authType","type","Authorization","transportOptions","websocket","polling","refreshSocketAuth","Promise","resolve","manager","opts","Object","assign","resolveHealthyWaiters","ok","clear","waitUntilHealthy","timeoutMs","connected","timer","setTimeout","delete","onReady","clearTimeout","add","ensureConnected","connect","resubscribeRooms","room","values","emit","socketURL","transports","autoConnect","path","randomizationFactor","reconnection","reconnectionAttempts","Number","POSITIVE_INFINITY","reconnectionDelay","reconnectionDelayMax","timeout","withCredentials","socketOptions","initHandlers","err","softDisconnect","removeAllListeners","disconnect","on","emitToHandlers","sid","id","reason","error","event","keys","attachSocketListener","has","handler","payload","set","detachSocketListener","get","off","handlerSet","size","subscribeDoc","unsubscribeDoc","teardownWhenIdle","subscribeList","filters","unsubscribeList","isHealthy","updateAuth","shouldReconnect","data","getSocket"],"sources":["../../src/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isNative","io","isBrowser","isGjs","RealtimePlatform","RealtimePlatform2","docRoomKey","doctype","name","RealtimeModule","socket","eventSource","handlerMap","Map","attachedSocketEvents","Set","socketEventHandlers","attachedSseEvents","sseListeners","sseRoomNoticeLogged","sseEmitNoticeLogged","docRooms","listRooms","socketHealthy","isConnecting","healthyWaiters","config","authRefreshInflight","constructor","platform","detectPlatform","navigator","product","userAgent","includes","getSocketURL","base","baseURL","replace","socketBaseURL","socketBase","siteName","URL","hostname","split","url","port","socketPort","String","host","protocol","result","getAuthOptions","authOptions","extraHeaders","Origin","origin","auth","sessionId","Cookie","useToken","token","authType","type","Authorization","transportOptions","websocket","polling","refreshSocketAuth","Promise","resolve","manager","opts","Object","assign","resolveHealthyWaiters","ok","clear","isSSE","transport","waitUntilHealthy","timeoutMs","isHealthy","timer","setTimeout","delete","onReady","clearTimeout","add","ensureConnected","connect","resubscribeRooms","room","values","emit","connectSSE","socketURL","transports","autoConnect","path","randomizationFactor","reconnection","reconnectionAttempts","Number","POSITIVE_INFINITY","reconnectionDelay","reconnectionDelayMax","timeout","withCredentials","socketOptions","initHandlers","err","sse","EventSourceCtor","EventSource","globalThis","Error","buildSSEURL","initSSEHandlers","startsWith","params","entries","queryParams","length","parts","key","value","resolved","push","encodeURIComponent","join","attachSSEListener","events","event","keys","has","listener","handleSSEEvent","set","addEventListener","detachSSEListener","isCoreSSEType","get","removeEventListener","data","emitToHandlers","reason","frame","lastEventId","mapFrame","mapped","console","warn","mappedEvent","payload","payload2","JSON","parse","logSSERoomNoticeOnce","debug","softDisconnect","removeAllListeners","disconnect","close","on","sid","id","error","attachSocketListener","handler","detachSocketListener","off","handlerSet","size","subscribeDoc","unsubscribeDoc","teardownWhenIdle","subscribeList","filters","unsubscribeList","connected","updateAuth","shouldReconnect","getSocket","getEventSource","getDocRooms","getListRooms"],"sources":["../../src/realtime.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import { isNative } from "@multiplatform.one/platform";
2
2
  import { io } from "socket.io-client";
3
- import { isBrowser, isGjs } from "./util";
3
+ import { isBrowser, isGjs } from "./util.native.js";
4
4
  function _class_call_check(instance, Constructor) {
5
5
  if (!(instance instanceof Constructor)) {
6
6
  throw new TypeError("Cannot call a class as a function");
@@ -48,9 +48,14 @@ var RealtimeModule = /* @__PURE__ */function () {
48
48
  function RealtimeModule2(config) {
49
49
  _class_call_check(this, RealtimeModule2);
50
50
  _define_property(this, "socket", void 0);
51
+ _define_property(this, "eventSource", void 0);
51
52
  _define_property(this, "handlerMap", /* @__PURE__ */new Map());
52
53
  _define_property(this, "attachedSocketEvents", /* @__PURE__ */new Set());
53
54
  _define_property(this, "socketEventHandlers", /* @__PURE__ */new Map());
55
+ _define_property(this, "attachedSseEvents", /* @__PURE__ */new Set());
56
+ _define_property(this, "sseListeners", /* @__PURE__ */new Map());
57
+ _define_property(this, "sseRoomNoticeLogged", false);
58
+ _define_property(this, "sseEmitNoticeLogged", false);
54
59
  _define_property(this, "docRooms", /* @__PURE__ */new Map());
55
60
  _define_property(this, "listRooms", /* @__PURE__ */new Map());
56
61
  _define_property(this, "socketHealthy", false);
@@ -78,19 +83,31 @@ var RealtimeModule = /* @__PURE__ */function () {
78
83
  key: "getSocketURL",
79
84
  value: function getSocketURL() {
80
85
  var base = this.config.baseURL.replace(/\/$/, "");
86
+ if (this.config.socketBaseURL) {
87
+ var socketBase = this.config.socketBaseURL.replace(/\/$/, "");
88
+ var siteName = this.config.siteName;
89
+ if (!siteName) {
90
+ try {
91
+ siteName = new URL(base).hostname;
92
+ } catch (unused) {
93
+ siteName = base.replace(/^https?:\/\//, "").split(/[/:]/)[0];
94
+ }
95
+ }
96
+ return `${socketBase}/${siteName}`;
97
+ }
81
98
  try {
82
99
  var url = new URL(base);
83
100
  var port = this.config.socketPort ? String(this.config.socketPort) : url.port;
84
101
  var host = port ? `${url.hostname}:${port}` : url.hostname;
85
- var siteName = this.config.siteName || url.hostname;
86
- return `${url.protocol}//${host}/${siteName}`;
102
+ var siteName1 = this.config.siteName || url.hostname;
103
+ return `${url.protocol}//${host}/${siteName1}`;
87
104
  } catch (unused) {
88
105
  var result = base;
89
106
  if (this.config.socketPort) {
90
107
  result = result.replace(/(:\d+)/, `:${this.config.socketPort}`);
91
108
  }
92
- var siteName1 = this.config.siteName || result.replace(/^https?:\/\//, "").split(/[/:]/)[0];
93
- return `${result}/${siteName1}`;
109
+ var siteName2 = this.config.siteName || result.replace(/^https?:\/\//, "").split(/[/:]/)[0];
110
+ return `${result}/${siteName2}`;
94
111
  }
95
112
  }
96
113
  }, {
@@ -196,13 +213,17 @@ var RealtimeModule = /* @__PURE__ */function () {
196
213
  }
197
214
  this.healthyWaiters.clear();
198
215
  }
216
+ }, {
217
+ key: "isSSE",
218
+ value: function isSSE() {
219
+ return this.config.transport === "sse";
220
+ }
199
221
  }, {
200
222
  key: "waitUntilHealthy",
201
223
  value: function waitUntilHealthy() {
202
224
  var _this = this;
203
225
  var timeoutMs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 2e4;
204
- var _this_socket;
205
- if (this.socketHealthy && ((_this_socket = this.socket) === null || _this_socket === void 0 ? void 0 : _this_socket.connected)) return Promise.resolve(true);
226
+ if (this.isHealthy()) return Promise.resolve(true);
206
227
  return new Promise(function (resolve) {
207
228
  var timer = setTimeout(function () {
208
229
  _this.healthyWaiters.delete(onReady);
@@ -218,9 +239,8 @@ var RealtimeModule = /* @__PURE__ */function () {
218
239
  }, {
219
240
  key: "ensureConnected",
220
241
  value: async function ensureConnected() {
221
- var _this_socket;
222
- if (this.socketHealthy && ((_this_socket = this.socket) === null || _this_socket === void 0 ? void 0 : _this_socket.connected)) return;
223
- if (!this.socket && !this.isConnecting) {
242
+ if (this.isHealthy()) return;
243
+ if (!this.socket && !this.eventSource && !this.isConnecting) {
224
244
  await this.connect();
225
245
  }
226
246
  await this.waitUntilHealthy();
@@ -276,7 +296,17 @@ var RealtimeModule = /* @__PURE__ */function () {
276
296
  }
277
297
  }, {
278
298
  key: "connect",
279
- value: async function connect() {
299
+ value: (
300
+ /**
301
+ * Open the realtime transport now. Room-driven auto-connect
302
+ * (subscribeDoc/subscribeList) remains the primary lifecycle in both
303
+ * transports — this is public for SSE consumers that use no doc/list room
304
+ * bookkeeping: a one-way stream has nothing to emit on join, so nothing
305
+ * else would ever open it. Idempotent while a transport exists or a
306
+ * connect is in flight.
307
+ */
308
+ async function connect() {
309
+ if (this.isSSE()) return this.connectSSE();
280
310
  if (this.socket || this.isConnecting) return;
281
311
  this.isConnecting = true;
282
312
  try {
@@ -304,7 +334,259 @@ var RealtimeModule = /* @__PURE__ */function () {
304
334
  this.resolveHealthyWaiters(false);
305
335
  throw err;
306
336
  }
337
+ })
338
+ }, {
339
+ key: "connectSSE",
340
+ value: (
341
+ /**
342
+ * SSE branch of connect(): construct an EventSource against the configured
343
+ * stream URL. EventSource connects at construction, auto-reconnects on
344
+ * failure, and resumes missed frames itself by sending the stream's last
345
+ * `id:` as the `Last-Event-ID` request header — none of that is
346
+ * reimplemented here.
347
+ */
348
+ async function connectSSE() {
349
+ if (this.eventSource || this.isConnecting) return;
350
+ this.isConnecting = true;
351
+ try {
352
+ var _ref;
353
+ var sse = this.config.sse;
354
+ var EventSourceCtor = (_ref = sse === null || sse === void 0 ? void 0 : sse.EventSource) !== null && _ref !== void 0 ? _ref : globalThis.EventSource;
355
+ if (!EventSourceCtor) {
356
+ throw new Error('[RealtimeModule] transport "sse" needs an EventSource implementation, and this runtime has no global EventSource (React Native and Node < 22 ship none). Pass a constructor via config.sse.EventSource \u2014 e.g. the "eventsource" npm package on Node or "react-native-sse" on React Native.');
357
+ }
358
+ var url = await this.buildSSEURL();
359
+ this.eventSource = new EventSourceCtor(url, {
360
+ withCredentials: sse === null || sse === void 0 ? void 0 : sse.withCredentials
361
+ });
362
+ this.initSSEHandlers();
363
+ } catch (err) {
364
+ this.isConnecting = false;
365
+ this.resolveHealthyWaiters(false);
366
+ throw err;
367
+ }
368
+ })
369
+ }, {
370
+ key: "buildSSEURL",
371
+ value: async function buildSSEURL() {
372
+ var _ref;
373
+ var _this_config_sse;
374
+ var sse = this.config.sse;
375
+ var url;
376
+ if (sse === null || sse === void 0 ? void 0 : sse.url) {
377
+ url = sse.url;
378
+ } else if (sse === null || sse === void 0 ? void 0 : sse.path) {
379
+ var base = this.config.baseURL.replace(/\/$/, "");
380
+ url = `${base}${sse.path.startsWith("/") ? "" : "/"}${sse.path}`;
381
+ } else {
382
+ throw new Error('[RealtimeModule] transport "sse" requires config.sse.url or config.sse.path. There is no default stream path: SSE endpoints are server-specific (the SHC daemon serves "/api/method/shc.events.stream"; a real Frappe bench has no SSE endpoint at all), so a framework default would only ever 404.');
383
+ }
384
+ var params = Object.entries((_ref = (_this_config_sse = this.config.sse) === null || _this_config_sse === void 0 ? void 0 : _this_config_sse.queryParams) !== null && _ref !== void 0 ? _ref : {});
385
+ if (params.length === 0) return url;
386
+ var parts = [];
387
+ var _iteratorNormalCompletion = true,
388
+ _didIteratorError = false,
389
+ _iteratorError = void 0;
390
+ try {
391
+ for (var _iterator = params[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
392
+ var [key, value] = _step.value;
393
+ var resolved = typeof value === "function" ? await value() : value;
394
+ parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(resolved)}`);
395
+ }
396
+ } catch (err) {
397
+ _didIteratorError = true;
398
+ _iteratorError = err;
399
+ } finally {
400
+ try {
401
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
402
+ _iterator.return();
403
+ }
404
+ } finally {
405
+ if (_didIteratorError) {
406
+ throw _iteratorError;
407
+ }
408
+ }
409
+ }
410
+ return `${url}${url.includes("?") ? "&" : "?"}${parts.join("&")}`;
307
411
  }
412
+ }, {
413
+ key: "initSSEHandlers",
414
+ value: function initSSEHandlers() {
415
+ var _ref;
416
+ var _this_config_sse;
417
+ this.attachedSseEvents.clear();
418
+ this.sseListeners.clear();
419
+ this.attachSSEListener("open");
420
+ this.attachSSEListener("error");
421
+ this.attachSSEListener("message");
422
+ var _iteratorNormalCompletion = true,
423
+ _didIteratorError = false,
424
+ _iteratorError = void 0;
425
+ try {
426
+ for (var _iterator = ((_ref = (_this_config_sse = this.config.sse) === null || _this_config_sse === void 0 ? void 0 : _this_config_sse.events) !== null && _ref !== void 0 ? _ref : [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
427
+ var type = _step.value;
428
+ this.attachSSEListener(type);
429
+ }
430
+ } catch (err) {
431
+ _didIteratorError = true;
432
+ _iteratorError = err;
433
+ } finally {
434
+ try {
435
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
436
+ _iterator.return();
437
+ }
438
+ } finally {
439
+ if (_didIteratorError) {
440
+ throw _iteratorError;
441
+ }
442
+ }
443
+ }
444
+ var _iteratorNormalCompletion1 = true,
445
+ _didIteratorError1 = false,
446
+ _iteratorError1 = void 0;
447
+ try {
448
+ for (var _iterator1 = this.handlerMap.keys()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
449
+ var event = _step1.value;
450
+ this.attachSSEListener(event);
451
+ }
452
+ } catch (err) {
453
+ _didIteratorError1 = true;
454
+ _iteratorError1 = err;
455
+ } finally {
456
+ try {
457
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
458
+ _iterator1.return();
459
+ }
460
+ } finally {
461
+ if (_didIteratorError1) {
462
+ throw _iteratorError1;
463
+ }
464
+ }
465
+ }
466
+ }
467
+ }, {
468
+ key: "attachSSEListener",
469
+ value: function attachSSEListener(type) {
470
+ var _this = this;
471
+ if (!this.eventSource || this.attachedSseEvents.has(type)) return;
472
+ var listener = function listener2(event) {
473
+ _this.handleSSEEvent(type, event);
474
+ };
475
+ this.sseListeners.set(type, listener);
476
+ this.attachedSseEvents.add(type);
477
+ this.eventSource.addEventListener(type, listener);
478
+ }
479
+ }, {
480
+ key: "detachSSEListener",
481
+ value: function detachSSEListener(type) {
482
+ if (this.isCoreSSEType(type)) return;
483
+ if (!this.eventSource || !this.attachedSseEvents.has(type)) return;
484
+ var listener = this.sseListeners.get(type);
485
+ if (listener) {
486
+ this.eventSource.removeEventListener(type, listener);
487
+ this.sseListeners.delete(type);
488
+ }
489
+ this.attachedSseEvents.delete(type);
490
+ }
491
+ }, {
492
+ key: "isCoreSSEType",
493
+ value: function isCoreSSEType(type) {
494
+ var _ref;
495
+ var _this_config_sse;
496
+ return type === "open" || type === "error" || type === "message" || ((_ref = (_this_config_sse = this.config.sse) === null || _this_config_sse === void 0 ? void 0 : _this_config_sse.events) !== null && _ref !== void 0 ? _ref : []).includes(type);
497
+ }
498
+ }, {
499
+ key: "handleSSEEvent",
500
+ value: (
501
+ /**
502
+ * Single entry point for everything the EventSource dispatches. Dataless
503
+ * events are transport lifecycle (`open`/`error` as plain Events); anything
504
+ * carrying `data` is a server frame — including frames the server
505
+ * classified `event: error`, which arrive as MessageEvents WITH data and
506
+ * must not be mistaken for connection errors.
507
+ */
508
+ function handleSSEEvent(type, event) {
509
+ var _event_lastEventId;
510
+ var _this_config_sse;
511
+ if ((event === null || event === void 0 ? void 0 : event.data) === void 0) {
512
+ if (type === "open") {
513
+ this.isConnecting = false;
514
+ this.socketHealthy = true;
515
+ this.emitToHandlers("connected", {
516
+ transport: "sse"
517
+ });
518
+ this.resolveHealthyWaiters(true);
519
+ } else if (type === "error") {
520
+ this.isConnecting = false;
521
+ this.socketHealthy = false;
522
+ this.emitToHandlers("disconnect", {
523
+ reason: "sse-error"
524
+ });
525
+ this.resolveHealthyWaiters(false);
526
+ }
527
+ return;
528
+ }
529
+ var frame = {
530
+ type,
531
+ data: String(event.data),
532
+ lastEventId: (_event_lastEventId = event.lastEventId) !== null && _event_lastEventId !== void 0 ? _event_lastEventId : ""
533
+ };
534
+ var mapFrame = (_this_config_sse = this.config.sse) === null || _this_config_sse === void 0 ? void 0 : _this_config_sse.mapFrame;
535
+ if (mapFrame) {
536
+ var mapped;
537
+ try {
538
+ mapped = mapFrame(frame);
539
+ } catch (err) {
540
+ console.warn("[RealtimeModule] sse.mapFrame threw; frame dropped:", err);
541
+ return;
542
+ }
543
+ if (!mapped) return;
544
+ var _iteratorNormalCompletion = true,
545
+ _didIteratorError = false,
546
+ _iteratorError = void 0;
547
+ try {
548
+ for (var _iterator = mapped[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
549
+ var {
550
+ event: mappedEvent,
551
+ payload
552
+ } = _step.value;
553
+ this.emitToHandlers(mappedEvent, payload);
554
+ }
555
+ } catch (err) {
556
+ _didIteratorError = true;
557
+ _iteratorError = err;
558
+ } finally {
559
+ try {
560
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
561
+ _iterator.return();
562
+ }
563
+ } finally {
564
+ if (_didIteratorError) {
565
+ throw _iteratorError;
566
+ }
567
+ }
568
+ }
569
+ return;
570
+ }
571
+ var payload1 = frame.data;
572
+ try {
573
+ payload1 = JSON.parse(frame.data);
574
+ } catch (unused) {}
575
+ this.emitToHandlers(frame.type, payload1);
576
+ })
577
+ }, {
578
+ key: "logSSERoomNoticeOnce",
579
+ value: (
580
+ /**
581
+ * Logged once: SSE is one-way, so doc/list room membership can't be sent
582
+ * upstream — rooms are recorded client-side (see getDocRooms/getListRooms)
583
+ * for mapFrame-driven filtering and for a future two-way transport.
584
+ */
585
+ function logSSERoomNoticeOnce() {
586
+ if (this.sseRoomNoticeLogged) return;
587
+ this.sseRoomNoticeLogged = true;
588
+ console.debug("[RealtimeModule] SSE transport is one-way: doc/list room subscriptions are recorded client-side only (getDocRooms()/getListRooms()) and nothing is sent to the server \u2014 filter server-side via sse.queryParams or route frames with sse.mapFrame.");
589
+ })
308
590
  }, {
309
591
  key: "softDisconnect",
310
592
  value: (
@@ -320,8 +602,36 @@ var RealtimeModule = /* @__PURE__ */function () {
320
602
  this.socket.disconnect();
321
603
  this.socket = void 0;
322
604
  }
605
+ if (this.eventSource) {
606
+ var _iteratorNormalCompletion = true,
607
+ _didIteratorError = false,
608
+ _iteratorError = void 0;
609
+ try {
610
+ for (var _iterator = this.sseListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
611
+ var [type, listener] = _step.value;
612
+ this.eventSource.removeEventListener(type, listener);
613
+ }
614
+ } catch (err) {
615
+ _didIteratorError = true;
616
+ _iteratorError = err;
617
+ } finally {
618
+ try {
619
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
620
+ _iterator.return();
621
+ }
622
+ } finally {
623
+ if (_didIteratorError) {
624
+ throw _iteratorError;
625
+ }
626
+ }
627
+ }
628
+ this.eventSource.close();
629
+ this.eventSource = void 0;
630
+ }
323
631
  this.attachedSocketEvents.clear();
324
632
  this.socketEventHandlers.clear();
633
+ this.attachedSseEvents.clear();
634
+ this.sseListeners.clear();
325
635
  this.socketHealthy = false;
326
636
  this.isConnecting = false;
327
637
  this.resolveHealthyWaiters(false);
@@ -452,7 +762,11 @@ var RealtimeModule = /* @__PURE__ */function () {
452
762
  this.handlerMap.set(event, handlerSet);
453
763
  }
454
764
  handlerSet.add(handler);
455
- this.attachSocketListener(event);
765
+ if (this.isSSE()) {
766
+ this.attachSSEListener(event);
767
+ } else {
768
+ this.attachSocketListener(event);
769
+ }
456
770
  }
457
771
  }, {
458
772
  key: "off",
@@ -462,7 +776,11 @@ var RealtimeModule = /* @__PURE__ */function () {
462
776
  handlerSet.delete(handler);
463
777
  if (handlerSet.size === 0) {
464
778
  this.handlerMap.delete(event);
465
- this.detachSocketListener(event);
779
+ if (this.isSSE()) {
780
+ this.detachSSEListener(event);
781
+ } else {
782
+ this.detachSocketListener(event);
783
+ }
466
784
  }
467
785
  }
468
786
  }, {
@@ -472,8 +790,9 @@ var RealtimeModule = /* @__PURE__ */function () {
472
790
  doctype,
473
791
  name
474
792
  });
793
+ if (this.isSSE()) this.logSSERoomNoticeOnce();
475
794
  await this.ensureConnected();
476
- if (this.socket && this.socketHealthy) {
795
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
477
796
  this.socket.emit("doc_subscribe", doctype, name);
478
797
  }
479
798
  }
@@ -481,7 +800,7 @@ var RealtimeModule = /* @__PURE__ */function () {
481
800
  key: "unsubscribeDoc",
482
801
  value: function unsubscribeDoc(doctype, name) {
483
802
  this.docRooms.delete(docRoomKey(doctype, name));
484
- if (this.socket && this.socketHealthy) {
803
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
485
804
  this.socket.emit("doc_unsubscribe", doctype, name);
486
805
  }
487
806
  this.teardownWhenIdle();
@@ -501,8 +820,9 @@ var RealtimeModule = /* @__PURE__ */function () {
501
820
  doctype,
502
821
  filters
503
822
  });
823
+ if (this.isSSE()) this.logSSERoomNoticeOnce();
504
824
  await this.ensureConnected();
505
- if (this.socket && this.socketHealthy) {
825
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
506
826
  this.socket.emit("doctype_subscribe", doctype);
507
827
  }
508
828
  })
@@ -510,7 +830,7 @@ var RealtimeModule = /* @__PURE__ */function () {
510
830
  key: "unsubscribeList",
511
831
  value: function unsubscribeList(doctype) {
512
832
  this.listRooms.delete(doctype);
513
- if (this.socket && this.socketHealthy) {
833
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
514
834
  this.socket.emit("doctype_unsubscribe", doctype);
515
835
  }
516
836
  this.teardownWhenIdle();
@@ -529,7 +849,7 @@ var RealtimeModule = /* @__PURE__ */function () {
529
849
  */
530
850
  function teardownWhenIdle() {
531
851
  if (this.docRooms.size > 0 || this.listRooms.size > 0) return;
532
- if (!this.socket && !this.isConnecting) return;
852
+ if (!this.socket && !this.eventSource && !this.isConnecting) return;
533
853
  this.emitToHandlers("disconnect", {
534
854
  reason: "idle-teardown"
535
855
  });
@@ -539,6 +859,7 @@ var RealtimeModule = /* @__PURE__ */function () {
539
859
  key: "isHealthy",
540
860
  value: function isHealthy() {
541
861
  var _this_socket;
862
+ if (this.isSSE()) return this.socketHealthy && this.eventSource !== void 0;
542
863
  return this.socketHealthy && ((_this_socket = this.socket) === null || _this_socket === void 0 ? void 0 : _this_socket.connected) === true;
543
864
  }
544
865
  }, {
@@ -553,7 +874,7 @@ var RealtimeModule = /* @__PURE__ */function () {
553
874
  key: "updateAuth",
554
875
  value: async function updateAuth(auth) {
555
876
  this.config.auth = auth;
556
- var shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0;
877
+ var shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0 || this.isSSE() && this.eventSource !== void 0;
557
878
  this.softDisconnect();
558
879
  if (shouldReconnect) {
559
880
  await this.connect();
@@ -562,6 +883,13 @@ var RealtimeModule = /* @__PURE__ */function () {
562
883
  }, {
563
884
  key: "emit",
564
885
  value: function emit(event, data) {
886
+ if (this.isSSE()) {
887
+ if (!this.sseEmitNoticeLogged) {
888
+ this.sseEmitNoticeLogged = true;
889
+ console.debug("[RealtimeModule] emit() is a no-op under the SSE transport \u2014 SSE is one-way (server \u2192 client). Use HTTP calls for client \u2192 server communication.");
890
+ }
891
+ return;
892
+ }
565
893
  if (this.socket && this.socketHealthy) {
566
894
  this.socket.emit(event, data);
567
895
  }
@@ -571,6 +899,28 @@ var RealtimeModule = /* @__PURE__ */function () {
571
899
  value: function getSocket() {
572
900
  return this.socket;
573
901
  }
902
+ }, {
903
+ /** Live EventSource when the SSE transport is connected (undefined otherwise). */
904
+ key: "getEventSource",
905
+ value: function getEventSource() {
906
+ return this.eventSource;
907
+ }
908
+ }, {
909
+ /**
910
+ * Doc rooms recorded by subscribeDoc. Under SSE these are client-side
911
+ * bookkeeping only (nothing is emitted upstream) — mapFrame-driven apps
912
+ * consult them to filter or route frames.
913
+ */
914
+ key: "getDocRooms",
915
+ value: function getDocRooms() {
916
+ return [...this.docRooms.values()];
917
+ }
918
+ }, {
919
+ /** List rooms recorded by subscribeList — same client-side semantics as getDocRooms. */
920
+ key: "getListRooms",
921
+ value: function getListRooms() {
922
+ return [...this.listRooms.values()];
923
+ }
574
924
  }]);
575
925
  return RealtimeModule2;
576
926
  }();