@omujs/omu 0.9.47 → 0.9.49

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.
Files changed (202) hide show
  1. package/dist/dts/api/asset/extension.d.ts +25 -0
  2. package/dist/dts/api/asset/index.d.ts +2 -0
  3. package/dist/dts/api/dashboard/extension.d.ts +183 -0
  4. package/{src/api/dashboard/handler.ts → dist/dts/api/dashboard/handler.d.ts} +0 -2
  5. package/dist/dts/api/dashboard/index.d.ts +3 -0
  6. package/dist/dts/api/dashboard/packets.d.ts +73 -0
  7. package/dist/dts/api/endpoint/endpoint.d.ts +21 -0
  8. package/dist/dts/api/endpoint/extension.d.ts +17 -0
  9. package/{src/api/endpoint/index.ts → dist/dts/api/endpoint/index.d.ts} +0 -1
  10. package/dist/dts/api/endpoint/packets.d.ts +51 -0
  11. package/dist/dts/api/extension-registry.d.ts +8 -0
  12. package/dist/dts/api/extension.d.ts +11 -0
  13. package/dist/dts/api/http/extension.d.ts +41 -0
  14. package/dist/dts/api/http/http.d.ts +36 -0
  15. package/{src/api/http/index.ts → dist/dts/api/http/index.d.ts} +0 -1
  16. package/dist/dts/api/http/websocket.d.ts +125 -0
  17. package/dist/dts/api/i18n/extension.d.ts +19 -0
  18. package/{src/api/i18n/index.ts → dist/dts/api/i18n/index.d.ts} +0 -1
  19. package/{src/api/index.ts → dist/dts/api/index.d.ts} +0 -1
  20. package/dist/dts/api/logger/extension.d.ts +25 -0
  21. package/dist/dts/api/logger/index.d.ts +1 -0
  22. package/dist/dts/api/logger/packets.d.ts +18 -0
  23. package/dist/dts/api/permission/extension.d.ts +19 -0
  24. package/{src/api/permission/index.ts → dist/dts/api/permission/index.d.ts} +0 -1
  25. package/dist/dts/api/permission/permission.d.ts +25 -0
  26. package/dist/dts/api/plugin/extension.d.ts +43 -0
  27. package/{src/api/plugin/index.ts → dist/dts/api/plugin/index.d.ts} +0 -1
  28. package/{src/api/plugin/package-info.ts → dist/dts/api/plugin/package-info.d.ts} +0 -7
  29. package/dist/dts/api/registry/extension.d.ts +23 -0
  30. package/{src/api/registry/index.ts → dist/dts/api/registry/index.d.ts} +0 -1
  31. package/dist/dts/api/registry/packets.d.ts +20 -0
  32. package/{src/api/registry/registry.ts → dist/dts/api/registry/registry.d.ts} +11 -53
  33. package/dist/dts/api/server/extension.d.ts +61 -0
  34. package/dist/dts/api/server/index.d.ts +1 -0
  35. package/dist/dts/api/session/extension.d.ts +52 -0
  36. package/dist/dts/api/session/index.d.ts +1 -0
  37. package/dist/dts/api/signal/extension.d.ts +19 -0
  38. package/dist/dts/api/signal/packets.d.ts +21 -0
  39. package/dist/dts/api/signal/signal.d.ts +33 -0
  40. package/dist/dts/api/table/extension.d.ts +26 -0
  41. package/{src/api/table/index.ts → dist/dts/api/table/index.d.ts} +0 -1
  42. package/dist/dts/api/table/packets.d.ts +65 -0
  43. package/dist/dts/api/table/table.d.ts +75 -0
  44. package/dist/dts/app.d.ts +49 -0
  45. package/dist/dts/const.d.ts +2 -0
  46. package/dist/dts/errors.d.ts +36 -0
  47. package/dist/dts/event/index.d.ts +6 -0
  48. package/dist/dts/helper.d.ts +10 -0
  49. package/dist/dts/identifier.d.ts +51 -0
  50. package/dist/dts/index.d.ts +36 -0
  51. package/{src/localization/index.ts → dist/dts/localization/index.d.ts} +0 -1
  52. package/dist/dts/localization/locale.d.ts +735 -0
  53. package/{src/localization/localization.ts → dist/dts/localization/localization.d.ts} +0 -2
  54. package/dist/dts/lock.d.ts +6 -0
  55. package/dist/dts/network/connection.d.ts +17 -0
  56. package/dist/dts/network/encryption.d.ts +38 -0
  57. package/dist/dts/network/frame-transport.d.ts +22 -0
  58. package/{src/network/index.ts → dist/dts/network/index.d.ts} +0 -1
  59. package/dist/dts/network/network.d.ts +59 -0
  60. package/{src/network/packet/index.ts → dist/dts/network/packet/index.d.ts} +0 -1
  61. package/dist/dts/network/packet/packet-types.d.ts +84 -0
  62. package/dist/dts/network/packet/packet.d.ts +25 -0
  63. package/dist/dts/network/websocket-transport.d.ts +24 -0
  64. package/dist/dts/omu.d.ts +61 -0
  65. package/dist/dts/result.d.ts +26 -0
  66. package/dist/dts/serialize/bytebuffer.d.ts +73 -0
  67. package/dist/dts/serialize/serializer.d.ts +26 -0
  68. package/dist/dts/token.d.ts +14 -0
  69. package/dist/dts/version.d.ts +2 -0
  70. package/dist/esm/address.js +4 -0
  71. package/dist/esm/api/asset/extension.js +911 -0
  72. package/dist/esm/api/asset/index.js +909 -0
  73. package/dist/esm/api/dashboard/extension.js +1362 -0
  74. package/dist/esm/api/dashboard/handler.js +4 -0
  75. package/dist/esm/api/dashboard/index.js +1361 -0
  76. package/dist/esm/api/dashboard/packets.js +419 -0
  77. package/dist/esm/api/endpoint/endpoint.js +383 -0
  78. package/dist/esm/api/endpoint/extension.js +1096 -0
  79. package/dist/esm/api/endpoint/index.js +383 -0
  80. package/dist/esm/api/endpoint/packets.js +799 -0
  81. package/dist/esm/api/extension-registry.js +23 -0
  82. package/dist/esm/api/extension.js +278 -0
  83. package/dist/esm/api/http/extension.js +1420 -0
  84. package/dist/esm/api/http/http.js +448 -0
  85. package/dist/esm/api/http/index.js +1419 -0
  86. package/dist/esm/api/http/websocket.js +220 -0
  87. package/dist/esm/api/i18n/extension.js +1339 -0
  88. package/dist/esm/api/i18n/index.js +1337 -0
  89. package/dist/esm/api/index.js +295 -0
  90. package/dist/esm/api/logger/extension.js +856 -0
  91. package/dist/esm/api/logger/index.js +852 -0
  92. package/dist/esm/api/logger/packets.js +673 -0
  93. package/dist/esm/api/permission/extension.js +535 -0
  94. package/dist/esm/api/permission/index.js +294 -0
  95. package/dist/esm/api/permission/permission.js +294 -0
  96. package/dist/esm/api/plugin/extension.js +531 -0
  97. package/dist/esm/api/plugin/index.js +529 -0
  98. package/dist/esm/api/plugin/package-info.js +4 -0
  99. package/dist/esm/api/registry/extension.js +1286 -0
  100. package/dist/esm/api/registry/index.js +1285 -0
  101. package/dist/esm/api/registry/packets.js +694 -0
  102. package/dist/esm/api/registry/registry.js +383 -0
  103. package/dist/esm/api/server/extension.js +2140 -0
  104. package/dist/esm/api/server/index.js +2118 -0
  105. package/dist/esm/api/session/extension.js +2235 -0
  106. package/dist/esm/api/session/index.js +2235 -0
  107. package/dist/esm/api/signal/extension.js +1031 -0
  108. package/dist/esm/api/signal/index.js +379 -0
  109. package/dist/esm/api/signal/packets.js +690 -0
  110. package/dist/esm/api/signal/signal.js +379 -0
  111. package/dist/esm/api/table/extension.js +1553 -0
  112. package/dist/esm/api/table/index.js +1552 -0
  113. package/dist/esm/api/table/packets.js +904 -0
  114. package/dist/esm/api/table/table.js +383 -0
  115. package/dist/esm/app.js +264 -0
  116. package/dist/esm/const.js +11 -0
  117. package/dist/esm/errors.js +548 -0
  118. package/dist/esm/event/index.js +22 -0
  119. package/dist/esm/helper.js +15 -0
  120. package/dist/esm/identifier.js +266 -0
  121. package/dist/esm/index.js +5186 -0
  122. package/dist/esm/localization/index.js +742 -0
  123. package/dist/esm/localization/locale.js +742 -0
  124. package/dist/esm/localization/localization.js +4 -0
  125. package/dist/esm/lock.js +46 -0
  126. package/dist/esm/network/connection.js +293 -0
  127. package/dist/esm/network/encryption.js +986 -0
  128. package/dist/esm/network/frame-transport.js +531 -0
  129. package/dist/esm/network/index.js +1627 -0
  130. package/dist/esm/network/network.js +1368 -0
  131. package/dist/esm/network/packet/index.js +485 -0
  132. package/dist/esm/network/packet/packet-types.js +486 -0
  133. package/dist/esm/network/packet/packet.js +126 -0
  134. package/dist/esm/network/websocket-transport.js +493 -0
  135. package/dist/esm/omu.js +4945 -0
  136. package/dist/esm/result.js +68 -0
  137. package/dist/esm/serialize/bytebuffer.js +384 -0
  138. package/dist/esm/serialize/index.js +471 -0
  139. package/dist/esm/serialize/serializer.js +97 -0
  140. package/dist/esm/token.js +42 -0
  141. package/dist/esm/version.js +11 -0
  142. package/dist/tsconfig.tsbuildinfo +1 -0
  143. package/package.json +4 -1
  144. package/CHANGELOG.md +0 -1837
  145. package/src/api/asset/extension.ts +0 -193
  146. package/src/api/asset/index.ts +0 -5
  147. package/src/api/dashboard/extension.ts +0 -651
  148. package/src/api/dashboard/index.ts +0 -38
  149. package/src/api/dashboard/packets.ts +0 -126
  150. package/src/api/endpoint/endpoint.ts +0 -56
  151. package/src/api/endpoint/extension.ts +0 -133
  152. package/src/api/endpoint/packets.ts +0 -176
  153. package/src/api/extension-registry.ts +0 -17
  154. package/src/api/extension.ts +0 -19
  155. package/src/api/http/extension.ts +0 -401
  156. package/src/api/http/http.ts +0 -79
  157. package/src/api/http/websocket.ts +0 -283
  158. package/src/api/i18n/extension.ts +0 -65
  159. package/src/api/logger/extension.ts +0 -75
  160. package/src/api/logger/index.ts +0 -4
  161. package/src/api/logger/packets.ts +0 -38
  162. package/src/api/permission/extension.ts +0 -107
  163. package/src/api/permission/permission.ts +0 -53
  164. package/src/api/plugin/extension.ts +0 -100
  165. package/src/api/registry/extension.ts +0 -326
  166. package/src/api/registry/packets.ts +0 -64
  167. package/src/api/server/extension.ts +0 -155
  168. package/src/api/server/index.ts +0 -11
  169. package/src/api/session/extension.ts +0 -205
  170. package/src/api/session/index.ts +0 -7
  171. package/src/api/signal/extension.ts +0 -125
  172. package/src/api/signal/packets.ts +0 -61
  173. package/src/api/signal/signal.ts +0 -67
  174. package/src/api/table/extension.ts +0 -554
  175. package/src/api/table/packets.ts +0 -252
  176. package/src/api/table/table.ts +0 -113
  177. package/src/app.ts +0 -95
  178. package/src/const.ts +0 -2
  179. package/src/errors.ts +0 -70
  180. package/src/event/index.ts +0 -18
  181. package/src/helper.ts +0 -16
  182. package/src/identifier.ts +0 -256
  183. package/src/index.ts +0 -87
  184. package/src/localization/locale.ts +0 -737
  185. package/src/lock.ts +0 -43
  186. package/src/network/connection.ts +0 -45
  187. package/src/network/encryption.ts +0 -221
  188. package/src/network/frame-transport.ts +0 -186
  189. package/src/network/network.ts +0 -322
  190. package/src/network/packet/packet-types.ts +0 -164
  191. package/src/network/packet/packet.ts +0 -55
  192. package/src/network/websocket-transport.ts +0 -123
  193. package/src/omu.ts +0 -156
  194. package/src/result.ts +0 -78
  195. package/src/serialize/bytebuffer.ts +0 -432
  196. package/src/serialize/serializer.ts +0 -149
  197. package/src/token.ts +0 -39
  198. package/src/version.ts +0 -2
  199. package/tsconfig.json +0 -18
  200. /package/{src/address.ts → dist/dts/address.d.ts} +0 -0
  201. /package/{src/api/signal/index.ts → dist/dts/api/signal/index.d.ts} +0 -0
  202. /package/{src/serialize/index.ts → dist/dts/serialize/index.d.ts} +0 -0
@@ -0,0 +1,25 @@
1
+ import type { Unlisten } from '../../event';
2
+ import { Identifier } from '../../identifier';
3
+ import { PacketType } from '../../network/packet/packet.js';
4
+ import { Omu } from '../../omu';
5
+ import { ExtensionType } from '../extension.js';
6
+ import type { LogMessage } from './packets.js';
7
+ import { LogPacket } from './packets.js';
8
+ export declare const LOGGER_EXTENSION_TYPE: ExtensionType<LoggerExtension>;
9
+ export declare const LOGGER_LOG_PERMISSION_ID: Identifier;
10
+ export declare const LOGGER_LOG_PACKET: PacketType<LogPacket>;
11
+ export declare const LOGGER_LISTEN_PACKET: PacketType<Identifier>;
12
+ type LogListener = (message: LogMessage) => void;
13
+ export declare class LoggerExtension {
14
+ private readonly omu;
15
+ readonly type: ExtensionType<LoggerExtension>;
16
+ private readonly listeners;
17
+ constructor(omu: Omu);
18
+ log(message: LogMessage): void;
19
+ error(text: string): void;
20
+ warning(text: string): void;
21
+ info(text: string): void;
22
+ debug(text: string): void;
23
+ listen(id: Identifier, listener: LogListener): Unlisten;
24
+ }
25
+ export {};
@@ -0,0 +1 @@
1
+ export { LOGGER_LOG_PERMISSION_ID, } from './extension.js';
@@ -0,0 +1,18 @@
1
+ import { Identifier } from '../../identifier';
2
+ export declare enum LogType {
3
+ ERROR = "error",
4
+ WARNING = "warning",
5
+ INFO = "info",
6
+ DEBUG = "debug"
7
+ }
8
+ export type LogMessage = {
9
+ type: LogType;
10
+ text: string;
11
+ };
12
+ export declare class LogPacket {
13
+ readonly id: Identifier;
14
+ readonly message: LogMessage;
15
+ constructor(id: Identifier, message: LogMessage);
16
+ static serialize(item: LogPacket): Uint8Array;
17
+ static deserialize(item: Uint8Array): LogPacket;
18
+ }
@@ -0,0 +1,19 @@
1
+ import { Identifier, IntoId } from '../../identifier';
2
+ import { Omu } from '../../omu';
3
+ import { ExtensionType } from '../extension.js';
4
+ import { PermissionType } from './permission.js';
5
+ export declare const PERMISSION_EXTENSION_TYPE: ExtensionType<PermissionExtension>;
6
+ export declare class PermissionExtension {
7
+ private readonly omu;
8
+ readonly type: ExtensionType<PermissionExtension>;
9
+ private permissions;
10
+ private readonly registeredPermissions;
11
+ private readonly requiredPermissions;
12
+ constructor(omu: Omu);
13
+ private onTask;
14
+ register(permission: PermissionType): void;
15
+ require(...permissionIds: IntoId[]): void;
16
+ request(...permissionIds: Identifier[]): Promise<void>;
17
+ has(permissionIdentifier: Identifier): boolean;
18
+ required(permissionIdentifier: Identifier): boolean;
19
+ }
@@ -1,2 +1 @@
1
1
  export { PermissionType, type PermissionLevel, type PermissionMetadata } from './permission.js';
2
-
@@ -0,0 +1,25 @@
1
+ import { Identifier, IntoId } from '../../identifier';
2
+ import type { LocalizedText } from '../../localization/localization.js';
3
+ export type PermissionLevel = 'low' | 'medium' | 'high';
4
+ export type PermissionMetadata = {
5
+ name: LocalizedText;
6
+ note?: LocalizedText;
7
+ level: PermissionLevel;
8
+ };
9
+ export type PermissionTypeJson = {
10
+ id: string;
11
+ metadata: PermissionMetadata;
12
+ };
13
+ export declare class PermissionType {
14
+ readonly id: Identifier;
15
+ readonly metadata: PermissionMetadata;
16
+ constructor(options: {
17
+ id: Identifier;
18
+ metadata: PermissionMetadata;
19
+ });
20
+ static create(identifier: IntoId, { metadata, }: {
21
+ metadata: PermissionMetadata;
22
+ }): PermissionType;
23
+ static serialize(data: PermissionType): PermissionTypeJson;
24
+ static deserialize(json: PermissionTypeJson): PermissionType;
25
+ }
@@ -0,0 +1,43 @@
1
+ import { Identifier } from '../../identifier';
2
+ import { Omu } from '../../omu';
3
+ import { ExtensionType } from '../extension.js';
4
+ import { Table } from '../table/table.js';
5
+ export declare const PLUGIN_EXTENSION_TYPE: ExtensionType<PluginExtension>;
6
+ export declare class PluginExtension {
7
+ private readonly omu;
8
+ readonly type: ExtensionType<PluginExtension>;
9
+ private readonly requiredPlugins;
10
+ constructor(omu: Omu);
11
+ getAllowedPackages(): Table<PluginPackageInfo>;
12
+ reload(options: ReloadOptions): void;
13
+ private onTask;
14
+ require(plugins: Record<string, string | null>): void;
15
+ }
16
+ export declare class PluginPackageInfo {
17
+ package: string;
18
+ version: string;
19
+ constructor(_package: string, version: string);
20
+ static serialize(data: PluginPackageInfo): {
21
+ package: string;
22
+ version: string;
23
+ };
24
+ static deserialize(data: {
25
+ package: string;
26
+ version: string;
27
+ }): PluginPackageInfo;
28
+ static fromJson(json: {
29
+ package: string;
30
+ version: string;
31
+ }): PluginPackageInfo;
32
+ toJson(): {
33
+ package: string;
34
+ version: string;
35
+ };
36
+ key(): string;
37
+ }
38
+ export declare const PLUGIN_READ_PACKAGE_PERMISSION_ID: Identifier;
39
+ export declare const PLUGIN_MANAGE_PACKAGE_PERMISSION_ID: Identifier;
40
+ type ReloadOptions = {
41
+ packages: string[] | null;
42
+ };
43
+ export {};
@@ -1,3 +1,2 @@
1
1
  export { PLUGIN_MANAGE_PACKAGE_PERMISSION_ID, PLUGIN_READ_PACKAGE_PERMISSION_ID, PluginPackageInfo } from './extension.js';
2
2
  export type { PackageInfo } from './package-info.js';
3
-
@@ -1,10 +1,8 @@
1
- // type generated from https://warehouse.pypa.io/api-reference/json.html
2
1
  export type Downloads = {
3
2
  last_day: number;
4
3
  last_month: number;
5
4
  last_week: number;
6
5
  };
7
-
8
6
  export type ProjectUrls = {
9
7
  'Bug Reports': string;
10
8
  'Funding': string;
@@ -45,7 +43,6 @@ export type Digests = {
45
43
  md5: string;
46
44
  sha256: string;
47
45
  };
48
-
49
46
  export type ReleasesItem = {
50
47
  comment_text: string;
51
48
  digests: Digests;
@@ -63,12 +60,10 @@ export type ReleasesItem = {
63
60
  yanked: boolean;
64
61
  yanked_reason: string | null;
65
62
  };
66
-
67
63
  export type Releases = {
68
64
  [key: string]: ReleasesItem[];
69
65
  };
70
66
  export type Urls = ReleasesItem[];
71
-
72
67
  export type VulnerabilitiesItem = {
73
68
  aliases: string[];
74
69
  details: string;
@@ -79,9 +74,7 @@ export type VulnerabilitiesItem = {
79
74
  source: string;
80
75
  withdrawn: string | null;
81
76
  };
82
-
83
77
  export type Vulnerabilities = VulnerabilitiesItem[];
84
-
85
78
  export type PackageInfo = {
86
79
  info: Info;
87
80
  last_serial: number;
@@ -0,0 +1,23 @@
1
+ import { Identifier } from '../../identifier';
2
+ import { Omu } from '../../omu';
3
+ import { JsonType, Serializer } from '../../serialize';
4
+ import { type Extension, ExtensionType } from '../extension.js';
5
+ import { type Registry, RegistryType } from './registry.js';
6
+ export declare class RegistryExtension implements Extension {
7
+ private readonly omu;
8
+ readonly type: ExtensionType<RegistryExtension>;
9
+ private readonly registries;
10
+ constructor(omu: Omu);
11
+ private createRegistry;
12
+ get<T>(registryType: RegistryType<T>): Registry<T>;
13
+ json<T, D extends JsonType = JsonType>(name: string, options: {
14
+ default: T;
15
+ serializer?: Serializer<T, D>;
16
+ }): Registry<T>;
17
+ serialized<T>(name: string, options: {
18
+ default: T;
19
+ serializer: Serializer<T, Uint8Array>;
20
+ }): Registry<T>;
21
+ }
22
+ export declare const REGISTRY_EXTENSION_TYPE: ExtensionType<RegistryExtension>;
23
+ export declare const REGISTRY_PERMISSION_ID: Identifier;
@@ -1,3 +1,2 @@
1
1
  export { REGISTRY_PERMISSION_ID } from './extension.js';
2
2
  export { RegistryType, type Registry, type RegistryPermissions } from './registry.js';
3
-
@@ -0,0 +1,20 @@
1
+ import { Identifier } from '../../identifier';
2
+ import { RegistryPermissions, RegistryPermissionsJSON } from './registry';
3
+ export declare class RegistryPacket {
4
+ readonly id: Identifier;
5
+ readonly value: Uint8Array | null;
6
+ constructor(id: Identifier, value: Uint8Array | null);
7
+ static serialize(packet: RegistryPacket): Uint8Array;
8
+ static deserialize(data: Uint8Array): RegistryPacket;
9
+ }
10
+ export interface RegisterPacketJSON {
11
+ id: string;
12
+ permissions: RegistryPermissionsJSON;
13
+ }
14
+ export declare class RegisterPacket {
15
+ readonly id: Identifier;
16
+ readonly permissions: RegistryPermissions;
17
+ constructor(id: Identifier, permissions: RegistryPermissions);
18
+ static serialize(packet: RegisterPacket): RegisterPacketJSON;
19
+ static deserialize(data: RegisterPacketJSON): RegisterPacket;
20
+ }
@@ -1,67 +1,35 @@
1
1
  import type { Unlisten } from '../../event';
2
2
  import { Identifier, IntoId } from '../../identifier';
3
3
  import type { JsonType, Serializable } from '../../serialize';
4
- import { Serializer } from '../../serialize';
5
-
6
4
  export interface RegistryPermissionsJSON {
7
5
  all?: string;
8
6
  read?: string;
9
7
  write?: string;
10
8
  }
11
-
12
9
  export interface RegistryPermissions {
13
10
  all?: IntoId;
14
11
  read?: IntoId;
15
12
  write?: IntoId;
16
13
  }
17
-
18
- export class RegistryType<T> {
19
- constructor(
20
- public readonly id: Identifier,
21
- public readonly defaultValue: T,
22
- public readonly serializer: Serializable<T, Uint8Array>,
23
- public readonly permissions: RegistryPermissions,
24
- ) { }
25
-
26
- public static createJson<T, D extends JsonType = JsonType>(identifier: IntoId, {
27
- name,
28
- defaultValue,
29
- permissions,
30
- serializer,
31
- }: {
14
+ export declare class RegistryType<T> {
15
+ readonly id: Identifier;
16
+ readonly defaultValue: T;
17
+ readonly serializer: Serializable<T, Uint8Array>;
18
+ readonly permissions: RegistryPermissions;
19
+ constructor(id: Identifier, defaultValue: T, serializer: Serializable<T, Uint8Array>, permissions: RegistryPermissions);
20
+ static createJson<T, D extends JsonType = JsonType>(identifier: IntoId, { name, defaultValue, permissions, serializer, }: {
32
21
  name: string;
33
22
  defaultValue: T;
34
23
  permissions?: RegistryPermissions;
35
24
  serializer?: Serializable<T, D>;
36
- }): RegistryType<T> {
37
- return new RegistryType(
38
- Identifier.from(identifier).join(name),
39
- defaultValue,
40
- Serializer.pipe<T, D, Uint8Array>(serializer ?? Serializer.noop(), Serializer.json()),
41
- permissions ?? {},
42
- );
43
- }
44
-
45
- public static createSerialized<T>(identifier: IntoId, {
46
- name,
47
- defaultValue,
48
- serializer,
49
- permissions,
50
- }: {
25
+ }): RegistryType<T>;
26
+ static createSerialized<T>(identifier: IntoId, { name, defaultValue, serializer, permissions, }: {
51
27
  name: string;
52
28
  defaultValue: T;
53
29
  serializer: Serializable<T, Uint8Array>;
54
30
  permissions?: RegistryPermissions;
55
- }): RegistryType<T> {
56
- return new RegistryType(
57
- Identifier.from(identifier).join(name),
58
- defaultValue,
59
- serializer,
60
- permissions ?? {},
61
- );
62
- }
31
+ }): RegistryType<T>;
63
32
  }
64
-
65
33
  export interface Registry<T> {
66
34
  readonly type: RegistryType<T>;
67
35
  readonly value: T;
@@ -70,25 +38,15 @@ export interface Registry<T> {
70
38
  update(fn: (value: T) => PromiseLike<T> | T): Promise<T>;
71
39
  modify(fn: (value: T) => PromiseLike<void> | void): Promise<T>;
72
40
  listen(fn: (value: T) => void): Unlisten;
73
-
74
41
  compatSvelte(): Writable<T>;
75
42
  }
76
-
77
43
  export type Subscriber<T> = (value: T) => void;
78
-
79
44
  export type Unsubscriber = () => void;
80
-
81
45
  export type Updater<T> = (value: T) => T;
82
-
83
- export type StartStopNotifier<T> = (
84
- set: (value: T) => void,
85
- update: (fn: Updater<T>) => void
86
- ) => void | (() => void);
87
-
46
+ export type StartStopNotifier<T> = (set: (value: T) => void, update: (fn: Updater<T>) => void) => void | (() => void);
88
47
  export interface Readable<T> {
89
48
  subscribe(this: void, run: Subscriber<T>): Unsubscriber;
90
49
  }
91
-
92
50
  export interface Writable<T> extends Readable<T> {
93
51
  set(this: void, value: T): void;
94
52
  update(this: void, updater: Updater<T>): void;
@@ -0,0 +1,61 @@
1
+ import { App, AppJson } from '../../app.js';
2
+ import { Identifier, IdentifierMap, IntoId } from '../../identifier';
3
+ import { LocalizedText } from '../../localization/localization.js';
4
+ import { Omu } from '../../omu.js';
5
+ import { ExtensionType, type Extension } from '../extension.js';
6
+ import { Registry, RegistryType } from '../registry';
7
+ import { type Table } from '../table';
8
+ export declare const SERVER_EXTENSION_TYPE: ExtensionType<ServerExtension>;
9
+ export interface AppIndexEntry {
10
+ url: string;
11
+ meta?: AppIndexRegistryMeta;
12
+ added_at: string;
13
+ }
14
+ export interface AppIndex {
15
+ indexes: Record<string, AppIndexEntry>;
16
+ }
17
+ export declare const SERVER_APPS_READ_PERMISSION_ID: Identifier;
18
+ export declare const SERVER_APPS_WRITE_PERMISSION_ID: Identifier;
19
+ export declare const SERVER_INDEX_READ_PERMISSION_ID: Identifier;
20
+ export declare const SERVER_INDEX_REGISTRY_TYPE: RegistryType<AppIndex>;
21
+ export declare const SERVER_SHUTDOWN_PERMISSION_ID: Identifier;
22
+ export declare const TRUSTED_ORIGINS_GET_PERMISSION_ID: Identifier;
23
+ export declare const TRUSTED_ORIGINS_SET_PERMISSION_ID: Identifier;
24
+ export declare class ServerExtension implements Extension {
25
+ private readonly omu;
26
+ readonly type: ExtensionType<ServerExtension>;
27
+ readonly apps: Table<App>;
28
+ readonly index: Registry<AppIndex>;
29
+ readonly trustedHosts: Registry<Record<string, string>>;
30
+ constructor(omu: Omu);
31
+ shutdown(restart?: boolean): Promise<boolean>;
32
+ }
33
+ export declare class SessionObserver {
34
+ readonly onConnectCallbacks: Array<(app: App) => Promise<void> | void>;
35
+ readonly onDisconnectCallbacks: Array<(app: App) => Promise<void> | void>;
36
+ constructor(onConnectCallbacks: Array<(app: App) => Promise<void> | void>, onDisconnectCallbacks: Array<(app: App) => Promise<void> | void>);
37
+ onConnect(callback: (app: App) => Promise<void> | void): void;
38
+ onDisconnect(callback: (app: App) => Promise<void> | void): void;
39
+ }
40
+ export type AppIndexRegistryMeta = {
41
+ name: LocalizedText;
42
+ note: LocalizedText;
43
+ };
44
+ export interface AppIndexRegistryJSON {
45
+ id: string;
46
+ meta?: AppIndexRegistryMeta;
47
+ apps: Record<string, AppJson>;
48
+ }
49
+ export declare class AppIndexRegistry {
50
+ id: Identifier;
51
+ apps: IdentifierMap<App>;
52
+ meta: AppIndexRegistryMeta | undefined;
53
+ constructor(id: Identifier, apps: IdentifierMap<App>, meta: AppIndexRegistryMeta | undefined);
54
+ static build(options: {
55
+ id: IntoId;
56
+ meta: AppIndexRegistryMeta;
57
+ apps: App[];
58
+ }): AppIndexRegistry;
59
+ static fromJSON(json: AppIndexRegistryJSON): AppIndexRegistry;
60
+ toJSON(): AppIndexRegistryJSON;
61
+ }
@@ -0,0 +1 @@
1
+ export { AppIndexRegistry, SERVER_APPS_READ_PERMISSION_ID, SERVER_SHUTDOWN_PERMISSION_ID, TRUSTED_ORIGINS_GET_PERMISSION_ID, TRUSTED_ORIGINS_SET_PERMISSION_ID, type AppIndex, type AppIndexEntry, type AppIndexRegistryJSON, } from './extension.js';
@@ -0,0 +1,52 @@
1
+ import { App } from '../../app';
2
+ import { Identifier, IntoId } from '../../identifier';
3
+ import { Omu } from '../../omu';
4
+ import { SessionParam } from '../../token';
5
+ import { Extension, ExtensionType } from '../extension';
6
+ import { SessionObserver } from '../server/extension';
7
+ import { Table } from '../table';
8
+ export declare const SESSION_EXTENSION_TYPE: ExtensionType<SessionExtension>;
9
+ export declare const SESSIONS_READ_PERMISSION_ID: Identifier;
10
+ export type RequestRemoteAppResponse = {
11
+ type: 'success';
12
+ token: string;
13
+ lan_ip: string;
14
+ } | {
15
+ type: 'error';
16
+ message: string;
17
+ };
18
+ export declare const REMOTE_APP_REQUEST_PERMISSION_ID: Identifier;
19
+ export type GenerateTokenResponse = {
20
+ type: 'success';
21
+ token: string;
22
+ } | {
23
+ type: 'error';
24
+ message: string;
25
+ };
26
+ export declare const GENERATE_TOKEN_PERMISSION_ID: Identifier;
27
+ export declare class SessionExtension implements Extension {
28
+ private readonly omu;
29
+ readonly type: ExtensionType<SessionExtension>;
30
+ readonly sessions: Table<App>;
31
+ private readonly sessionObservers;
32
+ private readonly requiredApps;
33
+ constructor(omu: Omu);
34
+ has(id: IntoId): Promise<boolean>;
35
+ observe(appId: IntoId, options?: {
36
+ onConnect?(app: App): void;
37
+ onDisconnect?(app: App): void;
38
+ }): SessionObserver;
39
+ private handleSessionConnect;
40
+ private handleSessionDisconnect;
41
+ require(...appIds: IntoId[]): void;
42
+ private onTask;
43
+ private onReady;
44
+ requestRemoteApp(options: {
45
+ app: App;
46
+ permissions: IntoId[];
47
+ }): Promise<RequestRemoteAppResponse>;
48
+ generateToken(options: {
49
+ app: App;
50
+ permissions?: IntoId[];
51
+ }): Promise<SessionParam>;
52
+ }
@@ -0,0 +1 @@
1
+ export { GENERATE_TOKEN_PERMISSION_ID, REMOTE_APP_REQUEST_PERMISSION_ID, SESSION_EXTENSION_TYPE, SessionExtension, SESSIONS_READ_PERMISSION_ID, type RequestRemoteAppResponse, } from './extension';
@@ -0,0 +1,19 @@
1
+ import { Omu } from '../../omu';
2
+ import { JsonType, Serializable } from '../../serialize';
3
+ import { ExtensionType, type Extension } from '../extension.js';
4
+ import { SignalType, type Signal } from './signal.js';
5
+ export declare const SIGNAL_EXTENSION_TYPE: ExtensionType<SignalExtension>;
6
+ export declare class SignalExtension implements Extension {
7
+ private readonly omu;
8
+ readonly type: ExtensionType<SignalExtension>;
9
+ private readonly signals;
10
+ constructor(omu: Omu);
11
+ private createSignal;
12
+ json<T, D extends JsonType = JsonType>(name: string, options?: {
13
+ serializer?: Serializable<T, D>;
14
+ }): Signal<T>;
15
+ serialized<T>(name: string, options: {
16
+ serializer: Serializable<T, Uint8Array>;
17
+ }): Signal<T>;
18
+ get<T>(signalType: SignalType<T>): Signal<T>;
19
+ }
@@ -0,0 +1,21 @@
1
+ import { Identifier } from '../../identifier';
2
+ import { SignalPermissions, SignalPermissionsJSON } from './signal.js';
3
+ export declare class SignalPacket {
4
+ readonly id: Identifier;
5
+ readonly body: Uint8Array;
6
+ constructor(id: Identifier, body: Uint8Array);
7
+ static serialize(packet: SignalPacket): Uint8Array;
8
+ static deserialize(data: Uint8Array): SignalPacket;
9
+ }
10
+ interface SignalRegisterPacketJSON {
11
+ id: string;
12
+ permissions: SignalPermissionsJSON;
13
+ }
14
+ export declare class SignalRegisterPacket {
15
+ readonly id: Identifier;
16
+ readonly permissions: SignalPermissions;
17
+ constructor(id: Identifier, permissions: SignalPermissions);
18
+ static serialize(packet: SignalRegisterPacket): SignalRegisterPacketJSON;
19
+ static deserialize(data: SignalRegisterPacketJSON): SignalRegisterPacket;
20
+ }
21
+ export {};
@@ -0,0 +1,33 @@
1
+ import type { Unlisten } from '../../event';
2
+ import { Identifier, IntoId } from '../../identifier';
3
+ import type { Serializable } from '../../serialize';
4
+ export interface SignalPermissionsJSON {
5
+ all?: string;
6
+ listen?: string;
7
+ send?: string;
8
+ }
9
+ export interface SignalPermissions {
10
+ all?: IntoId | undefined;
11
+ listen?: IntoId | undefined;
12
+ send?: IntoId | undefined;
13
+ }
14
+ export declare class SignalType<T> {
15
+ readonly id: Identifier;
16
+ readonly serializer: Serializable<T, Uint8Array>;
17
+ readonly permissions: SignalPermissions;
18
+ constructor(id: Identifier, serializer: Serializable<T, Uint8Array>, permissions: SignalPermissions);
19
+ static createJson<T>(identifier: IntoId, { name, serializer, permissions, }: {
20
+ name: string;
21
+ serializer?: Serializable<T, any>;
22
+ permissions?: SignalPermissions;
23
+ }): SignalType<T>;
24
+ static createSerialized<T>(identifier: IntoId, { name, serializer, permissions, }: {
25
+ name: string;
26
+ serializer: Serializable<T, Uint8Array>;
27
+ permissions?: SignalPermissions;
28
+ }): SignalType<T>;
29
+ }
30
+ export interface Signal<T> {
31
+ listen(handler: (value: T) => void): Unlisten;
32
+ notify(body: T): void;
33
+ }
@@ -0,0 +1,26 @@
1
+ import { Identifier } from '../../identifier';
2
+ import { Omu } from '../../omu';
3
+ import type { JsonType, Serializable } from '../../serialize';
4
+ import type { Extension } from '../extension.js';
5
+ import { ExtensionType } from '../extension.js';
6
+ import type { Table } from './table.js';
7
+ import { TableType } from './table.js';
8
+ export declare const TABLE_EXTENSION_TYPE: ExtensionType<TableExtension>;
9
+ export declare const TABLE_PERMISSION_ID: Identifier;
10
+ export declare class TableExtension implements Extension {
11
+ private readonly omu;
12
+ readonly type: ExtensionType<TableExtension>;
13
+ private readonly tableMap;
14
+ constructor(omu: Omu);
15
+ private createTable;
16
+ json<T, D extends JsonType = JsonType>(name: string, options: {
17
+ key: (item: T) => string;
18
+ serializer?: Serializable<T, D>;
19
+ }): Table<T>;
20
+ serialized<T>(name: string, options: {
21
+ key: (item: T) => string;
22
+ serializer: Serializable<T, Uint8Array>;
23
+ }): Table<T>;
24
+ get<T>(type: TableType<T>): Table<T>;
25
+ has(identifier: Identifier): boolean;
26
+ }
@@ -1,3 +1,2 @@
1
1
  export { TABLE_PERMISSION_ID } from './extension.js';
2
2
  export { TableType, type Table, type TableConfig } from './table.js';
3
-
@@ -0,0 +1,65 @@
1
+ import { Identifier } from '../../identifier';
2
+ import type { TableConfig } from './table.js';
3
+ export declare class TablePacket {
4
+ readonly id: Identifier;
5
+ constructor(id: Identifier);
6
+ static serialize(packet: TablePacket): Uint8Array;
7
+ static deserialize(data: Uint8Array): TablePacket;
8
+ }
9
+ export declare class TableItemsPacket {
10
+ readonly id: Identifier;
11
+ readonly items: Record<string, Uint8Array>;
12
+ constructor(id: Identifier, items: Record<string, Uint8Array>);
13
+ static serialize(packet: TableItemsPacket): Uint8Array;
14
+ static deserialize(data: Uint8Array): TableItemsPacket;
15
+ }
16
+ export declare class TableKeysPacket {
17
+ readonly id: Identifier;
18
+ readonly keys: string[];
19
+ constructor(id: Identifier, keys: string[]);
20
+ static serialize(packet: TableKeysPacket): Uint8Array;
21
+ static deserialize(data: Uint8Array): TableKeysPacket;
22
+ }
23
+ export declare class TableProxyPacket {
24
+ readonly id: Identifier;
25
+ readonly items: Record<string, Uint8Array>;
26
+ readonly key: number;
27
+ constructor(id: Identifier, items: Record<string, Uint8Array>, key: number);
28
+ static serialize(packet: TableProxyPacket): Uint8Array;
29
+ static deserialize(data: Uint8Array): TableProxyPacket;
30
+ }
31
+ export declare class TableFetchPacket {
32
+ readonly id: Identifier;
33
+ readonly limit: number;
34
+ readonly backward: boolean;
35
+ readonly cursor: string | null;
36
+ constructor(id: Identifier, limit: number, backward?: boolean, cursor?: string | null);
37
+ static serialize(packet: TableFetchPacket): Uint8Array;
38
+ static deserialize(data: Uint8Array): TableFetchPacket;
39
+ }
40
+ export declare class TableFetchRangePacket {
41
+ readonly id: Identifier;
42
+ readonly start: string;
43
+ readonly end: string;
44
+ constructor(id: Identifier, start: string, end: string);
45
+ static serialize(packet: TableFetchRangePacket): Uint8Array;
46
+ static deserialize(data: Uint8Array): TableFetchRangePacket;
47
+ }
48
+ export declare class SetConfigPacket {
49
+ readonly id: Identifier;
50
+ readonly config: TableConfig;
51
+ constructor(id: Identifier, config: TableConfig);
52
+ static serialize(packet: SetConfigPacket): Uint8Array;
53
+ static deserialize(data: Uint8Array): SetConfigPacket;
54
+ }
55
+ export declare class SetPermissionPacket {
56
+ readonly id: Identifier;
57
+ readonly all: Identifier | null;
58
+ readonly read: Identifier | null;
59
+ readonly write: Identifier | null;
60
+ readonly remove: Identifier | null;
61
+ readonly proxy: Identifier | null;
62
+ constructor(id: Identifier, all: Identifier | null, read: Identifier | null, write: Identifier | null, remove: Identifier | null, proxy: Identifier | null);
63
+ static serialize(packet: SetPermissionPacket): Uint8Array;
64
+ static deserialize(data: Uint8Array): SetPermissionPacket;
65
+ }