omegga 1.2.8 → 1.3.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/README.md +20 -1
- package/dist/brickadia/config.js +26 -90
- package/dist/brickadia/config.js.map +1 -1
- package/dist/brickadia/server.js +294 -293
- package/dist/brickadia/server.js.map +1 -1
- package/dist/cli/auth.js +149 -177
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/config.js +64 -66
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/index.js +14 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/installer.js +37 -43
- package/dist/cli/installer.js.map +1 -1
- package/dist/cli/plugin.js +651 -682
- package/dist/cli/plugin.js.map +1 -1
- package/dist/cli/terminal.js +811 -733
- package/dist/cli/terminal.js.map +1 -1
- package/dist/config/formats/format_js.js +6 -6
- package/dist/config/formats/format_js.js.map +1 -1
- package/dist/config/formats/format_yml.js +7 -10
- package/dist/config/formats/format_yml.js.map +1 -1
- package/dist/config/index.js +46 -68
- package/dist/config/index.js.map +1 -1
- package/dist/config/reader.js +16 -27
- package/dist/config/reader.js.map +1 -1
- package/dist/config/validator.js +23 -25
- package/dist/config/validator.js.map +1 -1
- package/dist/config/writer.js +11 -21
- package/dist/config/writer.js.map +1 -1
- package/dist/index.js +18 -64
- package/dist/index.js.map +1 -1
- package/dist/info/default_commands.json.js +39 -0
- package/dist/info/default_commands.json.js.map +1 -0
- package/dist/logger.js +61 -60
- package/dist/logger.js.map +1 -1
- package/dist/main.js +424 -471
- package/dist/main.js.map +1 -1
- package/dist/omegga/auth.js +101 -148
- package/dist/omegga/auth.js.map +1 -1
- package/dist/omegga/commandInjector.js +261 -251
- package/dist/omegga/commandInjector.js.map +1 -1
- package/dist/omegga/index.js +14 -52
- package/dist/omegga/index.js.map +1 -1
- package/dist/omegga/logWrangler.js +224 -275
- package/dist/omegga/logWrangler.js.map +1 -1
- package/dist/omegga/matchers/auth.js +36 -50
- package/dist/omegga/matchers/auth.js.map +1 -1
- package/dist/omegga/matchers/chat.js +49 -71
- package/dist/omegga/matchers/chat.js.map +1 -1
- package/dist/omegga/matchers/command.js +25 -36
- package/dist/omegga/matchers/command.js.map +1 -1
- package/dist/omegga/matchers/exit.js +15 -18
- package/dist/omegga/matchers/exit.js.map +1 -1
- package/dist/omegga/matchers/index.js +26 -40
- package/dist/omegga/matchers/index.js.map +1 -1
- package/dist/omegga/matchers/init.js +20 -23
- package/dist/omegga/matchers/init.js.map +1 -1
- package/dist/omegga/matchers/interact.js +58 -64
- package/dist/omegga/matchers/interact.js.map +1 -1
- package/dist/omegga/matchers/join.js +74 -95
- package/dist/omegga/matchers/join.js.map +1 -1
- package/dist/omegga/matchers/leave.js +43 -56
- package/dist/omegga/matchers/leave.js.map +1 -1
- package/dist/omegga/matchers/mapChange.js +26 -35
- package/dist/omegga/matchers/mapChange.js.map +1 -1
- package/dist/omegga/matchers/minigameJoin.js +24 -31
- package/dist/omegga/matchers/minigameJoin.js.map +1 -1
- package/dist/omegga/matchers/version.js +42 -49
- package/dist/omegga/matchers/version.js.map +1 -1
- package/dist/omegga/player.js +527 -527
- package/dist/omegga/player.js.map +1 -1
- package/dist/omegga/plugin/interface.js +91 -98
- package/dist/omegga/plugin/interface.js.map +1 -1
- package/dist/omegga/plugin/plugin_jsonrpc_stdio.js +524 -429
- package/dist/omegga/plugin/plugin_jsonrpc_stdio.js.map +1 -1
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js +282 -294
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.js.map +1 -1
- package/dist/omegga/plugin/plugin_node_safe.js +365 -393
- package/dist/omegga/plugin/plugin_node_safe.js.map +1 -1
- package/dist/omegga/plugin/plugin_node_unsafe.js +119 -179
- package/dist/omegga/plugin/plugin_node_unsafe.js.map +1 -1
- package/dist/omegga/plugin.js +402 -347
- package/dist/omegga/plugin.js.map +1 -1
- package/dist/omegga/server.js +742 -774
- package/dist/omegga/server.js.map +1 -1
- package/dist/omegga/wrapper.js +64 -91
- package/dist/omegga/wrapper.js.map +1 -1
- package/dist/plugin.js +11 -31
- package/dist/plugin.js.map +1 -1
- package/dist/softconfig.js +121 -100
- package/dist/softconfig.js.map +1 -1
- package/dist/updater/steam.js +97 -112
- package/dist/updater/steam.js.map +1 -1
- package/dist/util/brdb.js +496 -528
- package/dist/util/brdb.js.map +1 -1
- package/dist/util/brick/checkBounds.js +11 -15
- package/dist/util/brick/checkBounds.js.map +1 -1
- package/dist/util/brick/constants.js +723 -174
- package/dist/util/brick/constants.js.map +1 -1
- package/dist/util/brick/displayName.js +204 -211
- package/dist/util/brick/displayName.js.map +1 -1
- package/dist/util/brick/getBounds.js +29 -41
- package/dist/util/brick/getBounds.js.map +1 -1
- package/dist/util/brick/getBrickSize.js +6 -7
- package/dist/util/brick/getBrickSize.js.map +1 -1
- package/dist/util/brick/getScaleAxis.js +24 -30
- package/dist/util/brick/getScaleAxis.js.map +1 -1
- package/dist/util/brick/index.js +8 -29
- package/dist/util/brick/index.js.map +1 -1
- package/dist/util/brick/rotate.js +29 -34
- package/dist/util/brick/rotate.js.map +1 -1
- package/dist/util/brick/setOwnership.js +13 -19
- package/dist/util/brick/setOwnership.js.map +1 -1
- package/dist/util/chat.js +53 -44
- package/dist/util/chat.js.map +1 -1
- package/dist/util/color.js +112 -124
- package/dist/util/color.js.map +1 -1
- package/dist/util/file.js +54 -98
- package/dist/util/file.js.map +1 -1
- package/dist/util/index.js +84 -106
- package/dist/util/index.js.map +1 -1
- package/dist/util/map.js +18 -20
- package/dist/util/map.js.map +1 -1
- package/dist/util/pattern.js +6 -9
- package/dist/util/pattern.js.map +1 -1
- package/dist/util/time.js +31 -34
- package/dist/util/time.js.map +1 -1
- package/dist/util/uuid.js +10 -8
- package/dist/util/uuid.js.map +1 -1
- package/dist/util/wsl.js +19 -25
- package/dist/util/wsl.js.map +1 -1
- package/dist/version.js +7 -9
- package/dist/version.js.map +1 -1
- package/dist/webserver/backend/api.js +784 -874
- package/dist/webserver/backend/api.js.map +1 -1
- package/dist/webserver/backend/calendar.js +14 -17
- package/dist/webserver/backend/calendar.js.map +1 -1
- package/dist/webserver/backend/database.js +563 -613
- package/dist/webserver/backend/database.js.map +1 -1
- package/dist/webserver/backend/index.js +153 -191
- package/dist/webserver/backend/index.js.map +1 -1
- package/dist/webserver/backend/metrics.js +219 -248
- package/dist/webserver/backend/metrics.js.map +1 -1
- package/dist/webserver/backend/util.js +47 -68
- package/dist/webserver/backend/util.js.map +1 -1
- package/dist/worker.js +322 -0
- package/dist/worker.js.map +1 -0
- package/package.json +14 -10
- package/templates/safe-ts/omegga.d.ts +2 -2
- package/vite.backend.config.mts +46 -0
- package/vite.frontend.config.mts +58 -0
- package/vitest.backend.config.mts +7 -0
- package/dist/brickadia/config.d.ts +0 -3
- package/dist/brickadia/presets.d.ts +0 -65
- package/dist/brickadia/presets.js +0 -3
- package/dist/brickadia/presets.js.map +0 -1
- package/dist/brickadia/server.d.ts +0 -36
- package/dist/brickadia/types.d.ts +0 -45
- package/dist/brickadia/types.js +0 -3
- package/dist/brickadia/types.js.map +0 -1
- package/dist/cli/auth.d.ts +0 -26
- package/dist/cli/config.d.ts +0 -10
- package/dist/cli/index.d.ts +0 -30
- package/dist/cli/installer.d.ts +0 -1
- package/dist/cli/plugin.d.ts +0 -22
- package/dist/cli/terminal.d.ts +0 -25
- package/dist/config/authorizer.d.ts +0 -2
- package/dist/config/authorizer.js +0 -38
- package/dist/config/authorizer.js.map +0 -1
- package/dist/config/formats/format_js.d.ts +0 -3
- package/dist/config/formats/format_yml.d.ts +0 -3
- package/dist/config/index.d.ts +0 -18
- package/dist/config/reader.d.ts +0 -3
- package/dist/config/types.d.ts +0 -50
- package/dist/config/types.js +0 -3
- package/dist/config/types.js.map +0 -1
- package/dist/config/validator.d.ts +0 -6
- package/dist/config/writer.d.ts +0 -3
- package/dist/index.d.ts +0 -22
- package/dist/info/default_commands.json +0 -29
- package/dist/logger.d.ts +0 -41
- package/dist/main.d.ts +0 -1
- package/dist/omegga/auth.d.ts +0 -9
- package/dist/omegga/commandInjector.d.ts +0 -35
- package/dist/omegga/index.d.ts +0 -7
- package/dist/omegga/logWrangler.d.ts +0 -32
- package/dist/omegga/matchers/auth.d.ts +0 -10
- package/dist/omegga/matchers/chat.d.ts +0 -10
- package/dist/omegga/matchers/command.d.ts +0 -7
- package/dist/omegga/matchers/exit.d.ts +0 -3
- package/dist/omegga/matchers/index.d.ts +0 -3
- package/dist/omegga/matchers/init.d.ts +0 -3
- package/dist/omegga/matchers/interact.d.ts +0 -4
- package/dist/omegga/matchers/join.d.ts +0 -4
- package/dist/omegga/matchers/leave.d.ts +0 -4
- package/dist/omegga/matchers/mapChange.d.ts +0 -3
- package/dist/omegga/matchers/minigameJoin.d.ts +0 -9
- package/dist/omegga/matchers/types.d.ts +0 -5
- package/dist/omegga/matchers/types.js +0 -3
- package/dist/omegga/matchers/types.js.map +0 -1
- package/dist/omegga/matchers/version.d.ts +0 -3
- package/dist/omegga/player.d.ts +0 -81
- package/dist/omegga/plugin/interface.d.ts +0 -30
- package/dist/omegga/plugin/plugin_jsonrpc_stdio.d.ts +0 -23
- package/dist/omegga/plugin/plugin_node_safe/proxyOmegga.d.ts +0 -145
- package/dist/omegga/plugin/plugin_node_safe/worker.d.ts +0 -1
- package/dist/omegga/plugin/plugin_node_safe/worker.js +0 -367
- package/dist/omegga/plugin/plugin_node_safe/worker.js.map +0 -1
- package/dist/omegga/plugin/plugin_node_safe.d.ts +0 -23
- package/dist/omegga/plugin/plugin_node_unsafe.d.ts +0 -13
- package/dist/omegga/plugin.d.ts +0 -63
- package/dist/omegga/server.d.ts +0 -166
- package/dist/omegga/types.d.ts +0 -49
- package/dist/omegga/types.js +0 -3
- package/dist/omegga/types.js.map +0 -1
- package/dist/omegga/wrapper.d.ts +0 -32
- package/dist/plugin.d.ts +0 -916
- package/dist/softconfig.d.ts +0 -67
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/updater/index.d.ts +0 -1
- package/dist/updater/index.js +0 -10
- package/dist/updater/index.js.map +0 -1
- package/dist/updater/steam.d.ts +0 -52
- package/dist/util/brdb.d.ts +0 -31
- package/dist/util/brick/checkBounds.d.ts +0 -8
- package/dist/util/brick/constants.d.ts +0 -18
- package/dist/util/brick/displayName.d.ts +0 -7
- package/dist/util/brick/getBounds.d.ts +0 -5
- package/dist/util/brick/getBrickSize.d.ts +0 -3
- package/dist/util/brick/getScaleAxis.d.ts +0 -3
- package/dist/util/brick/index.d.ts +0 -14
- package/dist/util/brick/rotate.d.ts +0 -16
- package/dist/util/brick/setOwnership.d.ts +0 -12
- package/dist/util/chat.d.ts +0 -23
- package/dist/util/color.d.ts +0 -13
- package/dist/util/file.d.ts +0 -5
- package/dist/util/index.d.ts +0 -183
- package/dist/util/map.d.ts +0 -6
- package/dist/util/pattern.d.ts +0 -1
- package/dist/util/time.d.ts +0 -39
- package/dist/util/uuid.d.ts +0 -3
- package/dist/util/wsl.d.ts +0 -2
- package/dist/version.d.ts +0 -2
- package/dist/webserver/backend/api.d.ts +0 -115
- package/dist/webserver/backend/calendar.d.ts +0 -5
- package/dist/webserver/backend/database.d.ts +0 -150
- package/dist/webserver/backend/index.d.ts +0 -30
- package/dist/webserver/backend/metrics.d.ts +0 -3
- package/dist/webserver/backend/types.d.ts +0 -114
- package/dist/webserver/backend/types.js +0 -3
- package/dist/webserver/backend/types.js.map +0 -1
- package/dist/webserver/backend/util.d.ts +0 -2
- package/dist/webserver/index.d.ts +0 -2
- package/dist/webserver/index.js +0 -9
- package/dist/webserver/index.js.map +0 -1
package/dist/util/color.js
CHANGED
|
@@ -1,130 +1,118 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports,
|
|
3
|
-
exports.DEFAULT_COLORSET = exports.rgbToHex = exports.sRGB = exports.linearRGB = void 0;
|
|
4
|
-
exports.hsv = hsv;
|
|
5
|
-
/* accepts parameters
|
|
6
|
-
* h Object = {h:x, s:y, v:z}
|
|
7
|
-
* OR
|
|
8
|
-
* h, s, v
|
|
9
|
-
*/
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
10
3
|
function hsv(h, s, v) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
4
|
+
var r, g, b, i, f, p, q, t;
|
|
5
|
+
if (arguments.length === 1 && typeof h === "object") {
|
|
6
|
+
s = h.s, v = h.v, h = h.h;
|
|
7
|
+
}
|
|
8
|
+
h = h;
|
|
9
|
+
i = Math.floor(h * 6);
|
|
10
|
+
f = h * 6 - i;
|
|
11
|
+
p = v * (1 - s);
|
|
12
|
+
q = v * (1 - f * s);
|
|
13
|
+
t = v * (1 - (1 - f) * s);
|
|
14
|
+
switch (i % 6) {
|
|
15
|
+
case 0:
|
|
16
|
+
r = v, g = t, b = p;
|
|
17
|
+
break;
|
|
18
|
+
case 1:
|
|
19
|
+
r = q, g = v, b = p;
|
|
20
|
+
break;
|
|
21
|
+
case 2:
|
|
22
|
+
r = p, g = v, b = t;
|
|
23
|
+
break;
|
|
24
|
+
case 3:
|
|
25
|
+
r = p, g = q, b = v;
|
|
26
|
+
break;
|
|
27
|
+
case 4:
|
|
28
|
+
r = t, g = p, b = v;
|
|
29
|
+
break;
|
|
30
|
+
case 5:
|
|
31
|
+
r = v, g = p, b = q;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];
|
|
42
35
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
? c
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
? 1.055 * Math.pow(c / 255, 1 / 2.4) - 0.055
|
|
54
|
-
: (c / 255) * 12.92) * 255));
|
|
55
|
-
exports.sRGB = sRGB;
|
|
56
|
-
// convert (r, g, b), ([r, g, b]), and ({r, g, b}) to hex string
|
|
36
|
+
const linearRGB = (rgba) => rgba.map(
|
|
37
|
+
(c, i) => i === 3 ? c : Math.round(
|
|
38
|
+
(c / 255 > 0.04045 ? Math.pow(c / 255 * (1 / 1.055) + 0.0521327, 2.4) : c / 255 * (1 / 12.92)) * 255
|
|
39
|
+
)
|
|
40
|
+
);
|
|
41
|
+
const sRGB = (linear) => linear.map(
|
|
42
|
+
(c, i) => i === 3 ? c : Math.round(
|
|
43
|
+
(c / 255 > 31308e-7 ? 1.055 * Math.pow(c / 255, 1 / 2.4) - 0.055 : c / 255 * 12.92) * 255
|
|
44
|
+
)
|
|
45
|
+
);
|
|
57
46
|
const rgbToHex = (r, g, b) => {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
r = r.r;
|
|
66
|
-
}
|
|
67
|
-
return [r, g, b]
|
|
68
|
-
.map(v => Math.round(Number(v)).toString(16).padStart(2, '0'))
|
|
69
|
-
.join('');
|
|
47
|
+
if (typeof r === "object" && "length" in r && r.length > 0) [r, g, b] = r;
|
|
48
|
+
else if (typeof r === "object" && "r" in r) {
|
|
49
|
+
g = r.g;
|
|
50
|
+
b = r.b;
|
|
51
|
+
r = r.r;
|
|
52
|
+
}
|
|
53
|
+
return [r, g, b].map((v) => Math.round(Number(v)).toString(16).padStart(2, "0")).join("");
|
|
70
54
|
};
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
[0, 0, 0, 153],
|
|
55
|
+
const DEFAULT_COLORSET = [
|
|
56
|
+
[255, 255, 255, 255],
|
|
57
|
+
[136, 136, 136, 255],
|
|
58
|
+
[89, 89, 89, 255],
|
|
59
|
+
[57, 57, 57, 255],
|
|
60
|
+
[35, 35, 35, 255],
|
|
61
|
+
[17, 17, 17, 255],
|
|
62
|
+
[6, 6, 6, 255],
|
|
63
|
+
[0, 0, 0, 255],
|
|
64
|
+
[87, 5, 9, 255],
|
|
65
|
+
[234, 6, 6, 255],
|
|
66
|
+
[246, 73, 6, 255],
|
|
67
|
+
[234, 157, 6, 255],
|
|
68
|
+
[8, 138, 5, 255],
|
|
69
|
+
[4, 152, 170, 255],
|
|
70
|
+
[163, 35, 85, 255],
|
|
71
|
+
[90, 18, 55, 255],
|
|
72
|
+
[22, 4, 1, 255],
|
|
73
|
+
[49, 20, 13, 255],
|
|
74
|
+
[89, 16, 4, 255],
|
|
75
|
+
[144, 60, 18, 255],
|
|
76
|
+
[166, 104, 62, 255],
|
|
77
|
+
[255, 159, 78, 255],
|
|
78
|
+
[194, 163, 58, 255],
|
|
79
|
+
[255, 175, 47, 255],
|
|
80
|
+
[5, 18, 5, 255],
|
|
81
|
+
[5, 30, 2, 255],
|
|
82
|
+
[21, 36, 0, 255],
|
|
83
|
+
[0, 76, 0, 255],
|
|
84
|
+
[11, 54, 10, 255],
|
|
85
|
+
[67, 79, 12, 255],
|
|
86
|
+
[255, 146, 10, 255],
|
|
87
|
+
[109, 64, 5, 255],
|
|
88
|
+
[10, 30, 43, 255],
|
|
89
|
+
[30, 39, 41, 255],
|
|
90
|
+
[71, 92, 96, 255],
|
|
91
|
+
[131, 172, 181, 255],
|
|
92
|
+
[80, 147, 162, 255],
|
|
93
|
+
[8, 118, 200, 255],
|
|
94
|
+
[0, 64, 122, 255],
|
|
95
|
+
[1, 34, 64, 255],
|
|
96
|
+
[255, 14, 14, 153],
|
|
97
|
+
[255, 204, 5, 153],
|
|
98
|
+
[31, 144, 18, 153],
|
|
99
|
+
[43, 133, 189, 153],
|
|
100
|
+
[87, 5, 9, 153],
|
|
101
|
+
[246, 73, 6, 153],
|
|
102
|
+
[8, 43, 15, 153],
|
|
103
|
+
[255, 255, 255, 153],
|
|
104
|
+
[255, 255, 255, 153],
|
|
105
|
+
[136, 136, 136, 153],
|
|
106
|
+
[89, 89, 89, 153],
|
|
107
|
+
[57, 57, 57, 153],
|
|
108
|
+
[35, 35, 35, 153],
|
|
109
|
+
[17, 17, 17, 153],
|
|
110
|
+
[6, 6, 6, 153],
|
|
111
|
+
[0, 0, 0, 153]
|
|
129
112
|
];
|
|
130
|
-
|
|
113
|
+
exports.DEFAULT_COLORSET = DEFAULT_COLORSET;
|
|
114
|
+
exports.hsv = hsv;
|
|
115
|
+
exports.linearRGB = linearRGB;
|
|
116
|
+
exports.rgbToHex = rgbToHex;
|
|
117
|
+
exports.sRGB = sRGB;
|
|
118
|
+
//# sourceMappingURL=color.js.map
|
package/dist/util/color.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","
|
|
1
|
+
{"version":3,"file":"color.js","sources":["../../src/util/color.ts"],"sourcesContent":["/* accepts parameters\n * h Object = {h:x, s:y, v:z}\n * OR\n * h, s, v\n */\nexport function hsv(\n h: number | { h: number; s: number; v: number },\n s?: number,\n v?: number,\n) {\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1 && typeof h === 'object') {\n ((s = h.s), (v = h.v), (h = h.h));\n }\n h = h as number;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n ((r = v), (g = t), (b = p));\n break;\n case 1:\n ((r = q), (g = v), (b = p));\n break;\n case 2:\n ((r = p), (g = v), (b = t));\n break;\n case 3:\n ((r = p), (g = q), (b = v));\n break;\n case 4:\n ((r = t), (g = p), (b = v));\n break;\n case 5:\n ((r = v), (g = p), (b = q));\n break;\n }\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\n}\n\n// convert a color into the weird linearRGB format\nexport const linearRGB = (rgba: number[]) =>\n rgba.map((c, i) =>\n i === 3\n ? c\n : Math.round(\n (c / 255 > 0.04045\n ? Math.pow((c / 255) * (1.0 / 1.055) + 0.0521327, 2.4)\n : (c / 255) * (1.0 / 12.92)) * 255,\n ),\n );\n\nexport const sRGB = (linear: number[]) =>\n linear.map((c, i) =>\n i === 3\n ? c\n : Math.round(\n (c / 255 > 0.0031308\n ? 1.055 * Math.pow(c / 255, 1 / 2.4) - 0.055\n : (c / 255) * 12.92) * 255,\n ),\n );\n\n// convert (r, g, b), ([r, g, b]), and ({r, g, b}) to hex string\nexport const rgbToHex = (\n r: number | [number, number, number] | { r: number; g: number; b: number },\n g?: number,\n b?: number,\n) => {\n // parse array arguments\n if (typeof r === 'object' && 'length' in r && r.length > 0) [r, g, b] = r;\n // parse object arguments\n else if (typeof r === 'object' && 'r' in r) {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n\n return [r, g, b]\n .map(v => Math.round(Number(v)).toString(16).padStart(2, '0'))\n .join('');\n};\n\nexport const DEFAULT_COLORSET = [\n [255, 255, 255, 255],\n [136, 136, 136, 255],\n [89, 89, 89, 255],\n [57, 57, 57, 255],\n [35, 35, 35, 255],\n [17, 17, 17, 255],\n [6, 6, 6, 255],\n [0, 0, 0, 255],\n [87, 5, 9, 255],\n [234, 6, 6, 255],\n [246, 73, 6, 255],\n [234, 157, 6, 255],\n [8, 138, 5, 255],\n [4, 152, 170, 255],\n [163, 35, 85, 255],\n [90, 18, 55, 255],\n [22, 4, 1, 255],\n [49, 20, 13, 255],\n [89, 16, 4, 255],\n [144, 60, 18, 255],\n [166, 104, 62, 255],\n [255, 159, 78, 255],\n [194, 163, 58, 255],\n [255, 175, 47, 255],\n [5, 18, 5, 255],\n [5, 30, 2, 255],\n [21, 36, 0, 255],\n [0, 76, 0, 255],\n [11, 54, 10, 255],\n [67, 79, 12, 255],\n [255, 146, 10, 255],\n [109, 64, 5, 255],\n [10, 30, 43, 255],\n [30, 39, 41, 255],\n [71, 92, 96, 255],\n [131, 172, 181, 255],\n [80, 147, 162, 255],\n [8, 118, 200, 255],\n [0, 64, 122, 255],\n [1, 34, 64, 255],\n [255, 14, 14, 153],\n [255, 204, 5, 153],\n [31, 144, 18, 153],\n [43, 133, 189, 153],\n [87, 5, 9, 153],\n [246, 73, 6, 153],\n [8, 43, 15, 153],\n [255, 255, 255, 153],\n [255, 255, 255, 153],\n [136, 136, 136, 153],\n [89, 89, 89, 153],\n [57, 57, 57, 153],\n [35, 35, 35, 153],\n [17, 17, 17, 153],\n [6, 6, 6, 153],\n [0, 0, 0, 153],\n];\n"],"names":[],"mappings":";;AAKO,SAAS,IACd,GACA,GACA,GACA;AACA,MAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;AACzB,MAAI,UAAU,WAAW,KAAK,OAAO,MAAM,UAAU;AACjD,QAAI,EAAE,GAAK,IAAI,EAAE,GAAK,IAAI,EAAE;AAAA,EAChC;AACA,MAAI;AACJ,MAAI,KAAK,MAAM,IAAI,CAAC;AACpB,MAAI,IAAI,IAAI;AACZ,MAAI,KAAK,IAAI;AACb,MAAI,KAAK,IAAI,IAAI;AACjB,MAAI,KAAK,KAAK,IAAI,KAAK;AACvB,UAAQ,IAAI,GAAA;AAAA,IACV,KAAK;AACD,UAAI,GAAK,IAAI,GAAK,IAAI;AACxB;AAAA,IACF,KAAK;AACD,UAAI,GAAK,IAAI,GAAK,IAAI;AACxB;AAAA,IACF,KAAK;AACD,UAAI,GAAK,IAAI,GAAK,IAAI;AACxB;AAAA,IACF,KAAK;AACD,UAAI,GAAK,IAAI,GAAK,IAAI;AACxB;AAAA,IACF,KAAK;AACD,UAAI,GAAK,IAAI,GAAK,IAAI;AACxB;AAAA,IACF,KAAK;AACD,UAAI,GAAK,IAAI,GAAK,IAAI;AACxB;AAAA,EAAA;AAEJ,SAAO,CAAC,KAAK,MAAM,IAAI,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC;AACvE;AAGO,MAAM,YAAY,CAAC,SACxB,KAAK;AAAA,EAAI,CAAC,GAAG,MACX,MAAM,IACF,IACA,KAAK;AAAA,KACF,IAAI,MAAM,UACP,KAAK,IAAK,IAAI,OAAQ,IAAM,SAAS,WAAW,GAAG,IAClD,IAAI,OAAQ,IAAM,UAAU;AAAA,EAAA;AAEzC;AAEK,MAAM,OAAO,CAAC,WACnB,OAAO;AAAA,EAAI,CAAC,GAAG,MACb,MAAM,IACF,IACA,KAAK;AAAA,KACF,IAAI,MAAM,WACP,QAAQ,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,QACpC,IAAI,MAAO,SAAS;AAAA,EAAA;AAEjC;AAGK,MAAM,WAAW,CACtB,GACA,GACA,MACG;AAEH,MAAI,OAAO,MAAM,YAAY,YAAY,KAAK,EAAE,SAAS,EAAG,EAAC,GAAG,GAAG,CAAC,IAAI;AAAA,WAE/D,OAAO,MAAM,YAAY,OAAO,GAAG;AAC1C,QAAI,EAAE;AACN,QAAI,EAAE;AACN,QAAI,EAAE;AAAA,EACR;AAEA,SAAO,CAAC,GAAG,GAAG,CAAC,EACZ,IAAI,CAAA,MAAK,KAAK,MAAM,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAC5D,KAAK,EAAE;AACZ;AAEO,MAAM,mBAAmB;AAAA,EAC9B,CAAC,KAAK,KAAK,KAAK,GAAG;AAAA,EACnB,CAAC,KAAK,KAAK,KAAK,GAAG;AAAA,EACnB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,GAAG,GAAG,GAAG,GAAG;AAAA,EACb,CAAC,GAAG,GAAG,GAAG,GAAG;AAAA,EACb,CAAC,IAAI,GAAG,GAAG,GAAG;AAAA,EACd,CAAC,KAAK,GAAG,GAAG,GAAG;AAAA,EACf,CAAC,KAAK,IAAI,GAAG,GAAG;AAAA,EAChB,CAAC,KAAK,KAAK,GAAG,GAAG;AAAA,EACjB,CAAC,GAAG,KAAK,GAAG,GAAG;AAAA,EACf,CAAC,GAAG,KAAK,KAAK,GAAG;AAAA,EACjB,CAAC,KAAK,IAAI,IAAI,GAAG;AAAA,EACjB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,GAAG,GAAG,GAAG;AAAA,EACd,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,GAAG,GAAG;AAAA,EACf,CAAC,KAAK,IAAI,IAAI,GAAG;AAAA,EACjB,CAAC,KAAK,KAAK,IAAI,GAAG;AAAA,EAClB,CAAC,KAAK,KAAK,IAAI,GAAG;AAAA,EAClB,CAAC,KAAK,KAAK,IAAI,GAAG;AAAA,EAClB,CAAC,KAAK,KAAK,IAAI,GAAG;AAAA,EAClB,CAAC,GAAG,IAAI,GAAG,GAAG;AAAA,EACd,CAAC,GAAG,IAAI,GAAG,GAAG;AAAA,EACd,CAAC,IAAI,IAAI,GAAG,GAAG;AAAA,EACf,CAAC,GAAG,IAAI,GAAG,GAAG;AAAA,EACd,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,KAAK,KAAK,IAAI,GAAG;AAAA,EAClB,CAAC,KAAK,IAAI,GAAG,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,KAAK,KAAK,KAAK,GAAG;AAAA,EACnB,CAAC,IAAI,KAAK,KAAK,GAAG;AAAA,EAClB,CAAC,GAAG,KAAK,KAAK,GAAG;AAAA,EACjB,CAAC,GAAG,IAAI,KAAK,GAAG;AAAA,EAChB,CAAC,GAAG,IAAI,IAAI,GAAG;AAAA,EACf,CAAC,KAAK,IAAI,IAAI,GAAG;AAAA,EACjB,CAAC,KAAK,KAAK,GAAG,GAAG;AAAA,EACjB,CAAC,IAAI,KAAK,IAAI,GAAG;AAAA,EACjB,CAAC,IAAI,KAAK,KAAK,GAAG;AAAA,EAClB,CAAC,IAAI,GAAG,GAAG,GAAG;AAAA,EACd,CAAC,KAAK,IAAI,GAAG,GAAG;AAAA,EAChB,CAAC,GAAG,IAAI,IAAI,GAAG;AAAA,EACf,CAAC,KAAK,KAAK,KAAK,GAAG;AAAA,EACnB,CAAC,KAAK,KAAK,KAAK,GAAG;AAAA,EACnB,CAAC,KAAK,KAAK,KAAK,GAAG;AAAA,EACnB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,IAAI,IAAI,IAAI,GAAG;AAAA,EAChB,CAAC,GAAG,GAAG,GAAG,GAAG;AAAA,EACb,CAAC,GAAG,GAAG,GAAG,GAAG;AACf;;;;;;"}
|
package/dist/util/file.js
CHANGED
|
@@ -1,113 +1,69 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
exports.rmdir = rmdir;
|
|
10
|
-
exports.copyFiles = copyFiles;
|
|
11
|
-
const logger_1 = __importDefault(require("../logger"));
|
|
12
|
-
const chokidar_1 = __importDefault(require("chokidar"));
|
|
13
|
-
const fs_1 = __importDefault(require("fs"));
|
|
14
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
15
|
-
const path_1 = __importDefault(require("path"));
|
|
16
|
-
const rimraf_1 = __importDefault(require("rimraf"));
|
|
17
|
-
// objects to store cached data
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const logger = require("../logger.js");
|
|
4
|
+
const chokidar = require("chokidar");
|
|
5
|
+
const fs = require("node:fs");
|
|
6
|
+
const _ = require("lodash");
|
|
7
|
+
const path = require("node:path");
|
|
8
|
+
const rimraf = require("rimraf");
|
|
18
9
|
const cachedTimes = {};
|
|
19
10
|
const cachedJSON = {};
|
|
20
|
-
// read a file and write it to cache, return the json object
|
|
21
11
|
function updateJSONCache(file) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
catch (err) {
|
|
36
|
-
logger_1.default.errorp('Error updating JSON cache for file', file, err);
|
|
37
|
-
if (body)
|
|
38
|
-
logger_1.default.errorp('File contents:', body);
|
|
39
|
-
}
|
|
40
|
-
return cachedJSON[file];
|
|
41
|
-
}
|
|
42
|
-
// read cached json
|
|
43
|
-
function readCachedJSON(file, expire = 5000) {
|
|
44
|
-
const now = Date.now();
|
|
45
|
-
if (cachedTimes[file] && cachedTimes[file] + expire > now)
|
|
46
|
-
return cachedJSON[file];
|
|
47
|
-
// update the cache with data
|
|
48
|
-
return updateJSONCache(file);
|
|
12
|
+
let body;
|
|
13
|
+
try {
|
|
14
|
+
body = fs.readFileSync(file, "utf8");
|
|
15
|
+
if (!body.startsWith("{") && body.length > 4)
|
|
16
|
+
body = body.replace(/^[^{]+/, "");
|
|
17
|
+
if (!body) return cachedJSON[file];
|
|
18
|
+
cachedJSON[file] = JSON.parse(body);
|
|
19
|
+
cachedTimes[file] = Date.now();
|
|
20
|
+
} catch (err) {
|
|
21
|
+
logger.default.errorp("Error updating JSON cache for file", file, err);
|
|
22
|
+
if (body) logger.default.errorp("File contents:", body);
|
|
23
|
+
}
|
|
24
|
+
return cachedJSON[file];
|
|
49
25
|
}
|
|
50
|
-
// object state to store watched json data
|
|
51
26
|
const watchers = {};
|
|
52
27
|
function readWatchedJSON(file) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
// add listeners to the watcher
|
|
64
|
-
watcher
|
|
65
|
-
.on('add', () => read()) // on add, update the cache
|
|
66
|
-
.on('change', () => read()) // on change, update the cache
|
|
67
|
-
.on('unlink', () => {
|
|
68
|
-
// on unlink (delete), destroy value in cache
|
|
69
|
-
cachedJSON[file] = undefined;
|
|
70
|
-
cachedTimes[file] = Date.now();
|
|
71
|
-
});
|
|
72
|
-
return updateJSONCache(file);
|
|
28
|
+
if (watchers[file]) return cachedJSON[file];
|
|
29
|
+
if (!fs.existsSync(file)) return void 0;
|
|
30
|
+
const watcher = chokidar.watch(file, { persistent: false });
|
|
31
|
+
watchers[file] = watcher;
|
|
32
|
+
const read = _.debounce(() => updateJSONCache(file), 500);
|
|
33
|
+
watcher.on("add", () => read()).on("change", () => read()).on("unlink", () => {
|
|
34
|
+
cachedJSON[file] = void 0;
|
|
35
|
+
cachedTimes[file] = Date.now();
|
|
36
|
+
});
|
|
37
|
+
return updateJSONCache(file);
|
|
73
38
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
catch (e) {
|
|
80
|
-
/* */
|
|
81
|
-
}
|
|
39
|
+
function mkdir(path2) {
|
|
40
|
+
try {
|
|
41
|
+
fs.mkdirSync(path2, { recursive: true });
|
|
42
|
+
} catch (e) {
|
|
43
|
+
}
|
|
82
44
|
}
|
|
83
|
-
// rm -rf a path
|
|
84
45
|
function rmdir(dir) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
reject(error);
|
|
91
|
-
else
|
|
92
|
-
resolve(true);
|
|
93
|
-
});
|
|
46
|
+
if (!fs.existsSync(dir)) return false;
|
|
47
|
+
return new Promise((resolve, reject) => {
|
|
48
|
+
rimraf(dir, (error) => {
|
|
49
|
+
if (error) reject(error);
|
|
50
|
+
else resolve(true);
|
|
94
51
|
});
|
|
52
|
+
});
|
|
95
53
|
}
|
|
96
|
-
// copy files from one dir to another, creating the directories in the process
|
|
97
54
|
function copyFiles(srcDir, dstDir, files) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// destination file is in the auth path
|
|
106
|
-
const dst = path_1.default.join(dstDir, f);
|
|
107
|
-
// if it exists in the auth path and not in the current folder
|
|
108
|
-
if (!fs_1.default.existsSync(dst) && fs_1.default.existsSync(src)) {
|
|
109
|
-
fs_1.default.copyFileSync(src, dst);
|
|
110
|
-
}
|
|
55
|
+
mkdir(srcDir);
|
|
56
|
+
mkdir(dstDir);
|
|
57
|
+
for (const f of files) {
|
|
58
|
+
const src = path.join(srcDir, f);
|
|
59
|
+
const dst = path.join(dstDir, f);
|
|
60
|
+
if (!fs.existsSync(dst) && fs.existsSync(src)) {
|
|
61
|
+
fs.copyFileSync(src, dst);
|
|
111
62
|
}
|
|
63
|
+
}
|
|
112
64
|
}
|
|
113
|
-
|
|
65
|
+
exports.copyFiles = copyFiles;
|
|
66
|
+
exports.mkdir = mkdir;
|
|
67
|
+
exports.readWatchedJSON = readWatchedJSON;
|
|
68
|
+
exports.rmdir = rmdir;
|
|
69
|
+
//# sourceMappingURL=file.js.map
|
package/dist/util/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","
|
|
1
|
+
{"version":3,"file":"file.js","sources":["../../src/util/file.ts"],"sourcesContent":["import Logger from '@/logger';\nimport chokidar from 'chokidar';\nimport fs from 'node:fs';\nimport _ from 'lodash';\nimport path from 'node:path';\nimport rimraf from 'rimraf';\n\n// objects to store cached data\nconst cachedTimes: Record<string, number> = {};\nconst cachedJSON: Record<string, unknown> = {};\n\n// read a file and write it to cache, return the json object\nfunction updateJSONCache(file: string) {\n let body;\n try {\n // check if the file contents exist\n body = fs.readFileSync(file, 'utf8');\n // sometimes json files start with unicode for some reason. who knows!\n if (!body.startsWith('{') && body.length > 4)\n body = body.replace(/^[^{]+/, '');\n if (!body) return cachedJSON[file];\n\n // parse them as json\n cachedJSON[file] = JSON.parse(body);\n cachedTimes[file] = Date.now();\n } catch (err) {\n Logger.errorp('Error updating JSON cache for file', file, err);\n if (body) Logger.errorp('File contents:', body);\n }\n return cachedJSON[file];\n}\n\n// read cached json\nexport function readCachedJSON(file: string, expire = 5000) {\n const now = Date.now();\n if (cachedTimes[file] && cachedTimes[file] + expire > now)\n return cachedJSON[file];\n\n // update the cache with data\n return updateJSONCache(file);\n}\n\n// object state to store watched json data\nconst watchers: Record<string, chokidar.FSWatcher> = {};\n\nexport function readWatchedJSON(file: string) {\n // if the file is already being watched, return the watched json\n if (watchers[file]) return cachedJSON[file];\n\n // check if the file exists\n if (!fs.existsSync(file)) return undefined;\n\n // create a watcher (no persistence means the process dies even if there's still a watcher)\n const watcher = chokidar.watch(file, { persistent: false });\n watchers[file] = watcher;\n\n const read = _.debounce(() => updateJSONCache(file), 500);\n\n // add listeners to the watcher\n watcher\n .on('add', () => read()) // on add, update the cache\n .on('change', () => read()) // on change, update the cache\n .on('unlink', () => {\n // on unlink (delete), destroy value in cache\n cachedJSON[file] = undefined;\n cachedTimes[file] = Date.now();\n });\n\n return updateJSONCache(file);\n}\n\n// recursively mkdir (mkdir -p )\nexport function mkdir(path: string) {\n try {\n fs.mkdirSync(path, { recursive: true });\n } catch (e) {\n /* */\n }\n}\n\n// rm -rf a path\nexport function rmdir(dir: string) {\n if (!fs.existsSync(dir)) return false;\n return new Promise((resolve, reject) => {\n rimraf(dir, error => {\n if (error) reject(error);\n else resolve(true);\n });\n });\n}\n\n// copy files from one dir to another, creating the directories in the process\nexport function copyFiles(srcDir: string, dstDir: string, files: string[]) {\n // create the directories if they don't already exist\n mkdir(srcDir);\n mkdir(dstDir);\n\n // copy the brickadia auth files\n for (const f of files) {\n // source is the omegga config path\n const src = path.join(srcDir, f);\n\n // destination file is in the auth path\n const dst = path.join(dstDir, f);\n\n // if it exists in the auth path and not in the current folder\n if (!fs.existsSync(dst) && fs.existsSync(src)) {\n fs.copyFileSync(src, dst);\n }\n }\n}\n"],"names":["Logger","path"],"mappings":";;;;;;;;AAQA,MAAM,cAAsC,CAAA;AAC5C,MAAM,aAAsC,CAAA;AAG5C,SAAS,gBAAgB,MAAc;AACrC,MAAI;AACJ,MAAI;AAEF,WAAO,GAAG,aAAa,MAAM,MAAM;AAEnC,QAAI,CAAC,KAAK,WAAW,GAAG,KAAK,KAAK,SAAS;AACzC,aAAO,KAAK,QAAQ,UAAU,EAAE;AAClC,QAAI,CAAC,KAAM,QAAO,WAAW,IAAI;AAGjC,eAAW,IAAI,IAAI,KAAK,MAAM,IAAI;AAClC,gBAAY,IAAI,IAAI,KAAK,IAAA;AAAA,EAC3B,SAAS,KAAK;AACZA,WAAAA,QAAO,OAAO,sCAAsC,MAAM,GAAG;AAC7D,QAAI,KAAMA,QAAAA,QAAO,OAAO,kBAAkB,IAAI;AAAA,EAChD;AACA,SAAO,WAAW,IAAI;AACxB;AAaA,MAAM,WAA+C,CAAA;AAE9C,SAAS,gBAAgB,MAAc;AAE5C,MAAI,SAAS,IAAI,EAAG,QAAO,WAAW,IAAI;AAG1C,MAAI,CAAC,GAAG,WAAW,IAAI,EAAG,QAAO;AAGjC,QAAM,UAAU,SAAS,MAAM,MAAM,EAAE,YAAY,OAAO;AAC1D,WAAS,IAAI,IAAI;AAEjB,QAAM,OAAO,EAAE,SAAS,MAAM,gBAAgB,IAAI,GAAG,GAAG;AAGxD,UACG,GAAG,OAAO,MAAM,KAAA,CAAM,EACtB,GAAG,UAAU,MAAM,KAAA,CAAM,EACzB,GAAG,UAAU,MAAM;AAElB,eAAW,IAAI,IAAI;AACnB,gBAAY,IAAI,IAAI,KAAK,IAAA;AAAA,EAC3B,CAAC;AAEH,SAAO,gBAAgB,IAAI;AAC7B;AAGO,SAAS,MAAMC,OAAc;AAClC,MAAI;AACF,OAAG,UAAUA,OAAM,EAAE,WAAW,MAAM;AAAA,EACxC,SAAS,GAAG;AAAA,EAEZ;AACF;AAGO,SAAS,MAAM,KAAa;AACjC,MAAI,CAAC,GAAG,WAAW,GAAG,EAAG,QAAO;AAChC,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,WAAO,KAAK,CAAA,UAAS;AACnB,UAAI,cAAc,KAAK;AAAA,mBACV,IAAI;AAAA,IACnB,CAAC;AAAA,EACH,CAAC;AACH;AAGO,SAAS,UAAU,QAAgB,QAAgB,OAAiB;AAEzE,QAAM,MAAM;AACZ,QAAM,MAAM;AAGZ,aAAW,KAAK,OAAO;AAErB,UAAM,MAAM,KAAK,KAAK,QAAQ,CAAC;AAG/B,UAAM,MAAM,KAAK,KAAK,QAAQ,CAAC;AAG/B,QAAI,CAAC,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,GAAG,GAAG;AAC7C,SAAG,aAAa,KAAK,GAAG;AAAA,IAC1B;AAAA,EACF;AACF;;;;;"}
|