@omujs/omu 0.9.10 → 0.9.26

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 (458) hide show
  1. package/CHANGELOG.md +146 -0
  2. package/README.md +0 -1
  3. package/dist/dts/address.d.ts +4 -4
  4. package/dist/dts/api/asset/extension.d.ts +25 -0
  5. package/dist/dts/api/asset/index.d.ts +2 -0
  6. package/dist/dts/api/dashboard/extension.d.ts +186 -0
  7. package/dist/dts/api/dashboard/handler.d.ts +21 -0
  8. package/dist/dts/api/dashboard/index.d.ts +3 -0
  9. package/dist/dts/api/dashboard/packets.d.ts +73 -0
  10. package/dist/dts/api/endpoint/endpoint.d.ts +32 -0
  11. package/dist/dts/api/endpoint/extension.d.ts +23 -0
  12. package/dist/dts/api/endpoint/index.d.ts +2 -0
  13. package/dist/dts/api/endpoint/packets.d.ts +51 -0
  14. package/dist/dts/api/extension-registry.d.ts +8 -0
  15. package/dist/dts/api/extension.d.ts +11 -0
  16. package/dist/dts/api/http/extension.d.ts +174 -0
  17. package/dist/dts/api/http/index.d.ts +1 -0
  18. package/dist/dts/api/i18n/extension.d.ts +22 -0
  19. package/dist/dts/api/i18n/index.d.ts +1 -0
  20. package/dist/dts/api/index.d.ts +2 -0
  21. package/dist/dts/api/logger/extension.d.ts +25 -0
  22. package/dist/dts/api/logger/index.d.ts +1 -0
  23. package/dist/dts/api/logger/packets.d.ts +18 -0
  24. package/dist/dts/api/permission/extension.d.ts +18 -0
  25. package/dist/dts/api/permission/index.d.ts +1 -0
  26. package/dist/dts/api/permission/permission.d.ts +25 -0
  27. package/dist/dts/api/plugin/extension.d.ts +43 -0
  28. package/dist/dts/api/plugin/index.d.ts +2 -0
  29. package/dist/dts/api/plugin/package-info.d.ts +84 -0
  30. package/dist/dts/api/registry/extension.d.ts +26 -0
  31. package/dist/dts/api/registry/index.d.ts +2 -0
  32. package/dist/dts/api/registry/packets.d.ts +20 -0
  33. package/dist/dts/api/registry/registry.d.ts +44 -0
  34. package/dist/dts/api/server/extension.d.ts +47 -0
  35. package/dist/dts/api/server/index.d.ts +1 -0
  36. package/dist/dts/api/session/extension.d.ts +51 -0
  37. package/dist/dts/api/session/index.d.ts +1 -0
  38. package/dist/dts/api/signal/extension.d.ts +22 -0
  39. package/dist/dts/api/signal/index.d.ts +1 -0
  40. package/dist/dts/api/signal/packets.d.ts +21 -0
  41. package/dist/dts/api/signal/signal.d.ts +33 -0
  42. package/dist/dts/api/table/extension.d.ts +29 -0
  43. package/dist/dts/api/table/index.d.ts +2 -0
  44. package/dist/dts/api/table/packets.d.ts +65 -0
  45. package/dist/dts/api/table/table.d.ts +76 -0
  46. package/dist/dts/app.d.ts +44 -37
  47. package/dist/dts/const.d.ts +0 -1
  48. package/dist/dts/errors.d.ts +18 -13
  49. package/dist/dts/event/index.d.ts +6 -0
  50. package/dist/dts/helper.d.ts +13 -0
  51. package/dist/dts/identifier.d.ts +45 -39
  52. package/dist/dts/index.d.ts +37 -7
  53. package/dist/dts/localization/index.d.ts +2 -3
  54. package/dist/dts/localization/locale.d.ts +732 -733
  55. package/dist/dts/localization/localization.d.ts +3 -6
  56. package/dist/dts/lock.d.ts +6 -0
  57. package/dist/dts/network/connection.d.ts +13 -13
  58. package/dist/dts/network/encryption.d.ts +38 -0
  59. package/dist/dts/network/frame-transport.d.ts +22 -0
  60. package/dist/dts/network/index.d.ts +5 -4
  61. package/dist/dts/network/network.d.ts +52 -51
  62. package/dist/dts/network/packet/index.d.ts +2 -3
  63. package/dist/dts/network/packet/packet-types.d.ts +73 -52
  64. package/dist/dts/network/packet/packet.d.ts +26 -22
  65. package/dist/dts/network/websocket-transport.d.ts +24 -0
  66. package/dist/dts/omu.d.ts +60 -49
  67. package/dist/dts/serialize/bytebuffer.d.ts +71 -0
  68. package/dist/dts/serialize/index.d.ts +2 -0
  69. package/dist/dts/serialize/serializer.d.ts +38 -0
  70. package/dist/dts/token.d.ts +11 -10
  71. package/dist/dts/version.d.ts +1 -2
  72. package/dist/esm/address.js +4 -2
  73. package/dist/esm/api/asset/extension.js +877 -0
  74. package/dist/esm/api/asset/index.js +875 -0
  75. package/dist/esm/api/dashboard/extension.js +1281 -0
  76. package/dist/esm/api/dashboard/handler.js +4 -0
  77. package/dist/esm/api/dashboard/index.js +1279 -0
  78. package/dist/esm/api/dashboard/packets.js +413 -0
  79. package/dist/esm/api/endpoint/endpoint.js +380 -0
  80. package/dist/esm/api/endpoint/extension.js +1087 -0
  81. package/dist/esm/api/endpoint/index.js +380 -0
  82. package/dist/esm/api/endpoint/packets.js +790 -0
  83. package/dist/esm/api/extension-registry.js +23 -0
  84. package/dist/esm/api/extension.js +275 -0
  85. package/dist/esm/api/http/extension.js +1426 -0
  86. package/dist/esm/api/http/index.js +1312 -0
  87. package/dist/esm/api/i18n/extension.js +1237 -0
  88. package/dist/esm/api/i18n/index.js +1235 -0
  89. package/dist/esm/api/index.js +292 -0
  90. package/dist/esm/api/logger/extension.js +847 -0
  91. package/dist/esm/api/logger/index.js +843 -0
  92. package/dist/esm/api/logger/packets.js +664 -0
  93. package/dist/esm/api/permission/extension.js +529 -0
  94. package/dist/esm/api/permission/index.js +291 -0
  95. package/dist/esm/api/permission/permission.js +291 -0
  96. package/dist/esm/api/plugin/extension.js +528 -0
  97. package/dist/esm/api/plugin/index.js +526 -0
  98. package/dist/esm/api/plugin/package-info.js +4 -0
  99. package/dist/esm/api/registry/extension.js +1170 -0
  100. package/dist/esm/api/registry/index.js +1169 -0
  101. package/dist/esm/api/registry/packets.js +685 -0
  102. package/dist/esm/api/registry/registry.js +380 -0
  103. package/dist/esm/api/server/extension.js +2009 -0
  104. package/dist/esm/api/server/index.js +1987 -0
  105. package/dist/esm/api/session/extension.js +2111 -0
  106. package/dist/esm/api/session/index.js +2111 -0
  107. package/dist/esm/api/signal/extension.js +1022 -0
  108. package/dist/esm/api/signal/index.js +376 -0
  109. package/dist/esm/api/signal/packets.js +681 -0
  110. package/dist/esm/api/signal/signal.js +376 -0
  111. package/dist/esm/api/table/extension.js +1544 -0
  112. package/dist/esm/api/table/index.js +1543 -0
  113. package/dist/esm/api/table/packets.js +895 -0
  114. package/dist/esm/api/table/table.js +380 -0
  115. package/dist/esm/app.js +259 -40
  116. package/dist/esm/const.js +11 -3
  117. package/dist/esm/errors.js +533 -40
  118. package/dist/esm/event/index.js +22 -0
  119. package/dist/esm/helper.js +15 -0
  120. package/dist/esm/identifier.js +244 -139
  121. package/dist/esm/index.js +4837 -6
  122. package/dist/esm/localization/index.js +742 -2
  123. package/dist/esm/localization/locale.js +741 -735
  124. package/dist/esm/localization/localization.js +4 -2
  125. package/dist/esm/lock.js +46 -0
  126. package/dist/esm/network/connection.js +288 -27
  127. package/dist/esm/network/encryption.js +977 -0
  128. package/dist/esm/network/frame-transport.js +525 -0
  129. package/dist/esm/network/index.js +1614 -2
  130. package/dist/esm/network/network.js +1337 -195
  131. package/dist/esm/network/packet/index.js +482 -2
  132. package/dist/esm/network/packet/packet-types.js +478 -80
  133. package/dist/esm/network/packet/packet.js +125 -16
  134. package/dist/esm/network/websocket-transport.js +487 -0
  135. package/dist/esm/omu.js +4621 -91
  136. package/dist/esm/serialize/bytebuffer.js +378 -0
  137. package/dist/esm/serialize/index.js +465 -0
  138. package/dist/esm/serialize/serializer.js +97 -0
  139. package/dist/esm/token.js +42 -18
  140. package/dist/esm/version.js +9 -2
  141. package/package.json +26 -33
  142. package/src/address.ts +1 -0
  143. package/src/api/asset/extension.ts +159 -0
  144. package/src/api/asset/index.ts +6 -0
  145. package/src/api/dashboard/extension.ts +614 -0
  146. package/src/api/dashboard/handler.ts +23 -0
  147. package/src/api/dashboard/index.ts +36 -0
  148. package/src/api/dashboard/packets.ts +126 -0
  149. package/src/api/endpoint/endpoint.ts +56 -0
  150. package/src/api/endpoint/extension.ts +133 -0
  151. package/src/api/endpoint/index.ts +3 -0
  152. package/src/api/endpoint/packets.ts +176 -0
  153. package/src/api/extension-registry.ts +17 -0
  154. package/src/{extension → api}/extension.ts +3 -4
  155. package/src/api/http/extension.ts +752 -0
  156. package/src/api/http/index.ts +2 -0
  157. package/src/{extension/i18n/i18n-extension.ts → api/i18n/extension.ts} +9 -10
  158. package/src/api/i18n/index.ts +2 -0
  159. package/src/{extension/logger/logger-extension.ts → api/logger/extension.ts} +16 -17
  160. package/src/api/logger/index.ts +4 -0
  161. package/src/{extension → api}/logger/packets.ts +3 -3
  162. package/src/{extension/permission/permission-extension.ts → api/permission/extension.ts} +24 -23
  163. package/src/api/permission/index.ts +2 -0
  164. package/src/{extension → api}/permission/permission.ts +8 -11
  165. package/src/{extension/plugin/plugin-extension.ts → api/plugin/extension.ts} +32 -19
  166. package/src/api/plugin/index.ts +3 -0
  167. package/src/{extension/registry/registry-extension.ts → api/registry/extension.ts} +76 -47
  168. package/src/api/registry/index.ts +3 -0
  169. package/src/api/registry/packets.ts +64 -0
  170. package/src/api/registry/registry.ts +73 -0
  171. package/src/api/server/extension.ts +126 -0
  172. package/src/api/server/index.ts +11 -0
  173. package/src/api/session/extension.ts +196 -0
  174. package/src/api/session/index.ts +7 -0
  175. package/src/{extension/signal/signal-extension.ts → api/signal/extension.ts} +42 -35
  176. package/src/api/signal/index.ts +1 -0
  177. package/src/api/signal/packets.ts +61 -0
  178. package/src/api/signal/signal.ts +67 -0
  179. package/src/{extension/table/table-extension.ts → api/table/extension.ts} +111 -154
  180. package/src/api/table/index.ts +3 -0
  181. package/src/{extension → api}/table/packets.ts +28 -27
  182. package/src/{extension → api}/table/table.ts +24 -18
  183. package/src/app.ts +43 -25
  184. package/src/const.ts +2 -2
  185. package/src/errors.ts +12 -0
  186. package/src/helper.ts +16 -0
  187. package/src/identifier.ts +59 -4
  188. package/src/index.ts +86 -5
  189. package/src/localization/index.ts +2 -2
  190. package/src/lock.ts +43 -0
  191. package/src/network/connection.ts +7 -5
  192. package/src/network/encryption.ts +221 -0
  193. package/src/network/frame-transport.ts +186 -0
  194. package/src/network/index.ts +4 -1
  195. package/src/network/network.ts +138 -90
  196. package/src/network/packet/index.ts +3 -2
  197. package/src/network/packet/packet-types.ts +79 -36
  198. package/src/network/packet/packet.ts +20 -11
  199. package/src/network/websocket-transport.ts +123 -0
  200. package/src/omu.ts +56 -30
  201. package/src/serialize/bytebuffer.ts +424 -0
  202. package/src/serialize/index.ts +2 -0
  203. package/src/serialize/serializer.ts +149 -0
  204. package/src/token.ts +28 -14
  205. package/src/version.ts +1 -1
  206. package/tsconfig.json +8 -2
  207. package/tsconfig.tsbuildinfo +1 -0
  208. package/LICENSE +0 -21
  209. package/dist/dts/address.d.ts.map +0 -1
  210. package/dist/dts/app.d.ts.map +0 -1
  211. package/dist/dts/bytebuffer.d.ts +0 -49
  212. package/dist/dts/bytebuffer.d.ts.map +0 -1
  213. package/dist/dts/client.d.ts +0 -48
  214. package/dist/dts/client.d.ts.map +0 -1
  215. package/dist/dts/const.d.ts.map +0 -1
  216. package/dist/dts/errors.d.ts.map +0 -1
  217. package/dist/dts/event-emitter.d.ts +0 -7
  218. package/dist/dts/event-emitter.d.ts.map +0 -1
  219. package/dist/dts/extension/asset/asset-extension.d.ts +0 -24
  220. package/dist/dts/extension/asset/asset-extension.d.ts.map +0 -1
  221. package/dist/dts/extension/asset/index.d.ts +0 -2
  222. package/dist/dts/extension/asset/index.d.ts.map +0 -1
  223. package/dist/dts/extension/dashboard/dashboard-extension.d.ts +0 -29
  224. package/dist/dts/extension/dashboard/dashboard-extension.d.ts.map +0 -1
  225. package/dist/dts/extension/dashboard/dashboard.d.ts +0 -10
  226. package/dist/dts/extension/dashboard/dashboard.d.ts.map +0 -1
  227. package/dist/dts/extension/dashboard/index.d.ts +0 -3
  228. package/dist/dts/extension/dashboard/index.d.ts.map +0 -1
  229. package/dist/dts/extension/dashboard/packets.d.ts +0 -41
  230. package/dist/dts/extension/dashboard/packets.d.ts.map +0 -1
  231. package/dist/dts/extension/endpoint/endpoint-extension.d.ts +0 -16
  232. package/dist/dts/extension/endpoint/endpoint-extension.d.ts.map +0 -1
  233. package/dist/dts/extension/endpoint/endpoint.d.ts +0 -22
  234. package/dist/dts/extension/endpoint/endpoint.d.ts.map +0 -1
  235. package/dist/dts/extension/endpoint/index.d.ts +0 -3
  236. package/dist/dts/extension/endpoint/index.d.ts.map +0 -1
  237. package/dist/dts/extension/endpoint/packets.d.ts +0 -24
  238. package/dist/dts/extension/endpoint/packets.d.ts.map +0 -1
  239. package/dist/dts/extension/extension-registry.d.ts +0 -12
  240. package/dist/dts/extension/extension-registry.d.ts.map +0 -1
  241. package/dist/dts/extension/extension.d.ts +0 -13
  242. package/dist/dts/extension/extension.d.ts.map +0 -1
  243. package/dist/dts/extension/i18n/i18n-extension.d.ts +0 -21
  244. package/dist/dts/extension/i18n/i18n-extension.d.ts.map +0 -1
  245. package/dist/dts/extension/i18n/index.d.ts +0 -2
  246. package/dist/dts/extension/i18n/index.d.ts.map +0 -1
  247. package/dist/dts/extension/index.d.ts +0 -3
  248. package/dist/dts/extension/index.d.ts.map +0 -1
  249. package/dist/dts/extension/logger/index.d.ts +0 -2
  250. package/dist/dts/extension/logger/index.d.ts.map +0 -1
  251. package/dist/dts/extension/logger/logger-extension.d.ts +0 -25
  252. package/dist/dts/extension/logger/logger-extension.d.ts.map +0 -1
  253. package/dist/dts/extension/logger/packets.d.ts +0 -19
  254. package/dist/dts/extension/logger/packets.d.ts.map +0 -1
  255. package/dist/dts/extension/permission/index.d.ts +0 -3
  256. package/dist/dts/extension/permission/index.d.ts.map +0 -1
  257. package/dist/dts/extension/permission/permission-extension.d.ts +0 -18
  258. package/dist/dts/extension/permission/permission-extension.d.ts.map +0 -1
  259. package/dist/dts/extension/permission/permission.d.ts +0 -28
  260. package/dist/dts/extension/permission/permission.d.ts.map +0 -1
  261. package/dist/dts/extension/plugin/index.d.ts +0 -2
  262. package/dist/dts/extension/plugin/index.d.ts.map +0 -1
  263. package/dist/dts/extension/plugin/package-info.d.ts +0 -85
  264. package/dist/dts/extension/plugin/package-info.d.ts.map +0 -1
  265. package/dist/dts/extension/plugin/plugin-extension.d.ts +0 -34
  266. package/dist/dts/extension/plugin/plugin-extension.d.ts.map +0 -1
  267. package/dist/dts/extension/registry/index.d.ts +0 -3
  268. package/dist/dts/extension/registry/index.d.ts.map +0 -1
  269. package/dist/dts/extension/registry/packets.d.ts +0 -17
  270. package/dist/dts/extension/registry/packets.d.ts.map +0 -1
  271. package/dist/dts/extension/registry/registry-extension.d.ts +0 -19
  272. package/dist/dts/extension/registry/registry-extension.d.ts.map +0 -1
  273. package/dist/dts/extension/registry/registry.d.ts +0 -40
  274. package/dist/dts/extension/registry/registry.d.ts.map +0 -1
  275. package/dist/dts/extension/server/index.d.ts +0 -2
  276. package/dist/dts/extension/server/index.d.ts.map +0 -1
  277. package/dist/dts/extension/server/server-extension.d.ts +0 -41
  278. package/dist/dts/extension/server/server-extension.d.ts.map +0 -1
  279. package/dist/dts/extension/signal/index.d.ts +0 -3
  280. package/dist/dts/extension/signal/index.d.ts.map +0 -1
  281. package/dist/dts/extension/signal/packets.d.ts +0 -17
  282. package/dist/dts/extension/signal/packets.d.ts.map +0 -1
  283. package/dist/dts/extension/signal/signal-extension.d.ts +0 -18
  284. package/dist/dts/extension/signal/signal-extension.d.ts.map +0 -1
  285. package/dist/dts/extension/signal/signal.d.ts +0 -33
  286. package/dist/dts/extension/signal/signal.d.ts.map +0 -1
  287. package/dist/dts/extension/table/index.d.ts +0 -3
  288. package/dist/dts/extension/table/index.d.ts.map +0 -1
  289. package/dist/dts/extension/table/packets.d.ts +0 -66
  290. package/dist/dts/extension/table/packets.d.ts.map +0 -1
  291. package/dist/dts/extension/table/table-extension.d.ts +0 -31
  292. package/dist/dts/extension/table/table-extension.d.ts.map +0 -1
  293. package/dist/dts/extension/table/table.d.ts +0 -79
  294. package/dist/dts/extension/table/table.d.ts.map +0 -1
  295. package/dist/dts/identifier.d.ts.map +0 -1
  296. package/dist/dts/index.d.ts.map +0 -1
  297. package/dist/dts/interface.d.ts +0 -7
  298. package/dist/dts/interface.d.ts.map +0 -1
  299. package/dist/dts/localization/index.d.ts.map +0 -1
  300. package/dist/dts/localization/locale.d.ts.map +0 -1
  301. package/dist/dts/localization/localization.d.ts.map +0 -1
  302. package/dist/dts/model.d.ts +0 -5
  303. package/dist/dts/model.d.ts.map +0 -1
  304. package/dist/dts/network/connection.d.ts.map +0 -1
  305. package/dist/dts/network/index.d.ts.map +0 -1
  306. package/dist/dts/network/network.d.ts.map +0 -1
  307. package/dist/dts/network/packet/index.d.ts.map +0 -1
  308. package/dist/dts/network/packet/packet-types.d.ts.map +0 -1
  309. package/dist/dts/network/packet/packet.d.ts.map +0 -1
  310. package/dist/dts/network/websocket-connection.d.ts +0 -20
  311. package/dist/dts/network/websocket-connection.d.ts.map +0 -1
  312. package/dist/dts/omu.d.ts.map +0 -1
  313. package/dist/dts/serializer.d.ts +0 -22
  314. package/dist/dts/serializer.d.ts.map +0 -1
  315. package/dist/dts/token.d.ts.map +0 -1
  316. package/dist/dts/version.d.ts.map +0 -1
  317. package/dist/esm/address.js.map +0 -1
  318. package/dist/esm/app.js.map +0 -1
  319. package/dist/esm/bytebuffer.js +0 -191
  320. package/dist/esm/bytebuffer.js.map +0 -1
  321. package/dist/esm/client.js +0 -2
  322. package/dist/esm/client.js.map +0 -1
  323. package/dist/esm/const.js.map +0 -1
  324. package/dist/esm/errors.js.map +0 -1
  325. package/dist/esm/event-emitter.js +0 -15
  326. package/dist/esm/event-emitter.js.map +0 -1
  327. package/dist/esm/extension/asset/asset-extension.js +0 -104
  328. package/dist/esm/extension/asset/asset-extension.js.map +0 -1
  329. package/dist/esm/extension/asset/index.js +0 -2
  330. package/dist/esm/extension/asset/index.js.map +0 -1
  331. package/dist/esm/extension/dashboard/dashboard-extension.js +0 -186
  332. package/dist/esm/extension/dashboard/dashboard-extension.js.map +0 -1
  333. package/dist/esm/extension/dashboard/dashboard.js +0 -2
  334. package/dist/esm/extension/dashboard/dashboard.js.map +0 -1
  335. package/dist/esm/extension/dashboard/index.js +0 -2
  336. package/dist/esm/extension/dashboard/index.js.map +0 -1
  337. package/dist/esm/extension/dashboard/packets.js +0 -96
  338. package/dist/esm/extension/dashboard/packets.js.map +0 -1
  339. package/dist/esm/extension/endpoint/endpoint-extension.js +0 -86
  340. package/dist/esm/extension/endpoint/endpoint-extension.js.map +0 -1
  341. package/dist/esm/extension/endpoint/endpoint.js +0 -22
  342. package/dist/esm/extension/endpoint/endpoint.js.map +0 -1
  343. package/dist/esm/extension/endpoint/index.js +0 -2
  344. package/dist/esm/extension/endpoint/index.js.map +0 -1
  345. package/dist/esm/extension/endpoint/packets.js +0 -77
  346. package/dist/esm/extension/endpoint/packets.js.map +0 -1
  347. package/dist/esm/extension/extension-registry.js +0 -34
  348. package/dist/esm/extension/extension-registry.js.map +0 -1
  349. package/dist/esm/extension/extension.js +0 -16
  350. package/dist/esm/extension/extension.js.map +0 -1
  351. package/dist/esm/extension/i18n/i18n-extension.js +0 -68
  352. package/dist/esm/extension/i18n/i18n-extension.js.map +0 -1
  353. package/dist/esm/extension/i18n/index.js +0 -2
  354. package/dist/esm/extension/i18n/index.js.map +0 -1
  355. package/dist/esm/extension/index.js +0 -3
  356. package/dist/esm/extension/index.js.map +0 -1
  357. package/dist/esm/extension/logger/index.js +0 -2
  358. package/dist/esm/extension/logger/index.js.map +0 -1
  359. package/dist/esm/extension/logger/logger-extension.js +0 -60
  360. package/dist/esm/extension/logger/logger-extension.js.map +0 -1
  361. package/dist/esm/extension/logger/packets.js +0 -33
  362. package/dist/esm/extension/logger/packets.js.map +0 -1
  363. package/dist/esm/extension/permission/index.js +0 -3
  364. package/dist/esm/extension/permission/index.js.map +0 -1
  365. package/dist/esm/extension/permission/permission-extension.js +0 -74
  366. package/dist/esm/extension/permission/permission-extension.js.map +0 -1
  367. package/dist/esm/extension/permission/permission.js +0 -28
  368. package/dist/esm/extension/permission/permission.js.map +0 -1
  369. package/dist/esm/extension/plugin/index.js +0 -2
  370. package/dist/esm/extension/plugin/index.js.map +0 -1
  371. package/dist/esm/extension/plugin/package-info.js +0 -2
  372. package/dist/esm/extension/plugin/package-info.js.map +0 -1
  373. package/dist/esm/extension/plugin/plugin-extension.js +0 -63
  374. package/dist/esm/extension/plugin/plugin-extension.js.map +0 -1
  375. package/dist/esm/extension/registry/index.js +0 -3
  376. package/dist/esm/extension/registry/index.js.map +0 -1
  377. package/dist/esm/extension/registry/packets.js +0 -48
  378. package/dist/esm/extension/registry/packets.js.map +0 -1
  379. package/dist/esm/extension/registry/registry-extension.js +0 -134
  380. package/dist/esm/extension/registry/registry-extension.js.map +0 -1
  381. package/dist/esm/extension/registry/registry.js +0 -55
  382. package/dist/esm/extension/registry/registry.js.map +0 -1
  383. package/dist/esm/extension/server/index.js +0 -2
  384. package/dist/esm/extension/server/index.js.map +0 -1
  385. package/dist/esm/extension/server/server-extension.js +0 -145
  386. package/dist/esm/extension/server/server-extension.js.map +0 -1
  387. package/dist/esm/extension/signal/index.js +0 -3
  388. package/dist/esm/extension/signal/index.js.map +0 -1
  389. package/dist/esm/extension/signal/packets.js +0 -44
  390. package/dist/esm/extension/signal/packets.js.map +0 -1
  391. package/dist/esm/extension/signal/signal-extension.js +0 -95
  392. package/dist/esm/extension/signal/signal-extension.js.map +0 -1
  393. package/dist/esm/extension/signal/signal.js +0 -53
  394. package/dist/esm/extension/signal/signal.js.map +0 -1
  395. package/dist/esm/extension/table/index.js +0 -3
  396. package/dist/esm/extension/table/index.js.map +0 -1
  397. package/dist/esm/extension/table/packets.js +0 -252
  398. package/dist/esm/extension/table/packets.js.map +0 -1
  399. package/dist/esm/extension/table/table-extension.js +0 -454
  400. package/dist/esm/extension/table/table-extension.js.map +0 -1
  401. package/dist/esm/extension/table/table.js +0 -20
  402. package/dist/esm/extension/table/table.js.map +0 -1
  403. package/dist/esm/identifier.js.map +0 -1
  404. package/dist/esm/index.js.map +0 -1
  405. package/dist/esm/interface.js +0 -2
  406. package/dist/esm/interface.js.map +0 -1
  407. package/dist/esm/localization/index.js.map +0 -1
  408. package/dist/esm/localization/locale.js.map +0 -1
  409. package/dist/esm/localization/localization.js.map +0 -1
  410. package/dist/esm/model.js +0 -2
  411. package/dist/esm/model.js.map +0 -1
  412. package/dist/esm/network/connection.js.map +0 -1
  413. package/dist/esm/network/index.js.map +0 -1
  414. package/dist/esm/network/network.js.map +0 -1
  415. package/dist/esm/network/packet/index.js.map +0 -1
  416. package/dist/esm/network/packet/packet-types.js.map +0 -1
  417. package/dist/esm/network/packet/packet.js.map +0 -1
  418. package/dist/esm/network/websocket-connection.js +0 -95
  419. package/dist/esm/network/websocket-connection.js.map +0 -1
  420. package/dist/esm/omu.js.map +0 -1
  421. package/dist/esm/serializer.js +0 -55
  422. package/dist/esm/serializer.js.map +0 -1
  423. package/dist/esm/token.js.map +0 -1
  424. package/dist/esm/version.js.map +0 -1
  425. package/eslint.config.js +0 -6
  426. package/src/bytebuffer.ts +0 -222
  427. package/src/client.ts +0 -53
  428. package/src/extension/asset/asset-extension.ts +0 -148
  429. package/src/extension/asset/index.ts +0 -6
  430. package/src/extension/dashboard/dashboard-extension.ts +0 -238
  431. package/src/extension/dashboard/dashboard.ts +0 -11
  432. package/src/extension/dashboard/index.ts +0 -9
  433. package/src/extension/dashboard/packets.ts +0 -98
  434. package/src/extension/endpoint/endpoint-extension.ts +0 -125
  435. package/src/extension/endpoint/endpoint.ts +0 -58
  436. package/src/extension/endpoint/index.ts +0 -3
  437. package/src/extension/endpoint/packets.ts +0 -78
  438. package/src/extension/extension-registry.ts +0 -39
  439. package/src/extension/i18n/index.ts +0 -2
  440. package/src/extension/logger/index.ts +0 -5
  441. package/src/extension/permission/index.ts +0 -3
  442. package/src/extension/plugin/index.ts +0 -4
  443. package/src/extension/registry/index.ts +0 -3
  444. package/src/extension/registry/packets.ts +0 -50
  445. package/src/extension/registry/registry.ts +0 -98
  446. package/src/extension/server/index.ts +0 -6
  447. package/src/extension/server/server-extension.ts +0 -180
  448. package/src/extension/signal/index.ts +0 -3
  449. package/src/extension/signal/packets.ts +0 -46
  450. package/src/extension/signal/signal.ts +0 -89
  451. package/src/extension/table/index.ts +0 -3
  452. package/src/interface.ts +0 -8
  453. package/src/model.ts +0 -4
  454. package/src/network/websocket-connection.ts +0 -109
  455. package/src/serializer.ts +0 -89
  456. /package/src/{extension → api}/index.ts +0 -0
  457. /package/src/{extension → api}/plugin/package-info.ts +0 -0
  458. /package/src/{event-emitter.ts → event/index.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import { ByteReader, ByteWriter, Flags } from '../../bytebuffer.js';
2
- import { Identifier } from '../../identifier.js';
1
+ import { Identifier } from '../../identifier';
2
+ import { ByteReader, ByteWriter, Flags } from '../../serialize';
3
3
 
4
4
  import type { TableConfig } from './table.js';
5
5
 
@@ -13,7 +13,7 @@ export class TablePacket {
13
13
  }
14
14
 
15
15
  public static deserialize(data: Uint8Array): TablePacket {
16
- const reader = new ByteReader(data);
16
+ const reader = ByteReader.fromUint8Array(data);
17
17
  const id = Identifier.fromKey(reader.readString());
18
18
  return new TablePacket(id);
19
19
  }
@@ -28,22 +28,22 @@ export class TableItemsPacket {
28
28
  public static serialize(packet: TableItemsPacket): Uint8Array {
29
29
  const writer = new ByteWriter();
30
30
  writer.writeString(packet.id.key());
31
- writer.writeInt(Object.keys(packet.items).length);
31
+ writer.writeULEB128(Object.keys(packet.items).length);
32
32
  for (const [key, value] of Object.entries(packet.items)) {
33
33
  writer.writeString(key);
34
- writer.writeByteArray(value);
34
+ writer.writeUint8Array(value);
35
35
  }
36
36
  return writer.finish();
37
37
  }
38
38
 
39
39
  public static deserialize(data: Uint8Array): TableItemsPacket {
40
- const reader = new ByteReader(data);
40
+ const reader = ByteReader.fromUint8Array(data);
41
41
  const id = Identifier.fromKey(reader.readString());
42
- const count = reader.readInt();
42
+ const count = reader.readULEB128();
43
43
  const items: Record<string, Uint8Array> = {};
44
44
  for (let i = 0; i < count; i++) {
45
45
  const key = reader.readString();
46
- const value = reader.readByteArray();
46
+ const value = reader.readUint8Array();
47
47
  items[key] = value;
48
48
  }
49
49
  return new TableItemsPacket(id, items);
@@ -59,7 +59,7 @@ export class TableKeysPacket {
59
59
  public static serialize(packet: TableKeysPacket): Uint8Array {
60
60
  const writer = new ByteWriter();
61
61
  writer.writeString(packet.id.key());
62
- writer.writeInt(packet.keys.length);
62
+ writer.writeULEB128(packet.keys.length);
63
63
  for (const key of packet.keys) {
64
64
  writer.writeString(key);
65
65
  }
@@ -67,9 +67,9 @@ export class TableKeysPacket {
67
67
  }
68
68
 
69
69
  public static deserialize(data: Uint8Array): TableKeysPacket {
70
- const reader = new ByteReader(data);
70
+ const reader = ByteReader.fromUint8Array(data);
71
71
  const id = Identifier.fromKey(reader.readString());
72
- const count = reader.readInt();
72
+ const count = reader.readULEB128();
73
73
  const keys: string[] = [];
74
74
  for (let i = 0; i < count; i++) {
75
75
  keys.push(reader.readString());
@@ -88,24 +88,24 @@ export class TableProxyPacket {
88
88
  public static serialize(packet: TableProxyPacket): Uint8Array {
89
89
  const writer = new ByteWriter();
90
90
  writer.writeString(packet.id.key());
91
- writer.writeInt(packet.key);
92
- writer.writeInt(Object.keys(packet.items).length);
91
+ writer.writeULEB128(packet.key);
92
+ writer.writeULEB128(Object.keys(packet.items).length);
93
93
  for (const [key, value] of Object.entries(packet.items)) {
94
94
  writer.writeString(key);
95
- writer.writeByteArray(value);
95
+ writer.writeUint8Array(value);
96
96
  }
97
97
  return writer.finish();
98
98
  }
99
99
 
100
100
  public static deserialize(data: Uint8Array): TableProxyPacket {
101
- const reader = new ByteReader(data);
101
+ const reader = ByteReader.fromUint8Array(data);
102
102
  const id = Identifier.fromKey(reader.readString());
103
- const key = reader.readInt();
104
- const count = reader.readInt();
103
+ const key = reader.readULEB128();
104
+ const count = reader.readULEB128();
105
105
  const items: Record<string, Uint8Array> = {};
106
106
  for (let i = 0; i < count; i++) {
107
107
  const key = reader.readString();
108
- const value = reader.readByteArray();
108
+ const value = reader.readUint8Array();
109
109
  items[key] = value;
110
110
  }
111
111
  return new TableProxyPacket(id, items, key);
@@ -122,8 +122,8 @@ export class TableFetchPacket {
122
122
  public static serialize(packet: TableFetchPacket): Uint8Array {
123
123
  const writer = new ByteWriter();
124
124
  writer.writeString(packet.id.key());
125
- writer.writeInt(packet.limit);
126
- const flags = new Flags({length: 2});
125
+ writer.writeULEB128(packet.limit);
126
+ const flags = new Flags({ length: 2 });
127
127
  flags.set(0, packet.backward);
128
128
  flags.set(1, packet.cursor !== null);
129
129
  writer.writeFlags(flags);
@@ -134,9 +134,9 @@ export class TableFetchPacket {
134
134
  }
135
135
 
136
136
  public static deserialize(data: Uint8Array): TableFetchPacket {
137
- const reader = new ByteReader(data);
137
+ const reader = ByteReader.fromUint8Array(data);
138
138
  const id = Identifier.fromKey(reader.readString());
139
- const limit = reader.readInt();
139
+ const limit = reader.readULEB128();
140
140
  const flags = reader.readFlags(2);
141
141
  const backward = flags.get(0);
142
142
  const cursor = flags.ifSet(1, () => reader.readString());
@@ -160,7 +160,7 @@ export class TableFetchRangePacket {
160
160
  }
161
161
 
162
162
  public static deserialize(data: Uint8Array): TableFetchRangePacket {
163
- const reader = new ByteReader(data);
163
+ const reader = ByteReader.fromUint8Array(data);
164
164
  const id = Identifier.fromKey(reader.readString());
165
165
  const start = reader.readString();
166
166
  const end = reader.readString();
@@ -182,7 +182,7 @@ export class SetConfigPacket {
182
182
  }
183
183
 
184
184
  public static deserialize(data: Uint8Array): SetConfigPacket {
185
- const reader = new ByteReader(data);
185
+ const reader = ByteReader.fromUint8Array(data);
186
186
  const id = Identifier.fromKey(reader.readString());
187
187
  const config = JSON.parse(reader.readString());
188
188
  return new SetConfigPacket(id, config);
@@ -218,7 +218,7 @@ export class SetPermissionPacket {
218
218
  if (packet.proxy !== null) {
219
219
  flags |= 0b10000;
220
220
  }
221
- writer.writeByte(flags);
221
+ writer.writeUint8(flags);
222
222
  if (packet.all) {
223
223
  writer.writeString(packet.all.key());
224
224
  }
@@ -238,9 +238,9 @@ export class SetPermissionPacket {
238
238
  }
239
239
 
240
240
  public static deserialize(data: Uint8Array): SetPermissionPacket {
241
- const reader = new ByteReader(data);
241
+ const reader = ByteReader.fromUint8Array(data);
242
242
  const id = Identifier.fromKey(reader.readString());
243
- const flags = reader.readByte();
243
+ const flags = reader.readUint8();
244
244
  const all = flags & 0b1 ? Identifier.fromKey(reader.readString()) : null;
245
245
  const read = flags & 0b10 ? Identifier.fromKey(reader.readString()) : null;
246
246
  const write = flags & 0b100 ? Identifier.fromKey(reader.readString()) : null;
@@ -249,3 +249,4 @@ export class SetPermissionPacket {
249
249
  return new SetPermissionPacket(id, all, read, write, remove, proxy);
250
250
  }
251
251
  }
252
+
@@ -1,10 +1,7 @@
1
- import type { EventEmitter, Unlisten } from '../../event-emitter.js';
2
- import type { Identifier } from '../../identifier.js';
3
- import type { Keyable } from '../../interface.js';
4
- import type { Model } from '../../model.js';
5
- import type { Serializable } from '../../serializer.js';
6
- import { Serializer } from '../../serializer.js';
7
- import type { ExtensionType } from '../extension.js';
1
+ import type { EventEmitter, Unlisten } from '../../event';
2
+ import { Identifier, IntoId } from '../../identifier';
3
+ import type { JsonType, Serializable } from '../../serialize';
4
+ import { Serializer } from '../../serialize';
8
5
 
9
6
  export type TableConfig = {
10
7
  cache_size: number;
@@ -67,41 +64,50 @@ export class TableType<T> {
67
64
  public id: Identifier,
68
65
  public serializer: Serializable<T, Uint8Array>,
69
66
  public keyFunction: (item: T) => string,
70
- public permissions?: TablePermissions,
67
+ public permissions?: TablePermissions | undefined,
71
68
  ) {}
72
69
 
73
- public static createModel<T extends Keyable & Model<D>, D = unknown>(
74
- identifier: Identifier | ExtensionType,
70
+ public static createJson<T, D extends JsonType = JsonType>(
71
+ identifier: IntoId,
75
72
  {
76
73
  name,
77
- model,
74
+ key,
78
75
  permissions,
76
+ serializer,
79
77
  }: {
80
78
  name: string;
81
- model: { fromJson(data: D): T };
79
+ key: (item: T) => string;
82
80
  permissions?: TablePermissions;
81
+ serializer?: Serializable<T, D>;
83
82
  },
84
83
  ): TableType<T> {
85
84
  return new TableType<T>(
86
- identifier.join(name),
87
- Serializer.model(model).pipe(Serializer.json()),
88
- (item) => item.key(),
85
+ Identifier.from(identifier).join(name),
86
+ Serializer.pipe<T, D, Uint8Array>(serializer ?? Serializer.noop(), Serializer.json()),
87
+ key,
89
88
  permissions,
90
89
  );
91
90
  }
92
91
 
93
- public static createJson<T>(
94
- identifier: Identifier | ExtensionType,
92
+ public static createSerialized<T>(
93
+ identifier: IntoId,
95
94
  {
96
95
  name,
97
96
  key,
98
97
  permissions,
98
+ serializer,
99
99
  }: {
100
100
  name: string;
101
101
  key: (item: T) => string;
102
102
  permissions?: TablePermissions;
103
+ serializer: Serializable<T, Uint8Array>;
103
104
  },
104
105
  ): TableType<T> {
105
- return new TableType<T>(identifier.join(name), Serializer.json<T>(), key, permissions);
106
+ return new TableType<T>(
107
+ Identifier.from(identifier).join(name),
108
+ serializer,
109
+ key,
110
+ permissions,
111
+ );
106
112
  }
107
113
  }
package/src/app.ts CHANGED
@@ -1,8 +1,6 @@
1
- import { Identifier } from './identifier.js';
2
- import type { Keyable } from './interface.js';
1
+ import { Identifier, IntoId } from './identifier';
3
2
  import type { Locale } from './localization/locale.js';
4
3
  import type { LocalizedText } from './localization/localization.js';
5
- import type { Model } from './model.js';
6
4
 
7
5
  export type AppMetadata = {
8
6
  locale: Locale;
@@ -15,63 +13,83 @@ export type AppMetadata = {
15
13
  authors?: LocalizedText;
16
14
  license?: LocalizedText;
17
15
  tags?: string[];
18
- }
16
+ };
17
+
18
+ export type AppType = 'app' | 'service' | 'remote' | 'plugin' | 'dashboard';
19
19
 
20
- export type AppType = 'app' | 'plugin' | 'dashboard';
20
+ export type DependencySpecifier = {
21
+ version: string;
22
+ index?: string;
23
+ };
21
24
 
22
25
  export type AppJson = {
23
26
  id: string;
27
+ type: AppType;
28
+ parent_id?: string;
24
29
  version?: string;
25
30
  url?: string;
26
- type?: AppType;
27
31
  metadata?: AppMetadata;
28
- }
32
+ dependencies?: Record<string, DependencySpecifier | string>;
33
+ };
29
34
 
30
- export class App implements Keyable, Model<AppJson> {
35
+ export class App {
31
36
  public readonly id: Identifier;
37
+ public readonly type: AppType;
38
+ public readonly parentId?: Identifier;
32
39
  public readonly version?: string;
33
40
  public readonly url?: string;
34
41
  public readonly metadata?: AppMetadata;
35
- public readonly type?: AppType;
42
+ public readonly dependencies: Record<string, DependencySpecifier | string>;
36
43
 
37
- constructor(id: Identifier | string, options: {
44
+ constructor(id: IntoId, options: {
45
+ type?: AppType;
46
+ parentId?: IntoId;
38
47
  version?: string;
39
48
  url?: string;
40
49
  metadata?: AppMetadata;
41
- type?: AppType;
50
+ dependencies?: Record<string, DependencySpecifier | string>;
42
51
  }) {
43
- if (typeof id === 'string') {
44
- this.id = Identifier.fromKey(id);
45
- } else {
46
- this.id = id;
47
- }
52
+ this.id = Identifier.from(id);
53
+ this.parentId = Identifier.fromOptional(options.parentId);
48
54
  this.version = options.version;
49
55
  this.url = options.url;
50
56
  this.metadata = options.metadata;
51
- this.type = options.type;
52
- }
53
-
54
- public key(): string {
55
- return this.id.key();
57
+ this.type = options.type ?? 'app';
58
+ this.dependencies = options.dependencies ?? {};
56
59
  }
57
60
 
58
- public static fromJson(info: AppJson): App {
61
+ public static deserialize(info: AppJson): App {
59
62
  const id = Identifier.fromKey(info.id);
60
63
  return new App(id, {
64
+ parentId: Identifier.fromOptional(info.parent_id),
61
65
  version: info.version,
62
66
  url: info.url,
63
67
  type: info.type,
64
68
  metadata: info.metadata,
69
+ dependencies: info.dependencies ?? {},
65
70
  });
66
71
  }
67
72
 
68
- public toJson(): AppJson {
73
+ public static serialize(data: App): AppJson {
69
74
  return {
70
- id: this.id.key(),
75
+ id: data.id.key(),
76
+ type: data.type,
77
+ parent_id: data.parentId?.key(),
78
+ version: data.version,
79
+ url: data.url,
80
+ metadata: data.metadata,
81
+ dependencies: data.dependencies,
82
+ };
83
+ }
84
+
85
+ public join(...paths: string[]): App {
86
+ return new App(this.id.join(...paths), {
87
+ parentId: this.parentId,
71
88
  version: this.version,
72
89
  url: this.url,
73
90
  type: this.type,
74
91
  metadata: this.metadata,
75
- };
92
+ dependencies: this.dependencies,
93
+ });
76
94
  }
77
95
  }
package/src/const.ts CHANGED
@@ -1,2 +1,2 @@
1
- export const textEncoder = new TextEncoder();
2
- export const textDecoder = new TextDecoder();
1
+ export const textEncoder: TextEncoder = new TextEncoder();
2
+ export const textDecoder: TextDecoder = new TextDecoder();
package/src/errors.ts CHANGED
@@ -15,6 +15,12 @@ export class DisconnectReason extends OmuError {
15
15
  }
16
16
  }
17
17
 
18
+ export class ServerRestart extends DisconnectReason {
19
+ constructor(message: string) {
20
+ super(DisconnectType.SERVER_RESTART, message);
21
+ }
22
+ }
23
+
18
24
  export class AnotherConnection extends DisconnectReason {
19
25
  constructor(message: string) {
20
26
  super(DisconnectType.ANOTHER_CONNECTION, message);
@@ -27,6 +33,12 @@ export class PermissionDenied extends DisconnectReason {
27
33
  }
28
34
  }
29
35
 
36
+ export class AppRemoved extends DisconnectReason {
37
+ constructor(message: string) {
38
+ super(DisconnectType.APP_REMOVED, message);
39
+ }
40
+ }
41
+
30
42
  export class InvalidToken extends DisconnectReason {
31
43
  constructor(message: string) {
32
44
  super(DisconnectType.INVALID_TOKEN, message);
package/src/helper.ts ADDED
@@ -0,0 +1,16 @@
1
+ type Ok<T> = {
2
+ ok: true;
3
+ data: T;
4
+ };
5
+ type Err<E> = {
6
+ ok: false;
7
+ data: E;
8
+ };
9
+
10
+ export function tryCatch<T, E = Error>(func: () => T): Ok<T> | Err<E> {
11
+ try {
12
+ return { ok: true, data: func() };
13
+ } catch (e) {
14
+ return { ok: false, data: e as E };
15
+ }
16
+ }
package/src/identifier.ts CHANGED
@@ -1,10 +1,12 @@
1
- import type { Keyable } from './interface.js';
2
- import type { Model } from './model.js';
1
+ import type { ExtensionType } from './api';
2
+ import { App } from './app';
3
3
 
4
4
  const NAMESPACE_REGEX = /^(\.[^/:.]|[\w-])+$/;
5
5
  const NAME_REGEX = /^[^/:]+$/;
6
6
 
7
- export class Identifier implements Model<string>, Keyable {
7
+ export type IntoId = Identifier | string | ExtensionType | App;
8
+
9
+ export class Identifier {
8
10
  public readonly namespace: string;
9
11
  public readonly path: string[];
10
12
 
@@ -17,6 +19,47 @@ export class Identifier implements Model<string>, Keyable {
17
19
  this.path = path;
18
20
  }
19
21
 
22
+ public static serialize(identifier: Identifier): string {
23
+ return identifier.key();
24
+ }
25
+
26
+ public static deserialize(json: string): Identifier {
27
+ return Identifier.fromJson(json);
28
+ }
29
+
30
+ public static from(id: IntoId): Identifier {
31
+ if (id instanceof Identifier) {
32
+ return id;
33
+ } else if (id instanceof App) {
34
+ return id.id;
35
+ } else if (typeof id === 'string') {
36
+ return Identifier.fromKey(id);
37
+ } else {
38
+ // Try to infer
39
+ // Vite does not preserve class information when importing from different packages
40
+ const idCasted = id as { namespace: string; path: string[] };
41
+ if (
42
+ typeof idCasted.namespace === 'string' &&
43
+ Array.isArray(idCasted.path) &&
44
+ idCasted.path.every((p) => typeof p === 'string')
45
+ ) {
46
+ return new Identifier(idCasted.namespace, ...idCasted.path);
47
+ }
48
+ const idWithId = id as { id: IntoId | undefined };
49
+ if (typeof idWithId.id !== 'undefined') {
50
+ return Identifier.from(idWithId.id);
51
+ }
52
+ throw new Error(`Cannot convert to Identifier: ${id}`);
53
+ }
54
+ }
55
+
56
+ public static fromOptional(id: IntoId | undefined | null): Identifier | undefined {
57
+ if (id === undefined || id === null) {
58
+ return undefined;
59
+ }
60
+ return Identifier.from(id);
61
+ }
62
+
20
63
  static validate(namespace: string, path: string[]): void {
21
64
  if (!namespace) {
22
65
  throw new Error('Invalid namespace: Namespace cannot be empty');
@@ -29,7 +72,7 @@ export class Identifier implements Model<string>, Keyable {
29
72
  }
30
73
  for (const name of path) {
31
74
  if (!NAME_REGEX.test(name)) {
32
- throw new Error(`Invalid path: Name must match ${NAME_REGEX}`);
75
+ throw new Error(`Invalid path: Name must match ${NAME_REGEX} but got ${name}`);
33
76
  }
34
77
  }
35
78
  }
@@ -83,6 +126,10 @@ export class Identifier implements Model<string>, Keyable {
83
126
  return this.key() === other.key();
84
127
  }
85
128
 
129
+ public isNamespaceEqual(other: Identifier): boolean {
130
+ return this.namespace === other.namespace;
131
+ }
132
+
86
133
  public isSubpathOf(other: Identifier): boolean {
87
134
  if (this.namespace !== other.namespace) {
88
135
  return false;
@@ -105,6 +152,14 @@ export class Identifier implements Model<string>, Keyable {
105
152
 
106
153
  export class IdentifierMap<T> {
107
154
  private readonly map: Map<string, T> = new Map();
155
+ constructor(
156
+ entries?: Iterable<[Identifier, T]>,
157
+ ) {
158
+ if (!entries) return;
159
+ for (const [id, value] of entries) {
160
+ this.map.set(id.key(), value);
161
+ }
162
+ }
108
163
 
109
164
  public get size(): number {
110
165
  return this.map.size;
package/src/index.ts CHANGED
@@ -1,7 +1,88 @@
1
- export { App } from './app.js';
2
- export { Identifier } from './identifier.js';
3
- export * as interfaces from './interface.js';
1
+ export { App, AppMetadata } from './app.js';
2
+ export { DisconnectReason } from './errors.js';
3
+ export { Identifier, IdentifierMap, IdentifierSet, IntoId } from './identifier';
4
+ export * as network from './network';
4
5
  export { Omu } from './omu.js';
5
- export { Serializer } from './serializer.js';
6
- export type { Serializable } from './serializer.js';
6
+ export { Serializer } from './serialize';
7
+ export type { Serializable } from './serialize';
8
+ export { BrowserTokenProvider, type SessionParam, type TokenProvider } from './token';
9
+ import { ASSET_DELETE_PERMISSION_ID, ASSET_DOWNLOAD_PERMISSION_ID, ASSET_UPLOAD_PERMISSION_ID } from './api/asset';
10
+ import {
11
+ DASHBOARD_APP_INSTALL_PERMISSION_ID,
12
+ DAShBOARD_DRAG_DROP_PERMISSION_ID,
13
+ DASHBOARD_OPEN_APP_PERMISSION_ID,
14
+ DASHBOARD_SET_PERMISSION_ID,
15
+ DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID,
16
+ DASHBOARD_WEBVIEW_PERMISSION_ID,
17
+ DASHOBARD_APP_EDIT_PERMISSION_ID,
18
+ DASHOBARD_APP_READ_PERMISSION_ID,
19
+ } from './api/dashboard';
20
+ import { HTTP_REQUEST_PERMISSION_ID } from './api/http';
21
+ import { I18N_GET_LOCALES_PERMISSION_ID, I18N_SET_LOCALES_PERMISSION_ID } from './api/i18n';
22
+ import { LOGGER_LOG_PERMISSION_ID } from './api/logger';
23
+ import { PLUGIN_MANAGE_PACKAGE_PERMISSION_ID, PLUGIN_READ_PACKAGE_PERMISSION_ID } from './api/plugin';
24
+ import { REGISTRY_PERMISSION_ID } from './api/registry';
25
+ import { SERVER_APPS_READ_PERMISSION_ID, SERVER_SHUTDOWN_PERMISSION_ID, TRUSTED_ORIGINS_GET_PERMISSION_ID, TRUSTED_ORIGINS_SET_PERMISSION_ID } from './api/server';
26
+ import { GENERATE_TOKEN_PERMISSION_ID, REMOTE_APP_REQUEST_PERMISSION_ID, SESSIONS_READ_PERMISSION_ID } from './api/session';
27
+ import { TABLE_PERMISSION_ID } from './api/table';
28
+ import { Identifier } from './identifier';
7
29
 
30
+ export const OmuPermissions: {
31
+ // Asset API
32
+ readonly ASSET_DELETE_PERMISSION_ID: Identifier; readonly ASSET_DOWNLOAD_PERMISSION_ID: Identifier; readonly ASSET_UPLOAD_PERMISSION_ID: Identifier;
33
+ // Dashboard API
34
+ readonly DASHBOARD_APP_INSTALL_PERMISSION_ID: Identifier; readonly DAShBOARD_DRAG_DROP_PERMISSION_ID: Identifier; readonly DASHBOARD_OPEN_APP_PERMISSION_ID: Identifier; readonly DASHBOARD_SET_PERMISSION_ID: Identifier; readonly DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID: Identifier; readonly DASHBOARD_WEBVIEW_PERMISSION_ID: Identifier; readonly DASHOBARD_APP_EDIT_PERMISSION_ID: Identifier; readonly DASHOBARD_APP_READ_PERMISSION_ID: Identifier;
35
+ // HTTP API
36
+ readonly HTTP_REQUEST_PERMISSION_ID: Identifier;
37
+ // I18n API
38
+ readonly I18N_GET_LOCALES_PERMISSION_ID: Identifier; readonly I18N_SET_LOCALES_PERMISSION_ID: Identifier;
39
+ // Logger API
40
+ readonly LOGGER_LOG_PERMISSION_ID: Identifier;
41
+ // Plugin API
42
+ readonly PLUGIN_MANAGE_PACKAGE_PERMISSION_ID: Identifier; readonly PLUGIN_READ_PACKAGE_PERMISSION_ID: Identifier;
43
+ // Registry API
44
+ readonly REGISTRY_PERMISSION_ID: Identifier;
45
+ // Server API
46
+ readonly SERVER_APPS_READ_PERMISSION_ID: Identifier; readonly SERVER_SHUTDOWN_PERMISSION_ID: Identifier; readonly TRUSTED_ORIGINS_GET_PERMISSION_ID: Identifier; readonly TRUSTED_ORIGINS_SET_PERMISSION_ID: Identifier;
47
+ // Session API
48
+ readonly GENERATE_TOKEN_PERMISSION_ID: Identifier; readonly REMOTE_APP_REQUEST_PERMISSION_ID: Identifier; readonly SESSIONS_READ_PERMISSION_ID: Identifier;
49
+ // Table API
50
+ readonly TABLE_PERMISSION_ID: Identifier;
51
+ } = {
52
+ // Asset API
53
+ ASSET_DELETE_PERMISSION_ID,
54
+ ASSET_DOWNLOAD_PERMISSION_ID,
55
+ ASSET_UPLOAD_PERMISSION_ID,
56
+ // Dashboard API
57
+ DASHBOARD_APP_INSTALL_PERMISSION_ID,
58
+ DAShBOARD_DRAG_DROP_PERMISSION_ID,
59
+ DASHBOARD_OPEN_APP_PERMISSION_ID,
60
+ DASHBOARD_SET_PERMISSION_ID,
61
+ DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID,
62
+ DASHBOARD_WEBVIEW_PERMISSION_ID,
63
+ DASHOBARD_APP_EDIT_PERMISSION_ID,
64
+ DASHOBARD_APP_READ_PERMISSION_ID,
65
+ // HTTP API
66
+ HTTP_REQUEST_PERMISSION_ID,
67
+ // I18n API
68
+ I18N_GET_LOCALES_PERMISSION_ID,
69
+ I18N_SET_LOCALES_PERMISSION_ID,
70
+ // Logger API
71
+ LOGGER_LOG_PERMISSION_ID,
72
+ // Plugin API
73
+ PLUGIN_MANAGE_PACKAGE_PERMISSION_ID,
74
+ PLUGIN_READ_PACKAGE_PERMISSION_ID,
75
+ // Registry API
76
+ REGISTRY_PERMISSION_ID,
77
+ // Server API
78
+ SERVER_APPS_READ_PERMISSION_ID,
79
+ SERVER_SHUTDOWN_PERMISSION_ID,
80
+ TRUSTED_ORIGINS_GET_PERMISSION_ID,
81
+ TRUSTED_ORIGINS_SET_PERMISSION_ID,
82
+ // Session API
83
+ GENERATE_TOKEN_PERMISSION_ID,
84
+ REMOTE_APP_REQUEST_PERMISSION_ID,
85
+ SESSIONS_READ_PERMISSION_ID,
86
+ // Table API
87
+ TABLE_PERMISSION_ID,
88
+ } as const;
@@ -1,3 +1,3 @@
1
- export { LOCALE_NAMES, Locale as Locale } from './locale.js';
2
- export { LocalizedText, Translations } from './localization.js';
1
+ export { Locale as Locale, LOCALE_NAMES } from './locale.js';
2
+ export type { LocalizedText, Translations } from './localization.js';
3
3
 
package/src/lock.ts ADDED
@@ -0,0 +1,43 @@
1
+
2
+ type Task = () => Promise<void>;
3
+
4
+ export class Lock {
5
+ private tasks: (Task)[] = [];
6
+ private waiter: Promise<void> | null = null;
7
+
8
+ private wait(): Promise<void> {
9
+ if (this.waiter) {
10
+ return this.waiter;
11
+ }
12
+ this.waiter = new Promise<void>((resolve) => {
13
+ const runTasks = async () => {
14
+ while (this.tasks.length > 0) {
15
+ const task = this.tasks.shift();
16
+ if (task) {
17
+ await task();
18
+ }
19
+ }
20
+ this.waiter = null;
21
+ resolve();
22
+ };
23
+ runTasks();
24
+ });
25
+ return this.waiter;
26
+ }
27
+
28
+ public async use<T>(callback: () => Promise<T>): Promise<T> {
29
+ const promise = new Promise<T>((resolve, reject) => {
30
+ const task = async () => {
31
+ const promise = callback();
32
+ try {
33
+ resolve(await promise);
34
+ } catch (reason) {
35
+ reject(reason);
36
+ }
37
+ };
38
+ this.tasks.push(task);
39
+ });
40
+ await this.wait();
41
+ return promise;
42
+ }
43
+ }
@@ -1,8 +1,7 @@
1
- import { Identifier, IdentifierMap } from '../identifier.js';
2
- import type { Serializable } from '../serializer.js';
1
+ import { Identifier, IdentifierMap } from '../identifier';
2
+ import type { Serializable } from '../serialize';
3
3
 
4
- import type { PacketData, PacketType } from './packet/index.js';
5
- import type { Packet } from './packet/packet.js';
4
+ import type { Packet, PacketData, PacketType } from './packet';
6
5
 
7
6
  export class PacketMapper implements Serializable<Packet, PacketData> {
8
7
  private readonly packetMap = new IdentifierMap<PacketType<unknown>>();
@@ -34,8 +33,11 @@ export class PacketMapper implements Serializable<Packet, PacketData> {
34
33
  }
35
34
  }
36
35
 
36
+ export interface Transport {
37
+ connect(): Promise<Connection>;
38
+ }
39
+
37
40
  export interface Connection {
38
- connect(): Promise<void>;
39
41
  send(packet: Packet, serializer: Serializable<Packet, PacketData>): void;
40
42
  receive(serializer: Serializable<Packet, PacketData>): Promise<Packet | null>;
41
43
  close(): void;