@defold-typescript/types 0.19.4 → 0.20.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 (86) hide show
  1. package/api-availability.json +2755 -0
  2. package/api-migrations.json +31 -0
  3. package/api-signatures.json +2324 -0
  4. package/api-targets.json +493 -45
  5. package/generated/b2d.d.ts +6 -0
  6. package/generated/b2d_body.d.ts +329 -1
  7. package/generated/b2d_chain.d.ts +106 -0
  8. package/generated/b2d_fixture.d.ts +155 -0
  9. package/generated/b2d_joint.d.ts +823 -0
  10. package/generated/b2d_shape.d.ts +215 -0
  11. package/generated/b2d_world.d.ts +314 -0
  12. package/generated/builtin-messages.d.ts +18 -0
  13. package/generated/camera.d.ts +62 -5
  14. package/generated/compute.d.ts +306 -0
  15. package/generated/go.d.ts +29 -4
  16. package/generated/graphics.d.ts +95 -0
  17. package/generated/gui.d.ts +1 -3
  18. package/generated/json.d.ts +2 -2
  19. package/generated/kinds/gui-script.d.ts +7 -0
  20. package/generated/kinds/render-script.d.ts +7 -0
  21. package/generated/kinds/script.d.ts +7 -0
  22. package/generated/label.d.ts +1 -1
  23. package/generated/liveupdate.d.ts +22 -4
  24. package/generated/material.d.ts +444 -0
  25. package/generated/model.d.ts +46 -5
  26. package/generated/physics.d.ts +1 -3
  27. package/generated/profiler.d.ts +2 -3
  28. package/generated/render.d.ts +25 -9
  29. package/generated/resource.d.ts +2 -2
  30. package/generated/sprite.d.ts +15 -1
  31. package/generated/tilemap.d.ts +14 -0
  32. package/generated/versions/defold-1.12.4/b2d.d.ts +27 -0
  33. package/generated/versions/defold-1.12.4/b2d_body.d.ts +348 -0
  34. package/generated/versions/defold-1.12.4/buffer.d.ts +176 -0
  35. package/generated/versions/defold-1.12.4/camera.d.ts +245 -0
  36. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +146 -0
  37. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +71 -0
  38. package/generated/versions/defold-1.12.4/crash.d.ts +143 -0
  39. package/generated/versions/defold-1.12.4/factory.d.ts +123 -0
  40. package/generated/versions/defold-1.12.4/font.d.ts +81 -0
  41. package/generated/versions/defold-1.12.4/go.d.ts +1029 -0
  42. package/generated/versions/defold-1.12.4/graphics.d.ts +226 -0
  43. package/generated/versions/defold-1.12.4/gui.d.ts +2372 -0
  44. package/generated/versions/defold-1.12.4/html5.d.ts +53 -0
  45. package/generated/versions/defold-1.12.4/http.d.ts +84 -0
  46. package/generated/versions/defold-1.12.4/iac.d.ts +18 -0
  47. package/generated/versions/defold-1.12.4/iap.d.ts +60 -0
  48. package/generated/versions/defold-1.12.4/image.d.ts +139 -0
  49. package/generated/versions/defold-1.12.4/index.d.ts +41 -0
  50. package/generated/versions/defold-1.12.4/json.d.ts +76 -0
  51. package/generated/versions/defold-1.12.4/label.d.ts +94 -0
  52. package/generated/versions/defold-1.12.4/liveupdate.d.ts +122 -0
  53. package/generated/versions/defold-1.12.4/model.d.ts +205 -0
  54. package/generated/versions/defold-1.12.4/msg.d.ts +10 -0
  55. package/generated/versions/defold-1.12.4/particlefx.d.ts +166 -0
  56. package/generated/versions/defold-1.12.4/physics.d.ts +547 -0
  57. package/generated/versions/defold-1.12.4/profiler.d.ts +234 -0
  58. package/generated/versions/defold-1.12.4/push.d.ts +66 -0
  59. package/generated/versions/defold-1.12.4/render.d.ts +1149 -0
  60. package/generated/versions/defold-1.12.4/resource.d.ts +1518 -0
  61. package/generated/versions/defold-1.12.4/socket.d.ts +795 -0
  62. package/generated/versions/defold-1.12.4/sound.d.ts +291 -0
  63. package/generated/versions/defold-1.12.4/sprite.d.ts +143 -0
  64. package/generated/versions/defold-1.12.4/sys.d.ts +695 -0
  65. package/generated/versions/defold-1.12.4/tilemap.d.ts +181 -0
  66. package/generated/versions/defold-1.12.4/timer.d.ts +114 -0
  67. package/generated/versions/defold-1.12.4/types.d.ts +61 -0
  68. package/generated/versions/defold-1.12.4/vmath.d.ts +806 -0
  69. package/generated/versions/defold-1.12.4/webview.d.ts +68 -0
  70. package/generated/versions/defold-1.12.4/window.d.ts +198 -0
  71. package/generated/versions/defold-1.12.4/zlib.d.ts +40 -0
  72. package/index.d.ts +22 -0
  73. package/package.json +8 -1
  74. package/scripts/fidelity-audit.ts +69 -12
  75. package/scripts/fidelity-baseline.json +56 -0
  76. package/scripts/generate-api-availability.ts +139 -0
  77. package/scripts/generate-api-signatures.ts +66 -0
  78. package/scripts/import-defold-release.ts +480 -0
  79. package/scripts/regen.ts +53 -6
  80. package/scripts/sync-api-docs.ts +89 -41
  81. package/src/api-availability.ts +0 -0
  82. package/src/core-types.ts +9 -0
  83. package/src/emit-dts.ts +674 -17
  84. package/src/emit-messages.ts +72 -2
  85. package/src/index.ts +26 -1
  86. package/src/lifecycle.ts +43 -2
@@ -12,12 +12,79 @@ export interface MessageEntry {
12
12
  origin: string;
13
13
  description: string;
14
14
  payload: MessageField[];
15
+ deprecatedSince?: string;
15
16
  }
16
17
 
17
18
  export interface MessageCatalog {
18
19
  entries: MessageEntry[];
19
20
  }
20
21
 
22
+ export interface MessageDeprecation {
23
+ origin: string;
24
+ name: string;
25
+ deprecatedSince: string;
26
+ }
27
+
28
+ // Messages sit outside the typed identity surface (no MESSAGE kind in
29
+ // ApiSymbolIdentity / the availability matrix), and the per-version message
30
+ // fixtures are incomplete, so message deprecations cannot be derived like member
31
+ // deprecations. This is the smallest curated overlay: only evidence-backed
32
+ // entries, matched by the stable (origin, name) identity, failing closed.
33
+ export const MESSAGE_DEPRECATIONS: readonly MessageDeprecation[] = [
34
+ { origin: "camera", name: "acquire_camera_focus", deprecatedSince: "1.13.0" },
35
+ { origin: "camera", name: "release_camera_focus", deprecatedSince: "1.13.0" },
36
+ ];
37
+
38
+ // Stamp deprecatedSince onto the catalog entries the overlay names, keyed by
39
+ // exact (origin, name). The identity index nests name under origin so origin and
40
+ // name never share a delimiter — no separator byte can forge or collide two
41
+ // distinct identities. A duplicate catalog identity, a duplicate overlay
42
+ // identity, or an overlay entry that matches no catalog message each throws
43
+ // rather than silently overwriting or no-op'ing, so an ambiguous surface or a
44
+ // stale curation cannot pass unnoticed.
45
+ export function applyMessageDeprecations(
46
+ catalog: MessageCatalog,
47
+ overlay: readonly MessageDeprecation[] = MESSAGE_DEPRECATIONS,
48
+ ): MessageCatalog {
49
+ const entries = catalog.entries.map((entry) => ({ ...entry }));
50
+ const byIdentity = new Map<string, Map<string, MessageEntry>>();
51
+ for (const entry of entries) {
52
+ let byName = byIdentity.get(entry.origin);
53
+ if (!byName) {
54
+ byName = new Map<string, MessageEntry>();
55
+ byIdentity.set(entry.origin, byName);
56
+ }
57
+ if (byName.has(entry.name)) {
58
+ throw new Error(
59
+ `applyMessageDeprecations: duplicate catalog message identity (origin=${entry.origin}, name=${entry.name})`,
60
+ );
61
+ }
62
+ byName.set(entry.name, entry);
63
+ }
64
+ const seenOverlay = new Map<string, Set<string>>();
65
+ for (const dep of overlay) {
66
+ let names = seenOverlay.get(dep.origin);
67
+ if (!names) {
68
+ names = new Set<string>();
69
+ seenOverlay.set(dep.origin, names);
70
+ }
71
+ if (names.has(dep.name)) {
72
+ throw new Error(
73
+ `applyMessageDeprecations: duplicate overlay message identity (origin=${dep.origin}, name=${dep.name})`,
74
+ );
75
+ }
76
+ names.add(dep.name);
77
+ const entry = byIdentity.get(dep.origin)?.get(dep.name);
78
+ if (!entry) {
79
+ throw new Error(
80
+ `applyMessageDeprecations: no catalog message matches (origin=${dep.origin}, name=${dep.name})`,
81
+ );
82
+ }
83
+ entry.deprecatedSince = dep.deprecatedSince;
84
+ }
85
+ return { entries };
86
+ }
87
+
21
88
  const TS_IDENTIFIER = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
22
89
  const ENGINE_TYPES = [
23
90
  "Hash",
@@ -95,11 +162,14 @@ export function emitBuiltinMessages(catalog: MessageCatalog): string {
95
162
 
96
163
  function emitEntry(entry: MessageEntry): string {
97
164
  const key = TS_IDENTIFIER.test(entry.name) ? entry.name : JSON.stringify(entry.name);
165
+ const prefix = entry.deprecatedSince
166
+ ? ` /** @deprecated since ${entry.deprecatedSince} */\n`
167
+ : "";
98
168
  if (entry.payload.length === 0) {
99
- return ` ${key}: Record<string, never>;`;
169
+ return `${prefix} ${key}: Record<string, never>;`;
100
170
  }
101
171
  const fields = entry.payload.map(emitField).join("; ");
102
- return ` ${key}: { ${fields} };`;
172
+ return `${prefix} ${key}: { ${fields} };`;
103
173
  }
104
174
 
105
175
  function emitField(field: MessageField): string {
package/src/index.ts CHANGED
@@ -1,3 +1,23 @@
1
+ export {
2
+ type ApiAvailability,
3
+ type ApiMigrationCatalog,
4
+ type ApiMigrationEntry,
5
+ type ApiSymbolIdentity,
6
+ type AvailabilityLabel,
7
+ type AvailabilityLabelKind,
8
+ applyMigrationOverlay,
9
+ availabilityLabel,
10
+ type Box2dBackend,
11
+ collectSymbolIdentities,
12
+ deriveAvailabilityMatrix,
13
+ groupByLogicalName,
14
+ isSignatureTransition,
15
+ type LogicalNameGroup,
16
+ normalizedFunctionSignature,
17
+ symbolIdentityKey,
18
+ type VersionSurface,
19
+ validateAvailability,
20
+ } from "./api-availability";
1
21
  export type { ApiFunction, ApiModule, ApiParameter, ApiVariable } from "./api-doc";
2
22
  export { parseDefoldApiDoc } from "./api-doc";
3
23
  export {
@@ -17,7 +37,12 @@ export {
17
37
  htmlToDocText,
18
38
  renderDocComment,
19
39
  } from "./doc-comment";
20
- export { type EmitOptions, emitDeclarations } from "./emit-dts";
40
+ export {
41
+ type EmitOptions,
42
+ emitDeclarations,
43
+ emitSymbolSignatures,
44
+ type SymbolSignature,
45
+ } from "./emit-dts";
21
46
  export {
22
47
  hashExampleSource,
23
48
  lookupTranslation,
package/src/lifecycle.ts CHANGED
@@ -112,7 +112,21 @@ export interface InputAction {
112
112
  */
113
113
  userid?: number;
114
114
  /**
115
- * True if the inout originated from an unknown/unmapped gamepad.
115
+ * The guid of the gamepad controller. Only passed with "connected" action.
116
+ */
117
+ gamepad_guid?: string;
118
+ /**
119
+ * Parsed guid info table. Only passed with "connected" action. See table below.
120
+ */
121
+ gamepad_guid_info?: {
122
+ vendor: number;
123
+ product: number;
124
+ bus: number;
125
+ crc: number;
126
+ version: number;
127
+ };
128
+ /**
129
+ * True if the input originated from an unknown/unmapped gamepad.
116
130
  */
117
131
  gamepad_unknown?: boolean;
118
132
  /**
@@ -333,8 +347,14 @@ export interface ScriptHooks<TSelf, TInitState = TSelf> {
333
347
  * `userid`
334
348
  * Id of the user associated with the controller. Usually only relevant on consoles.
335
349
  *
350
+ * `gamepad_guid`
351
+ * The guid of the gamepad controller. Only passed with "connected" action.
352
+ *
353
+ * `gamepad_guid_info`
354
+ * Parsed guid info table. Only passed with "connected" action. See table below.
355
+ *
336
356
  * `gamepad_unknown`
337
- * True if the inout originated from an unknown/unmapped gamepad.
357
+ * True if the input originated from an unknown/unmapped gamepad.
338
358
  *
339
359
  * `gamepad_name`
340
360
  * Name of the gamepad
@@ -386,6 +406,27 @@ export interface ScriptHooks<TSelf, TInitState = TSelf> {
386
406
  * `acc_z`
387
407
  * Accelerometer z value (if present).
388
408
  *
409
+ * Guid info table:
410
+ * This info is only passed with a `connected` action.
411
+ *
412
+ * Field
413
+ * Description
414
+ *
415
+ * `vendor`
416
+ * USB vendor id. E.g. Nintendo 0x057e, Sony 0x054c, or Microsoft 0x045e
417
+ *
418
+ * `product`
419
+ * USB product id
420
+ *
421
+ * `bus`
422
+ * How device is communicating. E.g.0x0003 for USB devices and 0x0005 for Bluetooth devices.
423
+ *
424
+ * `crc`
425
+ * SDL CRC16 signature, typically used when vendor and product ids are unavailable
426
+ *
427
+ * `version`
428
+ * The device or firmware version
429
+ *
389
430
  * @param self - reference to the script state to be used for storing data
390
431
  * @param action_id - id of the received input action, as mapped in the input_binding-file
391
432
  * @param action - a table containing the input data, see above for a description