@defold-typescript/types 0.53.0 → 0.54.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 (335) hide show
  1. package/dist/cli-runtime.js +8966 -0
  2. package/dist/identity-vocabulary.json +660 -0
  3. package/dist/src/index.d.ts +18 -0
  4. package/fixtures/defold-1.12.4/b2d_body_doc.json +1327 -0
  5. package/fixtures/defold-1.12.4/b2d_doc.json +107 -0
  6. package/fixtures/defold-1.12.4/base_doc.json +758 -0
  7. package/fixtures/defold-1.12.4/bit_doc.json +404 -0
  8. package/fixtures/defold-1.12.4/buffer_doc.json +422 -0
  9. package/fixtures/defold-1.12.4/camera_doc.json +664 -0
  10. package/fixtures/defold-1.12.4/collectionfactory_doc.json +219 -0
  11. package/fixtures/defold-1.12.4/collectionproxy_doc.json +289 -0
  12. package/fixtures/defold-1.12.4/coroutine_doc.json +151 -0
  13. package/fixtures/defold-1.12.4/crash_doc.json +497 -0
  14. package/fixtures/defold-1.12.4/debug_doc.json +410 -0
  15. package/fixtures/defold-1.12.4/factory_doc.json +219 -0
  16. package/fixtures/defold-1.12.4/font_doc.json +141 -0
  17. package/fixtures/defold-1.12.4/globals_doc.json +42 -0
  18. package/fixtures/defold-1.12.4/go-instance-functions.json +111 -0
  19. package/fixtures/defold-1.12.4/go_doc.json +1901 -0
  20. package/fixtures/defold-1.12.4/graphics_doc.json +1634 -0
  21. package/fixtures/defold-1.12.4/gui_doc.json +5249 -0
  22. package/fixtures/defold-1.12.4/html5_doc.json +64 -0
  23. package/fixtures/defold-1.12.4/http_doc.json +66 -0
  24. package/fixtures/defold-1.12.4/image_doc.json +170 -0
  25. package/fixtures/defold-1.12.4/io_doc.json +399 -0
  26. package/fixtures/defold-1.12.4/json_doc.json +97 -0
  27. package/fixtures/defold-1.12.4/label_doc.json +220 -0
  28. package/fixtures/defold-1.12.4/liveupdate_doc.json +308 -0
  29. package/fixtures/defold-1.12.4/math_doc.json +702 -0
  30. package/fixtures/defold-1.12.4/messages_doc.json +579 -0
  31. package/fixtures/defold-1.12.4/model_doc.json +315 -0
  32. package/fixtures/defold-1.12.4/msg_doc.json +137 -0
  33. package/fixtures/defold-1.12.4/os_doc.json +266 -0
  34. package/fixtures/defold-1.12.4/package_doc.json +139 -0
  35. package/fixtures/defold-1.12.4/particlefx_doc.json +249 -0
  36. package/fixtures/defold-1.12.4/physics_doc.json +1120 -0
  37. package/fixtures/defold-1.12.4/profiler_doc.json +375 -0
  38. package/fixtures/defold-1.12.4/render_doc.json +1167 -0
  39. package/fixtures/defold-1.12.4/resource_doc.json +762 -0
  40. package/fixtures/defold-1.12.4/socket_doc.json +2194 -0
  41. package/fixtures/defold-1.12.4/sound_doc.json +582 -0
  42. package/fixtures/defold-1.12.4/sprite_doc.json +245 -0
  43. package/fixtures/defold-1.12.4/string_doc.json +412 -0
  44. package/fixtures/defold-1.12.4/sys_doc.json +853 -0
  45. package/fixtures/defold-1.12.4/table_doc.json +166 -0
  46. package/fixtures/defold-1.12.4/tilemap_doc.json +374 -0
  47. package/fixtures/defold-1.12.4/timer_doc.json +153 -0
  48. package/fixtures/defold-1.12.4/types_doc.json +212 -0
  49. package/fixtures/defold-1.12.4/vmath_doc.json +1814 -0
  50. package/fixtures/defold-1.12.4/window_doc.json +388 -0
  51. package/fixtures/defold-1.12.4/zlib_doc.json +70 -0
  52. package/fixtures/defold-1.13.0/b2d_body_doc.json +2428 -0
  53. package/fixtures/defold-1.13.0/b2d_chain_doc.json +394 -0
  54. package/fixtures/defold-1.13.0/b2d_doc.json +128 -0
  55. package/fixtures/defold-1.13.0/b2d_fixture_doc.json +594 -0
  56. package/fixtures/defold-1.13.0/b2d_joint_doc.json +3315 -0
  57. package/fixtures/defold-1.13.0/b2d_shape_doc.json +802 -0
  58. package/fixtures/defold-1.13.0/b2d_world_doc.json +1314 -0
  59. package/fixtures/defold-1.13.0/base_doc.json +758 -0
  60. package/fixtures/defold-1.13.0/bit_doc.json +404 -0
  61. package/fixtures/defold-1.13.0/buffer_doc.json +422 -0
  62. package/fixtures/defold-1.13.0/camera_doc.json +900 -0
  63. package/fixtures/defold-1.13.0/collectionfactory_doc.json +219 -0
  64. package/fixtures/defold-1.13.0/collectionproxy_doc.json +289 -0
  65. package/fixtures/defold-1.13.0/compute_doc.json +182 -0
  66. package/fixtures/defold-1.13.0/coroutine_doc.json +151 -0
  67. package/fixtures/defold-1.13.0/crash_doc.json +497 -0
  68. package/fixtures/defold-1.13.0/debug_doc.json +410 -0
  69. package/fixtures/defold-1.13.0/editor_doc.json +3665 -0
  70. package/fixtures/defold-1.13.0/editor_http_doc.json +273 -0
  71. package/fixtures/defold-1.13.0/editor_json_doc.json +59 -0
  72. package/fixtures/defold-1.13.0/editor_localization_doc.json +138 -0
  73. package/fixtures/defold-1.13.0/editor_pprint_doc.json +36 -0
  74. package/fixtures/defold-1.13.0/editor_tilemap_tiles_doc.json +235 -0
  75. package/fixtures/defold-1.13.0/editor_zip_doc.json +163 -0
  76. package/fixtures/defold-1.13.0/editor_zlib_doc.json +48 -0
  77. package/fixtures/defold-1.13.0/factory_doc.json +219 -0
  78. package/fixtures/defold-1.13.0/font_doc.json +141 -0
  79. package/fixtures/defold-1.13.0/globals_doc.json +42 -0
  80. package/fixtures/defold-1.13.0/go-instance-functions.json +101 -0
  81. package/fixtures/defold-1.13.0/go_doc.json +1989 -0
  82. package/fixtures/defold-1.13.0/graphics_doc.json +1886 -0
  83. package/fixtures/defold-1.13.0/gui_doc.json +5277 -0
  84. package/fixtures/defold-1.13.0/html5_doc.json +64 -0
  85. package/fixtures/defold-1.13.0/http_doc.json +66 -0
  86. package/fixtures/defold-1.13.0/image_doc.json +170 -0
  87. package/fixtures/defold-1.13.0/import-manifest.json +10558 -0
  88. package/fixtures/defold-1.13.0/io_doc.json +399 -0
  89. package/fixtures/defold-1.13.0/json_doc.json +97 -0
  90. package/fixtures/defold-1.13.0/label_doc.json +220 -0
  91. package/fixtures/defold-1.13.0/liveupdate_doc.json +330 -0
  92. package/fixtures/defold-1.13.0/material_doc.json +238 -0
  93. package/fixtures/defold-1.13.0/math_doc.json +702 -0
  94. package/fixtures/defold-1.13.0/model_doc.json +412 -0
  95. package/fixtures/defold-1.13.0/msg_doc.json +137 -0
  96. package/fixtures/defold-1.13.0/os_doc.json +266 -0
  97. package/fixtures/defold-1.13.0/package_doc.json +139 -0
  98. package/fixtures/defold-1.13.0/particlefx_doc.json +249 -0
  99. package/fixtures/defold-1.13.0/physics_doc.json +1492 -0
  100. package/fixtures/defold-1.13.0/profiler_doc.json +375 -0
  101. package/fixtures/defold-1.13.0/render_doc.json +1381 -0
  102. package/fixtures/defold-1.13.0/resource_doc.json +762 -0
  103. package/fixtures/defold-1.13.0/socket_doc.json +2194 -0
  104. package/fixtures/defold-1.13.0/sound_doc.json +582 -0
  105. package/fixtures/defold-1.13.0/sprite_doc.json +335 -0
  106. package/fixtures/defold-1.13.0/string_doc.json +412 -0
  107. package/fixtures/defold-1.13.0/sys_doc.json +1142 -0
  108. package/fixtures/defold-1.13.0/table_doc.json +166 -0
  109. package/fixtures/defold-1.13.0/tilemap_doc.json +402 -0
  110. package/fixtures/defold-1.13.0/timer_doc.json +153 -0
  111. package/fixtures/defold-1.13.0/types_doc.json +212 -0
  112. package/fixtures/defold-1.13.0/vmath_doc.json +1814 -0
  113. package/fixtures/defold-1.13.0/window_doc.json +388 -0
  114. package/fixtures/defold-1.13.0/zlib_doc.json +70 -0
  115. package/fixtures/defold-1.13.1/b2d_body_doc.json +2428 -0
  116. package/fixtures/defold-1.13.1/b2d_chain_doc.json +394 -0
  117. package/fixtures/defold-1.13.1/b2d_doc.json +128 -0
  118. package/fixtures/defold-1.13.1/b2d_fixture_doc.json +594 -0
  119. package/fixtures/defold-1.13.1/b2d_joint_doc.json +3315 -0
  120. package/fixtures/defold-1.13.1/b2d_shape_doc.json +802 -0
  121. package/fixtures/defold-1.13.1/b2d_world_doc.json +1314 -0
  122. package/fixtures/defold-1.13.1/base_doc.json +758 -0
  123. package/fixtures/defold-1.13.1/bit_doc.json +404 -0
  124. package/fixtures/defold-1.13.1/buffer_doc.json +422 -0
  125. package/fixtures/defold-1.13.1/camera_doc.json +900 -0
  126. package/fixtures/defold-1.13.1/collectionfactory_doc.json +219 -0
  127. package/fixtures/defold-1.13.1/collectionproxy_doc.json +323 -0
  128. package/fixtures/defold-1.13.1/compute_doc.json +182 -0
  129. package/fixtures/defold-1.13.1/coroutine_doc.json +151 -0
  130. package/fixtures/defold-1.13.1/crash_doc.json +497 -0
  131. package/fixtures/defold-1.13.1/debug_doc.json +410 -0
  132. package/fixtures/defold-1.13.1/editor_doc.json +3880 -0
  133. package/fixtures/defold-1.13.1/editor_http_doc.json +273 -0
  134. package/fixtures/defold-1.13.1/editor_image_doc.json +128 -0
  135. package/fixtures/defold-1.13.1/editor_json_doc.json +59 -0
  136. package/fixtures/defold-1.13.1/editor_localization_doc.json +138 -0
  137. package/fixtures/defold-1.13.1/editor_pprint_doc.json +36 -0
  138. package/fixtures/defold-1.13.1/editor_tilemap_tiles_doc.json +235 -0
  139. package/fixtures/defold-1.13.1/editor_zip_doc.json +163 -0
  140. package/fixtures/defold-1.13.1/editor_zlib_doc.json +48 -0
  141. package/fixtures/defold-1.13.1/factory_doc.json +219 -0
  142. package/fixtures/defold-1.13.1/font_doc.json +141 -0
  143. package/fixtures/defold-1.13.1/globals_doc.json +42 -0
  144. package/fixtures/defold-1.13.1/go-instance-functions.json +102 -0
  145. package/fixtures/defold-1.13.1/go_doc.json +1989 -0
  146. package/fixtures/defold-1.13.1/graphics_doc.json +1886 -0
  147. package/fixtures/defold-1.13.1/gui_doc.json +5277 -0
  148. package/fixtures/defold-1.13.1/html5_doc.json +64 -0
  149. package/fixtures/defold-1.13.1/http_doc.json +66 -0
  150. package/fixtures/defold-1.13.1/image_doc.json +170 -0
  151. package/fixtures/defold-1.13.1/import-manifest.json +10091 -0
  152. package/fixtures/defold-1.13.1/io_doc.json +399 -0
  153. package/fixtures/defold-1.13.1/json_doc.json +97 -0
  154. package/fixtures/defold-1.13.1/label_doc.json +220 -0
  155. package/fixtures/defold-1.13.1/liveupdate_doc.json +330 -0
  156. package/fixtures/defold-1.13.1/material_doc.json +238 -0
  157. package/fixtures/defold-1.13.1/math_doc.json +702 -0
  158. package/fixtures/defold-1.13.1/model_doc.json +412 -0
  159. package/fixtures/defold-1.13.1/msg_doc.json +137 -0
  160. package/fixtures/defold-1.13.1/os_doc.json +266 -0
  161. package/fixtures/defold-1.13.1/package_doc.json +139 -0
  162. package/fixtures/defold-1.13.1/particlefx_doc.json +249 -0
  163. package/fixtures/defold-1.13.1/physics_doc.json +1492 -0
  164. package/fixtures/defold-1.13.1/profiler_doc.json +375 -0
  165. package/fixtures/defold-1.13.1/render_doc.json +1381 -0
  166. package/fixtures/defold-1.13.1/resource_doc.json +762 -0
  167. package/fixtures/defold-1.13.1/socket_doc.json +2194 -0
  168. package/fixtures/defold-1.13.1/sound_doc.json +582 -0
  169. package/fixtures/defold-1.13.1/sprite_doc.json +335 -0
  170. package/fixtures/defold-1.13.1/string_doc.json +412 -0
  171. package/fixtures/defold-1.13.1/sys_doc.json +1142 -0
  172. package/fixtures/defold-1.13.1/table_doc.json +166 -0
  173. package/fixtures/defold-1.13.1/tilemap_doc.json +402 -0
  174. package/fixtures/defold-1.13.1/timer_doc.json +153 -0
  175. package/fixtures/defold-1.13.1/types_doc.json +212 -0
  176. package/fixtures/defold-1.13.1/vmath_doc.json +1814 -0
  177. package/fixtures/defold-1.13.1/window_doc.json +388 -0
  178. package/fixtures/defold-1.13.1/zlib_doc.json +70 -0
  179. package/fixtures/defold-1.13.2/b2d_body_doc.json +2359 -0
  180. package/fixtures/defold-1.13.2/b2d_chain_doc.json +395 -0
  181. package/fixtures/defold-1.13.2/b2d_doc.json +1945 -0
  182. package/fixtures/defold-1.13.2/b2d_fixture_doc.json +595 -0
  183. package/fixtures/defold-1.13.2/b2d_joint_doc.json +3178 -0
  184. package/fixtures/defold-1.13.2/b2d_shape_doc.json +767 -0
  185. package/fixtures/defold-1.13.2/b2d_world_doc.json +1315 -0
  186. package/fixtures/defold-1.13.2/base_doc.json +759 -0
  187. package/fixtures/defold-1.13.2/bit_doc.json +405 -0
  188. package/fixtures/defold-1.13.2/buffer_doc.json +393 -0
  189. package/fixtures/defold-1.13.2/bullet3d_collision_object_doc.json +1206 -0
  190. package/fixtures/defold-1.13.2/bullet3d_constraint_doc.json +2455 -0
  191. package/fixtures/defold-1.13.2/bullet3d_doc.json +215 -0
  192. package/fixtures/defold-1.13.2/bullet3d_rigid_body_doc.json +1376 -0
  193. package/fixtures/defold-1.13.2/bullet3d_shape_doc.json +430 -0
  194. package/fixtures/defold-1.13.2/bullet3d_world_doc.json +855 -0
  195. package/fixtures/defold-1.13.2/camera_doc.json +887 -0
  196. package/fixtures/defold-1.13.2/collectionfactory_doc.json +206 -0
  197. package/fixtures/defold-1.13.2/collectionproxy_doc.json +397 -0
  198. package/fixtures/defold-1.13.2/compute_doc.json +183 -0
  199. package/fixtures/defold-1.13.2/coroutine_doc.json +152 -0
  200. package/fixtures/defold-1.13.2/crash_doc.json +483 -0
  201. package/fixtures/defold-1.13.2/debug_doc.json +411 -0
  202. package/fixtures/defold-1.13.2/editor_doc.json +6320 -0
  203. package/fixtures/defold-1.13.2/editor_http_doc.json +476 -0
  204. package/fixtures/defold-1.13.2/editor_image_doc.json +129 -0
  205. package/fixtures/defold-1.13.2/editor_json_doc.json +81 -0
  206. package/fixtures/defold-1.13.2/editor_localization_doc.json +139 -0
  207. package/fixtures/defold-1.13.2/editor_pprint_doc.json +37 -0
  208. package/fixtures/defold-1.13.2/editor_tilemap_tiles_doc.json +292 -0
  209. package/fixtures/defold-1.13.2/editor_zip_doc.json +237 -0
  210. package/fixtures/defold-1.13.2/editor_zlib_doc.json +49 -0
  211. package/fixtures/defold-1.13.2/factory_doc.json +206 -0
  212. package/fixtures/defold-1.13.2/font_doc.json +230 -0
  213. package/fixtures/defold-1.13.2/globals_doc.json +64 -0
  214. package/fixtures/defold-1.13.2/go-instance-functions.json +106 -0
  215. package/fixtures/defold-1.13.2/go_doc.json +1789 -0
  216. package/fixtures/defold-1.13.2/graphics_doc.json +1211 -0
  217. package/fixtures/defold-1.13.2/gui_doc.json +4735 -0
  218. package/fixtures/defold-1.13.2/html5_doc.json +65 -0
  219. package/fixtures/defold-1.13.2/http_doc.json +174 -0
  220. package/fixtures/defold-1.13.2/image_doc.json +298 -0
  221. package/fixtures/defold-1.13.2/import-manifest.json +10902 -0
  222. package/fixtures/defold-1.13.2/io_doc.json +400 -0
  223. package/fixtures/defold-1.13.2/json_doc.json +140 -0
  224. package/fixtures/defold-1.13.2/label_doc.json +427 -0
  225. package/fixtures/defold-1.13.2/liveupdate_doc.json +221 -0
  226. package/fixtures/defold-1.13.2/material_doc.json +773 -0
  227. package/fixtures/defold-1.13.2/math_doc.json +703 -0
  228. package/fixtures/defold-1.13.2/model_doc.json +472 -0
  229. package/fixtures/defold-1.13.2/msg_doc.json +169 -0
  230. package/fixtures/defold-1.13.2/os_doc.json +269 -0
  231. package/fixtures/defold-1.13.2/package_doc.json +140 -0
  232. package/fixtures/defold-1.13.2/particlefx_doc.json +249 -0
  233. package/fixtures/defold-1.13.2/physics_doc.json +1624 -0
  234. package/fixtures/defold-1.13.2/profiler_doc.json +348 -0
  235. package/fixtures/defold-1.13.2/render_doc.json +1623 -0
  236. package/fixtures/defold-1.13.2/resource_doc.json +1539 -0
  237. package/fixtures/defold-1.13.2/socket_doc.json +2335 -0
  238. package/fixtures/defold-1.13.2/sound_doc.json +673 -0
  239. package/fixtures/defold-1.13.2/sprite_doc.json +364 -0
  240. package/fixtures/defold-1.13.2/string_doc.json +413 -0
  241. package/fixtures/defold-1.13.2/sys_doc.json +1347 -0
  242. package/fixtures/defold-1.13.2/table_doc.json +167 -0
  243. package/fixtures/defold-1.13.2/tilemap_doc.json +369 -0
  244. package/fixtures/defold-1.13.2/timer_doc.json +214 -0
  245. package/fixtures/defold-1.13.2/types_doc.json +213 -0
  246. package/fixtures/defold-1.13.2/vmath_doc.json +2056 -0
  247. package/fixtures/defold-1.13.2/window_doc.json +426 -0
  248. package/fixtures/defold-1.13.2/zlib_doc.json +71 -0
  249. package/fixtures/defold-1.14.0/b2d_body_doc.json +2359 -0
  250. package/fixtures/defold-1.14.0/b2d_chain_doc.json +395 -0
  251. package/fixtures/defold-1.14.0/b2d_doc.json +1973 -0
  252. package/fixtures/defold-1.14.0/b2d_fixture_doc.json +595 -0
  253. package/fixtures/defold-1.14.0/b2d_joint_doc.json +3178 -0
  254. package/fixtures/defold-1.14.0/b2d_shape_doc.json +767 -0
  255. package/fixtures/defold-1.14.0/b2d_world_doc.json +1315 -0
  256. package/fixtures/defold-1.14.0/base_doc.json +759 -0
  257. package/fixtures/defold-1.14.0/bit_doc.json +405 -0
  258. package/fixtures/defold-1.14.0/buffer_doc.json +393 -0
  259. package/fixtures/defold-1.14.0/bullet3d_collision_object_doc.json +1206 -0
  260. package/fixtures/defold-1.14.0/bullet3d_constraint_doc.json +2455 -0
  261. package/fixtures/defold-1.14.0/bullet3d_doc.json +243 -0
  262. package/fixtures/defold-1.14.0/bullet3d_rigid_body_doc.json +1376 -0
  263. package/fixtures/defold-1.14.0/bullet3d_shape_doc.json +430 -0
  264. package/fixtures/defold-1.14.0/bullet3d_world_doc.json +855 -0
  265. package/fixtures/defold-1.14.0/camera_doc.json +887 -0
  266. package/fixtures/defold-1.14.0/collectionfactory_doc.json +206 -0
  267. package/fixtures/defold-1.14.0/collectionproxy_doc.json +397 -0
  268. package/fixtures/defold-1.14.0/compute_doc.json +183 -0
  269. package/fixtures/defold-1.14.0/coroutine_doc.json +152 -0
  270. package/fixtures/defold-1.14.0/crash_doc.json +483 -0
  271. package/fixtures/defold-1.14.0/debug_doc.json +411 -0
  272. package/fixtures/defold-1.14.0/editor_doc.json +6320 -0
  273. package/fixtures/defold-1.14.0/editor_http_doc.json +476 -0
  274. package/fixtures/defold-1.14.0/editor_image_doc.json +129 -0
  275. package/fixtures/defold-1.14.0/editor_json_doc.json +81 -0
  276. package/fixtures/defold-1.14.0/editor_localization_doc.json +139 -0
  277. package/fixtures/defold-1.14.0/editor_pprint_doc.json +37 -0
  278. package/fixtures/defold-1.14.0/editor_tilemap_tiles_doc.json +292 -0
  279. package/fixtures/defold-1.14.0/editor_zip_doc.json +237 -0
  280. package/fixtures/defold-1.14.0/editor_zlib_doc.json +49 -0
  281. package/fixtures/defold-1.14.0/factory_doc.json +206 -0
  282. package/fixtures/defold-1.14.0/font_doc.json +230 -0
  283. package/fixtures/defold-1.14.0/globals_doc.json +64 -0
  284. package/fixtures/defold-1.14.0/go-instance-functions.json +106 -0
  285. package/fixtures/defold-1.14.0/go_doc.json +1789 -0
  286. package/fixtures/defold-1.14.0/graphics_doc.json +1257 -0
  287. package/fixtures/defold-1.14.0/gui_doc.json +4735 -0
  288. package/fixtures/defold-1.14.0/html5_doc.json +65 -0
  289. package/fixtures/defold-1.14.0/http_doc.json +174 -0
  290. package/fixtures/defold-1.14.0/image_doc.json +298 -0
  291. package/fixtures/defold-1.14.0/import-manifest.json +10260 -0
  292. package/fixtures/defold-1.14.0/io_doc.json +400 -0
  293. package/fixtures/defold-1.14.0/json_doc.json +140 -0
  294. package/fixtures/defold-1.14.0/label_doc.json +427 -0
  295. package/fixtures/defold-1.14.0/liveupdate_doc.json +221 -0
  296. package/fixtures/defold-1.14.0/material_doc.json +773 -0
  297. package/fixtures/defold-1.14.0/math_doc.json +703 -0
  298. package/fixtures/defold-1.14.0/model_doc.json +472 -0
  299. package/fixtures/defold-1.14.0/msg_doc.json +169 -0
  300. package/fixtures/defold-1.14.0/os_doc.json +269 -0
  301. package/fixtures/defold-1.14.0/package_doc.json +140 -0
  302. package/fixtures/defold-1.14.0/particlefx_doc.json +249 -0
  303. package/fixtures/defold-1.14.0/physics_doc.json +1624 -0
  304. package/fixtures/defold-1.14.0/profiler_doc.json +348 -0
  305. package/fixtures/defold-1.14.0/render_doc.json +1628 -0
  306. package/fixtures/defold-1.14.0/resource_doc.json +1539 -0
  307. package/fixtures/defold-1.14.0/socket_doc.json +2335 -0
  308. package/fixtures/defold-1.14.0/sound_doc.json +673 -0
  309. package/fixtures/defold-1.14.0/sprite_doc.json +364 -0
  310. package/fixtures/defold-1.14.0/string_doc.json +413 -0
  311. package/fixtures/defold-1.14.0/sys_doc.json +1347 -0
  312. package/fixtures/defold-1.14.0/table_doc.json +167 -0
  313. package/fixtures/defold-1.14.0/tilemap_doc.json +369 -0
  314. package/fixtures/defold-1.14.0/timer_doc.json +214 -0
  315. package/fixtures/defold-1.14.0/types_doc.json +213 -0
  316. package/fixtures/defold-1.14.0/vmath_doc.json +2056 -0
  317. package/fixtures/defold-1.14.0/window_doc.json +426 -0
  318. package/fixtures/defold-1.14.0/zlib_doc.json +71 -0
  319. package/package.json +13 -6
  320. package/scripts/cli-runtime.ts +18 -0
  321. package/scripts/example-store-io.ts +2 -2
  322. package/scripts/extension-goldens.ts +9 -5
  323. package/scripts/generate-api-availability.ts +1 -1
  324. package/scripts/generate-api-signatures.ts +1 -1
  325. package/scripts/import-defold-release.ts +1 -1
  326. package/scripts/regen.ts +35 -9
  327. package/scripts/signature-store-fs.ts +37 -17
  328. package/scripts/sync-api-docs.ts +127 -20
  329. package/src/api-doc.ts +11 -4
  330. package/src/emit-dts.ts +115 -21
  331. package/src/index-slot-classifications.ts +75 -9
  332. package/src/index.ts +3 -1
  333. package/src/publish-dts.ts +16 -0
  334. package/src/script-api.ts +36 -38
  335. package/src/library-index-slot-classifications.ts +0 -332
@@ -1,5 +1,4 @@
1
1
  import { htmlToDocText } from "./doc-comment";
2
- import { LIBRARY_INDEX_SLOT_CLASSIFICATIONS } from "./library-index-slot-classifications";
3
2
 
4
3
  // The class records the base Defold itself counts from. TypeScript passes every
5
4
  // engine position to Defold, and takes it back, unchanged in that base:
@@ -543,36 +542,101 @@ export function withIndexBaseNotes(
543
542
  return appendNotes(doc, indexBaseNotes(elementName, kind, slotName));
544
543
  }
545
544
 
545
+ // The class records the base the library itself counts from, which TypeScript
546
+ // passes through unchanged, exactly as `INDEX_SLOT_CLASSIFICATIONS` records
547
+ // Defold's.
548
+ export type LibraryIndexSlotClassifications = ReadonlyMap<
549
+ string,
550
+ Pick<IndexSlotClassification, "class" | "evidence">
551
+ >;
552
+
553
+ const INDEX_SLOT_CLASSES: ReadonlySet<string> = new Set<IndexSlotClass>([
554
+ "native-1",
555
+ "native-0",
556
+ "not-a-position",
557
+ ]);
558
+
559
+ function isPlainObject(value: unknown): value is Record<string, unknown> {
560
+ return typeof value === "object" && value !== null && !Array.isArray(value);
561
+ }
562
+
563
+ // Keyed `<page>/<element>:<param|return|field>:<slot>[:<field>]`, `<page>` being
564
+ // the library page key (`gooey`, `spine.gui`, `rive.cmd`), so a library slot
565
+ // never shares a key with an engine one (`spine.gui` documents `gui.*`). A class
566
+ // field is keyed `<page>/<Typedef>:field:<member>`, a callback argument as a
567
+ // field of its callback slot, and each positional value of an unnamed
568
+ // multi-value return as a field of that return (`cast:return::tile_x`). A
569
+ // typedef method is keyed by its bare name, so one key covers every class of the
570
+ // page that declares that method.
571
+ // `docs-site/app/lib/library-index-slot-gate.test.ts` reds on a scanned slot
572
+ // missing from `library-types/index-slot-classifications.json` and on an entry
573
+ // no library page declares.
574
+ export function parseLibraryIndexSlotClassifications(
575
+ json: unknown,
576
+ ): LibraryIndexSlotClassifications {
577
+ if (!isPlainObject(json)) {
578
+ throw new Error("library index-slot classifications must be a JSON object");
579
+ }
580
+ const map = new Map<string, Pick<IndexSlotClassification, "class" | "evidence">>();
581
+ for (const [key, value] of Object.entries(json)) {
582
+ if (!isPlainObject(value)) {
583
+ throw new Error(`library index-slot classification ${key} must be an object`);
584
+ }
585
+ const { class: slotClass, evidence } = value;
586
+ if (typeof slotClass !== "string" || !INDEX_SLOT_CLASSES.has(slotClass)) {
587
+ throw new Error(
588
+ `library index-slot classification ${key} has class ${JSON.stringify(slotClass)}, not one of ${[...INDEX_SLOT_CLASSES].join(", ")}`,
589
+ );
590
+ }
591
+ if (typeof evidence !== "string" || evidence.trim() === "") {
592
+ throw new Error(`library index-slot classification ${key} needs a non-blank evidence string`);
593
+ }
594
+ map.set(key, { class: slotClass as IndexSlotClass, evidence });
595
+ }
596
+ return map;
597
+ }
598
+
546
599
  // The same notes for a slot or class field of a library page, read from the
547
600
  // library map under that page's key and naming the library as the receiver.
548
601
  export function libraryIndexBaseNotes(
602
+ classifications: LibraryIndexSlotClassifications,
549
603
  page: string,
550
604
  elementName: string,
551
605
  kind: "param" | "return" | "field",
552
606
  slotName: string,
553
607
  ): string[] {
554
608
  return slotBaseNotes(
555
- LIBRARY_INDEX_SLOT_CLASSIFICATIONS,
609
+ classifications,
556
610
  `\`${page}\``,
557
611
  `${page}/${elementName}:${kind}:${slotName}`,
558
612
  );
559
613
  }
560
614
 
561
615
  export function withLibraryIndexBaseNotes(
616
+ classifications: LibraryIndexSlotClassifications,
562
617
  page: string,
563
618
  elementName: string,
564
619
  kind: "param" | "return" | "field",
565
620
  slotName: string,
566
621
  doc: string,
567
622
  ): string {
568
- return appendNotes(doc, libraryIndexBaseNotes(page, elementName, kind, slotName));
623
+ return appendNotes(
624
+ doc,
625
+ libraryIndexBaseNotes(classifications, page, elementName, kind, slotName),
626
+ );
569
627
  }
570
628
 
571
629
  // Where a declaration's index notes come from: the engine map, naming Defold, or
572
- // the library map under each listed page, naming that library. A library or
573
- // extension declaration never reads the engine map, so an element it shares a
574
- // name with (`spine.gui` declares `gui.*`) never claims Defold as its receiver.
575
- export type IndexBaseSource = "engine" | { readonly pages: readonly string[] };
630
+ // the caller's library map under each listed page, naming that library. A
631
+ // library or extension declaration never reads the engine map, so an element it
632
+ // shares a name with (`spine.gui` declares `gui.*`) never claims Defold as its
633
+ // receiver.
634
+ export type IndexBaseSource =
635
+ | "engine"
636
+ | {
637
+ readonly pages: readonly string[];
638
+ readonly classifications: LibraryIndexSlotClassifications;
639
+ };
576
640
 
577
641
  export type IndexBaseNoteResolver = (
578
642
  elementName: string,
@@ -582,7 +646,9 @@ export type IndexBaseNoteResolver = (
582
646
 
583
647
  export function indexBaseNoteResolver(source: IndexBaseSource): IndexBaseNoteResolver {
584
648
  if (source === "engine") return indexBaseNotes;
585
- const { pages } = source;
649
+ const { pages, classifications } = source;
586
650
  return (elementName, kind, slotName) =>
587
- pages.flatMap((page) => libraryIndexBaseNotes(page, elementName, kind, slotName));
651
+ pages.flatMap((page) =>
652
+ libraryIndexBaseNotes(classifications, page, elementName, kind, slotName),
653
+ );
588
654
  }
package/src/index.ts CHANGED
@@ -88,11 +88,12 @@ export {
88
88
  INDEX_SLOT_CLASSIFICATIONS,
89
89
  type IndexSlotClass,
90
90
  type IndexSlotClassification,
91
+ type LibraryIndexSlotClassifications,
91
92
  libraryIndexBaseNotes,
93
+ parseLibraryIndexSlotClassifications,
92
94
  withIndexBaseNotes,
93
95
  withLibraryIndexBaseNotes,
94
96
  } from "./index-slot-classifications";
95
- export { LIBRARY_INDEX_SLOT_CLASSIFICATIONS } from "./library-index-slot-classifications";
96
97
  export {
97
98
  hasTopLevelUnion,
98
99
  luaMultiReturn,
@@ -131,6 +132,7 @@ export {
131
132
  type ModuleWrapOptions,
132
133
  type WrapOptions,
133
134
  wrapAsAmbientGlobal,
135
+ wrapAsGlobalTableModule,
134
136
  wrapAsModule,
135
137
  } from "./publish-dts";
136
138
  export {
@@ -45,6 +45,22 @@ export function wrapAsAmbientGlobal(opts: WrapOptions): string {
45
45
  return `/** @noSelfInFile */\n${importLine}declare global {\n${indented}\n}\n\nexport {};\n`;
46
46
  }
47
47
 
48
+ // The emitted namespace as an ambient `declare module "<namespace>"` tagged
49
+ // `@globalTable`, so an import lowers to a local alias of the global the
50
+ // extension registers. The description stays a separate JSDoc above the tag,
51
+ // since TypeScript reads tags from the last one. The body keeps the namespace's
52
+ // indentation, and engine handles resolve as ambient globals, as in
53
+ // `wrapAsModule`.
54
+ export function wrapAsGlobalTableModule(opts: WrapOptions): string {
55
+ const body = opts.emitted
56
+ .replace(
57
+ /(^|\n)declare\s+namespace\s+[\w$.]+\s*\{/,
58
+ (_match, lead) => `${lead}/** @globalTable */\ndeclare module "${opts.namespace}" {`,
59
+ )
60
+ .trimEnd();
61
+ return `/** @noSelfInFile */\n${body}\n`;
62
+ }
63
+
48
64
  export function wrapAsModule(opts: ModuleWrapOptions): string {
49
65
  // ambient-globals-only: the module form references engine handles (`Hash`,
50
66
  // `Vector3`, ...) as ambient globals and emits no top-level import. A top-level
package/src/script-api.ts CHANGED
@@ -22,18 +22,12 @@ export interface RefDocConstantElement {
22
22
  name: string;
23
23
  brief: string;
24
24
  description: string;
25
+ /** The scalar's declared `type:` tokens; an engine `CONSTANT` carries none. */
26
+ types: string[];
25
27
  }
26
28
 
27
29
  export type RefDocElement = RefDocFunctionElement | RefDocConstantElement;
28
30
 
29
- export interface ScriptApiOptions {
30
- // Also carry scalar members as CONSTANT elements and function `examples:` as
31
- // ref-doc examples HTML, and nested callback arguments, table fields and
32
- // optional flags on each slot. Off for the typing lanes, whose emitter and
33
- // frozen goldens only ever see flat functions without examples.
34
- complete?: boolean;
35
- }
36
-
37
31
  export interface RefDoc {
38
32
  info: { namespace: string; brief: string; description: string };
39
33
  elements: RefDocElement[];
@@ -47,6 +41,11 @@ function stringOr(value: unknown, fallback: string): string {
47
41
  return typeof value === "string" ? value : fallback;
48
42
  }
49
43
 
44
+ // A `.script_api` spells a slot that takes one of a set of named constants as
45
+ // `enum`; the core ref-doc token for the same meaning is `constant`, which the
46
+ // emitter expands to the constants the slot's doc names.
47
+ const TYPE_TOKEN_ALIASES: ReadonlyMap<string, string> = new Map([["enum", "constant"]]);
48
+
50
49
  // A `.script_api` `type:` may spell a union inline (`string | nil`), where the
51
50
  // core ref-doc format carries one token per alternative. Splitting here keeps the
52
51
  // downstream emitter and fidelity resolver working in single tokens. A `type:`
@@ -57,7 +56,8 @@ function splitTypeTokens(type: unknown): string[] {
57
56
  return type
58
57
  .split("|")
59
58
  .map((token) => token.trim())
60
- .filter((token) => token.length > 0);
59
+ .filter((token) => token.length > 0)
60
+ .map((token) => TYPE_TOKEN_ALIASES.get(token) ?? token);
61
61
  }
62
62
 
63
63
  // Upstream writes a slot list either as a YAML list or, for a lone slot, as a
@@ -79,13 +79,12 @@ function isFunctionName(name: string): boolean {
79
79
  return name !== "None" && FUNCTION_NAME.test(name);
80
80
  }
81
81
 
82
- function mapSlot(item: Record<string, unknown>, complete: boolean): RefDocParameter {
82
+ function mapSlot(item: Record<string, unknown>): RefDocParameter {
83
83
  const slot: RefDocParameter = {
84
84
  name: stringOr(item.name, "").replace(REQUIRED_SUFFIX, ""),
85
85
  doc: stringOr(item.desc, ""),
86
86
  types: splitTypeTokens(item.type),
87
87
  };
88
- if (!complete) return slot;
89
88
  // A callback lists its arguments under `parameters:` and a table its keys under
90
89
  // `fields:` or `members:`; the ref-doc format carries all as `fields`. A
91
90
  // callback's own `self` is kept, since the engine really passes it to the callback.
@@ -94,18 +93,18 @@ function mapSlot(item: Record<string, unknown>, complete: boolean): RefDocParame
94
93
  ...slotList(item.fields),
95
94
  ...slotList(item.members),
96
95
  ];
97
- if (nested.length > 0) slot.fields = nested.map((child) => mapSlot(child, complete));
96
+ if (nested.length > 0) slot.fields = nested.map(mapSlot);
98
97
  if (item.optional === true) slot.is_optional = "True";
99
98
  return slot;
100
99
  }
101
100
 
102
- function mapParameters(raw: unknown, complete: boolean): RefDocParameter[] {
101
+ function mapParameters(raw: unknown): RefDocParameter[] {
103
102
  const out: RefDocParameter[] = [];
104
103
  for (const item of slotList(raw)) {
105
104
  // The script_api lists the implicit `self` the engine passes; the emitter
106
105
  // stamps @noSelfInFile, so generated signatures must not declare it.
107
106
  if (stringOr(item.name, "") === "self") continue;
108
- out.push(mapSlot(item, complete));
107
+ out.push(mapSlot(item));
109
108
  }
110
109
  return out;
111
110
  }
@@ -153,22 +152,23 @@ function isScalar(member: Record<string, unknown>): boolean {
153
152
 
154
153
  /**
155
154
  * Convert a parsed Defold extension `.script_api` document into the core
156
- * ref-doc JSON object shape that `parseDefoldApiDoc` consumes. By default only
157
- * `type: function` members are carried; scalar members (constants) are
158
- * dropped, matching the core ref-doc pipeline where non-function elements
159
- * never reach the emitter. With `complete`, scalar members at the top level and
160
- * one table deep are also carried as CONSTANT elements, and each function's
161
- * `examples:` becomes `codehilite` examples HTML that keeps each fence's
162
- * language, and each slot's nested `parameters:`/`fields:` and `optional: true`
163
- * become ref-doc `fields` and `is_optional`, for the docs pages.
155
+ * ref-doc JSON object shape that `parseDefoldApiDoc` consumes. `type: function`
156
+ * members become FUNCTION elements; scalar members at the top level and one
157
+ * table deep become CONSTANT elements carrying their `type:` tokens, so a
158
+ * `type: string` scalar reaches the emitter as a string constant; each
159
+ * function's `examples:` becomes
160
+ * `codehilite` examples HTML that keeps each fence's language; and each slot's
161
+ * nested `parameters:`/`fields:` and `optional: true` become ref-doc `fields`
162
+ * and `is_optional`. The Libraries pages, the `script-api` lane, the extension
163
+ * goldens and `resolve` all read this one conversion.
164
164
  *
165
- * Upstream dialects are normalized in both modes: a function's slots are read
166
- * from the first present of `parameters:`, `params:` or `members:` and its
167
- * returns from `returns:` or `return:`, any slot list may be a single mapping,
168
- * a table slot's `members:` nest like `fields:`, a `(REQUIRED)` name suffix is
169
- * dropped, and a function named `None` or not a Lua identifier is skipped.
165
+ * Upstream dialects are normalized: a function's slots are read from the first
166
+ * present of `parameters:`, `params:` or `members:` and its returns from
167
+ * `returns:` or `return:`, any slot list may be a single mapping, a table slot's
168
+ * `members:` nest like `fields:`, a `(REQUIRED)` name suffix is dropped, and a
169
+ * function named `None` or not a Lua identifier is skipped.
170
170
  */
171
- export function scriptApiToRefDoc(parsed: unknown, options: ScriptApiOptions = {}): RefDoc {
171
+ export function scriptApiToRefDoc(parsed: unknown): RefDoc {
172
172
  if (!Array.isArray(parsed)) {
173
173
  throw new Error("scriptApiToRefDoc: expected a top-level YAML list");
174
174
  }
@@ -193,13 +193,10 @@ export function scriptApiToRefDoc(parsed: unknown, options: ScriptApiOptions = {
193
193
  type: "FUNCTION",
194
194
  name,
195
195
  description: stringOr(member.desc, ""),
196
- parameters: mapParameters(
197
- member.parameters ?? member.params ?? member.members,
198
- options.complete === true,
199
- ),
200
- returnvalues: mapParameters(member.returns ?? member.return, options.complete === true),
196
+ parameters: mapParameters(member.parameters ?? member.params ?? member.members),
197
+ returnvalues: mapParameters(member.returns ?? member.return),
201
198
  };
202
- const examples = options.complete ? examplesHtml(member.examples) : "";
199
+ const examples = examplesHtml(member.examples);
203
200
  if (examples !== "") element.examples = examples;
204
201
  return element;
205
202
  };
@@ -211,6 +208,7 @@ export function scriptApiToRefDoc(parsed: unknown, options: ScriptApiOptions = {
211
208
  name,
212
209
  brief: stringOr(member.desc, ""),
213
210
  description: stringOr(member.desc, ""),
211
+ types: splitTypeTokens(member.type),
214
212
  });
215
213
  for (const member of members) {
216
214
  if (!isRecord(member)) continue;
@@ -219,7 +217,7 @@ export function scriptApiToRefDoc(parsed: unknown, options: ScriptApiOptions = {
219
217
  elements.push(fnElement(`${namespace}.${stringOr(member.name, "")}`, member));
220
218
  continue;
221
219
  }
222
- if (options.complete && isScalar(member)) {
220
+ if (isScalar(member)) {
223
221
  elements.push(constantElement(`${namespace}.${stringOr(member.name, "")}`, member));
224
222
  continue;
225
223
  }
@@ -236,7 +234,7 @@ export function scriptApiToRefDoc(parsed: unknown, options: ScriptApiOptions = {
236
234
  if (subMember.type === "function") {
237
235
  if (isFunctionName(stringOr(subMember.name, "")))
238
236
  elements.push(fnElement(name, subMember));
239
- } else if (options.complete && isScalar(subMember)) {
237
+ } else if (isScalar(subMember)) {
240
238
  elements.push(constantElement(name, subMember));
241
239
  }
242
240
  }
@@ -249,6 +247,6 @@ export function scriptApiToRefDoc(parsed: unknown, options: ScriptApiOptions = {
249
247
  return doc;
250
248
  }
251
249
 
252
- export function parseScriptApi(yamlText: string, options: ScriptApiOptions = {}): RefDoc {
253
- return scriptApiToRefDoc(parse(yamlText), options);
250
+ export function parseScriptApi(yamlText: string): RefDoc {
251
+ return scriptApiToRefDoc(parse(yamlText));
254
252
  }
@@ -1,332 +0,0 @@
1
- import type { IndexSlotClassification } from "./index-slot-classifications";
2
-
3
- // The class records the base the library itself counts from, which TypeScript
4
- // passes through unchanged, exactly as `INDEX_SLOT_CLASSIFICATIONS` records
5
- // Defold's.
6
- type LibraryIndexSlotClassification = Pick<IndexSlotClassification, "class" | "evidence">;
7
-
8
- const RIVE_LIST_INDEX =
9
- "passes the index to rive::CommandQueue unchanged, which counts list entries from 0 (-1 appends)";
10
-
11
- const SPINE_GUI_TRACK_PROSE: Readonly<Record<string, string>> = {
12
- "gui.cancel_spine": "The track number to cancel (1-based)",
13
- "gui.get_spine_animation": "The track number to get animation from (1-based)",
14
- "gui.set_spine_cursor": "The track number to set cursor for (1-based)",
15
- "gui.get_spine_cursor": "The track number to get cursor from (1-based)",
16
- "gui.set_spine_playback_rate": "The track number to set playback rate for (1-based)",
17
- "gui.get_spine_playback_rate": "The track number to get playback rate from (1-based)",
18
- };
19
-
20
- // Keyed `<page>/<element>:<param|return|field>:<slot>[:<field>]`, `<page>` being
21
- // the library page key (`gooey`, `spine.gui`, `rive.cmd`), so a library slot
22
- // never shares a key with an engine one (`spine.gui` documents `gui.*`). A class
23
- // field is keyed `<page>/<Typedef>:field:<member>`, a callback argument as a
24
- // field of its callback slot, and each positional value of an unnamed
25
- // multi-value return as a field of that return (`cast:return::tile_x`). A
26
- // typedef method is keyed by its bare name, so one key covers every class of the
27
- // page that declares that method.
28
- // `docs-site/app/lib/library-index-slot-gate.test.ts` reds on a scanned slot
29
- // missing here and on an entry no library page declares.
30
- export const LIBRARY_INDEX_SLOT_CLASSIFICATIONS: ReadonlyMap<
31
- string,
32
- LibraryIndexSlotClassification
33
- > = new Map<string, LibraryIndexSlotClassification>([
34
- [
35
- "boom/z:param:index",
36
- { class: "not-a-position", evidence: "a draw order: a bigger z draws on top" },
37
- ],
38
- [
39
- "bridge/bridge.daily_rewards.get_current_day:param:on_success:day",
40
- {
41
- class: "native-0",
42
- evidence: "Returns the 0-based index of the reward the player is currently on",
43
- },
44
- ],
45
- [
46
- "crazygames/crazygames.list_friends:param:page",
47
- { class: "native-1", evidence: "Page number, starting at 1" },
48
- ],
49
- [
50
- "decore/system:field:index",
51
- {
52
- class: "native-1",
53
- evidence: "internal/ecs.lua:tiny_manageSystems sets systems[j].index = j",
54
- },
55
- ],
56
- [
57
- "druid/scroll_to_index:param:index",
58
- {
59
- class: "native-1",
60
- evidence:
61
- "scroll.lua:scroll_to_index clamps to 1 .. #points; data_list.lua:scroll_to_index hands it to grid:get_pos",
62
- },
63
- ],
64
- [
65
- "druid/get_pos:param:index",
66
- {
67
- class: "native-1",
68
- evidence: "static_grid.lua:get_pos places index 1 at row 0, column 0",
69
- },
70
- ],
71
- [
72
- "druid/get_index_xy:return:",
73
- {
74
- class: "native-1",
75
- evidence: "static_grid.lua:get_index_xy returns (col + 1) + row * in_row",
76
- },
77
- ],
78
- [
79
- "druid/get_index:return:",
80
- {
81
- class: "native-1",
82
- evidence: "static_grid.lua:get_index returns get_index_xy's index",
83
- },
84
- ],
85
- [
86
- "druid/get_index_by_node:return:",
87
- {
88
- class: "native-1",
89
- evidence: "static_grid.lua:get_index_by_node returns the node's key in the nodes array",
90
- },
91
- ],
92
- [
93
- "druid/add:param:index",
94
- {
95
- class: "native-1",
96
- evidence:
97
- "static_grid.lua:add and data_list.lua:add insert with helper.insert_with_shift, defaulting to the count + 1",
98
- },
99
- ],
100
- [
101
- "druid/remove:param:index",
102
- {
103
- class: "native-1",
104
- evidence:
105
- "static_grid.lua:remove and data_list.lua:remove call helper.remove_with_shift at index",
106
- },
107
- ],
108
- ...["druid/init:param:create_function", "druid/new_data_list:param:create_function"].map(
109
- (key): [string, LibraryIndexSlotClassification] => [
110
- key,
111
- {
112
- class: "not-a-position",
113
- evidence: "a callback; data_list.lua passes it the 1-based data index",
114
- },
115
- ],
116
- ),
117
- ...["cursor_index", "start_index", "end_index"].map(
118
- (slot): [string, LibraryIndexSlotClassification] => [
119
- `druid/select_cursor:param:${slot}`,
120
- {
121
- class: "native-0",
122
- evidence:
123
- "input.lua:select_cursor clamps to 0 .. utf8.len(value); 0 is before the first character",
124
- },
125
- ],
126
- ),
127
- ...["druid/druid_grid:field:first_index", "druid/druid_grid:field:last_index"].map(
128
- (key): [string, LibraryIndexSlotClassification] => [
129
- key,
130
- {
131
- class: "native-1",
132
- evidence:
133
- "static_grid.lua:_update_indexes takes the least and greatest key of the nodes array",
134
- },
135
- ],
136
- ),
137
- ...["druid/druid_data_list:field:top_index", "druid/druid_data_list:field:last_index"].map(
138
- (key): [string, LibraryIndexSlotClassification] => [
139
- key,
140
- { class: "native-1", evidence: "data_list.lua:init starts both at 1, the first data index" },
141
- ],
142
- ),
143
- [
144
- "druid/set_node_index:param:node",
145
- { class: "not-a-position", evidence: "the node to move; its prose reads `the index of`" },
146
- ],
147
- [
148
- "druid/set_node_index:param:index",
149
- {
150
- class: "native-1",
151
- evidence: "layout.lua:set_node_index calls table.insert(self.entities, index, node)",
152
- },
153
- ],
154
- [
155
- "event/is_subscribed:return:",
156
- {
157
- class: "not-a-position",
158
- evidence:
159
- "both unnamed returns share this key: a boolean, then the 1-based callback index (event.lua:is_subscribed); no note fits both",
160
- },
161
- ],
162
- [
163
- "gooey/set_focus:param:index",
164
- {
165
- class: "native-1",
166
- evidence:
167
- "gooey.lua:set_focus reads group.components[index]; focus moves over 1 .. #components",
168
- },
169
- ],
170
- [
171
- "imgui/imgui.set_mouse_button:param:index",
172
- {
173
- class: "native-0",
174
- evidence: "extension_imgui.cpp:imgui_SetMouseButton writes io.MouseDown[index]",
175
- },
176
- ],
177
- [
178
- "imgui/imgui.table_set_column_index:param:column_index",
179
- {
180
- class: "native-0",
181
- evidence:
182
- "extension_imgui.cpp:imgui_TableSetColumnIndex passes it to ImGui::TableSetColumnIndex unchanged",
183
- },
184
- ],
185
- ...["imgui.set_style_color", "imgui.push_style_color"].map(
186
- (fn): [string, LibraryIndexSlotClassification] => [
187
- `imgui/${fn}:param:color_index`,
188
- { class: "not-a-position", evidence: "an `imgui.ImGuiCol_*` constant" },
189
- ],
190
- ),
191
- ...[
192
- "imgui/imgui.font_add_ttf_file:return:font_index",
193
- "imgui/imgui.font_add_ttf_data:return:font_index",
194
- "imgui/imgui.font_push:param:font_index",
195
- ].map((key): [string, LibraryIndexSlotClassification] => [
196
- key,
197
- {
198
- class: "native-0",
199
- evidence:
200
- "extension_imgui.cpp:imgui_StoreFont returns Size() - 1, and imgui_GetFont accepts 0 .. Size() - 1",
201
- },
202
- ]),
203
- ...[
204
- "node_repeat/NodeRepeatAnimation:field:current_frame",
205
- "sprite_repeat/SpriteRepeatAnimation:field:current_frame",
206
- ].map((key): [string, LibraryIndexSlotClassification] => [
207
- key,
208
- { class: "native-1", evidence: "The 1-based index of the frame shown next" },
209
- ]),
210
- [
211
- "narrator/choose:param:index",
212
- { class: "native-1", evidence: "story.lua:choose asserts index within 1 .. #choices" },
213
- ],
214
- [
215
- "panthera/panthera_animation:field:animation_keys_index",
216
- {
217
- class: "native-1",
218
- evidence: "panthera.lua:update_animation walks keys from animation_keys_index to #keys",
219
- },
220
- ],
221
- ...[
222
- ["referenceListViewModelInstance", "index"],
223
- ["insertViewModelInstanceListViewModel", "index"],
224
- ["swapViewModelInstanceListValues", "indexa"],
225
- ["swapViewModelInstanceListValues", "indexb"],
226
- ["removeViewModelInstanceListViewModelIndex", "index"],
227
- ].map(([fn, slot]): [string, LibraryIndexSlotClassification] => [
228
- `rive.cmd/rive.cmd.${fn}:param:${slot}`,
229
- { class: "native-0", evidence: `script_rive_cmd.cpp:Script_${fn} ${RIVE_LIST_INDEX}` },
230
- ]),
231
- ...[
232
- "get_bundle_list",
233
- "get_bundle_list_in_group",
234
- "get_games_list",
235
- "get_games_group",
236
- "get_game_keys_group",
237
- "get_user_games",
238
- "get_virtual_items",
239
- "get_virtual_currency",
240
- "get_virtual_currency_package",
241
- "get_virtual_items_group",
242
- "get_sellable_items",
243
- "get_sellable_items_group",
244
- "get_reward_chains_list",
245
- ].map((fn): [string, LibraryIndexSlotClassification] => [
246
- `shop/shop.${fn}:param:offset`,
247
- { class: "native-0", evidence: "the count starts from 0" },
248
- ]),
249
- [
250
- "spine/spine.play_anim:param:options:track",
251
- {
252
- class: "native-1",
253
- evidence: "script_spine.cpp defaults track to 1; comp_spine_model.cpp plays on m_Track - 1",
254
- },
255
- ],
256
- [
257
- "spine/spine.cancel:param:options:track",
258
- { class: "native-1", evidence: "comp_spine_model.cpp cancels on m_Track - 1" },
259
- ],
260
- [
261
- "spine/spine.play_anim:param:callback_function:message:track",
262
- { class: "native-1", evidence: "comp_spine_model.cpp sends entry->trackIndex + 1" },
263
- ],
264
- [
265
- "spine.gui/gui.play_spine_anim:param:play_properties:track",
266
- { class: "native-1", evidence: "The track number for the animation (1-based)" },
267
- ],
268
- [
269
- "spine.gui/gui.play_spine_anim:param:callback_function:message:track",
270
- { class: "native-1", evidence: "gui_node_spine.cpp sends entry->trackIndex + 1" },
271
- ],
272
- ...Object.entries(SPINE_GUI_TRACK_PROSE).map(
273
- ([fn, evidence]): [string, LibraryIndexSlotClassification] => [
274
- `spine.gui/${fn}:param:options:track`,
275
- { class: "native-1", evidence },
276
- ],
277
- ),
278
- [
279
- "steam/steam.friends_get_friend_by_index:param:iFriend",
280
- { class: "native-0", evidence: "Is a index of range [0, GetFriendCount())" },
281
- ],
282
- [
283
- "steam/steam.matchmaking_get_lobby_by_index:param:index",
284
- { class: "native-0", evidence: "from 0 to LobbyMatchList_t.m_nLobbiesMatching" },
285
- ],
286
- ...[
287
- ["matchmaking_get_lobby_member_by_index", "steam_matchmaking.cpp", "GetLobbyMemberByIndex"],
288
- ["matchmaking_get_lobby_data_by_index", "steam_matchmaking.cpp", "GetLobbyDataByIndex"],
289
- [
290
- "user_stats_get_downloaded_leaderboard_entry",
291
- "steam_userstats.cpp",
292
- "GetDownloadedLeaderboardEntry",
293
- ],
294
- ].map(([fn, file, call]): [string, LibraryIndexSlotClassification] => [
295
- `steam/steam.${fn}:param:index`,
296
- { class: "native-0", evidence: `${file} passes it to Steamworks ${call}, which counts from 0` },
297
- ]),
298
- [
299
- "steam/steam.user_stats_get_achievement_name:param:index",
300
- { class: "native-0", evidence: "Get achievement name iAchievement in [0,GetNumAchievements)" },
301
- ],
302
- [
303
- "steam/steam.matchmaking_get_lobby_chat_entry:param:index",
304
- { class: "not-a-position", evidence: "the `m_iChatID` a `LobbyChatMsg_t` callback carries" },
305
- ],
306
- [
307
- "tile_raycast/cast:return:",
308
- {
309
- class: "not-a-position",
310
- evidence:
311
- "a tuple: `hit`, `tile_id`, `intersection_x`, `intersection_y` and `side` address nothing by position; `tile_x`, `tile_y` and `array_id` are keyed on their own",
312
- },
313
- ],
314
- ...(["tile_x", "tile_y"] as const).map((value): [string, LibraryIndexSlotClassification] => [
315
- `tile_raycast/cast:return::${value}`,
316
- {
317
- class: "native-1",
318
- evidence:
319
- "Tile coordinates and array indices are 1-based; set_at/get_at subtract 1 from them (tileraycast.cpp)",
320
- },
321
- ]),
322
- [
323
- "tile_raycast/cast:return::array_id",
324
- { class: "native-1", evidence: "Tile coordinates and array indices are 1-based" },
325
- ],
326
- ...(["set_at", "get_at"] as const).flatMap((fn) =>
327
- (["tile_x", "tile_y"] as const).map((slot): [string, LibraryIndexSlotClassification] => [
328
- `tile_raycast/${fn}:param:${slot}`,
329
- { class: "native-1", evidence: "tileraycast.cpp subtracts 1 from the checked coordinate" },
330
- ]),
331
- ),
332
- ]);