@defold-typescript/types 0.38.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 +586 -480
- package/examples/translations.json +356 -180
- package/generated/b2d_body.d.ts +7 -4
- package/generated/b2d_shape.d.ts +23 -1
- package/generated/buffer.d.ts +34 -19
- package/generated/camera.d.ts +3 -2
- package/generated/collectionfactory.d.ts +17 -12
- package/generated/collectionproxy.d.ts +2 -2
- package/generated/compute.d.ts +1 -1
- package/generated/factory.d.ts +2 -1
- package/generated/go.d.ts +150 -91
- package/generated/graphics.d.ts +54 -0
- package/generated/gui.d.ts +117 -71
- package/generated/html5.d.ts +4 -2
- package/generated/http.d.ts +8 -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 +41 -7
- package/generated/particlefx.d.ts +1 -1
- package/generated/physics.d.ts +29 -20
- package/generated/profiler.d.ts +10 -3
- package/generated/render.d.ts +293 -111
- package/generated/resource.d.ts +243 -226
- package/generated/socket.d.ts +33 -18
- package/generated/sound.d.ts +6 -5
- package/generated/sprite.d.ts +9 -1
- package/generated/sys.d.ts +44 -27
- package/generated/tilemap.d.ts +25 -19
- package/generated/timer.d.ts +33 -24
- package/generated/versions/defold-1.12.4/buffer.d.ts +34 -19
- package/generated/versions/defold-1.12.4/camera.d.ts +3 -2
- package/generated/versions/defold-1.12.4/collectionfactory.d.ts +17 -12
- package/generated/versions/defold-1.12.4/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.12.4/factory.d.ts +2 -1
- package/generated/versions/defold-1.12.4/go.d.ts +150 -91
- package/generated/versions/defold-1.12.4/graphics.d.ts +2 -0
- package/generated/versions/defold-1.12.4/gui.d.ts +109 -69
- package/generated/versions/defold-1.12.4/html5.d.ts +4 -2
- package/generated/versions/defold-1.12.4/http.d.ts +8 -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 +41 -7
- package/generated/versions/defold-1.12.4/particlefx.d.ts +1 -1
- package/generated/versions/defold-1.12.4/physics.d.ts +29 -20
- package/generated/versions/defold-1.12.4/profiler.d.ts +10 -3
- package/generated/versions/defold-1.12.4/render.d.ts +292 -110
- package/generated/versions/defold-1.12.4/resource.d.ts +243 -226
- package/generated/versions/defold-1.12.4/socket.d.ts +33 -18
- package/generated/versions/defold-1.12.4/sound.d.ts +6 -5
- package/generated/versions/defold-1.12.4/sprite.d.ts +9 -1
- package/generated/versions/defold-1.12.4/sys.d.ts +44 -27
- package/generated/versions/defold-1.12.4/tilemap.d.ts +25 -19
- package/generated/versions/defold-1.12.4/timer.d.ts +33 -24
- package/generated/versions/defold-1.12.4/vmath.d.ts +18 -10
- package/generated/versions/defold-1.12.4/window.d.ts +5 -3
- package/generated/versions/defold-1.13.0/b2d_body.d.ts +7 -4
- package/generated/versions/defold-1.13.0/b2d_shape.d.ts +23 -1
- package/generated/versions/defold-1.13.0/buffer.d.ts +34 -19
- package/generated/versions/defold-1.13.0/camera.d.ts +3 -2
- package/generated/versions/defold-1.13.0/collectionfactory.d.ts +17 -12
- package/generated/versions/defold-1.13.0/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.13.0/compute.d.ts +1 -1
- package/generated/versions/defold-1.13.0/factory.d.ts +2 -1
- package/generated/versions/defold-1.13.0/go.d.ts +150 -91
- package/generated/versions/defold-1.13.0/graphics.d.ts +50 -0
- package/generated/versions/defold-1.13.0/gui.d.ts +109 -69
- package/generated/versions/defold-1.13.0/html5.d.ts +4 -2
- package/generated/versions/defold-1.13.0/http.d.ts +8 -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 +41 -7
- package/generated/versions/defold-1.13.0/particlefx.d.ts +1 -1
- package/generated/versions/defold-1.13.0/physics.d.ts +29 -20
- package/generated/versions/defold-1.13.0/profiler.d.ts +10 -3
- package/generated/versions/defold-1.13.0/render.d.ts +293 -111
- package/generated/versions/defold-1.13.0/resource.d.ts +243 -226
- package/generated/versions/defold-1.13.0/socket.d.ts +33 -18
- package/generated/versions/defold-1.13.0/sound.d.ts +6 -5
- package/generated/versions/defold-1.13.0/sprite.d.ts +9 -1
- package/generated/versions/defold-1.13.0/sys.d.ts +44 -27
- package/generated/versions/defold-1.13.0/tilemap.d.ts +25 -19
- package/generated/versions/defold-1.13.0/timer.d.ts +33 -24
- package/generated/versions/defold-1.13.0/vmath.d.ts +18 -10
- package/generated/versions/defold-1.13.0/window.d.ts +5 -3
- package/generated/vmath.d.ts +18 -10
- package/generated/window.d.ts +5 -3
- package/index.d.ts +1 -0
- package/package.json +2 -1
- package/scripts/generate-api-signatures.ts +2 -1
- package/scripts/prose-constants.ts +96 -0
- package/scripts/regen.ts +6 -2
- package/src/api-doc.ts +8 -0
- 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 +247 -43
- package/src/emit-dts.ts +958 -57
- package/src/engine-globals.d.ts +2 -2
- package/src/example-store.ts +26 -0
- package/src/go-overloads.d.ts +11 -10
- package/src/index.ts +9 -0
- package/src/param-correction-provenance.ts +67 -0
- package/src/render-overloads.d.ts +15 -17
- 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/example-store.ts
CHANGED
|
@@ -51,3 +51,29 @@ export function lookupTranslation(
|
|
|
51
51
|
const match = entries.find((entry) => entry.sourceHash === sourceHash);
|
|
52
52
|
return match ? match.ts : null;
|
|
53
53
|
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* The stored bodies for a blob's segment hashes, in the order given, or `null`
|
|
57
|
+
* the moment one of them does not resolve.
|
|
58
|
+
*
|
|
59
|
+
* All-or-nothing on purpose: an element whose blob carries several examples is
|
|
60
|
+
* emitted as several `@example` blocks only when every one of them has an
|
|
61
|
+
* authored body. A partial resolve would document some of the element's
|
|
62
|
+
* examples and silently drop the rest, so the caller falls back to the
|
|
63
|
+
* whole-blob body instead. An empty hash list is a miss for the same reason —
|
|
64
|
+
* it would otherwise report success while documenting nothing.
|
|
65
|
+
*/
|
|
66
|
+
export function lookupExampleTranslations(
|
|
67
|
+
store: TranslationStore,
|
|
68
|
+
fqn: string,
|
|
69
|
+
sourceHashes: readonly string[],
|
|
70
|
+
): string[] | null {
|
|
71
|
+
if (sourceHashes.length === 0) return null;
|
|
72
|
+
const bodies: string[] = [];
|
|
73
|
+
for (const sourceHash of sourceHashes) {
|
|
74
|
+
const ts = lookupTranslation(store, fqn, sourceHash);
|
|
75
|
+
if (ts === null) return null;
|
|
76
|
+
bodies.push(ts);
|
|
77
|
+
}
|
|
78
|
+
return bodies;
|
|
79
|
+
}
|
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
|
@@ -35,10 +35,14 @@ export {
|
|
|
35
35
|
} from "./core-types";
|
|
36
36
|
export {
|
|
37
37
|
type DocCommentParts,
|
|
38
|
+
type ExampleSegment,
|
|
39
|
+
type ExampleSegmentation,
|
|
38
40
|
examplesHtmlToMarkdown,
|
|
39
41
|
htmlToCodeText,
|
|
40
42
|
htmlToDocText,
|
|
41
43
|
renderDocComment,
|
|
44
|
+
segmentExampleRegions,
|
|
45
|
+
splitExampleSources,
|
|
42
46
|
} from "./doc-comment";
|
|
43
47
|
export {
|
|
44
48
|
defineEditorScript,
|
|
@@ -49,6 +53,10 @@ export {
|
|
|
49
53
|
type EmitOptions,
|
|
50
54
|
emitDeclarations,
|
|
51
55
|
emitSymbolSignatures,
|
|
56
|
+
firstSlotAlternativeOf,
|
|
57
|
+
PARAM_DOC_REWRITES,
|
|
58
|
+
type ParamDocRewrite,
|
|
59
|
+
rewriteParamDoc,
|
|
52
60
|
type SlotTypes,
|
|
53
61
|
type SymbolSignature,
|
|
54
62
|
TS_IDENTIFIER,
|
|
@@ -56,6 +64,7 @@ export {
|
|
|
56
64
|
} from "./emit-dts";
|
|
57
65
|
export {
|
|
58
66
|
hashExampleSource,
|
|
67
|
+
lookupExampleTranslations,
|
|
59
68
|
lookupTranslation,
|
|
60
69
|
type Translation,
|
|
61
70
|
type TranslationStore,
|
|
@@ -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
|
+
}
|
|
@@ -4,23 +4,6 @@ import type { Opaque } from "./core-types";
|
|
|
4
4
|
|
|
5
5
|
declare global {
|
|
6
6
|
namespace render {
|
|
7
|
-
/**
|
|
8
|
-
* The buffer keys `render.clear` accepts: the three `graphics.BUFFER_TYPE_*`
|
|
9
|
-
* constants the reference names. Declare the clear table with this alias —
|
|
10
|
-
* `LuaMap`'s iterator makes its key parameter invariant, so a
|
|
11
|
-
* `LuaMap<number, ...>` is not assignable however its entries were set.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```ts
|
|
15
|
-
* const buffers = new LuaMap<render.ClearBufferKey, number | Vector4>();
|
|
16
|
-
* buffers.set(graphics.BUFFER_TYPE_COLOR0_BIT, vmath.vector4(0, 0, 0, 0));
|
|
17
|
-
* render.clear(buffers);
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
type ClearBufferKey =
|
|
21
|
-
| typeof graphics.BUFFER_TYPE_COLOR0_BIT
|
|
22
|
-
| typeof graphics.BUFFER_TYPE_DEPTH_BIT
|
|
23
|
-
| typeof graphics.BUFFER_TYPE_STENCIL_BIT;
|
|
24
7
|
/**
|
|
25
8
|
* Creates a new render target according to the supplied specification table.
|
|
26
9
|
* The parameter table is keyed by buffer type, with one parameter table per
|
|
@@ -42,5 +25,20 @@ declare global {
|
|
|
42
25
|
name: string,
|
|
43
26
|
parameters: Record<string | number, unknown>,
|
|
44
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
|
+
};
|
|
45
43
|
}
|
|
46
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("|")
|