mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Compare commits
22 Commits
fix/ai-mob
...
experiment
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0ffaefaf1d | ||
![]() |
034e6ac839 | ||
![]() |
afc2d284c1 | ||
![]() |
c2ed4e9910 | ||
![]() |
8d2341bd21 | ||
![]() |
b187d9ec98 | ||
![]() |
d2da102830 | ||
![]() |
a6c4f742c2 | ||
![]() |
e6935206c0 | ||
![]() |
00190de683 | ||
![]() |
7a8c359379 | ||
![]() |
29aa2479f6 | ||
![]() |
7010b6880d | ||
![]() |
2a9d826ab5 | ||
![]() |
5b255e46c6 | ||
![]() |
5043baa367 | ||
![]() |
66ff2d5b55 | ||
![]() |
3a015f6696 | ||
![]() |
647f3e1cfa | ||
![]() |
52c3241f44 | ||
![]() |
0ae40e0911 | ||
![]() |
0f788b4913 |
@@ -111,8 +111,8 @@ module.exports = function (grunt) {
|
||||
},
|
||||
},
|
||||
},
|
||||
// Copy the library to newIDE
|
||||
generateTypes: {
|
||||
// Generate typings from the Bindings.idl
|
||||
generateFlowTypes: {
|
||||
command: 'node scripts/generate-types.js',
|
||||
options: {
|
||||
execOptions: {
|
||||
@@ -120,6 +120,14 @@ module.exports = function (grunt) {
|
||||
},
|
||||
},
|
||||
},
|
||||
generateTSTypes: {
|
||||
command: 'node scripts/generate-dts.mjs',
|
||||
options: {
|
||||
execOptions: {
|
||||
cwd: __dirname,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
clean: {
|
||||
options: { force: true },
|
||||
@@ -148,6 +156,7 @@ module.exports = function (grunt) {
|
||||
grunt.registerTask('build', [
|
||||
'build:raw',
|
||||
'shell:copyToNewIDE',
|
||||
'shell:generateTypes',
|
||||
'shell:generateFlowTypes',
|
||||
'shell:generateTSTypes',
|
||||
]);
|
||||
};
|
||||
|
429
GDevelop.js/package-lock.json
generated
429
GDevelop.js/package-lock.json
generated
@@ -12,6 +12,7 @@
|
||||
"prettier": "^2.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.3.1",
|
||||
"extend": "^2.0.1",
|
||||
"grunt": "^1.0.1",
|
||||
"grunt-contrib-clean": "^1.0.0",
|
||||
@@ -1757,13 +1758,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/aproba": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
||||
"integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/archiver": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
|
||||
@@ -1822,17 +1816,6 @@
|
||||
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/are-we-there-yet": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
|
||||
"integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"delegates": "^1.0.0",
|
||||
"readable-stream": "^2.0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/argparse": {
|
||||
"version": "1.0.9",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
|
||||
@@ -2134,19 +2117,6 @@
|
||||
"readable-stream": "^2.0.5"
|
||||
}
|
||||
},
|
||||
"node_modules/block-stream": {
|
||||
"version": "0.0.9",
|
||||
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
|
||||
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"inherits": "~2.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "0.4 || >=0.5.8"
|
||||
}
|
||||
},
|
||||
"node_modules/boolbase": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
||||
@@ -2469,13 +2439,6 @@
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/chownr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
|
||||
"integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/ci-info": {
|
||||
"version": "3.9.0",
|
||||
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
|
||||
@@ -2533,16 +2496,6 @@
|
||||
"node": ">= 0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/coffee-script": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz",
|
||||
@@ -2640,13 +2593,6 @@
|
||||
"typedarray": "^0.0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/convert-source-map": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
|
||||
@@ -2953,17 +2899,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/deep-extend": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
|
||||
"integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"iojs": ">=1.0.0",
|
||||
"node": ">=0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/deep-is": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
||||
@@ -3002,26 +2937,6 @@
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/delegates": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/detect-libc": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz",
|
||||
"integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"detect-libc": "bin/detect-libc.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/detect-newline": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
|
||||
@@ -3354,13 +3269,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/expand-template": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz",
|
||||
"integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/expect": {
|
||||
"version": "29.7.0",
|
||||
"resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
|
||||
@@ -3605,22 +3513,6 @@
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fstream": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
|
||||
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"inherits": "~2.0.0",
|
||||
"mkdirp": ">=0.5 0",
|
||||
"rimraf": "2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/function-bind": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
||||
@@ -3630,23 +3522,6 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/gauge": {
|
||||
"version": "2.7.4",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
||||
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"aproba": "^1.0.3",
|
||||
"console-control-strings": "^1.0.0",
|
||||
"has-unicode": "^2.0.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"string-width": "^1.0.1",
|
||||
"strip-ansi": "^3.0.1",
|
||||
"wide-align": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/gensync": {
|
||||
"version": "1.0.0-beta.2",
|
||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||
@@ -3713,13 +3588,6 @@
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/github-from-package": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
||||
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/glob": {
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
|
||||
@@ -4256,13 +4124,6 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/has-unicode": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/hasown": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
|
||||
@@ -4477,21 +4338,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/iltorb": {
|
||||
"version": "1.3.10",
|
||||
"resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.10.tgz",
|
||||
"integrity": "sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==",
|
||||
"deprecated": "The zlib module provides APIs for brotli compression/decompression starting with Node.js v10.16.0, please use it over iltorb",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"detect-libc": "^0.2.0",
|
||||
"nan": "^2.6.2",
|
||||
"node-gyp": "^3.6.2",
|
||||
"prebuild-install": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/import-local": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
|
||||
@@ -4548,17 +4394,6 @@
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/ini": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
|
||||
"integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
|
||||
"deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/interpret": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
|
||||
@@ -4655,19 +4490,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-fullwidth-code-point": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-generator-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
|
||||
@@ -7262,67 +7084,12 @@
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/nan": {
|
||||
"version": "2.18.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz",
|
||||
"integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/natural-compare": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
|
||||
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/node-abi": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.2.tgz",
|
||||
"integrity": "sha512-hmUtb8m75RSi7N+zZLYqe75XDvZB+6LyTBPkj2DConvNgQet2e3BIqEwe1LLvqMrfyjabuT5ZOrTioLCH1HTdA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"semver": "^5.4.1"
|
||||
}
|
||||
},
|
||||
"node_modules/node-gyp": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
|
||||
"integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"fstream": "^1.0.0",
|
||||
"glob": "^7.0.3",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"minimatch": "^3.0.2",
|
||||
"mkdirp": "^0.5.0",
|
||||
"nopt": "2 || 3",
|
||||
"npmlog": "0 || 1 || 2 || 3 || 4",
|
||||
"osenv": "0",
|
||||
"request": "2",
|
||||
"rimraf": "2",
|
||||
"semver": "~5.3.0",
|
||||
"tar": "^2.0.0",
|
||||
"which": "1"
|
||||
},
|
||||
"bin": {
|
||||
"node-gyp": "bin/node-gyp.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/node-gyp/node_modules/semver": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
||||
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver"
|
||||
}
|
||||
},
|
||||
"node_modules/node-int64": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
|
||||
@@ -7335,13 +7102,6 @@
|
||||
"integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/noop-logger": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
||||
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/nopt": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
||||
@@ -7390,19 +7150,6 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/npmlog": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
||||
"integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"are-we-there-yet": "~1.1.2",
|
||||
"console-control-strings": "~1.1.0",
|
||||
"gauge": "~2.7.3",
|
||||
"set-blocking": "~2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/nth-check": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
|
||||
@@ -7541,37 +7288,6 @@
|
||||
"readable-stream": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/os-homedir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
|
||||
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/osenv": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
|
||||
"integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"os-homedir": "^1.0.0",
|
||||
"os-tmpdir": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/p-limit": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
||||
@@ -7809,32 +7525,6 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/prebuild-install": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.3.0.tgz",
|
||||
"integrity": "sha512-gzjq2oHB8oMbzJSsSh9MQ64zrXZGt092/uT4TLZlz2qnrPxpWqp4vYB7LZrDxnlxf5RfbCjkgDI/z0EIVuYzAw==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"expand-template": "^1.0.2",
|
||||
"github-from-package": "0.0.0",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"node-abi": "^2.1.1",
|
||||
"noop-logger": "^0.1.1",
|
||||
"npmlog": "^4.0.1",
|
||||
"os-homedir": "^1.0.1",
|
||||
"pump": "^1.0.1",
|
||||
"rc": "^1.1.6",
|
||||
"simple-get": "^1.4.2",
|
||||
"tar-fs": "^1.13.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"xtend": "4.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"prebuild-install": "bin.js"
|
||||
}
|
||||
},
|
||||
"node_modules/prelude-ls": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
|
||||
@@ -7919,17 +7609,6 @@
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/pump": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
|
||||
"integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
@@ -7993,22 +7672,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rc": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz",
|
||||
"integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"deep-extend": "~0.4.0",
|
||||
"ini": "~1.3.0",
|
||||
"minimist": "^1.2.0",
|
||||
"strip-json-comments": "~2.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"rc": "index.js"
|
||||
}
|
||||
},
|
||||
"node_modules/react-is": {
|
||||
"version": "18.2.0",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
||||
@@ -8267,13 +7930,6 @@
|
||||
"semver": "bin/semver"
|
||||
}
|
||||
},
|
||||
"node_modules/set-blocking": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
||||
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
@@ -8324,18 +7980,6 @@
|
||||
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/simple-get": {
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz",
|
||||
"integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"once": "^1.3.1",
|
||||
"unzip-response": "^1.0.0",
|
||||
"xtend": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sisteransi": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
|
||||
@@ -8539,21 +8183,6 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/string-width": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
"strip-ansi": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/stringstream": {
|
||||
"version": "0.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
||||
@@ -8621,16 +8250,6 @@
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-json-comments": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
||||
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-color": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
||||
@@ -8659,32 +8278,6 @@
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/tar": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
|
||||
"deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"block-stream": "*",
|
||||
"fstream": "^1.0.2",
|
||||
"inherits": "2"
|
||||
}
|
||||
},
|
||||
"node_modules/tar-fs": {
|
||||
"version": "1.16.0",
|
||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz",
|
||||
"integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"chownr": "^1.0.1",
|
||||
"mkdirp": "^0.5.1",
|
||||
"pump": "^1.0.0",
|
||||
"tar-stream": "^1.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/tar-stream": {
|
||||
"version": "1.5.5",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz",
|
||||
@@ -8997,16 +8590,6 @@
|
||||
"xtend": "~4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/unzip-response": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
|
||||
"integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/update-browserslist-db": {
|
||||
"version": "1.0.13",
|
||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
|
||||
@@ -9234,16 +8817,6 @@
|
||||
"which": "bin/which"
|
||||
}
|
||||
},
|
||||
"node_modules/wide-align": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
|
||||
"integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"string-width": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/window-size": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
|
||||
|
@@ -20,6 +20,7 @@
|
||||
},
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"@types/node": "^20.3.1",
|
||||
"extend": "^2.0.1",
|
||||
"grunt": "^1.0.1",
|
||||
"grunt-contrib-clean": "^1.0.0",
|
||||
|
250
GDevelop.js/scripts/generate-dts.mjs
Normal file
250
GDevelop.js/scripts/generate-dts.mjs
Normal file
@@ -0,0 +1,250 @@
|
||||
// @ts-check
|
||||
import { readFileSync, writeFileSync } from 'fs';
|
||||
import { dirname } from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
const bindingsFile = readFileSync(
|
||||
__dirname + '/../Bindings/Bindings.idl',
|
||||
'utf-8'
|
||||
);
|
||||
|
||||
const PrimitiveTypes = new Map([
|
||||
['DOMString', 'string'],
|
||||
['long', 'number'],
|
||||
['double', 'number'],
|
||||
['void', 'void'],
|
||||
['boolean', 'boolean'],
|
||||
]);
|
||||
|
||||
const none = Symbol('No default value');
|
||||
class Parser {
|
||||
static parserPosition = 0;
|
||||
/** @private */
|
||||
static sourceString = '';
|
||||
/** @private */
|
||||
static sourceLength = 0;
|
||||
|
||||
/** @param {string} str */
|
||||
static setSource(str) {
|
||||
this.parserPosition = 0;
|
||||
this.sourceString = str;
|
||||
this.sourceLength = str.length;
|
||||
}
|
||||
static get isDone() {
|
||||
return this.parserPosition >= this.sourceLength;
|
||||
}
|
||||
static get currentCharacter() {
|
||||
return this.sourceString.charAt(this.parserPosition);
|
||||
}
|
||||
static get currentCharacterCode() {
|
||||
return this.sourceString.charCodeAt(this.parserPosition);
|
||||
}
|
||||
|
||||
static skipWhitespaces() {
|
||||
while (this.currentCharacterCode <= 32) this.parserPosition++;
|
||||
// Comments go everywhere whitespaces go and must be skipped as if it were whitespace
|
||||
if (this.currentCharacter === '/') {
|
||||
this.parserPosition++;
|
||||
if (this.currentCharacter === '/') {
|
||||
// //-style comments
|
||||
this.skipUntil('\n');
|
||||
} else if (this.currentCharacter === '*') {
|
||||
// /* */-style comments
|
||||
do {
|
||||
this.skipUntil('*');
|
||||
} while (this.currentCharacter !== '/');
|
||||
this.parserPosition++;
|
||||
} else console.warn(`Unexpected slash.`);
|
||||
this.skipWhitespaces();
|
||||
}
|
||||
}
|
||||
/** @param {string} thisCharacter */
|
||||
static skipUntil(thisCharacter, skipOverIt = true) {
|
||||
while (this.currentCharacter !== thisCharacter && !this.isDone)
|
||||
this.parserPosition++;
|
||||
if (skipOverIt) this.parserPosition++;
|
||||
}
|
||||
/** @param {string} thisCharacter */
|
||||
static readUntil(thisCharacter, skipOverIt = true) {
|
||||
let token = '';
|
||||
while (this.currentCharacter !== thisCharacter) {
|
||||
token += this.currentCharacter;
|
||||
this.parserPosition++;
|
||||
}
|
||||
if (skipOverIt) this.parserPosition++;
|
||||
return token;
|
||||
}
|
||||
|
||||
static readType() {
|
||||
// Ignore [Const] and such annotations
|
||||
Parser.skipWhitespaces();
|
||||
if (Parser.currentCharacter === '[') Parser.skipUntil(']');
|
||||
Parser.skipWhitespaces();
|
||||
|
||||
// Read the type
|
||||
let type = Parser.readUntil(' ');
|
||||
let optional = false;
|
||||
if (type === 'optional') optional = true;
|
||||
while (type === 'unsigned' || type === 'optional') {
|
||||
// Re-read the type since unsigned is an unnecessary prefix for typescript
|
||||
Parser.skipWhitespaces();
|
||||
type = Parser.readUntil(' ');
|
||||
}
|
||||
Parser.skipWhitespaces();
|
||||
|
||||
return { type, optional };
|
||||
}
|
||||
|
||||
static readIdentifier() {
|
||||
let name = '';
|
||||
while (
|
||||
(Parser.currentCharacterCode >= 97 &&
|
||||
Parser.currentCharacterCode <= 122) || // [a-z]
|
||||
(Parser.currentCharacterCode >= 65 &&
|
||||
Parser.currentCharacterCode <= 90) || // [A-Z]
|
||||
(Parser.currentCharacterCode >= 48 &&
|
||||
Parser.currentCharacterCode <= 57) || // [1-9]
|
||||
Parser.currentCharacter === '_'
|
||||
) {
|
||||
name += Parser.currentCharacter;
|
||||
Parser.parserPosition++;
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
static readNumber() {
|
||||
let number = '';
|
||||
while (
|
||||
Parser.currentCharacterCode >= 48 &&
|
||||
Parser.currentCharacterCode <= 57 // [1-9]
|
||||
) {
|
||||
number += Parser.currentCharacter;
|
||||
Parser.parserPosition++;
|
||||
}
|
||||
return parseInt(number, 10);
|
||||
}
|
||||
}
|
||||
|
||||
const enums = [];
|
||||
for (const [_, enumName, enumCode] of bindingsFile.matchAll(
|
||||
/enum\s+([a-zA-Z_]+)\s+{\r?\n?([^}]*)\r?\n}/gm
|
||||
)) {
|
||||
const members = [];
|
||||
let i = 0;
|
||||
for (const enumMemberString of enumCode.split('\n')) {
|
||||
const [_, memberName] = enumMemberString.match(/"[a-zA-Z]*::([a-zA-Z]*)"/);
|
||||
members.push(` ${memberName} = ${i++},`);
|
||||
}
|
||||
enums.push(
|
||||
`enum ${enumName} {
|
||||
${members.join('\n')}
|
||||
}`
|
||||
);
|
||||
}
|
||||
|
||||
const interfaces = [];
|
||||
for (const [_, interfaceName, interfaceCode] of bindingsFile.matchAll(
|
||||
/interface\s+([a-zA-Z]+)\s+{\r?\n?([^}]*)\r?\n}/gm
|
||||
)) {
|
||||
const methods = [];
|
||||
|
||||
Parser.setSource(interfaceCode);
|
||||
while (!Parser.isDone) {
|
||||
const { type: returnType, optional: optionalReturn } = Parser.readType();
|
||||
|
||||
let methodName = Parser.readUntil('(');
|
||||
const isStatic = methodName.includes('STATIC_');
|
||||
const isConstructor = returnType === 'void' && methodName === interfaceName;
|
||||
// Remove prefixes which are not part of the actual function name
|
||||
methodName = methodName
|
||||
.replace('WRAPPED_', '')
|
||||
.replace('MAP_', '')
|
||||
.replace('STATIC_', '');
|
||||
// Convert PascalCase to camelCase
|
||||
methodName = methodName[0].toLowerCase() + methodName.slice(1);
|
||||
|
||||
/** @type {Array<{name:string, type:string, optional:boolean, defaultValue:(number | typeof none)}>} */
|
||||
const parameters = [];
|
||||
Parser.skipWhitespaces();
|
||||
if (Parser.currentCharacter !== ')')
|
||||
do {
|
||||
if (Parser.currentCharacter === ',') Parser.parserPosition++;
|
||||
const { type, optional } = Parser.readType();
|
||||
Parser.skipWhitespaces();
|
||||
const name = Parser.readIdentifier();
|
||||
Parser.skipWhitespaces();
|
||||
|
||||
let defaultValue = none;
|
||||
if (Parser.currentCharacter === '=') {
|
||||
Parser.parserPosition++;
|
||||
Parser.skipWhitespaces();
|
||||
defaultValue = Parser.readNumber();
|
||||
Parser.skipWhitespaces();
|
||||
}
|
||||
|
||||
parameters.push({ name, type, optional, defaultValue });
|
||||
} while (Parser.currentCharacter === ',');
|
||||
|
||||
// Health checks
|
||||
if (Parser.currentCharacter !== ')')
|
||||
console.warn('Expected closing paranthesis.');
|
||||
Parser.parserPosition++;
|
||||
Parser.skipWhitespaces();
|
||||
if (Parser.currentCharacter !== ';') console.warn('Expected semicolon.');
|
||||
Parser.parserPosition++;
|
||||
Parser.skipWhitespaces();
|
||||
|
||||
methods.push(
|
||||
`${isStatic ? 'static ' : ''}${
|
||||
isConstructor ? `constructor` : methodName
|
||||
}(${parameters
|
||||
.map(
|
||||
({ name, type, optional, defaultValue }) =>
|
||||
`${name}${optional ? '?' : ''}: ${
|
||||
PrimitiveTypes.has(type) ? PrimitiveTypes.get(type) : type
|
||||
}${defaultValue !== none ? ` = ${defaultValue}` : ''}`
|
||||
)
|
||||
.join(', ')}): ${
|
||||
PrimitiveTypes.has(returnType)
|
||||
? PrimitiveTypes.get(returnType)
|
||||
: returnType
|
||||
};`
|
||||
);
|
||||
}
|
||||
|
||||
interfaces.push(
|
||||
`export class ${interfaceName} extends EmscriptenObject {
|
||||
${methods.join('\n ')}
|
||||
}`
|
||||
);
|
||||
}
|
||||
|
||||
const dts = `// Automatically generated by GDevelop.js/scripts/generate-dts.js
|
||||
|
||||
class EmscriptenObject {
|
||||
/** The object's index in the WASM memory, and thus its unique identifier. */
|
||||
ptr: number;
|
||||
|
||||
/**
|
||||
* Call this to free the object's underlying memory. It may not be used afterwards.
|
||||
*
|
||||
* **Call with care** - if the object owns some other objects, those will also be destroyed,
|
||||
* or if this object is owned by another object that does not expect it to be externally deleted
|
||||
* (e.g. it is a child of a map), objects will be put in an invalid state that will most likely
|
||||
* crash the app.
|
||||
*
|
||||
* If the object is owned by your code, you should still call this method when adequate, as
|
||||
* otherwise the memory will never be freed, causing a memory leak, which is to be avoided.
|
||||
*/
|
||||
destroy(): void;
|
||||
}
|
||||
|
||||
${enums.join('\n\n')}
|
||||
|
||||
${interfaces.join('\n\n')}
|
||||
|
||||
export as namespace gd;
|
||||
`;
|
||||
|
||||
writeFileSync(__dirname + '/../types.d.ts', dts);
|
2687
GDevelop.js/types.d.ts
vendored
Normal file
2687
GDevelop.js/types.d.ts
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user