@directus/api 17.0.1 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/app.js +8 -2
  2. package/dist/auth/drivers/ldap.js +14 -16
  3. package/dist/auth/drivers/local.js +16 -10
  4. package/dist/auth/drivers/oauth2.js +16 -11
  5. package/dist/auth/drivers/openid.js +16 -11
  6. package/dist/auth/drivers/saml.js +27 -12
  7. package/dist/cli/commands/init/index.js +3 -3
  8. package/dist/cli/commands/security/key.js +2 -2
  9. package/dist/cli/utils/create-env/env-stub.liquid +19 -4
  10. package/dist/cli/utils/create-env/index.js +2 -2
  11. package/dist/constants.d.ts +2 -1
  12. package/dist/constants.js +11 -4
  13. package/dist/controllers/auth.js +54 -19
  14. package/dist/controllers/extensions.js +102 -5
  15. package/dist/controllers/fields.js +0 -3
  16. package/dist/controllers/items.js +3 -2
  17. package/dist/controllers/permissions.js +1 -1
  18. package/dist/controllers/shares.js +19 -4
  19. package/dist/database/migrations/20220429A-add-flows.js +3 -3
  20. package/dist/database/migrations/20230526A-migrate-translation-strings.js +2 -2
  21. package/dist/database/migrations/20240204A-marketplace.d.ts +3 -0
  22. package/dist/database/migrations/20240204A-marketplace.js +68 -0
  23. package/dist/database/migrations/run.js +3 -2
  24. package/dist/extensions/lib/get-extensions-settings.d.ts +6 -2
  25. package/dist/extensions/lib/get-extensions-settings.js +70 -22
  26. package/dist/extensions/lib/get-extensions.d.ts +5 -1
  27. package/dist/extensions/lib/get-extensions.js +7 -31
  28. package/dist/extensions/lib/installation/index.d.ts +2 -0
  29. package/dist/extensions/lib/installation/index.js +9 -0
  30. package/dist/extensions/lib/installation/manager.d.ts +5 -0
  31. package/dist/extensions/lib/installation/manager.js +90 -0
  32. package/dist/extensions/lib/sandbox/generate-api-extensions-sandbox-entrypoint.d.ts +1 -1
  33. package/dist/extensions/lib/sync-extensions.js +11 -10
  34. package/dist/extensions/manager.d.ts +27 -25
  35. package/dist/extensions/manager.js +214 -183
  36. package/dist/middleware/authenticate.d.ts +1 -0
  37. package/dist/middleware/error-handler.js +22 -18
  38. package/dist/middleware/extract-token.d.ts +6 -5
  39. package/dist/middleware/extract-token.js +27 -11
  40. package/dist/middleware/merge-content-versions.d.ts +2 -0
  41. package/dist/middleware/merge-content-versions.js +26 -0
  42. package/dist/middleware/respond.js +0 -12
  43. package/dist/middleware/validate-batch.d.ts +1 -0
  44. package/dist/operations/item-update/index.js +4 -1
  45. package/dist/request/agent-with-ip-validation.d.ts +1 -1
  46. package/dist/request/agent-with-ip-validation.js +5 -1
  47. package/dist/services/activity.js +3 -3
  48. package/dist/services/assets.js +2 -3
  49. package/dist/services/authentication.d.ts +7 -2
  50. package/dist/services/authentication.js +21 -13
  51. package/dist/services/extensions.d.ts +4 -8
  52. package/dist/services/extensions.js +110 -93
  53. package/dist/services/fields.js +34 -22
  54. package/dist/services/graphql/index.js +98 -42
  55. package/dist/services/import-export.js +61 -26
  56. package/dist/services/index.d.ts +1 -1
  57. package/dist/services/index.js +1 -1
  58. package/dist/services/mail/index.d.ts +1 -1
  59. package/dist/services/mail/index.js +4 -2
  60. package/dist/services/payload.js +2 -2
  61. package/dist/services/{permissions.d.ts → permissions/index.d.ts} +3 -4
  62. package/dist/services/{permissions.js → permissions/index.js} +6 -23
  63. package/dist/services/permissions/lib/with-app-minimal-permissions.d.ts +2 -0
  64. package/dist/services/permissions/lib/with-app-minimal-permissions.js +13 -0
  65. package/dist/services/relations.d.ts +2 -3
  66. package/dist/services/relations.js +2 -2
  67. package/dist/services/roles.d.ts +9 -4
  68. package/dist/services/roles.js +51 -3
  69. package/dist/services/server.js +3 -0
  70. package/dist/services/shares.d.ts +3 -1
  71. package/dist/services/shares.js +9 -5
  72. package/dist/storage/index.js +5 -4
  73. package/dist/types/auth.d.ts +6 -4
  74. package/dist/types/graphql.d.ts +1 -0
  75. package/dist/utils/apply-query.js +3 -3
  76. package/dist/utils/filter-items.d.ts +2 -2
  77. package/dist/utils/filter-items.js +1 -3
  78. package/dist/utils/get-cache-headers.d.ts +1 -0
  79. package/dist/utils/get-cache-key.d.ts +1 -0
  80. package/dist/utils/get-graphql-query-and-variables.d.ts +1 -0
  81. package/dist/utils/get-ip-from-req.d.ts +1 -0
  82. package/dist/utils/get-milliseconds.d.ts +1 -1
  83. package/dist/utils/get-milliseconds.js +4 -1
  84. package/dist/utils/is-login-redirect-allowed.d.ts +4 -0
  85. package/dist/utils/is-login-redirect-allowed.js +34 -0
  86. package/dist/utils/is-url-allowed.d.ts +1 -1
  87. package/dist/utils/is-url-allowed.js +5 -5
  88. package/dist/utils/is-valid-uuid.d.ts +3 -0
  89. package/dist/utils/is-valid-uuid.js +21 -0
  90. package/dist/utils/jwt.d.ts +1 -1
  91. package/dist/utils/jwt.js +3 -3
  92. package/dist/utils/merge-version-data.d.ts +3 -0
  93. package/dist/utils/merge-version-data.js +134 -0
  94. package/dist/utils/sanitize-query.js +2 -0
  95. package/dist/utils/should-skip-cache.d.ts +1 -0
  96. package/dist/utils/validate-keys.js +2 -2
  97. package/dist/utils/validate-query.js +1 -0
  98. package/dist/websocket/controllers/base.js +2 -2
  99. package/dist/websocket/controllers/hooks.js +1 -1
  100. package/package.json +50 -51
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@directus/api",
3
- "version": "17.0.1",
3
+ "version": "18.0.0",
4
4
  "description": "Directus is a real-time API and App dashboard for managing SQL database content",
5
5
  "keywords": [
6
6
  "directus",
@@ -59,13 +59,13 @@
59
59
  ],
60
60
  "dependencies": {
61
61
  "@authenio/samlify-node-xmllint": "2.0.0",
62
- "@aws-sdk/client-ses": "3.513.0",
62
+ "@aws-sdk/client-ses": "3.525.0",
63
63
  "@directus/format-title": "10.1.0",
64
64
  "@godaddy/terminus": "4.12.1",
65
65
  "@rollup/plugin-alias": "5.1.0",
66
66
  "@rollup/plugin-node-resolve": "15.2.3",
67
67
  "@rollup/plugin-virtual": "3.0.2",
68
- "argon2": "0.31.2",
68
+ "argon2": "0.40.1",
69
69
  "async": "3.2.5",
70
70
  "axios": "1.6.7",
71
71
  "busboy": "1.6.0",
@@ -81,12 +81,12 @@
81
81
  "date-fns": "3.3.1",
82
82
  "deep-diff": "1.0.2",
83
83
  "destroy": "1.2.0",
84
- "dotenv": "16.4.4",
84
+ "dotenv": "16.4.5",
85
85
  "encodeurl": "1.0.2",
86
86
  "eventemitter2": "6.4.9",
87
87
  "execa": "8.0.1",
88
88
  "exif-reader": "2.0.1",
89
- "express": "4.18.2",
89
+ "express": "4.18.3",
90
90
  "flat": "6.0.1",
91
91
  "fs-extra": "11.2.0",
92
92
  "glob-to-regexp": "0.4.1",
@@ -95,11 +95,11 @@
95
95
  "graphql-ws": "5.15.0",
96
96
  "helmet": "7.1.0",
97
97
  "icc": "3.0.0",
98
- "inquirer": "9.2.14",
98
+ "inquirer": "9.2.15",
99
99
  "ioredis": "5.3.2",
100
100
  "ip-matching": "2.1.2",
101
101
  "isolated-vm": "4.7.2",
102
- "joi": "17.12.1",
102
+ "joi": "17.12.2",
103
103
  "js-yaml": "4.1.0",
104
104
  "js2xmlparser": "5.0.0",
105
105
  "json2csv": "5.0.7",
@@ -107,73 +107,73 @@
107
107
  "keyv": "4.5.4",
108
108
  "knex": "3.1.0",
109
109
  "ldapjs": "2.3.3",
110
- "liquidjs": "10.10.0",
110
+ "liquidjs": "10.10.1",
111
111
  "lodash-es": "4.17.21",
112
112
  "marked": "12.0.0",
113
113
  "micromustache": "8.0.3",
114
114
  "mime-types": "2.1.35",
115
115
  "minimatch": "9.0.3",
116
116
  "ms": "2.1.3",
117
- "nanoid": "5.0.5",
117
+ "nanoid": "5.0.6",
118
118
  "node-machine-id": "1.1.12",
119
119
  "node-schedule": "2.1.1",
120
- "nodemailer": "6.9.9",
120
+ "nodemailer": "6.9.11",
121
121
  "object-hash": "3.0.0",
122
- "openapi3-ts": "4.2.1",
122
+ "openapi3-ts": "4.2.2",
123
123
  "openid-client": "5.6.4",
124
124
  "ora": "8.0.1",
125
125
  "otplib": "12.0.1",
126
126
  "p-limit": "5.0.0",
127
127
  "p-queue": "8.0.1",
128
128
  "papaparse": "5.4.1",
129
- "pino": "8.18.0",
129
+ "pino": "8.19.0",
130
130
  "pino-http": "9.0.0",
131
131
  "pino-http-print": "3.1.0",
132
132
  "pino-pretty": "10.3.1",
133
133
  "qs": "6.11.2",
134
- "rate-limiter-flexible": "4.0.1",
135
- "rollup": "4.10.0",
136
- "samlify": "2.8.10",
137
- "sanitize-html": "2.11.0",
134
+ "rate-limiter-flexible": "5.0.0",
135
+ "rollup": "4.12.0",
136
+ "samlify": "2.8.11",
137
+ "sanitize-html": "2.12.1",
138
138
  "sharp": "0.33.2",
139
139
  "snappy": "7.2.2",
140
140
  "stream-json": "1.8.0",
141
+ "tar": "6.2.0",
141
142
  "tsx": "4.7.1",
142
- "uuid": "9.0.1",
143
- "uuid-validate": "0.0.3",
144
143
  "wellknown": "0.5.0",
145
144
  "ws": "8.16.0",
146
145
  "zod": "3.22.4",
147
- "zod-validation-error": "3.0.2",
148
- "@directus/app": "10.15.1",
146
+ "zod-validation-error": "3.0.3",
147
+ "@directus/app": "11.0.0",
149
148
  "@directus/constants": "11.0.3",
150
- "@directus/env": "1.0.2",
151
- "@directus/errors": "0.2.3",
152
- "@directus/extensions": "0.3.2",
153
- "@directus/extensions-sdk": "10.3.3",
154
- "@directus/pressure": "1.0.16",
149
+ "@directus/env": "1.0.3",
150
+ "@directus/errors": "0.2.4",
151
+ "@directus/extensions-registry": "1.0.0",
152
+ "@directus/extensions": "1.0.0",
153
+ "@directus/extensions-sdk": "11.0.0",
154
+ "@directus/memory": "1.0.4",
155
+ "@directus/pressure": "1.0.17",
155
156
  "@directus/schema": "11.0.1",
156
- "@directus/memory": "1.0.2",
157
- "@directus/specs": "10.2.6",
158
- "@directus/storage-driver-azure": "10.0.17",
159
- "@directus/storage-driver-cloudinary": "10.0.17",
160
- "@directus/storage": "10.0.10",
161
- "@directus/storage-driver-gcs": "10.0.17",
162
- "@directus/storage-driver-local": "10.0.17",
163
- "@directus/storage-driver-s3": "10.0.17",
164
- "@directus/system-data": "1.0.0",
165
- "@directus/storage-driver-supabase": "1.0.9",
166
- "@directus/utils": "11.0.5",
167
- "@directus/validation": "0.0.12",
168
- "directus": "10.9.2"
157
+ "@directus/specs": "10.2.7",
158
+ "@directus/storage": "10.0.11",
159
+ "@directus/storage-driver-azure": "10.0.18",
160
+ "@directus/storage-driver-cloudinary": "10.0.18",
161
+ "@directus/storage-driver-gcs": "10.0.18",
162
+ "@directus/storage-driver-s3": "10.0.19",
163
+ "@directus/storage-driver-local": "10.0.18",
164
+ "@directus/storage-driver-supabase": "1.0.10",
165
+ "@directus/system-data": "1.0.1",
166
+ "@directus/utils": "11.0.6",
167
+ "directus": "10.10.0",
168
+ "@directus/validation": "0.0.13"
169
169
  },
170
170
  "devDependencies": {
171
- "@ngneat/falso": "7.1.1",
171
+ "@ngneat/falso": "7.2.0",
172
172
  "@types/async": "3.2.24",
173
173
  "@types/busboy": "1.5.3",
174
174
  "@types/bytes": "3.1.4",
175
175
  "@types/content-disposition": "0.5.8",
176
- "@types/cookie-parser": "1.4.6",
176
+ "@types/cookie-parser": "1.4.7",
177
177
  "@types/cors": "2.8.17",
178
178
  "@types/deep-diff": "1.0.5",
179
179
  "@types/destroy": "1.0.3",
@@ -185,32 +185,31 @@
185
185
  "@types/inquirer": "9.0.7",
186
186
  "@types/js-yaml": "4.0.9",
187
187
  "@types/json2csv": "5.0.7",
188
- "@types/jsonwebtoken": "9.0.5",
188
+ "@types/jsonwebtoken": "9.0.6",
189
189
  "@types/ldapjs": "2.2.5",
190
190
  "@types/lodash-es": "4.17.12",
191
191
  "@types/mime-types": "2.1.4",
192
192
  "@types/ms": "0.7.34",
193
- "@types/node": "18.19.15",
193
+ "@types/node": "18.19.21",
194
194
  "@types/node-schedule": "2.1.6",
195
195
  "@types/nodemailer": "6.4.14",
196
196
  "@types/object-hash": "3.0.6",
197
197
  "@types/papaparse": "5.3.14",
198
- "@types/qs": "6.9.11",
198
+ "@types/qs": "6.9.12",
199
199
  "@types/sanitize-html": "2.11.0",
200
200
  "@types/stream-json": "1.7.7",
201
- "@types/uuid": "9.0.8",
202
- "@types/uuid-validate": "0.0.3",
201
+ "@types/tar": "6.1.11",
203
202
  "@types/wellknown": "0.5.8",
204
203
  "@types/ws": "8.5.10",
205
- "@vitest/coverage-v8": "1.2.2",
204
+ "@vitest/coverage-v8": "1.3.1",
206
205
  "copyfiles": "2.4.1",
207
206
  "form-data": "4.0.0",
208
207
  "knex-mock-client": "2.0.1",
209
208
  "typescript": "5.3.3",
210
- "vitest": "1.2.2",
211
- "@directus/types": "11.0.6",
209
+ "vitest": "1.3.1",
210
+ "@directus/random": "0.2.7",
212
211
  "@directus/tsconfig": "1.0.1",
213
- "@directus/random": "0.2.6"
212
+ "@directus/types": "11.0.7"
214
213
  },
215
214
  "optionalDependencies": {
216
215
  "@keyv/redis": "2.8.4",
@@ -220,7 +219,7 @@
220
219
  "oracledb": "6.3.0",
221
220
  "pg": "8.11.3",
222
221
  "sqlite3": "5.1.7",
223
- "tedious": "16.7.1"
222
+ "tedious": "17.0.0"
224
223
  },
225
224
  "engines": {
226
225
  "node": ">=18.17.0"
@@ -228,7 +227,7 @@
228
227
  "scripts": {
229
228
  "build": "tsc --project tsconfig.prod.json && copyfiles \"src/**/*.{yaml,liquid}\" -u 1 dist",
230
229
  "cli": "NODE_ENV=development SERVE_APP=false tsx src/cli/run.ts",
231
- "dev": "NODE_ENV=development SERVE_APP=false tsx watch --clear-screen=false src/start.ts",
230
+ "dev": "NODE_ENV=development SERVE_APP=true tsx watch --clear-screen=false src/start.ts",
232
231
  "test": "vitest --watch=false"
233
232
  }
234
233
  }