diff --git a/ivette/Makefile b/ivette/Makefile index 98ba49b41697311318867a42d619f40ba66b3ab6..bfb87da1f697773c351ceb614b00e89000e71b2d 100644 --- a/ivette/Makefile +++ b/ivette/Makefile @@ -156,8 +156,9 @@ DOC_GUIDES= src/dome/doc/guides NODEBIN= ./node_modules/.bin -DOCDIRS= src/ivette src/dome/renderer src/dome/utils src/frama-c/api -DOCFILES= src/frama-c/server.ts src/frama-c/states.ts $(shell find $(DOCDIRS) -name "*.ts" -or -name "*.tsx") +DOCDIRS= src/ivette src/dome/renderer src/dome/misc src/frama-c/kernel/api src/frama-c/plugins/*/api +ENTRYPOINTS= $(addprefix -entryPoints , $(DOCDIRS)) +DOCFILES= src/frama-c/server.ts src/frama-c/states.ts --entryPointStrategy expand $(ENTRYPOINTS) icons: $(DOC_ICONS_GALLERY) diff --git a/ivette/package.json b/ivette/package.json index a443b467f10619e0554b46a7f8b740b19863c915..6f63bfb2c0cef86b94ae3b1d4dad5909420c1462 100644 --- a/ivette/package.json +++ b/ivette/package.json @@ -48,7 +48,7 @@ "react-dom": "^18", "react-draggable": "^4.4.6", "react-fast-compare": "^3.2.2", - "react-flame-graph" : "^1.4.0", + "react-flame-graph": "^1.4.0", "react-force-graph-2d": "^1.25.4", "react-force-graph-3d": "^1.24.2", "react-infinite-scroller": "^1.2.6", @@ -56,7 +56,8 @@ "react-virtualized": "9.22.5", "react-virtualized-auto-sizer": "^1.0.22", "source-map-support": "^0.5.21", - "tippy.js": "6.3.7" + "tippy.js": "6.3.7", + "typedoc": "^0.26.6" }, "devDependencies": { "@electron-toolkit/eslint-config-prettier": "^2.0.0", diff --git a/ivette/src/dome/renderer/table/arrays.ts b/ivette/src/dome/renderer/table/arrays.ts index 45eed6bfc269d3001ed0df80f5ba37e19c37a13a..83dc6d909910bf56a0828a4c9b94f39e71d5435d 100644 --- a/ivette/src/dome/renderer/table/arrays.ts +++ b/ivette/src/dome/renderer/table/arrays.ts @@ -412,7 +412,7 @@ export class ArrayModel<Key, Row> Silently removes the entries. Modification will be only visible after a final [[reload]]. Useful for a large number of batched updates. - @param key - the removed entry. + @param keys - the entries to remove. */ removeData(keys: Collection<Key>): void { forEach(keys, (k) => this.index.delete(k)); @@ -472,7 +472,9 @@ export class CompactModel<Key, Row> extends ArrayModel<Key, Row> { getkey: (d: Row) => Key; - /** @param key - the key property of `Row` holding an entry identifier. */ + /** + * @param getkey - + * returns the key property of `Row` holding an entry identifier. */ constructor(getkey: (d: Row) => Key) { super(); this.getkey = getkey; diff --git a/ivette/src/frama-c/server.ts b/ivette/src/frama-c/server.ts index 23fcecf9e276d65636df59fb50296c3a512592d4..0e135187f4f8b7cc3097f2e2b967e3d42993eaa4 100644 --- a/ivette/src/frama-c/server.ts +++ b/ivette/src/frama-c/server.ts @@ -705,8 +705,8 @@ function _signal(id: string): SignalHandler { * @param {string} id The signal identifier to listen to. * @param {function} callback The callback to call upon signal. */ -export function onSignal(s: Signal, callback: () => void): void { - _signal(s.name).on(callback); +export function onSignal(id: Signal, callback: () => void): void { + _signal(id.name).on(callback); } /** @@ -717,8 +717,8 @@ export function onSignal(s: Signal, callback: () => void): void { * @param {string} id The signal identifier that was listen to. * @param {function} callback The callback to remove. */ -export function offSignal(s: Signal, callback: () => void): void { - _signal(s.name).off(callback); +export function offSignal(id: Signal, callback: () => void): void { + _signal(id.name).off(callback); } /** @@ -726,10 +726,10 @@ export function offSignal(s: Signal, callback: () => void): void { * @param {string} id The signal identifier to listen to. * @param {function} callback The callback to call upon signal. */ -export function useSignal(s: Signal, callback: () => void): void { +export function useSignal(id: Signal, callback: () => void): void { React.useEffect(() => { - onSignal(s, callback); - return () => { offSignal(s, callback); }; + onSignal(id, callback); + return () => { offSignal(id, callback); }; }); } diff --git a/ivette/tsconfig.json b/ivette/tsconfig.json index a7bc1c3b95b268cbaab2c0b578859e0822b756ed..0f9b89152d50a3f758909f41085a66ebae3f815e 100644 --- a/ivette/tsconfig.json +++ b/ivette/tsconfig.json @@ -96,7 +96,6 @@ "include": [ "src/**/*", "src/**/*.json", - "api/**/*", "tests/**/*" ], "exclude": [ diff --git a/ivette/yarn.lock b/ivette/yarn.lock index 2f199e3035293664ca748c61734b6ac3db1d2198..d7b59776d4dcb792b059ba7fc1f5d760dab4414b 100644 --- a/ivette/yarn.lock +++ b/ivette/yarn.lock @@ -215,6 +215,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/runtime@^7.0.0": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.4.tgz#6ef37d678428306e7d75f054d5b1bdb8cf8aa8ee" + integrity sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/runtime@^7.17.8": version "7.24.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.1.tgz#431f9a794d173b53720e69a6464abc6f0e2a5c57" @@ -847,6 +854,13 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz#2c1fb69e02a3f1506f52698cfdc3a8b6386df9a6" integrity sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ== +"@shikijs/core@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.14.1.tgz#008f1c4a20ff83fd1672d9e31d76b687862f7511" + integrity sha512-KyHIIpKNaT20FtFPFjCQB5WVSTpLR/n+jQXhWHWVUMm9MaOaG9BGOG0MSyt7yA4+Lm+4c9rTc03tt3nYzeYSfw== + dependencies: + "@types/hast" "^3.0.4" + "@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" @@ -987,6 +1001,13 @@ dependencies: "@types/node" "*" +"@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + "@types/http-cache-semantics@*": version "4.0.4" resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" @@ -1110,6 +1131,11 @@ resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz" integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== +"@types/unist@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + "@types/verror@^1.10.3": version "1.10.9" resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.9.tgz#420c32adb9a2dd50b3db4c8f96501e05a0e72941" @@ -2722,6 +2748,11 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + env-paths@^2.2.0: version "2.2.1" resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" @@ -4233,6 +4264,13 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" @@ -4319,6 +4357,11 @@ lru-cache@^7.7.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + magic-string@^0.30.5: version "0.30.5" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz" @@ -4348,6 +4391,18 @@ make-fetch-happen@^10.0.3: socks-proxy-agent "^7.0.0" ssri "^9.0.0" +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + matcher@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" @@ -4355,6 +4410,11 @@ matcher@^3.0.0: dependencies: escape-string-regexp "^4.0.0" +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + "memoize-one@>=3.1.1 <6": version "5.2.1" resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" @@ -4438,6 +4498,13 @@ minimatch@^5.0.1, minimatch@^5.1.0, minimatch@^5.1.1: dependencies: brace-expansion "^2.0.1" +minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" @@ -4958,6 +5025,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + punycode@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" @@ -5433,6 +5505,14 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shiki@^1.9.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.14.1.tgz#617e62dfbe3a083e46111e22086044fbd7644786" + integrity sha512-FujAN40NEejeXdzPt+3sZ3F2dx1U24BY2XTY01+MG8mbxCiA2XukXdcbyMyLAHJ/1AUUnQd1tZlvIjefWWEJeA== + dependencies: + "@shikijs/core" "1.14.1" + "@types/hast" "^3.0.4" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" @@ -5872,6 +5952,17 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" +typedoc@^0.26.6: + version "0.26.6" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.26.6.tgz#9cb3d6f0ed5070f86af169c3f88ca2c9b7031f59" + integrity sha512-SfEU3SH3wHNaxhFPjaZE2kNl/NFtLNW5c1oHsg7mti7GjmUj1Roq6osBQeMd+F4kL0BoRBBr8gQAuqBlfFu8LA== + dependencies: + lunr "^2.3.9" + markdown-it "^14.1.0" + minimatch "^9.0.5" + shiki "^1.9.1" + yaml "^2.4.5" + typescript@^4.0.2: version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" @@ -5882,6 +5973,11 @@ typescript@^5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + unbox-primitive@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz" @@ -6124,6 +6220,11 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^2.4.5: + version "2.5.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.0.tgz#c6165a721cf8000e91c36490a41d7be25176cf5d" + integrity sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw== + yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"