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.
Files changed (141) hide show
  1. package/README.md +1 -1
  2. package/package.json +4 -1
  3. package/dist/cli/args.d.ts +0 -19
  4. package/dist/cli/args.d.ts.map +0 -1
  5. package/dist/cli/args.js +0 -130
  6. package/dist/cli/args.js.map +0 -1
  7. package/dist/cli/bin.d.ts +0 -3
  8. package/dist/cli/bin.d.ts.map +0 -1
  9. package/dist/cli/bin.js +0 -65
  10. package/dist/cli/bin.js.map +0 -1
  11. package/dist/cli/modes.d.ts +0 -17
  12. package/dist/cli/modes.d.ts.map +0 -1
  13. package/dist/cli/modes.js +0 -134
  14. package/dist/cli/modes.js.map +0 -1
  15. package/dist/compile/class-shape.d.ts +0 -31
  16. package/dist/compile/class-shape.d.ts.map +0 -1
  17. package/dist/compile/class-shape.js +0 -291
  18. package/dist/compile/class-shape.js.map +0 -1
  19. package/dist/compile/context.d.ts +0 -86
  20. package/dist/compile/context.d.ts.map +0 -1
  21. package/dist/compile/context.js +0 -144
  22. package/dist/compile/context.js.map +0 -1
  23. package/dist/compile/index.d.ts +0 -43
  24. package/dist/compile/index.d.ts.map +0 -1
  25. package/dist/compile/index.js +0 -2028
  26. package/dist/compile/index.js.map +0 -1
  27. package/dist/compile/macros/datatypes.d.ts +0 -2
  28. package/dist/compile/macros/datatypes.d.ts.map +0 -1
  29. package/dist/compile/macros/datatypes.js +0 -76
  30. package/dist/compile/macros/datatypes.js.map +0 -1
  31. package/dist/compile/macros/index.d.ts +0 -33
  32. package/dist/compile/macros/index.d.ts.map +0 -1
  33. package/dist/compile/macros/index.js +0 -71
  34. package/dist/compile/macros/index.js.map +0 -1
  35. package/dist/compile/macros/instance.d.ts +0 -2
  36. package/dist/compile/macros/instance.d.ts.map +0 -1
  37. package/dist/compile/macros/instance.js +0 -58
  38. package/dist/compile/macros/instance.js.map +0 -1
  39. package/dist/compile/macros/stdlib.d.ts +0 -2
  40. package/dist/compile/macros/stdlib.d.ts.map +0 -1
  41. package/dist/compile/macros/stdlib.js +0 -140
  42. package/dist/compile/macros/stdlib.js.map +0 -1
  43. package/dist/compile/rbxts-runtime.d.ts +0 -2
  44. package/dist/compile/rbxts-runtime.d.ts.map +0 -1
  45. package/dist/compile/rbxts-runtime.js +0 -163
  46. package/dist/compile/rbxts-runtime.js.map +0 -1
  47. package/dist/compile/sourcemap.d.ts +0 -25
  48. package/dist/compile/sourcemap.d.ts.map +0 -1
  49. package/dist/compile/sourcemap.js +0 -71
  50. package/dist/compile/sourcemap.js.map +0 -1
  51. package/dist/compile/type.d.ts +0 -6
  52. package/dist/compile/type.d.ts.map +0 -1
  53. package/dist/compile/type.js +0 -122
  54. package/dist/compile/type.js.map +0 -1
  55. package/dist/compile/util.d.ts +0 -38
  56. package/dist/compile/util.d.ts.map +0 -1
  57. package/dist/compile/util.js +0 -153
  58. package/dist/compile/util.js.map +0 -1
  59. package/dist/index.d.ts +0 -3
  60. package/dist/index.d.ts.map +0 -1
  61. package/dist/index.js +0 -7
  62. package/dist/index.js.map +0 -1
  63. package/dist/parser/index.d.ts +0 -4
  64. package/dist/parser/index.d.ts.map +0 -1
  65. package/dist/parser/index.js +0 -227
  66. package/dist/parser/index.js.map +0 -1
  67. package/dist/parser/types.d.ts +0 -430
  68. package/dist/parser/types.d.ts.map +0 -1
  69. package/dist/parser/types.js +0 -14
  70. package/dist/parser/types.js.map +0 -1
  71. package/dist/parser/wasm/luau-parser.d.mts +0 -21
  72. package/dist/parser/wasm/luau-parser.mjs +0 -2
  73. package/dist/parser/wasm/luau-parser.wasm +0 -0
  74. package/dist/rojo/index.d.ts +0 -4
  75. package/dist/rojo/index.d.ts.map +0 -1
  76. package/dist/rojo/index.js +0 -3
  77. package/dist/rojo/index.js.map +0 -1
  78. package/dist/rojo/load-project.d.ts +0 -12
  79. package/dist/rojo/load-project.d.ts.map +0 -1
  80. package/dist/rojo/load-project.js +0 -35
  81. package/dist/rojo/load-project.js.map +0 -1
  82. package/dist/rojo/types.d.ts +0 -39
  83. package/dist/rojo/types.d.ts.map +0 -1
  84. package/dist/rojo/types.js +0 -2
  85. package/dist/rojo/types.js.map +0 -1
  86. package/dist/rojo/walk-tree.d.ts +0 -40
  87. package/dist/rojo/walk-tree.d.ts.map +0 -1
  88. package/dist/rojo/walk-tree.js +0 -164
  89. package/dist/rojo/walk-tree.js.map +0 -1
  90. package/dist/runtime/arith.d.ts +0 -13
  91. package/dist/runtime/arith.d.ts.map +0 -1
  92. package/dist/runtime/arith.js +0 -151
  93. package/dist/runtime/arith.js.map +0 -1
  94. package/dist/runtime/index-helper.d.ts +0 -3
  95. package/dist/runtime/index-helper.d.ts.map +0 -1
  96. package/dist/runtime/index-helper.js +0 -40
  97. package/dist/runtime/index-helper.js.map +0 -1
  98. package/dist/runtime/index.d.ts +0 -13
  99. package/dist/runtime/index.d.ts.map +0 -1
  100. package/dist/runtime/index.js +0 -13
  101. package/dist/runtime/index.js.map +0 -1
  102. package/dist/runtime/iterator.d.ts +0 -58
  103. package/dist/runtime/iterator.d.ts.map +0 -1
  104. package/dist/runtime/iterator.js +0 -181
  105. package/dist/runtime/iterator.js.map +0 -1
  106. package/dist/runtime/length.d.ts +0 -2
  107. package/dist/runtime/length.d.ts.map +0 -1
  108. package/dist/runtime/length.js +0 -15
  109. package/dist/runtime/length.js.map +0 -1
  110. package/dist/runtime/lua-stdlib.d.ts +0 -186
  111. package/dist/runtime/lua-stdlib.d.ts.map +0 -1
  112. package/dist/runtime/lua-stdlib.js +0 -502
  113. package/dist/runtime/lua-stdlib.js.map +0 -1
  114. package/dist/runtime/metatable.d.ts +0 -16
  115. package/dist/runtime/metatable.d.ts.map +0 -1
  116. package/dist/runtime/metatable.js +0 -129
  117. package/dist/runtime/metatable.js.map +0 -1
  118. package/dist/runtime/pattern.d.ts +0 -21
  119. package/dist/runtime/pattern.d.ts.map +0 -1
  120. package/dist/runtime/pattern.js +0 -375
  121. package/dist/runtime/pattern.js.map +0 -1
  122. package/dist/runtime/pcall.d.ts +0 -12
  123. package/dist/runtime/pcall.d.ts.map +0 -1
  124. package/dist/runtime/pcall.js +0 -54
  125. package/dist/runtime/pcall.js.map +0 -1
  126. package/dist/runtime/string-lib.d.ts +0 -31
  127. package/dist/runtime/string-lib.d.ts.map +0 -1
  128. package/dist/runtime/string-lib.js +0 -296
  129. package/dist/runtime/string-lib.js.map +0 -1
  130. package/dist/runtime/table-lib.d.ts +0 -18
  131. package/dist/runtime/table-lib.d.ts.map +0 -1
  132. package/dist/runtime/table-lib.js +0 -133
  133. package/dist/runtime/table-lib.js.map +0 -1
  134. package/dist/runtime/tostring.d.ts +0 -3
  135. package/dist/runtime/tostring.d.ts.map +0 -1
  136. package/dist/runtime/tostring.js +0 -82
  137. package/dist/runtime/tostring.js.map +0 -1
  138. package/dist/runtime/truthy.d.ts +0 -13
  139. package/dist/runtime/truthy.d.ts.map +0 -1
  140. package/dist/runtime/truthy.js +0 -26
  141. package/dist/runtime/truthy.js.map +0 -1
@@ -1,502 +0,0 @@
1
- import { stringByte, stringChar, stringFind, stringFormat, stringGmatch, stringGsub, stringLen, stringLower, stringMatch, stringRep, stringReverse, stringSub, stringUpper, } from './string-lib.js';
2
- import { tableClear, tableClone, tableConcat, tableFind, tableFreeze, tableInsert, tableIsFrozen, tableMaxn, tableMove, tablePack, tableRemove, tableSort, tableUnpack, } from './table-lib.js';
3
- // ─── string ─────────────────────────────────────────────────────────────────
4
- // Lua's `string` library. `string.split` is Roblox-specific (Luau extension).
5
- function stringSplit(s, sep = ',') {
6
- if (sep.length === 0)
7
- return [...s];
8
- return s.split(sep);
9
- }
10
- export const string = {
11
- byte: stringByte,
12
- char: stringChar,
13
- find: stringFind,
14
- format: stringFormat,
15
- gmatch: stringGmatch,
16
- gsub: stringGsub,
17
- len: stringLen,
18
- lower: stringLower,
19
- match: stringMatch,
20
- rep: stringRep,
21
- reverse: stringReverse,
22
- sub: stringSub,
23
- upper: stringUpper,
24
- split: stringSplit,
25
- // Lua 5.3+ pack/unpack are rarely used in Roblox scripts; expose minimal
26
- // pass-through that returns the inputs verbatim. Real implementation would
27
- // need Lua's binary-format mini-language.
28
- pack: (..._args) => '',
29
- unpack: (..._args) => [],
30
- packsize: (_fmt) => 0,
31
- };
32
- // ─── table ──────────────────────────────────────────────────────────────────
33
- // Note: `unpack` is also exported as a global below.
34
- export const table = {
35
- insert: tableInsert,
36
- remove: tableRemove,
37
- concat: tableConcat,
38
- sort: tableSort,
39
- unpack: tableUnpack,
40
- pack: tablePack,
41
- find: tableFind,
42
- clear: tableClear,
43
- clone: tableClone,
44
- freeze: tableFreeze,
45
- isfrozen: tableIsFrozen,
46
- move: tableMove,
47
- maxn: tableMaxn,
48
- // Luau-extension: table.create(n, v) → array of n copies of v.
49
- create(count, value) {
50
- const out = new Array(count);
51
- if (value !== undefined)
52
- for (let i = 0; i < count; i++)
53
- out[i] = value;
54
- return out;
55
- },
56
- // Roblox `table.foreach` / `foreachi` are deprecated in newer Luau.
57
- foreach(t, fn) {
58
- for (const k of Object.keys(t))
59
- fn(k, t[k]);
60
- },
61
- foreachi(t, fn) {
62
- for (let i = 0; i < t.length; i++)
63
- fn(i + 1, t[i]);
64
- },
65
- getn(t) {
66
- return t.length;
67
- },
68
- };
69
- // ─── math ───────────────────────────────────────────────────────────────────
70
- // Wraps JS Math + Lua-specific extras. `math.random` defaults to JS
71
- // Math.random — scripts that depend on determinism should swap via
72
- // `math.randomseed` to a seeded generator (we keep an LCG as fallback).
73
- let _mathRandomState = null;
74
- function lcgNext() {
75
- // Same LCG MMIX uses; deterministic when seeded.
76
- _mathRandomState = ((_mathRandomState * 6364136223846793005) + 1442695040888963407) >>> 0;
77
- return _mathRandomState / 0x100000000;
78
- }
79
- function _mathRandomNumber() {
80
- if (_mathRandomState !== null)
81
- return lcgNext();
82
- // eslint-disable-next-line no-restricted-globals
83
- return Math.random();
84
- }
85
- function _mathRandom(m, n) {
86
- const r = _mathRandomNumber();
87
- if (m === undefined)
88
- return r;
89
- if (n === undefined)
90
- return Math.floor(r * Math.floor(m)) + 1;
91
- return Math.floor(r * (Math.floor(n) - Math.floor(m) + 1)) + Math.floor(m);
92
- }
93
- function _mathRandomSeed(seed = 0) {
94
- _mathRandomState = (seed | 0) >>> 0;
95
- // Burn one round so seed=0 doesn't return 0.
96
- lcgNext();
97
- }
98
- export const math = {
99
- abs: Math.abs,
100
- acos: Math.acos,
101
- asin: Math.asin,
102
- atan: Math.atan,
103
- atan2: Math.atan2, // Lua 5.1 alias; Lua 5.3 folded into atan.
104
- ceil: Math.ceil,
105
- clamp(x, lo, hi) {
106
- return Math.min(Math.max(x, lo), hi);
107
- },
108
- cos: Math.cos,
109
- cosh: Math.cosh,
110
- deg(x) { return x * (180 / Math.PI); },
111
- exp: Math.exp,
112
- floor: Math.floor,
113
- fmod(x, y) { return x - Math.floor(x / y) * y; },
114
- frexp(x) {
115
- if (x === 0)
116
- return [0, 0];
117
- const e = Math.floor(Math.log2(Math.abs(x))) + 1;
118
- const m = x / Math.pow(2, e);
119
- return [m, e];
120
- },
121
- huge: Infinity,
122
- ldexp(m, e) { return m * Math.pow(2, e); },
123
- log(x, base) {
124
- if (base === undefined)
125
- return Math.log(x);
126
- return Math.log(x) / Math.log(base);
127
- },
128
- log10(x) { return Math.log10(x); },
129
- max: Math.max,
130
- min: Math.min,
131
- modf(x) {
132
- const intPart = x < 0 ? Math.ceil(x) : Math.floor(x);
133
- return [intPart, x - intPart];
134
- },
135
- noise(x = 0, y = 0, z = 0) {
136
- // Roblox uses Perlin noise; this is a simple value-noise stand-in
137
- // returning a deterministic function in [-0.5, 0.5]. Real noise lives
138
- // in `simplex-noise` if scripts need it.
139
- const n = Math.sin(x * 12.9898 + y * 78.233 + z * 37.719) * 43758.5453;
140
- return (n - Math.floor(n)) - 0.5;
141
- },
142
- pi: Math.PI,
143
- pow(x, y) { return Math.pow(x, y); },
144
- rad(x) { return x * (Math.PI / 180); },
145
- random: _mathRandom,
146
- randomseed: _mathRandomSeed,
147
- round(x) { return Math.round(x); },
148
- sign(x) { return Math.sign(x); },
149
- sin: Math.sin,
150
- sinh: Math.sinh,
151
- sqrt: Math.sqrt,
152
- tan: Math.tan,
153
- tanh: Math.tanh,
154
- // Luau extensions
155
- map(x, inMin, inMax, outMin, outMax) {
156
- return outMin + ((x - inMin) / (inMax - inMin)) * (outMax - outMin);
157
- },
158
- lerp(a, b, t) {
159
- return a + (b - a) * t;
160
- },
161
- };
162
- // ─── os ─────────────────────────────────────────────────────────────────────
163
- // Browser mode has no real `os` — we fake the time-related calls using the
164
- // underlying Date object. Determinism note: scripts that read `os.time()`
165
- // and use the result for state see different values across runs. Use
166
- // `time()` (simulatedTime) for deterministic behavior.
167
- function _osTime(t) {
168
- if (!t)
169
- return Math.floor(Date.now() / 1000);
170
- const d = new Date(t.year ?? 1970, (t.month ?? 1) - 1, t.day ?? 1, t.hour ?? 12, t.min ?? 0, t.sec ?? 0);
171
- return Math.floor(d.getTime() / 1000);
172
- }
173
- function _osDate(format = '%c', t) {
174
- const d = t !== undefined ? new Date(t * 1000) : new Date();
175
- const utc = format.startsWith('!');
176
- const f = utc ? format.slice(1) : format;
177
- const get = (kind) => {
178
- switch (kind) {
179
- case 'h': return utc ? d.getUTCHours() : d.getHours();
180
- case 'm': return utc ? d.getUTCMinutes() : d.getMinutes();
181
- case 's': return utc ? d.getUTCSeconds() : d.getSeconds();
182
- case 'D': return utc ? d.getUTCDate() : d.getDate();
183
- case 'M': return (utc ? d.getUTCMonth() : d.getMonth()) + 1;
184
- case 'Y': return utc ? d.getUTCFullYear() : d.getFullYear();
185
- case 'd': return Math.ceil(((+d) - +new Date(d.getFullYear(), 0, 0)) / 86400000);
186
- case 'wd': return utc ? d.getUTCDay() : d.getDay();
187
- }
188
- };
189
- if (f === '*t' || f === '!*t') {
190
- return {
191
- year: get('Y'), month: get('M'), day: get('D'),
192
- hour: get('h'), min: get('m'), sec: get('s'),
193
- wday: get('wd') + 1, yday: get('d'), isdst: false,
194
- };
195
- }
196
- const pad = (n, w = 2) => String(n).padStart(w, '0');
197
- return f.replace(/%./g, (m) => {
198
- switch (m) {
199
- case '%Y': return String(get('Y'));
200
- case '%m': return pad(get('M'));
201
- case '%d': return pad(get('D'));
202
- case '%H': return pad(get('h'));
203
- case '%M': return pad(get('m'));
204
- case '%S': return pad(get('s'));
205
- case '%j': return pad(get('d'), 3);
206
- case '%w': return String(get('wd'));
207
- case '%c': return d.toString();
208
- case '%x': return `${pad(get('M'))}/${pad(get('D'))}/${pad(get('Y'))}`;
209
- case '%X': return `${pad(get('h'))}:${pad(get('m'))}:${pad(get('s'))}`;
210
- case '%%': return '%';
211
- default: return m;
212
- }
213
- });
214
- }
215
- export const os = {
216
- time: _osTime,
217
- date: _osDate,
218
- difftime(t2, t1) { return t2 - t1; },
219
- clock() {
220
- // CPU time in seconds. Browser mode → wall-clock since process start.
221
- if (typeof performance !== 'undefined')
222
- return performance.now() / 1000;
223
- return Date.now() / 1000;
224
- },
225
- getenv(_name) { return null; },
226
- };
227
- // ─── bit32 ──────────────────────────────────────────────────────────────────
228
- // 32-bit unsigned integer bitwise ops (Lua 5.2). All operands are coerced
229
- // via `>>> 0` to match Lua's wraparound behavior.
230
- function _u32(x) { return x >>> 0; }
231
- export const bit32 = {
232
- band(...args) {
233
- let acc = 0xffffffff;
234
- for (const a of args)
235
- acc &= _u32(a);
236
- return acc >>> 0;
237
- },
238
- bor(...args) {
239
- let acc = 0;
240
- for (const a of args)
241
- acc |= _u32(a);
242
- return acc >>> 0;
243
- },
244
- bxor(...args) {
245
- let acc = 0;
246
- for (const a of args)
247
- acc ^= _u32(a);
248
- return acc >>> 0;
249
- },
250
- bnot(x) { return (~_u32(x)) >>> 0; },
251
- lshift(x, n) { return (_u32(x) << (n & 31)) >>> 0; },
252
- rshift(x, n) { return (_u32(x) >>> (n & 31)) >>> 0; },
253
- arshift(x, n) { return (_u32(x) >> (n & 31)) >>> 0; },
254
- btest(...args) {
255
- let acc = 0xffffffff;
256
- for (const a of args)
257
- acc &= _u32(a);
258
- return acc !== 0;
259
- },
260
- extract(n, field, width = 1) {
261
- const mask = ((1 << width) - 1) >>> 0;
262
- return ((_u32(n) >>> field) & mask) >>> 0;
263
- },
264
- replace(n, v, field, width = 1) {
265
- const mask = (((1 << width) - 1) << field) >>> 0;
266
- return ((_u32(n) & ~mask) | ((v << field) & mask)) >>> 0;
267
- },
268
- lrotate(n, i) {
269
- const k = ((i % 32) + 32) % 32;
270
- return (((_u32(n) << k) | (_u32(n) >>> (32 - k))) >>> 0);
271
- },
272
- rrotate(n, i) {
273
- const k = ((i % 32) + 32) % 32;
274
- return (((_u32(n) >>> k) | (_u32(n) << (32 - k))) >>> 0);
275
- },
276
- countlz(n) {
277
- return Math.clz32(_u32(n));
278
- },
279
- countrz(n) {
280
- const x = _u32(n);
281
- if (x === 0)
282
- return 32;
283
- return 31 - Math.clz32(x & -x);
284
- },
285
- };
286
- // ─── utf8 ───────────────────────────────────────────────────────────────────
287
- // Lua's utf8 library. Codepoint indices are 1-based.
288
- export const utf8 = {
289
- charpattern: '[\0-\x7F\xC2-\xFD][\x80-\xBF]*',
290
- char(...codes) {
291
- return String.fromCodePoint(...codes);
292
- },
293
- codepoint(s, i = 1, j = i) {
294
- const out = [];
295
- let pos = 0;
296
- let charIdx = 1;
297
- for (const ch of s) {
298
- if (charIdx >= i && charIdx <= j)
299
- out.push(ch.codePointAt(0));
300
- pos += ch.length;
301
- charIdx += 1;
302
- if (charIdx > j)
303
- break;
304
- }
305
- return out;
306
- },
307
- *codes(s) {
308
- let i = 1;
309
- let bytePos = 1;
310
- for (const ch of s) {
311
- yield [bytePos, ch.codePointAt(0)];
312
- bytePos += new TextEncoder().encode(ch).length;
313
- i += 1;
314
- }
315
- },
316
- len(s, _i = 1, _j = -1) {
317
- let n = 0;
318
- for (const _ of s)
319
- n++;
320
- return n;
321
- },
322
- offset(_s, _n, _i) {
323
- // Roblox/Luau spec returns the byte position of the n-th character.
324
- // We approximate by walking the string; full byte arithmetic would need
325
- // TextEncoder per-char.
326
- let bytePos = 1;
327
- let count = 0;
328
- for (const ch of _s) {
329
- if (count === (_n - 1))
330
- return bytePos;
331
- bytePos += new TextEncoder().encode(ch).length;
332
- count++;
333
- }
334
- return undefined;
335
- },
336
- };
337
- function _isBuf(b) {
338
- return !!b && typeof b === 'object' && b.__isLuaBuffer === true;
339
- }
340
- export const buffer = {
341
- create(size) {
342
- const ab = new ArrayBuffer(size | 0);
343
- return { __isLuaBuffer: true, bytes: new Uint8Array(ab), view: new DataView(ab) };
344
- },
345
- fromstring(s) {
346
- const bytes = new TextEncoder().encode(s);
347
- const ab = bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
348
- return { __isLuaBuffer: true, bytes: new Uint8Array(ab), view: new DataView(ab) };
349
- },
350
- tostring(b) {
351
- if (!_isBuf(b))
352
- throw new TypeError('buffer.tostring: not a buffer');
353
- return new TextDecoder().decode(b.bytes);
354
- },
355
- len(b) {
356
- return _isBuf(b) ? b.bytes.length : 0;
357
- },
358
- copy(dst, dstOff, src, srcOff = 0, count) {
359
- if (!_isBuf(dst) || !_isBuf(src))
360
- return;
361
- const n = count ?? src.bytes.length - srcOff;
362
- dst.bytes.set(src.bytes.subarray(srcOff, srcOff + n), dstOff);
363
- },
364
- fill(b, off, value, count) {
365
- if (!_isBuf(b))
366
- return;
367
- const end = count !== undefined ? off + count : b.bytes.length;
368
- b.bytes.fill(value & 0xff, off, end);
369
- },
370
- readi8(b, off) { return b.view.getInt8(off); },
371
- readu8(b, off) { return b.view.getUint8(off); },
372
- readi16(b, off) { return b.view.getInt16(off, true); },
373
- readu16(b, off) { return b.view.getUint16(off, true); },
374
- readi32(b, off) { return b.view.getInt32(off, true); },
375
- readu32(b, off) { return b.view.getUint32(off, true); },
376
- readf32(b, off) { return b.view.getFloat32(off, true); },
377
- readf64(b, off) { return b.view.getFloat64(off, true); },
378
- writei8(b, off, v) { b.view.setInt8(off, v); },
379
- writeu8(b, off, v) { b.view.setUint8(off, v); },
380
- writei16(b, off, v) { b.view.setInt16(off, v, true); },
381
- writeu16(b, off, v) { b.view.setUint16(off, v, true); },
382
- writei32(b, off, v) { b.view.setInt32(off, v, true); },
383
- writeu32(b, off, v) { b.view.setUint32(off, v, true); },
384
- writef32(b, off, v) { b.view.setFloat32(off, v, true); },
385
- writef64(b, off, v) { b.view.setFloat64(off, v, true); },
386
- readstring(b, off, count) {
387
- return new TextDecoder().decode(b.bytes.subarray(off, off + count));
388
- },
389
- writestring(b, off, s, count) {
390
- const bytes = new TextEncoder().encode(s);
391
- const n = count ?? bytes.length;
392
- b.bytes.set(bytes.subarray(0, n), off);
393
- },
394
- };
395
- // ─── debug ──────────────────────────────────────────────────────────────────
396
- // Browser mode has no Luau VM, so the introspection calls are best-effort.
397
- export const debug = {
398
- traceback(message, _level) {
399
- const e = new Error(message ?? '');
400
- return e.stack ?? message ?? '';
401
- },
402
- getinfo(_target, _what) {
403
- return { source: '', short_src: '', currentline: -1, what: 'Lua', name: '', namewhat: '' };
404
- },
405
- profilebegin(_label) { },
406
- profileend() { },
407
- setmemorycategory(_category) { },
408
- resetmemorycategory() { },
409
- info(..._args) {
410
- // Luau-extension shape: returns table for the matched stack frame.
411
- return [];
412
- },
413
- };
414
- // ─── Language helpers ───────────────────────────────────────────────────────
415
- /** Lua's `type(v)` — returns the basic Lua type name (string/number/boolean/
416
- * function/table/nil/userdata/thread). */
417
- export function luaType(v) {
418
- if (v === null || v === undefined)
419
- return 'nil';
420
- if (typeof v === 'function')
421
- return 'function';
422
- if (typeof v === 'boolean')
423
- return 'boolean';
424
- if (typeof v === 'number')
425
- return 'number';
426
- if (typeof v === 'string')
427
- return 'string';
428
- if (Array.isArray(v))
429
- return 'table';
430
- if (typeof v === 'object') {
431
- const obj = v;
432
- if (obj.__isCoroutine)
433
- return 'thread';
434
- if (obj.__isLuaBuffer)
435
- return 'buffer';
436
- return 'table';
437
- }
438
- return 'userdata';
439
- }
440
- /** Roblox's `typeof(v)` — returns the Roblox-specific class name for
441
- * Vector3, CFrame, EnumItem, Instance, etc.; falls back to `type()` for
442
- * primitives. */
443
- export function luaTypeof(v) {
444
- if (v === null || v === undefined)
445
- return 'nil';
446
- if (typeof v === 'function')
447
- return 'function';
448
- if (typeof v === 'boolean')
449
- return 'boolean';
450
- if (typeof v === 'number')
451
- return 'number';
452
- if (typeof v === 'string')
453
- return 'string';
454
- if (typeof v === 'object') {
455
- const obj = v;
456
- // Instance subclasses report their root class as "Instance".
457
- if (typeof obj.ClassName === 'string' && typeof obj.IsA === 'function') {
458
- return 'Instance';
459
- }
460
- const ctor = obj.constructor?.name;
461
- if (typeof ctor === 'string' && ctor !== 'Object' && ctor !== 'Array')
462
- return ctor;
463
- if (Array.isArray(v))
464
- return 'table';
465
- return 'table';
466
- }
467
- return 'userdata';
468
- }
469
- /** Lua's `select(i, ...)` — `select('#', ...)` returns count; `select(n, ...)`
470
- * returns `args[n], args[n+1], …`. */
471
- export function select(i, ...args) {
472
- if (i === '#')
473
- return args.length;
474
- if (typeof i !== 'number')
475
- throw new TypeError('select: bad selector');
476
- const idx = i < 0 ? args.length + i : i - 1;
477
- if (idx < 0)
478
- throw new RangeError('select: index out of range');
479
- return args.slice(idx);
480
- }
481
- /** Lua's `unpack(t, i, j)` — alias for `table.unpack`. */
482
- export function unpack(t, i = 1, j) {
483
- return tableUnpack(t, i, j);
484
- }
485
- /** Lua's `newproxy([metatable])` — creates an empty userdata with optional
486
- * metatable. We approximate with a frozen empty object whose metatable is
487
- * set via setmetatable elsewhere. The boolean variant adds a basic mt. */
488
- export function newproxy(addMetatable = false) {
489
- const proxy = Object.create(null);
490
- if (addMetatable) {
491
- Object.defineProperty(proxy, '__metatable', { value: {}, configurable: true, writable: true });
492
- }
493
- return proxy;
494
- }
495
- /** Roblox global tables — `_G` is shared between all scripts. */
496
- export const _G = {};
497
- /** Per-script environment — Luau scripts read it as themselves. We expose
498
- * the same shared object as `_G` since we don't model per-script envs. */
499
- export const _ENV = _G;
500
- /** Lua version string. Roblox runs Luau, which forks 5.1; report that. */
501
- export const _VERSION = 'Luau';
502
- //# sourceMappingURL=lua-stdlib.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lua-stdlib.js","sourceRoot":"","sources":["../../src/runtime/lua-stdlib.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- interface MetaLike {
2
- __index?: ((t: object, k: PropertyKey) => unknown) | Record<PropertyKey, unknown>;
3
- __newindex?: ((t: object, k: PropertyKey, v: unknown) => void) | Record<PropertyKey, unknown>;
4
- __metatable?: object;
5
- [k: PropertyKey]: unknown;
6
- }
7
- export declare function setmetatable<T extends object>(t: T, mt: object | null): T;
8
- export declare function getmetatable(t: object): object | null;
9
- /** Get the metatable's metamethod for an operator (used by arith.ts). */
10
- export declare function getMetamethod<K extends keyof MetaLike>(t: unknown, name: K): MetaLike[K] | undefined;
11
- export declare function rawget<T extends object>(t: T, key: PropertyKey): unknown;
12
- export declare function rawset<T extends object>(t: T, key: PropertyKey, value: unknown): T;
13
- export declare function rawequal(a: unknown, b: unknown): boolean;
14
- export declare function rawlen(t: unknown): number;
15
- export {};
16
- //# sourceMappingURL=metatable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metatable.d.ts","sourceRoot":"","sources":["../../src/runtime/metatable.ts"],"names":[],"mappings":"AAKA,UAAU,QAAQ;IAChB,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAClF,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC9F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;CAC3B;AAiDD,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAsBzE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMrD;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,QAAQ,EACpD,CAAC,EAAE,OAAO,EACV,IAAI,EAAE,CAAC,GACN,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAMzB;AAID,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAKxE;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CASlF;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAIxD;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAOzC"}