ticbuild 1.0.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 (290) hide show
  1. package/.attachments/support_me_on_kofi_beige.png +0 -0
  2. package/.env.example +3 -0
  3. package/.prettierignore +10 -0
  4. package/LICENSE +15 -0
  5. package/README.md +429 -0
  6. package/debug/obj/resolvedManifest.ticbuild.jsonc +108 -0
  7. package/dist/backend/ImportedResource.d.ts +11 -0
  8. package/dist/backend/ImportedResource.d.ts.map +1 -0
  9. package/dist/backend/ImportedResource.js +53 -0
  10. package/dist/backend/ImportedResource.js.map +1 -0
  11. package/dist/backend/ImportedResourceTypes.d.ts +24 -0
  12. package/dist/backend/ImportedResourceTypes.d.ts.map +1 -0
  13. package/dist/backend/ImportedResourceTypes.js +35 -0
  14. package/dist/backend/ImportedResourceTypes.js.map +1 -0
  15. package/dist/backend/codeBanking.test.d.ts +2 -0
  16. package/dist/backend/codeBanking.test.d.ts.map +1 -0
  17. package/dist/backend/codeBanking.test.js.map +1 -0
  18. package/dist/backend/importResources.d.ts +4 -0
  19. package/dist/backend/importResources.d.ts.map +1 -0
  20. package/dist/backend/importResources.js +58 -0
  21. package/dist/backend/importResources.js.map +1 -0
  22. package/dist/backend/importUtils.d.ts +14 -0
  23. package/dist/backend/importUtils.d.ts.map +1 -0
  24. package/dist/backend/importUtils.js +77 -0
  25. package/dist/backend/importUtils.js.map +1 -0
  26. package/dist/backend/importers/LuaCodeImporter.d.ts +47 -0
  27. package/dist/backend/importers/LuaCodeImporter.d.ts.map +1 -0
  28. package/dist/backend/importers/LuaCodeImporter.js +196 -0
  29. package/dist/backend/importers/LuaCodeImporter.js.map +1 -0
  30. package/dist/backend/importers/LuaCodeImporter.test.d.ts +2 -0
  31. package/dist/backend/importers/LuaCodeImporter.test.d.ts.map +1 -0
  32. package/dist/backend/importers/LuaCodeImporter.test.js.map +1 -0
  33. package/dist/backend/importers/binaryResourceImporter.d.ts +22 -0
  34. package/dist/backend/importers/binaryResourceImporter.d.ts.map +1 -0
  35. package/dist/backend/importers/binaryResourceImporter.js +53 -0
  36. package/dist/backend/importers/binaryResourceImporter.js.map +1 -0
  37. package/dist/backend/importers/luaImporter.d.ts +1 -0
  38. package/dist/backend/importers/luaImporter.d.ts.map +1 -0
  39. package/dist/backend/importers/luaImporter.js +3 -0
  40. package/dist/backend/importers/luaImporter.js.map +1 -0
  41. package/dist/backend/importers/textResourceImporter.d.ts +23 -0
  42. package/dist/backend/importers/textResourceImporter.d.ts.map +1 -0
  43. package/dist/backend/importers/textResourceImporter.js +55 -0
  44. package/dist/backend/importers/textResourceImporter.js.map +1 -0
  45. package/dist/backend/importers/tic80CartImporter.d.ts +21 -0
  46. package/dist/backend/importers/tic80CartImporter.d.ts.map +1 -0
  47. package/dist/backend/importers/tic80CartImporter.js +96 -0
  48. package/dist/backend/importers/tic80CartImporter.js.map +1 -0
  49. package/dist/backend/loadAllImports.d.ts +1 -0
  50. package/dist/backend/loadAllImports.d.ts.map +1 -0
  51. package/dist/backend/loadAllImports.js +3 -0
  52. package/dist/backend/loadAllImports.js.map +1 -0
  53. package/dist/backend/luaBinaryEncoding.d.ts +6 -0
  54. package/dist/backend/luaBinaryEncoding.d.ts.map +1 -0
  55. package/dist/backend/luaBinaryEncoding.js +94 -0
  56. package/dist/backend/luaBinaryEncoding.js.map +1 -0
  57. package/dist/backend/luaPreprocessor.d.ts +8 -0
  58. package/dist/backend/luaPreprocessor.d.ts.map +1 -0
  59. package/dist/backend/luaPreprocessor.js +862 -0
  60. package/dist/backend/luaPreprocessor.js.map +1 -0
  61. package/dist/backend/luaPreprocessor.test.d.ts +2 -0
  62. package/dist/backend/luaPreprocessor.test.d.ts.map +1 -0
  63. package/dist/backend/luaPreprocessor.test.js.map +1 -0
  64. package/dist/backend/manifestLoader.d.ts +19 -0
  65. package/dist/backend/manifestLoader.d.ts.map +1 -0
  66. package/dist/backend/manifestLoader.js +142 -0
  67. package/dist/backend/manifestLoader.js.map +1 -0
  68. package/dist/backend/manifestLoader.test.d.ts +2 -0
  69. package/dist/backend/manifestLoader.test.d.ts.map +1 -0
  70. package/dist/backend/manifestLoader.test.js.map +1 -0
  71. package/dist/backend/manifestTypes.d.ts +454 -0
  72. package/dist/backend/manifestTypes.d.ts.map +1 -0
  73. package/dist/backend/manifestTypes.js +28 -0
  74. package/dist/backend/manifestTypes.js.map +1 -0
  75. package/dist/backend/project.d.ts +24 -0
  76. package/dist/backend/project.d.ts.map +1 -0
  77. package/dist/backend/project.js +159 -0
  78. package/dist/backend/project.js.map +1 -0
  79. package/dist/backend/projectCore.d.ts +34 -0
  80. package/dist/backend/projectCore.d.ts.map +1 -0
  81. package/dist/backend/projectCore.js +226 -0
  82. package/dist/backend/projectCore.js.map +1 -0
  83. package/dist/backend/tic80Resolver.d.ts +6 -0
  84. package/dist/backend/tic80Resolver.d.ts.map +1 -0
  85. package/dist/backend/tic80Resolver.js +66 -0
  86. package/dist/backend/tic80Resolver.js.map +1 -0
  87. package/dist/buildInfo.d.ts +9 -0
  88. package/dist/buildInfo.d.ts.map +1 -0
  89. package/dist/buildInfo.js +13 -0
  90. package/dist/buildInfo.js.map +1 -0
  91. package/dist/frontend/build.d.ts +3 -0
  92. package/dist/frontend/build.d.ts.map +1 -0
  93. package/dist/frontend/build.js +8 -0
  94. package/dist/frontend/build.js.map +1 -0
  95. package/dist/frontend/codeBankWarnings.test.d.ts +2 -0
  96. package/dist/frontend/codeBankWarnings.test.d.ts.map +1 -0
  97. package/dist/frontend/codeBankWarnings.test.js.map +1 -0
  98. package/dist/frontend/core.d.ts +3 -0
  99. package/dist/frontend/core.d.ts.map +1 -0
  100. package/dist/frontend/core.js +259 -0
  101. package/dist/frontend/core.js.map +1 -0
  102. package/dist/frontend/init.d.ts +7 -0
  103. package/dist/frontend/init.d.ts.map +1 -0
  104. package/dist/frontend/init.js +95 -0
  105. package/dist/frontend/init.js.map +1 -0
  106. package/dist/frontend/parseOptions.d.ts +7 -0
  107. package/dist/frontend/parseOptions.d.ts.map +1 -0
  108. package/dist/frontend/parseOptions.js +68 -0
  109. package/dist/frontend/parseOptions.js.map +1 -0
  110. package/dist/frontend/run.d.ts +3 -0
  111. package/dist/frontend/run.d.ts.map +1 -0
  112. package/dist/frontend/run.js +63 -0
  113. package/dist/frontend/run.js.map +1 -0
  114. package/dist/frontend/watch.d.ts +3 -0
  115. package/dist/frontend/watch.d.ts.map +1 -0
  116. package/dist/frontend/watch.js +208 -0
  117. package/dist/frontend/watch.js.map +1 -0
  118. package/dist/index.d.ts +3 -0
  119. package/dist/index.d.ts.map +1 -0
  120. package/dist/index.js +191 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/obj/resolvedManifest.ticbuild.jsonc +110 -0
  123. package/dist/obj/variables.json +19 -0
  124. package/dist/utils/algorithms.d.ts +4 -0
  125. package/dist/utils/algorithms.d.ts.map +1 -0
  126. package/dist/utils/algorithms.js +15 -0
  127. package/dist/utils/algorithms.js.map +1 -0
  128. package/dist/utils/algorithms.test.d.ts +2 -0
  129. package/dist/utils/algorithms.test.d.ts.map +1 -0
  130. package/dist/utils/algorithms.test.js.map +1 -0
  131. package/dist/utils/bin.d.ts +4 -0
  132. package/dist/utils/bin.d.ts.map +1 -0
  133. package/dist/utils/bin.js +16 -0
  134. package/dist/utils/bin.js.map +1 -0
  135. package/dist/utils/charMap.d.ts +28 -0
  136. package/dist/utils/charMap.d.ts.map +1 -0
  137. package/dist/utils/charMap.js +31 -0
  138. package/dist/utils/charMap.js.map +1 -0
  139. package/dist/utils/console.d.ts +10 -0
  140. package/dist/utils/console.d.ts.map +1 -0
  141. package/dist/utils/console.js +66 -0
  142. package/dist/utils/console.js.map +1 -0
  143. package/dist/utils/encoding/b85.d.ts +5 -0
  144. package/dist/utils/encoding/b85.d.ts.map +1 -0
  145. package/dist/utils/encoding/b85.js +136 -0
  146. package/dist/utils/encoding/b85.js.map +1 -0
  147. package/dist/utils/encoding/codecRegistry.d.ts +333 -0
  148. package/dist/utils/encoding/codecRegistry.d.ts.map +1 -0
  149. package/dist/utils/encoding/codecRegistry.js +81 -0
  150. package/dist/utils/encoding/codecRegistry.js.map +1 -0
  151. package/dist/utils/encoding/hex.d.ts +3 -0
  152. package/dist/utils/encoding/hex.d.ts.map +1 -0
  153. package/dist/utils/encoding/hex.js +30 -0
  154. package/dist/utils/encoding/hex.js.map +1 -0
  155. package/dist/utils/encoding/lz.d.ts +12 -0
  156. package/dist/utils/encoding/lz.d.ts.map +1 -0
  157. package/dist/utils/encoding/lz.js +271 -0
  158. package/dist/utils/encoding/lz.js.map +1 -0
  159. package/dist/utils/enum.d.ts +45 -0
  160. package/dist/utils/enum.d.ts.map +1 -0
  161. package/dist/utils/enum.js +135 -0
  162. package/dist/utils/enum.js.map +1 -0
  163. package/dist/utils/errorHandling.d.ts +13 -0
  164. package/dist/utils/errorHandling.d.ts.map +1 -0
  165. package/dist/utils/errorHandling.js +18 -0
  166. package/dist/utils/errorHandling.js.map +1 -0
  167. package/dist/utils/fileSystem.d.ts +16 -0
  168. package/dist/utils/fileSystem.d.ts.map +1 -0
  169. package/dist/utils/fileSystem.js +161 -0
  170. package/dist/utils/fileSystem.js.map +1 -0
  171. package/dist/utils/help.d.ts +7 -0
  172. package/dist/utils/help.d.ts.map +1 -0
  173. package/dist/utils/help.js +87 -0
  174. package/dist/utils/help.js.map +1 -0
  175. package/dist/utils/lua/luaUtils.d.ts +1 -0
  176. package/dist/utils/lua/luaUtils.d.ts.map +1 -0
  177. package/dist/utils/lua/luaUtils.js +3 -0
  178. package/dist/utils/lua/luaUtils.js.map +1 -0
  179. package/dist/utils/lua/lua_alias_expressions.d.ts +20 -0
  180. package/dist/utils/lua/lua_alias_expressions.d.ts.map +1 -0
  181. package/dist/utils/lua/lua_alias_expressions.js +233 -0
  182. package/dist/utils/lua/lua_alias_expressions.js.map +1 -0
  183. package/dist/utils/lua/lua_alias_literals.d.ts +20 -0
  184. package/dist/utils/lua/lua_alias_literals.d.ts.map +1 -0
  185. package/dist/utils/lua/lua_alias_literals.js +165 -0
  186. package/dist/utils/lua/lua_alias_literals.js.map +1 -0
  187. package/dist/utils/lua/lua_alias_shared.d.ts +31 -0
  188. package/dist/utils/lua/lua_alias_shared.d.ts.map +1 -0
  189. package/dist/utils/lua/lua_alias_shared.js +415 -0
  190. package/dist/utils/lua/lua_alias_shared.js.map +1 -0
  191. package/dist/utils/lua/lua_ast.d.ts +9 -0
  192. package/dist/utils/lua/lua_ast.d.ts.map +1 -0
  193. package/dist/utils/lua/lua_ast.js +90 -0
  194. package/dist/utils/lua/lua_ast.js.map +1 -0
  195. package/dist/utils/lua/lua_fundamentals.d.ts +14 -0
  196. package/dist/utils/lua/lua_fundamentals.d.ts.map +1 -0
  197. package/dist/utils/lua/lua_fundamentals.js +93 -0
  198. package/dist/utils/lua/lua_fundamentals.js.map +1 -0
  199. package/dist/utils/lua/lua_pack_locals.d.ts +3 -0
  200. package/dist/utils/lua/lua_pack_locals.d.ts.map +1 -0
  201. package/dist/utils/lua/lua_pack_locals.js +206 -0
  202. package/dist/utils/lua/lua_pack_locals.js.map +1 -0
  203. package/dist/utils/lua/lua_processor.d.ts +65 -0
  204. package/dist/utils/lua/lua_processor.d.ts.map +1 -0
  205. package/dist/utils/lua/lua_processor.js +1153 -0
  206. package/dist/utils/lua/lua_processor.js.map +1 -0
  207. package/dist/utils/lua/lua_processor.test.d.ts +2 -0
  208. package/dist/utils/lua/lua_processor.test.d.ts.map +1 -0
  209. package/dist/utils/lua/lua_processor.test.js.map +1 -0
  210. package/dist/utils/lua/lua_remove_unused_functions.d.ts +6 -0
  211. package/dist/utils/lua/lua_remove_unused_functions.d.ts.map +1 -0
  212. package/dist/utils/lua/lua_remove_unused_functions.js +474 -0
  213. package/dist/utils/lua/lua_remove_unused_functions.js.map +1 -0
  214. package/dist/utils/lua/lua_remove_unused_locals.d.ts +3 -0
  215. package/dist/utils/lua/lua_remove_unused_locals.d.ts.map +1 -0
  216. package/dist/utils/lua/lua_remove_unused_locals.js +303 -0
  217. package/dist/utils/lua/lua_remove_unused_locals.js.map +1 -0
  218. package/dist/utils/lua/lua_rename_allowed_table_keys.d.ts +3 -0
  219. package/dist/utils/lua/lua_rename_allowed_table_keys.d.ts.map +1 -0
  220. package/dist/utils/lua/lua_rename_allowed_table_keys.js +157 -0
  221. package/dist/utils/lua/lua_rename_allowed_table_keys.js.map +1 -0
  222. package/dist/utils/lua/lua_rename_table_fields.d.ts +3 -0
  223. package/dist/utils/lua/lua_rename_table_fields.d.ts.map +1 -0
  224. package/dist/utils/lua/lua_rename_table_fields.js +427 -0
  225. package/dist/utils/lua/lua_rename_table_fields.js.map +1 -0
  226. package/dist/utils/lua/lua_renamer.d.ts +3 -0
  227. package/dist/utils/lua/lua_renamer.d.ts.map +1 -0
  228. package/dist/utils/lua/lua_renamer.js +229 -0
  229. package/dist/utils/lua/lua_renamer.js.map +1 -0
  230. package/dist/utils/lua/lua_simplify.d.ts +3 -0
  231. package/dist/utils/lua/lua_simplify.d.ts.map +1 -0
  232. package/dist/utils/lua/lua_simplify.js +541 -0
  233. package/dist/utils/lua/lua_simplify.js.map +1 -0
  234. package/dist/utils/lua/lua_utils.d.ts +13 -0
  235. package/dist/utils/lua/lua_utils.d.ts.map +1 -0
  236. package/dist/utils/lua/lua_utils.js +58 -0
  237. package/dist/utils/lua/lua_utils.js.map +1 -0
  238. package/dist/utils/math.d.ts +2 -0
  239. package/dist/utils/math.d.ts.map +1 -0
  240. package/dist/utils/math.js +7 -0
  241. package/dist/utils/math.js.map +1 -0
  242. package/dist/utils/math.test.d.ts +2 -0
  243. package/dist/utils/math.test.d.ts.map +1 -0
  244. package/dist/utils/math.test.js.map +1 -0
  245. package/dist/utils/templates.d.ts +3 -0
  246. package/dist/utils/templates.d.ts.map +1 -0
  247. package/dist/utils/templates.js +57 -0
  248. package/dist/utils/templates.js.map +1 -0
  249. package/dist/utils/tic80/bankSupport.test.d.ts +2 -0
  250. package/dist/utils/tic80/bankSupport.test.d.ts.map +1 -0
  251. package/dist/utils/tic80/bankSupport.test.js.map +1 -0
  252. package/dist/utils/tic80/cartLoader.d.ts +3 -0
  253. package/dist/utils/tic80/cartLoader.d.ts.map +1 -0
  254. package/dist/utils/tic80/cartLoader.js +54 -0
  255. package/dist/utils/tic80/cartLoader.js.map +1 -0
  256. package/dist/utils/tic80/cartWriter.d.ts +5 -0
  257. package/dist/utils/tic80/cartWriter.d.ts.map +1 -0
  258. package/dist/utils/tic80/cartWriter.js +95 -0
  259. package/dist/utils/tic80/cartWriter.js.map +1 -0
  260. package/dist/utils/tic80/launch.d.ts +4 -0
  261. package/dist/utils/tic80/launch.d.ts.map +1 -0
  262. package/dist/utils/tic80/launch.js +36 -0
  263. package/dist/utils/tic80/launch.js.map +1 -0
  264. package/dist/utils/tic80/tic80.d.ts +1149 -0
  265. package/dist/utils/tic80/tic80.d.ts.map +1 -0
  266. package/dist/utils/tic80/tic80.js +114 -0
  267. package/dist/utils/tic80/tic80.js.map +1 -0
  268. package/dist/utils/utils.d.ts +13 -0
  269. package/dist/utils/utils.d.ts.map +1 -0
  270. package/dist/utils/utils.js +109 -0
  271. package/dist/utils/utils.js.map +1 -0
  272. package/dist/utils/versionString.d.ts +12 -0
  273. package/dist/utils/versionString.d.ts.map +1 -0
  274. package/dist/utils/versionString.js +33 -0
  275. package/dist/utils/versionString.js.map +1 -0
  276. package/dist/utils/windowPosition.d.ts +10 -0
  277. package/dist/utils/windowPosition.d.ts.map +1 -0
  278. package/dist/utils/windowPosition.js +222 -0
  279. package/dist/utils/windowPosition.js.map +1 -0
  280. package/example.ticbuild.jsonc +94 -0
  281. package/package.json +51 -0
  282. package/templates/help/build.txt +23 -0
  283. package/templates/help/init.txt +23 -0
  284. package/templates/help/main.txt +41 -0
  285. package/templates/help/run.txt +22 -0
  286. package/templates/help/tic80.txt +8 -0
  287. package/templates/help/watch.txt +24 -0
  288. package/templates/minimal/project.ticbuild.jsonc +43 -0
  289. package/ticbuild-1.0.0.tgz +0 -0
  290. package/ticbuild.schema.json +327 -0
@@ -0,0 +1,427 @@
1
+ "use strict";
2
+ // as-is, this is not as helpful as i was hoping.
3
+ // the problem is that it doesn't track field usage through nested tables or passed around between
4
+ // scopes. so it's almost rare that a field would be eligible. for example,
5
+ /*
6
+
7
+ local function getTable()
8
+ return {
9
+ fieldA = 1,
10
+ fieldB = 2
11
+ }
12
+ end
13
+
14
+ local t = getTable()
15
+
16
+
17
+ this won't minify at all, because the table is created in one function and used in another.
18
+ we would need to follow data flow across function boundaries to track that, which is a lot more complex.
19
+
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.renameTableFieldsInAST = renameTableFieldsInAST;
23
+ const lua_utils_1 = require("./lua_utils");
24
+ function recordCtorFields(candidate) {
25
+ candidate.ctor.fields.forEach(field => {
26
+ if (field.type === "TableKeyString") {
27
+ if (field.key && field.key.type === "Identifier")
28
+ candidate.fields.add(field.key.name);
29
+ else if ((0, lua_utils_1.isStringLiteral)(field.key)) {
30
+ const val = (0, lua_utils_1.stringValue)(field.key);
31
+ if (val != null)
32
+ candidate.fields.add(val);
33
+ }
34
+ }
35
+ });
36
+ }
37
+ function scanExpression(expr, candidates, inFunction) {
38
+ switch (expr.type) {
39
+ case "Identifier": {
40
+ const cand = candidates.get(expr.name);
41
+ if (cand && !cand.disqualified)
42
+ cand.disqualified = true; // bare use / escape
43
+ return;
44
+ }
45
+ case "MemberExpression": {
46
+ if (expr.base.type === "Identifier") {
47
+ const cand = candidates.get(expr.base.name);
48
+ if (cand && !cand.disqualified) {
49
+ if (inFunction) {
50
+ cand.disqualified = true;
51
+ return;
52
+ }
53
+ const id = expr.identifier;
54
+ if (id && id.type === "Identifier") {
55
+ cand.fields.add(id.name);
56
+ return;
57
+ }
58
+ cand.disqualified = true;
59
+ return;
60
+ }
61
+ }
62
+ scanExpression(expr.base, candidates, inFunction);
63
+ return;
64
+ }
65
+ case "IndexExpression": {
66
+ if (expr.base.type === "Identifier") {
67
+ const cand = candidates.get(expr.base.name);
68
+ if (cand && !cand.disqualified) {
69
+ if (inFunction) {
70
+ cand.disqualified = true;
71
+ return;
72
+ }
73
+ if ((0, lua_utils_1.isStringLiteral)(expr.index)) {
74
+ const val = (0, lua_utils_1.stringValue)(expr.index);
75
+ if (val != null)
76
+ cand.fields.add(val);
77
+ else
78
+ cand.disqualified = true;
79
+ }
80
+ else {
81
+ cand.disqualified = true;
82
+ }
83
+ return;
84
+ }
85
+ }
86
+ scanExpression(expr.base, candidates, inFunction);
87
+ scanExpression(expr.index, candidates, inFunction);
88
+ return;
89
+ }
90
+ case "TableConstructorExpression": {
91
+ expr.fields.forEach(field => {
92
+ if (field.type === "TableKey" || field.type === "TableKeyString") {
93
+ if (field.key)
94
+ scanExpression(field.key, candidates, inFunction);
95
+ if (field.value)
96
+ scanExpression(field.value, candidates, inFunction);
97
+ }
98
+ else if (field.type === "TableValue" && field.value) {
99
+ scanExpression(field.value, candidates, inFunction);
100
+ }
101
+ });
102
+ return;
103
+ }
104
+ case "FunctionDeclaration": {
105
+ expr.body.forEach(stmt => scanStatement(stmt, candidates, true));
106
+ return;
107
+ }
108
+ case "BinaryExpression":
109
+ case "LogicalExpression":
110
+ scanExpression(expr.left, candidates, inFunction);
111
+ scanExpression(expr.right, candidates, inFunction);
112
+ return;
113
+ case "UnaryExpression":
114
+ scanExpression(expr.argument, candidates, inFunction);
115
+ return;
116
+ case "CallExpression": {
117
+ scanExpression(expr.base, candidates, inFunction);
118
+ expr.arguments.forEach(arg => scanExpression(arg, candidates, inFunction));
119
+ return;
120
+ }
121
+ case "TableCallExpression": {
122
+ scanExpression(expr.base, candidates, inFunction);
123
+ scanExpression(expr.arguments, candidates, inFunction);
124
+ return;
125
+ }
126
+ case "StringCallExpression": {
127
+ scanExpression(expr.base, candidates, inFunction);
128
+ scanExpression(expr.argument, candidates, inFunction);
129
+ return;
130
+ }
131
+ default:
132
+ return;
133
+ }
134
+ }
135
+ function scanStatement(stmt, candidates, inFunction) {
136
+ switch (stmt.type) {
137
+ case "LocalStatement": {
138
+ if (stmt.init)
139
+ stmt.init.forEach(expr => scanExpression(expr, candidates, inFunction));
140
+ return;
141
+ }
142
+ case "AssignmentStatement": {
143
+ stmt.variables.forEach(v => scanExpression(v, candidates, inFunction));
144
+ stmt.init.forEach(expr => scanExpression(expr, candidates, inFunction));
145
+ return;
146
+ }
147
+ case "CallStatement":
148
+ scanExpression(stmt.expression, candidates, inFunction);
149
+ return;
150
+ case "ReturnStatement":
151
+ stmt.arguments.forEach(arg => scanExpression(arg, candidates, inFunction));
152
+ return;
153
+ case "IfStatement":
154
+ stmt.clauses.forEach(clause => {
155
+ if ("condition" in clause && clause.condition)
156
+ scanExpression(clause.condition, candidates, inFunction);
157
+ clause.body.forEach(s => scanStatement(s, candidates, inFunction));
158
+ });
159
+ return;
160
+ case "WhileStatement":
161
+ scanExpression(stmt.condition, candidates, inFunction);
162
+ stmt.body.forEach(s => scanStatement(s, candidates, inFunction));
163
+ return;
164
+ case "RepeatStatement":
165
+ stmt.body.forEach(s => scanStatement(s, candidates, inFunction));
166
+ scanExpression(stmt.condition, candidates, inFunction);
167
+ return;
168
+ case "ForNumericStatement":
169
+ scanExpression(stmt.start, candidates, inFunction);
170
+ scanExpression(stmt.end, candidates, inFunction);
171
+ if (stmt.step)
172
+ scanExpression(stmt.step, candidates, inFunction);
173
+ stmt.body.forEach(s => scanStatement(s, candidates, inFunction));
174
+ return;
175
+ case "ForGenericStatement":
176
+ stmt.iterators.forEach(it => scanExpression(it, candidates, inFunction));
177
+ stmt.body.forEach(s => scanStatement(s, candidates, inFunction));
178
+ return;
179
+ case "FunctionDeclaration": {
180
+ // scan body as nested function (outer candidates escape)
181
+ stmt.body.forEach(s => scanStatement(s, candidates, true));
182
+ return;
183
+ }
184
+ case "DoStatement":
185
+ stmt.body.forEach(s => scanStatement(s, candidates, inFunction));
186
+ return;
187
+ default:
188
+ return;
189
+ }
190
+ }
191
+ function rewriteExpression(expr, candidates) {
192
+ switch (expr.type) {
193
+ case "MemberExpression": {
194
+ if (expr.base.type === "Identifier") {
195
+ const cand = candidates.get(expr.base.name);
196
+ if (cand && !cand.disqualified) {
197
+ const id = expr.identifier;
198
+ if (id && id.type === "Identifier") {
199
+ const mapped = cand.mapping.get(id.name);
200
+ if (mapped)
201
+ id.name = mapped;
202
+ }
203
+ return;
204
+ }
205
+ }
206
+ rewriteExpression(expr.base, candidates);
207
+ return;
208
+ }
209
+ case "IndexExpression": {
210
+ if (expr.base.type === "Identifier") {
211
+ const cand = candidates.get(expr.base.name);
212
+ if (cand && !cand.disqualified && (0, lua_utils_1.isStringLiteral)(expr.index)) {
213
+ const val = (0, lua_utils_1.stringValue)(expr.index);
214
+ if (val != null) {
215
+ const mapped = cand.mapping.get(val);
216
+ if (mapped) {
217
+ expr.index = { type: "StringLiteral", value: mapped, raw: JSON.stringify(mapped) };
218
+ return;
219
+ }
220
+ }
221
+ }
222
+ }
223
+ rewriteExpression(expr.base, candidates);
224
+ rewriteExpression(expr.index, candidates);
225
+ return;
226
+ }
227
+ case "TableConstructorExpression": {
228
+ expr.fields.forEach(field => {
229
+ if (field.type === "TableKeyString") {
230
+ if (field.value)
231
+ rewriteExpression(field.value, candidates);
232
+ if (field.key) {
233
+ if (field.key.type === "Identifier") {
234
+ // key of a string field is not an expression; nothing to rewrite
235
+ }
236
+ else if ((0, lua_utils_1.isStringLiteral)(field.key)) {
237
+ // literal key stays unless constructor itself is rewritten via mapping
238
+ }
239
+ }
240
+ }
241
+ else if (field.type === "TableKey") {
242
+ if (field.key)
243
+ rewriteExpression(field.key, candidates);
244
+ if (field.value)
245
+ rewriteExpression(field.value, candidates);
246
+ }
247
+ else if (field.type === "TableValue" && field.value) {
248
+ rewriteExpression(field.value, candidates);
249
+ }
250
+ });
251
+ return;
252
+ }
253
+ case "BinaryExpression":
254
+ case "LogicalExpression":
255
+ rewriteExpression(expr.left, candidates);
256
+ rewriteExpression(expr.right, candidates);
257
+ return;
258
+ case "UnaryExpression":
259
+ rewriteExpression(expr.argument, candidates);
260
+ return;
261
+ case "CallExpression": {
262
+ rewriteExpression(expr.base, candidates);
263
+ expr.arguments.forEach(arg => rewriteExpression(arg, candidates));
264
+ return;
265
+ }
266
+ case "TableCallExpression": {
267
+ rewriteExpression(expr.base, candidates);
268
+ rewriteExpression(expr.arguments, candidates);
269
+ return;
270
+ }
271
+ case "StringCallExpression": {
272
+ rewriteExpression(expr.base, candidates);
273
+ rewriteExpression(expr.argument, candidates);
274
+ return;
275
+ }
276
+ case "FunctionDeclaration":
277
+ expr.body.forEach(stmt => rewriteStatement(stmt, candidates));
278
+ return;
279
+ default:
280
+ return;
281
+ }
282
+ }
283
+ function rewriteStatement(stmt, candidates) {
284
+ switch (stmt.type) {
285
+ case "LocalStatement":
286
+ if (stmt.init)
287
+ stmt.init.forEach(expr => rewriteExpression(expr, candidates));
288
+ return;
289
+ case "AssignmentStatement":
290
+ stmt.variables.forEach(v => rewriteExpression(v, candidates));
291
+ stmt.init.forEach(expr => rewriteExpression(expr, candidates));
292
+ return;
293
+ case "CallStatement":
294
+ rewriteExpression(stmt.expression, candidates);
295
+ return;
296
+ case "ReturnStatement":
297
+ stmt.arguments.forEach(arg => rewriteExpression(arg, candidates));
298
+ return;
299
+ case "IfStatement":
300
+ stmt.clauses.forEach(clause => {
301
+ if ("condition" in clause && clause.condition)
302
+ rewriteExpression(clause.condition, candidates);
303
+ clause.body.forEach(s => rewriteStatement(s, candidates));
304
+ });
305
+ return;
306
+ case "WhileStatement":
307
+ rewriteExpression(stmt.condition, candidates);
308
+ stmt.body.forEach(s => rewriteStatement(s, candidates));
309
+ return;
310
+ case "RepeatStatement":
311
+ stmt.body.forEach(s => rewriteStatement(s, candidates));
312
+ rewriteExpression(stmt.condition, candidates);
313
+ return;
314
+ case "ForNumericStatement":
315
+ rewriteExpression(stmt.start, candidates);
316
+ rewriteExpression(stmt.end, candidates);
317
+ if (stmt.step)
318
+ rewriteExpression(stmt.step, candidates);
319
+ stmt.body.forEach(s => rewriteStatement(s, candidates));
320
+ return;
321
+ case "ForGenericStatement":
322
+ stmt.iterators.forEach(it => rewriteExpression(it, candidates));
323
+ stmt.body.forEach(s => rewriteStatement(s, candidates));
324
+ return;
325
+ case "FunctionDeclaration":
326
+ stmt.body.forEach(s => rewriteStatement(s, candidates));
327
+ return;
328
+ case "DoStatement":
329
+ stmt.body.forEach(s => rewriteStatement(s, candidates));
330
+ return;
331
+ default:
332
+ return;
333
+ }
334
+ }
335
+ function rewriteConstructors(candidates) {
336
+ candidates.forEach(cand => {
337
+ if (cand.disqualified)
338
+ return;
339
+ cand.ctor.fields.forEach(field => {
340
+ if (field.type === "TableKeyString" && field.key) {
341
+ if (field.key.type === "Identifier") {
342
+ const mapped = cand.mapping.get(field.key.name);
343
+ if (mapped)
344
+ field.key.name = mapped;
345
+ }
346
+ else if ((0, lua_utils_1.isStringLiteral)(field.key)) {
347
+ const val = (0, lua_utils_1.stringValue)(field.key);
348
+ if (val != null) {
349
+ const mapped = cand.mapping.get(val);
350
+ if (mapped) {
351
+ field.key.value = mapped;
352
+ field.key.raw = JSON.stringify(mapped);
353
+ }
354
+ }
355
+ }
356
+ }
357
+ });
358
+ });
359
+ }
360
+ function collectCandidates(chunk) {
361
+ const candidates = new Map();
362
+ function visitStatement(stmt) {
363
+ if (stmt.type === "LocalStatement" && stmt.init) {
364
+ stmt.variables.forEach((v, idx) => {
365
+ if (v.type === "Identifier") {
366
+ const init = stmt.init ? stmt.init[idx] : undefined;
367
+ if (init && init.type === "TableConstructorExpression") {
368
+ const cand = {
369
+ name: v.name,
370
+ ctor: init,
371
+ fields: new Set(),
372
+ disqualified: false,
373
+ mapping: new Map(),
374
+ };
375
+ recordCtorFields(cand);
376
+ const existing = candidates.get(v.name);
377
+ if (existing) {
378
+ existing.disqualified = true;
379
+ cand.disqualified = true;
380
+ }
381
+ candidates.set(v.name, cand);
382
+ }
383
+ }
384
+ });
385
+ }
386
+ switch (stmt.type) {
387
+ case "IfStatement":
388
+ stmt.clauses.forEach(clause => clause.body.forEach(visitStatement));
389
+ break;
390
+ case "WhileStatement":
391
+ case "RepeatStatement":
392
+ case "ForNumericStatement":
393
+ case "ForGenericStatement":
394
+ case "DoStatement":
395
+ stmt.body.forEach(visitStatement);
396
+ break;
397
+ case "FunctionDeclaration":
398
+ stmt.body.forEach(visitStatement);
399
+ break;
400
+ default:
401
+ break;
402
+ }
403
+ }
404
+ chunk.body.forEach(visitStatement);
405
+ return candidates;
406
+ }
407
+ function renameTableFieldsInAST(ast) {
408
+ const candidates = collectCandidates(ast);
409
+ if (candidates.size === 0)
410
+ return ast;
411
+ // Disqualify and gather field usages
412
+ ast.body.forEach(stmt => scanStatement(stmt, candidates, false));
413
+ // Build mappings for survivors
414
+ const counter = { value: 0 };
415
+ candidates.forEach(cand => {
416
+ if (cand.disqualified)
417
+ return;
418
+ cand.fields.forEach(field => {
419
+ if (!cand.mapping.has(field))
420
+ cand.mapping.set(field, (0, lua_utils_1.nextFreeName)(counter));
421
+ });
422
+ });
423
+ rewriteConstructors(candidates);
424
+ ast.body.forEach(stmt => rewriteStatement(stmt, candidates));
425
+ return ast;
426
+ }
427
+ //# sourceMappingURL=lua_rename_table_fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua_rename_table_fields.js","sourceRoot":"","sources":["../../../src/utils/lua/lua_rename_table_fields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import * as luaparse from "luaparse";
2
+ export declare function renameLocalVariablesInAST(ast: luaparse.Chunk): luaparse.Chunk;
3
+ //# sourceMappingURL=lua_renamer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lua_renamer.d.ts","sourceRoot":"","sources":["../../../src/utils/lua/lua_renamer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AA8BrC,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CA+O7E"}