@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.
- package/api-doc/boom.json +3870 -0
- package/api-doc/{bridge.bridge.json → bridge.json} +754 -844
- package/api-doc/bzAnim.json +338 -0
- package/api-doc/decore.json +23 -23
- package/api-doc/defcon.json +150 -0
- package/api-doc/{defmath.defmath.json → defmath.json} +6 -46
- package/api-doc/defsave.json +518 -0
- package/api-doc/deftest.json +741 -0
- package/api-doc/{dicebag.dicebag.json → dicebag.json} +19 -1
- package/api-doc/druid.json +249 -1846
- package/api-doc/event.json +1074 -0
- package/api-doc/gooey.json +2050 -0
- package/api-doc/immutable.json +65 -0
- package/api-doc/in.accelerometer.json +75 -1
- package/api-doc/in.button.json +17 -10
- package/api-doc/in.cursor.json +26 -0
- package/api-doc/in.gesture.json +401 -6
- package/api-doc/in.keyboard.json +2 -0
- package/api-doc/in.mapper.json +12 -8
- package/api-doc/in.onscreen.json +61 -5
- package/api-doc/in.state.json +61 -13
- package/api-doc/in.textbox.json +23 -12
- package/api-doc/in.triggers.json +336 -0
- package/api-doc/lang.json +528 -0
- package/api-doc/{event.event.json → log.json} +96 -101
- package/api-doc/metrics.fps.json +61 -2
- package/api-doc/metrics.mem.json +61 -2
- package/api-doc/monarch.monarch.json +249 -7
- package/api-doc/monarch.transitions.easings.json +19 -26
- package/api-doc/monarch.transitions.gui.json +782 -79
- package/api-doc/nakama.engine.defold.json +31 -18
- package/api-doc/{nakama.nakama.json → nakama.json} +4752 -2554
- package/api-doc/nakama.util.log.json +32 -4
- package/api-doc/narrator.json +647 -0
- package/api-doc/openapi/nakama.nakama.json +7680 -0
- package/api-doc/orthographic.camera.json +96 -98
- package/api-doc/orthographic.json +602 -0
- package/api-doc/panthera.json +1183 -0
- package/api-doc/{persist.persist.json → persist.json} +26 -1
- package/api-doc/{platypus.platypus.json → platypus.json} +68 -14
- package/api-doc/proto.json +995 -0
- package/api-doc/{rendy.rendy.json → rendy.json} +46 -99
- package/api-doc/richtext.color.json +77 -0
- package/api-doc/richtext.richtext.json +375 -5
- package/api-doc/saver.saver.json +714 -263
- package/api-doc/saver.storage.json +283 -52
- package/api-doc/squid.json +846 -0
- package/api-doc/{starly.starly.json → starly.json} +1 -1
- package/api-doc/tweener.json +277 -0
- package/api-doc/{yagames.yagames.json → yagames.json} +784 -189
- package/api-doc/{zzfx.api.json → zzfx.json} +9 -9
- package/authored-targets.json +403 -0
- package/generated/{boom.boom.d.ts → boom.d.ts} +14 -0
- package/generated/bridge.d.ts +468 -0
- package/generated/{bzAnim.bzLibrary.d.ts → bzAnim.d.ts} +6 -0
- package/generated/decore.d.ts +37 -37
- package/generated/defcon.d.ts +43 -0
- package/generated/{defmath.defmath.d.ts → defmath.d.ts} +3 -2
- package/generated/defsave.d.ts +144 -0
- package/generated/{dicebag.dicebag.d.ts → dicebag.d.ts} +25 -0
- package/generated/druid.d.ts +198 -502
- package/generated/event.d.ts +318 -0
- package/generated/{gooey.gooey.d.ts → gooey.d.ts} +61 -6
- package/generated/immutable.d.ts +13 -0
- package/generated/in.onscreen.d.ts +5 -0
- package/generated/in.textbox.d.ts +4 -0
- package/generated/lang.d.ts +101 -0
- package/generated/log.d.ts +36 -0
- package/generated/metrics.fps.d.ts +19 -1
- package/generated/metrics.mem.d.ts +19 -1
- package/generated/monarch.monarch.d.ts +44 -1
- package/generated/monarch.transitions.easings.d.ts +0 -1
- package/generated/monarch.transitions.gui.d.ts +96 -12
- package/generated/nakama.d.ts +1158 -0
- package/generated/nakama.engine.defold.d.ts +3 -1
- package/generated/nakama.util.log.d.ts +6 -0
- package/generated/narrator.d.ts +121 -0
- package/generated/openapi/nakama.nakama.d.ts +884 -0
- package/generated/orthographic.camera.d.ts +24 -38
- package/generated/orthographic.d.ts +155 -0
- package/generated/panthera.d.ts +170 -0
- package/generated/{persist.persist.d.ts → persist.d.ts} +3 -0
- package/generated/{platypus.platypus.d.ts → platypus.d.ts} +9 -0
- package/generated/proto.d.ts +146 -0
- package/generated/{rendy.rendy.d.ts → rendy.d.ts} +33 -80
- package/generated/richtext.color.d.ts +15 -0
- package/generated/saver.saver.d.ts +289 -42
- package/generated/saver.storage.d.ts +79 -14
- package/generated/squid.d.ts +127 -0
- package/generated/tweener.d.ts +42 -0
- package/generated/{yagames.yagames.d.ts → yagames.d.ts} +151 -29
- package/generated/{zzfx.api.d.ts → zzfx.d.ts} +7 -0
- package/library-classification.json +0 -227
- package/library-targets.json +1 -284
- package/luals-targets.json +168 -1
- package/openapi-targets.json +17 -0
- package/package.json +9 -88
- package/script-api-targets.json +15 -0
- package/scripts/__snapshots__/parse-luals.test.ts.snap +504 -85
- package/scripts/apply-luals-overrides.ts +95 -0
- package/scripts/authored-parity.ts +718 -0
- package/scripts/emit-library-dts.ts +177 -19
- package/scripts/extract-api-doc.ts +189 -38
- package/scripts/fidelity-floor.ts +178 -0
- package/scripts/import-upstream-docs.ts +125 -0
- package/scripts/lower-api-doc.ts +69 -19
- package/scripts/luals-fidelity.ts +22 -10
- package/scripts/map-luals-types.ts +86 -22
- package/scripts/parse-lua-surface.ts +187 -0
- package/scripts/parse-luals.ts +473 -22
- package/scripts/parse-markdown-api.ts +247 -0
- package/scripts/parse-openapi-api.ts +313 -0
- package/scripts/sync-authored-types.ts +249 -0
- package/scripts/sync-library-types.ts +99 -3
- package/scripts/sync-luals-types.ts +29 -2
- package/scripts/sync-markdown-types.ts +761 -0
- package/scripts/sync-openapi-types.ts +308 -0
- package/scripts/sync-script-api-types.ts +367 -0
- package/api-doc/boom.boom.json +0 -26
- package/api-doc/bzAnim.bzLibrary.json +0 -156
- package/api-doc/defcon.console.json +0 -109
- package/api-doc/defsave.defsave.json +0 -175
- package/api-doc/deftest.deftest.json +0 -71
- package/api-doc/gooey.gooey.json +0 -963
- package/api-doc/immutable.immutable.json +0 -63
- package/api-doc/lang.lang.json +0 -411
- package/api-doc/log.log.json +0 -50
- package/api-doc/narrator.narrator.json +0 -150
- package/api-doc/proto.proto.json +0 -355
- package/api-doc/squid.squid.json +0 -660
- package/api-doc/tweener.tweener.json +0 -419
- package/generated/bridge.bridge.d.ts +0 -533
- package/generated/defcon.console.d.ts +0 -24
- package/generated/defsave.defsave.d.ts +0 -31
- package/generated/event.event.d.ts +0 -54
- package/generated/immutable.immutable.d.ts +0 -13
- package/generated/lang.lang.d.ts +0 -33
- package/generated/log.log.d.ts +0 -40
- package/generated/nakama.nakama.d.ts +0 -594
- package/generated/narrator.narrator.d.ts +0 -66
- package/generated/proto.proto.d.ts +0 -36
- package/generated/squid.squid.d.ts +0 -106
- package/generated/tweener.tweener.d.ts +0 -151
- /package/generated/{deftest.deftest.d.ts → deftest.d.ts} +0 -0
- /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
|
+
}
|