@omujs/omu 0.9.49 → 0.10.0
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/dist/address.js +1 -0
- package/dist/address.js.map +7 -0
- package/dist/api/asset/extension.js +2 -0
- package/dist/api/asset/extension.js.map +7 -0
- package/dist/api/asset/index.js +2 -0
- package/dist/api/asset/index.js.map +7 -0
- package/dist/{dts/api → api}/dashboard/extension.d.ts +9 -5
- package/dist/api/dashboard/extension.js +2 -0
- package/dist/api/dashboard/extension.js.map +7 -0
- package/dist/{dts/api → api}/dashboard/handler.d.ts +3 -3
- package/dist/api/dashboard/handler.js +1 -0
- package/dist/api/dashboard/handler.js.map +7 -0
- package/dist/api/dashboard/index.d.ts +3 -0
- package/dist/api/dashboard/index.js +2 -0
- package/dist/api/dashboard/index.js.map +7 -0
- package/dist/{dts/api → api}/dashboard/packets.d.ts +2 -12
- package/dist/api/dashboard/packets.js +2 -0
- package/dist/api/dashboard/packets.js.map +7 -0
- package/dist/{dts/api → api}/endpoint/endpoint.d.ts +2 -2
- package/dist/api/endpoint/endpoint.js +2 -0
- package/dist/api/endpoint/endpoint.js.map +7 -0
- package/dist/api/endpoint/extension.js +2 -0
- package/dist/api/endpoint/extension.js.map +7 -0
- package/dist/api/endpoint/index.js +2 -0
- package/dist/api/endpoint/index.js.map +7 -0
- package/dist/api/endpoint/packets.js +2 -0
- package/dist/api/endpoint/packets.js.map +7 -0
- package/dist/api/extension-registry.js +2 -0
- package/dist/api/extension-registry.js.map +7 -0
- package/dist/api/extension.js +2 -0
- package/dist/api/extension.js.map +7 -0
- package/dist/api/http/extension.js +2 -0
- package/dist/api/http/extension.js.map +7 -0
- package/dist/api/http/http.js +2 -0
- package/dist/api/http/http.js.map +7 -0
- package/dist/api/http/index.js +2 -0
- package/dist/api/http/index.js.map +7 -0
- package/dist/api/http/websocket.js +2 -0
- package/dist/api/http/websocket.js.map +7 -0
- package/dist/api/i18n/extension.js +2 -0
- package/dist/api/i18n/extension.js.map +7 -0
- package/dist/api/i18n/index.js +2 -0
- package/dist/api/i18n/index.js.map +7 -0
- package/dist/api/index.d.ts +2 -0
- package/dist/api/index.js +2 -0
- package/dist/api/index.js.map +7 -0
- package/dist/api/logger/extension.js +2 -0
- package/dist/api/logger/extension.js.map +7 -0
- package/dist/api/logger/index.js +2 -0
- package/dist/api/logger/index.js.map +7 -0
- package/dist/api/logger/packets.js +2 -0
- package/dist/api/logger/packets.js.map +7 -0
- package/dist/api/permission/extension.js +2 -0
- package/dist/api/permission/extension.js.map +7 -0
- package/dist/api/permission/index.js +2 -0
- package/dist/api/permission/index.js.map +7 -0
- package/dist/{dts/api → api}/permission/permission.d.ts +1 -1
- package/dist/api/permission/permission.js +2 -0
- package/dist/api/permission/permission.js.map +7 -0
- package/dist/api/plugin/extension.js +2 -0
- package/dist/api/plugin/extension.js.map +7 -0
- package/dist/api/plugin/index.js +2 -0
- package/dist/api/plugin/index.js.map +7 -0
- package/dist/api/plugin/package-info.js +1 -0
- package/dist/api/plugin/package-info.js.map +7 -0
- package/dist/{dts/api → api}/registry/extension.d.ts +1 -1
- package/dist/api/registry/extension.js +2 -0
- package/dist/api/registry/extension.js.map +7 -0
- package/dist/api/registry/index.js +2 -0
- package/dist/api/registry/index.js.map +7 -0
- package/dist/api/registry/packets.js +2 -0
- package/dist/api/registry/packets.js.map +7 -0
- package/dist/{dts/api → api}/registry/registry.d.ts +2 -2
- package/dist/api/registry/registry.js +2 -0
- package/dist/api/registry/registry.js.map +7 -0
- package/dist/api/server/extension.js +2 -0
- package/dist/api/server/extension.js.map +7 -0
- package/dist/api/server/index.js +2 -0
- package/dist/api/server/index.js.map +7 -0
- package/dist/api/session/extension.js +2 -0
- package/dist/api/session/extension.js.map +7 -0
- package/dist/api/session/index.js +2 -0
- package/dist/api/session/index.js.map +7 -0
- package/dist/api/signal/extension.js +2 -0
- package/dist/api/signal/extension.js.map +7 -0
- package/dist/api/signal/index.d.ts +1 -0
- package/dist/api/signal/index.js +2 -0
- package/dist/api/signal/index.js.map +7 -0
- package/dist/api/signal/packets.js +2 -0
- package/dist/api/signal/packets.js.map +7 -0
- package/dist/{dts/api → api}/signal/signal.d.ts +2 -2
- package/dist/api/signal/signal.js +2 -0
- package/dist/api/signal/signal.js.map +7 -0
- package/dist/api/table/extension.js +2 -0
- package/dist/api/table/extension.js.map +7 -0
- package/dist/api/table/index.js +2 -0
- package/dist/api/table/index.js.map +7 -0
- package/dist/api/table/packets.js +2 -0
- package/dist/api/table/packets.js.map +7 -0
- package/dist/{dts/api → api}/table/table.d.ts +3 -3
- package/dist/api/table/table.js +2 -0
- package/dist/api/table/table.js.map +7 -0
- package/dist/app.js +2 -0
- package/dist/app.js.map +7 -0
- package/dist/const.js +2 -0
- package/dist/const.js.map +7 -0
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +7 -0
- package/dist/event/index.js +2 -0
- package/dist/event/index.js.map +7 -0
- package/dist/helper.js +2 -0
- package/dist/helper.js.map +7 -0
- package/dist/identifier.js +2 -0
- package/dist/identifier.js.map +7 -0
- package/dist/{dts/index.d.ts → index.d.ts} +3 -3
- package/dist/index.js +2 -0
- package/dist/index.js.map +7 -0
- package/dist/localization/index.js +2 -0
- package/dist/localization/index.js.map +7 -0
- package/dist/localization/locale.js +2 -0
- package/dist/localization/locale.js.map +7 -0
- package/dist/localization/localization.js +1 -0
- package/dist/localization/localization.js.map +7 -0
- package/dist/lock.js +2 -0
- package/dist/lock.js.map +7 -0
- package/dist/network/connection.js +2 -0
- package/dist/network/connection.js.map +7 -0
- package/dist/network/encryption.js +2 -0
- package/dist/network/encryption.js.map +7 -0
- package/dist/network/frame-transport.js +2 -0
- package/dist/network/frame-transport.js.map +7 -0
- package/dist/network/index.js +2 -0
- package/dist/network/index.js.map +7 -0
- package/dist/network/network.js +2 -0
- package/dist/network/network.js.map +7 -0
- package/dist/network/packet/index.js +2 -0
- package/dist/network/packet/index.js.map +7 -0
- package/dist/network/packet/packet-types.js +2 -0
- package/dist/network/packet/packet-types.js.map +7 -0
- package/dist/{dts/network → network}/packet/packet.d.ts +2 -2
- package/dist/network/packet/packet.js +2 -0
- package/dist/network/packet/packet.js.map +7 -0
- package/dist/network/websocket-transport.js +2 -0
- package/dist/network/websocket-transport.js.map +7 -0
- package/dist/omu.js +2 -0
- package/dist/omu.js.map +7 -0
- package/dist/result.js +2 -0
- package/dist/result.js.map +7 -0
- package/dist/{dts/serialize → serialize}/bytebuffer.d.ts +1 -1
- package/dist/serialize/bytebuffer.js +2 -0
- package/dist/serialize/bytebuffer.js.map +7 -0
- package/dist/serialize/index.d.ts +2 -0
- package/dist/serialize/index.js +2 -0
- package/dist/serialize/index.js.map +7 -0
- package/dist/serialize/serializer.js +2 -0
- package/dist/serialize/serializer.js.map +7 -0
- package/dist/token.js +2 -0
- package/dist/token.js.map +7 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +7 -0
- package/package.json +9 -9
- package/dist/dts/api/dashboard/index.d.ts +0 -3
- package/dist/dts/api/index.d.ts +0 -2
- package/dist/dts/api/signal/index.d.ts +0 -1
- package/dist/dts/serialize/index.d.ts +0 -2
- package/dist/dts/version.d.ts +0 -2
- package/dist/esm/address.js +0 -4
- package/dist/esm/api/asset/extension.js +0 -911
- package/dist/esm/api/asset/index.js +0 -909
- package/dist/esm/api/dashboard/extension.js +0 -1362
- package/dist/esm/api/dashboard/handler.js +0 -4
- package/dist/esm/api/dashboard/index.js +0 -1361
- package/dist/esm/api/dashboard/packets.js +0 -419
- package/dist/esm/api/endpoint/endpoint.js +0 -383
- package/dist/esm/api/endpoint/extension.js +0 -1096
- package/dist/esm/api/endpoint/index.js +0 -383
- package/dist/esm/api/endpoint/packets.js +0 -799
- package/dist/esm/api/extension-registry.js +0 -23
- package/dist/esm/api/extension.js +0 -278
- package/dist/esm/api/http/extension.js +0 -1420
- package/dist/esm/api/http/http.js +0 -448
- package/dist/esm/api/http/index.js +0 -1419
- package/dist/esm/api/http/websocket.js +0 -220
- package/dist/esm/api/i18n/extension.js +0 -1339
- package/dist/esm/api/i18n/index.js +0 -1337
- package/dist/esm/api/index.js +0 -295
- package/dist/esm/api/logger/extension.js +0 -856
- package/dist/esm/api/logger/index.js +0 -852
- package/dist/esm/api/logger/packets.js +0 -673
- package/dist/esm/api/permission/extension.js +0 -535
- package/dist/esm/api/permission/index.js +0 -294
- package/dist/esm/api/permission/permission.js +0 -294
- package/dist/esm/api/plugin/extension.js +0 -531
- package/dist/esm/api/plugin/index.js +0 -529
- package/dist/esm/api/plugin/package-info.js +0 -4
- package/dist/esm/api/registry/extension.js +0 -1286
- package/dist/esm/api/registry/index.js +0 -1285
- package/dist/esm/api/registry/packets.js +0 -694
- package/dist/esm/api/registry/registry.js +0 -383
- package/dist/esm/api/server/extension.js +0 -2140
- package/dist/esm/api/server/index.js +0 -2118
- package/dist/esm/api/session/extension.js +0 -2235
- package/dist/esm/api/session/index.js +0 -2235
- package/dist/esm/api/signal/extension.js +0 -1031
- package/dist/esm/api/signal/index.js +0 -379
- package/dist/esm/api/signal/packets.js +0 -690
- package/dist/esm/api/signal/signal.js +0 -379
- package/dist/esm/api/table/extension.js +0 -1553
- package/dist/esm/api/table/index.js +0 -1552
- package/dist/esm/api/table/packets.js +0 -904
- package/dist/esm/api/table/table.js +0 -383
- package/dist/esm/app.js +0 -264
- package/dist/esm/const.js +0 -11
- package/dist/esm/errors.js +0 -548
- package/dist/esm/event/index.js +0 -22
- package/dist/esm/helper.js +0 -15
- package/dist/esm/identifier.js +0 -266
- package/dist/esm/index.js +0 -5186
- package/dist/esm/localization/index.js +0 -742
- package/dist/esm/localization/locale.js +0 -742
- package/dist/esm/localization/localization.js +0 -4
- package/dist/esm/lock.js +0 -46
- package/dist/esm/network/connection.js +0 -293
- package/dist/esm/network/encryption.js +0 -986
- package/dist/esm/network/frame-transport.js +0 -531
- package/dist/esm/network/index.js +0 -1627
- package/dist/esm/network/network.js +0 -1368
- package/dist/esm/network/packet/index.js +0 -485
- package/dist/esm/network/packet/packet-types.js +0 -486
- package/dist/esm/network/packet/packet.js +0 -126
- package/dist/esm/network/websocket-transport.js +0 -493
- package/dist/esm/omu.js +0 -4945
- package/dist/esm/result.js +0 -68
- package/dist/esm/serialize/bytebuffer.js +0 -384
- package/dist/esm/serialize/index.js +0 -471
- package/dist/esm/serialize/serializer.js +0 -97
- package/dist/esm/token.js +0 -42
- package/dist/esm/version.js +0 -11
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{dts/address.d.ts → address.d.ts} +0 -0
- /package/dist/{dts/api → api}/asset/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/asset/index.d.ts +0 -0
- /package/dist/{dts/api → api}/endpoint/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/endpoint/index.d.ts +0 -0
- /package/dist/{dts/api → api}/endpoint/packets.d.ts +0 -0
- /package/dist/{dts/api → api}/extension-registry.d.ts +0 -0
- /package/dist/{dts/api → api}/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/http/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/http/http.d.ts +0 -0
- /package/dist/{dts/api → api}/http/index.d.ts +0 -0
- /package/dist/{dts/api → api}/http/websocket.d.ts +0 -0
- /package/dist/{dts/api → api}/i18n/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/i18n/index.d.ts +0 -0
- /package/dist/{dts/api → api}/logger/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/logger/index.d.ts +0 -0
- /package/dist/{dts/api → api}/logger/packets.d.ts +0 -0
- /package/dist/{dts/api → api}/permission/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/permission/index.d.ts +0 -0
- /package/dist/{dts/api → api}/plugin/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/plugin/index.d.ts +0 -0
- /package/dist/{dts/api → api}/plugin/package-info.d.ts +0 -0
- /package/dist/{dts/api → api}/registry/index.d.ts +0 -0
- /package/dist/{dts/api → api}/registry/packets.d.ts +0 -0
- /package/dist/{dts/api → api}/server/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/server/index.d.ts +0 -0
- /package/dist/{dts/api → api}/session/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/session/index.d.ts +0 -0
- /package/dist/{dts/api → api}/signal/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/signal/packets.d.ts +0 -0
- /package/dist/{dts/api → api}/table/extension.d.ts +0 -0
- /package/dist/{dts/api → api}/table/index.d.ts +0 -0
- /package/dist/{dts/api → api}/table/packets.d.ts +0 -0
- /package/dist/{dts/app.d.ts → app.d.ts} +0 -0
- /package/dist/{dts/const.d.ts → const.d.ts} +0 -0
- /package/dist/{dts/errors.d.ts → errors.d.ts} +0 -0
- /package/dist/{dts/event → event}/index.d.ts +0 -0
- /package/dist/{dts/helper.d.ts → helper.d.ts} +0 -0
- /package/dist/{dts/identifier.d.ts → identifier.d.ts} +0 -0
- /package/dist/{dts/localization → localization}/index.d.ts +0 -0
- /package/dist/{dts/localization → localization}/locale.d.ts +0 -0
- /package/dist/{dts/localization → localization}/localization.d.ts +0 -0
- /package/dist/{dts/lock.d.ts → lock.d.ts} +0 -0
- /package/dist/{dts/network → network}/connection.d.ts +0 -0
- /package/dist/{dts/network → network}/encryption.d.ts +0 -0
- /package/dist/{dts/network → network}/frame-transport.d.ts +0 -0
- /package/dist/{dts/network → network}/index.d.ts +0 -0
- /package/dist/{dts/network → network}/network.d.ts +0 -0
- /package/dist/{dts/network → network}/packet/index.d.ts +0 -0
- /package/dist/{dts/network → network}/packet/packet-types.d.ts +0 -0
- /package/dist/{dts/network → network}/websocket-transport.d.ts +0 -0
- /package/dist/{dts/omu.d.ts → omu.d.ts} +0 -0
- /package/dist/{dts/result.d.ts → result.d.ts} +0 -0
- /package/dist/{dts/serialize → serialize}/serializer.d.ts +0 -0
- /package/dist/{dts/token.d.ts → token.d.ts} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Identifier as c,IdentifierMap as T}from"../../identifier";import{PacketType as a}from"../../network/packet";import{ExtensionType as y}from"../extension.js";import{SignalPacket as S,SignalRegisterPacket as g}from"./packets.js";import{SignalType as l}from"./signal.js";const n=new y("signal",s=>new m(s)),p=a.createJson(n,{name:"register",serializer:g}),d=a.createJson(n,{name:"listen",serializer:c}),o=a.createSerialized(n,{name:"notify",serializer:S});class m{constructor(e){this.omu=e;e.network.registerPacket(p,d,o)}type=n;signals=new T;createSignal(e){if(this.signals.has(e.id))throw new Error(`Signal for key ${e.id} already created`);return new h(this.omu,e)}json(e,t){const i=this.omu.app.id.base.join(e),r=l.createJson(i,{name:e,serializer:t?.serializer});return this.createSignal(r)}serialized(e,t){const i=this.omu.app.id.base.join(e),r=l.createSerialized(i,{name:e,serializer:t?.serializer});return this.createSignal(r)}get(e){return this.createSignal(e)}}class h{constructor(e,t){this.omu=e;this.type=t;e.network.addPacketHandler(o,i=>this.handleBroadcast(i)),e.network.addTask(()=>this.onTask())}listeners=[];listening=!1;notify(e){const t=this.type.serializer.serialize(e);this.omu.send(o,{id:this.type.id,body:t});for(const i of this.listeners)i(e)}listen(e){return this.listening||(this.omu.onReady(()=>{this.omu.send(d,this.type.id)}),this.listening=!0),this.listeners.push(e),()=>{this.listeners.splice(this.listeners.indexOf(e),1)}}handleBroadcast(e){if(!e.id.isEqual(this.type.id))return;const t=this.type.serializer.deserialize(e.body);for(const i of this.listeners)i(t)}onTask(){this.type.id.isSubpathOf(this.omu.app.id)&&this.omu.send(p,{id:this.type.id,permissions:this.type.permissions})}}export{n as SIGNAL_EXTENSION_TYPE,m as SignalExtension};
|
|
2
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/api/signal/extension.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Unlisten } from '../../event';\nimport { Identifier, IdentifierMap } from '../../identifier';\nimport { PacketType } from '../../network/packet';\nimport { Omu } from '../../omu';\nimport { JsonType, Serializable } from '../../serialize';\nimport { ExtensionType, type Extension } from '../extension.js';\nimport { SignalPacket, SignalRegisterPacket } from './packets.js';\nimport { SignalType, type Signal } from './signal.js';\n\nexport const SIGNAL_EXTENSION_TYPE: ExtensionType<SignalExtension> = new ExtensionType(\n 'signal',\n (omu: Omu) => new SignalExtension(omu),\n);\n\nconst SIGNAL_REGISTER_PACKET = PacketType.createJson<SignalRegisterPacket>(SIGNAL_EXTENSION_TYPE, {\n name: 'register',\n serializer: SignalRegisterPacket,\n});\nconst SIGNAL_LISTEN_PACKET = PacketType.createJson<Identifier>(SIGNAL_EXTENSION_TYPE, {\n name: 'listen',\n serializer: Identifier,\n});\nconst SIGNAL_NOTIFY_PACKET = PacketType.createSerialized<SignalPacket>(SIGNAL_EXTENSION_TYPE, {\n name: 'notify',\n serializer: SignalPacket,\n});\n\nexport class SignalExtension implements Extension {\n public readonly type: ExtensionType<SignalExtension> = SIGNAL_EXTENSION_TYPE;\n private readonly signals = new IdentifierMap<SignalType<unknown>>();\n\n constructor(private readonly omu: Omu) {\n omu.network.registerPacket(\n SIGNAL_REGISTER_PACKET,\n SIGNAL_LISTEN_PACKET,\n SIGNAL_NOTIFY_PACKET,\n );\n }\n\n private createSignal<T>(signalType: SignalType<T>): Signal<T> {\n if (this.signals.has(signalType.id)) {\n throw new Error(`Signal for key ${signalType.id} already created`);\n }\n return new SignalImpl(this.omu, signalType);\n }\n\n public json<T, D extends JsonType = JsonType>(name: string, options?: { serializer?: Serializable<T, D> }): Signal<T> {\n const id = this.omu.app.id.base.join(name);\n const type = SignalType.createJson<T>(id, {\n name,\n serializer: options?.serializer,\n });\n return this.createSignal(type);\n }\n\n public serialized<T>(name: string, options: { serializer: Serializable<T, Uint8Array> }): Signal<T> {\n const id = this.omu.app.id.base.join(name);\n const type = SignalType.createSerialized<T>(id, {\n name,\n serializer: options?.serializer,\n });\n return this.createSignal(type);\n }\n\n public get<T>(signalType: SignalType<T>): Signal<T> {\n return this.createSignal(signalType);\n }\n}\n\nclass SignalImpl<T> implements Signal<T> {\n private readonly listeners: ((value: T) => void)[] = [];\n private listening = false;\n\n constructor(\n private readonly omu: Omu,\n private readonly type: SignalType<T>,\n ) {\n omu.network.addPacketHandler(SIGNAL_NOTIFY_PACKET, (data) => this.handleBroadcast(data));\n omu.network.addTask(() => this.onTask());\n }\n\n public notify(body: T): void {\n const data = this.type.serializer.serialize(body);\n this.omu.send(SIGNAL_NOTIFY_PACKET, {\n id: this.type.id,\n body: data,\n });\n for (const listener of this.listeners) {\n listener(body);\n }\n }\n\n public listen(handler: (value: T) => void): Unlisten {\n if (!this.listening) {\n this.omu.onReady(() => {\n this.omu.send(SIGNAL_LISTEN_PACKET, this.type.id);\n });\n this.listening = true;\n }\n this.listeners.push(handler);\n return () => {\n this.listeners.splice(this.listeners.indexOf(handler), 1);\n };\n }\n\n private handleBroadcast(data: SignalPacket): void {\n if (!data.id.isEqual(this.type.id)) {\n return;\n }\n const body = this.type.serializer.deserialize(data.body);\n for (const listener of this.listeners) {\n listener(body);\n }\n }\n\n private onTask(): void {\n if (!this.type.id.isSubpathOf(this.omu.app.id)) {\n return;\n }\n this.omu.send(SIGNAL_REGISTER_PACKET, {\n id: this.type.id,\n permissions: this.type.permissions,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "AACA,OAAS,cAAAA,EAAY,iBAAAC,MAAqB,mBAC1C,OAAS,cAAAC,MAAkB,uBAG3B,OAAS,iBAAAC,MAAqC,kBAC9C,OAAS,gBAAAC,EAAc,wBAAAC,MAA4B,eACnD,OAAS,cAAAC,MAA+B,cAEjC,MAAMC,EAAwD,IAAIJ,EACrE,SACCK,GAAa,IAAIC,EAAgBD,CAAG,CACzC,EAEME,EAAyBR,EAAW,WAAiCK,EAAuB,CAC9F,KAAM,WACN,WAAYF,CAChB,CAAC,EACKM,EAAuBT,EAAW,WAAuBK,EAAuB,CAClF,KAAM,SACN,WAAYP,CAChB,CAAC,EACKY,EAAuBV,EAAW,iBAA+BK,EAAuB,CAC1F,KAAM,SACN,WAAYH,CAChB,CAAC,EAEM,MAAMK,CAAqC,CAI9C,YAA6BD,EAAU,CAAV,SAAAA,EACzBA,EAAI,QAAQ,eACRE,EACAC,EACAC,CACJ,CACJ,CATgB,KAAuCL,EACtC,QAAU,IAAIN,EAUvB,aAAgBY,EAAsC,CAC1D,GAAI,KAAK,QAAQ,IAAIA,EAAW,EAAE,EAC9B,MAAM,IAAI,MAAM,kBAAkBA,EAAW,EAAE,kBAAkB,EAErE,OAAO,IAAIC,EAAW,KAAK,IAAKD,CAAU,CAC9C,CAEO,KAAuCE,EAAcC,EAA0D,CAClH,MAAMC,EAAK,KAAK,IAAI,IAAI,GAAG,KAAK,KAAKF,CAAI,EACnCG,EAAOZ,EAAW,WAAcW,EAAI,CACtC,KAAAF,EACA,WAAYC,GAAS,UACzB,CAAC,EACD,OAAO,KAAK,aAAaE,CAAI,CACjC,CAEO,WAAcH,EAAcC,EAAiE,CAChG,MAAMC,EAAK,KAAK,IAAI,IAAI,GAAG,KAAK,KAAKF,CAAI,EACnCG,EAAOZ,EAAW,iBAAoBW,EAAI,CAC5C,KAAAF,EACA,WAAYC,GAAS,UACzB,CAAC,EACD,OAAO,KAAK,aAAaE,CAAI,CACjC,CAEO,IAAOL,EAAsC,CAChD,OAAO,KAAK,aAAaA,CAAU,CACvC,CACJ,CAEA,MAAMC,CAAmC,CAIrC,YACqBN,EACAU,EACnB,CAFmB,SAAAV,EACA,UAAAU,EAEjBV,EAAI,QAAQ,iBAAiBI,EAAuBO,GAAS,KAAK,gBAAgBA,CAAI,CAAC,EACvFX,EAAI,QAAQ,QAAQ,IAAM,KAAK,OAAO,CAAC,CAC3C,CATiB,UAAoC,CAAC,EAC9C,UAAY,GAUb,OAAOY,EAAe,CACzB,MAAMD,EAAO,KAAK,KAAK,WAAW,UAAUC,CAAI,EAChD,KAAK,IAAI,KAAKR,EAAsB,CAChC,GAAI,KAAK,KAAK,GACd,KAAMO,CACV,CAAC,EACD,UAAWE,KAAY,KAAK,UACxBA,EAASD,CAAI,CAErB,CAEO,OAAOE,EAAuC,CACjD,OAAK,KAAK,YACN,KAAK,IAAI,QAAQ,IAAM,CACnB,KAAK,IAAI,KAAKX,EAAsB,KAAK,KAAK,EAAE,CACpD,CAAC,EACD,KAAK,UAAY,IAErB,KAAK,UAAU,KAAKW,CAAO,EACpB,IAAM,CACT,KAAK,UAAU,OAAO,KAAK,UAAU,QAAQA,CAAO,EAAG,CAAC,CAC5D,CACJ,CAEQ,gBAAgBH,EAA0B,CAC9C,GAAI,CAACA,EAAK,GAAG,QAAQ,KAAK,KAAK,EAAE,EAC7B,OAEJ,MAAMC,EAAO,KAAK,KAAK,WAAW,YAAYD,EAAK,IAAI,EACvD,UAAWE,KAAY,KAAK,UACxBA,EAASD,CAAI,CAErB,CAEQ,QAAe,CACd,KAAK,KAAK,GAAG,YAAY,KAAK,IAAI,IAAI,EAAE,GAG7C,KAAK,IAAI,KAAKV,EAAwB,CAClC,GAAI,KAAK,KAAK,GACd,YAAa,KAAK,KAAK,WAC3B,CAAC,CACL,CACJ",
|
|
6
|
+
"names": ["Identifier", "IdentifierMap", "PacketType", "ExtensionType", "SignalPacket", "SignalRegisterPacket", "SignalType", "SIGNAL_EXTENSION_TYPE", "omu", "SignalExtension", "SIGNAL_REGISTER_PACKET", "SIGNAL_LISTEN_PACKET", "SIGNAL_NOTIFY_PACKET", "signalType", "SignalImpl", "name", "options", "id", "type", "data", "body", "listener", "handler"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SignalType, type Signal, type SignalPermissions } from './signal.js';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Identifier as r}from"../../identifier";import{ByteReader as a,ByteWriter as o}from"../../serialize";class n{constructor(i,e){this.id=i;this.body=e}static serialize(i){const e=new o;return e.writeString(i.id.key()),e.writeUint8Array(i.body),e.finish()}static deserialize(i){const e=a.fromUint8Array(i),t=r.fromKey(e.readString()),l=e.readUint8Array();return new n(t,l)}}class s{constructor(i,e){this.id=i;this.permissions=e}static serialize(i){const{permissions:e}=i;return{id:i.id.key(),permissions:{all:e.all?r.from(e.all).key():void 0,listen:e.listen?r.from(e.listen).key():void 0,send:e.send?r.from(e.send).key():void 0}}}static deserialize(i){const{permissions:e}=i;return new s(r.fromKey(i.id),{all:e.all?r.fromKey(e.all):void 0,listen:e.listen?r.fromKey(e.listen):void 0,send:e.send?r.fromKey(e.send):void 0})}}export{n as SignalPacket,s as SignalRegisterPacket};
|
|
2
|
+
//# sourceMappingURL=packets.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/api/signal/packets.ts"],
|
|
4
|
+
"sourcesContent": ["import { Identifier } from '../../identifier';\nimport { ByteReader, ByteWriter } from '../../serialize';\n\nimport { SignalPermissions, SignalPermissionsJSON } from './signal.js';\n\nexport class SignalPacket {\n constructor(\n public readonly id: Identifier,\n public readonly body: Uint8Array,\n ) { }\n\n public static serialize(packet: SignalPacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n writer.writeUint8Array(packet.body);\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): SignalPacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n const body = reader.readUint8Array();\n return new SignalPacket(id, body);\n }\n}\n\ninterface SignalRegisterPacketJSON {\n id: string;\n permissions: SignalPermissionsJSON;\n}\n\nexport class SignalRegisterPacket {\n constructor(\n public readonly id: Identifier,\n public readonly permissions: SignalPermissions,\n ) {}\n\n public static serialize(packet: SignalRegisterPacket): SignalRegisterPacketJSON {\n const { permissions: perms } = packet;\n return {\n id: packet.id.key(),\n permissions: {\n all: perms.all ? Identifier.from(perms.all).key() : undefined,\n listen: perms.listen ? Identifier.from(perms.listen).key() : undefined,\n send: perms.send ? Identifier.from(perms.send).key() : undefined,\n },\n };\n }\n\n public static deserialize(data: SignalRegisterPacketJSON): SignalRegisterPacket {\n const { permissions: perms } = data;\n return new SignalRegisterPacket(\n Identifier.fromKey(data.id),\n {\n all: perms.all ? Identifier.fromKey(perms.all) : undefined,\n listen: perms.listen ? Identifier.fromKey(perms.listen) : undefined,\n send: perms.send ? Identifier.fromKey(perms.send) : undefined,\n },\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,cAAAA,MAAkB,mBAC3B,OAAS,cAAAC,EAAY,cAAAC,MAAkB,kBAIhC,MAAMC,CAAa,CACtB,YACoBC,EACAC,EAClB,CAFkB,QAAAD,EACA,UAAAC,CAChB,CAEJ,OAAc,UAAUC,EAAkC,CACtD,MAAMC,EAAS,IAAIL,EACnB,OAAAK,EAAO,YAAYD,EAAO,GAAG,IAAI,CAAC,EAClCC,EAAO,gBAAgBD,EAAO,IAAI,EAC3BC,EAAO,OAAO,CACzB,CAEA,OAAc,YAAYC,EAAgC,CACtD,MAAMC,EAASR,EAAW,eAAeO,CAAI,EACvCJ,EAAKJ,EAAW,QAAQS,EAAO,WAAW,CAAC,EAC3CJ,EAAOI,EAAO,eAAe,EACnC,OAAO,IAAIN,EAAaC,EAAIC,CAAI,CACpC,CACJ,CAOO,MAAMK,CAAqB,CAC9B,YACoBN,EACAO,EAClB,CAFkB,QAAAP,EACA,iBAAAO,CACjB,CAEH,OAAc,UAAUL,EAAwD,CAC5E,KAAM,CAAE,YAAaM,CAAM,EAAIN,EAC/B,MAAO,CACH,GAAIA,EAAO,GAAG,IAAI,EAClB,YAAa,CACT,IAAKM,EAAM,IAAMZ,EAAW,KAAKY,EAAM,GAAG,EAAE,IAAI,EAAI,OACpD,OAAQA,EAAM,OAASZ,EAAW,KAAKY,EAAM,MAAM,EAAE,IAAI,EAAI,OAC7D,KAAMA,EAAM,KAAOZ,EAAW,KAAKY,EAAM,IAAI,EAAE,IAAI,EAAI,MAC3D,CACJ,CACJ,CAEA,OAAc,YAAYJ,EAAsD,CAC5E,KAAM,CAAE,YAAaI,CAAM,EAAIJ,EAC/B,OAAO,IAAIE,EACPV,EAAW,QAAQQ,EAAK,EAAE,EAC1B,CACI,IAAKI,EAAM,IAAMZ,EAAW,QAAQY,EAAM,GAAG,EAAI,OACjD,OAAQA,EAAM,OAASZ,EAAW,QAAQY,EAAM,MAAM,EAAI,OAC1D,KAAMA,EAAM,KAAOZ,EAAW,QAAQY,EAAM,IAAI,EAAI,MACxD,CACJ,CACJ,CACJ",
|
|
6
|
+
"names": ["Identifier", "ByteReader", "ByteWriter", "SignalPacket", "id", "body", "packet", "writer", "data", "reader", "SignalRegisterPacket", "permissions", "perms"]
|
|
7
|
+
}
|
|
@@ -16,12 +16,12 @@ export declare class SignalType<T> {
|
|
|
16
16
|
readonly serializer: Serializable<T, Uint8Array>;
|
|
17
17
|
readonly permissions: SignalPermissions;
|
|
18
18
|
constructor(id: Identifier, serializer: Serializable<T, Uint8Array>, permissions: SignalPermissions);
|
|
19
|
-
static createJson<T>(identifier: IntoId, { name, serializer, permissions
|
|
19
|
+
static createJson<T>(identifier: IntoId, { name, serializer, permissions }: {
|
|
20
20
|
name: string;
|
|
21
21
|
serializer?: Serializable<T, any>;
|
|
22
22
|
permissions?: SignalPermissions;
|
|
23
23
|
}): SignalType<T>;
|
|
24
|
-
static createSerialized<T>(identifier: IntoId, { name, serializer, permissions
|
|
24
|
+
static createSerialized<T>(identifier: IntoId, { name, serializer, permissions }: {
|
|
25
25
|
name: string;
|
|
26
26
|
serializer: Serializable<T, Uint8Array>;
|
|
27
27
|
permissions?: SignalPermissions;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Identifier as t}from"../../identifier";import{Serializer as o}from"../../serialize";class s{constructor(i,e,n){this.id=i;this.serializer=e;this.permissions=n}static createJson(i,{name:e,serializer:n,permissions:r}){return new s(t.from(i).join(e),o.of(n??o.noop()).toJson(),r??{})}static createSerialized(i,{name:e,serializer:n,permissions:r}){return new s(t.from(i).join(e),n,r??{})}}export{s as SignalType};
|
|
2
|
+
//# sourceMappingURL=signal.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/api/signal/signal.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Unlisten } from '../../event';\nimport { Identifier, IntoId } from '../../identifier';\nimport type { Serializable } from '../../serialize';\nimport { Serializer } from '../../serialize';\n\nexport interface SignalPermissionsJSON {\n all?: string;\n listen?: string;\n send?: string;\n}\n\nexport interface SignalPermissions {\n all?: IntoId | undefined;\n listen?: IntoId | undefined;\n send?: IntoId | undefined;\n}\n\nexport class SignalType<T> {\n constructor(\n public readonly id: Identifier,\n public readonly serializer: Serializable<T, Uint8Array>,\n public readonly permissions: SignalPermissions,\n ) {}\n\n static createJson<T>(\n identifier: IntoId,\n {\n name,\n serializer,\n permissions,\n }: {\n name: string;\n serializer?: Serializable<T, any>;\n permissions?: SignalPermissions;\n },\n ): SignalType<T> {\n return new SignalType(\n Identifier.from(identifier).join(name),\n Serializer.of<T, any>(serializer ?? Serializer.noop()).toJson(),\n permissions ?? {},\n );\n }\n\n static createSerialized<T>(\n identifier: IntoId,\n {\n name,\n serializer,\n permissions,\n }: {\n name: string;\n serializer: Serializable<T, Uint8Array>;\n permissions?: SignalPermissions;\n },\n ): SignalType<T> {\n return new SignalType(\n Identifier.from(identifier).join(name),\n serializer,\n permissions ?? {},\n );\n }\n}\n\nexport interface Signal<T> {\n listen(handler: (value: T) => void): Unlisten;\n notify(body: T): void;\n}\n"],
|
|
5
|
+
"mappings": "AACA,OAAS,cAAAA,MAA0B,mBAEnC,OAAS,cAAAC,MAAkB,kBAcpB,MAAMC,CAAc,CACvB,YACoBC,EACAC,EACAC,EAClB,CAHkB,QAAAF,EACA,gBAAAC,EACA,iBAAAC,CACjB,CAEH,OAAO,WACHC,EACA,CACI,KAAAC,EACA,WAAAH,EACA,YAAAC,CACJ,EAKa,CACb,OAAO,IAAIH,EACPF,EAAW,KAAKM,CAAU,EAAE,KAAKC,CAAI,EACrCN,EAAW,GAAWG,GAAcH,EAAW,KAAK,CAAC,EAAE,OAAO,EAC9DI,GAAe,CAAC,CACpB,CACJ,CAEA,OAAO,iBACHC,EACA,CACI,KAAAC,EACA,WAAAH,EACA,YAAAC,CACJ,EAKa,CACb,OAAO,IAAIH,EACPF,EAAW,KAAKM,CAAU,EAAE,KAAKC,CAAI,EACrCH,EACAC,GAAe,CAAC,CACpB,CACJ,CACJ",
|
|
6
|
+
"names": ["Identifier", "Serializer", "SignalType", "id", "serializer", "permissions", "identifier", "name"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{EventEmitter as m}from"../../event";import{Identifier as g,IdentifierMap as x}from"../../identifier";import{PacketType as o}from"../../network/packet/packet.js";import{Serializer as h}from"../../serialize";import{EndpointType as l}from"../endpoint/endpoint.js";import{ExtensionType as C}from"../extension.js";import{SetConfigPacket as L,SetPermissionPacket as N,TableFetchPacket as I,TableFetchRangePacket as O,TableItemsPacket as d,TableKeysPacket as p,TablePacket as u,TableProxyPacket as B}from"./packets.js";import{TableType as _}from"./table.js";const r=new C("table",T=>new H(T)),c=r.join("permission"),R=o.createSerialized(r,{name:"set_permission",serializer:N}),S=o.createSerialized(r,{name:"set_config",serializer:L}),k=o.createJson(r,{name:"listen",serializer:g}),v=o.createJson(r,{name:"proxy_listen",serializer:g}),b=o.createSerialized(r,{name:"proxy",serializer:B}),f=o.createSerialized(r,{name:"item_add",serializer:d}),E=o.createSerialized(r,{name:"item_update",serializer:d}),z=o.createSerialized(r,{name:"item_remove",serializer:d}),M=l.createSerialized(r,{name:"item_get",requestSerializer:p,responseSerializer:d,permissionId:c}),A=l.createSerialized(r,{name:"item_has",requestSerializer:p,responseSerializer:h.json(),permissionId:c}),j=l.createSerialized(r,{name:"item_has_all",requestSerializer:p,responseSerializer:h.json(),permissionId:c}),K=l.createSerialized(r,{name:"item_has_any",requestSerializer:p,responseSerializer:h.json(),permissionId:c}),q=l.createSerialized(r,{name:"fetch",requestSerializer:I,responseSerializer:d,permissionId:c}),D=l.createSerialized(r,{name:"fetch_range",requestSerializer:O,responseSerializer:d,permissionId:c}),U=l.createSerialized(r,{name:"fetch_all",requestSerializer:u,responseSerializer:d,permissionId:c}),F=l.createSerialized(r,{name:"size",requestSerializer:u,responseSerializer:h.json(),permissionId:c}),P=o.createSerialized(r,{name:"clear",serializer:u});class H{constructor(e){this.omu=e;e.network.registerPacket(R,S,k,v,b,f,E,z,P)}type=r;tableMap=new x;createTable(e){this.omu.permissions.require(c);const i=this.tableMap.get(e.id);if(i)return i;const t=new J(this.omu,e);return this.tableMap.set(e.id,t),t}json(e,i){const t=new _(this.omu.app.id.base.join(e),h.pipe(i.serializer??h.noop(),h.json()),i.key);return this.createTable(t)}serialized(e,i){const t=new _(this.omu.app.id.base.join(e),i.serializer,i.key);return this.createTable(t)}get(e){return this.has(e.id)?this.tableMap.get(e.id):this.createTable(e)}has(e){return this.tableMap.has(e)}}class J{constructor(e,i){this.omu=e;this.id=i.id,this.serializer=i.serializer,this.keyFunction=i.keyFunction,this.cache=new Map,this.event={add:new m,update:new m,remove:new m,clear:new m,cacheUpdate:new m},this.promiseMap=new Map,this.proxies=[],this.listening=!1,e.network.addPacketHandler(b,t=>{if(!t.id.isEqual(this.id))return;let s=this.deserializeItems(t.items);this.proxies.forEach(a=>{s=new Map([...s.entries()].map(([n,w])=>{const y=a(w);if(y!==void 0)return[n,y]}).filter(n=>typeof n<"u"))}),e.send(b,{id:this.id,key:t.key,items:Object.fromEntries([...s.entries()].map(([a,n])=>[a,this.serializer.serialize(n)]))})}),e.network.addPacketHandler(f,t=>{if(!t.id.isEqual(this.id))return;const s=this.deserializeItems(t.items);this.updateCache(s),this.event.add.emit(s)}),e.network.addPacketHandler(E,t=>{if(!t.id.isEqual(this.id))return;const s=this.deserializeItems(t.items);this.updateCache(s),this.event.update.emit(s)}),e.network.addPacketHandler(z,t=>{if(!t.id.isEqual(this.id))return;const s=this.deserializeItems(t.items);s.forEach((a,n)=>{this.cache.delete(n)}),this.event.remove.emit(s),this.event.cacheUpdate.emit(this.cache)}),e.network.addPacketHandler(P,t=>{t.id.isEqual(this.id)&&(this.cache=new Map,this.event.clear.emit(),this.event.cacheUpdate.emit(this.cache))}),e.event.ready.listen(()=>this.onReady())}cache;event;promiseMap;proxies;id;serializer;keyFunction;listening;cacheSize;config;permissions;updateCache(e){if(!this.cacheSize)this.cache=e;else{const i=new Map([...this.cache,...e].slice(-this.cacheSize));this.cache=i}this.event.cacheUpdate.emit(this.cache)}listen(e){return this.listening||(this.omu.onReady(()=>{this.omu.send(k,this.id)}),this.listening=!0),e?this.event.cacheUpdate.listen(e):()=>{}}proxy(e){if(this.proxies.length===0){let i=()=>{};i=this.omu.onReady(()=>{if(this.proxies.length===0){i();return}this.omu.send(v,this.id)})}return this.proxies.push(e),()=>{this.proxies.splice(this.proxies.indexOf(e),1)}}onReady(){this.config&&this.omu.send(S,{id:this.id,config:this.config})}async get(e){if(this.cache.has(e))return this.cache.get(e);if(this.promiseMap.has(e))return await this.promiseMap.get(e);const i=this.omu.endpoints.call(M,{id:this.id,keys:[e]}).then(t=>{const s=this.deserializeItems(t.items);return this.updateCache(s),this.cache.get(e)});return this.promiseMap.set(e,i),await i.then(t=>(this.promiseMap.delete(e),t))}async getMany(...e){const i=e.filter(a=>!this.cache.has(a)).filter(a=>!this.promiseMap.has(a));if(i.length===0)return new Map([...this.cache].filter(([a])=>e.includes(a)));const t=this.omu.endpoints.call(M,{id:this.id,keys:i}).then(a=>{const n=this.deserializeItems(a.items);return this.updateCache(n),n});for(const a of i)this.promiseMap.set(a,t.then(n=>n.get(a)));const s=await t;for(const a of i)this.promiseMap.delete(a);return new Map([...this.cache,...s].filter(([a])=>e.includes(a)))}async add(...e){const i=this.serializeItems(e);this.omu.send(f,{id:this.id,items:i})}async update(...e){const i=this.serializeItems(e);this.omu.send(E,{id:this.id,items:i})}async remove(...e){const i=this.serializeItems(e),t=Object.keys(i);this.cache=new Map([...this.cache].filter(([s])=>!t.includes(s))),this.omu.send(z,{id:this.id,items:i})}async clear(){this.omu.send(P,{id:this.id})}async has(e){return this.cache.has(e)?!0:(await this.omu.endpoints.call(A,{id:this.id,keys:[e]}))[e]??!1}async hasMany(...e){return await this.omu.endpoints.call(A,{id:this.id,keys:e})}async hasAll(...e){return await this.omu.endpoints.call(j,{id:this.id,keys:e})}async hasAny(...e){return await this.omu.endpoints.call(K,{id:this.id,keys:e})}async fetchItems({limit:e,backward:i,cursor:t}){const s=await this.omu.endpoints.call(q,new I(this.id,e,i,t)),a=this.deserializeItems(s.items);return this.updateCache(a),a}async fetchRange({start:e,end:i}){const t=await this.omu.endpoints.call(D,{id:this.id,start:e,end:i}),s=this.deserializeItems(t.items);return this.updateCache(s),s}async fetchAll(){const e=await this.omu.endpoints.call(U,{id:this.id}),i=this.deserializeItems(e.items);return this.updateCache(i),i}async*iterate({backward:e,cursor:i}){for(;;){const t=await this.fetchItems({limit:this.cacheSize??100,backward:e,cursor:i});if(t.size===0)break;yield*t.values(),i!==void 0&&t.delete(i);const s=e?t.values().next().value:[...t.values()].pop();if(!s)break;i=this.keyFunction(s)}}async size(){return await this.omu.endpoints.call(F,{id:this.id})}deserializeItems(e){return new Map(Object.entries(e).map(([i,t])=>{const s=this.serializer.deserialize(t);return this.cache.set(i,s),[i,s]}))}serializeItems(e){return Object.fromEntries(e.map(i=>[this.keyFunction(i),this.serializer.serialize(i)]))}setCacheSize(e){this.cacheSize=e}setConfig(e){if(this.omu.running)throw new Error("Cannot set config after client has started");this.config=e}setPermissions(e){this.permissions=e}}export{r as TABLE_EXTENSION_TYPE,c as TABLE_PERMISSION_ID,H as TableExtension};
|
|
2
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/api/table/extension.ts"],
|
|
4
|
+
"sourcesContent": ["import type { Unlisten } from '../../event';\nimport { EventEmitter } from '../../event';\nimport { Identifier, IdentifierMap } from '../../identifier';\nimport { PacketType } from '../../network/packet/packet.js';\nimport { Omu } from '../../omu';\nimport type { JsonType, Serializable } from '../../serialize';\nimport { Serializer } from '../../serialize';\nimport { EndpointType } from '../endpoint/endpoint.js';\nimport type { Extension } from '../extension.js';\nimport { ExtensionType } from '../extension.js';\n\nimport {\n SetConfigPacket,\n SetPermissionPacket,\n TableFetchPacket,\n TableFetchRangePacket,\n TableItemsPacket,\n TableKeysPacket,\n TablePacket,\n TableProxyPacket,\n} from './packets.js';\nimport type { Table, TableConfig, TableEvents, TablePermissions } from './table.js';\nimport { TableType } from './table.js';\n\nexport const TABLE_EXTENSION_TYPE: ExtensionType<TableExtension> = new ExtensionType(\n 'table',\n (client) => new TableExtension(client),\n);\nexport const TABLE_PERMISSION_ID: Identifier = TABLE_EXTENSION_TYPE.join('permission');\n\nconst TABLE_SET_PERMISSION_PACKET = PacketType.createSerialized<SetPermissionPacket>(TABLE_EXTENSION_TYPE, {\n name: 'set_permission',\n serializer: SetPermissionPacket,\n});\nconst TABLE_SET_CONFIG_PACKET = PacketType.createSerialized<SetConfigPacket>(TABLE_EXTENSION_TYPE, {\n name: 'set_config',\n serializer: SetConfigPacket,\n});\nconst TABLE_LISTEN_PACKET = PacketType.createJson<Identifier>(TABLE_EXTENSION_TYPE, {\n name: 'listen',\n serializer: Identifier,\n});\nconst TABLE_PROXY_LISTEN_PACKET = PacketType.createJson<Identifier>(TABLE_EXTENSION_TYPE, {\n name: 'proxy_listen',\n serializer: Identifier,\n});\nconst TABLE_PROXY_PACKET = PacketType.createSerialized<TableProxyPacket>(TABLE_EXTENSION_TYPE, {\n name: 'proxy',\n serializer: TableProxyPacket,\n});\nconst TABLE_ITEM_ADD_PACKET = PacketType.createSerialized<TableItemsPacket>(TABLE_EXTENSION_TYPE, {\n name: 'item_add',\n serializer: TableItemsPacket,\n});\nconst TABLE_ITEM_UPDATE_PACKET = PacketType.createSerialized<TableItemsPacket>(TABLE_EXTENSION_TYPE, {\n name: 'item_update',\n serializer: TableItemsPacket,\n});\nconst TABLE_ITEM_REMOVE_PACKET = PacketType.createSerialized<TableItemsPacket>(TABLE_EXTENSION_TYPE, {\n name: 'item_remove',\n serializer: TableItemsPacket,\n});\nconst TABLE_ITEM_GET_ENDPOINT = EndpointType.createSerialized<TableKeysPacket, TableItemsPacket>(TABLE_EXTENSION_TYPE, {\n name: 'item_get',\n requestSerializer: TableKeysPacket,\n responseSerializer: TableItemsPacket,\n permissionId: TABLE_PERMISSION_ID,\n});\nconst TABLE_ITEM_HAS_ENDPOINT = EndpointType.createSerialized<TableKeysPacket, Record<string, boolean>>(TABLE_EXTENSION_TYPE, {\n name: 'item_has',\n requestSerializer: TableKeysPacket,\n responseSerializer: Serializer.json(),\n permissionId: TABLE_PERMISSION_ID,\n});\nconst TABLE_ITEM_HAS_ALL_ENDPOINT = EndpointType.createSerialized<TableKeysPacket, boolean>(TABLE_EXTENSION_TYPE, {\n name: 'item_has_all',\n requestSerializer: TableKeysPacket,\n responseSerializer: Serializer.json(),\n permissionId: TABLE_PERMISSION_ID,\n});\nconst TABLE_ITEM_HAS_ANY_ENDPOINT = EndpointType.createSerialized<TableKeysPacket, boolean>(TABLE_EXTENSION_TYPE, {\n name: 'item_has_any',\n requestSerializer: TableKeysPacket,\n responseSerializer: Serializer.json(),\n permissionId: TABLE_PERMISSION_ID,\n});\nconst TABLE_FETCH_ENDPOINT = EndpointType.createSerialized<TableFetchPacket, TableItemsPacket>(TABLE_EXTENSION_TYPE, {\n name: 'fetch',\n requestSerializer: TableFetchPacket,\n responseSerializer: TableItemsPacket,\n permissionId: TABLE_PERMISSION_ID,\n});\nconst TABLE_FETCH_RANGE_ENDPOINT = EndpointType.createSerialized<TableFetchRangePacket, TableItemsPacket>(TABLE_EXTENSION_TYPE, {\n name: 'fetch_range',\n requestSerializer: TableFetchRangePacket,\n responseSerializer: TableItemsPacket,\n permissionId: TABLE_PERMISSION_ID,\n});\nconst TABLE_FETCH_ALL_ENDPOINT = EndpointType.createSerialized<TablePacket, TableItemsPacket>(TABLE_EXTENSION_TYPE, {\n name: 'fetch_all',\n requestSerializer: TablePacket,\n responseSerializer: TableItemsPacket,\n permissionId: TABLE_PERMISSION_ID,\n});\nconst TABLE_SIZE_ENDPOINT = EndpointType.createSerialized<TablePacket, number>(TABLE_EXTENSION_TYPE, {\n name: 'size',\n requestSerializer: TablePacket,\n responseSerializer: Serializer.json(),\n permissionId: TABLE_PERMISSION_ID,\n});\nconst TABLE_ITEM_CLEAR_PACKET = PacketType.createSerialized<TablePacket>(TABLE_EXTENSION_TYPE, {\n name: 'clear',\n serializer: TablePacket,\n});\n\nexport class TableExtension implements Extension {\n public readonly type: ExtensionType<TableExtension> = TABLE_EXTENSION_TYPE;\n private readonly tableMap = new IdentifierMap<Table<unknown>>();\n\n constructor(private readonly omu: Omu) {\n omu.network.registerPacket(\n TABLE_SET_PERMISSION_PACKET,\n TABLE_SET_CONFIG_PACKET,\n TABLE_LISTEN_PACKET,\n TABLE_PROXY_LISTEN_PACKET,\n TABLE_PROXY_PACKET,\n TABLE_ITEM_ADD_PACKET,\n TABLE_ITEM_UPDATE_PACKET,\n TABLE_ITEM_REMOVE_PACKET,\n TABLE_ITEM_CLEAR_PACKET,\n );\n }\n\n private createTable<T>(tableType: TableType<T>): Table<T> {\n this.omu.permissions.require(TABLE_PERMISSION_ID);\n const existing = this.tableMap.get(tableType.id);\n if (existing) {\n return existing as Table<T>;\n }\n const table = new TableImpl<T>(this.omu, tableType);\n this.tableMap.set(tableType.id, table as Table<unknown>);\n return table;\n }\n\n public json<T, D extends JsonType = JsonType>(name: string, options: { key: (item: T) => string; serializer?: Serializable<T, D> }): Table<T> {\n const tableType = new TableType<T>(\n this.omu.app.id.base.join(name),\n Serializer.pipe<T, JsonType, Uint8Array>(options.serializer ?? Serializer.noop(), Serializer.json()),\n options.key,\n );\n return this.createTable(tableType);\n }\n\n public serialized<T>(name: string, options: { key: (item: T) => string; serializer: Serializable<T, Uint8Array> }): Table<T> {\n const tableType = new TableType<T>(\n this.omu.app.id.base.join(name),\n options.serializer,\n options.key,\n );\n return this.createTable(tableType);\n }\n\n public get<T>(type: TableType<T>): Table<T> {\n if (this.has(type.id)) {\n return this.tableMap.get(type.id) as Table<T>;\n }\n return this.createTable(type);\n }\n\n public has(identifier: Identifier): boolean {\n return this.tableMap.has(identifier);\n }\n}\n\nclass TableImpl<T> implements Table<T> {\n public cache: Map<string, T>;\n public readonly event: TableEvents<T>;\n private readonly promiseMap: Map<string, Promise<T | undefined>>;\n private readonly proxies: Array<(item: T) => T | undefined>;\n private id: Identifier;\n private serializer: Serializable<T, Uint8Array>;\n private keyFunction: (item: T) => string;\n private listening: boolean;\n private cacheSize?: number;\n private config?: TableConfig;\n private permissions?: TablePermissions;\n\n constructor(\n private readonly omu: Omu,\n tableType: TableType<T>,\n ) {\n this.id = tableType.id;\n this.serializer = tableType.serializer;\n this.keyFunction = tableType.keyFunction;\n this.cache = new Map();\n this.event = {\n add: new EventEmitter<[Map<string, T>]>(),\n update: new EventEmitter<[Map<string, T>]>(),\n remove: new EventEmitter<[Map<string, T>]>(),\n clear: new EventEmitter<[]>(),\n cacheUpdate: new EventEmitter<[Map<string, T>]>(),\n };\n this.promiseMap = new Map();\n this.proxies = [];\n this.listening = false;\n\n omu.network.addPacketHandler(TABLE_PROXY_PACKET, (packet) => {\n if (!packet.id.isEqual(this.id)) {\n return;\n }\n let items = this.deserializeItems(packet.items);\n this.proxies.forEach((proxy) => {\n items = new Map(\n [...items.entries()]\n .map(([key, item]) => {\n const proxyItem = proxy(item);\n if (proxyItem !== undefined) {\n return [key, proxyItem as T];\n }\n return undefined;\n })\n .filter((item): item is [string, T] => {\n return typeof item !== 'undefined';\n }),\n );\n });\n omu.send(TABLE_PROXY_PACKET, {\n id: this.id,\n key: packet.key,\n items: Object.fromEntries(\n [...items.entries()].map(([key, item]) => {\n return [key, this.serializer.serialize(item)];\n }),\n ),\n });\n });\n omu.network.addPacketHandler(TABLE_ITEM_ADD_PACKET, (packet) => {\n if (!packet.id.isEqual(this.id)) {\n return;\n }\n const items = this.deserializeItems(packet.items);\n this.updateCache(items);\n this.event.add.emit(items);\n });\n omu.network.addPacketHandler(TABLE_ITEM_UPDATE_PACKET, (packet) => {\n if (!packet.id.isEqual(this.id)) {\n return;\n }\n const items = this.deserializeItems(packet.items);\n this.updateCache(items);\n this.event.update.emit(items);\n });\n omu.network.addPacketHandler(TABLE_ITEM_REMOVE_PACKET, (packet) => {\n if (!packet.id.isEqual(this.id)) {\n return;\n }\n const items = this.deserializeItems(packet.items);\n items.forEach((_, key) => {\n this.cache.delete(key);\n });\n this.event.remove.emit(items);\n this.event.cacheUpdate.emit(this.cache);\n });\n omu.network.addPacketHandler(TABLE_ITEM_CLEAR_PACKET, (packet) => {\n if (!packet.id.isEqual(this.id)) {\n return;\n }\n this.cache = new Map();\n this.event.clear.emit();\n this.event.cacheUpdate.emit(this.cache);\n });\n omu.event.ready.listen(() => this.onReady());\n }\n\n private updateCache(items: Map<string, T>): void {\n if (!this.cacheSize) {\n this.cache = items;\n } else {\n const cache = new Map([...this.cache, ...items].slice(-this.cacheSize));\n this.cache = cache;\n }\n this.event.cacheUpdate.emit(this.cache);\n }\n\n public listen(listener?: (items: Map<string, T>) => void): Unlisten {\n if (!this.listening) {\n this.omu.onReady(() => {\n this.omu.send(TABLE_LISTEN_PACKET, this.id);\n });\n this.listening = true;\n }\n if (listener) {\n return this.event.cacheUpdate.listen(listener);\n }\n return () => {};\n }\n\n public proxy(callback: (item: T) => T | undefined): Unlisten {\n if (this.proxies.length === 0) {\n let cancel = (): void => {};\n cancel = this.omu.onReady(() => {\n if (this.proxies.length === 0) {\n cancel();\n return;\n }\n this.omu.send(TABLE_PROXY_LISTEN_PACKET, this.id);\n });\n }\n this.proxies.push(callback);\n return () => {\n this.proxies.splice(this.proxies.indexOf(callback), 1);\n };\n }\n\n private onReady(): void {\n if (this.config) {\n this.omu.send(TABLE_SET_CONFIG_PACKET, {\n id: this.id,\n config: this.config,\n });\n }\n }\n\n public async get(key: string): Promise<T | undefined> {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n if (this.promiseMap.has(key)) {\n return await this.promiseMap.get(key);\n }\n const promise = this.omu.endpoints\n .call(TABLE_ITEM_GET_ENDPOINT, {\n id: this.id,\n keys: [key],\n })\n .then((res) => {\n const items = this.deserializeItems(res.items);\n this.updateCache(items);\n return this.cache.get(key);\n });\n this.promiseMap.set(key, promise);\n return await promise.then((item) => {\n this.promiseMap.delete(key);\n return item;\n });\n }\n\n public async getMany(...keys: string[]): Promise<Map<string, T>> {\n const filteredKeys = keys\n .filter((key) => !this.cache.has(key))\n .filter((key) => !this.promiseMap.has(key));\n if (filteredKeys.length === 0) {\n return new Map([...this.cache].filter(([key]) => keys.includes(key)));\n }\n const promise = this.omu.endpoints\n .call(TABLE_ITEM_GET_ENDPOINT, {\n id: this.id,\n keys: filteredKeys,\n })\n .then((res) => {\n const items = this.deserializeItems(res.items);\n this.updateCache(items);\n return items;\n });\n for (const key of filteredKeys) {\n this.promiseMap.set(\n key,\n promise.then((items) => items.get(key)),\n );\n }\n const items = await promise;\n for (const key of filteredKeys) {\n this.promiseMap.delete(key);\n }\n return new Map([...this.cache, ...items].filter(([key]) => keys.includes(key)));\n }\n\n public async add(...items: T[]): Promise<void> {\n const data = this.serializeItems(items);\n this.omu.send(TABLE_ITEM_ADD_PACKET, {\n id: this.id,\n items: data,\n });\n }\n\n public async update(...items: T[]): Promise<void> {\n const data = this.serializeItems(items);\n this.omu.send(TABLE_ITEM_UPDATE_PACKET, {\n id: this.id,\n items: data,\n });\n }\n\n public async remove(...items: T[]): Promise<void> {\n const data = this.serializeItems(items);\n const keys = Object.keys(data);\n this.cache = new Map([...this.cache].filter(([key]) => !keys.includes(key)));\n this.omu.send(TABLE_ITEM_REMOVE_PACKET, {\n id: this.id,\n items: data,\n });\n }\n\n public async clear(): Promise<void> {\n this.omu.send(TABLE_ITEM_CLEAR_PACKET, {\n id: this.id,\n });\n }\n\n public async has(key: string): Promise<boolean> {\n if (this.cache.has(key)) {\n return true;\n }\n const res = await this.omu.endpoints.call(TABLE_ITEM_HAS_ENDPOINT, {\n id: this.id,\n keys: [key],\n });\n return res[key] ?? false;\n }\n\n public async hasMany<T extends Record<string, unknown>>(...keys: (keyof T)[]): Promise<{ [key in keyof T]: boolean }> {\n const res = await this.omu.endpoints.call(TABLE_ITEM_HAS_ENDPOINT, {\n id: this.id,\n keys: keys,\n });\n return res as { [key in keyof T]: boolean };\n }\n\n public async hasAll(...keys: string[]): Promise<boolean> {\n const res = await this.omu.endpoints.call(TABLE_ITEM_HAS_ALL_ENDPOINT, {\n id: this.id,\n keys,\n });\n return res;\n }\n\n public async hasAny(...keys: string[]): Promise<boolean> {\n const res = await this.omu.endpoints.call(TABLE_ITEM_HAS_ANY_ENDPOINT, {\n id: this.id,\n keys,\n });\n return res;\n }\n\n public async fetchItems({\n limit,\n backward,\n cursor,\n }: {\n limit: number;\n backward?: boolean;\n cursor?: string;\n }): Promise<Map<string, T>> {\n const res = await this.omu.endpoints.call(\n TABLE_FETCH_ENDPOINT,\n new TableFetchPacket(this.id, limit, backward, cursor),\n );\n const items = this.deserializeItems(res.items);\n this.updateCache(items);\n return items;\n }\n\n public async fetchRange({\n start,\n end,\n }: {\n start: string;\n end: string;\n }): Promise<Map<string, T>> {\n const res = await this.omu.endpoints.call(TABLE_FETCH_RANGE_ENDPOINT, {\n id: this.id,\n start,\n end,\n });\n const items = this.deserializeItems(res.items);\n this.updateCache(items);\n return items;\n }\n\n public async fetchAll(): Promise<Map<string, T>> {\n const res = await this.omu.endpoints.call(TABLE_FETCH_ALL_ENDPOINT, {\n id: this.id,\n });\n const items = this.deserializeItems(res.items);\n this.updateCache(items);\n return items;\n }\n\n public async *iterate({\n backward,\n cursor,\n }: {\n backward?: boolean;\n cursor?: string;\n }): AsyncIterable<T> {\n while (true) {\n const items = await this.fetchItems({\n limit: this.cacheSize ?? 100,\n backward,\n cursor,\n });\n if (items.size === 0) {\n break;\n }\n yield* items.values();\n if (cursor !== undefined) {\n items.delete(cursor);\n }\n const cursorItem = backward ? items.values().next().value : [...items.values()].pop();\n if (!cursorItem) {\n break;\n }\n cursor = this.keyFunction(cursorItem);\n }\n }\n\n public async size(): Promise<number> {\n return await this.omu.endpoints.call(TABLE_SIZE_ENDPOINT, {\n id: this.id,\n });\n }\n\n private deserializeItems(items: Record<string, Uint8Array>): Map<string, T> {\n return new Map(\n Object.entries(items).map(([key, data]) => {\n const item = this.serializer.deserialize(data);\n this.cache.set(key, item);\n return [key, item];\n }),\n );\n }\n\n private serializeItems(items: T[]): Record<string, Uint8Array> {\n return Object.fromEntries(\n items.map((item) => {\n return [this.keyFunction(item), this.serializer.serialize(item)];\n }),\n );\n }\n\n public setCacheSize(size: number): void {\n this.cacheSize = size;\n }\n\n public setConfig(config: TableConfig): void {\n if (this.omu.running) {\n throw new Error('Cannot set config after client has started');\n }\n this.config = config;\n }\n\n public setPermissions(permissions: TablePermissions): void {\n this.permissions = permissions;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["EventEmitter", "Identifier", "IdentifierMap", "PacketType", "Serializer", "EndpointType", "ExtensionType", "SetConfigPacket", "SetPermissionPacket", "TableFetchPacket", "TableFetchRangePacket", "TableItemsPacket", "TableKeysPacket", "TablePacket", "TableProxyPacket", "TableType", "TABLE_EXTENSION_TYPE", "client", "TableExtension", "TABLE_PERMISSION_ID", "TABLE_SET_PERMISSION_PACKET", "TABLE_SET_CONFIG_PACKET", "TABLE_LISTEN_PACKET", "TABLE_PROXY_LISTEN_PACKET", "TABLE_PROXY_PACKET", "TABLE_ITEM_ADD_PACKET", "TABLE_ITEM_UPDATE_PACKET", "TABLE_ITEM_REMOVE_PACKET", "TABLE_ITEM_GET_ENDPOINT", "TABLE_ITEM_HAS_ENDPOINT", "TABLE_ITEM_HAS_ALL_ENDPOINT", "TABLE_ITEM_HAS_ANY_ENDPOINT", "TABLE_FETCH_ENDPOINT", "TABLE_FETCH_RANGE_ENDPOINT", "TABLE_FETCH_ALL_ENDPOINT", "TABLE_SIZE_ENDPOINT", "TABLE_ITEM_CLEAR_PACKET", "omu", "tableType", "existing", "table", "TableImpl", "name", "options", "type", "identifier", "packet", "items", "proxy", "key", "item", "proxyItem", "_", "cache", "listener", "callback", "cancel", "promise", "res", "keys", "filteredKeys", "data", "limit", "backward", "cursor", "start", "end", "cursorItem", "size", "config", "permissions"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/api/table/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { TABLE_PERMISSION_ID } from './extension.js';\nexport { TableType, type Table, type TableConfig } from './table.js';\n\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,uBAAAA,MAA2B,iBACpC,OAAS,aAAAC,MAA+C",
|
|
6
|
+
"names": ["TABLE_PERMISSION_ID", "TableType"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Identifier as s}from"../../identifier";import{ByteReader as a,ByteWriter as c,Flags as A}from"../../serialize";class u{constructor(e){this.id=e}static serialize(e){const r=new c;return r.writeString(e.id.key()),r.finish()}static deserialize(e){const r=a.fromUint8Array(e),i=s.fromKey(r.readString());return new u(i)}}class f{constructor(e,r){this.id=e;this.items=r}static serialize(e){const r=new c;r.writeString(e.id.key()),r.writeULEB128(Object.keys(e.items).length);for(const[i,t]of Object.entries(e.items))r.writeString(i),r.writeUint8Array(t);return r.finish()}static deserialize(e){const r=a.fromUint8Array(e),i=s.fromKey(r.readString()),t=r.readULEB128(),n={};for(let l=0;l<t;l++){const o=r.readString(),d=r.readUint8Array();n[o]=d}return new f(i,n)}}class b{constructor(e,r){this.id=e;this.keys=r}static serialize(e){const r=new c;r.writeString(e.id.key()),r.writeULEB128(e.keys.length);for(const i of e.keys)r.writeString(i);return r.finish()}static deserialize(e){const r=a.fromUint8Array(e),i=s.fromKey(r.readString()),t=r.readULEB128(),n=[];for(let l=0;l<t;l++)n.push(r.readString());return new b(i,n)}}class g{constructor(e,r,i){this.id=e;this.items=r;this.key=i}static serialize(e){const r=new c;r.writeString(e.id.key()),r.writeULEB128(e.key),r.writeULEB128(Object.keys(e.items).length);for(const[i,t]of Object.entries(e.items))r.writeString(i),r.writeUint8Array(t);return r.finish()}static deserialize(e){const r=a.fromUint8Array(e),i=s.fromKey(r.readString()),t=r.readULEB128(),n=r.readULEB128(),l={};for(let o=0;o<n;o++){const d=r.readString(),y=r.readUint8Array();l[d]=y}return new g(i,l,t)}}class w{constructor(e,r,i=!1,t=null){this.id=e;this.limit=r;this.backward=i;this.cursor=t}static serialize(e){const r=new c;r.writeString(e.id.key()),r.writeULEB128(e.limit);const i=new A({length:2});return i.set(0,e.backward),i.set(1,e.cursor!==null),r.writeFlags(i),e.cursor!==null&&r.writeString(e.cursor),r.finish()}static deserialize(e){const r=a.fromUint8Array(e),i=s.fromKey(r.readString()),t=r.readULEB128(),n=r.readFlags(2),l=n.get(0),o=n.ifSet(1,()=>r.readString());return new w(i,t,l,o)}}class m{constructor(e,r,i){this.id=e;this.start=r;this.end=i}static serialize(e){const r=new c;return r.writeString(e.id.key()),r.writeString(e.start),r.writeString(e.end),r.finish()}static deserialize(e){const r=a.fromUint8Array(e),i=s.fromKey(r.readString()),t=r.readString(),n=r.readString();return new m(i,t,n)}}class S{constructor(e,r){this.id=e;this.config=r}static serialize(e){const r=new c;return r.writeString(e.id.key()),r.writeString(JSON.stringify(e.config)),r.finish()}static deserialize(e){const r=a.fromUint8Array(e),i=s.fromKey(r.readString()),t=JSON.parse(r.readString());return new S(i,t)}}class U{constructor(e,r,i,t,n,l){this.id=e;this.all=r;this.read=i;this.write=t;this.remove=n;this.proxy=l}static serialize(e){const r=new c;r.writeString(e.id.key());let i=0;return e.all!==null&&(i|=1),e.read!==null&&(i|=2),e.write!==null&&(i|=4),e.remove!==null&&(i|=8),e.proxy!==null&&(i|=16),r.writeUint8(i),e.all&&r.writeString(e.all.key()),e.read&&r.writeString(e.read.key()),e.write&&r.writeString(e.write.key()),e.remove&&r.writeString(e.remove.key()),e.proxy&&r.writeString(e.proxy.key()),r.finish()}static deserialize(e){const r=a.fromUint8Array(e),i=s.fromKey(r.readString()),t=r.readUint8(),n=t&1?s.fromKey(r.readString()):null,l=t&2?s.fromKey(r.readString()):null,o=t&4?s.fromKey(r.readString()):null,d=t&8?s.fromKey(r.readString()):null,y=t&16?s.fromKey(r.readString()):null;return new U(i,n,l,o,d,y)}}export{S as SetConfigPacket,U as SetPermissionPacket,w as TableFetchPacket,m as TableFetchRangePacket,f as TableItemsPacket,b as TableKeysPacket,u as TablePacket,g as TableProxyPacket};
|
|
2
|
+
//# sourceMappingURL=packets.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/api/table/packets.ts"],
|
|
4
|
+
"sourcesContent": ["import { Identifier } from '../../identifier';\nimport { ByteReader, ByteWriter, Flags } from '../../serialize';\n\nimport type { TableConfig } from './table.js';\n\nexport class TablePacket {\n constructor(public readonly id: Identifier) {}\n\n public static serialize(packet: TablePacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): TablePacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n return new TablePacket(id);\n }\n}\n\nexport class TableItemsPacket {\n constructor(\n public readonly id: Identifier,\n public readonly items: Record<string, Uint8Array>,\n ) {}\n\n public static serialize(packet: TableItemsPacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n writer.writeULEB128(Object.keys(packet.items).length);\n for (const [key, value] of Object.entries(packet.items)) {\n writer.writeString(key);\n writer.writeUint8Array(value);\n }\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): TableItemsPacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n const count = reader.readULEB128();\n const items: Record<string, Uint8Array> = {};\n for (let i = 0; i < count; i++) {\n const key = reader.readString();\n const value = reader.readUint8Array();\n items[key] = value;\n }\n return new TableItemsPacket(id, items);\n }\n}\n\nexport class TableKeysPacket {\n constructor(\n public readonly id: Identifier,\n public readonly keys: string[],\n ) {}\n\n public static serialize(packet: TableKeysPacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n writer.writeULEB128(packet.keys.length);\n for (const key of packet.keys) {\n writer.writeString(key);\n }\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): TableKeysPacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n const count = reader.readULEB128();\n const keys: string[] = [];\n for (let i = 0; i < count; i++) {\n keys.push(reader.readString());\n }\n return new TableKeysPacket(id, keys);\n }\n}\n\nexport class TableProxyPacket {\n constructor(\n public readonly id: Identifier,\n public readonly items: Record<string, Uint8Array>,\n public readonly key: number,\n ) {}\n\n public static serialize(packet: TableProxyPacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n writer.writeULEB128(packet.key);\n writer.writeULEB128(Object.keys(packet.items).length);\n for (const [key, value] of Object.entries(packet.items)) {\n writer.writeString(key);\n writer.writeUint8Array(value);\n }\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): TableProxyPacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n const key = reader.readULEB128();\n const count = reader.readULEB128();\n const items: Record<string, Uint8Array> = {};\n for (let i = 0; i < count; i++) {\n const key = reader.readString();\n const value = reader.readUint8Array();\n items[key] = value;\n }\n return new TableProxyPacket(id, items, key);\n }\n}\nexport class TableFetchPacket {\n constructor(\n public readonly id: Identifier,\n public readonly limit: number,\n public readonly backward: boolean = false,\n public readonly cursor: string | null = null,\n ) {}\n\n public static serialize(packet: TableFetchPacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n writer.writeULEB128(packet.limit);\n const flags = new Flags({ length: 2 });\n flags.set(0, packet.backward);\n flags.set(1, packet.cursor !== null);\n writer.writeFlags(flags);\n if (packet.cursor !== null) {\n writer.writeString(packet.cursor);\n }\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): TableFetchPacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n const limit = reader.readULEB128();\n const flags = reader.readFlags(2);\n const backward = flags.get(0);\n const cursor = flags.ifSet(1, () => reader.readString());\n return new TableFetchPacket(id, limit, backward, cursor);\n }\n}\n\nexport class TableFetchRangePacket {\n constructor(\n public readonly id: Identifier,\n public readonly start: string,\n public readonly end: string,\n ) {}\n\n public static serialize(packet: TableFetchRangePacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n writer.writeString(packet.start);\n writer.writeString(packet.end);\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): TableFetchRangePacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n const start = reader.readString();\n const end = reader.readString();\n return new TableFetchRangePacket(id, start, end);\n }\n}\n\nexport class SetConfigPacket {\n constructor(\n public readonly id: Identifier,\n public readonly config: TableConfig,\n ) {}\n\n public static serialize(packet: SetConfigPacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n writer.writeString(JSON.stringify(packet.config));\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): SetConfigPacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n const config = JSON.parse(reader.readString());\n return new SetConfigPacket(id, config);\n }\n}\n\nexport class SetPermissionPacket {\n constructor(\n public readonly id: Identifier,\n public readonly all: Identifier | null,\n public readonly read: Identifier | null,\n public readonly write: Identifier | null,\n public readonly remove: Identifier | null,\n public readonly proxy: Identifier | null,\n ) {}\n\n public static serialize(packet: SetPermissionPacket): Uint8Array {\n const writer = new ByteWriter();\n writer.writeString(packet.id.key());\n let flags = 0;\n if (packet.all !== null) {\n flags |= 0b1;\n }\n if (packet.read !== null) {\n flags |= 0b10;\n }\n if (packet.write !== null) {\n flags |= 0b100;\n }\n if (packet.remove !== null) {\n flags |= 0b1000;\n }\n if (packet.proxy !== null) {\n flags |= 0b10000;\n }\n writer.writeUint8(flags);\n if (packet.all) {\n writer.writeString(packet.all.key());\n }\n if (packet.read) {\n writer.writeString(packet.read.key());\n }\n if (packet.write) {\n writer.writeString(packet.write.key());\n }\n if (packet.remove) {\n writer.writeString(packet.remove.key());\n }\n if (packet.proxy) {\n writer.writeString(packet.proxy.key());\n }\n return writer.finish();\n }\n\n public static deserialize(data: Uint8Array): SetPermissionPacket {\n const reader = ByteReader.fromUint8Array(data);\n const id = Identifier.fromKey(reader.readString());\n const flags = reader.readUint8();\n const all = flags & 0b1 ? Identifier.fromKey(reader.readString()) : null;\n const read = flags & 0b10 ? Identifier.fromKey(reader.readString()) : null;\n const write = flags & 0b100 ? Identifier.fromKey(reader.readString()) : null;\n const remove = flags & 0b1000 ? Identifier.fromKey(reader.readString()) : null;\n const proxy = flags & 0b10000 ? Identifier.fromKey(reader.readString()) : null;\n return new SetPermissionPacket(id, all, read, write, remove, proxy);\n }\n}\n\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Identifier", "ByteReader", "ByteWriter", "Flags", "TablePacket", "id", "packet", "writer", "data", "reader", "TableItemsPacket", "items", "key", "value", "count", "i", "TableKeysPacket", "keys", "TableProxyPacket", "TableFetchPacket", "limit", "backward", "cursor", "flags", "TableFetchRangePacket", "start", "end", "SetConfigPacket", "config", "SetPermissionPacket", "all", "read", "write", "remove", "proxy"]
|
|
7
|
+
}
|
|
@@ -19,7 +19,7 @@ export interface Table<T> {
|
|
|
19
19
|
}>;
|
|
20
20
|
hasAll(...keys: string[]): Promise<boolean>;
|
|
21
21
|
hasAny(...keys: string[]): Promise<boolean>;
|
|
22
|
-
fetchItems({ limit, backward, cursor
|
|
22
|
+
fetchItems({ limit, backward, cursor }: {
|
|
23
23
|
limit: number;
|
|
24
24
|
backward?: boolean;
|
|
25
25
|
cursor?: string;
|
|
@@ -60,13 +60,13 @@ export declare class TableType<T> {
|
|
|
60
60
|
keyFunction: (item: T) => string;
|
|
61
61
|
permissions?: TablePermissions | undefined;
|
|
62
62
|
constructor(id: Identifier, serializer: Serializable<T, Uint8Array>, keyFunction: (item: T) => string, permissions?: TablePermissions | undefined);
|
|
63
|
-
static createJson<T, D extends JsonType = JsonType>(identifier: IntoId, { name, key, permissions, serializer
|
|
63
|
+
static createJson<T, D extends JsonType = JsonType>(identifier: IntoId, { name, key, permissions, serializer }: {
|
|
64
64
|
name: string;
|
|
65
65
|
key: (item: T) => string;
|
|
66
66
|
permissions?: TablePermissions;
|
|
67
67
|
serializer?: Serializable<T, D>;
|
|
68
68
|
}): TableType<T>;
|
|
69
|
-
static createSerialized<T>(identifier: IntoId, { name, key, permissions, serializer
|
|
69
|
+
static createSerialized<T>(identifier: IntoId, { name, key, permissions, serializer }: {
|
|
70
70
|
name: string;
|
|
71
71
|
key: (item: T) => string;
|
|
72
72
|
permissions?: TablePermissions;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Identifier as a}from"../../identifier";import{Serializer as s}from"../../serialize";class o{constructor(e,i,r,t){this.id=e;this.serializer=i;this.keyFunction=r;this.permissions=t}static createJson(e,{name:i,key:r,permissions:t,serializer:n}){return new o(a.from(e).join(i),s.pipe(n??s.noop(),s.json()),r,t)}static createSerialized(e,{name:i,key:r,permissions:t,serializer:n}){return new o(a.from(e).join(i),n,r,t)}}export{o as TableType};
|
|
2
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/api/table/table.ts"],
|
|
4
|
+
"sourcesContent": ["import type { EventEmitter, Unlisten } from '../../event';\nimport { Identifier, IntoId } from '../../identifier';\nimport type { JsonType, Serializable } from '../../serialize';\nimport { Serializer } from '../../serialize';\n\nexport type TableConfig = {\n cache_size: number;\n};\n\nexport interface Table<T> {\n readonly cache: ReadonlyMap<string, T>;\n readonly event: TableEvents<T>;\n get(key: string): Promise<T | undefined>;\n getMany(...keys: string[]): Promise<Map<string, T>>;\n add(...item: T[]): Promise<void>;\n update(...item: T[]): Promise<void>;\n remove(...items: T[]): Promise<void>;\n clear(): Promise<void>;\n has(key: string): Promise<boolean>;\n hasMany<T extends Record<string, unknown>>(...keys: (keyof T)[]): Promise<{ [key in keyof T]: boolean }>;\n hasAll(...keys: string[]): Promise<boolean>;\n hasAny(...keys: string[]): Promise<boolean>;\n\n fetchItems({\n limit,\n backward,\n cursor,\n }: {\n limit: number;\n backward?: boolean;\n cursor?: string;\n }): Promise<Map<string, T>>;\n fetchRange({ start, end }: { start: string; end: string }): Promise<Map<string, T>>;\n fetchAll(): Promise<Map<string, T>>;\n iterate({ backward, cursor }: { backward?: boolean; cursor?: string }): AsyncIterable<T>;\n size(): Promise<number>;\n\n proxy(proxy: (item: T) => T | undefined): Unlisten;\n setCacheSize(size: number): void;\n setConfig(config: TableConfig): void;\n setPermissions(permissions: TablePermissions): void;\n\n listen(listener?: (items: Map<string, T>) => void): Unlisten;\n}\n\nexport type TableEvents<T> = {\n add: EventEmitter<[Map<string, T>]>;\n update: EventEmitter<[Map<string, T>]>;\n remove: EventEmitter<[Map<string, T>]>;\n clear: EventEmitter<[]>;\n cacheUpdate: EventEmitter<[Map<string, T>]>;\n};\n\nexport type TablePermissions = {\n all?: Identifier;\n read?: Identifier;\n write?: Identifier;\n remove?: Identifier;\n proxy?: Identifier;\n};\n\nexport class TableType<T> {\n constructor(\n public id: Identifier,\n public serializer: Serializable<T, Uint8Array>,\n public keyFunction: (item: T) => string,\n public permissions?: TablePermissions | undefined,\n ) {}\n\n public static createJson<T, D extends JsonType = JsonType>(\n identifier: IntoId,\n {\n name,\n key,\n permissions,\n serializer,\n }: {\n name: string;\n key: (item: T) => string;\n permissions?: TablePermissions;\n serializer?: Serializable<T, D>;\n },\n ): TableType<T> {\n return new TableType<T>(\n Identifier.from(identifier).join(name),\n Serializer.pipe<T, D, Uint8Array>(serializer ?? Serializer.noop(), Serializer.json()),\n key,\n permissions,\n );\n }\n\n public static createSerialized<T>(\n identifier: IntoId,\n {\n name,\n key,\n permissions,\n serializer,\n }: {\n name: string;\n key: (item: T) => string;\n permissions?: TablePermissions;\n serializer: Serializable<T, Uint8Array>;\n },\n ): TableType<T> {\n return new TableType<T>(\n Identifier.from(identifier).join(name),\n serializer,\n key,\n permissions,\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "AACA,OAAS,cAAAA,MAA0B,mBAEnC,OAAS,cAAAC,MAAkB,kBA0DpB,MAAMC,CAAa,CACtB,YACWC,EACAC,EACAC,EACAC,EACT,CAJS,QAAAH,EACA,gBAAAC,EACA,iBAAAC,EACA,iBAAAC,CACR,CAEH,OAAc,WACVC,EACA,CACI,KAAAC,EACA,IAAAC,EACA,YAAAH,EACA,WAAAF,CACJ,EAMY,CACZ,OAAO,IAAIF,EACPF,EAAW,KAAKO,CAAU,EAAE,KAAKC,CAAI,EACrCP,EAAW,KAAuBG,GAAcH,EAAW,KAAK,EAAGA,EAAW,KAAK,CAAC,EACpFQ,EACAH,CACJ,CACJ,CAEA,OAAc,iBACVC,EACA,CACI,KAAAC,EACA,IAAAC,EACA,YAAAH,EACA,WAAAF,CACJ,EAMY,CACZ,OAAO,IAAIF,EACPF,EAAW,KAAKO,CAAU,EAAE,KAAKC,CAAI,EACrCJ,EACAK,EACAH,CACJ,CACJ,CACJ",
|
|
6
|
+
"names": ["Identifier", "Serializer", "TableType", "id", "serializer", "keyFunction", "permissions", "identifier", "name", "key"]
|
|
7
|
+
}
|
package/dist/app.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Identifier as i}from"./identifier";class r{id;type;parentId;version;url;metadata;dependencies;constructor(e,t){this.id=i.from(e),this.parentId=i.fromOptional(t.parentId),this.version=t.version,this.url=t.url,this.metadata=t.metadata,this.type=t.type??"app",this.dependencies=t.dependencies??{}}static deserialize(e){const t=i.fromKey(e.id);return new r(t,{parentId:i.fromOptional(e.parent_id),version:e.version,url:e.url,type:e.type,metadata:e.metadata,dependencies:e.dependencies??{}})}static serialize(e){return{id:e.id.key(),type:e.type,parent_id:e.parentId?.key(),version:e.version,url:e.url,metadata:e.metadata,dependencies:e.dependencies}}join(...e){return new r(this.id.join(...e),{parentId:this.parentId,version:this.version,url:this.url,type:this.type,metadata:this.metadata,dependencies:this.dependencies})}}export{r as App};
|
|
2
|
+
//# sourceMappingURL=app.js.map
|
package/dist/app.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/app.ts"],
|
|
4
|
+
"sourcesContent": ["import { Identifier, IntoId } from './identifier';\nimport type { Locale } from './localization/locale.js';\nimport type { LocalizedText } from './localization/localization.js';\n\nexport type AppMetadata = {\n locale: Locale;\n name?: LocalizedText;\n icon?: LocalizedText;\n description?: LocalizedText;\n image?: LocalizedText;\n site?: LocalizedText;\n repository?: LocalizedText;\n authors?: LocalizedText;\n license?: LocalizedText;\n tags?: string[];\n};\n\nexport type AppType = 'app' | 'service' | 'remote' | 'plugin' | 'dashboard';\n\nexport type DependencySpecifier = {\n version: string;\n index?: string;\n};\n\nexport type AppJson = {\n id: string;\n type: AppType;\n parent_id?: string;\n version?: string;\n url?: string;\n metadata?: AppMetadata;\n dependencies?: Record<string, DependencySpecifier | string>;\n};\n\nexport class App {\n public readonly id: Identifier;\n public readonly type: AppType;\n public readonly parentId?: Identifier;\n public readonly version?: string;\n public readonly url?: string;\n public readonly metadata?: AppMetadata;\n public readonly dependencies: Record<string, DependencySpecifier | string>;\n\n constructor(id: IntoId, options: {\n type?: AppType;\n parentId?: IntoId;\n version?: string;\n url?: string;\n metadata?: AppMetadata;\n dependencies?: Record<string, DependencySpecifier | string>;\n }) {\n this.id = Identifier.from(id);\n this.parentId = Identifier.fromOptional(options.parentId);\n this.version = options.version;\n this.url = options.url;\n this.metadata = options.metadata;\n this.type = options.type ?? 'app';\n this.dependencies = options.dependencies ?? {};\n }\n\n public static deserialize(info: AppJson): App {\n const id = Identifier.fromKey(info.id);\n return new App(id, {\n parentId: Identifier.fromOptional(info.parent_id),\n version: info.version,\n url: info.url,\n type: info.type,\n metadata: info.metadata,\n dependencies: info.dependencies ?? {},\n });\n }\n\n public static serialize(data: App): AppJson {\n return {\n id: data.id.key(),\n type: data.type,\n parent_id: data.parentId?.key(),\n version: data.version,\n url: data.url,\n metadata: data.metadata,\n dependencies: data.dependencies,\n };\n }\n\n public join(...paths: string[]): App {\n return new App(this.id.join(...paths), {\n parentId: this.parentId,\n version: this.version,\n url: this.url,\n type: this.type,\n metadata: this.metadata,\n dependencies: this.dependencies,\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,cAAAA,MAA0B,eAkC5B,MAAMC,CAAI,CACG,GACA,KACA,SACA,QACA,IACA,SACA,aAEhB,YAAYC,EAAYC,EAOrB,CACC,KAAK,GAAKH,EAAW,KAAKE,CAAE,EAC5B,KAAK,SAAWF,EAAW,aAAaG,EAAQ,QAAQ,EACxD,KAAK,QAAUA,EAAQ,QACvB,KAAK,IAAMA,EAAQ,IACnB,KAAK,SAAWA,EAAQ,SACxB,KAAK,KAAOA,EAAQ,MAAQ,MAC5B,KAAK,aAAeA,EAAQ,cAAgB,CAAC,CACjD,CAEA,OAAc,YAAYC,EAAoB,CAC1C,MAAMF,EAAKF,EAAW,QAAQI,EAAK,EAAE,EACrC,OAAO,IAAIH,EAAIC,EAAI,CACf,SAAUF,EAAW,aAAaI,EAAK,SAAS,EAChD,QAASA,EAAK,QACd,IAAKA,EAAK,IACV,KAAMA,EAAK,KACX,SAAUA,EAAK,SACf,aAAcA,EAAK,cAAgB,CAAC,CACxC,CAAC,CACL,CAEA,OAAc,UAAUC,EAAoB,CACxC,MAAO,CACH,GAAIA,EAAK,GAAG,IAAI,EAChB,KAAMA,EAAK,KACX,UAAWA,EAAK,UAAU,IAAI,EAC9B,QAASA,EAAK,QACd,IAAKA,EAAK,IACV,SAAUA,EAAK,SACf,aAAcA,EAAK,YACvB,CACJ,CAEO,QAAQC,EAAsB,CACjC,OAAO,IAAIL,EAAI,KAAK,GAAG,KAAK,GAAGK,CAAK,EAAG,CACnC,SAAU,KAAK,SACf,QAAS,KAAK,QACd,IAAK,KAAK,IACV,KAAM,KAAK,KACX,SAAU,KAAK,SACf,aAAc,KAAK,YACvB,CAAC,CACL,CACJ",
|
|
6
|
+
"names": ["Identifier", "App", "id", "options", "info", "data", "paths"]
|
|
7
|
+
}
|
package/dist/const.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/const.ts"],
|
|
4
|
+
"sourcesContent": ["export const textEncoder: TextEncoder = new TextEncoder();\nexport const textDecoder: TextDecoder = new TextDecoder();\n"],
|
|
5
|
+
"mappings": "AAAO,MAAMA,EAA2B,IAAI,YAC/BC,EAA2B,IAAI",
|
|
6
|
+
"names": ["textEncoder", "textDecoder"]
|
|
7
|
+
}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{DisconnectType as e}from"./network/packet/packet-types.js";class o extends Error{constructor(s){super(s??void 0),this.name=this.constructor.name}}class t extends o{constructor(c,n=""){super(n);this.type=c;this.message=n}}class p extends t{constructor(s){super(e.SERVER_RESTART,s)}}class u extends t{constructor(s){super(e.ANOTHER_CONNECTION,s)}}class x extends t{constructor(s){super(e.PERMISSION_DENIED,s)}}class a extends t{constructor(s){super(e.APP_REMOVED,s)}}class I extends t{constructor(s){super(e.INVALID_TOKEN,s)}}class l extends t{constructor(s){super(e.INVALID_ORIGIN,s)}}class d extends t{constructor(s){super(e.INVALID_VERSION,s)}}class E extends t{constructor(s){super(e.INVALID_PACKET,s)}}class R extends t{constructor(s){super(e.INTERNAL_ERROR,s)}}export{u as AnotherConnection,a as AppRemoved,t as DisconnectReason,R as InternalError,l as InvalidOrigin,E as InvalidPacket,I as InvalidToken,d as InvalidVersion,o as OmuError,x as PermissionDenied,p as ServerRestart};
|
|
2
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/errors.ts"],
|
|
4
|
+
"sourcesContent": ["import { DisconnectType } from './network/packet/packet-types.js';\nexport class OmuError extends Error {\n constructor(message: string | null) {\n super(message ?? undefined);\n this.name = this.constructor.name;\n }\n}\n\nexport class DisconnectReason extends OmuError {\n constructor(\n public type: DisconnectType,\n public message = '',\n ) {\n super(message);\n }\n}\n\nexport class ServerRestart extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.SERVER_RESTART, message);\n }\n}\n\nexport class AnotherConnection extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.ANOTHER_CONNECTION, message);\n }\n}\n\nexport class PermissionDenied extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.PERMISSION_DENIED, message);\n }\n}\n\nexport class AppRemoved extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.APP_REMOVED, message);\n }\n}\n\nexport class InvalidToken extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.INVALID_TOKEN, message);\n }\n}\n\nexport class InvalidOrigin extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.INVALID_ORIGIN, message);\n }\n}\n\nexport class InvalidVersion extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.INVALID_VERSION, message);\n }\n}\n\nexport class InvalidPacket extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.INVALID_PACKET, message);\n }\n}\n\nexport class InternalError extends DisconnectReason {\n constructor(message: string) {\n super(DisconnectType.INTERNAL_ERROR, message);\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,kBAAAA,MAAsB,mCACxB,MAAMC,UAAiB,KAAM,CAChC,YAAYC,EAAwB,CAChC,MAAMA,GAAW,MAAS,EAC1B,KAAK,KAAO,KAAK,YAAY,IACjC,CACJ,CAEO,MAAMC,UAAyBF,CAAS,CAC3C,YACWG,EACAF,EAAU,GACnB,CACE,MAAMA,CAAO,EAHN,UAAAE,EACA,aAAAF,CAGX,CACJ,CAEO,MAAMG,UAAsBF,CAAiB,CAChD,YAAYD,EAAiB,CACzB,MAAMF,EAAe,eAAgBE,CAAO,CAChD,CACJ,CAEO,MAAMI,UAA0BH,CAAiB,CACpD,YAAYD,EAAiB,CACzB,MAAMF,EAAe,mBAAoBE,CAAO,CACpD,CACJ,CAEO,MAAMK,UAAyBJ,CAAiB,CACnD,YAAYD,EAAiB,CACzB,MAAMF,EAAe,kBAAmBE,CAAO,CACnD,CACJ,CAEO,MAAMM,UAAmBL,CAAiB,CAC7C,YAAYD,EAAiB,CACzB,MAAMF,EAAe,YAAaE,CAAO,CAC7C,CACJ,CAEO,MAAMO,UAAqBN,CAAiB,CAC/C,YAAYD,EAAiB,CACzB,MAAMF,EAAe,cAAeE,CAAO,CAC/C,CACJ,CAEO,MAAMQ,UAAsBP,CAAiB,CAChD,YAAYD,EAAiB,CACzB,MAAMF,EAAe,eAAgBE,CAAO,CAChD,CACJ,CAEO,MAAMS,UAAuBR,CAAiB,CACjD,YAAYD,EAAiB,CACzB,MAAMF,EAAe,gBAAiBE,CAAO,CACjD,CACJ,CAEO,MAAMU,UAAsBT,CAAiB,CAChD,YAAYD,EAAiB,CACzB,MAAMF,EAAe,eAAgBE,CAAO,CAChD,CACJ,CAEO,MAAMW,UAAsBV,CAAiB,CAChD,YAAYD,EAAiB,CACzB,MAAMF,EAAe,eAAgBE,CAAO,CAChD,CACJ",
|
|
6
|
+
"names": ["DisconnectType", "OmuError", "message", "DisconnectReason", "type", "ServerRestart", "AnotherConnection", "PermissionDenied", "AppRemoved", "InvalidToken", "InvalidOrigin", "InvalidVersion", "InvalidPacket", "InternalError"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/event/index.ts"],
|
|
4
|
+
"sourcesContent": ["export type Unlisten = () => void;\n\nexport class EventEmitter<P extends Array<any>> {\n private readonly listeners: Array<(...args: P) => Promise<void> | void> = [];\n\n public listen(listener: (...args: P) => any): Unlisten {\n this.listeners.push(listener);\n return () => {\n this.listeners.splice(this.listeners.indexOf(listener), 1);\n };\n }\n\n public async emit(...args: P): Promise<void> {\n for (const listener of [...this.listeners]) {\n await listener(...args);\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "AAEO,MAAMA,CAAmC,CAC3B,UAAyD,CAAC,EAEpE,OAAOC,EAAyC,CACnD,YAAK,UAAU,KAAKA,CAAQ,EACrB,IAAM,CACT,KAAK,UAAU,OAAO,KAAK,UAAU,QAAQA,CAAQ,EAAG,CAAC,CAC7D,CACJ,CAEA,MAAa,QAAQC,EAAwB,CACzC,UAAWD,IAAY,CAAC,GAAG,KAAK,SAAS,EACrC,MAAMA,EAAS,GAAGC,CAAI,CAE9B,CACJ",
|
|
6
|
+
"names": ["EventEmitter", "listener", "args"]
|
|
7
|
+
}
|
package/dist/helper.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/helper.ts"],
|
|
4
|
+
"sourcesContent": ["type Ok<T> = {\n ok: true;\n data: T;\n};\ntype Err<E> = {\n ok: false;\n data: E;\n};\n\nexport function tryCatch<T, E = Error>(func: () => T): Ok<T> | Err<E> {\n try {\n return { ok: true, data: func() };\n } catch (e) {\n return { ok: false, data: e as E };\n }\n}\n"],
|
|
5
|
+
"mappings": "AASO,SAASA,EAAuBC,EAA+B,CAClE,GAAI,CACA,MAAO,CAAE,GAAI,GAAM,KAAMA,EAAK,CAAE,CACpC,OAASC,EAAG,CACR,MAAO,CAAE,GAAI,GAAO,KAAMA,CAAO,CACrC,CACJ",
|
|
6
|
+
"names": ["tryCatch", "func", "e"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{App as p}from"./app";const s=/^(\.[^/:.]|[\w-])+$/,a=/^[^/:]+$/;class r{namespace;path;constructor(e,...t){r.validate(e,t),this.namespace=e,this.path=t}static serialize(e){return e.key()}static deserialize(e){return r.fromJson(e)}static from(e){if(e instanceof r)return e;if(e instanceof p)return e.id;if(typeof e=="string")return r.fromKey(e);{const t=e;if(typeof t.namespace=="string"&&Array.isArray(t.path)&&t.path.every(n=>typeof n=="string"))return new r(t.namespace,...t.path);const i=e;if(typeof i.id<"u")return r.from(i.id);throw new Error(`Cannot convert to Identifier: ${e}`)}}static fromOptional(e){if(e!=null)return r.from(e)}static validate(e,t){if(!e)throw new Error("Invalid namespace: Namespace cannot be empty");if(t.length===0)throw new Error("Invalid path: Path must have at least one name");if(!s.test(e))throw new Error(`Invalid namespace: Namespace must match ${s}`);for(const i of t)if(!a.test(i))throw new Error(`Invalid path: Name must match ${a} but got ${i}`)}static format(e,...t){return r.validate(e,t),`${e}:${t.join("/")}`}static fromKey(e){const t=e.indexOf(":");if(t===-1)throw new Error(`Invalid key: No separator found in ${e}`);if(e.indexOf(":",t+1)!==-1)throw new Error(`Invalid key: Multiple separators found in ${e}`);const i=e.slice(0,t),n=e.slice(t+1);if(!i||!n)throw new Error("Invalid key: Namespace and path cannot be empty");return new r(i,...n.split("/"))}static fromUrl(e){const t=new URL(e),i=r.namespaceFromUrl(t.href),n=t.pathname.slice(1).split("/");return new r(i,...n)}static namespaceFromUrl(e){return new URL(e).hostname.split(".").reverse().join(".")}get base(){return new r(this.namespace,this.path[0])}toJson(){return this.key()}static fromJson(e){return r.fromKey(e)}key(){return r.format(this.namespace,...this.path)}isEqual(e){return this.key()===e.key()}isNamespaceEqual(e){return this.namespace===e.namespace}isSubpathOf(e){if(this.namespace!==e.namespace||this.path.length<e.path.length)return!1;for(let t=0;t<e.path.length;t++)if(this.path[t]!==e.path[t])return!1;return!0}join(...e){return new r(this.namespace,...this.path,...e)}}class c{map=new Map;constructor(e){if(e)for(const[t,i]of e)this.map.set(t.key(),i)}get size(){return this.map.size}set(e,t){this.map.set(e.key(),t)}get(e){return this.map.get(e.key())}has(e){return this.map.has(e.key())}delete(e){this.map.delete(e.key())}clear(){this.map.clear()}*keys(){for(const e of this.map.keys())yield r.fromKey(e)}values(){return this.map.values()}*entries(){for(const[e,t]of this.map.entries())yield[r.fromKey(e),t]}[Symbol.iterator](){return this.entries()}}class u{set=new Set;get size(){return this.set.size}add(e){this.set.add(e.key())}has(e){return this.set.has(e.key())}delete(e){this.set.delete(e.key())}clear(){this.set.clear()}*keys(){for(const e of this.set.keys())yield r.fromKey(e)}values(){return this.keys()}*entries(){for(const e of this.set.keys()){const t=r.fromKey(e);yield[t,t]}}[Symbol.iterator](){return this.entries()}}export{r as Identifier,c as IdentifierMap,u as IdentifierSet};
|
|
2
|
+
//# sourceMappingURL=identifier.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/identifier.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ExtensionType } from './api';\nimport { App } from './app';\n\nconst NAMESPACE_REGEX = /^(\\.[^/:.]|[\\w-])+$/;\nconst NAME_REGEX = /^[^/:]+$/;\n\nexport type IntoId = Identifier | string | ExtensionType | App;\n\nexport class Identifier {\n public readonly namespace: string;\n public readonly path: string[];\n\n constructor(\n namespace: string,\n ...path: string[]\n ) {\n Identifier.validate(namespace, path);\n this.namespace = namespace;\n this.path = path;\n }\n\n public static serialize(identifier: Identifier): string {\n return identifier.key();\n }\n\n public static deserialize(json: string): Identifier {\n return Identifier.fromJson(json);\n }\n\n public static from(id: IntoId): Identifier {\n if (id instanceof Identifier) {\n return id;\n } else if (id instanceof App) {\n return id.id;\n } else if (typeof id === 'string') {\n return Identifier.fromKey(id);\n } else {\n // Try to infer\n // Vite does not preserve class information when importing from different packages\n const idCasted = id as { namespace: string; path: string[] };\n if (\n typeof idCasted.namespace === 'string' &&\n Array.isArray(idCasted.path) &&\n idCasted.path.every((p) => typeof p === 'string')\n ) {\n return new Identifier(idCasted.namespace, ...idCasted.path);\n }\n const idWithId = id as { id: IntoId | undefined };\n if (typeof idWithId.id !== 'undefined') {\n return Identifier.from(idWithId.id);\n }\n throw new Error(`Cannot convert to Identifier: ${id}`);\n }\n }\n\n public static fromOptional(id: IntoId | undefined | null): Identifier | undefined {\n if (id === undefined || id === null) {\n return undefined;\n }\n return Identifier.from(id);\n }\n\n static validate(namespace: string, path: string[]): void {\n if (!namespace) {\n throw new Error('Invalid namespace: Namespace cannot be empty');\n }\n if (path.length === 0) {\n throw new Error('Invalid path: Path must have at least one name');\n }\n if (!NAMESPACE_REGEX.test(namespace)) {\n throw new Error(`Invalid namespace: Namespace must match ${NAMESPACE_REGEX}`);\n }\n for (const name of path) {\n if (!NAME_REGEX.test(name)) {\n throw new Error(`Invalid path: Name must match ${NAME_REGEX} but got ${name}`);\n }\n }\n }\n\n static format(namespace: string, ...path: string[]): string {\n Identifier.validate(namespace, path);\n return `${namespace}:${path.join('/')}`;\n }\n\n static fromKey(key: string): Identifier {\n const separator = key.indexOf(':');\n if (separator === -1) {\n throw new Error(`Invalid key: No separator found in ${key}`);\n }\n if (key.indexOf(':', separator + 1) !== -1) {\n throw new Error(`Invalid key: Multiple separators found in ${key}`);\n }\n const namespace = key.slice(0, separator);\n const path = key.slice(separator + 1);\n if (!namespace || !path) {\n throw new Error('Invalid key: Namespace and path cannot be empty');\n }\n return new Identifier(namespace, ...path.split('/'));\n }\n\n public static fromUrl(url: string | URL): Identifier {\n const parsedUrl = new URL(url);\n const namespace = Identifier.namespaceFromUrl(parsedUrl.href);\n const path = parsedUrl.pathname.slice(1).split('/');\n return new Identifier(namespace, ...path);\n }\n\n public static namespaceFromUrl(url: string | URL): string {\n const parsed = new URL(url);\n return parsed.hostname.split('.').reverse().join('.');\n }\n\n public get base(): Identifier {\n return new Identifier(this.namespace, this.path[0]);\n }\n\n public toJson(): string {\n return this.key();\n }\n\n static fromJson(json: string): Identifier {\n return Identifier.fromKey(json);\n }\n\n public key(): string {\n return Identifier.format(this.namespace, ...this.path);\n }\n\n public isEqual(other: Identifier): boolean {\n return this.key() === other.key();\n }\n\n public isNamespaceEqual(other: Identifier): boolean {\n return this.namespace === other.namespace;\n }\n\n public isSubpathOf(other: Identifier): boolean {\n if (this.namespace !== other.namespace) {\n return false;\n }\n if (this.path.length < other.path.length) {\n return false;\n }\n for (let i = 0; i < other.path.length; i++) {\n if (this.path[i] !== other.path[i]) {\n return false;\n }\n }\n return true;\n }\n\n public join(...path: string[]): Identifier {\n return new Identifier(this.namespace, ...this.path, ...path);\n }\n}\n\nexport class IdentifierMap<T> {\n private readonly map: Map<string, T> = new Map();\n constructor(\n entries?: Iterable<[Identifier, T]>,\n ) {\n if (!entries) return;\n for (const [id, value] of entries) {\n this.map.set(id.key(), value);\n }\n }\n\n public get size(): number {\n return this.map.size;\n }\n\n public set(identifier: Identifier, value: T): void {\n this.map.set(identifier.key(), value);\n }\n\n public get(identifier: Identifier): T | undefined {\n return this.map.get(identifier.key());\n }\n\n public has(identifier: Identifier): boolean {\n return this.map.has(identifier.key());\n }\n\n public delete(identifier: Identifier): void {\n this.map.delete(identifier.key());\n }\n\n public clear(): void {\n this.map.clear();\n }\n\n public *keys(): IterableIterator<Identifier> {\n for (const key of this.map.keys()) {\n yield Identifier.fromKey(key);\n }\n }\n\n public values(): IterableIterator<T> {\n return this.map.values();\n }\n\n public *entries(): IterableIterator<[Identifier, T]> {\n for (const [key, value] of this.map.entries()) {\n yield [Identifier.fromKey(key), value];\n }\n }\n\n public [Symbol.iterator](): IterableIterator<[Identifier, T]> {\n return this.entries();\n }\n}\n\nexport class IdentifierSet {\n private readonly set: Set<string> = new Set();\n\n public get size(): number {\n return this.set.size;\n }\n\n public add(identifier: Identifier): void {\n this.set.add(identifier.key());\n }\n\n public has(identifier: Identifier): boolean {\n return this.set.has(identifier.key());\n }\n\n public delete(identifier: Identifier): void {\n this.set.delete(identifier.key());\n }\n\n public clear(): void {\n this.set.clear();\n }\n\n public *keys(): IterableIterator<Identifier> {\n for (const key of this.set.keys()) {\n yield Identifier.fromKey(key);\n }\n }\n\n public values(): IterableIterator<Identifier> {\n return this.keys();\n }\n\n public *entries(): IterableIterator<[Identifier, Identifier]> {\n for (const key of this.set.keys()) {\n const identifier = Identifier.fromKey(key);\n yield [identifier, identifier];\n }\n }\n\n public [Symbol.iterator](): IterableIterator<[Identifier, Identifier]> {\n return this.entries();\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["App", "NAMESPACE_REGEX", "NAME_REGEX", "Identifier", "namespace", "path", "identifier", "json", "id", "idCasted", "p", "idWithId", "name", "key", "separator", "url", "parsedUrl", "other", "i", "IdentifierMap", "entries", "value", "IdentifierSet"]
|
|
7
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export { AppIndexRegistry, type AppIndexRegistryJSON } from './api/server';
|
|
2
|
-
export { App, AppMetadata } from './app.js';
|
|
2
|
+
export { App, type AppMetadata } from './app.js';
|
|
3
3
|
export { DisconnectReason } from './errors.js';
|
|
4
|
-
export { Identifier, IdentifierMap, IdentifierSet, IntoId } from './identifier';
|
|
4
|
+
export { Identifier, IdentifierMap, IdentifierSet, type IntoId } from './identifier';
|
|
5
5
|
export * as network from './network';
|
|
6
6
|
export { Omu } from './omu.js';
|
|
7
7
|
export { Serializer } from './serialize';
|
|
8
8
|
export type { Serializable } from './serialize';
|
|
9
|
-
export { BrowserSession, type SessionParam, type SessioTokenProvider
|
|
9
|
+
export { BrowserSession, type SessionParam, type SessioTokenProvider } from './token';
|
|
10
10
|
import { Identifier } from './identifier';
|
|
11
11
|
export declare const OmuPermissions: {
|
|
12
12
|
readonly ASSET_PERMISSION_ID: Identifier;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{AppIndexRegistry as g}from"./api/server";import{App as k}from"./app.js";import{DisconnectReason as w}from"./errors.js";import{Identifier as b,IdentifierMap as v,IdentifierSet as J}from"./identifier";import*as j from"./network";import{Omu as F}from"./omu.js";import{Serializer as Z}from"./serialize";import{BrowserSession as II}from"./token";import{ASSET_PERMISSION_ID as I}from"./api/asset";import{DASHBOARD_APP_INSTALL_PERMISSION_ID as S,DAShBOARD_DRAG_DROP_PERMISSION_ID as _,DASHBOARD_OPEN_APP_PERMISSION_ID as E,DASHBOARD_SET_PERMISSION_ID as e,DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID as R,DASHBOARD_WEBVIEW_PERMISSION_ID as r,DASHOBARD_APP_EDIT_PERMISSION_ID as D,DASHOBARD_APP_READ_PERMISSION_ID as O}from"./api/dashboard";import{HTTP_REQUEST_PERMISSION_ID as P}from"./api/http";import{I18N_GET_LOCALES_PERMISSION_ID as A,I18N_SET_LOCALES_PERMISSION_ID as i}from"./api/i18n";import{LOGGER_LOG_PERMISSION_ID as N}from"./api/logger";import{PLUGIN_MANAGE_PACKAGE_PERMISSION_ID as o,PLUGIN_READ_PACKAGE_PERMISSION_ID as n}from"./api/plugin";import{REGISTRY_PERMISSION_ID as t}from"./api/registry";import{SERVER_APPS_READ_PERMISSION_ID as d,SERVER_SHUTDOWN_PERMISSION_ID as M,TRUSTED_ORIGINS_GET_PERMISSION_ID as f,TRUSTED_ORIGINS_SET_PERMISSION_ID as T}from"./api/server";import{GENERATE_TOKEN_PERMISSION_ID as a,REMOTE_APP_REQUEST_PERMISSION_ID as p,SESSIONS_READ_PERMISSION_ID as m}from"./api/session";import{TABLE_PERMISSION_ID as y}from"./api/table";const c={ASSET_PERMISSION_ID:I,DASHBOARD_APP_INSTALL_PERMISSION_ID:S,DAShBOARD_DRAG_DROP_PERMISSION_ID:_,DASHBOARD_OPEN_APP_PERMISSION_ID:E,DASHBOARD_SET_PERMISSION_ID:e,DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID:R,DASHBOARD_WEBVIEW_PERMISSION_ID:r,DASHOBARD_APP_EDIT_PERMISSION_ID:D,DASHOBARD_APP_READ_PERMISSION_ID:O,HTTP_REQUEST_PERMISSION_ID:P,I18N_GET_LOCALES_PERMISSION_ID:A,I18N_SET_LOCALES_PERMISSION_ID:i,LOGGER_LOG_PERMISSION_ID:N,PLUGIN_MANAGE_PACKAGE_PERMISSION_ID:o,PLUGIN_READ_PACKAGE_PERMISSION_ID:n,REGISTRY_PERMISSION_ID:t,SERVER_APPS_READ_PERMISSION_ID:d,SERVER_SHUTDOWN_PERMISSION_ID:M,TRUSTED_ORIGINS_GET_PERMISSION_ID:f,TRUSTED_ORIGINS_SET_PERMISSION_ID:T,GENERATE_TOKEN_PERMISSION_ID:a,REMOTE_APP_REQUEST_PERMISSION_ID:p,SESSIONS_READ_PERMISSION_ID:m,TABLE_PERMISSION_ID:y};export{k as App,g as AppIndexRegistry,II as BrowserSession,w as DisconnectReason,b as Identifier,v as IdentifierMap,J as IdentifierSet,F as Omu,c as OmuPermissions,Z as Serializer,j as network};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { AppIndexRegistry, type AppIndexRegistryJSON } from './api/server';\nexport { App, type AppMetadata } from './app.js';\nexport { DisconnectReason } from './errors.js';\nexport { Identifier, IdentifierMap, IdentifierSet, type IntoId } from './identifier';\nexport * as network from './network';\nexport { Omu } from './omu.js';\nexport { Serializer } from './serialize';\nexport type { Serializable } from './serialize';\nexport { BrowserSession, type SessionParam, type SessioTokenProvider } from './token';\n\nimport { ASSET_PERMISSION_ID } from './api/asset';\nimport {\n DASHBOARD_APP_INSTALL_PERMISSION_ID,\n DAShBOARD_DRAG_DROP_PERMISSION_ID,\n DASHBOARD_OPEN_APP_PERMISSION_ID,\n DASHBOARD_SET_PERMISSION_ID,\n DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID,\n DASHBOARD_WEBVIEW_PERMISSION_ID,\n DASHOBARD_APP_EDIT_PERMISSION_ID,\n DASHOBARD_APP_READ_PERMISSION_ID,\n} from './api/dashboard';\nimport { HTTP_REQUEST_PERMISSION_ID } from './api/http';\nimport { I18N_GET_LOCALES_PERMISSION_ID, I18N_SET_LOCALES_PERMISSION_ID } from './api/i18n';\nimport { LOGGER_LOG_PERMISSION_ID } from './api/logger';\nimport { PLUGIN_MANAGE_PACKAGE_PERMISSION_ID, PLUGIN_READ_PACKAGE_PERMISSION_ID } from './api/plugin';\nimport { REGISTRY_PERMISSION_ID } from './api/registry';\nimport { SERVER_APPS_READ_PERMISSION_ID, SERVER_SHUTDOWN_PERMISSION_ID, TRUSTED_ORIGINS_GET_PERMISSION_ID, TRUSTED_ORIGINS_SET_PERMISSION_ID } from './api/server';\nimport { GENERATE_TOKEN_PERMISSION_ID, REMOTE_APP_REQUEST_PERMISSION_ID, SESSIONS_READ_PERMISSION_ID } from './api/session';\nimport { TABLE_PERMISSION_ID } from './api/table';\nimport { Identifier } from './identifier';\n\nexport const OmuPermissions: {\n // Asset API\n readonly ASSET_PERMISSION_ID: Identifier;\n // Dashboard API\n readonly DASHBOARD_APP_INSTALL_PERMISSION_ID: Identifier; readonly DAShBOARD_DRAG_DROP_PERMISSION_ID: Identifier; readonly DASHBOARD_OPEN_APP_PERMISSION_ID: Identifier; readonly DASHBOARD_SET_PERMISSION_ID: Identifier; readonly DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID: Identifier; readonly DASHBOARD_WEBVIEW_PERMISSION_ID: Identifier; readonly DASHOBARD_APP_EDIT_PERMISSION_ID: Identifier; readonly DASHOBARD_APP_READ_PERMISSION_ID: Identifier;\n // HTTP API\n readonly HTTP_REQUEST_PERMISSION_ID: Identifier;\n // I18n API\n readonly I18N_GET_LOCALES_PERMISSION_ID: Identifier; readonly I18N_SET_LOCALES_PERMISSION_ID: Identifier;\n // Logger API\n readonly LOGGER_LOG_PERMISSION_ID: Identifier;\n // Plugin API\n readonly PLUGIN_MANAGE_PACKAGE_PERMISSION_ID: Identifier; readonly PLUGIN_READ_PACKAGE_PERMISSION_ID: Identifier;\n // Registry API\n readonly REGISTRY_PERMISSION_ID: Identifier;\n // Server API\n readonly SERVER_APPS_READ_PERMISSION_ID: Identifier; readonly SERVER_SHUTDOWN_PERMISSION_ID: Identifier; readonly TRUSTED_ORIGINS_GET_PERMISSION_ID: Identifier; readonly TRUSTED_ORIGINS_SET_PERMISSION_ID: Identifier;\n // Session API\n readonly GENERATE_TOKEN_PERMISSION_ID: Identifier; readonly REMOTE_APP_REQUEST_PERMISSION_ID: Identifier; readonly SESSIONS_READ_PERMISSION_ID: Identifier;\n // Table API\n readonly TABLE_PERMISSION_ID: Identifier;\n} = {\n // Asset API\n ASSET_PERMISSION_ID: ASSET_PERMISSION_ID,\n // Dashboard API\n DASHBOARD_APP_INSTALL_PERMISSION_ID,\n DAShBOARD_DRAG_DROP_PERMISSION_ID,\n DASHBOARD_OPEN_APP_PERMISSION_ID,\n DASHBOARD_SET_PERMISSION_ID,\n DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID,\n DASHBOARD_WEBVIEW_PERMISSION_ID,\n DASHOBARD_APP_EDIT_PERMISSION_ID,\n DASHOBARD_APP_READ_PERMISSION_ID,\n // HTTP API\n HTTP_REQUEST_PERMISSION_ID,\n // I18n API\n I18N_GET_LOCALES_PERMISSION_ID,\n I18N_SET_LOCALES_PERMISSION_ID,\n // Logger API\n LOGGER_LOG_PERMISSION_ID,\n // Plugin API\n PLUGIN_MANAGE_PACKAGE_PERMISSION_ID,\n PLUGIN_READ_PACKAGE_PERMISSION_ID,\n // Registry API\n REGISTRY_PERMISSION_ID,\n // Server API\n SERVER_APPS_READ_PERMISSION_ID,\n SERVER_SHUTDOWN_PERMISSION_ID,\n TRUSTED_ORIGINS_GET_PERMISSION_ID,\n TRUSTED_ORIGINS_SET_PERMISSION_ID,\n // Session API\n GENERATE_TOKEN_PERMISSION_ID,\n REMOTE_APP_REQUEST_PERMISSION_ID,\n SESSIONS_READ_PERMISSION_ID,\n // Table API\n TABLE_PERMISSION_ID,\n} as const;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,oBAAAA,MAAmD,eAC5D,OAAS,OAAAC,MAA6B,WACtC,OAAS,oBAAAC,MAAwB,cACjC,OAAS,cAAAC,EAAY,iBAAAC,EAAe,iBAAAC,MAAkC,eACtE,UAAYC,MAAa,YACzB,OAAS,OAAAC,MAAW,WACpB,OAAS,cAAAC,MAAkB,cAE3B,OAAS,kBAAAC,OAAmE,UAE5E,OAAS,uBAAAC,MAA2B,cACpC,OACI,uCAAAC,EACA,qCAAAC,EACA,oCAAAC,EACA,+BAAAC,EACA,8CAAAC,EACA,mCAAAC,EACA,oCAAAC,EACA,oCAAAC,MACG,kBACP,OAAS,8BAAAC,MAAkC,aAC3C,OAAS,kCAAAC,EAAgC,kCAAAC,MAAsC,aAC/E,OAAS,4BAAAC,MAAgC,eACzC,OAAS,uCAAAC,EAAqC,qCAAAC,MAAyC,eACvF,OAAS,0BAAAC,MAA8B,iBACvC,OAAS,kCAAAC,EAAgC,iCAAAC,EAA+B,qCAAAC,EAAmC,qCAAAC,MAAyC,eACpJ,OAAS,gCAAAC,EAA8B,oCAAAC,EAAkC,+BAAAC,MAAmC,gBAC5G,OAAS,uBAAAC,MAA2B,cAG7B,MAAMC,EAqBT,CAEA,oBAAqBxB,EAErB,oCAAAC,EACA,kCAAAC,EACA,iCAAAC,EACA,4BAAAC,EACA,2CAAAC,EACA,gCAAAC,EACA,iCAAAC,EACA,iCAAAC,EAEA,2BAAAC,EAEA,+BAAAC,EACA,+BAAAC,EAEA,yBAAAC,EAEA,oCAAAC,EACA,kCAAAC,EAEA,uBAAAC,EAEA,+BAAAC,EACA,8BAAAC,EACA,kCAAAC,EACA,kCAAAC,EAEA,6BAAAC,EACA,iCAAAC,EACA,4BAAAC,EAEA,oBAAAC,CACJ",
|
|
6
|
+
"names": ["AppIndexRegistry", "App", "DisconnectReason", "Identifier", "IdentifierMap", "IdentifierSet", "network", "Omu", "Serializer", "BrowserSession", "ASSET_PERMISSION_ID", "DASHBOARD_APP_INSTALL_PERMISSION_ID", "DAShBOARD_DRAG_DROP_PERMISSION_ID", "DASHBOARD_OPEN_APP_PERMISSION_ID", "DASHBOARD_SET_PERMISSION_ID", "DASHBOARD_SPEECH_RECOGNITION_PERMISSION_ID", "DASHBOARD_WEBVIEW_PERMISSION_ID", "DASHOBARD_APP_EDIT_PERMISSION_ID", "DASHOBARD_APP_READ_PERMISSION_ID", "HTTP_REQUEST_PERMISSION_ID", "I18N_GET_LOCALES_PERMISSION_ID", "I18N_SET_LOCALES_PERMISSION_ID", "LOGGER_LOG_PERMISSION_ID", "PLUGIN_MANAGE_PACKAGE_PERMISSION_ID", "PLUGIN_READ_PACKAGE_PERMISSION_ID", "REGISTRY_PERMISSION_ID", "SERVER_APPS_READ_PERMISSION_ID", "SERVER_SHUTDOWN_PERMISSION_ID", "TRUSTED_ORIGINS_GET_PERMISSION_ID", "TRUSTED_ORIGINS_SET_PERMISSION_ID", "GENERATE_TOKEN_PERMISSION_ID", "REMOTE_APP_REQUEST_PERMISSION_ID", "SESSIONS_READ_PERMISSION_ID", "TABLE_PERMISSION_ID", "OmuPermissions"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/localization/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { Locale as Locale, LOCALE_NAMES } from './locale.js';\nexport type { LocalizedText, Translations } from './localization.js';\n\n"],
|
|
5
|
+
"mappings": "AAAA,OAAmB,UAAVA,EAAkB,gBAAAC,MAAoB",
|
|
6
|
+
"names": ["Locale", "LOCALE_NAMES"]
|
|
7
|
+
}
|