directus 9.23.1 → 9.23.3

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 (359) hide show
  1. package/dist/app.js +14 -10
  2. package/dist/auth/auth.d.ts +3 -3
  3. package/dist/auth/auth.js +2 -0
  4. package/dist/auth/drivers/ldap.d.ts +1 -1
  5. package/dist/auth/drivers/ldap.js +39 -28
  6. package/dist/auth/drivers/local.d.ts +1 -1
  7. package/dist/auth/drivers/local.js +13 -10
  8. package/dist/auth/drivers/oauth2.d.ts +1 -1
  9. package/dist/auth/drivers/oauth2.js +20 -13
  10. package/dist/auth/drivers/openid.d.ts +1 -1
  11. package/dist/auth/drivers/openid.js +21 -14
  12. package/dist/auth/drivers/saml.d.ts +1 -1
  13. package/dist/auth/drivers/saml.js +10 -7
  14. package/dist/auth.d.ts +1 -1
  15. package/dist/auth.js +4 -4
  16. package/dist/cache.d.ts +9 -1
  17. package/dist/cache.js +57 -14
  18. package/dist/cli/commands/bootstrap/index.js +2 -2
  19. package/dist/cli/commands/init/index.js +3 -3
  20. package/dist/cli/commands/schema/apply.js +14 -15
  21. package/dist/cli/commands/schema/snapshot.js +2 -2
  22. package/dist/cli/utils/create-db-connection.d.ts +1 -1
  23. package/dist/cli/utils/create-db-connection.js +2 -1
  24. package/dist/cli/utils/create-env/index.d.ts +2 -2
  25. package/dist/cli/utils/drivers.d.ts +1 -1
  26. package/dist/constants.d.ts +2 -2
  27. package/dist/constants.js +2 -3
  28. package/dist/controllers/activity.js +1 -2
  29. package/dist/controllers/assets.js +14 -9
  30. package/dist/controllers/auth.js +29 -15
  31. package/dist/controllers/dashboards.js +5 -2
  32. package/dist/controllers/fields.js +4 -4
  33. package/dist/controllers/files.js +10 -5
  34. package/dist/controllers/flows.js +5 -2
  35. package/dist/controllers/folders.js +5 -2
  36. package/dist/controllers/graphql.js +2 -4
  37. package/dist/controllers/items.js +5 -2
  38. package/dist/controllers/not-found.d.ts +1 -1
  39. package/dist/controllers/not-found.js +1 -2
  40. package/dist/controllers/notifications.js +5 -2
  41. package/dist/controllers/operations.js +5 -2
  42. package/dist/controllers/panels.js +5 -2
  43. package/dist/controllers/permissions.js +5 -2
  44. package/dist/controllers/presets.js +5 -2
  45. package/dist/controllers/roles.js +5 -2
  46. package/dist/controllers/shares.js +8 -5
  47. package/dist/controllers/users.js +16 -20
  48. package/dist/controllers/utils.js +6 -11
  49. package/dist/controllers/webhooks.js +5 -2
  50. package/dist/database/helpers/fn/dialects/mssql.d.ts +1 -1
  51. package/dist/database/helpers/fn/dialects/mssql.js +10 -11
  52. package/dist/database/helpers/fn/dialects/mysql.d.ts +1 -1
  53. package/dist/database/helpers/fn/dialects/mysql.js +2 -3
  54. package/dist/database/helpers/fn/dialects/oracle.d.ts +1 -1
  55. package/dist/database/helpers/fn/dialects/oracle.js +10 -11
  56. package/dist/database/helpers/fn/dialects/postgres.d.ts +1 -1
  57. package/dist/database/helpers/fn/dialects/postgres.js +10 -11
  58. package/dist/database/helpers/fn/dialects/sqlite.d.ts +1 -1
  59. package/dist/database/helpers/fn/dialects/sqlite.js +10 -11
  60. package/dist/database/helpers/fn/types.d.ts +5 -5
  61. package/dist/database/helpers/fn/types.js +5 -4
  62. package/dist/database/helpers/geometry/dialects/mssql.d.ts +3 -3
  63. package/dist/database/helpers/geometry/dialects/mysql.d.ts +1 -1
  64. package/dist/database/helpers/geometry/dialects/oracle.d.ts +3 -3
  65. package/dist/database/helpers/geometry/dialects/postgres.d.ts +3 -3
  66. package/dist/database/helpers/geometry/dialects/postgres.js +1 -2
  67. package/dist/database/helpers/geometry/dialects/redshift.d.ts +2 -2
  68. package/dist/database/helpers/geometry/dialects/sqlite.d.ts +1 -1
  69. package/dist/database/helpers/geometry/types.d.ts +2 -2
  70. package/dist/database/helpers/geometry/types.js +1 -2
  71. package/dist/database/helpers/index.d.ts +5 -5
  72. package/dist/database/helpers/schema/dialects/cockroachdb.d.ts +1 -1
  73. package/dist/database/helpers/schema/dialects/mssql.d.ts +1 -1
  74. package/dist/database/helpers/schema/dialects/mysql.d.ts +1 -1
  75. package/dist/database/helpers/schema/dialects/mysql.js +1 -2
  76. package/dist/database/helpers/schema/dialects/oracle.d.ts +2 -2
  77. package/dist/database/helpers/schema/dialects/oracle.js +4 -6
  78. package/dist/database/helpers/schema/types.d.ts +4 -4
  79. package/dist/database/helpers/types.d.ts +1 -1
  80. package/dist/database/helpers/types.js +1 -0
  81. package/dist/database/index.d.ts +1 -1
  82. package/dist/database/index.js +8 -8
  83. package/dist/database/migrations/20201028A-remove-collection-foreign-keys.d.ts +1 -1
  84. package/dist/database/migrations/20201029A-remove-system-relations.d.ts +1 -1
  85. package/dist/database/migrations/20201029B-remove-system-collections.d.ts +1 -1
  86. package/dist/database/migrations/20201029C-remove-system-fields.d.ts +1 -1
  87. package/dist/database/migrations/20201105A-add-cascade-system-relations.d.ts +1 -1
  88. package/dist/database/migrations/20201105B-change-webhook-url-type.d.ts +1 -1
  89. package/dist/database/migrations/20210225A-add-relations-sort-field.d.ts +1 -1
  90. package/dist/database/migrations/20210225A-add-relations-sort-field.js +1 -2
  91. package/dist/database/migrations/20210304A-remove-locked-fields.d.ts +1 -1
  92. package/dist/database/migrations/20210312A-webhooks-collections-text.d.ts +1 -1
  93. package/dist/database/migrations/20210331A-add-refresh-interval.d.ts +1 -1
  94. package/dist/database/migrations/20210415A-make-filesize-nullable.d.ts +1 -1
  95. package/dist/database/migrations/20210416A-add-collections-accountability.d.ts +1 -1
  96. package/dist/database/migrations/20210422A-remove-files-interface.d.ts +1 -1
  97. package/dist/database/migrations/20210506A-rename-interfaces.d.ts +1 -1
  98. package/dist/database/migrations/20210510A-restructure-relations.d.ts +1 -1
  99. package/dist/database/migrations/20210518A-add-foreign-key-constraints.d.ts +1 -1
  100. package/dist/database/migrations/20210518A-add-foreign-key-constraints.js +1 -1
  101. package/dist/database/migrations/20210519A-add-system-fk-triggers.d.ts +1 -1
  102. package/dist/database/migrations/20210519A-add-system-fk-triggers.js +2 -2
  103. package/dist/database/migrations/20210521A-add-collections-icon-color.d.ts +1 -1
  104. package/dist/database/migrations/20210525A-add-insights.d.ts +1 -1
  105. package/dist/database/migrations/20210608A-add-deep-clone-config.d.ts +1 -1
  106. package/dist/database/migrations/20210626A-change-filesize-bigint.d.ts +1 -1
  107. package/dist/database/migrations/20210716A-add-conditions-to-fields.d.ts +1 -1
  108. package/dist/database/migrations/20210721A-add-default-folder.d.ts +1 -1
  109. package/dist/database/migrations/20210802A-replace-groups.d.ts +1 -1
  110. package/dist/database/migrations/20210803A-add-required-to-fields.d.ts +1 -1
  111. package/dist/database/migrations/20210805A-update-groups.d.ts +1 -1
  112. package/dist/database/migrations/20210805B-change-image-metadata-structure.d.ts +1 -1
  113. package/dist/database/migrations/20210811A-add-geometry-config.d.ts +1 -1
  114. package/dist/database/migrations/20210831A-remove-limit-column.d.ts +1 -1
  115. package/dist/database/migrations/20210903A-add-auth-provider.d.ts +1 -1
  116. package/dist/database/migrations/20210907A-webhooks-collections-not-null.d.ts +1 -1
  117. package/dist/database/migrations/20210910A-move-module-setup.d.ts +1 -1
  118. package/dist/database/migrations/20210920A-webhooks-url-not-null.d.ts +1 -1
  119. package/dist/database/migrations/20210924A-add-collection-organization.d.ts +1 -1
  120. package/dist/database/migrations/20210927A-replace-fields-group.d.ts +1 -1
  121. package/dist/database/migrations/20210927B-replace-m2m-interface.d.ts +1 -1
  122. package/dist/database/migrations/20210929A-rename-login-action.d.ts +1 -1
  123. package/dist/database/migrations/20211007A-update-presets.d.ts +1 -1
  124. package/dist/database/migrations/20211007A-update-presets.js +7 -9
  125. package/dist/database/migrations/20211009A-add-auth-data.d.ts +1 -1
  126. package/dist/database/migrations/20211016A-add-webhook-headers.d.ts +1 -1
  127. package/dist/database/migrations/20211103A-set-unique-to-user-token.d.ts +1 -1
  128. package/dist/database/migrations/20211103B-update-special-geometry.d.ts +1 -1
  129. package/dist/database/migrations/20211104A-remove-collections-listing.d.ts +1 -1
  130. package/dist/database/migrations/20211118A-add-notifications.d.ts +1 -1
  131. package/dist/database/migrations/20211211A-add-shares.d.ts +1 -1
  132. package/dist/database/migrations/20211230A-add-project-descriptor.d.ts +1 -1
  133. package/dist/database/migrations/20220303A-remove-default-project-color.d.ts +1 -1
  134. package/dist/database/migrations/20220308A-add-bookmark-icon-and-color.d.ts +1 -1
  135. package/dist/database/migrations/20220314A-add-translation-strings.d.ts +1 -1
  136. package/dist/database/migrations/20220322A-rename-field-typecast-flags.d.ts +1 -1
  137. package/dist/database/migrations/20220323A-add-field-validation.d.ts +1 -1
  138. package/dist/database/migrations/20220325A-fix-typecast-flags.d.ts +1 -1
  139. package/dist/database/migrations/20220325B-add-default-language.d.ts +1 -1
  140. package/dist/database/migrations/20220402A-remove-default-value-panel-icon.d.ts +1 -1
  141. package/dist/database/migrations/20220429A-add-flows.d.ts +1 -1
  142. package/dist/database/migrations/20220429B-add-color-to-insights-icon.d.ts +1 -1
  143. package/dist/database/migrations/20220429C-drop-non-null-from-ip-of-activity.d.ts +1 -1
  144. package/dist/database/migrations/20220429D-drop-non-null-from-sender-of-notifications.d.ts +1 -1
  145. package/dist/database/migrations/20220614A-rename-hook-trigger-to-event.d.ts +1 -1
  146. package/dist/database/migrations/20220801A-update-notifications-timestamp-column.d.ts +1 -1
  147. package/dist/database/migrations/20220802A-add-custom-aspect-ratios.d.ts +1 -1
  148. package/dist/database/migrations/20220826A-add-origin-to-accountability.d.ts +1 -1
  149. package/dist/database/migrations/run.d.ts +1 -1
  150. package/dist/database/run-ast.d.ts +3 -3
  151. package/dist/database/run-ast.js +17 -26
  152. package/dist/database/seeds/run.d.ts +1 -1
  153. package/dist/database/seeds/run.js +1 -2
  154. package/dist/database/system-data/app-access-permissions/index.d.ts +1 -1
  155. package/dist/database/system-data/collections/index.d.ts +1 -1
  156. package/dist/database/system-data/fields/collections.yaml +2 -0
  157. package/dist/database/system-data/fields/index.d.ts +1 -1
  158. package/dist/database/system-data/fields/index.js +1 -2
  159. package/dist/database/system-data/fields/settings.yaml +4 -0
  160. package/dist/database/system-data/relations/index.d.ts +1 -1
  161. package/dist/emitter.d.ts +1 -1
  162. package/dist/emitter.js +3 -0
  163. package/dist/env.js +10 -2
  164. package/dist/exceptions/database/dialects/mssql.d.ts +1 -1
  165. package/dist/exceptions/database/dialects/mssql.js +5 -6
  166. package/dist/exceptions/database/dialects/mysql.d.ts +1 -1
  167. package/dist/exceptions/database/dialects/mysql.js +19 -25
  168. package/dist/exceptions/database/dialects/oracle.d.ts +1 -1
  169. package/dist/exceptions/database/dialects/postgres.d.ts +1 -1
  170. package/dist/exceptions/database/dialects/sqlite.d.ts +1 -1
  171. package/dist/exceptions/database/translate.d.ts +1 -1
  172. package/dist/exceptions/database/value-out-of-range.js +1 -1
  173. package/dist/exceptions/range-not-satisfiable.js +2 -3
  174. package/dist/extensions.d.ts +1 -1
  175. package/dist/extensions.js +33 -23
  176. package/dist/flows.js +42 -25
  177. package/dist/logger.d.ts +1 -1
  178. package/dist/logger.js +19 -3
  179. package/dist/messenger.js +8 -6
  180. package/dist/middleware/authenticate.d.ts +1 -1
  181. package/dist/middleware/authenticate.js +12 -5
  182. package/dist/middleware/cache.d.ts +1 -1
  183. package/dist/middleware/cache.js +5 -5
  184. package/dist/middleware/check-ip.d.ts +1 -1
  185. package/dist/middleware/check-ip.js +1 -1
  186. package/dist/middleware/collection-exists.d.ts +1 -1
  187. package/dist/middleware/collection-exists.js +2 -2
  188. package/dist/middleware/cors.d.ts +1 -1
  189. package/dist/middleware/error-handler.d.ts +1 -1
  190. package/dist/middleware/error-handler.js +9 -10
  191. package/dist/middleware/extract-token.d.ts +1 -1
  192. package/dist/middleware/get-permissions.d.ts +1 -1
  193. package/dist/middleware/graphql.d.ts +1 -1
  194. package/dist/middleware/graphql.js +3 -3
  195. package/dist/middleware/rate-limiter-global.d.ts +5 -0
  196. package/dist/middleware/rate-limiter-global.js +48 -0
  197. package/dist/middleware/{rate-limiter.d.ts → rate-limiter-ip.d.ts} +2 -2
  198. package/dist/middleware/{rate-limiter.js → rate-limiter-ip.js} +3 -3
  199. package/dist/middleware/respond.d.ts +1 -1
  200. package/dist/middleware/respond.js +6 -7
  201. package/dist/middleware/sanitize-query.d.ts +1 -1
  202. package/dist/middleware/schema.d.ts +1 -1
  203. package/dist/middleware/use-collection.d.ts +1 -1
  204. package/dist/operations/condition/index.d.ts +1 -1
  205. package/dist/operations/exec/index.js +14 -3
  206. package/dist/operations/item-create/index.js +1 -2
  207. package/dist/operations/item-delete/index.d.ts +1 -1
  208. package/dist/operations/item-read/index.d.ts +1 -1
  209. package/dist/operations/item-update/index.d.ts +1 -1
  210. package/dist/operations/item-update/index.js +1 -2
  211. package/dist/operations/notification/index.js +1 -2
  212. package/dist/operations/request/index.js +19 -19
  213. package/dist/operations/trigger/index.js +2 -3
  214. package/dist/rate-limiter.d.ts +1 -1
  215. package/dist/rate-limiter.js +8 -8
  216. package/dist/server.js +8 -9
  217. package/dist/services/activity.d.ts +1 -1
  218. package/dist/services/activity.js +7 -6
  219. package/dist/services/assets.d.ts +3 -3
  220. package/dist/services/assets.js +33 -35
  221. package/dist/services/authentication.d.ts +2 -2
  222. package/dist/services/authentication.js +13 -10
  223. package/dist/services/authorization.d.ts +3 -3
  224. package/dist/services/authorization.js +27 -31
  225. package/dist/services/collections.d.ts +5 -5
  226. package/dist/services/collections.js +52 -48
  227. package/dist/services/dashboards.d.ts +1 -1
  228. package/dist/services/fields.d.ts +5 -5
  229. package/dist/services/fields.js +48 -48
  230. package/dist/services/files.d.ts +1 -2
  231. package/dist/services/files.js +27 -21
  232. package/dist/services/flows.d.ts +2 -2
  233. package/dist/services/folders.d.ts +1 -1
  234. package/dist/services/graphql/index.d.ts +4 -4
  235. package/dist/services/graphql/index.js +172 -167
  236. package/dist/services/graphql/utils/add-path-to-validation-error.js +1 -2
  237. package/dist/services/graphql/utils/process-error.d.ts +2 -2
  238. package/dist/services/graphql/utils/process-error.js +11 -4
  239. package/dist/services/import-export.d.ts +3 -3
  240. package/dist/services/import-export.js +25 -22
  241. package/dist/services/items.d.ts +3 -3
  242. package/dist/services/items.js +42 -36
  243. package/dist/services/mail/index.d.ts +4 -4
  244. package/dist/services/mail/index.js +9 -5
  245. package/dist/services/meta.d.ts +3 -3
  246. package/dist/services/meta.js +10 -9
  247. package/dist/services/notifications.d.ts +3 -3
  248. package/dist/services/notifications.js +7 -6
  249. package/dist/services/operations.d.ts +2 -2
  250. package/dist/services/panels.d.ts +1 -1
  251. package/dist/services/payload.d.ts +3 -3
  252. package/dist/services/payload.js +124 -122
  253. package/dist/services/permissions.d.ts +3 -3
  254. package/dist/services/permissions.js +11 -11
  255. package/dist/services/presets.d.ts +1 -1
  256. package/dist/services/relations.d.ts +6 -6
  257. package/dist/services/relations.js +45 -43
  258. package/dist/services/revisions.d.ts +1 -1
  259. package/dist/services/roles.d.ts +2 -2
  260. package/dist/services/roles.js +2 -2
  261. package/dist/services/schema.d.ts +3 -3
  262. package/dist/services/schema.js +9 -11
  263. package/dist/services/server.d.ts +3 -3
  264. package/dist/services/server.js +69 -13
  265. package/dist/services/settings.d.ts +1 -1
  266. package/dist/services/shares.d.ts +1 -1
  267. package/dist/services/shares.js +5 -6
  268. package/dist/services/specifications.d.ts +4 -4
  269. package/dist/services/specifications.js +132 -116
  270. package/dist/services/tfa.d.ts +2 -2
  271. package/dist/services/tfa.js +7 -5
  272. package/dist/services/users.d.ts +3 -3
  273. package/dist/services/users.js +17 -17
  274. package/dist/services/utils.d.ts +3 -3
  275. package/dist/services/utils.js +10 -8
  276. package/dist/services/webhooks.d.ts +2 -2
  277. package/dist/services/webhooks.js +2 -1
  278. package/dist/types/assets.d.ts +1 -1
  279. package/dist/types/ast.d.ts +1 -1
  280. package/dist/types/auth.d.ts +2 -2
  281. package/dist/types/collection.d.ts +2 -2
  282. package/dist/types/events.d.ts +2 -2
  283. package/dist/types/graphql.d.ts +2 -2
  284. package/dist/types/items.d.ts +3 -3
  285. package/dist/types/services.d.ts +5 -5
  286. package/dist/types/snapshot.d.ts +4 -4
  287. package/dist/utils/apply-diff.d.ts +3 -3
  288. package/dist/utils/apply-diff.js +25 -28
  289. package/dist/utils/apply-query.d.ts +3 -3
  290. package/dist/utils/apply-query.js +8 -11
  291. package/dist/utils/apply-snapshot.d.ts +3 -3
  292. package/dist/utils/apply-snapshot.js +5 -6
  293. package/dist/utils/construct-flow-tree.d.ts +1 -1
  294. package/dist/utils/construct-flow-tree.js +2 -2
  295. package/dist/utils/filter-items.d.ts +1 -1
  296. package/dist/utils/get-accountability-for-role.d.ts +2 -2
  297. package/dist/utils/get-accountability-for-role.js +1 -1
  298. package/dist/utils/get-ast-from-query.d.ts +3 -3
  299. package/dist/utils/get-ast-from-query.js +22 -28
  300. package/dist/utils/get-cache-headers.d.ts +1 -1
  301. package/dist/utils/get-cache-headers.js +3 -4
  302. package/dist/utils/get-cache-key.d.ts +1 -1
  303. package/dist/utils/get-cache-key.js +2 -3
  304. package/dist/utils/get-collection-from-alias.d.ts +1 -1
  305. package/dist/utils/get-column-path.d.ts +2 -2
  306. package/dist/utils/get-column-path.js +3 -4
  307. package/dist/utils/get-column.d.ts +4 -4
  308. package/dist/utils/get-column.js +4 -5
  309. package/dist/utils/get-default-value.d.ts +2 -2
  310. package/dist/utils/get-default-value.js +1 -2
  311. package/dist/utils/get-graphql-query-and-variables.d.ts +1 -1
  312. package/dist/utils/get-graphql-query-and-variables.js +1 -2
  313. package/dist/utils/get-graphql-type.d.ts +2 -2
  314. package/dist/utils/get-graphql-type.js +1 -1
  315. package/dist/utils/get-ip-from-req.d.ts +1 -1
  316. package/dist/utils/get-local-type.d.ts +1 -1
  317. package/dist/utils/get-local-type.js +3 -3
  318. package/dist/utils/get-milliseconds.js +1 -2
  319. package/dist/utils/get-permissions.d.ts +1 -1
  320. package/dist/utils/get-permissions.js +1 -1
  321. package/dist/utils/get-relation-info.d.ts +1 -1
  322. package/dist/utils/get-relation-info.js +3 -5
  323. package/dist/utils/get-relation-type.d.ts +1 -1
  324. package/dist/utils/get-relation-type.js +3 -4
  325. package/dist/utils/get-schema.d.ts +2 -2
  326. package/dist/utils/get-schema.js +19 -21
  327. package/dist/utils/get-snapshot-diff.js +2 -3
  328. package/dist/utils/get-snapshot.d.ts +3 -3
  329. package/dist/utils/get-snapshot.js +6 -8
  330. package/dist/utils/is-directus-jwt.js +1 -1
  331. package/dist/utils/job-queue.js +2 -0
  332. package/dist/utils/jwt.d.ts +1 -1
  333. package/dist/utils/merge-permissions-for-share.d.ts +1 -1
  334. package/dist/utils/merge-permissions-for-share.js +3 -4
  335. package/dist/utils/merge-permissions.d.ts +3 -3
  336. package/dist/utils/redact-header-cookies.d.ts +1 -0
  337. package/dist/utils/redact-header-cookies.js +11 -0
  338. package/dist/utils/redact-header-cookies.test.d.ts +1 -0
  339. package/dist/utils/reduce-schema.d.ts +1 -1
  340. package/dist/utils/reduce-schema.js +12 -12
  341. package/dist/utils/sanitize-query.d.ts +1 -1
  342. package/dist/utils/sanitize-query.js +1 -1
  343. package/dist/utils/sanitize-schema.d.ts +2 -2
  344. package/dist/utils/should-skip-cache.d.ts +7 -0
  345. package/dist/utils/should-skip-cache.js +21 -0
  346. package/dist/utils/should-skip-cache.test.d.ts +1 -0
  347. package/dist/utils/transformations.d.ts +1 -1
  348. package/dist/utils/transformations.js +2 -4
  349. package/dist/utils/url.js +7 -2
  350. package/dist/utils/user-name.d.ts +1 -1
  351. package/dist/utils/validate-diff.js +7 -8
  352. package/dist/utils/validate-keys.d.ts +2 -2
  353. package/dist/utils/validate-keys.js +1 -1
  354. package/dist/utils/validate-query.d.ts +1 -1
  355. package/dist/utils/validate-query.js +2 -2
  356. package/dist/webhooks.js +1 -1
  357. package/package.json +36 -37
  358. package/dist/utils/with-timeout.d.ts +0 -1
  359. package/dist/utils/with-timeout.js +0 -16
@@ -44,10 +44,18 @@ const items_1 = require("../services/items");
44
44
  const payload_1 = require("../services/payload");
45
45
  const get_default_value_1 = __importDefault(require("../utils/get-default-value"));
46
46
  const get_local_type_1 = __importDefault(require("../utils/get-local-type"));
47
- const relations_1 = require("./relations");
48
- const constants_3 = require("@directus/shared/constants");
49
47
  const get_schema_1 = require("../utils/get-schema");
48
+ const relations_1 = require("./relations");
50
49
  class FieldsService {
50
+ knex;
51
+ helpers;
52
+ accountability;
53
+ itemsService;
54
+ payloadService;
55
+ schemaInspector;
56
+ schema;
57
+ cache;
58
+ systemCache;
51
59
  constructor(options) {
52
60
  this.knex = options.knex || (0, database_1.default)();
53
61
  this.helpers = (0, helpers_1.getHelpers)(this.knex);
@@ -61,13 +69,11 @@ class FieldsService {
61
69
  this.systemCache = systemCache;
62
70
  }
63
71
  get hasReadAccess() {
64
- var _a, _b;
65
- return !!((_b = (_a = this.accountability) === null || _a === void 0 ? void 0 : _a.permissions) === null || _b === void 0 ? void 0 : _b.find((permission) => {
72
+ return !!this.accountability?.permissions?.find((permission) => {
66
73
  return permission.collection === 'directus_fields' && permission.action === 'read';
67
- }));
74
+ });
68
75
  }
69
76
  async readAll(collection) {
70
- var _a, _b, _c, _d;
71
77
  let fields;
72
78
  if (this.accountability && this.accountability.admin !== true && this.hasReadAccess === false) {
73
79
  throw new exceptions_1.ForbiddenException();
@@ -144,8 +150,7 @@ class FieldsService {
144
150
  });
145
151
  const allowedFieldsInCollection = {};
146
152
  permissions.forEach((permission) => {
147
- var _a;
148
- allowedFieldsInCollection[permission.collection] = (_a = permission.fields) !== null && _a !== void 0 ? _a : [];
153
+ allowedFieldsInCollection[permission.collection] = permission.fields ?? [];
149
154
  });
150
155
  if (collection && collection in allowedFieldsInCollection === false) {
151
156
  throw new exceptions_1.ForbiddenException();
@@ -161,10 +166,10 @@ class FieldsService {
161
166
  }
162
167
  // Update specific database type overrides
163
168
  for (const field of result) {
164
- if ((_b = (_a = field.meta) === null || _a === void 0 ? void 0 : _a.special) === null || _b === void 0 ? void 0 : _b.includes('cast-timestamp')) {
169
+ if (field.meta?.special?.includes('cast-timestamp')) {
165
170
  field.type = 'timestamp';
166
171
  }
167
- else if ((_d = (_c = field.meta) === null || _c === void 0 ? void 0 : _c.special) === null || _d === void 0 ? void 0 : _d.includes('cast-datetime')) {
172
+ else if (field.meta?.special?.includes('cast-datetime')) {
168
173
  field.type = 'dateTime';
169
174
  }
170
175
  field.type = this.helpers.schema.processFieldType(field);
@@ -281,7 +286,7 @@ class FieldsService {
281
286
  accountability: this.accountability,
282
287
  },
283
288
  };
284
- if (opts === null || opts === void 0 ? void 0 : opts.bypassEmitAction) {
289
+ if (opts?.bypassEmitAction) {
285
290
  opts.bypassEmitAction(actionEvent);
286
291
  }
287
292
  else {
@@ -293,13 +298,13 @@ class FieldsService {
293
298
  if (runPostColumnChange) {
294
299
  await this.helpers.schema.postColumnChange();
295
300
  }
296
- if (this.cache && env_1.default.CACHE_AUTO_PURGE && (opts === null || opts === void 0 ? void 0 : opts.autoPurgeCache) !== false) {
301
+ if (this.cache && env_1.default.CACHE_AUTO_PURGE && opts?.autoPurgeCache !== false) {
297
302
  await this.cache.clear();
298
303
  }
299
- if ((opts === null || opts === void 0 ? void 0 : opts.autoPurgeSystemCache) !== false) {
300
- await (0, cache_1.clearSystemCache)();
304
+ if (opts?.autoPurgeSystemCache !== false) {
305
+ await (0, cache_1.clearSystemCache)({ autoPurgeCache: opts?.autoPurgeCache });
301
306
  }
302
- if ((opts === null || opts === void 0 ? void 0 : opts.emitEvents) !== false && nestedActionEvents.length > 0) {
307
+ if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
303
308
  const updatedSchema = await (0, get_schema_1.getSchema)();
304
309
  for (const nestedActionEvent of nestedActionEvents) {
305
310
  nestedActionEvent.context.schema = updatedSchema;
@@ -309,7 +314,6 @@ class FieldsService {
309
314
  }
310
315
  }
311
316
  async updateField(collection, field, opts) {
312
- var _a, _b, _c;
313
317
  if (this.accountability && this.accountability.admin !== true) {
314
318
  throw new exceptions_1.ForbiddenException();
315
319
  }
@@ -329,8 +333,8 @@ class FieldsService {
329
333
  : null;
330
334
  if (hookAdjustedField.type &&
331
335
  (hookAdjustedField.type === 'alias' ||
332
- ((_a = this.schema.collections[collection].fields[field.field]) === null || _a === void 0 ? void 0 : _a.type) === 'alias') &&
333
- hookAdjustedField.type !== ((_c = (_b = this.schema.collections[collection].fields[field.field]) === null || _b === void 0 ? void 0 : _b.type) !== null && _c !== void 0 ? _c : 'alias')) {
336
+ this.schema.collections[collection].fields[field.field]?.type === 'alias') &&
337
+ hookAdjustedField.type !== (this.schema.collections[collection].fields[field.field]?.type ?? 'alias')) {
334
338
  throw new exceptions_1.InvalidPayloadException('Alias type cannot be changed');
335
339
  }
336
340
  if (hookAdjustedField.schema) {
@@ -377,7 +381,7 @@ class FieldsService {
377
381
  accountability: this.accountability,
378
382
  },
379
383
  };
380
- if (opts === null || opts === void 0 ? void 0 : opts.bypassEmitAction) {
384
+ if (opts?.bypassEmitAction) {
381
385
  opts.bypassEmitAction(actionEvent);
382
386
  }
383
387
  else {
@@ -389,13 +393,13 @@ class FieldsService {
389
393
  if (runPostColumnChange) {
390
394
  await this.helpers.schema.postColumnChange();
391
395
  }
392
- if (this.cache && env_1.default.CACHE_AUTO_PURGE && (opts === null || opts === void 0 ? void 0 : opts.autoPurgeCache) !== false) {
396
+ if (this.cache && env_1.default.CACHE_AUTO_PURGE && opts?.autoPurgeCache !== false) {
393
397
  await this.cache.clear();
394
398
  }
395
- if ((opts === null || opts === void 0 ? void 0 : opts.autoPurgeSystemCache) !== false) {
396
- await (0, cache_1.clearSystemCache)();
399
+ if (opts?.autoPurgeSystemCache !== false) {
400
+ await (0, cache_1.clearSystemCache)({ autoPurgeCache: opts?.autoPurgeCache });
397
401
  }
398
- if ((opts === null || opts === void 0 ? void 0 : opts.emitEvents) !== false && nestedActionEvents.length > 0) {
402
+ if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
399
403
  const updatedSchema = await (0, get_schema_1.getSchema)();
400
404
  for (const nestedActionEvent of nestedActionEvents) {
401
405
  nestedActionEvent.context.schema = updatedSchema;
@@ -419,11 +423,9 @@ class FieldsService {
419
423
  accountability: this.accountability,
420
424
  });
421
425
  await this.knex.transaction(async (trx) => {
422
- var _a, _b;
423
426
  const relations = this.schema.relations.filter((relation) => {
424
- var _a;
425
427
  return ((relation.collection === collection && relation.field === field) ||
426
- (relation.related_collection === collection && ((_a = relation.meta) === null || _a === void 0 ? void 0 : _a.one_field) === field));
428
+ (relation.related_collection === collection && relation.meta?.one_field === field));
427
429
  });
428
430
  const relationsService = new relations_1.RelationsService({
429
431
  knex: trx,
@@ -441,21 +443,21 @@ class FieldsService {
441
443
  if (isM2O) {
442
444
  await relationsService.deleteOne(collection, field, {
443
445
  autoPurgeSystemCache: false,
444
- bypassEmitAction: (params) => (opts === null || opts === void 0 ? void 0 : opts.bypassEmitAction) ? opts.bypassEmitAction(params) : nestedActionEvents.push(params),
446
+ bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params),
445
447
  });
446
448
  if (relation.related_collection &&
447
- ((_a = relation.meta) === null || _a === void 0 ? void 0 : _a.one_field) &&
449
+ relation.meta?.one_field &&
448
450
  relation.related_collection !== collection &&
449
451
  relation.meta.one_field !== field) {
450
452
  await fieldsService.deleteField(relation.related_collection, relation.meta.one_field, {
451
453
  autoPurgeCache: false,
452
454
  autoPurgeSystemCache: false,
453
- bypassEmitAction: (params) => (opts === null || opts === void 0 ? void 0 : opts.bypassEmitAction) ? opts.bypassEmitAction(params) : nestedActionEvents.push(params),
455
+ bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params),
454
456
  });
455
457
  }
456
458
  }
457
459
  // If the current field is a o2m, just delete the one field config from the relation
458
- if (!isM2O && ((_b = relation.meta) === null || _b === void 0 ? void 0 : _b.one_field)) {
460
+ if (!isM2O && relation.meta?.one_field) {
459
461
  await trx('directus_relations')
460
462
  .update({ one_field: null })
461
463
  .where({ many_collection: relation.collection, many_field: relation.field });
@@ -475,10 +477,10 @@ class FieldsService {
475
477
  .where({ collection })
476
478
  .first();
477
479
  const collectionMetaUpdates = {};
478
- if ((collectionMeta === null || collectionMeta === void 0 ? void 0 : collectionMeta.archive_field) === field) {
480
+ if (collectionMeta?.archive_field === field) {
479
481
  collectionMetaUpdates.archive_field = null;
480
482
  }
481
- if ((collectionMeta === null || collectionMeta === void 0 ? void 0 : collectionMeta.sort_field) === field) {
483
+ if (collectionMeta?.sort_field === field) {
482
484
  collectionMetaUpdates.sort_field = null;
483
485
  }
484
486
  if (Object.keys(collectionMetaUpdates).length > 0) {
@@ -510,7 +512,7 @@ class FieldsService {
510
512
  accountability: this.accountability,
511
513
  },
512
514
  };
513
- if (opts === null || opts === void 0 ? void 0 : opts.bypassEmitAction) {
515
+ if (opts?.bypassEmitAction) {
514
516
  opts.bypassEmitAction(actionEvent);
515
517
  }
516
518
  else {
@@ -521,13 +523,13 @@ class FieldsService {
521
523
  if (runPostColumnChange) {
522
524
  await this.helpers.schema.postColumnChange();
523
525
  }
524
- if (this.cache && env_1.default.CACHE_AUTO_PURGE && (opts === null || opts === void 0 ? void 0 : opts.autoPurgeCache) !== false) {
526
+ if (this.cache && env_1.default.CACHE_AUTO_PURGE && opts?.autoPurgeCache !== false) {
525
527
  await this.cache.clear();
526
528
  }
527
- if ((opts === null || opts === void 0 ? void 0 : opts.autoPurgeSystemCache) !== false) {
528
- await (0, cache_1.clearSystemCache)();
529
+ if (opts?.autoPurgeSystemCache !== false) {
530
+ await (0, cache_1.clearSystemCache)({ autoPurgeCache: opts?.autoPurgeCache });
529
531
  }
530
- if ((opts === null || opts === void 0 ? void 0 : opts.emitEvents) !== false && nestedActionEvents.length > 0) {
532
+ if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
531
533
  const updatedSchema = await (0, get_schema_1.getSchema)();
532
534
  for (const nestedActionEvent of nestedActionEvents) {
533
535
  nestedActionEvent.context.schema = updatedSchema;
@@ -537,14 +539,12 @@ class FieldsService {
537
539
  }
538
540
  }
539
541
  addColumnToTable(table, field, alter = null) {
540
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
541
542
  let column;
542
543
  // Don't attempt to add a DB column for alias / corrupt fields
543
544
  if (field.type === 'alias' || field.type === 'unknown')
544
545
  return;
545
- if ((_a = field.schema) === null || _a === void 0 ? void 0 : _a.has_auto_increment) {
546
+ if (field.schema?.has_auto_increment) {
546
547
  if (field.type === 'bigInteger') {
547
- // Create an auto-incremented big integer (MySQL, PostgreSQL) or an auto-incremented integer (other DBs)
548
548
  column = table.bigIncrements(field.field);
549
549
  }
550
550
  else {
@@ -552,11 +552,11 @@ class FieldsService {
552
552
  }
553
553
  }
554
554
  else if (field.type === 'string') {
555
- column = table.string(field.field, (_c = (_b = field.schema) === null || _b === void 0 ? void 0 : _b.max_length) !== null && _c !== void 0 ? _c : undefined);
555
+ column = table.string(field.field, field.schema?.max_length ?? undefined);
556
556
  }
557
557
  else if (['float', 'decimal'].includes(field.type)) {
558
558
  const type = field.type;
559
- column = table[type](field.field, (_e = (_d = field.schema) === null || _d === void 0 ? void 0 : _d.numeric_precision) !== null && _e !== void 0 ? _e : 10, (_g = (_f = field.schema) === null || _f === void 0 ? void 0 : _f.numeric_scale) !== null && _g !== void 0 ? _g : 5);
559
+ column = table[type](field.field, field.schema?.numeric_precision ?? 10, field.schema?.numeric_scale ?? 5);
560
560
  }
561
561
  else if (field.type === 'csv') {
562
562
  column = table.string(field.field);
@@ -573,13 +573,13 @@ class FieldsService {
573
573
  else if (field.type.startsWith('geometry')) {
574
574
  column = this.helpers.st.createColumn(table, field);
575
575
  }
576
- else if (constants_3.KNEX_TYPES.includes(field.type)) {
576
+ else if (constants_1.KNEX_TYPES.includes(field.type)) {
577
577
  column = table[field.type](field.field);
578
578
  }
579
579
  else {
580
580
  throw new exceptions_1.InvalidPayloadException(`Illegal type passed: "${field.type}"`);
581
581
  }
582
- if (((_h = field.schema) === null || _h === void 0 ? void 0 : _h.default_value) !== undefined) {
582
+ if (field.schema?.default_value !== undefined) {
583
583
  if (typeof field.schema.default_value === 'string' &&
584
584
  (field.schema.default_value.toLowerCase() === 'now()' || field.schema.default_value === 'CURRENT_TIMESTAMP')) {
585
585
  column.defaultTo(this.knex.fn.now());
@@ -594,7 +594,7 @@ class FieldsService {
594
594
  column.defaultTo(field.schema.default_value);
595
595
  }
596
596
  }
597
- if (((_j = field.schema) === null || _j === void 0 ? void 0 : _j.is_nullable) === false) {
597
+ if (field.schema?.is_nullable === false) {
598
598
  if (!alter || alter.is_nullable === true) {
599
599
  column.notNullable();
600
600
  }
@@ -604,15 +604,15 @@ class FieldsService {
604
604
  column.nullable();
605
605
  }
606
606
  }
607
- if ((_k = field.schema) === null || _k === void 0 ? void 0 : _k.is_primary_key) {
607
+ if (field.schema?.is_primary_key) {
608
608
  column.primary().notNullable();
609
609
  }
610
- else if (((_l = field.schema) === null || _l === void 0 ? void 0 : _l.is_unique) === true) {
610
+ else if (field.schema?.is_unique === true) {
611
611
  if (!alter || alter.is_unique === false) {
612
612
  column.unique();
613
613
  }
614
614
  }
615
- else if (((_m = field.schema) === null || _m === void 0 ? void 0 : _m.is_unique) === false) {
615
+ else if (field.schema?.is_unique === false) {
616
616
  if (alter && alter.is_unique === true) {
617
617
  table.dropUnique([field.field]);
618
618
  }
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import type { Readable } from 'node:stream';
3
- import { AbstractServiceOptions, File, Metadata, MutationOptions, PrimaryKey } from '../types';
3
+ import type { AbstractServiceOptions, File, Metadata, MutationOptions, PrimaryKey } from '../types';
4
4
  import { ItemsService } from './items';
5
5
  export declare class FilesService extends ItemsService {
6
6
  constructor(options: AbstractServiceOptions);
@@ -8,7 +8,6 @@ export declare class FilesService extends ItemsService {
8
8
  * Upload a single new file to the configured storage adapter
9
9
  */
10
10
  uploadOne(stream: Readable, data: Partial<File> & {
11
- filename_download: string;
12
11
  storage: string;
13
12
  }, primaryKey?: PrimaryKey, opts?: MutationOptions): Promise<PrimaryKey>;
14
13
  /**
@@ -32,12 +32,20 @@ class FilesService extends items_1.ItemsService {
32
32
  * Upload a single new file to the configured storage adapter
33
33
  */
34
34
  async uploadOne(stream, data, primaryKey, opts) {
35
- var _a, _b, _c, _d, _e, _f;
36
35
  const storage = await (0, storage_1.getStorage)();
37
- const payload = (0, lodash_1.clone)(data);
36
+ let existingFile = {};
37
+ if (primaryKey !== undefined) {
38
+ existingFile =
39
+ (await this.knex
40
+ .select('folder', 'filename_download')
41
+ .from('directus_files')
42
+ .where({ id: primaryKey })
43
+ .first()) ?? {};
44
+ }
45
+ const payload = { ...existingFile, ...(0, lodash_1.clone)(data) };
38
46
  if ('folder' in payload === false) {
39
47
  const settings = await this.knex.select('storage_default_folder').from('directus_settings').first();
40
- if (settings === null || settings === void 0 ? void 0 : settings.storage_default_folder) {
48
+ if (settings?.storage_default_folder) {
41
49
  payload.folder = settings.storage_default_folder;
42
50
  }
43
51
  }
@@ -71,12 +79,12 @@ class FilesService extends items_1.ItemsService {
71
79
  if (['image/jpeg', 'image/png', 'image/webp', 'image/gif', 'image/tiff'].includes(payload.type)) {
72
80
  const stream = await storage.location(data.storage).read(payload.filename_disk);
73
81
  const { height, width, description, title, tags, metadata } = await this.getMetadata(stream);
74
- (_a = payload.height) !== null && _a !== void 0 ? _a : (payload.height = height);
75
- (_b = payload.width) !== null && _b !== void 0 ? _b : (payload.width = width);
76
- (_c = payload.description) !== null && _c !== void 0 ? _c : (payload.description = description);
77
- (_d = payload.title) !== null && _d !== void 0 ? _d : (payload.title = title);
78
- (_e = payload.tags) !== null && _e !== void 0 ? _e : (payload.tags = tags);
79
- (_f = payload.metadata) !== null && _f !== void 0 ? _f : (payload.metadata = metadata);
82
+ payload.height = height ?? null;
83
+ payload.width = width ?? null;
84
+ payload.description = description ?? null;
85
+ payload.title = title ?? null;
86
+ payload.tags = tags ?? null;
87
+ payload.metadata = metadata ?? null;
80
88
  }
81
89
  // We do this in a service without accountability. Even if you don't have update permissions to the file,
82
90
  // we still want to be able to set the extracted values from the file on create
@@ -85,10 +93,10 @@ class FilesService extends items_1.ItemsService {
85
93
  schema: this.schema,
86
94
  });
87
95
  await sudoService.updateOne(primaryKey, payload, { emitEvents: false });
88
- if (this.cache && env_1.default.CACHE_AUTO_PURGE && (opts === null || opts === void 0 ? void 0 : opts.autoPurgeCache) !== false) {
96
+ if (this.cache && env_1.default.CACHE_AUTO_PURGE && opts?.autoPurgeCache !== false) {
89
97
  await this.cache.clear();
90
98
  }
91
- if ((opts === null || opts === void 0 ? void 0 : opts.emitEvents) !== false) {
99
+ if (opts?.emitEvents !== false) {
92
100
  emitter_1.default.emitAction('files.upload', {
93
101
  payload,
94
102
  key: primaryKey,
@@ -107,7 +115,6 @@ class FilesService extends items_1.ItemsService {
107
115
  async getMetadata(stream, allowList = env_1.default.FILE_METADATA_ALLOW_LIST) {
108
116
  return new Promise((resolve, reject) => {
109
117
  (0, promises_1.pipeline)(stream, (0, sharp_1.default)().metadata(async (err, sharpMetadata) => {
110
- var _a, _b, _c, _d;
111
118
  if (err) {
112
119
  reject(err);
113
120
  return;
@@ -169,16 +176,16 @@ class FilesService extends items_1.ItemsService {
169
176
  logger_1.default.warn(err);
170
177
  }
171
178
  }
172
- if (((_a = fullMetadata === null || fullMetadata === void 0 ? void 0 : fullMetadata.iptc) === null || _a === void 0 ? void 0 : _a.Caption) && typeof fullMetadata.iptc.Caption === 'string') {
173
- metadata.description = (_b = fullMetadata.iptc) === null || _b === void 0 ? void 0 : _b.Caption;
179
+ if (fullMetadata?.iptc?.Caption && typeof fullMetadata.iptc.Caption === 'string') {
180
+ metadata.description = fullMetadata.iptc?.Caption;
174
181
  }
175
- if (((_c = fullMetadata === null || fullMetadata === void 0 ? void 0 : fullMetadata.iptc) === null || _c === void 0 ? void 0 : _c.Headline) && typeof fullMetadata.iptc.Headline === 'string') {
182
+ if (fullMetadata?.iptc?.Headline && typeof fullMetadata.iptc.Headline === 'string') {
176
183
  metadata.title = fullMetadata.iptc.Headline;
177
184
  }
178
- if ((_d = fullMetadata === null || fullMetadata === void 0 ? void 0 : fullMetadata.iptc) === null || _d === void 0 ? void 0 : _d.Keywords) {
185
+ if (fullMetadata?.iptc?.Keywords) {
179
186
  metadata.tags = fullMetadata.iptc.Keywords;
180
187
  }
181
- if (allowList === '*' || (allowList === null || allowList === void 0 ? void 0 : allowList[0]) === '*') {
188
+ if (allowList === '*' || allowList?.[0] === '*') {
182
189
  metadata.metadata = fullMetadata;
183
190
  }
184
191
  else {
@@ -201,9 +208,8 @@ class FilesService extends items_1.ItemsService {
201
208
  * Import a single file from an external URL
202
209
  */
203
210
  async importOne(importURL, body) {
204
- var _a, _b, _c;
205
- const fileCreatePermissions = (_b = (_a = this.accountability) === null || _a === void 0 ? void 0 : _a.permissions) === null || _b === void 0 ? void 0 : _b.find((permission) => permission.collection === 'directus_files' && permission.action === 'create');
206
- if (this.accountability && ((_c = this.accountability) === null || _c === void 0 ? void 0 : _c.admin) !== true && !fileCreatePermissions) {
211
+ const fileCreatePermissions = this.accountability?.permissions?.find((permission) => permission.collection === 'directus_files' && permission.action === 'create');
212
+ if (this.accountability && this.accountability?.admin !== true && !fileCreatePermissions) {
207
213
  throw new exceptions_1.ForbiddenException();
208
214
  }
209
215
  let fileResponse;
@@ -265,7 +271,7 @@ class FilesService extends items_1.ItemsService {
265
271
  await disk.delete(filepath);
266
272
  }
267
273
  }
268
- if (this.cache && env_1.default.CACHE_AUTO_PURGE && (opts === null || opts === void 0 ? void 0 : opts.autoPurgeCache) !== false) {
274
+ if (this.cache && env_1.default.CACHE_AUTO_PURGE && opts?.autoPurgeCache !== false) {
269
275
  await this.cache.clear();
270
276
  }
271
277
  return keys;
@@ -1,5 +1,5 @@
1
- import { FlowRaw } from '@directus/shared/types';
2
- import { AbstractServiceOptions, Item, MutationOptions, PrimaryKey } from '../types';
1
+ import type { FlowRaw } from '@directus/shared/types';
2
+ import type { AbstractServiceOptions, Item, MutationOptions, PrimaryKey } from '../types';
3
3
  import { ItemsService } from './items';
4
4
  export declare class FlowsService extends ItemsService<FlowRaw> {
5
5
  constructor(options: AbstractServiceOptions);
@@ -1,4 +1,4 @@
1
- import { AbstractServiceOptions } from '../types';
1
+ import type { AbstractServiceOptions } from '../types';
2
2
  import { ItemsService } from './items';
3
3
  export declare class FoldersService extends ItemsService {
4
4
  constructor(options: AbstractServiceOptions);
@@ -1,9 +1,9 @@
1
- import { BaseException } from '@directus/shared/exceptions';
1
+ import type { BaseException } from '@directus/shared/exceptions';
2
2
  import { Accountability, Filter, Query, SchemaOverview } from '@directus/shared/types';
3
3
  import { ArgumentNode, FormattedExecutionResult, FragmentDefinitionNode, GraphQLError, GraphQLResolveInfo, GraphQLSchema, SelectionNode } from 'graphql';
4
4
  import { ObjectTypeComposer, SchemaComposer } from 'graphql-compose';
5
- import { Knex } from 'knex';
6
- import { AbstractServiceOptions, GraphQLParams, Item } from '../../types';
5
+ import type { Knex } from 'knex';
6
+ import type { AbstractServiceOptions, GraphQLParams, Item } from '../../types';
7
7
  import { ItemsService } from '../items';
8
8
  export declare class GraphQLService {
9
9
  accountability: Accountability | null;
@@ -57,7 +57,7 @@ export declare class GraphQLService {
57
57
  /**
58
58
  * Replace functions from GraphQL format to Directus-Filter format
59
59
  */
60
- replaceFuncs(filter?: Filter | null): null | undefined | Filter;
60
+ replaceFuncs(filter: Filter): Filter;
61
61
  /**
62
62
  * Convert Directus-Exception into a GraphQL format, so it can be returned by GraphQL properly.
63
63
  */