@defold-typescript/types 0.50.0 → 0.51.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 (88) hide show
  1. package/api-signatures.json +286 -232
  2. package/examples/translations.json +15 -15
  3. package/fixtures/messages_doc.json +20 -39
  4. package/generated/builtin-messages.d.ts +16 -14
  5. package/generated/collectionfactory.d.ts +1 -1
  6. package/generated/collectionproxy.d.ts +2 -2
  7. package/generated/factory.d.ts +4 -2
  8. package/generated/graphics.d.ts +4 -0
  9. package/generated/gui.d.ts +2 -2
  10. package/generated/http.d.ts +3 -1
  11. package/generated/image.d.ts +1 -1
  12. package/generated/kinds/gui-script.d.ts +1 -0
  13. package/generated/kinds/render-script.d.ts +1 -0
  14. package/generated/kinds/script.d.ts +1 -0
  15. package/generated/model.d.ts +4 -5
  16. package/generated/physics.d.ts +3 -3
  17. package/generated/render.d.ts +41 -13
  18. package/generated/sys.d.ts +8 -4
  19. package/generated/tilemap.d.ts +4 -4
  20. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +1 -1
  21. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +1 -1
  22. package/generated/versions/defold-1.12.4/factory.d.ts +4 -2
  23. package/generated/versions/defold-1.12.4/gui.d.ts +2 -2
  24. package/generated/versions/defold-1.12.4/http.d.ts +3 -1
  25. package/generated/versions/defold-1.12.4/image.d.ts +1 -1
  26. package/generated/versions/defold-1.12.4/index.d.ts +1 -0
  27. package/generated/versions/defold-1.12.4/model.d.ts +4 -5
  28. package/generated/versions/defold-1.12.4/physics.d.ts +2 -2
  29. package/generated/versions/defold-1.12.4/render.d.ts +41 -13
  30. package/generated/versions/defold-1.12.4/sys.d.ts +1 -1
  31. package/generated/versions/defold-1.12.4/tilemap.d.ts +4 -4
  32. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +1 -1
  33. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +1 -1
  34. package/generated/versions/defold-1.13.0/factory.d.ts +4 -2
  35. package/generated/versions/defold-1.13.0/gui.d.ts +2 -2
  36. package/generated/versions/defold-1.13.0/http.d.ts +3 -1
  37. package/generated/versions/defold-1.13.0/image.d.ts +1 -1
  38. package/generated/versions/defold-1.13.0/index.d.ts +1 -0
  39. package/generated/versions/defold-1.13.0/model.d.ts +4 -5
  40. package/generated/versions/defold-1.13.0/physics.d.ts +2 -2
  41. package/generated/versions/defold-1.13.0/render.d.ts +41 -13
  42. package/generated/versions/defold-1.13.0/sys.d.ts +1 -1
  43. package/generated/versions/defold-1.13.0/tilemap.d.ts +4 -4
  44. package/generated/versions/defold-1.13.1/collectionfactory.d.ts +1 -1
  45. package/generated/versions/defold-1.13.1/collectionproxy.d.ts +1 -1
  46. package/generated/versions/defold-1.13.1/factory.d.ts +4 -2
  47. package/generated/versions/defold-1.13.1/gui.d.ts +2 -2
  48. package/generated/versions/defold-1.13.1/http.d.ts +3 -1
  49. package/generated/versions/defold-1.13.1/image.d.ts +1 -1
  50. package/generated/versions/defold-1.13.1/index.d.ts +1 -0
  51. package/generated/versions/defold-1.13.1/model.d.ts +4 -5
  52. package/generated/versions/defold-1.13.1/physics.d.ts +2 -2
  53. package/generated/versions/defold-1.13.1/render.d.ts +41 -13
  54. package/generated/versions/defold-1.13.1/sys.d.ts +1 -1
  55. package/generated/versions/defold-1.13.1/tilemap.d.ts +4 -4
  56. package/generated/versions/defold-1.13.2/collectionfactory.d.ts +1 -1
  57. package/generated/versions/defold-1.13.2/collectionproxy.d.ts +2 -2
  58. package/generated/versions/defold-1.13.2/factory.d.ts +4 -2
  59. package/generated/versions/defold-1.13.2/gui.d.ts +2 -2
  60. package/generated/versions/defold-1.13.2/http.d.ts +3 -1
  61. package/generated/versions/defold-1.13.2/image.d.ts +1 -1
  62. package/generated/versions/defold-1.13.2/index.d.ts +1 -0
  63. package/generated/versions/defold-1.13.2/model.d.ts +4 -5
  64. package/generated/versions/defold-1.13.2/physics.d.ts +3 -3
  65. package/generated/versions/defold-1.13.2/render.d.ts +41 -13
  66. package/generated/versions/defold-1.13.2/sys.d.ts +8 -4
  67. package/generated/versions/defold-1.13.2/tilemap.d.ts +4 -4
  68. package/generated/versions/defold-1.13.2/window.d.ts +1 -1
  69. package/generated/window.d.ts +1 -1
  70. package/identity-vocabulary.json +46 -0
  71. package/index.d.ts +1 -0
  72. package/package.json +2 -1
  73. package/scripts/generate-api-availability.ts +5 -1
  74. package/scripts/generate-api-signatures.ts +16 -11
  75. package/scripts/materialize-version.ts +7 -1
  76. package/scripts/regen.ts +42 -25
  77. package/src/component-properties.d.ts +137 -6
  78. package/src/core-types.ts +46 -11
  79. package/src/emit-dts.ts +555 -84
  80. package/src/emit-messages.ts +289 -0
  81. package/src/engine-globals.d.ts +3 -1
  82. package/src/go-overloads.d.ts +13 -3
  83. package/src/lifecycle.ts +16 -16
  84. package/src/luals-type-expr.ts +6 -1
  85. package/src/physics-event-guard.d.ts +39 -0
  86. package/src/render-overloads.d.ts +2 -2
  87. package/src/return-correction-provenance.ts +36 -6
  88. package/src/window-event-guard.d.ts +5 -3
package/src/core-types.ts CHANGED
@@ -1,11 +1,18 @@
1
1
  /// <reference types="@typescript-to-lua/language-extensions" />
2
2
 
3
3
  /**
4
- * A read-only numeric vector accessed by index; `length` is its component count.
4
+ * A numeric vector of any size, accessed by index for reads and writes;
5
+ * `v.length()` is its component count.
6
+ *
7
+ * @remarks
8
+ * The index is 1-based and passed to Defold unchanged: `v[1]` is the first
9
+ * component, and an index outside `1..v.length()` raises. `v.length()` compiles
10
+ * to the Lua length operator `#v`; reading `v.length` as a field raises, since
11
+ * the engine accepts only integer keys.
5
12
  */
6
13
  export interface Vector {
7
- readonly [index: number]: number;
8
- readonly length: number;
14
+ [index: number]: number;
15
+ length: LuaLengthMethod<number>;
9
16
  }
10
17
 
11
18
  /**
@@ -84,7 +91,22 @@ export interface Matrix4 {
84
91
  c1: Vector4;
85
92
  c2: Vector4;
86
93
  c3: Vector4;
87
- mul: LuaMultiplicationMethod<Matrix4, Matrix4> & LuaMultiplicationMethod<Vector4, Vector4>;
94
+ mul: LuaMultiplicationMethod<Matrix4, Matrix4> &
95
+ LuaMultiplicationMethod<Vector4, Vector4> &
96
+ LuaMultiplicationMethod<number, Matrix4>;
97
+ }
98
+
99
+ /**
100
+ * An array constant read back from a constant buffer: the engine's 1-based
101
+ * proxy over the constant's slots, not a Lua table.
102
+ *
103
+ * @remarks
104
+ * `cb.lights[1]` reads the first slot and an index below 1 raises. The proxy
105
+ * has no length, so it does not support `#` or `.length`; assign a whole new
106
+ * array (`cb.lights = [a, b]`) to change how many slots the constant holds.
107
+ */
108
+ export interface ConstantArray<T> {
109
+ [index: number]: T;
88
110
  }
89
111
 
90
112
  declare const HashBrand: unique symbol;
@@ -145,9 +167,12 @@ declare const OpaqueBrand: unique symbol;
145
167
  * types, and passing a texture where a node is expected is a compile error,
146
168
  * exactly as a wrong primitive would be. The brand is a phantom `unique symbol`
147
169
  * property that lives only in the type system and is erased at transpile — at
148
- * runtime the value is just the engine's userdata. Because the symbol is never
149
- * exported, your code cannot fabricate a handle or inspect or construct one; the
150
- * engine API is the only source.
170
+ * runtime the value is whatever the engine hands out: usually its userdata, but a
171
+ * plain number for render-target and texture handles (`render.render_target`,
172
+ * the `handle` field of `resource.get_texture_info`). The brand exists only at
173
+ * compile time either way. Because the symbol is never exported, your code
174
+ * cannot fabricate a handle or inspect or construct one; the engine API is the
175
+ * only source.
151
176
  *
152
177
  * The handle kinds modeled today:
153
178
  * - GUI & rendering: `Opaque<"node">`, `Opaque<"texture">`,
@@ -181,11 +206,21 @@ export interface Opaque<Name extends string> {
181
206
 
182
207
  /**
183
208
  * A message-passing address with `socket`, `path`, and `fragment` components.
209
+ *
210
+ * @remarks
211
+ * Each field is writable and takes a `Hash` or a string, which the engine
212
+ * hashes. Every `msg.url` form resolves a socket, so `socket` is always set.
213
+ * `path` and `fragment` read `undefined` when unset: a socket-only address
214
+ * (`msg.url("main:")`) has no `path`, so narrow it before use. Assigning
215
+ * `undefined` clears `path` or `fragment`.
184
216
  */
185
217
  export interface Url {
186
- readonly socket: Hash;
187
- readonly path: Hash;
188
- readonly fragment: Hash | undefined;
218
+ get socket(): Hash;
219
+ set socket(value: Hash | string);
220
+ get path(): Hash | undefined;
221
+ set path(value: Hash | string | undefined);
222
+ get fragment(): Hash | undefined;
223
+ set fragment(value: Hash | string | undefined);
189
224
  }
190
225
 
191
226
  const BUFFER_TYPE = 'Opaque<"buffer">';
@@ -219,7 +254,7 @@ export const DEFOLD_TYPE_MAP: Readonly<Record<string, string>> = {
219
254
  render_target: 'Opaque<"render_target">',
220
255
  constant: 'Opaque<"constant">',
221
256
  constant_buffer:
222
- 'Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4[] | Matrix4[] }',
257
+ 'Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> }',
223
258
  buffer: BUFFER_TYPE,
224
259
  bufferstream: BUFFERSTREAM_TYPE,
225
260
  userdata: 'Opaque<"userdata">',