luau2ts 0.1.0 → 0.2.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 +1 -1
- package/package.json +4 -1
- package/dist/cli/args.d.ts +0 -19
- package/dist/cli/args.d.ts.map +0 -1
- package/dist/cli/args.js +0 -130
- package/dist/cli/args.js.map +0 -1
- package/dist/cli/bin.d.ts +0 -3
- package/dist/cli/bin.d.ts.map +0 -1
- package/dist/cli/bin.js +0 -65
- package/dist/cli/bin.js.map +0 -1
- package/dist/cli/modes.d.ts +0 -17
- package/dist/cli/modes.d.ts.map +0 -1
- package/dist/cli/modes.js +0 -134
- package/dist/cli/modes.js.map +0 -1
- package/dist/compile/class-shape.d.ts +0 -31
- package/dist/compile/class-shape.d.ts.map +0 -1
- package/dist/compile/class-shape.js +0 -291
- package/dist/compile/class-shape.js.map +0 -1
- package/dist/compile/context.d.ts +0 -86
- package/dist/compile/context.d.ts.map +0 -1
- package/dist/compile/context.js +0 -144
- package/dist/compile/context.js.map +0 -1
- package/dist/compile/index.d.ts +0 -43
- package/dist/compile/index.d.ts.map +0 -1
- package/dist/compile/index.js +0 -2028
- package/dist/compile/index.js.map +0 -1
- package/dist/compile/macros/datatypes.d.ts +0 -2
- package/dist/compile/macros/datatypes.d.ts.map +0 -1
- package/dist/compile/macros/datatypes.js +0 -76
- package/dist/compile/macros/datatypes.js.map +0 -1
- package/dist/compile/macros/index.d.ts +0 -33
- package/dist/compile/macros/index.d.ts.map +0 -1
- package/dist/compile/macros/index.js +0 -71
- package/dist/compile/macros/index.js.map +0 -1
- package/dist/compile/macros/instance.d.ts +0 -2
- package/dist/compile/macros/instance.d.ts.map +0 -1
- package/dist/compile/macros/instance.js +0 -58
- package/dist/compile/macros/instance.js.map +0 -1
- package/dist/compile/macros/stdlib.d.ts +0 -2
- package/dist/compile/macros/stdlib.d.ts.map +0 -1
- package/dist/compile/macros/stdlib.js +0 -140
- package/dist/compile/macros/stdlib.js.map +0 -1
- package/dist/compile/rbxts-runtime.d.ts +0 -2
- package/dist/compile/rbxts-runtime.d.ts.map +0 -1
- package/dist/compile/rbxts-runtime.js +0 -163
- package/dist/compile/rbxts-runtime.js.map +0 -1
- package/dist/compile/sourcemap.d.ts +0 -25
- package/dist/compile/sourcemap.d.ts.map +0 -1
- package/dist/compile/sourcemap.js +0 -71
- package/dist/compile/sourcemap.js.map +0 -1
- package/dist/compile/type.d.ts +0 -6
- package/dist/compile/type.d.ts.map +0 -1
- package/dist/compile/type.js +0 -122
- package/dist/compile/type.js.map +0 -1
- package/dist/compile/util.d.ts +0 -38
- package/dist/compile/util.d.ts.map +0 -1
- package/dist/compile/util.js +0 -153
- package/dist/compile/util.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/parser/index.d.ts +0 -4
- package/dist/parser/index.d.ts.map +0 -1
- package/dist/parser/index.js +0 -227
- package/dist/parser/index.js.map +0 -1
- package/dist/parser/types.d.ts +0 -430
- package/dist/parser/types.d.ts.map +0 -1
- package/dist/parser/types.js +0 -14
- package/dist/parser/types.js.map +0 -1
- package/dist/parser/wasm/luau-parser.d.mts +0 -21
- package/dist/parser/wasm/luau-parser.mjs +0 -2
- package/dist/parser/wasm/luau-parser.wasm +0 -0
- package/dist/rojo/index.d.ts +0 -4
- package/dist/rojo/index.d.ts.map +0 -1
- package/dist/rojo/index.js +0 -3
- package/dist/rojo/index.js.map +0 -1
- package/dist/rojo/load-project.d.ts +0 -12
- package/dist/rojo/load-project.d.ts.map +0 -1
- package/dist/rojo/load-project.js +0 -35
- package/dist/rojo/load-project.js.map +0 -1
- package/dist/rojo/types.d.ts +0 -39
- package/dist/rojo/types.d.ts.map +0 -1
- package/dist/rojo/types.js +0 -2
- package/dist/rojo/types.js.map +0 -1
- package/dist/rojo/walk-tree.d.ts +0 -40
- package/dist/rojo/walk-tree.d.ts.map +0 -1
- package/dist/rojo/walk-tree.js +0 -164
- package/dist/rojo/walk-tree.js.map +0 -1
- package/dist/runtime/arith.d.ts +0 -13
- package/dist/runtime/arith.d.ts.map +0 -1
- package/dist/runtime/arith.js +0 -151
- package/dist/runtime/arith.js.map +0 -1
- package/dist/runtime/index-helper.d.ts +0 -3
- package/dist/runtime/index-helper.d.ts.map +0 -1
- package/dist/runtime/index-helper.js +0 -40
- package/dist/runtime/index-helper.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -13
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -13
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/iterator.d.ts +0 -58
- package/dist/runtime/iterator.d.ts.map +0 -1
- package/dist/runtime/iterator.js +0 -181
- package/dist/runtime/iterator.js.map +0 -1
- package/dist/runtime/length.d.ts +0 -2
- package/dist/runtime/length.d.ts.map +0 -1
- package/dist/runtime/length.js +0 -15
- package/dist/runtime/length.js.map +0 -1
- package/dist/runtime/lua-stdlib.d.ts +0 -186
- package/dist/runtime/lua-stdlib.d.ts.map +0 -1
- package/dist/runtime/lua-stdlib.js +0 -502
- package/dist/runtime/lua-stdlib.js.map +0 -1
- package/dist/runtime/metatable.d.ts +0 -16
- package/dist/runtime/metatable.d.ts.map +0 -1
- package/dist/runtime/metatable.js +0 -129
- package/dist/runtime/metatable.js.map +0 -1
- package/dist/runtime/pattern.d.ts +0 -21
- package/dist/runtime/pattern.d.ts.map +0 -1
- package/dist/runtime/pattern.js +0 -375
- package/dist/runtime/pattern.js.map +0 -1
- package/dist/runtime/pcall.d.ts +0 -12
- package/dist/runtime/pcall.d.ts.map +0 -1
- package/dist/runtime/pcall.js +0 -54
- package/dist/runtime/pcall.js.map +0 -1
- package/dist/runtime/string-lib.d.ts +0 -31
- package/dist/runtime/string-lib.d.ts.map +0 -1
- package/dist/runtime/string-lib.js +0 -296
- package/dist/runtime/string-lib.js.map +0 -1
- package/dist/runtime/table-lib.d.ts +0 -18
- package/dist/runtime/table-lib.d.ts.map +0 -1
- package/dist/runtime/table-lib.js +0 -133
- package/dist/runtime/table-lib.js.map +0 -1
- package/dist/runtime/tostring.d.ts +0 -3
- package/dist/runtime/tostring.d.ts.map +0 -1
- package/dist/runtime/tostring.js +0 -82
- package/dist/runtime/tostring.js.map +0 -1
- package/dist/runtime/truthy.d.ts +0 -13
- package/dist/runtime/truthy.d.ts.map +0 -1
- package/dist/runtime/truthy.js +0 -26
- package/dist/runtime/truthy.js.map +0 -1
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
export declare function stringLen(s: string): number;
|
|
2
|
-
export declare function stringUpper(s: string): string;
|
|
3
|
-
export declare function stringLower(s: string): string;
|
|
4
|
-
export declare function stringSub(s: string, i: number, j?: number): string;
|
|
5
|
-
export declare function stringRep(s: string, n: number, sep?: string): string;
|
|
6
|
-
export declare function stringReverse(s: string): string;
|
|
7
|
-
export declare function stringByte(s: string, i?: number, j?: number): number[];
|
|
8
|
-
export declare function stringChar(...codes: number[]): string;
|
|
9
|
-
/**
|
|
10
|
-
* Lua's `string.find`. Returns [start, end, ...captures] (1-indexed) or
|
|
11
|
-
* undefined on no match. With `plain=true`, treats `pattern` as a literal
|
|
12
|
-
* substring (no Lua pattern interpretation).
|
|
13
|
-
*/
|
|
14
|
-
export declare function stringFind(s: string, pattern: string, init?: number, plain?: boolean): [number, number, ...(string | number)[]] | undefined;
|
|
15
|
-
/**
|
|
16
|
-
* Lua's `string.match`. Returns the first capture (or whole match if no
|
|
17
|
-
* captures), undefined if no match.
|
|
18
|
-
*/
|
|
19
|
-
export declare function stringMatch(s: string, pattern: string, init?: number): string | number | (string | number)[] | undefined;
|
|
20
|
-
/** Lua's `string.gmatch`. Iterate captures (or whole match) per occurrence. */
|
|
21
|
-
export declare function stringGmatch(s: string, pattern: string): () => string | (string | number)[] | undefined;
|
|
22
|
-
/**
|
|
23
|
-
* Lua's `string.gsub`. Returns [resultString, replacementCount].
|
|
24
|
-
*/
|
|
25
|
-
export declare function stringGsub(s: string, pattern: string, repl: string | ((match: string, ...captures: (string | number)[]) => string) | Record<string, string>, n?: number): [string, number];
|
|
26
|
-
/**
|
|
27
|
-
* Lua's `string.format`. Supports printf-style %d/%i/%u, %f/%g/%e, %s, %q,
|
|
28
|
-
* %x/%X, %o, %c, %%. Width, precision, and flags (- + 0 #) are honored.
|
|
29
|
-
*/
|
|
30
|
-
export declare function stringFormat(fmt: string, ...args: unknown[]): string;
|
|
31
|
-
//# sourceMappingURL=string-lib.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string-lib.d.ts","sourceRoot":"","sources":["../../src/runtime/string-lib.ts"],"names":[],"mappings":"AAgBA,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,GAAE,MAAW,GAAG,MAAM,CAMtE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,EAAE,CAAC,GAAE,MAAU,GAAG,MAAM,EAAE,CAOpE;AAED,wBAAgB,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAErD;AAID;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,IAAI,SAAI,EACR,KAAK,UAAQ,GACZ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,SAAS,CAUtD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,IAAI,SAAI,GACP,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAOnD;AAED,+EAA+E;AAC/E,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,GACd,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,SAAS,CAMhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,MAAM,EACT,OAAO,EAAE,MAAM,EACf,IAAI,EACA,MAAM,GACN,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,GAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,CAAC,CAAC,EAAE,MAAM,GACT,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlB;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CA4CpE"}
|
|
@@ -1,296 +0,0 @@
|
|
|
1
|
-
import { LuaError } from './pcall.js';
|
|
2
|
-
import { patternFind, patternGmatch, patternGsub } from './pattern.js';
|
|
3
|
-
// ─── Position helpers ───────────────────────────────────────────────────────
|
|
4
|
-
/** Translate a Lua 1-indexed position (with negative wrap-from-end) to a JS 0-indexed clamp. */
|
|
5
|
-
function toIndex(pos, len, isStart) {
|
|
6
|
-
if (pos === 0)
|
|
7
|
-
return 0;
|
|
8
|
-
if (pos < 0)
|
|
9
|
-
pos = len + pos + 1;
|
|
10
|
-
if (pos < 1)
|
|
11
|
-
pos = 1;
|
|
12
|
-
if (pos > len)
|
|
13
|
-
pos = len + (isStart ? 1 : 0);
|
|
14
|
-
return pos - 1;
|
|
15
|
-
}
|
|
16
|
-
// ─── Basic string ops ───────────────────────────────────────────────────────
|
|
17
|
-
export function stringLen(s) {
|
|
18
|
-
return new TextEncoder().encode(s).length;
|
|
19
|
-
}
|
|
20
|
-
export function stringUpper(s) {
|
|
21
|
-
return s.toUpperCase();
|
|
22
|
-
}
|
|
23
|
-
export function stringLower(s) {
|
|
24
|
-
return s.toLowerCase();
|
|
25
|
-
}
|
|
26
|
-
export function stringSub(s, i, j = -1) {
|
|
27
|
-
const len = s.length;
|
|
28
|
-
const start = toIndex(i, len, true);
|
|
29
|
-
const end = toIndex(j, len, false) + 1;
|
|
30
|
-
if (start >= end)
|
|
31
|
-
return '';
|
|
32
|
-
return s.slice(start, end);
|
|
33
|
-
}
|
|
34
|
-
export function stringRep(s, n, sep) {
|
|
35
|
-
if (n <= 0)
|
|
36
|
-
return '';
|
|
37
|
-
if (!sep)
|
|
38
|
-
return s.repeat(n);
|
|
39
|
-
return new Array(n).fill(s).join(sep);
|
|
40
|
-
}
|
|
41
|
-
export function stringReverse(s) {
|
|
42
|
-
return [...s].reverse().join('');
|
|
43
|
-
}
|
|
44
|
-
export function stringByte(s, i = 1, j = i) {
|
|
45
|
-
const len = s.length;
|
|
46
|
-
const start = toIndex(i, len, true);
|
|
47
|
-
const end = toIndex(j, len, false);
|
|
48
|
-
const out = [];
|
|
49
|
-
for (let k = start; k <= end && k < len; k += 1)
|
|
50
|
-
out.push(s.charCodeAt(k));
|
|
51
|
-
return out;
|
|
52
|
-
}
|
|
53
|
-
export function stringChar(...codes) {
|
|
54
|
-
return String.fromCharCode(...codes);
|
|
55
|
-
}
|
|
56
|
-
// ─── Pattern functions ──────────────────────────────────────────────────────
|
|
57
|
-
/**
|
|
58
|
-
* Lua's `string.find`. Returns [start, end, ...captures] (1-indexed) or
|
|
59
|
-
* undefined on no match. With `plain=true`, treats `pattern` as a literal
|
|
60
|
-
* substring (no Lua pattern interpretation).
|
|
61
|
-
*/
|
|
62
|
-
export function stringFind(s, pattern, init = 1, plain = false) {
|
|
63
|
-
const startIdx = toIndex(init, s.length, true);
|
|
64
|
-
if (plain) {
|
|
65
|
-
const idx = s.indexOf(pattern, startIdx);
|
|
66
|
-
if (idx === -1)
|
|
67
|
-
return undefined;
|
|
68
|
-
return [idx + 1, idx + pattern.length];
|
|
69
|
-
}
|
|
70
|
-
const m = patternFind(pattern, s, startIdx);
|
|
71
|
-
if (!m)
|
|
72
|
-
return undefined;
|
|
73
|
-
return [m.start + 1, m.end, ...m.captures];
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Lua's `string.match`. Returns the first capture (or whole match if no
|
|
77
|
-
* captures), undefined if no match.
|
|
78
|
-
*/
|
|
79
|
-
export function stringMatch(s, pattern, init = 1) {
|
|
80
|
-
const startIdx = toIndex(init, s.length, true);
|
|
81
|
-
const m = patternFind(pattern, s, startIdx);
|
|
82
|
-
if (!m)
|
|
83
|
-
return undefined;
|
|
84
|
-
if (m.captures.length === 0)
|
|
85
|
-
return m.match;
|
|
86
|
-
if (m.captures.length === 1)
|
|
87
|
-
return m.captures[0];
|
|
88
|
-
return m.captures;
|
|
89
|
-
}
|
|
90
|
-
/** Lua's `string.gmatch`. Iterate captures (or whole match) per occurrence. */
|
|
91
|
-
export function stringGmatch(s, pattern) {
|
|
92
|
-
const it = patternGmatch(pattern, s);
|
|
93
|
-
return () => {
|
|
94
|
-
const r = it.next();
|
|
95
|
-
return r.done ? undefined : r.value;
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Lua's `string.gsub`. Returns [resultString, replacementCount].
|
|
100
|
-
*/
|
|
101
|
-
export function stringGsub(s, pattern, repl, n) {
|
|
102
|
-
const { result, count } = patternGsub(pattern, s, repl, n);
|
|
103
|
-
return [result, count];
|
|
104
|
-
}
|
|
105
|
-
// ─── string.format ──────────────────────────────────────────────────────────
|
|
106
|
-
/**
|
|
107
|
-
* Lua's `string.format`. Supports printf-style %d/%i/%u, %f/%g/%e, %s, %q,
|
|
108
|
-
* %x/%X, %o, %c, %%. Width, precision, and flags (- + 0 #) are honored.
|
|
109
|
-
*/
|
|
110
|
-
export function stringFormat(fmt, ...args) {
|
|
111
|
-
let out = '';
|
|
112
|
-
let argIdx = 0;
|
|
113
|
-
let i = 0;
|
|
114
|
-
while (i < fmt.length) {
|
|
115
|
-
const ch = fmt[i];
|
|
116
|
-
if (ch !== '%') {
|
|
117
|
-
out += ch;
|
|
118
|
-
i += 1;
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
// Parse [flags][width][.precision][specifier]
|
|
122
|
-
let spec = '';
|
|
123
|
-
i += 1;
|
|
124
|
-
// Flags
|
|
125
|
-
while (i < fmt.length && '-+ 0#'.includes(fmt[i])) {
|
|
126
|
-
spec += fmt[i];
|
|
127
|
-
i += 1;
|
|
128
|
-
}
|
|
129
|
-
// Width
|
|
130
|
-
while (i < fmt.length && fmt[i] >= '0' && fmt[i] <= '9') {
|
|
131
|
-
spec += fmt[i];
|
|
132
|
-
i += 1;
|
|
133
|
-
}
|
|
134
|
-
// Precision
|
|
135
|
-
if (fmt[i] === '.') {
|
|
136
|
-
spec += '.';
|
|
137
|
-
i += 1;
|
|
138
|
-
while (i < fmt.length && fmt[i] >= '0' && fmt[i] <= '9') {
|
|
139
|
-
spec += fmt[i];
|
|
140
|
-
i += 1;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
const verb = fmt[i];
|
|
144
|
-
if (verb === undefined)
|
|
145
|
-
throw new LuaError(`invalid format string '${fmt}'`);
|
|
146
|
-
i += 1;
|
|
147
|
-
if (verb === '%') {
|
|
148
|
-
out += '%';
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
const arg = args[argIdx++];
|
|
152
|
-
out += formatOne(spec, verb, arg);
|
|
153
|
-
}
|
|
154
|
-
return out;
|
|
155
|
-
}
|
|
156
|
-
function formatOne(spec, verb, arg) {
|
|
157
|
-
switch (verb) {
|
|
158
|
-
case 'd':
|
|
159
|
-
case 'i':
|
|
160
|
-
return formatNumeric(spec, Math.trunc(Number(arg)), 10);
|
|
161
|
-
case 'u':
|
|
162
|
-
return formatNumeric(spec, Math.abs(Math.trunc(Number(arg))), 10);
|
|
163
|
-
case 'x':
|
|
164
|
-
return formatNumeric(spec, Math.trunc(Number(arg)), 16);
|
|
165
|
-
case 'X':
|
|
166
|
-
return formatNumeric(spec, Math.trunc(Number(arg)), 16).toUpperCase();
|
|
167
|
-
case 'o':
|
|
168
|
-
return formatNumeric(spec, Math.trunc(Number(arg)), 8);
|
|
169
|
-
case 'c':
|
|
170
|
-
return String.fromCharCode(Math.trunc(Number(arg)));
|
|
171
|
-
case 'f':
|
|
172
|
-
case 'F':
|
|
173
|
-
return formatFloat(spec, Number(arg), 'f');
|
|
174
|
-
case 'e':
|
|
175
|
-
return formatFloat(spec, Number(arg), 'e');
|
|
176
|
-
case 'E':
|
|
177
|
-
return formatFloat(spec, Number(arg), 'e').toUpperCase();
|
|
178
|
-
case 'g':
|
|
179
|
-
return formatFloat(spec, Number(arg), 'g');
|
|
180
|
-
case 'G':
|
|
181
|
-
return formatFloat(spec, Number(arg), 'g').toUpperCase();
|
|
182
|
-
case 's': {
|
|
183
|
-
const s = String(arg ?? '');
|
|
184
|
-
return applyWidthPrecision(spec, s, /*isString*/ true);
|
|
185
|
-
}
|
|
186
|
-
case 'q':
|
|
187
|
-
return luaQuote(String(arg ?? ''));
|
|
188
|
-
default:
|
|
189
|
-
throw new LuaError(`invalid conversion '%${verb}' in format`);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
function parseSpec(spec) {
|
|
193
|
-
let i = 0;
|
|
194
|
-
let leftAlign = false;
|
|
195
|
-
let zeroPad = false;
|
|
196
|
-
let showSign = false;
|
|
197
|
-
let spacePad = false;
|
|
198
|
-
let alt = false;
|
|
199
|
-
while (i < spec.length && '-+ 0#'.includes(spec[i])) {
|
|
200
|
-
if (spec[i] === '-')
|
|
201
|
-
leftAlign = true;
|
|
202
|
-
if (spec[i] === '+')
|
|
203
|
-
showSign = true;
|
|
204
|
-
if (spec[i] === ' ')
|
|
205
|
-
spacePad = true;
|
|
206
|
-
if (spec[i] === '0')
|
|
207
|
-
zeroPad = true;
|
|
208
|
-
if (spec[i] === '#')
|
|
209
|
-
alt = true;
|
|
210
|
-
i += 1;
|
|
211
|
-
}
|
|
212
|
-
let width = 0;
|
|
213
|
-
while (i < spec.length && spec[i] >= '0' && spec[i] <= '9') {
|
|
214
|
-
width = width * 10 + (spec[i].charCodeAt(0) - 48);
|
|
215
|
-
i += 1;
|
|
216
|
-
}
|
|
217
|
-
let precision = -1;
|
|
218
|
-
if (spec[i] === '.') {
|
|
219
|
-
i += 1;
|
|
220
|
-
precision = 0;
|
|
221
|
-
while (i < spec.length && spec[i] >= '0' && spec[i] <= '9') {
|
|
222
|
-
precision = precision * 10 + (spec[i].charCodeAt(0) - 48);
|
|
223
|
-
i += 1;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
return { leftAlign, zeroPad, showSign, spacePad, alt, width, precision };
|
|
227
|
-
}
|
|
228
|
-
function formatNumeric(spec, n, base) {
|
|
229
|
-
const ps = parseSpec(spec);
|
|
230
|
-
let body = Math.abs(n).toString(base);
|
|
231
|
-
if (ps.precision >= 0)
|
|
232
|
-
body = body.padStart(ps.precision, '0');
|
|
233
|
-
if (base === 16 && ps.alt && n !== 0)
|
|
234
|
-
body = `0x${body}`;
|
|
235
|
-
if (base === 8 && ps.alt && body[0] !== '0')
|
|
236
|
-
body = `0${body}`;
|
|
237
|
-
let sign = '';
|
|
238
|
-
if (n < 0)
|
|
239
|
-
sign = '-';
|
|
240
|
-
else if (ps.showSign)
|
|
241
|
-
sign = '+';
|
|
242
|
-
else if (ps.spacePad)
|
|
243
|
-
sign = ' ';
|
|
244
|
-
return padField(ps, sign + body);
|
|
245
|
-
}
|
|
246
|
-
function formatFloat(spec, n, kind) {
|
|
247
|
-
const ps = parseSpec(spec);
|
|
248
|
-
const prec = ps.precision >= 0 ? ps.precision : 6;
|
|
249
|
-
let body;
|
|
250
|
-
if (kind === 'f')
|
|
251
|
-
body = Math.abs(n).toFixed(prec);
|
|
252
|
-
else if (kind === 'e')
|
|
253
|
-
body = Math.abs(n).toExponential(prec);
|
|
254
|
-
else
|
|
255
|
-
body = Math.abs(n).toPrecision(prec || 1);
|
|
256
|
-
let sign = '';
|
|
257
|
-
if (n < 0)
|
|
258
|
-
sign = '-';
|
|
259
|
-
else if (ps.showSign)
|
|
260
|
-
sign = '+';
|
|
261
|
-
else if (ps.spacePad)
|
|
262
|
-
sign = ' ';
|
|
263
|
-
return padField(ps, sign + body);
|
|
264
|
-
}
|
|
265
|
-
function applyWidthPrecision(spec, s, isString) {
|
|
266
|
-
const ps = parseSpec(spec);
|
|
267
|
-
if (isString && ps.precision >= 0 && ps.precision < s.length) {
|
|
268
|
-
s = s.slice(0, ps.precision);
|
|
269
|
-
}
|
|
270
|
-
return padField(ps, s);
|
|
271
|
-
}
|
|
272
|
-
function padField(ps, s) {
|
|
273
|
-
if (s.length >= ps.width)
|
|
274
|
-
return s;
|
|
275
|
-
const padCh = ps.zeroPad && !ps.leftAlign ? '0' : ' ';
|
|
276
|
-
return ps.leftAlign ? s.padEnd(ps.width, ' ') : s.padStart(ps.width, padCh);
|
|
277
|
-
}
|
|
278
|
-
function luaQuote(s) {
|
|
279
|
-
let out = '"';
|
|
280
|
-
for (const c of s) {
|
|
281
|
-
if (c === '"')
|
|
282
|
-
out += '\\"';
|
|
283
|
-
else if (c === '\\')
|
|
284
|
-
out += '\\\\';
|
|
285
|
-
else if (c === '\n')
|
|
286
|
-
out += '\\n';
|
|
287
|
-
else if (c === '\r')
|
|
288
|
-
out += '\\r';
|
|
289
|
-
else if (c === '\0')
|
|
290
|
-
out += '\\0';
|
|
291
|
-
else
|
|
292
|
-
out += c;
|
|
293
|
-
}
|
|
294
|
-
return `${out}"`;
|
|
295
|
-
}
|
|
296
|
-
//# sourceMappingURL=string-lib.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"string-lib.js","sourceRoot":"","sources":["../../src/runtime/string-lib.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare function tableInsert<T>(t: T[], posOrValue: number | T, maybeValue?: T): void;
|
|
2
|
-
export declare function tableRemove<T>(t: T[], pos?: number): T | undefined;
|
|
3
|
-
export declare function tableConcat(t: unknown[], sep?: string, i?: number, j?: number): string;
|
|
4
|
-
export declare function tableSort<T>(t: T[], comp?: (a: T, b: T) => boolean): void;
|
|
5
|
-
export declare function tableUnpack<T>(t: T[] | (Record<number, T> & {
|
|
6
|
-
n?: number;
|
|
7
|
-
}), i?: number, j?: number): T[];
|
|
8
|
-
export declare function tablePack(...values: unknown[]): {
|
|
9
|
-
n: number;
|
|
10
|
-
} & Record<number, unknown>;
|
|
11
|
-
export declare function tableFind<T>(t: T[], value: T, init?: number): number | undefined;
|
|
12
|
-
export declare function tableClear(t: unknown[]): void;
|
|
13
|
-
export declare function tableClone<T>(t: T[]): T[];
|
|
14
|
-
export declare function tableFreeze<T extends object>(t: T): T;
|
|
15
|
-
export declare function tableIsFrozen(t: object): boolean;
|
|
16
|
-
export declare function tableMove<T>(a1: T[], f: number, e: number, dest: number, a2?: T[]): T[];
|
|
17
|
-
export declare function tableMaxn(t: Record<number, unknown>): number;
|
|
18
|
-
//# sourceMappingURL=table-lib.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-lib.d.ts","sourceRoot":"","sources":["../../src/runtime/table-lib.ts"],"names":[],"mappings":"AAQA,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAWnF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CASlE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,SAAK,EAAE,CAAC,SAAI,EAAE,CAAC,GAAE,MAAiB,GAAG,MAAM,CASvF;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,IAAI,CAkBzE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG;IAAE,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,CAAC,SAAI,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAWpG;AAED,wBAAgB,SAAS,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;IAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUvF;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,SAAI,GAAG,MAAM,GAAG,SAAS,CAK3E;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAG7C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAEzC;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAIrD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAE,CAAC,EAAO,GAAG,CAAC,EAAE,CAO3F;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAO5D"}
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { LuaError } from './pcall.js';
|
|
2
|
-
const FROZEN = new WeakSet();
|
|
3
|
-
function checkFrozen(t) {
|
|
4
|
-
if (FROZEN.has(t))
|
|
5
|
-
throw new LuaError('attempt to modify a readonly table');
|
|
6
|
-
}
|
|
7
|
-
export function tableInsert(t, posOrValue, maybeValue) {
|
|
8
|
-
checkFrozen(t);
|
|
9
|
-
if (arguments.length >= 3) {
|
|
10
|
-
const pos = posOrValue;
|
|
11
|
-
if (!Number.isInteger(pos) || pos < 1 || pos > t.length + 1) {
|
|
12
|
-
throw new LuaError(`bad argument #2 to 'insert' (position out of bounds)`);
|
|
13
|
-
}
|
|
14
|
-
t.splice(pos - 1, 0, maybeValue);
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
t.push(posOrValue);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export function tableRemove(t, pos) {
|
|
21
|
-
checkFrozen(t);
|
|
22
|
-
if (t.length === 0)
|
|
23
|
-
return undefined;
|
|
24
|
-
if (pos === undefined)
|
|
25
|
-
return t.pop();
|
|
26
|
-
if (!Number.isInteger(pos) || pos < 1 || pos > t.length) {
|
|
27
|
-
throw new LuaError(`bad argument #2 to 'remove' (position out of bounds)`);
|
|
28
|
-
}
|
|
29
|
-
const [removed] = t.splice(pos - 1, 1);
|
|
30
|
-
return removed;
|
|
31
|
-
}
|
|
32
|
-
export function tableConcat(t, sep = '', i = 1, j = t.length) {
|
|
33
|
-
if (i < 1 || j > t.length)
|
|
34
|
-
throw new LuaError(`invalid value (out of range)`);
|
|
35
|
-
const out = [];
|
|
36
|
-
for (let k = i; k <= j; k += 1) {
|
|
37
|
-
const v = t[k - 1];
|
|
38
|
-
if (typeof v === 'number' || typeof v === 'string')
|
|
39
|
-
out.push(String(v));
|
|
40
|
-
else
|
|
41
|
-
throw new LuaError(`invalid value (at index ${k}) in table for 'concat'`);
|
|
42
|
-
}
|
|
43
|
-
return out.join(sep);
|
|
44
|
-
}
|
|
45
|
-
export function tableSort(t, comp) {
|
|
46
|
-
checkFrozen(t);
|
|
47
|
-
if (comp) {
|
|
48
|
-
t.sort((a, b) => {
|
|
49
|
-
// Lua comp returns true if a should come before b. JS sort wants
|
|
50
|
-
// negative/zero/positive — translate via two probes for stability.
|
|
51
|
-
if (comp(a, b))
|
|
52
|
-
return -1;
|
|
53
|
-
if (comp(b, a))
|
|
54
|
-
return 1;
|
|
55
|
-
return 0;
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
t.sort((a, b) => {
|
|
60
|
-
if (typeof a === 'number' && typeof b === 'number')
|
|
61
|
-
return a - b;
|
|
62
|
-
const sa = String(a);
|
|
63
|
-
const sb = String(b);
|
|
64
|
-
return sa < sb ? -1 : sa > sb ? 1 : 0;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
export function tableUnpack(t, i = 1, j) {
|
|
69
|
-
if (Array.isArray(t)) {
|
|
70
|
-
return t.slice(i - 1, j);
|
|
71
|
-
}
|
|
72
|
-
// tablePack output is 0-indexed (post compiler-subtract-1 fix), so walk
|
|
73
|
-
// from i-1 to (j ?? n) - 1 inclusive.
|
|
74
|
-
const obj = t;
|
|
75
|
-
const last = (j ?? obj.n ?? 0) - 1;
|
|
76
|
-
const out = [];
|
|
77
|
-
for (let k = i - 1; k <= last; k += 1)
|
|
78
|
-
out.push(obj[k]);
|
|
79
|
-
return out;
|
|
80
|
-
}
|
|
81
|
-
export function tablePack(...values) {
|
|
82
|
-
// Spread single-array arg — compiler models multi-return as JS array.
|
|
83
|
-
if (values.length === 1 && Array.isArray(values[0])) {
|
|
84
|
-
values = values[0];
|
|
85
|
-
}
|
|
86
|
-
// After the compiler's subtract-1 fix, user code `packed[1]` now reads JS
|
|
87
|
-
// key '0'. Store at 0-indexed keys so access matches; keep n for unpack.
|
|
88
|
-
const out = { n: values.length };
|
|
89
|
-
for (let k = 0; k < values.length; k += 1)
|
|
90
|
-
out[k] = values[k];
|
|
91
|
-
return out;
|
|
92
|
-
}
|
|
93
|
-
export function tableFind(t, value, init = 1) {
|
|
94
|
-
for (let k = init - 1; k < t.length; k += 1) {
|
|
95
|
-
if (t[k] === value)
|
|
96
|
-
return k + 1;
|
|
97
|
-
}
|
|
98
|
-
return undefined;
|
|
99
|
-
}
|
|
100
|
-
export function tableClear(t) {
|
|
101
|
-
checkFrozen(t);
|
|
102
|
-
t.length = 0;
|
|
103
|
-
}
|
|
104
|
-
export function tableClone(t) {
|
|
105
|
-
return [...t];
|
|
106
|
-
}
|
|
107
|
-
export function tableFreeze(t) {
|
|
108
|
-
FROZEN.add(t);
|
|
109
|
-
Object.freeze(t);
|
|
110
|
-
return t;
|
|
111
|
-
}
|
|
112
|
-
export function tableIsFrozen(t) {
|
|
113
|
-
return FROZEN.has(t) || Object.isFrozen(t);
|
|
114
|
-
}
|
|
115
|
-
export function tableMove(a1, f, e, dest, a2 = a1) {
|
|
116
|
-
checkFrozen(a2);
|
|
117
|
-
if (e < f)
|
|
118
|
-
return a2;
|
|
119
|
-
for (let k = 0; k <= e - f; k += 1) {
|
|
120
|
-
a2[dest - 1 + k] = a1[f - 1 + k];
|
|
121
|
-
}
|
|
122
|
-
return a2;
|
|
123
|
-
}
|
|
124
|
-
export function tableMaxn(t) {
|
|
125
|
-
let max = 0;
|
|
126
|
-
for (const k of Object.keys(t)) {
|
|
127
|
-
const n = Number(k);
|
|
128
|
-
if (Number.isFinite(n) && n > max)
|
|
129
|
-
max = n;
|
|
130
|
-
}
|
|
131
|
-
return max;
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=table-lib.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-lib.js","sourceRoot":"","sources":["../../src/runtime/table-lib.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tostring.d.ts","sourceRoot":"","sources":["../../src/runtime/tostring.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA8B/C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoB1E"}
|
package/dist/runtime/tostring.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
export function tostring(value) {
|
|
2
|
-
if (value === null || value === undefined)
|
|
3
|
-
return 'nil';
|
|
4
|
-
if (typeof value === 'boolean')
|
|
5
|
-
return value ? 'true' : 'false';
|
|
6
|
-
if (typeof value === 'number') {
|
|
7
|
-
if (Number.isNaN(value))
|
|
8
|
-
return 'nan';
|
|
9
|
-
if (!Number.isFinite(value))
|
|
10
|
-
return value > 0 ? 'inf' : '-inf';
|
|
11
|
-
// Lua prints integers without trailing .0; doubles use %.14g format.
|
|
12
|
-
if (Number.isInteger(value))
|
|
13
|
-
return value.toString();
|
|
14
|
-
return formatNumber(value);
|
|
15
|
-
}
|
|
16
|
-
if (typeof value === 'string')
|
|
17
|
-
return value;
|
|
18
|
-
if (typeof value === 'function')
|
|
19
|
-
return `function: ${anonAddr(value)}`;
|
|
20
|
-
if (typeof value === 'object') {
|
|
21
|
-
const obj = value;
|
|
22
|
-
if (typeof obj.__tostring === 'function')
|
|
23
|
-
return obj.__tostring();
|
|
24
|
-
if (Array.isArray(value))
|
|
25
|
-
return `table: ${anonAddr(value)}`;
|
|
26
|
-
if (typeof obj.toString === 'function' && obj.toString !== Object.prototype.toString) {
|
|
27
|
-
const raw = obj.toString();
|
|
28
|
-
// Roblox Instances use a stable UID for JS object-key coercion. Lua-side
|
|
29
|
-
// `tostring(part)` should yield the current Name, like Roblox.
|
|
30
|
-
const idx = raw.indexOf('\x01');
|
|
31
|
-
if (idx >= 0) {
|
|
32
|
-
const name = value.Name;
|
|
33
|
-
return typeof name === 'string' ? name : raw.slice(0, idx);
|
|
34
|
-
}
|
|
35
|
-
return raw;
|
|
36
|
-
}
|
|
37
|
-
return `table: ${anonAddr(value)}`;
|
|
38
|
-
}
|
|
39
|
-
return String(value);
|
|
40
|
-
}
|
|
41
|
-
export function tonumber(value, base) {
|
|
42
|
-
if (typeof value === 'number') {
|
|
43
|
-
if (base !== undefined && base !== 10)
|
|
44
|
-
return undefined;
|
|
45
|
-
return Number.isFinite(value) ? value : undefined;
|
|
46
|
-
}
|
|
47
|
-
if (typeof value !== 'string')
|
|
48
|
-
return undefined;
|
|
49
|
-
const trimmed = value.trim();
|
|
50
|
-
if (trimmed === '')
|
|
51
|
-
return undefined;
|
|
52
|
-
if (base !== undefined) {
|
|
53
|
-
if (base < 2 || base > 36 || !Number.isInteger(base))
|
|
54
|
-
return undefined;
|
|
55
|
-
const parsed = parseInt(trimmed, base);
|
|
56
|
-
return Number.isNaN(parsed) ? undefined : parsed;
|
|
57
|
-
}
|
|
58
|
-
// Decimal / hex / inf — match Lua's permissive parser.
|
|
59
|
-
if (/^[+-]?0[xX]/.test(trimmed)) {
|
|
60
|
-
const hex = parseInt(trimmed, 16);
|
|
61
|
-
return Number.isNaN(hex) ? undefined : hex;
|
|
62
|
-
}
|
|
63
|
-
const num = Number(trimmed);
|
|
64
|
-
return Number.isNaN(num) ? undefined : num;
|
|
65
|
-
}
|
|
66
|
-
function formatNumber(n) {
|
|
67
|
-
// Lua uses %.14g — JS doesn't have that natively, but toPrecision(14)
|
|
68
|
-
// strips trailing zeros and matches well enough for our purposes.
|
|
69
|
-
return parseFloat(n.toPrecision(14)).toString();
|
|
70
|
-
}
|
|
71
|
-
const addrCounter = new WeakMap();
|
|
72
|
-
let nextAddr = 1;
|
|
73
|
-
function anonAddr(value) {
|
|
74
|
-
const obj = value;
|
|
75
|
-
let addr = addrCounter.get(obj);
|
|
76
|
-
if (!addr) {
|
|
77
|
-
addr = `0x${(nextAddr++).toString(16).padStart(8, '0')}`;
|
|
78
|
-
addrCounter.set(obj, addr);
|
|
79
|
-
}
|
|
80
|
-
return addr;
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=tostring.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tostring.js","sourceRoot":"","sources":["../../src/runtime/tostring.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/truthy.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export declare function isTruthy(value: unknown): boolean;
|
|
2
|
-
export declare function luaNot(value: unknown): boolean;
|
|
3
|
-
/**
|
|
4
|
-
* `a and b` in Lua: returns the first falsy value, otherwise the last value.
|
|
5
|
-
* Note both operands are passed already-evaluated; this helper does NOT
|
|
6
|
-
* short-circuit (the compiler emits its own short-circuit when it can).
|
|
7
|
-
*/
|
|
8
|
-
export declare function luaAnd<A, B>(a: A, b: B): A | B;
|
|
9
|
-
/**
|
|
10
|
-
* `a or b` in Lua: returns the first truthy value, otherwise the last.
|
|
11
|
-
*/
|
|
12
|
-
export declare function luaOr<A, B>(a: A, b: B): A | B;
|
|
13
|
-
//# sourceMappingURL=truthy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"truthy.d.ts","sourceRoot":"","sources":["../../src/runtime/truthy.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWhD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAE9C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAE7C"}
|