@omujs/omu 0.1.22

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 (342) hide show
  1. package/.eslintignore +13 -0
  2. package/.eslintrc.cjs +6 -0
  3. package/.prettierignore +1 -0
  4. package/CHANGELOG.md +268 -0
  5. package/LICENSE +21 -0
  6. package/README.md +1 -0
  7. package/built/dts/address.d.ts +6 -0
  8. package/built/dts/address.d.ts.map +1 -0
  9. package/built/dts/app.d.ts +38 -0
  10. package/built/dts/app.d.ts.map +1 -0
  11. package/built/dts/bytebuffer.d.ts +46 -0
  12. package/built/dts/bytebuffer.d.ts.map +1 -0
  13. package/built/dts/client/client.d.ts +47 -0
  14. package/built/dts/client/client.d.ts.map +1 -0
  15. package/built/dts/client/index.d.ts +2 -0
  16. package/built/dts/client/index.d.ts.map +1 -0
  17. package/built/dts/client/omu.d.ts +53 -0
  18. package/built/dts/client/omu.d.ts.map +1 -0
  19. package/built/dts/client/omuclient.d.ts +50 -0
  20. package/built/dts/client/omuclient.d.ts.map +1 -0
  21. package/built/dts/client/token.d.ts +14 -0
  22. package/built/dts/client/token.d.ts.map +1 -0
  23. package/built/dts/client.d.ts +48 -0
  24. package/built/dts/client.d.ts.map +1 -0
  25. package/built/dts/const.d.ts +3 -0
  26. package/built/dts/const.d.ts.map +1 -0
  27. package/built/dts/errors.d.ts +29 -0
  28. package/built/dts/errors.d.ts.map +1 -0
  29. package/built/dts/event-emitter.d.ts +7 -0
  30. package/built/dts/event-emitter.d.ts.map +1 -0
  31. package/built/dts/extension/asset/asset-extension.d.ts +26 -0
  32. package/built/dts/extension/asset/asset-extension.d.ts.map +1 -0
  33. package/built/dts/extension/asset/index.d.ts +2 -0
  34. package/built/dts/extension/asset/index.d.ts.map +1 -0
  35. package/built/dts/extension/dashboard/dashboard-extension.d.ts +24 -0
  36. package/built/dts/extension/dashboard/dashboard-extension.d.ts.map +1 -0
  37. package/built/dts/extension/dashboard/dashboard.d.ts +8 -0
  38. package/built/dts/extension/dashboard/dashboard.d.ts.map +1 -0
  39. package/built/dts/extension/dashboard/index.d.ts +3 -0
  40. package/built/dts/extension/dashboard/index.d.ts.map +1 -0
  41. package/built/dts/extension/dashboard/packets.d.ts +20 -0
  42. package/built/dts/extension/dashboard/packets.d.ts.map +1 -0
  43. package/built/dts/extension/endpoint/endpoint-extension.d.ts +16 -0
  44. package/built/dts/extension/endpoint/endpoint-extension.d.ts.map +1 -0
  45. package/built/dts/extension/endpoint/endpoint.d.ts +22 -0
  46. package/built/dts/extension/endpoint/endpoint.d.ts.map +1 -0
  47. package/built/dts/extension/endpoint/index.d.ts +3 -0
  48. package/built/dts/extension/endpoint/index.d.ts.map +1 -0
  49. package/built/dts/extension/endpoint/packets.d.ts +24 -0
  50. package/built/dts/extension/endpoint/packets.d.ts.map +1 -0
  51. package/built/dts/extension/extension-registry.d.ts +12 -0
  52. package/built/dts/extension/extension-registry.d.ts.map +1 -0
  53. package/built/dts/extension/extension.d.ts +12 -0
  54. package/built/dts/extension/extension.d.ts.map +1 -0
  55. package/built/dts/extension/i18n/i18n-extension.d.ts +19 -0
  56. package/built/dts/extension/i18n/i18n-extension.d.ts.map +1 -0
  57. package/built/dts/extension/i18n/index.d.ts +2 -0
  58. package/built/dts/extension/i18n/index.d.ts.map +1 -0
  59. package/built/dts/extension/index.d.ts +3 -0
  60. package/built/dts/extension/index.d.ts.map +1 -0
  61. package/built/dts/extension/logger/index.d.ts +2 -0
  62. package/built/dts/extension/logger/index.d.ts.map +1 -0
  63. package/built/dts/extension/logger/logger-extension.d.ts +25 -0
  64. package/built/dts/extension/logger/logger-extension.d.ts.map +1 -0
  65. package/built/dts/extension/logger/packets.d.ts +19 -0
  66. package/built/dts/extension/logger/packets.d.ts.map +1 -0
  67. package/built/dts/extension/permission/index.d.ts +3 -0
  68. package/built/dts/extension/permission/index.d.ts.map +1 -0
  69. package/built/dts/extension/permission/permission-extension.d.ts +18 -0
  70. package/built/dts/extension/permission/permission-extension.d.ts.map +1 -0
  71. package/built/dts/extension/permission/permission.d.ts +29 -0
  72. package/built/dts/extension/permission/permission.d.ts.map +1 -0
  73. package/built/dts/extension/plugin/index.d.ts +2 -0
  74. package/built/dts/extension/plugin/index.d.ts.map +1 -0
  75. package/built/dts/extension/plugin/package-info.d.ts +85 -0
  76. package/built/dts/extension/plugin/package-info.d.ts.map +1 -0
  77. package/built/dts/extension/plugin/plugin-extension.d.ts +11 -0
  78. package/built/dts/extension/plugin/plugin-extension.d.ts.map +1 -0
  79. package/built/dts/extension/registry/index.d.ts +3 -0
  80. package/built/dts/extension/registry/index.d.ts.map +1 -0
  81. package/built/dts/extension/registry/packets.d.ts +17 -0
  82. package/built/dts/extension/registry/packets.d.ts.map +1 -0
  83. package/built/dts/extension/registry/registry-extension.d.ts +15 -0
  84. package/built/dts/extension/registry/registry-extension.d.ts.map +1 -0
  85. package/built/dts/extension/registry/registry.d.ts +39 -0
  86. package/built/dts/extension/registry/registry.d.ts.map +1 -0
  87. package/built/dts/extension/server/index.d.ts +2 -0
  88. package/built/dts/extension/server/index.d.ts.map +1 -0
  89. package/built/dts/extension/server/packets.d.ts +8 -0
  90. package/built/dts/extension/server/packets.d.ts.map +1 -0
  91. package/built/dts/extension/server/server-extension.d.ts +19 -0
  92. package/built/dts/extension/server/server-extension.d.ts.map +1 -0
  93. package/built/dts/extension/signal/index.d.ts +3 -0
  94. package/built/dts/extension/signal/index.d.ts.map +1 -0
  95. package/built/dts/extension/signal/packets.d.ts +17 -0
  96. package/built/dts/extension/signal/packets.d.ts.map +1 -0
  97. package/built/dts/extension/signal/signal-extension.d.ts +14 -0
  98. package/built/dts/extension/signal/signal-extension.d.ts.map +1 -0
  99. package/built/dts/extension/signal/signal.d.ts +32 -0
  100. package/built/dts/extension/signal/signal.d.ts.map +1 -0
  101. package/built/dts/extension/table/index.d.ts +3 -0
  102. package/built/dts/extension/table/index.d.ts.map +1 -0
  103. package/built/dts/extension/table/packets.d.ts +58 -0
  104. package/built/dts/extension/table/packets.d.ts.map +1 -0
  105. package/built/dts/extension/table/table-extension.d.ts +24 -0
  106. package/built/dts/extension/table/table-extension.d.ts.map +1 -0
  107. package/built/dts/extension/table/table.d.ts +64 -0
  108. package/built/dts/extension/table/table.d.ts.map +1 -0
  109. package/built/dts/identifier.d.ts +43 -0
  110. package/built/dts/identifier.d.ts.map +1 -0
  111. package/built/dts/index.d.ts +5 -0
  112. package/built/dts/index.d.ts.map +1 -0
  113. package/built/dts/interface.d.ts +7 -0
  114. package/built/dts/interface.d.ts.map +1 -0
  115. package/built/dts/localization/index.d.ts +3 -0
  116. package/built/dts/localization/index.d.ts.map +1 -0
  117. package/built/dts/localization/locale.d.ts +736 -0
  118. package/built/dts/localization/locale.d.ts.map +1 -0
  119. package/built/dts/localization/localization.d.ts +8 -0
  120. package/built/dts/localization/localization.d.ts.map +1 -0
  121. package/built/dts/model.d.ts +5 -0
  122. package/built/dts/model.d.ts.map +1 -0
  123. package/built/dts/network/connection.d.ts +17 -0
  124. package/built/dts/network/connection.d.ts.map +1 -0
  125. package/built/dts/network/index.d.ts +4 -0
  126. package/built/dts/network/index.d.ts.map +1 -0
  127. package/built/dts/network/network.d.ts +45 -0
  128. package/built/dts/network/network.d.ts.map +1 -0
  129. package/built/dts/network/packet/index.d.ts +3 -0
  130. package/built/dts/network/packet/index.d.ts.map +1 -0
  131. package/built/dts/network/packet/packet-types.d.ts +52 -0
  132. package/built/dts/network/packet/packet-types.d.ts.map +1 -0
  133. package/built/dts/network/packet/packet.d.ts +24 -0
  134. package/built/dts/network/packet/packet.d.ts.map +1 -0
  135. package/built/dts/network/websocket-connection.d.ts +20 -0
  136. package/built/dts/network/websocket-connection.d.ts.map +1 -0
  137. package/built/dts/omu.d.ts +50 -0
  138. package/built/dts/omu.d.ts.map +1 -0
  139. package/built/dts/serializer.d.ts +21 -0
  140. package/built/dts/serializer.d.ts.map +1 -0
  141. package/built/dts/token.d.ts +14 -0
  142. package/built/dts/token.d.ts.map +1 -0
  143. package/built/esm/address.js +2 -0
  144. package/built/esm/address.js.map +1 -0
  145. package/built/esm/app.js +33 -0
  146. package/built/esm/app.js.map +1 -0
  147. package/built/esm/bytebuffer.js +191 -0
  148. package/built/esm/bytebuffer.js.map +1 -0
  149. package/built/esm/client/client.js +2 -0
  150. package/built/esm/client/client.js.map +1 -0
  151. package/built/esm/client/index.js +2 -0
  152. package/built/esm/client/index.js.map +1 -0
  153. package/built/esm/client/omu.js +96 -0
  154. package/built/esm/client/omu.js.map +1 -0
  155. package/built/esm/client/omuclient.js +96 -0
  156. package/built/esm/client/omuclient.js.map +1 -0
  157. package/built/esm/client/token.js +21 -0
  158. package/built/esm/client/token.js.map +1 -0
  159. package/built/esm/client.js +2 -0
  160. package/built/esm/client.js.map +1 -0
  161. package/built/esm/const.js +3 -0
  162. package/built/esm/const.js.map +1 -0
  163. package/built/esm/errors.js +46 -0
  164. package/built/esm/errors.js.map +1 -0
  165. package/built/esm/event-emitter.js +15 -0
  166. package/built/esm/event-emitter.js.map +1 -0
  167. package/built/esm/extension/asset/asset-extension.js +105 -0
  168. package/built/esm/extension/asset/asset-extension.js.map +1 -0
  169. package/built/esm/extension/asset/index.js +2 -0
  170. package/built/esm/extension/asset/index.js.map +1 -0
  171. package/built/esm/extension/dashboard/dashboard-extension.js +119 -0
  172. package/built/esm/extension/dashboard/dashboard-extension.js.map +1 -0
  173. package/built/esm/extension/dashboard/dashboard.js +2 -0
  174. package/built/esm/extension/dashboard/dashboard.js.map +1 -0
  175. package/built/esm/extension/dashboard/index.js +2 -0
  176. package/built/esm/extension/dashboard/index.js.map +1 -0
  177. package/built/esm/extension/dashboard/packets.js +52 -0
  178. package/built/esm/extension/dashboard/packets.js.map +1 -0
  179. package/built/esm/extension/endpoint/endpoint-extension.js +85 -0
  180. package/built/esm/extension/endpoint/endpoint-extension.js.map +1 -0
  181. package/built/esm/extension/endpoint/endpoint.js +22 -0
  182. package/built/esm/extension/endpoint/endpoint.js.map +1 -0
  183. package/built/esm/extension/endpoint/index.js +2 -0
  184. package/built/esm/extension/endpoint/index.js.map +1 -0
  185. package/built/esm/extension/endpoint/packets.js +77 -0
  186. package/built/esm/extension/endpoint/packets.js.map +1 -0
  187. package/built/esm/extension/extension-registry.js +34 -0
  188. package/built/esm/extension/extension-registry.js.map +1 -0
  189. package/built/esm/extension/extension.js +16 -0
  190. package/built/esm/extension/extension.js.map +1 -0
  191. package/built/esm/extension/i18n/i18n-extension.js +59 -0
  192. package/built/esm/extension/i18n/i18n-extension.js.map +1 -0
  193. package/built/esm/extension/i18n/index.js +2 -0
  194. package/built/esm/extension/i18n/index.js.map +1 -0
  195. package/built/esm/extension/index.js +3 -0
  196. package/built/esm/extension/index.js.map +1 -0
  197. package/built/esm/extension/logger/index.js +2 -0
  198. package/built/esm/extension/logger/index.js.map +1 -0
  199. package/built/esm/extension/logger/logger-extension.js +59 -0
  200. package/built/esm/extension/logger/logger-extension.js.map +1 -0
  201. package/built/esm/extension/logger/packets.js +33 -0
  202. package/built/esm/extension/logger/packets.js.map +1 -0
  203. package/built/esm/extension/permission/index.js +3 -0
  204. package/built/esm/extension/permission/index.js.map +1 -0
  205. package/built/esm/extension/permission/permission-extension.js +73 -0
  206. package/built/esm/extension/permission/permission-extension.js.map +1 -0
  207. package/built/esm/extension/permission/permission.js +28 -0
  208. package/built/esm/extension/permission/permission.js.map +1 -0
  209. package/built/esm/extension/plugin/index.js +2 -0
  210. package/built/esm/extension/plugin/index.js.map +1 -0
  211. package/built/esm/extension/plugin/package-info.js +2 -0
  212. package/built/esm/extension/plugin/package-info.js.map +1 -0
  213. package/built/esm/extension/plugin/plugin-extension.js +27 -0
  214. package/built/esm/extension/plugin/plugin-extension.js.map +1 -0
  215. package/built/esm/extension/registry/index.js +3 -0
  216. package/built/esm/extension/registry/index.js.map +1 -0
  217. package/built/esm/extension/registry/packets.js +48 -0
  218. package/built/esm/extension/registry/packets.js.map +1 -0
  219. package/built/esm/extension/registry/registry-extension.js +123 -0
  220. package/built/esm/extension/registry/registry-extension.js.map +1 -0
  221. package/built/esm/extension/registry/registry.js +55 -0
  222. package/built/esm/extension/registry/registry.js.map +1 -0
  223. package/built/esm/extension/server/index.js +2 -0
  224. package/built/esm/extension/server/index.js.map +1 -0
  225. package/built/esm/extension/server/packets.js +25 -0
  226. package/built/esm/extension/server/packets.js.map +1 -0
  227. package/built/esm/extension/server/server-extension.js +52 -0
  228. package/built/esm/extension/server/server-extension.js.map +1 -0
  229. package/built/esm/extension/signal/index.js +3 -0
  230. package/built/esm/extension/signal/index.js.map +1 -0
  231. package/built/esm/extension/signal/packets.js +44 -0
  232. package/built/esm/extension/signal/packets.js.map +1 -0
  233. package/built/esm/extension/signal/signal-extension.js +91 -0
  234. package/built/esm/extension/signal/signal-extension.js.map +1 -0
  235. package/built/esm/extension/signal/signal.js +53 -0
  236. package/built/esm/extension/signal/signal.js.map +1 -0
  237. package/built/esm/extension/table/index.js +3 -0
  238. package/built/esm/extension/table/index.js.map +1 -0
  239. package/built/esm/extension/table/packets.js +230 -0
  240. package/built/esm/extension/table/packets.js.map +1 -0
  241. package/built/esm/extension/table/table-extension.js +384 -0
  242. package/built/esm/extension/table/table-extension.js.map +1 -0
  243. package/built/esm/extension/table/table.js +17 -0
  244. package/built/esm/extension/table/table.js.map +1 -0
  245. package/built/esm/identifier.js +160 -0
  246. package/built/esm/identifier.js.map +1 -0
  247. package/built/esm/index.js +5 -0
  248. package/built/esm/index.js.map +1 -0
  249. package/built/esm/interface.js +2 -0
  250. package/built/esm/interface.js.map +1 -0
  251. package/built/esm/localization/index.js +2 -0
  252. package/built/esm/localization/index.js.map +1 -0
  253. package/built/esm/localization/locale.js +736 -0
  254. package/built/esm/localization/locale.js.map +1 -0
  255. package/built/esm/localization/localization.js +2 -0
  256. package/built/esm/localization/localization.js.map +1 -0
  257. package/built/esm/model.js +2 -0
  258. package/built/esm/model.js.map +1 -0
  259. package/built/esm/network/connection.js +29 -0
  260. package/built/esm/network/connection.js.map +1 -0
  261. package/built/esm/network/index.js +2 -0
  262. package/built/esm/network/index.js.map +1 -0
  263. package/built/esm/network/network.js +190 -0
  264. package/built/esm/network/network.js.map +1 -0
  265. package/built/esm/network/packet/index.js +2 -0
  266. package/built/esm/network/packet/index.js.map +1 -0
  267. package/built/esm/network/packet/packet-types.js +75 -0
  268. package/built/esm/network/packet/packet-types.js.map +1 -0
  269. package/built/esm/network/packet/packet.js +17 -0
  270. package/built/esm/network/packet/packet.js.map +1 -0
  271. package/built/esm/network/websocket-connection.js +88 -0
  272. package/built/esm/network/websocket-connection.js.map +1 -0
  273. package/built/esm/omu.js +96 -0
  274. package/built/esm/omu.js.map +1 -0
  275. package/built/esm/serializer.js +52 -0
  276. package/built/esm/serializer.js.map +1 -0
  277. package/built/esm/token.js +21 -0
  278. package/built/esm/token.js.map +1 -0
  279. package/package.json +49 -0
  280. package/src/address.ts +5 -0
  281. package/src/app.ts +65 -0
  282. package/src/bytebuffer.ts +219 -0
  283. package/src/client.ts +53 -0
  284. package/src/const.ts +2 -0
  285. package/src/errors.ts +52 -0
  286. package/src/event-emitter.ts +18 -0
  287. package/src/extension/asset/asset-extension.ts +148 -0
  288. package/src/extension/asset/index.ts +1 -0
  289. package/src/extension/dashboard/dashboard-extension.ts +162 -0
  290. package/src/extension/dashboard/dashboard.ts +9 -0
  291. package/src/extension/dashboard/index.ts +3 -0
  292. package/src/extension/dashboard/packets.ts +52 -0
  293. package/src/extension/endpoint/endpoint-extension.ts +124 -0
  294. package/src/extension/endpoint/endpoint.ts +58 -0
  295. package/src/extension/endpoint/index.ts +3 -0
  296. package/src/extension/endpoint/packets.ts +78 -0
  297. package/src/extension/extension-registry.ts +39 -0
  298. package/src/extension/extension.ts +18 -0
  299. package/src/extension/i18n/i18n-extension.ts +73 -0
  300. package/src/extension/i18n/index.ts +2 -0
  301. package/src/extension/index.ts +3 -0
  302. package/src/extension/logger/index.ts +5 -0
  303. package/src/extension/logger/logger-extension.ts +75 -0
  304. package/src/extension/logger/packets.ts +38 -0
  305. package/src/extension/permission/index.ts +3 -0
  306. package/src/extension/permission/permission-extension.ts +98 -0
  307. package/src/extension/permission/permission.ts +56 -0
  308. package/src/extension/plugin/index.ts +2 -0
  309. package/src/extension/plugin/package-info.ts +91 -0
  310. package/src/extension/plugin/plugin-extension.ts +37 -0
  311. package/src/extension/registry/index.ts +3 -0
  312. package/src/extension/registry/packets.ts +50 -0
  313. package/src/extension/registry/registry-extension.ts +154 -0
  314. package/src/extension/registry/registry.ts +97 -0
  315. package/src/extension/server/index.ts +6 -0
  316. package/src/extension/server/server-extension.ts +63 -0
  317. package/src/extension/signal/index.ts +3 -0
  318. package/src/extension/signal/packets.ts +46 -0
  319. package/src/extension/signal/signal-extension.ts +114 -0
  320. package/src/extension/signal/signal.ts +85 -0
  321. package/src/extension/table/index.ts +3 -0
  322. package/src/extension/table/packets.ts +237 -0
  323. package/src/extension/table/table-extension.ts +503 -0
  324. package/src/extension/table/table.ts +87 -0
  325. package/src/identifier.ts +197 -0
  326. package/src/index.ts +4 -0
  327. package/src/interface.ts +8 -0
  328. package/src/localization/index.ts +3 -0
  329. package/src/localization/locale.ts +737 -0
  330. package/src/localization/localization.ts +9 -0
  331. package/src/model.ts +4 -0
  332. package/src/network/connection.ts +43 -0
  333. package/src/network/index.ts +3 -0
  334. package/src/network/network.ts +225 -0
  335. package/src/network/packet/index.ts +2 -0
  336. package/src/network/packet/packet-types.ts +101 -0
  337. package/src/network/packet/packet.ts +46 -0
  338. package/src/network/websocket-connection.ts +102 -0
  339. package/src/omu.ts +123 -0
  340. package/src/serializer.ts +82 -0
  341. package/src/token.ts +29 -0
  342. package/tsconfig.json +12 -0
@@ -0,0 +1,237 @@
1
+ import { ByteReader, ByteWriter } from '../../bytebuffer.js';
2
+ import { Identifier } from '../../identifier.js';
3
+
4
+ import type { TableConfig } from './table.js';
5
+
6
+ export class TablePacket {
7
+ constructor(
8
+ public readonly id: Identifier,
9
+ ) { }
10
+
11
+ public static serialize(packet: TablePacket): Uint8Array {
12
+ const writer = new ByteWriter();
13
+ writer.writeString(packet.id.key());
14
+ return writer.finish();
15
+ }
16
+
17
+ public static deserialize(data: Uint8Array): TablePacket {
18
+ const reader = new ByteReader(data);
19
+ const id = Identifier.fromKey(reader.readString());
20
+ return new TablePacket(id);
21
+ }
22
+ }
23
+
24
+ export class TableItemsPacket {
25
+ constructor(
26
+ public readonly id: Identifier,
27
+ public readonly items: Record<string, Uint8Array>,
28
+ ) { }
29
+
30
+ public static serialize(packet: TableItemsPacket): Uint8Array {
31
+ const writer = new ByteWriter();
32
+ writer.writeString(packet.id.key());
33
+ writer.writeInt(Object.keys(packet.items).length);
34
+ for (const [key, value] of Object.entries(packet.items)) {
35
+ writer.writeString(key);
36
+ writer.writeByteArray(value);
37
+ }
38
+ return writer.finish();
39
+ }
40
+
41
+ public static deserialize(data: Uint8Array): TableItemsPacket {
42
+ const reader = new ByteReader(data);
43
+ const id = Identifier.fromKey(reader.readString());
44
+ const count = reader.readInt();
45
+ const items: Record<string, Uint8Array> = {};
46
+ for (let i = 0; i < count; i++) {
47
+ const key = reader.readString();
48
+ const value = reader.readByteArray();
49
+ items[key] = value;
50
+ }
51
+ return new TableItemsPacket(id, items);
52
+ }
53
+ }
54
+
55
+ export class TableKeysPacket {
56
+ constructor(
57
+ public readonly id: Identifier,
58
+ public readonly keys: string[],
59
+ ) { }
60
+
61
+ public static serialize(packet: TableKeysPacket): Uint8Array {
62
+ const writer = new ByteWriter();
63
+ writer.writeString(packet.id.key());
64
+ writer.writeInt(packet.keys.length);
65
+ for (const key of packet.keys) {
66
+ writer.writeString(key);
67
+ }
68
+ return writer.finish();
69
+ }
70
+
71
+ public static deserialize(data: Uint8Array): TableKeysPacket {
72
+ const reader = new ByteReader(data);
73
+ const id = Identifier.fromKey(reader.readString());
74
+ const count = reader.readInt();
75
+ const keys: string[] = [];
76
+ for (let i = 0; i < count; i++) {
77
+ keys.push(reader.readString());
78
+ }
79
+ return new TableKeysPacket(id, keys);
80
+ }
81
+ }
82
+
83
+ export class TableProxyPacket {
84
+ constructor(
85
+ public readonly id: Identifier,
86
+ public readonly items: Record<string, Uint8Array>,
87
+ public readonly key: number,
88
+ ) { }
89
+
90
+ public static serialize(packet: TableProxyPacket): Uint8Array {
91
+ const writer = new ByteWriter();
92
+ writer.writeString(packet.id.key());
93
+ writer.writeInt(packet.key);
94
+ writer.writeInt(Object.keys(packet.items).length);
95
+ for (const [key, value] of Object.entries(packet.items)) {
96
+ writer.writeString(key);
97
+ writer.writeByteArray(value);
98
+ }
99
+ return writer.finish();
100
+ }
101
+
102
+ public static deserialize(data: Uint8Array): TableProxyPacket {
103
+ const reader = new ByteReader(data);
104
+ const id = Identifier.fromKey(reader.readString());
105
+ const key = reader.readInt();
106
+ const count = reader.readInt();
107
+ const items: Record<string, Uint8Array> = {};
108
+ for (let i = 0; i < count; i++) {
109
+ const key = reader.readString();
110
+ const value = reader.readByteArray();
111
+ items[key] = value;
112
+ }
113
+ return new TableProxyPacket(id, items, key);
114
+ }
115
+ }
116
+ export class TableFetchPacket {
117
+ constructor(
118
+ public readonly id: Identifier,
119
+ public readonly before: number | null,
120
+ public readonly after: number | null,
121
+ public readonly cursor: string | null,
122
+ ) { }
123
+
124
+ public static serialize(packet: TableFetchPacket): Uint8Array {
125
+ const writer = new ByteWriter();
126
+ writer.writeString(packet.id.key());
127
+ let flags = 0;
128
+ if (packet.before !== null) {
129
+ flags |= 0b1;
130
+ }
131
+ if (packet.after !== null) {
132
+ flags |= 0b10;
133
+ }
134
+ if (packet.cursor !== null) {
135
+ flags |= 0b100;
136
+ }
137
+ writer.writeByte(flags);
138
+ if (packet.before !== null) {
139
+ writer.writeInt(packet.before);
140
+ }
141
+ if (packet.after !== null) {
142
+ writer.writeInt(packet.after);
143
+ }
144
+ if (packet.cursor !== null) {
145
+ writer.writeString(packet.cursor);
146
+ }
147
+ return writer.finish();
148
+ }
149
+
150
+ public static deserialize(data: Uint8Array): TableFetchPacket {
151
+ const reader = new ByteReader(data);
152
+ const id = Identifier.fromKey(reader.readString());
153
+ const flags = reader.readByte();
154
+ const before = (flags & 0b1) ? reader.readInt() : null;
155
+ const after = (flags & 0b10) ? reader.readInt() : null;
156
+ const cursor = (flags & 0b100) ? reader.readString() : null;
157
+ return new TableFetchPacket(id, before, after, cursor);
158
+ }
159
+ }
160
+ export class SetConfigPacket {
161
+ constructor(
162
+ public readonly id: Identifier,
163
+ public readonly config: TableConfig,
164
+ ) { }
165
+
166
+ public static serialize(packet: SetConfigPacket): Uint8Array {
167
+ const writer = new ByteWriter();
168
+ writer.writeString(packet.id.key());
169
+ writer.writeString(JSON.stringify(packet.config));
170
+ return writer.finish();
171
+ }
172
+
173
+ public static deserialize(data: Uint8Array): SetConfigPacket {
174
+ const reader = new ByteReader(data);
175
+ const id = Identifier.fromKey(reader.readString());
176
+ const config = JSON.parse(reader.readString());
177
+ return new SetConfigPacket(id, config);
178
+ }
179
+ }
180
+
181
+ export class SetPermissionPacket {
182
+ constructor(
183
+ public readonly id: Identifier,
184
+ public readonly all: Identifier | null,
185
+ public readonly read: Identifier | null,
186
+ public readonly write: Identifier | null,
187
+ public readonly remove: Identifier | null,
188
+ public readonly proxy: Identifier | null,
189
+ ) { }
190
+
191
+ public static serialize(packet: SetPermissionPacket): Uint8Array {
192
+ const writer = new ByteWriter();
193
+ writer.writeString(packet.id.key());
194
+ let flags = 0;
195
+ if (packet.all !== null) {
196
+ flags |= 0b1;
197
+ }
198
+ if (packet.read !== null) {
199
+ flags |= 0b10;
200
+ }
201
+ if (packet.write !== null) {
202
+ flags |= 0b100;
203
+ }
204
+ if (packet.remove !== null) {
205
+ flags |= 0b1000;
206
+ }
207
+ if (packet.proxy !== null) {
208
+ flags |= 0b10000;
209
+ }
210
+ writer.writeByte(flags);
211
+ packet.all && writer.writeString(packet.all.key());
212
+ packet.read && writer.writeString(packet.read.key());
213
+ packet.write && writer.writeString(packet.write.key());
214
+ packet.remove && writer.writeString(packet.remove.key());
215
+ packet.proxy && writer.writeString(packet.proxy.key());
216
+ return writer.finish();
217
+ }
218
+
219
+ public static deserialize(data: Uint8Array): SetPermissionPacket {
220
+ const reader = new ByteReader(data);
221
+ const id = Identifier.fromKey(reader.readString());
222
+ const flags = reader.readByte();
223
+ const all = (flags & 0b1) ? Identifier.fromKey(reader.readString()) : null;
224
+ const read = (flags & 0b10) ? Identifier.fromKey(reader.readString()) : null;
225
+ const write = (flags & 0b100) ? Identifier.fromKey(reader.readString()) : null;
226
+ const remove = (flags & 0b1000) ? Identifier.fromKey(reader.readString()) : null;
227
+ const proxy = (flags & 0b10000) ? Identifier.fromKey(reader.readString()) : null;
228
+ return new SetPermissionPacket(
229
+ id,
230
+ all,
231
+ read,
232
+ write,
233
+ remove,
234
+ proxy,
235
+ );
236
+ }
237
+ }