@directus/api 35.0.2 → 35.2.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 (785) hide show
  1. package/dist/_virtual/rolldown_runtime.js +1 -24
  2. package/dist/ai/chat/controllers/chat.post.js +9 -22
  3. package/dist/ai/chat/controllers/object.post.js +58 -0
  4. package/dist/ai/chat/lib/create-ui-stream.js +10 -18
  5. package/dist/ai/chat/lib/transform-file-parts.js +1 -3
  6. package/dist/ai/chat/middleware/load-settings.js +1 -2
  7. package/dist/ai/chat/models/chat-request.js +2 -9
  8. package/dist/ai/chat/models/object-request.js +19 -0
  9. package/dist/ai/chat/router.js +3 -2
  10. package/dist/ai/chat/utils/add-additional-properties-to-json-schema.js +37 -0
  11. package/dist/ai/chat/utils/chat-request-tool-to-ai-sdk-tool.js +3 -8
  12. package/dist/ai/chat/utils/fix-error-tool-calls.js +4 -6
  13. package/dist/ai/chat/utils/format-context.js +17 -27
  14. package/dist/ai/chat/utils/parse-json-schema-7.js +3 -6
  15. package/dist/ai/chat/utils/zod-jsonschema7-parser.js +16 -0
  16. package/dist/ai/devtools/index.js +1 -2
  17. package/dist/ai/files/adapters/anthropic.js +1 -3
  18. package/dist/ai/files/adapters/google.js +5 -12
  19. package/dist/ai/files/adapters/openai.js +1 -3
  20. package/dist/ai/files/controllers/upload.js +8 -24
  21. package/dist/ai/files/lib/fetch-provider.js +1 -3
  22. package/dist/ai/files/lib/upload-to-provider.js +6 -16
  23. package/dist/ai/mcp/server.js +58 -102
  24. package/dist/ai/mcp/transport.js +2 -6
  25. package/dist/ai/providers/anthropic-file-support.js +28 -41
  26. package/dist/ai/providers/anthropic-tool-search.js +10 -14
  27. package/dist/ai/providers/index.js +0 -1
  28. package/dist/ai/providers/options.js +2 -7
  29. package/dist/ai/providers/registry.js +38 -48
  30. package/dist/ai/telemetry/braintrust.js +3 -9
  31. package/dist/ai/telemetry/index.js +14 -13
  32. package/dist/ai/telemetry/langfuse.js +8 -22
  33. package/dist/ai/tools/assets/index.js +15 -23
  34. package/dist/ai/tools/collections/index.js +9 -19
  35. package/dist/ai/tools/fields/index.js +13 -27
  36. package/dist/ai/tools/files/index.js +11 -24
  37. package/dist/ai/tools/flows/index.js +8 -16
  38. package/dist/ai/tools/folders/index.js +11 -23
  39. package/dist/ai/tools/items/index.js +19 -44
  40. package/dist/ai/tools/operations/index.js +7 -13
  41. package/dist/ai/tools/relations/index.js +5 -11
  42. package/dist/ai/tools/schema/index.js +39 -91
  43. package/dist/ai/tools/trigger-flow/index.js +9 -16
  44. package/dist/ai/tools/utils.js +4 -8
  45. package/dist/app.js +19 -51
  46. package/dist/auth/auth.js +3 -9
  47. package/dist/auth/drivers/ldap.js +39 -82
  48. package/dist/auth/drivers/local.js +4 -12
  49. package/dist/auth/drivers/oauth2.js +32 -63
  50. package/dist/auth/drivers/openid.js +49 -89
  51. package/dist/auth/drivers/saml.js +16 -31
  52. package/dist/auth/utils/generate-callback-url.js +2 -7
  53. package/dist/auth/utils/resolve-login-redirect.js +11 -21
  54. package/dist/auth.js +2 -5
  55. package/dist/bus/lib/use-bus.js +3 -7
  56. package/dist/cache.js +11 -24
  57. package/dist/cli/commands/bootstrap/index.js +10 -19
  58. package/dist/cli/commands/cache/clear.js +1 -3
  59. package/dist/cli/commands/database/migrate.js +2 -5
  60. package/dist/cli/commands/init/index.js +3 -5
  61. package/dist/cli/commands/init/questions.js +2 -3
  62. package/dist/cli/commands/schema/apply.js +39 -81
  63. package/dist/cli/commands/schema/snapshot.js +3 -8
  64. package/dist/cli/commands/users/create.js +3 -5
  65. package/dist/cli/commands/users/passwd.js +2 -5
  66. package/dist/cli/index.js +1 -2
  67. package/dist/cli/load-extensions.js +3 -6
  68. package/dist/cli/utils/create-db-connection.js +7 -12
  69. package/dist/cli/utils/create-env/index.js +2 -6
  70. package/dist/cli/utils/drivers.js +1 -3
  71. package/dist/controllers/access.js +15 -30
  72. package/dist/controllers/activity.js +5 -10
  73. package/dist/controllers/assets.js +67 -62
  74. package/dist/controllers/auth.js +19 -52
  75. package/dist/controllers/collections.js +8 -17
  76. package/dist/controllers/comments.js +15 -30
  77. package/dist/controllers/dashboards.js +13 -25
  78. package/dist/controllers/deployment-webhooks.js +6 -12
  79. package/dist/controllers/deployment.js +39 -90
  80. package/dist/controllers/extensions.js +53 -98
  81. package/dist/controllers/fields.js +17 -38
  82. package/dist/controllers/files.js +31 -68
  83. package/dist/controllers/flows.js +15 -30
  84. package/dist/controllers/folders.js +16 -32
  85. package/dist/controllers/graphql.js +2 -6
  86. package/dist/controllers/items.js +18 -38
  87. package/dist/controllers/mcp.js +4 -8
  88. package/dist/controllers/metrics.js +4 -12
  89. package/dist/controllers/not-found.js +2 -5
  90. package/dist/controllers/notifications.js +16 -32
  91. package/dist/controllers/operations.js +13 -25
  92. package/dist/controllers/panels.js +13 -25
  93. package/dist/controllers/permissions.js +18 -35
  94. package/dist/controllers/policies.js +15 -30
  95. package/dist/controllers/presets.js +16 -32
  96. package/dist/controllers/relations.js +12 -24
  97. package/dist/controllers/revisions.js +2 -3
  98. package/dist/controllers/roles.js +13 -25
  99. package/dist/controllers/schema.js +21 -32
  100. package/dist/controllers/server.js +32 -44
  101. package/dist/controllers/settings.js +5 -9
  102. package/dist/controllers/shares.js +20 -40
  103. package/dist/controllers/translations.js +16 -32
  104. package/dist/controllers/tus.js +4 -11
  105. package/dist/controllers/users.js +46 -100
  106. package/dist/controllers/utils/handle-registry-error.js +26 -0
  107. package/dist/controllers/utils.js +20 -41
  108. package/dist/controllers/versions.js +20 -41
  109. package/dist/database/errors/dialects/mssql.js +8 -21
  110. package/dist/database/errors/dialects/mysql.js +7 -14
  111. package/dist/database/errors/dialects/oracle.js +3 -6
  112. package/dist/database/errors/dialects/postgres.js +8 -18
  113. package/dist/database/errors/dialects/sqlite.js +16 -21
  114. package/dist/database/errors/translate.js +1 -2
  115. package/dist/database/get-ast-from-query/get-ast-from-query.js +4 -12
  116. package/dist/database/get-ast-from-query/lib/convert-wildcards.js +15 -29
  117. package/dist/database/get-ast-from-query/lib/parse-fields.js +17 -41
  118. package/dist/database/get-ast-from-query/utils/get-allowed-sort.js +5 -14
  119. package/dist/database/get-ast-from-query/utils/get-related-collection.js +2 -6
  120. package/dist/database/helpers/date/dialects/mysql.js +1 -1
  121. package/dist/database/helpers/date/dialects/oracle.js +3 -9
  122. package/dist/database/helpers/date/dialects/sqlite.js +3 -9
  123. package/dist/database/helpers/date/types.js +1 -3
  124. package/dist/database/helpers/fn/dialects/mssql.js +4 -12
  125. package/dist/database/helpers/fn/dialects/mysql.js +5 -14
  126. package/dist/database/helpers/fn/dialects/oracle.js +4 -12
  127. package/dist/database/helpers/fn/dialects/postgres.js +5 -14
  128. package/dist/database/helpers/fn/dialects/sqlite.js +4 -12
  129. package/dist/database/helpers/fn/json/parse-function.js +9 -27
  130. package/dist/database/helpers/fn/types.js +1 -3
  131. package/dist/database/helpers/geometry/dialects/mssql.js +1 -3
  132. package/dist/database/helpers/geometry/dialects/oracle.js +1 -3
  133. package/dist/database/helpers/geometry/dialects/postgres.js +1 -2
  134. package/dist/database/helpers/geometry/dialects/redshift.js +1 -3
  135. package/dist/database/helpers/geometry/dialects/sqlite.js +1 -2
  136. package/dist/database/helpers/index.js +1 -2
  137. package/dist/database/helpers/number/dialects/postgres.js +1 -3
  138. package/dist/database/helpers/number/utils/decimal-limit.js +2 -4
  139. package/dist/database/helpers/number/utils/maybe-stringify-big-int.js +1 -3
  140. package/dist/database/helpers/schema/dialects/cockroachdb.js +8 -15
  141. package/dist/database/helpers/schema/dialects/mssql.js +8 -15
  142. package/dist/database/helpers/schema/dialects/mysql.js +8 -14
  143. package/dist/database/helpers/schema/dialects/oracle.js +13 -28
  144. package/dist/database/helpers/schema/dialects/postgres.js +6 -10
  145. package/dist/database/helpers/schema/dialects/sqlite.js +1 -3
  146. package/dist/database/helpers/schema/types.js +12 -35
  147. package/dist/database/helpers/schema/utils/prep-query-params.js +4 -7
  148. package/dist/database/helpers/sequence/types.js +1 -3
  149. package/dist/database/index.js +41 -79
  150. package/dist/database/migrations/20201029A-remove-system-relations.js +1 -5
  151. package/dist/database/migrations/20201029B-remove-system-collections.js +1 -5
  152. package/dist/database/migrations/20201029C-remove-system-fields.js +1 -5
  153. package/dist/database/migrations/20201105A-add-cascade-system-relations.js +9 -15
  154. package/dist/database/migrations/20210225A-add-relations-sort-field.js +4 -6
  155. package/dist/database/migrations/20210415A-make-filesize-nullable.js +2 -4
  156. package/dist/database/migrations/20210506A-rename-interfaces.js +13 -20
  157. package/dist/database/migrations/20210518A-add-foreign-key-constraints.js +7 -18
  158. package/dist/database/migrations/20210519A-add-system-fk-triggers.js +58 -67
  159. package/dist/database/migrations/20210626A-change-filesize-bigint.js +2 -8
  160. package/dist/database/migrations/20210802A-replace-groups.js +7 -9
  161. package/dist/database/migrations/20210805A-update-groups.js +4 -14
  162. package/dist/database/migrations/20210805B-change-image-metadata-structure.js +2 -6
  163. package/dist/database/migrations/20210920A-webhooks-url-not-null.js +2 -6
  164. package/dist/database/migrations/20210927A-replace-fields-group.js +5 -11
  165. package/dist/database/migrations/20211007A-update-presets.js +4 -12
  166. package/dist/database/migrations/20220303A-remove-default-project-color.js +2 -4
  167. package/dist/database/migrations/20220322A-rename-field-typecast-flags.js +2 -6
  168. package/dist/database/migrations/20220325A-fix-typecast-flags.js +3 -8
  169. package/dist/database/migrations/20220402A-remove-default-value-panel-icon.js +2 -4
  170. package/dist/database/migrations/20220429A-add-flows.js +2 -4
  171. package/dist/database/migrations/20220801A-update-notifications-timestamp-column.js +2 -4
  172. package/dist/database/migrations/20230401A-update-material-icons.js +2 -4
  173. package/dist/database/migrations/20230526A-migrate-translation-strings.js +9 -16
  174. package/dist/database/migrations/20230721A-require-shares-fields.js +9 -20
  175. package/dist/database/migrations/20231009A-update-csv-fields-to-text.js +15 -22
  176. package/dist/database/migrations/20231009B-update-panel-options.js +4 -12
  177. package/dist/database/migrations/20240204A-marketplace.js +20 -26
  178. package/dist/database/migrations/20240311A-deprecate-webhooks.js +1 -1
  179. package/dist/database/migrations/20240716A-update-files-date-fields.js +8 -14
  180. package/dist/database/migrations/20240806A-permissions-policies.js +17 -39
  181. package/dist/database/migrations/20240909A-separate-comments.js +14 -17
  182. package/dist/database/migrations/20240924A-migrate-legacy-comments.js +6 -11
  183. package/dist/database/migrations/20240924B-populate-versioning-deltas.js +1 -3
  184. package/dist/database/migrations/20250224A-visual-editor.js +1 -2
  185. package/dist/database/migrations/20250609A-license-banner.js +1 -2
  186. package/dist/database/migrations/20250613A-add-project-id.js +2 -5
  187. package/dist/database/migrations/20251014A-add-project-owner.js +7 -10
  188. package/dist/database/migrations/20251028A-add-retention-indexes.js +7 -15
  189. package/dist/database/migrations/20260113A-add-revisions-index.js +7 -15
  190. package/dist/database/migrations/run.js +23 -50
  191. package/dist/database/run-ast/lib/apply-query/add-join.js +8 -20
  192. package/dist/database/run-ast/lib/apply-query/aggregate.js +1 -3
  193. package/dist/database/run-ast/lib/apply-query/filter/get-filter-type.js +3 -9
  194. package/dist/database/run-ast/lib/apply-query/filter/index.js +9 -27
  195. package/dist/database/run-ast/lib/apply-query/filter/operator.js +42 -107
  196. package/dist/database/run-ast/lib/apply-query/filter/validate-operator.js +3 -9
  197. package/dist/database/run-ast/lib/apply-query/get-filter-path.js +2 -6
  198. package/dist/database/run-ast/lib/apply-query/get-operation.js +9 -14
  199. package/dist/database/run-ast/lib/apply-query/index.js +20 -39
  200. package/dist/database/run-ast/lib/apply-query/join-filter-with-cases.js +3 -7
  201. package/dist/database/run-ast/lib/apply-query/pagination.js +2 -6
  202. package/dist/database/run-ast/lib/apply-query/search.js +17 -41
  203. package/dist/database/run-ast/lib/apply-query/sort.js +16 -30
  204. package/dist/database/run-ast/lib/get-db-query.js +7 -15
  205. package/dist/database/run-ast/lib/parse-current-level.js +10 -23
  206. package/dist/database/run-ast/modules/fetch-permitted-ast-root-fields.js +10 -14
  207. package/dist/database/run-ast/run-ast.js +30 -52
  208. package/dist/database/run-ast/utils/apply-case-when.js +1 -3
  209. package/dist/database/run-ast/utils/apply-function-to-column-name.js +2 -6
  210. package/dist/database/run-ast/utils/apply-parent-filters.js +14 -19
  211. package/dist/database/run-ast/utils/generate-alias.js +9 -14
  212. package/dist/database/run-ast/utils/get-column-pre-processor.js +14 -26
  213. package/dist/database/run-ast/utils/get-column.js +5 -14
  214. package/dist/database/run-ast/utils/get-inner-query-column-pre-processor.js +1 -3
  215. package/dist/database/run-ast/utils/merge-with-parent-items.js +31 -63
  216. package/dist/database/run-ast/utils/remove-temporary-fields.js +15 -29
  217. package/dist/database/run-ast/utils/with-preprocess-bindings.js +2 -6
  218. package/dist/database/seeds/run.js +19 -45
  219. package/dist/deployment/deployment.js +2 -8
  220. package/dist/deployment/drivers/netlify.js +43 -88
  221. package/dist/deployment/drivers/vercel.js +34 -72
  222. package/dist/deployment.js +8 -14
  223. package/dist/emitter.js +14 -21
  224. package/dist/extensions/index.js +1 -3
  225. package/dist/extensions/lib/get-extensions-path.js +1 -3
  226. package/dist/extensions/lib/get-extensions-settings.js +26 -42
  227. package/dist/extensions/lib/get-extensions.js +3 -7
  228. package/dist/extensions/lib/get-shared-deps-mapping.js +3 -7
  229. package/dist/extensions/lib/installation/index.js +1 -3
  230. package/dist/extensions/lib/installation/manager.js +12 -26
  231. package/dist/extensions/lib/sandbox/generate-host-function-reference.js +2 -5
  232. package/dist/extensions/lib/sandbox/register/call-reference.js +1 -1
  233. package/dist/extensions/lib/sandbox/register/filter.js +1 -2
  234. package/dist/extensions/lib/sandbox/register/operation.js +1 -2
  235. package/dist/extensions/lib/sandbox/register/route.js +2 -4
  236. package/dist/extensions/lib/sandbox/sdk/generators/log.js +1 -1
  237. package/dist/extensions/lib/sandbox/sdk/generators/request.js +13 -28
  238. package/dist/extensions/lib/sandbox/sdk/generators/sleep.js +2 -3
  239. package/dist/extensions/lib/sandbox/sdk/utils/wrap.js +4 -9
  240. package/dist/extensions/lib/sync/status.js +4 -11
  241. package/dist/extensions/lib/sync/sync.js +8 -14
  242. package/dist/extensions/lib/sync/tracker.js +7 -10
  243. package/dist/extensions/lib/sync/utils.js +5 -9
  244. package/dist/extensions/manager.js +62 -110
  245. package/dist/flows.js +237 -277
  246. package/dist/lock/lib/use-lock.js +3 -7
  247. package/dist/logger/index.js +37 -57
  248. package/dist/logger/redact-query.js +1 -3
  249. package/dist/mailer.js +12 -18
  250. package/dist/metrics/lib/create-metrics.js +69 -117
  251. package/dist/metrics/lib/use-metrics.js +3 -8
  252. package/dist/middleware/authenticate.js +1 -3
  253. package/dist/middleware/cache.js +5 -8
  254. package/dist/middleware/collection-exists.js +3 -8
  255. package/dist/middleware/cors.js +8 -10
  256. package/dist/middleware/error-handler.js +10 -21
  257. package/dist/middleware/extract-token.js +3 -9
  258. package/dist/middleware/graphql.js +16 -27
  259. package/dist/middleware/rate-limiter-global.js +1 -3
  260. package/dist/middleware/rate-limiter-ip.js +9 -11
  261. package/dist/middleware/rate-limiter-registration.js +9 -11
  262. package/dist/middleware/request-counter.js +8 -15
  263. package/dist/middleware/respond.js +8 -16
  264. package/dist/middleware/validate-batch.js +5 -15
  265. package/dist/operations/condition/index.js +4 -10
  266. package/dist/operations/exec/index.js +1 -2
  267. package/dist/operations/item-create/index.js +18 -26
  268. package/dist/operations/item-delete/index.js +21 -31
  269. package/dist/operations/item-read/index.js +21 -31
  270. package/dist/operations/item-update/index.js +23 -36
  271. package/dist/operations/log/index.js +1 -2
  272. package/dist/operations/mail/index.js +5 -8
  273. package/dist/operations/mail/rate-limiter.js +6 -10
  274. package/dist/operations/notification/index.js +13 -19
  275. package/dist/operations/request/index.js +8 -13
  276. package/dist/operations/throw-error/index.js +1 -2
  277. package/dist/operations/trigger/index.js +4 -8
  278. package/dist/packages/types/dist/index.js +219 -231
  279. package/dist/permissions/cache.js +2 -3
  280. package/dist/permissions/lib/fetch-permissions.js +1 -3
  281. package/dist/permissions/lib/fetch-policies.js +5 -10
  282. package/dist/permissions/modules/fetch-accountability-collection-access/fetch-accountability-collection-access.js +19 -32
  283. package/dist/permissions/modules/fetch-allowed-collections/fetch-allowed-collections.js +7 -12
  284. package/dist/permissions/modules/fetch-allowed-field-map/fetch-allowed-field-map.js +8 -17
  285. package/dist/permissions/modules/fetch-global-access/fetch-global-access.js +1 -1
  286. package/dist/permissions/modules/fetch-inconsistent-field-map/fetch-inconsistent-field-map.js +6 -10
  287. package/dist/permissions/modules/fetch-policies-ip-access/fetch-policies-ip-access.js +9 -15
  288. package/dist/permissions/modules/process-ast/lib/extract-fields-from-children.js +2 -8
  289. package/dist/permissions/modules/process-ast/lib/extract-fields-from-query.js +32 -34
  290. package/dist/permissions/modules/process-ast/lib/field-map-from-ast.js +2 -2
  291. package/dist/permissions/modules/process-ast/lib/get-cases.js +3 -8
  292. package/dist/permissions/modules/process-ast/lib/inject-cases.js +6 -19
  293. package/dist/permissions/modules/process-ast/process-ast.js +4 -12
  294. package/dist/permissions/modules/process-ast/utils/collections-in-field-map.js +2 -4
  295. package/dist/permissions/modules/process-ast/utils/dedupe-access.js +6 -10
  296. package/dist/permissions/modules/process-ast/utils/extract-paths-from-query.js +9 -25
  297. package/dist/permissions/modules/process-ast/utils/find-related-collection.js +1 -3
  298. package/dist/permissions/modules/process-ast/utils/flatten-filter.js +7 -10
  299. package/dist/permissions/modules/process-ast/utils/get-info-for-path.js +4 -6
  300. package/dist/permissions/modules/process-ast/utils/validate-path/create-error.js +1 -2
  301. package/dist/permissions/modules/process-ast/utils/validate-path/validate-path-existence.js +3 -8
  302. package/dist/permissions/modules/process-ast/utils/validate-path/validate-path-permissions.js +5 -13
  303. package/dist/permissions/modules/process-payload/lib/is-field-nullable.js +1 -2
  304. package/dist/permissions/modules/process-payload/process-payload.js +6 -15
  305. package/dist/permissions/modules/validate-access/lib/validate-collection-access.js +2 -3
  306. package/dist/permissions/modules/validate-access/lib/validate-item-access.js +14 -28
  307. package/dist/permissions/modules/validate-access/validate-access.js +5 -15
  308. package/dist/permissions/modules/validate-remaining-admin/validate-remaining-admin-count.js +1 -3
  309. package/dist/permissions/utils/extract-required-dynamic-variable-context.js +10 -15
  310. package/dist/permissions/utils/fetch-dynamic-variable-data.js +17 -35
  311. package/dist/permissions/utils/fetch-raw-permissions.js +3 -9
  312. package/dist/permissions/utils/fetch-share-info.js +1 -2
  313. package/dist/permissions/utils/filter-policies-by-ip.js +2 -6
  314. package/dist/permissions/utils/get-permissions-for-share.js +22 -47
  315. package/dist/permissions/utils/get-unaliased-field-key.js +2 -5
  316. package/dist/permissions/utils/merge-permissions.js +13 -36
  317. package/dist/permissions/utils/with-cache.js +1 -3
  318. package/dist/rate-limiter.js +2 -7
  319. package/dist/redis/lib/create-redis.js +1 -2
  320. package/dist/redis/lib/use-redis.js +1 -1
  321. package/dist/redis/utils/redis-config-available.js +1 -3
  322. package/dist/request/agent-with-ip-validation.js +3 -7
  323. package/dist/request/is-denied-ip.js +1 -3
  324. package/dist/schedules/metrics.js +4 -11
  325. package/dist/schedules/retention.js +17 -33
  326. package/dist/schedules/telemetry.js +1 -2
  327. package/dist/schedules/tus.js +5 -7
  328. package/dist/server.js +12 -24
  329. package/dist/services/access.js +1 -3
  330. package/dist/services/assets/name-deduper.js +2 -6
  331. package/dist/services/assets.js +43 -79
  332. package/dist/services/authentication.js +63 -96
  333. package/dist/services/collections.js +108 -218
  334. package/dist/services/comments.js +18 -32
  335. package/dist/services/deployment-projects.js +17 -31
  336. package/dist/services/deployment.js +63 -106
  337. package/dist/services/extensions.js +25 -63
  338. package/dist/services/fields/build-collection-and-field-relations.js +8 -14
  339. package/dist/services/fields/get-collection-meta-updates.js +4 -12
  340. package/dist/services/fields/get-collection-relation-list.js +2 -4
  341. package/dist/services/fields.js +162 -314
  342. package/dist/services/files/lib/extract-metadata.js +7 -20
  343. package/dist/services/files/utils/get-metadata.js +31 -64
  344. package/dist/services/files/utils/parse-image-metadata.js +7 -19
  345. package/dist/services/files.js +102 -173
  346. package/dist/services/flows.js +3 -6
  347. package/dist/services/folders.js +13 -17
  348. package/dist/services/graphql/errors/format.js +2 -2
  349. package/dist/services/graphql/index.js +4 -13
  350. package/dist/services/graphql/resolvers/get-collection-type.js +1 -3
  351. package/dist/services/graphql/resolvers/get-field-type.js +1 -3
  352. package/dist/services/graphql/resolvers/get-relation-type.js +1 -3
  353. package/dist/services/graphql/resolvers/mutation.js +6 -14
  354. package/dist/services/graphql/resolvers/query.js +3 -10
  355. package/dist/services/graphql/resolvers/system-admin.js +13 -27
  356. package/dist/services/graphql/resolvers/system-global.js +31 -71
  357. package/dist/services/graphql/resolvers/system.js +209 -245
  358. package/dist/services/graphql/schema/get-types.js +69 -101
  359. package/dist/services/graphql/schema/index.js +74 -92
  360. package/dist/services/graphql/schema/parse-args.js +1 -2
  361. package/dist/services/graphql/schema/parse-query.js +8 -21
  362. package/dist/services/graphql/schema/read.js +83 -106
  363. package/dist/services/graphql/schema/write.js +36 -41
  364. package/dist/services/graphql/subscription.js +30 -51
  365. package/dist/services/graphql/types/bigint.js +5 -15
  366. package/dist/services/graphql/types/string-or-float.js +2 -6
  367. package/dist/services/graphql/utils/add-path-to-validation-error.js +1 -3
  368. package/dist/services/graphql/utils/aggregate-query.js +2 -6
  369. package/dist/services/graphql/utils/dedupe-resolvers.js +8 -13
  370. package/dist/services/graphql/utils/filter-replace-m2a.js +9 -18
  371. package/dist/services/graphql/utils/process-error.js +21 -31
  372. package/dist/services/graphql/utils/replace-fragments.js +2 -5
  373. package/dist/services/graphql/utils/replace-funcs.js +2 -5
  374. package/dist/services/graphql/utils/sanitize-gql-schema.js +10 -21
  375. package/dist/services/import-export.js +68 -143
  376. package/dist/services/items.js +126 -271
  377. package/dist/services/mail/index.js +13 -26
  378. package/dist/services/mail/rate-limiter.js +6 -10
  379. package/dist/services/meta.js +4 -9
  380. package/dist/services/notifications.js +2 -3
  381. package/dist/services/operations.js +3 -6
  382. package/dist/services/payload.js +188 -316
  383. package/dist/services/permissions.js +14 -26
  384. package/dist/services/policies.js +7 -18
  385. package/dist/services/relations.js +82 -181
  386. package/dist/services/revisions.js +8 -15
  387. package/dist/services/roles.js +4 -12
  388. package/dist/services/schema.js +5 -10
  389. package/dist/services/server.js +31 -66
  390. package/dist/services/shares.js +25 -35
  391. package/dist/services/specifications.js +87 -139
  392. package/dist/services/tfa.js +8 -24
  393. package/dist/services/translations.js +6 -12
  394. package/dist/services/tus/data-store.js +23 -55
  395. package/dist/services/tus/lockers.js +4 -10
  396. package/dist/services/tus/server.js +2 -5
  397. package/dist/services/users.js +79 -153
  398. package/dist/services/utils.js +12 -31
  399. package/dist/services/versions.js +78 -121
  400. package/dist/services/websocket.js +8 -12
  401. package/dist/storage/get-storage-driver.js +2 -5
  402. package/dist/storage/register-drivers.js +1 -3
  403. package/dist/storage/register-locations.js +2 -4
  404. package/dist/synchronization.js +6 -17
  405. package/dist/telemetry/counter/use-buffered-counter.js +6 -22
  406. package/dist/telemetry/counter/use-counters.js +2 -6
  407. package/dist/telemetry/lib/send-report.js +2 -6
  408. package/dist/telemetry/lib/track.js +3 -8
  409. package/dist/telemetry/utils/check-user-limits.js +3 -9
  410. package/dist/telemetry/utils/format-api-request-counts.js +1 -3
  411. package/dist/telemetry/utils/get-extension-count.js +3 -8
  412. package/dist/telemetry/utils/get-item-count.js +2 -5
  413. package/dist/telemetry/utils/get-settings.js +2 -3
  414. package/dist/telemetry/utils/get-user-item-count.js +2 -4
  415. package/dist/telemetry/utils/should-check-user-limits.js +1 -3
  416. package/dist/types/index.js +0 -6
  417. package/dist/utils/apply-diff.js +111 -143
  418. package/dist/utils/apply-snapshot.js +1 -2
  419. package/dist/utils/calculate-field-depth.js +6 -19
  420. package/dist/utils/construct-flow-tree.js +5 -12
  421. package/dist/utils/create-admin.js +1 -2
  422. package/dist/utils/deep-map-response.js +31 -35
  423. package/dist/utils/encrypt.js +2 -3
  424. package/dist/utils/fetch-user-count/fetch-access-lookup.js +5 -15
  425. package/dist/utils/fetch-user-count/get-user-count-query.js +4 -12
  426. package/dist/utils/filter-items.js +9 -14
  427. package/dist/utils/freeze-schema.js +3 -8
  428. package/dist/utils/generate-translations.js +87 -137
  429. package/dist/utils/get-accountability-for-role.js +12 -17
  430. package/dist/utils/get-accountability-for-token.js +25 -31
  431. package/dist/utils/get-address.js +2 -7
  432. package/dist/utils/get-allowed-log-levels.js +1 -3
  433. package/dist/utils/get-auth-providers.js +12 -14
  434. package/dist/utils/get-cache-headers.js +2 -4
  435. package/dist/utils/get-cache-key.js +16 -4
  436. package/dist/utils/get-collection-from-alias.js +1 -6
  437. package/dist/utils/get-column-path.js +10 -21
  438. package/dist/utils/get-config-from-env.js +6 -15
  439. package/dist/utils/get-default-index-name.js +2 -4
  440. package/dist/utils/get-default-value.js +5 -9
  441. package/dist/utils/get-field-relational-depth.js +2 -5
  442. package/dist/utils/get-graphql-query-and-variables.js +1 -2
  443. package/dist/utils/get-graphql-type.js +1 -3
  444. package/dist/utils/get-ip-from-req.js +6 -15
  445. package/dist/utils/get-local-type.js +5 -13
  446. package/dist/utils/get-milliseconds.js +1 -3
  447. package/dist/utils/get-module-default.js +1 -3
  448. package/dist/utils/get-schema.js +9 -21
  449. package/dist/utils/get-secret.js +2 -6
  450. package/dist/utils/get-snapshot-diff.js +15 -23
  451. package/dist/utils/get-snapshot.js +6 -17
  452. package/dist/utils/is-directus-jwt.js +1 -2
  453. package/dist/utils/is-field-allowed.js +1 -3
  454. package/dist/utils/jwt.js +7 -13
  455. package/dist/utils/md.js +1 -2
  456. package/dist/utils/parse-filter-key.js +2 -4
  457. package/dist/utils/parse-numeric-string.js +5 -11
  458. package/dist/utils/permissions-cacheable.js +9 -22
  459. package/dist/utils/redact-object.js +27 -57
  460. package/dist/utils/reduce-schema.js +8 -25
  461. package/dist/utils/sanitize-query.js +46 -98
  462. package/dist/utils/sanitize-schema.js +2 -3
  463. package/dist/utils/schedule.js +2 -6
  464. package/dist/utils/should-clear-cache.js +2 -6
  465. package/dist/utils/should-skip-cache.js +3 -8
  466. package/dist/utils/split-fields.js +4 -12
  467. package/dist/utils/stall.js +1 -3
  468. package/dist/utils/store.js +2 -5
  469. package/dist/utils/transaction.js +29 -58
  470. package/dist/utils/transformations.js +28 -43
  471. package/dist/utils/translations-shared.js +4 -12
  472. package/dist/utils/url.js +3 -10
  473. package/dist/utils/user-name.js +4 -12
  474. package/dist/utils/validate-diff.js +17 -38
  475. package/dist/utils/validate-env.js +3 -5
  476. package/dist/utils/validate-keys.js +4 -10
  477. package/dist/utils/validate-query.js +67 -118
  478. package/dist/utils/validate-snapshot.js +3 -9
  479. package/dist/utils/validate-storage.js +12 -19
  480. package/dist/utils/validate-user-count-integrity.js +3 -9
  481. package/dist/utils/verify-session-jwt.js +2 -6
  482. package/dist/utils/versioning/handle-version.js +10 -29
  483. package/dist/utils/versioning/merge-version-data.js +1 -5
  484. package/dist/utils/versioning/split-recursive.js +6 -3
  485. package/dist/websocket/authenticate.js +7 -18
  486. package/dist/websocket/collab/calculate-cache-metadata.js +33 -51
  487. package/dist/websocket/collab/collab.js +49 -113
  488. package/dist/websocket/collab/filter-to-fields.js +2 -5
  489. package/dist/websocket/collab/messenger.js +48 -73
  490. package/dist/websocket/collab/payload-permissions.js +20 -51
  491. package/dist/websocket/collab/permissions-cache.js +17 -46
  492. package/dist/websocket/collab/room.js +57 -124
  493. package/dist/websocket/collab/verify-permissions.js +37 -48
  494. package/dist/websocket/controllers/base.js +34 -61
  495. package/dist/websocket/controllers/graphql.js +11 -18
  496. package/dist/websocket/controllers/index.js +3 -12
  497. package/dist/websocket/controllers/logs.js +3 -7
  498. package/dist/websocket/errors.js +2 -5
  499. package/dist/websocket/handlers/heartbeat.js +11 -19
  500. package/dist/websocket/handlers/index.js +5 -15
  501. package/dist/websocket/handlers/items.js +15 -26
  502. package/dist/websocket/handlers/logs.js +24 -41
  503. package/dist/websocket/handlers/subscribe.js +37 -66
  504. package/dist/websocket/utils/get-expires-at-for-token.js +1 -3
  505. package/dist/websocket/utils/items.js +10 -27
  506. package/dist/websocket/utils/message.js +6 -10
  507. package/package.json +28 -29
  508. package/dist/__utils__/items-utils.js +0 -32
  509. package/dist/__utils__/schemas.js +0 -297
  510. package/dist/__utils__/snapshots.js +0 -899
  511. package/dist/database/run-ast/lib/apply-query/mock.js +0 -9
  512. package/dist/node_modules/.pnpm/@jridgewell_sourcemap-codec@1.5.5/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.js +0 -445
  513. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/index.js +0 -176
  514. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/system/policy.js +0 -54
  515. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/any/any.js +0 -13
  516. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/any/index.js +0 -3
  517. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/argument/argument.js +0 -15
  518. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/argument/index.js +0 -3
  519. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/array/array.js +0 -16
  520. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/array/index.js +0 -3
  521. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.js +0 -16
  522. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.js +0 -3
  523. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.js +0 -37
  524. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/awaited/index.js +0 -3
  525. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.js +0 -16
  526. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/bigint/index.js +0 -3
  527. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.js +0 -16
  528. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/boolean/index.js +0 -3
  529. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/clone/index.js +0 -4
  530. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/clone/type.js +0 -17
  531. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/clone/value.js +0 -35
  532. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/composite/composite.js +0 -42
  533. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/composite/index.js +0 -3
  534. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/computed/computed.js +0 -16
  535. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/computed/index.js +0 -3
  536. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/const/const.js +0 -52
  537. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/const/index.js +0 -3
  538. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.js +0 -17
  539. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/constructor/index.js +0 -3
  540. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.js +0 -14
  541. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.js +0 -3
  542. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/create/immutable.js +0 -32
  543. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/create/index.js +0 -3
  544. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/create/type.js +0 -20
  545. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/date/date.js +0 -15
  546. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/date/index.js +0 -3
  547. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/discard/discard.js +0 -12
  548. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/discard/index.js +0 -3
  549. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/enum/enum.js +0 -23
  550. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/enum/index.js +0 -3
  551. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/error/error.js +0 -10
  552. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/error/index.js +0 -3
  553. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.js +0 -20
  554. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.js +0 -11
  555. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.js +0 -25
  556. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/exclude/index.js +0 -5
  557. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.js +0 -267
  558. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.js +0 -29
  559. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.js +0 -21
  560. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.js +0 -21
  561. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/extends.js +0 -20
  562. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extends/index.js +0 -7
  563. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.js +0 -20
  564. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.js +0 -11
  565. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extract/extract.js +0 -25
  566. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/extract/index.js +0 -5
  567. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/function/function.js +0 -17
  568. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/function/index.js +0 -3
  569. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/guard/index.js +0 -5
  570. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/guard/kind.js +0 -204
  571. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/guard/type.js +0 -293
  572. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/guard/value.js +0 -68
  573. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.js +0 -8
  574. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/helpers/index.js +0 -3
  575. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/index.js +0 -6
  576. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.js +0 -27
  577. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.js +0 -24
  578. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.js +0 -24
  579. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.js +0 -67
  580. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/instance-type/index.js +0 -3
  581. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.js +0 -13
  582. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/instantiate/index.js +0 -3
  583. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.js +0 -102
  584. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/integer/index.js +0 -3
  585. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/integer/integer.js +0 -15
  586. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/index.js +0 -5
  587. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.js +0 -23
  588. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.js +0 -35
  589. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.js +0 -3
  590. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.js +0 -17
  591. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.js +0 -10
  592. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.js +0 -8
  593. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.js +0 -30
  594. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.js +0 -54
  595. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.js +0 -10
  596. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.js +0 -10
  597. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.js +0 -10
  598. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/iterator/index.js +0 -3
  599. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.js +0 -16
  600. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/index.js +0 -6
  601. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.js +0 -21
  602. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.js +0 -17
  603. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.js +0 -52
  604. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.js +0 -38
  605. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/literal/index.js +0 -3
  606. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/literal/literal.js +0 -16
  607. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/mapped/index.js +0 -5
  608. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.js +0 -14
  609. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.js +0 -14
  610. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.js +0 -86
  611. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/module/compute.js +0 -144
  612. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/module/index.js +0 -3
  613. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/module/module.js +0 -44
  614. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/never/index.js +0 -3
  615. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/never/never.js +0 -15
  616. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/not/index.js +0 -3
  617. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/not/not.js +0 -15
  618. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/null/index.js +0 -3
  619. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/null/null.js +0 -15
  620. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/number/index.js +0 -3
  621. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/number/number.js +0 -15
  622. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/object/index.js +0 -3
  623. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/object/object.js +0 -33
  624. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/omit/index.js +0 -5
  625. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.js +0 -27
  626. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.js +0 -21
  627. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/omit/omit.js +0 -65
  628. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/optional/index.js +0 -4
  629. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.js +0 -20
  630. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/optional/optional.js +0 -29
  631. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/parameters/index.js +0 -3
  632. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.js +0 -14
  633. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/partial/index.js +0 -4
  634. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.js +0 -21
  635. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/partial/partial.js +0 -62
  636. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/patterns/index.js +0 -3
  637. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.js +0 -12
  638. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/pick/index.js +0 -5
  639. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.js +0 -27
  640. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.js +0 -21
  641. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/pick/pick.js +0 -63
  642. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/promise/index.js +0 -3
  643. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/promise/promise.js +0 -16
  644. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly/index.js +0 -4
  645. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.js +0 -20
  646. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.js +0 -29
  647. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.js +0 -3
  648. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.js +0 -13
  649. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/record/index.js +0 -3
  650. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/record/record.js +0 -92
  651. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/recursive/index.js +0 -3
  652. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.js +0 -24
  653. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/ref/index.js +0 -3
  654. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/ref/ref.js +0 -19
  655. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/regexp/index.js +0 -3
  656. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.js +0 -19
  657. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/registry/format.js +0 -30
  658. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/registry/index.js +0 -4
  659. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/registry/type.js +0 -30
  660. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/required/index.js +0 -4
  661. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.js +0 -20
  662. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/required/required.js +0 -60
  663. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/rest/index.js +0 -3
  664. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/rest/rest.js +0 -13
  665. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/return-type/index.js +0 -3
  666. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.js +0 -13
  667. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.js +0 -1
  668. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/schema/index.js +0 -4
  669. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/schema/schema.js +0 -3
  670. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/sets/index.js +0 -3
  671. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/sets/set.js +0 -42
  672. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/static/index.js +0 -3
  673. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/static/static.js +0 -1
  674. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/string/index.js +0 -3
  675. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/string/string.js +0 -15
  676. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/symbol/index.js +0 -3
  677. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.js +0 -15
  678. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/symbols/index.js +0 -3
  679. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.js +0 -14
  680. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.js +0 -28
  681. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.js +0 -37
  682. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/index.js +0 -9
  683. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.js +0 -125
  684. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.js +0 -24
  685. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.js +0 -55
  686. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.js +0 -20
  687. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/template-literal/union.js +0 -16
  688. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/transform/index.js +0 -3
  689. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/transform/transform.js +0 -51
  690. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/tuple/index.js +0 -3
  691. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.js +0 -24
  692. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/type/index.js +0 -10
  693. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/type/javascript.js +0 -123
  694. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/type/json.js +0 -263
  695. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/type/type.js +0 -191
  696. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/uint8array/index.js +0 -3
  697. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.js +0 -15
  698. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/undefined/index.js +0 -3
  699. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.js +0 -15
  700. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/index.js +0 -5
  701. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/union-create.js +0 -14
  702. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.js +0 -33
  703. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/union-type.js +0 -3
  704. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/union/union.js +0 -13
  705. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/unknown/index.js +0 -3
  706. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.js +0 -12
  707. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/unsafe/index.js +0 -3
  708. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.js +0 -12
  709. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/void/index.js +0 -3
  710. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/type/void/void.js +0 -15
  711. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/value/guard/guard.js +0 -140
  712. package/dist/node_modules/.pnpm/@sinclair_typebox@0.34.41/node_modules/@sinclair/typebox/build/esm/value/guard/index.js +0 -3
  713. package/dist/node_modules/.pnpm/@vitest_expect@3.2.4/node_modules/@vitest/expect/dist/index.js +0 -1714
  714. package/dist/node_modules/.pnpm/@vitest_pretty-format@3.2.4/node_modules/@vitest/pretty-format/dist/index.js +0 -1287
  715. package/dist/node_modules/.pnpm/@vitest_runner@3.2.4/node_modules/@vitest/runner/dist/chunk-hooks.js +0 -2151
  716. package/dist/node_modules/.pnpm/@vitest_runner@3.2.4/node_modules/@vitest/runner/dist/index.js +0 -8
  717. package/dist/node_modules/.pnpm/@vitest_runner@3.2.4/node_modules/@vitest/runner/dist/utils.js +0 -8
  718. package/dist/node_modules/.pnpm/@vitest_snapshot@3.2.4/node_modules/@vitest/snapshot/dist/index.js +0 -2082
  719. package/dist/node_modules/.pnpm/@vitest_spy@3.2.4/node_modules/@vitest/spy/dist/index.js +0 -192
  720. package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/chunk-_commonjsHelpers.js +0 -158
  721. package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/diff.js +0 -1535
  722. package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/error.js +0 -155
  723. package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/helpers.js +0 -244
  724. package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/index.js +0 -621
  725. package/dist/node_modules/.pnpm/@vitest_utils@3.2.4/node_modules/@vitest/utils/dist/source-map.js +0 -890
  726. package/dist/node_modules/.pnpm/chai@5.3.3/node_modules/chai/index.js +0 -3558
  727. package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/branding.js +0 -13
  728. package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/index.js +0 -115
  729. package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/messages.js +0 -77
  730. package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/overloads.js +0 -13
  731. package/dist/node_modules/.pnpm/expect-type@1.2.2/node_modules/expect-type/dist/utils.js +0 -30
  732. package/dist/node_modules/.pnpm/js-tokens@9.0.1/node_modules/js-tokens/index.js +0 -398
  733. package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/MockClient.js +0 -79
  734. package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/MockConnection.js +0 -64
  735. package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/Tracker.js +0 -185
  736. package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/constants.js +0 -30
  737. package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/index.js +0 -37
  738. package/dist/node_modules/.pnpm/knex-mock-client@3.0.2_knex@3.1.0_mysql2@3.15.3_pg@8.16.3_sqlite3@5.1.7_tedious@18.6.1_/node_modules/knex-mock-client/dist/utils.js +0 -17
  739. package/dist/node_modules/.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.js +0 -1486
  740. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/arguments.js +0 -11
  741. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/array.js +0 -18
  742. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/bigint.js +0 -11
  743. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/class.js +0 -19
  744. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/date.js +0 -15
  745. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/error.js +0 -39
  746. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/function.js +0 -14
  747. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/helpers.js +0 -141
  748. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/html.js +0 -43
  749. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/index.js +0 -138
  750. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/map.js +0 -25
  751. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/number.js +0 -22
  752. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/object.js +0 -27
  753. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/promise.js +0 -6
  754. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/regexp.js +0 -12
  755. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/set.js +0 -18
  756. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/string.js +0 -27
  757. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/symbol.js +0 -10
  758. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/typedarray.js +0 -36
  759. package/dist/node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/dist/magic-string.es.js +0 -1258
  760. package/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/index.js +0 -21
  761. package/dist/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.js +0 -478
  762. package/dist/node_modules/.pnpm/strip-literal@3.1.0/node_modules/strip-literal/dist/index.js +0 -84
  763. package/dist/node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/chunk-BVHSVHOK.js +0 -85
  764. package/dist/node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/node.js +0 -15
  765. package/dist/node_modules/.pnpm/tinyspy@4.0.4/node_modules/tinyspy/dist/index.js +0 -158
  766. package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.8.9_jiti@2.6.1_jsdom@20_c24d183060b6f93f55300b66d0779768/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js +0 -8
  767. package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.8.9_jiti@2.6.1_jsdom@20_c24d183060b6f93f55300b66d0779768/node_modules/vitest/dist/chunks/benchmark.CYdenmiT.js +0 -41
  768. package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.8.9_jiti@2.6.1_jsdom@20_c24d183060b6f93f55300b66d0779768/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js +0 -50
  769. package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.8.9_jiti@2.6.1_jsdom@20_c24d183060b6f93f55300b66d0779768/node_modules/vitest/dist/chunks/index.CdQS2e2Q.js +0 -38
  770. package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.8.9_jiti@2.6.1_jsdom@20_c24d183060b6f93f55300b66d0779768/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js +0 -66
  771. package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.8.9_jiti@2.6.1_jsdom@20_c24d183060b6f93f55300b66d0779768/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js +0 -2986
  772. package/dist/node_modules/.pnpm/vitest@3.2.4_@types_node@22.13.14_@vitest_ui@3.2.4_happy-dom@20.8.9_jiti@2.6.1_jsdom@20_c24d183060b6f93f55300b66d0779768/node_modules/vitest/dist/index.js +0 -24
  773. package/dist/test-utils/cache.js +0 -64
  774. package/dist/test-utils/controllers.js +0 -101
  775. package/dist/test-utils/database.js +0 -54
  776. package/dist/test-utils/emitter.js +0 -38
  777. package/dist/test-utils/env.js +0 -77
  778. package/dist/test-utils/knex.js +0 -222
  779. package/dist/test-utils/schema.js +0 -35
  780. package/dist/test-utils/services/fields-service.js +0 -38
  781. package/dist/test-utils/services/files-service.js +0 -35
  782. package/dist/test-utils/services/folders-service.js +0 -34
  783. package/dist/test-utils/services/items-service.js +0 -52
  784. package/dist/test-utils/storage.js +0 -150
  785. package/dist/utils/job-queue.js +0 -29
@@ -43,29 +43,19 @@ var CollectionsService = class CollectionsService {
43
43
  * Create a single new collection
44
44
  */
45
45
  async createOne(payload, opts) {
46
- if (this.accountability && this.accountability.admin !== true) {
47
- throw new ForbiddenError();
48
- }
46
+ if (this.accountability && this.accountability.admin !== true) throw new ForbiddenError();
49
47
  if (!("collection" in payload)) throw new InvalidPayloadError({ reason: `"collection" is required` });
50
- if (typeof payload.collection !== "string" || payload.collection === "") {
51
- throw new InvalidPayloadError({ reason: `"collection" must be a non-empty string` });
52
- }
53
- if (payload.collection.startsWith("directus_")) {
54
- throw new InvalidPayloadError({ reason: `Collections can't start with "directus_"` });
55
- }
48
+ if (typeof payload.collection !== "string" || payload.collection === "") throw new InvalidPayloadError({ reason: `"collection" must be a non-empty string` });
49
+ if (payload.collection.startsWith("directus_")) throw new InvalidPayloadError({ reason: `Collections can't start with "directus_"` });
50
+ if (payload.collection.includes("/")) throw new InvalidPayloadError({ reason: `Collection name can't contain "/"` });
56
51
  payload.collection = await this.helpers.schema.parseCollectionName(payload.collection);
57
52
  const nestedActionEvents = [];
58
53
  try {
59
- const existingCollections = [...(await this.knex.select("collection").from("directus_collections"))?.map(({ collection }) => collection) ?? [], ...Object.keys(this.schema.collections)];
60
- if (existingCollections.includes(payload.collection)) {
61
- throw new InvalidPayloadError({ reason: `Collection "${payload.collection}" already exists` });
62
- }
54
+ if ([...(await this.knex.select("collection").from("directus_collections"))?.map(({ collection }) => collection) ?? [], ...Object.keys(this.schema.collections)].includes(payload.collection)) throw new InvalidPayloadError({ reason: `Collection "${payload.collection}" already exists` });
63
55
  const attemptConcurrentIndex = Boolean(opts?.attemptConcurrentIndex);
64
56
  await transaction(this.knex, async (trx) => {
65
57
  if (payload.schema) {
66
- if ("fields" in payload && !Array.isArray(payload.fields)) {
67
- throw new InvalidPayloadError({ reason: `"fields" must be an array` });
68
- }
58
+ if ("fields" in payload && !Array.isArray(payload.fields)) throw new InvalidPayloadError({ reason: `"fields" must be an array` });
69
59
  /**
70
60
  * Directus heavily relies on the primary key of a collection, so we have to make sure that
71
61
  * every collection that is created has a primary key. If no primary key field is created
@@ -84,23 +74,16 @@ var CollectionsService = class CollectionsService {
84
74
  has_auto_increment: true
85
75
  }
86
76
  };
87
- if (!payload.fields || payload.fields.length === 0) {
88
- payload.fields = [injectedPrimaryKeyField];
89
- } else if (!payload.fields.some((f) => f.schema?.is_primary_key === true || f.schema?.has_auto_increment === true)) {
90
- payload.fields = [injectedPrimaryKeyField, ...payload.fields];
91
- }
77
+ if (!payload.fields || payload.fields.length === 0) payload.fields = [injectedPrimaryKeyField];
78
+ else if (!payload.fields.some((f) => f.schema?.is_primary_key === true || f.schema?.has_auto_increment === true)) payload.fields = [injectedPrimaryKeyField, ...payload.fields];
92
79
  payload.fields = payload.fields.map((field) => {
93
- if (field.meta) {
94
- field.meta = {
95
- ...field.meta,
96
- field: field.field,
97
- collection: payload.collection
98
- };
99
- }
80
+ if (field.meta) field.meta = {
81
+ ...field.meta,
82
+ field: field.field,
83
+ collection: payload.collection
84
+ };
100
85
  const flagToAdd = this.helpers.date.fieldFlagForField(field.type);
101
- if (flagToAdd) {
102
- addFieldFlag(field, flagToAdd);
103
- }
86
+ if (flagToAdd) addFieldFlag(field, flagToAdd);
104
87
  return field;
105
88
  });
106
89
  const fieldsService = new FieldsService({
@@ -108,11 +91,7 @@ var CollectionsService = class CollectionsService {
108
91
  schema: this.schema
109
92
  });
110
93
  await trx.schema.createTable(payload.collection, (table) => {
111
- for (const field of payload.fields) {
112
- if (field.type && ALIAS_TYPES.includes(field.type) === false) {
113
- fieldsService.addColumnToTable(table, payload.collection, field, { attemptConcurrentIndex });
114
- }
115
- }
94
+ for (const field of payload.fields) if (field.type && ALIAS_TYPES.includes(field.type) === false) fieldsService.addColumnToTable(table, payload.collection, field, { attemptConcurrentIndex });
116
95
  });
117
96
  const fieldItemsService = new ItemsService("directus_fields", {
118
97
  knex: trx,
@@ -120,47 +99,34 @@ var CollectionsService = class CollectionsService {
120
99
  schema: this.schema
121
100
  });
122
101
  const fieldPayloads = payload.fields.filter((field) => field.meta).map((field) => field.meta);
123
- let sortedFieldPayloads = fieldPayloads.filter((field) => field?.group === undefined || field?.group === null).map((field, index) => merge({ sort: index + 1 }, field));
102
+ let sortedFieldPayloads = fieldPayloads.filter((field) => field?.group === void 0 || field?.group === null).map((field, index) => merge({ sort: index + 1 }, field));
124
103
  if (sortedFieldPayloads.length < fieldPayloads.length) {
125
104
  const fieldsWithGroups = groupBy(fieldPayloads.filter((field) => field?.group), (field) => field?.group);
126
- for (const [_group, fields] of Object.entries(fieldsWithGroups)) {
127
- sortedFieldPayloads = sortedFieldPayloads.concat(fields.map((field, index) => merge({ sort: index + 1 }, field)));
128
- }
105
+ for (const [_group, fields] of Object.entries(fieldsWithGroups)) sortedFieldPayloads = sortedFieldPayloads.concat(fields.map((field, index) => merge({ sort: index + 1 }, field)));
129
106
  }
130
107
  await fieldItemsService.createMany(sortedFieldPayloads, {
131
108
  bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params),
132
109
  bypassLimits: true
133
110
  });
134
111
  }
135
- if (payload.meta) {
136
- const collectionsItemsService = new ItemsService("directus_collections", {
137
- knex: trx,
138
- accountability: this.accountability,
139
- schema: this.schema
140
- });
141
- await collectionsItemsService.createOne({
142
- ...payload.meta,
143
- collection: payload.collection
144
- }, { bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params) });
145
- }
112
+ if (payload.meta) await new ItemsService("directus_collections", {
113
+ knex: trx,
114
+ accountability: this.accountability,
115
+ schema: this.schema
116
+ }).createOne({
117
+ ...payload.meta,
118
+ collection: payload.collection
119
+ }, { bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params) });
146
120
  return payload.collection;
147
121
  });
148
122
  if (attemptConcurrentIndex && payload.schema && Array.isArray(payload.fields)) {
149
123
  const fieldsService = new FieldsService({ schema: this.schema });
150
- for (const field of payload.fields) {
151
- if (field.type && ALIAS_TYPES.includes(field.type) === false) {
152
- await fieldsService.addColumnIndex(payload.collection, field, { attemptConcurrentIndex });
153
- }
154
- }
124
+ for (const field of payload.fields) if (field.type && ALIAS_TYPES.includes(field.type) === false) await fieldsService.addColumnIndex(payload.collection, field, { attemptConcurrentIndex });
155
125
  }
156
126
  return payload.collection;
157
127
  } finally {
158
- if (shouldClearCache(this.cache, opts)) {
159
- await this.cache.clear();
160
- }
161
- if (opts?.autoPurgeSystemCache !== false) {
162
- await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
163
- }
128
+ if (shouldClearCache(this.cache, opts)) await this.cache.clear();
129
+ if (opts?.autoPurgeSystemCache !== false) await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
164
130
  if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
165
131
  const updatedSchema = await getSchema();
166
132
  for (const nestedActionEvent of nestedActionEvents) {
@@ -176,7 +142,7 @@ var CollectionsService = class CollectionsService {
176
142
  async createMany(payloads, opts) {
177
143
  const nestedActionEvents = [];
178
144
  try {
179
- const collections = await transaction(this.knex, async (trx) => {
145
+ return await transaction(this.knex, async (trx) => {
180
146
  const service = new CollectionsService({
181
147
  schema: this.schema,
182
148
  accountability: this.accountability,
@@ -194,14 +160,9 @@ var CollectionsService = class CollectionsService {
194
160
  }
195
161
  return collectionNames;
196
162
  });
197
- return collections;
198
163
  } finally {
199
- if (shouldClearCache(this.cache, opts)) {
200
- await this.cache.clear();
201
- }
202
- if (opts?.autoPurgeSystemCache !== false) {
203
- await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
204
- }
164
+ if (shouldClearCache(this.cache, opts)) await this.cache.clear();
165
+ if (opts?.autoPurgeSystemCache !== false) await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
205
166
  if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
206
167
  const updatedSchema = await getSchema();
207
168
  for (const nestedActionEvent of nestedActionEvents) {
@@ -258,19 +219,12 @@ var CollectionsService = class CollectionsService {
258
219
  };
259
220
  collections.push(collection);
260
221
  }
261
- for (const table of tablesInDatabase) {
262
- const exists = !!collections.find(({ collection }) => collection === table.name);
263
- if (!exists) {
264
- collections.push({
265
- collection: table.name,
266
- schema: table,
267
- meta: null
268
- });
269
- }
270
- }
271
- if (env["DB_EXCLUDE_TABLES"]) {
272
- return collections.filter((collection) => env["DB_EXCLUDE_TABLES"].includes(collection.collection) === false);
273
- }
222
+ for (const table of tablesInDatabase) if (!!!collections.find(({ collection }) => collection === table.name)) collections.push({
223
+ collection: table.name,
224
+ schema: table,
225
+ meta: null
226
+ });
227
+ if (env["DB_EXCLUDE_TABLES"]) return collections.filter((collection) => env["DB_EXCLUDE_TABLES"].includes(collection.collection) === false);
274
228
  return collections;
275
229
  }
276
230
  /**
@@ -285,27 +239,22 @@ var CollectionsService = class CollectionsService {
285
239
  * Read many collections by name
286
240
  */
287
241
  async readMany(collectionKeys) {
288
- if (this.accountability) {
289
- await Promise.all(collectionKeys.map((collection) => validateAccess({
290
- accountability: this.accountability,
291
- action: "read",
292
- collection,
293
- skipCollectionExistsCheck: true
294
- }, {
295
- schema: this.schema,
296
- knex: this.knex
297
- })));
298
- }
299
- const collections = await this.readByQuery();
300
- return collections.filter(({ collection }) => collectionKeys.includes(collection));
242
+ if (this.accountability) await Promise.all(collectionKeys.map((collection) => validateAccess({
243
+ accountability: this.accountability,
244
+ action: "read",
245
+ collection,
246
+ skipCollectionExistsCheck: true
247
+ }, {
248
+ schema: this.schema,
249
+ knex: this.knex
250
+ })));
251
+ return (await this.readByQuery()).filter(({ collection }) => collectionKeys.includes(collection));
301
252
  }
302
253
  /**
303
254
  * Update a single collection by name
304
255
  */
305
256
  async updateOne(collectionKey, data, opts) {
306
- if (this.accountability && this.accountability.admin !== true) {
307
- throw new ForbiddenError();
308
- }
257
+ if (this.accountability && this.accountability.admin !== true) throw new ForbiddenError();
309
258
  const nestedActionEvents = [];
310
259
  try {
311
260
  const collectionsItemsService = new ItemsService("directus_collections", {
@@ -314,32 +263,22 @@ var CollectionsService = class CollectionsService {
314
263
  schema: this.schema
315
264
  });
316
265
  const payload = data;
317
- if (!payload.meta) {
318
- return collectionKey;
319
- }
320
- const exists = !!await this.knex.select("collection").from("directus_collections").where({ collection: collectionKey }).first();
321
- if (exists) {
322
- await collectionsItemsService.updateOne(collectionKey, payload.meta, {
323
- ...opts,
324
- bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params)
325
- });
326
- } else {
327
- await collectionsItemsService.createOne({
328
- ...payload.meta,
329
- collection: collectionKey
330
- }, {
331
- ...opts,
332
- bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params)
333
- });
334
- }
266
+ if (!payload.meta) return collectionKey;
267
+ if (!!await this.knex.select("collection").from("directus_collections").where({ collection: collectionKey }).first()) await collectionsItemsService.updateOne(collectionKey, payload.meta, {
268
+ ...opts,
269
+ bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params)
270
+ });
271
+ else await collectionsItemsService.createOne({
272
+ ...payload.meta,
273
+ collection: collectionKey
274
+ }, {
275
+ ...opts,
276
+ bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params)
277
+ });
335
278
  return collectionKey;
336
279
  } finally {
337
- if (shouldClearCache(this.cache, opts)) {
338
- await this.cache.clear();
339
- }
340
- if (opts?.autoPurgeSystemCache !== false) {
341
- await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
342
- }
280
+ if (shouldClearCache(this.cache, opts)) await this.cache.clear();
281
+ if (opts?.autoPurgeSystemCache !== false) await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
343
282
  if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
344
283
  const updatedSchema = await getSchema();
345
284
  for (const nestedActionEvent of nestedActionEvents) {
@@ -353,12 +292,8 @@ var CollectionsService = class CollectionsService {
353
292
  * Update multiple collections in a single transaction
354
293
  */
355
294
  async updateBatch(data, opts) {
356
- if (this.accountability && this.accountability.admin !== true) {
357
- throw new ForbiddenError();
358
- }
359
- if (!Array.isArray(data)) {
360
- throw new InvalidPayloadError({ reason: "Input should be an array of collection changes" });
361
- }
295
+ if (this.accountability && this.accountability.admin !== true) throw new ForbiddenError();
296
+ if (!Array.isArray(data)) throw new InvalidPayloadError({ reason: "Input should be an array of collection changes" });
362
297
  const collectionKey = "collection";
363
298
  const collectionKeys = [];
364
299
  const nestedActionEvents = [];
@@ -370,9 +305,7 @@ var CollectionsService = class CollectionsService {
370
305
  schema: this.schema
371
306
  });
372
307
  for (const payload of data) {
373
- if (!payload[collectionKey]) {
374
- throw new InvalidPayloadError({ reason: `Collection in update misses collection key` });
375
- }
308
+ if (!payload[collectionKey]) throw new InvalidPayloadError({ reason: `Collection in update misses collection key` });
376
309
  await collectionItemsService.updateOne(payload[collectionKey], omit(payload, collectionKey), {
377
310
  autoPurgeCache: false,
378
311
  autoPurgeSystemCache: false,
@@ -382,12 +315,8 @@ var CollectionsService = class CollectionsService {
382
315
  }
383
316
  });
384
317
  } finally {
385
- if (shouldClearCache(this.cache, opts)) {
386
- await this.cache.clear();
387
- }
388
- if (opts?.autoPurgeSystemCache !== false) {
389
- await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
390
- }
318
+ if (shouldClearCache(this.cache, opts)) await this.cache.clear();
319
+ if (opts?.autoPurgeSystemCache !== false) await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
391
320
  if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
392
321
  const updatedSchema = await getSchema();
393
322
  for (const nestedActionEvent of nestedActionEvents) {
@@ -402,9 +331,7 @@ var CollectionsService = class CollectionsService {
402
331
  * Update multiple collections by name
403
332
  */
404
333
  async updateMany(collectionKeys, data, opts) {
405
- if (this.accountability && this.accountability.admin !== true) {
406
- throw new ForbiddenError();
407
- }
334
+ if (this.accountability && this.accountability.admin !== true) throw new ForbiddenError();
408
335
  const nestedActionEvents = [];
409
336
  try {
410
337
  await transaction(this.knex, async (trx) => {
@@ -413,22 +340,16 @@ var CollectionsService = class CollectionsService {
413
340
  accountability: this.accountability,
414
341
  knex: trx
415
342
  });
416
- for (const collectionKey of collectionKeys) {
417
- await service.updateOne(collectionKey, data, {
418
- autoPurgeCache: false,
419
- autoPurgeSystemCache: false,
420
- bypassEmitAction: (params) => nestedActionEvents.push(params)
421
- });
422
- }
343
+ for (const collectionKey of collectionKeys) await service.updateOne(collectionKey, data, {
344
+ autoPurgeCache: false,
345
+ autoPurgeSystemCache: false,
346
+ bypassEmitAction: (params) => nestedActionEvents.push(params)
347
+ });
423
348
  });
424
349
  return collectionKeys;
425
350
  } finally {
426
- if (shouldClearCache(this.cache, opts)) {
427
- await this.cache.clear();
428
- }
429
- if (opts?.autoPurgeSystemCache !== false) {
430
- await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
431
- }
351
+ if (shouldClearCache(this.cache, opts)) await this.cache.clear();
352
+ if (opts?.autoPurgeSystemCache !== false) await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
432
353
  if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
433
354
  const updatedSchema = await getSchema();
434
355
  for (const nestedActionEvent of nestedActionEvents) {
@@ -443,48 +364,35 @@ var CollectionsService = class CollectionsService {
443
364
  * delete any fields, presets, activity, revisions, and permissions relating to this collection
444
365
  */
445
366
  async deleteOne(collectionKey, opts) {
446
- if (this.accountability && this.accountability.admin !== true) {
447
- throw new ForbiddenError();
448
- }
367
+ if (this.accountability && this.accountability.admin !== true) throw new ForbiddenError();
449
368
  const nestedActionEvents = [];
450
369
  try {
451
- const collections = await this.readByQuery();
452
- const collectionToBeDeleted = collections.find((collection) => collection.collection === collectionKey);
453
- if (!!collectionToBeDeleted === false) {
454
- throw new ForbiddenError();
455
- }
370
+ const collectionToBeDeleted = (await this.readByQuery()).find((collection) => collection.collection === collectionKey);
371
+ if (!!collectionToBeDeleted === false) throw new ForbiddenError();
456
372
  await transaction(this.knex, async (trx) => {
457
- if (collectionToBeDeleted.schema) {
458
- await trx.schema.dropTable(collectionKey);
459
- }
373
+ if (collectionToBeDeleted.schema) await trx.schema.dropTable(collectionKey);
460
374
  await trx("directus_collections").update({ group: null }).where({ group: collectionKey });
461
- if (collectionToBeDeleted.meta) {
462
- const collectionsItemsService = new ItemsService("directus_collections", {
463
- knex: trx,
464
- accountability: this.accountability,
465
- schema: this.schema
466
- });
467
- await collectionsItemsService.deleteOne(collectionKey, { bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params) });
468
- }
375
+ if (collectionToBeDeleted.meta) await new ItemsService("directus_collections", {
376
+ knex: trx,
377
+ accountability: this.accountability,
378
+ schema: this.schema
379
+ }).deleteOne(collectionKey, { bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params) });
469
380
  if (collectionToBeDeleted.schema) {
470
381
  const fieldsService = new FieldsService({
471
382
  knex: trx,
472
383
  accountability: this.accountability,
473
384
  schema: this.schema
474
385
  });
475
- const fieldItemsService = new ItemsService("directus_fields", {
386
+ await new ItemsService("directus_fields", {
476
387
  knex: trx,
477
388
  accountability: this.accountability,
478
389
  schema: this.schema
479
- });
480
- await fieldItemsService.deleteByQuery({ filter: { collection: { _eq: collectionKey } } }, { bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params) });
390
+ }).deleteByQuery({ filter: { collection: { _eq: collectionKey } } }, { bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params) });
481
391
  await trx("directus_presets").delete().where("collection", "=", collectionKey);
482
392
  const revisionsToDelete = await trx.select("id").from("directus_revisions").where({ collection: collectionKey });
483
393
  if (revisionsToDelete.length > 0) {
484
394
  const chunks = chunk(revisionsToDelete.map((record) => record.id), 1e4);
485
- for (const keys of chunks) {
486
- await trx("directus_revisions").update({ parent: null }).whereIn("parent", keys);
487
- }
395
+ for (const keys of chunks) await trx("directus_revisions").update({ parent: null }).whereIn("parent", keys);
488
396
  }
489
397
  await trx("directus_revisions").delete().where("collection", "=", collectionKey);
490
398
  await trx("directus_activity").delete().where("collection", "=", collectionKey);
@@ -496,29 +404,23 @@ var CollectionsService = class CollectionsService {
496
404
  const collectionMetas = await trx.select("collection", "archive_field", "sort_field", "item_duplication_fields").from("directus_collections").whereIn("collection", Array.from(collectionRelationList)).whereNotNull("item_duplication_fields");
497
405
  await Promise.all(Object.keys(this.schema.collections[collectionKey]?.fields ?? {}).map(async (fieldKey) => {
498
406
  const collectionMetaUpdates = getCollectionMetaUpdates(collectionKey, fieldKey, collectionMetas, this.schema.collections, fieldToCollectionList);
499
- for (const meta of collectionMetaUpdates) {
500
- await trx("directus_collections").update(meta.updates).where({ collection: meta.collection });
501
- }
407
+ for (const meta of collectionMetaUpdates) await trx("directus_collections").update(meta.updates).where({ collection: meta.collection });
502
408
  }));
503
409
  }
504
410
  const relations = this.schema.relations.filter((relation) => {
505
411
  return relation.collection === collectionKey || relation.related_collection === collectionKey;
506
412
  });
507
413
  for (const relation of relations) {
508
- if (relation.related_collection && relation.meta?.one_field) {
509
- await fieldsService.deleteField(relation.related_collection, relation.meta.one_field, {
510
- autoPurgeCache: false,
511
- autoPurgeSystemCache: false,
512
- bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params)
513
- });
514
- }
515
- if (relation.related_collection === collectionKey) {
516
- await fieldsService.deleteField(relation.collection, relation.field, {
517
- autoPurgeCache: false,
518
- autoPurgeSystemCache: false,
519
- bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params)
520
- });
521
- }
414
+ if (relation.related_collection && relation.meta?.one_field) await fieldsService.deleteField(relation.related_collection, relation.meta.one_field, {
415
+ autoPurgeCache: false,
416
+ autoPurgeSystemCache: false,
417
+ bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params)
418
+ });
419
+ if (relation.related_collection === collectionKey) await fieldsService.deleteField(relation.collection, relation.field, {
420
+ autoPurgeCache: false,
421
+ autoPurgeSystemCache: false,
422
+ bypassEmitAction: (params) => opts?.bypassEmitAction ? opts.bypassEmitAction(params) : nestedActionEvents.push(params)
423
+ });
522
424
  }
523
425
  const a2oRelationsThatIncludeThisCollection = this.schema.relations.filter((relation) => {
524
426
  return relation.meta?.one_allowed_collections?.includes(collectionKey);
@@ -531,12 +433,8 @@ var CollectionsService = class CollectionsService {
531
433
  });
532
434
  return collectionKey;
533
435
  } finally {
534
- if (shouldClearCache(this.cache, opts)) {
535
- await this.cache.clear();
536
- }
537
- if (opts?.autoPurgeSystemCache !== false) {
538
- await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
539
- }
436
+ if (shouldClearCache(this.cache, opts)) await this.cache.clear();
437
+ if (opts?.autoPurgeSystemCache !== false) await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
540
438
  if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
541
439
  const updatedSchema = await getSchema();
542
440
  for (const nestedActionEvent of nestedActionEvents) {
@@ -550,9 +448,7 @@ var CollectionsService = class CollectionsService {
550
448
  * Delete multiple collections by key
551
449
  */
552
450
  async deleteMany(collectionKeys, opts) {
553
- if (this.accountability && this.accountability.admin !== true) {
554
- throw new ForbiddenError();
555
- }
451
+ if (this.accountability && this.accountability.admin !== true) throw new ForbiddenError();
556
452
  const nestedActionEvents = [];
557
453
  try {
558
454
  await transaction(this.knex, async (trx) => {
@@ -561,22 +457,16 @@ var CollectionsService = class CollectionsService {
561
457
  accountability: this.accountability,
562
458
  knex: trx
563
459
  });
564
- for (const collectionKey of collectionKeys) {
565
- await service.deleteOne(collectionKey, {
566
- autoPurgeCache: false,
567
- autoPurgeSystemCache: false,
568
- bypassEmitAction: (params) => nestedActionEvents.push(params)
569
- });
570
- }
460
+ for (const collectionKey of collectionKeys) await service.deleteOne(collectionKey, {
461
+ autoPurgeCache: false,
462
+ autoPurgeSystemCache: false,
463
+ bypassEmitAction: (params) => nestedActionEvents.push(params)
464
+ });
571
465
  });
572
466
  return collectionKeys;
573
467
  } finally {
574
- if (shouldClearCache(this.cache, opts)) {
575
- await this.cache.clear();
576
- }
577
- if (opts?.autoPurgeSystemCache !== false) {
578
- await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
579
- }
468
+ if (shouldClearCache(this.cache, opts)) await this.cache.clear();
469
+ if (opts?.autoPurgeSystemCache !== false) await clearSystemCache({ autoPurgeCache: opts?.autoPurgeCache });
580
470
  if (opts?.emitEvents !== false && nestedActionEvents.length > 0) {
581
471
  const updatedSchema = await getSchema();
582
472
  for (const nestedActionEvent of nestedActionEvents) {
@@ -25,32 +25,22 @@ var CommentsService = class extends ItemsService {
25
25
  }
26
26
  async createOne(data, opts) {
27
27
  if (!this.accountability?.user) throw new ForbiddenError();
28
- if (!data["comment"]) {
29
- throw new InvalidPayloadError({ reason: `"comment" is required` });
30
- }
31
- if (!data["collection"]) {
32
- throw new InvalidPayloadError({ reason: `"collection" is required` });
33
- }
34
- if (!data["item"]) {
35
- throw new InvalidPayloadError({ reason: `"item" is required` });
36
- }
37
- if (this.accountability) {
38
- await validateAccess({
39
- accountability: this.accountability,
40
- action: "read",
41
- collection: data["collection"],
42
- primaryKeys: [data["item"]]
43
- }, {
44
- schema: this.schema,
45
- knex: this.knex
46
- });
47
- }
28
+ if (!data["comment"]) throw new InvalidPayloadError({ reason: `"comment" is required` });
29
+ if (!data["collection"]) throw new InvalidPayloadError({ reason: `"collection" is required` });
30
+ if (!data["item"]) throw new InvalidPayloadError({ reason: `"item" is required` });
31
+ if (this.accountability) await validateAccess({
32
+ accountability: this.accountability,
33
+ action: "read",
34
+ collection: data["collection"],
35
+ primaryKeys: [data["item"]]
36
+ }, {
37
+ schema: this.schema,
38
+ knex: this.knex
39
+ });
48
40
  const result = await super.createOne(data, opts);
49
- const usersRegExp = new RegExp(/@[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}/gi);
41
+ const usersRegExp = /* @__PURE__ */ new RegExp(/@[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}/gi);
50
42
  const mentions = uniq(data["comment"].match(usersRegExp) ?? []);
51
- if (mentions.length === 0) {
52
- return result;
53
- }
43
+ if (mentions.length === 0) return result;
54
44
  const sender = await this.usersService.readOne(this.accountability.user, { fields: [
55
45
  "id",
56
46
  "first_name",
@@ -91,7 +81,7 @@ var CommentsService = class extends ItemsService {
91
81
  schema: this.schema,
92
82
  knex: this.knex
93
83
  });
94
- const templateData = await usersService.readByQuery({
84
+ const userPreviews = (await usersService.readByQuery({
95
85
  fields: [
96
86
  "id",
97
87
  "first_name",
@@ -99,8 +89,7 @@ var CommentsService = class extends ItemsService {
99
89
  "email"
100
90
  ],
101
91
  filter: { id: { _in: mentions.map((mention$1) => mention$1.substring(1)) } }
102
- });
103
- const userPreviews = templateData.reduce((acc, user$1) => {
92
+ })).reduce((acc, user$1) => {
104
93
  acc[user$1["id"]] = `<em>${userName(user$1)}</em>`;
105
94
  return acc;
106
95
  }, {});
@@ -130,11 +119,8 @@ ${comment}
130
119
  item: data["item"]
131
120
  });
132
121
  } catch (err) {
133
- if (isDirectusError(err, ErrorCode.Forbidden)) {
134
- logger.warn(`User ${userID} doesn't have proper permissions to receive notification for this item.`);
135
- } else {
136
- throw err;
137
- }
122
+ if (isDirectusError(err, ErrorCode.Forbidden)) logger.warn(`User ${userID} doesn't have proper permissions to receive notification for this item.`);
123
+ else throw err;
138
124
  }
139
125
  }
140
126
  return result;