@omujs/omu 0.9.9 → 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.
- package/CHANGELOG.md +157 -0
- package/README.md +0 -1
- package/dist/dts/address.d.ts +4 -4
- package/dist/dts/api/asset/extension.d.ts +25 -0
- package/dist/dts/api/asset/index.d.ts +2 -0
- package/dist/dts/api/dashboard/extension.d.ts +186 -0
- package/dist/dts/api/dashboard/handler.d.ts +21 -0
- package/dist/dts/api/dashboard/index.d.ts +3 -0
- package/dist/dts/api/dashboard/packets.d.ts +73 -0
- package/dist/dts/api/endpoint/endpoint.d.ts +32 -0
- package/dist/dts/api/endpoint/extension.d.ts +23 -0
- package/dist/dts/api/endpoint/index.d.ts +2 -0
- package/dist/dts/api/endpoint/packets.d.ts +51 -0
- package/dist/dts/api/extension-registry.d.ts +8 -0
- package/dist/dts/api/extension.d.ts +11 -0
- package/dist/dts/api/http/extension.d.ts +174 -0
- package/dist/dts/api/http/index.d.ts +1 -0
- package/dist/dts/api/i18n/extension.d.ts +22 -0
- package/dist/dts/api/i18n/index.d.ts +1 -0
- package/dist/dts/api/index.d.ts +2 -0
- package/dist/dts/api/logger/extension.d.ts +25 -0
- package/dist/dts/api/logger/index.d.ts +1 -0
- package/dist/dts/api/logger/packets.d.ts +18 -0
- package/dist/dts/api/permission/extension.d.ts +18 -0
- package/dist/dts/api/permission/index.d.ts +1 -0
- package/dist/dts/api/permission/permission.d.ts +25 -0
- package/dist/dts/api/plugin/extension.d.ts +43 -0
- package/dist/dts/api/plugin/index.d.ts +2 -0
- package/dist/dts/api/plugin/package-info.d.ts +84 -0
- package/dist/dts/api/registry/extension.d.ts +26 -0
- package/dist/dts/api/registry/index.d.ts +2 -0
- package/dist/dts/api/registry/packets.d.ts +20 -0
- package/dist/dts/api/registry/registry.d.ts +44 -0
- package/dist/dts/api/server/extension.d.ts +47 -0
- package/dist/dts/api/server/index.d.ts +1 -0
- package/dist/dts/api/session/extension.d.ts +51 -0
- package/dist/dts/api/session/index.d.ts +1 -0
- package/dist/dts/api/signal/extension.d.ts +22 -0
- package/dist/dts/api/signal/index.d.ts +1 -0
- package/dist/dts/api/signal/packets.d.ts +21 -0
- package/dist/dts/api/signal/signal.d.ts +33 -0
- package/dist/dts/api/table/extension.d.ts +29 -0
- package/dist/dts/api/table/index.d.ts +2 -0
- package/dist/dts/api/table/packets.d.ts +65 -0
- package/dist/dts/api/table/table.d.ts +76 -0
- package/dist/dts/app.d.ts +44 -37
- package/dist/dts/const.d.ts +0 -1
- package/dist/dts/errors.d.ts +18 -13
- package/dist/dts/event/index.d.ts +6 -0
- package/dist/dts/helper.d.ts +13 -0
- package/dist/dts/identifier.d.ts +45 -39
- package/dist/dts/index.d.ts +37 -7
- package/dist/dts/localization/index.d.ts +2 -3
- package/dist/dts/localization/locale.d.ts +732 -733
- package/dist/dts/localization/localization.d.ts +3 -6
- package/dist/dts/lock.d.ts +6 -0
- package/dist/dts/network/connection.d.ts +13 -13
- package/dist/dts/network/encryption.d.ts +38 -0
- package/dist/dts/network/frame-transport.d.ts +22 -0
- package/dist/dts/network/index.d.ts +5 -4
- package/dist/dts/network/network.d.ts +52 -51
- package/dist/dts/network/packet/index.d.ts +2 -3
- package/dist/dts/network/packet/packet-types.d.ts +73 -52
- package/dist/dts/network/packet/packet.d.ts +26 -22
- package/dist/dts/network/websocket-transport.d.ts +24 -0
- package/dist/dts/omu.d.ts +60 -49
- package/dist/dts/serialize/bytebuffer.d.ts +71 -0
- package/dist/dts/serialize/index.d.ts +2 -0
- package/dist/dts/serialize/serializer.d.ts +38 -0
- package/dist/dts/token.d.ts +11 -10
- package/dist/dts/version.d.ts +1 -2
- package/dist/esm/address.js +4 -2
- package/dist/esm/api/asset/extension.js +877 -0
- package/dist/esm/api/asset/index.js +875 -0
- package/dist/esm/api/dashboard/extension.js +1281 -0
- package/dist/esm/api/dashboard/handler.js +4 -0
- package/dist/esm/api/dashboard/index.js +1279 -0
- package/dist/esm/api/dashboard/packets.js +413 -0
- package/dist/esm/api/endpoint/endpoint.js +380 -0
- package/dist/esm/api/endpoint/extension.js +1087 -0
- package/dist/esm/api/endpoint/index.js +380 -0
- package/dist/esm/api/endpoint/packets.js +790 -0
- package/dist/esm/api/extension-registry.js +23 -0
- package/dist/esm/api/extension.js +275 -0
- package/dist/esm/api/http/extension.js +1426 -0
- package/dist/esm/api/http/index.js +1312 -0
- package/dist/esm/api/i18n/extension.js +1237 -0
- package/dist/esm/api/i18n/index.js +1235 -0
- package/dist/esm/api/index.js +292 -0
- package/dist/esm/api/logger/extension.js +847 -0
- package/dist/esm/api/logger/index.js +843 -0
- package/dist/esm/api/logger/packets.js +664 -0
- package/dist/esm/api/permission/extension.js +529 -0
- package/dist/esm/api/permission/index.js +291 -0
- package/dist/esm/api/permission/permission.js +291 -0
- package/dist/esm/api/plugin/extension.js +528 -0
- package/dist/esm/api/plugin/index.js +526 -0
- package/dist/esm/api/plugin/package-info.js +4 -0
- package/dist/esm/api/registry/extension.js +1170 -0
- package/dist/esm/api/registry/index.js +1169 -0
- package/dist/esm/api/registry/packets.js +685 -0
- package/dist/esm/api/registry/registry.js +380 -0
- package/dist/esm/api/server/extension.js +2009 -0
- package/dist/esm/api/server/index.js +1987 -0
- package/dist/esm/api/session/extension.js +2111 -0
- package/dist/esm/api/session/index.js +2111 -0
- package/dist/esm/api/signal/extension.js +1022 -0
- package/dist/esm/api/signal/index.js +376 -0
- package/dist/esm/api/signal/packets.js +681 -0
- package/dist/esm/api/signal/signal.js +376 -0
- package/dist/esm/api/table/extension.js +1544 -0
- package/dist/esm/api/table/index.js +1543 -0
- package/dist/esm/api/table/packets.js +895 -0
- package/dist/esm/api/table/table.js +380 -0
- package/dist/esm/app.js +259 -40
- package/dist/esm/const.js +11 -3
- package/dist/esm/errors.js +533 -40
- package/dist/esm/event/index.js +22 -0
- package/dist/esm/helper.js +15 -0
- package/dist/esm/identifier.js +244 -139
- package/dist/esm/index.js +4837 -6
- package/dist/esm/localization/index.js +742 -2
- package/dist/esm/localization/locale.js +741 -735
- package/dist/esm/localization/localization.js +4 -2
- package/dist/esm/lock.js +46 -0
- package/dist/esm/network/connection.js +288 -27
- package/dist/esm/network/encryption.js +977 -0
- package/dist/esm/network/frame-transport.js +525 -0
- package/dist/esm/network/index.js +1614 -2
- package/dist/esm/network/network.js +1337 -195
- package/dist/esm/network/packet/index.js +482 -2
- package/dist/esm/network/packet/packet-types.js +478 -80
- package/dist/esm/network/packet/packet.js +125 -16
- package/dist/esm/network/websocket-transport.js +487 -0
- package/dist/esm/omu.js +4621 -91
- package/dist/esm/serialize/bytebuffer.js +378 -0
- package/dist/esm/serialize/index.js +465 -0
- package/dist/esm/serialize/serializer.js +97 -0
- package/dist/esm/token.js +42 -18
- package/dist/esm/version.js +9 -2
- package/package.json +26 -33
- package/src/address.ts +1 -0
- package/src/api/asset/extension.ts +159 -0
- package/src/api/asset/index.ts +6 -0
- package/src/api/dashboard/extension.ts +614 -0
- package/src/api/dashboard/handler.ts +23 -0
- package/src/api/dashboard/index.ts +36 -0
- package/src/api/dashboard/packets.ts +126 -0
- package/src/api/endpoint/endpoint.ts +56 -0
- package/src/api/endpoint/extension.ts +133 -0
- package/src/api/endpoint/index.ts +3 -0
- package/src/api/endpoint/packets.ts +176 -0
- package/src/api/extension-registry.ts +17 -0
- package/src/{extension → api}/extension.ts +3 -4
- package/src/api/http/extension.ts +752 -0
- package/src/api/http/index.ts +2 -0
- package/src/{extension/i18n/i18n-extension.ts → api/i18n/extension.ts} +9 -10
- package/src/api/i18n/index.ts +2 -0
- package/src/{extension/logger/logger-extension.ts → api/logger/extension.ts} +16 -17
- package/src/api/logger/index.ts +4 -0
- package/src/{extension → api}/logger/packets.ts +3 -3
- package/src/{extension/permission/permission-extension.ts → api/permission/extension.ts} +24 -23
- package/src/api/permission/index.ts +2 -0
- package/src/{extension → api}/permission/permission.ts +8 -11
- package/src/{extension/plugin/plugin-extension.ts → api/plugin/extension.ts} +32 -19
- package/src/api/plugin/index.ts +3 -0
- package/src/{extension/registry/registry-extension.ts → api/registry/extension.ts} +76 -47
- package/src/api/registry/index.ts +3 -0
- package/src/api/registry/packets.ts +64 -0
- package/src/api/registry/registry.ts +73 -0
- package/src/api/server/extension.ts +126 -0
- package/src/api/server/index.ts +11 -0
- package/src/api/session/extension.ts +196 -0
- package/src/api/session/index.ts +7 -0
- package/src/{extension/signal/signal-extension.ts → api/signal/extension.ts} +42 -35
- package/src/api/signal/index.ts +1 -0
- package/src/api/signal/packets.ts +61 -0
- package/src/api/signal/signal.ts +67 -0
- package/src/{extension/table/table-extension.ts → api/table/extension.ts} +111 -154
- package/src/api/table/index.ts +3 -0
- package/src/{extension → api}/table/packets.ts +28 -27
- package/src/{extension → api}/table/table.ts +24 -18
- package/src/app.ts +43 -25
- package/src/const.ts +2 -2
- package/src/errors.ts +12 -0
- package/src/helper.ts +16 -0
- package/src/identifier.ts +59 -4
- package/src/index.ts +86 -5
- package/src/localization/index.ts +2 -2
- package/src/lock.ts +43 -0
- package/src/network/connection.ts +7 -5
- package/src/network/encryption.ts +221 -0
- package/src/network/frame-transport.ts +186 -0
- package/src/network/index.ts +4 -1
- package/src/network/network.ts +138 -90
- package/src/network/packet/index.ts +3 -2
- package/src/network/packet/packet-types.ts +79 -36
- package/src/network/packet/packet.ts +20 -11
- package/src/network/websocket-transport.ts +123 -0
- package/src/omu.ts +56 -30
- package/src/serialize/bytebuffer.ts +424 -0
- package/src/serialize/index.ts +2 -0
- package/src/serialize/serializer.ts +149 -0
- package/src/token.ts +28 -14
- package/src/version.ts +1 -1
- package/tsconfig.json +8 -2
- package/tsconfig.tsbuildinfo +1 -0
- package/LICENSE +0 -21
- package/dist/dts/address.d.ts.map +0 -1
- package/dist/dts/app.d.ts.map +0 -1
- package/dist/dts/bytebuffer.d.ts +0 -49
- package/dist/dts/bytebuffer.d.ts.map +0 -1
- package/dist/dts/client.d.ts +0 -48
- package/dist/dts/client.d.ts.map +0 -1
- package/dist/dts/const.d.ts.map +0 -1
- package/dist/dts/errors.d.ts.map +0 -1
- package/dist/dts/event-emitter.d.ts +0 -7
- package/dist/dts/event-emitter.d.ts.map +0 -1
- package/dist/dts/extension/asset/asset-extension.d.ts +0 -24
- package/dist/dts/extension/asset/asset-extension.d.ts.map +0 -1
- package/dist/dts/extension/asset/index.d.ts +0 -2
- package/dist/dts/extension/asset/index.d.ts.map +0 -1
- package/dist/dts/extension/dashboard/dashboard-extension.d.ts +0 -29
- package/dist/dts/extension/dashboard/dashboard-extension.d.ts.map +0 -1
- package/dist/dts/extension/dashboard/dashboard.d.ts +0 -10
- package/dist/dts/extension/dashboard/dashboard.d.ts.map +0 -1
- package/dist/dts/extension/dashboard/index.d.ts +0 -3
- package/dist/dts/extension/dashboard/index.d.ts.map +0 -1
- package/dist/dts/extension/dashboard/packets.d.ts +0 -41
- package/dist/dts/extension/dashboard/packets.d.ts.map +0 -1
- package/dist/dts/extension/endpoint/endpoint-extension.d.ts +0 -16
- package/dist/dts/extension/endpoint/endpoint-extension.d.ts.map +0 -1
- package/dist/dts/extension/endpoint/endpoint.d.ts +0 -22
- package/dist/dts/extension/endpoint/endpoint.d.ts.map +0 -1
- package/dist/dts/extension/endpoint/index.d.ts +0 -3
- package/dist/dts/extension/endpoint/index.d.ts.map +0 -1
- package/dist/dts/extension/endpoint/packets.d.ts +0 -24
- package/dist/dts/extension/endpoint/packets.d.ts.map +0 -1
- package/dist/dts/extension/extension-registry.d.ts +0 -12
- package/dist/dts/extension/extension-registry.d.ts.map +0 -1
- package/dist/dts/extension/extension.d.ts +0 -13
- package/dist/dts/extension/extension.d.ts.map +0 -1
- package/dist/dts/extension/i18n/i18n-extension.d.ts +0 -21
- package/dist/dts/extension/i18n/i18n-extension.d.ts.map +0 -1
- package/dist/dts/extension/i18n/index.d.ts +0 -2
- package/dist/dts/extension/i18n/index.d.ts.map +0 -1
- package/dist/dts/extension/index.d.ts +0 -3
- package/dist/dts/extension/index.d.ts.map +0 -1
- package/dist/dts/extension/logger/index.d.ts +0 -2
- package/dist/dts/extension/logger/index.d.ts.map +0 -1
- package/dist/dts/extension/logger/logger-extension.d.ts +0 -25
- package/dist/dts/extension/logger/logger-extension.d.ts.map +0 -1
- package/dist/dts/extension/logger/packets.d.ts +0 -19
- package/dist/dts/extension/logger/packets.d.ts.map +0 -1
- package/dist/dts/extension/permission/index.d.ts +0 -3
- package/dist/dts/extension/permission/index.d.ts.map +0 -1
- package/dist/dts/extension/permission/permission-extension.d.ts +0 -18
- package/dist/dts/extension/permission/permission-extension.d.ts.map +0 -1
- package/dist/dts/extension/permission/permission.d.ts +0 -28
- package/dist/dts/extension/permission/permission.d.ts.map +0 -1
- package/dist/dts/extension/plugin/index.d.ts +0 -2
- package/dist/dts/extension/plugin/index.d.ts.map +0 -1
- package/dist/dts/extension/plugin/package-info.d.ts +0 -85
- package/dist/dts/extension/plugin/package-info.d.ts.map +0 -1
- package/dist/dts/extension/plugin/plugin-extension.d.ts +0 -34
- package/dist/dts/extension/plugin/plugin-extension.d.ts.map +0 -1
- package/dist/dts/extension/registry/index.d.ts +0 -3
- package/dist/dts/extension/registry/index.d.ts.map +0 -1
- package/dist/dts/extension/registry/packets.d.ts +0 -17
- package/dist/dts/extension/registry/packets.d.ts.map +0 -1
- package/dist/dts/extension/registry/registry-extension.d.ts +0 -19
- package/dist/dts/extension/registry/registry-extension.d.ts.map +0 -1
- package/dist/dts/extension/registry/registry.d.ts +0 -40
- package/dist/dts/extension/registry/registry.d.ts.map +0 -1
- package/dist/dts/extension/server/index.d.ts +0 -2
- package/dist/dts/extension/server/index.d.ts.map +0 -1
- package/dist/dts/extension/server/server-extension.d.ts +0 -41
- package/dist/dts/extension/server/server-extension.d.ts.map +0 -1
- package/dist/dts/extension/signal/index.d.ts +0 -3
- package/dist/dts/extension/signal/index.d.ts.map +0 -1
- package/dist/dts/extension/signal/packets.d.ts +0 -17
- package/dist/dts/extension/signal/packets.d.ts.map +0 -1
- package/dist/dts/extension/signal/signal-extension.d.ts +0 -18
- package/dist/dts/extension/signal/signal-extension.d.ts.map +0 -1
- package/dist/dts/extension/signal/signal.d.ts +0 -33
- package/dist/dts/extension/signal/signal.d.ts.map +0 -1
- package/dist/dts/extension/table/index.d.ts +0 -3
- package/dist/dts/extension/table/index.d.ts.map +0 -1
- package/dist/dts/extension/table/packets.d.ts +0 -66
- package/dist/dts/extension/table/packets.d.ts.map +0 -1
- package/dist/dts/extension/table/table-extension.d.ts +0 -31
- package/dist/dts/extension/table/table-extension.d.ts.map +0 -1
- package/dist/dts/extension/table/table.d.ts +0 -79
- package/dist/dts/extension/table/table.d.ts.map +0 -1
- package/dist/dts/identifier.d.ts.map +0 -1
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/interface.d.ts +0 -7
- package/dist/dts/interface.d.ts.map +0 -1
- package/dist/dts/localization/index.d.ts.map +0 -1
- package/dist/dts/localization/locale.d.ts.map +0 -1
- package/dist/dts/localization/localization.d.ts.map +0 -1
- package/dist/dts/model.d.ts +0 -5
- package/dist/dts/model.d.ts.map +0 -1
- package/dist/dts/network/connection.d.ts.map +0 -1
- package/dist/dts/network/index.d.ts.map +0 -1
- package/dist/dts/network/network.d.ts.map +0 -1
- package/dist/dts/network/packet/index.d.ts.map +0 -1
- package/dist/dts/network/packet/packet-types.d.ts.map +0 -1
- package/dist/dts/network/packet/packet.d.ts.map +0 -1
- package/dist/dts/network/websocket-connection.d.ts +0 -20
- package/dist/dts/network/websocket-connection.d.ts.map +0 -1
- package/dist/dts/omu.d.ts.map +0 -1
- package/dist/dts/serializer.d.ts +0 -22
- package/dist/dts/serializer.d.ts.map +0 -1
- package/dist/dts/token.d.ts.map +0 -1
- package/dist/dts/version.d.ts.map +0 -1
- package/dist/esm/address.js.map +0 -1
- package/dist/esm/app.js.map +0 -1
- package/dist/esm/bytebuffer.js +0 -191
- package/dist/esm/bytebuffer.js.map +0 -1
- package/dist/esm/client.js +0 -2
- package/dist/esm/client.js.map +0 -1
- package/dist/esm/const.js.map +0 -1
- package/dist/esm/errors.js.map +0 -1
- package/dist/esm/event-emitter.js +0 -15
- package/dist/esm/event-emitter.js.map +0 -1
- package/dist/esm/extension/asset/asset-extension.js +0 -104
- package/dist/esm/extension/asset/asset-extension.js.map +0 -1
- package/dist/esm/extension/asset/index.js +0 -2
- package/dist/esm/extension/asset/index.js.map +0 -1
- package/dist/esm/extension/dashboard/dashboard-extension.js +0 -186
- package/dist/esm/extension/dashboard/dashboard-extension.js.map +0 -1
- package/dist/esm/extension/dashboard/dashboard.js +0 -2
- package/dist/esm/extension/dashboard/dashboard.js.map +0 -1
- package/dist/esm/extension/dashboard/index.js +0 -2
- package/dist/esm/extension/dashboard/index.js.map +0 -1
- package/dist/esm/extension/dashboard/packets.js +0 -96
- package/dist/esm/extension/dashboard/packets.js.map +0 -1
- package/dist/esm/extension/endpoint/endpoint-extension.js +0 -86
- package/dist/esm/extension/endpoint/endpoint-extension.js.map +0 -1
- package/dist/esm/extension/endpoint/endpoint.js +0 -22
- package/dist/esm/extension/endpoint/endpoint.js.map +0 -1
- package/dist/esm/extension/endpoint/index.js +0 -2
- package/dist/esm/extension/endpoint/index.js.map +0 -1
- package/dist/esm/extension/endpoint/packets.js +0 -77
- package/dist/esm/extension/endpoint/packets.js.map +0 -1
- package/dist/esm/extension/extension-registry.js +0 -34
- package/dist/esm/extension/extension-registry.js.map +0 -1
- package/dist/esm/extension/extension.js +0 -16
- package/dist/esm/extension/extension.js.map +0 -1
- package/dist/esm/extension/i18n/i18n-extension.js +0 -68
- package/dist/esm/extension/i18n/i18n-extension.js.map +0 -1
- package/dist/esm/extension/i18n/index.js +0 -2
- package/dist/esm/extension/i18n/index.js.map +0 -1
- package/dist/esm/extension/index.js +0 -3
- package/dist/esm/extension/index.js.map +0 -1
- package/dist/esm/extension/logger/index.js +0 -2
- package/dist/esm/extension/logger/index.js.map +0 -1
- package/dist/esm/extension/logger/logger-extension.js +0 -60
- package/dist/esm/extension/logger/logger-extension.js.map +0 -1
- package/dist/esm/extension/logger/packets.js +0 -33
- package/dist/esm/extension/logger/packets.js.map +0 -1
- package/dist/esm/extension/permission/index.js +0 -3
- package/dist/esm/extension/permission/index.js.map +0 -1
- package/dist/esm/extension/permission/permission-extension.js +0 -74
- package/dist/esm/extension/permission/permission-extension.js.map +0 -1
- package/dist/esm/extension/permission/permission.js +0 -28
- package/dist/esm/extension/permission/permission.js.map +0 -1
- package/dist/esm/extension/plugin/index.js +0 -2
- package/dist/esm/extension/plugin/index.js.map +0 -1
- package/dist/esm/extension/plugin/package-info.js +0 -2
- package/dist/esm/extension/plugin/package-info.js.map +0 -1
- package/dist/esm/extension/plugin/plugin-extension.js +0 -63
- package/dist/esm/extension/plugin/plugin-extension.js.map +0 -1
- package/dist/esm/extension/registry/index.js +0 -3
- package/dist/esm/extension/registry/index.js.map +0 -1
- package/dist/esm/extension/registry/packets.js +0 -48
- package/dist/esm/extension/registry/packets.js.map +0 -1
- package/dist/esm/extension/registry/registry-extension.js +0 -134
- package/dist/esm/extension/registry/registry-extension.js.map +0 -1
- package/dist/esm/extension/registry/registry.js +0 -55
- package/dist/esm/extension/registry/registry.js.map +0 -1
- package/dist/esm/extension/server/index.js +0 -2
- package/dist/esm/extension/server/index.js.map +0 -1
- package/dist/esm/extension/server/server-extension.js +0 -138
- package/dist/esm/extension/server/server-extension.js.map +0 -1
- package/dist/esm/extension/signal/index.js +0 -3
- package/dist/esm/extension/signal/index.js.map +0 -1
- package/dist/esm/extension/signal/packets.js +0 -44
- package/dist/esm/extension/signal/packets.js.map +0 -1
- package/dist/esm/extension/signal/signal-extension.js +0 -95
- package/dist/esm/extension/signal/signal-extension.js.map +0 -1
- package/dist/esm/extension/signal/signal.js +0 -53
- package/dist/esm/extension/signal/signal.js.map +0 -1
- package/dist/esm/extension/table/index.js +0 -3
- package/dist/esm/extension/table/index.js.map +0 -1
- package/dist/esm/extension/table/packets.js +0 -252
- package/dist/esm/extension/table/packets.js.map +0 -1
- package/dist/esm/extension/table/table-extension.js +0 -454
- package/dist/esm/extension/table/table-extension.js.map +0 -1
- package/dist/esm/extension/table/table.js +0 -20
- package/dist/esm/extension/table/table.js.map +0 -1
- package/dist/esm/identifier.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/interface.js +0 -2
- package/dist/esm/interface.js.map +0 -1
- package/dist/esm/localization/index.js.map +0 -1
- package/dist/esm/localization/locale.js.map +0 -1
- package/dist/esm/localization/localization.js.map +0 -1
- package/dist/esm/model.js +0 -2
- package/dist/esm/model.js.map +0 -1
- package/dist/esm/network/connection.js.map +0 -1
- package/dist/esm/network/index.js.map +0 -1
- package/dist/esm/network/network.js.map +0 -1
- package/dist/esm/network/packet/index.js.map +0 -1
- package/dist/esm/network/packet/packet-types.js.map +0 -1
- package/dist/esm/network/packet/packet.js.map +0 -1
- package/dist/esm/network/websocket-connection.js +0 -95
- package/dist/esm/network/websocket-connection.js.map +0 -1
- package/dist/esm/omu.js.map +0 -1
- package/dist/esm/serializer.js +0 -55
- package/dist/esm/serializer.js.map +0 -1
- package/dist/esm/token.js.map +0 -1
- package/dist/esm/version.js.map +0 -1
- package/eslint.config.js +0 -6
- package/src/bytebuffer.ts +0 -222
- package/src/client.ts +0 -53
- package/src/extension/asset/asset-extension.ts +0 -148
- package/src/extension/asset/index.ts +0 -6
- package/src/extension/dashboard/dashboard-extension.ts +0 -238
- package/src/extension/dashboard/dashboard.ts +0 -11
- package/src/extension/dashboard/index.ts +0 -9
- package/src/extension/dashboard/packets.ts +0 -98
- package/src/extension/endpoint/endpoint-extension.ts +0 -125
- package/src/extension/endpoint/endpoint.ts +0 -58
- package/src/extension/endpoint/index.ts +0 -3
- package/src/extension/endpoint/packets.ts +0 -78
- package/src/extension/extension-registry.ts +0 -39
- package/src/extension/i18n/index.ts +0 -2
- package/src/extension/logger/index.ts +0 -5
- package/src/extension/permission/index.ts +0 -3
- package/src/extension/plugin/index.ts +0 -4
- package/src/extension/registry/index.ts +0 -3
- package/src/extension/registry/packets.ts +0 -50
- package/src/extension/registry/registry.ts +0 -98
- package/src/extension/server/index.ts +0 -6
- package/src/extension/server/server-extension.ts +0 -173
- package/src/extension/signal/index.ts +0 -3
- package/src/extension/signal/packets.ts +0 -46
- package/src/extension/signal/signal.ts +0 -89
- package/src/extension/table/index.ts +0 -3
- package/src/interface.ts +0 -8
- package/src/model.ts +0 -4
- package/src/network/websocket-connection.ts +0 -109
- package/src/serializer.ts +0 -89
- /package/src/{extension → api}/index.ts +0 -0
- /package/src/{extension → api}/plugin/package-info.ts +0 -0
- /package/src/{event-emitter.ts → event/index.ts} +0 -0
package/src/network/network.ts
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
1
|
import type { Address } from '../address.js';
|
|
2
|
-
import type { Client } from '../client.js';
|
|
3
|
-
import type { OmuError } from '../errors.js';
|
|
4
2
|
import {
|
|
5
|
-
AnotherConnection,
|
|
6
|
-
InternalError,
|
|
3
|
+
AnotherConnection, AppRemoved, DisconnectReason, InternalError,
|
|
7
4
|
InvalidOrigin,
|
|
8
5
|
InvalidPacket,
|
|
9
6
|
InvalidToken,
|
|
10
7
|
InvalidVersion,
|
|
11
8
|
PermissionDenied,
|
|
9
|
+
ServerRestart,
|
|
12
10
|
} from '../errors.js';
|
|
13
|
-
import { EventEmitter } from '../event
|
|
14
|
-
import { IdentifierMap } from '../identifier
|
|
11
|
+
import { EventEmitter } from '../event';
|
|
12
|
+
import { IdentifierMap } from '../identifier';
|
|
13
|
+
import { Omu } from '../omu.js';
|
|
15
14
|
import type { TokenProvider } from '../token.js';
|
|
16
15
|
import { VERSION } from '../version.js';
|
|
17
16
|
|
|
18
|
-
import type { Connection } from './connection.js';
|
|
17
|
+
import type { Connection, Transport } from './connection.js';
|
|
19
18
|
import { PacketMapper } from './connection.js';
|
|
20
|
-
import
|
|
19
|
+
import { AES, Decryptor, ENCRYPTION_AVAILABLE, EncryptionResponse, Encryptor } from './encryption.js';
|
|
21
20
|
import { ConnectPacket, DisconnectType, PACKET_TYPES } from './packet/packet-types.js';
|
|
22
21
|
import type { Packet, PacketType } from './packet/packet.js';
|
|
23
22
|
|
|
@@ -27,62 +26,62 @@ type PacketHandler<T> = {
|
|
|
27
26
|
};
|
|
28
27
|
|
|
29
28
|
type StatusType<T> = {
|
|
30
|
-
type: T
|
|
29
|
+
type: T;
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
export type NetworkStatus = StatusType<'connecting'> | StatusType<'connected'> | StatusType<'ready'> | {
|
|
34
|
-
type: 'disconnected'
|
|
35
|
-
attempt?: number
|
|
36
|
-
reason?:
|
|
33
|
+
type: 'disconnected';
|
|
34
|
+
attempt?: number;
|
|
35
|
+
reason?: DisconnectReason;
|
|
37
36
|
} | {
|
|
38
|
-
type: '
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
date: Date,
|
|
45
|
-
cancel: () => void,
|
|
46
|
-
} | StatusType<'closed'>;
|
|
37
|
+
type: 'reconnecting';
|
|
38
|
+
attempt: number;
|
|
39
|
+
timeout: number;
|
|
40
|
+
date: Date;
|
|
41
|
+
cancel: () => void;
|
|
42
|
+
};
|
|
47
43
|
|
|
48
44
|
export class Network {
|
|
49
|
-
public status: NetworkStatus = {type: 'disconnected'};
|
|
50
|
-
public readonly event = {
|
|
51
|
-
connected: new EventEmitter
|
|
52
|
-
disconnected: new EventEmitter
|
|
53
|
-
packet: new EventEmitter
|
|
54
|
-
status: new EventEmitter
|
|
45
|
+
public status: NetworkStatus = { type: 'disconnected' };
|
|
46
|
+
public readonly event: { connected: EventEmitter<[]>; disconnected: EventEmitter<[DisconnectReason | undefined]>; packet: EventEmitter<[Packet<unknown>]>; status: EventEmitter<[NetworkStatus]> } = {
|
|
47
|
+
connected: new EventEmitter(),
|
|
48
|
+
disconnected: new EventEmitter(),
|
|
49
|
+
packet: new EventEmitter(),
|
|
50
|
+
status: new EventEmitter(),
|
|
55
51
|
};
|
|
56
52
|
private readonly tasks: Array<() => Promise<void> | void> = [];
|
|
57
53
|
private readonly packetMapper = new PacketMapper();
|
|
58
54
|
private readonly packetHandlers = new IdentifierMap<PacketHandler<unknown>>();
|
|
55
|
+
private listenTask: Promise<void> | undefined = undefined;
|
|
56
|
+
public reason: DisconnectReason | undefined = undefined;
|
|
57
|
+
private attempt = 0;
|
|
59
58
|
|
|
60
59
|
constructor(
|
|
61
|
-
private readonly
|
|
62
|
-
public
|
|
60
|
+
private readonly omu: Omu,
|
|
61
|
+
public address: Address,
|
|
63
62
|
private readonly tokenProvider: TokenProvider,
|
|
64
|
-
private
|
|
63
|
+
private transport: Transport,
|
|
64
|
+
private connection?: Connection | undefined,
|
|
65
|
+
private aes?: AES | undefined,
|
|
65
66
|
) {
|
|
66
67
|
this.registerPacket(
|
|
68
|
+
PACKET_TYPES.SERVER_META,
|
|
67
69
|
PACKET_TYPES.CONNECT,
|
|
68
70
|
PACKET_TYPES.DISCONNECT,
|
|
69
71
|
PACKET_TYPES.TOKEN,
|
|
70
72
|
PACKET_TYPES.READY,
|
|
73
|
+
PACKET_TYPES.ENCRYPTED_PACKET,
|
|
71
74
|
);
|
|
72
|
-
this.addPacketHandler(PACKET_TYPES.TOKEN, async (token: string) => {
|
|
73
|
-
await this.tokenProvider.set(this.address, this.client.app, token);
|
|
74
|
-
});
|
|
75
75
|
this.addPacketHandler(PACKET_TYPES.DISCONNECT, async (reason) => {
|
|
76
|
-
await this.event.disconnected.emit(reason);
|
|
77
76
|
if (reason.type === DisconnectType.SHUTDOWN
|
|
78
|
-
||reason.type === DisconnectType.CLOSE
|
|
79
|
-
|
|
80
|
-
this.setStatus({type: 'disconnected', reason});
|
|
77
|
+
|| reason.type === DisconnectType.CLOSE) {
|
|
78
|
+
this.setStatus({ type: 'disconnected' });
|
|
81
79
|
return;
|
|
82
80
|
}
|
|
83
|
-
const ERROR_MAP
|
|
81
|
+
const ERROR_MAP = {
|
|
84
82
|
[DisconnectType.ANOTHER_CONNECTION]: AnotherConnection,
|
|
85
83
|
[DisconnectType.PERMISSION_DENIED]: PermissionDenied,
|
|
84
|
+
[DisconnectType.APP_REMOVED]: AppRemoved,
|
|
86
85
|
[DisconnectType.INVALID_TOKEN]: InvalidToken,
|
|
87
86
|
[DisconnectType.INVALID_ORIGIN]: InvalidOrigin,
|
|
88
87
|
[DisconnectType.INVALID_VERSION]: InvalidVersion,
|
|
@@ -90,21 +89,21 @@ export class Network {
|
|
|
90
89
|
[DisconnectType.INVALID_PACKET]: InvalidPacket,
|
|
91
90
|
[DisconnectType.INVALID_PACKET_TYPE]: InvalidPacket,
|
|
92
91
|
[DisconnectType.INVALID_PACKET_DATA]: InvalidPacket,
|
|
93
|
-
[DisconnectType.SERVER_RESTART]:
|
|
92
|
+
[DisconnectType.SERVER_RESTART]: ServerRestart,
|
|
94
93
|
[DisconnectType.CLOSE]: undefined,
|
|
95
94
|
[DisconnectType.SHUTDOWN]: undefined,
|
|
96
95
|
};
|
|
97
96
|
const error = ERROR_MAP[reason.type];
|
|
98
97
|
if (error) {
|
|
99
|
-
|
|
100
|
-
await this.setStatus({type: 'error', error: omuError});
|
|
98
|
+
this.reason = new error(reason.message ?? '');
|
|
101
99
|
}
|
|
102
100
|
});
|
|
103
101
|
this.addPacketHandler(PACKET_TYPES.READY, () => {
|
|
104
102
|
if (this.status.type === 'ready') {
|
|
105
103
|
throw new Error('Received READY packet when already ready');
|
|
106
104
|
}
|
|
107
|
-
this.setStatus({type: 'ready'});
|
|
105
|
+
this.setStatus({ type: 'ready' });
|
|
106
|
+
this.attempt = 0;
|
|
108
107
|
});
|
|
109
108
|
}
|
|
110
109
|
|
|
@@ -134,106 +133,155 @@ export class Network {
|
|
|
134
133
|
}
|
|
135
134
|
|
|
136
135
|
private async scheduleReconnect(attempt: number): Promise<boolean> {
|
|
137
|
-
const timeout = Math.min(30000, 2000 * Math.pow(
|
|
136
|
+
const timeout = Math.min(30000, 2000 * (Math.pow(1.5, attempt) - 1) + 2000);
|
|
138
137
|
const date = new Date();
|
|
139
138
|
let cancelled = false;
|
|
140
|
-
|
|
139
|
+
const status: Extract<NetworkStatus, { type: 'reconnecting' }> = {
|
|
141
140
|
type: 'reconnecting',
|
|
142
141
|
attempt,
|
|
143
142
|
timeout,
|
|
144
143
|
date,
|
|
145
|
-
cancel: () => {cancelled = true;}
|
|
146
|
-
}
|
|
144
|
+
cancel: () => {cancelled = true;},
|
|
145
|
+
};
|
|
146
|
+
await this.setStatus(status);
|
|
147
147
|
if (cancelled) {
|
|
148
148
|
return false;
|
|
149
149
|
}
|
|
150
|
-
const remaining = timeout - (new Date().getTime() - date.getTime());
|
|
150
|
+
const remaining = status.timeout - (new Date().getTime() - date.getTime());
|
|
151
151
|
await new Promise((resolve) => setTimeout(resolve, remaining));
|
|
152
152
|
return true;
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
public async connect(
|
|
155
|
+
public async connect(reconnect = true): Promise<void> {
|
|
156
156
|
if (!this.isState('disconnected')) {
|
|
157
157
|
throw new Error(`Cannot connect while ${this.status.type}`);
|
|
158
158
|
}
|
|
159
|
+
if (this.listenTask) {
|
|
160
|
+
throw new Error('Cannot connect while already connecting');
|
|
161
|
+
}
|
|
159
162
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
attempt++;
|
|
163
|
+
this.attempt = 0;
|
|
164
|
+
while (this.omu.running) {
|
|
165
|
+
this.attempt++;
|
|
164
166
|
try {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
167
|
+
this.aes = undefined;
|
|
168
|
+
this.connection = await this.transport.connect();
|
|
169
|
+
await this.setStatus({ type: 'connecting' });
|
|
170
|
+
const metaReceived = await this.connection.receive(this.packetMapper);
|
|
171
|
+
if (!metaReceived) {
|
|
172
|
+
throw new Error('Connection closed before receiving server meta');
|
|
173
|
+
}
|
|
174
|
+
if (!PACKET_TYPES.SERVER_META.match(metaReceived)) {
|
|
175
|
+
throw new Error('First packet received was not server meta');
|
|
176
|
+
}
|
|
177
|
+
const { data: meta } = metaReceived;
|
|
178
|
+
this.address.hash = meta.hash;
|
|
179
|
+
let token = await this.tokenProvider.get(this.address, this.omu.app);
|
|
180
|
+
if (!token) {
|
|
181
|
+
throw new InvalidToken(`No token available for app ${this.omu.app.id.key()} at ${this.address.host}:${this.address.port}:${this.address.hash}`);
|
|
182
|
+
}
|
|
183
|
+
let encryptionResp: EncryptionResponse | undefined = undefined;
|
|
184
|
+
if (this.omu.app.type === 'remote' && ENCRYPTION_AVAILABLE && meta.encryption) {
|
|
185
|
+
const decryptor = await Decryptor.new();
|
|
186
|
+
const encryptor = await Encryptor.new(meta.encryption.rsa);
|
|
187
|
+
if (token) {
|
|
188
|
+
token = await encryptor.encryptString(token);
|
|
174
189
|
}
|
|
175
|
-
|
|
190
|
+
this.aes = await AES.new();
|
|
191
|
+
encryptionResp = {
|
|
192
|
+
kind: 'v1',
|
|
193
|
+
rsa: await decryptor.toRequest(),
|
|
194
|
+
aes: await this.aes.serialize(encryptor),
|
|
195
|
+
};
|
|
176
196
|
}
|
|
177
|
-
|
|
178
|
-
const token = await this.tokenProvider.get(this.address, this.client.app);
|
|
179
|
-
this.send({
|
|
197
|
+
this.connection.send({
|
|
180
198
|
type: PACKET_TYPES.CONNECT,
|
|
181
199
|
data: new ConnectPacket({
|
|
182
|
-
app: this.
|
|
183
|
-
protocol: {version: VERSION},
|
|
200
|
+
app: this.omu.app,
|
|
201
|
+
protocol: { version: VERSION },
|
|
202
|
+
encryption: encryptionResp,
|
|
184
203
|
token,
|
|
185
204
|
}),
|
|
186
|
-
});
|
|
187
|
-
|
|
188
|
-
await this.setStatus({type: 'connected'});
|
|
205
|
+
}, this.packetMapper);
|
|
206
|
+
this.listenTask = this.listen();
|
|
207
|
+
await this.setStatus({ type: 'connected' });
|
|
189
208
|
await this.event.connected.emit();
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
209
|
+
this.dispatchTasks().then(() => {
|
|
210
|
+
this.send({
|
|
211
|
+
type: PACKET_TYPES.READY,
|
|
212
|
+
data: null,
|
|
213
|
+
});
|
|
194
214
|
});
|
|
195
|
-
await
|
|
196
|
-
|
|
197
|
-
|
|
215
|
+
await this.listenTask;
|
|
216
|
+
} catch (error) {
|
|
217
|
+
if (error instanceof DisconnectReason) {
|
|
218
|
+
this.reason = error;
|
|
219
|
+
}
|
|
220
|
+
if (!reconnect) {
|
|
221
|
+
throw error;
|
|
198
222
|
}
|
|
199
223
|
} finally {
|
|
200
|
-
|
|
201
|
-
|
|
224
|
+
this.event.disconnected.emit(this.reason);
|
|
225
|
+
if (this.status.type !== 'disconnected' && this.status.type !== 'reconnecting') {
|
|
226
|
+
this.setStatus({ type: 'disconnected', attempt: this.attempt, reason: this.reason });
|
|
202
227
|
}
|
|
203
|
-
this.
|
|
204
|
-
this.connection
|
|
228
|
+
this.connection?.close();
|
|
229
|
+
this.connection = undefined;
|
|
230
|
+
this.listenTask = undefined;
|
|
205
231
|
}
|
|
206
|
-
if (!
|
|
232
|
+
if (this.reason && ![
|
|
233
|
+
DisconnectType.SHUTDOWN,
|
|
234
|
+
DisconnectType.SERVER_RESTART,
|
|
235
|
+
].includes(this.reason.type)) {
|
|
207
236
|
break;
|
|
208
237
|
}
|
|
209
|
-
|
|
238
|
+
this.reason = undefined;
|
|
239
|
+
if (!reconnect) {
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
const shouldReconnect = await this.scheduleReconnect(this.attempt);
|
|
243
|
+
if (!shouldReconnect) {
|
|
210
244
|
break;
|
|
211
245
|
}
|
|
212
246
|
}
|
|
247
|
+
await this.setStatus({ type: 'disconnected', reason: this.reason });
|
|
248
|
+
this.connection?.close();
|
|
249
|
+
this.connection = undefined;
|
|
213
250
|
}
|
|
214
251
|
|
|
215
252
|
private isState(state: NetworkStatus['type']): boolean {
|
|
216
253
|
return this.status.type === state;
|
|
217
254
|
}
|
|
218
255
|
|
|
219
|
-
public send(packet: Packet): void {
|
|
220
|
-
if (this.connection
|
|
221
|
-
throw new Error('
|
|
256
|
+
public async send(packet: Packet): Promise<void> {
|
|
257
|
+
if (!this.connection) {
|
|
258
|
+
throw new Error('No connection established');
|
|
259
|
+
}
|
|
260
|
+
if (this.aes) {
|
|
261
|
+
const serialized = this.packetMapper.serialize(packet);
|
|
262
|
+
packet = await this.aes.encrypt(serialized);
|
|
222
263
|
}
|
|
223
264
|
this.connection.send(packet, this.packetMapper);
|
|
224
265
|
}
|
|
225
266
|
|
|
226
267
|
private async listen(): Promise<void> {
|
|
227
|
-
while (
|
|
268
|
+
while (this.connection) {
|
|
228
269
|
const packet = await this.connection.receive(this.packetMapper);
|
|
229
270
|
if (!packet) {
|
|
230
|
-
|
|
271
|
+
break;
|
|
231
272
|
}
|
|
232
|
-
this.dispatchPacket(packet);
|
|
273
|
+
await this.dispatchPacket(packet);
|
|
233
274
|
}
|
|
234
275
|
}
|
|
235
276
|
|
|
236
277
|
private async dispatchPacket(packet: Packet): Promise<void> {
|
|
278
|
+
if (PACKET_TYPES.ENCRYPTED_PACKET.match(packet)) {
|
|
279
|
+
if (!this.aes) {
|
|
280
|
+
throw new Error('Received encrypted packet before encryption was established');
|
|
281
|
+
}
|
|
282
|
+
const decrypted = await this.aes.decrypt(packet);
|
|
283
|
+
packet = this.packetMapper.deserialize(decrypted);
|
|
284
|
+
}
|
|
237
285
|
await this.event.packet.emit(packet);
|
|
238
286
|
const packetHandler = this.packetHandlers.get(packet.type.id);
|
|
239
287
|
if (!packetHandler) {
|
|
@@ -243,7 +291,7 @@ export class Network {
|
|
|
243
291
|
}
|
|
244
292
|
|
|
245
293
|
public addTask(task: () => Promise<void> | void): void {
|
|
246
|
-
if (this.
|
|
294
|
+
if (this.omu.running) {
|
|
247
295
|
throw new Error('Cannot add task after client is ready');
|
|
248
296
|
}
|
|
249
297
|
this.tasks.push(task);
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type
|
|
1
|
+
export { DisconnectPacket, DisconnectType } from './packet-types.js';
|
|
2
|
+
export { PacketType, type Packet, type PacketData } from './packet.js';
|
|
3
|
+
|
|
@@ -1,57 +1,77 @@
|
|
|
1
1
|
import type { AppJson } from '../../app.js';
|
|
2
2
|
import { App } from '../../app.js';
|
|
3
|
-
import { Identifier } from '../../identifier
|
|
4
|
-
import
|
|
5
|
-
import { Serializer } from '../../serializer.js';
|
|
6
|
-
|
|
3
|
+
import { Identifier } from '../../identifier';
|
|
4
|
+
import { Serializer } from '../../serialize/serializer.js';
|
|
7
5
|
import { PacketType } from './packet.js';
|
|
8
6
|
|
|
9
7
|
const IDENTIFIER = new Identifier('core', 'packet');
|
|
10
8
|
|
|
11
9
|
type ProtocolInfo = {
|
|
12
|
-
version: string
|
|
10
|
+
version: string;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
type RSANumbers = {
|
|
14
|
+
e: string;
|
|
15
|
+
n: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
type EncryptionRequest = {
|
|
19
|
+
kind: 'v1';
|
|
20
|
+
rsa: RSANumbers;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
type EncryptionResponse = {
|
|
24
|
+
kind: 'v1';
|
|
25
|
+
rsa: RSANumbers;
|
|
26
|
+
aes: string;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type ServerMeta = {
|
|
30
|
+
protocol: ProtocolInfo;
|
|
31
|
+
encryption: EncryptionRequest | null;
|
|
32
|
+
hash: string | undefined;
|
|
13
33
|
};
|
|
14
34
|
|
|
15
35
|
type ConnectPacketJson = {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
token
|
|
19
|
-
|
|
36
|
+
protocol: ProtocolInfo;
|
|
37
|
+
app: AppJson;
|
|
38
|
+
token: string;
|
|
39
|
+
encryption: EncryptionResponse | null;
|
|
20
40
|
};
|
|
21
41
|
|
|
22
|
-
export class ConnectPacket
|
|
23
|
-
public readonly app: App;
|
|
42
|
+
export class ConnectPacket {
|
|
24
43
|
public readonly protocol: ProtocolInfo;
|
|
25
|
-
public readonly
|
|
26
|
-
public readonly
|
|
27
|
-
|
|
44
|
+
public readonly app: App;
|
|
45
|
+
public readonly token: string;
|
|
46
|
+
public readonly encryption: EncryptionResponse | null;
|
|
47
|
+
|
|
28
48
|
constructor(options: {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
token
|
|
32
|
-
|
|
49
|
+
protocol: ProtocolInfo;
|
|
50
|
+
app: App;
|
|
51
|
+
token: string;
|
|
52
|
+
encryption?: EncryptionResponse | null;
|
|
33
53
|
}) {
|
|
34
|
-
this.app = options.app;
|
|
35
54
|
this.protocol = options.protocol;
|
|
55
|
+
this.app = options.app;
|
|
36
56
|
this.token = options.token;
|
|
37
|
-
this.
|
|
57
|
+
this.encryption = options.encryption ?? null;
|
|
38
58
|
}
|
|
39
59
|
|
|
40
|
-
public static
|
|
60
|
+
public static deserialize(data: ConnectPacketJson): ConnectPacket {
|
|
41
61
|
return new ConnectPacket({
|
|
42
|
-
app: App.fromJson(data.app),
|
|
43
62
|
protocol: data.protocol,
|
|
63
|
+
app: App.deserialize(data.app),
|
|
64
|
+
encryption: data.encryption,
|
|
44
65
|
token: data.token,
|
|
45
|
-
is_dashboard: data.is_dashboard,
|
|
46
66
|
});
|
|
47
67
|
}
|
|
48
68
|
|
|
49
|
-
public
|
|
69
|
+
public static serialize(data: ConnectPacket): ConnectPacketJson {
|
|
50
70
|
return {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
71
|
+
protocol: data.protocol,
|
|
72
|
+
app: App.serialize(data.app),
|
|
73
|
+
encryption: data.encryption,
|
|
74
|
+
token: data.token,
|
|
55
75
|
};
|
|
56
76
|
}
|
|
57
77
|
}
|
|
@@ -66,28 +86,37 @@ export enum DisconnectType {
|
|
|
66
86
|
INTERNAL_ERROR = 'internal_error',
|
|
67
87
|
ANOTHER_CONNECTION = 'another_connection',
|
|
68
88
|
PERMISSION_DENIED = 'permission_denied',
|
|
89
|
+
APP_REMOVED = 'app_removed',
|
|
69
90
|
SERVER_RESTART = 'server_restart',
|
|
70
91
|
SHUTDOWN = 'shutdown',
|
|
71
92
|
CLOSE = 'close',
|
|
72
93
|
}
|
|
73
94
|
|
|
74
95
|
type DisconnectPacketJson = {
|
|
75
|
-
type: DisconnectType
|
|
76
|
-
message: string | null
|
|
96
|
+
type: DisconnectType;
|
|
97
|
+
message: string | null;
|
|
77
98
|
};
|
|
78
99
|
|
|
79
|
-
export class DisconnectPacket
|
|
100
|
+
export class DisconnectPacket {
|
|
80
101
|
public readonly type: DisconnectType;
|
|
81
102
|
public readonly message: string | null;
|
|
82
103
|
|
|
83
104
|
constructor(options: {
|
|
84
|
-
type: DisconnectType
|
|
85
|
-
message?: string | null
|
|
105
|
+
type: DisconnectType;
|
|
106
|
+
message?: string | null;
|
|
86
107
|
}) {
|
|
87
108
|
this.type = options.type;
|
|
88
109
|
this.message = options.message ?? null;
|
|
89
110
|
}
|
|
90
111
|
|
|
112
|
+
public static serialize(data: DisconnectPacket): DisconnectPacketJson {
|
|
113
|
+
return data.toJson();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
public static deserialize(data: DisconnectPacketJson): DisconnectPacket {
|
|
117
|
+
return DisconnectPacket.fromJson(data);
|
|
118
|
+
}
|
|
119
|
+
|
|
91
120
|
static fromJson(data: DisconnectPacketJson): DisconnectPacket {
|
|
92
121
|
return new DisconnectPacket({
|
|
93
122
|
type: data.type,
|
|
@@ -103,14 +132,24 @@ export class DisconnectPacket implements Model<DisconnectPacketJson> {
|
|
|
103
132
|
}
|
|
104
133
|
}
|
|
105
134
|
|
|
106
|
-
export const PACKET_TYPES
|
|
135
|
+
export const PACKET_TYPES: {
|
|
136
|
+
SERVER_META: PacketType<ServerMeta>;
|
|
137
|
+
CONNECT: PacketType<ConnectPacket>;
|
|
138
|
+
DISCONNECT: PacketType<DisconnectPacket>;
|
|
139
|
+
TOKEN: PacketType<string>;
|
|
140
|
+
READY: PacketType<undefined>;
|
|
141
|
+
ENCRYPTED_PACKET: PacketType<Uint8Array>;
|
|
142
|
+
} = {
|
|
143
|
+
SERVER_META: PacketType.createJson<ServerMeta>(IDENTIFIER, {
|
|
144
|
+
name: 'server_meta',
|
|
145
|
+
}),
|
|
107
146
|
CONNECT: PacketType.createJson<ConnectPacket>(IDENTIFIER, {
|
|
108
147
|
name: 'connect',
|
|
109
|
-
serializer:
|
|
148
|
+
serializer: ConnectPacket,
|
|
110
149
|
}),
|
|
111
150
|
DISCONNECT: PacketType.createJson<DisconnectPacket>(IDENTIFIER, {
|
|
112
151
|
name: 'disconnect',
|
|
113
|
-
serializer:
|
|
152
|
+
serializer: DisconnectPacket,
|
|
114
153
|
}),
|
|
115
154
|
TOKEN: PacketType.createJson<string>(IDENTIFIER, {
|
|
116
155
|
name: 'token',
|
|
@@ -118,4 +157,8 @@ export const PACKET_TYPES = {
|
|
|
118
157
|
READY: PacketType.createJson<undefined>(IDENTIFIER, {
|
|
119
158
|
name: 'ready',
|
|
120
159
|
}),
|
|
160
|
+
ENCRYPTED_PACKET: PacketType.createSerialized<Uint8Array>(IDENTIFIER, {
|
|
161
|
+
name: 'e',
|
|
162
|
+
serializer: Serializer.noop(),
|
|
163
|
+
}),
|
|
121
164
|
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import type { Identifier } from '../../identifier
|
|
2
|
-
import { type Serializable, Serializer } from '../../
|
|
1
|
+
import type { Identifier } from '../../identifier';
|
|
2
|
+
import { JsonType, type Serializable, Serializer } from '../../serialize';
|
|
3
3
|
|
|
4
|
-
export
|
|
4
|
+
export type PacketData = {
|
|
5
5
|
readonly type: string;
|
|
6
6
|
readonly data: Uint8Array;
|
|
7
|
-
}
|
|
7
|
+
};
|
|
8
8
|
|
|
9
|
-
export
|
|
9
|
+
export type Packet<T = unknown> = {
|
|
10
10
|
readonly type: PacketType<T>;
|
|
11
11
|
readonly data: T;
|
|
12
|
-
}
|
|
12
|
+
};
|
|
13
13
|
|
|
14
14
|
export class PacketType<T> {
|
|
15
15
|
constructor(
|
|
@@ -17,17 +17,26 @@ export class PacketType<T> {
|
|
|
17
17
|
public readonly serializer: Serializable<T, Uint8Array>,
|
|
18
18
|
) { }
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
public new(data: T): Packet<T> {
|
|
21
|
+
return {
|
|
22
|
+
type: this,
|
|
23
|
+
data,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
public match(packet: Packet): packet is Packet<T> {
|
|
27
|
+
return packet.type === this;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static createJson<T, D extends JsonType = JsonType>(identifier: Identifier, {
|
|
21
31
|
name,
|
|
22
32
|
serializer,
|
|
23
33
|
}: {
|
|
24
34
|
name: string;
|
|
25
|
-
serializer?: Serializable<T,
|
|
35
|
+
serializer?: Serializable<T, D>;
|
|
26
36
|
}): PacketType<T> {
|
|
27
|
-
return new PacketType(
|
|
37
|
+
return new PacketType<T>(
|
|
28
38
|
identifier.join(name),
|
|
29
|
-
Serializer.
|
|
30
|
-
.pipe(Serializer.json()),
|
|
39
|
+
Serializer.pipe<T, D, Uint8Array>(serializer ?? Serializer.noop(), Serializer.json()),
|
|
31
40
|
);
|
|
32
41
|
}
|
|
33
42
|
|