@omujs/omu 0.9.10 → 0.9.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +146 -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 -145
- 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 -180
- 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
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { ByteReader, ByteWriter } from '../../bytebuffer.js';
|
|
2
|
-
import { Identifier } from '../../identifier.js';
|
|
3
|
-
|
|
4
|
-
import { RegistryPermissions } from './registry.js';
|
|
5
|
-
|
|
6
|
-
export class RegistryPacket {
|
|
7
|
-
constructor(
|
|
8
|
-
public readonly id: Identifier,
|
|
9
|
-
public readonly value: Uint8Array | null,
|
|
10
|
-
) { }
|
|
11
|
-
|
|
12
|
-
public static serialize(packet: RegistryPacket): Uint8Array {
|
|
13
|
-
const writer = new ByteWriter();
|
|
14
|
-
writer.writeString(packet.id.key());
|
|
15
|
-
writer.writeBoolean(packet.value !== null);
|
|
16
|
-
if (packet.value !== null) {
|
|
17
|
-
writer.writeByteArray(packet.value);
|
|
18
|
-
}
|
|
19
|
-
return writer.finish();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
public static deserialize(data: Uint8Array): RegistryPacket {
|
|
23
|
-
const reader = new ByteReader(data);
|
|
24
|
-
const id = Identifier.fromKey(reader.readString());
|
|
25
|
-
const existing = reader.readBoolean();
|
|
26
|
-
const value = existing ? reader.readByteArray() : null;
|
|
27
|
-
return new RegistryPacket(id, value);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export class RegistryRegisterPacket {
|
|
32
|
-
constructor(
|
|
33
|
-
public readonly id: Identifier,
|
|
34
|
-
public readonly permissions: RegistryPermissions,
|
|
35
|
-
) { }
|
|
36
|
-
|
|
37
|
-
public static serialize(packet: RegistryRegisterPacket): Uint8Array {
|
|
38
|
-
const writer = new ByteWriter();
|
|
39
|
-
writer.writeString(packet.id.key());
|
|
40
|
-
packet.permissions.serialize(writer);
|
|
41
|
-
return writer.finish();
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public static deserialize(data: Uint8Array): RegistryRegisterPacket {
|
|
45
|
-
const reader = new ByteReader(data);
|
|
46
|
-
const id = Identifier.fromKey(reader.readString());
|
|
47
|
-
const permissions = RegistryPermissions.deserialize(reader);
|
|
48
|
-
return new RegistryRegisterPacket(id, permissions);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import type { ByteReader, ByteWriter } from '../../bytebuffer.js';
|
|
2
|
-
import { Flags } from '../../bytebuffer.js';
|
|
3
|
-
import type { Unlisten } from '../../event-emitter.js';
|
|
4
|
-
import { Identifier } from '../../identifier.js';
|
|
5
|
-
import type { Serializable } from '../../serializer.js';
|
|
6
|
-
import { Serializer } from '../../serializer.js';
|
|
7
|
-
|
|
8
|
-
export class RegistryPermissions {
|
|
9
|
-
constructor(
|
|
10
|
-
public readonly all?: Identifier,
|
|
11
|
-
public readonly read?: Identifier,
|
|
12
|
-
public readonly write?: Identifier,
|
|
13
|
-
) { }
|
|
14
|
-
|
|
15
|
-
public serialize(writer: ByteWriter): void {
|
|
16
|
-
const flags = new Flags({length: 3});
|
|
17
|
-
flags.set(0, this.all !== undefined);
|
|
18
|
-
flags.set(1, this.read !== undefined);
|
|
19
|
-
flags.set(2, this.write !== undefined);
|
|
20
|
-
writer.writeFlags(flags);
|
|
21
|
-
if (this.all !== undefined) {
|
|
22
|
-
writer.writeString(this.all.key());
|
|
23
|
-
}
|
|
24
|
-
if (this.read !== undefined) {
|
|
25
|
-
writer.writeString(this.read.key());
|
|
26
|
-
}
|
|
27
|
-
if (this.write !== undefined) {
|
|
28
|
-
writer.writeString(this.write.key());
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public static deserialize(reader: ByteReader): RegistryPermissions {
|
|
33
|
-
const flags = reader.readFlags(3);
|
|
34
|
-
const all = flags.has(0) ? Identifier.fromKey(reader.readString()) : undefined;
|
|
35
|
-
const read = flags.has(1) ? Identifier.fromKey(reader.readString()) : undefined;
|
|
36
|
-
const write = flags.has(2) ? Identifier.fromKey(reader.readString()) : undefined;
|
|
37
|
-
return new RegistryPermissions(
|
|
38
|
-
all,
|
|
39
|
-
read,
|
|
40
|
-
write,
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export class RegistryType<T> {
|
|
46
|
-
constructor(
|
|
47
|
-
public readonly id: Identifier,
|
|
48
|
-
public readonly defaultValue: T,
|
|
49
|
-
public readonly serializer: Serializable<T, Uint8Array>,
|
|
50
|
-
public readonly permissions: RegistryPermissions,
|
|
51
|
-
) { }
|
|
52
|
-
|
|
53
|
-
public static createJson<T>(identifier: Identifier, {
|
|
54
|
-
name,
|
|
55
|
-
defaultValue,
|
|
56
|
-
permissions,
|
|
57
|
-
}: {
|
|
58
|
-
name: string;
|
|
59
|
-
defaultValue: T;
|
|
60
|
-
permissions?: RegistryPermissions;
|
|
61
|
-
}): RegistryType<T> {
|
|
62
|
-
return new RegistryType(
|
|
63
|
-
identifier.join(name),
|
|
64
|
-
defaultValue,
|
|
65
|
-
Serializer.json(),
|
|
66
|
-
permissions ?? new RegistryPermissions(),
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
public static createSerialized<T>(identifier: Identifier, {
|
|
71
|
-
name,
|
|
72
|
-
defaultValue,
|
|
73
|
-
serializer,
|
|
74
|
-
permissions,
|
|
75
|
-
}: {
|
|
76
|
-
name: string;
|
|
77
|
-
defaultValue: T;
|
|
78
|
-
serializer: Serializable<T, Uint8Array>;
|
|
79
|
-
permissions?: RegistryPermissions;
|
|
80
|
-
}): RegistryType<T> {
|
|
81
|
-
return new RegistryType(
|
|
82
|
-
identifier.join(name),
|
|
83
|
-
defaultValue,
|
|
84
|
-
serializer,
|
|
85
|
-
permissions ?? new RegistryPermissions(),
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export interface Registry<T> {
|
|
91
|
-
readonly type: RegistryType<T>;
|
|
92
|
-
readonly value: T;
|
|
93
|
-
get(): Promise<T>;
|
|
94
|
-
set(value: T): Promise<void>;
|
|
95
|
-
update(fn: (value: T) => PromiseLike<T> | T): Promise<T>;
|
|
96
|
-
modify(fn: (value: T) => PromiseLike<T> | T): Promise<T>;
|
|
97
|
-
listen(fn: (value: T) => void): Unlisten;
|
|
98
|
-
}
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { App } from '../../app.js';
|
|
2
|
-
import type { Client } from '../../client.js';
|
|
3
|
-
import { Identifier, IdentifierMap, IdentifierSet } from '../../identifier.js';
|
|
4
|
-
import { PacketType } from '../../network/packet/packet.js';
|
|
5
|
-
import { Serializer } from '../../serializer.js';
|
|
6
|
-
import { EndpointType } from '../endpoint/endpoint.js';
|
|
7
|
-
import type { Extension } from '../extension.js';
|
|
8
|
-
import { ExtensionType } from '../extension.js';
|
|
9
|
-
import { Registry, RegistryPermissions, RegistryType } from '../registry/registry.js';
|
|
10
|
-
import type { Table } from '../table/index.js';
|
|
11
|
-
import { TABLE_EXTENSION_TYPE } from '../table/table-extension.js';
|
|
12
|
-
import { TableType } from '../table/table.js';
|
|
13
|
-
|
|
14
|
-
export const SERVER_EXTENSION_TYPE: ExtensionType<ServerExtension> = new ExtensionType(
|
|
15
|
-
'server',
|
|
16
|
-
(client: Client) => new ServerExtension(client),
|
|
17
|
-
() => [TABLE_EXTENSION_TYPE],
|
|
18
|
-
);
|
|
19
|
-
|
|
20
|
-
export const SERVER_APPS_READ_PERMISSION_ID = SERVER_EXTENSION_TYPE.join('apps', 'read');
|
|
21
|
-
const APP_TABLE_TYPE = TableType.createModel(SERVER_EXTENSION_TYPE, {
|
|
22
|
-
name: 'apps',
|
|
23
|
-
model: App,
|
|
24
|
-
permissions: {
|
|
25
|
-
read: SERVER_APPS_READ_PERMISSION_ID,
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
export const SERVER_SESSIONS_READ_PERMISSION_ID = SERVER_EXTENSION_TYPE.join('sessions', 'read');
|
|
30
|
-
const SESSION_TABLE_TYPE = TableType.createModel(SERVER_EXTENSION_TYPE, {
|
|
31
|
-
name: 'sessions',
|
|
32
|
-
model: App,
|
|
33
|
-
permissions: {
|
|
34
|
-
read: SERVER_APPS_READ_PERMISSION_ID,
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
export const SERVER_SHUTDOWN_PERMISSION_ID = SERVER_EXTENSION_TYPE.join('shutdown');
|
|
38
|
-
const SHUTDOWN_ENDPOINT_TYPE = EndpointType.createJson<boolean, boolean>(SERVER_EXTENSION_TYPE, {
|
|
39
|
-
name: 'shutdown',
|
|
40
|
-
permissionId: SERVER_SHUTDOWN_PERMISSION_ID,
|
|
41
|
-
});
|
|
42
|
-
const REQUIRE_APPS_PACKET_TYPE = PacketType.createJson<Identifier[]>(SERVER_EXTENSION_TYPE, {
|
|
43
|
-
name: 'require_apps',
|
|
44
|
-
serializer: Serializer.model(Identifier).toArray(),
|
|
45
|
-
});
|
|
46
|
-
export const TRUSTED_ORIGINS_GET_PERMISSION_ID = SERVER_EXTENSION_TYPE.join('trusted_origins', 'get');
|
|
47
|
-
export const TRUSTED_ORIGINS_SET_PERMISSION_ID = SERVER_EXTENSION_TYPE.join('trusted_origins', 'set');
|
|
48
|
-
const TRUSTED_ORIGINS_REGISTRY_TYPE = RegistryType.createJson<string[]>(SERVER_EXTENSION_TYPE, {
|
|
49
|
-
name: 'trusted_origins',
|
|
50
|
-
defaultValue: [],
|
|
51
|
-
permissions: new RegistryPermissions(
|
|
52
|
-
TRUSTED_ORIGINS_GET_PERMISSION_ID,
|
|
53
|
-
TRUSTED_ORIGINS_SET_PERMISSION_ID,
|
|
54
|
-
),
|
|
55
|
-
});
|
|
56
|
-
const SESSION_OBSERVE_PACKET_TYPE = PacketType.createJson<Identifier[]>(SERVER_EXTENSION_TYPE, {
|
|
57
|
-
name: 'session_observe',
|
|
58
|
-
serializer: Serializer.model(Identifier).toArray(),
|
|
59
|
-
});
|
|
60
|
-
const SESSION_CONNECT_PACKET_TYPE = PacketType.createJson<App>(SERVER_EXTENSION_TYPE, {
|
|
61
|
-
name: 'session_connect',
|
|
62
|
-
serializer: Serializer.model(App),
|
|
63
|
-
});
|
|
64
|
-
const SESSION_DISCONNECT_PACKET_TYPE = PacketType.createJson<App>(SERVER_EXTENSION_TYPE, {
|
|
65
|
-
name: 'session_disconnect',
|
|
66
|
-
serializer: Serializer.model(App),
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
export class ServerExtension implements Extension {
|
|
70
|
-
public readonly type = SERVER_EXTENSION_TYPE;
|
|
71
|
-
public readonly apps: Table<App>;
|
|
72
|
-
public readonly sessions: Table<App>;
|
|
73
|
-
public readonly trustedOrigins: Registry<string[]>;
|
|
74
|
-
private readonly sessionObservers = new IdentifierMap<SessionObserver>();
|
|
75
|
-
private readonly requiredApps = new IdentifierSet();
|
|
76
|
-
|
|
77
|
-
constructor(private readonly client: Client) {
|
|
78
|
-
client.network.registerPacket(
|
|
79
|
-
REQUIRE_APPS_PACKET_TYPE,
|
|
80
|
-
SESSION_OBSERVE_PACKET_TYPE,
|
|
81
|
-
SESSION_CONNECT_PACKET_TYPE,
|
|
82
|
-
SESSION_DISCONNECT_PACKET_TYPE,
|
|
83
|
-
);
|
|
84
|
-
client.network.addPacketHandler(
|
|
85
|
-
SESSION_CONNECT_PACKET_TYPE, (app) => this.handleSessionConnect(app)
|
|
86
|
-
)
|
|
87
|
-
client.network.addPacketHandler(
|
|
88
|
-
SESSION_DISCONNECT_PACKET_TYPE, (app) => this.handleSessionDisconnect(app)
|
|
89
|
-
)
|
|
90
|
-
this.apps = client.tables.get(APP_TABLE_TYPE);
|
|
91
|
-
this.sessions = client.tables.get(SESSION_TABLE_TYPE);
|
|
92
|
-
this.trustedOrigins = client.registries.get(TRUSTED_ORIGINS_REGISTRY_TYPE);
|
|
93
|
-
client.network.addTask(() => this.onTask());
|
|
94
|
-
client.onReady(() => this.onReady());
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
private async onTask(): Promise<void> {
|
|
98
|
-
if (this.requiredApps.size > 0) {
|
|
99
|
-
this.client.send(REQUIRE_APPS_PACKET_TYPE, Array.from(this.requiredApps.values()));
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
private async onReady(): Promise<void> {
|
|
104
|
-
if (this.sessionObservers.size > 0) {
|
|
105
|
-
this.client.send(SESSION_OBSERVE_PACKET_TYPE, Array.from(this.sessionObservers.keys()));
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
public async shutdown(restart?: boolean): Promise<boolean> {
|
|
110
|
-
this.client.endpoints.call(SHUTDOWN_ENDPOINT_TYPE, restart ?? false);
|
|
111
|
-
await new Promise<void>((resolve) => {
|
|
112
|
-
const unlisten = this.client.network.event.disconnected.listen(() => {
|
|
113
|
-
resolve();
|
|
114
|
-
unlisten();
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
public observeSession(appId: Identifier, {
|
|
121
|
-
onConnect,
|
|
122
|
-
onDisconnect
|
|
123
|
-
}: {
|
|
124
|
-
onConnect(app: App): void;
|
|
125
|
-
onDisconnect(app: App): void;
|
|
126
|
-
}): SessionObserver {
|
|
127
|
-
if (this.client.running) {
|
|
128
|
-
throw new Error('Cannot observe sessions after the client has started');
|
|
129
|
-
}
|
|
130
|
-
const observer = this.sessionObservers.get(appId) ?? new SessionObserver([], []);
|
|
131
|
-
observer.onConnect(onConnect);
|
|
132
|
-
observer.onDisconnect(onDisconnect);
|
|
133
|
-
this.sessionObservers.set(appId, observer);
|
|
134
|
-
return observer;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
private async handleSessionConnect(app: App): Promise<void> {
|
|
138
|
-
const observer = this.sessionObservers.get(app.id);
|
|
139
|
-
if (!observer) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
for (const callback of observer.onConnectCallbacks) {
|
|
143
|
-
await callback(app);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
private async handleSessionDisconnect(app: App): Promise<void> {
|
|
148
|
-
const observer = this.sessionObservers.get(app.id);
|
|
149
|
-
if (!observer) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
for (const callback of observer.onDisconnectCallbacks) {
|
|
153
|
-
await callback(app);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
public require(...appIds: Identifier[]): void {
|
|
158
|
-
if (this.client.running) {
|
|
159
|
-
throw new Error('Cannot require apps after the client has started');
|
|
160
|
-
}
|
|
161
|
-
for (const appId of appIds) {
|
|
162
|
-
this.requiredApps.add(appId);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export class SessionObserver {
|
|
168
|
-
constructor(
|
|
169
|
-
public readonly onConnectCallbacks: Array<(app: App) => Promise<void> | void>,
|
|
170
|
-
public readonly onDisconnectCallbacks: Array<(app: App) => Promise<void> | void>,
|
|
171
|
-
) { }
|
|
172
|
-
|
|
173
|
-
public onConnect(callback: (app: App) => Promise<void> | void): void {
|
|
174
|
-
this.onConnectCallbacks.push(callback);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
public onDisconnect(callback: (app: App) => Promise<void> | void): void {
|
|
178
|
-
this.onDisconnectCallbacks.push(callback);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ByteReader, ByteWriter } from '../../bytebuffer.js';
|
|
2
|
-
import { Identifier } from '../../identifier.js';
|
|
3
|
-
|
|
4
|
-
import { SignalPermissions } from './signal.js';
|
|
5
|
-
|
|
6
|
-
export class SignalPacket {
|
|
7
|
-
constructor(
|
|
8
|
-
public readonly id: Identifier,
|
|
9
|
-
public readonly body: Uint8Array,
|
|
10
|
-
) { }
|
|
11
|
-
|
|
12
|
-
public static serialize(packet: SignalPacket): Uint8Array {
|
|
13
|
-
const writer = new ByteWriter();
|
|
14
|
-
writer.writeString(packet.id.key());
|
|
15
|
-
writer.writeByteArray(packet.body);
|
|
16
|
-
return writer.finish();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public static deserialize(data: Uint8Array): SignalPacket {
|
|
20
|
-
const reader = new ByteReader(data);
|
|
21
|
-
const id = Identifier.fromKey(reader.readString());
|
|
22
|
-
const body = reader.readByteArray();
|
|
23
|
-
return new SignalPacket(id, body);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export class SignalRegisterPacket {
|
|
28
|
-
constructor(
|
|
29
|
-
public readonly id: Identifier,
|
|
30
|
-
public readonly permissions: SignalPermissions,
|
|
31
|
-
) { }
|
|
32
|
-
|
|
33
|
-
public static serialize(packet: SignalRegisterPacket): Uint8Array {
|
|
34
|
-
const writer = new ByteWriter();
|
|
35
|
-
writer.writeString(packet.id.key());
|
|
36
|
-
packet.permissions.serialize(writer);
|
|
37
|
-
return writer.finish();
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public static deserialize(data: Uint8Array): SignalRegisterPacket {
|
|
41
|
-
const reader = new ByteReader(data);
|
|
42
|
-
const id = Identifier.fromKey(reader.readString());
|
|
43
|
-
const permissions = SignalPermissions.deserialize(reader);
|
|
44
|
-
return new SignalRegisterPacket(id, permissions);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import type { ByteReader, ByteWriter } from '../../bytebuffer.js';
|
|
2
|
-
import { Flags } from '../../bytebuffer.js';
|
|
3
|
-
import type { Unlisten } from '../../event-emitter.js';
|
|
4
|
-
import { Identifier } from '../../identifier.js';
|
|
5
|
-
import type { Serializable } from '../../serializer.js';
|
|
6
|
-
import { Serializer } from '../../serializer.js';
|
|
7
|
-
|
|
8
|
-
export class SignalPermissions {
|
|
9
|
-
constructor(
|
|
10
|
-
public readonly all?: Identifier,
|
|
11
|
-
public readonly listen?: Identifier,
|
|
12
|
-
public readonly send?: Identifier,
|
|
13
|
-
) {}
|
|
14
|
-
|
|
15
|
-
public serialize(writer: ByteWriter): void {
|
|
16
|
-
const flags = new Flags({length: 3});
|
|
17
|
-
flags.set(0, this.all !== undefined);
|
|
18
|
-
flags.set(1, this.listen !== undefined);
|
|
19
|
-
flags.set(2, this.send !== undefined);
|
|
20
|
-
writer.writeFlags(flags);
|
|
21
|
-
if (this.all !== undefined) {
|
|
22
|
-
writer.writeString(this.all.key());
|
|
23
|
-
}
|
|
24
|
-
if (this.listen !== undefined) {
|
|
25
|
-
writer.writeString(this.listen.key());
|
|
26
|
-
}
|
|
27
|
-
if (this.send !== undefined) {
|
|
28
|
-
writer.writeString(this.send.key());
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public static deserialize(reader: ByteReader): SignalPermissions {
|
|
33
|
-
const flags = reader.readFlags(3);
|
|
34
|
-
const all = flags.ifSet(0, () => Identifier.fromKey(reader.readString()));
|
|
35
|
-
const listen = flags.ifSet(1, () => Identifier.fromKey(reader.readString()));
|
|
36
|
-
const send = flags.ifSet(2, () => Identifier.fromKey(reader.readString()));
|
|
37
|
-
return new SignalPermissions(all, listen, send);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
export class SignalType<T> {
|
|
41
|
-
constructor(
|
|
42
|
-
public readonly id: Identifier,
|
|
43
|
-
public readonly serializer: Serializable<T, Uint8Array>,
|
|
44
|
-
public readonly permissions: SignalPermissions,
|
|
45
|
-
) {}
|
|
46
|
-
|
|
47
|
-
static createJson<T>(
|
|
48
|
-
identifier: Identifier,
|
|
49
|
-
{
|
|
50
|
-
name,
|
|
51
|
-
serializer,
|
|
52
|
-
permissions,
|
|
53
|
-
}: {
|
|
54
|
-
name: string;
|
|
55
|
-
serializer?: Serializable<T, any>;
|
|
56
|
-
permissions?: SignalPermissions;
|
|
57
|
-
},
|
|
58
|
-
): SignalType<T> {
|
|
59
|
-
return new SignalType(
|
|
60
|
-
identifier.join(name),
|
|
61
|
-
Serializer.of<T, any>(serializer ?? Serializer.noop()).toJson(),
|
|
62
|
-
permissions ?? new SignalPermissions(),
|
|
63
|
-
);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
static createSerialized<T>(
|
|
67
|
-
identifier: Identifier,
|
|
68
|
-
{
|
|
69
|
-
name,
|
|
70
|
-
serializer,
|
|
71
|
-
permissions,
|
|
72
|
-
}: {
|
|
73
|
-
name: string;
|
|
74
|
-
serializer: Serializable<T, Uint8Array>;
|
|
75
|
-
permissions?: SignalPermissions;
|
|
76
|
-
},
|
|
77
|
-
): SignalType<T> {
|
|
78
|
-
return new SignalType(
|
|
79
|
-
identifier.join(name),
|
|
80
|
-
serializer,
|
|
81
|
-
permissions ?? new SignalPermissions(),
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export interface Signal<T> {
|
|
87
|
-
listen(handler: (value: T) => void): Unlisten;
|
|
88
|
-
notify(body: T): void;
|
|
89
|
-
}
|
package/src/interface.ts
DELETED
package/src/model.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import type { Address } from '../address.js';
|
|
3
|
-
import { ByteReader, ByteWriter } from '../bytebuffer.js';
|
|
4
|
-
import type { Serializable } from '../serializer.js';
|
|
5
|
-
|
|
6
|
-
import type { Connection } from './connection.js';
|
|
7
|
-
import type { Packet, PacketData } from './packet/packet.js';
|
|
8
|
-
|
|
9
|
-
export class WebsocketConnection implements Connection {
|
|
10
|
-
public connected: boolean;
|
|
11
|
-
private socket: WebSocket | null;
|
|
12
|
-
private readonly packetQueue: Array<PacketData> = [];
|
|
13
|
-
private receiveWaiter: (() => void) | null = null;
|
|
14
|
-
|
|
15
|
-
constructor(
|
|
16
|
-
private readonly address: Address,
|
|
17
|
-
) {
|
|
18
|
-
this.connected = false;
|
|
19
|
-
this.socket = null;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
private get wsEndpoint(): string {
|
|
23
|
-
const protocol = this.address.secure ? 'wss' : 'ws';
|
|
24
|
-
const { host, port } = this.address;
|
|
25
|
-
return `${protocol}://${host}:${port}/ws`;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public connect(): Promise<void> {
|
|
29
|
-
if (this.socket && !this.connected) {
|
|
30
|
-
throw new Error('Already connecting');
|
|
31
|
-
}
|
|
32
|
-
return new Promise((resolve, reject) => {
|
|
33
|
-
this.close();
|
|
34
|
-
this.socket = new WebSocket(this.wsEndpoint);
|
|
35
|
-
this.socket.onerror = reject;
|
|
36
|
-
this.socket.onclose = (): void => { this.close(); };
|
|
37
|
-
this.socket.onmessage = (event): void => { this.onMessage(event); };
|
|
38
|
-
this.socket.onopen = (): void => {
|
|
39
|
-
this.connected = true;
|
|
40
|
-
resolve();
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
private async onMessage(event: MessageEvent<string | Blob>): Promise<void> {
|
|
46
|
-
if (typeof event.data === 'string') {
|
|
47
|
-
throw new Error('Received string data');
|
|
48
|
-
}
|
|
49
|
-
const reader = new ByteReader(await event.data.arrayBuffer());
|
|
50
|
-
this.packetQueue.push({
|
|
51
|
-
type: reader.readString(),
|
|
52
|
-
data: reader.readByteArray(),
|
|
53
|
-
});
|
|
54
|
-
reader.finish();
|
|
55
|
-
if (this.receiveWaiter) {
|
|
56
|
-
this.receiveWaiter();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
public async receive(serializer: Serializable<Packet<unknown>, PacketData>): Promise<Packet | null> {
|
|
61
|
-
if (this.receiveWaiter) {
|
|
62
|
-
throw new Error('Already receiving');
|
|
63
|
-
}
|
|
64
|
-
if (!this.connected || !this.socket) {
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
while (this.packetQueue.length === 0 && this.connected) {
|
|
68
|
-
await new Promise<void>((resolve) => {
|
|
69
|
-
this.receiveWaiter = (): void => resolve();
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
if (!this.connected) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
const packet = serializer.deserialize(this.packetQueue.shift()!);
|
|
76
|
-
this.receiveWaiter = null;
|
|
77
|
-
return packet;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
get closed(): boolean {
|
|
81
|
-
if (this.socket) {
|
|
82
|
-
return this.socket.readyState === WebSocket.CLOSED;
|
|
83
|
-
}
|
|
84
|
-
return true;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
close(): void {
|
|
88
|
-
this.connected = false;
|
|
89
|
-
if (this.socket) {
|
|
90
|
-
this.socket.close();
|
|
91
|
-
this.socket = null;
|
|
92
|
-
}
|
|
93
|
-
if (this.receiveWaiter) {
|
|
94
|
-
this.receiveWaiter();
|
|
95
|
-
this.receiveWaiter = null;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
send(packet: Packet, serializer: Serializable<Packet<unknown>, PacketData>): void {
|
|
100
|
-
if (!this.connected || !this.socket) {
|
|
101
|
-
throw new Error('Not connected');
|
|
102
|
-
}
|
|
103
|
-
const packetData = serializer.serialize(packet);
|
|
104
|
-
const writer = new ByteWriter();
|
|
105
|
-
writer.writeString(packetData.type);
|
|
106
|
-
writer.writeByteArray(packetData.data);
|
|
107
|
-
this.socket.send(writer.finish());
|
|
108
|
-
}
|
|
109
|
-
}
|