directus 9.22.4 → 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 (404) hide show
  1. package/dist/app.js +19 -14
  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 +2 -2
  5. package/dist/auth/drivers/ldap.js +47 -36
  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 +22 -15
  10. package/dist/auth/drivers/openid.d.ts +1 -1
  11. package/dist/auth/drivers/openid.js +23 -16
  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 +59 -16
  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 +21 -20
  21. package/dist/cli/commands/schema/snapshot.js +2 -2
  22. package/dist/cli/utils/create-db-connection.d.ts +2 -1
  23. package/dist/cli/utils/create-db-connection.js +2 -1
  24. package/dist/cli/utils/create-env/env-stub.liquid +1 -1
  25. package/dist/cli/utils/create-env/index.d.ts +2 -2
  26. package/dist/cli/utils/drivers.d.ts +3 -9
  27. package/dist/constants.d.ts +3 -9
  28. package/dist/constants.js +5 -10
  29. package/dist/controllers/activity.js +1 -2
  30. package/dist/controllers/assets.js +17 -12
  31. package/dist/controllers/auth.js +29 -15
  32. package/dist/controllers/dashboards.js +5 -2
  33. package/dist/controllers/extensions.js +7 -7
  34. package/dist/controllers/fields.js +4 -4
  35. package/dist/controllers/files.js +11 -6
  36. package/dist/controllers/flows.js +5 -2
  37. package/dist/controllers/folders.js +5 -2
  38. package/dist/controllers/graphql.js +6 -0
  39. package/dist/controllers/items.js +5 -2
  40. package/dist/controllers/not-found.d.ts +1 -1
  41. package/dist/controllers/not-found.js +1 -2
  42. package/dist/controllers/notifications.js +5 -2
  43. package/dist/controllers/operations.js +5 -2
  44. package/dist/controllers/panels.js +5 -2
  45. package/dist/controllers/permissions.js +5 -2
  46. package/dist/controllers/presets.js +5 -2
  47. package/dist/controllers/roles.js +5 -2
  48. package/dist/controllers/schema.d.ts +2 -0
  49. package/dist/controllers/schema.js +98 -0
  50. package/dist/controllers/shares.js +8 -5
  51. package/dist/controllers/users.js +16 -20
  52. package/dist/controllers/utils.js +6 -11
  53. package/dist/controllers/webhooks.js +5 -2
  54. package/dist/database/helpers/fn/dialects/mssql.d.ts +1 -1
  55. package/dist/database/helpers/fn/dialects/mssql.js +10 -11
  56. package/dist/database/helpers/fn/dialects/mysql.d.ts +1 -1
  57. package/dist/database/helpers/fn/dialects/mysql.js +2 -3
  58. package/dist/database/helpers/fn/dialects/oracle.d.ts +1 -1
  59. package/dist/database/helpers/fn/dialects/oracle.js +10 -11
  60. package/dist/database/helpers/fn/dialects/postgres.d.ts +1 -1
  61. package/dist/database/helpers/fn/dialects/postgres.js +10 -11
  62. package/dist/database/helpers/fn/dialects/sqlite.d.ts +1 -1
  63. package/dist/database/helpers/fn/dialects/sqlite.js +10 -11
  64. package/dist/database/helpers/fn/types.d.ts +5 -5
  65. package/dist/database/helpers/fn/types.js +5 -4
  66. package/dist/database/helpers/geometry/dialects/mssql.d.ts +3 -3
  67. package/dist/database/helpers/geometry/dialects/mysql.d.ts +1 -1
  68. package/dist/database/helpers/geometry/dialects/oracle.d.ts +3 -3
  69. package/dist/database/helpers/geometry/dialects/postgres.d.ts +3 -3
  70. package/dist/database/helpers/geometry/dialects/postgres.js +1 -2
  71. package/dist/database/helpers/geometry/dialects/redshift.d.ts +2 -2
  72. package/dist/database/helpers/geometry/dialects/sqlite.d.ts +1 -1
  73. package/dist/database/helpers/geometry/types.d.ts +2 -2
  74. package/dist/database/helpers/geometry/types.js +1 -2
  75. package/dist/database/helpers/index.d.ts +5 -5
  76. package/dist/database/helpers/schema/dialects/cockroachdb.d.ts +2 -2
  77. package/dist/database/helpers/schema/dialects/mssql.d.ts +1 -1
  78. package/dist/database/helpers/schema/dialects/mysql.d.ts +1 -1
  79. package/dist/database/helpers/schema/dialects/mysql.js +1 -2
  80. package/dist/database/helpers/schema/dialects/oracle.d.ts +5 -2
  81. package/dist/database/helpers/schema/dialects/oracle.js +23 -0
  82. package/dist/database/helpers/schema/types.d.ts +9 -7
  83. package/dist/database/helpers/schema/types.js +7 -1
  84. package/dist/database/helpers/types.d.ts +1 -1
  85. package/dist/database/helpers/types.js +1 -0
  86. package/dist/database/index.d.ts +2 -1
  87. package/dist/database/index.js +8 -8
  88. package/dist/database/migrations/20201028A-remove-collection-foreign-keys.d.ts +1 -1
  89. package/dist/database/migrations/20201029A-remove-system-relations.d.ts +1 -1
  90. package/dist/database/migrations/20201029B-remove-system-collections.d.ts +1 -1
  91. package/dist/database/migrations/20201029C-remove-system-fields.d.ts +1 -1
  92. package/dist/database/migrations/20201105A-add-cascade-system-relations.d.ts +1 -1
  93. package/dist/database/migrations/20201105B-change-webhook-url-type.d.ts +1 -1
  94. package/dist/database/migrations/20210225A-add-relations-sort-field.d.ts +1 -1
  95. package/dist/database/migrations/20210225A-add-relations-sort-field.js +1 -2
  96. package/dist/database/migrations/20210304A-remove-locked-fields.d.ts +1 -1
  97. package/dist/database/migrations/20210312A-webhooks-collections-text.d.ts +1 -1
  98. package/dist/database/migrations/20210331A-add-refresh-interval.d.ts +1 -1
  99. package/dist/database/migrations/20210415A-make-filesize-nullable.d.ts +1 -1
  100. package/dist/database/migrations/20210416A-add-collections-accountability.d.ts +1 -1
  101. package/dist/database/migrations/20210422A-remove-files-interface.d.ts +1 -1
  102. package/dist/database/migrations/20210506A-rename-interfaces.d.ts +1 -1
  103. package/dist/database/migrations/20210510A-restructure-relations.d.ts +1 -1
  104. package/dist/database/migrations/20210518A-add-foreign-key-constraints.d.ts +1 -1
  105. package/dist/database/migrations/20210518A-add-foreign-key-constraints.js +1 -1
  106. package/dist/database/migrations/20210519A-add-system-fk-triggers.d.ts +1 -1
  107. package/dist/database/migrations/20210519A-add-system-fk-triggers.js +2 -2
  108. package/dist/database/migrations/20210521A-add-collections-icon-color.d.ts +1 -1
  109. package/dist/database/migrations/20210525A-add-insights.d.ts +1 -1
  110. package/dist/database/migrations/20210608A-add-deep-clone-config.d.ts +1 -1
  111. package/dist/database/migrations/20210626A-change-filesize-bigint.d.ts +1 -1
  112. package/dist/database/migrations/20210716A-add-conditions-to-fields.d.ts +1 -1
  113. package/dist/database/migrations/20210721A-add-default-folder.d.ts +1 -1
  114. package/dist/database/migrations/20210802A-replace-groups.d.ts +1 -1
  115. package/dist/database/migrations/20210803A-add-required-to-fields.d.ts +1 -1
  116. package/dist/database/migrations/20210805A-update-groups.d.ts +1 -1
  117. package/dist/database/migrations/20210805B-change-image-metadata-structure.d.ts +1 -1
  118. package/dist/database/migrations/20210811A-add-geometry-config.d.ts +1 -1
  119. package/dist/database/migrations/20210831A-remove-limit-column.d.ts +1 -1
  120. package/dist/database/migrations/20210903A-add-auth-provider.d.ts +1 -1
  121. package/dist/database/migrations/20210907A-webhooks-collections-not-null.d.ts +1 -1
  122. package/dist/database/migrations/20210910A-move-module-setup.d.ts +1 -1
  123. package/dist/database/migrations/20210920A-webhooks-url-not-null.d.ts +1 -1
  124. package/dist/database/migrations/20210924A-add-collection-organization.d.ts +1 -1
  125. package/dist/database/migrations/20210927A-replace-fields-group.d.ts +1 -1
  126. package/dist/database/migrations/20210927B-replace-m2m-interface.d.ts +1 -1
  127. package/dist/database/migrations/20210929A-rename-login-action.d.ts +1 -1
  128. package/dist/database/migrations/20211007A-update-presets.d.ts +1 -1
  129. package/dist/database/migrations/20211007A-update-presets.js +7 -9
  130. package/dist/database/migrations/20211009A-add-auth-data.d.ts +1 -1
  131. package/dist/database/migrations/20211016A-add-webhook-headers.d.ts +1 -1
  132. package/dist/database/migrations/20211103A-set-unique-to-user-token.d.ts +1 -1
  133. package/dist/database/migrations/20211103B-update-special-geometry.d.ts +1 -1
  134. package/dist/database/migrations/20211104A-remove-collections-listing.d.ts +1 -1
  135. package/dist/database/migrations/20211118A-add-notifications.d.ts +1 -1
  136. package/dist/database/migrations/20211211A-add-shares.d.ts +1 -1
  137. package/dist/database/migrations/20211230A-add-project-descriptor.d.ts +1 -1
  138. package/dist/database/migrations/20220303A-remove-default-project-color.d.ts +1 -1
  139. package/dist/database/migrations/20220308A-add-bookmark-icon-and-color.d.ts +1 -1
  140. package/dist/database/migrations/20220314A-add-translation-strings.d.ts +1 -1
  141. package/dist/database/migrations/20220322A-rename-field-typecast-flags.d.ts +1 -1
  142. package/dist/database/migrations/20220323A-add-field-validation.d.ts +1 -1
  143. package/dist/database/migrations/20220325A-fix-typecast-flags.d.ts +1 -1
  144. package/dist/database/migrations/20220325B-add-default-language.d.ts +1 -1
  145. package/dist/database/migrations/20220402A-remove-default-value-panel-icon.d.ts +1 -1
  146. package/dist/database/migrations/20220429A-add-flows.d.ts +1 -1
  147. package/dist/database/migrations/20220429B-add-color-to-insights-icon.d.ts +1 -1
  148. package/dist/database/migrations/20220429C-drop-non-null-from-ip-of-activity.d.ts +1 -1
  149. package/dist/database/migrations/20220429D-drop-non-null-from-sender-of-notifications.d.ts +1 -1
  150. package/dist/database/migrations/20220614A-rename-hook-trigger-to-event.d.ts +1 -1
  151. package/dist/database/migrations/20220801A-update-notifications-timestamp-column.d.ts +1 -1
  152. package/dist/database/migrations/20220802A-add-custom-aspect-ratios.d.ts +1 -1
  153. package/dist/database/migrations/20220826A-add-origin-to-accountability.d.ts +1 -1
  154. package/dist/database/migrations/run.d.ts +1 -1
  155. package/dist/database/run-ast.d.ts +3 -3
  156. package/dist/database/run-ast.js +19 -28
  157. package/dist/database/seeds/run.d.ts +1 -1
  158. package/dist/database/seeds/run.js +1 -2
  159. package/dist/database/system-data/app-access-permissions/index.d.ts +1 -1
  160. package/dist/database/system-data/collections/index.d.ts +1 -1
  161. package/dist/database/system-data/fields/collections.yaml +2 -0
  162. package/dist/database/system-data/fields/index.d.ts +1 -1
  163. package/dist/database/system-data/fields/index.js +1 -2
  164. package/dist/database/system-data/fields/settings.yaml +4 -0
  165. package/dist/database/system-data/relations/index.d.ts +1 -1
  166. package/dist/emitter.d.ts +1 -1
  167. package/dist/emitter.js +3 -0
  168. package/dist/env.js +19 -4
  169. package/dist/exceptions/database/dialects/mssql.d.ts +1 -1
  170. package/dist/exceptions/database/dialects/mssql.js +5 -6
  171. package/dist/exceptions/database/dialects/mysql.d.ts +1 -1
  172. package/dist/exceptions/database/dialects/mysql.js +19 -25
  173. package/dist/exceptions/database/dialects/oracle.d.ts +1 -1
  174. package/dist/exceptions/database/dialects/postgres.d.ts +1 -1
  175. package/dist/exceptions/database/dialects/sqlite.d.ts +1 -1
  176. package/dist/exceptions/database/translate.d.ts +1 -1
  177. package/dist/exceptions/database/value-out-of-range.js +1 -1
  178. package/dist/exceptions/range-not-satisfiable.js +2 -3
  179. package/dist/extensions.d.ts +1 -1
  180. package/dist/extensions.js +34 -24
  181. package/dist/flows.js +56 -30
  182. package/dist/logger.d.ts +1 -1
  183. package/dist/logger.js +19 -3
  184. package/dist/messenger.js +8 -6
  185. package/dist/middleware/authenticate.d.ts +1 -1
  186. package/dist/middleware/authenticate.js +12 -5
  187. package/dist/middleware/cache.d.ts +1 -1
  188. package/dist/middleware/cache.js +7 -7
  189. package/dist/middleware/check-ip.d.ts +1 -1
  190. package/dist/middleware/check-ip.js +1 -1
  191. package/dist/middleware/collection-exists.d.ts +1 -1
  192. package/dist/middleware/collection-exists.js +2 -2
  193. package/dist/middleware/cors.d.ts +1 -1
  194. package/dist/middleware/error-handler.d.ts +1 -1
  195. package/dist/middleware/error-handler.js +9 -10
  196. package/dist/middleware/extract-token.d.ts +1 -1
  197. package/dist/middleware/get-permissions.d.ts +1 -1
  198. package/dist/middleware/graphql.d.ts +1 -1
  199. package/dist/middleware/graphql.js +3 -3
  200. package/dist/middleware/rate-limiter-global.d.ts +5 -0
  201. package/dist/middleware/rate-limiter-global.js +48 -0
  202. package/dist/middleware/{rate-limiter.d.ts → rate-limiter-ip.d.ts} +2 -2
  203. package/dist/middleware/{rate-limiter.js → rate-limiter-ip.js} +3 -3
  204. package/dist/middleware/respond.d.ts +1 -1
  205. package/dist/middleware/respond.js +18 -14
  206. package/dist/middleware/sanitize-query.d.ts +1 -1
  207. package/dist/middleware/schema.d.ts +1 -1
  208. package/dist/middleware/use-collection.d.ts +1 -1
  209. package/dist/operations/condition/index.d.ts +1 -1
  210. package/dist/operations/exec/index.js +14 -3
  211. package/dist/operations/item-create/index.js +1 -2
  212. package/dist/operations/item-delete/index.d.ts +1 -1
  213. package/dist/operations/item-read/index.d.ts +1 -1
  214. package/dist/operations/item-update/index.d.ts +1 -1
  215. package/dist/operations/item-update/index.js +1 -2
  216. package/dist/operations/notification/index.js +1 -2
  217. package/dist/operations/request/index.js +21 -20
  218. package/dist/operations/trigger/index.d.ts +2 -0
  219. package/dist/operations/trigger/index.js +27 -11
  220. package/dist/rate-limiter.d.ts +1 -1
  221. package/dist/rate-limiter.js +8 -8
  222. package/dist/request/index.d.ts +5 -0
  223. package/dist/request/index.js +18 -0
  224. package/dist/request/index.test.d.ts +1 -0
  225. package/dist/request/request-interceptor.d.ts +2 -0
  226. package/dist/request/request-interceptor.js +33 -0
  227. package/dist/request/request-interceptor.test.d.ts +1 -0
  228. package/dist/request/response-interceptor.d.ts +2 -0
  229. package/dist/request/response-interceptor.js +9 -0
  230. package/dist/request/response-interceptor.test.d.ts +1 -0
  231. package/dist/request/validate-ip.d.ts +1 -0
  232. package/dist/request/validate-ip.js +27 -0
  233. package/dist/request/validate-ip.test.d.ts +1 -0
  234. package/dist/server.js +8 -9
  235. package/dist/services/activity.d.ts +1 -1
  236. package/dist/services/activity.js +7 -6
  237. package/dist/services/assets.d.ts +3 -3
  238. package/dist/services/assets.js +33 -26
  239. package/dist/services/authentication.d.ts +2 -2
  240. package/dist/services/authentication.js +18 -15
  241. package/dist/services/authorization.d.ts +3 -3
  242. package/dist/services/authorization.js +27 -31
  243. package/dist/services/collections.d.ts +5 -5
  244. package/dist/services/collections.js +52 -48
  245. package/dist/services/dashboards.d.ts +1 -1
  246. package/dist/services/fields.d.ts +5 -5
  247. package/dist/services/fields.js +49 -48
  248. package/dist/services/files.d.ts +1 -2
  249. package/dist/services/files.js +70 -108
  250. package/dist/services/flows.d.ts +2 -2
  251. package/dist/services/folders.d.ts +1 -1
  252. package/dist/services/graphql/index.d.ts +4 -4
  253. package/dist/services/graphql/index.js +181 -170
  254. package/dist/services/graphql/utils/add-path-to-validation-error.js +1 -2
  255. package/dist/services/graphql/utils/process-error.d.ts +2 -2
  256. package/dist/services/graphql/utils/process-error.js +29 -9
  257. package/dist/services/import-export.d.ts +7 -5
  258. package/dist/services/import-export.js +41 -24
  259. package/dist/services/import-export.test.d.ts +1 -0
  260. package/dist/services/index.d.ts +1 -0
  261. package/dist/services/index.js +1 -0
  262. package/dist/services/items.d.ts +3 -3
  263. package/dist/services/items.js +67 -42
  264. package/dist/services/mail/index.d.ts +4 -4
  265. package/dist/services/mail/index.js +9 -5
  266. package/dist/services/meta.d.ts +3 -3
  267. package/dist/services/meta.js +10 -9
  268. package/dist/services/notifications.d.ts +3 -3
  269. package/dist/services/notifications.js +7 -6
  270. package/dist/services/operations.d.ts +2 -2
  271. package/dist/services/panels.d.ts +1 -1
  272. package/dist/services/payload.d.ts +3 -3
  273. package/dist/services/payload.js +124 -122
  274. package/dist/services/permissions.d.ts +3 -3
  275. package/dist/services/permissions.js +11 -11
  276. package/dist/services/presets.d.ts +1 -1
  277. package/dist/services/relations.d.ts +6 -6
  278. package/dist/services/relations.js +47 -43
  279. package/dist/services/revisions.d.ts +1 -1
  280. package/dist/services/roles.d.ts +2 -2
  281. package/dist/services/roles.js +34 -13
  282. package/dist/services/schema.d.ts +15 -0
  283. package/dist/services/schema.js +56 -0
  284. package/dist/services/schema.test.d.ts +1 -0
  285. package/dist/services/server.d.ts +3 -3
  286. package/dist/services/server.js +69 -13
  287. package/dist/services/settings.d.ts +1 -1
  288. package/dist/services/shares.d.ts +2 -2
  289. package/dist/services/shares.js +14 -15
  290. package/dist/services/specifications.d.ts +4 -4
  291. package/dist/services/specifications.js +132 -116
  292. package/dist/services/tfa.d.ts +2 -2
  293. package/dist/services/tfa.js +7 -5
  294. package/dist/services/users.d.ts +3 -3
  295. package/dist/services/users.js +89 -62
  296. package/dist/services/utils.d.ts +3 -3
  297. package/dist/services/utils.js +10 -8
  298. package/dist/services/webhooks.d.ts +2 -2
  299. package/dist/services/webhooks.js +2 -1
  300. package/dist/types/assets.d.ts +2 -2
  301. package/dist/types/ast.d.ts +1 -1
  302. package/dist/types/auth.d.ts +2 -2
  303. package/dist/types/collection.d.ts +2 -2
  304. package/dist/types/database.d.ts +3 -0
  305. package/dist/types/database.js +4 -0
  306. package/dist/types/events.d.ts +2 -2
  307. package/dist/types/graphql.d.ts +2 -2
  308. package/dist/types/index.d.ts +1 -0
  309. package/dist/types/index.js +1 -0
  310. package/dist/types/items.d.ts +7 -2
  311. package/dist/types/services.d.ts +5 -5
  312. package/dist/types/snapshot.d.ts +25 -3
  313. package/dist/types/snapshot.js +14 -0
  314. package/dist/utils/apply-diff.d.ts +9 -0
  315. package/dist/utils/apply-diff.js +256 -0
  316. package/dist/utils/apply-diff.test.d.ts +1 -0
  317. package/dist/utils/apply-query.d.ts +3 -3
  318. package/dist/utils/apply-query.js +15 -16
  319. package/dist/utils/apply-snapshot.d.ts +3 -5
  320. package/dist/utils/apply-snapshot.js +9 -240
  321. package/dist/utils/construct-flow-tree.d.ts +1 -1
  322. package/dist/utils/construct-flow-tree.js +2 -2
  323. package/dist/utils/filter-items.d.ts +1 -1
  324. package/dist/utils/get-accountability-for-role.d.ts +2 -2
  325. package/dist/utils/get-accountability-for-role.js +1 -1
  326. package/dist/utils/get-ast-from-query.d.ts +3 -3
  327. package/dist/utils/get-ast-from-query.js +22 -28
  328. package/dist/utils/get-cache-headers.d.ts +4 -2
  329. package/dist/utils/get-cache-headers.js +21 -21
  330. package/dist/utils/get-cache-headers.test.d.ts +1 -0
  331. package/dist/utils/get-cache-key.d.ts +1 -1
  332. package/dist/utils/get-cache-key.js +2 -3
  333. package/dist/utils/get-collection-from-alias.d.ts +1 -1
  334. package/dist/utils/get-column-path.d.ts +2 -2
  335. package/dist/utils/get-column-path.js +3 -4
  336. package/dist/utils/get-column.d.ts +4 -4
  337. package/dist/utils/get-column.js +4 -5
  338. package/dist/utils/get-default-value.d.ts +2 -2
  339. package/dist/utils/get-default-value.js +1 -2
  340. package/dist/utils/get-graphql-query-and-variables.d.ts +1 -1
  341. package/dist/utils/get-graphql-query-and-variables.js +1 -2
  342. package/dist/utils/get-graphql-type.d.ts +2 -2
  343. package/dist/utils/get-graphql-type.js +1 -1
  344. package/dist/utils/get-ip-from-req.d.ts +1 -1
  345. package/dist/utils/get-local-type.d.ts +1 -1
  346. package/dist/utils/get-local-type.js +3 -3
  347. package/dist/utils/get-milliseconds.d.ts +4 -0
  348. package/dist/utils/get-milliseconds.js +14 -0
  349. package/dist/utils/get-milliseconds.test.d.ts +1 -0
  350. package/dist/utils/get-permissions.d.ts +1 -1
  351. package/dist/utils/get-permissions.js +1 -1
  352. package/dist/utils/get-relation-info.d.ts +1 -1
  353. package/dist/utils/get-relation-info.js +3 -5
  354. package/dist/utils/get-relation-type.d.ts +1 -1
  355. package/dist/utils/get-relation-type.js +3 -4
  356. package/dist/utils/get-schema.d.ts +2 -2
  357. package/dist/utils/get-schema.js +19 -21
  358. package/dist/utils/get-snapshot-diff.js +10 -7
  359. package/dist/utils/get-snapshot.d.ts +3 -3
  360. package/dist/utils/get-snapshot.js +35 -14
  361. package/dist/utils/get-versioned-hash.d.ts +1 -0
  362. package/dist/utils/get-versioned-hash.js +12 -0
  363. package/dist/utils/get-versioned-hash.test.d.ts +1 -0
  364. package/dist/utils/is-directus-jwt.js +1 -1
  365. package/dist/utils/job-queue.js +2 -0
  366. package/dist/utils/jwt.d.ts +1 -1
  367. package/dist/utils/map-values-deep.d.ts +1 -0
  368. package/dist/utils/map-values-deep.js +29 -0
  369. package/dist/utils/map-values-deep.test.d.ts +1 -0
  370. package/dist/utils/merge-permissions-for-share.d.ts +1 -1
  371. package/dist/utils/merge-permissions-for-share.js +3 -4
  372. package/dist/utils/merge-permissions.d.ts +3 -3
  373. package/dist/utils/redact-header-cookies.d.ts +1 -0
  374. package/dist/utils/redact-header-cookies.js +11 -0
  375. package/dist/utils/redact-header-cookies.test.d.ts +1 -0
  376. package/dist/utils/reduce-schema.d.ts +1 -1
  377. package/dist/utils/reduce-schema.js +12 -12
  378. package/dist/utils/sanitize-query.d.ts +1 -1
  379. package/dist/utils/sanitize-query.js +1 -1
  380. package/dist/utils/sanitize-schema.d.ts +30 -0
  381. package/dist/utils/sanitize-schema.js +80 -0
  382. package/dist/utils/sanitize-schema.test.d.ts +1 -0
  383. package/dist/utils/should-skip-cache.d.ts +7 -0
  384. package/dist/utils/should-skip-cache.js +21 -0
  385. package/dist/utils/should-skip-cache.test.d.ts +1 -0
  386. package/dist/utils/track.js +3 -3
  387. package/dist/utils/transformations.d.ts +1 -1
  388. package/dist/utils/transformations.js +2 -4
  389. package/dist/utils/url.js +9 -8
  390. package/dist/utils/url.test.d.ts +1 -0
  391. package/dist/utils/user-name.d.ts +1 -1
  392. package/dist/utils/validate-diff.d.ts +7 -0
  393. package/dist/utils/validate-diff.js +113 -0
  394. package/dist/utils/validate-diff.test.d.ts +1 -0
  395. package/dist/utils/validate-keys.d.ts +2 -2
  396. package/dist/utils/validate-keys.js +1 -1
  397. package/dist/utils/validate-query.d.ts +1 -1
  398. package/dist/utils/validate-query.js +3 -3
  399. package/dist/utils/validate-query.test.d.ts +1 -0
  400. package/dist/utils/validate-snapshot.d.ts +5 -0
  401. package/dist/utils/validate-snapshot.js +71 -0
  402. package/dist/utils/validate-snapshot.test.d.ts +1 -0
  403. package/dist/webhooks.js +4 -3
  404. package/package.json +62 -62
@@ -4,6 +4,8 @@ exports.FnHelper = void 0;
4
4
  const apply_query_1 = require("../../../utils/apply-query");
5
5
  const types_1 = require("../types");
6
6
  class FnHelper extends types_1.DatabaseHelper {
7
+ knex;
8
+ schema;
7
9
  constructor(knex, schema) {
8
10
  super(knex);
9
11
  this.knex = knex;
@@ -11,9 +13,8 @@ class FnHelper extends types_1.DatabaseHelper {
11
13
  this.schema = schema;
12
14
  }
13
15
  _relationalCount(table, column, options) {
14
- var _a;
15
- const collectionName = (options === null || options === void 0 ? void 0 : options.originalCollectionName) || table;
16
- const relation = this.schema.relations.find((relation) => { var _a; return relation.related_collection === collectionName && ((_a = relation === null || relation === void 0 ? void 0 : relation.meta) === null || _a === void 0 ? void 0 : _a.one_field) === column; });
16
+ const collectionName = options?.originalCollectionName || table;
17
+ const relation = this.schema.relations.find((relation) => relation.related_collection === collectionName && relation?.meta?.one_field === column);
17
18
  const currentPrimary = this.schema.collections[collectionName].primary;
18
19
  if (!relation) {
19
20
  throw new Error(`Field ${collectionName}.${column} isn't a nested relational collection`);
@@ -22,7 +23,7 @@ class FnHelper extends types_1.DatabaseHelper {
22
23
  .count('*')
23
24
  .from(relation.collection)
24
25
  .where(relation.field, '=', this.knex.raw(`??.??`, [table, currentPrimary]));
25
- if ((_a = options === null || options === void 0 ? void 0 : options.query) === null || _a === void 0 ? void 0 : _a.filter) {
26
+ if (options?.query?.filter) {
26
27
  countQuery = (0, apply_query_1.applyFilter)(this.knex, this.schema, countQuery, options.query.filter, relation.collection, {}).query;
27
28
  }
28
29
  return this.knex.raw('(' + countQuery.toQuery() + ')');
@@ -1,7 +1,7 @@
1
+ import type { Field, RawField } from '@directus/shared/types';
2
+ import type { Knex } from 'knex';
3
+ import type { GeoJSONGeometry } from 'wellknown';
1
4
  import { GeometryHelper } from '../types';
2
- import { Field, RawField } from '@directus/shared/types';
3
- import { GeoJSONGeometry } from 'wellknown';
4
- import { Knex } from 'knex';
5
5
  export declare class GeometryHelperMSSQL extends GeometryHelper {
6
6
  isTrue(expression: Knex.Raw): Knex.Raw<any>;
7
7
  isFalse(expression: Knex.Raw): Knex.Raw<any>;
@@ -1,5 +1,5 @@
1
+ import type { Knex } from 'knex';
1
2
  import { GeometryHelper } from '../types';
2
- import { Knex } from 'knex';
3
3
  export declare class GeometryHelperMySQL extends GeometryHelper {
4
4
  collect(table: string, column: string): Knex.Raw;
5
5
  fromText(text: string): Knex.Raw;
@@ -1,7 +1,7 @@
1
+ import type { Field, RawField } from '@directus/shared/types';
2
+ import type { Knex } from 'knex';
3
+ import type { GeoJSONGeometry } from 'wellknown';
1
4
  import { GeometryHelper } from '../types';
2
- import { Field, RawField } from '@directus/shared/types';
3
- import { GeoJSONGeometry } from 'wellknown';
4
- import { Knex } from 'knex';
5
5
  export declare class GeometryHelperOracle extends GeometryHelper {
6
6
  isTrue(expression: Knex.Raw): Knex.Raw<any>;
7
7
  isFalse(expression: Knex.Raw): Knex.Raw<any>;
@@ -1,7 +1,7 @@
1
+ import type { Field, RawField } from '@directus/shared/types';
2
+ import type { Knex } from 'knex';
3
+ import type { GeoJSONGeometry } from 'wellknown';
1
4
  import { GeometryHelper } from '../types';
2
- import { Field, RawField } from '@directus/shared/types';
3
- import { GeoJSONGeometry } from 'wellknown';
4
- import { Knex } from 'knex';
5
5
  export declare class GeometryHelperPostgres extends GeometryHelper {
6
6
  supported(): Promise<boolean>;
7
7
  createColumn(table: Knex.CreateTableBuilder, field: RawField | Field): Knex.ColumnBuilder;
@@ -8,8 +8,7 @@ class GeometryHelperPostgres extends types_1.GeometryHelper {
8
8
  return res.length > 0;
9
9
  }
10
10
  createColumn(table, field) {
11
- var _a;
12
- const type = (_a = field.type.split('.')[1]) !== null && _a !== void 0 ? _a : 'geometry';
11
+ const type = field.type.split('.')[1] ?? 'geometry';
13
12
  return table.specificType(field.field, `geometry(${type}, 4326)`);
14
13
  }
15
14
  _intersects_bbox(key, geojson) {
@@ -1,6 +1,6 @@
1
+ import type { Field, RawField } from '@directus/shared/types';
2
+ import type { Knex } from 'knex';
1
3
  import { GeometryHelper } from '../types';
2
- import { Field, RawField } from '@directus/shared/types';
3
- import { Knex } from 'knex';
4
4
  export declare class GeometryHelperRedshift extends GeometryHelper {
5
5
  createColumn(table: Knex.CreateTableBuilder, field: RawField | Field): Knex.ColumnBuilder;
6
6
  asGeoJSON(table: string, column: string): Knex.Raw;
@@ -1,5 +1,5 @@
1
+ import type { Knex } from 'knex';
1
2
  import { GeometryHelper } from '../types';
2
- import { Knex } from 'knex';
3
3
  export declare class GeometryHelperSQLite extends GeometryHelper {
4
4
  supported(): Promise<boolean>;
5
5
  asGeoJSON(table: string, column: string): Knex.Raw;
@@ -1,7 +1,7 @@
1
+ import type { Field, RawField } from '@directus/shared/types';
2
+ import type { Knex } from 'knex';
1
3
  import { GeoJSONGeometry } from 'wellknown';
2
- import { Field, RawField } from '@directus/shared/types';
3
4
  import { DatabaseHelper } from '../types';
4
- import { Knex } from 'knex';
5
5
  export declare abstract class GeometryHelper extends DatabaseHelper {
6
6
  supported(): boolean | Promise<boolean>;
7
7
  isTrue(expression: Knex.Raw): Knex.Raw<any>;
@@ -14,8 +14,7 @@ class GeometryHelper extends types_1.DatabaseHelper {
14
14
  return expression.wrap('NOT ', '');
15
15
  }
16
16
  createColumn(table, field) {
17
- var _a;
18
- const type = (_a = field.type.split('.')[1]) !== null && _a !== void 0 ? _a : 'geometry';
17
+ const type = field.type.split('.')[1] ?? 'geometry';
19
18
  return table.specificType(field.field, type);
20
19
  }
21
20
  asText(table, column) {
@@ -1,13 +1,13 @@
1
- import { SchemaOverview } from '@directus/shared/types';
2
- import { Knex } from 'knex';
1
+ import type { SchemaOverview } from '@directus/shared/types';
2
+ import type { Knex } from 'knex';
3
3
  import * as dateHelpers from './date';
4
4
  import * as fnHelpers from './fn';
5
5
  import * as geometryHelpers from './geometry';
6
6
  import * as schemaHelpers from './schema';
7
7
  export declare function getHelpers(database: Knex): {
8
8
  date: dateHelpers.postgres | dateHelpers.oracle | dateHelpers.mysql | dateHelpers.mssql | dateHelpers.sqlite;
9
- st: geometryHelpers.sqlite | geometryHelpers.postgres | geometryHelpers.mysql | geometryHelpers.oracle | geometryHelpers.mssql | geometryHelpers.redshift;
10
- schema: schemaHelpers.sqlite | schemaHelpers.postgres | schemaHelpers.mysql | schemaHelpers.cockroachdb | schemaHelpers.oracle | schemaHelpers.mssql;
9
+ st: geometryHelpers.sqlite | geometryHelpers.postgres | geometryHelpers.mysql | geometryHelpers.mssql | geometryHelpers.oracle | geometryHelpers.redshift;
10
+ schema: schemaHelpers.sqlite | schemaHelpers.postgres | schemaHelpers.mysql | schemaHelpers.cockroachdb | schemaHelpers.mssql | schemaHelpers.oracle;
11
11
  };
12
- export declare function getFunctions(database: Knex, schema: SchemaOverview): fnHelpers.sqlite | fnHelpers.postgres | fnHelpers.mysql | fnHelpers.oracle | fnHelpers.mssql;
12
+ export declare function getFunctions(database: Knex, schema: SchemaOverview): fnHelpers.sqlite | fnHelpers.postgres | fnHelpers.mysql | fnHelpers.mssql | fnHelpers.oracle;
13
13
  export type Helpers = ReturnType<typeof getHelpers>;
@@ -1,6 +1,6 @@
1
- import { KNEX_TYPES } from '@directus/shared/constants';
1
+ import type { KNEX_TYPES } from '@directus/shared/constants';
2
2
  import { Options, SchemaHelper } from '../types';
3
3
  export declare class SchemaHelperCockroachDb extends SchemaHelper {
4
- changeToType(table: string, column: string, type: typeof KNEX_TYPES[number], options?: Options): Promise<void>;
4
+ changeToType(table: string, column: string, type: (typeof KNEX_TYPES)[number], options?: Options): Promise<void>;
5
5
  constraintName(existingName: string): string;
6
6
  }
@@ -1,4 +1,4 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  import { SchemaHelper } from '../types';
3
3
  export declare class SchemaHelperMSSQL extends SchemaHelper {
4
4
  applyLimit(rootQuery: Knex.QueryBuilder, limit: number): void;
@@ -1,4 +1,4 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  import { SchemaHelper } from '../types';
3
3
  export declare class SchemaHelperMySQL extends SchemaHelper {
4
4
  applyMultiRelationalSort(knex: Knex, dbQuery: Knex.QueryBuilder, table: string, primaryKey: string, orderByString: string, orderByFields: Knex.Raw[]): Knex.QueryBuilder;
@@ -5,8 +5,7 @@ const database_1 = require("../../../../database");
5
5
  const types_1 = require("../types");
6
6
  class SchemaHelperMySQL extends types_1.SchemaHelper {
7
7
  applyMultiRelationalSort(knex, dbQuery, table, primaryKey, orderByString, orderByFields) {
8
- var _a;
9
- if ((_a = (0, database_1.getDatabaseVersion)()) === null || _a === void 0 ? void 0 : _a.startsWith('5.7')) {
8
+ if ((0, database_1.getDatabaseVersion)()?.startsWith('5.7')) {
10
9
  dbQuery.orderByRaw(`?? asc, ${orderByString}`, [`${table}.${primaryKey}`, ...orderByFields]);
11
10
  dbQuery = knex
12
11
  .select(knex.raw(`??, ( @rank := IF ( @cur_id = deep.${primaryKey}, @rank + 1, 1 ) ) AS directus_row_number, ( @cur_id := deep.${primaryKey} ) AS current_id`, 'deep.*'))
@@ -1,6 +1,9 @@
1
- import { KNEX_TYPES } from '@directus/shared/constants';
1
+ import type { KNEX_TYPES } from '@directus/shared/constants';
2
+ import type { Field, Relation, Type } from '@directus/shared/types';
2
3
  import { Options, SchemaHelper } from '../types';
3
4
  export declare class SchemaHelperOracle extends SchemaHelper {
4
- changeToType(table: string, column: string, type: typeof KNEX_TYPES[number], options?: Options): Promise<void>;
5
+ changeToType(table: string, column: string, type: (typeof KNEX_TYPES)[number], options?: Options): Promise<void>;
5
6
  castA2oPrimaryKey(): string;
7
+ preRelationChange(relation: Partial<Relation>): void;
8
+ processFieldType(field: Field): Type;
6
9
  }
@@ -9,5 +9,28 @@ class SchemaHelperOracle extends types_1.SchemaHelper {
9
9
  castA2oPrimaryKey() {
10
10
  return 'CAST(?? AS VARCHAR2(255))';
11
11
  }
12
+ preRelationChange(relation) {
13
+ if (relation.collection === relation.related_collection) {
14
+ // Constraints are not allowed on self referencing relationships
15
+ // Setting NO ACTION throws - ORA-00905: missing keyword
16
+ if (relation.schema?.on_delete) {
17
+ relation.schema.on_delete = null;
18
+ }
19
+ }
20
+ }
21
+ processFieldType(field) {
22
+ if (field.type === 'integer') {
23
+ if (field.schema?.numeric_precision === 20) {
24
+ return 'bigInteger';
25
+ }
26
+ else if (field.schema?.numeric_precision === 1) {
27
+ return 'boolean';
28
+ }
29
+ else if (field.schema?.numeric_precision || field.schema?.numeric_scale) {
30
+ return 'decimal';
31
+ }
32
+ }
33
+ return field.type;
34
+ }
12
35
  }
13
36
  exports.SchemaHelperOracle = SchemaHelperOracle;
@@ -1,19 +1,22 @@
1
+ import type { KNEX_TYPES } from '@directus/shared/constants';
2
+ import type { Field, Relation, Type } from '@directus/shared/types';
3
+ import type { Knex } from 'knex';
4
+ import type { DatabaseClient } from '../../../types';
1
5
  import { DatabaseHelper } from '../types';
2
- import { KNEX_TYPES } from '@directus/shared/constants';
3
- import { Knex } from 'knex';
4
- type Clients = 'mysql' | 'postgres' | 'cockroachdb' | 'sqlite' | 'oracle' | 'mssql' | 'redshift';
5
6
  export type Options = {
6
7
  nullable?: boolean;
7
8
  default?: any;
8
9
  length?: number;
9
10
  };
10
11
  export declare abstract class SchemaHelper extends DatabaseHelper {
11
- isOneOfClients(clients: Clients[]): boolean;
12
+ isOneOfClients(clients: DatabaseClient[]): boolean;
12
13
  changeNullable(table: string, column: string, nullable: boolean): Promise<void>;
13
- changeToType(table: string, column: string, type: typeof KNEX_TYPES[number], options?: Options): Promise<void>;
14
- protected changeToTypeByCopy(table: string, column: string, type: typeof KNEX_TYPES[number], options: Options): Promise<void>;
14
+ changeToType(table: string, column: string, type: (typeof KNEX_TYPES)[number], options?: Options): Promise<void>;
15
+ protected changeToTypeByCopy(table: string, column: string, type: (typeof KNEX_TYPES)[number], options: Options): Promise<void>;
15
16
  preColumnChange(): Promise<boolean>;
16
17
  postColumnChange(): Promise<void>;
18
+ preRelationChange(_relation: Partial<Relation>): void;
19
+ processFieldType(field: Field): Type;
17
20
  constraintName(existingName: string): string;
18
21
  applyLimit(rootQuery: Knex.QueryBuilder, limit: number): void;
19
22
  applyOffset(rootQuery: Knex.QueryBuilder, offset: number): void;
@@ -21,4 +24,3 @@ export declare abstract class SchemaHelper extends DatabaseHelper {
21
24
  applyMultiRelationalSort(knex: Knex, dbQuery: Knex.QueryBuilder, table: string, primaryKey: string, orderByString: string, orderByFields: Knex.Raw[]): Knex.QueryBuilder;
22
25
  formatUUID(uuid: string): string;
23
26
  }
24
- export {};
@@ -62,6 +62,12 @@ class SchemaHelper extends types_1.DatabaseHelper {
62
62
  async postColumnChange() {
63
63
  return;
64
64
  }
65
+ preRelationChange(_relation) {
66
+ return;
67
+ }
68
+ processFieldType(field) {
69
+ return field.type;
70
+ }
65
71
  constraintName(existingName) {
66
72
  // most vendors allow for dropping/creating constraints with the same name
67
73
  // reference issue #14873
@@ -83,7 +89,7 @@ class SchemaHelper extends types_1.DatabaseHelper {
83
89
  return dbQuery;
84
90
  }
85
91
  formatUUID(uuid) {
86
- return uuid; // no-op by defaut
92
+ return uuid; // no-op by default
87
93
  }
88
94
  }
89
95
  exports.SchemaHelper = SchemaHelper;
@@ -1,4 +1,4 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare abstract class DatabaseHelper {
3
3
  protected knex: Knex;
4
4
  constructor(knex: Knex);
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DatabaseHelper = void 0;
4
4
  class DatabaseHelper {
5
+ knex;
5
6
  constructor(knex) {
6
7
  this.knex = knex;
7
8
  }
@@ -1,5 +1,6 @@
1
1
  import SchemaInspector from '@directus/schema';
2
2
  import { Knex } from 'knex';
3
+ import type { DatabaseClient } from '../types';
3
4
  export default function getDatabase(): Knex;
4
5
  export declare function getSchemaInspector(): ReturnType<typeof SchemaInspector>;
5
6
  /**
@@ -10,7 +11,7 @@ export declare function getSchemaInspector(): ReturnType<typeof SchemaInspector>
10
11
  export declare function getDatabaseVersion(): string | null;
11
12
  export declare function hasDatabaseConnection(database?: Knex): Promise<boolean>;
12
13
  export declare function validateDatabaseConnection(database?: Knex): Promise<void>;
13
- export declare function getDatabaseClient(database?: Knex): 'mysql' | 'postgres' | 'cockroachdb' | 'sqlite' | 'oracle' | 'mssql' | 'redshift';
14
+ export declare function getDatabaseClient(database?: Knex): DatabaseClient;
14
15
  export declare function isInstalled(): Promise<boolean>;
15
16
  export declare function validateMigrations(): Promise<boolean>;
16
17
  /**
@@ -5,16 +5,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.validateDatabaseExtensions = exports.validateMigrations = exports.isInstalled = exports.getDatabaseClient = exports.validateDatabaseConnection = exports.hasDatabaseConnection = exports.getDatabaseVersion = exports.getSchemaInspector = void 0;
7
7
  const schema_1 = __importDefault(require("@directus/schema"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
9
  const knex_1 = require("knex");
10
+ const lodash_1 = require("lodash");
11
+ const path_1 = __importDefault(require("path"));
9
12
  const perf_hooks_1 = require("perf_hooks");
13
+ const util_1 = require("util");
10
14
  const env_1 = __importDefault(require("../env"));
11
15
  const logger_1 = __importDefault(require("../logger"));
12
16
  const get_config_from_env_1 = require("../utils/get-config-from-env");
13
17
  const validate_env_1 = require("../utils/validate-env");
14
- const fs_extra_1 = __importDefault(require("fs-extra"));
15
- const path_1 = __importDefault(require("path"));
16
- const lodash_1 = require("lodash");
17
- const util_1 = require("util");
18
18
  const helpers_1 = require("./helpers");
19
19
  let database = null;
20
20
  let inspector = null;
@@ -145,7 +145,7 @@ function getDatabaseVersion() {
145
145
  }
146
146
  exports.getDatabaseVersion = getDatabaseVersion;
147
147
  async function hasDatabaseConnection(database) {
148
- database = database !== null && database !== void 0 ? database : getDatabase();
148
+ database = database ?? getDatabase();
149
149
  try {
150
150
  if (getDatabaseClient(database) === 'oracle') {
151
151
  await database.raw('select 1 from DUAL');
@@ -161,7 +161,7 @@ async function hasDatabaseConnection(database) {
161
161
  }
162
162
  exports.hasDatabaseConnection = hasDatabaseConnection;
163
163
  async function validateDatabaseConnection(database) {
164
- database = database !== null && database !== void 0 ? database : getDatabase();
164
+ database = database ?? getDatabase();
165
165
  try {
166
166
  if (getDatabaseClient(database) === 'oracle') {
167
167
  await database.raw('select 1 from DUAL');
@@ -178,7 +178,7 @@ async function validateDatabaseConnection(database) {
178
178
  }
179
179
  exports.validateDatabaseConnection = validateDatabaseConnection;
180
180
  function getDatabaseClient(database) {
181
- database = database !== null && database !== void 0 ? database : getDatabase();
181
+ database = database ?? getDatabase();
182
182
  switch (database.client.constructor.name) {
183
183
  case 'Client_MySQL':
184
184
  return 'mysql';
@@ -250,7 +250,7 @@ async function validateDatabaseExtensions() {
250
250
  }
251
251
  exports.validateDatabaseExtensions = validateDatabaseExtensions;
252
252
  async function validateDatabaseCharset(database) {
253
- database = database !== null && database !== void 0 ? database : getDatabase();
253
+ database = database ?? getDatabase();
254
254
  if (getDatabaseClient(database) === 'mysql') {
255
255
  const { collation } = await database.select(database.raw(`@@collation_database as collation`)).first();
256
256
  const tables = await database('information_schema.tables')
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  /**
3
3
  * NOTE:
4
4
  * Not all databases allow (or support) recursive onUpdate/onDelete triggers. MS SQL / Oracle flat out deny creating them,
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.down = exports.up = void 0;
4
4
  const utils_1 = require("@directus/shared/utils");
5
5
  async function up(knex) {
6
- var _a;
7
6
  await knex.schema.alterTable('directus_relations', (table) => {
8
7
  table.string('sort_field');
9
8
  });
@@ -12,7 +11,7 @@ async function up(knex) {
12
11
  .from('directus_fields')
13
12
  .whereIn('interface', ['one-to-many', 'm2a-builder', 'many-to-many']);
14
13
  for (const field of fieldsWithSort) {
15
- const options = typeof field.options === 'string' ? (0, utils_1.parseJSON)(field.options) : (_a = field.options) !== null && _a !== void 0 ? _a : {};
14
+ const options = typeof field.options === 'string' ? (0, utils_1.parseJSON)(field.options) : field.options ?? {};
16
15
  if ('sortField' in options) {
17
16
  await knex('directus_relations')
18
17
  .update({
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(_knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -14,7 +14,7 @@ async function up(knex) {
14
14
  .select('id', 'many_collection', 'many_field', 'one_collection')
15
15
  .from('directus_relations');
16
16
  const constraintsToAdd = relations.filter((relation) => {
17
- const exists = !!foreignKeys.find((fk) => fk.table === (relation === null || relation === void 0 ? void 0 : relation.many_collection) && fk.column === (relation === null || relation === void 0 ? void 0 : relation.many_field));
17
+ const exists = !!foreignKeys.find((fk) => fk.table === relation?.many_collection && fk.column === relation?.many_field);
18
18
  return exists === false;
19
19
  });
20
20
  const corruptedRelations = [];
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.down = exports.up = void 0;
7
- const logger_1 = __importDefault(require("../../logger"));
8
7
  const knex_schema_inspector_1 = __importDefault(require("knex-schema-inspector"));
8
+ const logger_1 = __importDefault(require("../../logger"));
9
9
  /**
10
10
  * Things to keep in mind:
11
11
  *
@@ -93,7 +93,7 @@ async function up(knex) {
93
93
  fk.foreign_key_column === constraint.references.split('.')[1]);
94
94
  try {
95
95
  await knex.schema.alterTable(update.table, (table) => {
96
- table.dropForeign([constraint.column], (existingForeignKey === null || existingForeignKey === void 0 ? void 0 : existingForeignKey.constraint_name) || undefined);
96
+ table.dropForeign([constraint.column], existingForeignKey?.constraint_name || undefined);
97
97
  });
98
98
  }
99
99
  catch (err) {
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;
@@ -1,3 +1,3 @@
1
- import { Knex } from 'knex';
1
+ import type { Knex } from 'knex';
2
2
  export declare function up(knex: Knex): Promise<void>;
3
3
  export declare function down(knex: Knex): Promise<void>;