@defold-typescript/types 0.39.0 → 0.40.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 +117 -0
- package/api-signatures.json +262 -237
- package/examples/translations.json +81 -81
- package/generated/b2d_shape.d.ts +23 -1
- package/generated/buffer.d.ts +18 -15
- package/generated/camera.d.ts +2 -2
- package/generated/collectionfactory.d.ts +12 -10
- package/generated/collectionproxy.d.ts +1 -1
- package/generated/compute.d.ts +1 -1
- package/generated/go.d.ts +9 -5
- package/generated/graphics.d.ts +52 -0
- package/generated/gui.d.ts +53 -32
- package/generated/html5.d.ts +3 -1
- package/generated/http.d.ts +4 -2
- package/generated/image.d.ts +24 -15
- package/generated/kinds/gui-script.d.ts +1 -0
- package/generated/kinds/render-script.d.ts +1 -0
- package/generated/kinds/script.d.ts +1 -0
- package/generated/material.d.ts +1 -1
- package/generated/model.d.ts +32 -3
- package/generated/physics.d.ts +13 -11
- package/generated/profiler.d.ts +1 -1
- package/generated/render.d.ts +72 -15
- package/generated/resource.d.ts +100 -69
- package/generated/socket.d.ts +23 -13
- package/generated/sound.d.ts +3 -3
- package/generated/sprite.d.ts +9 -1
- package/generated/sys.d.ts +34 -23
- package/generated/versions/defold-1.12.4/buffer.d.ts +18 -15
- package/generated/versions/defold-1.12.4/camera.d.ts +2 -2
- package/generated/versions/defold-1.12.4/collectionfactory.d.ts +12 -10
- package/generated/versions/defold-1.12.4/go.d.ts +9 -5
- package/generated/versions/defold-1.12.4/gui.d.ts +47 -31
- package/generated/versions/defold-1.12.4/html5.d.ts +3 -1
- package/generated/versions/defold-1.12.4/http.d.ts +4 -2
- package/generated/versions/defold-1.12.4/image.d.ts +24 -15
- package/generated/versions/defold-1.12.4/index.d.ts +1 -0
- package/generated/versions/defold-1.12.4/model.d.ts +32 -3
- package/generated/versions/defold-1.12.4/physics.d.ts +13 -11
- package/generated/versions/defold-1.12.4/profiler.d.ts +1 -1
- package/generated/versions/defold-1.12.4/render.d.ts +72 -15
- package/generated/versions/defold-1.12.4/resource.d.ts +100 -69
- package/generated/versions/defold-1.12.4/socket.d.ts +23 -13
- package/generated/versions/defold-1.12.4/sound.d.ts +3 -3
- package/generated/versions/defold-1.12.4/sprite.d.ts +9 -1
- package/generated/versions/defold-1.12.4/sys.d.ts +34 -23
- package/generated/versions/defold-1.12.4/vmath.d.ts +5 -5
- package/generated/versions/defold-1.13.0/b2d_shape.d.ts +23 -1
- package/generated/versions/defold-1.13.0/buffer.d.ts +18 -15
- package/generated/versions/defold-1.13.0/camera.d.ts +2 -2
- package/generated/versions/defold-1.13.0/collectionfactory.d.ts +12 -10
- package/generated/versions/defold-1.13.0/compute.d.ts +1 -1
- package/generated/versions/defold-1.13.0/go.d.ts +9 -5
- package/generated/versions/defold-1.13.0/graphics.d.ts +48 -0
- package/generated/versions/defold-1.13.0/gui.d.ts +47 -31
- package/generated/versions/defold-1.13.0/html5.d.ts +3 -1
- package/generated/versions/defold-1.13.0/http.d.ts +4 -2
- package/generated/versions/defold-1.13.0/image.d.ts +24 -15
- package/generated/versions/defold-1.13.0/index.d.ts +1 -0
- package/generated/versions/defold-1.13.0/material.d.ts +1 -1
- package/generated/versions/defold-1.13.0/model.d.ts +32 -3
- package/generated/versions/defold-1.13.0/physics.d.ts +13 -11
- package/generated/versions/defold-1.13.0/profiler.d.ts +1 -1
- package/generated/versions/defold-1.13.0/render.d.ts +72 -15
- package/generated/versions/defold-1.13.0/resource.d.ts +100 -69
- package/generated/versions/defold-1.13.0/socket.d.ts +23 -13
- package/generated/versions/defold-1.13.0/sound.d.ts +3 -3
- package/generated/versions/defold-1.13.0/sprite.d.ts +9 -1
- package/generated/versions/defold-1.13.0/sys.d.ts +34 -23
- package/generated/versions/defold-1.13.0/vmath.d.ts +5 -5
- package/generated/vmath.d.ts +5 -5
- package/index.d.ts +1 -0
- package/package.json +1 -1
- package/scripts/generate-api-signatures.ts +2 -1
- package/scripts/prose-constants.ts +96 -0
- package/scripts/regen.ts +6 -2
- package/src/component-properties.d.ts +33 -0
- package/src/core-types.ts +4 -2
- package/src/custom-messages.d.ts +4 -3
- package/src/doc-comment.ts +35 -12
- package/src/emit-dts.ts +457 -47
- package/src/engine-globals.d.ts +2 -2
- package/src/go-overloads.d.ts +11 -10
- package/src/index.ts +4 -0
- package/src/param-correction-provenance.ts +67 -0
- package/src/render-overloads.d.ts +15 -0
- package/src/script-api.ts +3 -1
package/src/engine-globals.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ declare global {
|
|
|
12
12
|
function hash<S extends string>(s: S): Core.Hash<S>;
|
|
13
13
|
/** Render a `Hash` handle as its hexadecimal string. */
|
|
14
14
|
function hash_to_hex(h: Core.Hash): string;
|
|
15
|
-
/** Pretty-print any
|
|
16
|
-
function pprint(
|
|
15
|
+
/** Pretty-print any values to the console for debugging. */
|
|
16
|
+
function pprint(...args: unknown[]): void;
|
|
17
17
|
/**
|
|
18
18
|
* A typed handle to a resource the engine owns — a GUI node, a texture, a
|
|
19
19
|
* render target, a physics body, a socket, and so on. You get one back from an
|
package/src/go-overloads.d.ts
CHANGED
|
@@ -9,9 +9,10 @@ interface ScriptProperty<TValue> {
|
|
|
9
9
|
declare global {
|
|
10
10
|
namespace go {
|
|
11
11
|
interface GoPropertyOptions {
|
|
12
|
+
/** Zero-based element index into an array property; the transpiler emits Defold's 1-based index. */
|
|
12
13
|
index?: number;
|
|
13
|
-
key?: Hash;
|
|
14
|
-
keys?:
|
|
14
|
+
key?: Hash | string;
|
|
15
|
+
keys?: (Hash | string)[];
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -20,9 +21,9 @@ declare global {
|
|
|
20
21
|
* @param url - url of the game object or component having the property
|
|
21
22
|
* @param property - id of the property to retrieve
|
|
22
23
|
* @param options - optional options table
|
|
23
|
-
* - index number index into array property
|
|
24
|
-
* - key hash name of internal property
|
|
25
|
-
* - keys
|
|
24
|
+
* - index number zero-based index into array property; the transpiler emits Defold's 1-based index
|
|
25
|
+
* - key hash or string name of internal property
|
|
26
|
+
* - keys array of hashes or strings identifying internal component resources (e.g. a particle fx emitter, see examples below)
|
|
26
27
|
* @returns the value of the specified property
|
|
27
28
|
* @example
|
|
28
29
|
* ```ts
|
|
@@ -52,11 +53,11 @@ declare global {
|
|
|
52
53
|
*
|
|
53
54
|
* @param url - url of the game object or component having the property
|
|
54
55
|
* @param property - id of the property to set
|
|
55
|
-
* @param value - the value to set
|
|
56
|
+
* @param value - the value to set, or an array of vector4 to set a material property array
|
|
56
57
|
* @param options - optional options table
|
|
57
|
-
* - index integer index into array property
|
|
58
|
-
* - key hash name of internal property
|
|
59
|
-
* - keys
|
|
58
|
+
* - index integer zero-based index into array property; the transpiler emits Defold's 1-based index
|
|
59
|
+
* - key hash or string name of internal property
|
|
60
|
+
* - keys array of hashes or strings identifying internal component resources (e.g. a particle fx emitter, see examples below)
|
|
60
61
|
* @example
|
|
61
62
|
* ```ts
|
|
62
63
|
* go.set("#sprite", "tint", vmath.vector4(1, 0, 0, 1));
|
|
@@ -80,7 +81,7 @@ declare global {
|
|
|
80
81
|
function set(
|
|
81
82
|
url: SceneAddress | Hash | Url,
|
|
82
83
|
property: string | Hash,
|
|
83
|
-
value: number | boolean | Hash | Url | Vector3 | Vector4 | Quaternion,
|
|
84
|
+
value: number | boolean | Hash | Url | Vector3 | Vector4 | Quaternion | Vector4[],
|
|
84
85
|
options?: GoPropertyOptions,
|
|
85
86
|
): void;
|
|
86
87
|
/**
|
package/src/index.ts
CHANGED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { type ApiModule, parseDefoldApiDoc } from "./api-doc";
|
|
2
|
+
import type { ParamTypeCorrection } from "./emit-dts";
|
|
3
|
+
import type { ProvenanceSurface } from "./optional-correction-provenance";
|
|
4
|
+
|
|
5
|
+
export interface ParamTypeProvenance {
|
|
6
|
+
readonly key: string;
|
|
7
|
+
readonly sightedIn: readonly string[];
|
|
8
|
+
readonly neededBy: readonly string[];
|
|
9
|
+
readonly resolvedIn: readonly string[];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const PARAM_SEPARATOR = ":param:";
|
|
13
|
+
|
|
14
|
+
// `nil` is optionality, which `isDocOptional` owns; the correction replaces only
|
|
15
|
+
// the concrete tokens, so only those are evidence.
|
|
16
|
+
function baseTokens(tokens: readonly string[]): string {
|
|
17
|
+
return tokens.filter((token) => token !== "nil").join("|");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// A target needs a correction while any declaration of the slot there still
|
|
21
|
+
// states the pinned tokens, so an overload that shows the defect keeps it alive.
|
|
22
|
+
// Any other declared token set — fixed or retyped — no longer carries the
|
|
23
|
+
// contradiction the entry records, and the entry goes once no target needs it.
|
|
24
|
+
export function paramCorrectionProvenance(
|
|
25
|
+
entries: readonly [string, ParamTypeCorrection][],
|
|
26
|
+
surfaces: readonly ProvenanceSurface[],
|
|
27
|
+
): ParamTypeProvenance[] {
|
|
28
|
+
const parsed = new Map<ProvenanceSurface, ApiModule>();
|
|
29
|
+
const parse = (surface: ProvenanceSurface): ApiModule => {
|
|
30
|
+
let module = parsed.get(surface);
|
|
31
|
+
if (!module) {
|
|
32
|
+
module = parseDefoldApiDoc(surface.doc);
|
|
33
|
+
parsed.set(surface, module);
|
|
34
|
+
}
|
|
35
|
+
return module;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
return entries.map(([key, correction]) => {
|
|
39
|
+
const separator = key.lastIndexOf(PARAM_SEPARATOR);
|
|
40
|
+
if (separator < 0) throw new Error(`paramCorrectionProvenance: malformed key ${key}`);
|
|
41
|
+
const element = key.slice(0, separator);
|
|
42
|
+
const slot = key.slice(separator + PARAM_SEPARATOR.length);
|
|
43
|
+
const namespace = element.slice(0, element.lastIndexOf("."));
|
|
44
|
+
const pinned = baseTokens(correction.upstream);
|
|
45
|
+
|
|
46
|
+
const neededByTarget = new Map<string, boolean>();
|
|
47
|
+
for (const surface of surfaces) {
|
|
48
|
+
if (surface.namespace !== namespace) continue;
|
|
49
|
+
for (const fn of parse(surface).functions) {
|
|
50
|
+
if (fn.name !== element) continue;
|
|
51
|
+
for (const parameter of fn.parameters) {
|
|
52
|
+
if (parameter.name !== slot) continue;
|
|
53
|
+
const needed = neededByTarget.get(surface.target) ?? false;
|
|
54
|
+
neededByTarget.set(surface.target, needed || baseTokens(parameter.types) === pinned);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const sightedIn = [...neededByTarget.keys()].sort();
|
|
60
|
+
return {
|
|
61
|
+
key,
|
|
62
|
+
sightedIn,
|
|
63
|
+
neededBy: sightedIn.filter((target) => neededByTarget.get(target) === true),
|
|
64
|
+
resolvedIn: sightedIn.filter((target) => neededByTarget.get(target) === false),
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
}
|
|
@@ -25,5 +25,20 @@ declare global {
|
|
|
25
25
|
name: string,
|
|
26
26
|
parameters: Record<string | number, unknown>,
|
|
27
27
|
): Opaque<"render_target">;
|
|
28
|
+
/**
|
|
29
|
+
* The rendering context was lost. Rendering is paused and all graphics
|
|
30
|
+
* resources become invalid. Passed to the `render.set_listener` callback.
|
|
31
|
+
*/
|
|
32
|
+
const CONTEXT_EVENT_CONTEXT_LOST: number & {
|
|
33
|
+
readonly __brand: "render.CONTEXT_EVENT_CONTEXT_LOST";
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* The rendering context was restored. Rendering is still paused and graphics
|
|
37
|
+
* resources are still invalid, but can be reloaded. Passed to the
|
|
38
|
+
* `render.set_listener` callback.
|
|
39
|
+
*/
|
|
40
|
+
const CONTEXT_EVENT_CONTEXT_RESTORED: number & {
|
|
41
|
+
readonly __brand: "render.CONTEXT_EVENT_CONTEXT_RESTORED";
|
|
42
|
+
};
|
|
28
43
|
}
|
|
29
44
|
}
|
package/src/script-api.ts
CHANGED
|
@@ -49,8 +49,10 @@ function stringOr(value: unknown, fallback: string): string {
|
|
|
49
49
|
|
|
50
50
|
// A `.script_api` `type:` may spell a union inline (`string | nil`), where the
|
|
51
51
|
// core ref-doc format carries one token per alternative. Splitting here keeps the
|
|
52
|
-
// downstream emitter and fidelity resolver working in single tokens.
|
|
52
|
+
// downstream emitter and fidelity resolver working in single tokens. A `type:`
|
|
53
|
+
// may also be a YAML list (`[table, string]`), one alternative per entry.
|
|
53
54
|
function splitTypeTokens(type: unknown): string[] {
|
|
55
|
+
if (Array.isArray(type)) return type.flatMap(splitTypeTokens);
|
|
54
56
|
if (typeof type !== "string") return [];
|
|
55
57
|
return type
|
|
56
58
|
.split("|")
|