* Use pnpm instead of npm
* Setup workspace
* Replace scripts / lerna root stuff
* Add todo file
* Update lock, start updating packages
* Update todo
* [WIP] Keep going on module resolution in pnpm
* Fix final missing deps/types for complete build
* [WIP] Replace npm commands with pnpm alternatives
* Update jest config for v28
* Fix missing package under schema
* Update workflow
* Run CI on fork
* Use local reference
* Remove version from local workflow
* Add build to prepare
* Add Node's max old space size flag to linter
* Idemdito for codeql
* Hyphens? Underscores?
* Bang
* Only build one thing at a time
* Underscores after all?
* Match 7gb of GH
* Set env on prepare
* Jest is driving me nuts
* Downgrade jest
* Add root jest
* We'll get there, eventually.
* 🥳
* Het houdt niet op, niet vanzelf
* attempt to fix e2e
* fix unit test & shared import
* add `debug: true` to CodeQL action
* Fix dev call in shared
* Add missing cross-env
* Add missing geo-json dependency for app
* add flag to prepare action to skip build
* remove debug flag from codeql action
* fix invalid env syntax
* add tslib to app dependencies for tests
* another attempt
* Added missing rimraf dependency for the api prebuild/cleanup scripts
* Added missing ts-node dependency for the api cli script
* update E2E tests readme to use pnpm
* Undo move of extensions sdk
* Fixes nested groups in accordions not rendering fields (#14369)
* initial fix for nested groups in accordions
* removed debug code
* Fix strict relative dates showing "incorrect" (#14390)
* Set rounding method of relative formatted date to floor when strict option is selected
* Add round fn as an option
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Don't use locales in generated camelCased values from env (#14401)
Ref https://github.com/directus/directus/discussions/14122
* Fix list panel descending sort (#14396)
* fix list panel descending sort
* Handle missing or explicit desc value
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Fix query primary field for system tables (#14402)
* New Crowdin updates (#14403)
* Update source file en-US.yaml
* New translations en-US.yaml (Spanish, Chile)
* New translations en-US.yaml (Spanish, Latin America)
* New translations en-US.yaml (Greek)
* New translations en-US.yaml (Italian)
* New translations en-US.yaml (French, Canada)
* Fix/wysiwyg context menu (#14404)
* New translations en-US.yaml (Polish) (#14407)
* Encoded the url using encodeURIComponent, so that the url gets sanitzed and so, we did not get 404 error. (#14418)
* Encoded the url using encodeURIComponent, so that the url gets sanitized and we did not get 404 error.
* Added required changes as stated by the reviewer
* Used encodeURI instead of encodeURIComponent to encode the params only
* Solved linting error
* Solved linting errors
* checked with npm run lint, no linting errors found
* fix generateJoi error due to empty permissions when creating new role (#14416)
* fix empty permissions when creating new role
* basic test
* move logic up
* additional test
* Update api/tests/utils/filter-items.test.ts
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: ian <licitdev@gmail.com>
* Recreate lockfile
* Fix build of extensions-sdk
* Add missing dependency
* Add some more missing deps
* Update blackbox to use pnpm
* Update workflow to use main
* Update pack to work with pnpm
* Simplify commands
* Remove todo file (completed)
* ADd missing types dep
* Use local test version
* Remove version from local reference
* Call super with context
* Add missing dep
* Simplify workflows
Ref https://github.com/directus/organization/issues/135
* Simplify some more
* Linter is on root
Co-authored-by: Azri Kahar <42867097+azrikahar@users.noreply.github.com>
Co-authored-by: brainslug <tim@brainslug.nl>
Co-authored-by: Brainslug <br41nslug@users.noreply.github.com>
Co-authored-by: Gerard Lamusse <gerardlamo@gmail.com>
Co-authored-by: José Varela <joselcvarela@gmail.com>
Co-authored-by: ian <licitdev@gmail.com>
Co-authored-by: Zeel Pathak <60271095+zeel-pathak@users.noreply.github.com>
* Add black box tests
* Revert docker compose file
* Update workflow
* Try use workflow from dev repo
* Increase seedDB() timeout
* Disable other checks for now
* Change DB sequence
* Update jest moduleNameMapper
* Update workflow's docker-compose.yml path
* Slice array first
* Remove differentiation of status code
* Delete field only after foreign key constraints are removed
* Add checks for different types of primary key
* Test global query filter for all field types
* Increase timeout for m2o seeding
* Add case insensitive string operators
* Update filter check to run on relational fields
* Enable time field checks
* Add seeded random and fix relational seeding
* Add casting for integer and bigInteger
* Minor fixes
* Reduce bigInt values
* Separate seeding of DB structure from values
* Add primaryKey seeding function
* Use automatic IDs except for string pk
* Try fix ci
* Update package-lock.json
* Update common.test for concealed user tokens
* Use dynamic field type for m2o.test relational fields
* Temporary disable missing nicontains for string type
* Add support for alias type filtering
* Fix relational filter operator checks
* Add initial o2m test
* Remove integer pk limit
* Add empty checks for string and uuid null
* Limit generated integer value to 4 bytes
* Patch timezone tests for MSSQL
* Remove sample query filter test
* Fix timezone test for sqlite
* Fix MSSQL uuids
* Fix MSSQL timestamp inaccuracy
* Cast datetime schema to milliseconds for comparison
* Fix MySQL / Maria timestamp inaccuracy
* Fix MySQL / Maria between operator inconsistency for float type
* Fix missing time datatype in Oracle
* Skip filter testing on Oracle
* Enable o2m filter tests for other collections
* Run tests only on SQLite for PRs unless the Full Tests label exists
* Try fix actions
* Refactor github actions
* Update tests flow setup to use getURL()
* Start postgres docker
* Reinstate package-lock
* Fix geometry test
* Remove .gitkeep files
* Add todo.md
* Rename black box to blackbox
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* quick fix ignoring fields wrapped in $FOLLOW when checking permissions
* checking related permissions for $FOLLOW filter
* moved $FOLLOW logic to extractRequiredFieldPermissions
* initial attempt at making e2e test for this issue
* moved test to many-to-many.test.ts
* added permissions for the test
* created new user and role for these tests
* broadened the expected matching object
* only expecting name as the id field UUID was giving inconsistent uppercased results with mssql
* Remove UTC conversion from date, time and datetime fields
* Fix mysql / maria timestamps when not in UTC timezone
* Add sequential tests with node timezone change
* Increase connection attempt check
* Add error catching in tests flow setup
* Check for server connectivity
* Fix promises
* Fix timestamp inconsistencies
* Revert to previously used parseISO
* Ensure database and directus connection
* Add another timezone to test positive and negative GMT
* Set local server hostname to localhost
* Add tests for SQLite
* Use notNullable primary key
* Revert connection testing sleep duration
* Fix nested transactions on SQLite
* Increase MSSQL request timeout
* Add type override flag for SQLite
* Remove commented code
* Add type override flags for Oracle
* Updated test file path
* Increase test servers launch timeout
* Increase test servers launch timeout
* Update format of tests
* Fix typo
* Increase test timeout for CockroachDB
* Add type overrides when creating fields through collections service
* Remove time field type conversion for Oracle
* Update collections list in test
* Remove check for time field in Oracle
* Add missing continue...
* Remove database override
* Add note for SQLite
* Rename flags and extract shared util
* Abstract remaining DB specific checks
* Revert flags renaming except renaming of test files
* Use date helper to add field flag
* Move field date typecasting upstream
* Use timestamp helper for date-created and date-updated
* Fix tests
* Remove unused vars
* Add tests for date-created
* Increase connection attempt count
* Fix test for mariadb
* Increase allowable difference to account for delays
* Add tests for date-updated
* Fix tests again for mariadb
* Add date helpers post merge
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* mock-knex
* test on the migrations run started.
* test passing for run.up()
* reorganize /tests/ to allow integration tests
* e2e setup changes
* e2e jest.config moved
* e2e paths fixed, integration config
* add nonadmin role and user seed+migration
* auth/login w/ documentation (docs will be moved)
* update user seed
* add postgres10 to the ci?
* argon2 saves the day
* items tests passing with postgres10 support
* removed comments
* move generateHash out of directus_users
Co-authored-by: Jay Cammarano <jaycammarano@gmail.com>
* reorganized for sanity
* filter tests for _eq/_neq
* logical operators
* update one one to many
* /:collection PATCH one to many
* base tables.id => uuids to minimize collisions
* tests pass
* added python to dockerfile
* tests passing
* ci?
* ci...
* hanging async
* get many m2o, create many m2o, expand seedTable()
* get many error handling
* added artists_events relation
* test for artists_events relations
* test for getOne m2m
* get many artists_events
* create one many-to-many
* updated createMany() for join tables
* create many artists_events
* tests for update one many to many
* removed stray "only"
* update many many to many
* improved update many
* tests for delete one artists_events
* delete many many to many tests
* update one + delete one with no relations
* removed only
* delete many artists with no relations
* added faker.js for testing
* edited env vars removed sqlite from testing (temp)
* getMany endpoint working with no data
* converted to faker
* getOne test passing
* schema for relations, item creation => factory
* many to many test working, factory refactored
* faker as dev dep
* new schema, tests passing postgres json exception
* tests passing
* upgrade tedious
* images
* removed images, rebuilt package-lock.json
* added users and schema map(WIP)
* user => artist m2o relation working on fields
* downgrade tedious
* user => guest, each => all
* items/:collection/invalid_id test
* items/invalid_collection/:id test added
* /:collection POST createOne test
* createMany factory, createMany endpoint test
* error handling tests
* create many with a many to one
* createMany with options to link relations
* some more describe sorting
* factory tests working
* tests passing
* added faker
* added factories and tests
* removed unnecessary factory
* new schema
* seedTable test
* included all dbs in db relevant tests
* json string for insert in dbs that aren't postgres
* added organizer
* polished up geometry types
* added raw option to seedTable return
* forgot await disonnect
* createMany func with test
* remove an only
* createMany w/ options for relations and tests
* tests for json field
* removed an only
* json support
* factories working, ignore tests leaving for future
* schema now represented in migrations (untested)
* seeds (untested)
* added seeding and fixed seed id #s
* removed run-migrations, not migrating .ts files
* setup.ts runs with migrate and seed
* removed unneeded console.log()
* guest id is uuid, because I can
* added guest_events, changed user => guest
* updated column types
* removing system_tables migration file
* fixed many to one relation for favorite_artist
* added relational tables to collections
* fixed relations
* geometry fields
* updated schema
* update dependency @types/dockerode to v3.2.7
* Fix type error in test setup
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
* Declare return types on functions
And a very few other type related minor fixes
* Minor syntax fixes
* Remove unnecessary escape chars in regexes
* Remove unnecessary awaits
* Replace deprecated req.connection with req.socket
* Replace deprecated upload with uploadOne
* Remove unnecessary eslint-disable-next-line comments
* Comment empty functions / catch or finally clauses
* Fix irregular whitespaces
* Add missing returns (null)
* Remove unreachable code
* A few logical fixes
* Remove / Handle non-null assertions which are certainly unnecessary (e.g. in
tests)