@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,29 +1,28 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Identifier } from '../../identifier';
|
|
2
2
|
import type { Locale } from '../../localization/locale.js';
|
|
3
3
|
import type { LocalizedText } from '../../localization/localization.js';
|
|
4
|
+
import { Omu } from '../../omu';
|
|
4
5
|
import type { Extension } from '../extension.js';
|
|
5
6
|
import { ExtensionType } from '../extension.js';
|
|
6
|
-
import type
|
|
7
|
-
import { RegistryType } from '../registry/index.js';
|
|
7
|
+
import { RegistryType, type Registry } from '../registry';
|
|
8
8
|
|
|
9
|
-
export const I18N_EXTENSION_TYPE = new ExtensionType('i18n', (client) => new I18nExtension(client));
|
|
9
|
+
export const I18N_EXTENSION_TYPE: ExtensionType<I18nExtension> = new ExtensionType('i18n', (client) => new I18nExtension(client));
|
|
10
10
|
|
|
11
|
-
export const I18N_SET_LOCALES_PERMISSION_ID = I18N_EXTENSION_TYPE.join('locales', 'set');
|
|
12
|
-
export const I18N_GET_LOCALES_PERMISSION_ID = I18N_EXTENSION_TYPE.join('locales', 'get');
|
|
11
|
+
export const I18N_SET_LOCALES_PERMISSION_ID: Identifier = I18N_EXTENSION_TYPE.join('locales', 'set');
|
|
12
|
+
export const I18N_GET_LOCALES_PERMISSION_ID: Identifier = I18N_EXTENSION_TYPE.join('locales', 'get');
|
|
13
13
|
const I18N_LOCALES_REGISTRY_TYPE = RegistryType.createJson<Locale[]>(I18N_EXTENSION_TYPE, {
|
|
14
14
|
name: 'locales',
|
|
15
15
|
defaultValue: [],
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
export class I18nExtension implements Extension {
|
|
19
|
-
public readonly type = I18N_EXTENSION_TYPE;
|
|
19
|
+
public readonly type: ExtensionType<I18nExtension> = I18N_EXTENSION_TYPE;
|
|
20
20
|
public readonly localesRegistry: Registry<Locale[]>;
|
|
21
21
|
private locales?: Locale[];
|
|
22
22
|
public defaultLocales?: Locale[];
|
|
23
23
|
|
|
24
|
-
constructor(private readonly
|
|
25
|
-
|
|
26
|
-
this.localesRegistry = client.registries.get(I18N_LOCALES_REGISTRY_TYPE);
|
|
24
|
+
constructor(private readonly omu: Omu) {
|
|
25
|
+
this.localesRegistry = omu.registries.get(I18N_LOCALES_REGISTRY_TYPE);
|
|
27
26
|
this.localesRegistry.listen((locale) => {
|
|
28
27
|
this.locales = locale;
|
|
29
28
|
});
|
|
@@ -1,37 +1,36 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
3
|
-
import { Identifier, IdentifierMap } from '../../identifier.js';
|
|
1
|
+
import type { Unlisten } from '../../event';
|
|
2
|
+
import { Identifier, IdentifierMap } from '../../identifier';
|
|
4
3
|
import { PacketType } from '../../network/packet/packet.js';
|
|
5
|
-
import {
|
|
4
|
+
import { Omu } from '../../omu';
|
|
6
5
|
import { ExtensionType } from '../extension.js';
|
|
7
6
|
|
|
8
7
|
import type { LogMessage } from './packets.js';
|
|
9
8
|
import { LogPacket, LogType } from './packets.js';
|
|
10
9
|
|
|
11
|
-
export const LOGGER_EXTENSION_TYPE = new ExtensionType(
|
|
10
|
+
export const LOGGER_EXTENSION_TYPE: ExtensionType<LoggerExtension> = new ExtensionType(
|
|
12
11
|
'logger',
|
|
13
12
|
(client) => new LoggerExtension(client),
|
|
14
13
|
);
|
|
15
14
|
|
|
16
|
-
export const LOGGER_LOG_PERMISSION_ID = LOGGER_EXTENSION_TYPE.join('log');
|
|
15
|
+
export const LOGGER_LOG_PERMISSION_ID: Identifier = LOGGER_EXTENSION_TYPE.join('log');
|
|
17
16
|
|
|
18
|
-
export const LOGGER_LOG_PACKET = PacketType.createSerialized<LogPacket>(LOGGER_EXTENSION_TYPE, {
|
|
17
|
+
export const LOGGER_LOG_PACKET: PacketType<LogPacket> = PacketType.createSerialized<LogPacket>(LOGGER_EXTENSION_TYPE, {
|
|
19
18
|
name: 'log',
|
|
20
19
|
serializer: LogPacket,
|
|
21
20
|
});
|
|
22
|
-
export const LOGGER_LISTEN_PACKET = PacketType.createJson<Identifier>(LOGGER_EXTENSION_TYPE, {
|
|
21
|
+
export const LOGGER_LISTEN_PACKET: PacketType<Identifier> = PacketType.createJson<Identifier>(LOGGER_EXTENSION_TYPE, {
|
|
23
22
|
name: 'listen',
|
|
24
|
-
serializer:
|
|
23
|
+
serializer: Identifier,
|
|
25
24
|
});
|
|
26
25
|
|
|
27
26
|
type LogListener = (message: LogMessage) => void;
|
|
28
27
|
export class LoggerExtension {
|
|
29
|
-
public readonly type = LOGGER_EXTENSION_TYPE;
|
|
28
|
+
public readonly type: ExtensionType<LoggerExtension> = LOGGER_EXTENSION_TYPE;
|
|
30
29
|
private readonly listeners: IdentifierMap<LogListener[]> = new IdentifierMap();
|
|
31
30
|
|
|
32
|
-
constructor(private readonly
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
constructor(private readonly omu: Omu) {
|
|
32
|
+
omu.network.registerPacket(LOGGER_LOG_PACKET, LOGGER_LISTEN_PACKET);
|
|
33
|
+
omu.network.addPacketHandler(LOGGER_LOG_PACKET, (packet) => {
|
|
35
34
|
const listener = this.listeners.get(packet.id);
|
|
36
35
|
if (listener) {
|
|
37
36
|
listener.forEach((it) => it(packet.message));
|
|
@@ -40,8 +39,8 @@ export class LoggerExtension {
|
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
public log(message: LogMessage): void {
|
|
43
|
-
const packet = new LogPacket(this.
|
|
44
|
-
this.
|
|
42
|
+
const packet = new LogPacket(this.omu.app.id, message);
|
|
43
|
+
this.omu.send(LOGGER_LOG_PACKET, packet);
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
public error(text: string): void {
|
|
@@ -62,8 +61,8 @@ export class LoggerExtension {
|
|
|
62
61
|
|
|
63
62
|
public listen(id: Identifier, listener: LogListener): Unlisten {
|
|
64
63
|
if (!this.listeners.has(id)) {
|
|
65
|
-
this.
|
|
66
|
-
this.
|
|
64
|
+
this.omu.onReady(() => {
|
|
65
|
+
this.omu.send(LOGGER_LISTEN_PACKET, id);
|
|
67
66
|
});
|
|
68
67
|
}
|
|
69
68
|
const list = this.listeners.get(id) ?? [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Identifier } from '../../identifier';
|
|
2
|
+
import { ByteReader, ByteWriter } from '../../serialize';
|
|
3
3
|
|
|
4
4
|
export enum LogType {
|
|
5
5
|
ERROR = 'error',
|
|
@@ -28,7 +28,7 @@ export class LogPacket {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
public static deserialize(item: Uint8Array): LogPacket {
|
|
31
|
-
const reader =
|
|
31
|
+
const reader = ByteReader.fromUint8Array(item);
|
|
32
32
|
const id = reader.readString();
|
|
33
33
|
const type = reader.readString() as LogType;
|
|
34
34
|
const text = reader.readString();
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Identifier, IdentifierMap, IdentifierSet } from '../../identifier.js';
|
|
1
|
+
import { Identifier, IdentifierMap, IdentifierSet, IntoId } from '../../identifier';
|
|
3
2
|
import { PacketType } from '../../network/packet/packet.js';
|
|
4
|
-
import {
|
|
3
|
+
import { Omu } from '../../omu';
|
|
4
|
+
import { Serializer } from '../../serialize';
|
|
5
5
|
import { EndpointType } from '../endpoint/endpoint.js';
|
|
6
6
|
import { ExtensionType } from '../extension.js';
|
|
7
7
|
|
|
8
8
|
import { PermissionType } from './permission.js';
|
|
9
9
|
|
|
10
|
-
export const PERMISSION_EXTENSION_TYPE = new ExtensionType(
|
|
10
|
+
export const PERMISSION_EXTENSION_TYPE: ExtensionType<PermissionExtension> = new ExtensionType(
|
|
11
11
|
'permission',
|
|
12
12
|
(client) => new PermissionExtension(client),
|
|
13
13
|
);
|
|
@@ -15,54 +15,57 @@ const PERMISSION_REGISTER_PACKET = PacketType.createJson<PermissionType[]>(
|
|
|
15
15
|
PERMISSION_EXTENSION_TYPE,
|
|
16
16
|
{
|
|
17
17
|
name: 'register',
|
|
18
|
-
serializer: Serializer.
|
|
18
|
+
serializer: Serializer.of(PermissionType).toArray(),
|
|
19
19
|
},
|
|
20
20
|
);
|
|
21
21
|
const PERMISSION_REQUIRE_PACKET = PacketType.createJson<Identifier[]>(PERMISSION_EXTENSION_TYPE, {
|
|
22
22
|
name: 'require',
|
|
23
|
-
serializer: Serializer.
|
|
23
|
+
serializer: Serializer.of(Identifier).toArray(),
|
|
24
24
|
});
|
|
25
25
|
const PERMISSION_REQUEST_ENDPOINT = EndpointType.createJson<Identifier[], void>(
|
|
26
26
|
PERMISSION_EXTENSION_TYPE,
|
|
27
27
|
{
|
|
28
28
|
name: 'request',
|
|
29
|
-
requestSerializer: Serializer.
|
|
29
|
+
requestSerializer: Serializer.of(Identifier).toArray(),
|
|
30
30
|
},
|
|
31
31
|
);
|
|
32
32
|
const PERMISSION_GRANT_PACKET = PacketType.createJson<PermissionType[]>(PERMISSION_EXTENSION_TYPE, {
|
|
33
33
|
name: 'grant',
|
|
34
|
-
serializer: Serializer.
|
|
34
|
+
serializer: Serializer.of(PermissionType).toArray(),
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
export class PermissionExtension {
|
|
38
|
-
public readonly type = PERMISSION_EXTENSION_TYPE;
|
|
38
|
+
public readonly type: ExtensionType<PermissionExtension> = PERMISSION_EXTENSION_TYPE;
|
|
39
39
|
private permissions = new IdentifierMap<PermissionType>();
|
|
40
40
|
private readonly registeredPermissions = new IdentifierMap<PermissionType>();
|
|
41
41
|
private readonly requiredPermissions = new IdentifierSet();
|
|
42
42
|
|
|
43
|
-
constructor(private readonly
|
|
44
|
-
|
|
43
|
+
constructor(private readonly omu: Omu) {
|
|
44
|
+
omu.network.registerPacket(
|
|
45
45
|
PERMISSION_REGISTER_PACKET,
|
|
46
46
|
PERMISSION_REQUIRE_PACKET,
|
|
47
47
|
PERMISSION_GRANT_PACKET,
|
|
48
48
|
);
|
|
49
|
-
|
|
49
|
+
omu.network.addPacketHandler(PERMISSION_GRANT_PACKET, (permissions) => {
|
|
50
50
|
for (const permission of permissions) {
|
|
51
51
|
this.permissions.set(permission.id, permission);
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
|
-
|
|
54
|
+
omu.network.addTask(() => this.onTask());
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
private onTask(): void {
|
|
58
|
+
if (this.omu.app.type === 'remote') {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
58
61
|
if (this.registeredPermissions.size > 0) {
|
|
59
|
-
this.
|
|
62
|
+
this.omu.send(
|
|
60
63
|
PERMISSION_REGISTER_PACKET,
|
|
61
64
|
Array.from(this.registeredPermissions.values()),
|
|
62
65
|
);
|
|
63
66
|
}
|
|
64
67
|
if (this.requiredPermissions.size > 0) {
|
|
65
|
-
this.
|
|
68
|
+
this.omu.send(
|
|
66
69
|
PERMISSION_REQUIRE_PACKET,
|
|
67
70
|
Array.from(this.requiredPermissions.values()),
|
|
68
71
|
);
|
|
@@ -70,18 +73,16 @@ export class PermissionExtension {
|
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
public register(permission: PermissionType): void {
|
|
73
|
-
if (this.
|
|
74
|
-
this.
|
|
76
|
+
if (this.omu.running) {
|
|
77
|
+
this.omu.send(PERMISSION_REGISTER_PACKET, [permission]);
|
|
75
78
|
}
|
|
76
79
|
this.registeredPermissions.set(permission.id, permission);
|
|
77
80
|
}
|
|
78
81
|
|
|
79
|
-
public require(...permissionIds:
|
|
80
|
-
const ids
|
|
81
|
-
typeof id === 'string' ? Identifier.fromKey(id) : id,
|
|
82
|
-
);
|
|
82
|
+
public require(...permissionIds: IntoId[]): void {
|
|
83
|
+
const ids = permissionIds.map(Identifier.from);
|
|
83
84
|
const missing = ids.filter((id) => !this.permissions.has(id));
|
|
84
|
-
if (this.
|
|
85
|
+
if (this.omu.running) {
|
|
85
86
|
if (missing.length > 0) {
|
|
86
87
|
throw new Error('Permissions must be registered before the client starts');
|
|
87
88
|
}
|
|
@@ -93,7 +94,7 @@ export class PermissionExtension {
|
|
|
93
94
|
}
|
|
94
95
|
|
|
95
96
|
public async request(...permissionIds: Identifier[]): Promise<void> {
|
|
96
|
-
await this.
|
|
97
|
+
await this.omu.endpoints.call(PERMISSION_REQUEST_ENDPOINT, permissionIds);
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
public has(permissionIdentifier: Identifier): boolean {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Identifier } from '../../identifier
|
|
1
|
+
import { Identifier, IntoId } from '../../identifier';
|
|
2
2
|
import type { LocalizedText } from '../../localization/localization.js';
|
|
3
|
-
import type { Model } from '../../model.js';
|
|
4
3
|
|
|
5
4
|
export type PermissionLevel = 'low' | 'medium' | 'high';
|
|
6
5
|
|
|
@@ -15,7 +14,7 @@ export type PermissionTypeJson = {
|
|
|
15
14
|
metadata: PermissionMetadata;
|
|
16
15
|
};
|
|
17
16
|
|
|
18
|
-
export class PermissionType
|
|
17
|
+
export class PermissionType {
|
|
19
18
|
public readonly id: Identifier;
|
|
20
19
|
public readonly metadata: PermissionMetadata;
|
|
21
20
|
|
|
@@ -25,29 +24,27 @@ export class PermissionType implements Model<PermissionTypeJson> {
|
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
public static create(
|
|
28
|
-
identifier:
|
|
27
|
+
identifier: IntoId,
|
|
29
28
|
{
|
|
30
|
-
name,
|
|
31
29
|
metadata,
|
|
32
30
|
}: {
|
|
33
|
-
name: string;
|
|
34
31
|
metadata: PermissionMetadata;
|
|
35
32
|
},
|
|
36
33
|
): PermissionType {
|
|
37
34
|
return new PermissionType({
|
|
38
|
-
id:
|
|
35
|
+
id: Identifier.from(identifier),
|
|
39
36
|
metadata: metadata,
|
|
40
37
|
});
|
|
41
38
|
}
|
|
42
39
|
|
|
43
|
-
public
|
|
40
|
+
public static serialize(data: PermissionType): PermissionTypeJson {
|
|
44
41
|
return {
|
|
45
|
-
id:
|
|
46
|
-
metadata:
|
|
42
|
+
id: data.id.key(),
|
|
43
|
+
metadata: data.metadata,
|
|
47
44
|
};
|
|
48
45
|
}
|
|
49
46
|
|
|
50
|
-
public static
|
|
47
|
+
public static deserialize(json: PermissionTypeJson): PermissionType {
|
|
51
48
|
return new PermissionType({
|
|
52
49
|
id: Identifier.fromKey(json.id),
|
|
53
50
|
metadata: json.metadata,
|
|
@@ -1,37 +1,38 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Identifier } from '../../identifier';
|
|
2
2
|
import { PacketType } from '../../network/packet/packet.js';
|
|
3
|
+
import { Omu } from '../../omu';
|
|
3
4
|
import { EndpointType } from '../endpoint/endpoint.js';
|
|
4
5
|
import { ExtensionType } from '../extension.js';
|
|
5
6
|
import { Table, TableType } from '../table/table.js';
|
|
6
7
|
|
|
7
|
-
export const PLUGIN_EXTENSION_TYPE = new ExtensionType(
|
|
8
|
+
export const PLUGIN_EXTENSION_TYPE: ExtensionType<PluginExtension> = new ExtensionType(
|
|
8
9
|
'plugin',
|
|
9
|
-
(
|
|
10
|
+
(omu: Omu) => new PluginExtension(omu),
|
|
10
11
|
);
|
|
11
12
|
|
|
12
13
|
export class PluginExtension {
|
|
13
|
-
public readonly type = PLUGIN_EXTENSION_TYPE;
|
|
14
|
+
public readonly type: ExtensionType<PluginExtension> = PLUGIN_EXTENSION_TYPE;
|
|
14
15
|
private readonly requiredPlugins: Map<string, string | null> = new Map();
|
|
15
16
|
|
|
16
|
-
constructor(private readonly
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
constructor(private readonly omu: Omu) {
|
|
18
|
+
omu.network.registerPacket(PLUGIN_REQUIRE_PACKET);
|
|
19
|
+
omu.network.addTask(() => this.onTask());
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
public getAllowedPackages(): Table<PluginPackageInfo> {
|
|
22
|
-
return this.
|
|
23
|
+
return this.omu.tables.get(PLUGIN_ALLOWED_PACKAGE_TABLE);
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
public reload(options: ReloadOptions): void {
|
|
26
|
-
this.
|
|
27
|
+
this.omu.endpoints.call(PLUGIN_RELOAD_ENDPOINT_TYPE, options);
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
private async onTask(): Promise<void> {
|
|
30
|
-
this.
|
|
31
|
+
this.omu.send(PLUGIN_REQUIRE_PACKET, Object.fromEntries(this.requiredPlugins));
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
public require(plugins: Record<string, string | null>): void {
|
|
34
|
-
if (this.
|
|
35
|
+
if (this.omu.running) {
|
|
35
36
|
throw new Error('Plugins must be required before the client starts');
|
|
36
37
|
}
|
|
37
38
|
for (const [key, value] of Object.entries(plugins)) {
|
|
@@ -55,11 +56,19 @@ export class PluginPackageInfo {
|
|
|
55
56
|
this.version = version;
|
|
56
57
|
}
|
|
57
58
|
|
|
58
|
-
public static
|
|
59
|
+
public static serialize(data: PluginPackageInfo): { package: string; version: string } {
|
|
60
|
+
return data.toJson();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
public static deserialize(data: { package: string; version: string }): PluginPackageInfo {
|
|
64
|
+
return PluginPackageInfo.fromJson(data);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public static fromJson(json: { package: string; version: string }): PluginPackageInfo {
|
|
59
68
|
return new PluginPackageInfo(json.package, json.version);
|
|
60
69
|
}
|
|
61
70
|
|
|
62
|
-
public toJson(): { package: string
|
|
71
|
+
public toJson(): { package: string; version: string } {
|
|
63
72
|
return { package: this.package, version: this.version };
|
|
64
73
|
}
|
|
65
74
|
|
|
@@ -68,19 +77,23 @@ export class PluginPackageInfo {
|
|
|
68
77
|
}
|
|
69
78
|
}
|
|
70
79
|
|
|
71
|
-
export const PLUGIN_READ_PACKAGE_PERMISSION_ID = PLUGIN_EXTENSION_TYPE.join('package', 'read')
|
|
72
|
-
export const PLUGIN_MANAGE_PACKAGE_PERMISSION_ID = PLUGIN_EXTENSION_TYPE.join('package', 'manage')
|
|
80
|
+
export const PLUGIN_READ_PACKAGE_PERMISSION_ID: Identifier = PLUGIN_EXTENSION_TYPE.join('package', 'read');
|
|
81
|
+
export const PLUGIN_MANAGE_PACKAGE_PERMISSION_ID: Identifier = PLUGIN_EXTENSION_TYPE.join('package', 'manage');
|
|
73
82
|
|
|
74
|
-
const PLUGIN_ALLOWED_PACKAGE_TABLE = TableType.
|
|
83
|
+
const PLUGIN_ALLOWED_PACKAGE_TABLE = TableType.createJson(PLUGIN_EXTENSION_TYPE, {
|
|
75
84
|
name: 'allowed_package',
|
|
76
|
-
|
|
85
|
+
serializer: PluginPackageInfo,
|
|
86
|
+
key: (item) => item.key(),
|
|
77
87
|
});
|
|
88
|
+
|
|
78
89
|
type ReloadOptions = {
|
|
79
|
-
packages: string[] | null
|
|
90
|
+
packages: string[] | null;
|
|
80
91
|
};
|
|
92
|
+
|
|
81
93
|
type ReloadResult = {
|
|
82
|
-
packages: Record<string, string
|
|
94
|
+
packages: Record<string, string>;
|
|
83
95
|
};
|
|
96
|
+
|
|
84
97
|
const PLUGIN_RELOAD_ENDPOINT_TYPE = EndpointType.createJson<ReloadOptions, ReloadResult>(PLUGIN_EXTENSION_TYPE, {
|
|
85
98
|
name: 'reload',
|
|
86
99
|
permissionId: PLUGIN_MANAGE_PACKAGE_PERMISSION_ID,
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { PacketType } from '../../network/packet
|
|
6
|
-
import {
|
|
1
|
+
import type { Unlisten } from '../../event';
|
|
2
|
+
import { EventEmitter } from '../../event';
|
|
3
|
+
import { Identifier, IdentifierMap } from '../../identifier';
|
|
4
|
+
import { Lock } from '../../lock.js';
|
|
5
|
+
import { PacketType } from '../../network/packet';
|
|
6
|
+
import { Omu } from '../../omu';
|
|
7
|
+
import { JsonType, Serializer } from '../../serialize';
|
|
7
8
|
import { EndpointType } from '../endpoint/endpoint.js';
|
|
8
9
|
import { type Extension, ExtensionType } from '../extension.js';
|
|
9
10
|
|
|
10
|
-
import {
|
|
11
|
+
import { RegisterPacket, RegistryPacket } from './packets.js';
|
|
11
12
|
import { type Registry, RegistryType } from './registry.js';
|
|
12
13
|
|
|
13
14
|
export class RegistryExtension implements Extension {
|
|
14
|
-
public readonly type = REGISTRY_EXTENSION_TYPE;
|
|
15
|
+
public readonly type: ExtensionType<RegistryExtension> = REGISTRY_EXTENSION_TYPE;
|
|
15
16
|
private readonly registries = new IdentifierMap<Registry<unknown>>();
|
|
16
17
|
|
|
17
|
-
constructor(private readonly
|
|
18
|
-
|
|
18
|
+
constructor(private readonly omu: Omu) {
|
|
19
|
+
omu.network.registerPacket(
|
|
19
20
|
REGISTRY_REGISTER_PACKET,
|
|
20
21
|
REGISTRY_UPDATE_PACKET,
|
|
21
22
|
REGISTRY_LISTEN_PACKET,
|
|
@@ -23,11 +24,10 @@ export class RegistryExtension implements Extension {
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
private createRegistry<T>(registryType: RegistryType<T>): Registry<T> {
|
|
26
|
-
this.client.permissions.require(REGISTRY_PERMISSION_ID);
|
|
27
27
|
if (this.registries.has(registryType.id)) {
|
|
28
28
|
throw new Error(`Registry with identifier '${registryType.id}' already exists`);
|
|
29
29
|
}
|
|
30
|
-
return new RegistryImpl(this.
|
|
30
|
+
return new RegistryImpl(this.omu, registryType);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
public get<T>(registryType: RegistryType<T>): Registry<T> {
|
|
@@ -40,15 +40,28 @@ export class RegistryExtension implements Extension {
|
|
|
40
40
|
return registry as Registry<T>;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
public
|
|
44
|
-
const identifier = this.
|
|
43
|
+
public json<T, D extends JsonType = JsonType>(name: string, options: { default: T; serializer?: Serializer<T, D> }): Registry<T> {
|
|
44
|
+
const identifier = this.omu.app.id.join(name);
|
|
45
|
+
if (this.registries.has(identifier)) {
|
|
46
|
+
throw new Error(`Registry with name '${name}' already exists`);
|
|
47
|
+
}
|
|
48
|
+
const tableType = RegistryType.createJson<T>(identifier, {
|
|
49
|
+
name,
|
|
50
|
+
defaultValue: options.default,
|
|
51
|
+
serializer: options.serializer,
|
|
52
|
+
});
|
|
53
|
+
return this.createRegistry(tableType);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public serialized<T>(name: string, options: { default: T; serializer: Serializer<T, Uint8Array> }): Registry<T> {
|
|
57
|
+
const identifier = this.omu.app.id.join(name);
|
|
45
58
|
if (this.registries.has(identifier)) {
|
|
46
59
|
throw new Error(`Registry with name '${name}' already exists`);
|
|
47
60
|
}
|
|
48
61
|
const tableType = RegistryType.createSerialized<T>(identifier, {
|
|
49
62
|
name,
|
|
50
63
|
defaultValue: options.default,
|
|
51
|
-
serializer: options.serializer
|
|
64
|
+
serializer: options.serializer,
|
|
52
65
|
});
|
|
53
66
|
return this.createRegistry(tableType);
|
|
54
67
|
}
|
|
@@ -56,53 +69,72 @@ export class RegistryExtension implements Extension {
|
|
|
56
69
|
|
|
57
70
|
class RegistryImpl<T> implements Registry<T> {
|
|
58
71
|
private readonly eventEmitter: EventEmitter<[T]> = new EventEmitter();
|
|
72
|
+
private readonly lock: Lock = new Lock();
|
|
59
73
|
private listening = false;
|
|
60
74
|
public value: T;
|
|
61
75
|
|
|
62
76
|
constructor(
|
|
63
|
-
private readonly
|
|
77
|
+
private readonly omu: Omu,
|
|
64
78
|
public readonly type: RegistryType<T>,
|
|
65
79
|
) {
|
|
66
80
|
this.value = type.defaultValue;
|
|
67
|
-
|
|
81
|
+
omu.network.addPacketHandler(REGISTRY_UPDATE_PACKET, (packet) =>
|
|
68
82
|
this.handleUpdate(packet),
|
|
69
83
|
);
|
|
70
|
-
|
|
84
|
+
omu.network.addTask(() => this.onTask());
|
|
71
85
|
}
|
|
72
86
|
|
|
73
|
-
|
|
74
|
-
const result = await this.
|
|
87
|
+
async #get(): Promise<T> {
|
|
88
|
+
const result = await this.omu.endpoints.call(REGISTRY_GET_ENDPOINT, this.type.id);
|
|
75
89
|
if (result.value === null) {
|
|
76
90
|
return this.type.defaultValue;
|
|
77
91
|
}
|
|
78
92
|
return this.type.serializer.deserialize(result.value);
|
|
79
93
|
}
|
|
80
94
|
|
|
81
|
-
|
|
82
|
-
this.
|
|
95
|
+
async #set(value: T): Promise<void> {
|
|
96
|
+
this.omu.send(REGISTRY_UPDATE_PACKET, {
|
|
83
97
|
id: this.type.id,
|
|
84
98
|
value: this.type.serializer.serialize(value),
|
|
85
99
|
});
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
public async get(): Promise<T> {
|
|
103
|
+
const value = await this.lock.use(async () => this.#get());
|
|
104
|
+
this.eventEmitter.emit(value);
|
|
105
|
+
return value;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
public async set(value: T): Promise<void> {
|
|
109
|
+
await this.lock.use(async () => this.#set(value));
|
|
86
110
|
this.eventEmitter.emit(value);
|
|
87
111
|
}
|
|
88
112
|
|
|
89
113
|
public async update(fn: (value: T) => PromiseLike<T> | T): Promise<T> {
|
|
90
|
-
const value = await this.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
114
|
+
const value = await this.lock.use(async () => {
|
|
115
|
+
const value = await this.#get();
|
|
116
|
+
const newValue = await fn(value);
|
|
117
|
+
await this.#set(newValue);
|
|
118
|
+
return newValue;
|
|
119
|
+
});
|
|
120
|
+
this.eventEmitter.emit(value);
|
|
121
|
+
return value;
|
|
94
122
|
}
|
|
95
123
|
|
|
96
124
|
public async modify(fn: (value: T) => PromiseLike<T> | T): Promise<T> {
|
|
97
|
-
const value = await this.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
125
|
+
const value = await this.lock.use(async () => {
|
|
126
|
+
const value = await this.#get();
|
|
127
|
+
const newValue = await fn(value);
|
|
128
|
+
await this.#set(newValue);
|
|
129
|
+
return newValue;
|
|
130
|
+
});
|
|
131
|
+
this.eventEmitter.emit(value);
|
|
132
|
+
return value;
|
|
101
133
|
}
|
|
102
134
|
|
|
103
135
|
public listen(handler: (value: T) => Promise<void> | void): Unlisten {
|
|
104
|
-
if (!this.listening && this.
|
|
105
|
-
this.
|
|
136
|
+
if (!this.listening && this.omu.ready) {
|
|
137
|
+
this.omu.send(REGISTRY_LISTEN_PACKET, this.type.id);
|
|
106
138
|
}
|
|
107
139
|
this.listening = true;
|
|
108
140
|
return this.eventEmitter.listen(handler);
|
|
@@ -120,30 +152,27 @@ class RegistryImpl<T> implements Registry<T> {
|
|
|
120
152
|
|
|
121
153
|
private onTask(): void {
|
|
122
154
|
if (this.listening) {
|
|
123
|
-
this.
|
|
155
|
+
this.omu.send(REGISTRY_LISTEN_PACKET, this.type.id);
|
|
124
156
|
}
|
|
125
|
-
if (!this.type.id.isSubpathOf(this.
|
|
157
|
+
if (!this.type.id.isSubpathOf(this.omu.app.id)) {
|
|
126
158
|
return;
|
|
127
159
|
}
|
|
128
|
-
this.
|
|
160
|
+
this.omu.send(REGISTRY_REGISTER_PACKET, {
|
|
129
161
|
id: this.type.id,
|
|
130
162
|
permissions: this.type.permissions,
|
|
131
163
|
});
|
|
132
164
|
}
|
|
133
165
|
}
|
|
134
166
|
|
|
135
|
-
export const REGISTRY_EXTENSION_TYPE = new ExtensionType(
|
|
167
|
+
export const REGISTRY_EXTENSION_TYPE: ExtensionType<RegistryExtension> = new ExtensionType(
|
|
136
168
|
'registry',
|
|
137
|
-
(
|
|
138
|
-
);
|
|
139
|
-
export const REGISTRY_PERMISSION_ID = REGISTRY_EXTENSION_TYPE.join('permission');
|
|
140
|
-
const REGISTRY_REGISTER_PACKET = PacketType.createSerialized<RegistryRegisterPacket>(
|
|
141
|
-
REGISTRY_EXTENSION_TYPE,
|
|
142
|
-
{
|
|
143
|
-
name: 'register',
|
|
144
|
-
serializer: RegistryRegisterPacket,
|
|
145
|
-
},
|
|
169
|
+
(omu: Omu) => new RegistryExtension(omu),
|
|
146
170
|
);
|
|
171
|
+
export const REGISTRY_PERMISSION_ID: Identifier = REGISTRY_EXTENSION_TYPE.join('permission');
|
|
172
|
+
const REGISTRY_REGISTER_PACKET = PacketType.createJson<RegisterPacket>(REGISTRY_EXTENSION_TYPE, {
|
|
173
|
+
name: 'register',
|
|
174
|
+
serializer: RegisterPacket,
|
|
175
|
+
});
|
|
147
176
|
const REGISTRY_UPDATE_PACKET = PacketType.createSerialized<RegistryPacket>(
|
|
148
177
|
REGISTRY_EXTENSION_TYPE,
|
|
149
178
|
{
|
|
@@ -153,13 +182,13 @@ const REGISTRY_UPDATE_PACKET = PacketType.createSerialized<RegistryPacket>(
|
|
|
153
182
|
);
|
|
154
183
|
const REGISTRY_LISTEN_PACKET = PacketType.createJson<Identifier>(REGISTRY_EXTENSION_TYPE, {
|
|
155
184
|
name: 'listen',
|
|
156
|
-
serializer:
|
|
185
|
+
serializer: Identifier,
|
|
157
186
|
});
|
|
158
187
|
const REGISTRY_GET_ENDPOINT = EndpointType.createSerialized<Identifier, RegistryPacket>(
|
|
159
188
|
REGISTRY_EXTENSION_TYPE,
|
|
160
189
|
{
|
|
161
190
|
name: 'get',
|
|
162
|
-
requestSerializer: Serializer.
|
|
191
|
+
requestSerializer: Serializer.of(Identifier).toJson(),
|
|
163
192
|
responseSerializer: RegistryPacket,
|
|
164
193
|
permissionId: REGISTRY_PERMISSION_ID,
|
|
165
194
|
},
|