* start setting up types
* Add types for sandbox flag
* Add initial secure API extensions implementation
* Remove erroneous file
* Delete old exec implementation
* Read sandbox from extension manifest
* Rename \0virtual to @directus/virtual-ent4y
* Test register exec
* Add exec function using ivm callback
* Throw error on invalid type
* Make extensions individually unregisterable
* Remove support for secure bundle extensions
* Rework context passing to fix async
* Remove unused promise.resolve
* Start implementing secure extension register and context functions
* Rename secure to sandbox
* Only dispose isolate on catastrophic error
* Use callback copy option instead of explicit ExternalCopy
* Add registerOperation handler
* Add registerRoute handler
* Rename some return values
* Rename sandbox registration file
* Expose utils through sdk import
* Remove unused files
* Rename timeout to sleep for consistency with flows
* Make registerRoute method uppercase
* Add request util
* Abort process on catastrophic error
* Update api extension sdk import name
* Add variables for reference parameters for consistency
* Add permissions to request util
* Fix non-determinism when registering sandboxed extensions
* Improve stack trace readability
* Initialize isolated-vm for Vitest
* Format files
* Fix request options undefined check
* Always copy host function result into isolate
* Split up host function reference generation
* Add workaround for async error from host not thrown in isolate
* Use undefined instead of null as first argument to apply
* Abort process if sandbox has reached memory limit
* Reorganize files
* Use type error for assertion
* Use typeerrors in sdk generators, restructure some more
* Document
* Add changeset
---------
Co-authored-by: Nicola Krumschmidt <nicola.krumschmidt@freenet.de>
Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
* build: ➕ add vitest and update test scripts
* build: 🔧 add vitest config
* build: ✅ Migrate tests to vitest
Remove jest references from test api test files and replace with vitest equivalents.
Tests: 13 tests are failing.
* build: 🚚 move vite.config.ts to api/src folder
* build: 🔥 remove unused vitest.config from api root
* build: ✅ import vitest modules for tests
* build: ✅ add type conversion for actual object
* Finish switch from Jest to Vitest in API
* Replace some leftovers
* Load "sharp" before tests
* Try with cjs
* Temporary enable verbose reporter
* Try with globalSetup
* Fix path to globalSetup
* Provide default export in globalSetup
* Final clean-up
* Remove @vitest/ui & update vitest to 0.25.0
* Add vitest c8 coverage dependency
* Update vitest to v0.25.1
* Replace unnecessary Vitest workaround
* Rework new tests
* Resolve build errors
Co-authored-by: Dorian C Brown <brown.3794@gmail.com>
Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>