@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":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","plugin_exports","default","plugin_default","module","exports","init","modules","ts","typescript","openapi","ns","lastFetch","ttl","create","info","config","url","openapiUrl","toString","namespace","Number","cacheTTL","ensureOpenAPI","now","Date","res","fetch","json","unused","proxy","Proxy","languageService","prop","_len","arguments","length","args","Array","_key","getSemanticDiagnostics","apply","getExternalFiles","getSourceFile","fileName","languageVersion","_onError","_shouldCreateNewSourceFile","_length","content","emitDTS","createSourceFile","spec","ns2","_spec_components","lines","push","schemas","components","paths","doctypes","Set","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","keys","Symbol","iterator","_step","next","done","p","parts","split","filter","Boolean","idx","indexOf","add","err","return","map","d","join","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","entries","_step1","schema","enum","members","x","JSON","stringify","safe","type","properties","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","k","v","t","mapType","rq","isArray","required","optional","s","replace","_v_schema","$ref","pop","items"],"sources":["index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar plugin_exports = {};\n__export(plugin_exports, {\n default: () => plugin_default\n});\nmodule.exports = __toCommonJS(plugin_exports);\nfunction init(modules) {\n var ts = modules.typescript;\n var openapi = null;\n var ns = \"@frappe/types\";\n var lastFetch = 0;\n var ttl = 6e4;\n function create(info) {\n var config = info.config || {};\n var url = (config.openapiUrl || \"\").toString();\n ns = (config.namespace || ns).toString();\n ttl = Number(config.cacheTTL || ttl);\n async function ensureOpenAPI() {\n var now = Date.now();\n if (openapi && now - lastFetch < ttl) return;\n if (!url) return;\n try {\n var res = await fetch(url);\n openapi = await res.json();\n lastFetch = now;\n } catch (unused) {\n }\n }\n var proxy = new Proxy(info.languageService, {\n get(target, prop) {\n if (prop !== \"getSemanticDiagnostics\") return target[prop];\n return async function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n await ensureOpenAPI();\n return target.getSemanticDiagnostics.apply(this, args);\n };\n }\n });\n function getExternalFiles() {\n return openapi ? [\n \"frappe-virtual-types.d.ts\"\n ] : [];\n }\n function getSourceFile(fileName, languageVersion, _onError, _shouldCreateNewSourceFile, _length) {\n if (fileName === \"frappe-virtual-types.d.ts\" && openapi) {\n var content = emitDTS(openapi, ns);\n return ts.createSourceFile(fileName, content, languageVersion);\n }\n return void 0;\n }\n return {\n ...proxy,\n getExternalFiles,\n getSourceFile\n };\n }\n function emitDTS(spec, ns2) {\n var _spec_components;\n var lines = [];\n lines.push(`declare module \"${ns2}\" {`);\n var schemas = (spec === null || spec === void 0 ? void 0 : (_spec_components = spec.components) === null || _spec_components === void 0 ? void 0 : _spec_components.schemas) || {};\n var paths = spec.paths || {};\n var doctypes = /* @__PURE__ */ new Set();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = Object.keys(paths)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var p = _step.value;\n var parts = p.split(\"/\").filter(Boolean);\n var idx = parts.indexOf(\"resource\");\n if (idx >= 0 && parts[idx + 1]) doctypes.add(parts[idx + 1]);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n lines.push(` export type Doctype = ${[\n ...doctypes\n ].map(function(d) {\n return `'${d}'`;\n }).join(\" | \") || \"string\"}`);\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = Object.entries(schemas)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var [name, schema] = _step1.value;\n if (schema === null || schema === void 0 ? void 0 : schema.enum) {\n var members = schema.enum.map(function(x) {\n return JSON.stringify(x);\n }).join(\" | \");\n lines.push(` export type ${safe(name)} = ${members}`);\n continue;\n }\n if ((schema === null || schema === void 0 ? void 0 : schema.type) === \"object\" && (schema === null || schema === void 0 ? void 0 : schema.properties)) {\n lines.push(` export interface ${safe(name)} {`);\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = Object.entries((schema === null || schema === void 0 ? void 0 : schema.properties) || {})[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var [k, v] = _step2.value;\n var t = mapType(v);\n var rq = Array.isArray(schema === null || schema === void 0 ? void 0 : schema.required) ? schema.required : [];\n var optional = rq.indexOf(k) === -1;\n lines.push(` ${safe(k)}${optional ? \"?\" : \"\"}: ${t}`);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n lines.push(\" }\");\n }\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n lines.push(\"}\");\n return lines.join(\"\\n\");\n }\n function safe(s) {\n return s.replace(/[^a-zA-Z0-9_]/g, \"_\");\n }\n function mapType(v) {\n var _v_schema;\n if (!v) return \"any\";\n if (v.$ref) return safe(v.$ref.split(\"/\").pop() || \"any\");\n var t = v.type || ((_v_schema = v.schema) === null || _v_schema === void 0 ? void 0 : _v_schema.type);\n if (t === \"string\") return \"string\";\n if (t === \"integer\" || t === \"number\") return \"number\";\n if (t === \"boolean\") return \"boolean\";\n if (t === \"array\") return `${mapType(v.items)}[]`;\n if (t === \"object\") return \"Record<string, any>\";\n return \"any\";\n }\n return {\n create\n };\n}\nvar plugin_default = init;\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","plugin_exports","__export","default","plugin_default","module","exports","init","modules","ts","typescript","openapi","ns","lastFetch","ttl","create","info","config","url","openapiUrl","toString","namespace","Number","cacheTTL","ensureOpenAPI","now","Date","res","fetch","json","unused","proxy","Proxy","languageService","get","target","prop","_len","arguments","length","args","Array","_key","getSemanticDiagnostics","apply","getExternalFiles","getSourceFile","fileName","languageVersion","_onError","_shouldCreateNewSourceFile","_length","content","emitDTS","createSourceFile","spec","ns2","_spec_components","lines","push","schemas","components","paths","doctypes","Set","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Object","keys","Symbol","iterator","_step","next","done","p","parts","split","filter","Boolean","idx","indexOf","add","err","return","map","d","join","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","entries","_step1","name","schema","enum","members","x","JSON","stringify","safe"],"sources":["../../../src/plugin/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -40,11 +40,20 @@ function docRoomKey(doctype, name) {
40
40
  }
41
41
  class RealtimeModule {
42
42
  socket;
43
+ /** Live EventSource when the `"sse"` transport is active. */
44
+ eventSource;
43
45
  handlerMap = /* @__PURE__ */new Map();
44
46
  /** Tracks events with socket listeners attached to prevent duplicates. */
45
47
  attachedSocketEvents = /* @__PURE__ */new Set();
46
48
  /** Stored socket event handler references for proper cleanup. */
47
49
  socketEventHandlers = /* @__PURE__ */new Map();
50
+ /** Tracks SSE event types with listeners attached to prevent duplicates. */
51
+ attachedSseEvents = /* @__PURE__ */new Set();
52
+ /** Stored SSE listener references for proper cleanup. */
53
+ sseListeners = /* @__PURE__ */new Map();
54
+ /** One-shot debug notices for SSE's one-way limitations. */
55
+ sseRoomNoticeLogged = false;
56
+ sseEmitNoticeLogged = false;
48
57
  /** Active doc rooms — re-emitted on every (re)connect. */
49
58
  docRooms = /* @__PURE__ */new Map();
50
59
  /** Active list rooms — re-emitted on every (re)connect. */
@@ -71,6 +80,18 @@ class RealtimeModule {
71
80
  }
72
81
  getSocketURL() {
73
82
  const base = this.config.baseURL.replace(/\/$/, "");
83
+ if (this.config.socketBaseURL) {
84
+ const socketBase = this.config.socketBaseURL.replace(/\/$/, "");
85
+ let siteName = this.config.siteName;
86
+ if (!siteName) {
87
+ try {
88
+ siteName = new URL(base).hostname;
89
+ } catch {
90
+ siteName = base.replace(/^https?:\/\//, "").split(/[/:]/)[0];
91
+ }
92
+ }
93
+ return `${socketBase}/${siteName}`;
94
+ }
74
95
  try {
75
96
  const url = new URL(base);
76
97
  const port = this.config.socketPort ? String(this.config.socketPort) : url.port;
@@ -159,8 +180,11 @@ class RealtimeModule {
159
180
  for (const resolve of this.healthyWaiters) resolve(ok);
160
181
  this.healthyWaiters.clear();
161
182
  }
183
+ isSSE() {
184
+ return this.config.transport === "sse";
185
+ }
162
186
  waitUntilHealthy(timeoutMs = 2e4) {
163
- if (this.socketHealthy && this.socket?.connected) return Promise.resolve(true);
187
+ if (this.isHealthy()) return Promise.resolve(true);
164
188
  return new Promise(resolve => {
165
189
  const timer = setTimeout(() => {
166
190
  this.healthyWaiters.delete(onReady);
@@ -174,8 +198,8 @@ class RealtimeModule {
174
198
  });
175
199
  }
176
200
  async ensureConnected() {
177
- if (this.socketHealthy && this.socket?.connected) return;
178
- if (!this.socket && !this.isConnecting) {
201
+ if (this.isHealthy()) return;
202
+ if (!this.socket && !this.eventSource && !this.isConnecting) {
179
203
  await this.connect();
180
204
  }
181
205
  await this.waitUntilHealthy();
@@ -189,7 +213,16 @@ class RealtimeModule {
189
213
  this.socket.emit("doctype_subscribe", room.doctype);
190
214
  }
191
215
  }
216
+ /**
217
+ * Open the realtime transport now. Room-driven auto-connect
218
+ * (subscribeDoc/subscribeList) remains the primary lifecycle in both
219
+ * transports — this is public for SSE consumers that use no doc/list room
220
+ * bookkeeping: a one-way stream has nothing to emit on join, so nothing
221
+ * else would ever open it. Idempotent while a transport exists or a
222
+ * connect is in flight.
223
+ */
192
224
  async connect() {
225
+ if (this.isSSE()) return this.connectSSE();
193
226
  if (this.socket || this.isConnecting) return;
194
227
  this.isConnecting = true;
195
228
  try {
@@ -218,6 +251,153 @@ class RealtimeModule {
218
251
  throw err;
219
252
  }
220
253
  }
254
+ /**
255
+ * SSE branch of connect(): construct an EventSource against the configured
256
+ * stream URL. EventSource connects at construction, auto-reconnects on
257
+ * failure, and resumes missed frames itself by sending the stream's last
258
+ * `id:` as the `Last-Event-ID` request header — none of that is
259
+ * reimplemented here.
260
+ */
261
+ async connectSSE() {
262
+ if (this.eventSource || this.isConnecting) return;
263
+ this.isConnecting = true;
264
+ try {
265
+ const sse = this.config.sse;
266
+ const EventSourceCtor = sse?.EventSource ?? globalThis.EventSource;
267
+ if (!EventSourceCtor) {
268
+ 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.');
269
+ }
270
+ const url = await this.buildSSEURL();
271
+ this.eventSource = new EventSourceCtor(url, {
272
+ withCredentials: sse?.withCredentials
273
+ });
274
+ this.initSSEHandlers();
275
+ } catch (err) {
276
+ this.isConnecting = false;
277
+ this.resolveHealthyWaiters(false);
278
+ throw err;
279
+ }
280
+ }
281
+ async buildSSEURL() {
282
+ const sse = this.config.sse;
283
+ let url;
284
+ if (sse?.url) {
285
+ url = sse.url;
286
+ } else if (sse?.path) {
287
+ const base = this.config.baseURL.replace(/\/$/, "");
288
+ url = `${base}${sse.path.startsWith("/") ? "" : "/"}${sse.path}`;
289
+ } else {
290
+ 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.');
291
+ }
292
+ const params = Object.entries(this.config.sse?.queryParams ?? {});
293
+ if (params.length === 0) return url;
294
+ const parts = [];
295
+ for (const [key, value] of params) {
296
+ const resolved = typeof value === "function" ? await value() : value;
297
+ parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(resolved)}`);
298
+ }
299
+ return `${url}${url.includes("?") ? "&" : "?"}${parts.join("&")}`;
300
+ }
301
+ initSSEHandlers() {
302
+ this.attachedSseEvents.clear();
303
+ this.sseListeners.clear();
304
+ this.attachSSEListener("open");
305
+ this.attachSSEListener("error");
306
+ this.attachSSEListener("message");
307
+ for (const type of this.config.sse?.events ?? []) {
308
+ this.attachSSEListener(type);
309
+ }
310
+ for (const event of this.handlerMap.keys()) {
311
+ this.attachSSEListener(event);
312
+ }
313
+ }
314
+ attachSSEListener(type) {
315
+ if (!this.eventSource || this.attachedSseEvents.has(type)) return;
316
+ const listener = event => {
317
+ this.handleSSEEvent(type, event);
318
+ };
319
+ this.sseListeners.set(type, listener);
320
+ this.attachedSseEvents.add(type);
321
+ this.eventSource.addEventListener(type, listener);
322
+ }
323
+ detachSSEListener(type) {
324
+ if (this.isCoreSSEType(type)) return;
325
+ if (!this.eventSource || !this.attachedSseEvents.has(type)) return;
326
+ const listener = this.sseListeners.get(type);
327
+ if (listener) {
328
+ this.eventSource.removeEventListener(type, listener);
329
+ this.sseListeners.delete(type);
330
+ }
331
+ this.attachedSseEvents.delete(type);
332
+ }
333
+ isCoreSSEType(type) {
334
+ return type === "open" || type === "error" || type === "message" || (this.config.sse?.events ?? []).includes(type);
335
+ }
336
+ /**
337
+ * Single entry point for everything the EventSource dispatches. Dataless
338
+ * events are transport lifecycle (`open`/`error` as plain Events); anything
339
+ * carrying `data` is a server frame — including frames the server
340
+ * classified `event: error`, which arrive as MessageEvents WITH data and
341
+ * must not be mistaken for connection errors.
342
+ */
343
+ handleSSEEvent(type, event) {
344
+ if (event?.data === void 0) {
345
+ if (type === "open") {
346
+ this.isConnecting = false;
347
+ this.socketHealthy = true;
348
+ this.emitToHandlers("connected", {
349
+ transport: "sse"
350
+ });
351
+ this.resolveHealthyWaiters(true);
352
+ } else if (type === "error") {
353
+ this.isConnecting = false;
354
+ this.socketHealthy = false;
355
+ this.emitToHandlers("disconnect", {
356
+ reason: "sse-error"
357
+ });
358
+ this.resolveHealthyWaiters(false);
359
+ }
360
+ return;
361
+ }
362
+ const frame = {
363
+ type,
364
+ data: String(event.data),
365
+ lastEventId: event.lastEventId ?? ""
366
+ };
367
+ const mapFrame = this.config.sse?.mapFrame;
368
+ if (mapFrame) {
369
+ let mapped;
370
+ try {
371
+ mapped = mapFrame(frame);
372
+ } catch (err) {
373
+ console.warn("[RealtimeModule] sse.mapFrame threw; frame dropped:", err);
374
+ return;
375
+ }
376
+ if (!mapped) return;
377
+ for (const {
378
+ event: mappedEvent,
379
+ payload: payload2
380
+ } of mapped) {
381
+ this.emitToHandlers(mappedEvent, payload2);
382
+ }
383
+ return;
384
+ }
385
+ let payload = frame.data;
386
+ try {
387
+ payload = JSON.parse(frame.data);
388
+ } catch {}
389
+ this.emitToHandlers(frame.type, payload);
390
+ }
391
+ /**
392
+ * Logged once: SSE is one-way, so doc/list room membership can't be sent
393
+ * upstream — rooms are recorded client-side (see getDocRooms/getListRooms)
394
+ * for mapFrame-driven filtering and for a future two-way transport.
395
+ */
396
+ logSSERoomNoticeOnce() {
397
+ if (this.sseRoomNoticeLogged) return;
398
+ this.sseRoomNoticeLogged = true;
399
+ 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.");
400
+ }
221
401
  /**
222
402
  * Tear down the socket without clearing app handlers or room subscriptions.
223
403
  * Used by auth refresh so listeners/rooms survive credential rotation.
@@ -230,8 +410,17 @@ class RealtimeModule {
230
410
  this.socket.disconnect();
231
411
  this.socket = void 0;
232
412
  }
413
+ if (this.eventSource) {
414
+ for (const [type, listener] of this.sseListeners) {
415
+ this.eventSource.removeEventListener(type, listener);
416
+ }
417
+ this.eventSource.close();
418
+ this.eventSource = void 0;
419
+ }
233
420
  this.attachedSocketEvents.clear();
234
421
  this.socketEventHandlers.clear();
422
+ this.attachedSseEvents.clear();
423
+ this.sseListeners.clear();
235
424
  this.socketHealthy = false;
236
425
  this.isConnecting = false;
237
426
  this.resolveHealthyWaiters(false);
@@ -308,7 +497,11 @@ class RealtimeModule {
308
497
  this.handlerMap.set(event, handlerSet);
309
498
  }
310
499
  handlerSet.add(handler);
311
- this.attachSocketListener(event);
500
+ if (this.isSSE()) {
501
+ this.attachSSEListener(event);
502
+ } else {
503
+ this.attachSocketListener(event);
504
+ }
312
505
  }
313
506
  off(event, handler) {
314
507
  const handlerSet = this.handlerMap.get(event);
@@ -316,7 +509,11 @@ class RealtimeModule {
316
509
  handlerSet.delete(handler);
317
510
  if (handlerSet.size === 0) {
318
511
  this.handlerMap.delete(event);
319
- this.detachSocketListener(event);
512
+ if (this.isSSE()) {
513
+ this.detachSSEListener(event);
514
+ } else {
515
+ this.detachSocketListener(event);
516
+ }
320
517
  }
321
518
  }
322
519
  async subscribeDoc(doctype, name) {
@@ -324,14 +521,15 @@ class RealtimeModule {
324
521
  doctype,
325
522
  name
326
523
  });
524
+ if (this.isSSE()) this.logSSERoomNoticeOnce();
327
525
  await this.ensureConnected();
328
- if (this.socket && this.socketHealthy) {
526
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
329
527
  this.socket.emit("doc_subscribe", doctype, name);
330
528
  }
331
529
  }
332
530
  unsubscribeDoc(doctype, name) {
333
531
  this.docRooms.delete(docRoomKey(doctype, name));
334
- if (this.socket && this.socketHealthy) {
532
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
335
533
  this.socket.emit("doc_unsubscribe", doctype, name);
336
534
  }
337
535
  this.teardownWhenIdle();
@@ -348,14 +546,15 @@ class RealtimeModule {
348
546
  doctype,
349
547
  filters
350
548
  });
549
+ if (this.isSSE()) this.logSSERoomNoticeOnce();
351
550
  await this.ensureConnected();
352
- if (this.socket && this.socketHealthy) {
551
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
353
552
  this.socket.emit("doctype_subscribe", doctype);
354
553
  }
355
554
  }
356
555
  unsubscribeList(doctype) {
357
556
  this.listRooms.delete(doctype);
358
- if (this.socket && this.socketHealthy) {
557
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
359
558
  this.socket.emit("doctype_unsubscribe", doctype);
360
559
  }
361
560
  this.teardownWhenIdle();
@@ -371,13 +570,14 @@ class RealtimeModule {
371
570
  */
372
571
  teardownWhenIdle() {
373
572
  if (this.docRooms.size > 0 || this.listRooms.size > 0) return;
374
- if (!this.socket && !this.isConnecting) return;
573
+ if (!this.socket && !this.eventSource && !this.isConnecting) return;
375
574
  this.emitToHandlers("disconnect", {
376
575
  reason: "idle-teardown"
377
576
  });
378
577
  this.softDisconnect();
379
578
  }
380
579
  isHealthy() {
580
+ if (this.isSSE()) return this.socketHealthy && this.eventSource !== void 0;
381
581
  return this.socketHealthy && this.socket?.connected === true;
382
582
  }
383
583
  disconnect() {
@@ -388,13 +588,20 @@ class RealtimeModule {
388
588
  }
389
589
  async updateAuth(auth) {
390
590
  this.config.auth = auth;
391
- const shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0;
591
+ const shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0 || this.isSSE() && this.eventSource !== void 0;
392
592
  this.softDisconnect();
393
593
  if (shouldReconnect) {
394
594
  await this.connect();
395
595
  }
396
596
  }
397
597
  emit(event, data) {
598
+ if (this.isSSE()) {
599
+ if (!this.sseEmitNoticeLogged) {
600
+ this.sseEmitNoticeLogged = true;
601
+ 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.");
602
+ }
603
+ return;
604
+ }
398
605
  if (this.socket && this.socketHealthy) {
399
606
  this.socket.emit(event, data);
400
607
  }
@@ -402,4 +609,20 @@ class RealtimeModule {
402
609
  getSocket() {
403
610
  return this.socket;
404
611
  }
612
+ /** Live EventSource when the SSE transport is connected (undefined otherwise). */
613
+ getEventSource() {
614
+ return this.eventSource;
615
+ }
616
+ /**
617
+ * Doc rooms recorded by subscribeDoc. Under SSE these are client-side
618
+ * bookkeeping only (nothing is emitted upstream) — mapFrame-driven apps
619
+ * consult them to filter or route frames.
620
+ */
621
+ getDocRooms() {
622
+ return [...this.docRooms.values()];
623
+ }
624
+ /** List rooms recorded by subscribeList — same client-side semantics as getDocRooms. */
625
+ getListRooms() {
626
+ return [...this.listRooms.values()];
627
+ }
405
628
  }