@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,52 @@
1
+ import { textDecoder, textEncoder } from './const.js';
2
+ export class Serializer {
3
+ serialize;
4
+ deserialize;
5
+ constructor(serialize, deserialize) {
6
+ this.serialize = serialize;
7
+ this.deserialize = deserialize;
8
+ }
9
+ static of(serializer) {
10
+ return new Serializer(serializer.serialize, serializer.deserialize);
11
+ }
12
+ static noop() {
13
+ return new Serializer((data) => data, (data) => data);
14
+ }
15
+ static model(model) {
16
+ return new Serializer((data) => data.toJson(), model.fromJson);
17
+ }
18
+ static json() {
19
+ return new Serializer((data) => textEncoder.encode(JSON.stringify(data)), (data) => {
20
+ const text = textDecoder.decode(data);
21
+ return JSON.parse(text);
22
+ });
23
+ }
24
+ toJson() {
25
+ return new Serializer((data) => textEncoder.encode(JSON.stringify(this.serialize(data))), (data) => {
26
+ const text = textDecoder.decode(data);
27
+ return this.deserialize(JSON.parse(text));
28
+ });
29
+ }
30
+ toArray() {
31
+ return new Serializer((data) => data.map((item) => this.serialize(item)), (data) => data.map((item) => this.deserialize(item)));
32
+ }
33
+ toMap() {
34
+ return new Serializer((data) => {
35
+ const result = new Map();
36
+ data.forEach((value, key) => {
37
+ result.set(key, this.serialize(value));
38
+ });
39
+ return result;
40
+ }, (data) => {
41
+ const result = new Map();
42
+ data.forEach((value, key) => {
43
+ result.set(key, this.deserialize(value));
44
+ });
45
+ return result;
46
+ });
47
+ }
48
+ pipe(serializer) {
49
+ return new Serializer((data) => serializer.serialize(this.serialize(data)), (data) => this.deserialize(serializer.deserialize(data)));
50
+ }
51
+ }
52
+ //# sourceMappingURL=serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/serializer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export class BrowserTokenProvider {
2
+ key;
3
+ constructor(key) {
4
+ this.key = key;
5
+ }
6
+ getKey(serverAddress, app) {
7
+ return JSON.stringify([serverAddress.host, serverAddress.port, app.key()]);
8
+ }
9
+ async set(serverAddress, app, token) {
10
+ const tokens = JSON.parse(localStorage.getItem(this.key) || '{}');
11
+ const key = this.getKey(serverAddress, app);
12
+ tokens[key] = token;
13
+ localStorage.setItem(this.key, JSON.stringify(tokens));
14
+ }
15
+ async get(serverAddress, app) {
16
+ const tokens = JSON.parse(localStorage.getItem(this.key) || '{}');
17
+ const key = this.getKey(serverAddress, app);
18
+ return Promise.resolve(tokens[key] || null);
19
+ }
20
+ }
21
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/token.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,oBAAoB;IACA;IAA7B,YAA6B,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEpC,MAAM,CAAC,aAAsB,EAAE,GAAQ;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,aAAsB,EAAE,GAAQ,EAAE,KAAa;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACpB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,aAAsB,EAAE,GAAQ;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAChD,CAAC;CACJ"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "type": "module",
3
+ "name": "@omujs/omu",
4
+ "version": "0.1.22",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/OMUAPPS/omuapps"
8
+ },
9
+ "exports": {
10
+ ".": {
11
+ "import": "./built/esm/index.js",
12
+ "types": "./built/dts/index.d.ts"
13
+ },
14
+ "./*": {
15
+ "import": "./built/esm/*",
16
+ "types": "./built/dts/*"
17
+ }
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "^20.12.12",
21
+ "@types/websocket": "1.0.10",
22
+ "@types/ws": "8.5.10",
23
+ "@typescript-eslint/eslint-plugin": "^7.9.0",
24
+ "@typescript-eslint/parser": "^7.9.0",
25
+ "axios": "^1.6.8",
26
+ "eslint": "^8.57.0",
27
+ "eslint-config-prettier": "^9.1.0",
28
+ "eslint-plugin-import": "^2.29.1",
29
+ "eslint-plugin-prettier": "^5.1.3",
30
+ "eslint-plugin-svelte": "^2.39.0",
31
+ "eslint-plugin-unused-imports": "^3.2.0",
32
+ "nodemon": "^3.1.0",
33
+ "ts-node": "10.9.2",
34
+ "typescript": "^5.4.5",
35
+ "websocket": "1.0.34",
36
+ "ws": "8.16.0"
37
+ },
38
+ "gitHead": "04559d5aec52117d707e0d554ee429b858da522a",
39
+ "scripts": {
40
+ "ts": "pnpm run ts-esm && pnpm run ts-dts",
41
+ "ts-esm": "tsc --outDir built/esm",
42
+ "ts-dts": "tsc --outDir built/dts --declaration true --emitDeclarationOnly true --declarationMap true",
43
+ "watch": "nodemon -w src -e ts,json --exec \"pnpm run ts\"",
44
+ "dev": "pnpm run watch",
45
+ "build": "pnpm run ts",
46
+ "lint": "eslint . --ext .js,.ts",
47
+ "format": "eslint . --ext .js,.ts --fix"
48
+ }
49
+ }
package/src/address.ts ADDED
@@ -0,0 +1,5 @@
1
+ export interface Address {
2
+ host: string;
3
+ port: number;
4
+ secure: boolean;
5
+ }
package/src/app.ts ADDED
@@ -0,0 +1,65 @@
1
+ import { Identifier } from './identifier.js';
2
+ import type { Keyable } from './interface.js';
3
+ import type { Locale } from './localization/locale.js';
4
+ import type { LocalizedText } from './localization/localization.js';
5
+ import type { Model } from './model.js';
6
+
7
+ export type AppMetadata = {
8
+ locale: Locale;
9
+ name?: LocalizedText;
10
+ icon?: LocalizedText;
11
+ description?: LocalizedText;
12
+ image?: LocalizedText;
13
+ site?: LocalizedText;
14
+ repository?: LocalizedText;
15
+ authors?: LocalizedText;
16
+ license?: LocalizedText;
17
+ tags?: string[];
18
+ }
19
+
20
+ export type AppJson = {
21
+ id: string;
22
+ version?: string;
23
+ url?: string;
24
+ metadata?: AppMetadata;
25
+ }
26
+
27
+ export class App implements Keyable, Model<AppJson> {
28
+ public readonly id: Identifier;
29
+ public readonly version?: string;
30
+ public readonly url?: string;
31
+ public readonly metadata?: AppMetadata;
32
+
33
+ constructor(id: Identifier, options: {
34
+ version?: string;
35
+ url?: string;
36
+ metadata?: AppMetadata;
37
+ }) {
38
+ this.id = id;
39
+ this.version = options.version;
40
+ this.url = options.url;
41
+ this.metadata = options.metadata;
42
+ }
43
+
44
+ public key(): string {
45
+ return this.id.key();
46
+ }
47
+
48
+ public static fromJson(info: AppJson): App {
49
+ const id = Identifier.fromKey(info.id);
50
+ return new App(id, {
51
+ version: info.version,
52
+ url: info.url,
53
+ metadata: info.metadata,
54
+ });
55
+ }
56
+
57
+ public toJson(): AppJson {
58
+ return {
59
+ id: this.id.key(),
60
+ version: this.version,
61
+ url: this.url,
62
+ metadata: this.metadata,
63
+ };
64
+ }
65
+ }
@@ -0,0 +1,219 @@
1
+ import { textDecoder, textEncoder } from './const.js';
2
+
3
+ export class Flags {
4
+ constructor(
5
+ private value: number,
6
+ private length: number,
7
+ ) { }
8
+
9
+ public has(position: number): boolean {
10
+ return (this.value & (1 << position)) !== 0;
11
+ }
12
+
13
+ public get(position: number): boolean {
14
+ return (this.value & (1 << position)) !== 0;
15
+ }
16
+
17
+ public ifSet<T>(position: number, callback: () => T): T | undefined {
18
+ if (this.has(position)) {
19
+ return callback();
20
+ }
21
+ return undefined;
22
+ }
23
+
24
+ public set(position: number, value: boolean): void {
25
+ if (value) {
26
+ this.value |= 1 << position;
27
+ } else {
28
+ this.value &= ~(1 << position);
29
+ }
30
+ }
31
+
32
+ public write(writer: ByteWriter): void {
33
+ const bits = new Uint8Array((this.length + 7) / 8);
34
+ for (let i = 0; i < bits.length; i++) {
35
+ bits[i] = (this.value >> (i * 8)) & 0xff;
36
+ }
37
+ writer.write(bits);
38
+ }
39
+
40
+ public static read(reader: ByteReader, length: number): Flags {
41
+ let bits = 0;
42
+ for (let i = 0; i < (length + 7) / 8; i++) {
43
+ bits |= reader.readByte() << (i * 8);
44
+ }
45
+ return new Flags(bits, length);
46
+ }
47
+ }
48
+
49
+ export class ByteWriter {
50
+ private dataArray: DataView;
51
+ private buffer: ArrayBuffer;
52
+ private offset = 0;
53
+ private finished = false;
54
+
55
+ constructor(init?: ArrayBuffer) {
56
+ this.buffer = init ?? new ArrayBuffer(1024);
57
+ this.dataArray = new DataView(this.buffer);
58
+ }
59
+
60
+ private allocate(length: number): void {
61
+ if (this.offset + length > this.buffer.byteLength) {
62
+ const newByteLength = Math.max(this.buffer.byteLength * 2, this.offset + length);
63
+ const newBuffer = new ArrayBuffer(newByteLength);
64
+ new Uint8Array(newBuffer).set(new Uint8Array(this.buffer));
65
+ this.buffer = newBuffer;
66
+ this.dataArray = new DataView(this.buffer);
67
+ }
68
+ }
69
+
70
+ public write(data: Uint8Array): ByteWriter {
71
+ if (this.finished) {
72
+ throw new Error('Buffer already finished');
73
+ }
74
+ this.allocate(data.length);
75
+ new Uint8Array(this.buffer).set(data, this.offset);
76
+ this.offset += data.length;
77
+ return this;
78
+ }
79
+
80
+ public writeBoolean(value: boolean): ByteWriter {
81
+ this.allocate(1);
82
+ this.dataArray.setInt8(this.offset, value ? 1 : 0);
83
+ this.offset += 1;
84
+ return this;
85
+ }
86
+
87
+ public writeBigInt(value: bigint): ByteWriter {
88
+ this.allocate(8);
89
+ this.dataArray.setBigInt64(this.offset, value);
90
+ this.offset += 8;
91
+ return this;
92
+ }
93
+
94
+ public writeInt(value: number): ByteWriter {
95
+ this.allocate(4);
96
+ this.dataArray.setInt32(this.offset, value);
97
+ this.offset += 4;
98
+ return this;
99
+ }
100
+
101
+ public writeShort(value: number): ByteWriter {
102
+ this.allocate(2);
103
+ this.dataArray.setInt16(this.offset, value);
104
+ this.offset += 2;
105
+ return this;
106
+ }
107
+
108
+ public writeByte(value: number): ByteWriter {
109
+ this.allocate(1);
110
+ this.dataArray.setInt8(this.offset, value);
111
+ this.offset += 1;
112
+ return this;
113
+ }
114
+
115
+ public writeByteArray(value: Uint8Array): ByteWriter {
116
+ if (value.byteLength > 0x7fffffff) {
117
+ throw new Error('Byte array too long');
118
+ }
119
+ this.writeInt(value.byteLength);
120
+ this.write(value);
121
+ return this;
122
+ }
123
+
124
+ public writeString(value: string): ByteWriter {
125
+ this.writeByteArray(textEncoder.encode(value));
126
+ return this;
127
+ }
128
+
129
+ public writeFlags(flags: Flags): ByteWriter {
130
+ flags.write(this);
131
+ return this;
132
+ }
133
+
134
+ public finish(): Uint8Array {
135
+ if (this.finished) {
136
+ throw new Error('Buffer already finished');
137
+ }
138
+ this.finished = true;
139
+ return new Uint8Array(this.buffer, 0, this.offset);
140
+ }
141
+ }
142
+
143
+ export class ByteReader {
144
+ private dataArray: DataView;
145
+ private offset = 0;
146
+ private finished = false;
147
+
148
+ constructor(buffer: ArrayBuffer) {
149
+ this.dataArray = new DataView(new Uint8Array(buffer).buffer);
150
+ }
151
+
152
+ public read(size: number): Uint8Array {
153
+ if (this.finished) {
154
+ throw new Error('Buffer already finished');
155
+ }
156
+ if (size < 0) {
157
+ throw new Error('Size must be positive');
158
+ }
159
+ if (this.offset + size > this.dataArray.byteLength) {
160
+ throw new Error('Buffer not fully read');
161
+ }
162
+ const value = new Uint8Array(this.dataArray.buffer, this.offset, size);
163
+ this.offset += size;
164
+ return value;
165
+ }
166
+
167
+ public readBoolean(): boolean {
168
+ const value = this.dataArray.getInt8(this.offset);
169
+ this.offset += 1;
170
+ return value !== 0;
171
+ }
172
+
173
+ public readBigInt(): bigint {
174
+ const value = this.dataArray.getBigInt64(this.offset);
175
+ this.offset += 8;
176
+ return value;
177
+ }
178
+
179
+ public readInt(): number {
180
+ const value = this.dataArray.getInt32(this.offset);
181
+ this.offset += 4;
182
+ return value;
183
+ }
184
+
185
+ public readShort(): number {
186
+ const value = this.dataArray.getInt16(this.offset);
187
+ this.offset += 2;
188
+ return value;
189
+ }
190
+
191
+ public readByte(): number {
192
+ const value = this.dataArray.getInt8(this.offset);
193
+ this.offset += 1;
194
+ return value;
195
+ }
196
+
197
+ public readByteArray(): Uint8Array {
198
+ const length = this.readInt();
199
+ return this.read(length);
200
+ }
201
+
202
+ public readString(): string {
203
+ return textDecoder.decode(this.readByteArray());
204
+ }
205
+
206
+ public readFlags(length: number): Flags {
207
+ return Flags.read(this, length);
208
+ }
209
+
210
+ public finish(): void {
211
+ if (this.finished) {
212
+ throw new Error('Buffer already finished');
213
+ }
214
+ this.finished = true;
215
+ if (this.offset !== this.dataArray.byteLength) {
216
+ throw new Error('Buffer not fully read');
217
+ }
218
+ }
219
+ }
package/src/client.ts ADDED
@@ -0,0 +1,53 @@
1
+ import type { App } from './app.js';
2
+ import type { Unlisten, EventEmitter } from './event-emitter.js';
3
+ import type { AssetExtension } from './extension/asset/index.js';
4
+ import type { DashboardExtension } from './extension/dashboard/index.js';
5
+ import type { EndpointExtension } from './extension/endpoint/index.js';
6
+ import type { I18nExtension } from './extension/i18n/index.js';
7
+ import type { ExtensionRegistry } from './extension/index.js';
8
+ import type { LoggerExtension } from './extension/logger/logger-extension.js';
9
+ import type { PermissionExtension } from './extension/permission/index.js';
10
+ import type { PluginExtension } from './extension/plugin/index.js';
11
+ import type { RegistryExtension } from './extension/registry/index.js';
12
+ import type { ServerExtension } from './extension/server/index.js';
13
+ import type { SignalExtension } from './extension/signal/index.js';
14
+ import type { TableExtension } from './extension/table/index.js';
15
+ import type { Address, Network } from './network/index.js';
16
+ import type { PacketType } from './network/packet/packet.js';
17
+ import type { TokenProvider } from './token.js';
18
+
19
+ export type ClientEvents = {
20
+ started: EventEmitter<() => void>;
21
+ stopped: EventEmitter<() => void>;
22
+ ready: EventEmitter<() => void>;
23
+ };
24
+
25
+ export interface Client {
26
+ readonly app: App;
27
+ ready: boolean;
28
+ running: boolean;
29
+ readonly event: ClientEvents;
30
+ readonly token: TokenProvider;
31
+ readonly address: Address;
32
+ readonly network: Network;
33
+ readonly endpoints: EndpointExtension;
34
+ readonly permissions: PermissionExtension;
35
+ readonly plugins: PluginExtension;
36
+ readonly dashboard: DashboardExtension;
37
+ readonly extensions: ExtensionRegistry;
38
+ readonly tables: TableExtension;
39
+ readonly registry: RegistryExtension;
40
+ readonly signal: SignalExtension;
41
+ readonly assets: AssetExtension;
42
+ readonly i18n: I18nExtension;
43
+ readonly server: ServerExtension;
44
+ readonly logger: LoggerExtension;
45
+
46
+ send<T>(packetType: PacketType<T>, data: T): void;
47
+
48
+ start(): void;
49
+
50
+ stop(): void;
51
+
52
+ whenReady(callback: () => void): Unlisten;
53
+ }
package/src/const.ts ADDED
@@ -0,0 +1,2 @@
1
+ export const textEncoder = new TextEncoder();
2
+ export const textDecoder = new TextDecoder();
package/src/errors.ts ADDED
@@ -0,0 +1,52 @@
1
+ import { DisconnectType } from './network/packet/packet-types.js';
2
+ export class OmuError extends Error {
3
+ constructor(message: string | null) {
4
+ super(message ?? undefined);
5
+ this.name = this.constructor.name;
6
+ }
7
+ }
8
+
9
+ export class DisconnectReason extends OmuError {
10
+ constructor(
11
+ public type: DisconnectType,
12
+ public message = '',
13
+ ) {
14
+ super(message);
15
+ }
16
+ }
17
+
18
+ export class NetworkError extends OmuError {
19
+ }
20
+
21
+ export class AnotherConnection extends NetworkError {
22
+ constructor() {
23
+ super(DisconnectType.ANOTHER_CONNECTION);
24
+ }
25
+ }
26
+
27
+ export class PermissionDenied extends NetworkError {
28
+ constructor() {
29
+ super(DisconnectType.PERMISSION_DENIED);
30
+ }
31
+ }
32
+
33
+ export class InvalidToken extends NetworkError {
34
+ constructor() {
35
+ super(DisconnectType.INVALID_TOKEN);
36
+ }
37
+ }
38
+
39
+ export class InvalidOrigin extends NetworkError {
40
+ constructor() {
41
+ super(DisconnectType.INVALID_ORIGIN);
42
+ }
43
+ }
44
+
45
+ export class InvalidVersion extends NetworkError {
46
+ constructor() {
47
+ super(DisconnectType.INVALID_VERSION);
48
+ }
49
+ }
50
+
51
+ export class InvalidPacket extends NetworkError {
52
+ }
@@ -0,0 +1,18 @@
1
+ export type Unlisten = () => void;
2
+
3
+ export class EventEmitter<T extends (...args: any[]) => any> {
4
+ private readonly listeners: Array<T> = [];
5
+
6
+ public listen(listener: T): Unlisten {
7
+ this.listeners.push(listener);
8
+ return () => {
9
+ this.listeners.splice(this.listeners.indexOf(listener), 1);
10
+ };
11
+ }
12
+
13
+ public async emit(...args: Parameters<T>): Promise<void> {
14
+ for (const listener of [...this.listeners]) {
15
+ await listener(...args);
16
+ }
17
+ }
18
+ }