@defold-typescript/types 0.25.0 → 0.27.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 +333 -306
- package/api-signatures.json +1312 -0
- package/api-targets.json +351 -2
- package/examples/translations.json +1984 -0
- package/fixtures/messages_doc.json +880 -0
- package/generated/collectionproxy.d.ts +22 -0
- package/generated/editor-vm/http.d.ts +2 -2
- package/generated/editor-vm/image.d.ts +48 -0
- package/generated/editor.d.ts +27 -8
- package/generated/gui.d.ts +35 -6
- package/generated/kinds/editor-script.d.ts +1 -0
- package/generated/material.d.ts +4 -0
- package/generated/versions/defold-1.12.4/liveupdate.d.ts +22 -22
- package/generated/versions/defold-1.12.4/physics.d.ts +78 -75
- package/generated/versions/defold-1.12.4/render.d.ts +75 -55
- package/generated/versions/defold-1.12.4/resource.d.ts +187 -175
- package/generated/versions/defold-1.13.0/b2d.d.ts +33 -0
- package/generated/versions/defold-1.13.0/b2d_body.d.ts +676 -0
- package/generated/versions/defold-1.13.0/b2d_chain.d.ts +106 -0
- package/generated/versions/defold-1.13.0/b2d_fixture.d.ts +155 -0
- package/generated/versions/defold-1.13.0/b2d_joint.d.ts +823 -0
- package/generated/versions/defold-1.13.0/b2d_shape.d.ts +215 -0
- package/generated/versions/defold-1.13.0/b2d_world.d.ts +314 -0
- package/generated/versions/defold-1.13.0/buffer.d.ts +176 -0
- package/generated/versions/defold-1.13.0/camera.d.ts +302 -0
- package/generated/versions/defold-1.13.0/collectionfactory.d.ts +146 -0
- package/generated/versions/defold-1.13.0/collectionproxy.d.ts +71 -0
- package/generated/versions/defold-1.13.0/compute.d.ts +306 -0
- package/generated/versions/defold-1.13.0/crash.d.ts +143 -0
- package/generated/versions/defold-1.13.0/editor-vm/http.d.ts +56 -0
- package/generated/versions/defold-1.13.0/editor-vm/json.d.ts +10 -0
- package/generated/versions/defold-1.13.0/editor-vm/localization.d.ts +42 -0
- package/generated/versions/defold-1.13.0/editor-vm/tilemap_tiles.d.ts +80 -0
- package/generated/versions/defold-1.13.0/editor-vm/zip.d.ts +10 -0
- package/generated/versions/defold-1.13.0/editor-vm/zlib.d.ts +24 -0
- package/generated/versions/defold-1.13.0/editor.d.ts +1092 -0
- package/generated/versions/defold-1.13.0/factory.d.ts +123 -0
- package/generated/versions/defold-1.13.0/font.d.ts +81 -0
- package/generated/versions/defold-1.13.0/go.d.ts +1054 -0
- package/generated/versions/defold-1.13.0/graphics.d.ts +321 -0
- package/generated/versions/defold-1.13.0/gui.d.ts +2370 -0
- package/generated/versions/defold-1.13.0/html5.d.ts +53 -0
- package/generated/versions/defold-1.13.0/http.d.ts +84 -0
- package/generated/versions/defold-1.13.0/iac.d.ts +18 -0
- package/generated/versions/defold-1.13.0/iap.d.ts +60 -0
- package/generated/versions/defold-1.13.0/image.d.ts +139 -0
- package/generated/versions/defold-1.13.0/index.d.ts +48 -0
- package/generated/versions/defold-1.13.0/json.d.ts +76 -0
- package/generated/versions/defold-1.13.0/kinds/editor-script.d.ts +13 -0
- package/generated/versions/defold-1.13.0/label.d.ts +94 -0
- package/generated/versions/defold-1.13.0/liveupdate.d.ts +140 -0
- package/generated/versions/defold-1.13.0/material.d.ts +444 -0
- package/generated/versions/defold-1.13.0/model.d.ts +246 -0
- package/generated/versions/defold-1.13.0/msg.d.ts +10 -0
- package/generated/versions/defold-1.13.0/particlefx.d.ts +166 -0
- package/generated/versions/defold-1.13.0/physics.d.ts +548 -0
- package/generated/versions/defold-1.13.0/profiler.d.ts +233 -0
- package/generated/versions/defold-1.13.0/push.d.ts +66 -0
- package/generated/versions/defold-1.13.0/render.d.ts +1185 -0
- package/generated/versions/defold-1.13.0/resource.d.ts +1530 -0
- package/generated/versions/defold-1.13.0/socket.d.ts +795 -0
- package/generated/versions/defold-1.13.0/sound.d.ts +291 -0
- package/generated/versions/defold-1.13.0/sprite.d.ts +157 -0
- package/generated/versions/defold-1.13.0/sys.d.ts +695 -0
- package/generated/versions/defold-1.13.0/tilemap.d.ts +195 -0
- package/generated/versions/defold-1.13.0/timer.d.ts +114 -0
- package/generated/versions/defold-1.13.0/types.d.ts +61 -0
- package/generated/versions/defold-1.13.0/vmath.d.ts +806 -0
- package/generated/versions/defold-1.13.0/webview.d.ts +68 -0
- package/generated/versions/defold-1.13.0/window.d.ts +198 -0
- package/generated/versions/defold-1.13.0/zlib.d.ts +40 -0
- package/index.d.ts +4 -81
- package/package.json +11 -3
- package/scripts/import-defold-release.ts +28 -1
- package/scripts/sync-api-docs.ts +4 -3
- package/src/api-availability.ts +0 -0
- package/src/emit-dts.ts +6 -0
- package/src/example-store.ts +5 -0
- package/src/index.ts +3 -0
- package/scripts/lua-types-signature-index.ts +0 -151
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
3
|
-
import * as ts from "typescript";
|
|
4
|
-
|
|
5
|
-
// Build-time only: lives under `scripts/` (never reachable from the shipped
|
|
6
|
-
// `src/index.ts` graph) so its `typescript`/`node:fs` imports cannot leak into a
|
|
7
|
-
// consumer's typecheck, exactly like `signature-store-fs.ts`.
|
|
8
|
-
|
|
9
|
-
// One indexed declaration: how many overloads the source carries for the FQN
|
|
10
|
-
// and, per overload, the parameter names (so a future check can compare optional
|
|
11
|
-
// params). A `const`/`var`/property value is recorded as a single entry with an
|
|
12
|
-
// empty parameter list.
|
|
13
|
-
export interface SignatureIndexEntry {
|
|
14
|
-
overloadCount: number;
|
|
15
|
-
params: string[][];
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// FQN (`string.byte`, `file:read`, `socket.dns.toip`, bare `pcall`) -> entry.
|
|
19
|
-
export type SignatureIndex = Map<string, SignatureIndexEntry>;
|
|
20
|
-
|
|
21
|
-
export const LUA_TYPES_DIR = resolve(import.meta.dir, "..", "node_modules", "lua-types");
|
|
22
|
-
|
|
23
|
-
export function luaTypesFile(...segments: string[]): string {
|
|
24
|
-
return resolve(LUA_TYPES_DIR, ...segments);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function recordEntry(index: SignatureIndex, key: string, params: string[]): void {
|
|
28
|
-
const existing = index.get(key);
|
|
29
|
-
if (existing) {
|
|
30
|
-
existing.overloadCount += 1;
|
|
31
|
-
existing.params.push(params);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
index.set(key, { overloadCount: 1, params: [params] });
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function parameterNames(parameters: ts.NodeArray<ts.ParameterDeclaration>): string[] {
|
|
38
|
-
return parameters.map((parameter) =>
|
|
39
|
-
ts.isIdentifier(parameter.name) ? parameter.name.text : parameter.name.getText(),
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// `declare global { ... }` is a transparent wrapper (the repo's `generated/*.d.ts`
|
|
44
|
-
// nest their namespace under it); its members keep the surrounding prefix.
|
|
45
|
-
function isGlobalAugmentation(node: ts.ModuleDeclaration): boolean {
|
|
46
|
-
if ((node.flags & ts.NodeFlags.GlobalAugmentation) !== 0) return true;
|
|
47
|
-
return ts.isIdentifier(node.name) && node.name.text === "global";
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function qualify(prefix: string, name: string): string {
|
|
51
|
-
return prefix ? `${prefix}.${name}` : name;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function visit(
|
|
55
|
-
node: ts.Node,
|
|
56
|
-
prefix: string,
|
|
57
|
-
handleByInterface: Map<string, string>,
|
|
58
|
-
index: SignatureIndex,
|
|
59
|
-
): void {
|
|
60
|
-
if (ts.isFunctionDeclaration(node) && node.name) {
|
|
61
|
-
recordEntry(index, qualify(prefix, node.name.text), parameterNames(node.parameters));
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (ts.isModuleDeclaration(node)) {
|
|
66
|
-
const childPrefix = isGlobalAugmentation(node)
|
|
67
|
-
? prefix
|
|
68
|
-
: ts.isIdentifier(node.name)
|
|
69
|
-
? qualify(prefix, node.name.text)
|
|
70
|
-
: prefix;
|
|
71
|
-
if (node.body) {
|
|
72
|
-
if (ts.isModuleBlock(node.body)) {
|
|
73
|
-
for (const statement of node.body.statements) {
|
|
74
|
-
visit(statement, childPrefix, handleByInterface, index);
|
|
75
|
-
}
|
|
76
|
-
} else if (ts.isModuleDeclaration(node.body)) {
|
|
77
|
-
visit(node.body, childPrefix, handleByInterface, index);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Handle interfaces are re-keyed by their handle name (`LuaFile` -> `file:read`,
|
|
84
|
-
// socket's `client` -> `client:close`); non-handle interfaces are ignored. This
|
|
85
|
-
// fires for both top-level interfaces (io's `LuaFile`) and interfaces nested in
|
|
86
|
-
// a namespace (socket's handle interfaces), so the surrounding prefix is dropped.
|
|
87
|
-
if (ts.isInterfaceDeclaration(node)) {
|
|
88
|
-
const handle = handleByInterface.get(node.name.text);
|
|
89
|
-
if (!handle) return;
|
|
90
|
-
for (const member of node.members) {
|
|
91
|
-
if (!member.name || !ts.isIdentifier(member.name)) continue;
|
|
92
|
-
if (ts.isMethodSignature(member)) {
|
|
93
|
-
recordEntry(index, `${handle}:${member.name.text}`, parameterNames(member.parameters));
|
|
94
|
-
} else if (ts.isPropertySignature(member)) {
|
|
95
|
-
recordEntry(index, `${handle}:${member.name.text}`, []);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
if (ts.isVariableStatement(node)) {
|
|
102
|
-
for (const declaration of node.declarationList.declarations) {
|
|
103
|
-
if (ts.isIdentifier(declaration.name)) {
|
|
104
|
-
recordEntry(index, qualify(prefix, declaration.name.text), []);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function reverseHandles(handleInterfaces: Record<string, string>): Map<string, string> {
|
|
111
|
-
return new Map(Object.entries(handleInterfaces).map(([handle, iface]) => [iface, handle]));
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
function indexSourceFile(
|
|
115
|
-
index: SignatureIndex,
|
|
116
|
-
fileName: string,
|
|
117
|
-
source: string,
|
|
118
|
-
handleByInterface: Map<string, string>,
|
|
119
|
-
): void {
|
|
120
|
-
const sourceFile = ts.createSourceFile(fileName, source, ts.ScriptTarget.Latest, true);
|
|
121
|
-
for (const statement of sourceFile.statements) {
|
|
122
|
-
visit(statement, "", handleByInterface, index);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
// Parse one in-memory `.d.ts` source into an index (or fold into `into`). Used by
|
|
127
|
-
// the drift guard's synthetic-source cases; the file-reading path delegates here.
|
|
128
|
-
export function indexDeclarationSource(
|
|
129
|
-
fileName: string,
|
|
130
|
-
source: string,
|
|
131
|
-
handleInterfaces: Record<string, string> = {},
|
|
132
|
-
into?: SignatureIndex,
|
|
133
|
-
): SignatureIndex {
|
|
134
|
-
const index = into ?? new Map<string, SignatureIndexEntry>();
|
|
135
|
-
indexSourceFile(index, fileName, source, reverseHandles(handleInterfaces));
|
|
136
|
-
return index;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
// Parse each `.d.ts` file and fold every declaration into one FQN -> entry index.
|
|
140
|
-
// When an FQN appears in more than one file its overloads accumulate.
|
|
141
|
-
export function buildSignatureIndex(
|
|
142
|
-
filePaths: string[],
|
|
143
|
-
handleInterfaces: Record<string, string> = {},
|
|
144
|
-
): SignatureIndex {
|
|
145
|
-
const index = new Map<string, SignatureIndexEntry>();
|
|
146
|
-
const handleByInterface = reverseHandles(handleInterfaces);
|
|
147
|
-
for (const filePath of filePaths) {
|
|
148
|
-
indexSourceFile(index, filePath, readFileSync(filePath, "utf8"), handleByInterface);
|
|
149
|
-
}
|
|
150
|
-
return index;
|
|
151
|
-
}
|