@omujs/omu 0.9.43 → 0.9.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/package.json +1 -1
- package/src/api/dashboard/extension.ts +17 -8
- package/src/api/dashboard/handler.ts +1 -1
- package/src/api/registry/extension.ts +109 -23
- package/src/network/network.ts +5 -0
- package/src/omu.ts +1 -0
- package/src/serialize/bytebuffer.ts +8 -0
- package/src/version.ts +1 -1
- package/dist/dts/address.d.ts +0 -6
- package/dist/dts/api/asset/extension.d.ts +0 -25
- package/dist/dts/api/asset/index.d.ts +0 -2
- package/dist/dts/api/dashboard/extension.d.ts +0 -181
- package/dist/dts/api/dashboard/handler.d.ts +0 -22
- package/dist/dts/api/dashboard/index.d.ts +0 -3
- package/dist/dts/api/dashboard/packets.d.ts +0 -73
- package/dist/dts/api/endpoint/endpoint.d.ts +0 -32
- package/dist/dts/api/endpoint/extension.d.ts +0 -23
- package/dist/dts/api/endpoint/index.d.ts +0 -2
- package/dist/dts/api/endpoint/packets.d.ts +0 -51
- package/dist/dts/api/extension-registry.d.ts +0 -8
- package/dist/dts/api/extension.d.ts +0 -11
- package/dist/dts/api/http/extension.d.ts +0 -41
- package/dist/dts/api/http/http.d.ts +0 -36
- package/dist/dts/api/http/index.d.ts +0 -2
- package/dist/dts/api/http/websocket.d.ts +0 -123
- package/dist/dts/api/i18n/extension.d.ts +0 -19
- package/dist/dts/api/i18n/index.d.ts +0 -1
- package/dist/dts/api/index.d.ts +0 -2
- package/dist/dts/api/logger/extension.d.ts +0 -25
- package/dist/dts/api/logger/index.d.ts +0 -1
- package/dist/dts/api/logger/packets.d.ts +0 -18
- package/dist/dts/api/permission/extension.d.ts +0 -19
- package/dist/dts/api/permission/index.d.ts +0 -1
- package/dist/dts/api/permission/permission.d.ts +0 -25
- package/dist/dts/api/plugin/extension.d.ts +0 -43
- package/dist/dts/api/plugin/index.d.ts +0 -2
- package/dist/dts/api/plugin/package-info.d.ts +0 -84
- package/dist/dts/api/registry/extension.d.ts +0 -26
- package/dist/dts/api/registry/index.d.ts +0 -2
- package/dist/dts/api/registry/packets.d.ts +0 -20
- package/dist/dts/api/registry/registry.d.ts +0 -57
- package/dist/dts/api/server/extension.d.ts +0 -61
- package/dist/dts/api/server/index.d.ts +0 -1
- package/dist/dts/api/session/extension.d.ts +0 -52
- package/dist/dts/api/session/index.d.ts +0 -1
- package/dist/dts/api/signal/extension.d.ts +0 -22
- package/dist/dts/api/signal/index.d.ts +0 -1
- package/dist/dts/api/signal/packets.d.ts +0 -21
- package/dist/dts/api/signal/signal.d.ts +0 -33
- package/dist/dts/api/table/extension.d.ts +0 -29
- package/dist/dts/api/table/index.d.ts +0 -2
- package/dist/dts/api/table/packets.d.ts +0 -65
- package/dist/dts/api/table/table.d.ts +0 -76
- package/dist/dts/app.d.ts +0 -49
- package/dist/dts/const.d.ts +0 -2
- package/dist/dts/errors.d.ts +0 -36
- package/dist/dts/event/index.d.ts +0 -6
- package/dist/dts/helper.d.ts +0 -13
- package/dist/dts/identifier.d.ts +0 -51
- package/dist/dts/index.d.ts +0 -36
- package/dist/dts/localization/index.d.ts +0 -2
- package/dist/dts/localization/locale.d.ts +0 -735
- package/dist/dts/localization/localization.d.ts +0 -5
- package/dist/dts/lock.d.ts +0 -6
- package/dist/dts/network/connection.d.ts +0 -17
- package/dist/dts/network/encryption.d.ts +0 -38
- package/dist/dts/network/frame-transport.d.ts +0 -22
- package/dist/dts/network/index.d.ts +0 -5
- package/dist/dts/network/network.d.ts +0 -58
- package/dist/dts/network/packet/index.d.ts +0 -2
- package/dist/dts/network/packet/packet-types.d.ts +0 -84
- package/dist/dts/network/packet/packet.d.ts +0 -28
- package/dist/dts/network/websocket-transport.d.ts +0 -24
- package/dist/dts/omu.d.ts +0 -61
- package/dist/dts/result.d.ts +0 -41
- package/dist/dts/serialize/bytebuffer.d.ts +0 -71
- package/dist/dts/serialize/index.d.ts +0 -2
- package/dist/dts/serialize/serializer.d.ts +0 -38
- package/dist/dts/token.d.ts +0 -14
- package/dist/dts/version.d.ts +0 -2
- package/dist/esm/address.js +0 -4
- package/dist/esm/api/asset/extension.js +0 -905
- package/dist/esm/api/asset/index.js +0 -903
- package/dist/esm/api/dashboard/extension.js +0 -1343
- package/dist/esm/api/dashboard/handler.js +0 -4
- package/dist/esm/api/dashboard/index.js +0 -1342
- package/dist/esm/api/dashboard/packets.js +0 -413
- package/dist/esm/api/endpoint/endpoint.js +0 -383
- package/dist/esm/api/endpoint/extension.js +0 -1090
- package/dist/esm/api/endpoint/index.js +0 -383
- package/dist/esm/api/endpoint/packets.js +0 -793
- 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 -1414
- package/dist/esm/api/http/http.js +0 -442
- package/dist/esm/api/http/index.js +0 -1413
- package/dist/esm/api/http/websocket.js +0 -220
- package/dist/esm/api/i18n/extension.js +0 -1270
- package/dist/esm/api/i18n/index.js +0 -1268
- package/dist/esm/api/index.js +0 -295
- package/dist/esm/api/logger/extension.js +0 -850
- package/dist/esm/api/logger/index.js +0 -846
- package/dist/esm/api/logger/packets.js +0 -667
- 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 -1217
- package/dist/esm/api/registry/index.js +0 -1216
- package/dist/esm/api/registry/packets.js +0 -688
- package/dist/esm/api/registry/registry.js +0 -383
- package/dist/esm/api/server/extension.js +0 -2071
- package/dist/esm/api/server/index.js +0 -2049
- package/dist/esm/api/session/extension.js +0 -2166
- package/dist/esm/api/session/index.js +0 -2166
- package/dist/esm/api/signal/extension.js +0 -1025
- package/dist/esm/api/signal/index.js +0 -379
- package/dist/esm/api/signal/packets.js +0 -684
- package/dist/esm/api/signal/signal.js +0 -379
- package/dist/esm/api/table/extension.js +0 -1547
- package/dist/esm/api/table/index.js +0 -1546
- package/dist/esm/api/table/packets.js +0 -898
- 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 -5099
- 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 -980
- package/dist/esm/network/frame-transport.js +0 -525
- package/dist/esm/network/index.js +0 -1617
- package/dist/esm/network/network.js +0 -1358
- 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 -487
- package/dist/esm/omu.js +0 -4858
- package/dist/esm/result.js +0 -68
- package/dist/esm/serialize/bytebuffer.js +0 -378
- package/dist/esm/serialize/index.js +0 -465
- package/dist/esm/serialize/serializer.js +0 -97
- package/dist/esm/token.js +0 -42
- package/dist/esm/version.js +0 -11
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
// src/const.ts
|
|
3
|
-
var textEncoder = new TextEncoder;
|
|
4
|
-
var textDecoder = new TextDecoder;
|
|
5
|
-
// src/serialize/serializer.ts
|
|
6
|
-
class Serializer {
|
|
7
|
-
serialize;
|
|
8
|
-
deserialize;
|
|
9
|
-
constructor(serialize, deserialize) {
|
|
10
|
-
this.serialize = serialize;
|
|
11
|
-
this.deserialize = deserialize;
|
|
12
|
-
}
|
|
13
|
-
static of(serializer) {
|
|
14
|
-
return new Serializer(serializer.serialize, serializer.deserialize);
|
|
15
|
-
}
|
|
16
|
-
static pipe(ser1, ser2) {
|
|
17
|
-
return new Serializer((data) => ser2.serialize(ser1.serialize(data)), (data) => ser1.deserialize(ser2.deserialize(data)));
|
|
18
|
-
}
|
|
19
|
-
static transform(func) {
|
|
20
|
-
return new Serializer(func, func);
|
|
21
|
-
}
|
|
22
|
-
static noop() {
|
|
23
|
-
return new Serializer((data) => data, (data) => data);
|
|
24
|
-
}
|
|
25
|
-
field(key, serializer) {
|
|
26
|
-
return new Serializer((data) => {
|
|
27
|
-
const serialized = this.serialize(data);
|
|
28
|
-
return {
|
|
29
|
-
...serialized,
|
|
30
|
-
[key]: serializer.serialize(serialized[key])
|
|
31
|
-
};
|
|
32
|
-
}, (data) => {
|
|
33
|
-
return this.deserialize({
|
|
34
|
-
...data,
|
|
35
|
-
[key]: serializer.deserialize(data[key])
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
static json() {
|
|
40
|
-
return new Serializer((data) => textEncoder.encode(JSON.stringify(data)), (data) => {
|
|
41
|
-
const text = textDecoder.decode(data);
|
|
42
|
-
return JSON.parse(text);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
toJson() {
|
|
46
|
-
return new Serializer((data) => textEncoder.encode(JSON.stringify(this.serialize(data))), (data) => {
|
|
47
|
-
const text = textDecoder.decode(data);
|
|
48
|
-
return this.deserialize(JSON.parse(text));
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
toArray() {
|
|
52
|
-
return new Serializer((data) => data.map((item) => this.serialize(item)), (data) => data.map((item) => this.deserialize(item)));
|
|
53
|
-
}
|
|
54
|
-
toMap() {
|
|
55
|
-
return new Serializer((data) => {
|
|
56
|
-
const result = new Map;
|
|
57
|
-
data.forEach((value, key) => {
|
|
58
|
-
result.set(key, this.serialize(value));
|
|
59
|
-
});
|
|
60
|
-
return result;
|
|
61
|
-
}, (data) => {
|
|
62
|
-
const result = new Map;
|
|
63
|
-
data.forEach((value, key) => {
|
|
64
|
-
result.set(key, this.deserialize(value));
|
|
65
|
-
});
|
|
66
|
-
return result;
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
fallback(fallback) {
|
|
70
|
-
return new Serializer((data) => this.serialize(data), (data) => {
|
|
71
|
-
try {
|
|
72
|
-
return this.deserialize(data);
|
|
73
|
-
} catch {
|
|
74
|
-
return fallback;
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
fallbackMap(fallback) {
|
|
79
|
-
return new Serializer((data) => this.serialize(data), (data) => {
|
|
80
|
-
try {
|
|
81
|
-
return this.deserialize(data);
|
|
82
|
-
} catch (error) {
|
|
83
|
-
return fallback(data, error);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
pipe(serializer) {
|
|
88
|
-
return new Serializer((data) => serializer.serialize(this.serialize(data)), (data) => this.deserialize(serializer.deserialize(data)));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
// src/network/packet/packet.ts
|
|
92
|
-
class PacketType {
|
|
93
|
-
id;
|
|
94
|
-
serializer;
|
|
95
|
-
constructor(id, serializer) {
|
|
96
|
-
this.id = id;
|
|
97
|
-
this.serializer = serializer;
|
|
98
|
-
}
|
|
99
|
-
new(data) {
|
|
100
|
-
return {
|
|
101
|
-
type: this,
|
|
102
|
-
data
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
match(packet) {
|
|
106
|
-
return packet.type === this;
|
|
107
|
-
}
|
|
108
|
-
static createJson(identifier, {
|
|
109
|
-
name,
|
|
110
|
-
serializer
|
|
111
|
-
}) {
|
|
112
|
-
return new PacketType(identifier.join(name), Serializer.pipe(serializer ?? Serializer.noop(), Serializer.json()));
|
|
113
|
-
}
|
|
114
|
-
static createSerialized(identifier, {
|
|
115
|
-
name,
|
|
116
|
-
serializer
|
|
117
|
-
}) {
|
|
118
|
-
return new PacketType(identifier.join(name), serializer);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
export {
|
|
122
|
-
PacketType
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
//# debugId=B995B1C9000A53CE64756E2164756E21
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2NvbnN0LnRzIiwgIi4uLy4uL3NyYy9zZXJpYWxpemUvc2VyaWFsaXplci50cyIsICIuLi8uLi9zcmMvbmV0d29yay9wYWNrZXQvcGFja2V0LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImV4cG9ydCBjb25zdCB0ZXh0RW5jb2RlcjogVGV4dEVuY29kZXIgPSBuZXcgVGV4dEVuY29kZXIoKTtcbmV4cG9ydCBjb25zdCB0ZXh0RGVjb2RlcjogVGV4dERlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiIsCiAgICAiaW1wb3J0IHsgdGV4dERlY29kZXIsIHRleHRFbmNvZGVyIH0gZnJvbSAnLi4vY29uc3QuanMnO1xuXG5leHBvcnQgdHlwZSBKc29uVHlwZSA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIHwgeyBba2V5IGluIG5ldmVyXT86IEpzb25UeXBlIH0gfCBKc29uVHlwZVtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6YWJsZTxULCBEPiB7XG4gICAgc2VyaWFsaXplKGRhdGE6IFQpOiBEO1xuICAgIGRlc2VyaWFsaXplKGRhdGE6IEQpOiBUO1xufVxuXG5leHBvcnQgY2xhc3MgU2VyaWFsaXplcjxULCBEPiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBzZXJpYWxpemU6IChkYXRhOiBUKSA9PiBELFxuICAgICAgICBwdWJsaWMgZGVzZXJpYWxpemU6IChkYXRhOiBEKSA9PiBULFxuICAgICkgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG9mPFQsIEQ+KHNlcmlhbGl6ZXI6IFNlcmlhbGl6YWJsZTxULCBEPik6IFNlcmlhbGl6ZXI8VCwgRD4ge1xuICAgICAgICByZXR1cm4gbmV3IFNlcmlhbGl6ZXI8VCwgRD4oc2VyaWFsaXplci5zZXJpYWxpemUsIHNlcmlhbGl6ZXIuZGVzZXJpYWxpemUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgcGlwZTxULCBSLCBEPihzZXIxOiBTZXJpYWxpemFibGU8VCwgUj4sIHNlcjI6IFNlcmlhbGl6YWJsZTxSLCBEPik6IFNlcmlhbGl6YWJsZTxULCBEPiB7XG4gICAgICAgIHJldHVybiBuZXcgU2VyaWFsaXplcjxULCBEPihcbiAgICAgICAgICAgIChkYXRhKSA9PiBzZXIyLnNlcmlhbGl6ZShzZXIxLnNlcmlhbGl6ZShkYXRhKSksXG4gICAgICAgICAgICAoZGF0YSkgPT4gc2VyMS5kZXNlcmlhbGl6ZShzZXIyLmRlc2VyaWFsaXplKGRhdGEpKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIHRyYW5zZm9ybTxUPihmdW5jOiAodmFsdWU6IFQpID0+IFQpOiBTZXJpYWxpemVyPFQsIFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemVyPFQsIFQ+KFxuICAgICAgICAgICAgZnVuYyxcbiAgICAgICAgICAgIGZ1bmMsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBub29wPFQ+KCk6IFNlcmlhbGl6ZXI8VCwgVD4ge1xuICAgICAgICByZXR1cm4gbmV3IFNlcmlhbGl6ZXI8VCwgVD4oXG4gICAgICAgICAgICAoZGF0YSkgPT4gZGF0YSxcbiAgICAgICAgICAgIChkYXRhKSA9PiBkYXRhLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaWVsZDxcbiAgICAgICAgSyBleHRlbmRzIGtleW9mIEQsXG4gICAgICAgIFIsXG4gICAgPihcbiAgICAgICAga2V5OiBLLFxuICAgICAgICBzZXJpYWxpemVyOiBTZXJpYWxpemFibGU8RFtLXSwgUj4sXG4gICAgKTogU2VyaWFsaXplcjxcbiAgICAgICAgVCxcbiAgICAgICAgeyBbUCBpbiBrZXlvZiBEXTogUCBleHRlbmRzIEsgPyBSIDogRFtQXSB9XG4gICAgPiB7XG4gICAgICAgIHJldHVybiBuZXcgU2VyaWFsaXplcjxcbiAgICAgICAgICAgIFQsXG4gICAgICAgICAgICB7IFtQIGluIGtleW9mIERdOiBQIGV4dGVuZHMgSyA/IFIgOiBEW1BdIH1cbiAgICAgICAgPihcbiAgICAgICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplKGRhdGEpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnNlcmlhbGl6ZWQsXG4gICAgICAgICAgICAgICAgICAgIFtrZXldOiBzZXJpYWxpemVyLnNlcmlhbGl6ZShzZXJpYWxpemVkW2tleV0pLFxuICAgICAgICAgICAgICAgIH0gYXMgeyBbUCBpbiBrZXlvZiBEXTogUCBleHRlbmRzIEsgPyBSIDogRFtQXSB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoe1xuICAgICAgICAgICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBba2V5XTogc2VyaWFsaXplci5kZXNlcmlhbGl6ZShkYXRhW2tleV0gYXMgUiksXG4gICAgICAgICAgICAgICAgfSBhcyBEKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3RhdGljIGpzb248VCBleHRlbmRzIEpzb25UeXBlPigpOiBTZXJpYWxpemVyPFQsIFVpbnQ4QXJyYXk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemVyPFQsIFVpbnQ4QXJyYXk+KFxuICAgICAgICAgICAgKGRhdGEpID0+IHRleHRFbmNvZGVyLmVuY29kZShKU09OLnN0cmluZ2lmeShkYXRhKSksXG4gICAgICAgICAgICAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSB0ZXh0RGVjb2Rlci5kZWNvZGUoZGF0YSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodGV4dCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0pzb24oKTogU2VyaWFsaXplcjxULCBVaW50OEFycmF5PiB7XG4gICAgICAgIHJldHVybiBuZXcgU2VyaWFsaXplcjxULCBVaW50OEFycmF5PihcbiAgICAgICAgICAgIChkYXRhKSA9PiB0ZXh0RW5jb2Rlci5lbmNvZGUoSlNPTi5zdHJpbmdpZnkodGhpcy5zZXJpYWxpemUoZGF0YSkpKSxcbiAgICAgICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRleHREZWNvZGVyLmRlY29kZShkYXRhKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZShKU09OLnBhcnNlKHRleHQpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvQXJyYXkoKTogU2VyaWFsaXplcjxUW10sIERbXT4ge1xuICAgICAgICByZXR1cm4gbmV3IFNlcmlhbGl6ZXI8VFtdLCBEW10+KFxuICAgICAgICAgICAgKGRhdGEpID0+IGRhdGEubWFwKChpdGVtKSA9PiB0aGlzLnNlcmlhbGl6ZShpdGVtKSksXG4gICAgICAgICAgICAoZGF0YSkgPT4gZGF0YS5tYXAoKGl0ZW0pID0+IHRoaXMuZGVzZXJpYWxpemUoaXRlbSkpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b01hcCgpOiBTZXJpYWxpemVyPE1hcDxzdHJpbmcsIFQ+LCBNYXA8c3RyaW5nLCBEPj4ge1xuICAgICAgICByZXR1cm4gbmV3IFNlcmlhbGl6ZXI8TWFwPHN0cmluZywgVD4sIE1hcDxzdHJpbmcsIEQ+PihcbiAgICAgICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IE1hcDxzdHJpbmcsIEQ+KCk7XG4gICAgICAgICAgICAgICAgZGF0YS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXQoa2V5LCB0aGlzLnNlcmlhbGl6ZSh2YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgTWFwPHN0cmluZywgVD4oKTtcbiAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldChrZXksIHRoaXMuZGVzZXJpYWxpemUodmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmFsbGJhY2soZmFsbGJhY2s6IFQpOiBTZXJpYWxpemVyPFQsIEQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemVyPFQsIEQ+KFxuICAgICAgICAgICAgKGRhdGEpID0+IHRoaXMuc2VyaWFsaXplKGRhdGEpLFxuICAgICAgICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZShkYXRhKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbGxiYWNrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGZhbGxiYWNrTWFwKGZhbGxiYWNrOiAoZGF0YTogRCwgZXJyb3I6IHVua25vd24pID0+IFQpOiBTZXJpYWxpemVyPFQsIEQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZXJpYWxpemVyPFQsIEQ+KFxuICAgICAgICAgICAgKGRhdGEpID0+IHRoaXMuc2VyaWFsaXplKGRhdGEpLFxuICAgICAgICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZShkYXRhKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsbGJhY2soZGF0YSwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHBpcGU8RT4oc2VyaWFsaXplcjogU2VyaWFsaXphYmxlPEQsIEU+KTogU2VyaWFsaXplcjxULCBFPiB7XG4gICAgICAgIHJldHVybiBuZXcgU2VyaWFsaXplcjxULCBFPihcbiAgICAgICAgICAgIChkYXRhKSA9PiBzZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLnNlcmlhbGl6ZShkYXRhKSksXG4gICAgICAgICAgICAoZGF0YSkgPT4gdGhpcy5kZXNlcmlhbGl6ZShzZXJpYWxpemVyLmRlc2VyaWFsaXplKGRhdGEpKSxcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLAogICAgImltcG9ydCB0eXBlIHsgSWRlbnRpZmllciB9IGZyb20gJy4uLy4uL2lkZW50aWZpZXInO1xuaW1wb3J0IHsgSnNvblR5cGUsIHR5cGUgU2VyaWFsaXphYmxlLCBTZXJpYWxpemVyIH0gZnJvbSAnLi4vLi4vc2VyaWFsaXplJztcblxuZXhwb3J0IHR5cGUgUGFja2V0RGF0YSA9IHtcbiAgICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZGF0YTogVWludDhBcnJheTtcbn07XG5cbmV4cG9ydCB0eXBlIFBhY2tldDxUID0gdW5rbm93bj4gPSB7XG4gICAgcmVhZG9ubHkgdHlwZTogUGFja2V0VHlwZTxUPjtcbiAgICByZWFkb25seSBkYXRhOiBUO1xufTtcblxuZXhwb3J0IGNsYXNzIFBhY2tldFR5cGU8VD4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IElkZW50aWZpZXIsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJpYWxpemVyOiBTZXJpYWxpemFibGU8VCwgVWludDhBcnJheT4sXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZXcoZGF0YTogVCk6IFBhY2tldDxUPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiB0aGlzLFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHVibGljIG1hdGNoKHBhY2tldDogUGFja2V0KTogcGFja2V0IGlzIFBhY2tldDxUPiB7XG4gICAgICAgIHJldHVybiBwYWNrZXQudHlwZSA9PT0gdGhpcztcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlSnNvbjxULCBEIGV4dGVuZHMgSnNvblR5cGUgPSBKc29uVHlwZT4oaWRlbnRpZmllcjogSWRlbnRpZmllciwge1xuICAgICAgICBuYW1lLFxuICAgICAgICBzZXJpYWxpemVyLFxuICAgIH06IHtcbiAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICBzZXJpYWxpemVyPzogU2VyaWFsaXphYmxlPFQsIEQ+O1xuICAgIH0pOiBQYWNrZXRUeXBlPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQYWNrZXRUeXBlPFQ+KFxuICAgICAgICAgICAgaWRlbnRpZmllci5qb2luKG5hbWUpLFxuICAgICAgICAgICAgU2VyaWFsaXplci5waXBlPFQsIEQsIFVpbnQ4QXJyYXk+KHNlcmlhbGl6ZXIgPz8gU2VyaWFsaXplci5ub29wKCksIFNlcmlhbGl6ZXIuanNvbigpKSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlU2VyaWFsaXplZDxUPihpZGVudGlmaWVyOiBJZGVudGlmaWVyLCB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHNlcmlhbGl6ZXIsXG4gICAgfToge1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIHNlcmlhbGl6ZXI6IFNlcmlhbGl6YWJsZTxULCBVaW50OEFycmF5PjtcbiAgICB9KTogUGFja2V0VHlwZTxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgUGFja2V0VHlwZShcbiAgICAgICAgICAgIGlkZW50aWZpZXIuam9pbihuYW1lKSxcbiAgICAgICAgICAgIHNlcmlhbGl6ZXIsXG4gICAgICAgICk7XG4gICAgfVxufVxuIgogIF0sCiAgIm1hcHBpbmdzIjogIjs7QUFBTyxJQUFNLGNBQTJCLElBQUk7QUFDckMsSUFBTSxjQUEyQixJQUFJOztBQ1FyQyxNQUFNLFdBQWlCO0FBQUEsRUFFZjtBQUFBLEVBQ0E7QUFBQSxFQUZYLFdBQVcsQ0FDQSxXQUNBLGFBQ1Q7QUFBQSxJQUZTO0FBQUEsSUFDQTtBQUFBO0FBQUEsU0FHRyxFQUFRLENBQUMsWUFBa0Q7QUFBQSxJQUNyRSxPQUFPLElBQUksV0FBaUIsV0FBVyxXQUFXLFdBQVcsV0FBVztBQUFBO0FBQUEsU0FHOUQsSUFBYSxDQUFDLE1BQTBCLE1BQThDO0FBQUEsSUFDaEcsT0FBTyxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEtBQUssVUFBVSxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQzdDLENBQUMsU0FBUyxLQUFLLFlBQVksS0FBSyxZQUFZLElBQUksQ0FBQyxDQUNyRDtBQUFBO0FBQUEsU0FHVSxTQUFZLENBQUMsTUFBeUM7QUFBQSxJQUNoRSxPQUFPLElBQUksV0FDUCxNQUNBLElBQ0o7QUFBQTtBQUFBLFNBR1UsSUFBTyxHQUFxQjtBQUFBLElBQ3RDLE9BQU8sSUFBSSxXQUNQLENBQUMsU0FBUyxNQUNWLENBQUMsU0FBUyxJQUNkO0FBQUE7QUFBQSxFQUdHLEtBR04sQ0FDRyxLQUNBLFlBSUY7QUFBQSxJQUNFLE9BQU8sSUFBSSxXQUlQLENBQUMsU0FBUztBQUFBLE1BQ04sTUFBTSxhQUFhLEtBQUssVUFBVSxJQUFJO0FBQUEsTUFDdEMsT0FBTztBQUFBLFdBQ0E7QUFBQSxTQUNGLE1BQU0sV0FBVyxVQUFVLFdBQVcsSUFBSTtBQUFBLE1BQy9DO0FBQUEsT0FFSixDQUFDLFNBQVM7QUFBQSxNQUNOLE9BQU8sS0FBSyxZQUFZO0FBQUEsV0FDakI7QUFBQSxTQUNGLE1BQU0sV0FBVyxZQUFZLEtBQUssSUFBUztBQUFBLE1BQ2hELENBQU07QUFBQSxLQUVkO0FBQUE7QUFBQSxTQUdHLElBQXdCLEdBQThCO0FBQUEsSUFDekQsT0FBTyxJQUFJLFdBQ1AsQ0FBQyxTQUFTLFlBQVksT0FBTyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQ2pELENBQUMsU0FBUztBQUFBLE1BQ04sTUFBTSxPQUFPLFlBQVksT0FBTyxJQUFJO0FBQUEsTUFDcEMsT0FBTyxLQUFLLE1BQU0sSUFBSTtBQUFBLEtBRTlCO0FBQUE7QUFBQSxFQUdHLE1BQU0sR0FBOEI7QUFBQSxJQUN2QyxPQUFPLElBQUksV0FDUCxDQUFDLFNBQVMsWUFBWSxPQUFPLEtBQUssVUFBVSxLQUFLLFVBQVUsSUFBSSxDQUFDLENBQUMsR0FDakUsQ0FBQyxTQUFTO0FBQUEsTUFDTixNQUFNLE9BQU8sWUFBWSxPQUFPLElBQUk7QUFBQSxNQUNwQyxPQUFPLEtBQUssWUFBWSxLQUFLLE1BQU0sSUFBSSxDQUFDO0FBQUEsS0FFaEQ7QUFBQTtBQUFBLEVBR0csT0FBTyxHQUF5QjtBQUFBLElBQ25DLE9BQU8sSUFBSSxXQUNQLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLEtBQUssVUFBVSxJQUFJLENBQUMsR0FDakQsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUN2RDtBQUFBO0FBQUEsRUFHRyxLQUFLLEdBQStDO0FBQUEsSUFDdkQsT0FBTyxJQUFJLFdBQ1AsQ0FBQyxTQUFTO0FBQUEsTUFDTixNQUFNLFNBQVMsSUFBSTtBQUFBLE1BQ25CLEtBQUssUUFBUSxDQUFDLE9BQU8sUUFBUTtBQUFBLFFBQ3pCLE9BQU8sSUFBSSxLQUFLLEtBQUssVUFBVSxLQUFLLENBQUM7QUFBQSxPQUN4QztBQUFBLE1BQ0QsT0FBTztBQUFBLE9BRVgsQ0FBQyxTQUFTO0FBQUEsTUFDTixNQUFNLFNBQVMsSUFBSTtBQUFBLE1BQ25CLEtBQUssUUFBUSxDQUFDLE9BQU8sUUFBUTtBQUFBLFFBQ3pCLE9BQU8sSUFBSSxLQUFLLEtBQUssWUFBWSxLQUFLLENBQUM7QUFBQSxPQUMxQztBQUFBLE1BQ0QsT0FBTztBQUFBLEtBRWY7QUFBQTtBQUFBLEVBR0csUUFBUSxDQUFDLFVBQStCO0FBQUEsSUFDM0MsT0FBTyxJQUFJLFdBQ1AsQ0FBQyxTQUFTLEtBQUssVUFBVSxJQUFJLEdBQzdCLENBQUMsU0FBUztBQUFBLE1BQ04sSUFBSTtBQUFBLFFBQ0EsT0FBTyxLQUFLLFlBQVksSUFBSTtBQUFBLFFBQzlCLE1BQU07QUFBQSxRQUNKLE9BQU87QUFBQTtBQUFBLEtBR25CO0FBQUE7QUFBQSxFQUdHLFdBQVcsQ0FBQyxVQUE0RDtBQUFBLElBQzNFLE9BQU8sSUFBSSxXQUNQLENBQUMsU0FBUyxLQUFLLFVBQVUsSUFBSSxHQUM3QixDQUFDLFNBQVM7QUFBQSxNQUNOLElBQUk7QUFBQSxRQUNBLE9BQU8sS0FBSyxZQUFZLElBQUk7QUFBQSxRQUM5QixPQUFPLE9BQU87QUFBQSxRQUNaLE9BQU8sU0FBUyxNQUFNLEtBQUs7QUFBQTtBQUFBLEtBR3ZDO0FBQUE7QUFBQSxFQUdHLElBQU8sQ0FBQyxZQUFrRDtBQUFBLElBQzdELE9BQU8sSUFBSSxXQUNQLENBQUMsU0FBUyxXQUFXLFVBQVUsS0FBSyxVQUFVLElBQUksQ0FBQyxHQUNuRCxDQUFDLFNBQVMsS0FBSyxZQUFZLFdBQVcsWUFBWSxJQUFJLENBQUMsQ0FDM0Q7QUFBQTtBQUVSOztBQ3ZJTyxNQUFNLFdBQWM7QUFBQSxFQUVIO0FBQUEsRUFDQTtBQUFBLEVBRnBCLFdBQVcsQ0FDUyxJQUNBLFlBQ2xCO0FBQUEsSUFGa0I7QUFBQSxJQUNBO0FBQUE7QUFBQSxFQUdiLEdBQUcsQ0FBQyxNQUFvQjtBQUFBLElBQzNCLE9BQU87QUFBQSxNQUNILE1BQU07QUFBQSxNQUNOO0FBQUEsSUFDSjtBQUFBO0FBQUEsRUFFRyxLQUFLLENBQUMsUUFBcUM7QUFBQSxJQUM5QyxPQUFPLE9BQU8sU0FBUztBQUFBO0FBQUEsU0FHcEIsVUFBNEMsQ0FBQztBQUFBLElBQ2hEO0FBQUEsSUFDQTtBQUFBLEtBSWM7QUFBQSxJQUNkLE9BQU8sSUFBSSxXQUNQLFdBQVcsS0FBSyxJQUFJLEdBQ3BCLFdBQVcsS0FBdUIsY0FBYyxXQUFXLEtBQUssR0FBRyxXQUFXLEtBQUssQ0FBQyxDQUN4RjtBQUFBO0FBQUEsU0FHRyxnQkFBbUIsQ0FBQztBQUFBLElBQ3ZCO0FBQUEsSUFDQTtBQUFBLEtBSWM7QUFBQSxJQUNkLE9BQU8sSUFBSSxXQUNQLFdBQVcsS0FBSyxJQUFJLEdBQ3BCLFVBQ0o7QUFBQTtBQUVSOyIsCiAgImRlYnVnSWQiOiAiQjk5NUIxQzkwMDBBNTNDRTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|