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 +0,0 @@
1
- {"version":3,"file":"stdlib.js","sourceRoot":"","sources":["../../../src/compile/macros/stdlib.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=rbxts-runtime.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rbxts-runtime.d.ts","sourceRoot":"","sources":["../../src/compile/rbxts-runtime.ts"],"names":[],"mappings":""}
@@ -1,163 +0,0 @@
1
- import ts from 'typescript';
2
- import { registerMacro } from './macros/index.js';
3
- const { factory } = ts;
4
- // ─── async / await / generator ─────────────────────────────────────────────
5
- // `TS.async(fn)` wraps a function in an async closure. Roblox-ts uses this
6
- // at every `async function` declaration boundary.
7
- registerMacro('TS.async', ({ compiledArgs }) => {
8
- const inner = compiledArgs[0];
9
- if (!inner)
10
- return undefined;
11
- // Emit: ((...args) => Promise.resolve().then(() => fn(...args)))
12
- // The Promise.resolve hop ensures the body always runs in a microtask,
13
- // matching `async function` semantics.
14
- const argsParam = factory.createParameterDeclaration(undefined, factory.createToken(ts.SyntaxKind.DotDotDotToken), 'args');
15
- return factory.createParenthesizedExpression(factory.createArrowFunction([factory.createModifier(ts.SyntaxKind.AsyncKeyword)], undefined, [argsParam], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(inner, undefined, [factory.createSpreadElement(factory.createIdentifier('args'))])));
16
- }, 'always');
17
- // `TS.await(promise)` → `(await promise)`.
18
- registerMacro('TS.await', ({ compiledArgs }) => {
19
- const p = compiledArgs[0];
20
- if (!p)
21
- return undefined;
22
- return factory.createParenthesizedExpression(factory.createAwaitExpression(p));
23
- }, 'always');
24
- // `TS.try(tryFn, catchFn?, finallyFn?)` → Promise-style chain. The
25
- // expression form is necessary because we can't emit a TS try-statement
26
- // from inside a value-position macro. Real Roblox-ts implementation uses
27
- // pcall under the hood; we use Promise.try/catch/finally semantics with
28
- // awaited execution so synchronous throws still surface.
29
- registerMacro('TS.try', ({ compiledArgs }) => {
30
- const [tryFn, catchFn, finallyFn] = compiledArgs;
31
- if (!tryFn)
32
- return undefined;
33
- // Promise.resolve().then(() => tryFn()).catch(catchFn).finally(finallyFn)
34
- let chain = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Promise'), factory.createIdentifier('resolve')), undefined, []), factory.createIdentifier('then')), undefined, [tryFn]);
35
- if (catchFn) {
36
- chain = factory.createCallExpression(factory.createPropertyAccessExpression(chain, factory.createIdentifier('catch')), undefined, [catchFn]);
37
- }
38
- if (finallyFn) {
39
- chain = factory.createCallExpression(factory.createPropertyAccessExpression(chain, factory.createIdentifier('finally')), undefined, [finallyFn]);
40
- }
41
- return chain;
42
- }, 'always');
43
- // `TS.generator(fn)` — Roblox-ts wraps a generator-returning function so
44
- // it conforms to its iteration protocol (`{next, done, value}`). On the JS
45
- // side the same protocol is built-in for `function*` declarations. The
46
- // safest lowering: keep `fn` as-is and wrap with a thin adapter that
47
- // invokes the iterator factory the user produced.
48
- registerMacro('TS.generator', ({ compiledArgs }) => compiledArgs[0], 'always');
49
- // ─── instanceof / import / Object_assign ───────────────────────────────────
50
- registerMacro('TS.instanceof', ({ compiledArgs }) => {
51
- const [v, t] = compiledArgs;
52
- if (!v || !t)
53
- return undefined;
54
- return factory.createParenthesizedExpression(factory.createBinaryExpression(v, factory.createToken(ts.SyntaxKind.InstanceOfKeyword), t));
55
- }, 'always');
56
- // `TS.import(loader, ...path)` → `await import("path")`. We accept the
57
- // loader argument because roblox-ts emits it but ignore it; the JS module
58
- // system is the loader.
59
- registerMacro('TS.import', ({ compiledArgs }) => {
60
- // Find the first string-literal argument and use it as the module path.
61
- // Any other arguments are joined as path segments after the first.
62
- const stringArgs = compiledArgs.filter((a) => ts.isStringLiteral(a));
63
- if (stringArgs.length === 0)
64
- return undefined;
65
- const moduleName = stringArgs.map((s) => s.text).join('/');
66
- return factory.createParenthesizedExpression(factory.createAwaitExpression(factory.createCallExpression(factory.createToken(ts.SyntaxKind.ImportKeyword), undefined, [factory.createStringLiteral(moduleName)])));
67
- }, 'always');
68
- registerMacro('TS.Object_assign', ({ compiledArgs }) => factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Object'), factory.createIdentifier('assign')), undefined, compiledArgs), 'always');
69
- function emitBitOp(opFactory) {
70
- return ({ compiledArgs }) => {
71
- if (compiledArgs.length === 0)
72
- return undefined;
73
- let acc = compiledArgs[0];
74
- for (let i = 1; i < compiledArgs.length; i++) {
75
- acc = factory.createBinaryExpression(acc, opFactory(), compiledArgs[i]);
76
- }
77
- return factory.createParenthesizedExpression(factory.createBinaryExpression(acc, factory.createToken(ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken), factory.createNumericLiteral(0)));
78
- };
79
- }
80
- registerMacro('TS.bit_band', emitBitOp(() => factory.createToken(ts.SyntaxKind.AmpersandToken)), 'always');
81
- registerMacro('TS.bit_bor', emitBitOp(() => factory.createToken(ts.SyntaxKind.BarToken)), 'always');
82
- registerMacro('TS.bit_bxor', emitBitOp(() => factory.createToken(ts.SyntaxKind.CaretToken)), 'always');
83
- registerMacro('TS.bit_lshift', emitBitOp(() => factory.createToken(ts.SyntaxKind.LessThanLessThanToken)), 'always');
84
- registerMacro('TS.bit_rshift', emitBitOp(() => factory.createToken(ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken)), 'always');
85
- // `TS.bit_bnot(x)` — unary; `(~x) >>> 0`.
86
- registerMacro('TS.bit_bnot', ({ compiledArgs }) => {
87
- if (!compiledArgs[0])
88
- return undefined;
89
- return factory.createParenthesizedExpression(factory.createBinaryExpression(factory.createPrefixUnaryExpression(ts.SyntaxKind.TildeToken, compiledArgs[0]), factory.createToken(ts.SyntaxKind.GreaterThanGreaterThanGreaterThanToken), factory.createNumericLiteral(0)));
90
- }, 'always');
91
- // ─── number helpers ────────────────────────────────────────────────────────
92
- function emitMathCall(method) {
93
- return ({ compiledArgs }) => factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Math'), factory.createIdentifier(method)), undefined, compiledArgs);
94
- }
95
- registerMacro('TS.round', emitMathCall('round'), 'always');
96
- registerMacro('TS.math_floor', emitMathCall('floor'), 'always');
97
- registerMacro('TS.math_ceil', emitMathCall('ceil'), 'always');
98
- registerMacro('TS.math_abs', emitMathCall('abs'), 'always');
99
- registerMacro('TS.math_max', emitMathCall('max'), 'always');
100
- registerMacro('TS.math_min', emitMathCall('min'), 'always');
101
- registerMacro('TS.math_sqrt', emitMathCall('sqrt'), 'always');
102
- // ─── string helpers ────────────────────────────────────────────────────────
103
- // Most TS.string_* helpers in roblox-ts are just method calls on the string
104
- // itself. Lower them by emitting `s.<method>(args)`.
105
- function emitStringMethod(method) {
106
- return ({ compiledArgs }) => {
107
- if (!compiledArgs[0])
108
- return undefined;
109
- return factory.createCallExpression(factory.createPropertyAccessExpression(compiledArgs[0], factory.createIdentifier(method)), undefined, compiledArgs.slice(1));
110
- };
111
- }
112
- registerMacro('TS.string_split', emitStringMethod('split'), 'always');
113
- registerMacro('TS.string_includes', emitStringMethod('includes'), 'always');
114
- registerMacro('TS.string_indexOf', emitStringMethod('indexOf'), 'always');
115
- registerMacro('TS.string_startsWith', emitStringMethod('startsWith'), 'always');
116
- registerMacro('TS.string_endsWith', emitStringMethod('endsWith'), 'always');
117
- registerMacro('TS.string_padStart', emitStringMethod('padStart'), 'always');
118
- registerMacro('TS.string_padEnd', emitStringMethod('padEnd'), 'always');
119
- registerMacro('TS.string_slice', emitStringMethod('slice'), 'always');
120
- registerMacro('TS.string_substring', emitStringMethod('substring'), 'always');
121
- registerMacro('TS.string_substr', emitStringMethod('substr'), 'always');
122
- registerMacro('TS.string_trim', emitStringMethod('trim'), 'always');
123
- registerMacro('TS.string_trimStart', emitStringMethod('trimStart'), 'always');
124
- registerMacro('TS.string_trimEnd', emitStringMethod('trimEnd'), 'always');
125
- registerMacro('TS.string_concat', emitStringMethod('concat'), 'always');
126
- registerMacro('TS.string_replace', emitStringMethod('replace'), 'always');
127
- registerMacro('TS.string_replaceAll', emitStringMethod('replaceAll'), 'always');
128
- registerMacro('TS.string_repeat', emitStringMethod('repeat'), 'always');
129
- registerMacro('TS.string_toLowerCase', emitStringMethod('toLowerCase'), 'always');
130
- registerMacro('TS.string_toUpperCase', emitStringMethod('toUpperCase'), 'always');
131
- // ─── array helpers ─────────────────────────────────────────────────────────
132
- function emitArrayMethod(method) {
133
- return ({ compiledArgs }) => {
134
- if (!compiledArgs[0])
135
- return undefined;
136
- return factory.createCallExpression(factory.createPropertyAccessExpression(compiledArgs[0], factory.createIdentifier(method)), undefined, compiledArgs.slice(1));
137
- };
138
- }
139
- registerMacro('TS.array_push', emitArrayMethod('push'), 'always');
140
- registerMacro('TS.array_unshift', emitArrayMethod('unshift'), 'always');
141
- registerMacro('TS.array_pop', emitArrayMethod('pop'), 'always');
142
- registerMacro('TS.array_shift', emitArrayMethod('shift'), 'always');
143
- registerMacro('TS.array_concat', emitArrayMethod('concat'), 'always');
144
- registerMacro('TS.array_join', emitArrayMethod('join'), 'always');
145
- registerMacro('TS.array_reverse', emitArrayMethod('reverse'), 'always');
146
- registerMacro('TS.array_slice', emitArrayMethod('slice'), 'always');
147
- registerMacro('TS.array_splice', emitArrayMethod('splice'), 'always');
148
- registerMacro('TS.array_indexOf', emitArrayMethod('indexOf'), 'always');
149
- registerMacro('TS.array_lastIndexOf', emitArrayMethod('lastIndexOf'), 'always');
150
- registerMacro('TS.array_includes', emitArrayMethod('includes'), 'always');
151
- registerMacro('TS.array_find', emitArrayMethod('find'), 'always');
152
- registerMacro('TS.array_findIndex', emitArrayMethod('findIndex'), 'always');
153
- registerMacro('TS.array_forEach', emitArrayMethod('forEach'), 'always');
154
- registerMacro('TS.array_map', emitArrayMethod('map'), 'always');
155
- registerMacro('TS.array_filter', emitArrayMethod('filter'), 'always');
156
- registerMacro('TS.array_reduce', emitArrayMethod('reduce'), 'always');
157
- registerMacro('TS.array_reduceRight', emitArrayMethod('reduceRight'), 'always');
158
- registerMacro('TS.array_every', emitArrayMethod('every'), 'always');
159
- registerMacro('TS.array_some', emitArrayMethod('some'), 'always');
160
- registerMacro('TS.array_sort', emitArrayMethod('sort'), 'always');
161
- registerMacro('TS.array_flat', emitArrayMethod('flat'), 'always');
162
- registerMacro('TS.array_flatMap', emitArrayMethod('flatMap'), 'always');
163
- //# sourceMappingURL=rbxts-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rbxts-runtime.js","sourceRoot":"","sources":["../../src/compile/rbxts-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- export interface SourceMapMapping {
2
- /** Line in the generated TS (0-indexed). */
3
- generatedLine: number;
4
- /** Column in the generated TS (0-indexed). */
5
- generatedColumn: number;
6
- /** Line in the original .luau (0-indexed). */
7
- originalLine: number;
8
- /** Column in the original .luau (0-indexed). */
9
- originalColumn: number;
10
- }
11
- export interface SourceMap {
12
- version: 3;
13
- file: string;
14
- sources: [string];
15
- sourcesContent: [string];
16
- names: [];
17
- mappings: string;
18
- }
19
- export declare function buildSourceMap(generatedFile: string, originalFile: string, originalContent: string, mappings: SourceMapMapping[]): SourceMap;
20
- /** Encode a sourcemap as a base64 data URL suitable for appending to TS output.
21
- * Returns a string of the form `// # source` + `MappingURL=data:...` so the
22
- * sourcemap directive is consumed by JS tooling but ignored when this file
23
- * is itself loaded as TypeScript. */
24
- export declare function inlineSourceMapURL(map: SourceMap): string;
25
- //# sourceMappingURL=sourcemap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sourcemap.d.ts","sourceRoot":"","sources":["../../src/compile/sourcemap.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IAClB,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;IACzB,KAAK,EAAE,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgBD,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,SAAS,CA8CX;AAED;;;sCAGsC;AACtC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAOzD"}
@@ -1,71 +0,0 @@
1
- const BASE64_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
2
- function encodeVlqSigned(value) {
3
- let v = value < 0 ? (-value << 1) | 1 : value << 1;
4
- let out = '';
5
- do {
6
- let digit = v & 0b11111;
7
- v >>>= 5;
8
- if (v > 0)
9
- digit |= 0b100000; // continuation bit
10
- out += BASE64_CHARS[digit];
11
- } while (v > 0);
12
- return out;
13
- }
14
- export function buildSourceMap(generatedFile, originalFile, originalContent, mappings) {
15
- // Group by generated line.
16
- const lines = new Map();
17
- let maxLine = 0;
18
- for (const m of mappings) {
19
- if (m.generatedLine > maxLine)
20
- maxLine = m.generatedLine;
21
- let bucket = lines.get(m.generatedLine);
22
- if (!bucket) {
23
- bucket = [];
24
- lines.set(m.generatedLine, bucket);
25
- }
26
- bucket.push(m);
27
- }
28
- // VLQ encoding state — last absolute values across mappings.
29
- let prevGenCol = 0;
30
- let prevOrigLine = 0;
31
- let prevOrigCol = 0;
32
- const out = [];
33
- for (let line = 0; line <= maxLine; line++) {
34
- if (line > 0)
35
- prevGenCol = 0; // reset gen column at each line
36
- const bucket = (lines.get(line) ?? []).sort((a, b) => a.generatedColumn - b.generatedColumn);
37
- const segments = [];
38
- for (const m of bucket) {
39
- let s = '';
40
- s += encodeVlqSigned(m.generatedColumn - prevGenCol);
41
- s += encodeVlqSigned(0); // source index — only one source
42
- s += encodeVlqSigned(m.originalLine - prevOrigLine);
43
- s += encodeVlqSigned(m.originalColumn - prevOrigCol);
44
- segments.push(s);
45
- prevGenCol = m.generatedColumn;
46
- prevOrigLine = m.originalLine;
47
- prevOrigCol = m.originalColumn;
48
- }
49
- out.push(segments.join(','));
50
- }
51
- return {
52
- version: 3,
53
- file: generatedFile,
54
- sources: [originalFile],
55
- sourcesContent: [originalContent],
56
- names: [],
57
- mappings: out.join(';'),
58
- };
59
- }
60
- /** Encode a sourcemap as a base64 data URL suitable for appending to TS output.
61
- * Returns a string of the form `// # source` + `MappingURL=data:...` so the
62
- * sourcemap directive is consumed by JS tooling but ignored when this file
63
- * is itself loaded as TypeScript. */
64
- export function inlineSourceMapURL(map) {
65
- const json = JSON.stringify(map);
66
- const base64 = typeof Buffer !== 'undefined'
67
- ? Buffer.from(json, 'utf8').toString('base64')
68
- : btoa(unescape(encodeURIComponent(json)));
69
- return `//# sourceMappingURL=data:application/json;base64,${base64}\n`;
70
- }
71
- //# sourceMappingURL=sourcemap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sourcemap.js","sourceRoot":"","sources":["../../src/compile/sourcemap.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import ts from 'typescript';
2
- import type { TypeNode, TypePack } from '../parser/index.js';
3
- export declare function compileType(t: TypeNode | null | undefined): ts.TypeNode;
4
- /** Compile a type-pack into a single TS type usable as a return type. */
5
- export declare function compileTypePack(pack: TypePack | null): ts.TypeNode;
6
- //# sourceMappingURL=type.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/compile/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAEV,QAAQ,EACR,QAAQ,EAGT,MAAM,oBAAoB,CAAC;AAc5B,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,QAAQ,CAmCvE;AA6FD,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC,QAAQ,CAkBlE"}
@@ -1,122 +0,0 @@
1
- import ts from 'typescript';
2
- const { factory } = ts;
3
- const PRIMITIVE_TYPE_NAMES = {
4
- number: ts.SyntaxKind.NumberKeyword,
5
- string: ts.SyntaxKind.StringKeyword,
6
- boolean: ts.SyntaxKind.BooleanKeyword,
7
- any: ts.SyntaxKind.AnyKeyword,
8
- unknown: ts.SyntaxKind.UnknownKeyword,
9
- never: ts.SyntaxKind.NeverKeyword,
10
- void: ts.SyntaxKind.VoidKeyword,
11
- };
12
- export function compileType(t) {
13
- if (!t)
14
- return factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
15
- switch (t.type) {
16
- case 'TypeReference':
17
- return compileTypeReference(t);
18
- case 'TypeOptional':
19
- // Bare `?` — only appears as part of `T?` desugared into `T | nil` by
20
- // the parser, so this case usually rides inside a TypeUnion. Emit `null`.
21
- return factory.createLiteralTypeNode(factory.createNull());
22
- case 'TypeUnion':
23
- return factory.createUnionTypeNode(t.types.map(compileType));
24
- case 'TypeIntersection':
25
- return factory.createIntersectionTypeNode(t.types.map(compileType));
26
- case 'TypeTypeof':
27
- // `typeof x` — emit a typeof query node referencing the expression's
28
- // identifier when possible.
29
- if (t.expr.type === 'Local' || t.expr.type === 'Global') {
30
- return factory.createTypeQueryNode(factory.createIdentifier(t.expr.name));
31
- }
32
- return factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
33
- case 'TypeSingletonBool':
34
- return factory.createLiteralTypeNode(t.value ? factory.createTrue() : factory.createFalse());
35
- case 'TypeSingletonString':
36
- return factory.createLiteralTypeNode(factory.createStringLiteral(t.value));
37
- case 'TypeGroup':
38
- return factory.createParenthesizedType(compileType(t.groupType));
39
- case 'TypeTable':
40
- return compileTypeTable(t);
41
- case 'TypeFunction':
42
- return compileTypeFunction(t);
43
- case 'TypeError':
44
- case 'UnknownType':
45
- default:
46
- return factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
47
- }
48
- }
49
- function compileTypeReference(t) {
50
- if (t.name === 'nil')
51
- return factory.createLiteralTypeNode(factory.createNull());
52
- const kw = PRIMITIVE_TYPE_NAMES[t.name];
53
- if (kw !== undefined && !t.prefix && t.parameters.length === 0) {
54
- return factory.createKeywordTypeNode(kw);
55
- }
56
- const name = t.prefix
57
- ? factory.createQualifiedName(factory.createIdentifier(t.prefix), t.name)
58
- : factory.createIdentifier(t.name);
59
- const typeArgs = t.parameters
60
- .map((p) => {
61
- if (!p)
62
- return undefined;
63
- if (p.kind === 'type')
64
- return compileType(p.value);
65
- // Type-pack parameters (rare in our scope) — fall through to unknown.
66
- return factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
67
- })
68
- .filter((x) => x !== undefined);
69
- return factory.createTypeReferenceNode(name, typeArgs.length > 0 ? typeArgs : undefined);
70
- }
71
- function compileTypeTable(t) {
72
- const members = [];
73
- for (const prop of t.props) {
74
- members.push(factory.createPropertySignature(undefined, factory.createIdentifier(prop.name), undefined, compileType(prop.propType)));
75
- }
76
- if (t.indexer) {
77
- members.push(factory.createIndexSignature(undefined, [
78
- factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier('key'), undefined, compileType(t.indexer.indexType)),
79
- ], compileType(t.indexer.resultType)));
80
- }
81
- return factory.createTypeLiteralNode(members);
82
- }
83
- function compileTypeFunction(t) {
84
- const params = [];
85
- for (let i = 0; i < t.argTypes.types.length; i += 1) {
86
- const argType = t.argTypes.types[i];
87
- const argName = t.argNames[i];
88
- params.push(factory.createParameterDeclaration(undefined, undefined, factory.createIdentifier(argName?.name ?? `arg${i}`), undefined, compileType(argType)));
89
- }
90
- if (t.argTypes.tailType) {
91
- const tail = t.argTypes.tailType;
92
- const restType = tail.type === 'TypePackVariadic'
93
- ? factory.createArrayTypeNode(compileType(tail.variadicType))
94
- : factory.createArrayTypeNode(factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword));
95
- params.push(factory.createParameterDeclaration(undefined, factory.createToken(ts.SyntaxKind.DotDotDotToken), factory.createIdentifier('rest'), undefined, restType));
96
- }
97
- const ret = compileTypePack(t.returnTypes);
98
- return factory.createFunctionTypeNode(undefined, params, ret);
99
- }
100
- /** Compile a type-pack into a single TS type usable as a return type. */
101
- export function compileTypePack(pack) {
102
- if (!pack)
103
- return factory.createKeywordTypeNode(ts.SyntaxKind.VoidKeyword);
104
- switch (pack.type) {
105
- case 'TypePackExplicit': {
106
- const types = pack.typeList.types;
107
- if (types.length === 0 && !pack.typeList.tailType) {
108
- return factory.createKeywordTypeNode(ts.SyntaxKind.VoidKeyword);
109
- }
110
- if (types.length === 1 && !pack.typeList.tailType)
111
- return compileType(types[0]);
112
- return factory.createTupleTypeNode(types.map(compileType));
113
- }
114
- case 'TypePackVariadic':
115
- return factory.createArrayTypeNode(compileType(pack.variadicType));
116
- case 'TypePackGeneric':
117
- return factory.createTypeReferenceNode(pack.genericName);
118
- default:
119
- return factory.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword);
120
- }
121
- }
122
- //# sourceMappingURL=type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/compile/type.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import ts from 'typescript';
2
- import type { CompileContext } from './context.js';
3
- /** Map a Luau identifier to a JS-safe one (suffixing reserved words). */
4
- export declare function safeIdentifier(name: string): string;
5
- /**
6
- * Property-access name. JS allows reserved words as property names in
7
- * dot notation (`obj.new`, `obj.delete`, `obj.class`) — only the
8
- * identifier position needs escaping. Use this for IndexName / record
9
- * keys / static class members.
10
- *
11
- * Parse-error recovery can hand us names with `%`, spaces, hyphens etc. —
12
- * those would emit invalid JS when wrapped in `createIdentifier`. Replace
13
- * such names with a safe placeholder so the file still compiles; the
14
- * surrounding script will already have thrown a parse-error stub.
15
- */
16
- export declare function propertyName(name: string): string;
17
- export declare function isRepeatableExpression(expr: ts.Expression): boolean;
18
- /** Wrap a TS expression in a Lua-faithful truthiness check.
19
- *
20
- * Optional `staticType` hint short-circuits the wrapper when the runtime
21
- * shape of the value is narrow enough:
22
- * - `'boolean'` → return `expr` directly (already truthy-shaped).
23
- * - `'number'` / `'string'` → always truthy in Lua (only nil/false are
24
- * falsy). Return `true` literal when the expression is side-effect-
25
- * free; otherwise fall through.
26
- * - `'nil'` → always falsy. Return `false`.
27
- *
28
- * For everything else, route through the runtime `isTruthy()` helper.
29
- * We previously inlined the check (`x !== false && x !== null && …`) for
30
- * repeatable expressions, but the inline form bloats output by ~6× per
31
- * use site for no measurable runtime win — `isTruthy()` is one indirect
32
- * call into a 4-line function the engine inlines on the hot path. */
33
- export declare function truthify(expr: ts.Expression, ctx: CompileContext, staticType?: import('./context.js').StaticValueType | undefined): ts.Expression;
34
- /** `throw new Error(message)` — used for unsupported AST nodes. */
35
- export declare function throwUnsupported(message: string): ts.Statement;
36
- /** As an expression: `(() => { throw new Error(message) })()`. */
37
- export declare function unsupportedExpr(message: string): ts.Expression;
38
- //# sourceMappingURL=util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/compile/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAqEnD,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAOD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO,CASnE;AAED;;;;;;;;;;;;;;sEAcsE;AACtE,wBAAgB,QAAQ,CACtB,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,GAAG,EAAE,cAAc,EACnB,UAAU,GAAE,OAAO,cAAc,EAAE,eAAe,GAAG,SAAqB,GACzE,EAAE,CAAC,UAAU,CAuBf;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,SAAS,CAM9D;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAe9D"}