@multiplatform.one/frappe 6.4.3 → 6.7.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 (125) hide show
  1. package/dist/cjs/collection.cjs +25 -9
  2. package/dist/cjs/collection.native.js +25 -9
  3. package/dist/cjs/collection.native.js.map +1 -1
  4. package/dist/cjs/db.cjs +13 -2
  5. package/dist/cjs/db.native.js +18 -2
  6. package/dist/cjs/db.native.js.map +1 -1
  7. package/dist/cjs/frappeReact.cjs +10 -3
  8. package/dist/cjs/frappeReact.native.js +10 -3
  9. package/dist/cjs/frappeReact.native.js.map +1 -1
  10. package/dist/cjs/index.cjs +1 -0
  11. package/dist/cjs/index.native.js +1 -0
  12. package/dist/cjs/index.native.js.map +1 -1
  13. package/dist/cjs/realtime.cjs +222 -11
  14. package/dist/cjs/realtime.native.js +352 -14
  15. package/dist/cjs/realtime.native.js.map +1 -1
  16. package/dist/cjs/sync/index.cjs +6 -1
  17. package/dist/cjs/sync/index.native.js +6 -1
  18. package/dist/cjs/sync/index.native.js.map +1 -1
  19. package/dist/cjs/sync/mutationEngine.cjs +43 -19
  20. package/dist/cjs/sync/mutationEngine.native.js +51 -21
  21. package/dist/cjs/sync/mutationEngine.native.js.map +1 -1
  22. package/dist/cjs/sync/subscriptionManager.cjs +4 -0
  23. package/dist/cjs/sync/subscriptionManager.native.js +4 -0
  24. package/dist/cjs/sync/subscriptionManager.native.js.map +1 -1
  25. package/dist/cjs/sync/types.native.js.map +1 -1
  26. package/dist/esm/collection.mjs +24 -9
  27. package/dist/esm/collection.mjs.map +1 -1
  28. package/dist/esm/collection.native.js +24 -9
  29. package/dist/esm/collection.native.js.map +1 -1
  30. package/dist/esm/db.mjs +13 -2
  31. package/dist/esm/db.mjs.map +1 -1
  32. package/dist/esm/db.native.js +18 -2
  33. package/dist/esm/db.native.js.map +1 -1
  34. package/dist/esm/frappeReact.mjs +11 -4
  35. package/dist/esm/frappeReact.mjs.map +1 -1
  36. package/dist/esm/frappeReact.native.js +11 -4
  37. package/dist/esm/frappeReact.native.js.map +1 -1
  38. package/dist/esm/index.mjs +2 -2
  39. package/dist/esm/index.mjs.map +1 -1
  40. package/dist/esm/index.native.js +2 -2
  41. package/dist/esm/index.native.js.map +1 -1
  42. package/dist/esm/realtime.mjs +222 -11
  43. package/dist/esm/realtime.mjs.map +1 -1
  44. package/dist/esm/realtime.native.js +352 -14
  45. package/dist/esm/realtime.native.js.map +1 -1
  46. package/dist/esm/sync/index.mjs +6 -1
  47. package/dist/esm/sync/index.mjs.map +1 -1
  48. package/dist/esm/sync/index.native.js +6 -1
  49. package/dist/esm/sync/index.native.js.map +1 -1
  50. package/dist/esm/sync/mutationEngine.mjs +43 -19
  51. package/dist/esm/sync/mutationEngine.mjs.map +1 -1
  52. package/dist/esm/sync/mutationEngine.native.js +51 -21
  53. package/dist/esm/sync/mutationEngine.native.js.map +1 -1
  54. package/dist/esm/sync/subscriptionManager.mjs +4 -0
  55. package/dist/esm/sync/subscriptionManager.mjs.map +1 -1
  56. package/dist/esm/sync/subscriptionManager.native.js +4 -0
  57. package/dist/esm/sync/subscriptionManager.native.js.map +1 -1
  58. package/dist/esm/sync/types.mjs.map +1 -1
  59. package/dist/esm/sync/types.native.js.map +1 -1
  60. package/dist/jsx/collection.mjs +24 -9
  61. package/dist/jsx/collection.mjs.map +1 -1
  62. package/dist/jsx/collection.native.js +25 -9
  63. package/dist/jsx/collection.native.js.map +1 -1
  64. package/dist/jsx/db.mjs +13 -2
  65. package/dist/jsx/db.mjs.map +1 -1
  66. package/dist/jsx/db.native.js +18 -2
  67. package/dist/jsx/db.native.js.map +1 -1
  68. package/dist/jsx/frappeReact.mjs +11 -4
  69. package/dist/jsx/frappeReact.mjs.map +1 -1
  70. package/dist/jsx/frappeReact.native.js +10 -3
  71. package/dist/jsx/frappeReact.native.js.map +1 -1
  72. package/dist/jsx/index.js +2 -2
  73. package/dist/jsx/index.js.map +1 -1
  74. package/dist/jsx/index.mjs +2 -2
  75. package/dist/jsx/index.mjs.map +1 -1
  76. package/dist/jsx/index.native.js +1 -0
  77. package/dist/jsx/index.native.js.map +1 -1
  78. package/dist/jsx/realtime.mjs +222 -11
  79. package/dist/jsx/realtime.mjs.map +1 -1
  80. package/dist/jsx/realtime.native.js +352 -14
  81. package/dist/jsx/realtime.native.js.map +1 -1
  82. package/dist/jsx/sync/index.mjs +6 -1
  83. package/dist/jsx/sync/index.mjs.map +1 -1
  84. package/dist/jsx/sync/index.native.js +6 -1
  85. package/dist/jsx/sync/index.native.js.map +1 -1
  86. package/dist/jsx/sync/mutationEngine.mjs +43 -19
  87. package/dist/jsx/sync/mutationEngine.mjs.map +1 -1
  88. package/dist/jsx/sync/mutationEngine.native.js +51 -21
  89. package/dist/jsx/sync/mutationEngine.native.js.map +1 -1
  90. package/dist/jsx/sync/subscriptionManager.mjs +4 -0
  91. package/dist/jsx/sync/subscriptionManager.mjs.map +1 -1
  92. package/dist/jsx/sync/subscriptionManager.native.js +4 -0
  93. package/dist/jsx/sync/subscriptionManager.native.js.map +1 -1
  94. package/dist/jsx/sync/types.mjs.map +1 -1
  95. package/dist/jsx/sync/types.native.js.map +1 -1
  96. package/package.json +7 -7
  97. package/src/collection.ts +53 -8
  98. package/src/db.spec.ts +70 -0
  99. package/src/db.ts +28 -2
  100. package/src/frappeReact.spec.ts +7 -1
  101. package/src/frappeReact.ts +30 -6
  102. package/src/frappeReactLiveQueryGc.spec.ts +44 -4
  103. package/src/index.ts +13 -1
  104. package/src/realtime.ts +406 -14
  105. package/src/realtimeSse.spec.ts +547 -0
  106. package/src/sync/index.ts +10 -1
  107. package/src/sync/mutationEngine.ts +81 -20
  108. package/src/sync/optimisticCreateReconcile.spec.ts +372 -0
  109. package/src/sync/subscriptionManager.spec.ts +41 -0
  110. package/src/sync/subscriptionManager.ts +10 -0
  111. package/src/sync/subscriptions.spec.ts +4 -0
  112. package/src/sync/types.ts +9 -0
  113. package/types/collection.d.ts +12 -0
  114. package/types/collection.d.ts.map +1 -1
  115. package/types/db.d.ts.map +1 -1
  116. package/types/frappeReact.d.ts.map +1 -1
  117. package/types/index.d.ts +2 -1
  118. package/types/index.d.ts.map +1 -1
  119. package/types/realtime.d.ts +166 -1
  120. package/types/realtime.d.ts.map +1 -1
  121. package/types/sync/index.d.ts.map +1 -1
  122. package/types/sync/mutationEngine.d.ts.map +1 -1
  123. package/types/sync/subscriptionManager.d.ts.map +1 -1
  124. package/types/sync/types.d.ts +9 -0
  125. package/types/sync/types.d.ts.map +1 -1
@@ -3,7 +3,7 @@ import { AuthModule } from "./auth.mjs";
3
3
  import { CallModule } from "./call.mjs";
4
4
  import { DbModule } from "./db.mjs";
5
5
  import { FileModule } from "./file.mjs";
6
- import { RealtimeModule } from "./realtime.mjs";
6
+ import { RealtimeModule, RealtimePlatform } from "./realtime.mjs";
7
7
  import { SyncModule } from "./sync/index.mjs";
8
8
  import { createFrappeCollection, frappeCollectionOptions, createFixtureCollection, fixtureCollectionOptions } from "./collection.mjs";
9
9
  import { createOptimisticAction } from "./optimistic.mjs";
@@ -22,5 +22,5 @@ import { MergeStrategy, FieldMergeStrategy } from "./sync/merge.mjs";
22
22
  import { matchesFilters, validateFilters, normalizeFilters, extractFilterFields, extractSingleName, formatFilter, hasServerOnlyOperators, canEvaluateClientSide, isTreeOperator, getClientEvaluationBlockers, FilterOperator } from "./sync/filters.mjs";
23
23
  import { TreeDbModule } from "./db.mjs";
24
24
  import { default as default2 } from "./plugin/index.mjs";
25
- export { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, AuthModule, Batcher, CallModule, DbModule, Debouncer, FieldMergeStrategy, FileModule, FilterOperator, FrappeApp, FrappeError, HttpClient, MergeStrategy, Order, Queuer, RateLimiter, RealtimeModule, SyncModule, Throttler, TreeDbModule, __getActiveSyncModule, and, asyncBatch, asyncDebounce, asyncQueue, asyncRateLimit, asyncThrottle, avg, batch, canEvaluateClientSide, clearSSRCookies, count, createCollection, createFixtureCollection, createFrappeCollection, createOptimisticAction, createRateLimitedBatch, createTransaction, debounce, deleteCookie, eq, extractFilterFields, extractSingleName, fixtureCollectionOptions, formatFilter, frappeCollectionOptions, default2 as frappePlugin, getClientEvaluationBlockers, getCookie, gt, gte, hasServerOnlyOperators, ilike, inArray, invalidateCookieCache, isNull, isTreeOperator, isUndefined, like, lt, lte, matchesFilters, max, min, normalizeFilters, not, or, parseDependsOn, parseFormLayout, queue, rateLimit, setCookie, setSSRCookies, sum, throttle, useDebouncedSearch, useDocTypeMeta, useDocTypeSearch, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useInfiniteScroll, useLinkSearch, useLinkTitle, useLiveQuery, useThrottledPagination, validateFilters };
25
+ export { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, AuthModule, Batcher, CallModule, DbModule, Debouncer, FieldMergeStrategy, FileModule, FilterOperator, FrappeApp, FrappeError, HttpClient, MergeStrategy, Order, Queuer, RateLimiter, RealtimeModule, RealtimePlatform, SyncModule, Throttler, TreeDbModule, __getActiveSyncModule, and, asyncBatch, asyncDebounce, asyncQueue, asyncRateLimit, asyncThrottle, avg, batch, canEvaluateClientSide, clearSSRCookies, count, createCollection, createFixtureCollection, createFrappeCollection, createOptimisticAction, createRateLimitedBatch, createTransaction, debounce, deleteCookie, eq, extractFilterFields, extractSingleName, fixtureCollectionOptions, formatFilter, frappeCollectionOptions, default2 as frappePlugin, getClientEvaluationBlockers, getCookie, gt, gte, hasServerOnlyOperators, ilike, inArray, invalidateCookieCache, isNull, isTreeOperator, isUndefined, like, lt, lte, matchesFilters, max, min, normalizeFilters, not, or, parseDependsOn, parseFormLayout, queue, rateLimit, setCookie, setSSRCookies, sum, throttle, useDebouncedSearch, useDocTypeMeta, useDocTypeSearch, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useInfiniteScroll, useLinkSearch, useLinkTitle, useLiveQuery, useThrottledPagination, validateFilters };
26
26
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["FrappeApp","AuthModule","CallModule","DbModule","FileModule","RealtimeModule","SyncModule","createFrappeCollection","frappeCollectionOptions","createFixtureCollection","fixtureCollectionOptions","createOptimisticAction","useFrappeCollection","useFrappeConnection","useFrappeDoctypeEvents","useInfiniteScroll","useFrappeInfiniteList","__getActiveSyncModule","useDebouncedSearch","useThrottledPagination","createRateLimitedBatch","useLiveQuery","createCollection","createTransaction","eq","gt","gte","lt","lte","and","or","not","inArray","like","ilike","isUndefined","isNull","count","avg","sum","min","max","Debouncer","AsyncDebouncer","Throttler","AsyncThrottler","RateLimiter","AsyncRateLimiter","Queuer","AsyncQueuer","Batcher","AsyncBatcher","debounce","asyncDebounce","throttle","asyncThrottle","rateLimit","asyncRateLimit","queue","asyncQueue","batch","asyncBatch","HttpClient","getCookie","setCookie","deleteCookie","setSSRCookies","clearSSRCookies","invalidateCookieCache","FrappeError","useDocTypeMeta","useLinkSearch","useLinkTitle","useDocTypeSearch","parseDependsOn","parseFormLayout","Order","MergeStrategy","FieldMergeStrategy","matchesFilters","validateFilters","normalizeFilters","extractFilterFields","extractSingleName","formatFilter","hasServerOnlyOperators","canEvaluateClientSide","isTreeOperator","getClientEvaluationBlockers","FilterOperator","TreeDbModule","default","default2"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAQA,SAASA,SAAA,QAAiB;AAE1B,SAASC,UAAA,QAAkB;AAC3B,SAASC,UAAA,QAAkB;AAC3B,SAASC,QAAA,QAAgB;AACzB,SAASC,UAAA,QAAkB;AAC3B,SAASC,cAAA,QAAsB;AAC/B,SAASC,UAAA,QAAkB;AAG3B,SACEC,sBAAA,EACAC,uBAAA,EACAC,uBAAA,EACAC,wBAAA,QACK;AAEP,SAASC,sBAAA,QAA8B;AAGvC,SACEC,mBAAA,EACAC,mBAAA,EACAC,sBAAA,EACAC,iBAAA,EACAC,qBAAA,EACAC,qBAAA,QACK;AAYP,SAASC,kBAAA,EAAoBC,sBAAA,EAAwBC,sBAAA,QAA8B;AAYnF,SAASC,YAAA,QAAoB;AAC7B,SAASC,gBAAA,EAAkBC,iBAAA,QAAyB;AAGpD,SACEC,EAAA,EACAC,EAAA,EACAC,GAAA,EACAC,EAAA,EACAC,GAAA,EACAC,GAAA,EACAC,EAAA,EACAC,GAAA,EACAC,OAAA,EACAC,IAAA,EACAC,KAAA,EACAC,WAAA,EACAC,MAAA,EACAC,KAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,QACK;AAGP,SACEC,SAAA,EACAC,cAAA,EACAC,SAAA,EACAC,cAAA,EACAC,WAAA,EACAC,gBAAA,EACAC,MAAA,EACAC,WAAA,EACAC,OAAA,EACAC,YAAA,EACAC,QAAA,EACAC,aAAA,EACAC,QAAA,EACAC,aAAA,EACAC,SAAA,EACAC,cAAA,EACAC,KAAA,EACAC,UAAA,EACAC,KAAA,EACAC,UAAA,QACK;AAGP,cAAc;AAGd,SACEC,UAAA,EACAC,SAAA,EACAC,SAAA,EACAC,YAAA,EACAC,aAAA,EACAC,eAAA,EACAC,qBAAA,QACK;AAEP,SAASC,WAAA,QAAmB;AAmB5B,SACEC,cAAA,EACAC,aAAA,EACAC,YAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,eAAA,QACK;AA8BP,SAASC,KAAA,QAAa;AACtB,SAASC,aAAA,EAAeC,kBAAA,QAA0B;AAIlD,SACEC,cAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,mBAAA,EACAC,iBAAA,EACAC,YAAA,EACAC,sBAAA,EACAC,qBAAA,EACAC,cAAA,EACAC,2BAAA,EACAC,cAAA,QACK;AAWP,SAASC,YAAA,QAAoB;AAS7B,SAAoBC,OAAA,IAAXC,QAAA,QAA+B","ignoreList":[]}
1
+ {"version":3,"names":["FrappeApp","AuthModule","CallModule","DbModule","FileModule","RealtimeModule","RealtimePlatform","SyncModule","createFrappeCollection","frappeCollectionOptions","createFixtureCollection","fixtureCollectionOptions","createOptimisticAction","useFrappeCollection","useFrappeConnection","useFrappeDoctypeEvents","useInfiniteScroll","useFrappeInfiniteList","__getActiveSyncModule","useDebouncedSearch","useThrottledPagination","createRateLimitedBatch","useLiveQuery","createCollection","createTransaction","eq","gt","gte","lt","lte","and","or","not","inArray","like","ilike","isUndefined","isNull","count","avg","sum","min","max","Debouncer","AsyncDebouncer","Throttler","AsyncThrottler","RateLimiter","AsyncRateLimiter","Queuer","AsyncQueuer","Batcher","AsyncBatcher","debounce","asyncDebounce","throttle","asyncThrottle","rateLimit","asyncRateLimit","queue","asyncQueue","batch","asyncBatch","HttpClient","getCookie","setCookie","deleteCookie","setSSRCookies","clearSSRCookies","invalidateCookieCache","FrappeError","useDocTypeMeta","useLinkSearch","useLinkTitle","useDocTypeSearch","parseDependsOn","parseFormLayout","Order","MergeStrategy","FieldMergeStrategy","matchesFilters","validateFilters","normalizeFilters","extractFilterFields","extractSingleName","formatFilter","hasServerOnlyOperators","canEvaluateClientSide","isTreeOperator","getClientEvaluationBlockers","FilterOperator","TreeDbModule","default","default2"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAQA,SAASA,SAAA,QAAiB;AAE1B,SAASC,UAAA,QAAkB;AAC3B,SAASC,UAAA,QAAkB;AAC3B,SAASC,QAAA,QAAgB;AACzB,SAASC,UAAA,QAAkB;AAC3B,SAASC,cAAA,EAAgBC,gBAAA,QAAwB;AAajD,SAASC,UAAA,QAAkB;AAG3B,SACEC,sBAAA,EACAC,uBAAA,EACAC,uBAAA,EACAC,wBAAA,QACK;AAEP,SAASC,sBAAA,QAA8B;AAGvC,SACEC,mBAAA,EACAC,mBAAA,EACAC,sBAAA,EACAC,iBAAA,EACAC,qBAAA,EACAC,qBAAA,QACK;AAYP,SAASC,kBAAA,EAAoBC,sBAAA,EAAwBC,sBAAA,QAA8B;AAYnF,SAASC,YAAA,QAAoB;AAC7B,SAASC,gBAAA,EAAkBC,iBAAA,QAAyB;AAGpD,SACEC,EAAA,EACAC,EAAA,EACAC,GAAA,EACAC,EAAA,EACAC,GAAA,EACAC,GAAA,EACAC,EAAA,EACAC,GAAA,EACAC,OAAA,EACAC,IAAA,EACAC,KAAA,EACAC,WAAA,EACAC,MAAA,EACAC,KAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,EACAC,GAAA,QACK;AAGP,SACEC,SAAA,EACAC,cAAA,EACAC,SAAA,EACAC,cAAA,EACAC,WAAA,EACAC,gBAAA,EACAC,MAAA,EACAC,WAAA,EACAC,OAAA,EACAC,YAAA,EACAC,QAAA,EACAC,aAAA,EACAC,QAAA,EACAC,aAAA,EACAC,SAAA,EACAC,cAAA,EACAC,KAAA,EACAC,UAAA,EACAC,KAAA,EACAC,UAAA,QACK;AAGP,cAAc;AAGd,SACEC,UAAA,EACAC,SAAA,EACAC,SAAA,EACAC,YAAA,EACAC,aAAA,EACAC,eAAA,EACAC,qBAAA,QACK;AAEP,SAASC,WAAA,QAAmB;AAmB5B,SACEC,cAAA,EACAC,aAAA,EACAC,YAAA,EACAC,gBAAA,EACAC,cAAA,EACAC,eAAA,QACK;AA8BP,SAASC,KAAA,QAAa;AACtB,SAASC,aAAA,EAAeC,kBAAA,QAA0B;AAIlD,SACEC,cAAA,EACAC,eAAA,EACAC,gBAAA,EACAC,mBAAA,EACAC,iBAAA,EACAC,YAAA,EACAC,sBAAA,EACAC,qBAAA,EACAC,cAAA,EACAC,2BAAA,EACAC,cAAA,QACK;AAWP,SAASC,YAAA,QAAoB;AAS7B,SAAoBC,OAAA,IAAXC,QAAA,QAA+B","ignoreList":[]}
@@ -3,7 +3,7 @@ import { AuthModule } from "./auth.native.js";
3
3
  import { CallModule } from "./call.native.js";
4
4
  import { DbModule } from "./db.native.js";
5
5
  import { FileModule } from "./file.native.js";
6
- import { RealtimeModule } from "./realtime.native.js";
6
+ import { RealtimeModule, RealtimePlatform } from "./realtime.native.js";
7
7
  import { SyncModule } from "./sync/index.native.js";
8
8
  import { createFrappeCollection, frappeCollectionOptions, createFixtureCollection, fixtureCollectionOptions } from "./collection.native.js";
9
9
  import { createOptimisticAction } from "./optimistic.native.js";
@@ -22,5 +22,5 @@ import { MergeStrategy, FieldMergeStrategy } from "./sync/merge.native.js";
22
22
  import { matchesFilters, validateFilters, normalizeFilters, extractFilterFields, extractSingleName, formatFilter, hasServerOnlyOperators, canEvaluateClientSide, isTreeOperator, getClientEvaluationBlockers, FilterOperator } from "./sync/filters.native.js";
23
23
  import { TreeDbModule } from "./db.native.js";
24
24
  import { default as default2 } from "./plugin/index.native.js";
25
- export { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, AuthModule, Batcher, CallModule, DbModule, Debouncer, FieldMergeStrategy, FileModule, FilterOperator, FrappeApp, FrappeError, HttpClient, MergeStrategy, Order, Queuer, RateLimiter, RealtimeModule, SyncModule, Throttler, TreeDbModule, __getActiveSyncModule, and, asyncBatch, asyncDebounce, asyncQueue, asyncRateLimit, asyncThrottle, avg, batch, canEvaluateClientSide, clearSSRCookies, count, createCollection, createFixtureCollection, createFrappeCollection, createOptimisticAction, createRateLimitedBatch, createTransaction, debounce, deleteCookie, eq, extractFilterFields, extractSingleName, fixtureCollectionOptions, formatFilter, frappeCollectionOptions, default2 as frappePlugin, getClientEvaluationBlockers, getCookie, gt, gte, hasServerOnlyOperators, ilike, inArray, invalidateCookieCache, isNull, isTreeOperator, isUndefined, like, lt, lte, matchesFilters, max, min, normalizeFilters, not, or, parseDependsOn, parseFormLayout, queue, rateLimit, setCookie, setSSRCookies, sum, throttle, useDebouncedSearch, useDocTypeMeta, useDocTypeSearch, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useInfiniteScroll, useLinkSearch, useLinkTitle, useLiveQuery, useThrottledPagination, validateFilters };
25
+ export { AsyncBatcher, AsyncDebouncer, AsyncQueuer, AsyncRateLimiter, AsyncThrottler, AuthModule, Batcher, CallModule, DbModule, Debouncer, FieldMergeStrategy, FileModule, FilterOperator, FrappeApp, FrappeError, HttpClient, MergeStrategy, Order, Queuer, RateLimiter, RealtimeModule, RealtimePlatform, SyncModule, Throttler, TreeDbModule, __getActiveSyncModule, and, asyncBatch, asyncDebounce, asyncQueue, asyncRateLimit, asyncThrottle, avg, batch, canEvaluateClientSide, clearSSRCookies, count, createCollection, createFixtureCollection, createFrappeCollection, createOptimisticAction, createRateLimitedBatch, createTransaction, debounce, deleteCookie, eq, extractFilterFields, extractSingleName, fixtureCollectionOptions, formatFilter, frappeCollectionOptions, default2 as frappePlugin, getClientEvaluationBlockers, getCookie, gt, gte, hasServerOnlyOperators, ilike, inArray, invalidateCookieCache, isNull, isTreeOperator, isUndefined, like, lt, lte, matchesFilters, max, min, normalizeFilters, not, or, parseDependsOn, parseFormLayout, queue, rateLimit, setCookie, setSSRCookies, sum, throttle, useDebouncedSearch, useDocTypeMeta, useDocTypeSearch, useFrappeCollection, useFrappeConnection, useFrappeDoctypeEvents, useFrappeInfiniteList, useInfiniteScroll, useLinkSearch, useLinkTitle, useLiveQuery, useThrottledPagination, validateFilters };
26
26
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FrappeApp","AuthModule","CallModule","DbModule","FileModule","RealtimeModule","SyncModule","createFrappeCollection","frappeCollectionOptions","createFixtureCollection","fixtureCollectionOptions","createOptimisticAction","useFrappeCollection","useFrappeConnection","useFrappeDoctypeEvents","useInfiniteScroll","useFrappeInfiniteList","__getActiveSyncModule","useDebouncedSearch","useThrottledPagination","createRateLimitedBatch","useLiveQuery","createCollection","createTransaction","eq","gt","gte","lt","lte","and","or","not","inArray","like","ilike","isUndefined","isNull","count","avg","sum","min","max","Debouncer","AsyncDebouncer","Throttler","AsyncThrottler","RateLimiter","AsyncRateLimiter","Queuer","AsyncQueuer","Batcher","AsyncBatcher","debounce","asyncDebounce","throttle","asyncThrottle","rateLimit","asyncRateLimit","queue","asyncQueue","batch","asyncBatch","HttpClient","getCookie","setCookie","deleteCookie","setSSRCookies","clearSSRCookies","invalidateCookieCache","FrappeError","useDocTypeMeta","useLinkSearch","useLinkTitle","useDocTypeSearch","parseDependsOn","parseFormLayout","Order","MergeStrategy","FieldMergeStrategy","matchesFilters","validateFilters","normalizeFilters","extractFilterFields","extractSingleName","formatFilter","hasServerOnlyOperators","canEvaluateClientSide","isTreeOperator","getClientEvaluationBlockers","FilterOperator","TreeDbModule","default","default2","frappePlugin"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FrappeApp","AuthModule","CallModule","DbModule","FileModule","RealtimeModule","RealtimePlatform","SyncModule","createFrappeCollection","frappeCollectionOptions","createFixtureCollection","fixtureCollectionOptions","createOptimisticAction","useFrappeCollection","useFrappeConnection","useFrappeDoctypeEvents","useInfiniteScroll","useFrappeInfiniteList","__getActiveSyncModule","useDebouncedSearch","useThrottledPagination","createRateLimitedBatch","useLiveQuery","createCollection","createTransaction","eq","gt","gte","lt","lte","and","or","not","inArray","like","ilike","isUndefined","isNull","count","avg","sum","min","max","Debouncer","AsyncDebouncer","Throttler","AsyncThrottler","RateLimiter","AsyncRateLimiter","Queuer","AsyncQueuer","Batcher","AsyncBatcher","debounce","asyncDebounce","throttle","asyncThrottle","rateLimit","asyncRateLimit","queue","asyncQueue","batch","asyncBatch","HttpClient","getCookie","setCookie","deleteCookie","setSSRCookies","clearSSRCookies","invalidateCookieCache","FrappeError","useDocTypeMeta","useLinkSearch","useLinkTitle","useDocTypeSearch","parseDependsOn","parseFormLayout","Order","MergeStrategy","FieldMergeStrategy","matchesFilters","validateFilters","normalizeFilters","extractFilterFields","extractSingleName","formatFilter","hasServerOnlyOperators","canEvaluateClientSide","isTreeOperator","getClientEvaluationBlockers","FilterOperator","TreeDbModule","default","default2","frappePlugin"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -12,11 +12,20 @@ function docRoomKey(doctype, name) {
12
12
  }
13
13
  class RealtimeModule {
14
14
  socket;
15
+ /** Live EventSource when the `"sse"` transport is active. */
16
+ eventSource;
15
17
  handlerMap = /* @__PURE__ */new Map();
16
18
  /** Tracks events with socket listeners attached to prevent duplicates. */
17
19
  attachedSocketEvents = /* @__PURE__ */new Set();
18
20
  /** Stored socket event handler references for proper cleanup. */
19
21
  socketEventHandlers = /* @__PURE__ */new Map();
22
+ /** Tracks SSE event types with listeners attached to prevent duplicates. */
23
+ attachedSseEvents = /* @__PURE__ */new Set();
24
+ /** Stored SSE listener references for proper cleanup. */
25
+ sseListeners = /* @__PURE__ */new Map();
26
+ /** One-shot debug notices for SSE's one-way limitations. */
27
+ sseRoomNoticeLogged = false;
28
+ sseEmitNoticeLogged = false;
20
29
  /** Active doc rooms — re-emitted on every (re)connect. */
21
30
  docRooms = /* @__PURE__ */new Map();
22
31
  /** Active list rooms — re-emitted on every (re)connect. */
@@ -131,8 +140,11 @@ class RealtimeModule {
131
140
  for (const resolve of this.healthyWaiters) resolve(ok);
132
141
  this.healthyWaiters.clear();
133
142
  }
143
+ isSSE() {
144
+ return this.config.transport === "sse";
145
+ }
134
146
  waitUntilHealthy(timeoutMs = 2e4) {
135
- if (this.socketHealthy && this.socket?.connected) return Promise.resolve(true);
147
+ if (this.isHealthy()) return Promise.resolve(true);
136
148
  return new Promise(resolve => {
137
149
  const timer = setTimeout(() => {
138
150
  this.healthyWaiters.delete(onReady);
@@ -146,8 +158,8 @@ class RealtimeModule {
146
158
  });
147
159
  }
148
160
  async ensureConnected() {
149
- if (this.socketHealthy && this.socket?.connected) return;
150
- if (!this.socket && !this.isConnecting) {
161
+ if (this.isHealthy()) return;
162
+ if (!this.socket && !this.eventSource && !this.isConnecting) {
151
163
  await this.connect();
152
164
  }
153
165
  await this.waitUntilHealthy();
@@ -161,7 +173,16 @@ class RealtimeModule {
161
173
  this.socket.emit("doctype_subscribe", room.doctype);
162
174
  }
163
175
  }
176
+ /**
177
+ * Open the realtime transport now. Room-driven auto-connect
178
+ * (subscribeDoc/subscribeList) remains the primary lifecycle in both
179
+ * transports — this is public for SSE consumers that use no doc/list room
180
+ * bookkeeping: a one-way stream has nothing to emit on join, so nothing
181
+ * else would ever open it. Idempotent while a transport exists or a
182
+ * connect is in flight.
183
+ */
164
184
  async connect() {
185
+ if (this.isSSE()) return this.connectSSE();
165
186
  if (this.socket || this.isConnecting) return;
166
187
  this.isConnecting = true;
167
188
  try {
@@ -190,6 +211,153 @@ class RealtimeModule {
190
211
  throw err;
191
212
  }
192
213
  }
214
+ /**
215
+ * SSE branch of connect(): construct an EventSource against the configured
216
+ * stream URL. EventSource connects at construction, auto-reconnects on
217
+ * failure, and resumes missed frames itself by sending the stream's last
218
+ * `id:` as the `Last-Event-ID` request header — none of that is
219
+ * reimplemented here.
220
+ */
221
+ async connectSSE() {
222
+ if (this.eventSource || this.isConnecting) return;
223
+ this.isConnecting = true;
224
+ try {
225
+ const sse = this.config.sse;
226
+ const EventSourceCtor = sse?.EventSource ?? globalThis.EventSource;
227
+ if (!EventSourceCtor) {
228
+ 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.');
229
+ }
230
+ const url = await this.buildSSEURL();
231
+ this.eventSource = new EventSourceCtor(url, {
232
+ withCredentials: sse?.withCredentials
233
+ });
234
+ this.initSSEHandlers();
235
+ } catch (err) {
236
+ this.isConnecting = false;
237
+ this.resolveHealthyWaiters(false);
238
+ throw err;
239
+ }
240
+ }
241
+ async buildSSEURL() {
242
+ const sse = this.config.sse;
243
+ let url;
244
+ if (sse?.url) {
245
+ url = sse.url;
246
+ } else if (sse?.path) {
247
+ const base = this.config.baseURL.replace(/\/$/, "");
248
+ url = `${base}${sse.path.startsWith("/") ? "" : "/"}${sse.path}`;
249
+ } else {
250
+ 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.');
251
+ }
252
+ const params = Object.entries(this.config.sse?.queryParams ?? {});
253
+ if (params.length === 0) return url;
254
+ const parts = [];
255
+ for (const [key, value] of params) {
256
+ const resolved = typeof value === "function" ? await value() : value;
257
+ parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(resolved)}`);
258
+ }
259
+ return `${url}${url.includes("?") ? "&" : "?"}${parts.join("&")}`;
260
+ }
261
+ initSSEHandlers() {
262
+ this.attachedSseEvents.clear();
263
+ this.sseListeners.clear();
264
+ this.attachSSEListener("open");
265
+ this.attachSSEListener("error");
266
+ this.attachSSEListener("message");
267
+ for (const type of this.config.sse?.events ?? []) {
268
+ this.attachSSEListener(type);
269
+ }
270
+ for (const event of this.handlerMap.keys()) {
271
+ this.attachSSEListener(event);
272
+ }
273
+ }
274
+ attachSSEListener(type) {
275
+ if (!this.eventSource || this.attachedSseEvents.has(type)) return;
276
+ const listener = event => {
277
+ this.handleSSEEvent(type, event);
278
+ };
279
+ this.sseListeners.set(type, listener);
280
+ this.attachedSseEvents.add(type);
281
+ this.eventSource.addEventListener(type, listener);
282
+ }
283
+ detachSSEListener(type) {
284
+ if (this.isCoreSSEType(type)) return;
285
+ if (!this.eventSource || !this.attachedSseEvents.has(type)) return;
286
+ const listener = this.sseListeners.get(type);
287
+ if (listener) {
288
+ this.eventSource.removeEventListener(type, listener);
289
+ this.sseListeners.delete(type);
290
+ }
291
+ this.attachedSseEvents.delete(type);
292
+ }
293
+ isCoreSSEType(type) {
294
+ return type === "open" || type === "error" || type === "message" || (this.config.sse?.events ?? []).includes(type);
295
+ }
296
+ /**
297
+ * Single entry point for everything the EventSource dispatches. Dataless
298
+ * events are transport lifecycle (`open`/`error` as plain Events); anything
299
+ * carrying `data` is a server frame — including frames the server
300
+ * classified `event: error`, which arrive as MessageEvents WITH data and
301
+ * must not be mistaken for connection errors.
302
+ */
303
+ handleSSEEvent(type, event) {
304
+ if (event?.data === void 0) {
305
+ if (type === "open") {
306
+ this.isConnecting = false;
307
+ this.socketHealthy = true;
308
+ this.emitToHandlers("connected", {
309
+ transport: "sse"
310
+ });
311
+ this.resolveHealthyWaiters(true);
312
+ } else if (type === "error") {
313
+ this.isConnecting = false;
314
+ this.socketHealthy = false;
315
+ this.emitToHandlers("disconnect", {
316
+ reason: "sse-error"
317
+ });
318
+ this.resolveHealthyWaiters(false);
319
+ }
320
+ return;
321
+ }
322
+ const frame = {
323
+ type,
324
+ data: String(event.data),
325
+ lastEventId: event.lastEventId ?? ""
326
+ };
327
+ const mapFrame = this.config.sse?.mapFrame;
328
+ if (mapFrame) {
329
+ let mapped;
330
+ try {
331
+ mapped = mapFrame(frame);
332
+ } catch (err) {
333
+ console.warn("[RealtimeModule] sse.mapFrame threw; frame dropped:", err);
334
+ return;
335
+ }
336
+ if (!mapped) return;
337
+ for (const {
338
+ event: mappedEvent,
339
+ payload: payload2
340
+ } of mapped) {
341
+ this.emitToHandlers(mappedEvent, payload2);
342
+ }
343
+ return;
344
+ }
345
+ let payload = frame.data;
346
+ try {
347
+ payload = JSON.parse(frame.data);
348
+ } catch {}
349
+ this.emitToHandlers(frame.type, payload);
350
+ }
351
+ /**
352
+ * Logged once: SSE is one-way, so doc/list room membership can't be sent
353
+ * upstream — rooms are recorded client-side (see getDocRooms/getListRooms)
354
+ * for mapFrame-driven filtering and for a future two-way transport.
355
+ */
356
+ logSSERoomNoticeOnce() {
357
+ if (this.sseRoomNoticeLogged) return;
358
+ this.sseRoomNoticeLogged = true;
359
+ 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.");
360
+ }
193
361
  /**
194
362
  * Tear down the socket without clearing app handlers or room subscriptions.
195
363
  * Used by auth refresh so listeners/rooms survive credential rotation.
@@ -202,8 +370,17 @@ class RealtimeModule {
202
370
  this.socket.disconnect();
203
371
  this.socket = void 0;
204
372
  }
373
+ if (this.eventSource) {
374
+ for (const [type, listener] of this.sseListeners) {
375
+ this.eventSource.removeEventListener(type, listener);
376
+ }
377
+ this.eventSource.close();
378
+ this.eventSource = void 0;
379
+ }
205
380
  this.attachedSocketEvents.clear();
206
381
  this.socketEventHandlers.clear();
382
+ this.attachedSseEvents.clear();
383
+ this.sseListeners.clear();
207
384
  this.socketHealthy = false;
208
385
  this.isConnecting = false;
209
386
  this.resolveHealthyWaiters(false);
@@ -280,7 +457,11 @@ class RealtimeModule {
280
457
  this.handlerMap.set(event, handlerSet);
281
458
  }
282
459
  handlerSet.add(handler);
283
- this.attachSocketListener(event);
460
+ if (this.isSSE()) {
461
+ this.attachSSEListener(event);
462
+ } else {
463
+ this.attachSocketListener(event);
464
+ }
284
465
  }
285
466
  off(event, handler) {
286
467
  const handlerSet = this.handlerMap.get(event);
@@ -288,7 +469,11 @@ class RealtimeModule {
288
469
  handlerSet.delete(handler);
289
470
  if (handlerSet.size === 0) {
290
471
  this.handlerMap.delete(event);
291
- this.detachSocketListener(event);
472
+ if (this.isSSE()) {
473
+ this.detachSSEListener(event);
474
+ } else {
475
+ this.detachSocketListener(event);
476
+ }
292
477
  }
293
478
  }
294
479
  async subscribeDoc(doctype, name) {
@@ -296,14 +481,15 @@ class RealtimeModule {
296
481
  doctype,
297
482
  name
298
483
  });
484
+ if (this.isSSE()) this.logSSERoomNoticeOnce();
299
485
  await this.ensureConnected();
300
- if (this.socket && this.socketHealthy) {
486
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
301
487
  this.socket.emit("doc_subscribe", doctype, name);
302
488
  }
303
489
  }
304
490
  unsubscribeDoc(doctype, name) {
305
491
  this.docRooms.delete(docRoomKey(doctype, name));
306
- if (this.socket && this.socketHealthy) {
492
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
307
493
  this.socket.emit("doc_unsubscribe", doctype, name);
308
494
  }
309
495
  this.teardownWhenIdle();
@@ -320,14 +506,15 @@ class RealtimeModule {
320
506
  doctype,
321
507
  filters
322
508
  });
509
+ if (this.isSSE()) this.logSSERoomNoticeOnce();
323
510
  await this.ensureConnected();
324
- if (this.socket && this.socketHealthy) {
511
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
325
512
  this.socket.emit("doctype_subscribe", doctype);
326
513
  }
327
514
  }
328
515
  unsubscribeList(doctype) {
329
516
  this.listRooms.delete(doctype);
330
- if (this.socket && this.socketHealthy) {
517
+ if (!this.isSSE() && this.socket && this.socketHealthy) {
331
518
  this.socket.emit("doctype_unsubscribe", doctype);
332
519
  }
333
520
  this.teardownWhenIdle();
@@ -343,13 +530,14 @@ class RealtimeModule {
343
530
  */
344
531
  teardownWhenIdle() {
345
532
  if (this.docRooms.size > 0 || this.listRooms.size > 0) return;
346
- if (!this.socket && !this.isConnecting) return;
533
+ if (!this.socket && !this.eventSource && !this.isConnecting) return;
347
534
  this.emitToHandlers("disconnect", {
348
535
  reason: "idle-teardown"
349
536
  });
350
537
  this.softDisconnect();
351
538
  }
352
539
  isHealthy() {
540
+ if (this.isSSE()) return this.socketHealthy && this.eventSource !== void 0;
353
541
  return this.socketHealthy && this.socket?.connected === true;
354
542
  }
355
543
  disconnect() {
@@ -360,13 +548,20 @@ class RealtimeModule {
360
548
  }
361
549
  async updateAuth(auth) {
362
550
  this.config.auth = auth;
363
- const shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0;
551
+ const shouldReconnect = this.docRooms.size > 0 || this.listRooms.size > 0 || this.isSSE() && this.eventSource !== void 0;
364
552
  this.softDisconnect();
365
553
  if (shouldReconnect) {
366
554
  await this.connect();
367
555
  }
368
556
  }
369
557
  emit(event, data) {
558
+ if (this.isSSE()) {
559
+ if (!this.sseEmitNoticeLogged) {
560
+ this.sseEmitNoticeLogged = true;
561
+ 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.");
562
+ }
563
+ return;
564
+ }
370
565
  if (this.socket && this.socketHealthy) {
371
566
  this.socket.emit(event, data);
372
567
  }
@@ -374,6 +569,22 @@ class RealtimeModule {
374
569
  getSocket() {
375
570
  return this.socket;
376
571
  }
572
+ /** Live EventSource when the SSE transport is connected (undefined otherwise). */
573
+ getEventSource() {
574
+ return this.eventSource;
575
+ }
576
+ /**
577
+ * Doc rooms recorded by subscribeDoc. Under SSE these are client-side
578
+ * bookkeeping only (nothing is emitted upstream) — mapFrame-driven apps
579
+ * consult them to filter or route frames.
580
+ */
581
+ getDocRooms() {
582
+ return [...this.docRooms.values()];
583
+ }
584
+ /** List rooms recorded by subscribeList — same client-side semantics as getDocRooms. */
585
+ getListRooms() {
586
+ return [...this.listRooms.values()];
587
+ }
377
588
  }
378
589
  export { RealtimeModule, RealtimePlatform };
379
590
  //# sourceMappingURL=realtime.mjs.map
@@ -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","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","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":[]}