@omujs/omu 0.9.48 → 0.9.50
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.d.ts +25 -0
- package/dist/api/asset/extension.js +2 -0
- package/dist/api/asset/extension.js.map +7 -0
- package/dist/api/asset/index.d.ts +2 -0
- package/dist/api/asset/index.js +2 -0
- package/dist/api/asset/index.js.map +7 -0
- package/dist/api/dashboard/extension.d.ts +181 -0
- package/dist/api/dashboard/extension.js +2 -0
- package/dist/api/dashboard/extension.js.map +7 -0
- package/{src/api/dashboard/handler.ts → dist/api/dashboard/handler.d.ts} +3 -5
- 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/api/dashboard/packets.d.ts +63 -0
- package/dist/api/dashboard/packets.js +2 -0
- package/dist/api/dashboard/packets.js.map +7 -0
- package/dist/api/endpoint/endpoint.d.ts +21 -0
- package/dist/api/endpoint/endpoint.js +2 -0
- package/dist/api/endpoint/endpoint.js.map +7 -0
- package/dist/api/endpoint/extension.d.ts +17 -0
- package/dist/api/endpoint/extension.js +2 -0
- package/dist/api/endpoint/extension.js.map +7 -0
- package/{src/api/endpoint/index.ts → dist/api/endpoint/index.d.ts} +0 -1
- package/dist/api/endpoint/index.js +2 -0
- package/dist/api/endpoint/index.js.map +7 -0
- package/dist/api/endpoint/packets.d.ts +51 -0
- package/dist/api/endpoint/packets.js +2 -0
- package/dist/api/endpoint/packets.js.map +7 -0
- package/dist/api/extension-registry.d.ts +8 -0
- package/dist/api/extension-registry.js +2 -0
- package/dist/api/extension-registry.js.map +7 -0
- package/dist/api/extension.d.ts +11 -0
- package/dist/api/extension.js +2 -0
- package/dist/api/extension.js.map +7 -0
- package/dist/api/http/extension.d.ts +41 -0
- package/dist/api/http/extension.js +2 -0
- package/dist/api/http/extension.js.map +7 -0
- package/dist/api/http/http.d.ts +36 -0
- package/dist/api/http/http.js +2 -0
- package/dist/api/http/http.js.map +7 -0
- package/{src/api/http/index.ts → dist/api/http/index.d.ts} +0 -1
- package/dist/api/http/index.js +2 -0
- package/dist/api/http/index.js.map +7 -0
- package/dist/api/http/websocket.d.ts +125 -0
- package/dist/api/http/websocket.js +2 -0
- package/dist/api/http/websocket.js.map +7 -0
- package/dist/api/i18n/extension.d.ts +19 -0
- package/dist/api/i18n/extension.js +2 -0
- package/dist/api/i18n/extension.js.map +7 -0
- package/{src/api/i18n/index.ts → dist/api/i18n/index.d.ts} +0 -1
- 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.d.ts +25 -0
- package/dist/api/logger/extension.js +2 -0
- package/dist/api/logger/extension.js.map +7 -0
- package/dist/api/logger/index.d.ts +1 -0
- package/dist/api/logger/index.js +2 -0
- package/dist/api/logger/index.js.map +7 -0
- package/dist/api/logger/packets.d.ts +18 -0
- package/dist/api/logger/packets.js +2 -0
- package/dist/api/logger/packets.js.map +7 -0
- package/dist/api/permission/extension.d.ts +19 -0
- package/dist/api/permission/extension.js +2 -0
- package/dist/api/permission/extension.js.map +7 -0
- package/{src/api/permission/index.ts → dist/api/permission/index.d.ts} +0 -1
- package/dist/api/permission/index.js +2 -0
- package/dist/api/permission/index.js.map +7 -0
- package/dist/api/permission/permission.d.ts +25 -0
- package/dist/api/permission/permission.js +2 -0
- package/dist/api/permission/permission.js.map +7 -0
- package/dist/api/plugin/extension.d.ts +43 -0
- package/dist/api/plugin/extension.js +2 -0
- package/dist/api/plugin/extension.js.map +7 -0
- package/{src/api/plugin/index.ts → dist/api/plugin/index.d.ts} +0 -1
- package/dist/api/plugin/index.js +2 -0
- package/dist/api/plugin/index.js.map +7 -0
- package/{src/api/plugin/package-info.ts → dist/api/plugin/package-info.d.ts} +0 -7
- package/dist/api/plugin/package-info.js +1 -0
- package/dist/api/plugin/package-info.js.map +7 -0
- package/dist/api/registry/extension.d.ts +23 -0
- package/dist/api/registry/extension.js +2 -0
- package/dist/api/registry/extension.js.map +7 -0
- package/{src/api/registry/index.ts → dist/api/registry/index.d.ts} +0 -1
- package/dist/api/registry/index.js +2 -0
- package/dist/api/registry/index.js.map +7 -0
- package/dist/api/registry/packets.d.ts +20 -0
- package/dist/api/registry/packets.js +2 -0
- package/dist/api/registry/packets.js.map +7 -0
- package/{src/api/registry/registry.ts → dist/api/registry/registry.d.ts} +11 -53
- package/dist/api/registry/registry.js +2 -0
- package/dist/api/registry/registry.js.map +7 -0
- package/dist/api/server/extension.d.ts +61 -0
- package/dist/api/server/extension.js +2 -0
- package/dist/api/server/extension.js.map +7 -0
- package/dist/api/server/index.d.ts +1 -0
- package/dist/api/server/index.js +2 -0
- package/dist/api/server/index.js.map +7 -0
- package/dist/api/session/extension.d.ts +52 -0
- package/dist/api/session/extension.js +2 -0
- package/dist/api/session/extension.js.map +7 -0
- package/dist/api/session/index.d.ts +1 -0
- package/dist/api/session/index.js +2 -0
- package/dist/api/session/index.js.map +7 -0
- package/dist/api/signal/extension.d.ts +19 -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.d.ts +21 -0
- package/dist/api/signal/packets.js +2 -0
- package/dist/api/signal/packets.js.map +7 -0
- package/dist/api/signal/signal.d.ts +33 -0
- package/dist/api/signal/signal.js +2 -0
- package/dist/api/signal/signal.js.map +7 -0
- package/dist/api/table/extension.d.ts +26 -0
- package/dist/api/table/extension.js +2 -0
- package/dist/api/table/extension.js.map +7 -0
- package/{src/api/table/index.ts → dist/api/table/index.d.ts} +0 -1
- package/dist/api/table/index.js +2 -0
- package/dist/api/table/index.js.map +7 -0
- package/dist/api/table/packets.d.ts +65 -0
- package/dist/api/table/packets.js +2 -0
- package/dist/api/table/packets.js.map +7 -0
- package/dist/api/table/table.d.ts +75 -0
- package/dist/api/table/table.js +2 -0
- package/dist/api/table/table.js.map +7 -0
- package/dist/app.d.ts +49 -0
- package/dist/app.js +2 -0
- package/dist/app.js.map +7 -0
- package/dist/const.d.ts +2 -0
- package/dist/const.js +2 -0
- package/dist/const.js.map +7 -0
- package/dist/errors.d.ts +36 -0
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +7 -0
- package/dist/event/index.d.ts +6 -0
- package/dist/event/index.js +2 -0
- package/dist/event/index.js.map +7 -0
- package/dist/helper.d.ts +10 -0
- package/dist/helper.js +2 -0
- package/dist/helper.js.map +7 -0
- package/dist/identifier.d.ts +51 -0
- package/dist/identifier.js +2 -0
- package/dist/identifier.js.map +7 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +7 -0
- package/{src/localization/index.ts → dist/localization/index.d.ts} +0 -1
- package/dist/localization/index.js +2 -0
- package/dist/localization/index.js.map +7 -0
- package/dist/localization/locale.d.ts +735 -0
- package/dist/localization/locale.js +2 -0
- package/dist/localization/locale.js.map +7 -0
- package/{src/localization/localization.ts → dist/localization/localization.d.ts} +0 -2
- package/dist/localization/localization.js +1 -0
- package/dist/localization/localization.js.map +7 -0
- package/dist/lock.d.ts +6 -0
- package/dist/lock.js +2 -0
- package/dist/lock.js.map +7 -0
- package/dist/network/connection.d.ts +17 -0
- package/dist/network/connection.js +2 -0
- package/dist/network/connection.js.map +7 -0
- package/dist/network/encryption.d.ts +38 -0
- package/dist/network/encryption.js +2 -0
- package/dist/network/encryption.js.map +7 -0
- package/dist/network/frame-transport.d.ts +22 -0
- package/dist/network/frame-transport.js +2 -0
- package/dist/network/frame-transport.js.map +7 -0
- package/{src/network/index.ts → dist/network/index.d.ts} +0 -1
- package/dist/network/index.js +2 -0
- package/dist/network/index.js.map +7 -0
- package/dist/network/network.d.ts +59 -0
- package/dist/network/network.js +2 -0
- package/dist/network/network.js.map +7 -0
- package/{src/network/packet/index.ts → dist/network/packet/index.d.ts} +0 -1
- package/dist/network/packet/index.js +2 -0
- package/dist/network/packet/index.js.map +7 -0
- package/dist/network/packet/packet-types.d.ts +84 -0
- package/dist/network/packet/packet-types.js +2 -0
- package/dist/network/packet/packet-types.js.map +7 -0
- package/dist/network/packet/packet.d.ts +25 -0
- package/dist/network/packet/packet.js +2 -0
- package/dist/network/packet/packet.js.map +7 -0
- package/dist/network/websocket-transport.d.ts +24 -0
- package/dist/network/websocket-transport.js +2 -0
- package/dist/network/websocket-transport.js.map +7 -0
- package/dist/omu.d.ts +61 -0
- package/dist/omu.js +2 -0
- package/dist/omu.js.map +7 -0
- package/dist/result.d.ts +26 -0
- package/dist/result.js +2 -0
- package/dist/result.js.map +7 -0
- package/dist/serialize/bytebuffer.d.ts +73 -0
- 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.d.ts +26 -0
- package/dist/serialize/serializer.js +2 -0
- package/dist/serialize/serializer.js.map +7 -0
- package/dist/token.d.ts +14 -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 +12 -9
- package/CHANGELOG.md +0 -1845
- package/src/api/asset/extension.ts +0 -193
- package/src/api/asset/index.ts +0 -5
- package/src/api/dashboard/extension.ts +0 -651
- package/src/api/dashboard/index.ts +0 -38
- package/src/api/dashboard/packets.ts +0 -126
- package/src/api/endpoint/endpoint.ts +0 -56
- package/src/api/endpoint/extension.ts +0 -133
- package/src/api/endpoint/packets.ts +0 -176
- package/src/api/extension-registry.ts +0 -17
- package/src/api/extension.ts +0 -19
- package/src/api/http/extension.ts +0 -401
- package/src/api/http/http.ts +0 -79
- package/src/api/http/websocket.ts +0 -283
- package/src/api/i18n/extension.ts +0 -65
- package/src/api/index.ts +0 -3
- package/src/api/logger/extension.ts +0 -75
- package/src/api/logger/index.ts +0 -4
- package/src/api/logger/packets.ts +0 -38
- package/src/api/permission/extension.ts +0 -107
- package/src/api/permission/permission.ts +0 -53
- package/src/api/plugin/extension.ts +0 -100
- package/src/api/registry/extension.ts +0 -326
- package/src/api/registry/packets.ts +0 -64
- package/src/api/server/extension.ts +0 -155
- package/src/api/server/index.ts +0 -11
- package/src/api/session/extension.ts +0 -205
- package/src/api/session/index.ts +0 -7
- package/src/api/signal/extension.ts +0 -125
- package/src/api/signal/index.ts +0 -1
- package/src/api/signal/packets.ts +0 -61
- package/src/api/signal/signal.ts +0 -67
- package/src/api/table/extension.ts +0 -554
- package/src/api/table/packets.ts +0 -252
- package/src/api/table/table.ts +0 -113
- package/src/app.ts +0 -95
- package/src/const.ts +0 -2
- package/src/errors.ts +0 -70
- package/src/event/index.ts +0 -18
- package/src/helper.ts +0 -16
- package/src/identifier.ts +0 -256
- package/src/index.ts +0 -87
- package/src/localization/locale.ts +0 -737
- package/src/lock.ts +0 -43
- package/src/network/connection.ts +0 -45
- package/src/network/encryption.ts +0 -221
- package/src/network/frame-transport.ts +0 -186
- package/src/network/network.ts +0 -322
- package/src/network/packet/packet-types.ts +0 -164
- package/src/network/packet/packet.ts +0 -55
- package/src/network/websocket-transport.ts +0 -123
- package/src/omu.ts +0 -156
- package/src/result.ts +0 -78
- package/src/serialize/bytebuffer.ts +0 -432
- package/src/serialize/index.ts +0 -2
- package/src/serialize/serializer.ts +0 -149
- package/src/token.ts +0 -39
- package/src/version.ts +0 -2
- package/tsconfig.json +0 -18
- /package/{src/address.ts → dist/address.d.ts} +0 -0
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { textDecoder, textEncoder } from '../const.js';
|
|
2
|
-
|
|
3
|
-
export type JsonType = string | number | boolean | null | undefined | { [key in never]?: JsonType } | JsonType[];
|
|
4
|
-
|
|
5
|
-
export interface Serializable<T, D> {
|
|
6
|
-
serialize(data: T): D;
|
|
7
|
-
deserialize(data: D): T;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export class Serializer<T, D> {
|
|
11
|
-
constructor(
|
|
12
|
-
public serialize: (data: T) => D,
|
|
13
|
-
public deserialize: (data: D) => T,
|
|
14
|
-
) { }
|
|
15
|
-
|
|
16
|
-
public static of<T, D>(serializer: Serializable<T, D>): Serializer<T, D> {
|
|
17
|
-
return new Serializer<T, D>(serializer.serialize, serializer.deserialize);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
public static pipe<T, R, D>(ser1: Serializable<T, R>, ser2: Serializable<R, D>): Serializable<T, D> {
|
|
21
|
-
return new Serializer<T, D>(
|
|
22
|
-
(data) => ser2.serialize(ser1.serialize(data)),
|
|
23
|
-
(data) => ser1.deserialize(ser2.deserialize(data)),
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public static transform<T>(func: (value: T) => T): Serializer<T, T> {
|
|
28
|
-
return new Serializer<T, T>(
|
|
29
|
-
func,
|
|
30
|
-
func,
|
|
31
|
-
);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public static noop<T>(): Serializer<T, T> {
|
|
35
|
-
return new Serializer<T, T>(
|
|
36
|
-
(data) => data,
|
|
37
|
-
(data) => data,
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
public field<
|
|
42
|
-
K extends keyof D,
|
|
43
|
-
R,
|
|
44
|
-
>(
|
|
45
|
-
key: K,
|
|
46
|
-
serializer: Serializable<D[K], R>,
|
|
47
|
-
): Serializer<
|
|
48
|
-
T,
|
|
49
|
-
{ [P in keyof D]: P extends K ? R : D[P] }
|
|
50
|
-
> {
|
|
51
|
-
return new Serializer<
|
|
52
|
-
T,
|
|
53
|
-
{ [P in keyof D]: P extends K ? R : D[P] }
|
|
54
|
-
>(
|
|
55
|
-
(data) => {
|
|
56
|
-
const serialized = this.serialize(data);
|
|
57
|
-
return {
|
|
58
|
-
...serialized,
|
|
59
|
-
[key]: serializer.serialize(serialized[key]),
|
|
60
|
-
} as { [P in keyof D]: P extends K ? R : D[P] };
|
|
61
|
-
},
|
|
62
|
-
(data) => {
|
|
63
|
-
return this.deserialize({
|
|
64
|
-
...data,
|
|
65
|
-
[key]: serializer.deserialize(data[key] as R),
|
|
66
|
-
} as D);
|
|
67
|
-
},
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
static json<T extends JsonType>(): Serializer<T, Uint8Array> {
|
|
72
|
-
return new Serializer<T, Uint8Array>(
|
|
73
|
-
(data) => textEncoder.encode(JSON.stringify(data)),
|
|
74
|
-
(data) => {
|
|
75
|
-
const text = textDecoder.decode(data);
|
|
76
|
-
return JSON.parse(text);
|
|
77
|
-
},
|
|
78
|
-
);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
public toJson(): Serializer<T, Uint8Array> {
|
|
82
|
-
return new Serializer<T, Uint8Array>(
|
|
83
|
-
(data) => textEncoder.encode(JSON.stringify(this.serialize(data))),
|
|
84
|
-
(data) => {
|
|
85
|
-
const text = textDecoder.decode(data);
|
|
86
|
-
return this.deserialize(JSON.parse(text));
|
|
87
|
-
},
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
public toArray(): Serializer<T[], D[]> {
|
|
92
|
-
return new Serializer<T[], D[]>(
|
|
93
|
-
(data) => data.map((item) => this.serialize(item)),
|
|
94
|
-
(data) => data.map((item) => this.deserialize(item)),
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
public toMap(): Serializer<Map<string, T>, Map<string, D>> {
|
|
99
|
-
return new Serializer<Map<string, T>, Map<string, D>>(
|
|
100
|
-
(data) => {
|
|
101
|
-
const result = new Map<string, D>();
|
|
102
|
-
data.forEach((value, key) => {
|
|
103
|
-
result.set(key, this.serialize(value));
|
|
104
|
-
});
|
|
105
|
-
return result;
|
|
106
|
-
},
|
|
107
|
-
(data) => {
|
|
108
|
-
const result = new Map<string, T>();
|
|
109
|
-
data.forEach((value, key) => {
|
|
110
|
-
result.set(key, this.deserialize(value));
|
|
111
|
-
});
|
|
112
|
-
return result;
|
|
113
|
-
},
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
public fallback(fallback: T): Serializer<T, D> {
|
|
118
|
-
return new Serializer<T, D>(
|
|
119
|
-
(data) => this.serialize(data),
|
|
120
|
-
(data) => {
|
|
121
|
-
try {
|
|
122
|
-
return this.deserialize(data);
|
|
123
|
-
} catch {
|
|
124
|
-
return fallback;
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
public fallbackMap(fallback: (data: D, error: unknown) => T): Serializer<T, D> {
|
|
131
|
-
return new Serializer<T, D>(
|
|
132
|
-
(data) => this.serialize(data),
|
|
133
|
-
(data) => {
|
|
134
|
-
try {
|
|
135
|
-
return this.deserialize(data);
|
|
136
|
-
} catch (error) {
|
|
137
|
-
return fallback(data, error);
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
public pipe<E>(serializer: Serializable<D, E>): Serializer<T, E> {
|
|
144
|
-
return new Serializer<T, E>(
|
|
145
|
-
(data) => serializer.serialize(this.serialize(data)),
|
|
146
|
-
(data) => this.deserialize(serializer.deserialize(data)),
|
|
147
|
-
);
|
|
148
|
-
}
|
|
149
|
-
}
|
package/src/token.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { Address } from './address.js';
|
|
2
|
-
|
|
3
|
-
import type { App } from './app.js';
|
|
4
|
-
import { tryCatch } from './helper.js';
|
|
5
|
-
|
|
6
|
-
export interface SessioTokenProvider {
|
|
7
|
-
get(serverAddress: Address, app: App): Promise<string | undefined>;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export type SessionParam = {
|
|
11
|
-
address: Address;
|
|
12
|
-
token: string;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export class BrowserSession implements SessioTokenProvider {
|
|
16
|
-
public static readonly PARAM_NAME = '_omu_session';
|
|
17
|
-
|
|
18
|
-
public async get(address: Address): Promise<string | undefined> {
|
|
19
|
-
const foundToken = this.parseParamSession(address);
|
|
20
|
-
if (foundToken) return foundToken;
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
private parseParamSession(address: Address): string | undefined {
|
|
25
|
-
const searchParams = new URLSearchParams(location.search);
|
|
26
|
-
const param = searchParams.get(BrowserSession.PARAM_NAME);
|
|
27
|
-
if (!param) return;
|
|
28
|
-
const { ok, data: session } = tryCatch<SessionParam>(() => JSON.parse(param));
|
|
29
|
-
if (!ok) {
|
|
30
|
-
console.warn(`Failed to parse session from URL parameter: ${session}`);
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
if (session.address.hash !== address.hash) {
|
|
34
|
-
console.warn(`Session address hash does not match: expected ${address.hash}, got ${session.address.hash}`);
|
|
35
|
-
return undefined;
|
|
36
|
-
}
|
|
37
|
-
return session.token;
|
|
38
|
-
}
|
|
39
|
-
}
|
package/src/version.ts
DELETED
package/tsconfig.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json.schemastore.org/tsconfig",
|
|
3
|
-
"extends": "../../tsconfig.json",
|
|
4
|
-
"compilerOptions": {
|
|
5
|
-
"paths": {
|
|
6
|
-
"/*": [
|
|
7
|
-
"../src/lib/*/index.js"
|
|
8
|
-
]
|
|
9
|
-
},
|
|
10
|
-
},
|
|
11
|
-
"compileOnSave": true,
|
|
12
|
-
"include": [
|
|
13
|
-
"./src/**/*"
|
|
14
|
-
],
|
|
15
|
-
"exclude": [
|
|
16
|
-
"dist",
|
|
17
|
-
],
|
|
18
|
-
}
|
|
File without changes
|