@defold-typescript/library-types 0.22.0 → 0.24.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 (145) hide show
  1. package/api-doc/boom.json +3870 -0
  2. package/api-doc/{bridge.bridge.json → bridge.json} +754 -844
  3. package/api-doc/bzAnim.json +338 -0
  4. package/api-doc/decore.json +23 -23
  5. package/api-doc/defcon.json +150 -0
  6. package/api-doc/{defmath.defmath.json → defmath.json} +6 -46
  7. package/api-doc/defsave.json +518 -0
  8. package/api-doc/deftest.json +741 -0
  9. package/api-doc/{dicebag.dicebag.json → dicebag.json} +19 -1
  10. package/api-doc/druid.json +249 -1846
  11. package/api-doc/event.json +1074 -0
  12. package/api-doc/gooey.json +2050 -0
  13. package/api-doc/immutable.json +65 -0
  14. package/api-doc/in.accelerometer.json +75 -1
  15. package/api-doc/in.button.json +17 -10
  16. package/api-doc/in.cursor.json +26 -0
  17. package/api-doc/in.gesture.json +401 -6
  18. package/api-doc/in.keyboard.json +2 -0
  19. package/api-doc/in.mapper.json +12 -8
  20. package/api-doc/in.onscreen.json +61 -5
  21. package/api-doc/in.state.json +61 -13
  22. package/api-doc/in.textbox.json +23 -12
  23. package/api-doc/in.triggers.json +336 -0
  24. package/api-doc/lang.json +528 -0
  25. package/api-doc/{event.event.json → log.json} +96 -101
  26. package/api-doc/metrics.fps.json +61 -2
  27. package/api-doc/metrics.mem.json +61 -2
  28. package/api-doc/monarch.monarch.json +249 -7
  29. package/api-doc/monarch.transitions.easings.json +19 -26
  30. package/api-doc/monarch.transitions.gui.json +782 -79
  31. package/api-doc/nakama.engine.defold.json +31 -18
  32. package/api-doc/{nakama.nakama.json → nakama.json} +4752 -2554
  33. package/api-doc/nakama.util.log.json +32 -4
  34. package/api-doc/narrator.json +647 -0
  35. package/api-doc/openapi/nakama.nakama.json +7680 -0
  36. package/api-doc/orthographic.camera.json +96 -98
  37. package/api-doc/orthographic.json +602 -0
  38. package/api-doc/panthera.json +1183 -0
  39. package/api-doc/{persist.persist.json → persist.json} +26 -1
  40. package/api-doc/{platypus.platypus.json → platypus.json} +68 -14
  41. package/api-doc/proto.json +995 -0
  42. package/api-doc/{rendy.rendy.json → rendy.json} +46 -99
  43. package/api-doc/richtext.color.json +77 -0
  44. package/api-doc/richtext.richtext.json +375 -5
  45. package/api-doc/saver.saver.json +714 -263
  46. package/api-doc/saver.storage.json +283 -52
  47. package/api-doc/squid.json +846 -0
  48. package/api-doc/{starly.starly.json → starly.json} +1 -1
  49. package/api-doc/tweener.json +277 -0
  50. package/api-doc/{yagames.yagames.json → yagames.json} +784 -189
  51. package/api-doc/{zzfx.api.json → zzfx.json} +9 -9
  52. package/authored-targets.json +403 -0
  53. package/generated/{boom.boom.d.ts → boom.d.ts} +14 -0
  54. package/generated/bridge.d.ts +468 -0
  55. package/generated/{bzAnim.bzLibrary.d.ts → bzAnim.d.ts} +6 -0
  56. package/generated/decore.d.ts +37 -37
  57. package/generated/defcon.d.ts +43 -0
  58. package/generated/{defmath.defmath.d.ts → defmath.d.ts} +3 -2
  59. package/generated/defsave.d.ts +144 -0
  60. package/generated/{dicebag.dicebag.d.ts → dicebag.d.ts} +25 -0
  61. package/generated/druid.d.ts +198 -502
  62. package/generated/event.d.ts +318 -0
  63. package/generated/{gooey.gooey.d.ts → gooey.d.ts} +61 -6
  64. package/generated/immutable.d.ts +13 -0
  65. package/generated/in.onscreen.d.ts +5 -0
  66. package/generated/in.textbox.d.ts +4 -0
  67. package/generated/lang.d.ts +101 -0
  68. package/generated/log.d.ts +36 -0
  69. package/generated/metrics.fps.d.ts +19 -1
  70. package/generated/metrics.mem.d.ts +19 -1
  71. package/generated/monarch.monarch.d.ts +44 -1
  72. package/generated/monarch.transitions.easings.d.ts +0 -1
  73. package/generated/monarch.transitions.gui.d.ts +96 -12
  74. package/generated/nakama.d.ts +1158 -0
  75. package/generated/nakama.engine.defold.d.ts +3 -1
  76. package/generated/nakama.util.log.d.ts +6 -0
  77. package/generated/narrator.d.ts +121 -0
  78. package/generated/openapi/nakama.nakama.d.ts +884 -0
  79. package/generated/orthographic.camera.d.ts +24 -38
  80. package/generated/orthographic.d.ts +155 -0
  81. package/generated/panthera.d.ts +170 -0
  82. package/generated/{persist.persist.d.ts → persist.d.ts} +3 -0
  83. package/generated/{platypus.platypus.d.ts → platypus.d.ts} +9 -0
  84. package/generated/proto.d.ts +146 -0
  85. package/generated/{rendy.rendy.d.ts → rendy.d.ts} +33 -80
  86. package/generated/richtext.color.d.ts +15 -0
  87. package/generated/saver.saver.d.ts +289 -42
  88. package/generated/saver.storage.d.ts +79 -14
  89. package/generated/squid.d.ts +127 -0
  90. package/generated/tweener.d.ts +42 -0
  91. package/generated/{yagames.yagames.d.ts → yagames.d.ts} +151 -29
  92. package/generated/{zzfx.api.d.ts → zzfx.d.ts} +7 -0
  93. package/library-classification.json +0 -227
  94. package/library-targets.json +1 -284
  95. package/luals-targets.json +168 -1
  96. package/openapi-targets.json +17 -0
  97. package/package.json +9 -88
  98. package/script-api-targets.json +15 -0
  99. package/scripts/__snapshots__/parse-luals.test.ts.snap +504 -85
  100. package/scripts/apply-luals-overrides.ts +95 -0
  101. package/scripts/authored-parity.ts +718 -0
  102. package/scripts/emit-library-dts.ts +177 -19
  103. package/scripts/extract-api-doc.ts +189 -38
  104. package/scripts/fidelity-floor.ts +178 -0
  105. package/scripts/import-upstream-docs.ts +125 -0
  106. package/scripts/lower-api-doc.ts +69 -19
  107. package/scripts/luals-fidelity.ts +22 -10
  108. package/scripts/map-luals-types.ts +86 -22
  109. package/scripts/parse-lua-surface.ts +187 -0
  110. package/scripts/parse-luals.ts +473 -22
  111. package/scripts/parse-markdown-api.ts +247 -0
  112. package/scripts/parse-openapi-api.ts +313 -0
  113. package/scripts/sync-authored-types.ts +249 -0
  114. package/scripts/sync-library-types.ts +99 -3
  115. package/scripts/sync-luals-types.ts +29 -2
  116. package/scripts/sync-markdown-types.ts +761 -0
  117. package/scripts/sync-openapi-types.ts +308 -0
  118. package/scripts/sync-script-api-types.ts +367 -0
  119. package/api-doc/boom.boom.json +0 -26
  120. package/api-doc/bzAnim.bzLibrary.json +0 -156
  121. package/api-doc/defcon.console.json +0 -109
  122. package/api-doc/defsave.defsave.json +0 -175
  123. package/api-doc/deftest.deftest.json +0 -71
  124. package/api-doc/gooey.gooey.json +0 -963
  125. package/api-doc/immutable.immutable.json +0 -63
  126. package/api-doc/lang.lang.json +0 -411
  127. package/api-doc/log.log.json +0 -50
  128. package/api-doc/narrator.narrator.json +0 -150
  129. package/api-doc/proto.proto.json +0 -355
  130. package/api-doc/squid.squid.json +0 -660
  131. package/api-doc/tweener.tweener.json +0 -419
  132. package/generated/bridge.bridge.d.ts +0 -533
  133. package/generated/defcon.console.d.ts +0 -24
  134. package/generated/defsave.defsave.d.ts +0 -31
  135. package/generated/event.event.d.ts +0 -54
  136. package/generated/immutable.immutable.d.ts +0 -13
  137. package/generated/lang.lang.d.ts +0 -33
  138. package/generated/log.log.d.ts +0 -40
  139. package/generated/nakama.nakama.d.ts +0 -594
  140. package/generated/narrator.narrator.d.ts +0 -66
  141. package/generated/proto.proto.d.ts +0 -36
  142. package/generated/squid.squid.d.ts +0 -106
  143. package/generated/tweener.tweener.d.ts +0 -151
  144. /package/generated/{deftest.deftest.d.ts → deftest.d.ts} +0 -0
  145. /package/generated/{starly.starly.d.ts → starly.d.ts} +0 -0
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Per-target corrections applied to a parsed `LibraryModel` after the merge, for the
3
+ * cases where upstream LuaLS annotations diverge from the library's runtime and the
4
+ * fixtures freeze the annotation verbatim (so it is not hand-patchable in the fixture
5
+ * or the emitted `.d.ts`). The five shapes covered are a module function whose trailing
6
+ * parameter is runtime-optional despite a non-`|nil` `@param`, an interface method
7
+ * whose `@return` omits an alternative arm, an interface field whose type token is
8
+ * wrong or underspecified (a stray character, or an untyped `fun(...)` callback), an
9
+ * interface method parameter with the same underspecification, and an interface field
10
+ * that only restates a member inherited from a parent, incompatibly enough that the
11
+ * emitted redeclaration would not type-check (`drop`). Every named target
12
+ * must exist — a missing function, param, interface, field, or method throws naming the
13
+ * absent key, mirroring `buildTargetModel`'s loud-fail on an absent `ownFile`, so a
14
+ * stale override never degrades into a silent no-op.
15
+ */
16
+
17
+ import type { LibraryModel } from "./parse-luals";
18
+
19
+ export interface AnnotationOverrides {
20
+ moduleFunctions?: Record<string, { params?: Record<string, { optional?: boolean }> }>;
21
+ interfaces?: Record<
22
+ string,
23
+ {
24
+ fields?: Record<string, { type?: string; drop?: boolean }>;
25
+ methods?: Record<string, { return?: string; params?: Record<string, { type?: string }> }>;
26
+ }
27
+ >;
28
+ }
29
+
30
+ export function applyAnnotationOverrides(
31
+ model: LibraryModel,
32
+ overrides: AnnotationOverrides,
33
+ ): LibraryModel {
34
+ for (const [fnName, fnOverride] of Object.entries(overrides.moduleFunctions ?? {})) {
35
+ const fn = model.moduleFunctions.find((f) => f.name === fnName);
36
+ if (!fn) {
37
+ throw new Error(
38
+ `applyAnnotationOverrides: module function "${fnName}" is absent from the model.`,
39
+ );
40
+ }
41
+ for (const [paramName, paramOverride] of Object.entries(fnOverride.params ?? {})) {
42
+ const param = fn.params.find((p) => p.name === paramName);
43
+ if (!param) {
44
+ throw new Error(
45
+ `applyAnnotationOverrides: param "${paramName}" of module function "${fnName}" is absent from the model.`,
46
+ );
47
+ }
48
+ if (paramOverride.optional) param.isOptional = true;
49
+ }
50
+ }
51
+ for (const [ifaceName, ifaceOverride] of Object.entries(overrides.interfaces ?? {})) {
52
+ const iface = model.interfaces.find((i) => i.name === ifaceName);
53
+ if (!iface) {
54
+ throw new Error(
55
+ `applyAnnotationOverrides: interface "${ifaceName}" is absent from the model.`,
56
+ );
57
+ }
58
+ for (const [fieldName, fieldOverride] of Object.entries(ifaceOverride.fields ?? {})) {
59
+ const field = iface.fields.find((f) => f.name === fieldName);
60
+ if (!field) {
61
+ throw new Error(
62
+ `applyAnnotationOverrides: field "${fieldName}" of interface "${ifaceName}" is absent from the model.`,
63
+ );
64
+ }
65
+ if (fieldOverride.drop) {
66
+ iface.fields.splice(iface.fields.indexOf(field), 1);
67
+ continue;
68
+ }
69
+ if (fieldOverride.type !== undefined) field.types = [fieldOverride.type];
70
+ }
71
+ for (const [methodName, methodOverride] of Object.entries(ifaceOverride.methods ?? {})) {
72
+ const method = iface.methods.find((m) => m.name === methodName);
73
+ if (!method) {
74
+ throw new Error(
75
+ `applyAnnotationOverrides: method "${methodName}" of interface "${ifaceName}" is absent from the model.`,
76
+ );
77
+ }
78
+ if (methodOverride.return !== undefined) {
79
+ method.returns = [
80
+ { name: "", types: [methodOverride.return], doc: "", isOptional: false, isVararg: false },
81
+ ];
82
+ }
83
+ for (const [paramName, paramOverride] of Object.entries(methodOverride.params ?? {})) {
84
+ const param = method.params.find((p) => p.name === paramName);
85
+ if (!param) {
86
+ throw new Error(
87
+ `applyAnnotationOverrides: param "${paramName}" of method "${methodName}" of interface "${ifaceName}" is absent from the model.`,
88
+ );
89
+ }
90
+ if (paramOverride.type !== undefined) param.types = [paramOverride.type];
91
+ }
92
+ }
93
+ }
94
+ return model;
95
+ }