@defold-typescript/types 0.1.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-targets.json +84 -0
- package/generated/b2d.d.ts +13 -0
- package/generated/buffer.d.ts +25 -0
- package/generated/builtin-messages.d.ts +42 -0
- package/generated/camera.d.ts +7 -0
- package/generated/collectionfactory.d.ts +17 -0
- package/generated/collectionproxy.d.ts +14 -0
- package/generated/crash.d.ts +31 -0
- package/generated/factory.d.ts +17 -0
- package/generated/go.d.ts +96 -0
- package/generated/graphics.d.ts +115 -0
- package/generated/gui.d.ts +245 -0
- package/generated/http.d.ts +8 -0
- package/generated/iac.d.ts +8 -0
- package/generated/iap.d.ts +16 -0
- package/generated/image.d.ts +16 -0
- package/generated/json.d.ts +11 -0
- package/generated/kinds/gui-script.d.ts +39 -0
- package/generated/kinds/render-script.d.ts +39 -0
- package/generated/kinds/script.d.ts +38 -0
- package/generated/label.d.ts +23 -0
- package/generated/liveupdate.d.ts +23 -0
- package/generated/model.d.ts +23 -0
- package/generated/msg.d.ts +12 -0
- package/generated/particlefx.d.ts +22 -0
- package/generated/physics.d.ts +47 -0
- package/generated/profiler.d.ts +28 -0
- package/generated/push.d.ts +15 -0
- package/generated/render.d.ts +55 -0
- package/generated/resource.d.ts +33 -0
- package/generated/socket.d.ts +25 -0
- package/generated/sound.d.ts +28 -0
- package/generated/sprite.d.ts +23 -0
- package/generated/sys.d.ts +37 -0
- package/generated/tilemap.d.ts +24 -0
- package/generated/timer.d.ts +12 -0
- package/generated/vmath.d.ts +63 -0
- package/generated/webview.d.ts +15 -0
- package/generated/window.d.ts +28 -0
- package/generated/zlib.d.ts +9 -0
- package/index.d.ts +63 -0
- package/package.json +46 -0
- package/scripts/doc-source.ts +100 -0
- package/scripts/fidelity-audit.ts +311 -0
- package/scripts/fidelity-baseline.json +282 -0
- package/scripts/materialize-version.ts +51 -0
- package/scripts/regen.ts +294 -0
- package/scripts/sync-api-docs.ts +375 -0
- package/src/api-doc.ts +168 -0
- package/src/core-types.ts +121 -0
- package/src/emit-dts.ts +754 -0
- package/src/emit-messages.ts +148 -0
- package/src/go-overloads.d.ts +35 -0
- package/src/index.ts +24 -0
- package/src/lifecycle.ts +81 -0
- package/src/msg-overloads.d.ts +21 -0
- package/src/publish-dts.ts +33 -0
- package/src/script-api.ts +95 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Hash, Matrix4, Opaque, Url } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace render {
|
|
6
|
+
type constant_buffer = Opaque<"constant_buffer">;
|
|
7
|
+
type render_target = Opaque<"render_target">;
|
|
8
|
+
type texture = Opaque<"texture">;
|
|
9
|
+
const FRUSTUM_PLANES_ALL: number & { readonly __brand: "render.FRUSTUM_PLANES_ALL" };
|
|
10
|
+
const FRUSTUM_PLANES_SIDES: number & { readonly __brand: "render.FRUSTUM_PLANES_SIDES" };
|
|
11
|
+
const RENDER_TARGET_DEFAULT: number & { readonly __brand: "render.RENDER_TARGET_DEFAULT" };
|
|
12
|
+
const SORT_BACK_TO_FRONT: number & { readonly __brand: "render.SORT_BACK_TO_FRONT" };
|
|
13
|
+
const SORT_FRONT_TO_BACK: number & { readonly __brand: "render.SORT_FRONT_TO_BACK" };
|
|
14
|
+
const SORT_NONE: number & { readonly __brand: "render.SORT_NONE" };
|
|
15
|
+
function clear(buffers: Record<string | number, unknown>): void;
|
|
16
|
+
function constant_buffer(): Opaque<"constant_buffer">;
|
|
17
|
+
function delete_render_target(render_target: Opaque<"render_target">): void;
|
|
18
|
+
function disable_material(): void;
|
|
19
|
+
function disable_state(state: Opaque<"constant">): void;
|
|
20
|
+
function disable_texture(binding: Opaque<"texture"> | string | Hash): void;
|
|
21
|
+
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> }): void;
|
|
22
|
+
function draw(predicate: number, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer">; sort_order?: number }): void;
|
|
23
|
+
function draw_debug3d(options?: { frustum?: Matrix4; frustum_planes?: number }): void;
|
|
24
|
+
function enable_material(material_id: string | Hash): void;
|
|
25
|
+
function enable_state(state: Opaque<"constant">): void;
|
|
26
|
+
function enable_texture(binding: number | string | Hash, handle_or_name: Opaque<"texture"> | string | Hash, buffer_type?: number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR0_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR1_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR2_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR3_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_DEPTH_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_STENCIL_BIT" }): void;
|
|
27
|
+
function get_height(): number;
|
|
28
|
+
function get_render_target_height(render_target: Opaque<"render_target">, buffer_type: number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR0_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR1_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR2_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR3_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_DEPTH_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_STENCIL_BIT" }): number;
|
|
29
|
+
function get_render_target_width(render_target: Opaque<"render_target">, buffer_type: number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR0_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR1_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR2_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_COLOR3_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_DEPTH_BIT" } | number & { readonly __brand: "graphics.BUFFER_TYPE_STENCIL_BIT" }): number;
|
|
30
|
+
function get_width(): number;
|
|
31
|
+
function get_window_height(): number;
|
|
32
|
+
function get_window_width(): number;
|
|
33
|
+
function predicate(tags: Record<string | number, unknown>): number;
|
|
34
|
+
function render_target(name: string, parameters: Record<string | number, unknown>): Opaque<"render_target">;
|
|
35
|
+
function set_blend_func(source_factor: number, destination_factor: number): void;
|
|
36
|
+
function set_camera(camera?: Url | number, options?: { use_frustum?: boolean }): void;
|
|
37
|
+
function set_color_mask(red: boolean, green: boolean, blue: boolean, alpha: boolean): void;
|
|
38
|
+
function set_compute(compute?: string | Hash): void;
|
|
39
|
+
function set_cull_face(face_type: number): void;
|
|
40
|
+
function set_depth_func(func: number): void;
|
|
41
|
+
function set_depth_mask(depth: boolean): void;
|
|
42
|
+
function set_listener(callback?: (self: unknown, event_type: unknown) => void): void;
|
|
43
|
+
function set_polygon_offset(factor: number, units: number): void;
|
|
44
|
+
function set_projection(matrix: Matrix4): void;
|
|
45
|
+
function set_render_target(render_target: Opaque<"render_target">, options?: { transient?: Record<string | number, unknown> }): void;
|
|
46
|
+
function set_render_target_size(render_target: Opaque<"render_target">, width: number, height: number): void;
|
|
47
|
+
function set_stencil_func(func: number, ref: number, mask: number): void;
|
|
48
|
+
function set_stencil_mask(mask: number): void;
|
|
49
|
+
function set_stencil_op(sfail: number, dpfail: number, dppass: number): void;
|
|
50
|
+
function set_view(matrix: Matrix4): void;
|
|
51
|
+
function set_viewport(x: number, y: number, width: number, height: number): void;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Hash, Opaque } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace resource {
|
|
6
|
+
function atlas(path?: string): Hash;
|
|
7
|
+
function buffer(path?: string): Hash;
|
|
8
|
+
function create_atlas(path: string, table: { texture?: string | Hash; animations?: { id?: string; width?: number; height?: number; frame_start?: number; frame_end?: number; playback?: Opaque<"constant">; fps?: number; flip_vertical?: boolean; flip_horizontal?: boolean }[]; geometries?: { id?: string; width?: number; height?: number; pivot_x?: number; pivot_y?: number; rotated?: boolean }[]; vertices?: number[]; uvs?: number[]; indices?: number[] }): Hash;
|
|
9
|
+
function create_buffer(path: string, table?: { buffer?: Opaque<"buffer">; transfer_ownership?: boolean }): Hash;
|
|
10
|
+
function create_sound_data(path: string, options?: { data?: string; filesize?: number; partial?: boolean }): Hash;
|
|
11
|
+
function create_texture(path: string, table: { type?: number; width?: number; height?: number; depth?: number; format?: number; flags?: number; max_mipmaps?: number; compression_type?: number }, buffer: Opaque<"buffer">): Hash;
|
|
12
|
+
function create_texture_async(path: string | Hash, table: { type?: number; width?: number; height?: number; depth?: number; format?: number; flags?: number; max_mipmaps?: number; compression_type?: number }, buffer: Opaque<"buffer">, callback: (...args: unknown[]) => unknown): LuaMultiReturn<[Hash, number]>;
|
|
13
|
+
function font(path?: string): Hash;
|
|
14
|
+
function get_atlas(path: Hash | string): { texture: string | Hash; animations: { id: string; width: number; height: number; frame_start: number; frame_end: number; playback: Opaque<"constant">; fps: number; flip_vertical: boolean; flip_horizontal: boolean }[]; geometries: Record<string | number, unknown> };
|
|
15
|
+
function get_buffer(path: Hash | string): Opaque<"buffer">;
|
|
16
|
+
function get_render_target_info(path: Hash | string | number): { handle: number; width: number; height: number; depth: number; mipmaps: number; type: number; buffer_type: number; texture: Hash };
|
|
17
|
+
function get_text_metrics(url: Hash, text: string, options?: { width?: number; leading?: number; tracking?: number; line_break?: boolean }): Record<string | number, unknown>;
|
|
18
|
+
function get_texture_info(path: Hash | string | number): { handle: number; width: number; height: number; depth: number; page_count: number; mipmaps: number; flags: number; type: number };
|
|
19
|
+
function load(path: string): Opaque<"buffer">;
|
|
20
|
+
function material(path?: string): Hash;
|
|
21
|
+
function release(path: Hash | string): void;
|
|
22
|
+
function render_target(path?: string): Hash;
|
|
23
|
+
function set(path: string | Hash, buffer: Opaque<"buffer">): void;
|
|
24
|
+
function set_atlas(path: Hash | string, table: { texture?: string | Hash; animations?: { id?: string; width?: number; height?: number; frame_start?: number; frame_end?: number; playback?: Opaque<"constant">; fps?: number; flip_vertical?: boolean; flip_horizontal?: boolean }[]; geometries?: Record<string | number, unknown>; vertices?: number[]; uvs?: number[]; indices?: number[] }): void;
|
|
25
|
+
function set_buffer(path: Hash | string, buffer: Opaque<"buffer">, table?: { transfer_ownership?: boolean }): void;
|
|
26
|
+
function set_sound(path: Hash | string, buffer: string): void;
|
|
27
|
+
function set_texture(path: Hash | string, table: { type?: number; width?: number; height?: number; format?: number; x?: number; y?: number; z?: number; page?: number; mipmap?: number; compression_type?: number }, buffer: Opaque<"buffer">): void;
|
|
28
|
+
function texture(path?: string): Hash;
|
|
29
|
+
function tile_source(path?: string): Hash;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Opaque } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace socket {
|
|
6
|
+
type client = Opaque<"client">;
|
|
7
|
+
type master = Opaque<"master">;
|
|
8
|
+
type unconnected = Opaque<"unconnected">;
|
|
9
|
+
const _SETSIZE: number & { readonly __brand: "socket._SETSIZE" };
|
|
10
|
+
const _VERSION: number & { readonly __brand: "socket._VERSION" };
|
|
11
|
+
function connect(address: string, port: number, locaddr?: string, locport?: number, family?: string): LuaMultiReturn<[Opaque<"client"> | unknown, string | unknown]>;
|
|
12
|
+
function gettime(): number;
|
|
13
|
+
function newtry(finalizer: () => void): (...args: unknown[]) => unknown;
|
|
14
|
+
function protect(func: (...args: unknown[]) => unknown): (arg0: unknown) => void;
|
|
15
|
+
function select(recvt: Record<string | number, unknown>, sendt: Record<string | number, unknown>, timeout?: number): LuaMultiReturn<[Record<string | number, unknown>, Record<string | number, unknown>, string | unknown]>;
|
|
16
|
+
function skip(d: number, ret1?: unknown, ret2?: unknown, retN?: unknown): LuaMultiReturn<[unknown, unknown, unknown]>;
|
|
17
|
+
function sleep(time: number): void;
|
|
18
|
+
function tcp(): LuaMultiReturn<[Opaque<"master"> | unknown, string | unknown]>;
|
|
19
|
+
function tcp6(): LuaMultiReturn<[Opaque<"master"> | unknown, string | unknown]>;
|
|
20
|
+
function udp(): LuaMultiReturn<[Opaque<"unconnected"> | unknown, string | unknown]>;
|
|
21
|
+
function udp6(): LuaMultiReturn<[Opaque<"unconnected"> | unknown, string | unknown]>;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Hash, Url } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace sound {
|
|
6
|
+
function get_group_gain(group: string | Hash): number;
|
|
7
|
+
function get_group_name(group: string | Hash): string;
|
|
8
|
+
function get_groups(): Hash[];
|
|
9
|
+
function get_peak(group: string | Hash, window: number): LuaMultiReturn<[number, number]>;
|
|
10
|
+
function get_rms(group: string | Hash, window: number): LuaMultiReturn<[number, number]>;
|
|
11
|
+
function is_music_playing(): boolean;
|
|
12
|
+
function is_phone_call_active(): boolean;
|
|
13
|
+
function pause(url: string | Hash | Url, pause: boolean): void;
|
|
14
|
+
function play(url: string | Hash | Url, play_properties?: { delay?: number; gain?: number; pan?: number; speed?: number; start_time?: number; start_frame?: number }, complete_function?: (self: unknown, message_id: unknown, message: unknown, sender: unknown) => void): number;
|
|
15
|
+
function set_gain(url: string | Hash | Url, gain?: number): void;
|
|
16
|
+
function set_group_gain(group: string | Hash, gain: number): void;
|
|
17
|
+
function set_pan(url: string | Hash | Url, pan?: number): void;
|
|
18
|
+
function stop(url: string | Hash | Url, stop_properties?: { play_id?: number }): void;
|
|
19
|
+
interface properties {
|
|
20
|
+
gain: number;
|
|
21
|
+
pan: number;
|
|
22
|
+
sound: Hash;
|
|
23
|
+
speed: number;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Hash, Url, Vector3, Vector4 } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace sprite {
|
|
6
|
+
function play_flipbook(url: string | Hash | Url, id: string | Hash, complete_function?: (self: unknown, message_id: unknown, message: unknown, sender: unknown) => void, play_properties?: { offset?: number; playback_rate?: number }): void;
|
|
7
|
+
function set_hflip(url: string | Hash | Url, flip: boolean): void;
|
|
8
|
+
function set_vflip(url: string | Hash | Url, flip: boolean): void;
|
|
9
|
+
interface properties {
|
|
10
|
+
animation: Hash;
|
|
11
|
+
cursor: number;
|
|
12
|
+
frame_count: Hash;
|
|
13
|
+
image: Hash;
|
|
14
|
+
material: Hash;
|
|
15
|
+
playback_rate: number;
|
|
16
|
+
scale: Vector3;
|
|
17
|
+
size: Vector3;
|
|
18
|
+
slice: Vector4;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Opaque } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace sys {
|
|
6
|
+
const NETWORK_CONNECTED: number & { readonly __brand: "sys.NETWORK_CONNECTED" };
|
|
7
|
+
const NETWORK_CONNECTED_CELLULAR: number & { readonly __brand: "sys.NETWORK_CONNECTED_CELLULAR" };
|
|
8
|
+
const NETWORK_DISCONNECTED: number & { readonly __brand: "sys.NETWORK_DISCONNECTED" };
|
|
9
|
+
function deserialize(buffer: string): Record<string | number, unknown>;
|
|
10
|
+
function exists(path: string): boolean;
|
|
11
|
+
function exit(code: number): void;
|
|
12
|
+
function get_application_info(app_string: string): { installed: boolean };
|
|
13
|
+
function get_application_path(): string;
|
|
14
|
+
function get_config_boolean(key: string, default_value?: boolean): boolean;
|
|
15
|
+
function get_config_int(key: string, default_value?: number): number;
|
|
16
|
+
function get_config_number(key: string, default_value?: number): number;
|
|
17
|
+
function get_config_string(key: string, default_value?: string): string;
|
|
18
|
+
function get_connectivity(): Opaque<"constant">;
|
|
19
|
+
function get_engine_info(): { version: string; version_sha1: string; is_debug: boolean };
|
|
20
|
+
function get_host_path(filename: string): string;
|
|
21
|
+
function get_ifaddrs(): { name: string; address: string; mac: string; up: boolean; running: boolean }[];
|
|
22
|
+
function get_save_file(application_id: string, file_name: string): string;
|
|
23
|
+
function get_sys_info(options?: { ignore_secure?: boolean }): { device_model: string; manufacturer: string; system_name: string; system_version: string; api_version: string; language: string; device_language: string; territory: string; gmt_offset: number; device_ident: string; user_agent: string };
|
|
24
|
+
function load(filename: string): Record<string | number, unknown>;
|
|
25
|
+
function load_resource(filename: string): LuaMultiReturn<[string | unknown, string | unknown]>;
|
|
26
|
+
function open_url(url: string, attributes?: { target?: string }): boolean;
|
|
27
|
+
function reboot(arg1?: string, arg2?: string, arg3?: string, arg4?: string, arg5?: string, arg6?: string): void;
|
|
28
|
+
function save(filename: string, table: Record<string | number, unknown>): void;
|
|
29
|
+
function serialize(table: Record<string | number, unknown>): string;
|
|
30
|
+
function set_connectivity_host(host: string): void;
|
|
31
|
+
function set_error_handler(error_handler: (source: unknown, message: unknown, traceback: unknown) => void): void;
|
|
32
|
+
function set_update_frequency(frequency: number): void;
|
|
33
|
+
function set_vsync_swap_interval(swap_interval: number): void;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Hash, Url } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace tilemap {
|
|
6
|
+
const H_FLIP: number & { readonly __brand: "tilemap.H_FLIP" };
|
|
7
|
+
const ROTATE_180: number & { readonly __brand: "tilemap.ROTATE_180" };
|
|
8
|
+
const ROTATE_270: number & { readonly __brand: "tilemap.ROTATE_270" };
|
|
9
|
+
const ROTATE_90: number & { readonly __brand: "tilemap.ROTATE_90" };
|
|
10
|
+
const V_FLIP: number & { readonly __brand: "tilemap.V_FLIP" };
|
|
11
|
+
function get_bounds(url: string | Hash | Url): LuaMultiReturn<[number, number, number, number]>;
|
|
12
|
+
function get_tile(url: string | Hash | Url, layer: string | Hash, x: number, y: number): number;
|
|
13
|
+
function get_tile_info(url: string | Hash | Url, layer: string | Hash, x: number, y: number): Record<string | number, unknown>;
|
|
14
|
+
function get_tiles(url: string | Hash | Url, layer: string | Hash): Record<string | number, unknown>;
|
|
15
|
+
function set_tile(url: string | Hash | Url, layer: string | Hash, x: number, y: number, tile: number, transform_bitmask?: number): void;
|
|
16
|
+
function set_visible(url: string | Hash | Url, layer: string | Hash, visible: boolean): void;
|
|
17
|
+
interface properties {
|
|
18
|
+
material: Hash;
|
|
19
|
+
tile_source: Hash;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
declare global {
|
|
3
|
+
namespace timer {
|
|
4
|
+
const INVALID_TIMER_HANDLE: number & { readonly __brand: "timer.INVALID_TIMER_HANDLE" };
|
|
5
|
+
function cancel(handle: number): boolean;
|
|
6
|
+
function delay(delay: number, repeating: boolean, callback: (self: unknown, handle: unknown, time_elapsed: unknown) => void): number;
|
|
7
|
+
function get_info(handle: number): { time_remaining: number; delay: number; repeating: boolean } | unknown;
|
|
8
|
+
function trigger(handle: number): boolean;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Matrix4, Quaternion, Vector, Vector3, Vector4 } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace vmath {
|
|
6
|
+
function clamp(value: number | Vector3 | Vector4, min: number | Vector3 | Vector4, max: number | Vector3 | Vector4): number | Vector3 | Vector4;
|
|
7
|
+
function conj(q1: Quaternion): Quaternion;
|
|
8
|
+
function cross(v1: Vector3, v2: Vector3): Vector3;
|
|
9
|
+
function dot(v1: Vector3 | Vector4, v2: Vector3 | Vector4): number;
|
|
10
|
+
function euler_to_quat(x: number | Vector3, y: number, z: number): Quaternion;
|
|
11
|
+
function inv(m1: Matrix4): Matrix4;
|
|
12
|
+
function length(v: Vector3 | Vector4 | Quaternion): number;
|
|
13
|
+
function length_sqr(v: Vector3 | Vector4 | Quaternion): number;
|
|
14
|
+
function lerp(t: number, v1: Vector3 | Vector4, v2: Vector3 | Vector4): Vector3 | Vector4;
|
|
15
|
+
function lerp(t: number, q1: Quaternion, q2: Quaternion): Quaternion;
|
|
16
|
+
function lerp(t: number, n1: number, n2: number): number;
|
|
17
|
+
function matrix4(): Matrix4;
|
|
18
|
+
function matrix4(m1: Matrix4): Matrix4;
|
|
19
|
+
function matrix4_axis_angle(v: Vector3, angle: number): Matrix4;
|
|
20
|
+
function matrix4_compose(translation: Vector3 | Vector4, rotation: Quaternion, scale: Vector3): Matrix4;
|
|
21
|
+
function matrix4_frustum(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4;
|
|
22
|
+
function matrix4_look_at(eye: Vector3, look_at: Vector3, up: Vector3): Matrix4;
|
|
23
|
+
function matrix4_orthographic(left: number, right: number, bottom: number, top: number, near: number, far: number): Matrix4;
|
|
24
|
+
function matrix4_perspective(fov: number, aspect: number, near: number, far: number): Matrix4;
|
|
25
|
+
function matrix4_quat(q: Quaternion): Matrix4;
|
|
26
|
+
function matrix4_rotation_x(angle: number): Matrix4;
|
|
27
|
+
function matrix4_rotation_y(angle: number): Matrix4;
|
|
28
|
+
function matrix4_rotation_z(angle: number): Matrix4;
|
|
29
|
+
function matrix4_scale(scale: Vector3): Matrix4;
|
|
30
|
+
function matrix4_scale(scale: number): Matrix4;
|
|
31
|
+
function matrix4_scale(scale_x: number, scale_y: number, scale_z: number): Matrix4;
|
|
32
|
+
function matrix4_translation(position: Vector3 | Vector4): Matrix4;
|
|
33
|
+
function mul_per_elem(v1: Vector3 | Vector4, v2: Vector3 | Vector4): Vector3 | Vector4;
|
|
34
|
+
function normalize(v1: Vector3 | Vector4 | Quaternion): Vector3 | Vector4 | Quaternion;
|
|
35
|
+
function ortho_inv(m1: Matrix4): Matrix4;
|
|
36
|
+
function project(v1: Vector3, v2: Vector3): number;
|
|
37
|
+
function quat(): Quaternion;
|
|
38
|
+
function quat(q1: Quaternion): Quaternion;
|
|
39
|
+
function quat(x: number, y: number, z: number, w: number): Quaternion;
|
|
40
|
+
function quat_axis_angle(v: Vector3, angle: number): Quaternion;
|
|
41
|
+
function quat_basis(x: Vector3, y: Vector3, z: Vector3): Quaternion;
|
|
42
|
+
function quat_from_to(v1: Vector3, v2: Vector3): Quaternion;
|
|
43
|
+
function quat_matrix4(matrix: Matrix4): Quaternion;
|
|
44
|
+
function quat_rotation_x(angle: number): Quaternion;
|
|
45
|
+
function quat_rotation_y(angle: number): Quaternion;
|
|
46
|
+
function quat_rotation_z(angle: number): Quaternion;
|
|
47
|
+
function quat_to_euler(q: Quaternion): LuaMultiReturn<[number, number, number]>;
|
|
48
|
+
function rotate(q: Quaternion, v1: Vector3): Vector3;
|
|
49
|
+
function slerp(t: number, v1: Vector3 | Vector4, v2: Vector3 | Vector4): Vector3 | Vector4;
|
|
50
|
+
function slerp(t: number, q1: Quaternion, q2: Quaternion): Quaternion;
|
|
51
|
+
function vector(t: number[]): Vector;
|
|
52
|
+
function vector3(): Vector3;
|
|
53
|
+
function vector3(n: number): Vector3;
|
|
54
|
+
function vector3(v1: Vector3): Vector3;
|
|
55
|
+
function vector3(x: number, y: number, z: number): Vector3;
|
|
56
|
+
function vector4(): Vector4;
|
|
57
|
+
function vector4(n: number): Vector4;
|
|
58
|
+
function vector4(v1: Vector4): Vector4;
|
|
59
|
+
function vector4(x: number, y: number, z: number, w: number): Vector4;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
declare global {
|
|
3
|
+
namespace webview {
|
|
4
|
+
function create(callback: (...args: unknown[]) => unknown): void;
|
|
5
|
+
function destroy(webview_id: number): void;
|
|
6
|
+
function eval(webview_id: number, code: string): void;
|
|
7
|
+
function is_visible(webview_id: number): void;
|
|
8
|
+
function open_raw(webview_id: number, html: string, options: Record<string | number, unknown>): void;
|
|
9
|
+
function set_position(webview_id: number, x: number, y: number, width: number, height: number): void;
|
|
10
|
+
function set_transparent(webview_id: number, transparent: boolean): void;
|
|
11
|
+
function set_visible(webview_id: number, visible: number): void;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Opaque } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
namespace window {
|
|
6
|
+
const DIMMING_OFF: number & { readonly __brand: "window.DIMMING_OFF" };
|
|
7
|
+
const DIMMING_ON: number & { readonly __brand: "window.DIMMING_ON" };
|
|
8
|
+
const DIMMING_UNKNOWN: number & { readonly __brand: "window.DIMMING_UNKNOWN" };
|
|
9
|
+
const WINDOW_EVENT_DEICONIFIED: number & { readonly __brand: "window.WINDOW_EVENT_DEICONIFIED" };
|
|
10
|
+
const WINDOW_EVENT_FOCUS_GAINED: number & { readonly __brand: "window.WINDOW_EVENT_FOCUS_GAINED" };
|
|
11
|
+
const WINDOW_EVENT_FOCUS_LOST: number & { readonly __brand: "window.WINDOW_EVENT_FOCUS_LOST" };
|
|
12
|
+
const WINDOW_EVENT_ICONFIED: number & { readonly __brand: "window.WINDOW_EVENT_ICONFIED" };
|
|
13
|
+
const WINDOW_EVENT_RESIZED: number & { readonly __brand: "window.WINDOW_EVENT_RESIZED" };
|
|
14
|
+
function get_dim_mode(): Opaque<"constant">;
|
|
15
|
+
function get_display_scale(): number;
|
|
16
|
+
function get_mouse_lock(): boolean;
|
|
17
|
+
function get_safe_area(): { safe_area: { x: number; y: number; width: number; height: number; inset_left: number; inset_top: number; inset_right: number; inset_bottom: number } };
|
|
18
|
+
function get_size(): LuaMultiReturn<[number, number]>;
|
|
19
|
+
function set_dim_mode(mode: Opaque<"constant">): void;
|
|
20
|
+
function set_listener(callback?: (self: unknown, event: unknown, data: unknown) => void): void;
|
|
21
|
+
function set_mouse_lock(flag: boolean): void;
|
|
22
|
+
function set_position(x: number, y: number): void;
|
|
23
|
+
function set_size(width: number, height: number): void;
|
|
24
|
+
function set_title(title: string): void;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export {};
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import "./generated/builtin-messages";
|
|
2
|
+
import "./src/msg-overloads";
|
|
3
|
+
import "./src/go-overloads";
|
|
4
|
+
import "./generated/b2d";
|
|
5
|
+
import "./generated/buffer";
|
|
6
|
+
import "./generated/camera";
|
|
7
|
+
import "./generated/collectionfactory";
|
|
8
|
+
import "./generated/collectionproxy";
|
|
9
|
+
import "./generated/crash";
|
|
10
|
+
import "./generated/factory";
|
|
11
|
+
import "./generated/go";
|
|
12
|
+
import "./generated/graphics";
|
|
13
|
+
import "./generated/gui";
|
|
14
|
+
import "./generated/http";
|
|
15
|
+
import "./generated/iac";
|
|
16
|
+
import "./generated/iap";
|
|
17
|
+
import "./generated/image";
|
|
18
|
+
import "./generated/json";
|
|
19
|
+
import "./generated/label";
|
|
20
|
+
import "./generated/liveupdate";
|
|
21
|
+
import "./generated/model";
|
|
22
|
+
import "./generated/msg";
|
|
23
|
+
import "./generated/particlefx";
|
|
24
|
+
import "./generated/physics";
|
|
25
|
+
import "./generated/profiler";
|
|
26
|
+
import "./generated/push";
|
|
27
|
+
import "./generated/render";
|
|
28
|
+
import "./generated/resource";
|
|
29
|
+
import "./generated/socket";
|
|
30
|
+
import "./generated/sound";
|
|
31
|
+
import "./generated/sprite";
|
|
32
|
+
import "./generated/sys";
|
|
33
|
+
import "./generated/tilemap";
|
|
34
|
+
import "./generated/timer";
|
|
35
|
+
import "./generated/vmath";
|
|
36
|
+
import "./generated/webview";
|
|
37
|
+
import "./generated/window";
|
|
38
|
+
import "./generated/zlib";
|
|
39
|
+
|
|
40
|
+
export type { ApiFunction, ApiModule, ApiParameter, ApiVariable } from "./src/api-doc";
|
|
41
|
+
export { parseDefoldApiDoc } from "./src/api-doc";
|
|
42
|
+
export {
|
|
43
|
+
DEFOLD_TYPE_MAP,
|
|
44
|
+
type Hash,
|
|
45
|
+
type Matrix4,
|
|
46
|
+
type Quaternion,
|
|
47
|
+
type Url,
|
|
48
|
+
type Vector,
|
|
49
|
+
type Vector3,
|
|
50
|
+
type Vector4,
|
|
51
|
+
} from "./src/core-types";
|
|
52
|
+
export { type EmitOptions, emitDeclarations } from "./src/emit-dts";
|
|
53
|
+
export {
|
|
54
|
+
defineGuiScript,
|
|
55
|
+
defineRenderScript,
|
|
56
|
+
defineScript,
|
|
57
|
+
type GuiScriptHooks,
|
|
58
|
+
type InputAction,
|
|
59
|
+
type InputTouch,
|
|
60
|
+
type RenderScriptHooks,
|
|
61
|
+
type ScriptHooks,
|
|
62
|
+
} from "./src/lifecycle";
|
|
63
|
+
export { type WrapOptions, wrapAsAmbientGlobal } from "./src/publish-dts";
|
package/package.json
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@defold-typescript/types",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "TypeScript types for the Defold engine's Lua APIs.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./src/index.ts",
|
|
7
|
+
"types": "./index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./index.d.ts",
|
|
11
|
+
"default": "./src/index.ts"
|
|
12
|
+
},
|
|
13
|
+
"./script": {
|
|
14
|
+
"types": "./generated/kinds/script.d.ts"
|
|
15
|
+
},
|
|
16
|
+
"./gui-script": {
|
|
17
|
+
"types": "./generated/kinds/gui-script.d.ts"
|
|
18
|
+
},
|
|
19
|
+
"./render-script": {
|
|
20
|
+
"types": "./generated/kinds/render-script.d.ts"
|
|
21
|
+
},
|
|
22
|
+
"./package.json": "./package.json"
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"src",
|
|
26
|
+
"generated",
|
|
27
|
+
"scripts",
|
|
28
|
+
"api-targets.json",
|
|
29
|
+
"index.d.ts",
|
|
30
|
+
"!src/**/*.test.ts",
|
|
31
|
+
"!scripts/**/*.test.ts",
|
|
32
|
+
"!src/**/__snapshots__"
|
|
33
|
+
],
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "tsc -p tsconfig.json",
|
|
39
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
40
|
+
"regen": "bun scripts/regen.ts",
|
|
41
|
+
"sync-api-docs": "bun scripts/sync-api-docs.ts"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@typescript-to-lua/language-extensions": "1.19.0"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { copyFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { readZip, refDocUrl, type ZipAccessor } from "./sync-api-docs";
|
|
5
|
+
|
|
6
|
+
export type DocSourceProvenance = "cache" | "local" | "download";
|
|
7
|
+
|
|
8
|
+
export interface ResolvedRefDoc {
|
|
9
|
+
zip: ZipAccessor;
|
|
10
|
+
zipPath: string;
|
|
11
|
+
provenance: DocSourceProvenance;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type DownloadRefDoc = (version: string) => Promise<Uint8Array>;
|
|
15
|
+
|
|
16
|
+
export type LocateLocalRefDoc = (version: string) => string | null;
|
|
17
|
+
|
|
18
|
+
export function defaultDistributionRoots(
|
|
19
|
+
platform: NodeJS.Platform,
|
|
20
|
+
env: NodeJS.ProcessEnv = process.env,
|
|
21
|
+
home: () => string = homedir,
|
|
22
|
+
): string[] {
|
|
23
|
+
switch (platform) {
|
|
24
|
+
case "darwin":
|
|
25
|
+
return ["/Applications/Defold", join(home(), "Applications", "Defold")];
|
|
26
|
+
case "linux":
|
|
27
|
+
return [join(home(), "Defold"), "/opt/Defold"];
|
|
28
|
+
case "win32":
|
|
29
|
+
return [env.LOCALAPPDATA, env.PROGRAMFILES]
|
|
30
|
+
.filter((root): root is string => Boolean(root))
|
|
31
|
+
.map((root) => join(root, "Defold"));
|
|
32
|
+
default:
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function localRefDocLocator(
|
|
38
|
+
env: NodeJS.ProcessEnv = process.env,
|
|
39
|
+
platform: NodeJS.Platform = process.platform,
|
|
40
|
+
home: () => string = homedir,
|
|
41
|
+
): LocateLocalRefDoc {
|
|
42
|
+
const roots = [
|
|
43
|
+
...(env.DEFOLD_TYPESCRIPT_LOCAL_DISTRIBUTION ? [env.DEFOLD_TYPESCRIPT_LOCAL_DISTRIBUTION] : []),
|
|
44
|
+
...defaultDistributionRoots(platform, env, home),
|
|
45
|
+
];
|
|
46
|
+
return (version) => {
|
|
47
|
+
for (const root of roots) {
|
|
48
|
+
const path = join(root, version, "ref-doc.zip");
|
|
49
|
+
if (existsSync(path)) {
|
|
50
|
+
return path;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function refDocCacheDir(
|
|
58
|
+
env: NodeJS.ProcessEnv = process.env,
|
|
59
|
+
home: () => string = homedir,
|
|
60
|
+
): string {
|
|
61
|
+
if (env.DEFOLD_TYPESCRIPT_CACHE) {
|
|
62
|
+
return join(env.DEFOLD_TYPESCRIPT_CACHE, "ref-doc");
|
|
63
|
+
}
|
|
64
|
+
return join(env.XDG_CACHE_HOME ?? join(home(), ".cache"), "defold-typescript", "ref-doc");
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const fetchRefDoc: DownloadRefDoc = async (version) => {
|
|
68
|
+
const url = refDocUrl(version);
|
|
69
|
+
const res = await fetch(url);
|
|
70
|
+
if (!res.ok) {
|
|
71
|
+
throw new Error(`download failed: ${url} -> ${res.status} ${res.statusText}`);
|
|
72
|
+
}
|
|
73
|
+
return new Uint8Array(await res.arrayBuffer());
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export async function resolveRefDoc(opts: {
|
|
77
|
+
version: string;
|
|
78
|
+
cacheDir: string;
|
|
79
|
+
download?: DownloadRefDoc;
|
|
80
|
+
locate?: LocateLocalRefDoc;
|
|
81
|
+
readZip?: typeof readZip;
|
|
82
|
+
}): Promise<ResolvedRefDoc> {
|
|
83
|
+
const open = opts.readZip ?? readZip;
|
|
84
|
+
const zipPath = join(opts.cacheDir, opts.version, "ref-doc.zip");
|
|
85
|
+
if (existsSync(zipPath)) {
|
|
86
|
+
return { zip: open(zipPath), zipPath, provenance: "cache" };
|
|
87
|
+
}
|
|
88
|
+
const locate = opts.locate ?? localRefDocLocator();
|
|
89
|
+
const localPath = locate(opts.version);
|
|
90
|
+
if (localPath && existsSync(localPath)) {
|
|
91
|
+
mkdirSync(dirname(zipPath), { recursive: true });
|
|
92
|
+
copyFileSync(localPath, zipPath);
|
|
93
|
+
return { zip: open(zipPath), zipPath, provenance: "local" };
|
|
94
|
+
}
|
|
95
|
+
const download = opts.download ?? fetchRefDoc;
|
|
96
|
+
const bytes = await download(opts.version);
|
|
97
|
+
mkdirSync(dirname(zipPath), { recursive: true });
|
|
98
|
+
writeFileSync(zipPath, bytes);
|
|
99
|
+
return { zip: open(zipPath), zipPath, provenance: "download" };
|
|
100
|
+
}
|