tinybase 7.1.0-beta.3 → 7.1.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 (281) hide show
  1. package/@types/schematizers/schematizer-arktype/index.d.ts +114 -0
  2. package/@types/schematizers/schematizer-arktype/with-schemas/index.d.ts +8 -0
  3. package/@types/schematizers/schematizer-effect/index.d.ts +118 -0
  4. package/@types/schematizers/schematizer-effect/with-schemas/index.d.ts +8 -0
  5. package/@types/schematizers/schematizer-yup/index.d.ts +112 -0
  6. package/@types/schematizers/schematizer-yup/with-schemas/index.d.ts +7 -0
  7. package/checkpoints/index.js +2 -2
  8. package/checkpoints/with-schemas/index.js +2 -2
  9. package/index.js +6 -4
  10. package/indexes/index.js +2 -2
  11. package/indexes/with-schemas/index.js +2 -2
  12. package/mergeable-store/index.js +2 -2
  13. package/mergeable-store/with-schemas/index.js +2 -2
  14. package/metrics/index.js +6 -4
  15. package/metrics/with-schemas/index.js +6 -4
  16. package/min/checkpoints/index.js +1 -1
  17. package/min/checkpoints/index.js.gz +0 -0
  18. package/min/checkpoints/with-schemas/index.js +1 -1
  19. package/min/checkpoints/with-schemas/index.js.gz +0 -0
  20. package/min/index.js +1 -1
  21. package/min/index.js.gz +0 -0
  22. package/min/indexes/index.js +1 -1
  23. package/min/indexes/index.js.gz +0 -0
  24. package/min/indexes/with-schemas/index.js +1 -1
  25. package/min/indexes/with-schemas/index.js.gz +0 -0
  26. package/min/mergeable-store/index.js +1 -1
  27. package/min/mergeable-store/index.js.gz +0 -0
  28. package/min/mergeable-store/with-schemas/index.js +1 -1
  29. package/min/mergeable-store/with-schemas/index.js.gz +0 -0
  30. package/min/metrics/index.js +1 -1
  31. package/min/metrics/index.js.gz +0 -0
  32. package/min/metrics/with-schemas/index.js +1 -1
  33. package/min/metrics/with-schemas/index.js.gz +0 -0
  34. package/min/omni/index.js +1 -1
  35. package/min/omni/index.js.gz +0 -0
  36. package/min/omni/with-schemas/index.js +1 -1
  37. package/min/omni/with-schemas/index.js.gz +0 -0
  38. package/min/persisters/index.js +1 -1
  39. package/min/persisters/index.js.gz +0 -0
  40. package/min/persisters/persister-automerge/index.js +1 -1
  41. package/min/persisters/persister-automerge/index.js.gz +0 -0
  42. package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
  43. package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/persister-browser/index.js +1 -1
  45. package/min/persisters/persister-browser/index.js.gz +0 -0
  46. package/min/persisters/persister-browser/with-schemas/index.js +1 -1
  47. package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
  48. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  49. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  50. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  51. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  53. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  54. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  55. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  56. package/min/persisters/persister-durable-object-storage/index.js +1 -1
  57. package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
  58. package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
  59. package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
  60. package/min/persisters/persister-electric-sql/index.js +1 -1
  61. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  62. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  63. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  64. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  65. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  66. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  67. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  68. package/min/persisters/persister-file/index.js +1 -1
  69. package/min/persisters/persister-file/index.js.gz +0 -0
  70. package/min/persisters/persister-file/with-schemas/index.js +1 -1
  71. package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
  72. package/min/persisters/persister-indexed-db/index.js +1 -1
  73. package/min/persisters/persister-indexed-db/index.js.gz +0 -0
  74. package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
  75. package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
  76. package/min/persisters/persister-libsql/index.js +1 -1
  77. package/min/persisters/persister-libsql/index.js.gz +0 -0
  78. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  79. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  80. package/min/persisters/persister-partykit-client/index.js +1 -1
  81. package/min/persisters/persister-partykit-client/index.js.gz +0 -0
  82. package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
  83. package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
  84. package/min/persisters/persister-pglite/index.js +1 -1
  85. package/min/persisters/persister-pglite/index.js.gz +0 -0
  86. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  87. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  88. package/min/persisters/persister-postgres/index.js +1 -1
  89. package/min/persisters/persister-postgres/index.js.gz +0 -0
  90. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  91. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  92. package/min/persisters/persister-powersync/index.js +1 -1
  93. package/min/persisters/persister-powersync/index.js.gz +0 -0
  94. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  95. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  96. package/min/persisters/persister-react-native-mmkv/index.js +1 -1
  97. package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
  98. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
  99. package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
  100. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  101. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  102. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  103. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  104. package/min/persisters/persister-remote/index.js +1 -1
  105. package/min/persisters/persister-remote/index.js.gz +0 -0
  106. package/min/persisters/persister-remote/with-schemas/index.js +1 -1
  107. package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
  108. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  109. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  110. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  111. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  112. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  113. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  114. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  115. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  116. package/min/persisters/persister-sqlite3/index.js +1 -1
  117. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  118. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  119. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  120. package/min/persisters/persister-yjs/index.js +1 -1
  121. package/min/persisters/persister-yjs/index.js.gz +0 -0
  122. package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
  123. package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
  124. package/min/persisters/with-schemas/index.js +1 -1
  125. package/min/persisters/with-schemas/index.js.gz +0 -0
  126. package/min/queries/index.js +1 -1
  127. package/min/queries/index.js.gz +0 -0
  128. package/min/queries/with-schemas/index.js +1 -1
  129. package/min/queries/with-schemas/index.js.gz +0 -0
  130. package/min/relationships/index.js +1 -1
  131. package/min/relationships/index.js.gz +0 -0
  132. package/min/relationships/with-schemas/index.js +1 -1
  133. package/min/relationships/with-schemas/index.js.gz +0 -0
  134. package/min/schematizers/schematizer-arktype/index.js +1 -0
  135. package/min/schematizers/schematizer-arktype/index.js.gz +0 -0
  136. package/min/schematizers/schematizer-arktype/with-schemas/index.js +1 -0
  137. package/min/schematizers/schematizer-arktype/with-schemas/index.js.gz +0 -0
  138. package/min/schematizers/schematizer-effect/index.js +1 -0
  139. package/min/schematizers/schematizer-effect/index.js.gz +0 -0
  140. package/min/schematizers/schematizer-effect/with-schemas/index.js +1 -0
  141. package/min/schematizers/schematizer-effect/with-schemas/index.js.gz +0 -0
  142. package/min/schematizers/schematizer-typebox/index.js +1 -1
  143. package/min/schematizers/schematizer-typebox/index.js.gz +0 -0
  144. package/min/schematizers/schematizer-typebox/with-schemas/index.js +1 -1
  145. package/min/schematizers/schematizer-typebox/with-schemas/index.js.gz +0 -0
  146. package/min/schematizers/schematizer-valibot/index.js +1 -1
  147. package/min/schematizers/schematizer-valibot/index.js.gz +0 -0
  148. package/min/schematizers/schematizer-valibot/with-schemas/index.js +1 -1
  149. package/min/schematizers/schematizer-valibot/with-schemas/index.js.gz +0 -0
  150. package/min/schematizers/schematizer-yup/index.js +1 -0
  151. package/min/schematizers/schematizer-yup/index.js.gz +0 -0
  152. package/min/schematizers/schematizer-yup/with-schemas/index.js +1 -0
  153. package/min/schematizers/schematizer-yup/with-schemas/index.js.gz +0 -0
  154. package/min/store/index.js +1 -1
  155. package/min/store/index.js.gz +0 -0
  156. package/min/store/with-schemas/index.js +1 -1
  157. package/min/store/with-schemas/index.js.gz +0 -0
  158. package/min/synchronizers/index.js +1 -1
  159. package/min/synchronizers/index.js.gz +0 -0
  160. package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
  161. package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
  162. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
  163. package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
  164. package/min/synchronizers/synchronizer-local/index.js +1 -1
  165. package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
  166. package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
  167. package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
  168. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  169. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  170. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  171. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  172. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  173. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  174. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  175. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  176. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  177. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  178. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  179. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  180. package/min/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  181. package/min/synchronizers/synchronizer-ws-server-simple/index.js.gz +0 -0
  182. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  183. package/min/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js.gz +0 -0
  184. package/min/synchronizers/with-schemas/index.js +1 -1
  185. package/min/synchronizers/with-schemas/index.js.gz +0 -0
  186. package/min/ui-react-dom/index.js +1 -1
  187. package/min/ui-react-dom/index.js.gz +0 -0
  188. package/min/ui-react-dom/with-schemas/index.js +1 -1
  189. package/min/ui-react-dom/with-schemas/index.js.gz +0 -0
  190. package/min/ui-react-inspector/index.js +1 -1
  191. package/min/ui-react-inspector/index.js.gz +0 -0
  192. package/min/ui-react-inspector/with-schemas/index.js +1 -1
  193. package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
  194. package/min/with-schemas/index.js +1 -1
  195. package/min/with-schemas/index.js.gz +0 -0
  196. package/omni/index.js +19 -16
  197. package/omni/with-schemas/index.js +19 -16
  198. package/package.json +118 -2
  199. package/persisters/index.js +6 -4
  200. package/persisters/persister-automerge/index.js +2 -2
  201. package/persisters/persister-automerge/with-schemas/index.js +2 -2
  202. package/persisters/persister-browser/index.js +3 -3
  203. package/persisters/persister-browser/with-schemas/index.js +3 -3
  204. package/persisters/persister-cr-sqlite-wasm/index.js +6 -4
  205. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +6 -4
  206. package/persisters/persister-durable-object-sql-storage/index.js +6 -4
  207. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +6 -4
  208. package/persisters/persister-durable-object-storage/index.js +3 -3
  209. package/persisters/persister-durable-object-storage/with-schemas/index.js +3 -3
  210. package/persisters/persister-electric-sql/index.js +6 -4
  211. package/persisters/persister-electric-sql/with-schemas/index.js +6 -4
  212. package/persisters/persister-expo-sqlite/index.js +6 -4
  213. package/persisters/persister-expo-sqlite/with-schemas/index.js +6 -4
  214. package/persisters/persister-file/index.js +3 -3
  215. package/persisters/persister-file/with-schemas/index.js +3 -3
  216. package/persisters/persister-indexed-db/index.js +2 -2
  217. package/persisters/persister-indexed-db/with-schemas/index.js +2 -2
  218. package/persisters/persister-libsql/index.js +6 -4
  219. package/persisters/persister-libsql/with-schemas/index.js +6 -4
  220. package/persisters/persister-partykit-client/index.js +2 -2
  221. package/persisters/persister-partykit-client/with-schemas/index.js +2 -2
  222. package/persisters/persister-pglite/index.js +3 -3
  223. package/persisters/persister-pglite/with-schemas/index.js +3 -3
  224. package/persisters/persister-postgres/index.js +3 -3
  225. package/persisters/persister-postgres/with-schemas/index.js +3 -3
  226. package/persisters/persister-powersync/index.js +6 -4
  227. package/persisters/persister-powersync/with-schemas/index.js +6 -4
  228. package/persisters/persister-react-native-mmkv/index.js +4 -4
  229. package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -4
  230. package/persisters/persister-react-native-sqlite/index.js +6 -4
  231. package/persisters/persister-react-native-sqlite/with-schemas/index.js +6 -4
  232. package/persisters/persister-remote/index.js +2 -2
  233. package/persisters/persister-remote/with-schemas/index.js +2 -2
  234. package/persisters/persister-sqlite-bun/index.js +6 -4
  235. package/persisters/persister-sqlite-bun/with-schemas/index.js +6 -4
  236. package/persisters/persister-sqlite-wasm/index.js +6 -4
  237. package/persisters/persister-sqlite-wasm/with-schemas/index.js +6 -4
  238. package/persisters/persister-sqlite3/index.js +6 -4
  239. package/persisters/persister-sqlite3/with-schemas/index.js +6 -4
  240. package/persisters/persister-yjs/index.js +2 -2
  241. package/persisters/persister-yjs/with-schemas/index.js +2 -2
  242. package/persisters/with-schemas/index.js +6 -4
  243. package/queries/index.js +1 -1
  244. package/queries/with-schemas/index.js +1 -1
  245. package/readme.md +3 -3
  246. package/relationships/index.js +2 -2
  247. package/relationships/with-schemas/index.js +2 -2
  248. package/releases.md +1 -1
  249. package/schematizers/schematizer-arktype/index.js +163 -0
  250. package/schematizers/schematizer-arktype/with-schemas/index.js +163 -0
  251. package/schematizers/schematizer-effect/index.js +137 -0
  252. package/schematizers/schematizer-effect/with-schemas/index.js +137 -0
  253. package/schematizers/schematizer-typebox/index.js +3 -2
  254. package/schematizers/schematizer-typebox/with-schemas/index.js +3 -2
  255. package/schematizers/schematizer-valibot/index.js +4 -4
  256. package/schematizers/schematizer-valibot/with-schemas/index.js +4 -4
  257. package/schematizers/schematizer-yup/index.js +100 -0
  258. package/schematizers/schematizer-yup/with-schemas/index.js +100 -0
  259. package/schematizers/schematizer-zod/index.js +2 -2
  260. package/schematizers/schematizer-zod/with-schemas/index.js +2 -2
  261. package/store/index.js +2 -2
  262. package/store/with-schemas/index.js +2 -2
  263. package/synchronizers/index.js +2 -2
  264. package/synchronizers/synchronizer-broadcast-channel/index.js +2 -2
  265. package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +2 -2
  266. package/synchronizers/synchronizer-local/index.js +2 -2
  267. package/synchronizers/synchronizer-local/with-schemas/index.js +2 -2
  268. package/synchronizers/synchronizer-ws-client/index.js +3 -3
  269. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +3 -3
  270. package/synchronizers/synchronizer-ws-server/index.js +3 -3
  271. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +3 -3
  272. package/synchronizers/synchronizer-ws-server-durable-object/index.js +3 -3
  273. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +3 -3
  274. package/synchronizers/synchronizer-ws-server-simple/index.js +1 -1
  275. package/synchronizers/synchronizer-ws-server-simple/with-schemas/index.js +1 -1
  276. package/synchronizers/with-schemas/index.js +2 -2
  277. package/ui-react-dom/index.js +11 -8
  278. package/ui-react-dom/with-schemas/index.js +11 -8
  279. package/ui-react-inspector/index.js +14 -11
  280. package/ui-react-inspector/with-schemas/index.js +14 -11
  281. package/with-schemas/index.js +6 -4
@@ -1 +1 @@
1
- const t="",e=(t,e="",a)=>t.split(e,a),a=Promise,n=t=>(e,a,n)=>t(e)?n?.():a(e),s=globalThis,r=Math,o=r.floor,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,g=n(i),u=n(c),y=t=>Array.isArray(t),d=(t,e,a)=>t.slice(e,a),w=t=>t.length,v=t=>new a(t),f=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),b=(t,...e)=>t.push(...e),S=t=>t.shift(),M=Object,C=t=>M.getPrototypeOf(t),A=M.entries,m=M.keys,L=M.freeze,P=(t,e)=>p(A(t),([t,a])=>e(a,t)),T=t=>(t=>!i(t)&&g(C(t),t=>t==M.prototype||i(C(t)),()=>!0))(t)&&0==(t=>w(m(t)))(t),E=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),H=JSON.stringify,D=JSON.parse,O=t=>c(t)||0==(t=>t?.size??0)(t),N=(t,e)=>t?.forEach(e),z=(t,e)=>t?.delete(e),R=t=>new Map(t),V=(t,e)=>t?.get(e),k=(t,e,a)=>void 0===a?(z(t,e),t):t?.set(e,a),x=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)?n?.(V(t,e)):k(t,e,a()),V(t,e)},J=(t,e,a,n,s=0)=>u((a?x:V)(t,e[s],s>w(e)-2?a:R),r=>{if(s>w(e)-2)return n?.(r)&&k(t,e[s]),r;const o=J(r,e,a,n,s+1);return O(r)&&k(t,e[s]),o}),$=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),j=s.crypto?t=>s.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*r.random())))(t),F=(t=16)=>{return e=(t,e)=>t+$[63&e],j(new Uint8Array(t)).reduce(e,"");var e},U=(t,e)=>e?[t,e]:[t],W=(t,e)=>((t??"")>(e??"")?t:e)??"",q=(t="")=>U(((t=[])=>M.fromEntries(t))(),t),B=/^\d+$/,G=t=>new Set(y(t)||c(t)?t:[t]),I=R(),K=R(),Q=(e,a,n,s,r,o,i,g={},d=0,v=[])=>{let M,C,A,m=0,P=0,E=0;x(I,v,()=>0),x(K,v,()=>[]);const H=R(),[D,$,j,F,U]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!T(t)||!T(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!T(t)||!T(e),e.setContent]:f("Store type not supported by this Persister"))(i,e,d),[W,q,Q]=(()=>{let e;const[a,n]=(()=>{const e=[];let a=0;return[n=>(n?S(e):null)??t+a++,t=>{B.test(t)&&w(e)<1e3&&b(e,t)}]})(),s=R();return[(n,r,o,i=[],c=()=>[])=>{e??=ot;const l=a(1);var g,u;return k(s,l,[n,r,o,i,c]),g=J(r,o??[t],G),u=l,g?.add(u),l},(a,n,...r)=>p(((e,a=[t])=>{const n=[],s=(t,e)=>e==w(a)?b(n,t):null===a[e]?N(t,t=>s(t,e+1)):p([a[e],null],a=>s(V(t,a),e+1));return s(e,0),n})(a,n),t=>N(t,t=>V(s,t)[0](e,...n??[],...r))),e=>u(V(s,e),([,a,r])=>(J(a,r??[t],void 0,t=>(z(t,e),O(t)?1:0)),k(s,e),n(e),r)),t=>u(V(s,t),([t,,a=[],n,s])=>{const r=(...o)=>{const i=w(o);i==w(a)?t(e,...o,...s(o)):l(a[i])?p(n[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),X=t=>{t!=m&&(m=t,q(H,void 0,m))},Y=t=>{(D&&y(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},Z=async t=>(2!=m&&(X(1),P++,await rt(async()=>{await h(async()=>{const e=await a();y(e)?Y(e):t?U(t):f("Content is not an array: "+e)},()=>{t&&U(t)}),X(0)})),ot),_=async t=>(tt(),await Z(t),await h(async()=>C=await s(async(t,e)=>{e||t?2!=m&&(X(1),P++,Y(e??t),X(0)):await Z()}),o),ot),tt=async()=>(C&&(await h(()=>r(C),o),C=void 0),ot),et=async t=>(1!=m&&(X(2),E++,await rt(async()=>{await h(()=>n($,t),o),X(0)})),ot),at=async()=>(nt(),await et(),A=e.addDidFinishTransactionListener(()=>{const t=j();F(t)&&et(t)}),ot),nt=async()=>(A&&(e.delListener(A),A=void 0),ot),st=async(t=!1)=>{const[e,a]=t?[nt,tt]:[tt,nt];return await e(),await a(),ot},rt=async(...t)=>(b(V(K,v),...t),await(async()=>{if(!V(I,v)){for(k(I,v,1);!c(M=S(V(K,v)));)await h(M,o);k(I,v,0)}})(),ot),ot={load:Z,startAutoLoad:_,stopAutoLoad:tt,isAutoLoading:()=>!c(C),save:et,startAutoSave:at,stopAutoSave:nt,isAutoSaving:()=>!c(A),startAutoPersisting:async(t,e=!1)=>{const[a,n]=e?[at,_]:[_,at];return await a(t),await n(t),ot},stopAutoPersisting:st,getStatus:()=>m,addStatusListener:t=>W(t,H),delListener:t=>(Q(t),e),schedule:rt,getStore:()=>e,destroy:()=>(V(K,v).splice(0,void 0),st()),getStats:()=>({loads:P,saves:E}),...g};return L(ot)},X=async(e,a,n=1,s,r,o)=>{const i=(t,e)=>(a.addEventListener(t,e),()=>a.removeEventListener(t,e)),g=((e,a,n,s,r,o,i,g,y={})=>{let d,w=0,f=0,p=0;const b=R(),S=()=>F(11),M=(t,e,n,s)=>{f++,o?.(t,e,n,s),a(t,e,n,s)},C=async(t,e,a,n)=>v((s,o)=>{const i=n+"."+F(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{z(b,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);k(b,i,[t,(t,e)=>{clearTimeout(c),z(b,i),s([t,e,n])}]),M(t,i,e,a)}),A=(t,[e,a])=>{P(e,([e,a],n)=>{const s=E(t[0],n,q);P(e,([t,e],a)=>{const n=E(s[0],a,q);P(t,([t,e],a)=>n[0][a]=U(t,e)),n[1]=W(n[1],e)}),s[1]=W(s[1],a)}),t[1]=W(t[1],a)},m=(a=null,n,s=S())=>h(async()=>{c(n)&&([n,a,s]=await C(null,1,t,s));const[r,o]=n,[i,l]=e.getMergeableContentHashes();let g=q();if(i!=r){const[t,n]=(await C(a,4,e.getMergeableTableHashes(),s))[0];if(g=t,!T(n)){const[t,r]=(await C(a,5,e.getMergeableRowHashes(n),s))[0];if(A(g,t),!T(r)){const t=(await C(a,6,e.getMergeableCellHashes(r),s))[0];A(g,t)}}}return[g,l==o?q():(await C(a,7,e.getMergeableValueHashes(),s))[0],1]},g),L=Q(e,async()=>{const t=await m();return!t||T(t[0][0])&&T(t[1][0])?void 0:t},async(t,a)=>a?M(null,S(),3,a):M(null,S(),2,e.getMergeableContentHashes()),t=>d=t,()=>d=void 0,g,2,{startSync:async t=>(w=1,await L.startAutoPersisting(t)),stopSync:async()=>(w=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),s(),L),getSynchronizerStats:()=>({sends:f,receives:p}),...y},1);return n((t,a,n,s)=>{const r=w||L.isAutoLoading();p++,i?.(t,a,n,s),0==n?u(V(b,a),([e,a])=>l(e)||e==t?a(s,t):0):2==n&&r?m(t,s,a??void 0).then(t=>{d?.(void 0,t)}).catch(g):3==n&&r?d?.(void 0,s):u(1==n&&(w||L.isAutoSaving())?e.getMergeableContentHashes():4==n?e.getMergeableTableDiff(s):5==n?e.getMergeableRowDiff(s):6==n?e.getMergeableCellDiff(s):7==n?e.getMergeableValueDiff(s):void 0,e=>{M(t,a,0,e)})}),L})(e,(e,...n)=>a.send(((e,...a)=>{return n=e??t,s=H(a,(t,e)=>void 0===e?"":e),n+"\n"+s;var n,s})(e,...n)),t=>i("message",({data:e})=>((t,e)=>(t=>{const a=t.indexOf("\n");var n,s,r;-1!==a&&(n=d(t,0,a),s=d(t,a+1),e(n,...(r=s,D(r,(t,e)=>""===e?void 0:e))))})(t))(e.toString("utf8"),t)),()=>{a.close()},n,s,r,o,{getWebSocket:()=>a});return v(t=>{if(a.readyState!=a.OPEN){const e=e=>{e&&o?.(e),a(),n(),t(g)},a=i("open",()=>e()),n=i("error",e)}else t(g)})};export{X as createWsSynchronizer};
1
+ const t="",e=(t,e="",a)=>t.split(e,a),a=Promise,n=t=>(e,a,n)=>t(e)?n?.():a(e),s=globalThis,r=Math,o=r.floor,i=t=>null==t,c=t=>void 0===t,l=t=>null===t,g=n(i),u=n(c),y=t=>Array.isArray(t),d=(t,e,a)=>t.slice(e,a),w=t=>t.length,v=t=>new a(t),f=t=>{throw Error(t)},h=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),b=(t,...e)=>t.push(...e),S=t=>t.shift(),M=Object,C=t=>M.getPrototypeOf(t),A=M.entries,m=M.keys,L=M.freeze,P=(t,e)=>p(A(t),([t,a])=>e(a,t)),T=t=>(t=>!i(t)&&g(C(t),t=>t==M.prototype||i(C(t)),()=>!0))(t)&&0==(t=>w(m(t)))(t),E=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),H=JSON.stringify,D=JSON.parse,O=t=>c(t)||0==(t=>t?.size??0)(t),N=(t,e)=>t?.forEach(e),z=(t,e)=>t?.delete(e),R=t=>new Map(t),V=(t,e)=>t?.get(e),k=(t,e,a)=>c(a)?(z(t,e),t):t?.set(e,a),x=(t,e,a,n)=>{var s,r;return s=t,r=e,s?.has(r)?n?.(V(t,e)):k(t,e,a()),V(t,e)},J=(t,e,a,n,s=0)=>u((a?x:V)(t,e[s],s>w(e)-2?a:R),r=>{if(s>w(e)-2)return n?.(r)&&k(t,e[s]),r;const o=J(r,e,a,n,s+1);return O(r)&&k(t,e[s]),o}),$=e("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),j=s.crypto?t=>s.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*r.random())))(t),F=(t=16)=>{return e=(t,e)=>t+$[63&e],j(new Uint8Array(t)).reduce(e,"");var e},U=(t,e)=>e?[t,e]:[t],W=(t,e)=>((t??"")>(e??"")?t:e)??"",q=(t="")=>U(((t=[])=>M.fromEntries(t))(),t),B=/^\d+$/,G=t=>new Set(y(t)||c(t)?t:[t]),I=R(),K=R(),Q=(e,a,n,s,r,o,i,g={},d=0,v=[])=>{let M,C,A,m=0,P=0,E=0;x(I,v,()=>0),x(K,v,()=>[]);const H=R(),[D,$,j,F,U]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!T(t)||!T(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!T(t)||!T(e),e.setContent]:f("Store type not supported by this Persister"))(i,e,d),[W,q,Q]=(()=>{let e;const[a,n]=(()=>{const e=[];let a=0;return[n=>(n?S(e):null)??t+a++,t=>{B.test(t)&&w(e)<1e3&&b(e,t)}]})(),s=R();return[(n,r,o,i=[],c=()=>[])=>{e??=ot;const l=a(1);var g,u;return k(s,l,[n,r,o,i,c]),g=J(r,o??[t],G),u=l,g?.add(u),l},(a,n,...r)=>p(((e,a=[t])=>{const n=[],s=(t,e)=>e==w(a)?b(n,t):l(a[e])?N(t,t=>s(t,e+1)):p([a[e],null],a=>s(V(t,a),e+1));return s(e,0),n})(a,n),t=>N(t,t=>V(s,t)[0](e,...n??[],...r))),e=>u(V(s,e),([,a,r])=>(J(a,r??[t],void 0,t=>(z(t,e),O(t)?1:0)),k(s,e),n(e),r)),t=>u(V(s,t),([t,,a=[],n,s])=>{const r=(...o)=>{const i=w(o);i==w(a)?t(e,...o,...s(o)):l(a[i])?p(n[i]?.(...o)??[],t=>r(...o,t)):r(...o,a[i])};r()})]})(),X=t=>{t!=m&&(m=t,q(H,void 0,m))},Y=t=>{(D&&y(t?.[0])?1===t?.[2]?e.applyMergeableChanges:e.setMergeableContent:1===t?.[2]?e.applyChanges:e.setContent)(t)},Z=async t=>(2!=m&&(X(1),P++,await rt(async()=>{await h(async()=>{const e=await a();y(e)?Y(e):t?U(t):f("Content is not an array: "+e)},()=>{t&&U(t)}),X(0)})),ot),_=async t=>(tt(),await Z(t),await h(async()=>C=await s(async(t,e)=>{e||t?2!=m&&(X(1),P++,Y(e??t),X(0)):await Z()}),o),ot),tt=async()=>(C&&(await h(()=>r(C),o),C=void 0),ot),et=async t=>(1!=m&&(X(2),E++,await rt(async()=>{await h(()=>n($,t),o),X(0)})),ot),at=async()=>(nt(),await et(),A=e.addDidFinishTransactionListener(()=>{const t=j();F(t)&&et(t)}),ot),nt=async()=>(A&&(e.delListener(A),A=void 0),ot),st=async(t=!1)=>{const[e,a]=t?[nt,tt]:[tt,nt];return await e(),await a(),ot},rt=async(...t)=>(b(V(K,v),...t),await(async()=>{if(!V(I,v)){for(k(I,v,1);!c(M=S(V(K,v)));)await h(M,o);k(I,v,0)}})(),ot),ot={load:Z,startAutoLoad:_,stopAutoLoad:tt,isAutoLoading:()=>!c(C),save:et,startAutoSave:at,stopAutoSave:nt,isAutoSaving:()=>!c(A),startAutoPersisting:async(t,e=!1)=>{const[a,n]=e?[at,_]:[_,at];return await a(t),await n(t),ot},stopAutoPersisting:st,getStatus:()=>m,addStatusListener:t=>W(t,H),delListener:t=>(Q(t),e),schedule:rt,getStore:()=>e,destroy:()=>(V(K,v).splice(0,void 0),st()),getStats:()=>({loads:P,saves:E}),...g};return L(ot)},X=async(e,a,n=1,s,r,o)=>{const i=(t,e)=>(a.addEventListener(t,e),()=>a.removeEventListener(t,e)),g=((e,a,n,s,r,o,i,g,y={})=>{let d,w=0,f=0,p=0;const b=R(),S=()=>F(11),M=(t,e,n,s)=>{f++,o?.(t,e,n,s),a(t,e,n,s)},C=async(t,e,a,n)=>v((s,o)=>{const i=n+"."+F(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{z(b,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);k(b,i,[t,(t,e)=>{clearTimeout(c),z(b,i),s([t,e,n])}]),M(t,i,e,a)}),A=(t,[e,a])=>{P(e,([e,a],n)=>{const s=E(t[0],n,q);P(e,([t,e],a)=>{const n=E(s[0],a,q);P(t,([t,e],a)=>n[0][a]=U(t,e)),n[1]=W(n[1],e)}),s[1]=W(s[1],a)}),t[1]=W(t[1],a)},m=(a=null,n,s=S())=>h(async()=>{c(n)&&([n,a,s]=await C(null,1,t,s));const[r,o]=n,[i,l]=e.getMergeableContentHashes();let g=q();if(i!=r){const[t,n]=(await C(a,4,e.getMergeableTableHashes(),s))[0];if(g=t,!T(n)){const[t,r]=(await C(a,5,e.getMergeableRowHashes(n),s))[0];if(A(g,t),!T(r)){const t=(await C(a,6,e.getMergeableCellHashes(r),s))[0];A(g,t)}}}return[g,l==o?q():(await C(a,7,e.getMergeableValueHashes(),s))[0],1]},g),L=Q(e,async()=>{const t=await m();return!t||T(t[0][0])&&T(t[1][0])?void 0:t},async(t,a)=>a?M(null,S(),3,a):M(null,S(),2,e.getMergeableContentHashes()),t=>d=t,()=>d=void 0,g,2,{startSync:async t=>(w=1,await L.startAutoPersisting(t)),stopSync:async()=>(w=0,await L.stopAutoPersisting(),L),destroy:async()=>(await L.stopSync(),s(),L),getSynchronizerStats:()=>({sends:f,receives:p}),...y},1);return n((t,a,n,s)=>{const r=w||L.isAutoLoading();p++,i?.(t,a,n,s),0==n?u(V(b,a),([e,a])=>l(e)||e==t?a(s,t):0):2==n&&r?m(t,s,a??void 0).then(t=>{d?.(void 0,t)}).catch(g):3==n&&r?d?.(void 0,s):u(1==n&&(w||L.isAutoSaving())?e.getMergeableContentHashes():4==n?e.getMergeableTableDiff(s):5==n?e.getMergeableRowDiff(s):6==n?e.getMergeableCellDiff(s):7==n?e.getMergeableValueDiff(s):void 0,e=>{M(t,a,0,e)})}),L})(e,(e,...n)=>a.send(((e,...a)=>{return n=e??t,s=H(a,(t,e)=>c(e)?"":e),n+"\n"+s;var n,s})(e,...n)),t=>i("message",({data:e})=>((t,e)=>(t=>{const a=t.indexOf("\n");var n,s,r;-1!==a&&(n=d(t,0,a),s=d(t,a+1),e(n,...(r=s,D(r,(t,e)=>""===e?void 0:e))))})(t))(e.toString("utf8"),t)),()=>{a.close()},n,s,r,o,{getWebSocket:()=>a});return v(t=>{if(a.readyState!=a.OPEN){const e=e=>{e&&o?.(e),a(),n(),t(g)},a=i("open",()=>e()),n=i("error",e)}else t(g)})};export{X as createWsSynchronizer};
@@ -1 +1 @@
1
- const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=t=>(e,a,s)=>t(e)?s?.():a(e),o=globalThis,r=Math,i=r.floor,c=t=>null==t,l=t=>void 0===t,g=t=>null===t,d=n(c),y=n(l),u=t=>Array.isArray(t),w=(t,e,a)=>t.slice(e,a),v=t=>t.length,h=t=>{throw Error(t)},S=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,e)=>t.map(e),b=(t,e,a)=>t.reduce(e,a),C=(t,...e)=>t.push(...e),M=t=>t.shift(),A=t=>t?.size??0,L=(m=A,t=>b(T(t),(t,e)=>t+m(e),0));var m;const P=t=>l(t)||0==A(t),T=t=>[...t?.values()??[]],H=(t,e)=>t?.forEach(e),D=(t,e)=>t?.delete(e),k=Object,O=t=>k.getPrototypeOf(t),E=k.entries,I=k.keys,z=k.freeze,N=(t,e)=>p(E(t),([t,a])=>e(a,t)),R=t=>(t=>!c(t)&&d(O(t),t=>t==k.prototype||c(O(t)),()=>!0))(t)&&0==(t=>v(I(t)))(t),V=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),x=t=>new Map(t),J=t=>[...t?.keys()??[]],$=(t,e)=>t?.get(e),j=(t,e,a)=>void 0===a?(D(t,e),t):t?.set(e,a),F=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.($(t,e)):j(t,e,a()),$(t,e)},U=(t,e,a,s,n=0)=>y((a?F:$)(t,e[n],n>v(e)-2?a:x),o=>{if(n>v(e)-2)return s?.(o)&&j(t,e[n]),o;const r=U(o,e,a,s,n+1);return P(o)&&j(t,e[n]),r}),W=/^\d+$/,q=t=>new Set(u(t)||l(t)?t:[t]),B=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?M(e):null)??t+a++,t=>{W.test(t)&&v(e)<1e3&&C(e,t)}]})(),o=x();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const g=s(1);var d,y;return j(o,g,[n,r,i,c,l]),d=U(r,i??[t],q),y=g,d?.add(y),g},(e,s,...n)=>p(((e,a=[t])=>{const s=[],n=(t,e)=>e==v(a)?C(s,t):null===a[e]?H(t,t=>n(t,e+1)):p([a[e],null],a=>n($(t,a),e+1));return n(e,0),s})(e,s),t=>H(t,t=>$(o,t)[0](a,...s??[],...n))),e=>y($(o,e),([,a,s])=>(U(a,s??[t],void 0,t=>(D(t,e),P(t)?1:0)),j(o,e),n(e),s)),t=>y($(o,t),([t,,e=[],s,n])=>{const o=(...r)=>{const i=v(r);i==v(e)?t(a,...r,...n(r)):g(e[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,e[i])};o()})]},G=JSON.stringify,K=JSON.parse,Q=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(w(t,0,a),w(t,a+1))},X=(t,e)=>t+"\n"+e,Y=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Z=o.crypto?t=>o.crypto.getRandomValues(t):t=>f(t,()=>i(256*r.random())),_=(e=16)=>b(Z(new Uint8Array(e)),(t,e)=>t+Y[63&e],t),tt=(t,e)=>e?[t,e]:[t],et=(t,e)=>((t??"")>(e??"")?t:e)??"",at=(t="")=>tt(((t=[])=>k.fromEntries(t))(),t),st=x(),nt=x(),ot=/\/([^?]*)/,rt=(a,n,o)=>{const r=x(),i=x(),c=x(),d=x(),[w,v,b]=B(()=>k),m=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},T=(e,a,s)=>n=>Q(n,(n,o)=>{const r=X(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,H(a,(t,e)=>i(e,t))):"S"===n?s[3]?.(r):$(a,n)?.send(r)});a.on("connection",(a,w)=>{return y((f=w.url,b=ot,f?.match(b)),([,f])=>y(w.headers["sec-websocket-key"],async w=>{const b=F(c,f,x),A=F(d,f,()=>[0]),L=T(w,b,A);P(b)&&(v(r,void 0,f,1),await(async(e,a,r)=>y(await(n?.(a)),a=>{e[0]=1,e[1]=u(a)?a[0]:a;const n=T("S",r,e);e[2]=((e,a,n,o,r,i,c,d,w={})=>{let v,p=0,f=0,b=0;const A=x(),L=()=>_(11),m=(t,e,s,n)=>{f++,a(t,e,s,n)},P=async(t,e,a,n)=>new s((s,o)=>{const i=n+"."+_(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{D(A,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);j(A,i,[t,(t,e)=>{clearTimeout(c),D(A,i),s([t,e,n])}]),m(t,i,e,a)}),T=(t,[e,a])=>{N(e,([e,a],s)=>{const n=V(t[0],s,at);N(e,([t,e],a)=>{const s=V(n[0],a,at);N(t,([t,e],a)=>s[0][a]=tt(t,e)),s[1]=et(s[1],e)}),n[1]=et(n[1],a)}),t[1]=et(t[1],a)},H=(a=null,s,n=L())=>S(async()=>{l(s)&&([s,a,n]=await P(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let g=at();if(i!=o){const[t,s]=(await P(a,4,e.getMergeableTableHashes(),n))[0];if(g=t,!R(s)){const[t,o]=(await P(a,5,e.getMergeableRowHashes(s),n))[0];if(T(g,t),!R(o)){const t=(await P(a,6,e.getMergeableCellHashes(o),n))[0];T(g,t)}}}return[g,c==r?at():(await P(a,7,e.getMergeableValueHashes(),n))[0],1]},d),k=((t,e,a,s,n,o,r,i={},c=0,g=[])=>{let d,y,w,v=0,p=0,f=0;F(st,g,()=>0),F(nt,g,()=>[]);const b=x(),[A,L,m,P,T]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!R(t)||!R(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!R(t)||!R(e),e.setContent]:h("Store type not supported by this Persister"))(r,t,c),[H,D,k]=B(()=>K),O=t=>{t!=v&&(v=t,D(b,void 0,v))},E=e=>{(A&&u(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},I=async t=>(2!=v&&(O(1),p++,await G(async()=>{await S(async()=>{const a=await e();u(a)?E(a):t?T(t):h("Content is not an array: "+a)},()=>{t&&T(t)}),O(0)})),K),N=async t=>(V(),await I(t),await S(async()=>y=await s(async(t,e)=>{e||t?2!=v&&(O(1),p++,E(e??t),O(0)):await I()}),o),K),V=async()=>(y&&(await S(()=>n(y),o),y=void 0),K),J=async t=>(1!=v&&(O(2),f++,await G(async()=>{await S(()=>a(L,t),o),O(0)})),K),U=async()=>(W(),await J(),w=t.addDidFinishTransactionListener(()=>{const t=m();P(t)&&J(t)}),K),W=async()=>(w&&(t.delListener(w),w=void 0),K),q=async(t=!1)=>{const[e,a]=t?[W,V]:[V,W];return await e(),await a(),K},G=async(...t)=>(C($(nt,g),...t),await(async()=>{if(!$(st,g)){for(j(st,g,1);!l(d=M($(nt,g)));)await S(d,o);j(st,g,0)}})(),K),K={load:I,startAutoLoad:N,stopAutoLoad:V,isAutoLoading:()=>!l(y),save:J,startAutoSave:U,stopAutoSave:W,isAutoSaving:()=>!l(w),startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[U,N]:[N,U];return await a(t),await s(t),K},stopAutoPersisting:q,getStatus:()=>v,addStatusListener:t=>H(t,b),delListener:e=>(k(e),t),schedule:G,getStore:()=>t,destroy:()=>($(nt,g).splice(0,void 0),q()),getStats:()=>({loads:p,saves:f}),...i};return z(K)})(e,async()=>{const t=await H();return!t||R(t[0][0])&&R(t[1][0])?void 0:t},async(t,a)=>a?m(null,L(),3,a):m(null,L(),2,e.getMergeableContentHashes()),t=>v=t,()=>v=void 0,d,2,{startSync:async t=>(p=1,await k.startAutoPersisting(t)),stopSync:async()=>(p=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:f,receives:b}),...w},1);return n((t,a,s,n)=>{const o=p||k.isAutoLoading();b++,0==s?y($(A,a),([e,a])=>g(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{v?.(void 0,t)}).catch(d):3==s&&o?v?.(void 0,n):y(1==s&&(p||k.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{m(t,a,0,e)})}),k})(e[1].getStore(),(e,a,s,o)=>n(((e,...a)=>X(e??t,G(a,(t,e)=>void 0===e?"":e)))(e,a,s,o)),t=>e[3]=e=>((t,e)=>Q(t,(t,a)=>{return e(t,...(s=a,K(s,(t,e)=>""===e?void 0:e)));var s}))(e,t),0,1,0,0,o),e[4]=[],e[5]=u(a)?a[1]:t=>0}))(A,f,b)),j(b,w,a),v(i,[f],w,1),a.on("message",t=>{const e=t.toString("utf8");0==A[0]?L(e):C(A[4],e)}),1==A[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(A),p(A[4],L),A[4]=[]),a.on("close",async()=>{D(b,w),v(i,[f],w,-1),P(b)&&(await m(A),D(d,f),D(c,f),v(r,void 0,f,-1))}),o&&a.on(e,o)}));var f,b}),o&&a.on(e,o);const k={getWebSocketServer:()=>a,getPathIds:()=>J(c),getClientIds:t=>J($(c,t)),addPathIdsListener:t=>w(t,r),addClientIdsListener:(t,e)=>w(e,i,[t]),delListener:t=>(b(t),k),getStats:()=>({paths:A(c),clients:L(c)}),destroy:async()=>{var t,e;c.clear(),await(async t=>s.all(t))((t=d,e=m,f([...t?.entries()??[]],([t,a])=>e(a,t)))),a.close()}};return z(k)};export{rt as createWsServer};
1
+ const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=t=>(e,a,s)=>t(e)?s?.():a(e),o=globalThis,r=Math,i=r.floor,c=t=>null==t,l=t=>void 0===t,g=t=>null===t,d=n(c),y=n(l),u=t=>Array.isArray(t),w=(t,e,a)=>t.slice(e,a),h=t=>t.length,v=t=>{throw Error(t)},S=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,e)=>t.map(e),b=(t,e,a)=>t.reduce(e,a),C=(t,...e)=>t.push(...e),M=t=>t.shift(),A=t=>t?.size??0,L=(m=A,t=>b(T(t),(t,e)=>t+m(e),0));var m;const P=t=>l(t)||0==A(t),T=t=>[...t?.values()??[]],H=(t,e)=>t?.forEach(e),D=(t,e)=>t?.delete(e),k=Object,O=t=>k.getPrototypeOf(t),E=k.entries,I=k.keys,z=k.freeze,N=(t,e)=>p(E(t),([t,a])=>e(a,t)),R=t=>(t=>!c(t)&&d(O(t),t=>t==k.prototype||c(O(t)),()=>!0))(t)&&0==(t=>h(I(t)))(t),V=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),x=t=>new Map(t),J=t=>[...t?.keys()??[]],$=(t,e)=>t?.get(e),j=(t,e,a)=>l(a)?(D(t,e),t):t?.set(e,a),F=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.($(t,e)):j(t,e,a()),$(t,e)},U=(t,e,a,s,n=0)=>y((a?F:$)(t,e[n],n>h(e)-2?a:x),o=>{if(n>h(e)-2)return s?.(o)&&j(t,e[n]),o;const r=U(o,e,a,s,n+1);return P(o)&&j(t,e[n]),r}),W=/^\d+$/,q=t=>new Set(u(t)||l(t)?t:[t]),B=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?M(e):null)??t+a++,t=>{W.test(t)&&h(e)<1e3&&C(e,t)}]})(),o=x();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const g=s(1);var d,y;return j(o,g,[n,r,i,c,l]),d=U(r,i??[t],q),y=g,d?.add(y),g},(e,s,...n)=>p(((e,a=[t])=>{const s=[],n=(t,e)=>e==h(a)?C(s,t):g(a[e])?H(t,t=>n(t,e+1)):p([a[e],null],a=>n($(t,a),e+1));return n(e,0),s})(e,s),t=>H(t,t=>$(o,t)[0](a,...s??[],...n))),e=>y($(o,e),([,a,s])=>(U(a,s??[t],void 0,t=>(D(t,e),P(t)?1:0)),j(o,e),n(e),s)),t=>y($(o,t),([t,,e=[],s,n])=>{const o=(...r)=>{const i=h(r);i==h(e)?t(a,...r,...n(r)):g(e[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,e[i])};o()})]},G=JSON.stringify,K=JSON.parse,Q=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(w(t,0,a),w(t,a+1))},X=(t,e)=>t+"\n"+e,Y=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Z=o.crypto?t=>o.crypto.getRandomValues(t):t=>f(t,()=>i(256*r.random())),_=(e=16)=>b(Z(new Uint8Array(e)),(t,e)=>t+Y[63&e],t),tt=(t,e)=>e?[t,e]:[t],et=(t,e)=>((t??"")>(e??"")?t:e)??"",at=(t="")=>tt(((t=[])=>k.fromEntries(t))(),t),st=x(),nt=x(),ot=/\/([^?]*)/,rt=(a,n,o)=>{const r=x(),i=x(),c=x(),d=x(),[w,h,b]=B(()=>k),m=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},T=(e,a,s)=>n=>Q(n,(n,o)=>{const r=X(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,H(a,(t,e)=>i(e,t))):"S"===n?s[3]?.(r):$(a,n)?.send(r)});a.on("connection",(a,w)=>{return y((f=w.url,b=ot,f?.match(b)),([,f])=>y(w.headers["sec-websocket-key"],async w=>{const b=F(c,f,x),A=F(d,f,()=>[0]),L=T(w,b,A);P(b)&&(h(r,void 0,f,1),await(async(e,a,r)=>y(await(n?.(a)),a=>{e[0]=1,e[1]=u(a)?a[0]:a;const n=T("S",r,e);e[2]=((e,a,n,o,r,i,c,d,w={})=>{let h,p=0,f=0,b=0;const A=x(),L=()=>_(11),m=(t,e,s,n)=>{f++,a(t,e,s,n)},P=async(t,e,a,n)=>new s((s,o)=>{const i=n+"."+_(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{D(A,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);j(A,i,[t,(t,e)=>{clearTimeout(c),D(A,i),s([t,e,n])}]),m(t,i,e,a)}),T=(t,[e,a])=>{N(e,([e,a],s)=>{const n=V(t[0],s,at);N(e,([t,e],a)=>{const s=V(n[0],a,at);N(t,([t,e],a)=>s[0][a]=tt(t,e)),s[1]=et(s[1],e)}),n[1]=et(n[1],a)}),t[1]=et(t[1],a)},H=(a=null,s,n=L())=>S(async()=>{l(s)&&([s,a,n]=await P(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let g=at();if(i!=o){const[t,s]=(await P(a,4,e.getMergeableTableHashes(),n))[0];if(g=t,!R(s)){const[t,o]=(await P(a,5,e.getMergeableRowHashes(s),n))[0];if(T(g,t),!R(o)){const t=(await P(a,6,e.getMergeableCellHashes(o),n))[0];T(g,t)}}}return[g,c==r?at():(await P(a,7,e.getMergeableValueHashes(),n))[0],1]},d),k=((t,e,a,s,n,o,r,i={},c=0,g=[])=>{let d,y,w,h=0,p=0,f=0;F(st,g,()=>0),F(nt,g,()=>[]);const b=x(),[A,L,m,P,T]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!R(t)||!R(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!R(t)||!R(e),e.setContent]:v("Store type not supported by this Persister"))(r,t,c),[H,D,k]=B(()=>K),O=t=>{t!=h&&(h=t,D(b,void 0,h))},E=e=>{(A&&u(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},I=async t=>(2!=h&&(O(1),p++,await G(async()=>{await S(async()=>{const a=await e();u(a)?E(a):t?T(t):v("Content is not an array: "+a)},()=>{t&&T(t)}),O(0)})),K),N=async t=>(V(),await I(t),await S(async()=>y=await s(async(t,e)=>{e||t?2!=h&&(O(1),p++,E(e??t),O(0)):await I()}),o),K),V=async()=>(y&&(await S(()=>n(y),o),y=void 0),K),J=async t=>(1!=h&&(O(2),f++,await G(async()=>{await S(()=>a(L,t),o),O(0)})),K),U=async()=>(W(),await J(),w=t.addDidFinishTransactionListener(()=>{const t=m();P(t)&&J(t)}),K),W=async()=>(w&&(t.delListener(w),w=void 0),K),q=async(t=!1)=>{const[e,a]=t?[W,V]:[V,W];return await e(),await a(),K},G=async(...t)=>(C($(nt,g),...t),await(async()=>{if(!$(st,g)){for(j(st,g,1);!l(d=M($(nt,g)));)await S(d,o);j(st,g,0)}})(),K),K={load:I,startAutoLoad:N,stopAutoLoad:V,isAutoLoading:()=>!l(y),save:J,startAutoSave:U,stopAutoSave:W,isAutoSaving:()=>!l(w),startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[U,N]:[N,U];return await a(t),await s(t),K},stopAutoPersisting:q,getStatus:()=>h,addStatusListener:t=>H(t,b),delListener:e=>(k(e),t),schedule:G,getStore:()=>t,destroy:()=>($(nt,g).splice(0,void 0),q()),getStats:()=>({loads:p,saves:f}),...i};return z(K)})(e,async()=>{const t=await H();return!t||R(t[0][0])&&R(t[1][0])?void 0:t},async(t,a)=>a?m(null,L(),3,a):m(null,L(),2,e.getMergeableContentHashes()),t=>h=t,()=>h=void 0,d,2,{startSync:async t=>(p=1,await k.startAutoPersisting(t)),stopSync:async()=>(p=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:f,receives:b}),...w},1);return n((t,a,s,n)=>{const o=p||k.isAutoLoading();b++,0==s?y($(A,a),([e,a])=>g(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{h?.(void 0,t)}).catch(d):3==s&&o?h?.(void 0,n):y(1==s&&(p||k.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{m(t,a,0,e)})}),k})(e[1].getStore(),(e,a,s,o)=>n(((e,...a)=>X(e??t,G(a,(t,e)=>l(e)?"":e)))(e,a,s,o)),t=>e[3]=e=>((t,e)=>Q(t,(t,a)=>{return e(t,...(s=a,K(s,(t,e)=>""===e?void 0:e)));var s}))(e,t),0,1,0,0,o),e[4]=[],e[5]=u(a)?a[1]:t=>0}))(A,f,b)),j(b,w,a),h(i,[f],w,1),a.on("message",t=>{const e=t.toString("utf8");0==A[0]?L(e):C(A[4],e)}),1==A[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(A),p(A[4],L),A[4]=[]),a.on("close",async()=>{D(b,w),h(i,[f],w,-1),P(b)&&(await m(A),D(d,f),D(c,f),h(r,void 0,f,-1))}),o&&a.on(e,o)}));var f,b}),o&&a.on(e,o);const k={getWebSocketServer:()=>a,getPathIds:()=>J(c),getClientIds:t=>J($(c,t)),addPathIdsListener:t=>w(t,r),addClientIdsListener:(t,e)=>w(e,i,[t]),delListener:t=>(b(t),k),getStats:()=>({paths:A(c),clients:L(c)}),destroy:async()=>{var t,e;c.clear(),await(async t=>s.all(t))((t=d,e=m,f([...t?.entries()??[]],([t,a])=>e(a,t)))),a.close()}};return z(k)};export{rt as createWsServer};
@@ -1 +1 @@
1
- const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=t=>(e,a,s)=>t(e)?s?.():a(e),o=globalThis,r=Math,i=r.floor,c=t=>null==t,l=t=>void 0===t,g=t=>null===t,d=n(c),y=n(l),u=t=>Array.isArray(t),w=(t,e,a)=>t.slice(e,a),v=t=>t.length,h=t=>{throw Error(t)},S=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,e)=>t.map(e),b=(t,e,a)=>t.reduce(e,a),C=(t,...e)=>t.push(...e),M=t=>t.shift(),A=t=>t?.size??0,L=(m=A,t=>b(T(t),(t,e)=>t+m(e),0));var m;const P=t=>l(t)||0==A(t),T=t=>[...t?.values()??[]],H=(t,e)=>t?.forEach(e),D=(t,e)=>t?.delete(e),k=Object,O=t=>k.getPrototypeOf(t),E=k.entries,I=k.keys,z=k.freeze,N=(t,e)=>p(E(t),([t,a])=>e(a,t)),R=t=>(t=>!c(t)&&d(O(t),t=>t==k.prototype||c(O(t)),()=>!0))(t)&&0==(t=>v(I(t)))(t),V=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),x=t=>new Map(t),J=t=>[...t?.keys()??[]],$=(t,e)=>t?.get(e),j=(t,e,a)=>void 0===a?(D(t,e),t):t?.set(e,a),F=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.($(t,e)):j(t,e,a()),$(t,e)},U=(t,e,a,s,n=0)=>y((a?F:$)(t,e[n],n>v(e)-2?a:x),o=>{if(n>v(e)-2)return s?.(o)&&j(t,e[n]),o;const r=U(o,e,a,s,n+1);return P(o)&&j(t,e[n]),r}),W=/^\d+$/,q=t=>new Set(u(t)||l(t)?t:[t]),B=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?M(e):null)??t+a++,t=>{W.test(t)&&v(e)<1e3&&C(e,t)}]})(),o=x();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const g=s(1);var d,y;return j(o,g,[n,r,i,c,l]),d=U(r,i??[t],q),y=g,d?.add(y),g},(e,s,...n)=>p(((e,a=[t])=>{const s=[],n=(t,e)=>e==v(a)?C(s,t):null===a[e]?H(t,t=>n(t,e+1)):p([a[e],null],a=>n($(t,a),e+1));return n(e,0),s})(e,s),t=>H(t,t=>$(o,t)[0](a,...s??[],...n))),e=>y($(o,e),([,a,s])=>(U(a,s??[t],void 0,t=>(D(t,e),P(t)?1:0)),j(o,e),n(e),s)),t=>y($(o,t),([t,,e=[],s,n])=>{const o=(...r)=>{const i=v(r);i==v(e)?t(a,...r,...n(r)):g(e[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,e[i])};o()})]},G=JSON.stringify,K=JSON.parse,Q=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(w(t,0,a),w(t,a+1))},X=(t,e)=>t+"\n"+e,Y=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Z=o.crypto?t=>o.crypto.getRandomValues(t):t=>f(t,()=>i(256*r.random())),_=(e=16)=>b(Z(new Uint8Array(e)),(t,e)=>t+Y[63&e],t),tt=(t,e)=>e?[t,e]:[t],et=(t,e)=>((t??"")>(e??"")?t:e)??"",at=(t="")=>tt(((t=[])=>k.fromEntries(t))(),t),st=x(),nt=x(),ot=/\/([^?]*)/,rt=(a,n,o)=>{const r=x(),i=x(),c=x(),d=x(),[w,v,b]=B(()=>k),m=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},T=(e,a,s)=>n=>Q(n,(n,o)=>{const r=X(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,H(a,(t,e)=>i(e,t))):"S"===n?s[3]?.(r):$(a,n)?.send(r)});a.on("connection",(a,w)=>{return y((f=w.url,b=ot,f?.match(b)),([,f])=>y(w.headers["sec-websocket-key"],async w=>{const b=F(c,f,x),A=F(d,f,()=>[0]),L=T(w,b,A);P(b)&&(v(r,void 0,f,1),await(async(e,a,r)=>y(await(n?.(a)),a=>{e[0]=1,e[1]=u(a)?a[0]:a;const n=T("S",r,e);e[2]=((e,a,n,o,r,i,c,d,w={})=>{let v,p=0,f=0,b=0;const A=x(),L=()=>_(11),m=(t,e,s,n)=>{f++,a(t,e,s,n)},P=async(t,e,a,n)=>new s((s,o)=>{const i=n+"."+_(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{D(A,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);j(A,i,[t,(t,e)=>{clearTimeout(c),D(A,i),s([t,e,n])}]),m(t,i,e,a)}),T=(t,[e,a])=>{N(e,([e,a],s)=>{const n=V(t[0],s,at);N(e,([t,e],a)=>{const s=V(n[0],a,at);N(t,([t,e],a)=>s[0][a]=tt(t,e)),s[1]=et(s[1],e)}),n[1]=et(n[1],a)}),t[1]=et(t[1],a)},H=(a=null,s,n=L())=>S(async()=>{l(s)&&([s,a,n]=await P(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let g=at();if(i!=o){const[t,s]=(await P(a,4,e.getMergeableTableHashes(),n))[0];if(g=t,!R(s)){const[t,o]=(await P(a,5,e.getMergeableRowHashes(s),n))[0];if(T(g,t),!R(o)){const t=(await P(a,6,e.getMergeableCellHashes(o),n))[0];T(g,t)}}}return[g,c==r?at():(await P(a,7,e.getMergeableValueHashes(),n))[0],1]},d),k=((t,e,a,s,n,o,r,i={},c=0,g=[])=>{let d,y,w,v=0,p=0,f=0;F(st,g,()=>0),F(nt,g,()=>[]);const b=x(),[A,L,m,P,T]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!R(t)||!R(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!R(t)||!R(e),e.setContent]:h("Store type not supported by this Persister"))(r,t,c),[H,D,k]=B(()=>K),O=t=>{t!=v&&(v=t,D(b,void 0,v))},E=e=>{(A&&u(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},I=async t=>(2!=v&&(O(1),p++,await G(async()=>{await S(async()=>{const a=await e();u(a)?E(a):t?T(t):h("Content is not an array: "+a)},()=>{t&&T(t)}),O(0)})),K),N=async t=>(V(),await I(t),await S(async()=>y=await s(async(t,e)=>{e||t?2!=v&&(O(1),p++,E(e??t),O(0)):await I()}),o),K),V=async()=>(y&&(await S(()=>n(y),o),y=void 0),K),J=async t=>(1!=v&&(O(2),f++,await G(async()=>{await S(()=>a(L,t),o),O(0)})),K),U=async()=>(W(),await J(),w=t.addDidFinishTransactionListener(()=>{const t=m();P(t)&&J(t)}),K),W=async()=>(w&&(t.delListener(w),w=void 0),K),q=async(t=!1)=>{const[e,a]=t?[W,V]:[V,W];return await e(),await a(),K},G=async(...t)=>(C($(nt,g),...t),await(async()=>{if(!$(st,g)){for(j(st,g,1);!l(d=M($(nt,g)));)await S(d,o);j(st,g,0)}})(),K),K={load:I,startAutoLoad:N,stopAutoLoad:V,isAutoLoading:()=>!l(y),save:J,startAutoSave:U,stopAutoSave:W,isAutoSaving:()=>!l(w),startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[U,N]:[N,U];return await a(t),await s(t),K},stopAutoPersisting:q,getStatus:()=>v,addStatusListener:t=>H(t,b),delListener:e=>(k(e),t),schedule:G,getStore:()=>t,destroy:()=>($(nt,g).splice(0,void 0),q()),getStats:()=>({loads:p,saves:f}),...i};return z(K)})(e,async()=>{const t=await H();return!t||R(t[0][0])&&R(t[1][0])?void 0:t},async(t,a)=>a?m(null,L(),3,a):m(null,L(),2,e.getMergeableContentHashes()),t=>v=t,()=>v=void 0,d,2,{startSync:async t=>(p=1,await k.startAutoPersisting(t)),stopSync:async()=>(p=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:f,receives:b}),...w},1);return n((t,a,s,n)=>{const o=p||k.isAutoLoading();b++,0==s?y($(A,a),([e,a])=>g(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{v?.(void 0,t)}).catch(d):3==s&&o?v?.(void 0,n):y(1==s&&(p||k.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{m(t,a,0,e)})}),k})(e[1].getStore(),(e,a,s,o)=>n(((e,...a)=>X(e??t,G(a,(t,e)=>void 0===e?"":e)))(e,a,s,o)),t=>e[3]=e=>((t,e)=>Q(t,(t,a)=>{return e(t,...(s=a,K(s,(t,e)=>""===e?void 0:e)));var s}))(e,t),0,1,0,0,o),e[4]=[],e[5]=u(a)?a[1]:t=>0}))(A,f,b)),j(b,w,a),v(i,[f],w,1),a.on("message",t=>{const e=t.toString("utf8");0==A[0]?L(e):C(A[4],e)}),1==A[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(A),p(A[4],L),A[4]=[]),a.on("close",async()=>{D(b,w),v(i,[f],w,-1),P(b)&&(await m(A),D(d,f),D(c,f),v(r,void 0,f,-1))}),o&&a.on(e,o)}));var f,b}),o&&a.on(e,o);const k={getWebSocketServer:()=>a,getPathIds:()=>J(c),getClientIds:t=>J($(c,t)),addPathIdsListener:t=>w(t,r),addClientIdsListener:(t,e)=>w(e,i,[t]),delListener:t=>(b(t),k),getStats:()=>({paths:A(c),clients:L(c)}),destroy:async()=>{var t,e;c.clear(),await(async t=>s.all(t))((t=d,e=m,f([...t?.entries()??[]],([t,a])=>e(a,t)))),a.close()}};return z(k)};export{rt as createWsServer};
1
+ const t="",e="error",a=(t,e="",a)=>t.split(e,a),s=Promise,n=t=>(e,a,s)=>t(e)?s?.():a(e),o=globalThis,r=Math,i=r.floor,c=t=>null==t,l=t=>void 0===t,g=t=>null===t,d=n(c),y=n(l),u=t=>Array.isArray(t),w=(t,e,a)=>t.slice(e,a),h=t=>t.length,v=t=>{throw Error(t)},S=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},p=(t,e)=>t.forEach(e),f=(t,e)=>t.map(e),b=(t,e,a)=>t.reduce(e,a),C=(t,...e)=>t.push(...e),M=t=>t.shift(),A=t=>t?.size??0,L=(m=A,t=>b(T(t),(t,e)=>t+m(e),0));var m;const P=t=>l(t)||0==A(t),T=t=>[...t?.values()??[]],H=(t,e)=>t?.forEach(e),D=(t,e)=>t?.delete(e),k=Object,O=t=>k.getPrototypeOf(t),E=k.entries,I=k.keys,z=k.freeze,N=(t,e)=>p(E(t),([t,a])=>e(a,t)),R=t=>(t=>!c(t)&&d(O(t),t=>t==k.prototype||c(O(t)),()=>!0))(t)&&0==(t=>h(I(t)))(t),V=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),x=t=>new Map(t),J=t=>[...t?.keys()??[]],$=(t,e)=>t?.get(e),j=(t,e,a)=>l(a)?(D(t,e),t):t?.set(e,a),F=(t,e,a,s)=>{var n,o;return n=t,o=e,n?.has(o)?s?.($(t,e)):j(t,e,a()),$(t,e)},U=(t,e,a,s,n=0)=>y((a?F:$)(t,e[n],n>h(e)-2?a:x),o=>{if(n>h(e)-2)return s?.(o)&&j(t,e[n]),o;const r=U(o,e,a,s,n+1);return P(o)&&j(t,e[n]),r}),W=/^\d+$/,q=t=>new Set(u(t)||l(t)?t:[t]),B=e=>{let a;const[s,n]=(()=>{const e=[];let a=0;return[s=>(s?M(e):null)??t+a++,t=>{W.test(t)&&h(e)<1e3&&C(e,t)}]})(),o=x();return[(n,r,i,c=[],l=()=>[])=>{a??=e();const g=s(1);var d,y;return j(o,g,[n,r,i,c,l]),d=U(r,i??[t],q),y=g,d?.add(y),g},(e,s,...n)=>p(((e,a=[t])=>{const s=[],n=(t,e)=>e==h(a)?C(s,t):g(a[e])?H(t,t=>n(t,e+1)):p([a[e],null],a=>n($(t,a),e+1));return n(e,0),s})(e,s),t=>H(t,t=>$(o,t)[0](a,...s??[],...n))),e=>y($(o,e),([,a,s])=>(U(a,s??[t],void 0,t=>(D(t,e),P(t)?1:0)),j(o,e),n(e),s)),t=>y($(o,t),([t,,e=[],s,n])=>{const o=(...r)=>{const i=h(r);i==h(e)?t(a,...r,...n(r)):g(e[i])?p(s[i]?.(...r)??[],t=>o(...r,t)):o(...r,e[i])};o()})]},G=JSON.stringify,K=JSON.parse,Q=(t,e)=>{const a=t.indexOf("\n");-1!==a&&e(w(t,0,a),w(t,a+1))},X=(t,e)=>t+"\n"+e,Y=a("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),Z=o.crypto?t=>o.crypto.getRandomValues(t):t=>f(t,()=>i(256*r.random())),_=(e=16)=>b(Z(new Uint8Array(e)),(t,e)=>t+Y[63&e],t),tt=(t,e)=>e?[t,e]:[t],et=(t,e)=>((t??"")>(e??"")?t:e)??"",at=(t="")=>tt(((t=[])=>k.fromEntries(t))(),t),st=x(),nt=x(),ot=/\/([^?]*)/,rt=(a,n,o)=>{const r=x(),i=x(),c=x(),d=x(),[w,h,b]=B(()=>k),m=async t=>{await(t[1]?.destroy()),await(t[2]?.destroy())},T=(e,a,s)=>n=>Q(n,(n,o)=>{const r=X(e,o);var i;n===t?("S"!==e&&s[3]?.(r),i=(t,a)=>t!==e?a.send(r):0,H(a,(t,e)=>i(e,t))):"S"===n?s[3]?.(r):$(a,n)?.send(r)});a.on("connection",(a,w)=>{return y((f=w.url,b=ot,f?.match(b)),([,f])=>y(w.headers["sec-websocket-key"],async w=>{const b=F(c,f,x),A=F(d,f,()=>[0]),L=T(w,b,A);P(b)&&(h(r,void 0,f,1),await(async(e,a,r)=>y(await(n?.(a)),a=>{e[0]=1,e[1]=u(a)?a[0]:a;const n=T("S",r,e);e[2]=((e,a,n,o,r,i,c,d,w={})=>{let h,p=0,f=0,b=0;const A=x(),L=()=>_(11),m=(t,e,s,n)=>{f++,a(t,e,s,n)},P=async(t,e,a,n)=>new s((s,o)=>{const i=n+"."+_(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{D(A,i),o(`No response from ${t??"anyone"} to ${i}, `+e)},r);j(A,i,[t,(t,e)=>{clearTimeout(c),D(A,i),s([t,e,n])}]),m(t,i,e,a)}),T=(t,[e,a])=>{N(e,([e,a],s)=>{const n=V(t[0],s,at);N(e,([t,e],a)=>{const s=V(n[0],a,at);N(t,([t,e],a)=>s[0][a]=tt(t,e)),s[1]=et(s[1],e)}),n[1]=et(n[1],a)}),t[1]=et(t[1],a)},H=(a=null,s,n=L())=>S(async()=>{l(s)&&([s,a,n]=await P(null,1,t,n));const[o,r]=s,[i,c]=e.getMergeableContentHashes();let g=at();if(i!=o){const[t,s]=(await P(a,4,e.getMergeableTableHashes(),n))[0];if(g=t,!R(s)){const[t,o]=(await P(a,5,e.getMergeableRowHashes(s),n))[0];if(T(g,t),!R(o)){const t=(await P(a,6,e.getMergeableCellHashes(o),n))[0];T(g,t)}}}return[g,c==r?at():(await P(a,7,e.getMergeableValueHashes(),n))[0],1]},d),k=((t,e,a,s,n,o,r,i={},c=0,g=[])=>{let d,y,w,h=0,p=0,f=0;F(st,g,()=>0),F(nt,g,()=>[]);const b=x(),[A,L,m,P,T]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!R(t)||!R(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!R(t)||!R(e),e.setContent]:v("Store type not supported by this Persister"))(r,t,c),[H,D,k]=B(()=>K),O=t=>{t!=h&&(h=t,D(b,void 0,h))},E=e=>{(A&&u(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},I=async t=>(2!=h&&(O(1),p++,await G(async()=>{await S(async()=>{const a=await e();u(a)?E(a):t?T(t):v("Content is not an array: "+a)},()=>{t&&T(t)}),O(0)})),K),N=async t=>(V(),await I(t),await S(async()=>y=await s(async(t,e)=>{e||t?2!=h&&(O(1),p++,E(e??t),O(0)):await I()}),o),K),V=async()=>(y&&(await S(()=>n(y),o),y=void 0),K),J=async t=>(1!=h&&(O(2),f++,await G(async()=>{await S(()=>a(L,t),o),O(0)})),K),U=async()=>(W(),await J(),w=t.addDidFinishTransactionListener(()=>{const t=m();P(t)&&J(t)}),K),W=async()=>(w&&(t.delListener(w),w=void 0),K),q=async(t=!1)=>{const[e,a]=t?[W,V]:[V,W];return await e(),await a(),K},G=async(...t)=>(C($(nt,g),...t),await(async()=>{if(!$(st,g)){for(j(st,g,1);!l(d=M($(nt,g)));)await S(d,o);j(st,g,0)}})(),K),K={load:I,startAutoLoad:N,stopAutoLoad:V,isAutoLoading:()=>!l(y),save:J,startAutoSave:U,stopAutoSave:W,isAutoSaving:()=>!l(w),startAutoPersisting:async(t,e=!1)=>{const[a,s]=e?[U,N]:[N,U];return await a(t),await s(t),K},stopAutoPersisting:q,getStatus:()=>h,addStatusListener:t=>H(t,b),delListener:e=>(k(e),t),schedule:G,getStore:()=>t,destroy:()=>($(nt,g).splice(0,void 0),q()),getStats:()=>({loads:p,saves:f}),...i};return z(K)})(e,async()=>{const t=await H();return!t||R(t[0][0])&&R(t[1][0])?void 0:t},async(t,a)=>a?m(null,L(),3,a):m(null,L(),2,e.getMergeableContentHashes()),t=>h=t,()=>h=void 0,d,2,{startSync:async t=>(p=1,await k.startAutoPersisting(t)),stopSync:async()=>(p=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:f,receives:b}),...w},1);return n((t,a,s,n)=>{const o=p||k.isAutoLoading();b++,0==s?y($(A,a),([e,a])=>g(e)||e==t?a(n,t):0):2==s&&o?H(t,n,a??void 0).then(t=>{h?.(void 0,t)}).catch(d):3==s&&o?h?.(void 0,n):y(1==s&&(p||k.isAutoSaving())?e.getMergeableContentHashes():4==s?e.getMergeableTableDiff(n):5==s?e.getMergeableRowDiff(n):6==s?e.getMergeableCellDiff(n):7==s?e.getMergeableValueDiff(n):void 0,e=>{m(t,a,0,e)})}),k})(e[1].getStore(),(e,a,s,o)=>n(((e,...a)=>X(e??t,G(a,(t,e)=>l(e)?"":e)))(e,a,s,o)),t=>e[3]=e=>((t,e)=>Q(t,(t,a)=>{return e(t,...(s=a,K(s,(t,e)=>""===e?void 0:e)));var s}))(e,t),0,1,0,0,o),e[4]=[],e[5]=u(a)?a[1]:t=>0}))(A,f,b)),j(b,w,a),h(i,[f],w,1),a.on("message",t=>{const e=t.toString("utf8");0==A[0]?L(e):C(A[4],e)}),1==A[0]&&(await(async t=>{t[0]=2,await t[1].schedule(t[1].startAutoLoad,t[1].startAutoSave,t[2].startSync),t[5](t[1].getStore()),t[0]=0})(A),p(A[4],L),A[4]=[]),a.on("close",async()=>{D(b,w),h(i,[f],w,-1),P(b)&&(await m(A),D(d,f),D(c,f),h(r,void 0,f,-1))}),o&&a.on(e,o)}));var f,b}),o&&a.on(e,o);const k={getWebSocketServer:()=>a,getPathIds:()=>J(c),getClientIds:t=>J($(c,t)),addPathIdsListener:t=>w(t,r),addClientIdsListener:(t,e)=>w(e,i,[t]),delListener:t=>(b(t),k),getStats:()=>({paths:A(c),clients:L(c)}),destroy:async()=>{var t,e;c.clear(),await(async t=>s.all(t))((t=d,e=m,f([...t?.entries()??[]],([t,a])=>e(a,t)))),a.close()}};return z(k)};export{rt as createWsServer};
@@ -1 +1 @@
1
- import{DurableObject as t}from"cloudflare:workers";const e="",s=(t,e="",s)=>t.split(e,s),a=Promise,n=t=>(e,s,a)=>t(e)?a?.():s(e),r=globalThis,i=(t,e=0)=>setTimeout(t,1e3*e),o=Math,c=o.floor,l=t=>null==t,g=t=>void 0===t,u=t=>null===t,d=n(l),h=n(g),y=t=>Array.isArray(t),w=(t,e,s)=>t.slice(e,s),v=t=>t.length,C=t=>{throw Error(t)},p=async(t,e,s)=>{try{return await t()}catch(t){e?.(t)}},S=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),f=(t,...e)=>t.push(...e),M=t=>t.shift(),A=Object,m=t=>A.getPrototypeOf(t),P=A.entries,k=A.keys,T=A.freeze,x=(t,e)=>S(P(t),([t,s])=>e(s,t)),L=t=>(t=>!l(t)&&d(m(t),t=>t==A.prototype||l(m(t)),()=>!0))(t)&&0==(t=>v(k(t)))(t),I=(t,e,s)=>(((t,e)=>e in t)(t,e)||(t[e]=s()),t[e]),H=JSON.stringify,D=JSON.parse,O=(t,e)=>{const s=t.indexOf("\n");-1!==s&&e(w(t,0,s),w(t,s+1))},R=(t,...s)=>E(t??e,H(s,(t,e)=>void 0===e?"":e)),E=(t,e)=>t+"\n"+e,N=t=>g(t)||0==(t=>t?.size??0)(t),W=(t,e)=>t?.forEach(e),z=(t,e)=>t?.delete(e),U=t=>new Map(t),V=(t,e)=>t?.get(e),F=(t,e,s)=>void 0===s?(z(t,e),t):t?.set(e,s),J=(t,e,s,a)=>{var n,r;return n=t,r=e,n?.has(r)?a?.(V(t,e)):F(t,e,s()),V(t,e)},$=(t,e,s,a,n=0)=>h((s?J:V)(t,e[n],n>v(e)-2?s:U),r=>{if(n>v(e)-2)return a?.(r)&&F(t,e[n]),r;const i=$(r,e,s,a,n+1);return N(r)&&F(t,e[n]),i}),j=s("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),q=r.crypto?t=>r.crypto.getRandomValues(t):t=>b(t,()=>c(256*o.random())),B=(t=16)=>{return e=(t,e)=>t+j[63&e],q(new Uint8Array(t)).reduce(e,"");var e},G=(t,e)=>e?[t,e]:[t],K=(t,e)=>((t??"")>(e??"")?t:e)??"",Q=(t="")=>G(((t=[])=>A.fromEntries(t))(),t),X=/^\d+$/,Y=t=>new Set(y(t)||g(t)?t:[t]),Z=U(),_=U(),tt=(t,s,a,n,r,i,o,c={},l=0,d=[])=>{let w,b,A,m=0,P=0,k=0;J(Z,d,()=>0),J(_,d,()=>[]);const x=U(),[I,H,D,O,R]=((t=1,e,s)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!s),([[t],[e]])=>!L(t)||!L(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!L(t)||!L(e),e.setContent]:C("Store type not supported by this Persister"))(o,t,l),[E,j,q]=(()=>{let t;const[s,a]=(()=>{const t=[];let s=0;return[a=>(a?M(t):null)??e+s++,e=>{X.test(e)&&v(t)<1e3&&f(t,e)}]})(),n=U();return[(a,r,i,o=[],c=()=>[])=>{t??=it;const l=s(1);var g,u;return F(n,l,[a,r,i,o,c]),g=$(r,i??[e],Y),u=l,g?.add(u),l},(s,a,...r)=>S(((t,s=[e])=>{const a=[],n=(t,e)=>e==v(s)?f(a,t):null===s[e]?W(t,t=>n(t,e+1)):S([s[e],null],s=>n(V(t,s),e+1));return n(t,0),a})(s,a),e=>W(e,e=>V(n,e)[0](t,...a??[],...r))),t=>h(V(n,t),([,s,r])=>($(s,r??[e],void 0,e=>(z(e,t),N(e)?1:0)),F(n,t),a(t),r)),e=>h(V(n,e),([e,,s=[],a,n])=>{const r=(...i)=>{const o=v(i);o==v(s)?e(t,...i,...n(i)):u(s[o])?S(a[o]?.(...i)??[],t=>r(...i,t)):r(...i,s[o])};r()})]})(),B=t=>{t!=m&&(m=t,j(x,void 0,m))},G=e=>{(I&&y(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},K=async t=>(2!=m&&(B(1),P++,await rt(async()=>{await p(async()=>{const e=await s();y(e)?G(e):t?R(t):C("Content is not an array: "+e)},()=>{t&&R(t)}),B(0)})),it),Q=async t=>(tt(),await K(t),await p(async()=>b=await n(async(t,e)=>{e||t?2!=m&&(B(1),P++,G(e??t),B(0)):await K()}),i),it),tt=async()=>(b&&(await p(()=>r(b),i),b=void 0),it),et=async t=>(1!=m&&(B(2),k++,await rt(async()=>{await p(()=>a(H,t),i),B(0)})),it),st=async()=>(at(),await et(),A=t.addDidFinishTransactionListener(()=>{const t=D();O(t)&&et(t)}),it),at=async()=>(A&&(t.delListener(A),A=void 0),it),nt=async(t=!1)=>{const[e,s]=t?[at,tt]:[tt,at];return await e(),await s(),it},rt=async(...t)=>(f(V(_,d),...t),await(async()=>{if(!V(Z,d)){for(F(Z,d,1);!g(w=M(V(_,d)));)await p(w,i);F(Z,d,0)}})(),it),it={load:K,startAutoLoad:Q,stopAutoLoad:tt,isAutoLoading:()=>!g(b),save:et,startAutoSave:st,stopAutoSave:at,isAutoSaving:()=>!g(A),startAutoPersisting:async(t,e=!1)=>{const[s,a]=e?[st,Q]:[Q,st];return await s(t),await a(t),it},stopAutoPersisting:nt,getStatus:()=>m,addStatusListener:t=>E(t,x),delListener:e=>(q(e),t),schedule:rt,getStore:()=>t,destroy:()=>(V(_,d).splice(0,void 0),nt()),getStats:()=>({loads:P,saves:k}),...c};return T(it)},et=/\/([^?]*)/,st="S",at=t=>{return(s=new URL(t.url).pathname,a=et,s?.match(a))?.[1]??e;var s,a},nt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,rt=(t,e=null,s=null)=>new Response(s,{status:t,webSocket:e}),it=()=>rt(426,null,"Upgrade required");class ot extends t{#t;constructor(t,s){super(t,s),this.ctx.blockConcurrencyWhile(async()=>await h(await this.createPersister(),async t=>{const s=((t,s,n,r,o,c,l,d,y={})=>{let w,v=0,C=0,S=0;const b=U(),f=()=>B(11),M=(t,e,a,n)=>{C++,s(t,e,a,n)},A=async(t,e,s,n)=>new a((a,r)=>{const c=n+"."+B(4),l=i(()=>{z(b,c),r(`No response from ${t??"anyone"} to ${c}, `+e)},o);F(b,c,[t,(t,e)=>{clearTimeout(l),z(b,c),a([t,e,n])}]),M(t,c,e,s)}),m=(t,[e,s])=>{x(e,([e,s],a)=>{const n=I(t[0],a,Q);x(e,([t,e],s)=>{const a=I(n[0],s,Q);x(t,([t,e],s)=>a[0][s]=G(t,e)),a[1]=K(a[1],e)}),n[1]=K(n[1],s)}),t[1]=K(t[1],s)},P=(s=null,a,n=f())=>p(async()=>{g(a)&&([a,s,n]=await A(null,1,e,n));const[r,i]=a,[o,c]=t.getMergeableContentHashes();let l=Q();if(o!=r){const[e,a]=(await A(s,4,t.getMergeableTableHashes(),n))[0];if(l=e,!L(a)){const[e,r]=(await A(s,5,t.getMergeableRowHashes(a),n))[0];if(m(l,e),!L(r)){const e=(await A(s,6,t.getMergeableCellHashes(r),n))[0];m(l,e)}}}return[l,c==i?Q():(await A(s,7,t.getMergeableValueHashes(),n))[0],1]},d),k=tt(t,async()=>{const t=await P();return!t||L(t[0][0])&&L(t[1][0])?void 0:t},async(e,s)=>s?M(null,f(),3,s):M(null,f(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,d,2,{startSync:async t=>(v=1,await k.startAutoPersisting(t)),stopSync:async()=>(v=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:C,receives:S}),...y},1);return n((e,s,a,n)=>{const r=v||k.isAutoLoading();S++,0==a?h(V(b,s),([t,s])=>u(t)||t==e?s(n,e):0):2==a&&r?P(e,n,s??void 0).then(t=>{w?.(void 0,t)}).catch(d):3==a&&r?w?.(void 0,n):h(1==a&&(v||k.isAutoSaving())?t.getMergeableContentHashes():4==a?t.getMergeableTableDiff(n):5==a?t.getMergeableRowDiff(n):6==a?t.getMergeableCellDiff(n):7==a?t.getMergeableValueDiff(n):void 0,t=>{M(e,s,0,t)})}),k})(t.getStore(),(t,e,s,a)=>this.#e(st,R(t,e,s,a)),t=>this.#t=e=>((t,e)=>O(t,(t,s)=>{return e(t,...(a=s,D(a,(t,e)=>""===e?void 0:e)));var a}))(e,t),0,1);await t.load(),await t.startAutoSave(),i(s.startSync)}))}fetch(t){const s=at(t);return h(nt(t),t=>{const[a,n]=(r=new WebSocketPair,A.values(r));var r,i;return i=this.#s(),0==v(i)&&this.onPathId(s,1),this.ctx.acceptWebSocket(n,[t,s]),this.onClientId(s,t,1),n.send(R(st,null,1,e)),rt(101,a)},it)}webSocketMessage(t,e){h(this.ctx.getTags(t)[0],s=>this.#e(s,e.toString(),t))}webSocketClose(t){const[e,s]=this.ctx.getTags(t);this.onClientId(s,e,-1),1==v(this.#s())&&this.onPathId(s,-1)}#e(t,s,a){O(s.toString(),(s,n)=>{const r=E(t,n);this.onMessage(t,s,n),s==e?(t!=st&&this.#t?.(r),S(this.#s(),t=>{t!=a&&t.send(r)})):s==st?this.#t?.(r):s!=t&&this.#s(s)[0]?.send(r)})}#s(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return this.ctx.getTags(this.#s()[0])?.[1]}getClientIds(){return b(this.#s(),t=>this.ctx.getTags(t)[0])}onPathId(t,e){}onClientId(t,e,s){}onMessage(t,e,s){}}const ct=t=>(e,s)=>nt(e)?s[t].get(s[t].idFromName(at(e))).fetch(e):it();export{ot as WsServerDurableObject,ct as getWsServerDurableObjectFetch};
1
+ import{DurableObject as t}from"cloudflare:workers";const e="",s=(t,e="",s)=>t.split(e,s),a=Promise,n=t=>(e,s,a)=>t(e)?a?.():s(e),r=globalThis,i=(t,e=0)=>setTimeout(t,1e3*e),o=Math,c=o.floor,l=t=>null==t,g=t=>void 0===t,u=t=>null===t,d=n(l),h=n(g),y=t=>Array.isArray(t),w=(t,e,s)=>t.slice(e,s),C=t=>t.length,p=t=>{throw Error(t)},S=async(t,e,s)=>{try{return await t()}catch(t){e?.(t)}},v=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),f=(t,...e)=>t.push(...e),M=t=>t.shift(),A=Object,m=t=>A.getPrototypeOf(t),P=A.entries,k=A.keys,T=A.freeze,x=(t,e)=>v(P(t),([t,s])=>e(s,t)),L=t=>(t=>!l(t)&&d(m(t),t=>t==A.prototype||l(m(t)),()=>!0))(t)&&0==(t=>C(k(t)))(t),I=(t,e,s)=>(((t,e)=>e in t)(t,e)||(t[e]=s()),t[e]),H=JSON.stringify,D=JSON.parse,O=(t,e)=>{const s=t.indexOf("\n");-1!==s&&e(w(t,0,s),w(t,s+1))},R=(t,...s)=>E(t??e,H(s,(t,e)=>g(e)?"":e)),E=(t,e)=>t+"\n"+e,N=t=>g(t)||0==(t=>t?.size??0)(t),W=(t,e)=>t?.forEach(e),z=(t,e)=>t?.delete(e),U=t=>new Map(t),V=(t,e)=>t?.get(e),F=(t,e,s)=>g(s)?(z(t,e),t):t?.set(e,s),J=(t,e,s,a)=>{var n,r;return n=t,r=e,n?.has(r)?a?.(V(t,e)):F(t,e,s()),V(t,e)},$=(t,e,s,a,n=0)=>h((s?J:V)(t,e[n],n>C(e)-2?s:U),r=>{if(n>C(e)-2)return a?.(r)&&F(t,e[n]),r;const i=$(r,e,s,a,n+1);return N(r)&&F(t,e[n]),i}),j=s("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),q=r.crypto?t=>r.crypto.getRandomValues(t):t=>b(t,()=>c(256*o.random())),B=(t=16)=>{return e=(t,e)=>t+j[63&e],q(new Uint8Array(t)).reduce(e,"");var e},G=(t,e)=>e?[t,e]:[t],K=(t,e)=>((t??"")>(e??"")?t:e)??"",Q=(t="")=>G(((t=[])=>A.fromEntries(t))(),t),X=/^\d+$/,Y=t=>new Set(y(t)||g(t)?t:[t]),Z=U(),_=U(),tt=(t,s,a,n,r,i,o,c={},l=0,d=[])=>{let w,b,A,m=0,P=0,k=0;J(Z,d,()=>0),J(_,d,()=>[]);const x=U(),[I,H,D,O,R]=((t=1,e,s)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!s),([[t],[e]])=>!L(t)||!L(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!L(t)||!L(e),e.setContent]:p("Store type not supported by this Persister"))(o,t,l),[E,j,q]=(()=>{let t;const[s,a]=(()=>{const t=[];let s=0;return[a=>(a?M(t):null)??e+s++,e=>{X.test(e)&&C(t)<1e3&&f(t,e)}]})(),n=U();return[(a,r,i,o=[],c=()=>[])=>{t??=it;const l=s(1);var g,u;return F(n,l,[a,r,i,o,c]),g=$(r,i??[e],Y),u=l,g?.add(u),l},(s,a,...r)=>v(((t,s=[e])=>{const a=[],n=(t,e)=>e==C(s)?f(a,t):u(s[e])?W(t,t=>n(t,e+1)):v([s[e],null],s=>n(V(t,s),e+1));return n(t,0),a})(s,a),e=>W(e,e=>V(n,e)[0](t,...a??[],...r))),t=>h(V(n,t),([,s,r])=>($(s,r??[e],void 0,e=>(z(e,t),N(e)?1:0)),F(n,t),a(t),r)),e=>h(V(n,e),([e,,s=[],a,n])=>{const r=(...i)=>{const o=C(i);o==C(s)?e(t,...i,...n(i)):u(s[o])?v(a[o]?.(...i)??[],t=>r(...i,t)):r(...i,s[o])};r()})]})(),B=t=>{t!=m&&(m=t,j(x,void 0,m))},G=e=>{(I&&y(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},K=async t=>(2!=m&&(B(1),P++,await rt(async()=>{await S(async()=>{const e=await s();y(e)?G(e):t?R(t):p("Content is not an array: "+e)},()=>{t&&R(t)}),B(0)})),it),Q=async t=>(tt(),await K(t),await S(async()=>b=await n(async(t,e)=>{e||t?2!=m&&(B(1),P++,G(e??t),B(0)):await K()}),i),it),tt=async()=>(b&&(await S(()=>r(b),i),b=void 0),it),et=async t=>(1!=m&&(B(2),k++,await rt(async()=>{await S(()=>a(H,t),i),B(0)})),it),st=async()=>(at(),await et(),A=t.addDidFinishTransactionListener(()=>{const t=D();O(t)&&et(t)}),it),at=async()=>(A&&(t.delListener(A),A=void 0),it),nt=async(t=!1)=>{const[e,s]=t?[at,tt]:[tt,at];return await e(),await s(),it},rt=async(...t)=>(f(V(_,d),...t),await(async()=>{if(!V(Z,d)){for(F(Z,d,1);!g(w=M(V(_,d)));)await S(w,i);F(Z,d,0)}})(),it),it={load:K,startAutoLoad:Q,stopAutoLoad:tt,isAutoLoading:()=>!g(b),save:et,startAutoSave:st,stopAutoSave:at,isAutoSaving:()=>!g(A),startAutoPersisting:async(t,e=!1)=>{const[s,a]=e?[st,Q]:[Q,st];return await s(t),await a(t),it},stopAutoPersisting:nt,getStatus:()=>m,addStatusListener:t=>E(t,x),delListener:e=>(q(e),t),schedule:rt,getStore:()=>t,destroy:()=>(V(_,d).splice(0,void 0),nt()),getStats:()=>({loads:P,saves:k}),...c};return T(it)},et=/\/([^?]*)/,st="S",at=t=>{return(s=new URL(t.url).pathname,a=et,s?.match(a))?.[1]??e;var s,a},nt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,rt=(t,e=null,s=null)=>new Response(s,{status:t,webSocket:e}),it=()=>rt(426,null,"Upgrade required");class ot extends t{#t;constructor(t,s){super(t,s),this.ctx.blockConcurrencyWhile(async()=>await h(await this.createPersister(),async t=>{const s=((t,s,n,r,o,c,l,d,y={})=>{let w,C=0,p=0,v=0;const b=U(),f=()=>B(11),M=(t,e,a,n)=>{p++,s(t,e,a,n)},A=async(t,e,s,n)=>new a((a,r)=>{const c=n+"."+B(4),l=i(()=>{z(b,c),r(`No response from ${t??"anyone"} to ${c}, `+e)},o);F(b,c,[t,(t,e)=>{clearTimeout(l),z(b,c),a([t,e,n])}]),M(t,c,e,s)}),m=(t,[e,s])=>{x(e,([e,s],a)=>{const n=I(t[0],a,Q);x(e,([t,e],s)=>{const a=I(n[0],s,Q);x(t,([t,e],s)=>a[0][s]=G(t,e)),a[1]=K(a[1],e)}),n[1]=K(n[1],s)}),t[1]=K(t[1],s)},P=(s=null,a,n=f())=>S(async()=>{g(a)&&([a,s,n]=await A(null,1,e,n));const[r,i]=a,[o,c]=t.getMergeableContentHashes();let l=Q();if(o!=r){const[e,a]=(await A(s,4,t.getMergeableTableHashes(),n))[0];if(l=e,!L(a)){const[e,r]=(await A(s,5,t.getMergeableRowHashes(a),n))[0];if(m(l,e),!L(r)){const e=(await A(s,6,t.getMergeableCellHashes(r),n))[0];m(l,e)}}}return[l,c==i?Q():(await A(s,7,t.getMergeableValueHashes(),n))[0],1]},d),k=tt(t,async()=>{const t=await P();return!t||L(t[0][0])&&L(t[1][0])?void 0:t},async(e,s)=>s?M(null,f(),3,s):M(null,f(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,d,2,{startSync:async t=>(C=1,await k.startAutoPersisting(t)),stopSync:async()=>(C=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:p,receives:v}),...y},1);return n((e,s,a,n)=>{const r=C||k.isAutoLoading();v++,0==a?h(V(b,s),([t,s])=>u(t)||t==e?s(n,e):0):2==a&&r?P(e,n,s??void 0).then(t=>{w?.(void 0,t)}).catch(d):3==a&&r?w?.(void 0,n):h(1==a&&(C||k.isAutoSaving())?t.getMergeableContentHashes():4==a?t.getMergeableTableDiff(n):5==a?t.getMergeableRowDiff(n):6==a?t.getMergeableCellDiff(n):7==a?t.getMergeableValueDiff(n):void 0,t=>{M(e,s,0,t)})}),k})(t.getStore(),(t,e,s,a)=>this.#e(st,R(t,e,s,a)),t=>this.#t=e=>((t,e)=>O(t,(t,s)=>{return e(t,...(a=s,D(a,(t,e)=>""===e?void 0:e)));var a}))(e,t),0,1);await t.load(),await t.startAutoSave(),i(s.startSync)}))}fetch(t){const s=at(t);return h(nt(t),t=>{const[a,n]=(r=new WebSocketPair,A.values(r));var r,i;return i=this.#s(),0==C(i)&&this.onPathId(s,1),this.ctx.acceptWebSocket(n,[t,s]),this.onClientId(s,t,1),n.send(R(st,null,1,e)),rt(101,a)},it)}webSocketMessage(t,e){h(this.ctx.getTags(t)[0],s=>this.#e(s,e.toString(),t))}webSocketClose(t){const[e,s]=this.ctx.getTags(t);this.onClientId(s,e,-1),1==C(this.#s())&&this.onPathId(s,-1)}#e(t,s,a){O(s.toString(),(s,n)=>{const r=E(t,n);this.onMessage(t,s,n),s==e?(t!=st&&this.#t?.(r),v(this.#s(),t=>{t!=a&&t.send(r)})):s==st?this.#t?.(r):s!=t&&this.#s(s)[0]?.send(r)})}#s(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return this.ctx.getTags(this.#s()[0])?.[1]}getClientIds(){return b(this.#s(),t=>this.ctx.getTags(t)[0])}onPathId(t,e){}onClientId(t,e,s){}onMessage(t,e,s){}}const ct=t=>(e,s)=>nt(e)?s[t].get(s[t].idFromName(at(e))).fetch(e):it();export{ot as WsServerDurableObject,ct as getWsServerDurableObjectFetch};
@@ -1 +1 @@
1
- import{DurableObject as t}from"cloudflare:workers";const e="",s=(t,e="",s)=>t.split(e,s),a=Promise,n=t=>(e,s,a)=>t(e)?a?.():s(e),r=globalThis,i=(t,e=0)=>setTimeout(t,1e3*e),o=Math,c=o.floor,l=t=>null==t,g=t=>void 0===t,u=t=>null===t,d=n(l),h=n(g),y=t=>Array.isArray(t),w=(t,e,s)=>t.slice(e,s),v=t=>t.length,C=t=>{throw Error(t)},p=async(t,e,s)=>{try{return await t()}catch(t){e?.(t)}},S=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),f=(t,...e)=>t.push(...e),M=t=>t.shift(),A=Object,m=t=>A.getPrototypeOf(t),P=A.entries,k=A.keys,T=A.freeze,x=(t,e)=>S(P(t),([t,s])=>e(s,t)),L=t=>(t=>!l(t)&&d(m(t),t=>t==A.prototype||l(m(t)),()=>!0))(t)&&0==(t=>v(k(t)))(t),I=(t,e,s)=>(((t,e)=>e in t)(t,e)||(t[e]=s()),t[e]),H=JSON.stringify,D=JSON.parse,O=(t,e)=>{const s=t.indexOf("\n");-1!==s&&e(w(t,0,s),w(t,s+1))},R=(t,...s)=>E(t??e,H(s,(t,e)=>void 0===e?"":e)),E=(t,e)=>t+"\n"+e,N=t=>g(t)||0==(t=>t?.size??0)(t),W=(t,e)=>t?.forEach(e),z=(t,e)=>t?.delete(e),U=t=>new Map(t),V=(t,e)=>t?.get(e),F=(t,e,s)=>void 0===s?(z(t,e),t):t?.set(e,s),J=(t,e,s,a)=>{var n,r;return n=t,r=e,n?.has(r)?a?.(V(t,e)):F(t,e,s()),V(t,e)},$=(t,e,s,a,n=0)=>h((s?J:V)(t,e[n],n>v(e)-2?s:U),r=>{if(n>v(e)-2)return a?.(r)&&F(t,e[n]),r;const i=$(r,e,s,a,n+1);return N(r)&&F(t,e[n]),i}),j=s("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),q=r.crypto?t=>r.crypto.getRandomValues(t):t=>b(t,()=>c(256*o.random())),B=(t=16)=>{return e=(t,e)=>t+j[63&e],q(new Uint8Array(t)).reduce(e,"");var e},G=(t,e)=>e?[t,e]:[t],K=(t,e)=>((t??"")>(e??"")?t:e)??"",Q=(t="")=>G(((t=[])=>A.fromEntries(t))(),t),X=/^\d+$/,Y=t=>new Set(y(t)||g(t)?t:[t]),Z=U(),_=U(),tt=(t,s,a,n,r,i,o,c={},l=0,d=[])=>{let w,b,A,m=0,P=0,k=0;J(Z,d,()=>0),J(_,d,()=>[]);const x=U(),[I,H,D,O,R]=((t=1,e,s)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!s),([[t],[e]])=>!L(t)||!L(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!L(t)||!L(e),e.setContent]:C("Store type not supported by this Persister"))(o,t,l),[E,j,q]=(()=>{let t;const[s,a]=(()=>{const t=[];let s=0;return[a=>(a?M(t):null)??e+s++,e=>{X.test(e)&&v(t)<1e3&&f(t,e)}]})(),n=U();return[(a,r,i,o=[],c=()=>[])=>{t??=it;const l=s(1);var g,u;return F(n,l,[a,r,i,o,c]),g=$(r,i??[e],Y),u=l,g?.add(u),l},(s,a,...r)=>S(((t,s=[e])=>{const a=[],n=(t,e)=>e==v(s)?f(a,t):null===s[e]?W(t,t=>n(t,e+1)):S([s[e],null],s=>n(V(t,s),e+1));return n(t,0),a})(s,a),e=>W(e,e=>V(n,e)[0](t,...a??[],...r))),t=>h(V(n,t),([,s,r])=>($(s,r??[e],void 0,e=>(z(e,t),N(e)?1:0)),F(n,t),a(t),r)),e=>h(V(n,e),([e,,s=[],a,n])=>{const r=(...i)=>{const o=v(i);o==v(s)?e(t,...i,...n(i)):u(s[o])?S(a[o]?.(...i)??[],t=>r(...i,t)):r(...i,s[o])};r()})]})(),B=t=>{t!=m&&(m=t,j(x,void 0,m))},G=e=>{(I&&y(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},K=async t=>(2!=m&&(B(1),P++,await rt(async()=>{await p(async()=>{const e=await s();y(e)?G(e):t?R(t):C("Content is not an array: "+e)},()=>{t&&R(t)}),B(0)})),it),Q=async t=>(tt(),await K(t),await p(async()=>b=await n(async(t,e)=>{e||t?2!=m&&(B(1),P++,G(e??t),B(0)):await K()}),i),it),tt=async()=>(b&&(await p(()=>r(b),i),b=void 0),it),et=async t=>(1!=m&&(B(2),k++,await rt(async()=>{await p(()=>a(H,t),i),B(0)})),it),st=async()=>(at(),await et(),A=t.addDidFinishTransactionListener(()=>{const t=D();O(t)&&et(t)}),it),at=async()=>(A&&(t.delListener(A),A=void 0),it),nt=async(t=!1)=>{const[e,s]=t?[at,tt]:[tt,at];return await e(),await s(),it},rt=async(...t)=>(f(V(_,d),...t),await(async()=>{if(!V(Z,d)){for(F(Z,d,1);!g(w=M(V(_,d)));)await p(w,i);F(Z,d,0)}})(),it),it={load:K,startAutoLoad:Q,stopAutoLoad:tt,isAutoLoading:()=>!g(b),save:et,startAutoSave:st,stopAutoSave:at,isAutoSaving:()=>!g(A),startAutoPersisting:async(t,e=!1)=>{const[s,a]=e?[st,Q]:[Q,st];return await s(t),await a(t),it},stopAutoPersisting:nt,getStatus:()=>m,addStatusListener:t=>E(t,x),delListener:e=>(q(e),t),schedule:rt,getStore:()=>t,destroy:()=>(V(_,d).splice(0,void 0),nt()),getStats:()=>({loads:P,saves:k}),...c};return T(it)},et=/\/([^?]*)/,st="S",at=t=>{return(s=new URL(t.url).pathname,a=et,s?.match(a))?.[1]??e;var s,a},nt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,rt=(t,e=null,s=null)=>new Response(s,{status:t,webSocket:e}),it=()=>rt(426,null,"Upgrade required");class ot extends t{#t;constructor(t,s){super(t,s),this.ctx.blockConcurrencyWhile(async()=>await h(await this.createPersister(),async t=>{const s=((t,s,n,r,o,c,l,d,y={})=>{let w,v=0,C=0,S=0;const b=U(),f=()=>B(11),M=(t,e,a,n)=>{C++,s(t,e,a,n)},A=async(t,e,s,n)=>new a((a,r)=>{const c=n+"."+B(4),l=i(()=>{z(b,c),r(`No response from ${t??"anyone"} to ${c}, `+e)},o);F(b,c,[t,(t,e)=>{clearTimeout(l),z(b,c),a([t,e,n])}]),M(t,c,e,s)}),m=(t,[e,s])=>{x(e,([e,s],a)=>{const n=I(t[0],a,Q);x(e,([t,e],s)=>{const a=I(n[0],s,Q);x(t,([t,e],s)=>a[0][s]=G(t,e)),a[1]=K(a[1],e)}),n[1]=K(n[1],s)}),t[1]=K(t[1],s)},P=(s=null,a,n=f())=>p(async()=>{g(a)&&([a,s,n]=await A(null,1,e,n));const[r,i]=a,[o,c]=t.getMergeableContentHashes();let l=Q();if(o!=r){const[e,a]=(await A(s,4,t.getMergeableTableHashes(),n))[0];if(l=e,!L(a)){const[e,r]=(await A(s,5,t.getMergeableRowHashes(a),n))[0];if(m(l,e),!L(r)){const e=(await A(s,6,t.getMergeableCellHashes(r),n))[0];m(l,e)}}}return[l,c==i?Q():(await A(s,7,t.getMergeableValueHashes(),n))[0],1]},d),k=tt(t,async()=>{const t=await P();return!t||L(t[0][0])&&L(t[1][0])?void 0:t},async(e,s)=>s?M(null,f(),3,s):M(null,f(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,d,2,{startSync:async t=>(v=1,await k.startAutoPersisting(t)),stopSync:async()=>(v=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:C,receives:S}),...y},1);return n((e,s,a,n)=>{const r=v||k.isAutoLoading();S++,0==a?h(V(b,s),([t,s])=>u(t)||t==e?s(n,e):0):2==a&&r?P(e,n,s??void 0).then(t=>{w?.(void 0,t)}).catch(d):3==a&&r?w?.(void 0,n):h(1==a&&(v||k.isAutoSaving())?t.getMergeableContentHashes():4==a?t.getMergeableTableDiff(n):5==a?t.getMergeableRowDiff(n):6==a?t.getMergeableCellDiff(n):7==a?t.getMergeableValueDiff(n):void 0,t=>{M(e,s,0,t)})}),k})(t.getStore(),(t,e,s,a)=>this.#e(st,R(t,e,s,a)),t=>this.#t=e=>((t,e)=>O(t,(t,s)=>{return e(t,...(a=s,D(a,(t,e)=>""===e?void 0:e)));var a}))(e,t),0,1);await t.load(),await t.startAutoSave(),i(s.startSync)}))}fetch(t){const s=at(t);return h(nt(t),t=>{const[a,n]=(r=new WebSocketPair,A.values(r));var r,i;return i=this.#s(),0==v(i)&&this.onPathId(s,1),this.ctx.acceptWebSocket(n,[t,s]),this.onClientId(s,t,1),n.send(R(st,null,1,e)),rt(101,a)},it)}webSocketMessage(t,e){h(this.ctx.getTags(t)[0],s=>this.#e(s,e.toString(),t))}webSocketClose(t){const[e,s]=this.ctx.getTags(t);this.onClientId(s,e,-1),1==v(this.#s())&&this.onPathId(s,-1)}#e(t,s,a){O(s.toString(),(s,n)=>{const r=E(t,n);this.onMessage(t,s,n),s==e?(t!=st&&this.#t?.(r),S(this.#s(),t=>{t!=a&&t.send(r)})):s==st?this.#t?.(r):s!=t&&this.#s(s)[0]?.send(r)})}#s(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return this.ctx.getTags(this.#s()[0])?.[1]}getClientIds(){return b(this.#s(),t=>this.ctx.getTags(t)[0])}onPathId(t,e){}onClientId(t,e,s){}onMessage(t,e,s){}}const ct=t=>(e,s)=>nt(e)?s[t].get(s[t].idFromName(at(e))).fetch(e):it();export{ot as WsServerDurableObject,ct as getWsServerDurableObjectFetch};
1
+ import{DurableObject as t}from"cloudflare:workers";const e="",s=(t,e="",s)=>t.split(e,s),a=Promise,n=t=>(e,s,a)=>t(e)?a?.():s(e),r=globalThis,i=(t,e=0)=>setTimeout(t,1e3*e),o=Math,c=o.floor,l=t=>null==t,g=t=>void 0===t,u=t=>null===t,d=n(l),h=n(g),y=t=>Array.isArray(t),w=(t,e,s)=>t.slice(e,s),C=t=>t.length,p=t=>{throw Error(t)},S=async(t,e,s)=>{try{return await t()}catch(t){e?.(t)}},v=(t,e)=>t.forEach(e),b=(t,e)=>t.map(e),f=(t,...e)=>t.push(...e),M=t=>t.shift(),A=Object,m=t=>A.getPrototypeOf(t),P=A.entries,k=A.keys,T=A.freeze,x=(t,e)=>v(P(t),([t,s])=>e(s,t)),L=t=>(t=>!l(t)&&d(m(t),t=>t==A.prototype||l(m(t)),()=>!0))(t)&&0==(t=>C(k(t)))(t),I=(t,e,s)=>(((t,e)=>e in t)(t,e)||(t[e]=s()),t[e]),H=JSON.stringify,D=JSON.parse,O=(t,e)=>{const s=t.indexOf("\n");-1!==s&&e(w(t,0,s),w(t,s+1))},R=(t,...s)=>E(t??e,H(s,(t,e)=>g(e)?"":e)),E=(t,e)=>t+"\n"+e,N=t=>g(t)||0==(t=>t?.size??0)(t),W=(t,e)=>t?.forEach(e),z=(t,e)=>t?.delete(e),U=t=>new Map(t),V=(t,e)=>t?.get(e),F=(t,e,s)=>g(s)?(z(t,e),t):t?.set(e,s),J=(t,e,s,a)=>{var n,r;return n=t,r=e,n?.has(r)?a?.(V(t,e)):F(t,e,s()),V(t,e)},$=(t,e,s,a,n=0)=>h((s?J:V)(t,e[n],n>C(e)-2?s:U),r=>{if(n>C(e)-2)return a?.(r)&&F(t,e[n]),r;const i=$(r,e,s,a,n+1);return N(r)&&F(t,e[n]),i}),j=s("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),q=r.crypto?t=>r.crypto.getRandomValues(t):t=>b(t,()=>c(256*o.random())),B=(t=16)=>{return e=(t,e)=>t+j[63&e],q(new Uint8Array(t)).reduce(e,"");var e},G=(t,e)=>e?[t,e]:[t],K=(t,e)=>((t??"")>(e??"")?t:e)??"",Q=(t="")=>G(((t=[])=>A.fromEntries(t))(),t),X=/^\d+$/,Y=t=>new Set(y(t)||g(t)?t:[t]),Z=U(),_=U(),tt=(t,s,a,n,r,i,o,c={},l=0,d=[])=>{let w,b,A,m=0,P=0,k=0;J(Z,d,()=>0),J(_,d,()=>[]);const x=U(),[I,H,D,O,R]=((t=1,e,s)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!s),([[t],[e]])=>!L(t)||!L(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!L(t)||!L(e),e.setContent]:p("Store type not supported by this Persister"))(o,t,l),[E,j,q]=(()=>{let t;const[s,a]=(()=>{const t=[];let s=0;return[a=>(a?M(t):null)??e+s++,e=>{X.test(e)&&C(t)<1e3&&f(t,e)}]})(),n=U();return[(a,r,i,o=[],c=()=>[])=>{t??=it;const l=s(1);var g,u;return F(n,l,[a,r,i,o,c]),g=$(r,i??[e],Y),u=l,g?.add(u),l},(s,a,...r)=>v(((t,s=[e])=>{const a=[],n=(t,e)=>e==C(s)?f(a,t):u(s[e])?W(t,t=>n(t,e+1)):v([s[e],null],s=>n(V(t,s),e+1));return n(t,0),a})(s,a),e=>W(e,e=>V(n,e)[0](t,...a??[],...r))),t=>h(V(n,t),([,s,r])=>($(s,r??[e],void 0,e=>(z(e,t),N(e)?1:0)),F(n,t),a(t),r)),e=>h(V(n,e),([e,,s=[],a,n])=>{const r=(...i)=>{const o=C(i);o==C(s)?e(t,...i,...n(i)):u(s[o])?v(a[o]?.(...i)??[],t=>r(...i,t)):r(...i,s[o])};r()})]})(),B=t=>{t!=m&&(m=t,j(x,void 0,m))},G=e=>{(I&&y(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},K=async t=>(2!=m&&(B(1),P++,await rt(async()=>{await S(async()=>{const e=await s();y(e)?G(e):t?R(t):p("Content is not an array: "+e)},()=>{t&&R(t)}),B(0)})),it),Q=async t=>(tt(),await K(t),await S(async()=>b=await n(async(t,e)=>{e||t?2!=m&&(B(1),P++,G(e??t),B(0)):await K()}),i),it),tt=async()=>(b&&(await S(()=>r(b),i),b=void 0),it),et=async t=>(1!=m&&(B(2),k++,await rt(async()=>{await S(()=>a(H,t),i),B(0)})),it),st=async()=>(at(),await et(),A=t.addDidFinishTransactionListener(()=>{const t=D();O(t)&&et(t)}),it),at=async()=>(A&&(t.delListener(A),A=void 0),it),nt=async(t=!1)=>{const[e,s]=t?[at,tt]:[tt,at];return await e(),await s(),it},rt=async(...t)=>(f(V(_,d),...t),await(async()=>{if(!V(Z,d)){for(F(Z,d,1);!g(w=M(V(_,d)));)await S(w,i);F(Z,d,0)}})(),it),it={load:K,startAutoLoad:Q,stopAutoLoad:tt,isAutoLoading:()=>!g(b),save:et,startAutoSave:st,stopAutoSave:at,isAutoSaving:()=>!g(A),startAutoPersisting:async(t,e=!1)=>{const[s,a]=e?[st,Q]:[Q,st];return await s(t),await a(t),it},stopAutoPersisting:nt,getStatus:()=>m,addStatusListener:t=>E(t,x),delListener:e=>(q(e),t),schedule:rt,getStore:()=>t,destroy:()=>(V(_,d).splice(0,void 0),nt()),getStats:()=>({loads:P,saves:k}),...c};return T(it)},et=/\/([^?]*)/,st="S",at=t=>{return(s=new URL(t.url).pathname,a=et,s?.match(a))?.[1]??e;var s,a},nt=t=>"websocket"==t.headers.get("upgrade")?.toLowerCase()?t.headers.get("sec-websocket-key"):null,rt=(t,e=null,s=null)=>new Response(s,{status:t,webSocket:e}),it=()=>rt(426,null,"Upgrade required");class ot extends t{#t;constructor(t,s){super(t,s),this.ctx.blockConcurrencyWhile(async()=>await h(await this.createPersister(),async t=>{const s=((t,s,n,r,o,c,l,d,y={})=>{let w,C=0,p=0,v=0;const b=U(),f=()=>B(11),M=(t,e,a,n)=>{p++,s(t,e,a,n)},A=async(t,e,s,n)=>new a((a,r)=>{const c=n+"."+B(4),l=i(()=>{z(b,c),r(`No response from ${t??"anyone"} to ${c}, `+e)},o);F(b,c,[t,(t,e)=>{clearTimeout(l),z(b,c),a([t,e,n])}]),M(t,c,e,s)}),m=(t,[e,s])=>{x(e,([e,s],a)=>{const n=I(t[0],a,Q);x(e,([t,e],s)=>{const a=I(n[0],s,Q);x(t,([t,e],s)=>a[0][s]=G(t,e)),a[1]=K(a[1],e)}),n[1]=K(n[1],s)}),t[1]=K(t[1],s)},P=(s=null,a,n=f())=>S(async()=>{g(a)&&([a,s,n]=await A(null,1,e,n));const[r,i]=a,[o,c]=t.getMergeableContentHashes();let l=Q();if(o!=r){const[e,a]=(await A(s,4,t.getMergeableTableHashes(),n))[0];if(l=e,!L(a)){const[e,r]=(await A(s,5,t.getMergeableRowHashes(a),n))[0];if(m(l,e),!L(r)){const e=(await A(s,6,t.getMergeableCellHashes(r),n))[0];m(l,e)}}}return[l,c==i?Q():(await A(s,7,t.getMergeableValueHashes(),n))[0],1]},d),k=tt(t,async()=>{const t=await P();return!t||L(t[0][0])&&L(t[1][0])?void 0:t},async(e,s)=>s?M(null,f(),3,s):M(null,f(),2,t.getMergeableContentHashes()),t=>w=t,()=>w=void 0,d,2,{startSync:async t=>(C=1,await k.startAutoPersisting(t)),stopSync:async()=>(C=0,await k.stopAutoPersisting(),k),destroy:async()=>(await k.stopSync(),k),getSynchronizerStats:()=>({sends:p,receives:v}),...y},1);return n((e,s,a,n)=>{const r=C||k.isAutoLoading();v++,0==a?h(V(b,s),([t,s])=>u(t)||t==e?s(n,e):0):2==a&&r?P(e,n,s??void 0).then(t=>{w?.(void 0,t)}).catch(d):3==a&&r?w?.(void 0,n):h(1==a&&(C||k.isAutoSaving())?t.getMergeableContentHashes():4==a?t.getMergeableTableDiff(n):5==a?t.getMergeableRowDiff(n):6==a?t.getMergeableCellDiff(n):7==a?t.getMergeableValueDiff(n):void 0,t=>{M(e,s,0,t)})}),k})(t.getStore(),(t,e,s,a)=>this.#e(st,R(t,e,s,a)),t=>this.#t=e=>((t,e)=>O(t,(t,s)=>{return e(t,...(a=s,D(a,(t,e)=>""===e?void 0:e)));var a}))(e,t),0,1);await t.load(),await t.startAutoSave(),i(s.startSync)}))}fetch(t){const s=at(t);return h(nt(t),t=>{const[a,n]=(r=new WebSocketPair,A.values(r));var r,i;return i=this.#s(),0==C(i)&&this.onPathId(s,1),this.ctx.acceptWebSocket(n,[t,s]),this.onClientId(s,t,1),n.send(R(st,null,1,e)),rt(101,a)},it)}webSocketMessage(t,e){h(this.ctx.getTags(t)[0],s=>this.#e(s,e.toString(),t))}webSocketClose(t){const[e,s]=this.ctx.getTags(t);this.onClientId(s,e,-1),1==C(this.#s())&&this.onPathId(s,-1)}#e(t,s,a){O(s.toString(),(s,n)=>{const r=E(t,n);this.onMessage(t,s,n),s==e?(t!=st&&this.#t?.(r),v(this.#s(),t=>{t!=a&&t.send(r)})):s==st?this.#t?.(r):s!=t&&this.#s(s)[0]?.send(r)})}#s(t){return this.ctx.getWebSockets(t)}createPersister(){}getPathId(){return this.ctx.getTags(this.#s()[0])?.[1]}getClientIds(){return b(this.#s(),t=>this.ctx.getTags(t)[0])}onPathId(t,e){}onClientId(t,e,s){}onMessage(t,e,s){}}const ct=t=>(e,s)=>nt(e)?s[t].get(s[t].idFromName(at(e))).fetch(e):it();export{ot as WsServerDurableObject,ct as getWsServerDurableObjectFetch};
@@ -1 +1 @@
1
- const e=e=>void 0===e,n=(t=e,(e,n,s)=>t(e)?s?.():n(e));var t;const s=(e,n,t)=>e.slice(n,t),o=(e,n)=>e?.delete(n),c=Object.freeze,r=e=>new Map(e),a=(e,n)=>e?.get(n),d=(e,n,t)=>void 0===t?(o(e,n),e):e?.set(n,t),i=/\/([^?]*)/,v=t=>{const v=r();return t.on("connection",(t,c)=>{return n((l=c.url,u=i,l?.match(u)),([,i])=>n(c.headers["sec-websocket-key"],async n=>{const c=(f=r,g=l=v,h=u=i,g?.has(h)||d(l,u,f()),a(l,u));var l,u,f,g,h;d(c,n,t),t.on("message",e=>(e=>{const t=e.indexOf("\n");-1!==t&&((e,t)=>{const s=((e,n)=>e+"\n"+n)(n,t);""===e?(e=>{((e,n)=>{e?.forEach(n)})(e,(e,t)=>{return o=e,t!==n?o.send(s):0;var o})})(c):a(c,e)?.send(s)})(s(e,0,t),s(e,t+1))})(e.toString("utf8"))),t.on("close",()=>{o(c,n),(n=>e(n)||0==(e=>e?.size??0)(n))(c)&&o(v,i)})}));var l,u}),c({getWebSocketServer:()=>t,destroy:async()=>{v.clear(),t.close()}})};export{v as createWsServerSimple};
1
+ const e=e=>void 0===e,n=(t=e,(e,n,s)=>t(e)?s?.():n(e));var t;const s=(e,n,t)=>e.slice(n,t),c=(e,n)=>e?.delete(n),o=Object.freeze,r=e=>new Map(e),a=(e,n)=>e?.get(n),d=(n,t,s)=>e(s)?(c(n,t),n):n?.set(t,s),i=/\/([^?]*)/,l=t=>{const l=r();return t.on("connection",(t,o)=>{return n((v=o.url,u=i,v?.match(u)),([,i])=>n(o.headers["sec-websocket-key"],async n=>{const o=(f=r,g=v=l,h=u=i,g?.has(h)||d(v,u,f()),a(v,u));var v,u,f,g,h;d(o,n,t),t.on("message",e=>(e=>{const t=e.indexOf("\n");-1!==t&&((e,t)=>{const s=((e,n)=>e+"\n"+n)(n,t);""===e?(e=>{((e,n)=>{e?.forEach(n)})(e,(e,t)=>{return c=e,t!==n?c.send(s):0;var c})})(o):a(o,e)?.send(s)})(s(e,0,t),s(e,t+1))})(e.toString("utf8"))),t.on("close",()=>{c(o,n),(n=>e(n)||0==(e=>e?.size??0)(n))(o)&&c(l,i)})}));var v,u}),o({getWebSocketServer:()=>t,destroy:async()=>{l.clear(),t.close()}})};export{l as createWsServerSimple};
@@ -1 +1 @@
1
- const e=e=>void 0===e,n=(t=e,(e,n,s)=>t(e)?s?.():n(e));var t;const s=(e,n,t)=>e.slice(n,t),o=(e,n)=>e?.delete(n),c=Object.freeze,r=e=>new Map(e),a=(e,n)=>e?.get(n),d=(e,n,t)=>void 0===t?(o(e,n),e):e?.set(n,t),i=/\/([^?]*)/,v=t=>{const v=r();return t.on("connection",(t,c)=>{return n((l=c.url,u=i,l?.match(u)),([,i])=>n(c.headers["sec-websocket-key"],async n=>{const c=(f=r,g=l=v,h=u=i,g?.has(h)||d(l,u,f()),a(l,u));var l,u,f,g,h;d(c,n,t),t.on("message",e=>(e=>{const t=e.indexOf("\n");-1!==t&&((e,t)=>{const s=((e,n)=>e+"\n"+n)(n,t);""===e?(e=>{((e,n)=>{e?.forEach(n)})(e,(e,t)=>{return o=e,t!==n?o.send(s):0;var o})})(c):a(c,e)?.send(s)})(s(e,0,t),s(e,t+1))})(e.toString("utf8"))),t.on("close",()=>{o(c,n),(n=>e(n)||0==(e=>e?.size??0)(n))(c)&&o(v,i)})}));var l,u}),c({getWebSocketServer:()=>t,destroy:async()=>{v.clear(),t.close()}})};export{v as createWsServerSimple};
1
+ const e=e=>void 0===e,n=(t=e,(e,n,s)=>t(e)?s?.():n(e));var t;const s=(e,n,t)=>e.slice(n,t),c=(e,n)=>e?.delete(n),o=Object.freeze,r=e=>new Map(e),a=(e,n)=>e?.get(n),d=(n,t,s)=>e(s)?(c(n,t),n):n?.set(t,s),i=/\/([^?]*)/,l=t=>{const l=r();return t.on("connection",(t,o)=>{return n((v=o.url,u=i,v?.match(u)),([,i])=>n(o.headers["sec-websocket-key"],async n=>{const o=(f=r,g=v=l,h=u=i,g?.has(h)||d(v,u,f()),a(v,u));var v,u,f,g,h;d(o,n,t),t.on("message",e=>(e=>{const t=e.indexOf("\n");-1!==t&&((e,t)=>{const s=((e,n)=>e+"\n"+n)(n,t);""===e?(e=>{((e,n)=>{e?.forEach(n)})(e,(e,t)=>{return c=e,t!==n?c.send(s):0;var c})})(o):a(o,e)?.send(s)})(s(e,0,t),s(e,t+1))})(e.toString("utf8"))),t.on("close",()=>{c(o,n),(n=>e(n)||0==(e=>e?.size??0)(n))(o)&&c(l,i)})}));var v,u}),o({getWebSocketServer:()=>t,destroy:async()=>{l.clear(),t.close()}})};export{l as createWsServerSimple};
@@ -1 +1 @@
1
- const t=(t,e="",a)=>t.split(e,a),e=Promise,a=t=>(e,a,n)=>t(e)?n?.():a(e),n=globalThis,s=Math,o=s.floor,r=t=>null==t,i=t=>void 0===t,l=t=>null===t,c=a(r),g=a(i),u=t=>Array.isArray(t),y=t=>t.length,d=t=>{throw Error(t)},w=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},f=(t,e)=>t.forEach(e),h=(t,...e)=>t.push(...e),p=t=>t.shift(),v=t=>i(t)||0==(t=>t?.size??0)(t),b=(t,e)=>t?.forEach(e),C=(t,e)=>t?.delete(e),M=Object,A=t=>M.getPrototypeOf(t),S=M.entries,D=M.keys,H=M.freeze,T=(t,e)=>f(S(t),([t,a])=>e(a,t)),m=t=>(t=>!r(t)&&c(A(t),t=>t==M.prototype||r(A(t)),()=>!0))(t)&&0==(t=>y(D(t)))(t),L=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),P=t=>new Map(t),G=(t,e)=>t?.get(e),R=(t,e,a)=>void 0===a?(C(t,e),t):t?.set(e,a),E=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(G(t,e)):R(t,e,a()),G(t,e)},V=(t,e,a,n,s=0)=>g((a?E:G)(t,e[s],s>y(e)-2?a:P),o=>{if(s>y(e)-2)return n?.(o)&&R(t,e[s]),o;const r=V(o,e,a,n,s+1);return v(o)&&R(t,e[s]),r}),z=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),O=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*s.random())))(t),$=(t=16)=>{return e=(t,e)=>t+z[63&e],O(new Uint8Array(t)).reduce(e,"");var e},j=(t,e)=>e?[t,e]:[t],k=(t,e)=>((t??"")>(e??"")?t:e)??"",x=(t="")=>j(((t=[])=>M.fromEntries(t))(),t),F=/^\d+$/,N=t=>new Set(u(t)||i(t)?t:[t]),U=P(),q=P(),B=(t,e,a,n,s,o,r,c={},M=0,A=[])=>{let S,D,T,L=0,z=0,O=0;E(U,A,()=>0),E(q,A,()=>[]);const $=P(),[j,k,x,B,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!m(t)||!m(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!m(t)||!m(e),e.setContent]:d("Store type not supported by this Persister"))(r,t,M),[J,K,Q]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{F.test(e)&&y(t)<1e3&&h(t,e)}]})(),n=P();return[(a,s,o,r=[],i=()=>[])=>{t??=ot;const l=e(1);var c,g;return R(n,l,[a,s,o,r,i]),c=V(s,o??[""],N),g=l,c?.add(g),l},(e,a,...s)=>f(((t,e=[""])=>{const a=[],n=(t,s)=>s==y(e)?h(a,t):null===e[s]?b(t,t=>n(t,s+1)):f([e[s],null],e=>n(G(t,e),s+1));return n(t,0),a})(e,a),e=>b(e,e=>G(n,e)[0](t,...a??[],...s))),t=>g(G(n,t),([,e,s])=>(V(e,s??[""],void 0,e=>(C(e,t),v(e)?1:0)),R(n,t),a(t),s)),e=>g(G(n,e),([e,,a=[],n,s])=>{const o=(...r)=>{const i=y(r);i==y(a)?e(t,...r,...s(r)):l(a[i])?f(n[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),W=t=>{t!=L&&(L=t,K($,void 0,L))},X=e=>{(j&&u(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},Y=async t=>(2!=L&&(W(1),z++,await st(async()=>{await w(async()=>{const a=await e();u(a)?X(a):t?I(t):d("Content is not an array: "+a)},()=>{t&&I(t)}),W(0)})),ot),Z=async t=>(_(),await Y(t),await w(async()=>D=await n(async(t,e)=>{e||t?2!=L&&(W(1),z++,X(e??t),W(0)):await Y()}),o),ot),_=async()=>(D&&(await w(()=>s(D),o),D=void 0),ot),tt=async t=>(1!=L&&(W(2),O++,await st(async()=>{await w(()=>a(k,t),o),W(0)})),ot),et=async()=>(at(),await tt(),T=t.addDidFinishTransactionListener(()=>{const t=x();B(t)&&tt(t)}),ot),at=async()=>(T&&(t.delListener(T),T=void 0),ot),nt=async(t=!1)=>{const[e,a]=t?[at,_]:[_,at];return await e(),await a(),ot},st=async(...t)=>(h(G(q,A),...t),await(async()=>{if(!G(U,A)){for(R(U,A,1);!i(S=p(G(q,A)));)await w(S,o);R(U,A,0)}})(),ot),ot={load:Y,startAutoLoad:Z,stopAutoLoad:_,isAutoLoading:()=>!i(D),save:tt,startAutoSave:et,stopAutoSave:at,isAutoSaving:()=>!i(T),startAutoPersisting:async(t,e=!1)=>{const[a,n]=e?[et,Z]:[Z,et];return await a(t),await n(t),ot},stopAutoPersisting:nt,getStatus:()=>L,addStatusListener:t=>J(t,$),delListener:e=>(Q(e),t),schedule:st,getStore:()=>t,destroy:()=>(G(q,A).splice(0,void 0),nt()),getStats:()=>({loads:z,saves:O}),...c};return H(ot)},I={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},J=(t,a,n,s,o,r,c,u,y={})=>{let d,f=0,h=0,p=0;const v=P(),b=()=>$(11),M=(t,e,n,s)=>{h++,r?.(t,e,n,s),a(t,e,n,s)},A=async(t,a,n,s)=>new e((e,r)=>{const i=s+"."+$(4),l=((t,e=0)=>setTimeout(t,1e3*e))(()=>{C(v,i),r(`No response from ${t??"anyone"} to ${i}, `+a)},o);R(v,i,[t,(t,a)=>{clearTimeout(l),C(v,i),e([t,a,s])}]),M(t,i,a,n)}),S=(t,[e,a])=>{T(e,([e,a],n)=>{const s=L(t[0],n,x);T(e,([t,e],a)=>{const n=L(s[0],a,x);T(t,([t,e],a)=>n[0][a]=j(t,e)),n[1]=k(n[1],e)}),s[1]=k(s[1],a)}),t[1]=k(t[1],a)},D=(e=null,a,n=b())=>w(async()=>{i(a)&&([a,e,n]=await A(null,1,"",n));const[s,o]=a,[r,l]=t.getMergeableContentHashes();let c=x();if(r!=s){const[a,s]=(await A(e,4,t.getMergeableTableHashes(),n))[0];if(c=a,!m(s)){const[a,o]=(await A(e,5,t.getMergeableRowHashes(s),n))[0];if(S(c,a),!m(o)){const a=(await A(e,6,t.getMergeableCellHashes(o),n))[0];S(c,a)}}}return[c,l==o?x():(await A(e,7,t.getMergeableValueHashes(),n))[0],1]},u),H=B(t,async()=>{const t=await D();return!t||m(t[0][0])&&m(t[1][0])?void 0:t},async(e,a)=>a?M(null,b(),3,a):M(null,b(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,u,2,{startSync:async t=>(f=1,await H.startAutoPersisting(t)),stopSync:async()=>(f=0,await H.stopAutoPersisting(),H),destroy:async()=>(await H.stopSync(),s(),H),getSynchronizerStats:()=>({sends:h,receives:p}),...y},1);return n((e,a,n,s)=>{const o=f||H.isAutoLoading();p++,c?.(e,a,n,s),0==n?g(G(v,a),([t,a])=>l(t)||t==e?a(s,e):0):2==n&&o?D(e,s,a??void 0).then(t=>{d?.(void 0,t)}).catch(u):3==n&&o?d?.(void 0,s):g(1==n&&(f||H.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(s):5==n?t.getMergeableRowDiff(s):6==n?t.getMergeableCellDiff(s):7==n?t.getMergeableValueDiff(s):void 0,t=>{M(e,a,0,t)})}),H};export{I as Message,J as createCustomSynchronizer};
1
+ const t=(t,e="",a)=>t.split(e,a),e=Promise,a=t=>(e,a,n)=>t(e)?n?.():a(e),n=globalThis,s=Math,o=s.floor,r=t=>null==t,i=t=>void 0===t,c=t=>null===t,l=a(r),g=a(i),u=t=>Array.isArray(t),y=t=>t.length,d=t=>{throw Error(t)},w=async(t,e,a)=>{try{return await t()}catch(t){e?.(t)}},f=(t,e)=>t.forEach(e),h=(t,...e)=>t.push(...e),p=t=>t.shift(),b=t=>i(t)||0==(t=>t?.size??0)(t),v=(t,e)=>t?.forEach(e),C=(t,e)=>t?.delete(e),M=Object,A=t=>M.getPrototypeOf(t),S=M.entries,D=M.keys,H=M.freeze,T=(t,e)=>f(S(t),([t,a])=>e(a,t)),m=t=>(t=>!r(t)&&l(A(t),t=>t==M.prototype||r(A(t)),()=>!0))(t)&&0==(t=>y(D(t)))(t),L=(t,e,a)=>(((t,e)=>e in t)(t,e)||(t[e]=a()),t[e]),P=t=>new Map(t),G=(t,e)=>t?.get(e),R=(t,e,a)=>i(a)?(C(t,e),t):t?.set(e,a),E=(t,e,a,n)=>{var s,o;return s=t,o=e,s?.has(o)?n?.(G(t,e)):R(t,e,a()),G(t,e)},V=(t,e,a,n,s=0)=>g((a?E:G)(t,e[s],s>y(e)-2?a:P),o=>{if(s>y(e)-2)return n?.(o)&&R(t,e[s]),o;const r=V(o,e,a,n,s+1);return b(o)&&R(t,e[s]),r}),z=t("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),O=n.crypto?t=>n.crypto.getRandomValues(t):t=>(t=>t.map(()=>o(256*s.random())))(t),$=(t=16)=>{return e=(t,e)=>t+z[63&e],O(new Uint8Array(t)).reduce(e,"");var e},j=(t,e)=>e?[t,e]:[t],k=(t,e)=>((t??"")>(e??"")?t:e)??"",x=(t="")=>j(((t=[])=>M.fromEntries(t))(),t),F=/^\d+$/,N=t=>new Set(u(t)||i(t)?t:[t]),U=P(),q=P(),B=(t,e,a,n,s,o,r,l={},M=0,A=[])=>{let S,D,T,L=0,z=0,O=0;E(U,A,()=>0),E(q,A,()=>[]);const $=P(),[j,k,x,B,I]=((t=1,e,a)=>1!=t&&e.isMergeable()?[1,e.getMergeableContent,()=>e.getTransactionMergeableChanges(!a),([[t],[e]])=>!m(t)||!m(e),e.setDefaultContent]:2!=t?[0,e.getContent,e.getTransactionChanges,([t,e])=>!m(t)||!m(e),e.setContent]:d("Store type not supported by this Persister"))(r,t,M),[J,K,Q]=(()=>{let t;const[e,a]=(()=>{const t=[];let e=0;return[a=>(a?p(t):null)??""+e++,e=>{F.test(e)&&y(t)<1e3&&h(t,e)}]})(),n=P();return[(a,s,o,r=[],i=()=>[])=>{t??=ot;const c=e(1);var l,g;return R(n,c,[a,s,o,r,i]),l=V(s,o??[""],N),g=c,l?.add(g),c},(e,a,...s)=>f(((t,e=[""])=>{const a=[],n=(t,s)=>s==y(e)?h(a,t):c(e[s])?v(t,t=>n(t,s+1)):f([e[s],null],e=>n(G(t,e),s+1));return n(t,0),a})(e,a),e=>v(e,e=>G(n,e)[0](t,...a??[],...s))),t=>g(G(n,t),([,e,s])=>(V(e,s??[""],void 0,e=>(C(e,t),b(e)?1:0)),R(n,t),a(t),s)),e=>g(G(n,e),([e,,a=[],n,s])=>{const o=(...r)=>{const i=y(r);i==y(a)?e(t,...r,...s(r)):c(a[i])?f(n[i]?.(...r)??[],t=>o(...r,t)):o(...r,a[i])};o()})]})(),W=t=>{t!=L&&(L=t,K($,void 0,L))},X=e=>{(j&&u(e?.[0])?1===e?.[2]?t.applyMergeableChanges:t.setMergeableContent:1===e?.[2]?t.applyChanges:t.setContent)(e)},Y=async t=>(2!=L&&(W(1),z++,await st(async()=>{await w(async()=>{const a=await e();u(a)?X(a):t?I(t):d("Content is not an array: "+a)},()=>{t&&I(t)}),W(0)})),ot),Z=async t=>(_(),await Y(t),await w(async()=>D=await n(async(t,e)=>{e||t?2!=L&&(W(1),z++,X(e??t),W(0)):await Y()}),o),ot),_=async()=>(D&&(await w(()=>s(D),o),D=void 0),ot),tt=async t=>(1!=L&&(W(2),O++,await st(async()=>{await w(()=>a(k,t),o),W(0)})),ot),et=async()=>(at(),await tt(),T=t.addDidFinishTransactionListener(()=>{const t=x();B(t)&&tt(t)}),ot),at=async()=>(T&&(t.delListener(T),T=void 0),ot),nt=async(t=!1)=>{const[e,a]=t?[at,_]:[_,at];return await e(),await a(),ot},st=async(...t)=>(h(G(q,A),...t),await(async()=>{if(!G(U,A)){for(R(U,A,1);!i(S=p(G(q,A)));)await w(S,o);R(U,A,0)}})(),ot),ot={load:Y,startAutoLoad:Z,stopAutoLoad:_,isAutoLoading:()=>!i(D),save:tt,startAutoSave:et,stopAutoSave:at,isAutoSaving:()=>!i(T),startAutoPersisting:async(t,e=!1)=>{const[a,n]=e?[et,Z]:[Z,et];return await a(t),await n(t),ot},stopAutoPersisting:nt,getStatus:()=>L,addStatusListener:t=>J(t,$),delListener:e=>(Q(e),t),schedule:st,getStore:()=>t,destroy:()=>(G(q,A).splice(0,void 0),nt()),getStats:()=>({loads:z,saves:O}),...l};return H(ot)},I={Response:0,GetContentHashes:1,ContentHashes:2,ContentDiff:3,GetTableDiff:4,GetRowDiff:5,GetCellDiff:6,GetValueDiff:7},J=(t,a,n,s,o,r,l,u,y={})=>{let d,f=0,h=0,p=0;const b=P(),v=()=>$(11),M=(t,e,n,s)=>{h++,r?.(t,e,n,s),a(t,e,n,s)},A=async(t,a,n,s)=>new e((e,r)=>{const i=s+"."+$(4),c=((t,e=0)=>setTimeout(t,1e3*e))(()=>{C(b,i),r(`No response from ${t??"anyone"} to ${i}, `+a)},o);R(b,i,[t,(t,a)=>{clearTimeout(c),C(b,i),e([t,a,s])}]),M(t,i,a,n)}),S=(t,[e,a])=>{T(e,([e,a],n)=>{const s=L(t[0],n,x);T(e,([t,e],a)=>{const n=L(s[0],a,x);T(t,([t,e],a)=>n[0][a]=j(t,e)),n[1]=k(n[1],e)}),s[1]=k(s[1],a)}),t[1]=k(t[1],a)},D=(e=null,a,n=v())=>w(async()=>{i(a)&&([a,e,n]=await A(null,1,"",n));const[s,o]=a,[r,c]=t.getMergeableContentHashes();let l=x();if(r!=s){const[a,s]=(await A(e,4,t.getMergeableTableHashes(),n))[0];if(l=a,!m(s)){const[a,o]=(await A(e,5,t.getMergeableRowHashes(s),n))[0];if(S(l,a),!m(o)){const a=(await A(e,6,t.getMergeableCellHashes(o),n))[0];S(l,a)}}}return[l,c==o?x():(await A(e,7,t.getMergeableValueHashes(),n))[0],1]},u),H=B(t,async()=>{const t=await D();return!t||m(t[0][0])&&m(t[1][0])?void 0:t},async(e,a)=>a?M(null,v(),3,a):M(null,v(),2,t.getMergeableContentHashes()),t=>d=t,()=>d=void 0,u,2,{startSync:async t=>(f=1,await H.startAutoPersisting(t)),stopSync:async()=>(f=0,await H.stopAutoPersisting(),H),destroy:async()=>(await H.stopSync(),s(),H),getSynchronizerStats:()=>({sends:h,receives:p}),...y},1);return n((e,a,n,s)=>{const o=f||H.isAutoLoading();p++,l?.(e,a,n,s),0==n?g(G(b,a),([t,a])=>c(t)||t==e?a(s,e):0):2==n&&o?D(e,s,a??void 0).then(t=>{d?.(void 0,t)}).catch(u):3==n&&o?d?.(void 0,s):g(1==n&&(f||H.isAutoSaving())?t.getMergeableContentHashes():4==n?t.getMergeableTableDiff(s):5==n?t.getMergeableRowDiff(s):6==n?t.getMergeableCellDiff(s):7==n?t.getMergeableValueDiff(s):void 0,t=>{M(e,a,0,t)})}),H};export{I as Message,J as createCustomSynchronizer};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as l}from"react/jsx-runtime";import r from"react";import{CellView as n,ResultCellView as a,ValueView as s}from"../ui-react/index.js";const o=e=>typeof e,c=o(""),i=o(!0),d=o(0),h=o(o),u="Result",m="Ids",C="Table",p="Row",b=p+"Count",f=p+m,I="Sorted"+p+m,g="Cell",x=g+m,y="Value",N=y+m,v="currentTarget",w="value",T="extra",k=e=>(t,l,r)=>e(t)?r?.():l(t),S=globalThis,R=Math.min,A=isFinite,B=e=>null==e,q=e=>void 0===e,P=k(B),E=k(q),L=e=>o(e)==c,O=e=>o(e)==h,V=e=>e.length,j=()=>{},M=(e,t)=>e.every(t),F=(e,t)=>V(e)===V(t)&&M(e,(e,l)=>t[l]===e),H=(e,t)=>e.map(t),$=Object,_=e=>$.getPrototypeOf(e),z=$.entries,D=e=>!B(e)&&P(_(e),e=>e==$.prototype||B(_(e)),()=>!0),G=$.keys,J=(e=[])=>$.fromEntries(e),K=(e,t)=>H(z(e),([e,l])=>t(l,e)),Q=(e,t)=>{const l=z(e);return V(l)===V(G(t))&&M(l,([e,l])=>D(l)?!!D(t[e])&&Q(t[e],l):t[e]===l)},{PureComponent:U,createContext:W,useCallback:X,useContext:Y,useEffect:Z,useLayoutEffect:ee,useMemo:te,useRef:le,useState:re,useSyncExternalStore:ne}=r,ae=(e,...t)=>q(e)?{}:e(...t),se="tinybase_uirc",oe=S[se]?S[se]:S[se]=W([]),ce=(e,t)=>{const l=((e,t)=>{const l=Y(oe);return q(e)?l[2*t]:L(e)?((e,t)=>E(e,e=>e[t]))(l[2*t+1],e):e})(e,t);return q(e)||L(e)?l:e},ie=[],de=[{},[],[ie,void 0,ie],void 0,!1,0],he=[Q,F,([e,t,l],[r,n,a])=>t===n&&F(e,r)&&F(l,a)],ue=(e,t)=>e===t,me=(e,t,l,r=ie)=>{const n=le(de[l]),a=X(()=>{const a=t?.[(4==l?"has":"get")+e]?.(...r)??de[l];return(he[l]??ue)(a,n.current)?n.current:n.current=a},[t,l,e,...r]),s=X(n=>((e,t,...l)=>{const r=e?.["add"+t+"Listener"]?.(...l);return()=>e?.delListener?.(r)})(t,(4==l?"Has":"")+e,...r,n),[t,l,e,...r]);return ne(s,a,a)},Ce=(e,t,l,r=ie,n=j,a=ie,...s)=>{const o=fe(e);return X(e=>E(o,r=>E(l(e,r),l=>n(r["set"+t](...pe(s,r,e),l),l))),[o,t,...r,...a,...be(s)])},pe=(e,t,l)=>H(e,e=>O(e)?e(l,t):e),be=e=>{return t=e=>!O(e),e.filter(t);var t},fe=e=>ce(e,0),Ie=(e,t)=>me(C+x,fe(t),1,[e]),ge=(e,t)=>me(f,fe(t),1,[e]),xe=(e,t,l,r,n,a)=>((e,t,l,r,n,a)=>me(I,fe(a),1,[e,t,l,r,n]))(...D(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,l,r,n,a]),ye=(e,t,l,r)=>me(g,fe(r),3,[e,t,l]),Ne=(e,t)=>me(y,fe(t),3,[e]),ve=(e,t,l,r,n,a,s,o)=>Ce(a,g,r,n,s,o,e,t,l),we=(e,t,l,r,n,a)=>Ce(r,y,t,l,n,a,e),Te=e=>ce(e,2),ke=(e,t,l)=>me("Slice"+f,Te(l),1,[e,t]),Se=e=>ce(e,3),Re=e=>ce(e,4),Ae=(e,t)=>me(u+C+x,Re(t),1,[e]),Be=(e,t)=>me(u+f,Re(t),1,[e]),qe=(e,t,l,r=0,n,a)=>me(u+I,Re(a),1,[e,t,l,r,n]),Pe=(e,t,l,r)=>e==c?t:e==d?l:e==i?r:null,Ee=(e,t)=>te(()=>({store:e,tableId:t}),[e,t]),Le=(e,t)=>te(()=>({queries:e,queryId:t}),[e,t]),Oe=(e,t,l)=>{const r=X(e,t);return l?r:void 0},Ve=(...e)=>te(()=>e,e),je=(e,t,l)=>te(()=>{const r=t??e;return n=Array.isArray(r)?J(H(r,e=>[e,e])):r,a=(e,t)=>({label:t,component:l,...L(e)?{label:e}:e}),J(K(n,(e,t)=>[t,a(e,t)]));var n,a},[t,l,e]),Me="editable",Fe=(t=[],l,r=0)=>H(t,({component:t},n)=>e("td",{className:T,children:e(t,{...l})},He(n,r))),He=(e,t)=>(t?">":"<")+e,$e=(t=[],l=0)=>H(t,({label:t},r)=>e("th",{className:T,children:t},He(r,l))),_e=({cellId:e,sort:[l,r],label:n=e??"",onClick:a})=>t("th",{onClick:Oe(()=>a?.(e),[a,e],a),className:q(r)||l!=e?void 0:`sorted ${r?"de":"a"}scending`,children:[q(r)||l!=e?null:(r?"↓":"↑")+" ",n]}),ze=({className:l,headerRow:r,idColumn:n,params:[a,s,o,c,i,d,h,u]})=>t("table",{className:l,children:[u?e("caption",{children:u}):null,!1===r?null:e("thead",{children:t("tr",{children:[$e(c),!1===n?null:e(_e,{sort:d??[],label:"Id",onClick:h}),K(a,({label:t},l)=>e(_e,{cellId:l,label:t,sort:d??[],onClick:h},l)),$e(i,1)]})}),e("tbody",{children:H(o,l=>{const r={...s,rowId:l};return t("tr",{children:[Fe(c,r),!1===n?null:e("th",{title:l,children:l}),K(a,({component:t,getComponentProps:n},a)=>e("td",{children:e(t,{...ae(n,l,a),...r,cellId:a})},a)),Fe(i,r,1)]},l)})})]}),De=({thing:l,onThingChange:r,className:n,hasSchema:a,showType:s=!0})=>{const[h,u]=re(),[m,C]=re(),[p,b]=re(),[f,I]=re(),[g,x]=re();m!==l&&(u((e=>{if(null===e)return"null";const t=o(e);return(e=>e==c||e==i)(t)||t==d&&A(e)?t:void 0})(l)),C(l),b(l+""),I(Number(l)||0),x(!!l));const y=X((e,t)=>{t(e),C(e),r(e)},[r]),N=X(()=>{if(!a?.()){const e=Pe(h,d,i,c),t=Pe(e,p,f,g);u(e),C(t),r(t)}},[a,r,p,f,g,h]),T=Pe(h,e("input",{value:p,onChange:X(e=>y(e[v][w]+"",b),[y])},h),e("input",{type:"number",value:f,onChange:X(e=>y(Number(e[v][w]||0),I),[y])},h),e("input",{type:"checkbox",checked:g,onChange:X(e=>y(!!e[v].checked,x),[y])},h));return t("div",{className:n,children:[s&&T?e("button",{title:h,className:h,onClick:N,children:h}):null,T]})},Ge=({tableId:t,rowId:l,cellId:r,store:n,className:a,showType:s})=>e(De,{thing:ye(t,l,r,n),onThingChange:ve(t,l,r,e=>e,[],n),className:a??Me+g,showType:s,hasSchema:fe(n)?.hasTablesSchema}),Je=({valueId:t,store:l,className:r,showType:n})=>e(De,{thing:Ne(t,l),onThingChange:we(t,e=>e,[],l),className:r??Me+y,showType:n,hasSchema:fe(l)?.hasValuesSchema}),Ke=(e,t)=>H(Ie(e,t),t=>e+"."+t),Qe=({localRowId:r,params:[n,a,s,o,c,i,d,h,u]})=>{const m=((e,t,l)=>me("RemoteRowId",Se(l),3,[e,t]))(c,r,i),C={tableId:s??"",rowId:r,store:d};return t("tr",{children:[Fe(h,C),!1===n?null:t(l,{children:[e("th",{title:r,children:r}),e("th",{title:m,children:m})]}),K(a,({component:t,getComponentProps:l},n)=>{const[a,c]=((e,t="",l)=>e.split(t,l))(n,".",2),i=a===s?r:a===o?m:void 0;return q(i)?null:e("td",{children:e(t,{...ae(l,i,c),store:d,tableId:a,rowId:i,cellId:c})},n)}),Fe(u,C,1)]})},Ue=({relationshipId:r,relationships:a,editable:s,customCells:o,extraCellsBefore:c,extraCellsAfter:i,className:d,headerRow:h,idColumn:u=!0})=>{const[m,C,p,b]=((e,t)=>[e,e?.getStore(),e?.getLocalTableId(t),e?.getRemoteTableId(t)])(Se(a),r),f=je([...Ke(p,C),...Ke(b,C)],o,s?Ge:n),I=Ve(u,f,p,b,r,m,C,c,i);return t("table",{className:d,children:[!1===h?null:e("thead",{children:t("tr",{children:[$e(c),!1===u?null:t(l,{children:[t("th",{children:[p,".Id"]}),t("th",{children:[b,".Id"]})]}),K(f,({label:t},l)=>e("th",{children:t},l)),$e(i,1)]})}),e("tbody",{children:H(ge(p,C),t=>e(Qe,{localRowId:t,params:I},t))})]})},We=(t,l=!1,r,n=0,a,s,o,c)=>{const[[i,d,h],u]=re([t,l,n]),m=X(e=>{u(e),c?.(e)},[c]),C=Oe(e=>m([e,e==i&&!d,h]),[m,i,d,h],r),p=X(e=>m([i,d,e]),[m,i,d]),b=!0===o?Xe:o;return[[i,d,h],C,te(()=>!1===o?null:e(b,{offset:h,limit:a,total:s,onChange:p}),[o,b,h,a,s,p])]},Xe=({onChange:r,total:n,offset:a=0,limit:s=n,singular:o="row",plural:c=o+"s"})=>{(a>n||a<0)&&(a=0,r(0));const i=Oe(()=>r(a-s),[r,a,s],a>0),d=Oe(()=>r(a+s),[r,a,s],a+s<n);return t(l,{children:[n>s&&t(l,{children:[e("button",{className:"previous",disabled:0==a,onClick:i,children:"←"}),e("button",{className:"next",disabled:a+s>=n,onClick:d,children:"→"}),a+1," to ",R(n,a+s)," of "]}),n," ",1!=n?c:o]})},Ye=({queryId:t,cellId:l,descending:r,offset:n,limit:s,queries:o,sortOnClick:c,paginator:i=!1,customCells:d,extraCellsBefore:h,extraCellsAfter:m,onChange:C,...p})=>{const[f,I,g]=We(l,r,c,n,s,((e,t)=>me(u+b,Re(t),5,[e]))(t,o),i,C);return e(ze,{...p,params:Ve(je(Ae(t,o),d,a),Le(o,t),qe(t,...f,s,o),h,m,f,I,g)})},Ze=({queryId:t,queries:l,customCells:r,extraCellsBefore:n,extraCellsAfter:s,...o})=>e(ze,{...o,params:Ve(je(Ae(t,l),r,a),Le(l,t),Be(t,l),n,s)}),et=({indexId:t,sliceId:l,indexes:r,editable:a,customCells:s,extraCellsBefore:o,extraCellsAfter:c,...i})=>{const[d,h,u]=((e,t)=>[e,e?.getStore(),e?.getTableId(t)])(Te(r),t);return e(ze,{...i,params:Ve(je(Ie(u,h),s,a?Ge:n),Ee(h,u),ke(t,l,d),o,c)})},tt=({tableId:t,cellId:l,descending:r,offset:a,limit:s,store:o,editable:c,sortOnClick:i,paginator:d=!1,onChange:h,customCells:u,extraCellsBefore:m,extraCellsAfter:C,...p})=>{const[f,I,g]=We(l,r,i,a,s,((e,t)=>me(b,fe(t),5,[e]))(t,o),d,h);return e(ze,{...p,params:Ve(je(Ie(t,o),u,c?Ge:n),Ee(o,t),xe(t,...f,s,o),m,C,f,I,g)})},lt=({tableId:t,store:l,editable:r,customCells:a,extraCellsBefore:s,extraCellsAfter:o,...c})=>e(ze,{...c,params:Ve(je(Ie(t,l),a,r?Ge:n),Ee(l,t),ge(t,l),s,o)}),rt=(t=[],l,r=0)=>H(t,({component:t},n)=>e("td",{className:T,children:e(t,{...l})},He(n,r))),nt=({store:l,editable:r=!1,valueComponent:n=(r?Je:s),getValueComponentProps:a,extraCellsBefore:o,extraCellsAfter:c,className:i,headerRow:d,idColumn:h})=>{return t("table",{className:i,children:[!1===d?null:e("thead",{children:t("tr",{children:[$e(o),!1===h?null:e("th",{children:"Id"}),e("th",{children:y}),$e(c,1)]})}),e("tbody",{children:H((u=l,me(N,fe(u),1)),r=>{const s={valueId:r,store:l};return t("tr",{children:[rt(o,s),!1===h?null:e("th",{title:r,children:r}),e("td",{children:e(n,{...ae(a,r),...s})}),rt(c,s,1)]},r)})})]});var u};export{Ge as EditableCellView,Je as EditableValueView,Qe as RelationshipInHtmlRow,Ue as RelationshipInHtmlTable,Ye as ResultSortedTableInHtmlTable,Ze as ResultTableInHtmlTable,et as SliceInHtmlTable,tt as SortedTableInHtmlTable,Xe as SortedTablePaginator,lt as TableInHtmlTable,nt as ValuesInHtmlTable,We as useSortingAndPagination};
1
+ import{jsx as e,jsxs as t,Fragment as l}from"react/jsx-runtime";import r from"react";import{CellView as n,ResultCellView as a,ValueView as s}from"../ui-react/index.js";const o=e=>typeof e,c=o(""),i=o(!0),d=o(0),h=o(o),u="Result",m="Ids",C="Table",p="Row",b=p+"Count",f=p+m,I="Sorted"+p+m,g="Cell",x=g+m,y="Value",N=y+m,v="currentTarget",w="value",T="extra",k=e=>(t,l,r)=>e(t)?r?.():l(t),S=globalThis,R=Math.min,A=isFinite,B=e=>null==e,q=e=>void 0===e,P=e=>!1===e,E=k(B),L=k(q),O=e=>o(e)==c,V=e=>o(e)==h,j=e=>e.length,M=()=>{},F=(e,t)=>e.every(t),H=(e,t)=>j(e)===j(t)&&F(e,(e,l)=>t[l]===e),$=(e,t)=>e.map(t),_=Object,z=e=>_.getPrototypeOf(e),D=_.entries,G=e=>!B(e)&&E(z(e),e=>e==_.prototype||B(z(e)),()=>!0),J=_.keys,K=(e=[])=>_.fromEntries(e),Q=(e,t)=>$(D(e),([e,l])=>t(l,e)),U=(e,t)=>{const l=D(e);return j(l)===j(J(t))&&F(l,([e,l])=>G(l)?!!G(t[e])&&U(t[e],l):t[e]===l)},{PureComponent:W,createContext:X,useCallback:Y,useContext:Z,useEffect:ee,useLayoutEffect:te,useMemo:le,useRef:re,useState:ne,useSyncExternalStore:ae}=r,se=(e,...t)=>q(e)?{}:e(...t),oe="tinybase_uirc",ce=S[oe]?S[oe]:S[oe]=X([]),ie=(e,t)=>{const l=((e,t)=>{const l=Z(ce);return q(e)?l[2*t]:O(e)?((e,t)=>L(e,e=>e[t]))(l[2*t+1],e):e})(e,t);return q(e)||O(e)?l:e},de=[],he=[{},[],[de,void 0,de],void 0,!1,0],ue=[U,H,([e,t,l],[r,n,a])=>t===n&&H(e,r)&&H(l,a)],me=(e,t)=>e===t,Ce=(e,t,l,r=de)=>{const n=re(he[l]),a=Y(()=>{const a=t?.[(4==l?"has":"get")+e]?.(...r)??he[l];return(ue[l]??me)(a,n.current)?n.current:n.current=a},[t,l,e,...r]),s=Y(n=>((e,t,...l)=>{const r=e?.["add"+t+"Listener"]?.(...l);return()=>e?.delListener?.(r)})(t,(4==l?"Has":"")+e,...r,n),[t,l,e,...r]);return ae(s,a,a)},pe=(e,t,l,r=de,n=M,a=de,...s)=>{const o=Ie(e);return Y(e=>L(o,r=>L(l(e,r),l=>n(r["set"+t](...be(s,r,e),l),l))),[o,t,...r,...a,...fe(s)])},be=(e,t,l)=>$(e,e=>V(e)?e(l,t):e),fe=e=>{return t=e=>!V(e),e.filter(t);var t},Ie=e=>ie(e,0),ge=(e,t)=>Ce(C+x,Ie(t),1,[e]),xe=(e,t)=>Ce(f,Ie(t),1,[e]),ye=(e,t,l,r,n,a)=>((e,t,l,r,n,a)=>Ce(I,Ie(a),1,[e,t,l,r,n]))(...G(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,l,r,n,a]),Ne=(e,t,l,r)=>Ce(g,Ie(r),3,[e,t,l]),ve=(e,t)=>Ce(y,Ie(t),3,[e]),we=(e,t,l,r,n,a,s,o)=>pe(a,g,r,n,s,o,e,t,l),Te=(e,t,l,r,n,a)=>pe(r,y,t,l,n,a,e),ke=e=>ie(e,2),Se=(e,t,l)=>Ce("Slice"+f,ke(l),1,[e,t]),Re=e=>ie(e,3),Ae=e=>ie(e,4),Be=(e,t)=>Ce(u+C+x,Ae(t),1,[e]),qe=(e,t)=>Ce(u+f,Ae(t),1,[e]),Pe=(e,t,l,r=0,n,a)=>Ce(u+I,Ae(a),1,[e,t,l,r,n]),Ee=(e,t,l,r)=>e==c?t:e==d?l:e==i?r:null,Le=(e,t)=>le(()=>({store:e,tableId:t}),[e,t]),Oe=(e,t)=>le(()=>({queries:e,queryId:t}),[e,t]),Ve=(e,t,l)=>{const r=Y(e,t);return l?r:void 0},je=(...e)=>le(()=>e,e),Me=(e,t,l)=>le(()=>{const r=t??e;return n=Array.isArray(r)?K($(r,e=>[e,e])):r,a=(e,t)=>({label:t,component:l,...O(e)?{label:e}:e}),K(Q(n,(e,t)=>[t,a(e,t)]));var n,a},[t,l,e]),Fe="editable",He=(t=[],l,r=0)=>$(t,({component:t},n)=>e("td",{className:T,children:e(t,{...l})},$e(n,r))),$e=(e,t)=>(t?">":"<")+e,_e=(t=[],l=0)=>$(t,({label:t},r)=>e("th",{className:T,children:t},$e(r,l))),ze=({cellId:e,sort:[l,r],label:n=e??"",onClick:a})=>t("th",{onClick:Ve(()=>a?.(e),[a,e],a),className:q(r)||l!=e?void 0:`sorted ${r?"de":"a"}scending`,children:[q(r)||l!=e?null:(r?"↓":"↑")+" ",n]}),De=({className:l,headerRow:r,idColumn:n,params:[a,s,o,c,i,d,h,u]})=>t("table",{className:l,children:[u?e("caption",{children:u}):null,!1===r?null:e("thead",{children:t("tr",{children:[_e(c),!1===n?null:e(ze,{sort:d??[],label:"Id",onClick:h}),Q(a,({label:t},l)=>e(ze,{cellId:l,label:t,sort:d??[],onClick:h},l)),_e(i,1)]})}),e("tbody",{children:$(o,l=>{const r={...s,rowId:l};return t("tr",{children:[He(c,r),P(n)?null:e("th",{title:l,children:l}),Q(a,({component:t,getComponentProps:n},a)=>e("td",{children:e(t,{...se(n,l,a),...r,cellId:a})},a)),He(i,r,1)]},l)})})]}),Ge=({thing:l,onThingChange:r,className:n,hasSchema:a,showType:s=!0})=>{const[h,u]=ne(),[m,C]=ne(),[p,b]=ne(),[f,I]=ne(),[g,x]=ne();m!==l&&(u((e=>{if(null===e)return"null";const t=o(e);return(e=>e==c||e==i)(t)||t==d&&A(e)?t:void 0})(l)),C(l),b(l+""),I(Number(l)||0),x(!!l));const y=Y((e,t)=>{t(e),C(e),r(e)},[r]),N=Y(()=>{if(!a?.()){const e=Ee(h,d,i,c),t=Ee(e,p,f,g);u(e),C(t),r(t)}},[a,r,p,f,g,h]),T=Ee(h,e("input",{value:p,onChange:Y(e=>y(e[v][w]+"",b),[y])},h),e("input",{type:"number",value:f,onChange:Y(e=>y(Number(e[v][w]||0),I),[y])},h),e("input",{type:"checkbox",checked:g,onChange:Y(e=>y(!!e[v].checked,x),[y])},h));return t("div",{className:n,children:[s&&T?e("button",{title:h,className:h,onClick:N,children:h}):null,T]})},Je=({tableId:t,rowId:l,cellId:r,store:n,className:a,showType:s})=>e(Ge,{thing:Ne(t,l,r,n),onThingChange:we(t,l,r,e=>e,[],n),className:a??Fe+g,showType:s,hasSchema:Ie(n)?.hasTablesSchema}),Ke=({valueId:t,store:l,className:r,showType:n})=>e(Ge,{thing:ve(t,l),onThingChange:Te(t,e=>e,[],l),className:r??Fe+y,showType:n,hasSchema:Ie(l)?.hasValuesSchema}),Qe=(e,t)=>$(ge(e,t),t=>e+"."+t),Ue=({localRowId:r,params:[n,a,s,o,c,i,d,h,u]})=>{const m=((e,t,l)=>Ce("RemoteRowId",Re(l),3,[e,t]))(c,r,i),C={tableId:s??"",rowId:r,store:d};return t("tr",{children:[He(h,C),P(n)?null:t(l,{children:[e("th",{title:r,children:r}),e("th",{title:m,children:m})]}),Q(a,({component:t,getComponentProps:l},n)=>{const[a,c]=((e,t="",l)=>e.split(t,l))(n,".",2),i=a===s?r:a===o?m:void 0;return q(i)?null:e("td",{children:e(t,{...se(l,i,c),store:d,tableId:a,rowId:i,cellId:c})},n)}),He(u,C,1)]})},We=({relationshipId:r,relationships:a,editable:s,customCells:o,extraCellsBefore:c,extraCellsAfter:i,className:d,headerRow:h,idColumn:u=!0})=>{const[m,C,p,b]=((e,t)=>[e,e?.getStore(),e?.getLocalTableId(t),e?.getRemoteTableId(t)])(Re(a),r),f=Me([...Qe(p,C),...Qe(b,C)],o,s?Je:n),I=je(u,f,p,b,r,m,C,c,i);return t("table",{className:d,children:[P(h)?null:e("thead",{children:t("tr",{children:[_e(c),P(u)?null:t(l,{children:[t("th",{children:[p,".Id"]}),t("th",{children:[b,".Id"]})]}),Q(f,({label:t},l)=>e("th",{children:t},l)),_e(i,1)]})}),e("tbody",{children:$(xe(p,C),t=>e(Ue,{localRowId:t,params:I},t))})]})},Xe=(t,l=!1,r,n=0,a,s,o,c)=>{const[[i,d,h],u]=ne([t,l,n]),m=Y(e=>{u(e),c?.(e)},[c]),C=Ve(e=>m([e,e==i&&!d,h]),[m,i,d,h],r),p=Y(e=>m([i,d,e]),[m,i,d]),b=!0===o?Ye:o;return[[i,d,h],C,le(()=>P(o)?null:e(b,{offset:h,limit:a,total:s,onChange:p}),[o,b,h,a,s,p])]},Ye=({onChange:r,total:n,offset:a=0,limit:s=n,singular:o="row",plural:c=o+"s"})=>{(a>n||a<0)&&(a=0,r(0));const i=Ve(()=>r(a-s),[r,a,s],a>0),d=Ve(()=>r(a+s),[r,a,s],a+s<n);return t(l,{children:[n>s&&t(l,{children:[e("button",{className:"previous",disabled:0==a,onClick:i,children:"←"}),e("button",{className:"next",disabled:a+s>=n,onClick:d,children:"→"}),a+1," to ",R(n,a+s)," of "]}),n," ",1!=n?c:o]})},Ze=({queryId:t,cellId:l,descending:r,offset:n,limit:s,queries:o,sortOnClick:c,paginator:i=!1,customCells:d,extraCellsBefore:h,extraCellsAfter:m,onChange:C,...p})=>{const[f,I,g]=Xe(l,r,c,n,s,((e,t)=>Ce(u+b,Ae(t),5,[e]))(t,o),i,C);return e(De,{...p,params:je(Me(Be(t,o),d,a),Oe(o,t),Pe(t,...f,s,o),h,m,f,I,g)})},et=({queryId:t,queries:l,customCells:r,extraCellsBefore:n,extraCellsAfter:s,...o})=>e(De,{...o,params:je(Me(Be(t,l),r,a),Oe(l,t),qe(t,l),n,s)}),tt=({indexId:t,sliceId:l,indexes:r,editable:a,customCells:s,extraCellsBefore:o,extraCellsAfter:c,...i})=>{const[d,h,u]=((e,t)=>[e,e?.getStore(),e?.getTableId(t)])(ke(r),t);return e(De,{...i,params:je(Me(ge(u,h),s,a?Je:n),Le(h,u),Se(t,l,d),o,c)})},lt=({tableId:t,cellId:l,descending:r,offset:a,limit:s,store:o,editable:c,sortOnClick:i,paginator:d=!1,onChange:h,customCells:u,extraCellsBefore:m,extraCellsAfter:C,...p})=>{const[f,I,g]=Xe(l,r,i,a,s,((e,t)=>Ce(b,Ie(t),5,[e]))(t,o),d,h);return e(De,{...p,params:je(Me(ge(t,o),u,c?Je:n),Le(o,t),ye(t,...f,s,o),m,C,f,I,g)})},rt=({tableId:t,store:l,editable:r,customCells:a,extraCellsBefore:s,extraCellsAfter:o,...c})=>e(De,{...c,params:je(Me(ge(t,l),a,r?Je:n),Le(l,t),xe(t,l),s,o)}),nt=(t=[],l,r=0)=>$(t,({component:t},n)=>e("td",{className:T,children:e(t,{...l})},$e(n,r))),at=({store:l,editable:r=!1,valueComponent:n=(r?Ke:s),getValueComponentProps:a,extraCellsBefore:o,extraCellsAfter:c,className:i,headerRow:d,idColumn:h})=>{return t("table",{className:i,children:[!1===d?null:e("thead",{children:t("tr",{children:[_e(o),!1===h?null:e("th",{children:"Id"}),e("th",{children:y}),_e(c,1)]})}),e("tbody",{children:$((u=l,Ce(N,Ie(u),1)),r=>{const s={valueId:r,store:l};return t("tr",{children:[nt(o,s),P(h)?null:e("th",{title:r,children:r}),e("td",{children:e(n,{...se(a,r),...s})}),nt(c,s,1)]},r)})})]});var u};export{Je as EditableCellView,Ke as EditableValueView,Ue as RelationshipInHtmlRow,We as RelationshipInHtmlTable,Ze as ResultSortedTableInHtmlTable,et as ResultTableInHtmlTable,tt as SliceInHtmlTable,lt as SortedTableInHtmlTable,Ye as SortedTablePaginator,rt as TableInHtmlTable,at as ValuesInHtmlTable,Xe as useSortingAndPagination};
Binary file
@@ -1 +1 @@
1
- import{jsx as e,jsxs as t,Fragment as l}from"react/jsx-runtime";import r from"react";import{CellView as n,ResultCellView as a,ValueView as s}from"../../ui-react/with-schemas/index.js";const o=e=>typeof e,c=o(""),i=o(!0),d=o(0),h=o(o),u="Result",m="Ids",C="Table",p="Row",b=p+"Count",f=p+m,I="Sorted"+p+m,g="Cell",x=g+m,y="Value",N=y+m,v="currentTarget",w="value",T="extra",k=e=>(t,l,r)=>e(t)?r?.():l(t),S=globalThis,R=Math.min,A=isFinite,B=e=>null==e,q=e=>void 0===e,P=k(B),E=k(q),L=e=>o(e)==c,O=e=>o(e)==h,V=e=>e.length,j=()=>{},M=(e,t)=>e.every(t),F=(e,t)=>V(e)===V(t)&&M(e,(e,l)=>t[l]===e),H=(e,t)=>e.map(t),$=Object,_=e=>$.getPrototypeOf(e),z=$.entries,D=e=>!B(e)&&P(_(e),e=>e==$.prototype||B(_(e)),()=>!0),G=$.keys,J=(e=[])=>$.fromEntries(e),K=(e,t)=>H(z(e),([e,l])=>t(l,e)),Q=(e,t)=>{const l=z(e);return V(l)===V(G(t))&&M(l,([e,l])=>D(l)?!!D(t[e])&&Q(t[e],l):t[e]===l)},{PureComponent:U,createContext:W,useCallback:X,useContext:Y,useEffect:Z,useLayoutEffect:ee,useMemo:te,useRef:le,useState:re,useSyncExternalStore:ne}=r,ae=(e,...t)=>q(e)?{}:e(...t),se="tinybase_uirc",oe=S[se]?S[se]:S[se]=W([]),ce=(e,t)=>{const l=((e,t)=>{const l=Y(oe);return q(e)?l[2*t]:L(e)?((e,t)=>E(e,e=>e[t]))(l[2*t+1],e):e})(e,t);return q(e)||L(e)?l:e},ie=[],de=[{},[],[ie,void 0,ie],void 0,!1,0],he=[Q,F,([e,t,l],[r,n,a])=>t===n&&F(e,r)&&F(l,a)],ue=(e,t)=>e===t,me=(e,t,l,r=ie)=>{const n=le(de[l]),a=X(()=>{const a=t?.[(4==l?"has":"get")+e]?.(...r)??de[l];return(he[l]??ue)(a,n.current)?n.current:n.current=a},[t,l,e,...r]),s=X(n=>((e,t,...l)=>{const r=e?.["add"+t+"Listener"]?.(...l);return()=>e?.delListener?.(r)})(t,(4==l?"Has":"")+e,...r,n),[t,l,e,...r]);return ne(s,a,a)},Ce=(e,t,l,r=ie,n=j,a=ie,...s)=>{const o=fe(e);return X(e=>E(o,r=>E(l(e,r),l=>n(r["set"+t](...pe(s,r,e),l),l))),[o,t,...r,...a,...be(s)])},pe=(e,t,l)=>H(e,e=>O(e)?e(l,t):e),be=e=>{return t=e=>!O(e),e.filter(t);var t},fe=e=>ce(e,0),Ie=(e,t)=>me(C+x,fe(t),1,[e]),ge=(e,t)=>me(f,fe(t),1,[e]),xe=(e,t,l,r,n,a)=>((e,t,l,r,n,a)=>me(I,fe(a),1,[e,t,l,r,n]))(...D(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,l,r,n,a]),ye=(e,t,l,r)=>me(g,fe(r),3,[e,t,l]),Ne=(e,t)=>me(y,fe(t),3,[e]),ve=(e,t,l,r,n,a,s,o)=>Ce(a,g,r,n,s,o,e,t,l),we=(e,t,l,r,n,a)=>Ce(r,y,t,l,n,a,e),Te=e=>ce(e,2),ke=(e,t,l)=>me("Slice"+f,Te(l),1,[e,t]),Se=e=>ce(e,3),Re=e=>ce(e,4),Ae=(e,t)=>me(u+C+x,Re(t),1,[e]),Be=(e,t)=>me(u+f,Re(t),1,[e]),qe=(e,t,l,r=0,n,a)=>me(u+I,Re(a),1,[e,t,l,r,n]),Pe=(e,t,l,r)=>e==c?t:e==d?l:e==i?r:null,Ee=(e,t)=>te(()=>({store:e,tableId:t}),[e,t]),Le=(e,t)=>te(()=>({queries:e,queryId:t}),[e,t]),Oe=(e,t,l)=>{const r=X(e,t);return l?r:void 0},Ve=(...e)=>te(()=>e,e),je=(e,t,l)=>te(()=>{const r=t??e;return n=Array.isArray(r)?J(H(r,e=>[e,e])):r,a=(e,t)=>({label:t,component:l,...L(e)?{label:e}:e}),J(K(n,(e,t)=>[t,a(e,t)]));var n,a},[t,l,e]),Me="editable",Fe=(t=[],l,r=0)=>H(t,({component:t},n)=>e("td",{className:T,children:e(t,{...l})},He(n,r))),He=(e,t)=>(t?">":"<")+e,$e=(t=[],l=0)=>H(t,({label:t},r)=>e("th",{className:T,children:t},He(r,l))),_e=({cellId:e,sort:[l,r],label:n=e??"",onClick:a})=>t("th",{onClick:Oe(()=>a?.(e),[a,e],a),className:q(r)||l!=e?void 0:`sorted ${r?"de":"a"}scending`,children:[q(r)||l!=e?null:(r?"↓":"↑")+" ",n]}),ze=({className:l,headerRow:r,idColumn:n,params:[a,s,o,c,i,d,h,u]})=>t("table",{className:l,children:[u?e("caption",{children:u}):null,!1===r?null:e("thead",{children:t("tr",{children:[$e(c),!1===n?null:e(_e,{sort:d??[],label:"Id",onClick:h}),K(a,({label:t},l)=>e(_e,{cellId:l,label:t,sort:d??[],onClick:h},l)),$e(i,1)]})}),e("tbody",{children:H(o,l=>{const r={...s,rowId:l};return t("tr",{children:[Fe(c,r),!1===n?null:e("th",{title:l,children:l}),K(a,({component:t,getComponentProps:n},a)=>e("td",{children:e(t,{...ae(n,l,a),...r,cellId:a})},a)),Fe(i,r,1)]},l)})})]}),De=({thing:l,onThingChange:r,className:n,hasSchema:a,showType:s=!0})=>{const[h,u]=re(),[m,C]=re(),[p,b]=re(),[f,I]=re(),[g,x]=re();m!==l&&(u((e=>{if(null===e)return"null";const t=o(e);return(e=>e==c||e==i)(t)||t==d&&A(e)?t:void 0})(l)),C(l),b(l+""),I(Number(l)||0),x(!!l));const y=X((e,t)=>{t(e),C(e),r(e)},[r]),N=X(()=>{if(!a?.()){const e=Pe(h,d,i,c),t=Pe(e,p,f,g);u(e),C(t),r(t)}},[a,r,p,f,g,h]),T=Pe(h,e("input",{value:p,onChange:X(e=>y(e[v][w]+"",b),[y])},h),e("input",{type:"number",value:f,onChange:X(e=>y(Number(e[v][w]||0),I),[y])},h),e("input",{type:"checkbox",checked:g,onChange:X(e=>y(!!e[v].checked,x),[y])},h));return t("div",{className:n,children:[s&&T?e("button",{title:h,className:h,onClick:N,children:h}):null,T]})},Ge=({tableId:t,rowId:l,cellId:r,store:n,className:a,showType:s})=>e(De,{thing:ye(t,l,r,n),onThingChange:ve(t,l,r,e=>e,[],n),className:a??Me+g,showType:s,hasSchema:fe(n)?.hasTablesSchema}),Je=({valueId:t,store:l,className:r,showType:n})=>e(De,{thing:Ne(t,l),onThingChange:we(t,e=>e,[],l),className:r??Me+y,showType:n,hasSchema:fe(l)?.hasValuesSchema}),Ke=(e,t)=>H(Ie(e,t),t=>e+"."+t),Qe=({localRowId:r,params:[n,a,s,o,c,i,d,h,u]})=>{const m=((e,t,l)=>me("RemoteRowId",Se(l),3,[e,t]))(c,r,i),C={tableId:s??"",rowId:r,store:d};return t("tr",{children:[Fe(h,C),!1===n?null:t(l,{children:[e("th",{title:r,children:r}),e("th",{title:m,children:m})]}),K(a,({component:t,getComponentProps:l},n)=>{const[a,c]=((e,t="",l)=>e.split(t,l))(n,".",2),i=a===s?r:a===o?m:void 0;return q(i)?null:e("td",{children:e(t,{...ae(l,i,c),store:d,tableId:a,rowId:i,cellId:c})},n)}),Fe(u,C,1)]})},Ue=({relationshipId:r,relationships:a,editable:s,customCells:o,extraCellsBefore:c,extraCellsAfter:i,className:d,headerRow:h,idColumn:u=!0})=>{const[m,C,p,b]=((e,t)=>[e,e?.getStore(),e?.getLocalTableId(t),e?.getRemoteTableId(t)])(Se(a),r),f=je([...Ke(p,C),...Ke(b,C)],o,s?Ge:n),I=Ve(u,f,p,b,r,m,C,c,i);return t("table",{className:d,children:[!1===h?null:e("thead",{children:t("tr",{children:[$e(c),!1===u?null:t(l,{children:[t("th",{children:[p,".Id"]}),t("th",{children:[b,".Id"]})]}),K(f,({label:t},l)=>e("th",{children:t},l)),$e(i,1)]})}),e("tbody",{children:H(ge(p,C),t=>e(Qe,{localRowId:t,params:I},t))})]})},We=(t,l=!1,r,n=0,a,s,o,c)=>{const[[i,d,h],u]=re([t,l,n]),m=X(e=>{u(e),c?.(e)},[c]),C=Oe(e=>m([e,e==i&&!d,h]),[m,i,d,h],r),p=X(e=>m([i,d,e]),[m,i,d]),b=!0===o?Xe:o;return[[i,d,h],C,te(()=>!1===o?null:e(b,{offset:h,limit:a,total:s,onChange:p}),[o,b,h,a,s,p])]},Xe=({onChange:r,total:n,offset:a=0,limit:s=n,singular:o="row",plural:c=o+"s"})=>{(a>n||a<0)&&(a=0,r(0));const i=Oe(()=>r(a-s),[r,a,s],a>0),d=Oe(()=>r(a+s),[r,a,s],a+s<n);return t(l,{children:[n>s&&t(l,{children:[e("button",{className:"previous",disabled:0==a,onClick:i,children:"←"}),e("button",{className:"next",disabled:a+s>=n,onClick:d,children:"→"}),a+1," to ",R(n,a+s)," of "]}),n," ",1!=n?c:o]})},Ye=({queryId:t,cellId:l,descending:r,offset:n,limit:s,queries:o,sortOnClick:c,paginator:i=!1,customCells:d,extraCellsBefore:h,extraCellsAfter:m,onChange:C,...p})=>{const[f,I,g]=We(l,r,c,n,s,((e,t)=>me(u+b,Re(t),5,[e]))(t,o),i,C);return e(ze,{...p,params:Ve(je(Ae(t,o),d,a),Le(o,t),qe(t,...f,s,o),h,m,f,I,g)})},Ze=({queryId:t,queries:l,customCells:r,extraCellsBefore:n,extraCellsAfter:s,...o})=>e(ze,{...o,params:Ve(je(Ae(t,l),r,a),Le(l,t),Be(t,l),n,s)}),et=({indexId:t,sliceId:l,indexes:r,editable:a,customCells:s,extraCellsBefore:o,extraCellsAfter:c,...i})=>{const[d,h,u]=((e,t)=>[e,e?.getStore(),e?.getTableId(t)])(Te(r),t);return e(ze,{...i,params:Ve(je(Ie(u,h),s,a?Ge:n),Ee(h,u),ke(t,l,d),o,c)})},tt=({tableId:t,cellId:l,descending:r,offset:a,limit:s,store:o,editable:c,sortOnClick:i,paginator:d=!1,onChange:h,customCells:u,extraCellsBefore:m,extraCellsAfter:C,...p})=>{const[f,I,g]=We(l,r,i,a,s,((e,t)=>me(b,fe(t),5,[e]))(t,o),d,h);return e(ze,{...p,params:Ve(je(Ie(t,o),u,c?Ge:n),Ee(o,t),xe(t,...f,s,o),m,C,f,I,g)})},lt=({tableId:t,store:l,editable:r,customCells:a,extraCellsBefore:s,extraCellsAfter:o,...c})=>e(ze,{...c,params:Ve(je(Ie(t,l),a,r?Ge:n),Ee(l,t),ge(t,l),s,o)}),rt=(t=[],l,r=0)=>H(t,({component:t},n)=>e("td",{className:T,children:e(t,{...l})},He(n,r))),nt=({store:l,editable:r=!1,valueComponent:n=(r?Je:s),getValueComponentProps:a,extraCellsBefore:o,extraCellsAfter:c,className:i,headerRow:d,idColumn:h})=>{return t("table",{className:i,children:[!1===d?null:e("thead",{children:t("tr",{children:[$e(o),!1===h?null:e("th",{children:"Id"}),e("th",{children:y}),$e(c,1)]})}),e("tbody",{children:H((u=l,me(N,fe(u),1)),r=>{const s={valueId:r,store:l};return t("tr",{children:[rt(o,s),!1===h?null:e("th",{title:r,children:r}),e("td",{children:e(n,{...ae(a,r),...s})}),rt(c,s,1)]},r)})})]});var u};export{Ge as EditableCellView,Je as EditableValueView,Qe as RelationshipInHtmlRow,Ue as RelationshipInHtmlTable,Ye as ResultSortedTableInHtmlTable,Ze as ResultTableInHtmlTable,et as SliceInHtmlTable,tt as SortedTableInHtmlTable,Xe as SortedTablePaginator,lt as TableInHtmlTable,nt as ValuesInHtmlTable,We as useSortingAndPagination};
1
+ import{jsx as e,jsxs as t,Fragment as l}from"react/jsx-runtime";import r from"react";import{CellView as n,ResultCellView as a,ValueView as s}from"../../ui-react/with-schemas/index.js";const o=e=>typeof e,c=o(""),i=o(!0),d=o(0),h=o(o),u="Result",m="Ids",C="Table",p="Row",b=p+"Count",f=p+m,I="Sorted"+p+m,g="Cell",x=g+m,y="Value",N=y+m,v="currentTarget",w="value",T="extra",k=e=>(t,l,r)=>e(t)?r?.():l(t),S=globalThis,R=Math.min,A=isFinite,B=e=>null==e,q=e=>void 0===e,P=e=>!1===e,E=k(B),L=k(q),O=e=>o(e)==c,V=e=>o(e)==h,j=e=>e.length,M=()=>{},F=(e,t)=>e.every(t),H=(e,t)=>j(e)===j(t)&&F(e,(e,l)=>t[l]===e),$=(e,t)=>e.map(t),_=Object,z=e=>_.getPrototypeOf(e),D=_.entries,G=e=>!B(e)&&E(z(e),e=>e==_.prototype||B(z(e)),()=>!0),J=_.keys,K=(e=[])=>_.fromEntries(e),Q=(e,t)=>$(D(e),([e,l])=>t(l,e)),U=(e,t)=>{const l=D(e);return j(l)===j(J(t))&&F(l,([e,l])=>G(l)?!!G(t[e])&&U(t[e],l):t[e]===l)},{PureComponent:W,createContext:X,useCallback:Y,useContext:Z,useEffect:ee,useLayoutEffect:te,useMemo:le,useRef:re,useState:ne,useSyncExternalStore:ae}=r,se=(e,...t)=>q(e)?{}:e(...t),oe="tinybase_uirc",ce=S[oe]?S[oe]:S[oe]=X([]),ie=(e,t)=>{const l=((e,t)=>{const l=Z(ce);return q(e)?l[2*t]:O(e)?((e,t)=>L(e,e=>e[t]))(l[2*t+1],e):e})(e,t);return q(e)||O(e)?l:e},de=[],he=[{},[],[de,void 0,de],void 0,!1,0],ue=[U,H,([e,t,l],[r,n,a])=>t===n&&H(e,r)&&H(l,a)],me=(e,t)=>e===t,Ce=(e,t,l,r=de)=>{const n=re(he[l]),a=Y(()=>{const a=t?.[(4==l?"has":"get")+e]?.(...r)??he[l];return(ue[l]??me)(a,n.current)?n.current:n.current=a},[t,l,e,...r]),s=Y(n=>((e,t,...l)=>{const r=e?.["add"+t+"Listener"]?.(...l);return()=>e?.delListener?.(r)})(t,(4==l?"Has":"")+e,...r,n),[t,l,e,...r]);return ae(s,a,a)},pe=(e,t,l,r=de,n=M,a=de,...s)=>{const o=Ie(e);return Y(e=>L(o,r=>L(l(e,r),l=>n(r["set"+t](...be(s,r,e),l),l))),[o,t,...r,...a,...fe(s)])},be=(e,t,l)=>$(e,e=>V(e)?e(l,t):e),fe=e=>{return t=e=>!V(e),e.filter(t);var t},Ie=e=>ie(e,0),ge=(e,t)=>Ce(C+x,Ie(t),1,[e]),xe=(e,t)=>Ce(f,Ie(t),1,[e]),ye=(e,t,l,r,n,a)=>((e,t,l,r,n,a)=>Ce(I,Ie(a),1,[e,t,l,r,n]))(...G(e)?[e.tableId,e.cellId,e.descending??!1,e.offset??0,e.limit,t]:[e,t,l,r,n,a]),Ne=(e,t,l,r)=>Ce(g,Ie(r),3,[e,t,l]),ve=(e,t)=>Ce(y,Ie(t),3,[e]),we=(e,t,l,r,n,a,s,o)=>pe(a,g,r,n,s,o,e,t,l),Te=(e,t,l,r,n,a)=>pe(r,y,t,l,n,a,e),ke=e=>ie(e,2),Se=(e,t,l)=>Ce("Slice"+f,ke(l),1,[e,t]),Re=e=>ie(e,3),Ae=e=>ie(e,4),Be=(e,t)=>Ce(u+C+x,Ae(t),1,[e]),qe=(e,t)=>Ce(u+f,Ae(t),1,[e]),Pe=(e,t,l,r=0,n,a)=>Ce(u+I,Ae(a),1,[e,t,l,r,n]),Ee=(e,t,l,r)=>e==c?t:e==d?l:e==i?r:null,Le=(e,t)=>le(()=>({store:e,tableId:t}),[e,t]),Oe=(e,t)=>le(()=>({queries:e,queryId:t}),[e,t]),Ve=(e,t,l)=>{const r=Y(e,t);return l?r:void 0},je=(...e)=>le(()=>e,e),Me=(e,t,l)=>le(()=>{const r=t??e;return n=Array.isArray(r)?K($(r,e=>[e,e])):r,a=(e,t)=>({label:t,component:l,...O(e)?{label:e}:e}),K(Q(n,(e,t)=>[t,a(e,t)]));var n,a},[t,l,e]),Fe="editable",He=(t=[],l,r=0)=>$(t,({component:t},n)=>e("td",{className:T,children:e(t,{...l})},$e(n,r))),$e=(e,t)=>(t?">":"<")+e,_e=(t=[],l=0)=>$(t,({label:t},r)=>e("th",{className:T,children:t},$e(r,l))),ze=({cellId:e,sort:[l,r],label:n=e??"",onClick:a})=>t("th",{onClick:Ve(()=>a?.(e),[a,e],a),className:q(r)||l!=e?void 0:`sorted ${r?"de":"a"}scending`,children:[q(r)||l!=e?null:(r?"↓":"↑")+" ",n]}),De=({className:l,headerRow:r,idColumn:n,params:[a,s,o,c,i,d,h,u]})=>t("table",{className:l,children:[u?e("caption",{children:u}):null,!1===r?null:e("thead",{children:t("tr",{children:[_e(c),!1===n?null:e(ze,{sort:d??[],label:"Id",onClick:h}),Q(a,({label:t},l)=>e(ze,{cellId:l,label:t,sort:d??[],onClick:h},l)),_e(i,1)]})}),e("tbody",{children:$(o,l=>{const r={...s,rowId:l};return t("tr",{children:[He(c,r),P(n)?null:e("th",{title:l,children:l}),Q(a,({component:t,getComponentProps:n},a)=>e("td",{children:e(t,{...se(n,l,a),...r,cellId:a})},a)),He(i,r,1)]},l)})})]}),Ge=({thing:l,onThingChange:r,className:n,hasSchema:a,showType:s=!0})=>{const[h,u]=ne(),[m,C]=ne(),[p,b]=ne(),[f,I]=ne(),[g,x]=ne();m!==l&&(u((e=>{if(null===e)return"null";const t=o(e);return(e=>e==c||e==i)(t)||t==d&&A(e)?t:void 0})(l)),C(l),b(l+""),I(Number(l)||0),x(!!l));const y=Y((e,t)=>{t(e),C(e),r(e)},[r]),N=Y(()=>{if(!a?.()){const e=Ee(h,d,i,c),t=Ee(e,p,f,g);u(e),C(t),r(t)}},[a,r,p,f,g,h]),T=Ee(h,e("input",{value:p,onChange:Y(e=>y(e[v][w]+"",b),[y])},h),e("input",{type:"number",value:f,onChange:Y(e=>y(Number(e[v][w]||0),I),[y])},h),e("input",{type:"checkbox",checked:g,onChange:Y(e=>y(!!e[v].checked,x),[y])},h));return t("div",{className:n,children:[s&&T?e("button",{title:h,className:h,onClick:N,children:h}):null,T]})},Je=({tableId:t,rowId:l,cellId:r,store:n,className:a,showType:s})=>e(Ge,{thing:Ne(t,l,r,n),onThingChange:we(t,l,r,e=>e,[],n),className:a??Fe+g,showType:s,hasSchema:Ie(n)?.hasTablesSchema}),Ke=({valueId:t,store:l,className:r,showType:n})=>e(Ge,{thing:ve(t,l),onThingChange:Te(t,e=>e,[],l),className:r??Fe+y,showType:n,hasSchema:Ie(l)?.hasValuesSchema}),Qe=(e,t)=>$(ge(e,t),t=>e+"."+t),Ue=({localRowId:r,params:[n,a,s,o,c,i,d,h,u]})=>{const m=((e,t,l)=>Ce("RemoteRowId",Re(l),3,[e,t]))(c,r,i),C={tableId:s??"",rowId:r,store:d};return t("tr",{children:[He(h,C),P(n)?null:t(l,{children:[e("th",{title:r,children:r}),e("th",{title:m,children:m})]}),Q(a,({component:t,getComponentProps:l},n)=>{const[a,c]=((e,t="",l)=>e.split(t,l))(n,".",2),i=a===s?r:a===o?m:void 0;return q(i)?null:e("td",{children:e(t,{...se(l,i,c),store:d,tableId:a,rowId:i,cellId:c})},n)}),He(u,C,1)]})},We=({relationshipId:r,relationships:a,editable:s,customCells:o,extraCellsBefore:c,extraCellsAfter:i,className:d,headerRow:h,idColumn:u=!0})=>{const[m,C,p,b]=((e,t)=>[e,e?.getStore(),e?.getLocalTableId(t),e?.getRemoteTableId(t)])(Re(a),r),f=Me([...Qe(p,C),...Qe(b,C)],o,s?Je:n),I=je(u,f,p,b,r,m,C,c,i);return t("table",{className:d,children:[P(h)?null:e("thead",{children:t("tr",{children:[_e(c),P(u)?null:t(l,{children:[t("th",{children:[p,".Id"]}),t("th",{children:[b,".Id"]})]}),Q(f,({label:t},l)=>e("th",{children:t},l)),_e(i,1)]})}),e("tbody",{children:$(xe(p,C),t=>e(Ue,{localRowId:t,params:I},t))})]})},Xe=(t,l=!1,r,n=0,a,s,o,c)=>{const[[i,d,h],u]=ne([t,l,n]),m=Y(e=>{u(e),c?.(e)},[c]),C=Ve(e=>m([e,e==i&&!d,h]),[m,i,d,h],r),p=Y(e=>m([i,d,e]),[m,i,d]),b=!0===o?Ye:o;return[[i,d,h],C,le(()=>P(o)?null:e(b,{offset:h,limit:a,total:s,onChange:p}),[o,b,h,a,s,p])]},Ye=({onChange:r,total:n,offset:a=0,limit:s=n,singular:o="row",plural:c=o+"s"})=>{(a>n||a<0)&&(a=0,r(0));const i=Ve(()=>r(a-s),[r,a,s],a>0),d=Ve(()=>r(a+s),[r,a,s],a+s<n);return t(l,{children:[n>s&&t(l,{children:[e("button",{className:"previous",disabled:0==a,onClick:i,children:"←"}),e("button",{className:"next",disabled:a+s>=n,onClick:d,children:"→"}),a+1," to ",R(n,a+s)," of "]}),n," ",1!=n?c:o]})},Ze=({queryId:t,cellId:l,descending:r,offset:n,limit:s,queries:o,sortOnClick:c,paginator:i=!1,customCells:d,extraCellsBefore:h,extraCellsAfter:m,onChange:C,...p})=>{const[f,I,g]=Xe(l,r,c,n,s,((e,t)=>Ce(u+b,Ae(t),5,[e]))(t,o),i,C);return e(De,{...p,params:je(Me(Be(t,o),d,a),Oe(o,t),Pe(t,...f,s,o),h,m,f,I,g)})},et=({queryId:t,queries:l,customCells:r,extraCellsBefore:n,extraCellsAfter:s,...o})=>e(De,{...o,params:je(Me(Be(t,l),r,a),Oe(l,t),qe(t,l),n,s)}),tt=({indexId:t,sliceId:l,indexes:r,editable:a,customCells:s,extraCellsBefore:o,extraCellsAfter:c,...i})=>{const[d,h,u]=((e,t)=>[e,e?.getStore(),e?.getTableId(t)])(ke(r),t);return e(De,{...i,params:je(Me(ge(u,h),s,a?Je:n),Le(h,u),Se(t,l,d),o,c)})},lt=({tableId:t,cellId:l,descending:r,offset:a,limit:s,store:o,editable:c,sortOnClick:i,paginator:d=!1,onChange:h,customCells:u,extraCellsBefore:m,extraCellsAfter:C,...p})=>{const[f,I,g]=Xe(l,r,i,a,s,((e,t)=>Ce(b,Ie(t),5,[e]))(t,o),d,h);return e(De,{...p,params:je(Me(ge(t,o),u,c?Je:n),Le(o,t),ye(t,...f,s,o),m,C,f,I,g)})},rt=({tableId:t,store:l,editable:r,customCells:a,extraCellsBefore:s,extraCellsAfter:o,...c})=>e(De,{...c,params:je(Me(ge(t,l),a,r?Je:n),Le(l,t),xe(t,l),s,o)}),nt=(t=[],l,r=0)=>$(t,({component:t},n)=>e("td",{className:T,children:e(t,{...l})},$e(n,r))),at=({store:l,editable:r=!1,valueComponent:n=(r?Ke:s),getValueComponentProps:a,extraCellsBefore:o,extraCellsAfter:c,className:i,headerRow:d,idColumn:h})=>{return t("table",{className:i,children:[!1===d?null:e("thead",{children:t("tr",{children:[_e(o),!1===h?null:e("th",{children:"Id"}),e("th",{children:y}),_e(c,1)]})}),e("tbody",{children:$((u=l,Ce(N,Ie(u),1)),r=>{const s={valueId:r,store:l};return t("tr",{children:[nt(o,s),P(h)?null:e("th",{title:r,children:r}),e("td",{children:e(n,{...se(a,r),...s})}),nt(c,s,1)]},r)})})]});var u};export{Je as EditableCellView,Ke as EditableValueView,Ue as RelationshipInHtmlRow,We as RelationshipInHtmlTable,Ze as ResultSortedTableInHtmlTable,et as ResultTableInHtmlTable,tt as SliceInHtmlTable,lt as SortedTableInHtmlTable,Ye as SortedTablePaginator,rt as TableInHtmlTable,at as ValuesInHtmlTable,Xe as useSortingAndPagination};