WillyJL
d34ff3310d
JS: Update and fix docs, fix Number.toString() with decimals ( #4168 )
...
* Update and fix JS docs
This could really use some automation, atleast for API reference
There are TypeScript definitions and typedocs, we don't need to be monkeys copying and reformatting this to API reference by hand
* Fix bugged character
* JS: Fix Number.toString() with decimals
* Fix
* Forgot this one
* docs: mention per-view child format
* Added @portasynthinca3 to docs' codeowners
* Updated CODEOWNERS
---------
Co-authored-by: Anna Antonenko <portasynthinca3@gmail.com >
Co-authored-by: hedger <hedger@nanode.su >
Co-authored-by: hedger <hedger@users.noreply.github.com >
2025-04-01 15:02:12 +04:00
hedger
5fcaef25b0
Stricter constness for const data ( #4126 )
...
* libs: stricter constness for saving RAM with .rodata section; fbt: sdk: fixed signature generation for nested const params
* hal: additional fixes for constness in USB subsystem
* debug apps: additional usb-related fixes
* mjs: more consts for token parser
* fatfs: const driver struct
* hal: more consts for ble & nfc vars
* hal: made FuriHalSpiBusHandle static
* hal: made FuriHalI2cBusHandle static
* usb: restored previous api
* linter fixes
* API fixes
2025-03-31 19:23:32 +04:00
Anna Antonenko
e27f82f041
[FL-3925, FL-3942, FL-3944] JS features & bugfixes (SDK 0.2) ( #4075 )
...
* feat: JS GPIO PWM, JS GUI Widget view; fix: JS EvtLoop stop on request, JS EvtLoop stop on error
* fix: f18 build
* docs: widget
* fix: js unit test
* change feature naming
Co-authored-by: あく <alleteam@gmail.com >
2025-02-13 17:50:38 +09:00
WillyJL
c807ffc324
JS: Backport³ and more additions & fixes ( #3961 )
...
* JS: Fix file select for fbt launch js_app
* JS: badusb: Add numpad keys
Co-authored-by: oldip <oldip@users.noreply.github.com >
* JS: badusb: Layout support
* JS: badusb: altPrint() and altPrintln()
Co-authored-by: oldip <oldip@users.noreply.github.com >
* JS: badusb: quit()
* JS: serial: readAny()
* JS: serial: end()
* JS: serial: Auto disable expansion service
* JS: storage: Add example script
* JS: gui: text_input: Fix NULL ptr when no prop given
* JS: gui: text_input: Default text props
Co-authored-by: xMasterX <xMasterX@users.noreply.github.com >
* JS: gui: byte_input
Co-authored-by: xMasterX <xMasterX@users.noreply.github.com >
* JS: gui: file_picker
* JS: gui: viewDispatcher.currentView
* JS: gui: view.hasProperty()
* JS: gui: Add some missing typedefs comments
* JS: globals: Fix toString() with negative numbers
* JS: globals: parseInt()
Co-authored-by: Spooks4576 <Spooks4576@users.noreply.github.com >
* JS: globals: toUpperCase() and toLowerCase()
Co-authored-by: Spooks4576 <Spooks4576@users.noreply.github.com >
* JS: globals: Add some missing typedefs
* JS: Add example for string functions
Co-authored-by: Spooks4576 <Spooks4576@users.noreply.github.com >
* JS: globals: __dirpath and __filepath
Co-authored-by: jamisonderek <jamisonderek@users.noreply.github.com >
* JS: globals: load() typedef missing scope param
* JS: Add interactive REPL script example
* JS: Add missing icon for file picker
* JS: Rename to __filename and __dirname
* JS: Move toUpperCase() and toLowerCase() to string class
* JS: parseInt() refactor
* JS: Typedef base param for parseInt()
* Revert "JS: gui: view.hasProperty()"
This reverts commit 1967ec06d4f2e9cafc4e18384ad370f7a7c44468.
* JS: Move toString() to Number class
* JS: Fix duplicate plugin files
in plugins, `requires` is used to determine which app to distribute the .fal under `apps_data/appid/plugins`
* JS: math: Missing typedefs, use camelCase
* JS: badusb: layoutPath is optional in typedef
* Fix ASS scoping
* Rename mjs term prop type value
* Change load() description
* Enlarge buffers in default prop assign
* More checks for default data/text size
* Make PVS happy
* Fix icon symbol
* Update types for JS SDK
* toString() was moved to number class
Co-authored-by: oldip <oldip@users.noreply.github.com >
Co-authored-by: xMasterX <xMasterX@users.noreply.github.com >
Co-authored-by: Spooks4576 <Spooks4576@users.noreply.github.com >
Co-authored-by: jamisonderek <jamisonderek@users.noreply.github.com >
Co-authored-by: hedger <hedger@users.noreply.github.com >
Co-authored-by: あく <alleteam@gmail.com >
2024-10-31 14:22:05 +09:00
Anna Antonenko
85e5642b2a
[FL-3918] Full-fledged JS SDK + npm packages ( #3963 )
...
* feat: js sdk
* refactor: move js back where it belongs
* docs: generate docs using typedoc
* feat: sdk versioning scheme
* ci: silence pvs warning
* docs: bring back old incomplete js docs
* style: readAnalog naming
* fix: rename script compatibility screens
Co-authored-by: あく <alleteam@gmail.com >
2024-10-31 11:42:57 +09:00
porta
8a95cb8d6b
[FL-3893] JS modules ( #3841 )
...
* feat: backport js_gpio from unleashed
* feat: backport js_keyboard, TextInputModel::minimum_length from unleashed
* fix: api version inconsistency
* style: js_gpio
* build: fix submodule ._ .
* refactor: js_gpio
* docs: type declarations for gpio
* feat: gpio interrupts
* fix: js_gpio freeing, resetting and minor stylistic changes
* style: js_gpio
* style: mlib array, fixme's
* feat: js_gpio adc
* feat: js_event_loop
* docs: js_event_loop
* feat: js_event_loop subscription cancellation
* feat: js_event_loop + js_gpio integration
* fix: js_event_loop memory leak
* feat: stop event loop on back button
* test: js: basic, math, event_loop
* feat: js_event_loop queue
* feat: js linkage to previously loaded plugins
* build: fix ci errors
* feat: js module ordered teardown
* feat: js_gui_defer_free
* feat: basic hourglass view
* style: JS ASS (Argument Schema for Scripts)
* fix: js_event_loop mem leaks and lifetime problems
* fix: crashing test and pvs false positives
* feat: mjs custom obj destructors, gui submenu view
* refactor: yank js_gui_defer_free (yuck)
* refactor: maybe_unsubscribe
* empty_screen, docs, typing fix-ups
* docs: navigation event & demo
* feat: submenu setHeader
* feat: text_input
* feat: text_box
* docs: text_box availability
* ci: silence irrelevant pvs low priority warning
* style: use furistring
* style: _get_at -> _safe_get
* fix: built-in module name assignment
* feat: js_dialog; refactor, optimize: js_gui
* docs: js_gui
* ci: silence pvs warning: Memory allocation is infallible
* style: fix storage spelling
* feat: foreign pointer signature checks
* feat: js_storage
* docs: js_storage
* fix: my unit test was breaking other tests ;_;
* ci: fix ci?
* Make doxygen happy
* docs: flipper, math, notification, global
* style: review suggestions
* style: review fixups
* fix: badusb demo script
* docs: badusb
* ci: add nofl
* ci: make linter happy
* Bump api version
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com >
2024-10-14 19:42:11 +01:00
Silent
8672a1d94c
Replace all calls to strncpy with strlcpy, use strdup more, expose strlcat ( #3866 )
...
strlcpy doesn't zero the buffer and ensures null termination,
just like snprintf
strlcat is already used by mjs and it's a safe alternative to strcat,
so it should be OK to expose to apps
2024-09-07 17:16:56 +01:00
DerSkythe
56fef61c66
fix: Ensure proper closure of variadic function in mjs_array
( #3798 )
...
The changes ensure that the `va_end` function is always called after `c_vsnprintf` in `mjs_array.c`
Co-authored-by: あく <alleteam@gmail.com >
2024-08-01 02:12:26 +09:00
MMX
ba014e873b
[FL-3854] Disable logging in mjs +2k free flash ( #3713 )
...
* disable logging in mjs
* mjs: alternative way to disable logging
Co-authored-by: hedger <hedger@nanode.su >
2024-06-15 16:20:53 +01:00
WillyJL
c673b53e21
JS: Add math module ( #3598 )
...
* JS: Add math module
* Double constants
* Error on argument type mismatch
* Fix missing returns
* Using sin, exp from c library
* asin, acos, pow, sqrt too
* Js: tests for math module and various fixes.
Co-authored-by: あく <alleteam@gmail.com >
Co-authored-by: nminaylov <nm29719@gmail.com >
2024-05-17 17:45:40 +01:00
hedger
c8e62ba5e8
mjs: minor fixes ( #3442 )
...
* lib: mjs: removed relocation flags
* js: fixed api example script
* js: private api cleanup
* Updated CODEOWNERS & readme for apps
2024-02-12 18:16:58 +04:00
Nikolay Minaylov
0154018363
[FL-3579, FL-3601, FL-3714] JavaScript runner ( #3286 )
...
* FBT: cdefines to env, libs order
* API: strtod, modf, itoa, calloc
* Apps: elk js
* Apps: mjs
* JS: scripts as assets
* mjs: composite resolver
* mjs: stack trace
* ELK JS example removed
* MJS thread, MJS lib modified to support script interruption
* JS console UI
* Module system, BadUSB bindings rework
* JS notifications, simple dialog, BadUSB demo
* Custom dialogs, dialog demo
* MJS as system library, some dirty hacks to make it compile
* Plugin-based js modules
* js_uart(BadUART) module
* js_uart: support for byte array arguments
* Script icon and various fixes
* File browser: multiple extensions filter, running js scripts from app loader
* Running js scripts from archive browser
* JS Runner as system app
* Example scripts moved to /ext/apps/Scripts
* JS bytecode listing generation
* MJS builtin printf cleanup
* JS examples cleanup
* mbedtls version fix
* Unused lib cleanup
* Making PVS happy & TODOs cleanup
* TODOs cleanup #2
* MJS: initial typed arrays support
* JS: fix mem leak in uart destructor
Co-authored-by: SG <who.just.the.doctor@gmail.com >
Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com >
2024-02-12 15:54:32 +07:00