@directus/api 14.1.2 → 16.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 (207) hide show
  1. package/dist/app.js +8 -6
  2. package/dist/auth/drivers/ldap.js +7 -4
  3. package/dist/auth/drivers/local.js +3 -2
  4. package/dist/auth/drivers/oauth2.js +11 -5
  5. package/dist/auth/drivers/openid.js +11 -5
  6. package/dist/auth/drivers/saml.js +6 -4
  7. package/dist/auth.js +7 -4
  8. package/dist/bus/index.d.ts +1 -0
  9. package/dist/bus/index.js +1 -0
  10. package/dist/bus/lib/use-bus.d.ts +9 -0
  11. package/dist/bus/lib/use-bus.js +21 -0
  12. package/dist/cache.js +9 -9
  13. package/dist/cli/commands/bootstrap/index.js +6 -2
  14. package/dist/cli/commands/count/index.js +2 -1
  15. package/dist/cli/commands/database/install.js +2 -1
  16. package/dist/cli/commands/database/migrate.js +2 -1
  17. package/dist/cli/commands/roles/create.js +2 -1
  18. package/dist/cli/commands/schema/apply.js +46 -34
  19. package/dist/cli/commands/schema/snapshot.js +6 -5
  20. package/dist/cli/commands/users/create.js +4 -3
  21. package/dist/cli/commands/users/passwd.js +5 -4
  22. package/dist/cli/index.js +2 -2
  23. package/dist/cli/load-extensions.js +4 -2
  24. package/dist/cli/utils/create-env/env-stub.liquid +1 -1
  25. package/dist/constants.d.ts +1 -1
  26. package/dist/constants.js +4 -1
  27. package/dist/controllers/assets.js +5 -3
  28. package/dist/controllers/auth.js +5 -4
  29. package/dist/controllers/extensions.js +18 -6
  30. package/dist/controllers/files.js +3 -3
  31. package/dist/controllers/schema.js +3 -2
  32. package/dist/controllers/shares.js +3 -3
  33. package/dist/database/helpers/index.d.ts +1 -1
  34. package/dist/database/index.d.ts +2 -1
  35. package/dist/database/index.js +11 -3
  36. package/dist/database/migrations/20210518A-add-foreign-key-constraints.js +3 -1
  37. package/dist/database/migrations/20210519A-add-system-fk-triggers.js +3 -1
  38. package/dist/database/migrations/20210802A-replace-groups.js +2 -1
  39. package/dist/database/migrations/20230721A-require-shares-fields.js +2 -1
  40. package/dist/database/migrations/20231215A-add-focalpoints.d.ts +3 -0
  41. package/dist/database/migrations/20231215A-add-focalpoints.js +12 -0
  42. package/dist/database/migrations/run.js +2 -1
  43. package/dist/database/run-ast.js +5 -2
  44. package/dist/database/system-data/app-access-permissions/app-access-permissions.yaml +0 -7
  45. package/dist/database/system-data/fields/files.yaml +16 -0
  46. package/dist/database/system-data/relations/relations.yaml +4 -0
  47. package/dist/emitter.d.ts +1 -0
  48. package/dist/emitter.js +4 -1
  49. package/dist/extensions/lib/get-extensions-path.d.ts +1 -1
  50. package/dist/extensions/lib/get-extensions-path.js +2 -1
  51. package/dist/extensions/lib/get-extensions.d.ts +1 -1
  52. package/dist/extensions/lib/get-extensions.js +32 -8
  53. package/dist/extensions/lib/get-shared-deps-mapping.js +7 -5
  54. package/dist/extensions/lib/sandbox/register/call-reference.js +4 -2
  55. package/dist/extensions/lib/sandbox/register/route.d.ts +1 -0
  56. package/dist/extensions/lib/sandbox/sdk/generators/log.js +2 -1
  57. package/dist/extensions/lib/sync-extensions.js +6 -4
  58. package/dist/extensions/manager.d.ts +5 -0
  59. package/dist/extensions/manager.js +84 -34
  60. package/dist/flows.js +13 -7
  61. package/dist/logger.d.ts +7 -6
  62. package/dist/logger.js +116 -91
  63. package/dist/mailer.js +4 -2
  64. package/dist/middleware/cache.js +4 -2
  65. package/dist/middleware/check-ip.js +25 -6
  66. package/dist/middleware/cors.js +2 -1
  67. package/dist/middleware/error-handler.js +5 -5
  68. package/dist/middleware/rate-limiter-global.js +4 -2
  69. package/dist/middleware/rate-limiter-ip.js +16 -12
  70. package/dist/middleware/respond.js +4 -2
  71. package/dist/operations/log/index.js +2 -1
  72. package/dist/rate-limiter.d.ts +2 -1
  73. package/dist/rate-limiter.js +5 -2
  74. package/dist/redis/index.d.ts +3 -0
  75. package/dist/redis/index.js +3 -0
  76. package/dist/redis/lib/create-redis.d.ts +7 -0
  77. package/dist/redis/lib/create-redis.js +12 -0
  78. package/dist/redis/lib/use-redis.d.ts +16 -0
  79. package/dist/redis/lib/use-redis.js +22 -0
  80. package/dist/redis/utils/redis-config-available.d.ts +4 -0
  81. package/dist/redis/utils/redis-config-available.js +8 -0
  82. package/dist/request/request-interceptor.js +7 -5
  83. package/dist/request/response-interceptor.js +2 -2
  84. package/dist/request/validate-ip.d.ts +1 -1
  85. package/dist/request/validate-ip.js +23 -7
  86. package/dist/server.d.ts +2 -0
  87. package/dist/server.js +11 -7
  88. package/dist/services/activity.js +5 -4
  89. package/dist/services/assets.d.ts +2 -0
  90. package/dist/services/assets.js +9 -4
  91. package/dist/services/authentication.js +17 -9
  92. package/dist/services/collections.js +5 -4
  93. package/dist/services/extensions.d.ts +15 -9
  94. package/dist/services/extensions.js +75 -40
  95. package/dist/services/fields.js +9 -4
  96. package/dist/services/files.d.ts +2 -2
  97. package/dist/services/files.js +22 -14
  98. package/dist/services/graphql/index.js +96 -18
  99. package/dist/services/graphql/subscription.js +2 -2
  100. package/dist/services/graphql/types/bigint.js +16 -5
  101. package/dist/services/graphql/utils/process-error.d.ts +4 -1
  102. package/dist/services/graphql/utils/process-error.js +10 -8
  103. package/dist/services/import-export/index.js +5 -3
  104. package/dist/services/items.js +12 -8
  105. package/dist/services/mail/index.js +4 -2
  106. package/dist/services/notifications.js +7 -3
  107. package/dist/services/payload.js +3 -3
  108. package/dist/services/relations.js +19 -10
  109. package/dist/services/server.js +7 -7
  110. package/dist/services/shares.js +3 -2
  111. package/dist/services/specifications.js +5 -4
  112. package/dist/services/users.js +24 -13
  113. package/dist/services/versions.js +6 -5
  114. package/dist/services/webhooks.d.ts +2 -2
  115. package/dist/services/webhooks.js +2 -2
  116. package/dist/services/websocket.d.ts +1 -1
  117. package/dist/services/websocket.js +4 -3
  118. package/dist/storage/register-drivers.js +2 -1
  119. package/dist/storage/register-locations.js +2 -1
  120. package/dist/synchronization.js +3 -1
  121. package/dist/telemetry/index.d.ts +4 -0
  122. package/dist/telemetry/index.js +4 -0
  123. package/dist/telemetry/lib/get-report.d.ts +5 -0
  124. package/dist/telemetry/lib/get-report.js +42 -0
  125. package/dist/telemetry/lib/init-telemetry.d.ts +11 -0
  126. package/dist/telemetry/lib/init-telemetry.js +30 -0
  127. package/dist/telemetry/lib/send-report.d.ts +5 -0
  128. package/dist/telemetry/lib/send-report.js +23 -0
  129. package/dist/telemetry/lib/track.d.ts +10 -0
  130. package/dist/telemetry/lib/track.js +30 -0
  131. package/dist/telemetry/types/report.d.ts +58 -0
  132. package/dist/telemetry/types/report.js +1 -0
  133. package/dist/telemetry/utils/get-item-count.d.ts +26 -0
  134. package/dist/telemetry/utils/get-item-count.js +36 -0
  135. package/dist/telemetry/utils/get-random-wait-time.d.ts +5 -0
  136. package/dist/telemetry/utils/get-random-wait-time.js +5 -0
  137. package/dist/telemetry/utils/get-user-count.d.ts +7 -0
  138. package/dist/telemetry/utils/get-user-count.js +30 -0
  139. package/dist/telemetry/utils/get-user-item-count.d.ts +13 -0
  140. package/dist/telemetry/utils/get-user-item-count.js +18 -0
  141. package/dist/types/assets.d.ts +2 -0
  142. package/dist/utils/apply-diff.js +2 -1
  143. package/dist/utils/apply-query.js +2 -2
  144. package/dist/utils/delete-from-require-cache.js +2 -1
  145. package/dist/utils/get-accountability-for-token.js +3 -2
  146. package/dist/utils/get-auth-providers.js +2 -1
  147. package/dist/utils/get-cache-headers.js +5 -2
  148. package/dist/utils/get-cache-key.js +1 -1
  149. package/dist/utils/get-config-from-env.js +2 -1
  150. package/dist/utils/get-default-value.js +4 -3
  151. package/dist/utils/get-ip-from-req.d.ts +1 -1
  152. package/dist/utils/get-ip-from-req.js +5 -3
  153. package/dist/utils/get-permissions.js +5 -3
  154. package/dist/utils/get-schema.js +5 -2
  155. package/dist/utils/get-snapshot-diff.js +7 -9
  156. package/dist/utils/get-snapshot.js +5 -5
  157. package/dist/utils/get-versioned-hash.js +1 -1
  158. package/dist/utils/ip-in-networks.d.ts +6 -0
  159. package/dist/utils/ip-in-networks.js +13 -0
  160. package/dist/utils/is-url-allowed.js +2 -1
  161. package/dist/utils/job-queue.d.ts +1 -0
  162. package/dist/utils/job-queue.js +3 -0
  163. package/dist/utils/md.d.ts +1 -1
  164. package/dist/utils/md.js +3 -2
  165. package/dist/utils/sanitize-query.js +7 -2
  166. package/dist/utils/sanitize-schema.d.ts +1 -1
  167. package/dist/utils/should-clear-cache.js +2 -1
  168. package/dist/utils/should-skip-cache.js +2 -1
  169. package/dist/utils/transformations.js +95 -12
  170. package/dist/utils/validate-env.js +4 -2
  171. package/dist/utils/validate-query.js +8 -3
  172. package/dist/utils/validate-snapshot.js +3 -3
  173. package/dist/utils/validate-storage.js +4 -2
  174. package/dist/webhooks.js +4 -3
  175. package/dist/websocket/controllers/base.d.ts +2 -0
  176. package/dist/websocket/controllers/base.js +12 -6
  177. package/dist/websocket/controllers/graphql.d.ts +2 -0
  178. package/dist/websocket/controllers/graphql.js +5 -3
  179. package/dist/websocket/controllers/hooks.js +3 -2
  180. package/dist/websocket/controllers/index.d.ts +2 -0
  181. package/dist/websocket/controllers/index.js +4 -2
  182. package/dist/websocket/controllers/rest.d.ts +2 -0
  183. package/dist/websocket/controllers/rest.js +4 -2
  184. package/dist/websocket/errors.js +2 -1
  185. package/dist/websocket/handlers/heartbeat.js +4 -3
  186. package/dist/websocket/handlers/subscribe.d.ts +2 -2
  187. package/dist/websocket/handlers/subscribe.js +5 -4
  188. package/dist/websocket/types.d.ts +3 -1
  189. package/package.json +114 -115
  190. package/dist/__utils__/items-utils.d.ts +0 -2
  191. package/dist/__utils__/items-utils.js +0 -31
  192. package/dist/__utils__/mock-env.d.ts +0 -18
  193. package/dist/__utils__/mock-env.js +0 -41
  194. package/dist/__utils__/schemas.d.ts +0 -13
  195. package/dist/__utils__/schemas.js +0 -301
  196. package/dist/__utils__/snapshots.d.ts +0 -5
  197. package/dist/__utils__/snapshots.js +0 -903
  198. package/dist/env.d.ts +0 -13
  199. package/dist/env.js +0 -505
  200. package/dist/messenger.d.ts +0 -24
  201. package/dist/messenger.js +0 -64
  202. package/dist/utils/package.d.ts +0 -2
  203. package/dist/utils/package.js +0 -6
  204. package/dist/utils/telemetry.d.ts +0 -1
  205. package/dist/utils/telemetry.js +0 -23
  206. package/dist/utils/to-boolean.d.ts +0 -4
  207. package/dist/utils/to-boolean.js +0 -6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@directus/api",
3
- "version": "14.1.2",
3
+ "version": "16.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,168 +59,167 @@
59
59
  ],
60
60
  "dependencies": {
61
61
  "@authenio/samlify-node-xmllint": "2.0.0",
62
- "@aws-sdk/client-ses": "3.332.0",
62
+ "@aws-sdk/client-ses": "3.504.0",
63
63
  "@directus/format-title": "10.1.0",
64
- "@godaddy/terminus": "4.12.0",
65
- "@rollup/plugin-alias": "5.0.0",
66
- "@rollup/plugin-node-resolve": "15.0.2",
67
- "@rollup/plugin-virtual": "3.0.1",
68
- "argon2": "0.31.1",
69
- "async": "3.2.4",
70
- "axios": "1.4.0",
64
+ "@godaddy/terminus": "4.12.1",
65
+ "@rollup/plugin-alias": "5.1.0",
66
+ "@rollup/plugin-node-resolve": "15.2.3",
67
+ "@rollup/plugin-virtual": "3.0.2",
68
+ "argon2": "0.31.2",
69
+ "async": "3.2.5",
70
+ "axios": "1.6.7",
71
71
  "busboy": "1.6.0",
72
72
  "bytes": "3.1.2",
73
- "camelcase": "7.0.1",
74
- "chalk": "5.2.0",
73
+ "camelcase": "8.0.0",
74
+ "chalk": "5.3.0",
75
75
  "chokidar": "3.5.3",
76
- "commander": "10.0.1",
76
+ "commander": "11.1.0",
77
77
  "content-disposition": "0.5.4",
78
78
  "cookie-parser": "1.4.6",
79
79
  "cors": "2.8.5",
80
- "cron-parser": "4.8.1",
81
- "date-fns": "2.30.0",
80
+ "cron-parser": "4.9.0",
81
+ "date-fns": "3.3.1",
82
82
  "deep-diff": "1.0.2",
83
83
  "destroy": "1.2.0",
84
- "dotenv": "16.0.3",
84
+ "dotenv": "16.4.1",
85
85
  "encodeurl": "1.0.2",
86
86
  "eventemitter2": "6.4.9",
87
- "execa": "7.1.1",
88
- "exif-reader": "1.2.0",
87
+ "execa": "8.0.1",
88
+ "exif-reader": "2.0.0",
89
89
  "express": "4.18.2",
90
- "flat": "5.0.2",
91
- "fs-extra": "11.1.1",
90
+ "flat": "6.0.1",
91
+ "fs-extra": "11.2.0",
92
92
  "glob-to-regexp": "0.4.1",
93
93
  "graphql": "16.8.1",
94
94
  "graphql-compose": "9.0.10",
95
- "graphql-ws": "5.14.1",
96
- "helmet": "7.0.0",
95
+ "graphql-ws": "5.14.3",
96
+ "helmet": "7.1.0",
97
97
  "icc": "3.0.0",
98
- "inquirer": "9.2.4",
98
+ "inquirer": "9.2.14",
99
99
  "ioredis": "5.3.2",
100
- "isolated-vm": "4.6.0",
101
- "joi": "17.9.2",
100
+ "ip-matching": "2.1.2",
101
+ "isolated-vm": "4.7.2",
102
+ "joi": "17.12.0",
102
103
  "js-yaml": "4.1.0",
103
104
  "js2xmlparser": "5.0.0",
104
105
  "json2csv": "5.0.7",
105
- "jsonwebtoken": "9.0.1",
106
- "keyv": "4.5.2",
107
- "knex": "2.4.2",
106
+ "jsonwebtoken": "9.0.2",
107
+ "keyv": "4.5.4",
108
+ "knex": "3.1.0",
108
109
  "ldapjs": "2.3.3",
109
- "liquidjs": "10.7.1",
110
+ "liquidjs": "10.10.0",
110
111
  "lodash-es": "4.17.21",
111
- "marked": "5.0.2",
112
+ "marked": "11.2.0",
112
113
  "micromustache": "8.0.3",
113
114
  "mime-types": "2.1.35",
114
- "minimatch": "9.0.1",
115
+ "minimatch": "9.0.3",
115
116
  "ms": "2.1.3",
116
- "nanoid": "4.0.2",
117
+ "nanoid": "5.0.5",
117
118
  "node-machine-id": "1.1.12",
118
119
  "node-schedule": "2.1.1",
119
- "nodemailer": "6.9.2",
120
+ "nodemailer": "6.9.9",
120
121
  "object-hash": "3.0.0",
121
- "openapi3-ts": "4.1.2",
122
- "openid-client": "5.4.2",
123
- "ora": "6.3.1",
122
+ "openapi3-ts": "4.2.1",
123
+ "openid-client": "5.6.4",
124
+ "ora": "8.0.1",
124
125
  "otplib": "12.0.1",
125
- "p-queue": "7.4.1",
126
+ "p-limit": "5.0.0",
127
+ "p-queue": "8.0.1",
126
128
  "papaparse": "5.4.1",
127
- "pino": "8.14.1",
128
- "pino-http": "8.3.3",
129
+ "pino": "8.18.0",
130
+ "pino-http": "9.0.0",
129
131
  "pino-http-print": "3.1.0",
130
- "pino-pretty": "10.0.0",
132
+ "pino-pretty": "10.3.1",
131
133
  "qs": "6.11.2",
132
- "rate-limiter-flexible": "2.4.1",
133
- "rollup": "3.22.0",
134
+ "rate-limiter-flexible": "4.0.1",
135
+ "rollup": "4.9.6",
134
136
  "samlify": "2.8.10",
135
- "sanitize-html": "2.10.0",
136
- "sharp": "0.32.6",
137
+ "sanitize-html": "2.11.0",
138
+ "sharp": "0.33.2",
137
139
  "snappy": "7.2.2",
138
- "stream-json": "1.7.5",
139
- "strip-bom-stream": "5.0.0",
140
- "tinypool": "0.8.1",
141
- "tsx": "4.1.4",
142
- "uuid": "9.0.0",
140
+ "stream-json": "1.8.0",
141
+ "tinypool": "0.8.2",
142
+ "tsx": "4.7.0",
143
+ "uuid": "9.0.1",
143
144
  "uuid-validate": "0.0.3",
144
145
  "wellknown": "0.5.0",
145
- "ws": "8.14.2",
146
+ "ws": "8.16.0",
146
147
  "zod": "3.22.4",
147
- "zod-validation-error": "1.0.1",
148
- "@directus/app": "10.13.2",
149
- "@directus/errors": "0.2.0",
150
- "@directus/constants": "11.0.1",
151
- "@directus/extensions": "0.2.0",
152
- "@directus/extensions-sdk": "10.2.0",
153
- "@directus/pressure": "1.0.13",
154
- "@directus/schema": "11.0.0",
155
- "@directus/specs": "10.2.4",
156
- "@directus/storage-driver-azure": "10.0.14",
157
- "@directus/storage-driver-cloudinary": "10.0.14",
158
- "@directus/storage-driver-gcs": "10.0.14",
159
- "@directus/storage": "10.0.7",
160
- "@directus/storage-driver-local": "10.0.14",
161
- "@directus/storage-driver-supabase": "1.0.6",
162
- "@directus/storage-driver-s3": "10.0.14",
163
- "@directus/utils": "11.0.2",
164
- "@directus/validation": "0.0.9"
148
+ "zod-validation-error": "3.0.0",
149
+ "@directus/constants": "11.0.3",
150
+ "@directus/env": "1.0.0",
151
+ "@directus/extensions": "0.3.0",
152
+ "@directus/extensions-sdk": "10.3.1",
153
+ "@directus/memory": "1.0.1",
154
+ "@directus/app": "10.14.0",
155
+ "@directus/errors": "0.2.2",
156
+ "@directus/schema": "11.0.1",
157
+ "@directus/pressure": "1.0.15",
158
+ "@directus/specs": "10.2.6",
159
+ "@directus/storage-driver-azure": "10.0.16",
160
+ "@directus/storage": "10.0.9",
161
+ "@directus/storage-driver-cloudinary": "10.0.16",
162
+ "@directus/storage-driver-s3": "10.0.16",
163
+ "@directus/storage-driver-gcs": "10.0.16",
164
+ "@directus/storage-driver-supabase": "1.0.8",
165
+ "@directus/storage-driver-local": "10.0.16",
166
+ "@directus/validation": "0.0.11",
167
+ "directus": "10.9.0",
168
+ "@directus/utils": "11.0.4"
165
169
  },
166
170
  "devDependencies": {
167
- "@ngneat/falso": "6.4.0",
168
- "@types/async": "3.2.20",
169
- "@types/busboy": "1.5.0",
170
- "@types/bytes": "3.1.1",
171
- "@types/content-disposition": "0.5.5",
172
- "@types/cookie-parser": "1.4.3",
173
- "@types/cors": "2.8.13",
174
- "@types/deep-diff": "1.0.2",
175
- "@types/destroy": "1.0.0",
176
- "@types/encodeurl": "1.0.0",
177
- "@types/exif-reader": "1.0.0",
178
- "@types/express": "4.17.17",
179
- "@types/express-serve-static-core": "4.17.35",
180
- "@types/flat": "5.0.2",
181
- "@types/fs-extra": "11.0.1",
182
- "@types/glob-to-regexp": "0.4.3",
183
- "@types/inquirer": "9.0.3",
184
- "@types/js-yaml": "4.0.5",
185
- "@types/json2csv": "5.0.3",
186
- "@types/jsonwebtoken": "9.0.2",
171
+ "@ngneat/falso": "7.1.1",
172
+ "@types/async": "3.2.24",
173
+ "@types/busboy": "1.5.3",
174
+ "@types/bytes": "3.1.4",
175
+ "@types/content-disposition": "0.5.8",
176
+ "@types/cookie-parser": "1.4.6",
177
+ "@types/cors": "2.8.17",
178
+ "@types/deep-diff": "1.0.5",
179
+ "@types/destroy": "1.0.3",
180
+ "@types/encodeurl": "1.0.2",
181
+ "@types/express": "4.17.21",
182
+ "@types/express-serve-static-core": "4.17.42",
183
+ "@types/fs-extra": "11.0.4",
184
+ "@types/glob-to-regexp": "0.4.4",
185
+ "@types/inquirer": "9.0.7",
186
+ "@types/js-yaml": "4.0.9",
187
+ "@types/json2csv": "5.0.7",
188
+ "@types/jsonwebtoken": "9.0.5",
187
189
  "@types/ldapjs": "2.2.5",
188
- "@types/lodash-es": "4.17.7",
189
- "@types/marked": "4.3.0",
190
- "@types/mime-types": "2.1.1",
191
- "@types/ms": "0.7.31",
192
- "@types/node": "18.16.12",
193
- "@types/node-schedule": "2.1.0",
194
- "@types/nodemailer": "6.4.7",
195
- "@types/object-hash": "3.0.2",
196
- "@types/papaparse": "5.3.9",
197
- "@types/qs": "6.9.7",
198
- "@types/sanitize-html": "2.9.0",
199
- "@types/stream-json": "1.7.3",
200
- "@types/supertest": "2.0.12",
201
- "@types/uuid": "9.0.1",
202
- "@types/uuid-validate": "0.0.1",
203
- "@types/wellknown": "0.5.4",
204
- "@types/ws": "8.5.8",
205
- "@vitest/coverage-v8": "0.34.6",
190
+ "@types/lodash-es": "4.17.12",
191
+ "@types/mime-types": "2.1.4",
192
+ "@types/ms": "0.7.34",
193
+ "@types/node": "18.19.12",
194
+ "@types/node-schedule": "2.1.6",
195
+ "@types/nodemailer": "6.4.14",
196
+ "@types/object-hash": "3.0.6",
197
+ "@types/papaparse": "5.3.14",
198
+ "@types/qs": "6.9.11",
199
+ "@types/sanitize-html": "2.11.0",
200
+ "@types/stream-json": "1.7.7",
201
+ "@types/uuid": "9.0.8",
202
+ "@types/uuid-validate": "0.0.3",
203
+ "@types/wellknown": "0.5.8",
204
+ "@types/ws": "8.5.10",
205
+ "@vitest/coverage-v8": "1.2.2",
206
206
  "copyfiles": "2.4.1",
207
207
  "form-data": "4.0.0",
208
- "knex-mock-client": "2.0.0",
209
- "supertest": "6.3.3",
210
- "typescript": "5.2.2",
211
- "vitest": "0.34.6",
212
- "@directus/random": "0.2.3",
208
+ "knex-mock-client": "2.0.1",
209
+ "typescript": "5.3.3",
210
+ "vitest": "1.2.2",
213
211
  "@directus/tsconfig": "1.0.1",
214
- "@directus/types": "11.0.2"
212
+ "@directus/types": "11.0.4"
215
213
  },
216
214
  "optionalDependencies": {
217
- "@keyv/redis": "2.5.8",
215
+ "@keyv/redis": "2.8.4",
218
216
  "mysql": "2.18.1",
219
217
  "nodemailer-mailgun-transport": "2.1.5",
220
218
  "nodemailer-sendgrid": "1.0.3",
221
- "pg": "8.11.0",
222
- "sqlite3": "5.1.6",
223
- "tedious": "16.1.0"
219
+ "oracledb": "6.3.0",
220
+ "pg": "8.11.3",
221
+ "sqlite3": "5.1.7",
222
+ "tedious": "16.6.1"
224
223
  },
225
224
  "engines": {
226
225
  "node": ">=18.0.0"
@@ -1,2 +0,0 @@
1
- export declare const sqlFieldFormatter: (schema: Record<string, any>, table: string) => string;
2
- export declare const sqlFieldList: (schema: Record<string, any>, table: string) => string;
@@ -1,31 +0,0 @@
1
- // dynamically adds fields to the sql strings as the schema grows
2
- export const sqlFieldFormatter = (schema, table) => {
3
- const fields = [];
4
- // Exclude alias fields, unable to selected in DB
5
- for (const field of Object.keys(schema['collections'][table].fields)) {
6
- if (schema['collections'][table].fields[field].type !== 'alias') {
7
- fields.push(field);
8
- }
9
- }
10
- let sql = '';
11
- for (const field of fields.slice(0, fields.length - 1)) {
12
- sql += `"${table}"."${field}", `;
13
- }
14
- sql += `"${table}"."${fields[fields.length - 1]}"`;
15
- return sql;
16
- };
17
- export const sqlFieldList = (schema, table) => {
18
- const fields = [];
19
- // Exclude alias fields, unable to selected in DB
20
- for (const field of Object.keys(schema['collections'][table].fields)) {
21
- if (schema['collections'][table].fields[field].type !== 'alias') {
22
- fields.push(field);
23
- }
24
- }
25
- let sql = '';
26
- for (const field of fields.slice(0, fields.length - 1)) {
27
- sql += `"${field}", `;
28
- }
29
- sql += `"${fields[fields.length - 1]}"`;
30
- return sql;
31
- };
@@ -1,18 +0,0 @@
1
- export declare function setEnv(newEnv: Record<string, string>): void;
2
- /** Static env mock - to be used inside `vi.mock` */
3
- export declare function mockEnv(options?: {
4
- env?: Record<string, string>;
5
- withDefaults?: boolean;
6
- }): Promise<{
7
- readonly default: Record<string, any>;
8
- }>;
9
- /** Dynamic env mock */
10
- export declare function doMockEnv(options?: {
11
- env?: Record<string, string>;
12
- withDefaults?: boolean;
13
- }): {
14
- env: {
15
- [x: string]: string;
16
- };
17
- setEnv: (newEnv: Record<string, string>) => void;
18
- };
@@ -1,41 +0,0 @@
1
- import { afterEach, vi } from 'vitest';
2
- let env = {};
3
- export function setEnv(newEnv) {
4
- env = { ...env, ...newEnv };
5
- }
6
- /** Static env mock - to be used inside `vi.mock` */
7
- export async function mockEnv(options) {
8
- const initialEnv = options?.env ?? {};
9
- const withDefaults = options && 'withDefaults' in options ? options.withDefaults : true;
10
- env = { ...initialEnv };
11
- afterEach(() => {
12
- env = { ...initialEnv };
13
- });
14
- const { defaults, processValues } = await vi.importActual('../env.js');
15
- return {
16
- get default() {
17
- return processValues({ ...(withDefaults && defaults), ...env });
18
- },
19
- };
20
- }
21
- /** Dynamic env mock */
22
- export function doMockEnv(options) {
23
- const initialEnv = options?.env ?? {};
24
- const withDefaults = options && 'withDefaults' in options ? options.withDefaults : true;
25
- let env = { ...initialEnv };
26
- vi.doMock('../env.js', async () => {
27
- const { defaults, processValues } = await vi.importActual('../env.js');
28
- return {
29
- get default() {
30
- return processValues({ ...(withDefaults && defaults), ...env });
31
- },
32
- };
33
- });
34
- afterEach(() => {
35
- env = { ...initialEnv };
36
- });
37
- return { env, setEnv };
38
- function setEnv(newEnv) {
39
- env = { ...env, ...newEnv };
40
- }
41
- }
@@ -1,13 +0,0 @@
1
- import type { CollectionsOverview, Relation } from '@directus/types';
2
- export declare const systemSchema: {
3
- collections: CollectionsOverview;
4
- relations: Relation[];
5
- };
6
- export declare const userSchema: {
7
- collections: CollectionsOverview;
8
- relations: Relation[];
9
- };
10
- export declare const snapshotApplyTestSchema: {
11
- collections: CollectionsOverview;
12
- relations: Relation[];
13
- };