directus 9.23.4 → 9.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (861) hide show
  1. package/cli.js +1 -1
  2. package/package.json +5 -170
  3. package/LICENSE +0 -674
  4. package/README.md +0 -89
  5. package/dist/app.d.ts +0 -2
  6. package/dist/app.js +0 -250
  7. package/dist/app.test.d.ts +0 -1
  8. package/dist/auth/auth.d.ts +0 -46
  9. package/dist/auth/auth.js +0 -40
  10. package/dist/auth/drivers/index.d.ts +0 -5
  11. package/dist/auth/drivers/index.js +0 -21
  12. package/dist/auth/drivers/ldap.d.ts +0 -20
  13. package/dist/auth/drivers/ldap.js +0 -349
  14. package/dist/auth/drivers/local.d.ts +0 -9
  15. package/dist/auth/drivers/local.js +0 -91
  16. package/dist/auth/drivers/oauth2.d.ts +0 -19
  17. package/dist/auth/drivers/oauth2.js +0 -310
  18. package/dist/auth/drivers/openid.d.ts +0 -19
  19. package/dist/auth/drivers/openid.js +0 -332
  20. package/dist/auth/drivers/saml.d.ts +0 -14
  21. package/dist/auth/drivers/saml.js +0 -169
  22. package/dist/auth.d.ts +0 -3
  23. package/dist/auth.js +0 -70
  24. package/dist/cache.d.ts +0 -20
  25. package/dist/cache.js +0 -151
  26. package/dist/cli/commands/bootstrap/index.d.ts +0 -3
  27. package/dist/cli/commands/bootstrap/index.js +0 -98
  28. package/dist/cli/commands/count/index.d.ts +0 -1
  29. package/dist/cli/commands/count/index.js +0 -27
  30. package/dist/cli/commands/database/install.d.ts +0 -1
  31. package/dist/cli/commands/database/install.js +0 -22
  32. package/dist/cli/commands/database/migrate.d.ts +0 -1
  33. package/dist/cli/commands/database/migrate.js +0 -29
  34. package/dist/cli/commands/init/index.d.ts +0 -1
  35. package/dist/cli/commands/init/index.js +0 -108
  36. package/dist/cli/commands/init/questions.d.ts +0 -20
  37. package/dist/cli/commands/init/questions.js +0 -71
  38. package/dist/cli/commands/roles/create.d.ts +0 -4
  39. package/dist/cli/commands/roles/create.js +0 -29
  40. package/dist/cli/commands/schema/apply.d.ts +0 -4
  41. package/dist/cli/commands/schema/apply.js +0 -183
  42. package/dist/cli/commands/schema/snapshot.d.ts +0 -4
  43. package/dist/cli/commands/schema/snapshot.js +0 -63
  44. package/dist/cli/commands/security/key.d.ts +0 -1
  45. package/dist/cli/commands/security/key.js +0 -8
  46. package/dist/cli/commands/security/secret.d.ts +0 -1
  47. package/dist/cli/commands/security/secret.js +0 -8
  48. package/dist/cli/commands/users/create.d.ts +0 -5
  49. package/dist/cli/commands/users/create.js +0 -29
  50. package/dist/cli/commands/users/passwd.d.ts +0 -4
  51. package/dist/cli/commands/users/passwd.js +0 -41
  52. package/dist/cli/index.d.ts +0 -2
  53. package/dist/cli/index.js +0 -96
  54. package/dist/cli/index.test.d.ts +0 -1
  55. package/dist/cli/run.d.ts +0 -1
  56. package/dist/cli/run.js +0 -10
  57. package/dist/cli/utils/create-db-connection.d.ts +0 -13
  58. package/dist/cli/utils/create-db-connection.js +0 -61
  59. package/dist/cli/utils/create-env/env-stub.liquid +0 -325
  60. package/dist/cli/utils/create-env/index.d.ts +0 -3
  61. package/dist/cli/utils/create-env/index.js +0 -44
  62. package/dist/cli/utils/defaults.d.ts +0 -11
  63. package/dist/cli/utils/defaults.js +0 -14
  64. package/dist/cli/utils/drivers.d.ts +0 -3
  65. package/dist/cli/utils/drivers.js +0 -19
  66. package/dist/constants.d.ts +0 -13
  67. package/dist/constants.js +0 -59
  68. package/dist/controllers/activity.d.ts +0 -2
  69. package/dist/controllers/activity.js +0 -135
  70. package/dist/controllers/assets.d.ts +0 -2
  71. package/dist/controllers/assets.js +0 -186
  72. package/dist/controllers/auth.d.ts +0 -2
  73. package/dist/controllers/auth.js +0 -167
  74. package/dist/controllers/collections.d.ts +0 -2
  75. package/dist/controllers/collections.js +0 -105
  76. package/dist/controllers/dashboards.d.ts +0 -2
  77. package/dist/controllers/dashboards.js +0 -144
  78. package/dist/controllers/extensions.d.ts +0 -2
  79. package/dist/controllers/extensions.js +0 -40
  80. package/dist/controllers/fields.d.ts +0 -2
  81. package/dist/controllers/fields.js +0 -160
  82. package/dist/controllers/files.d.ts +0 -4
  83. package/dist/controllers/files.js +0 -274
  84. package/dist/controllers/files.test.d.ts +0 -1
  85. package/dist/controllers/flows.d.ts +0 -2
  86. package/dist/controllers/flows.js +0 -163
  87. package/dist/controllers/folders.d.ts +0 -2
  88. package/dist/controllers/folders.js +0 -153
  89. package/dist/controllers/graphql.d.ts +0 -2
  90. package/dist/controllers/graphql.js +0 -36
  91. package/dist/controllers/items.d.ts +0 -2
  92. package/dist/controllers/items.js +0 -183
  93. package/dist/controllers/not-found.d.ts +0 -14
  94. package/dist/controllers/not-found.js +0 -36
  95. package/dist/controllers/notifications.d.ts +0 -2
  96. package/dist/controllers/notifications.js +0 -153
  97. package/dist/controllers/operations.d.ts +0 -2
  98. package/dist/controllers/operations.js +0 -144
  99. package/dist/controllers/panels.d.ts +0 -2
  100. package/dist/controllers/panels.js +0 -144
  101. package/dist/controllers/permissions.d.ts +0 -2
  102. package/dist/controllers/permissions.js +0 -155
  103. package/dist/controllers/presets.d.ts +0 -2
  104. package/dist/controllers/presets.js +0 -153
  105. package/dist/controllers/relations.d.ts +0 -2
  106. package/dist/controllers/relations.js +0 -117
  107. package/dist/controllers/revisions.d.ts +0 -2
  108. package/dist/controllers/revisions.js +0 -39
  109. package/dist/controllers/roles.d.ts +0 -2
  110. package/dist/controllers/roles.js +0 -144
  111. package/dist/controllers/schema.d.ts +0 -2
  112. package/dist/controllers/schema.js +0 -98
  113. package/dist/controllers/server.d.ts +0 -2
  114. package/dist/controllers/server.js +0 -61
  115. package/dist/controllers/settings.d.ts +0 -2
  116. package/dist/controllers/settings.js +0 -41
  117. package/dist/controllers/shares.d.ts +0 -2
  118. package/dist/controllers/shares.js +0 -218
  119. package/dist/controllers/users.d.ts +0 -2
  120. package/dist/controllers/users.js +0 -358
  121. package/dist/controllers/utils.d.ts +0 -2
  122. package/dist/controllers/utils.js +0 -121
  123. package/dist/controllers/webhooks.d.ts +0 -2
  124. package/dist/controllers/webhooks.js +0 -141
  125. package/dist/database/helpers/date/dialects/default.d.ts +0 -3
  126. package/dist/database/helpers/date/dialects/default.js +0 -7
  127. package/dist/database/helpers/date/dialects/mssql.d.ts +0 -4
  128. package/dist/database/helpers/date/dialects/mssql.js +0 -12
  129. package/dist/database/helpers/date/dialects/mysql.d.ts +0 -5
  130. package/dist/database/helpers/date/dialects/mysql.js +0 -16
  131. package/dist/database/helpers/date/dialects/oracle.d.ts +0 -4
  132. package/dist/database/helpers/date/dialects/oracle.js +0 -15
  133. package/dist/database/helpers/date/dialects/sqlite.d.ts +0 -5
  134. package/dist/database/helpers/date/dialects/sqlite.js +0 -30
  135. package/dist/database/helpers/date/index.d.ts +0 -7
  136. package/dist/database/helpers/date/index.js +0 -17
  137. package/dist/database/helpers/date/types.d.ts +0 -7
  138. package/dist/database/helpers/date/types.js +0 -24
  139. package/dist/database/helpers/fn/dialects/mssql.d.ts +0 -13
  140. package/dist/database/helpers/fn/dialects/mssql.js +0 -48
  141. package/dist/database/helpers/fn/dialects/mysql.d.ts +0 -13
  142. package/dist/database/helpers/fn/dialects/mysql.js +0 -42
  143. package/dist/database/helpers/fn/dialects/oracle.d.ts +0 -13
  144. package/dist/database/helpers/fn/dialects/oracle.js +0 -48
  145. package/dist/database/helpers/fn/dialects/postgres.d.ts +0 -13
  146. package/dist/database/helpers/fn/dialects/postgres.js +0 -52
  147. package/dist/database/helpers/fn/dialects/sqlite.d.ts +0 -13
  148. package/dist/database/helpers/fn/dialects/sqlite.js +0 -72
  149. package/dist/database/helpers/fn/index.d.ts +0 -7
  150. package/dist/database/helpers/fn/index.js +0 -17
  151. package/dist/database/helpers/fn/types.d.ts +0 -22
  152. package/dist/database/helpers/fn/types.js +0 -30
  153. package/dist/database/helpers/geometry/dialects/mssql.d.ts +0 -14
  154. package/dist/database/helpers/geometry/dialects/mssql.js +0 -36
  155. package/dist/database/helpers/geometry/dialects/mysql.d.ts +0 -7
  156. package/dist/database/helpers/geometry/dialects/mysql.js +0 -16
  157. package/dist/database/helpers/geometry/dialects/oracle.d.ts +0 -15
  158. package/dist/database/helpers/geometry/dialects/oracle.js +0 -39
  159. package/dist/database/helpers/geometry/dialects/postgres.d.ts +0 -10
  160. package/dist/database/helpers/geometry/dialects/postgres.js +0 -22
  161. package/dist/database/helpers/geometry/dialects/redshift.d.ts +0 -7
  162. package/dist/database/helpers/geometry/dialects/redshift.js +0 -16
  163. package/dist/database/helpers/geometry/dialects/sqlite.d.ts +0 -6
  164. package/dist/database/helpers/geometry/dialects/sqlite.js +0 -14
  165. package/dist/database/helpers/geometry/index.d.ts +0 -7
  166. package/dist/database/helpers/geometry/index.js +0 -17
  167. package/dist/database/helpers/geometry/types.d.ts +0 -20
  168. package/dist/database/helpers/geometry/types.js +0 -53
  169. package/dist/database/helpers/index.d.ts +0 -13
  170. package/dist/database/helpers/index.js +0 -45
  171. package/dist/database/helpers/schema/dialects/cockroachdb.d.ts +0 -6
  172. package/dist/database/helpers/schema/dialects/cockroachdb.js +0 -21
  173. package/dist/database/helpers/schema/dialects/default.d.ts +0 -3
  174. package/dist/database/helpers/schema/dialects/default.js +0 -7
  175. package/dist/database/helpers/schema/dialects/mssql.d.ts +0 -7
  176. package/dist/database/helpers/schema/dialects/mssql.js +0 -24
  177. package/dist/database/helpers/schema/dialects/mysql.d.ts +0 -5
  178. package/dist/database/helpers/schema/dialects/mysql.js +0 -18
  179. package/dist/database/helpers/schema/dialects/oracle.d.ts +0 -9
  180. package/dist/database/helpers/schema/dialects/oracle.js +0 -36
  181. package/dist/database/helpers/schema/dialects/sqlite.d.ts +0 -5
  182. package/dist/database/helpers/schema/dialects/sqlite.js +0 -17
  183. package/dist/database/helpers/schema/index.d.ts +0 -7
  184. package/dist/database/helpers/schema/index.js +0 -17
  185. package/dist/database/helpers/schema/types.d.ts +0 -26
  186. package/dist/database/helpers/schema/types.js +0 -95
  187. package/dist/database/helpers/types.d.ts +0 -5
  188. package/dist/database/helpers/types.js +0 -10
  189. package/dist/database/index.d.ts +0 -20
  190. package/dist/database/index.js +0 -279
  191. package/dist/database/migrations/20201028A-remove-collection-foreign-keys.d.ts +0 -3
  192. package/dist/database/migrations/20201028A-remove-collection-foreign-keys.js +0 -47
  193. package/dist/database/migrations/20201029A-remove-system-relations.d.ts +0 -3
  194. package/dist/database/migrations/20201029A-remove-system-relations.js +0 -127
  195. package/dist/database/migrations/20201029B-remove-system-collections.d.ts +0 -3
  196. package/dist/database/migrations/20201029B-remove-system-collections.js +0 -98
  197. package/dist/database/migrations/20201029C-remove-system-fields.d.ts +0 -3
  198. package/dist/database/migrations/20201029C-remove-system-fields.js +0 -1648
  199. package/dist/database/migrations/20201105A-add-cascade-system-relations.d.ts +0 -8
  200. package/dist/database/migrations/20201105A-add-cascade-system-relations.js +0 -136
  201. package/dist/database/migrations/20201105B-change-webhook-url-type.d.ts +0 -3
  202. package/dist/database/migrations/20201105B-change-webhook-url-type.js +0 -17
  203. package/dist/database/migrations/20210225A-add-relations-sort-field.d.ts +0 -3
  204. package/dist/database/migrations/20210225A-add-relations-sort-field.js +0 -33
  205. package/dist/database/migrations/20210304A-remove-locked-fields.d.ts +0 -3
  206. package/dist/database/migrations/20210304A-remove-locked-fields.js +0 -15
  207. package/dist/database/migrations/20210312A-webhooks-collections-text.d.ts +0 -3
  208. package/dist/database/migrations/20210312A-webhooks-collections-text.js +0 -17
  209. package/dist/database/migrations/20210331A-add-refresh-interval.d.ts +0 -3
  210. package/dist/database/migrations/20210331A-add-refresh-interval.js +0 -15
  211. package/dist/database/migrations/20210415A-make-filesize-nullable.d.ts +0 -3
  212. package/dist/database/migrations/20210415A-make-filesize-nullable.js +0 -20
  213. package/dist/database/migrations/20210416A-add-collections-accountability.d.ts +0 -3
  214. package/dist/database/migrations/20210416A-add-collections-accountability.js +0 -16
  215. package/dist/database/migrations/20210422A-remove-files-interface.d.ts +0 -3
  216. package/dist/database/migrations/20210422A-remove-files-interface.js +0 -11
  217. package/dist/database/migrations/20210506A-rename-interfaces.d.ts +0 -3
  218. package/dist/database/migrations/20210506A-rename-interfaces.js +0 -79
  219. package/dist/database/migrations/20210510A-restructure-relations.d.ts +0 -3
  220. package/dist/database/migrations/20210510A-restructure-relations.js +0 -32
  221. package/dist/database/migrations/20210518A-add-foreign-key-constraints.d.ts +0 -3
  222. package/dist/database/migrations/20210518A-add-foreign-key-constraints.js +0 -114
  223. package/dist/database/migrations/20210519A-add-system-fk-triggers.d.ts +0 -3
  224. package/dist/database/migrations/20210519A-add-system-fk-triggers.js +0 -172
  225. package/dist/database/migrations/20210521A-add-collections-icon-color.d.ts +0 -3
  226. package/dist/database/migrations/20210521A-add-collections-icon-color.js +0 -15
  227. package/dist/database/migrations/20210525A-add-insights.d.ts +0 -3
  228. package/dist/database/migrations/20210525A-add-insights.js +0 -36
  229. package/dist/database/migrations/20210608A-add-deep-clone-config.d.ts +0 -3
  230. package/dist/database/migrations/20210608A-add-deep-clone-config.js +0 -15
  231. package/dist/database/migrations/20210626A-change-filesize-bigint.d.ts +0 -3
  232. package/dist/database/migrations/20210626A-change-filesize-bigint.js +0 -24
  233. package/dist/database/migrations/20210716A-add-conditions-to-fields.d.ts +0 -3
  234. package/dist/database/migrations/20210716A-add-conditions-to-fields.js +0 -15
  235. package/dist/database/migrations/20210721A-add-default-folder.d.ts +0 -3
  236. package/dist/database/migrations/20210721A-add-default-folder.js +0 -23
  237. package/dist/database/migrations/20210802A-replace-groups.d.ts +0 -3
  238. package/dist/database/migrations/20210802A-replace-groups.js +0 -53
  239. package/dist/database/migrations/20210803A-add-required-to-fields.d.ts +0 -3
  240. package/dist/database/migrations/20210803A-add-required-to-fields.js +0 -15
  241. package/dist/database/migrations/20210805A-update-groups.d.ts +0 -3
  242. package/dist/database/migrations/20210805A-update-groups.js +0 -34
  243. package/dist/database/migrations/20210805B-change-image-metadata-structure.d.ts +0 -3
  244. package/dist/database/migrations/20210805B-change-image-metadata-structure.js +0 -89
  245. package/dist/database/migrations/20210811A-add-geometry-config.d.ts +0 -3
  246. package/dist/database/migrations/20210811A-add-geometry-config.js +0 -17
  247. package/dist/database/migrations/20210831A-remove-limit-column.d.ts +0 -3
  248. package/dist/database/migrations/20210831A-remove-limit-column.js +0 -15
  249. package/dist/database/migrations/20210903A-add-auth-provider.d.ts +0 -3
  250. package/dist/database/migrations/20210903A-add-auth-provider.js +0 -40
  251. package/dist/database/migrations/20210907A-webhooks-collections-not-null.d.ts +0 -3
  252. package/dist/database/migrations/20210907A-webhooks-collections-not-null.js +0 -18
  253. package/dist/database/migrations/20210910A-move-module-setup.d.ts +0 -3
  254. package/dist/database/migrations/20210910A-move-module-setup.js +0 -21
  255. package/dist/database/migrations/20210920A-webhooks-url-not-null.d.ts +0 -3
  256. package/dist/database/migrations/20210920A-webhooks-url-not-null.js +0 -26
  257. package/dist/database/migrations/20210924A-add-collection-organization.d.ts +0 -3
  258. package/dist/database/migrations/20210924A-add-collection-organization.js +0 -19
  259. package/dist/database/migrations/20210927A-replace-fields-group.d.ts +0 -3
  260. package/dist/database/migrations/20210927A-replace-fields-group.js +0 -53
  261. package/dist/database/migrations/20210927B-replace-m2m-interface.d.ts +0 -3
  262. package/dist/database/migrations/20210927B-replace-m2m-interface.js +0 -21
  263. package/dist/database/migrations/20210929A-rename-login-action.d.ts +0 -3
  264. package/dist/database/migrations/20210929A-rename-login-action.js +0 -19
  265. package/dist/database/migrations/20211007A-update-presets.d.ts +0 -3
  266. package/dist/database/migrations/20211007A-update-presets.js +0 -103
  267. package/dist/database/migrations/20211009A-add-auth-data.d.ts +0 -3
  268. package/dist/database/migrations/20211009A-add-auth-data.js +0 -15
  269. package/dist/database/migrations/20211016A-add-webhook-headers.d.ts +0 -3
  270. package/dist/database/migrations/20211016A-add-webhook-headers.js +0 -15
  271. package/dist/database/migrations/20211103A-set-unique-to-user-token.d.ts +0 -3
  272. package/dist/database/migrations/20211103A-set-unique-to-user-token.js +0 -15
  273. package/dist/database/migrations/20211103B-update-special-geometry.d.ts +0 -3
  274. package/dist/database/migrations/20211103B-update-special-geometry.js +0 -25
  275. package/dist/database/migrations/20211104A-remove-collections-listing.d.ts +0 -3
  276. package/dist/database/migrations/20211104A-remove-collections-listing.js +0 -15
  277. package/dist/database/migrations/20211118A-add-notifications.d.ts +0 -3
  278. package/dist/database/migrations/20211118A-add-notifications.js +0 -28
  279. package/dist/database/migrations/20211211A-add-shares.d.ts +0 -3
  280. package/dist/database/migrations/20211211A-add-shares.js +0 -38
  281. package/dist/database/migrations/20211230A-add-project-descriptor.d.ts +0 -3
  282. package/dist/database/migrations/20211230A-add-project-descriptor.js +0 -15
  283. package/dist/database/migrations/20220303A-remove-default-project-color.d.ts +0 -3
  284. package/dist/database/migrations/20220303A-remove-default-project-color.js +0 -22
  285. package/dist/database/migrations/20220308A-add-bookmark-icon-and-color.d.ts +0 -3
  286. package/dist/database/migrations/20220308A-add-bookmark-icon-and-color.js +0 -17
  287. package/dist/database/migrations/20220314A-add-translation-strings.d.ts +0 -3
  288. package/dist/database/migrations/20220314A-add-translation-strings.js +0 -15
  289. package/dist/database/migrations/20220322A-rename-field-typecast-flags.d.ts +0 -3
  290. package/dist/database/migrations/20220322A-rename-field-typecast-flags.js +0 -77
  291. package/dist/database/migrations/20220323A-add-field-validation.d.ts +0 -3
  292. package/dist/database/migrations/20220323A-add-field-validation.js +0 -17
  293. package/dist/database/migrations/20220325A-fix-typecast-flags.d.ts +0 -3
  294. package/dist/database/migrations/20220325A-fix-typecast-flags.js +0 -49
  295. package/dist/database/migrations/20220325B-add-default-language.d.ts +0 -3
  296. package/dist/database/migrations/20220325B-add-default-language.js +0 -28
  297. package/dist/database/migrations/20220402A-remove-default-value-panel-icon.d.ts +0 -3
  298. package/dist/database/migrations/20220402A-remove-default-value-panel-icon.js +0 -22
  299. package/dist/database/migrations/20220429A-add-flows.d.ts +0 -3
  300. package/dist/database/migrations/20220429A-add-flows.js +0 -82
  301. package/dist/database/migrations/20220429B-add-color-to-insights-icon.d.ts +0 -3
  302. package/dist/database/migrations/20220429B-add-color-to-insights-icon.js +0 -15
  303. package/dist/database/migrations/20220429C-drop-non-null-from-ip-of-activity.d.ts +0 -3
  304. package/dist/database/migrations/20220429C-drop-non-null-from-ip-of-activity.js +0 -15
  305. package/dist/database/migrations/20220429D-drop-non-null-from-sender-of-notifications.d.ts +0 -3
  306. package/dist/database/migrations/20220429D-drop-non-null-from-sender-of-notifications.js +0 -15
  307. package/dist/database/migrations/20220614A-rename-hook-trigger-to-event.d.ts +0 -3
  308. package/dist/database/migrations/20220614A-rename-hook-trigger-to-event.js +0 -11
  309. package/dist/database/migrations/20220801A-update-notifications-timestamp-column.d.ts +0 -3
  310. package/dist/database/migrations/20220801A-update-notifications-timestamp-column.js +0 -19
  311. package/dist/database/migrations/20220802A-add-custom-aspect-ratios.d.ts +0 -3
  312. package/dist/database/migrations/20220802A-add-custom-aspect-ratios.js +0 -15
  313. package/dist/database/migrations/20220826A-add-origin-to-accountability.d.ts +0 -3
  314. package/dist/database/migrations/20220826A-add-origin-to-accountability.js +0 -21
  315. package/dist/database/migrations/run.d.ts +0 -2
  316. package/dist/database/migrations/run.js +0 -96
  317. package/dist/database/migrations/run.test.d.ts +0 -1
  318. package/dist/database/run-ast.d.ts +0 -26
  319. package/dist/database/run-ast.js +0 -474
  320. package/dist/database/seeds/01-collections.yaml +0 -42
  321. package/dist/database/seeds/02-roles.yaml +0 -36
  322. package/dist/database/seeds/03-users.yaml +0 -63
  323. package/dist/database/seeds/04-fields.yaml +0 -58
  324. package/dist/database/seeds/05-activity.yaml +0 -35
  325. package/dist/database/seeds/06-folders.yaml +0 -16
  326. package/dist/database/seeds/07-files.yaml +0 -74
  327. package/dist/database/seeds/08-permissions.yaml +0 -32
  328. package/dist/database/seeds/09-presets.yaml +0 -37
  329. package/dist/database/seeds/10-relations.yaml +0 -40
  330. package/dist/database/seeds/11-revisions.yaml +0 -33
  331. package/dist/database/seeds/12-sessions.yaml +0 -23
  332. package/dist/database/seeds/13-settings.yaml +0 -49
  333. package/dist/database/seeds/14-webhooks.yaml +0 -35
  334. package/dist/database/seeds/15-migrations.yaml +0 -14
  335. package/dist/database/seeds/run.d.ts +0 -2
  336. package/dist/database/seeds/run.js +0 -76
  337. package/dist/database/system-data/app-access-permissions/app-access-permissions.yaml +0 -102
  338. package/dist/database/system-data/app-access-permissions/index.d.ts +0 -3
  339. package/dist/database/system-data/app-access-permissions/index.js +0 -17
  340. package/dist/database/system-data/app-access-permissions/schema-access-permissions.yaml +0 -17
  341. package/dist/database/system-data/collections/collections.yaml +0 -74
  342. package/dist/database/system-data/collections/index.d.ts +0 -2
  343. package/dist/database/system-data/collections/index.js +0 -9
  344. package/dist/database/system-data/fields/_defaults.yaml +0 -16
  345. package/dist/database/system-data/fields/activity.yaml +0 -83
  346. package/dist/database/system-data/fields/collections.yaml +0 -214
  347. package/dist/database/system-data/fields/dashboards.yaml +0 -20
  348. package/dist/database/system-data/fields/fields.yaml +0 -104
  349. package/dist/database/system-data/fields/files.yaml +0 -144
  350. package/dist/database/system-data/fields/flows.yaml +0 -26
  351. package/dist/database/system-data/fields/folders.yaml +0 -14
  352. package/dist/database/system-data/fields/index.d.ts +0 -2
  353. package/dist/database/system-data/fields/index.js +0 -37
  354. package/dist/database/system-data/fields/migrations.yaml +0 -10
  355. package/dist/database/system-data/fields/notifications.yaml +0 -15
  356. package/dist/database/system-data/fields/operations.yaml +0 -23
  357. package/dist/database/system-data/fields/panels.yaml +0 -29
  358. package/dist/database/system-data/fields/permissions.yaml +0 -37
  359. package/dist/database/system-data/fields/presets.yaml +0 -56
  360. package/dist/database/system-data/fields/relations.yaml +0 -34
  361. package/dist/database/system-data/fields/revisions.yaml +0 -27
  362. package/dist/database/system-data/fields/roles.yaml +0 -61
  363. package/dist/database/system-data/fields/sessions.yaml +0 -16
  364. package/dist/database/system-data/fields/settings.yaml +0 -413
  365. package/dist/database/system-data/fields/shares.yaml +0 -83
  366. package/dist/database/system-data/fields/users.yaml +0 -182
  367. package/dist/database/system-data/fields/webhooks.yaml +0 -141
  368. package/dist/database/system-data/relations/index.d.ts +0 -2
  369. package/dist/database/system-data/relations/index.js +0 -9
  370. package/dist/database/system-data/relations/relations.yaml +0 -125
  371. package/dist/emitter.d.ts +0 -19
  372. package/dist/emitter.js +0 -86
  373. package/dist/env.d.ts +0 -15
  374. package/dist/env.js +0 -466
  375. package/dist/env.test.d.ts +0 -1
  376. package/dist/exceptions/database/contains-null-values.d.ts +0 -9
  377. package/dist/exceptions/database/contains-null-values.js +0 -10
  378. package/dist/exceptions/database/dialects/mssql.d.ts +0 -2
  379. package/dist/exceptions/database/dialects/mssql.js +0 -159
  380. package/dist/exceptions/database/dialects/mysql.d.ts +0 -2
  381. package/dist/exceptions/database/dialects/mysql.js +0 -148
  382. package/dist/exceptions/database/dialects/oracle.d.ts +0 -2
  383. package/dist/exceptions/database/dialects/oracle.js +0 -27
  384. package/dist/exceptions/database/dialects/postgres.d.ts +0 -2
  385. package/dist/exceptions/database/dialects/postgres.js +0 -106
  386. package/dist/exceptions/database/dialects/sqlite.d.ts +0 -2
  387. package/dist/exceptions/database/dialects/sqlite.js +0 -55
  388. package/dist/exceptions/database/dialects/types.d.ts +0 -41
  389. package/dist/exceptions/database/dialects/types.js +0 -2
  390. package/dist/exceptions/database/invalid-foreign-key.d.ts +0 -10
  391. package/dist/exceptions/database/invalid-foreign-key.js +0 -15
  392. package/dist/exceptions/database/not-null-violation.d.ts +0 -9
  393. package/dist/exceptions/database/not-null-violation.js +0 -10
  394. package/dist/exceptions/database/record-not-unique.d.ts +0 -10
  395. package/dist/exceptions/database/record-not-unique.js +0 -15
  396. package/dist/exceptions/database/translate.d.ts +0 -11
  397. package/dist/exceptions/database/translate.js +0 -74
  398. package/dist/exceptions/database/value-out-of-range.d.ts +0 -10
  399. package/dist/exceptions/database/value-out-of-range.js +0 -15
  400. package/dist/exceptions/database/value-too-long.d.ts +0 -9
  401. package/dist/exceptions/database/value-too-long.js +0 -15
  402. package/dist/exceptions/forbidden.d.ts +0 -4
  403. package/dist/exceptions/forbidden.js +0 -16
  404. package/dist/exceptions/graphql-validation.d.ts +0 -4
  405. package/dist/exceptions/graphql-validation.js +0 -10
  406. package/dist/exceptions/hit-rate-limit.d.ts +0 -9
  407. package/dist/exceptions/hit-rate-limit.js +0 -10
  408. package/dist/exceptions/illegal-asset-transformation.d.ts +0 -4
  409. package/dist/exceptions/illegal-asset-transformation.js +0 -10
  410. package/dist/exceptions/index.d.ts +0 -21
  411. package/dist/exceptions/index.js +0 -37
  412. package/dist/exceptions/invalid-config.d.ts +0 -4
  413. package/dist/exceptions/invalid-config.js +0 -10
  414. package/dist/exceptions/invalid-credentials.d.ts +0 -4
  415. package/dist/exceptions/invalid-credentials.js +0 -10
  416. package/dist/exceptions/invalid-ip.d.ts +0 -4
  417. package/dist/exceptions/invalid-ip.js +0 -10
  418. package/dist/exceptions/invalid-otp.d.ts +0 -4
  419. package/dist/exceptions/invalid-otp.js +0 -10
  420. package/dist/exceptions/invalid-payload.d.ts +0 -4
  421. package/dist/exceptions/invalid-payload.js +0 -10
  422. package/dist/exceptions/invalid-provider.d.ts +0 -4
  423. package/dist/exceptions/invalid-provider.js +0 -10
  424. package/dist/exceptions/invalid-query.d.ts +0 -4
  425. package/dist/exceptions/invalid-query.js +0 -10
  426. package/dist/exceptions/invalid-token.d.ts +0 -4
  427. package/dist/exceptions/invalid-token.js +0 -10
  428. package/dist/exceptions/method-not-allowed.d.ts +0 -8
  429. package/dist/exceptions/method-not-allowed.js +0 -10
  430. package/dist/exceptions/range-not-satisfiable.d.ts +0 -5
  431. package/dist/exceptions/range-not-satisfiable.js +0 -13
  432. package/dist/exceptions/route-not-found.d.ts +0 -4
  433. package/dist/exceptions/route-not-found.js +0 -10
  434. package/dist/exceptions/service-unavailable.d.ts +0 -9
  435. package/dist/exceptions/service-unavailable.js +0 -10
  436. package/dist/exceptions/token-expired.d.ts +0 -4
  437. package/dist/exceptions/token-expired.js +0 -10
  438. package/dist/exceptions/unexpected-response.d.ts +0 -4
  439. package/dist/exceptions/unexpected-response.js +0 -10
  440. package/dist/exceptions/unprocessable-entity.d.ts +0 -4
  441. package/dist/exceptions/unprocessable-entity.js +0 -10
  442. package/dist/exceptions/unsupported-media-type.d.ts +0 -4
  443. package/dist/exceptions/unsupported-media-type.js +0 -10
  444. package/dist/exceptions/user-suspended.d.ts +0 -4
  445. package/dist/exceptions/user-suspended.js +0 -10
  446. package/dist/extensions.d.ts +0 -49
  447. package/dist/extensions.js +0 -501
  448. package/dist/flows.d.ts +0 -22
  449. package/dist/flows.js +0 -377
  450. package/dist/index.d.ts +0 -3
  451. package/dist/index.js +0 -24
  452. package/dist/logger.d.ts +0 -7
  453. package/dist/logger.js +0 -134
  454. package/dist/logger.test.d.ts +0 -1
  455. package/dist/mailer.d.ts +0 -2
  456. package/dist/mailer.js +0 -71
  457. package/dist/messenger.d.ts +0 -24
  458. package/dist/messenger.js +0 -66
  459. package/dist/middleware/authenticate.d.ts +0 -8
  460. package/dist/middleware/authenticate.js +0 -82
  461. package/dist/middleware/authenticate.test.d.ts +0 -1
  462. package/dist/middleware/cache.d.ts +0 -3
  463. package/dist/middleware/cache.js +0 -61
  464. package/dist/middleware/check-ip.d.ts +0 -2
  465. package/dist/middleware/check-ip.js +0 -24
  466. package/dist/middleware/collection-exists.d.ts +0 -6
  467. package/dist/middleware/collection-exists.js +0 -30
  468. package/dist/middleware/cors.d.ts +0 -3
  469. package/dist/middleware/cors.js +0 -19
  470. package/dist/middleware/error-handler.d.ts +0 -3
  471. package/dist/middleware/error-handler.js +0 -95
  472. package/dist/middleware/extract-token.d.ts +0 -11
  473. package/dist/middleware/extract-token.js +0 -32
  474. package/dist/middleware/extract-token.test.d.ts +0 -1
  475. package/dist/middleware/get-permissions.d.ts +0 -3
  476. package/dist/middleware/get-permissions.js +0 -15
  477. package/dist/middleware/graphql.d.ts +0 -2
  478. package/dist/middleware/graphql.js +0 -69
  479. package/dist/middleware/rate-limiter-global.d.ts +0 -5
  480. package/dist/middleware/rate-limiter-global.js +0 -48
  481. package/dist/middleware/rate-limiter-ip.d.ts +0 -5
  482. package/dist/middleware/rate-limiter-ip.js +0 -34
  483. package/dist/middleware/respond.d.ts +0 -2
  484. package/dist/middleware/respond.js +0 -88
  485. package/dist/middleware/sanitize-query.d.ts +0 -7
  486. package/dist/middleware/sanitize-query.js +0 -21
  487. package/dist/middleware/schema.d.ts +0 -3
  488. package/dist/middleware/schema.js +0 -12
  489. package/dist/middleware/use-collection.d.ts +0 -7
  490. package/dist/middleware/use-collection.js +0 -11
  491. package/dist/middleware/validate-batch.d.ts +0 -3
  492. package/dist/middleware/validate-batch.js +0 -49
  493. package/dist/middleware/validate-batch.test.d.ts +0 -1
  494. package/dist/operations/condition/index.d.ts +0 -6
  495. package/dist/operations/condition/index.js +0 -15
  496. package/dist/operations/condition/index.test.d.ts +0 -1
  497. package/dist/operations/exec/index.d.ts +0 -5
  498. package/dist/operations/exec/index.js +0 -40
  499. package/dist/operations/exec/index.test.d.ts +0 -1
  500. package/dist/operations/item-create/index.d.ts +0 -8
  501. package/dist/operations/item-create/index.js +0 -38
  502. package/dist/operations/item-create/index.test.d.ts +0 -1
  503. package/dist/operations/item-delete/index.d.ts +0 -10
  504. package/dist/operations/item-delete/index.js +0 -46
  505. package/dist/operations/item-delete/index.test.d.ts +0 -1
  506. package/dist/operations/item-read/index.d.ts +0 -10
  507. package/dist/operations/item-read/index.js +0 -46
  508. package/dist/operations/item-read/index.test.d.ts +0 -1
  509. package/dist/operations/item-update/index.d.ts +0 -11
  510. package/dist/operations/item-update/index.js +0 -50
  511. package/dist/operations/item-update/index.test.d.ts +0 -1
  512. package/dist/operations/log/index.d.ts +0 -5
  513. package/dist/operations/log/index.js +0 -13
  514. package/dist/operations/log/index.test.d.ts +0 -1
  515. package/dist/operations/mail/index.d.ts +0 -8
  516. package/dist/operations/mail/index.js +0 -19
  517. package/dist/operations/notification/index.d.ts +0 -8
  518. package/dist/operations/notification/index.js +0 -40
  519. package/dist/operations/notification/index.test.d.ts +0 -1
  520. package/dist/operations/request/index.d.ts +0 -11
  521. package/dist/operations/request/index.js +0 -38
  522. package/dist/operations/request/index.test.d.ts +0 -1
  523. package/dist/operations/sleep/index.d.ts +0 -5
  524. package/dist/operations/sleep/index.js +0 -9
  525. package/dist/operations/sleep/index.test.d.ts +0 -1
  526. package/dist/operations/transform/index.d.ts +0 -5
  527. package/dist/operations/transform/index.js +0 -9
  528. package/dist/operations/transform/index.test.d.ts +0 -1
  529. package/dist/operations/trigger/index.d.ts +0 -8
  530. package/dist/operations/trigger/index.js +0 -39
  531. package/dist/operations/trigger/index.test.d.ts +0 -1
  532. package/dist/rate-limiter.d.ts +0 -4
  533. package/dist/rate-limiter.js +0 -38
  534. package/dist/request/index.d.ts +0 -5
  535. package/dist/request/index.js +0 -18
  536. package/dist/request/index.test.d.ts +0 -1
  537. package/dist/request/request-interceptor.d.ts +0 -2
  538. package/dist/request/request-interceptor.js +0 -33
  539. package/dist/request/request-interceptor.test.d.ts +0 -1
  540. package/dist/request/response-interceptor.d.ts +0 -2
  541. package/dist/request/response-interceptor.js +0 -9
  542. package/dist/request/response-interceptor.test.d.ts +0 -1
  543. package/dist/request/validate-ip.d.ts +0 -1
  544. package/dist/request/validate-ip.js +0 -27
  545. package/dist/request/validate-ip.test.d.ts +0 -1
  546. package/dist/server.d.ts +0 -4
  547. package/dist/server.js +0 -162
  548. package/dist/services/activity.d.ts +0 -10
  549. package/dist/services/activity.js +0 -101
  550. package/dist/services/assets.d.ts +0 -18
  551. package/dist/services/assets.js +0 -179
  552. package/dist/services/authentication.d.ts +0 -21
  553. package/dist/services/authentication.js +0 -332
  554. package/dist/services/authorization.d.ts +0 -17
  555. package/dist/services/authorization.js +0 -451
  556. package/dist/services/collections.d.ts +0 -64
  557. package/dist/services/collections.js +0 -595
  558. package/dist/services/dashboards.d.ts +0 -5
  559. package/dist/services/dashboards.js +0 -10
  560. package/dist/services/fields.d.ts +0 -32
  561. package/dist/services/fields.js +0 -625
  562. package/dist/services/fields.test.d.ts +0 -1
  563. package/dist/services/files.d.ts +0 -34
  564. package/dist/services/files.js +0 -280
  565. package/dist/services/files.test.d.ts +0 -1
  566. package/dist/services/flows.d.ts +0 -11
  567. package/dist/services/flows.js +0 -43
  568. package/dist/services/flows.test.d.ts +0 -1
  569. package/dist/services/folders.d.ts +0 -5
  570. package/dist/services/folders.js +0 -10
  571. package/dist/services/graphql/index.d.ts +0 -86
  572. package/dist/services/graphql/index.js +0 -2467
  573. package/dist/services/graphql/types/bigint.d.ts +0 -2
  574. package/dist/services/graphql/types/bigint.js +0 -39
  575. package/dist/services/graphql/types/date.d.ts +0 -2
  576. package/dist/services/graphql/types/date.js +0 -9
  577. package/dist/services/graphql/types/geojson.d.ts +0 -2
  578. package/dist/services/graphql/types/geojson.js +0 -10
  579. package/dist/services/graphql/types/hash.d.ts +0 -2
  580. package/dist/services/graphql/types/hash.js +0 -9
  581. package/dist/services/graphql/types/string-or-float.d.ts +0 -5
  582. package/dist/services/graphql/types/string-or-float.js +0 -34
  583. package/dist/services/graphql/types/void.d.ts +0 -2
  584. package/dist/services/graphql/types/void.js +0 -17
  585. package/dist/services/graphql/utils/add-path-to-validation-error.d.ts +0 -2
  586. package/dist/services/graphql/utils/add-path-to-validation-error.js +0 -19
  587. package/dist/services/graphql/utils/process-error.d.ts +0 -4
  588. package/dist/services/graphql/utils/process-error.js +0 -46
  589. package/dist/services/graphql/utils/process-error.test.d.ts +0 -1
  590. package/dist/services/import-export.d.ts +0 -37
  591. package/dist/services/import-export.js +0 -300
  592. package/dist/services/import-export.test.d.ts +0 -1
  593. package/dist/services/index.d.ts +0 -33
  594. package/dist/services/index.js +0 -50
  595. package/dist/services/items.d.ts +0 -83
  596. package/dist/services/items.js +0 -719
  597. package/dist/services/items.test.d.ts +0 -1
  598. package/dist/services/mail/index.d.ts +0 -20
  599. package/dist/services/mail/index.js +0 -96
  600. package/dist/services/mail/templates/base.liquid +0 -162
  601. package/dist/services/mail/templates/password-reset.liquid +0 -24
  602. package/dist/services/mail/templates/user-invitation.liquid +0 -19
  603. package/dist/services/meta.d.ts +0 -12
  604. package/dist/services/meta.js +0 -78
  605. package/dist/services/notifications.d.ts +0 -13
  606. package/dist/services/notifications.js +0 -59
  607. package/dist/services/notifications.test.d.ts +0 -1
  608. package/dist/services/operations.d.ts +0 -11
  609. package/dist/services/operations.js +0 -41
  610. package/dist/services/operations.test.d.ts +0 -1
  611. package/dist/services/panels.d.ts +0 -5
  612. package/dist/services/panels.js +0 -10
  613. package/dist/services/payload.d.ts +0 -73
  614. package/dist/services/payload.js +0 -644
  615. package/dist/services/payload.test.d.ts +0 -1
  616. package/dist/services/permissions.d.ts +0 -17
  617. package/dist/services/permissions.js +0 -84
  618. package/dist/services/permissions.test.d.ts +0 -1
  619. package/dist/services/presets.d.ts +0 -5
  620. package/dist/services/presets.js +0 -10
  621. package/dist/services/relations.d.ts +0 -60
  622. package/dist/services/relations.js +0 -477
  623. package/dist/services/revisions.d.ts +0 -6
  624. package/dist/services/revisions.js +0 -24
  625. package/dist/services/roles.d.ts +0 -14
  626. package/dist/services/roles.js +0 -148
  627. package/dist/services/roles.test.d.ts +0 -1
  628. package/dist/services/schema.d.ts +0 -15
  629. package/dist/services/schema.js +0 -56
  630. package/dist/services/schema.test.d.ts +0 -1
  631. package/dist/services/server.d.ts +0 -13
  632. package/dist/services/server.js +0 -366
  633. package/dist/services/settings.d.ts +0 -5
  634. package/dist/services/settings.js +0 -10
  635. package/dist/services/shares.d.ts +0 -17
  636. package/dist/services/shares.js +0 -136
  637. package/dist/services/specifications.d.ts +0 -53
  638. package/dist/services/specifications.js +0 -500
  639. package/dist/services/specifications.test.d.ts +0 -1
  640. package/dist/services/tfa.d.ts +0 -12
  641. package/dist/services/tfa.js +0 -57
  642. package/dist/services/users.d.ts +0 -55
  643. package/dist/services/users.js +0 -380
  644. package/dist/services/users.test.d.ts +0 -1
  645. package/dist/services/utils.d.ts +0 -13
  646. package/dist/services/utils.js +0 -115
  647. package/dist/services/webhooks.d.ts +0 -11
  648. package/dist/services/webhooks.js +0 -33
  649. package/dist/services/webhooks.test.d.ts +0 -1
  650. package/dist/start.d.ts +0 -1
  651. package/dist/start.js +0 -4
  652. package/dist/storage/get-storage-driver.d.ts +0 -3
  653. package/dist/storage/get-storage-driver.js +0 -20
  654. package/dist/storage/get-storage-driver.test.d.ts +0 -1
  655. package/dist/storage/index.d.ts +0 -5
  656. package/dist/storage/index.js +0 -20
  657. package/dist/storage/index.test.d.ts +0 -1
  658. package/dist/storage/register-drivers.d.ts +0 -2
  659. package/dist/storage/register-drivers.js +0 -22
  660. package/dist/storage/register-drivers.test.d.ts +0 -1
  661. package/dist/storage/register-locations.d.ts +0 -2
  662. package/dist/storage/register-locations.js +0 -17
  663. package/dist/storage/register-locations.test.d.ts +0 -1
  664. package/dist/types/assets.d.ts +0 -20
  665. package/dist/types/assets.js +0 -54
  666. package/dist/types/ast.d.ts +0 -56
  667. package/dist/types/ast.js +0 -2
  668. package/dist/types/auth.d.ts +0 -54
  669. package/dist/types/auth.js +0 -2
  670. package/dist/types/collection.d.ts +0 -19
  671. package/dist/types/collection.js +0 -2
  672. package/dist/types/database.d.ts +0 -3
  673. package/dist/types/database.js +0 -4
  674. package/dist/types/events.d.ts +0 -18
  675. package/dist/types/events.js +0 -2
  676. package/dist/types/files.d.ts +0 -29
  677. package/dist/types/files.js +0 -2
  678. package/dist/types/graphql.d.ts +0 -14
  679. package/dist/types/graphql.js +0 -2
  680. package/dist/types/index.d.ts +0 -15
  681. package/dist/types/index.js +0 -31
  682. package/dist/types/items.d.ts +0 -49
  683. package/dist/types/items.js +0 -6
  684. package/dist/types/meta.d.ts +0 -4
  685. package/dist/types/meta.js +0 -8
  686. package/dist/types/migration.d.ts +0 -5
  687. package/dist/types/migration.js +0 -2
  688. package/dist/types/revision.d.ts +0 -7
  689. package/dist/types/revision.js +0 -2
  690. package/dist/types/services.d.ts +0 -21
  691. package/dist/types/services.js +0 -2
  692. package/dist/types/snapshot.d.ts +0 -55
  693. package/dist/types/snapshot.js +0 -16
  694. package/dist/types/webhooks.d.ts +0 -15
  695. package/dist/types/webhooks.js +0 -2
  696. package/dist/utils/apply-diff.d.ts +0 -9
  697. package/dist/utils/apply-diff.js +0 -256
  698. package/dist/utils/apply-diff.test.d.ts +0 -1
  699. package/dist/utils/apply-function-to-column-name.d.ts +0 -12
  700. package/dist/utils/apply-function-to-column-name.js +0 -26
  701. package/dist/utils/apply-function-to-column-name.test.d.ts +0 -1
  702. package/dist/utils/apply-query.d.ts +0 -34
  703. package/dist/utils/apply-query.js +0 -568
  704. package/dist/utils/apply-snapshot.d.ts +0 -9
  705. package/dist/utils/apply-snapshot.js +0 -22
  706. package/dist/utils/apply-snapshot.test.d.ts +0 -1
  707. package/dist/utils/async-handler.d.ts +0 -3
  708. package/dist/utils/async-handler.js +0 -4
  709. package/dist/utils/async-handler.test.d.ts +0 -1
  710. package/dist/utils/calculate-field-depth.d.ts +0 -33
  711. package/dist/utils/calculate-field-depth.js +0 -75
  712. package/dist/utils/calculate-field-depth.test.d.ts +0 -1
  713. package/dist/utils/compress.d.ts +0 -3
  714. package/dist/utils/compress.js +0 -17
  715. package/dist/utils/construct-flow-tree.d.ts +0 -2
  716. package/dist/utils/construct-flow-tree.js +0 -31
  717. package/dist/utils/dynamic-import.d.ts +0 -1
  718. package/dist/utils/dynamic-import.js +0 -7
  719. package/dist/utils/filter-items.d.ts +0 -2
  720. package/dist/utils/filter-items.js +0 -37
  721. package/dist/utils/filter-items.test.d.ts +0 -1
  722. package/dist/utils/generate-hash.d.ts +0 -1
  723. package/dist/utils/generate-hash.js +0 -16
  724. package/dist/utils/get-accountability-for-role.d.ts +0 -7
  725. package/dist/utils/get-accountability-for-role.js +0 -45
  726. package/dist/utils/get-ast-from-query.d.ts +0 -13
  727. package/dist/utils/get-ast-from-query.js +0 -300
  728. package/dist/utils/get-auth-providers.d.ts +0 -8
  729. package/dist/utils/get-auth-providers.js +0 -19
  730. package/dist/utils/get-auth-providers.test.d.ts +0 -1
  731. package/dist/utils/get-cache-headers.d.ts +0 -10
  732. package/dist/utils/get-cache-headers.js +0 -43
  733. package/dist/utils/get-cache-headers.test.d.ts +0 -1
  734. package/dist/utils/get-cache-key.d.ts +0 -2
  735. package/dist/utils/get-cache-key.js +0 -21
  736. package/dist/utils/get-cache-key.test.d.ts +0 -1
  737. package/dist/utils/get-collection-from-alias.d.ts +0 -6
  738. package/dist/utils/get-collection-from-alias.js +0 -16
  739. package/dist/utils/get-collection-from-alias.test.d.ts +0 -1
  740. package/dist/utils/get-column-path.d.ts +0 -26
  741. package/dist/utils/get-column-path.js +0 -64
  742. package/dist/utils/get-column-path.test.d.ts +0 -1
  743. package/dist/utils/get-column.d.ts +0 -20
  744. package/dist/utils/get-column.js +0 -52
  745. package/dist/utils/get-config-from-env.d.ts +0 -1
  746. package/dist/utils/get-config-from-env.js +0 -48
  747. package/dist/utils/get-config-from-env.test.d.ts +0 -1
  748. package/dist/utils/get-date-formatted.d.ts +0 -1
  749. package/dist/utils/get-date-formatted.js +0 -14
  750. package/dist/utils/get-date-formatted.test.d.ts +0 -1
  751. package/dist/utils/get-default-index-name.d.ts +0 -10
  752. package/dist/utils/get-default-index-name.js +0 -25
  753. package/dist/utils/get-default-value.d.ts +0 -3
  754. package/dist/utils/get-default-value.js +0 -62
  755. package/dist/utils/get-graphql-query-and-variables.d.ts +0 -2
  756. package/dist/utils/get-graphql-query-and-variables.js +0 -9
  757. package/dist/utils/get-graphql-query-and-variables.test.d.ts +0 -1
  758. package/dist/utils/get-graphql-type.d.ts +0 -3
  759. package/dist/utils/get-graphql-type.js +0 -40
  760. package/dist/utils/get-ip-from-req.d.ts +0 -2
  761. package/dist/utils/get-ip-from-req.js +0 -24
  762. package/dist/utils/get-local-type.d.ts +0 -9
  763. package/dist/utils/get-local-type.js +0 -131
  764. package/dist/utils/get-milliseconds.d.ts +0 -4
  765. package/dist/utils/get-milliseconds.js +0 -14
  766. package/dist/utils/get-milliseconds.test.d.ts +0 -1
  767. package/dist/utils/get-module-default.d.ts +0 -3
  768. package/dist/utils/get-module-default.js +0 -9
  769. package/dist/utils/get-os-info.d.ts +0 -9
  770. package/dist/utils/get-os-info.js +0 -47
  771. package/dist/utils/get-permissions.d.ts +0 -2
  772. package/dist/utils/get-permissions.js +0 -158
  773. package/dist/utils/get-relation-info.d.ts +0 -7
  774. package/dist/utils/get-relation-info.js +0 -49
  775. package/dist/utils/get-relation-info.test.d.ts +0 -1
  776. package/dist/utils/get-relation-type.d.ts +0 -6
  777. package/dist/utils/get-relation-type.js +0 -22
  778. package/dist/utils/get-relation-type.test.d.ts +0 -1
  779. package/dist/utils/get-schema.d.ts +0 -10
  780. package/dist/utils/get-schema.js +0 -138
  781. package/dist/utils/get-snapshot-diff.d.ts +0 -2
  782. package/dist/utils/get-snapshot-diff.js +0 -82
  783. package/dist/utils/get-snapshot.d.ts +0 -7
  784. package/dist/utils/get-snapshot.js +0 -80
  785. package/dist/utils/get-string-byte-size.d.ts +0 -4
  786. package/dist/utils/get-string-byte-size.js +0 -10
  787. package/dist/utils/get-string-byte-size.test.d.ts +0 -1
  788. package/dist/utils/get-versioned-hash.d.ts +0 -1
  789. package/dist/utils/get-versioned-hash.js +0 -12
  790. package/dist/utils/get-versioned-hash.test.d.ts +0 -1
  791. package/dist/utils/is-directus-jwt.d.ts +0 -5
  792. package/dist/utils/is-directus-jwt.js +0 -22
  793. package/dist/utils/is-directus-jwt.test.d.ts +0 -1
  794. package/dist/utils/is-url-allowed.d.ts +0 -4
  795. package/dist/utils/is-url-allowed.js +0 -36
  796. package/dist/utils/job-queue.d.ts +0 -9
  797. package/dist/utils/job-queue.js +0 -26
  798. package/dist/utils/jwt.d.ts +0 -2
  799. package/dist/utils/jwt.js +0 -53
  800. package/dist/utils/jwt.test.d.ts +0 -1
  801. package/dist/utils/map-values-deep.d.ts +0 -1
  802. package/dist/utils/map-values-deep.js +0 -29
  803. package/dist/utils/map-values-deep.test.d.ts +0 -1
  804. package/dist/utils/md.d.ts +0 -4
  805. package/dist/utils/md.js +0 -15
  806. package/dist/utils/md.test.d.ts +0 -1
  807. package/dist/utils/merge-permissions-for-share.d.ts +0 -4
  808. package/dist/utils/merge-permissions-for-share.js +0 -115
  809. package/dist/utils/merge-permissions.d.ts +0 -14
  810. package/dist/utils/merge-permissions.js +0 -100
  811. package/dist/utils/merge-permissions.test.d.ts +0 -1
  812. package/dist/utils/parse-image-metadata.d.ts +0 -3
  813. package/dist/utils/parse-image-metadata.js +0 -73
  814. package/dist/utils/reduce-schema.d.ts +0 -9
  815. package/dist/utils/reduce-schema.js +0 -82
  816. package/dist/utils/require-yaml.d.ts +0 -1
  817. package/dist/utils/require-yaml.js +0 -13
  818. package/dist/utils/sanitize-query.d.ts +0 -2
  819. package/dist/utils/sanitize-query.js +0 -179
  820. package/dist/utils/sanitize-query.test.d.ts +0 -1
  821. package/dist/utils/sanitize-schema.d.ts +0 -30
  822. package/dist/utils/sanitize-schema.js +0 -80
  823. package/dist/utils/sanitize-schema.test.d.ts +0 -1
  824. package/dist/utils/should-skip-cache.d.ts +0 -7
  825. package/dist/utils/should-skip-cache.js +0 -21
  826. package/dist/utils/should-skip-cache.test.d.ts +0 -1
  827. package/dist/utils/stall.d.ts +0 -26
  828. package/dist/utils/stall.js +0 -38
  829. package/dist/utils/stall.test.d.ts +0 -1
  830. package/dist/utils/strip-function.d.ts +0 -4
  831. package/dist/utils/strip-function.js +0 -16
  832. package/dist/utils/strip-function.test.d.ts +0 -1
  833. package/dist/utils/track.d.ts +0 -1
  834. package/dist/utils/track.js +0 -81
  835. package/dist/utils/transformations.d.ts +0 -6
  836. package/dist/utils/transformations.js +0 -55
  837. package/dist/utils/url.d.ts +0 -17
  838. package/dist/utils/url.js +0 -63
  839. package/dist/utils/url.test.d.ts +0 -1
  840. package/dist/utils/user-name.d.ts +0 -2
  841. package/dist/utils/user-name.js +0 -19
  842. package/dist/utils/user-name.test.d.ts +0 -1
  843. package/dist/utils/validate-diff.d.ts +0 -7
  844. package/dist/utils/validate-diff.js +0 -113
  845. package/dist/utils/validate-diff.test.d.ts +0 -1
  846. package/dist/utils/validate-env.d.ts +0 -1
  847. package/dist/utils/validate-env.js +0 -18
  848. package/dist/utils/validate-env.test.d.ts +0 -1
  849. package/dist/utils/validate-keys.d.ts +0 -6
  850. package/dist/utils/validate-keys.js +0 -28
  851. package/dist/utils/validate-keys.test.d.ts +0 -1
  852. package/dist/utils/validate-query.d.ts +0 -2
  853. package/dist/utils/validate-query.js +0 -205
  854. package/dist/utils/validate-query.test.d.ts +0 -1
  855. package/dist/utils/validate-snapshot.d.ts +0 -5
  856. package/dist/utils/validate-snapshot.js +0 -71
  857. package/dist/utils/validate-snapshot.test.d.ts +0 -1
  858. package/dist/utils/validate-storage.d.ts +0 -1
  859. package/dist/utils/validate-storage.js +0 -38
  860. package/dist/webhooks.d.ts +0 -4
  861. package/dist/webhooks.js +0 -89
@@ -1,18 +0,0 @@
1
- /// <reference types="node" />
2
- import type { Range, Stat } from '@directus/storage';
3
- import type { Accountability } from '@directus/shared/types';
4
- import type { Knex } from 'knex';
5
- import type { Readable } from 'node:stream';
6
- import type { AbstractServiceOptions, TransformationParams, TransformationPreset } from '../types';
7
- import { AuthorizationService } from './authorization';
8
- export declare class AssetsService {
9
- knex: Knex;
10
- accountability: Accountability | null;
11
- authorizationService: AuthorizationService;
12
- constructor(options: AbstractServiceOptions);
13
- getAsset(id: string, transformation: TransformationParams | TransformationPreset, range?: Range): Promise<{
14
- stream: Readable;
15
- file: any;
16
- stat: Stat;
17
- }>;
18
- }
@@ -1,179 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.AssetsService = void 0;
30
- const lodash_1 = require("lodash");
31
- const mime_types_1 = require("mime-types");
32
- const object_hash_1 = __importDefault(require("object-hash"));
33
- const path_1 = __importDefault(require("path"));
34
- const sharp_1 = __importDefault(require("sharp"));
35
- const uuid_validate_1 = __importDefault(require("uuid-validate"));
36
- const database_1 = __importDefault(require("../database"));
37
- const env_1 = __importDefault(require("../env"));
38
- const exceptions_1 = require("../exceptions");
39
- const service_unavailable_1 = require("../exceptions/service-unavailable");
40
- const logger_1 = __importDefault(require("../logger"));
41
- const storage_1 = require("../storage");
42
- const get_milliseconds_1 = require("../utils/get-milliseconds");
43
- const TransformationUtils = __importStar(require("../utils/transformations"));
44
- const authorization_1 = require("./authorization");
45
- class AssetsService {
46
- knex;
47
- accountability;
48
- authorizationService;
49
- constructor(options) {
50
- this.knex = options.knex || (0, database_1.default)();
51
- this.accountability = options.accountability || null;
52
- this.authorizationService = new authorization_1.AuthorizationService(options);
53
- }
54
- async getAsset(id, transformation, range) {
55
- const storage = await (0, storage_1.getStorage)();
56
- const publicSettings = await this.knex
57
- .select('project_logo', 'public_background', 'public_foreground')
58
- .from('directus_settings')
59
- .first();
60
- const systemPublicKeys = Object.values(publicSettings || {});
61
- /**
62
- * This is a little annoying. Postgres will error out if you're trying to search in `where`
63
- * with a wrong type. In case of directus_files where id is a uuid, we'll have to verify the
64
- * validity of the uuid ahead of time.
65
- */
66
- const isValidUUID = (0, uuid_validate_1.default)(id, 4);
67
- if (isValidUUID === false)
68
- throw new exceptions_1.ForbiddenException();
69
- if (systemPublicKeys.includes(id) === false && this.accountability?.admin !== true) {
70
- await this.authorizationService.checkAccess('read', 'directus_files', id);
71
- }
72
- const file = (await this.knex.select('*').from('directus_files').where({ id }).first());
73
- if (!file)
74
- throw new exceptions_1.ForbiddenException();
75
- const exists = await storage.location(file.storage).exists(file.filename_disk);
76
- if (!exists)
77
- throw new exceptions_1.ForbiddenException();
78
- if (range) {
79
- const missingRangeLimits = range.start === undefined && range.end === undefined;
80
- const endBeforeStart = range.start !== undefined && range.end !== undefined && range.end <= range.start;
81
- const startOverflow = range.start !== undefined && range.start >= file.filesize;
82
- const endUnderflow = range.end !== undefined && range.end <= 0;
83
- if (missingRangeLimits || endBeforeStart || startOverflow || endUnderflow) {
84
- throw new exceptions_1.RangeNotSatisfiableException(range);
85
- }
86
- const lastByte = file.filesize - 1;
87
- if (range.end) {
88
- if (range.start === undefined) {
89
- // fetch chunk from tail
90
- range.start = file.filesize - range.end;
91
- range.end = lastByte;
92
- }
93
- if (range.end >= file.filesize) {
94
- // fetch entire file
95
- range.end = lastByte;
96
- }
97
- }
98
- if (range.start) {
99
- if (range.end === undefined) {
100
- // fetch entire file
101
- range.end = lastByte;
102
- }
103
- if (range.start < 0) {
104
- // fetch file from head
105
- range.start = 0;
106
- }
107
- }
108
- }
109
- const type = file.type;
110
- const transforms = TransformationUtils.resolvePreset(transformation, file);
111
- // We can only transform JPEG, PNG, and WebP
112
- if (type && transforms.length > 0 && ['image/jpeg', 'image/png', 'image/webp', 'image/tiff'].includes(type)) {
113
- const maybeNewFormat = TransformationUtils.maybeExtractFormat(transforms);
114
- const assetFilename = path_1.default.basename(file.filename_disk, path_1.default.extname(file.filename_disk)) +
115
- getAssetSuffix(transforms) +
116
- (maybeNewFormat ? `.${maybeNewFormat}` : path_1.default.extname(file.filename_disk));
117
- const exists = await storage.location(file.storage).exists(assetFilename);
118
- if (maybeNewFormat) {
119
- file.type = (0, mime_types_1.contentType)(assetFilename) || null;
120
- }
121
- if (exists) {
122
- return {
123
- stream: await storage.location(file.storage).read(assetFilename, range),
124
- file,
125
- stat: await storage.location(file.storage).stat(assetFilename),
126
- };
127
- }
128
- // Check image size before transforming. Processing an image that's too large for the
129
- // system memory will kill the API. Sharp technically checks for this too in it's
130
- // limitInputPixels, but we should have that check applied before starting the read streams
131
- const { width, height } = file;
132
- if (!width ||
133
- !height ||
134
- width > env_1.default['ASSETS_TRANSFORM_IMAGE_MAX_DIMENSION'] ||
135
- height > env_1.default['ASSETS_TRANSFORM_IMAGE_MAX_DIMENSION']) {
136
- throw new exceptions_1.IllegalAssetTransformation(`Image is too large to be transformed, or image size couldn't be determined.`);
137
- }
138
- const { queue, process } = sharp_1.default.counters();
139
- if (queue + process > env_1.default['ASSETS_TRANSFORM_MAX_CONCURRENT']) {
140
- throw new service_unavailable_1.ServiceUnavailableException('Server too busy', {
141
- service: 'files',
142
- });
143
- }
144
- const readStream = await storage.location(file.storage).read(file.filename_disk, range);
145
- const transformer = (0, sharp_1.default)({
146
- limitInputPixels: Math.pow(env_1.default['ASSETS_TRANSFORM_IMAGE_MAX_DIMENSION'], 2),
147
- sequentialRead: true,
148
- failOn: env_1.default['ASSETS_INVALID_IMAGE_SENSITIVITY_LEVEL'],
149
- });
150
- transformer.timeout({
151
- seconds: (0, lodash_1.clamp)(Math.round((0, get_milliseconds_1.getMilliseconds)(env_1.default['ASSETS_TRANSFORM_TIMEOUT'], 0) / 1000), 1, 3600),
152
- });
153
- if (transforms.find((transform) => transform[0] === 'rotate') === undefined)
154
- transformer.rotate();
155
- transforms.forEach(([method, ...args]) => transformer[method].apply(transformer, args));
156
- readStream.on('error', (e) => {
157
- logger_1.default.error(e, `Couldn't transform file ${file.id}`);
158
- readStream.unpipe(transformer);
159
- });
160
- await storage.location(file.storage).write(assetFilename, readStream.pipe(transformer), type);
161
- return {
162
- stream: await storage.location(file.storage).read(assetFilename, range),
163
- stat: await storage.location(file.storage).stat(assetFilename),
164
- file,
165
- };
166
- }
167
- else {
168
- const readStream = await storage.location(file.storage).read(file.filename_disk, range);
169
- const stat = await storage.location(file.storage).stat(file.filename_disk);
170
- return { stream: readStream, file, stat };
171
- }
172
- }
173
- }
174
- exports.AssetsService = AssetsService;
175
- const getAssetSuffix = (transforms) => {
176
- if (Object.keys(transforms).length === 0)
177
- return '';
178
- return `__${(0, object_hash_1.default)(transforms)}`;
179
- };
@@ -1,21 +0,0 @@
1
- import { Accountability, SchemaOverview } from '@directus/shared/types';
2
- import type { Knex } from 'knex';
3
- import type { AbstractServiceOptions, LoginResult } from '../types';
4
- import { ActivityService } from './activity';
5
- export declare class AuthenticationService {
6
- knex: Knex;
7
- accountability: Accountability | null;
8
- activityService: ActivityService;
9
- schema: SchemaOverview;
10
- constructor(options: AbstractServiceOptions);
11
- /**
12
- * Retrieve the tokens for a given user email.
13
- *
14
- * Password is optional to allow usage of this function within the SSO flow and extensions. Make sure
15
- * to handle password existence checks elsewhere
16
- */
17
- login(providerName: string | undefined, payload: Record<string, any>, otp?: string): Promise<LoginResult>;
18
- refresh(refreshToken: string): Promise<Record<string, any>>;
19
- logout(refreshToken: string): Promise<void>;
20
- verifyPassword(userID: string, password: string): Promise<void>;
21
- }
@@ -1,332 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AuthenticationService = void 0;
7
- const types_1 = require("@directus/shared/types");
8
- const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
9
- const lodash_1 = require("lodash");
10
- const perf_hooks_1 = require("perf_hooks");
11
- const auth_1 = require("../auth");
12
- const constants_1 = require("../constants");
13
- const database_1 = __importDefault(require("../database"));
14
- const emitter_1 = __importDefault(require("../emitter"));
15
- const env_1 = __importDefault(require("../env"));
16
- const exceptions_1 = require("../exceptions");
17
- const rate_limiter_1 = require("../rate-limiter");
18
- const get_milliseconds_1 = require("../utils/get-milliseconds");
19
- const stall_1 = require("../utils/stall");
20
- const activity_1 = require("./activity");
21
- const settings_1 = require("./settings");
22
- const tfa_1 = require("./tfa");
23
- const loginAttemptsLimiter = (0, rate_limiter_1.createRateLimiter)('RATE_LIMITER', { duration: 0 });
24
- class AuthenticationService {
25
- knex;
26
- accountability;
27
- activityService;
28
- schema;
29
- constructor(options) {
30
- this.knex = options.knex || (0, database_1.default)();
31
- this.accountability = options.accountability || null;
32
- this.activityService = new activity_1.ActivityService({ knex: this.knex, schema: options.schema });
33
- this.schema = options.schema;
34
- }
35
- /**
36
- * Retrieve the tokens for a given user email.
37
- *
38
- * Password is optional to allow usage of this function within the SSO flow and extensions. Make sure
39
- * to handle password existence checks elsewhere
40
- */
41
- async login(providerName = constants_1.DEFAULT_AUTH_PROVIDER, payload, otp) {
42
- const { nanoid } = await import('nanoid');
43
- const STALL_TIME = env_1.default['LOGIN_STALL_TIME'];
44
- const timeStart = perf_hooks_1.performance.now();
45
- const provider = (0, auth_1.getAuthProvider)(providerName);
46
- let userId;
47
- try {
48
- userId = await provider.getUserID((0, lodash_1.cloneDeep)(payload));
49
- }
50
- catch (err) {
51
- await (0, stall_1.stall)(STALL_TIME, timeStart);
52
- throw err;
53
- }
54
- const user = await this.knex
55
- .select('u.id', 'u.first_name', 'u.last_name', 'u.email', 'u.password', 'u.status', 'u.role', 'r.admin_access', 'r.app_access', 'u.tfa_secret', 'u.provider', 'u.external_identifier', 'u.auth_data')
56
- .from('directus_users as u')
57
- .leftJoin('directus_roles as r', 'u.role', 'r.id')
58
- .where('u.id', userId)
59
- .first();
60
- const updatedPayload = await emitter_1.default.emitFilter('auth.login', payload, {
61
- status: 'pending',
62
- user: user?.id,
63
- provider: providerName,
64
- }, {
65
- database: this.knex,
66
- schema: this.schema,
67
- accountability: this.accountability,
68
- });
69
- const emitStatus = (status) => {
70
- emitter_1.default.emitAction('auth.login', {
71
- payload: updatedPayload,
72
- status,
73
- user: user?.id,
74
- provider: providerName,
75
- }, {
76
- database: this.knex,
77
- schema: this.schema,
78
- accountability: this.accountability,
79
- });
80
- };
81
- if (user?.status !== 'active') {
82
- emitStatus('fail');
83
- if (user?.status === 'suspended') {
84
- await (0, stall_1.stall)(STALL_TIME, timeStart);
85
- throw new exceptions_1.UserSuspendedException();
86
- }
87
- else {
88
- await (0, stall_1.stall)(STALL_TIME, timeStart);
89
- throw new exceptions_1.InvalidCredentialsException();
90
- }
91
- }
92
- else if (user.provider !== providerName) {
93
- await (0, stall_1.stall)(STALL_TIME, timeStart);
94
- throw new exceptions_1.InvalidProviderException();
95
- }
96
- const settingsService = new settings_1.SettingsService({
97
- knex: this.knex,
98
- schema: this.schema,
99
- });
100
- const { auth_login_attempts: allowedAttempts } = await settingsService.readSingleton({
101
- fields: ['auth_login_attempts'],
102
- });
103
- if (allowedAttempts !== null) {
104
- loginAttemptsLimiter.points = allowedAttempts;
105
- try {
106
- await loginAttemptsLimiter.consume(user.id);
107
- }
108
- catch {
109
- await this.knex('directus_users').update({ status: 'suspended' }).where({ id: user.id });
110
- user.status = 'suspended';
111
- // This means that new attempts after the user has been re-activated will be accepted
112
- await loginAttemptsLimiter.set(user.id, 0, 0);
113
- }
114
- }
115
- try {
116
- await provider.login((0, lodash_1.clone)(user), (0, lodash_1.cloneDeep)(updatedPayload));
117
- }
118
- catch (e) {
119
- emitStatus('fail');
120
- await (0, stall_1.stall)(STALL_TIME, timeStart);
121
- throw e;
122
- }
123
- if (user.tfa_secret && !otp) {
124
- emitStatus('fail');
125
- await (0, stall_1.stall)(STALL_TIME, timeStart);
126
- throw new exceptions_1.InvalidOTPException(`"otp" is required`);
127
- }
128
- if (user.tfa_secret && otp) {
129
- const tfaService = new tfa_1.TFAService({ knex: this.knex, schema: this.schema });
130
- const otpValid = await tfaService.verifyOTP(user.id, otp);
131
- if (otpValid === false) {
132
- emitStatus('fail');
133
- await (0, stall_1.stall)(STALL_TIME, timeStart);
134
- throw new exceptions_1.InvalidOTPException(`"otp" is invalid`);
135
- }
136
- }
137
- const tokenPayload = {
138
- id: user.id,
139
- role: user.role,
140
- app_access: user.app_access,
141
- admin_access: user.admin_access,
142
- };
143
- const customClaims = await emitter_1.default.emitFilter('auth.jwt', tokenPayload, {
144
- status: 'pending',
145
- user: user?.id,
146
- provider: providerName,
147
- type: 'login',
148
- }, {
149
- database: this.knex,
150
- schema: this.schema,
151
- accountability: this.accountability,
152
- });
153
- const accessToken = jsonwebtoken_1.default.sign(customClaims, env_1.default['SECRET'], {
154
- expiresIn: env_1.default['ACCESS_TOKEN_TTL'],
155
- issuer: 'directus',
156
- });
157
- const refreshToken = nanoid(64);
158
- const refreshTokenExpiration = new Date(Date.now() + (0, get_milliseconds_1.getMilliseconds)(env_1.default['REFRESH_TOKEN_TTL'], 0));
159
- await this.knex('directus_sessions').insert({
160
- token: refreshToken,
161
- user: user.id,
162
- expires: refreshTokenExpiration,
163
- ip: this.accountability?.ip,
164
- user_agent: this.accountability?.userAgent,
165
- origin: this.accountability?.origin,
166
- });
167
- await this.knex('directus_sessions').delete().where('expires', '<', new Date());
168
- if (this.accountability) {
169
- await this.activityService.createOne({
170
- action: types_1.Action.LOGIN,
171
- user: user.id,
172
- ip: this.accountability.ip,
173
- user_agent: this.accountability.userAgent,
174
- origin: this.accountability.origin,
175
- collection: 'directus_users',
176
- item: user.id,
177
- });
178
- }
179
- await this.knex('directus_users').update({ last_access: new Date() }).where({ id: user.id });
180
- emitStatus('success');
181
- if (allowedAttempts !== null) {
182
- await loginAttemptsLimiter.set(user.id, 0, 0);
183
- }
184
- await (0, stall_1.stall)(STALL_TIME, timeStart);
185
- return {
186
- accessToken,
187
- refreshToken,
188
- expires: (0, get_milliseconds_1.getMilliseconds)(env_1.default['ACCESS_TOKEN_TTL']),
189
- id: user.id,
190
- };
191
- }
192
- async refresh(refreshToken) {
193
- const { nanoid } = await import('nanoid');
194
- if (!refreshToken) {
195
- throw new exceptions_1.InvalidCredentialsException();
196
- }
197
- const record = await this.knex
198
- .select({
199
- session_expires: 's.expires',
200
- user_id: 'u.id',
201
- user_first_name: 'u.first_name',
202
- user_last_name: 'u.last_name',
203
- user_email: 'u.email',
204
- user_password: 'u.password',
205
- user_status: 'u.status',
206
- user_provider: 'u.provider',
207
- user_external_identifier: 'u.external_identifier',
208
- user_auth_data: 'u.auth_data',
209
- role_id: 'r.id',
210
- role_admin_access: 'r.admin_access',
211
- role_app_access: 'r.app_access',
212
- share_id: 'd.id',
213
- share_item: 'd.item',
214
- share_role: 'd.role',
215
- share_collection: 'd.collection',
216
- share_start: 'd.date_start',
217
- share_end: 'd.date_end',
218
- share_times_used: 'd.times_used',
219
- share_max_uses: 'd.max_uses',
220
- })
221
- .from('directus_sessions AS s')
222
- .leftJoin('directus_users AS u', 's.user', 'u.id')
223
- .leftJoin('directus_shares AS d', 's.share', 'd.id')
224
- .leftJoin('directus_roles AS r', (join) => {
225
- join.onIn('r.id', [this.knex.ref('u.role'), this.knex.ref('d.role')]);
226
- })
227
- .where('s.token', refreshToken)
228
- .andWhere('s.expires', '>=', new Date())
229
- .andWhere((subQuery) => {
230
- subQuery.whereNull('d.date_end').orWhere('d.date_end', '>=', new Date());
231
- })
232
- .andWhere((subQuery) => {
233
- subQuery.whereNull('d.date_start').orWhere('d.date_start', '<=', new Date());
234
- })
235
- .first();
236
- if (!record || (!record.share_id && !record.user_id)) {
237
- throw new exceptions_1.InvalidCredentialsException();
238
- }
239
- if (record.user_id) {
240
- const provider = (0, auth_1.getAuthProvider)(record.user_provider);
241
- await provider.refresh({
242
- id: record.user_id,
243
- first_name: record.user_first_name,
244
- last_name: record.user_last_name,
245
- email: record.user_email,
246
- password: record.user_password,
247
- status: record.user_status,
248
- provider: record.user_provider,
249
- external_identifier: record.user_external_identifier,
250
- auth_data: record.user_auth_data,
251
- role: record.role_id,
252
- app_access: record.role_app_access,
253
- admin_access: record.role_admin_access,
254
- });
255
- }
256
- const tokenPayload = {
257
- id: record.user_id,
258
- role: record.role_id,
259
- app_access: record.role_app_access,
260
- admin_access: record.role_admin_access,
261
- };
262
- if (record.share_id) {
263
- tokenPayload.share = record.share_id;
264
- tokenPayload.role = record.share_role;
265
- tokenPayload.share_scope = {
266
- collection: record.share_collection,
267
- item: record.share_item,
268
- };
269
- tokenPayload.app_access = false;
270
- tokenPayload.admin_access = false;
271
- delete tokenPayload.id;
272
- }
273
- const customClaims = await emitter_1.default.emitFilter('auth.jwt', tokenPayload, {
274
- status: 'pending',
275
- user: record.user_id,
276
- provider: record.user_provider,
277
- type: 'refresh',
278
- }, {
279
- database: this.knex,
280
- schema: this.schema,
281
- accountability: this.accountability,
282
- });
283
- const accessToken = jsonwebtoken_1.default.sign(customClaims, env_1.default['SECRET'], {
284
- expiresIn: env_1.default['ACCESS_TOKEN_TTL'],
285
- issuer: 'directus',
286
- });
287
- const newRefreshToken = nanoid(64);
288
- const refreshTokenExpiration = new Date(Date.now() + (0, get_milliseconds_1.getMilliseconds)(env_1.default['REFRESH_TOKEN_TTL'], 0));
289
- await this.knex('directus_sessions')
290
- .update({
291
- token: newRefreshToken,
292
- expires: refreshTokenExpiration,
293
- })
294
- .where({ token: refreshToken });
295
- if (record.user_id) {
296
- await this.knex('directus_users').update({ last_access: new Date() }).where({ id: record.user_id });
297
- }
298
- return {
299
- accessToken,
300
- refreshToken: newRefreshToken,
301
- expires: (0, get_milliseconds_1.getMilliseconds)(env_1.default['ACCESS_TOKEN_TTL']),
302
- id: record.user_id,
303
- };
304
- }
305
- async logout(refreshToken) {
306
- const record = await this.knex
307
- .select('u.id', 'u.first_name', 'u.last_name', 'u.email', 'u.password', 'u.status', 'u.role', 'u.provider', 'u.external_identifier', 'u.auth_data')
308
- .from('directus_sessions as s')
309
- .innerJoin('directus_users as u', 's.user', 'u.id')
310
- .where('s.token', refreshToken)
311
- .first();
312
- if (record) {
313
- const user = record;
314
- const provider = (0, auth_1.getAuthProvider)(user.provider);
315
- await provider.logout((0, lodash_1.clone)(user));
316
- await this.knex.delete().from('directus_sessions').where('token', refreshToken);
317
- }
318
- }
319
- async verifyPassword(userID, password) {
320
- const user = await this.knex
321
- .select('id', 'first_name', 'last_name', 'email', 'password', 'status', 'role', 'provider', 'external_identifier', 'auth_data')
322
- .from('directus_users')
323
- .where('id', userID)
324
- .first();
325
- if (!user) {
326
- throw new exceptions_1.InvalidCredentialsException();
327
- }
328
- const provider = (0, auth_1.getAuthProvider)(user.provider);
329
- await provider.verify((0, lodash_1.clone)(user), password);
330
- }
331
- }
332
- exports.AuthenticationService = AuthenticationService;
@@ -1,17 +0,0 @@
1
- import type { Accountability, PermissionsAction, SchemaOverview } from '@directus/shared/types';
2
- import type { Knex } from 'knex';
3
- import type { AbstractServiceOptions, AST, Item, PrimaryKey } from '../types';
4
- import { PayloadService } from './payload';
5
- export declare class AuthorizationService {
6
- knex: Knex;
7
- accountability: Accountability | null;
8
- payloadService: PayloadService;
9
- schema: SchemaOverview;
10
- constructor(options: AbstractServiceOptions);
11
- processAST(ast: AST, action?: PermissionsAction): Promise<AST>;
12
- /**
13
- * Checks if the provided payload matches the configured permissions, and adds the presets to the payload.
14
- */
15
- validatePayload(action: PermissionsAction, collection: string, data: Partial<Item>): Partial<Item>;
16
- checkAccess(action: PermissionsAction, collection: string, pk: PrimaryKey | PrimaryKey[]): Promise<void>;
17
- }