@omujs/omu 0.9.10 → 0.9.27
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 +154 -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,238 +0,0 @@
|
|
|
1
|
-
import { App } from '../../app.js';
|
|
2
|
-
import type { Client } from '../../client.js';
|
|
3
|
-
import { Identifier } 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 { ExtensionType } from '../extension.js';
|
|
8
|
-
import type { Table } from '../table/table.js';
|
|
9
|
-
import { TableType } from '../table/table.js';
|
|
10
|
-
|
|
11
|
-
import type { DashboardHandler } from './dashboard.js';
|
|
12
|
-
import { AppInstallRequest, AppInstallResponse, AppUpdateRequest, AppUpdateResponse, PermissionRequestPacket, PluginRequestPacket } from './packets.js';
|
|
13
|
-
|
|
14
|
-
export const DASHBOARD_EXTENSION_TYPE = new ExtensionType(
|
|
15
|
-
'dashboard',
|
|
16
|
-
(client: Client) => new DashboardExtension(client),
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
type DashboardSetResponse = {
|
|
20
|
-
success: boolean;
|
|
21
|
-
};
|
|
22
|
-
export const DASHBOARD_SET_PERMISSION_ID = DASHBOARD_EXTENSION_TYPE.join('set');
|
|
23
|
-
const DASHBOARD_SET_ENDPOINT = EndpointType.createJson<Identifier, DashboardSetResponse>(
|
|
24
|
-
DASHBOARD_EXTENSION_TYPE,
|
|
25
|
-
{
|
|
26
|
-
name: 'set',
|
|
27
|
-
requestSerializer: Serializer.model(Identifier),
|
|
28
|
-
permissionId: DASHBOARD_SET_PERMISSION_ID,
|
|
29
|
-
},
|
|
30
|
-
);
|
|
31
|
-
const DASHBOARD_PERMISSION_REQUEST_PACKET = PacketType.createSerialized<PermissionRequestPacket>(
|
|
32
|
-
DASHBOARD_EXTENSION_TYPE,
|
|
33
|
-
{
|
|
34
|
-
name: 'permission_request',
|
|
35
|
-
serializer: PermissionRequestPacket,
|
|
36
|
-
},
|
|
37
|
-
);
|
|
38
|
-
const DASHBOARD_PERMISSION_ACCEPT_PACKET = PacketType.createJson<string>(DASHBOARD_EXTENSION_TYPE, {
|
|
39
|
-
name: 'permission_accept',
|
|
40
|
-
});
|
|
41
|
-
const DASHBOARD_PERMISSION_DENY_PACKET = PacketType.createJson<string>(DASHBOARD_EXTENSION_TYPE, {
|
|
42
|
-
name: 'permission_deny',
|
|
43
|
-
});
|
|
44
|
-
const DASHBOARD_PLUGIN_REQUEST_PACKET = PacketType.createSerialized<PluginRequestPacket>(
|
|
45
|
-
DASHBOARD_EXTENSION_TYPE,
|
|
46
|
-
{
|
|
47
|
-
name: 'plugin_request',
|
|
48
|
-
serializer: PluginRequestPacket,
|
|
49
|
-
},
|
|
50
|
-
);
|
|
51
|
-
const DASHBOARD_PLUGIN_ACCEPT_PACKET = PacketType.createJson<string>(DASHBOARD_EXTENSION_TYPE, {
|
|
52
|
-
name: 'plugin_accept',
|
|
53
|
-
});
|
|
54
|
-
const DASHBOARD_PLUGIN_DENY_PACKET = PacketType.createJson<string>(DASHBOARD_EXTENSION_TYPE, {
|
|
55
|
-
name: 'plugin_deny',
|
|
56
|
-
});
|
|
57
|
-
export const DASHBOARD_OPEN_APP_PERMISSION_ID = DASHBOARD_EXTENSION_TYPE.join('app', 'open');
|
|
58
|
-
const DASHBOARD_OPEN_APP_ENDPOINT = EndpointType.createJson<App, void>(DASHBOARD_EXTENSION_TYPE, {
|
|
59
|
-
name: 'open_app',
|
|
60
|
-
requestSerializer: Serializer.model(App),
|
|
61
|
-
permissionId: DASHBOARD_OPEN_APP_PERMISSION_ID,
|
|
62
|
-
});
|
|
63
|
-
const DASHBOARD_OPEN_APP_PACKET = PacketType.createJson<App>(DASHBOARD_EXTENSION_TYPE, {
|
|
64
|
-
name: 'open_app',
|
|
65
|
-
serializer: Serializer.model(App),
|
|
66
|
-
});
|
|
67
|
-
export const DASHOBARD_APP_READ_PERMISSION_ID = DASHBOARD_EXTENSION_TYPE.join('app', 'read');
|
|
68
|
-
export const DASHOBARD_APP_EDIT_PERMISSION_ID = DASHBOARD_EXTENSION_TYPE.join('app', 'edit');
|
|
69
|
-
const DASHBOARD_APP_TABLE_TYPE = TableType.createModel(DASHBOARD_EXTENSION_TYPE, {
|
|
70
|
-
name: 'apps',
|
|
71
|
-
model: App,
|
|
72
|
-
permissions: {
|
|
73
|
-
read: DASHOBARD_APP_READ_PERMISSION_ID,
|
|
74
|
-
write: DASHOBARD_APP_EDIT_PERMISSION_ID,
|
|
75
|
-
remove: DASHOBARD_APP_EDIT_PERMISSION_ID,
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
export const DASHBOARD_APP_INSTALL_PERMISSION_ID = DASHBOARD_EXTENSION_TYPE.join('app', 'install');
|
|
79
|
-
const DASHBOARD_APP_INSTALL_ENDPOINT = EndpointType.createJson<App, AppInstallResponse>(DASHBOARD_EXTENSION_TYPE, {
|
|
80
|
-
name: 'install_app',
|
|
81
|
-
requestSerializer: Serializer.model(App),
|
|
82
|
-
permissionId: DASHBOARD_APP_INSTALL_PERMISSION_ID,
|
|
83
|
-
});
|
|
84
|
-
const DASHBOARD_APP_INSTALL_PACKET = PacketType.createSerialized<AppInstallRequest>(DASHBOARD_EXTENSION_TYPE, {
|
|
85
|
-
name: 'install_app',
|
|
86
|
-
serializer: AppInstallRequest,
|
|
87
|
-
});
|
|
88
|
-
const DASHBOARD_APP_INSTALL_ACCEPT_PACKET = PacketType.createJson<string>(DASHBOARD_EXTENSION_TYPE, {
|
|
89
|
-
name: 'install_app_accept',
|
|
90
|
-
});
|
|
91
|
-
const DASHBOARD_APP_INSTALL_DENY_PACKET = PacketType.createJson<string>(DASHBOARD_EXTENSION_TYPE, {
|
|
92
|
-
name: 'install_app_deny',
|
|
93
|
-
});
|
|
94
|
-
const DASHBOARD_APP_UPDATE_PERMISSION_ID = DASHBOARD_EXTENSION_TYPE.join('app', 'update');
|
|
95
|
-
const DASHBOARD_APP_UPDATE_ENDPOINT = EndpointType.createJson<App, AppUpdateResponse>(DASHBOARD_EXTENSION_TYPE, {
|
|
96
|
-
name: 'update_app',
|
|
97
|
-
requestSerializer: Serializer.model(App),
|
|
98
|
-
permissionId: DASHBOARD_APP_UPDATE_PERMISSION_ID,
|
|
99
|
-
});
|
|
100
|
-
const DASHBOARD_APP_UPDATE_PACKET = PacketType.createSerialized<AppUpdateRequest>(DASHBOARD_EXTENSION_TYPE, {
|
|
101
|
-
name: 'update_app',
|
|
102
|
-
serializer: AppUpdateRequest,
|
|
103
|
-
});
|
|
104
|
-
const DASHBOARD_APP_UPDATE_ACCEPT_PACKET = PacketType.createJson<string>(DASHBOARD_EXTENSION_TYPE, {
|
|
105
|
-
name: 'update_app_accept',
|
|
106
|
-
});
|
|
107
|
-
const DASHBOARD_APP_UPDATE_DENY_PACKET = PacketType.createJson<string>(DASHBOARD_EXTENSION_TYPE, {
|
|
108
|
-
name: 'update_app_deny',
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
export class DashboardExtension {
|
|
112
|
-
public readonly type = DASHBOARD_EXTENSION_TYPE;
|
|
113
|
-
private dashboard: DashboardHandler | null = null;
|
|
114
|
-
public readonly apps: Table<App>;
|
|
115
|
-
|
|
116
|
-
constructor(private readonly client: Client) {
|
|
117
|
-
client.network.registerPacket(
|
|
118
|
-
DASHBOARD_PERMISSION_REQUEST_PACKET,
|
|
119
|
-
DASHBOARD_PERMISSION_ACCEPT_PACKET,
|
|
120
|
-
DASHBOARD_PERMISSION_DENY_PACKET,
|
|
121
|
-
DASHBOARD_PLUGIN_REQUEST_PACKET,
|
|
122
|
-
DASHBOARD_PLUGIN_ACCEPT_PACKET,
|
|
123
|
-
DASHBOARD_PLUGIN_DENY_PACKET,
|
|
124
|
-
DASHBOARD_OPEN_APP_PACKET,
|
|
125
|
-
DASHBOARD_APP_INSTALL_PACKET,
|
|
126
|
-
DASHBOARD_APP_INSTALL_ACCEPT_PACKET,
|
|
127
|
-
DASHBOARD_APP_INSTALL_DENY_PACKET,
|
|
128
|
-
DASHBOARD_APP_UPDATE_PACKET,
|
|
129
|
-
DASHBOARD_APP_UPDATE_ACCEPT_PACKET,
|
|
130
|
-
DASHBOARD_APP_UPDATE_DENY_PACKET,
|
|
131
|
-
);
|
|
132
|
-
client.network.addPacketHandler(DASHBOARD_PERMISSION_REQUEST_PACKET, (request) =>
|
|
133
|
-
this.handlePermissionRequest(request),
|
|
134
|
-
);
|
|
135
|
-
client.network.addPacketHandler(DASHBOARD_PLUGIN_REQUEST_PACKET, (request) =>
|
|
136
|
-
this.handlePluginRequest(request),
|
|
137
|
-
);
|
|
138
|
-
client.network.addPacketHandler(DASHBOARD_APP_INSTALL_PACKET, async (request) => {
|
|
139
|
-
this.handleInstallApp(request);
|
|
140
|
-
});
|
|
141
|
-
client.network.addPacketHandler(DASHBOARD_APP_UPDATE_PACKET, async (request) => {
|
|
142
|
-
this.handleUpdateApp(request);
|
|
143
|
-
});
|
|
144
|
-
client.network.addPacketHandler(DASHBOARD_OPEN_APP_PACKET, (app) =>
|
|
145
|
-
this.handleOpenApp(app),
|
|
146
|
-
);
|
|
147
|
-
|
|
148
|
-
this.apps = client.tables.get(DASHBOARD_APP_TABLE_TYPE);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
private async handlePermissionRequest(request: PermissionRequestPacket): Promise<void> {
|
|
152
|
-
await this.handleDashboard(async (dashboard) => {
|
|
153
|
-
const response = await dashboard.handlePermissionRequest(request);
|
|
154
|
-
if (response) {
|
|
155
|
-
this.client.send(DASHBOARD_PERMISSION_ACCEPT_PACKET, request.requestId);
|
|
156
|
-
} else {
|
|
157
|
-
this.client.send(DASHBOARD_PERMISSION_DENY_PACKET, request.requestId);
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
private async handlePluginRequest(request: PluginRequestPacket): Promise<void> {
|
|
163
|
-
await this.handleDashboard(async (dashboard) => {
|
|
164
|
-
const response = await dashboard.handlePluginRequest(request);
|
|
165
|
-
if (response) {
|
|
166
|
-
this.client.send(DASHBOARD_PLUGIN_ACCEPT_PACKET, request.requestId);
|
|
167
|
-
} else {
|
|
168
|
-
this.client.send(DASHBOARD_PLUGIN_DENY_PACKET, request.requestId);
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
private async handleInstallApp(request: AppInstallRequest): Promise<void> {
|
|
174
|
-
await this.handleDashboard(async (dashboard) => {
|
|
175
|
-
const response = await dashboard.handleInstallApp(request);
|
|
176
|
-
if (response) {
|
|
177
|
-
this.client.send(DASHBOARD_APP_INSTALL_ACCEPT_PACKET, request.requestId);
|
|
178
|
-
} else {
|
|
179
|
-
this.client.send(DASHBOARD_APP_INSTALL_DENY_PACKET, request.requestId);
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
private async handleUpdateApp(request: AppUpdateRequest): Promise<void> {
|
|
185
|
-
await this.handleDashboard(async (dashboard) => {
|
|
186
|
-
const response = await dashboard.handleUpdateApp(request);
|
|
187
|
-
if (response) {
|
|
188
|
-
this.client.send(DASHBOARD_APP_UPDATE_ACCEPT_PACKET, request.requestId);
|
|
189
|
-
} else {
|
|
190
|
-
this.client.send(DASHBOARD_APP_UPDATE_DENY_PACKET, request.requestId);
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
private async handleOpenApp(app: App): Promise<void> {
|
|
196
|
-
await this.handleDashboard(async (dashboard) => {
|
|
197
|
-
await dashboard.handleOpenApp(app);
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
private async handleDashboard(
|
|
202
|
-
callback: (dashboard: DashboardHandler) => Promise<void>,
|
|
203
|
-
): Promise<void> {
|
|
204
|
-
if (this.dashboard === null) {
|
|
205
|
-
throw new Error('Dashboard not set');
|
|
206
|
-
}
|
|
207
|
-
await callback(this.dashboard);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
public set(dashboard: DashboardHandler): void {
|
|
211
|
-
this.client.permissions.require(DASHBOARD_SET_PERMISSION_ID);
|
|
212
|
-
if (this.dashboard !== null) {
|
|
213
|
-
throw new Error('Dashboard already set');
|
|
214
|
-
}
|
|
215
|
-
this.dashboard = dashboard;
|
|
216
|
-
this.client.onReady(async () => {
|
|
217
|
-
const response = await this.client.endpoints.call(
|
|
218
|
-
DASHBOARD_SET_ENDPOINT,
|
|
219
|
-
this.client.app.id,
|
|
220
|
-
);
|
|
221
|
-
if (!response.success) {
|
|
222
|
-
throw new Error('Failed to set dashboard');
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
public async openApp(app: App): Promise<void> {
|
|
228
|
-
return await this.client.endpoints.call(DASHBOARD_OPEN_APP_ENDPOINT, app);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
public async installApp(app: App): Promise<AppInstallResponse> {
|
|
232
|
-
return await this.client.endpoints.call(DASHBOARD_APP_INSTALL_ENDPOINT, app);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
public async updateApp(app: App): Promise<AppUpdateResponse> {
|
|
236
|
-
return await this.client.endpoints.call(DASHBOARD_APP_UPDATE_ENDPOINT, app);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { App } from '../../app.js';
|
|
2
|
-
|
|
3
|
-
import type { AppInstallRequest, AppUpdateRequest, PermissionRequestPacket, PluginRequestPacket } from './packets.js';
|
|
4
|
-
|
|
5
|
-
export interface DashboardHandler {
|
|
6
|
-
handlePermissionRequest(request: PermissionRequestPacket): Promise<boolean>;
|
|
7
|
-
handlePluginRequest(request: PluginRequestPacket): Promise<boolean>;
|
|
8
|
-
handleInstallApp(request: AppInstallRequest): Promise<boolean>;
|
|
9
|
-
handleUpdateApp(request: AppUpdateRequest): Promise<boolean>;
|
|
10
|
-
handleOpenApp(app: App): Promise<void>;
|
|
11
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
DASHBOARD_APP_INSTALL_PERMISSION_ID, DASHBOARD_EXTENSION_TYPE,
|
|
3
|
-
DASHBOARD_OPEN_APP_PERMISSION_ID,
|
|
4
|
-
DASHBOARD_SET_PERMISSION_ID,
|
|
5
|
-
DASHOBARD_APP_EDIT_PERMISSION_ID,
|
|
6
|
-
DASHOBARD_APP_READ_PERMISSION_ID, DashboardExtension
|
|
7
|
-
} from './dashboard-extension.js';
|
|
8
|
-
export { DashboardHandler } from './dashboard.js';
|
|
9
|
-
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { App } from '../../app.js';
|
|
2
|
-
import { ByteReader, ByteWriter } from '../../bytebuffer.js';
|
|
3
|
-
import { PermissionType } from '../permission/permission.js';
|
|
4
|
-
import type { PackageInfo } from '../plugin/package-info.js';
|
|
5
|
-
|
|
6
|
-
export class PermissionRequestPacket {
|
|
7
|
-
constructor(
|
|
8
|
-
public readonly requestId: string,
|
|
9
|
-
public readonly app: App,
|
|
10
|
-
public readonly permissions: PermissionType[],
|
|
11
|
-
) { }
|
|
12
|
-
|
|
13
|
-
public static serialize(packet: PermissionRequestPacket): Uint8Array {
|
|
14
|
-
const writer = new ByteWriter();
|
|
15
|
-
writer.writeString(packet.requestId);
|
|
16
|
-
writer.writeString(JSON.stringify(packet.app.toJson()));
|
|
17
|
-
writer.writeString(JSON.stringify(packet.permissions.map(permission => permission.toJson())));
|
|
18
|
-
return writer.finish();
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public static deserialize(data: Uint8Array): PermissionRequestPacket {
|
|
22
|
-
const reader = new ByteReader(data);
|
|
23
|
-
const requestId = reader.readString();
|
|
24
|
-
const app = App.fromJson(JSON.parse(reader.readString()));
|
|
25
|
-
const permissions = JSON.parse(reader.readString()).map(PermissionType.fromJson);
|
|
26
|
-
return new PermissionRequestPacket(requestId, app, permissions);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export class PluginRequestPacket {
|
|
31
|
-
constructor(
|
|
32
|
-
public readonly requestId: string,
|
|
33
|
-
public readonly app: App,
|
|
34
|
-
public readonly packages: PackageInfo[],
|
|
35
|
-
) { }
|
|
36
|
-
|
|
37
|
-
public static serialize(packet: PluginRequestPacket): Uint8Array {
|
|
38
|
-
const writer = new ByteWriter();
|
|
39
|
-
writer.writeString(packet.requestId);
|
|
40
|
-
writer.writeString(JSON.stringify(packet.app.toJson()));
|
|
41
|
-
writer.writeString(JSON.stringify(packet.packages));
|
|
42
|
-
return writer.finish();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public static deserialize(data: Uint8Array): PluginRequestPacket {
|
|
46
|
-
const reader = new ByteReader(data);
|
|
47
|
-
const requestId = reader.readString();
|
|
48
|
-
const app = App.fromJson(JSON.parse(reader.readString()));
|
|
49
|
-
const packages = JSON.parse(reader.readString());
|
|
50
|
-
return new PluginRequestPacket(requestId, app, packages);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export class AppInstallRequest {
|
|
55
|
-
constructor(public readonly requestId: string, public readonly app: App) { }
|
|
56
|
-
|
|
57
|
-
public static serialize(packet: AppInstallRequest): Uint8Array {
|
|
58
|
-
const writer = new ByteWriter();
|
|
59
|
-
writer.writeString(packet.requestId);
|
|
60
|
-
writer.writeString(JSON.stringify(packet.app.toJson()));
|
|
61
|
-
return writer.finish();
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
public static deserialize(data: Uint8Array): AppInstallRequest {
|
|
65
|
-
const reader = new ByteReader(data);
|
|
66
|
-
const requestId = reader.readString();
|
|
67
|
-
const app = App.fromJson(JSON.parse(reader.readString()));
|
|
68
|
-
return new AppInstallRequest(requestId, app);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export class AppUpdateRequest {
|
|
73
|
-
constructor(public readonly requestId: string, public readonly oldApp: App, public readonly newApp: App) { }
|
|
74
|
-
|
|
75
|
-
public static serialize(packet: AppUpdateRequest): Uint8Array {
|
|
76
|
-
const writer = new ByteWriter();
|
|
77
|
-
writer.writeString(packet.requestId);
|
|
78
|
-
writer.writeString(JSON.stringify(packet.oldApp.toJson()));
|
|
79
|
-
writer.writeString(JSON.stringify(packet.newApp.toJson()));
|
|
80
|
-
return writer.finish();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
public static deserialize(data: Uint8Array): AppUpdateRequest {
|
|
84
|
-
const reader = new ByteReader(data);
|
|
85
|
-
const requestId = reader.readString();
|
|
86
|
-
const oldApp = App.fromJson(JSON.parse(reader.readString()));
|
|
87
|
-
const newApp = App.fromJson(JSON.parse(reader.readString()));
|
|
88
|
-
return new AppUpdateRequest(requestId, oldApp, newApp);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export type AppInstallResponse = {
|
|
93
|
-
accepted: boolean;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export type AppUpdateResponse = {
|
|
97
|
-
accepted: boolean;
|
|
98
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import type { Client } from '../../client.js';
|
|
2
|
-
import type { Identifier } from '../../identifier.js';
|
|
3
|
-
import { IdentifierMap } from '../../identifier.js';
|
|
4
|
-
import { PacketType } from '../../network/packet/index.js';
|
|
5
|
-
import { ExtensionType } from '../extension.js';
|
|
6
|
-
|
|
7
|
-
import { EndpointType } from './endpoint.js';
|
|
8
|
-
import { EndpointDataPacket, EndpointErrorPacket, EndpointRegisterPacket } from './packets.js';
|
|
9
|
-
|
|
10
|
-
export const ENDPOINT_EXTENSION_TYPE = new ExtensionType(
|
|
11
|
-
'endpoint',
|
|
12
|
-
(client: Client) => new EndpointExtension(client),
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
type CallPromise = {
|
|
16
|
-
resolve: (data: Uint8Array) => void;
|
|
17
|
-
reject: (error: Error) => void;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
type EndpointHandler = {
|
|
21
|
-
type: EndpointType;
|
|
22
|
-
handler: (arg: any) => Promise<any>;
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export class EndpointExtension {
|
|
26
|
-
public readonly type = ENDPOINT_EXTENSION_TYPE;
|
|
27
|
-
private readonly registeredEndpoints = new IdentifierMap<EndpointHandler>();
|
|
28
|
-
private readonly promiseMap: Map<number, CallPromise> = new Map();
|
|
29
|
-
private callId: number;
|
|
30
|
-
|
|
31
|
-
constructor(private readonly client: Client) {
|
|
32
|
-
this.callId = 0;
|
|
33
|
-
client.network.registerPacket(
|
|
34
|
-
ENDPOINT_REGISTER_PACKET,
|
|
35
|
-
ENDPOINT_CALL_PACKET,
|
|
36
|
-
ENDPOINT_RECEIVE_PACKET,
|
|
37
|
-
ENDPOINT_ERROR_PACKET,
|
|
38
|
-
);
|
|
39
|
-
client.network.addPacketHandler(ENDPOINT_RECEIVE_PACKET, (event) => {
|
|
40
|
-
const promise = this.promiseMap.get(event.key);
|
|
41
|
-
if (!promise) return;
|
|
42
|
-
this.promiseMap.delete(event.key);
|
|
43
|
-
promise.resolve(event.data);
|
|
44
|
-
});
|
|
45
|
-
client.network.addPacketHandler(ENDPOINT_ERROR_PACKET, (event) => {
|
|
46
|
-
const promise = this.promiseMap.get(event.key);
|
|
47
|
-
if (!promise) return;
|
|
48
|
-
this.promiseMap.delete(event.key);
|
|
49
|
-
promise.reject(new Error(event.error));
|
|
50
|
-
});
|
|
51
|
-
client.network.addTask(() => this.onTask());
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
private onTask(): void {
|
|
55
|
-
const endpoints = new IdentifierMap<Identifier | undefined>();
|
|
56
|
-
for (const [key, endpoint] of this.registeredEndpoints) {
|
|
57
|
-
endpoints.set(key, endpoint.type.permissionId);
|
|
58
|
-
}
|
|
59
|
-
const packet = new EndpointRegisterPacket(endpoints);
|
|
60
|
-
this.client.send(ENDPOINT_REGISTER_PACKET, packet);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public register<Req, Res>(
|
|
64
|
-
type: EndpointType<Req, Res>,
|
|
65
|
-
handler: (data: Req) => Promise<Res>,
|
|
66
|
-
): void {
|
|
67
|
-
if (this.client.running) {
|
|
68
|
-
throw new Error('Cannot register endpoints after the client has started');
|
|
69
|
-
}
|
|
70
|
-
if (this.registeredEndpoints.has(type.id)) {
|
|
71
|
-
throw new Error(`Endpoint for key ${type.id} already registered`);
|
|
72
|
-
}
|
|
73
|
-
this.registeredEndpoints.set(type.id, { type, handler });
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
public listen<Req, Res>(handler: (data: Req) => Promise<Res>, name?: string): void {
|
|
77
|
-
const type = EndpointType.createJson<Req, Res>(this.client.app.id, {
|
|
78
|
-
name: name ?? handler.name,
|
|
79
|
-
});
|
|
80
|
-
this.register(type, handler);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
public async call<Req, Res>(endpoint: EndpointType<Req, Res>, data: Req): Promise<Res> {
|
|
84
|
-
const key = this.callId++;
|
|
85
|
-
const promise = new Promise<Uint8Array>((resolve, reject) => {
|
|
86
|
-
this.promiseMap.set(key, { resolve, reject });
|
|
87
|
-
});
|
|
88
|
-
this.client.send(ENDPOINT_CALL_PACKET, {
|
|
89
|
-
id: endpoint.id,
|
|
90
|
-
key,
|
|
91
|
-
data: endpoint.requestSerializer.serialize(data),
|
|
92
|
-
});
|
|
93
|
-
const response = await promise;
|
|
94
|
-
return endpoint.responseSerializer.deserialize(response);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
const ENDPOINT_REGISTER_PACKET = PacketType.createSerialized<EndpointRegisterPacket>(
|
|
99
|
-
ENDPOINT_EXTENSION_TYPE,
|
|
100
|
-
{
|
|
101
|
-
name: 'register',
|
|
102
|
-
serializer: EndpointRegisterPacket,
|
|
103
|
-
},
|
|
104
|
-
);
|
|
105
|
-
const ENDPOINT_CALL_PACKET = PacketType.createSerialized<EndpointDataPacket>(
|
|
106
|
-
ENDPOINT_EXTENSION_TYPE,
|
|
107
|
-
{
|
|
108
|
-
name: 'call',
|
|
109
|
-
serializer: EndpointDataPacket,
|
|
110
|
-
},
|
|
111
|
-
);
|
|
112
|
-
const ENDPOINT_RECEIVE_PACKET = PacketType.createSerialized<EndpointDataPacket>(
|
|
113
|
-
ENDPOINT_EXTENSION_TYPE,
|
|
114
|
-
{
|
|
115
|
-
name: 'receive',
|
|
116
|
-
serializer: EndpointDataPacket,
|
|
117
|
-
},
|
|
118
|
-
);
|
|
119
|
-
const ENDPOINT_ERROR_PACKET = PacketType.createSerialized<EndpointErrorPacket>(
|
|
120
|
-
ENDPOINT_EXTENSION_TYPE,
|
|
121
|
-
{
|
|
122
|
-
name: 'error',
|
|
123
|
-
serializer: EndpointErrorPacket,
|
|
124
|
-
},
|
|
125
|
-
);
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { Identifier } from '../../identifier.js';
|
|
2
|
-
import { type Serializable, Serializer } from '../../serializer.js';
|
|
3
|
-
|
|
4
|
-
export class EndpointType<Req = unknown, Res = unknown> {
|
|
5
|
-
constructor(
|
|
6
|
-
public readonly id: Identifier,
|
|
7
|
-
public readonly requestSerializer: Serializable<Req, Uint8Array>,
|
|
8
|
-
public readonly responseSerializer: Serializable<Res, Uint8Array>,
|
|
9
|
-
public readonly permissionId?: Identifier,
|
|
10
|
-
) { }
|
|
11
|
-
|
|
12
|
-
static createJson<Req, Res>(
|
|
13
|
-
identifier: Identifier,
|
|
14
|
-
{
|
|
15
|
-
name,
|
|
16
|
-
requestSerializer,
|
|
17
|
-
responseSerializer,
|
|
18
|
-
permissionId,
|
|
19
|
-
}: {
|
|
20
|
-
name: string,
|
|
21
|
-
requestSerializer?: Serializable<Req, any>,
|
|
22
|
-
responseSerializer?: Serializable<Res, any>,
|
|
23
|
-
permissionId?: Identifier,
|
|
24
|
-
},
|
|
25
|
-
): EndpointType<Req, Res> {
|
|
26
|
-
return new EndpointType<Req, Res>(
|
|
27
|
-
identifier.join(name),
|
|
28
|
-
Serializer.of<Req, any>(requestSerializer ?? Serializer.noop())
|
|
29
|
-
.pipe(Serializer.json()),
|
|
30
|
-
Serializer.of<Res, any>(responseSerializer ?? Serializer.noop())
|
|
31
|
-
.pipe(Serializer.json()),
|
|
32
|
-
permissionId,
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
static createSerialized<Req, Res>(
|
|
37
|
-
identifier: Identifier,
|
|
38
|
-
{
|
|
39
|
-
name,
|
|
40
|
-
requestSerializer,
|
|
41
|
-
responseSerializer,
|
|
42
|
-
permissionId,
|
|
43
|
-
}: {
|
|
44
|
-
name: string,
|
|
45
|
-
requestSerializer: Serializable<Req, Uint8Array>,
|
|
46
|
-
responseSerializer: Serializable<Res, Uint8Array>,
|
|
47
|
-
permissionId?: Identifier,
|
|
48
|
-
},
|
|
49
|
-
): EndpointType<Req, Res> {
|
|
50
|
-
return new EndpointType<Req, Res>(
|
|
51
|
-
identifier.join(name),
|
|
52
|
-
requestSerializer,
|
|
53
|
-
responseSerializer,
|
|
54
|
-
permissionId,
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { ByteReader, ByteWriter } from '../../bytebuffer.js';
|
|
2
|
-
import { Identifier, IdentifierMap } from '../../identifier.js';
|
|
3
|
-
|
|
4
|
-
export class EndpointRegisterPacket {
|
|
5
|
-
constructor(
|
|
6
|
-
public endpoints: IdentifierMap<Identifier | undefined>,
|
|
7
|
-
) { }
|
|
8
|
-
|
|
9
|
-
public static serialize(item: EndpointRegisterPacket): Uint8Array {
|
|
10
|
-
const writer = new ByteWriter();
|
|
11
|
-
writer.writeInt(item.endpoints.size);
|
|
12
|
-
for (const [key, value] of item.endpoints) {
|
|
13
|
-
writer.writeString(key.key());
|
|
14
|
-
writer.writeString(value?.key() ?? '');
|
|
15
|
-
}
|
|
16
|
-
return writer.finish();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public static deserialize(item: Uint8Array): EndpointRegisterPacket {
|
|
20
|
-
const reader = new ByteReader(item);
|
|
21
|
-
const count = reader.readInt();
|
|
22
|
-
const endpoints = new IdentifierMap<Identifier | undefined>();
|
|
23
|
-
for (let i = 0; i < count; i++) {
|
|
24
|
-
const key = Identifier.fromKey(reader.readString());
|
|
25
|
-
const value = Identifier.fromKey(reader.readString());
|
|
26
|
-
endpoints.set(key, value);
|
|
27
|
-
}
|
|
28
|
-
return new EndpointRegisterPacket(endpoints);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export class EndpointDataPacket {
|
|
33
|
-
constructor(
|
|
34
|
-
public id: Identifier,
|
|
35
|
-
public key: number,
|
|
36
|
-
public data: Uint8Array,
|
|
37
|
-
) { }
|
|
38
|
-
|
|
39
|
-
public static serialize(item: EndpointDataPacket): Uint8Array {
|
|
40
|
-
const writer = new ByteWriter();
|
|
41
|
-
writer.writeString(item.id.key());
|
|
42
|
-
writer.writeInt(item.key);
|
|
43
|
-
writer.writeByteArray(item.data);
|
|
44
|
-
return writer.finish();
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public static deserialize(item: Uint8Array): EndpointDataPacket {
|
|
48
|
-
const reader = new ByteReader(item);
|
|
49
|
-
const id = Identifier.fromKey(reader.readString());
|
|
50
|
-
const key = reader.readInt();
|
|
51
|
-
const data = reader.readByteArray();
|
|
52
|
-
return new EndpointDataPacket(id, key, data);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
export class EndpointErrorPacket {
|
|
57
|
-
constructor(
|
|
58
|
-
public id: Identifier,
|
|
59
|
-
public key: number,
|
|
60
|
-
public error: string,
|
|
61
|
-
) { }
|
|
62
|
-
|
|
63
|
-
public static serialize(item: EndpointErrorPacket): Uint8Array {
|
|
64
|
-
const writer = new ByteWriter();
|
|
65
|
-
writer.writeString(item.id.key());
|
|
66
|
-
writer.writeInt(item.key);
|
|
67
|
-
writer.writeString(item.error);
|
|
68
|
-
return writer.finish();
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
public static deserialize(item: Uint8Array): EndpointErrorPacket {
|
|
72
|
-
const reader = new ByteReader(item);
|
|
73
|
-
const id = Identifier.fromKey(reader.readString());
|
|
74
|
-
const key = reader.readInt();
|
|
75
|
-
const error = reader.readString();
|
|
76
|
-
return new EndpointErrorPacket(id, key, error);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { Client } from '../client.js';
|
|
2
|
-
|
|
3
|
-
import type { Extension, ExtensionType } from './extension.js';
|
|
4
|
-
|
|
5
|
-
export class ExtensionRegistry {
|
|
6
|
-
private readonly extensionMap: Map<string, Extension> = new Map();
|
|
7
|
-
constructor(private readonly client: Client) {}
|
|
8
|
-
register<T extends Extension>(type: ExtensionType<T>): T {
|
|
9
|
-
if (this.has(type)) {
|
|
10
|
-
throw new Error(`Extension type ${type.name} already registered`);
|
|
11
|
-
}
|
|
12
|
-
type.dependencies?.().forEach((dependency) => {
|
|
13
|
-
if (!this.has(dependency)) {
|
|
14
|
-
throw new Error(
|
|
15
|
-
`Extension type ${type.name} depends on ${dependency.name} which is not registered`,
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
const extension = type.create(this.client);
|
|
20
|
-
this.extensionMap.set(type.name, extension);
|
|
21
|
-
return extension;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
registerAll(types: ExtensionType[]): void {
|
|
25
|
-
types.forEach((type) => this.register(type));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
get<Ext extends Extension>(extensionType: ExtensionType<Ext>): Ext {
|
|
29
|
-
const extension = this.extensionMap.get(extensionType.name);
|
|
30
|
-
if (!extension) {
|
|
31
|
-
throw new Error(`Extension type ${extensionType.name} not registered`);
|
|
32
|
-
}
|
|
33
|
-
return extension as Ext;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
has<T extends Extension>(extensionType: ExtensionType<T>): boolean {
|
|
37
|
-
return this.extensionMap.has(extensionType.name);
|
|
38
|
-
}
|
|
39
|
-
}
|