@defold-typescript/types 0.40.0 → 0.41.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 (224) hide show
  1. package/api-availability.json +3963 -772
  2. package/api-migrations.json +27 -0
  3. package/api-signatures.json +18069 -10240
  4. package/api-targets.json +448 -11
  5. package/examples/translations.json +560 -89
  6. package/fixtures/messages_doc.json +96 -0
  7. package/generated/b2d.d.ts +680 -4
  8. package/generated/b2d_body.d.ts +29 -103
  9. package/generated/b2d_chain.d.ts +5 -6
  10. package/generated/b2d_fixture.d.ts +34 -38
  11. package/generated/b2d_joint.d.ts +503 -25
  12. package/generated/b2d_shape.d.ts +183 -20
  13. package/generated/b2d_world.d.ts +57 -63
  14. package/generated/buffer.d.ts +16 -15
  15. package/generated/builtin-messages.d.ts +7 -1
  16. package/generated/bullet3d.d.ts +91 -0
  17. package/generated/bullet3d_collision_object.d.ts +433 -0
  18. package/generated/bullet3d_constraint.d.ts +818 -0
  19. package/generated/bullet3d_rigid_body.d.ts +429 -0
  20. package/generated/bullet3d_shape.d.ts +123 -0
  21. package/generated/bullet3d_world.d.ts +492 -0
  22. package/generated/camera.d.ts +29 -32
  23. package/generated/collectionfactory.d.ts +15 -18
  24. package/generated/collectionproxy.d.ts +22 -6
  25. package/generated/compute.d.ts +12 -238
  26. package/generated/crash.d.ts +24 -10
  27. package/generated/editor-vm/http.d.ts +90 -7
  28. package/generated/editor-vm/image.d.ts +7 -7
  29. package/generated/editor-vm/json.d.ts +11 -0
  30. package/generated/editor-vm/localization.d.ts +7 -7
  31. package/generated/editor-vm/tilemap_tiles.d.ts +56 -10
  32. package/generated/editor-vm/zip.d.ts +28 -0
  33. package/generated/editor.d.ts +1496 -430
  34. package/generated/factory.d.ts +21 -25
  35. package/generated/font.d.ts +64 -22
  36. package/generated/go.d.ts +235 -182
  37. package/generated/graphics.d.ts +335 -97
  38. package/generated/gui.d.ts +240 -471
  39. package/generated/html5.d.ts +2 -2
  40. package/generated/http.d.ts +28 -35
  41. package/generated/image.d.ts +105 -72
  42. package/generated/json.d.ts +34 -16
  43. package/generated/kinds/gui-script.d.ts +7 -0
  44. package/generated/kinds/render-script.d.ts +7 -0
  45. package/generated/kinds/script.d.ts +7 -0
  46. package/generated/label.d.ts +77 -7
  47. package/generated/liveupdate.d.ts +13 -10
  48. package/generated/material.d.ts +312 -360
  49. package/generated/model.d.ts +40 -39
  50. package/generated/particlefx.d.ts +19 -28
  51. package/generated/physics.d.ts +365 -133
  52. package/generated/profiler.d.ts +13 -23
  53. package/generated/render.d.ts +237 -297
  54. package/generated/resource.d.ts +664 -583
  55. package/generated/socket.d.ts +120 -133
  56. package/generated/sound.d.ts +62 -31
  57. package/generated/sprite.d.ts +31 -17
  58. package/generated/sys.d.ts +234 -190
  59. package/generated/tilemap.d.ts +21 -16
  60. package/generated/timer.d.ts +34 -21
  61. package/generated/versions/defold-1.12.4/b2d_body.d.ts +0 -7
  62. package/generated/versions/defold-1.12.4/buffer.d.ts +1 -3
  63. package/generated/versions/defold-1.12.4/camera.d.ts +21 -21
  64. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +9 -9
  65. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +2 -2
  66. package/generated/versions/defold-1.12.4/crash.d.ts +2 -2
  67. package/generated/versions/defold-1.12.4/factory.d.ts +15 -16
  68. package/generated/versions/defold-1.12.4/go.d.ts +6 -12
  69. package/generated/versions/defold-1.12.4/gui.d.ts +77 -175
  70. package/generated/versions/defold-1.12.4/html5.d.ts +1 -1
  71. package/generated/versions/defold-1.12.4/http.d.ts +0 -13
  72. package/generated/versions/defold-1.12.4/image.d.ts +16 -33
  73. package/generated/versions/defold-1.12.4/index.d.ts +1 -0
  74. package/generated/versions/defold-1.12.4/json.d.ts +10 -6
  75. package/generated/versions/defold-1.12.4/label.d.ts +2 -3
  76. package/generated/versions/defold-1.12.4/liveupdate.d.ts +5 -3
  77. package/generated/versions/defold-1.12.4/model.d.ts +2 -10
  78. package/generated/versions/defold-1.12.4/particlefx.d.ts +2 -5
  79. package/generated/versions/defold-1.12.4/physics.d.ts +69 -67
  80. package/generated/versions/defold-1.12.4/profiler.d.ts +2 -5
  81. package/generated/versions/defold-1.12.4/render.d.ts +99 -128
  82. package/generated/versions/defold-1.12.4/resource.d.ts +120 -148
  83. package/generated/versions/defold-1.12.4/socket.d.ts +34 -60
  84. package/generated/versions/defold-1.12.4/sound.d.ts +8 -8
  85. package/generated/versions/defold-1.12.4/sprite.d.ts +15 -5
  86. package/generated/versions/defold-1.12.4/sys.d.ts +37 -71
  87. package/generated/versions/defold-1.12.4/tilemap.d.ts +18 -11
  88. package/generated/versions/defold-1.12.4/timer.d.ts +5 -3
  89. package/generated/versions/defold-1.12.4/vmath.d.ts +0 -21
  90. package/generated/versions/defold-1.12.4/window.d.ts +1 -16
  91. package/generated/versions/defold-1.13.0/b2d_body.d.ts +10 -55
  92. package/generated/versions/defold-1.13.0/b2d_fixture.d.ts +25 -25
  93. package/generated/versions/defold-1.13.0/b2d_shape.d.ts +169 -8
  94. package/generated/versions/defold-1.13.0/b2d_world.d.ts +16 -10
  95. package/generated/versions/defold-1.13.0/buffer.d.ts +1 -3
  96. package/generated/versions/defold-1.13.0/camera.d.ts +25 -25
  97. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +9 -9
  98. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +2 -2
  99. package/generated/versions/defold-1.13.0/compute.d.ts +0 -69
  100. package/generated/versions/defold-1.13.0/crash.d.ts +2 -2
  101. package/generated/versions/defold-1.13.0/editor-vm/tilemap_tiles.d.ts +3 -3
  102. package/generated/versions/defold-1.13.0/editor.d.ts +34 -24
  103. package/generated/versions/defold-1.13.0/factory.d.ts +15 -16
  104. package/generated/versions/defold-1.13.0/go.d.ts +6 -12
  105. package/generated/versions/defold-1.13.0/graphics.d.ts +73 -37
  106. package/generated/versions/defold-1.13.0/gui.d.ts +77 -175
  107. package/generated/versions/defold-1.13.0/html5.d.ts +1 -1
  108. package/generated/versions/defold-1.13.0/http.d.ts +0 -13
  109. package/generated/versions/defold-1.13.0/image.d.ts +16 -33
  110. package/generated/versions/defold-1.13.0/index.d.ts +1 -0
  111. package/generated/versions/defold-1.13.0/json.d.ts +10 -6
  112. package/generated/versions/defold-1.13.0/label.d.ts +2 -3
  113. package/generated/versions/defold-1.13.0/liveupdate.d.ts +7 -5
  114. package/generated/versions/defold-1.13.0/material.d.ts +68 -106
  115. package/generated/versions/defold-1.13.0/model.d.ts +2 -10
  116. package/generated/versions/defold-1.13.0/particlefx.d.ts +2 -5
  117. package/generated/versions/defold-1.13.0/physics.d.ts +69 -67
  118. package/generated/versions/defold-1.13.0/profiler.d.ts +2 -5
  119. package/generated/versions/defold-1.13.0/render.d.ts +99 -128
  120. package/generated/versions/defold-1.13.0/resource.d.ts +126 -150
  121. package/generated/versions/defold-1.13.0/socket.d.ts +34 -60
  122. package/generated/versions/defold-1.13.0/sound.d.ts +8 -8
  123. package/generated/versions/defold-1.13.0/sprite.d.ts +15 -5
  124. package/generated/versions/defold-1.13.0/sys.d.ts +37 -71
  125. package/generated/versions/defold-1.13.0/tilemap.d.ts +18 -11
  126. package/generated/versions/defold-1.13.0/timer.d.ts +5 -3
  127. package/generated/versions/defold-1.13.0/vmath.d.ts +0 -21
  128. package/generated/versions/defold-1.13.0/window.d.ts +1 -16
  129. package/generated/versions/defold-1.13.1/b2d.d.ts +33 -0
  130. package/generated/versions/defold-1.13.1/b2d_body.d.ts +636 -0
  131. package/generated/versions/defold-1.13.1/b2d_chain.d.ts +106 -0
  132. package/generated/versions/defold-1.13.1/b2d_fixture.d.ts +157 -0
  133. package/generated/versions/defold-1.13.1/b2d_joint.d.ts +823 -0
  134. package/generated/versions/defold-1.13.1/b2d_shape.d.ts +400 -0
  135. package/generated/versions/defold-1.13.1/b2d_world.d.ts +320 -0
  136. package/generated/versions/defold-1.13.1/buffer.d.ts +189 -0
  137. package/generated/versions/defold-1.13.1/camera.d.ts +303 -0
  138. package/generated/versions/defold-1.13.1/collectionfactory.d.ts +151 -0
  139. package/generated/versions/defold-1.13.1/collectionproxy.d.ts +93 -0
  140. package/generated/versions/defold-1.13.1/compute.d.ts +237 -0
  141. package/generated/versions/defold-1.13.1/crash.d.ts +143 -0
  142. package/generated/versions/defold-1.13.1/editor-vm/http.d.ts +56 -0
  143. package/generated/versions/defold-1.13.1/editor-vm/image.d.ts +48 -0
  144. package/generated/versions/defold-1.13.1/editor-vm/json.d.ts +10 -0
  145. package/generated/versions/defold-1.13.1/editor-vm/localization.d.ts +42 -0
  146. package/generated/versions/defold-1.13.1/editor-vm/tilemap_tiles.d.ts +80 -0
  147. package/generated/versions/defold-1.13.1/editor-vm/zip.d.ts +10 -0
  148. package/generated/versions/defold-1.13.1/editor-vm/zlib.d.ts +24 -0
  149. package/generated/versions/defold-1.13.1/editor.d.ts +1121 -0
  150. package/generated/versions/defold-1.13.1/factory.d.ts +124 -0
  151. package/generated/versions/defold-1.13.1/font.d.ts +81 -0
  152. package/generated/versions/defold-1.13.1/go.d.ts +1107 -0
  153. package/generated/versions/defold-1.13.1/graphics.d.ts +411 -0
  154. package/generated/versions/defold-1.13.1/gui.d.ts +2353 -0
  155. package/generated/versions/defold-1.13.1/html5.d.ts +55 -0
  156. package/generated/versions/defold-1.13.1/http.d.ts +77 -0
  157. package/generated/versions/defold-1.13.1/image.d.ts +131 -0
  158. package/generated/versions/defold-1.13.1/index.d.ts +57 -0
  159. package/generated/versions/defold-1.13.1/json.d.ts +80 -0
  160. package/generated/versions/defold-1.13.1/kinds/editor-script.d.ts +14 -0
  161. package/generated/versions/defold-1.13.1/label.d.ts +93 -0
  162. package/generated/versions/defold-1.13.1/liveupdate.d.ts +142 -0
  163. package/generated/versions/defold-1.13.1/material.d.ts +408 -0
  164. package/generated/versions/defold-1.13.1/model.d.ts +272 -0
  165. package/generated/versions/defold-1.13.1/msg.d.ts +10 -0
  166. package/generated/versions/defold-1.13.1/particlefx.d.ts +163 -0
  167. package/generated/versions/defold-1.13.1/physics.d.ts +559 -0
  168. package/generated/versions/defold-1.13.1/profiler.d.ts +235 -0
  169. package/generated/versions/defold-1.13.1/render.d.ts +1190 -0
  170. package/generated/versions/defold-1.13.1/resource.d.ts +1523 -0
  171. package/generated/versions/defold-1.13.1/socket.d.ts +784 -0
  172. package/generated/versions/defold-1.13.1/sound.d.ts +292 -0
  173. package/generated/versions/defold-1.13.1/sprite.d.ts +175 -0
  174. package/generated/versions/defold-1.13.1/sys.d.ts +678 -0
  175. package/generated/versions/defold-1.13.1/tilemap.d.ts +208 -0
  176. package/generated/versions/defold-1.13.1/timer.d.ts +125 -0
  177. package/generated/versions/defold-1.13.1/types.d.ts +61 -0
  178. package/generated/versions/defold-1.13.1/vmath.d.ts +774 -0
  179. package/generated/versions/defold-1.13.1/window.d.ts +183 -0
  180. package/generated/versions/defold-1.13.1/zlib.d.ts +41 -0
  181. package/generated/vmath.d.ts +1 -21
  182. package/generated/window.d.ts +71 -71
  183. package/identity-vocabulary.json +561 -0
  184. package/index.d.ts +7 -0
  185. package/package.json +13 -2
  186. package/scripts/example-store-io.ts +12 -1
  187. package/scripts/extension-goldens.ts +1 -0
  188. package/scripts/fidelity-baseline.json +146 -46
  189. package/scripts/generate-api-availability.ts +90 -12
  190. package/scripts/generate-api-signatures.ts +12 -2
  191. package/scripts/import-defold-release.ts +85 -24
  192. package/scripts/prose-constants.ts +77 -16
  193. package/scripts/regen.ts +391 -77
  194. package/scripts/shared-handle-methods.ts +53 -0
  195. package/scripts/signature-store-fs.ts +1 -0
  196. package/scripts/sync-api-docs.ts +16 -5
  197. package/src/api-availability.ts +0 -0
  198. package/src/api-doc.ts +201 -3
  199. package/src/api-identity.ts +252 -0
  200. package/src/core-types.ts +26 -3
  201. package/src/correction-pins.ts +49 -0
  202. package/src/doc-comment.ts +104 -11
  203. package/src/doc-corrections.ts +108 -0
  204. package/src/editor-vm-globals.d.ts +5 -2
  205. package/src/emit-dts.ts +2064 -281
  206. package/src/emit-messages.ts +52 -0
  207. package/src/example-store.ts +125 -14
  208. package/src/field-correction-coverage.ts +204 -0
  209. package/src/fnv1a.ts +16 -0
  210. package/src/go-overloads.d.ts +25 -6
  211. package/src/index-base-table.ts +145 -0
  212. package/src/index-slot-classifications.ts +588 -0
  213. package/src/index.ts +38 -5
  214. package/src/library-index-slot-classifications.ts +332 -0
  215. package/src/lifecycle.ts +61 -199
  216. package/src/luals-type-expr.ts +354 -0
  217. package/src/msg-overloads.d.ts +0 -1
  218. package/src/param-correction-provenance.ts +8 -11
  219. package/src/render-overloads.d.ts +0 -15
  220. package/src/return-correction-provenance.ts +58 -16
  221. package/src/sys-overloads.d.ts +48 -0
  222. package/src/vmath-overloads.d.ts +27 -1
  223. package/src/window-event-guard.d.ts +6 -9
  224. package/url-parameters.json +1 -2
@@ -5,7 +5,8 @@
5
5
  "recordTables": 0,
6
6
  "multiReturn": 0,
7
7
  "droppedMembers": 0,
8
- "optionalAsRequired": 0
8
+ "optionalAsRequired": 0,
9
+ "bindingOpen": 0
9
10
  },
10
11
  "b2d.body": {
11
12
  "droppedElements": 0,
@@ -13,7 +14,8 @@
13
14
  "recordTables": 0,
14
15
  "multiReturn": 0,
15
16
  "droppedMembers": 0,
16
- "optionalAsRequired": 0
17
+ "optionalAsRequired": 0,
18
+ "bindingOpen": 0
17
19
  },
18
20
  "b2d.chain": {
19
21
  "droppedElements": 0,
@@ -21,7 +23,8 @@
21
23
  "recordTables": 0,
22
24
  "multiReturn": 0,
23
25
  "droppedMembers": 0,
24
- "optionalAsRequired": 0
26
+ "optionalAsRequired": 0,
27
+ "bindingOpen": 0
25
28
  },
26
29
  "b2d.fixture": {
27
30
  "droppedElements": 0,
@@ -29,7 +32,8 @@
29
32
  "recordTables": 0,
30
33
  "multiReturn": 0,
31
34
  "droppedMembers": 0,
32
- "optionalAsRequired": 0
35
+ "optionalAsRequired": 0,
36
+ "bindingOpen": 0
33
37
  },
34
38
  "b2d.joint": {
35
39
  "droppedElements": 0,
@@ -37,7 +41,8 @@
37
41
  "recordTables": 0,
38
42
  "multiReturn": 0,
39
43
  "droppedMembers": 0,
40
- "optionalAsRequired": 0
44
+ "optionalAsRequired": 0,
45
+ "bindingOpen": 0
41
46
  },
42
47
  "b2d.shape": {
43
48
  "droppedElements": 0,
@@ -45,7 +50,8 @@
45
50
  "recordTables": 0,
46
51
  "multiReturn": 0,
47
52
  "droppedMembers": 0,
48
- "optionalAsRequired": 0
53
+ "optionalAsRequired": 0,
54
+ "bindingOpen": 0
49
55
  },
50
56
  "b2d.world": {
51
57
  "droppedElements": 0,
@@ -53,7 +59,8 @@
53
59
  "recordTables": 0,
54
60
  "multiReturn": 0,
55
61
  "droppedMembers": 0,
56
- "optionalAsRequired": 0
62
+ "optionalAsRequired": 0,
63
+ "bindingOpen": 0
57
64
  },
58
65
  "buffer": {
59
66
  "droppedElements": 0,
@@ -61,7 +68,62 @@
61
68
  "recordTables": 0,
62
69
  "multiReturn": 0,
63
70
  "droppedMembers": 0,
64
- "optionalAsRequired": 0
71
+ "optionalAsRequired": 0,
72
+ "bindingOpen": 0
73
+ },
74
+ "bullet3d": {
75
+ "droppedElements": 0,
76
+ "unknownTokens": [],
77
+ "recordTables": 0,
78
+ "multiReturn": 0,
79
+ "droppedMembers": 0,
80
+ "optionalAsRequired": 0,
81
+ "bindingOpen": 0
82
+ },
83
+ "bullet3d.collision_object": {
84
+ "droppedElements": 0,
85
+ "unknownTokens": [],
86
+ "recordTables": 0,
87
+ "multiReturn": 0,
88
+ "droppedMembers": 0,
89
+ "optionalAsRequired": 0,
90
+ "bindingOpen": 0
91
+ },
92
+ "bullet3d.constraint": {
93
+ "droppedElements": 0,
94
+ "unknownTokens": [],
95
+ "recordTables": 0,
96
+ "multiReturn": 0,
97
+ "droppedMembers": 0,
98
+ "optionalAsRequired": 0,
99
+ "bindingOpen": 0
100
+ },
101
+ "bullet3d.rigid_body": {
102
+ "droppedElements": 0,
103
+ "unknownTokens": [],
104
+ "recordTables": 0,
105
+ "multiReturn": 0,
106
+ "droppedMembers": 0,
107
+ "optionalAsRequired": 0,
108
+ "bindingOpen": 0
109
+ },
110
+ "bullet3d.shape": {
111
+ "droppedElements": 0,
112
+ "unknownTokens": [],
113
+ "recordTables": 0,
114
+ "multiReturn": 0,
115
+ "droppedMembers": 0,
116
+ "optionalAsRequired": 0,
117
+ "bindingOpen": 0
118
+ },
119
+ "bullet3d.world": {
120
+ "droppedElements": 0,
121
+ "unknownTokens": [],
122
+ "recordTables": 0,
123
+ "multiReturn": 0,
124
+ "droppedMembers": 0,
125
+ "optionalAsRequired": 0,
126
+ "bindingOpen": 0
65
127
  },
66
128
  "camera": {
67
129
  "droppedElements": 0,
@@ -69,7 +131,8 @@
69
131
  "recordTables": 0,
70
132
  "multiReturn": 0,
71
133
  "droppedMembers": 0,
72
- "optionalAsRequired": 0
134
+ "optionalAsRequired": 0,
135
+ "bindingOpen": 0
73
136
  },
74
137
  "collectionfactory": {
75
138
  "droppedElements": 0,
@@ -77,7 +140,8 @@
77
140
  "recordTables": 0,
78
141
  "multiReturn": 0,
79
142
  "droppedMembers": 0,
80
- "optionalAsRequired": 0
143
+ "optionalAsRequired": 0,
144
+ "bindingOpen": 0
81
145
  },
82
146
  "collectionproxy": {
83
147
  "droppedElements": 0,
@@ -85,7 +149,8 @@
85
149
  "recordTables": 0,
86
150
  "multiReturn": 0,
87
151
  "droppedMembers": 0,
88
- "optionalAsRequired": 0
152
+ "optionalAsRequired": 0,
153
+ "bindingOpen": 0
89
154
  },
90
155
  "compute": {
91
156
  "droppedElements": 0,
@@ -93,7 +158,8 @@
93
158
  "recordTables": 0,
94
159
  "multiReturn": 0,
95
160
  "droppedMembers": 0,
96
- "optionalAsRequired": 0
161
+ "optionalAsRequired": 0,
162
+ "bindingOpen": 0
97
163
  },
98
164
  "crash": {
99
165
  "droppedElements": 0,
@@ -101,7 +167,8 @@
101
167
  "recordTables": 0,
102
168
  "multiReturn": 0,
103
169
  "droppedMembers": 0,
104
- "optionalAsRequired": 0
170
+ "optionalAsRequired": 0,
171
+ "bindingOpen": 0
105
172
  },
106
173
  "factory": {
107
174
  "droppedElements": 0,
@@ -109,7 +176,8 @@
109
176
  "recordTables": 0,
110
177
  "multiReturn": 0,
111
178
  "droppedMembers": 0,
112
- "optionalAsRequired": 0
179
+ "optionalAsRequired": 0,
180
+ "bindingOpen": 0
113
181
  },
114
182
  "font": {
115
183
  "droppedElements": 0,
@@ -117,7 +185,8 @@
117
185
  "recordTables": 0,
118
186
  "multiReturn": 0,
119
187
  "droppedMembers": 0,
120
- "optionalAsRequired": 0
188
+ "optionalAsRequired": 0,
189
+ "bindingOpen": 0
121
190
  },
122
191
  "go": {
123
192
  "droppedElements": 0,
@@ -125,7 +194,8 @@
125
194
  "recordTables": 0,
126
195
  "multiReturn": 0,
127
196
  "droppedMembers": 0,
128
- "optionalAsRequired": 0
197
+ "optionalAsRequired": 0,
198
+ "bindingOpen": 0
129
199
  },
130
200
  "graphics": {
131
201
  "droppedElements": 0,
@@ -133,7 +203,8 @@
133
203
  "recordTables": 0,
134
204
  "multiReturn": 0,
135
205
  "droppedMembers": 0,
136
- "optionalAsRequired": 0
206
+ "optionalAsRequired": 0,
207
+ "bindingOpen": 0
137
208
  },
138
209
  "gui": {
139
210
  "droppedElements": 0,
@@ -141,7 +212,8 @@
141
212
  "recordTables": 0,
142
213
  "multiReturn": 0,
143
214
  "droppedMembers": 0,
144
- "optionalAsRequired": 0
215
+ "optionalAsRequired": 0,
216
+ "bindingOpen": 0
145
217
  },
146
218
  "html5": {
147
219
  "droppedElements": 0,
@@ -149,7 +221,8 @@
149
221
  "recordTables": 0,
150
222
  "multiReturn": 0,
151
223
  "droppedMembers": 0,
152
- "optionalAsRequired": 0
224
+ "optionalAsRequired": 0,
225
+ "bindingOpen": 0
153
226
  },
154
227
  "http": {
155
228
  "droppedElements": 0,
@@ -157,7 +230,8 @@
157
230
  "recordTables": 0,
158
231
  "multiReturn": 0,
159
232
  "droppedMembers": 0,
160
- "optionalAsRequired": 0
233
+ "optionalAsRequired": 0,
234
+ "bindingOpen": 0
161
235
  },
162
236
  "iac": {
163
237
  "droppedElements": 0,
@@ -165,7 +239,8 @@
165
239
  "recordTables": 0,
166
240
  "multiReturn": 0,
167
241
  "droppedMembers": 0,
168
- "optionalAsRequired": 0
242
+ "optionalAsRequired": 0,
243
+ "bindingOpen": 0
169
244
  },
170
245
  "iap": {
171
246
  "droppedElements": 0,
@@ -173,7 +248,8 @@
173
248
  "recordTables": 0,
174
249
  "multiReturn": 0,
175
250
  "droppedMembers": 0,
176
- "optionalAsRequired": 0
251
+ "optionalAsRequired": 0,
252
+ "bindingOpen": 0
177
253
  },
178
254
  "image": {
179
255
  "droppedElements": 0,
@@ -181,7 +257,8 @@
181
257
  "recordTables": 0,
182
258
  "multiReturn": 0,
183
259
  "droppedMembers": 0,
184
- "optionalAsRequired": 0
260
+ "optionalAsRequired": 0,
261
+ "bindingOpen": 0
185
262
  },
186
263
  "json": {
187
264
  "droppedElements": 0,
@@ -189,7 +266,8 @@
189
266
  "recordTables": 0,
190
267
  "multiReturn": 0,
191
268
  "droppedMembers": 0,
192
- "optionalAsRequired": 0
269
+ "optionalAsRequired": 0,
270
+ "bindingOpen": 0
193
271
  },
194
272
  "label": {
195
273
  "droppedElements": 0,
@@ -197,7 +275,8 @@
197
275
  "recordTables": 0,
198
276
  "multiReturn": 0,
199
277
  "droppedMembers": 0,
200
- "optionalAsRequired": 0
278
+ "optionalAsRequired": 0,
279
+ "bindingOpen": 0
201
280
  },
202
281
  "liveupdate": {
203
282
  "droppedElements": 0,
@@ -205,7 +284,8 @@
205
284
  "recordTables": 0,
206
285
  "multiReturn": 0,
207
286
  "droppedMembers": 0,
208
- "optionalAsRequired": 0
287
+ "optionalAsRequired": 0,
288
+ "bindingOpen": 0
209
289
  },
210
290
  "material": {
211
291
  "droppedElements": 0,
@@ -213,7 +293,8 @@
213
293
  "recordTables": 0,
214
294
  "multiReturn": 0,
215
295
  "droppedMembers": 0,
216
- "optionalAsRequired": 0
296
+ "optionalAsRequired": 0,
297
+ "bindingOpen": 0
217
298
  },
218
299
  "model": {
219
300
  "droppedElements": 0,
@@ -221,7 +302,8 @@
221
302
  "recordTables": 0,
222
303
  "multiReturn": 0,
223
304
  "droppedMembers": 0,
224
- "optionalAsRequired": 0
305
+ "optionalAsRequired": 0,
306
+ "bindingOpen": 0
225
307
  },
226
308
  "msg": {
227
309
  "droppedElements": 0,
@@ -229,7 +311,8 @@
229
311
  "recordTables": 0,
230
312
  "multiReturn": 0,
231
313
  "droppedMembers": 0,
232
- "optionalAsRequired": 0
314
+ "optionalAsRequired": 0,
315
+ "bindingOpen": 0
233
316
  },
234
317
  "particlefx": {
235
318
  "droppedElements": 0,
@@ -237,7 +320,8 @@
237
320
  "recordTables": 0,
238
321
  "multiReturn": 0,
239
322
  "droppedMembers": 0,
240
- "optionalAsRequired": 0
323
+ "optionalAsRequired": 0,
324
+ "bindingOpen": 0
241
325
  },
242
326
  "physics": {
243
327
  "droppedElements": 0,
@@ -245,7 +329,8 @@
245
329
  "recordTables": 0,
246
330
  "multiReturn": 0,
247
331
  "droppedMembers": 0,
248
- "optionalAsRequired": 0
332
+ "optionalAsRequired": 0,
333
+ "bindingOpen": 0
249
334
  },
250
335
  "profiler": {
251
336
  "droppedElements": 0,
@@ -253,7 +338,8 @@
253
338
  "recordTables": 0,
254
339
  "multiReturn": 0,
255
340
  "droppedMembers": 0,
256
- "optionalAsRequired": 0
341
+ "optionalAsRequired": 0,
342
+ "bindingOpen": 0
257
343
  },
258
344
  "push": {
259
345
  "droppedElements": 0,
@@ -261,7 +347,8 @@
261
347
  "recordTables": 0,
262
348
  "multiReturn": 0,
263
349
  "droppedMembers": 0,
264
- "optionalAsRequired": 0
350
+ "optionalAsRequired": 0,
351
+ "bindingOpen": 0
265
352
  },
266
353
  "render": {
267
354
  "droppedElements": 0,
@@ -269,7 +356,8 @@
269
356
  "recordTables": 0,
270
357
  "multiReturn": 0,
271
358
  "droppedMembers": 0,
272
- "optionalAsRequired": 0
359
+ "optionalAsRequired": 0,
360
+ "bindingOpen": 0
273
361
  },
274
362
  "resource": {
275
363
  "droppedElements": 0,
@@ -277,7 +365,8 @@
277
365
  "recordTables": 0,
278
366
  "multiReturn": 0,
279
367
  "droppedMembers": 0,
280
- "optionalAsRequired": 0
368
+ "optionalAsRequired": 0,
369
+ "bindingOpen": 0
281
370
  },
282
371
  "socket": {
283
372
  "droppedElements": 0,
@@ -285,7 +374,8 @@
285
374
  "recordTables": 0,
286
375
  "multiReturn": 0,
287
376
  "droppedMembers": 0,
288
- "optionalAsRequired": 0
377
+ "optionalAsRequired": 0,
378
+ "bindingOpen": 0
289
379
  },
290
380
  "sound": {
291
381
  "droppedElements": 0,
@@ -293,7 +383,8 @@
293
383
  "recordTables": 0,
294
384
  "multiReturn": 0,
295
385
  "droppedMembers": 0,
296
- "optionalAsRequired": 0
386
+ "optionalAsRequired": 0,
387
+ "bindingOpen": 0
297
388
  },
298
389
  "sprite": {
299
390
  "droppedElements": 0,
@@ -301,7 +392,8 @@
301
392
  "recordTables": 0,
302
393
  "multiReturn": 0,
303
394
  "droppedMembers": 0,
304
- "optionalAsRequired": 0
395
+ "optionalAsRequired": 0,
396
+ "bindingOpen": 0
305
397
  },
306
398
  "sys": {
307
399
  "droppedElements": 0,
@@ -309,7 +401,8 @@
309
401
  "recordTables": 0,
310
402
  "multiReturn": 0,
311
403
  "droppedMembers": 0,
312
- "optionalAsRequired": 0
404
+ "optionalAsRequired": 0,
405
+ "bindingOpen": 0
313
406
  },
314
407
  "tilemap": {
315
408
  "droppedElements": 0,
@@ -317,7 +410,8 @@
317
410
  "recordTables": 0,
318
411
  "multiReturn": 0,
319
412
  "droppedMembers": 0,
320
- "optionalAsRequired": 0
413
+ "optionalAsRequired": 0,
414
+ "bindingOpen": 0
321
415
  },
322
416
  "timer": {
323
417
  "droppedElements": 0,
@@ -325,7 +419,8 @@
325
419
  "recordTables": 0,
326
420
  "multiReturn": 0,
327
421
  "droppedMembers": 0,
328
- "optionalAsRequired": 0
422
+ "optionalAsRequired": 0,
423
+ "bindingOpen": 0
329
424
  },
330
425
  "types": {
331
426
  "droppedElements": 0,
@@ -333,7 +428,8 @@
333
428
  "recordTables": 0,
334
429
  "multiReturn": 0,
335
430
  "droppedMembers": 0,
336
- "optionalAsRequired": 0
431
+ "optionalAsRequired": 0,
432
+ "bindingOpen": 0
337
433
  },
338
434
  "vmath": {
339
435
  "droppedElements": 0,
@@ -341,7 +437,8 @@
341
437
  "recordTables": 0,
342
438
  "multiReturn": 0,
343
439
  "droppedMembers": 0,
344
- "optionalAsRequired": 0
440
+ "optionalAsRequired": 0,
441
+ "bindingOpen": 0
345
442
  },
346
443
  "webview": {
347
444
  "droppedElements": 0,
@@ -349,7 +446,8 @@
349
446
  "recordTables": 0,
350
447
  "multiReturn": 0,
351
448
  "droppedMembers": 0,
352
- "optionalAsRequired": 0
449
+ "optionalAsRequired": 0,
450
+ "bindingOpen": 0
353
451
  },
354
452
  "window": {
355
453
  "droppedElements": 0,
@@ -357,7 +455,8 @@
357
455
  "recordTables": 0,
358
456
  "multiReturn": 0,
359
457
  "droppedMembers": 0,
360
- "optionalAsRequired": 0
458
+ "optionalAsRequired": 0,
459
+ "bindingOpen": 0
361
460
  },
362
461
  "zlib": {
363
462
  "droppedElements": 0,
@@ -365,6 +464,7 @@
365
464
  "recordTables": 0,
366
465
  "multiReturn": 0,
367
466
  "droppedMembers": 0,
368
- "optionalAsRequired": 0
467
+ "optionalAsRequired": 0,
468
+ "bindingOpen": 0
369
469
  }
370
470
  }
@@ -10,7 +10,23 @@ import {
10
10
  type VersionSurface,
11
11
  validateAvailability,
12
12
  } from "../src/api-availability";
13
- import { type ApiModule, parseDefoldApiDoc } from "../src/api-doc";
13
+ import { type ApiModule, parseDefoldApiDoc, withholdOverloads } from "../src/api-doc";
14
+ import {
15
+ buildIdentityVocabulary,
16
+ type IdentityCorrections,
17
+ type IdentityVocabulary,
18
+ } from "../src/api-identity";
19
+ import { correctionPins } from "../src/correction-pins";
20
+ import {
21
+ CONSTANT_UNION_ALIASES,
22
+ HAND_DECLARED_OPTIONAL_SLOTS,
23
+ OPTIONAL_SLOT_CORRECTIONS,
24
+ PARAM_TYPE_CORRECTIONS,
25
+ REQUIRED_SLOT_CORRECTIONS,
26
+ RETURN_TYPE_CORRECTIONS,
27
+ routeTypeDeclarations,
28
+ } from "../src/emit-dts";
29
+ import { splitTopLevel } from "../src/luals-type-expr";
14
30
  import { type ApiTarget, loadApiTargets, loadTargetModules } from "./regen";
15
31
 
16
32
  const PACKAGE_ROOT = resolve(import.meta.dir, "..");
@@ -71,6 +87,56 @@ export function loadMigrationCatalog(path: string = MIGRATIONS_PATH): ApiMigrati
71
87
  return raw as ApiMigrationCatalog;
72
88
  }
73
89
 
90
+ // The emitter's corrections in the form identity applies them.
91
+ export function identityCorrections(): IdentityCorrections {
92
+ const union = (ts: string): string[] => splitTopLevel(ts, "|").map((arm) => arm.trim());
93
+ return {
94
+ optionalSlots: [...OPTIONAL_SLOT_CORRECTIONS.keys(), ...HAND_DECLARED_OPTIONAL_SLOTS.keys()],
95
+ requiredSlots: [...REQUIRED_SLOT_CORRECTIONS.keys()],
96
+ parameterCorrections: Object.fromEntries(
97
+ [...PARAM_TYPE_CORRECTIONS].map(([key, correction]) => [
98
+ key,
99
+ {
100
+ pins: correctionPins(correction),
101
+ ...(correction.adds === undefined ? {} : { adds: union(correction.adds) }),
102
+ ...(correction.removes === undefined ? {} : { removes: [...correction.removes] }),
103
+ },
104
+ ]),
105
+ ),
106
+ returnCorrections: Object.fromEntries(
107
+ [...RETURN_TYPE_CORRECTIONS].map(([element, correction]) => [
108
+ element,
109
+ {
110
+ pins: correctionPins(correction),
111
+ replaces: union(correction.ts),
112
+ ...(correction.slot === undefined ? {} : { slot: correction.slot }),
113
+ },
114
+ ]),
115
+ ),
116
+ constantFamilies: Object.fromEntries(
117
+ CONSTANT_UNION_ALIASES.map((alias) => [`${alias.home}.${alias.name}`, alias.members]),
118
+ ),
119
+ };
120
+ }
121
+
122
+ export const IDENTITY_VOCABULARY_PATH = resolve(PACKAGE_ROOT, "identity-vocabulary.json");
123
+
124
+ // The vocabulary every committed target declares, which the availability
125
+ // identities and every downstream join resolve ref-doc tokens against.
126
+ export function deriveIdentityVocabulary(
127
+ packageRoot: string = PACKAGE_ROOT,
128
+ registryPath: string = resolve(packageRoot, "api-targets.json"),
129
+ ): IdentityVocabulary {
130
+ return buildIdentityVocabulary(
131
+ loadApiTargets(registryPath)
132
+ .filter((target) => target.source == null)
133
+ .flatMap((target) =>
134
+ loadTargetModules(target, packageRoot).map((entry) => parseDefoldApiDoc(entry.doc)),
135
+ ),
136
+ identityCorrections(),
137
+ );
138
+ }
139
+
74
140
  export interface BuildAvailabilityOptions {
75
141
  readonly packageRoot?: string;
76
142
  readonly registryPath?: string;
@@ -84,23 +150,33 @@ export function buildAvailabilityArtifact(
84
150
  const registryPath = options.registryPath ?? resolve(packageRoot, "api-targets.json");
85
151
  const targets = loadApiTargets(registryPath);
86
152
  const completeTargets = selectCompleteVersionSurfaces(targets);
153
+ // Routed per target, like regen, so an identity names the namespace whose
154
+ // declarations export it and routing never carries a symbol across versions.
87
155
  const parse = (target: ApiTarget): ApiModule[] =>
88
- loadTargetModules(target, packageRoot).map((entry) => parseDefoldApiDoc(entry.doc));
156
+ routeTypeDeclarations(
157
+ loadTargetModules(target, packageRoot).map((entry) =>
158
+ withholdOverloads(parseDefoldApiDoc(entry.doc), entry.skipOverloads ?? []),
159
+ ),
160
+ );
89
161
  const surfaces: VersionSurface[] = completeTargets.map((target) => ({
90
162
  version: versionOf(target),
91
163
  modules: parse(target),
92
164
  }));
93
165
  const versions = surfaces.map((surface) => surface.version);
166
+ const vocabulary = deriveIdentityVocabulary(packageRoot, registryPath);
94
167
 
95
- const derived = deriveAvailabilityMatrix({ surfaces });
168
+ const derived = deriveAvailabilityMatrix({ surfaces, vocabulary });
96
169
  const catalog =
97
170
  options.catalog ?? loadMigrationCatalog(resolve(packageRoot, "api-migrations.json"));
98
- const universe = collectSymbolIdentities(surfaces.flatMap((surface) => surface.modules));
171
+ const universe = collectSymbolIdentities(
172
+ surfaces.flatMap((surface) => surface.modules),
173
+ vocabulary,
174
+ );
99
175
  const records = applyMigrationOverlay({ derived, catalog, universe, versions });
100
176
 
101
177
  const newestSurface = surfaces[0] as VersionSurface;
102
178
  const currentSurface = new Set(
103
- collectSymbolIdentities(newestSurface.modules).map(symbolIdentityKey),
179
+ collectSymbolIdentities(newestSurface.modules, vocabulary).map(symbolIdentityKey),
104
180
  );
105
181
  const knownIdentities = new Set(universe.map(symbolIdentityKey));
106
182
  const errors = validateAvailability({ records, versions, currentSurface, knownIdentities });
@@ -111,13 +187,10 @@ export function buildAvailabilityArtifact(
111
187
  return { versions, records };
112
188
  }
113
189
 
114
- function biomeFormatJson(raw: string): string {
115
- const out = Bun.spawnSync(
116
- ["bunx", "biome", "format", "--stdin-file-path=api-availability.json"],
117
- {
118
- stdin: Buffer.from(raw),
119
- },
120
- );
190
+ function biomeFormatJson(raw: string, name = "api-availability.json"): string {
191
+ const out = Bun.spawnSync(["bunx", "biome", "format", `--stdin-file-path=${name}`], {
192
+ stdin: Buffer.from(raw),
193
+ });
121
194
  if (out.exitCode !== 0) {
122
195
  throw new Error(`biome format failed: ${out.stderr.toString()}`);
123
196
  }
@@ -131,6 +204,11 @@ export function serializeAvailabilityArtifact(artifact: AvailabilityArtifact): s
131
204
  if (import.meta.main) {
132
205
  const artifact = buildAvailabilityArtifact();
133
206
  if (process.argv.includes("--write")) {
207
+ Bun.write(
208
+ IDENTITY_VOCABULARY_PATH,
209
+ biomeFormatJson(JSON.stringify(deriveIdentityVocabulary()), "identity-vocabulary.json"),
210
+ );
211
+ console.log(`wrote ${IDENTITY_VOCABULARY_PATH}`);
134
212
  Bun.write(AVAILABILITY_PATH, serializeAvailabilityArtifact(artifact));
135
213
  console.log(`wrote ${AVAILABILITY_PATH} (${artifact.records.length} records)`);
136
214
  } else {
@@ -3,6 +3,7 @@ import { symbolIdentityKey } from "../src/api-availability";
3
3
  import type { SlotTypes } from "../src/emit-dts";
4
4
  import { selectCompleteVersionSurfaces, versionOf } from "./generate-api-availability";
5
5
  import {
6
+ type ApiTarget,
6
7
  generateModuleSignatures,
7
8
  loadApiTargets,
8
9
  loadTargetModules,
@@ -27,6 +28,10 @@ export interface SignaturesArtifact {
27
28
  export interface BuildSignaturesOptions {
28
29
  readonly packageRoot?: string;
29
30
  readonly registryPath?: string;
31
+ // The constants each target's engine registers, which gate the undocumented
32
+ // constant back-fill. Omitted, every target is emitted ungated. Supplied by the
33
+ // in-repo callers only: the vendored bindings it reads are not published.
34
+ readonly registeredConstantsOf?: (target: ApiTarget) => ReadonlySet<string> | undefined;
30
35
  }
31
36
 
32
37
  // The authored replacement for a symbol the skip filter withheld, read from the
@@ -74,8 +79,12 @@ export function buildSignaturesArtifact(options: BuildSignaturesOptions = {}): S
74
79
  const version = versionOf(target);
75
80
  const perSymbol: Record<string, string> = {};
76
81
  const perSymbolSlots: Record<string, SlotTypes> = {};
82
+ const registeredConstants = options.registeredConstantsOf?.(target);
77
83
  for (const entry of loadTargetModules(target, packageRoot)) {
78
- for (const signature of generateModuleSignatures(entry)) {
84
+ for (const signature of generateModuleSignatures(
85
+ entry,
86
+ registeredConstants ? { registeredConstants } : undefined,
87
+ )) {
79
88
  const key = symbolIdentityKey(signature.identity);
80
89
  perSymbol[key] = signature.tsSignature;
81
90
  if (Object.keys(signature.slotTypes).length > 0) {
@@ -120,7 +129,8 @@ export function serializeSignaturesArtifact(artifact: SignaturesArtifact): strin
120
129
  }
121
130
 
122
131
  if (import.meta.main) {
123
- const artifact = buildSignaturesArtifact();
132
+ const { registeredConstantFqns } = await import("./engine-binding-extract");
133
+ const artifact = buildSignaturesArtifact({ registeredConstantsOf: registeredConstantFqns });
124
134
  if (process.argv.includes("--write")) {
125
135
  Bun.write(SIGNATURES_PATH, serializeSignaturesArtifact(artifact));
126
136
  const count = Object.values(artifact.versions).reduce((n, v) => n + Object.keys(v).length, 0);