@defold-typescript/types 0.51.0 → 0.53.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.
- package/api-availability.json +4 -58
- package/api-signatures.json +2804 -3172
- package/api-targets.json +15 -5
- package/examples/translations.json +19 -71
- package/generated/b2d.d.ts +39 -39
- package/generated/b2d_body.d.ts +11 -11
- package/generated/b2d_chain.d.ts +3 -3
- package/generated/b2d_fixture.d.ts +5 -5
- package/generated/b2d_joint.d.ts +29 -29
- package/generated/b2d_shape.d.ts +13 -13
- package/generated/b2d_world.d.ts +15 -15
- package/generated/buffer.d.ts +10 -11
- package/generated/bullet3d.d.ts +6 -6
- package/generated/bullet3d_collision_object.d.ts +10 -10
- package/generated/bullet3d_constraint.d.ts +173 -71
- package/generated/bullet3d_rigid_body.d.ts +3 -3
- package/generated/bullet3d_shape.d.ts +11 -11
- package/generated/bullet3d_world.d.ts +20 -20
- package/generated/camera.d.ts +4 -4
- package/generated/collectionfactory.d.ts +2 -3
- package/generated/collectionproxy.d.ts +5 -5
- package/generated/compute.d.ts +5 -5
- package/generated/crash.d.ts +7 -7
- package/generated/editor-vm/http.d.ts +13 -13
- package/generated/editor-vm/image.d.ts +4 -4
- package/generated/editor-vm/json.d.ts +1 -1
- package/generated/editor-vm/tilemap_tiles.d.ts +9 -9
- package/generated/editor-vm/zip.d.ts +4 -4
- package/generated/editor.d.ts +183 -183
- package/generated/factory.d.ts +2 -3
- package/generated/font.d.ts +4 -4
- package/generated/go.d.ts +122 -230
- package/generated/graphics.d.ts +23 -25
- package/generated/gui.d.ts +186 -423
- package/generated/http.d.ts +3 -3
- package/generated/image.d.ts +63 -11
- package/generated/json.d.ts +4 -4
- package/generated/kinds/gui-script.d.ts +2 -0
- package/generated/kinds/render-script.d.ts +14 -15
- package/generated/label.d.ts +5 -5
- package/generated/liveupdate.d.ts +7 -3
- package/generated/material.d.ts +49 -49
- package/generated/model.d.ts +46 -14
- package/generated/particlefx.d.ts +24 -5
- package/generated/physics.d.ts +64 -20
- package/generated/profiler.d.ts +3 -5
- package/generated/render-script-modules/b2d.d.ts +711 -0
- package/generated/render-script-modules/bullet3d.d.ts +73 -0
- package/generated/render-script-modules/collectionfactory.d.ts +24 -0
- package/generated/render-script-modules/collectionproxy.d.ts +39 -0
- package/generated/render-script-modules/factory.d.ts +24 -0
- package/generated/render-script-modules/go.d.ts +434 -0
- package/generated/render-script-modules/label.d.ts +105 -0
- package/generated/render-script-modules/model.d.ts +121 -0
- package/generated/render-script-modules/particlefx.d.ts +59 -0
- package/generated/render-script-modules/physics.d.ts +333 -0
- package/generated/render-script-modules/resource.d.ts +1232 -0
- package/generated/render-script-modules/sound.d.ts +227 -0
- package/generated/render-script-modules/sprite.d.ts +68 -0
- package/generated/render-script-modules/tilemap.d.ts +43 -0
- package/generated/render.d.ts +172 -47
- package/generated/resource.d.ts +81 -61
- package/generated/socket.d.ts +18 -23
- package/generated/sound.d.ts +6 -6
- package/generated/sprite.d.ts +51 -3
- package/generated/sys.d.ts +87 -24
- package/generated/tilemap.d.ts +3 -3
- package/generated/timer.d.ts +3 -3
- package/generated/versions/defold-1.12.4/b2d.d.ts +2 -2
- package/generated/versions/defold-1.12.4/b2d_body.d.ts +2 -2
- package/generated/versions/defold-1.12.4/buffer.d.ts +8 -8
- package/generated/versions/defold-1.12.4/go.d.ts +117 -345
- package/generated/versions/defold-1.12.4/graphics.d.ts +2 -1
- package/generated/versions/defold-1.12.4/gui.d.ts +169 -532
- package/generated/versions/defold-1.12.4/http.d.ts +2 -2
- package/generated/versions/defold-1.12.4/image.d.ts +82 -2
- package/generated/versions/defold-1.12.4/index.d.ts +1 -0
- package/generated/versions/defold-1.12.4/label.d.ts +1 -1
- package/generated/versions/defold-1.12.4/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.12.4/model.d.ts +42 -10
- package/generated/versions/defold-1.12.4/particlefx.d.ts +23 -2
- package/generated/versions/defold-1.12.4/physics.d.ts +46 -2
- package/generated/versions/defold-1.12.4/render.d.ts +83 -7
- package/generated/versions/defold-1.12.4/resource.d.ts +50 -17
- package/generated/versions/defold-1.12.4/socket.d.ts +12 -12
- package/generated/versions/defold-1.12.4/sound.d.ts +1 -1
- package/generated/versions/defold-1.12.4/sprite.d.ts +59 -2
- package/generated/versions/defold-1.12.4/sys.d.ts +103 -8
- package/generated/versions/defold-1.12.4/tilemap.d.ts +1 -1
- package/generated/versions/defold-1.12.4/vmath.d.ts +0 -24
- package/generated/versions/defold-1.12.4/window.d.ts +3 -4
- package/generated/versions/defold-1.13.0/b2d.d.ts +2 -2
- package/generated/versions/defold-1.13.0/b2d_body.d.ts +2 -2
- package/generated/versions/defold-1.13.0/b2d_chain.d.ts +1 -1
- package/generated/versions/defold-1.13.0/b2d_joint.d.ts +1 -1
- package/generated/versions/defold-1.13.0/b2d_shape.d.ts +1 -1
- package/generated/versions/defold-1.13.0/buffer.d.ts +8 -8
- package/generated/versions/defold-1.13.0/camera.d.ts +1 -1
- package/generated/versions/defold-1.13.0/go.d.ts +117 -372
- package/generated/versions/defold-1.13.0/graphics.d.ts +2 -1
- package/generated/versions/defold-1.13.0/gui.d.ts +169 -532
- package/generated/versions/defold-1.13.0/http.d.ts +2 -2
- package/generated/versions/defold-1.13.0/image.d.ts +82 -2
- package/generated/versions/defold-1.13.0/index.d.ts +1 -0
- package/generated/versions/defold-1.13.0/label.d.ts +1 -1
- package/generated/versions/defold-1.13.0/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.13.0/material.d.ts +3 -1
- package/generated/versions/defold-1.13.0/model.d.ts +42 -10
- package/generated/versions/defold-1.13.0/particlefx.d.ts +23 -2
- package/generated/versions/defold-1.13.0/physics.d.ts +46 -2
- package/generated/versions/defold-1.13.0/render.d.ts +147 -9
- package/generated/versions/defold-1.13.0/resource.d.ts +50 -17
- package/generated/versions/defold-1.13.0/socket.d.ts +12 -12
- package/generated/versions/defold-1.13.0/sound.d.ts +1 -1
- package/generated/versions/defold-1.13.0/sprite.d.ts +59 -2
- package/generated/versions/defold-1.13.0/sys.d.ts +103 -8
- package/generated/versions/defold-1.13.0/tilemap.d.ts +1 -1
- package/generated/versions/defold-1.13.0/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.0/window.d.ts +3 -4
- package/generated/versions/defold-1.13.1/b2d.d.ts +2 -2
- package/generated/versions/defold-1.13.1/b2d_body.d.ts +2 -2
- package/generated/versions/defold-1.13.1/b2d_chain.d.ts +1 -1
- package/generated/versions/defold-1.13.1/b2d_joint.d.ts +1 -1
- package/generated/versions/defold-1.13.1/b2d_shape.d.ts +1 -1
- package/generated/versions/defold-1.13.1/buffer.d.ts +8 -8
- package/generated/versions/defold-1.13.1/camera.d.ts +1 -1
- package/generated/versions/defold-1.13.1/go.d.ts +117 -372
- package/generated/versions/defold-1.13.1/graphics.d.ts +2 -1
- package/generated/versions/defold-1.13.1/gui.d.ts +169 -548
- package/generated/versions/defold-1.13.1/http.d.ts +2 -2
- package/generated/versions/defold-1.13.1/image.d.ts +82 -2
- package/generated/versions/defold-1.13.1/index.d.ts +2 -0
- package/generated/versions/defold-1.13.1/label.d.ts +1 -1
- package/generated/versions/defold-1.13.1/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.13.1/material.d.ts +3 -1
- package/generated/versions/defold-1.13.1/model.d.ts +42 -10
- package/generated/versions/defold-1.13.1/particlefx.d.ts +23 -2
- package/generated/versions/defold-1.13.1/physics.d.ts +46 -2
- package/generated/versions/defold-1.13.1/render.d.ts +147 -9
- package/generated/versions/defold-1.13.1/resource.d.ts +50 -17
- package/generated/versions/defold-1.13.1/socket.d.ts +12 -12
- package/generated/versions/defold-1.13.1/sound.d.ts +1 -1
- package/generated/versions/defold-1.13.1/sprite.d.ts +59 -2
- package/generated/versions/defold-1.13.1/sys.d.ts +103 -8
- package/generated/versions/defold-1.13.1/tilemap.d.ts +1 -1
- package/generated/versions/defold-1.13.1/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.1/window.d.ts +3 -4
- package/generated/versions/defold-1.13.2/b2d.d.ts +39 -39
- package/generated/versions/defold-1.13.2/b2d_body.d.ts +11 -11
- package/generated/versions/defold-1.13.2/b2d_chain.d.ts +3 -3
- package/generated/versions/defold-1.13.2/b2d_fixture.d.ts +5 -5
- package/generated/versions/defold-1.13.2/b2d_joint.d.ts +29 -29
- package/generated/versions/defold-1.13.2/b2d_shape.d.ts +13 -13
- package/generated/versions/defold-1.13.2/b2d_world.d.ts +15 -15
- package/generated/versions/defold-1.13.2/buffer.d.ts +10 -11
- package/generated/versions/defold-1.13.2/bullet3d.d.ts +6 -6
- package/generated/versions/defold-1.13.2/bullet3d_collision_object.d.ts +10 -10
- package/generated/versions/defold-1.13.2/bullet3d_constraint.d.ts +173 -71
- package/generated/versions/defold-1.13.2/bullet3d_rigid_body.d.ts +3 -3
- package/generated/versions/defold-1.13.2/bullet3d_shape.d.ts +11 -11
- package/generated/versions/defold-1.13.2/bullet3d_world.d.ts +20 -20
- package/generated/versions/defold-1.13.2/camera.d.ts +4 -4
- package/generated/versions/defold-1.13.2/collectionfactory.d.ts +2 -3
- package/generated/versions/defold-1.13.2/collectionproxy.d.ts +5 -5
- package/generated/versions/defold-1.13.2/compute.d.ts +5 -5
- package/generated/versions/defold-1.13.2/crash.d.ts +7 -7
- package/generated/versions/defold-1.13.2/editor-vm/http.d.ts +13 -13
- package/generated/versions/defold-1.13.2/editor-vm/image.d.ts +4 -4
- package/generated/versions/defold-1.13.2/editor-vm/json.d.ts +1 -1
- package/generated/versions/defold-1.13.2/editor-vm/tilemap_tiles.d.ts +9 -9
- package/generated/versions/defold-1.13.2/editor-vm/zip.d.ts +4 -4
- package/generated/versions/defold-1.13.2/editor.d.ts +183 -183
- package/generated/versions/defold-1.13.2/factory.d.ts +2 -3
- package/generated/versions/defold-1.13.2/font.d.ts +4 -4
- package/generated/versions/defold-1.13.2/go.d.ts +122 -230
- package/generated/versions/defold-1.13.2/graphics.d.ts +22 -24
- package/generated/versions/defold-1.13.2/gui.d.ts +186 -423
- package/generated/versions/defold-1.13.2/http.d.ts +3 -3
- package/generated/versions/defold-1.13.2/image.d.ts +63 -11
- package/generated/versions/defold-1.13.2/index.d.ts +2 -0
- package/generated/versions/defold-1.13.2/json.d.ts +4 -4
- package/generated/versions/defold-1.13.2/label.d.ts +5 -5
- package/generated/versions/defold-1.13.2/liveupdate.d.ts +7 -3
- package/generated/versions/defold-1.13.2/material.d.ts +49 -49
- package/generated/versions/defold-1.13.2/model.d.ts +46 -14
- package/generated/versions/defold-1.13.2/particlefx.d.ts +24 -5
- package/generated/versions/defold-1.13.2/physics.d.ts +64 -20
- package/generated/versions/defold-1.13.2/profiler.d.ts +3 -5
- package/generated/versions/defold-1.13.2/render.d.ts +161 -46
- package/generated/versions/defold-1.13.2/resource.d.ts +81 -61
- package/generated/versions/defold-1.13.2/socket.d.ts +18 -23
- package/generated/versions/defold-1.13.2/sound.d.ts +6 -6
- package/generated/versions/defold-1.13.2/sprite.d.ts +51 -3
- package/generated/versions/defold-1.13.2/sys.d.ts +87 -24
- package/generated/versions/defold-1.13.2/tilemap.d.ts +3 -3
- package/generated/versions/defold-1.13.2/timer.d.ts +3 -3
- package/generated/versions/defold-1.13.2/vmath.d.ts +0 -25
- package/generated/versions/defold-1.13.2/window.d.ts +8 -10
- package/generated/vmath.d.ts +0 -25
- package/generated/window.d.ts +8 -10
- package/identity-vocabulary.json +86 -34
- package/index.d.ts +2 -0
- package/package.json +3 -1
- package/scripts/generate-api-availability.ts +10 -24
- package/scripts/generate-api-signatures.ts +75 -14
- package/scripts/materialize-version.ts +48 -7
- package/scripts/regen.ts +214 -19
- package/scripts/shared-handle-methods.ts +3 -2
- package/scripts/signature-store-fs.ts +1 -0
- package/scripts/target-version.ts +26 -0
- package/src/api-doc.ts +34 -0
- package/src/api-identity.ts +32 -1
- package/src/component-properties.d.ts +96 -7
- package/src/core-types.ts +71 -28
- package/src/doc-corrections.ts +62 -5
- package/src/emit-dts.ts +1423 -401
- package/src/engine-globals.d.ts +5 -1
- package/src/engine-type-name.ts +33 -0
- package/src/go-overloads.d.ts +74 -19
- package/src/gui-overloads.d.ts +489 -0
- package/src/gui-texture-removal.d.ts +41 -0
- package/src/index.ts +3 -0
- package/src/lifecycle.ts +32 -23
- package/src/msg-overloads.d.ts +25 -13
- package/src/signature-store.ts +50 -0
- package/src/socket-types.d.ts +3 -3
- package/src/timers.d.ts +2 -1
- package/src/vmath-overloads.d.ts +26 -0
package/identity-vocabulary.json
CHANGED
|
@@ -132,7 +132,6 @@
|
|
|
132
132
|
"b2d.joint.LIMIT_STATE": "number",
|
|
133
133
|
"b2d.shape.SHAPE_TYPE": "number",
|
|
134
134
|
"buffer.VALUE_TYPE": "number",
|
|
135
|
-
"buffer.ValueType": "number",
|
|
136
135
|
"bullet3d.collision_object.ACTIVATION_STATE": "number",
|
|
137
136
|
"bullet3d.collision_object.COLLISION_FLAG": "number",
|
|
138
137
|
"bullet3d.collision_object.INTERNAL_TYPE": "number",
|
|
@@ -140,20 +139,15 @@
|
|
|
140
139
|
"bullet3d.rigid_body.FLAG": "number",
|
|
141
140
|
"bullet3d.shape.SHAPE_TYPE": "number",
|
|
142
141
|
"camera.ORTHO_MODE": "number",
|
|
143
|
-
"collectionfactory.Status": "number",
|
|
144
142
|
"collectionfactory.STATUS": "number",
|
|
145
143
|
"collectionproxy.RESULT": "number",
|
|
146
144
|
"crash.SYSFIELD": "number",
|
|
147
|
-
"factory.Status": "number",
|
|
148
145
|
"factory.STATUS": "number",
|
|
149
|
-
"go.Easing": "number",
|
|
150
146
|
"go.EASING": "number",
|
|
151
|
-
"go.Playback": "number",
|
|
152
147
|
"go.PLAYBACK": "number",
|
|
153
148
|
"graphics.BLEND_EQUATION": "number",
|
|
154
149
|
"graphics.BLEND_FACTOR": "number",
|
|
155
150
|
"graphics.BUFFER_TYPE": "number",
|
|
156
|
-
"graphics.BufferType": "number",
|
|
157
151
|
"graphics.COMPARE_FUNC": "number",
|
|
158
152
|
"graphics.COMPRESSION_TYPE": "number",
|
|
159
153
|
"graphics.CONTEXT_FEATURE": "number",
|
|
@@ -162,7 +156,6 @@
|
|
|
162
156
|
"graphics.DATA_TYPE": "number",
|
|
163
157
|
"graphics.FACE_TYPE": "number",
|
|
164
158
|
"graphics.SEMANTIC_TYPE": "number",
|
|
165
|
-
"graphics.State": "number",
|
|
166
159
|
"graphics.STATE": "number",
|
|
167
160
|
"graphics.STENCIL_OP": "number",
|
|
168
161
|
"graphics.TEXTURE_FILTER": "number",
|
|
@@ -171,55 +164,37 @@
|
|
|
171
164
|
"graphics.TEXTURE_USAGE_FLAG": "number",
|
|
172
165
|
"graphics.TEXTURE_WRAP": "number",
|
|
173
166
|
"gui.ADJUST": "number",
|
|
174
|
-
"gui.AdjustMode": "number",
|
|
175
167
|
"gui.ANCHOR": "number",
|
|
176
168
|
"gui.BLEND": "number",
|
|
177
|
-
"gui.BlendMode": "number",
|
|
178
169
|
"gui.CLIPPING_MODE": "number",
|
|
179
|
-
"gui.ClippingMode": "number",
|
|
180
|
-
"gui.Easing": "number",
|
|
181
170
|
"gui.EASING": "number",
|
|
182
171
|
"gui.KEYBOARD_TYPE": "number",
|
|
183
|
-
"gui.KeyboardType": "number",
|
|
184
|
-
"gui.NodeType": "number",
|
|
185
|
-
"gui.PieBounds": "number",
|
|
186
172
|
"gui.PIEBOUNDS": "number",
|
|
187
|
-
"gui.Pivot": "number",
|
|
188
173
|
"gui.PIVOT": "number",
|
|
189
|
-
"gui.Playback": "number",
|
|
190
174
|
"gui.PLAYBACK": "number",
|
|
191
175
|
"gui.PROP": "number",
|
|
192
|
-
"gui.Property": "number",
|
|
193
176
|
"gui.RESULT": "number",
|
|
194
177
|
"gui.SAFE_AREA": "number",
|
|
195
|
-
"gui.SafeAreaMode": "number",
|
|
196
178
|
"gui.SIZE_MODE": "number",
|
|
197
|
-
"gui.SizeMode": "number",
|
|
198
179
|
"gui.TYPE": "number",
|
|
199
|
-
"gui.XAnchor": "number",
|
|
200
|
-
"gui.YAnchor": "number",
|
|
201
180
|
"image.TYPE": "string",
|
|
202
181
|
"liveupdate.LIVEUPDATE": "number",
|
|
203
182
|
"material.CONSTANT_TYPE": "number",
|
|
204
183
|
"particlefx.EMITTER_STATE": "number",
|
|
205
184
|
"physics.JOINT_TYPE": "number",
|
|
206
185
|
"physics.SHAPE_TYPE": "number",
|
|
207
|
-
"profiler.Mode": "number",
|
|
208
186
|
"profiler.MODE": "number",
|
|
209
187
|
"profiler.VIEW_MODE": "number",
|
|
210
|
-
"profiler.ViewMode": "number",
|
|
211
188
|
"render.ClearBufferKey": "number",
|
|
212
189
|
"render.CONTEXT_EVENT": "number",
|
|
213
190
|
"render.FRUSTUM_PLANES": "number",
|
|
214
191
|
"render.RENDER_TARGET_FLAG": "number",
|
|
192
|
+
"render.RenderTargetTextureType": "number",
|
|
215
193
|
"render.SORT": "number",
|
|
216
194
|
"sys.NETWORK": "number",
|
|
217
|
-
"sys.NetworkConnectivity": "number",
|
|
218
195
|
"sys.REQUEST_STATUS": "number",
|
|
219
196
|
"tilemap.TRANSFORM": "number",
|
|
220
197
|
"window.DIMMING": "number",
|
|
221
|
-
"window.DimModeState": "number",
|
|
222
|
-
"window.DimModeStateSettable": "number",
|
|
223
198
|
"window.WINDOW_EVENT": "number"
|
|
224
199
|
},
|
|
225
200
|
"stringConstants": [
|
|
@@ -297,6 +272,7 @@
|
|
|
297
272
|
"b2d.joint.create_wheel:param:definition",
|
|
298
273
|
"b2d.shape.ray_cast:param:max_fraction",
|
|
299
274
|
"b2d.shape.set_shape:param:update_mass",
|
|
275
|
+
"buffer.get_bytes:param:stream_name",
|
|
300
276
|
"go.cancel_animations:param:url",
|
|
301
277
|
"go.world_to_local_position:param:url",
|
|
302
278
|
"go.world_to_local_transform:param:url",
|
|
@@ -327,7 +303,6 @@
|
|
|
327
303
|
"factory.unload:param:url",
|
|
328
304
|
"gui.move_above:param:reference",
|
|
329
305
|
"gui.move_below:param:reference",
|
|
330
|
-
"gui.set:param:value",
|
|
331
306
|
"gui.set_parent:param:parent",
|
|
332
307
|
"html5.set_interaction_listener:param:callback",
|
|
333
308
|
"resource.create_buffer:param:table",
|
|
@@ -339,6 +314,16 @@
|
|
|
339
314
|
],
|
|
340
315
|
"parameterCorrections": {
|
|
341
316
|
"buffer.get_bytes:param:stream_name": { "pins": [["hash"]], "adds": ["string"] },
|
|
317
|
+
"bullet3d.constraint.get_slider_motor:param:motor": {
|
|
318
|
+
"pins": [["string"]],
|
|
319
|
+
"adds": ["\"linear\"", "\"angular\""],
|
|
320
|
+
"removes": ["string"]
|
|
321
|
+
},
|
|
322
|
+
"bullet3d.constraint.set_slider_motor:param:motor": {
|
|
323
|
+
"pins": [["string"]],
|
|
324
|
+
"adds": ["\"linear\"", "\"angular\""],
|
|
325
|
+
"removes": ["string"]
|
|
326
|
+
},
|
|
342
327
|
"camera.get_aspect_ratio:param:camera": {
|
|
343
328
|
"pins": [["url", "number", "nil"]],
|
|
344
329
|
"adds": ["string", "Hash"]
|
|
@@ -427,6 +412,20 @@
|
|
|
427
412
|
"pins": [["url"]],
|
|
428
413
|
"adds": ["string", "Hash"]
|
|
429
414
|
},
|
|
415
|
+
"go.animate:param:playback": {
|
|
416
|
+
"pins": [
|
|
417
|
+
[
|
|
418
|
+
"go.PLAYBACK_ONCE_FORWARD",
|
|
419
|
+
"go.PLAYBACK_ONCE_BACKWARD",
|
|
420
|
+
"go.PLAYBACK_ONCE_PINGPONG",
|
|
421
|
+
"go.PLAYBACK_LOOP_FORWARD",
|
|
422
|
+
"go.PLAYBACK_LOOP_BACKWARD",
|
|
423
|
+
"go.PLAYBACK_LOOP_PINGPONG"
|
|
424
|
+
],
|
|
425
|
+
["go.PLAYBACK"]
|
|
426
|
+
],
|
|
427
|
+
"replaces": ["go.Playback"]
|
|
428
|
+
},
|
|
430
429
|
"go.delete:param:id": {
|
|
431
430
|
"pins": [
|
|
432
431
|
["string", "hash", "url", "table"],
|
|
@@ -439,12 +438,18 @@
|
|
|
439
438
|
"pins": [["nil", "string", "constant"]],
|
|
440
439
|
"adds": ["Hash"]
|
|
441
440
|
},
|
|
441
|
+
"gui.clone_tree:param:node": { "pins": [["node"]], "adds": ["undefined"] },
|
|
442
|
+
"gui.get_tree:param:node": { "pins": [["node"]], "adds": ["undefined"] },
|
|
442
443
|
"gui.screen_to_local:param:screen_position": { "pins": [["vector3"]], "adds": ["Vector4"] },
|
|
443
444
|
"gui.set_rotation:param:rotation": { "pins": [["quaternion", "vector4"]], "adds": ["Vector3"] },
|
|
444
445
|
"gui.set_screen_position:param:screen_position": { "pins": [["vector3"]], "adds": ["Vector4"] },
|
|
445
|
-
"gui.
|
|
446
|
-
"pins": [["
|
|
447
|
-
"
|
|
446
|
+
"gui.set_xanchor:param:anchor": {
|
|
447
|
+
"pins": [["constant"], ["gui.ANCHOR"]],
|
|
448
|
+
"replaces": ["Exclude<gui.Anchor, typeof gui.ANCHOR_BOTTOM | typeof gui.ANCHOR_TOP>"]
|
|
449
|
+
},
|
|
450
|
+
"gui.set_yanchor:param:anchor": {
|
|
451
|
+
"pins": [["constant"], ["gui.ANCHOR"]],
|
|
452
|
+
"replaces": ["Exclude<gui.Anchor, typeof gui.ANCHOR_LEFT | typeof gui.ANCHOR_RIGHT>"]
|
|
448
453
|
},
|
|
449
454
|
"model.get_mesh_enabled:param:mesh_id": {
|
|
450
455
|
"pins": [["string", "hash", "url"]],
|
|
@@ -458,15 +463,30 @@
|
|
|
458
463
|
"physics.get_maskbit:param:group": { "pins": [["string"]], "adds": ["Hash"] },
|
|
459
464
|
"physics.set_group:param:group": { "pins": [["string"]], "adds": ["Hash"] },
|
|
460
465
|
"physics.set_maskbit:param:group": { "pins": [["string"]], "adds": ["Hash"] },
|
|
466
|
+
"render.disable_state:param:state": {
|
|
467
|
+
"pins": [["graphics.STATE"]],
|
|
468
|
+
"adds": [
|
|
469
|
+
"Exclude<graphics.State, typeof graphics.STATE_ALPHA_TEST_SUPPORTED | typeof graphics.STATE_SCISSOR_TEST>"
|
|
470
|
+
],
|
|
471
|
+
"removes": ["graphics.State"]
|
|
472
|
+
},
|
|
461
473
|
"render.disable_texture:param:binding": {
|
|
462
474
|
"pins": [["texture", "string", "hash"]],
|
|
463
|
-
"adds": ["number"]
|
|
475
|
+
"adds": ["number"],
|
|
476
|
+
"removes": ["Opaque<\"texture\">"]
|
|
464
477
|
},
|
|
465
478
|
"render.draw:param:predicate": {
|
|
466
|
-
"pins": [["number"]
|
|
479
|
+
"pins": [["number"]],
|
|
467
480
|
"adds": ["Opaque<\"render_predicate\">"],
|
|
468
481
|
"removes": ["number"]
|
|
469
482
|
},
|
|
483
|
+
"render.enable_state:param:state": {
|
|
484
|
+
"pins": [["graphics.STATE"]],
|
|
485
|
+
"adds": [
|
|
486
|
+
"Exclude<graphics.State, typeof graphics.STATE_ALPHA_TEST_SUPPORTED | typeof graphics.STATE_SCISSOR_TEST>"
|
|
487
|
+
],
|
|
488
|
+
"removes": ["graphics.State"]
|
|
489
|
+
},
|
|
470
490
|
"render.enable_texture:param:handle_or_name": {
|
|
471
491
|
"pins": [["texture", "string", "hash"]],
|
|
472
492
|
"adds": ["Opaque<\"render_target\">", "number"]
|
|
@@ -479,6 +499,26 @@
|
|
|
479
499
|
"pins": [["render_target"]],
|
|
480
500
|
"adds": ["string", "Hash"]
|
|
481
501
|
},
|
|
502
|
+
"render.set_blend_func_separate:param:destination_factor_alpha": {
|
|
503
|
+
"pins": [["number"]],
|
|
504
|
+
"adds": ["graphics.BlendFactor"],
|
|
505
|
+
"removes": ["number"]
|
|
506
|
+
},
|
|
507
|
+
"render.set_blend_func_separate:param:destination_factor_color": {
|
|
508
|
+
"pins": [["number"]],
|
|
509
|
+
"adds": ["graphics.BlendFactor"],
|
|
510
|
+
"removes": ["number"]
|
|
511
|
+
},
|
|
512
|
+
"render.set_blend_func_separate:param:source_factor_alpha": {
|
|
513
|
+
"pins": [["number"]],
|
|
514
|
+
"adds": ["graphics.BlendFactor"],
|
|
515
|
+
"removes": ["number"]
|
|
516
|
+
},
|
|
517
|
+
"render.set_blend_func_separate:param:source_factor_color": {
|
|
518
|
+
"pins": [["number"]],
|
|
519
|
+
"adds": ["graphics.BlendFactor"],
|
|
520
|
+
"removes": ["number"]
|
|
521
|
+
},
|
|
482
522
|
"render.set_camera:param:camera": {
|
|
483
523
|
"pins": [["url", "number", "nil"]],
|
|
484
524
|
"adds": ["string", "Hash"]
|
|
@@ -519,8 +559,8 @@
|
|
|
519
559
|
},
|
|
520
560
|
"window.set_dim_mode:param:mode": {
|
|
521
561
|
"pins": [["window.DIMMING"]],
|
|
522
|
-
"adds": ["window.
|
|
523
|
-
"removes": ["window.
|
|
562
|
+
"adds": ["Exclude<window.Dimming, typeof window.DIMMING_UNKNOWN>"],
|
|
563
|
+
"removes": ["window.Dimming"]
|
|
524
564
|
}
|
|
525
565
|
},
|
|
526
566
|
"returnCorrections": {
|
|
@@ -539,6 +579,10 @@
|
|
|
539
579
|
"undefined"
|
|
540
580
|
]
|
|
541
581
|
},
|
|
582
|
+
"bullet3d.shape.get_shape": {
|
|
583
|
+
"pins": [["bullet3d.shape.definition"]],
|
|
584
|
+
"replaces": ["bullet3d.shape.Definition", "{ type: typeof bullet3d.shape.SHAPE_TYPE_MESH }"]
|
|
585
|
+
},
|
|
542
586
|
"collectionfactory.create": {
|
|
543
587
|
"pins": [["table"], ["table<hash, hash>"]],
|
|
544
588
|
"replaces": ["LuaTable<Hash, Hash> & { get: LuaTableGetMethod<string, Hash> }"]
|
|
@@ -561,6 +605,14 @@
|
|
|
561
605
|
"LuaTable<Hash, Opaque<\"node\">> & { get: LuaTableGetMethod<string, Opaque<\"node\">> }"
|
|
562
606
|
]
|
|
563
607
|
},
|
|
608
|
+
"gui.get_xanchor": {
|
|
609
|
+
"pins": [["constant"], ["gui.ANCHOR"]],
|
|
610
|
+
"replaces": ["Exclude<gui.Anchor, typeof gui.ANCHOR_BOTTOM | typeof gui.ANCHOR_TOP>"]
|
|
611
|
+
},
|
|
612
|
+
"gui.get_yanchor": {
|
|
613
|
+
"pins": [["constant"], ["gui.ANCHOR"]],
|
|
614
|
+
"replaces": ["Exclude<gui.Anchor, typeof gui.ANCHOR_LEFT | typeof gui.ANCHOR_RIGHT>"]
|
|
615
|
+
},
|
|
564
616
|
"gui.new_texture": {
|
|
565
617
|
"pins": [["number"]],
|
|
566
618
|
"replaces": ["number", "undefined"],
|
package/index.d.ts
CHANGED
|
@@ -35,6 +35,8 @@ import "./src/go-overloads";
|
|
|
35
35
|
import "./src/component-properties";
|
|
36
36
|
import "./generated/graphics";
|
|
37
37
|
import "./generated/gui";
|
|
38
|
+
import "./src/gui-overloads";
|
|
39
|
+
import "./src/gui-texture-removal";
|
|
38
40
|
import "./generated/html5";
|
|
39
41
|
import "./generated/http";
|
|
40
42
|
import "./generated/image";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defold-typescript/types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.53.0",
|
|
4
4
|
"description": "TypeScript types for the Defold engine's Lua APIs.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"fixtures/messages_doc.json",
|
|
78
78
|
"fixtures/defold-*",
|
|
79
79
|
"!fixtures/defold-*/engine-bindings",
|
|
80
|
+
"!fixtures/defold-*/engine-evidence",
|
|
80
81
|
"!fixtures/defold-*/annotations",
|
|
81
82
|
"examples/translations.json",
|
|
82
83
|
"!src/**/*.test.ts",
|
|
@@ -93,6 +94,7 @@
|
|
|
93
94
|
"!scripts/example-typecheck.ts",
|
|
94
95
|
"!scripts/example-variant-drift.ts",
|
|
95
96
|
"!scripts/engine-binding-extract.ts",
|
|
97
|
+
"!scripts/go-instance-functions.ts",
|
|
96
98
|
"!scripts/binding-pin.ts",
|
|
97
99
|
"!scripts/sync-engine-bindings.ts",
|
|
98
100
|
"!scripts/engine-binding-diff.ts",
|
|
@@ -28,37 +28,17 @@ import {
|
|
|
28
28
|
} from "../src/emit-dts";
|
|
29
29
|
import { splitTopLevel } from "../src/luals-type-expr";
|
|
30
30
|
import { type ApiTarget, loadApiTargets, loadTargetModules } from "./regen";
|
|
31
|
+
import { compareVersions, versionOf } from "./target-version";
|
|
31
32
|
|
|
32
33
|
const PACKAGE_ROOT = resolve(import.meta.dir, "..");
|
|
33
34
|
const MIGRATIONS_PATH = resolve(PACKAGE_ROOT, "api-migrations.json");
|
|
34
35
|
const AVAILABILITY_PATH = resolve(PACKAGE_ROOT, "api-availability.json");
|
|
35
36
|
|
|
36
|
-
const VERSION_FROM_ID = /^defold-(\d+\.\d+\.\d+)$/;
|
|
37
|
-
|
|
38
37
|
export interface AvailabilityArtifact {
|
|
39
38
|
readonly versions: readonly string[];
|
|
40
39
|
readonly records: readonly ApiAvailability[];
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
export function versionOf(target: ApiTarget): string {
|
|
44
|
-
const match = VERSION_FROM_ID.exec(target.id);
|
|
45
|
-
if (!match?.[1]) throw new Error(`cannot derive a release version from target id "${target.id}"`);
|
|
46
|
-
return match[1];
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function versionTuple(version: string): number[] {
|
|
50
|
-
return version.split(".").map((part) => Number.parseInt(part, 10));
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function compareVersions(a: string, b: string): number {
|
|
54
|
-
const [ta, tb] = [versionTuple(a), versionTuple(b)];
|
|
55
|
-
for (let index = 0; index < Math.max(ta.length, tb.length); index += 1) {
|
|
56
|
-
const diff = (ta[index] ?? 0) - (tb[index] ?? 0);
|
|
57
|
-
if (diff !== 0) return diff;
|
|
58
|
-
}
|
|
59
|
-
return 0;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
42
|
// Every complete committed surface, newest first. The committed targets are the
|
|
63
43
|
// `source == null` entries of `api-targets.json` (ref-doc-sourced historical
|
|
64
44
|
// targets are resolved on demand and never a committed-derivation input). This
|
|
@@ -98,8 +78,12 @@ export function identityCorrections(): IdentityCorrections {
|
|
|
98
78
|
key,
|
|
99
79
|
{
|
|
100
80
|
pins: correctionPins(correction),
|
|
101
|
-
...(correction.
|
|
102
|
-
|
|
81
|
+
...(correction.ts !== undefined
|
|
82
|
+
? { replaces: union(correction.ts) }
|
|
83
|
+
: {
|
|
84
|
+
...(correction.adds === undefined ? {} : { adds: union(correction.adds) }),
|
|
85
|
+
...(correction.removes === undefined ? {} : { removes: [...correction.removes] }),
|
|
86
|
+
}),
|
|
103
87
|
},
|
|
104
88
|
]),
|
|
105
89
|
),
|
|
@@ -118,7 +102,9 @@ export function identityCorrections(): IdentityCorrections {
|
|
|
118
102
|
]),
|
|
119
103
|
),
|
|
120
104
|
constantFamilies: Object.fromEntries(
|
|
121
|
-
CONSTANT_UNION_ALIASES.
|
|
105
|
+
CONSTANT_UNION_ALIASES.flatMap((alias) =>
|
|
106
|
+
"name" in alias ? [[`${alias.home}.${alias.name}`, alias.members] as const] : [],
|
|
107
|
+
),
|
|
122
108
|
),
|
|
123
109
|
};
|
|
124
110
|
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { resolve } from "node:path";
|
|
2
2
|
import { symbolIdentityKey } from "../src/api-availability";
|
|
3
|
-
import type { SlotTypes } from "../src/emit-dts";
|
|
4
|
-
import {
|
|
3
|
+
import type { SlotType, SlotTypes } from "../src/emit-dts";
|
|
4
|
+
import { signatureArmsFor } from "../src/signature-store";
|
|
5
|
+
import { selectCompleteVersionSurfaces } from "./generate-api-availability";
|
|
5
6
|
import {
|
|
6
7
|
type ApiTarget,
|
|
7
|
-
type GenerateOptions,
|
|
8
8
|
generateModuleSignatures,
|
|
9
9
|
loadApiTargets,
|
|
10
10
|
loadTargetModules,
|
|
11
11
|
type ModuleManifestEntry,
|
|
12
|
+
type TargetBindingOptions,
|
|
12
13
|
} from "./regen";
|
|
13
14
|
import { loadSignatureFile } from "./signature-store-fs";
|
|
15
|
+
import { versionOf } from "./target-version";
|
|
14
16
|
|
|
15
17
|
const PACKAGE_ROOT = resolve(import.meta.dir, "..");
|
|
16
18
|
const SIGNATURES_PATH = resolve(PACKAGE_ROOT, "api-signatures.json");
|
|
@@ -35,9 +37,7 @@ export interface BuildSignaturesOptions {
|
|
|
35
37
|
// every target is emitted ungated and with no binding-pinned correction.
|
|
36
38
|
// Supplied by the in-repo callers only: the vendored bindings it reads are not
|
|
37
39
|
// published.
|
|
38
|
-
readonly emitOptionsOf?: (
|
|
39
|
-
target: ApiTarget,
|
|
40
|
-
) => Pick<GenerateOptions, "registeredConstants" | "bindingEvidence">;
|
|
40
|
+
readonly emitOptionsOf?: (target: ApiTarget) => TargetBindingOptions;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
// The authored replacement for a symbol the skip filter withheld, read from the
|
|
@@ -45,22 +45,59 @@ export interface BuildSignaturesOptions {
|
|
|
45
45
|
// One seam keeps all three artifacts consistent: `overloads-signature-parity`
|
|
46
46
|
// pins the store to the `src/*-overloads.d.ts` declarations, so folding the
|
|
47
47
|
// store in cannot drift from the surface a consumer actually compiles against.
|
|
48
|
-
|
|
48
|
+
// Only the arms the target's version declares are folded.
|
|
49
|
+
function authoredSignature(
|
|
50
|
+
packageRoot: string,
|
|
51
|
+
namespace: string,
|
|
52
|
+
fqn: string,
|
|
53
|
+
version: string,
|
|
54
|
+
): string | null {
|
|
49
55
|
const store = loadSignatureFile(resolve(packageRoot, "signatures", `${namespace}.json`));
|
|
50
|
-
const
|
|
56
|
+
const override = store[fqn];
|
|
57
|
+
const forms = override ? signatureArmsFor(override, version).signatures : [];
|
|
51
58
|
return forms.length > 0 ? forms.join("\n") : null;
|
|
52
59
|
}
|
|
53
60
|
|
|
61
|
+
interface UnfilteredSurface {
|
|
62
|
+
readonly entries: readonly ModuleManifestEntry[];
|
|
63
|
+
readonly of: ReadonlyMap<ModuleManifestEntry, ModuleManifestEntry>;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const unfilteredSurfaces = new WeakMap<readonly ModuleManifestEntry[], UnfilteredSurface>();
|
|
67
|
+
|
|
68
|
+
// The surface with every member's `skipFunctions` cleared, built once per
|
|
69
|
+
// surface: dropping functions moves no type declaration, so it routes exactly
|
|
70
|
+
// as the filtered one does.
|
|
71
|
+
function unfilteredSurfaceOf(surface: readonly ModuleManifestEntry[]): UnfilteredSurface {
|
|
72
|
+
let unfiltered = unfilteredSurfaces.get(surface);
|
|
73
|
+
if (unfiltered === undefined) {
|
|
74
|
+
const of = new Map(surface.map((member) => [member, { ...member, skipFunctions: [] }]));
|
|
75
|
+
unfiltered = { entries: [...of.values()], of };
|
|
76
|
+
unfilteredSurfaces.set(surface, unfiltered);
|
|
77
|
+
}
|
|
78
|
+
return unfiltered;
|
|
79
|
+
}
|
|
80
|
+
|
|
54
81
|
// The symbols `skipFunctions` removed from this module, as the difference
|
|
55
82
|
// between the unfiltered and filtered signature emits. Derived rather than
|
|
56
83
|
// re-matched so the withholding rules stay owned by `prepareGeneratedModule`.
|
|
57
|
-
|
|
84
|
+
// Both emits route in `surface`, the modules the entry is emitted beside, so a
|
|
85
|
+
// slot naming a sibling's type resolves in the unfiltered emit too.
|
|
86
|
+
export function withheldSymbols(
|
|
87
|
+
entry: ModuleManifestEntry,
|
|
88
|
+
surface: readonly ModuleManifestEntry[],
|
|
89
|
+
): { key: string; fqn: string }[] {
|
|
58
90
|
if ((entry.skipFunctions ?? []).length === 0) return [];
|
|
59
91
|
const kept = new Set(
|
|
60
|
-
generateModuleSignatures(entry).map(({ identity }) => symbolIdentityKey(identity)),
|
|
92
|
+
generateModuleSignatures(entry, { surface }).map(({ identity }) => symbolIdentityKey(identity)),
|
|
61
93
|
);
|
|
94
|
+
const unfiltered = unfilteredSurfaceOf(surface);
|
|
95
|
+
const self = unfiltered.of.get(entry);
|
|
96
|
+
if (self === undefined) {
|
|
97
|
+
throw new Error(`module "${entry.namespace}" is not a member of the surface it is emitted in`);
|
|
98
|
+
}
|
|
62
99
|
const withheld: { key: string; fqn: string }[] = [];
|
|
63
|
-
for (const { identity } of generateModuleSignatures({
|
|
100
|
+
for (const { identity } of generateModuleSignatures(self, { surface: unfiltered.entries })) {
|
|
64
101
|
const key = symbolIdentityKey(identity);
|
|
65
102
|
if (kept.has(key)) continue;
|
|
66
103
|
const fqn = key.split("\0")[2] as string;
|
|
@@ -69,6 +106,18 @@ export function withheldSymbols(entry: ModuleManifestEntry): { key: string; fqn:
|
|
|
69
106
|
return withheld;
|
|
70
107
|
}
|
|
71
108
|
|
|
109
|
+
// The slots two arms record identically. One ledger cannot describe arms whose
|
|
110
|
+
// types differ at a slot, so that slot is dropped and its row falls back to the
|
|
111
|
+
// ref-doc token.
|
|
112
|
+
function commonSlots(a: SlotTypes, b: SlotTypes): SlotTypes {
|
|
113
|
+
const common: Record<string, SlotType> = {};
|
|
114
|
+
for (const [slot, record] of Object.entries(a)) {
|
|
115
|
+
const other = b[slot];
|
|
116
|
+
if (other?.type === record.type && other.optional === record.optional) common[slot] = record;
|
|
117
|
+
}
|
|
118
|
+
return common;
|
|
119
|
+
}
|
|
120
|
+
|
|
72
121
|
function sortObjectKeys<T>(record: Record<string, T>): Record<string, T> {
|
|
73
122
|
const sorted: Record<string, T> = {};
|
|
74
123
|
for (const key of Object.keys(record).sort()) sorted[key] = record[key] as T;
|
|
@@ -86,9 +135,21 @@ export function buildSignaturesArtifact(options: BuildSignaturesOptions = {}): S
|
|
|
86
135
|
const perSymbol: Record<string, string> = {};
|
|
87
136
|
const perSymbolSlots: Record<string, SlotTypes> = {};
|
|
88
137
|
const emitOptions = options.emitOptionsOf?.(target);
|
|
89
|
-
|
|
138
|
+
const surface = loadTargetModules(target, packageRoot);
|
|
139
|
+
for (const entry of surface) {
|
|
90
140
|
for (const signature of generateModuleSignatures(entry, emitOptions)) {
|
|
91
141
|
const key = symbolIdentityKey(signature.identity);
|
|
142
|
+
// Two ref-doc elements can normalize to one identity (the Box2D backend
|
|
143
|
+
// forms of a `b2d.world` query), so each keeps its arms in fixture order
|
|
144
|
+
// and the key keeps only the slots every arm shares.
|
|
145
|
+
const earlier = perSymbol[key];
|
|
146
|
+
if (earlier !== undefined) {
|
|
147
|
+
perSymbol[key] = `${earlier}\n${signature.tsSignature}`;
|
|
148
|
+
const common = commonSlots(perSymbolSlots[key] ?? {}, signature.slotTypes);
|
|
149
|
+
if (Object.keys(common).length > 0) perSymbolSlots[key] = common;
|
|
150
|
+
else delete perSymbolSlots[key];
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
92
153
|
perSymbol[key] = signature.tsSignature;
|
|
93
154
|
if (Object.keys(signature.slotTypes).length > 0) {
|
|
94
155
|
perSymbolSlots[key] = sortObjectKeys({ ...signature.slotTypes });
|
|
@@ -96,8 +157,8 @@ export function buildSignaturesArtifact(options: BuildSignaturesOptions = {}): S
|
|
|
96
157
|
}
|
|
97
158
|
// An authored fold replaces the declaration text wholesale, so whatever
|
|
98
159
|
// slots the generated emit had recorded no longer describe it.
|
|
99
|
-
for (const { key, fqn } of withheldSymbols(entry)) {
|
|
100
|
-
const authored = authoredSignature(packageRoot, entry.namespace, fqn);
|
|
160
|
+
for (const { key, fqn } of withheldSymbols(entry, surface)) {
|
|
161
|
+
const authored = authoredSignature(packageRoot, entry.namespace, fqn, version);
|
|
101
162
|
if (authored !== null) {
|
|
102
163
|
perSymbol[key] = authored;
|
|
103
164
|
delete perSymbolSlots[key];
|
|
@@ -2,19 +2,23 @@ import { mkdirSync, writeFileSync } from "node:fs";
|
|
|
2
2
|
import { dirname, resolve } from "node:path";
|
|
3
3
|
import {
|
|
4
4
|
type ApiTarget,
|
|
5
|
-
|
|
5
|
+
GO_INSTANCE_SRC_AUGMENTATIONS,
|
|
6
6
|
generateBuiltinMessagesDeclaration,
|
|
7
7
|
generateModuleDeclaration,
|
|
8
8
|
generateVersionIndex,
|
|
9
|
+
goInstanceFreeSurface,
|
|
10
|
+
goInstanceWalls,
|
|
9
11
|
KIND_MODULE_MANIFEST,
|
|
10
12
|
type KindManifestEntry,
|
|
11
13
|
kindStdlibReferences,
|
|
14
|
+
loadGoInstanceFunctions,
|
|
12
15
|
loadSrcAugmentations,
|
|
13
16
|
loadTargetEditorModules,
|
|
14
17
|
MESSAGES_MANIFEST,
|
|
15
18
|
type ModuleManifestEntry,
|
|
16
19
|
type ResolveTargetOptions,
|
|
17
20
|
resolveTargetModules,
|
|
21
|
+
type TargetBindingOptions,
|
|
18
22
|
} from "./regen";
|
|
19
23
|
|
|
20
24
|
export {
|
|
@@ -41,6 +45,11 @@ export interface RenderMaterializedKindIndexOptions {
|
|
|
41
45
|
// the universal set outright — an editor kind is disjoint from the runtime
|
|
42
46
|
// surface, not a narrowing of it.
|
|
43
47
|
readonly editorModules?: readonly string[];
|
|
48
|
+
// The universal modules the surface also carries as copies without the
|
|
49
|
+
// functions that need a game object, set when the target records which those
|
|
50
|
+
// are. A kind with no game object imports the copies instead and drops the
|
|
51
|
+
// augmentations marked as needing one; every other kind ignores it.
|
|
52
|
+
readonly goInstanceFreeModules?: readonly string[];
|
|
44
53
|
}
|
|
45
54
|
|
|
46
55
|
// The installed subpath a materialized kind re-exports its factory from: the
|
|
@@ -57,11 +66,21 @@ function installedFactoryModule(entry: KindManifestEntry): string {
|
|
|
57
66
|
export function renderMaterializedKindIndex(opts: RenderMaterializedKindIndexOptions): string {
|
|
58
67
|
const entry = KIND_MODULE_MANIFEST.find((e) => e.kind === opts.kind);
|
|
59
68
|
if (!entry) throw new Error(`unknown script kind: ${opts.kind}`);
|
|
69
|
+
const freeDir = entry.goInstanceFreeDir;
|
|
70
|
+
const copied =
|
|
71
|
+
freeDir === undefined || opts.goInstanceFreeModules === undefined
|
|
72
|
+
? null
|
|
73
|
+
: new Set(opts.goInstanceFreeModules);
|
|
74
|
+
const universal = opts.universalModules.filter(
|
|
75
|
+
(mod) => copied === null || !GO_INSTANCE_SRC_AUGMENTATIONS.includes(mod),
|
|
76
|
+
);
|
|
60
77
|
const modules =
|
|
61
78
|
entry.only === undefined
|
|
62
|
-
? [...new Set(["engine-globals", ...
|
|
79
|
+
? [...new Set(["engine-globals", ...universal])].sort()
|
|
63
80
|
: [...(opts.editorModules ?? [])];
|
|
64
|
-
const lines = modules.map((mod) =>
|
|
81
|
+
const lines = modules.map((mod) =>
|
|
82
|
+
copied?.has(mod) ? `import "../${freeDir}/${mod}";` : `import "../${mod}";`,
|
|
83
|
+
);
|
|
65
84
|
if (entry.only === undefined && opts.restrictedModule) {
|
|
66
85
|
lines.push(`import "../${opts.restrictedModule}";`);
|
|
67
86
|
}
|
|
@@ -89,14 +108,15 @@ export interface BuildVersionedSurfaceOptions {
|
|
|
89
108
|
// script kind without the generator knowing what a script kind is.
|
|
90
109
|
readonly excludeModules?: readonly string[];
|
|
91
110
|
// The hand-authored `src/*` augmentations to carry beside the modules.
|
|
92
|
-
// Defaults to reading
|
|
93
|
-
// filesystem (a Worker) supplies the
|
|
111
|
+
// Defaults to reading the target's set (`srcAugmentationModulesFor`) from the
|
|
112
|
+
// types package on disk; a caller with no filesystem (a Worker) supplies the
|
|
113
|
+
// same bytes and gets an identical file map.
|
|
94
114
|
readonly augmentations?: readonly VersionedSurfaceFile[];
|
|
95
115
|
// What the target's own engine source decides for its emit
|
|
96
116
|
// (`targetBindingOptions`). Only an in-repo caller rebuilding a vendored
|
|
97
117
|
// target's committed surface passes it; a published install vendors no engine
|
|
98
118
|
// source, and the ref-doc targets it materializes have none to read.
|
|
99
|
-
readonly emitOptions?:
|
|
119
|
+
readonly emitOptions?: TargetBindingOptions;
|
|
100
120
|
}
|
|
101
121
|
|
|
102
122
|
export interface MaterializeVersionedSurfaceOptions extends BuildVersionedSurfaceOptions {
|
|
@@ -142,7 +162,7 @@ export async function buildVersionedSurfaceFiles(
|
|
|
142
162
|
).filter((entry) => kept(entry.outFile));
|
|
143
163
|
|
|
144
164
|
const augmentations = (
|
|
145
|
-
opts.augmentations ?? loadSrcAugmentations(opts.resolveOpts?.packageRoot ?? undefined)
|
|
165
|
+
opts.augmentations ?? loadSrcAugmentations(opts.resolveOpts?.packageRoot ?? undefined, target)
|
|
146
166
|
).filter((file) => kept(file.path));
|
|
147
167
|
|
|
148
168
|
// Re-rooting an entry makes it a new object no committed manifest holds, so
|
|
@@ -158,6 +178,27 @@ export async function buildVersionedSurfaceFiles(
|
|
|
158
178
|
})),
|
|
159
179
|
);
|
|
160
180
|
|
|
181
|
+
// A target whose engine source records the functions that need a game object
|
|
182
|
+
// carries, for each kind without one, copies of the modules declaring them
|
|
183
|
+
// with those functions withheld. Nothing else differs, so a target with no
|
|
184
|
+
// record writes no copy.
|
|
185
|
+
const walls = goInstanceWalls(
|
|
186
|
+
modules,
|
|
187
|
+
loadGoInstanceFunctions(target, opts.resolveOpts?.packageRoot ?? undefined),
|
|
188
|
+
);
|
|
189
|
+
for (const kind of KIND_MODULE_MANIFEST) {
|
|
190
|
+
const dir = kind.goInstanceFreeDir;
|
|
191
|
+
if (dir === undefined || walls.size === 0) continue;
|
|
192
|
+
const surface = rerooted(goInstanceFreeSurface(modules, walls, dir).surface);
|
|
193
|
+
for (const entry of surface) {
|
|
194
|
+
if (!entry.outFile.startsWith(`${dir}/`)) continue;
|
|
195
|
+
files.push({
|
|
196
|
+
path: entry.outFile,
|
|
197
|
+
contents: generateModuleDeclaration(entry, { ...opts.emitOptions, surface }).contents,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
161
202
|
files.push(...augmentations);
|
|
162
203
|
files.push({ path: "core-types.d.ts", contents: CORE_TYPES_REEXPORT });
|
|
163
204
|
|