mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
* Add support for MIGRATIONS_PATH (#20627) * Deprecate "local" extension types (#20624) * No longer resolve local non-package extensions * Remove local extensions from watcher * Install fs-extra for app dev * Replace usage of get-extensions * Rename create functions to match behavior * Drop extensions prefix from cli create * Drop name requirement from cli add * Drop extensions name regex checks * Don't rely on regex for extension identification * Add changeset * Fix build for @directus/extensions * Don't ensure nested dirs * Load npm dependency by name prefix * Throw more helpful error when pkg json is missing * Fix dependency loading paths * Only load local extensions if extensions path exists * Fix merge conflict * Remove unused fs-extra * Only sync extensions if location is defined * `extensions` -> `localExtensions` * Fix resolving of package extensions - consistent usage of term "package extensions" - enhance error messages * Fix syncing extension from storage * Revert-revert change from #20627 --------- Co-authored-by: ian <licitdev@gmail.com> Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Add back `MIGRATIONS_PATH` to `@directus/env` (#21053) * Setup browse endpoint for browsing Directus extensions (#21033) * Rename tag directus-custom to directus-extension * Devil's in the details * [WIP] Start on search lib * Setup extensions-registry package * Update pnpm lock * Move registry search fn to new package * Squash bugs * Remove unused deps * Remove unused dep in `extensions` * Add tests for validate-limit * Finish test coverage * Remove unused constant * Add back lodash-es 😇 * Install extensions-registry * Add default keywords * Expose registry endpoint in rest api * Add describe module * Reinstal pnpm * Drop reliance on author field The problem is that there's no requirement for it to be a valid(ated) user. Publisher is the only field we can rely on being an existing NPM user. * Update convertSearchResult test after author change * Format * Allow anything after the route To support packages with scopes * Add test for describe * Add more tests * Throw unprocessablecontenterror instead of error * Install errors pkg * Finish test coverage * Don't require description * Don't wrap individual keywords * Run formatter * Add changeset * Update packages/extensions-registry/src/modules/search/utils/validate-text.ts Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Return sandbox information * Drop support for directus-custom keyword * Set type to null for multiple tags * Restart api for new registry * Add version utility * Add out-of-date error * Add assertion for api versions * Finish new list method * Add describe * Use updated registry functions * Fix controller usage * Return output in data flag to be consistent * Add tests for the describe module * Add tests for list module * Finish tests for extensions-registry package * Remove vscode shenanigans --------- Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> * Project Forum: Browse UX (#21276) * Render marketplace route in-app * Update api list integration * Add support for limit/offset in list * Boilerplate route for drawer * Render extension readme in drawer * Render extension detail as separate page * Setup markup for extension banner * Render readme with markdown styling * Boilerplate metadata block * Use v-list for extension metadata metrics * Render compatibility metric * Show downloads and publish date * Refactor to individual files * Fix missing import * Add size metric * Show author on metadat * Show verified badge * Finish metadata * Run formatter * Style forum detail banner (#21290) * Style banner contents * Add background art * Add banner styles to default dark mode theme * Undo base style change to avoid conflict * Add beta chip badge to settings nav (#21296) * Add layout styling for detail page (#21297) * Render metadata as grid if size allows * Finish layout for detail page * Fix alignment of count * Fix search-input active state * Finalize forum header * Add marketplace banner * Style registry filter * Change v-list-item height to min-height Allows rows for forum registry to grow * Finalize styling for extension list item * Finalize styling for registry * Don't rely on format util * Forum account detail page (#21299) * Add support for author describe endpoint * Boilerplate author page * Add author endpoint * Update naming to account * Render github name on registry list * Render user's name + avatar on detail * Load account data on account page * Restructure module * Render account banner on account page * Render account metadata * Finish account detail page * Run formatter * Add sidebar info detail sections * install extensions from registry (#21070) * added an endpoint to install extensions from registries * add changeset * Revert format/lint scripts * Update pnpm-lock * Remove unused dependency * Add download module to extensions-registry abstraction * Download from extension registry instead of direct npm * Throw on error * Install based on version ID rather than name * Install based on ID in body Allows us to extend it in the future if need be * Download to tmp path instead of extensions * Save to extensions manager flattened * Use const for package folder name * Run more in try/catch to avoid server exit * Remove changeset * Undo docs updates We'll do all docs in a single PR :) --------- Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch> Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> * Manage extensions by directus_extensions primary key instead of npm package name (#21300) * Add marketplace migration * Include bundle info * Rename name to folder * Store name as folder * [WIP] Change name to ID * Update API to use UUIDs for extensions * Update app to use extensions id * Run formatter * Add changeset * Update generate-app-entrypoint to use updated format * Fix graphql usage * Format * Add forum uninstall endpoint (#21301) * Bootstrap uninstall * Finish uninstall endpoint * Use shared extensions store state for managing extensions in settings (#21317) * Use extensionsstore for extensions management * Use shared store for extensions state and modification * Remove unused emit * Adds install/uninstall GUI elements for project forum (#21319) * Use warning color for incompatible * Styling tweaks * Transition optional background color * Add keys for installing * Add install button to extension detail * Finish install button * Add uninstall option to extensions item * Empty local cached extensions on start * Add (hopefully) temporary hack to await reload * Add install / uninstall buttons * Update lockfile * Fix bundle entries not rendering properly * Clean up spinner styling * Properly wait for reload to be done * Run formatter * Fix registry name * Fix local extension loading * Render location/company in byline * Rearchitect metadata to unstyled listitems * Add max-width to page container * Only allow admins to install/uninstall extensions * Remove unused link * Disable eslint for map use * Run formatter * Add no-results indicator (#21389) * Add no-results indicator * add error state as well * Standardize trailing slash * Standardize pk check * Resolve unnecessary check * Move all deps to dev deps in app * Optimize exec order * Pull data from top level package * Redesign filter bar * Reset page count on filter change * Use default padding on top of page Feels weird now, but there's a theme-update coming that'll make this make sense :) * Show first/last in pagination * Auto-format package name * Use updated registry api return names * Add sorting by total downloads * Add sparkline for downloads * Add a bit of padding * Finalize sparkline styling * Run formatterg * Add sandbox flag in list call * Add MARKETPLACE_TRUST env var * Set sandbox requirement on download * Render list item badge * Fix padding * Show license in gui * Add support for multiple maintainers * Add activity tracking for install * Make incompatibility notice friendlier * Tweak margin of sparkline * Update default CSP headers to include github content * Make extension readme selectable * Consistent icon, add tooltips * Reduce size of install button * Run formatter * Render readme anchors with target blank * Add min width to v-select components * Fix background on search input * Reduce padding on marketplace pages * Fix showing no results * Be consistent * Render type filter menu in full height * Clean up compatibility notice * Hide count result when search count is 0 * Use v-show instead * Bump no results notice down a bit * Cleanup size of install buttons * Use buttons for install / author * Fix sparkline rendering * Add better loading state for extension detail page * Add spinners * Render proper error message in case readme is missing * Use heart logo for marketplace * Add image border shadow * Add loading banner on account page * Show reload warning as persistent notification * Only show one notification * Update snapshot * Add padding to verified icon * Base extensions id on package id, show installed badge * Sync pagination / search / filter with URL Special shoutout to Tim * Next max ext (#21541) * Add limit exceeded error * Add limit exceeded translation * Add extensions_limit env var * Load extensions limit in app * Don't allow installing unknown versions * Don't require installed flag * Return bundled entries in describe * Update chip to match style * Prevent install on limit reached * Run formatter * Fix bundle loading * Resolve npm extensions by package manifest (#21478) * Merge main into next (#21669) * Clean-up deps * Don't export type (as long as not used anywhere) * Update semver to latest * Relax compatibility notice * Use more suitable icon for version * Re-render download charts on color-scheme change * Link extensions to marketplace --------- Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> Co-authored-by: ian <licitdev@gmail.com> Co-authored-by: Mahendra Kumar <22556323+mahendraHegde@users.noreply.github.com>
234 lines
6.0 KiB
JSON
234 lines
6.0 KiB
JSON
{
|
|
"name": "@directus/api",
|
|
"version": "17.1.0",
|
|
"description": "Directus is a real-time API and App dashboard for managing SQL database content",
|
|
"keywords": [
|
|
"directus",
|
|
"realtime",
|
|
"database",
|
|
"content",
|
|
"api",
|
|
"rest",
|
|
"graphql",
|
|
"app",
|
|
"dashboard",
|
|
"headless",
|
|
"cms",
|
|
"mysql",
|
|
"postgresql",
|
|
"cockroachdb",
|
|
"sqlite",
|
|
"framework",
|
|
"vue"
|
|
],
|
|
"homepage": "https://directus.io",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/directus/directus.git",
|
|
"directory": "api"
|
|
},
|
|
"funding": "https://github.com/directus/directus?sponsor=1",
|
|
"license": "BUSL-1.1",
|
|
"author": {
|
|
"name": "Monospace Inc",
|
|
"email": "info@monospace.io",
|
|
"url": "https://monospace.io"
|
|
},
|
|
"maintainers": [
|
|
{
|
|
"name": "Rijk van Zanten",
|
|
"email": "rijkvanzanten@me.com",
|
|
"url": "https://github.com/rijkvanzanten"
|
|
},
|
|
{
|
|
"name": "Ben Haynes",
|
|
"email": "ben@rngr.org",
|
|
"url": "https://github.com/benhaynes"
|
|
}
|
|
],
|
|
"type": "module",
|
|
"exports": {
|
|
".": "./dist/index.js",
|
|
"./*": "./dist/*.js",
|
|
"./cli/run.js": "./dist/cli/run.js",
|
|
"./package.json": "./package.json"
|
|
},
|
|
"main": "dist/index.js",
|
|
"files": [
|
|
"dist"
|
|
],
|
|
"scripts": {
|
|
"build": "tsc --project tsconfig.prod.json && copyfiles \"src/**/*.{yaml,liquid}\" -u 1 dist",
|
|
"cli": "NODE_ENV=development SERVE_APP=false tsx src/cli/run.ts",
|
|
"dev": "NODE_ENV=development SERVE_APP=true tsx watch --clear-screen=false src/start.ts",
|
|
"test": "vitest --watch=false"
|
|
},
|
|
"dependencies": {
|
|
"@authenio/samlify-node-xmllint": "2.0.0",
|
|
"@aws-sdk/client-ses": "3.525.0",
|
|
"@directus/app": "workspace:*",
|
|
"@directus/constants": "workspace:*",
|
|
"@directus/env": "workspace:*",
|
|
"@directus/errors": "workspace:*",
|
|
"@directus/extensions": "workspace:*",
|
|
"@directus/extensions-registry": "workspace:*",
|
|
"@directus/extensions-sdk": "workspace:*",
|
|
"@directus/format-title": "10.1.0",
|
|
"@directus/memory": "workspace:*",
|
|
"@directus/pressure": "workspace:*",
|
|
"@directus/schema": "workspace:*",
|
|
"@directus/specs": "workspace:*",
|
|
"@directus/storage": "workspace:*",
|
|
"@directus/storage-driver-azure": "workspace:*",
|
|
"@directus/storage-driver-cloudinary": "workspace:*",
|
|
"@directus/storage-driver-gcs": "workspace:*",
|
|
"@directus/storage-driver-local": "workspace:*",
|
|
"@directus/storage-driver-s3": "workspace:*",
|
|
"@directus/storage-driver-supabase": "workspace:*",
|
|
"@directus/system-data": "workspace:*",
|
|
"@directus/utils": "workspace:*",
|
|
"@directus/validation": "workspace:*",
|
|
"@godaddy/terminus": "4.12.1",
|
|
"@rollup/plugin-alias": "5.1.0",
|
|
"@rollup/plugin-node-resolve": "15.2.3",
|
|
"@rollup/plugin-virtual": "3.0.2",
|
|
"argon2": "0.40.1",
|
|
"async": "3.2.5",
|
|
"axios": "1.6.7",
|
|
"busboy": "1.6.0",
|
|
"bytes": "3.1.2",
|
|
"camelcase": "8.0.0",
|
|
"chalk": "5.3.0",
|
|
"chokidar": "3.6.0",
|
|
"commander": "12.0.0",
|
|
"content-disposition": "0.5.4",
|
|
"cookie-parser": "1.4.6",
|
|
"cors": "2.8.5",
|
|
"cron-parser": "4.9.0",
|
|
"date-fns": "3.3.1",
|
|
"deep-diff": "1.0.2",
|
|
"destroy": "1.2.0",
|
|
"directus": "workspace:*",
|
|
"dotenv": "16.4.5",
|
|
"encodeurl": "1.0.2",
|
|
"eventemitter2": "6.4.9",
|
|
"execa": "8.0.1",
|
|
"exif-reader": "2.0.1",
|
|
"express": "4.18.3",
|
|
"flat": "6.0.1",
|
|
"fs-extra": "11.2.0",
|
|
"glob-to-regexp": "0.4.1",
|
|
"graphql": "16.8.1",
|
|
"graphql-compose": "9.0.10",
|
|
"graphql-ws": "5.15.0",
|
|
"helmet": "7.1.0",
|
|
"icc": "3.0.0",
|
|
"inquirer": "9.2.15",
|
|
"ioredis": "5.3.2",
|
|
"ip-matching": "2.1.2",
|
|
"isolated-vm": "4.7.2",
|
|
"joi": "17.12.2",
|
|
"js-yaml": "4.1.0",
|
|
"js2xmlparser": "5.0.0",
|
|
"json2csv": "5.0.7",
|
|
"jsonwebtoken": "9.0.2",
|
|
"keyv": "4.5.4",
|
|
"knex": "3.1.0",
|
|
"ldapjs": "2.3.3",
|
|
"liquidjs": "10.10.1",
|
|
"lodash-es": "4.17.21",
|
|
"marked": "12.0.0",
|
|
"micromustache": "8.0.3",
|
|
"mime-types": "2.1.35",
|
|
"minimatch": "9.0.3",
|
|
"ms": "2.1.3",
|
|
"nanoid": "5.0.6",
|
|
"node-machine-id": "1.1.12",
|
|
"node-schedule": "2.1.1",
|
|
"nodemailer": "6.9.11",
|
|
"object-hash": "3.0.0",
|
|
"openapi3-ts": "4.2.2",
|
|
"openid-client": "5.6.4",
|
|
"ora": "8.0.1",
|
|
"otplib": "12.0.1",
|
|
"p-limit": "5.0.0",
|
|
"p-queue": "8.0.1",
|
|
"papaparse": "5.4.1",
|
|
"pino": "8.19.0",
|
|
"pino-http": "9.0.0",
|
|
"pino-http-print": "3.1.0",
|
|
"pino-pretty": "10.3.1",
|
|
"qs": "6.11.2",
|
|
"rate-limiter-flexible": "5.0.0",
|
|
"rollup": "4.12.0",
|
|
"samlify": "2.8.11",
|
|
"sanitize-html": "2.12.1",
|
|
"sharp": "0.33.2",
|
|
"snappy": "7.2.2",
|
|
"stream-json": "1.8.0",
|
|
"tar": "6.2.0",
|
|
"tsx": "4.7.1",
|
|
"wellknown": "0.5.0",
|
|
"ws": "8.16.0",
|
|
"zod": "3.22.4",
|
|
"zod-validation-error": "3.0.3"
|
|
},
|
|
"devDependencies": {
|
|
"@directus/random": "workspace:*",
|
|
"@directus/tsconfig": "workspace:*",
|
|
"@directus/types": "workspace:*",
|
|
"@ngneat/falso": "7.2.0",
|
|
"@types/async": "3.2.24",
|
|
"@types/busboy": "1.5.3",
|
|
"@types/bytes": "3.1.4",
|
|
"@types/content-disposition": "0.5.8",
|
|
"@types/cookie-parser": "1.4.7",
|
|
"@types/cors": "2.8.17",
|
|
"@types/deep-diff": "1.0.5",
|
|
"@types/destroy": "1.0.3",
|
|
"@types/encodeurl": "1.0.2",
|
|
"@types/express": "4.17.21",
|
|
"@types/express-serve-static-core": "4.17.43",
|
|
"@types/fs-extra": "11.0.4",
|
|
"@types/glob-to-regexp": "0.4.4",
|
|
"@types/inquirer": "9.0.7",
|
|
"@types/js-yaml": "4.0.9",
|
|
"@types/json2csv": "5.0.7",
|
|
"@types/jsonwebtoken": "9.0.6",
|
|
"@types/ldapjs": "2.2.5",
|
|
"@types/lodash-es": "4.17.12",
|
|
"@types/mime-types": "2.1.4",
|
|
"@types/ms": "0.7.34",
|
|
"@types/node": "18.19.21",
|
|
"@types/node-schedule": "2.1.6",
|
|
"@types/nodemailer": "6.4.14",
|
|
"@types/object-hash": "3.0.6",
|
|
"@types/papaparse": "5.3.14",
|
|
"@types/qs": "6.9.12",
|
|
"@types/sanitize-html": "2.11.0",
|
|
"@types/stream-json": "1.7.7",
|
|
"@types/tar": "6.1.11",
|
|
"@types/wellknown": "0.5.8",
|
|
"@types/ws": "8.5.10",
|
|
"@vitest/coverage-v8": "1.3.1",
|
|
"copyfiles": "2.4.1",
|
|
"form-data": "4.0.0",
|
|
"knex-mock-client": "2.0.1",
|
|
"typescript": "5.3.3",
|
|
"vitest": "1.3.1"
|
|
},
|
|
"optionalDependencies": {
|
|
"@keyv/redis": "2.8.4",
|
|
"mysql": "2.18.1",
|
|
"nodemailer-mailgun-transport": "2.1.5",
|
|
"nodemailer-sendgrid": "1.0.3",
|
|
"oracledb": "6.3.0",
|
|
"pg": "8.11.3",
|
|
"sqlite3": "5.1.7",
|
|
"tedious": "17.0.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=18.17.0"
|
|
}
|
|
}
|