ocean-brain 0.3.3 → 0.4.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 (253) hide show
  1. package/dist/mcp.js +151 -37
  2. package/package.json +5 -5
  3. package/scripts/postinstall-prisma.mjs +3 -2
  4. package/server/client/dist/assets/Calendar-CSXEuWmQ.js +25 -0
  5. package/server/client/dist/assets/Callout-Ap1OcxWN.js +1 -0
  6. package/server/client/dist/assets/Graph-C0Ax9qjI.js +1 -0
  7. package/server/client/dist/assets/{Image-ZxF459sC.js → Image-CSbcG-5a.js} +1 -1
  8. package/server/client/dist/assets/{Image.es-CFTbON7k.js → Image.es-Fbe7aDDo.js} +1 -1
  9. package/server/client/dist/assets/{ModalActionRow-Hg6MY61u.js → ModalActionRow-DjI5b4bl.js} +1 -1
  10. package/server/client/dist/assets/Note-BY6WgYLq.js +1 -0
  11. package/server/client/dist/assets/Note-W4f6H9K0.css +1 -0
  12. package/server/client/dist/assets/Reminders-vRksvSQE.js +1 -0
  13. package/server/client/dist/assets/Search-Cq4tuiJO.js +1 -0
  14. package/server/client/dist/assets/{SurfaceCard-BV6y4bCo.js → SurfaceCard-Br6TjX5W.js} +1 -1
  15. package/server/client/dist/assets/Tag-ARDLA-Pb.js +1 -0
  16. package/server/client/dist/assets/TagNotes-CDGVrCJU.js +1 -0
  17. package/server/client/dist/assets/{Trash.es-CPtRLE0y.js → Trash.es-BfCEiL3-.js} +1 -1
  18. package/server/client/dist/assets/ViewNotes-ZBOQ1adH.js +1 -0
  19. package/server/client/dist/assets/Views-DQHPfdwM.js +1 -0
  20. package/server/client/dist/assets/{image.api-Dsrx9S-G.js → image.api-DGXlQ_Ca.js} +1 -1
  21. package/server/client/dist/assets/index-B28TO4FC.js +1 -0
  22. package/server/client/dist/assets/{index-CD2bFEqK.css → index-Bm9l_L20.css} +1 -1
  23. package/server/client/dist/assets/index-Bsx4P7EA.js +210 -0
  24. package/server/client/dist/assets/manage-image-Dg297A_h.js +1 -0
  25. package/server/client/dist/assets/manage-image-detail-hk6jWyiB.js +1 -0
  26. package/server/client/dist/assets/mcp-CSjmBjFR.js +1 -0
  27. package/server/client/dist/assets/{note-core-BCgMq5QA.js → note-core-GgFcksAF.js} +1 -1
  28. package/server/client/dist/assets/{note-vendor-BofYbzmZ.js → note-vendor-5N5mRkIT.js} +3 -3
  29. package/server/client/dist/assets/{placeholder-MNsco0AT.js → placeholder-Bmiowo28.js} +4 -4
  30. package/server/client/dist/assets/trash-CM7SbVtW.js +1 -0
  31. package/server/client/dist/assets/{useReminderMutate-yJak8FzP.js → useReminderMutate-DsIvVpCQ.js} +2 -2
  32. package/server/client/dist/assets/view-dashboard-CP8nhfxQ.js +90 -0
  33. package/server/client/dist/index.html +4 -4
  34. package/server/dist/app.js +8 -84
  35. package/server/dist/app.js.map +1 -1
  36. package/server/dist/features/auth/http/api.js +43 -0
  37. package/server/dist/features/auth/http/api.js.map +1 -0
  38. package/server/dist/features/auth/http/login-page.js +28 -0
  39. package/server/dist/features/auth/http/login-page.js.map +1 -0
  40. package/server/dist/features/auth/http/pages.js +50 -0
  41. package/server/dist/features/auth/http/pages.js.map +1 -0
  42. package/server/dist/features/auth/service.js +94 -0
  43. package/server/dist/features/auth/service.js.map +1 -0
  44. package/server/dist/features/cache/graphql/cache.field.resolver.js +5 -0
  45. package/server/dist/features/cache/graphql/cache.field.resolver.js.map +1 -0
  46. package/server/dist/features/cache/graphql/cache.mutation.resolver.js +49 -0
  47. package/server/dist/features/cache/graphql/cache.mutation.resolver.js.map +1 -0
  48. package/server/dist/features/cache/graphql/cache.query.resolver.js +21 -0
  49. package/server/dist/features/cache/graphql/cache.query.resolver.js.map +1 -0
  50. package/server/dist/features/cache/graphql/cache.resolver.js +12 -0
  51. package/server/dist/features/cache/graphql/cache.resolver.js.map +1 -0
  52. package/server/dist/features/cache/graphql/cache.type-defs.js +32 -0
  53. package/server/dist/features/cache/graphql/cache.type-defs.js.map +1 -0
  54. package/server/dist/features/cache/graphql/index.js +21 -0
  55. package/server/dist/features/cache/graphql/index.js.map +1 -0
  56. package/server/dist/features/image/graphql/image.field.resolver.js +14 -0
  57. package/server/dist/features/image/graphql/image.field.resolver.js.map +1 -0
  58. package/server/dist/features/image/graphql/image.mutation.resolver.js +21 -0
  59. package/server/dist/features/image/graphql/image.mutation.resolver.js.map +1 -0
  60. package/server/dist/features/image/graphql/image.query.resolver.js +40 -0
  61. package/server/dist/features/image/graphql/image.query.resolver.js.map +1 -0
  62. package/server/dist/features/image/graphql/image.resolver.js +12 -0
  63. package/server/dist/features/image/graphql/image.resolver.js.map +1 -0
  64. package/server/dist/features/image/graphql/image.type-defs.js +31 -0
  65. package/server/dist/features/image/graphql/image.type-defs.js.map +1 -0
  66. package/server/dist/features/image/graphql/index.js +16 -0
  67. package/server/dist/features/image/graphql/index.js.map +1 -0
  68. package/server/dist/features/image/http/upload.js +48 -0
  69. package/server/dist/features/image/http/upload.js.map +1 -0
  70. package/server/dist/features/image/services/delete.js +52 -0
  71. package/server/dist/features/image/services/delete.js.map +1 -0
  72. package/server/dist/{modules/remote-image.js → features/image/services/remote-fetch.js} +1 -1
  73. package/server/dist/features/image/services/remote-fetch.js.map +1 -0
  74. package/server/dist/{modules/image-upload.js → features/image/services/upload.js} +4 -8
  75. package/server/dist/features/image/services/upload.js.map +1 -0
  76. package/server/dist/{views/mcp-admin.js → features/mcp-admin/http/handlers.js} +3 -3
  77. package/server/dist/features/mcp-admin/http/handlers.js.map +1 -0
  78. package/server/dist/{modules/mcp-admin.js → features/mcp-admin/service.js} +3 -3
  79. package/server/dist/features/mcp-admin/service.js.map +1 -0
  80. package/server/dist/features/note/graphql/index.js +8 -0
  81. package/server/dist/features/note/graphql/index.js.map +1 -0
  82. package/server/dist/features/note/graphql/note.field.resolver.js +12 -0
  83. package/server/dist/features/note/graphql/note.field.resolver.js.map +1 -0
  84. package/server/dist/features/note/graphql/note.graphql.shared.js +23 -0
  85. package/server/dist/features/note/graphql/note.graphql.shared.js.map +1 -0
  86. package/server/dist/features/note/graphql/note.mutation.resolver.js +140 -0
  87. package/server/dist/features/note/graphql/note.mutation.resolver.js.map +1 -0
  88. package/server/dist/features/note/graphql/note.query.resolver.js +382 -0
  89. package/server/dist/features/note/graphql/note.query.resolver.js.map +1 -0
  90. package/server/dist/features/note/graphql/note.resolver.js +14 -0
  91. package/server/dist/features/note/graphql/note.resolver.js.map +1 -0
  92. package/server/dist/features/note/graphql/note.type-defs.js +184 -0
  93. package/server/dist/features/note/graphql/note.type-defs.js.map +1 -0
  94. package/server/dist/{views/note.js → features/note/http/mcp.js} +27 -15
  95. package/server/dist/features/note/http/mcp.js.map +1 -0
  96. package/server/dist/{modules/note-authoring.js → features/note/services/authoring.js} +25 -7
  97. package/server/dist/features/note/services/authoring.js.map +1 -0
  98. package/server/dist/{modules/note-cleanup.js → features/note/services/cleanup.js} +14 -23
  99. package/server/dist/features/note/services/cleanup.js.map +1 -0
  100. package/server/dist/features/note/services/search-backfill.js +84 -0
  101. package/server/dist/features/note/services/search-backfill.js.map +1 -0
  102. package/server/dist/features/note/services/search.js +197 -0
  103. package/server/dist/features/note/services/search.js.map +1 -0
  104. package/server/dist/{modules/note-snapshot.js → features/note/services/snapshot.js} +51 -49
  105. package/server/dist/features/note/services/snapshot.js.map +1 -0
  106. package/server/dist/features/note/services/tag-filter.js +18 -0
  107. package/server/dist/features/note/services/tag-filter.js.map +1 -0
  108. package/server/dist/{modules/note-trash.js → features/note/services/trash.js} +28 -23
  109. package/server/dist/features/note/services/trash.js.map +1 -0
  110. package/server/dist/features/placeholder/graphql/index.js +27 -0
  111. package/server/dist/features/placeholder/graphql/index.js.map +1 -0
  112. package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js +5 -0
  113. package/server/dist/features/placeholder/graphql/placeholder.field.resolver.js.map +1 -0
  114. package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js +72 -0
  115. package/server/dist/features/placeholder/graphql/placeholder.mutation.resolver.js.map +1 -0
  116. package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js +36 -0
  117. package/server/dist/features/placeholder/graphql/placeholder.query.resolver.js.map +1 -0
  118. package/server/dist/features/placeholder/graphql/placeholder.resolver.js +12 -0
  119. package/server/dist/features/placeholder/graphql/placeholder.resolver.js.map +1 -0
  120. package/server/dist/features/placeholder/graphql/placeholder.type-defs.js +50 -0
  121. package/server/dist/features/placeholder/graphql/placeholder.type-defs.js.map +1 -0
  122. package/server/dist/features/reminder/graphql/index.js +27 -0
  123. package/server/dist/features/reminder/graphql/index.js.map +1 -0
  124. package/server/dist/features/reminder/graphql/reminder.field.resolver.js +10 -0
  125. package/server/dist/features/reminder/graphql/reminder.field.resolver.js.map +1 -0
  126. package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js +59 -0
  127. package/server/dist/features/reminder/graphql/reminder.mutation.resolver.js.map +1 -0
  128. package/server/dist/features/reminder/graphql/reminder.query.resolver.js +79 -0
  129. package/server/dist/features/reminder/graphql/reminder.query.resolver.js.map +1 -0
  130. package/server/dist/features/reminder/graphql/reminder.resolver.js +12 -0
  131. package/server/dist/features/reminder/graphql/reminder.resolver.js.map +1 -0
  132. package/server/dist/features/reminder/graphql/reminder.type-defs.js +51 -0
  133. package/server/dist/features/reminder/graphql/reminder.type-defs.js.map +1 -0
  134. package/server/dist/features/tag/graphql/index.js +14 -0
  135. package/server/dist/features/tag/graphql/index.js.map +1 -0
  136. package/server/dist/features/tag/graphql/tag.field.resolver.js +10 -0
  137. package/server/dist/features/tag/graphql/tag.field.resolver.js.map +1 -0
  138. package/server/dist/features/tag/graphql/tag.mutation.resolver.js +15 -0
  139. package/server/dist/features/tag/graphql/tag.mutation.resolver.js.map +1 -0
  140. package/server/dist/features/tag/graphql/tag.query.resolver.js +26 -0
  141. package/server/dist/features/tag/graphql/tag.query.resolver.js.map +1 -0
  142. package/server/dist/features/tag/graphql/tag.resolver.js +12 -0
  143. package/server/dist/features/tag/graphql/tag.resolver.js.map +1 -0
  144. package/server/dist/features/tag/graphql/tag.type-defs.js +46 -0
  145. package/server/dist/features/tag/graphql/tag.type-defs.js.map +1 -0
  146. package/server/dist/{views/tag.js → features/tag/http/mcp.js} +3 -3
  147. package/server/dist/features/tag/http/mcp.js.map +1 -0
  148. package/server/dist/{modules/tag-organization.js → features/tag/services/organization.js} +38 -8
  149. package/server/dist/features/tag/services/organization.js.map +1 -0
  150. package/server/dist/features/view/graphql/index.js +11 -0
  151. package/server/dist/features/view/graphql/index.js.map +1 -0
  152. package/server/dist/features/view/graphql/view.mutation.resolver.js +53 -0
  153. package/server/dist/features/view/graphql/view.mutation.resolver.js.map +1 -0
  154. package/server/dist/features/view/graphql/view.query.resolver.js +29 -0
  155. package/server/dist/features/view/graphql/view.query.resolver.js.map +1 -0
  156. package/server/dist/features/view/graphql/view.resolver.js +10 -0
  157. package/server/dist/features/view/graphql/view.resolver.js.map +1 -0
  158. package/server/dist/features/view/graphql/view.type-defs.js +63 -0
  159. package/server/dist/features/view/graphql/view.type-defs.js.map +1 -0
  160. package/server/dist/features/view/services/workspace.js +432 -0
  161. package/server/dist/features/view/services/workspace.js.map +1 -0
  162. package/server/dist/main.js +14 -0
  163. package/server/dist/main.js.map +1 -1
  164. package/server/dist/modules/auth-guard.js +10 -9
  165. package/server/dist/modules/auth-guard.js.map +1 -1
  166. package/server/dist/modules/auth-mode.js +1 -3
  167. package/server/dist/modules/auth-mode.js.map +1 -1
  168. package/server/dist/modules/blocknote.js +96 -33
  169. package/server/dist/modules/blocknote.js.map +1 -1
  170. package/server/dist/modules/data-maintenance.js +75 -0
  171. package/server/dist/modules/data-maintenance.js.map +1 -0
  172. package/server/dist/modules/error-handler.js.map +1 -1
  173. package/server/dist/modules/logger.js +5 -23
  174. package/server/dist/modules/logger.js.map +1 -1
  175. package/server/dist/modules/mcp-auth.js +4 -5
  176. package/server/dist/modules/mcp-auth.js.map +1 -1
  177. package/server/dist/modules/mcp-token.js.map +1 -1
  178. package/server/dist/modules/prisma-runtime.js +2 -7
  179. package/server/dist/modules/prisma-runtime.js.map +1 -1
  180. package/server/dist/modules/recovery-retention.js +1 -1
  181. package/server/dist/modules/recovery-retention.js.map +1 -1
  182. package/server/dist/modules/server-events-handler.js +34 -0
  183. package/server/dist/modules/server-events-handler.js.map +1 -0
  184. package/server/dist/modules/server-events.js +32 -0
  185. package/server/dist/modules/server-events.js.map +1 -0
  186. package/server/dist/modules/use-async.js.map +1 -1
  187. package/server/dist/paths.js.map +1 -1
  188. package/server/dist/routes/api.js +34 -0
  189. package/server/dist/routes/api.js.map +1 -0
  190. package/server/dist/routes/auth-pages.js +11 -0
  191. package/server/dist/routes/auth-pages.js.map +1 -0
  192. package/server/dist/routes/client.js +27 -0
  193. package/server/dist/routes/client.js.map +1 -0
  194. package/server/dist/routes/graphql.js +33 -0
  195. package/server/dist/routes/graphql.js.map +1 -0
  196. package/server/dist/routes/index.js +11 -0
  197. package/server/dist/routes/index.js.map +1 -0
  198. package/server/dist/routes/mcp.js +30 -0
  199. package/server/dist/routes/mcp.js.map +1 -0
  200. package/server/dist/schema/index.js +11 -8
  201. package/server/dist/schema/index.js.map +1 -1
  202. package/server/dist/types/index.js.map +1 -1
  203. package/server/prisma/migrations/20260413143000_0014_tag_name_unique/migration.sql +32 -0
  204. package/server/prisma/migrations/20260414143000_0015_note_searchable_text/migration.sql +5 -0
  205. package/server/prisma/migrations/20260416090000_0016_view_workspace/migration.sql +50 -0
  206. package/server/prisma/schema.prisma +66 -12
  207. package/server/client/dist/assets/Calendar-DyXzs5M3.js +0 -25
  208. package/server/client/dist/assets/Graph-C8K4PJOn.js +0 -1
  209. package/server/client/dist/assets/Note-BbgZvrC3.js +0 -1
  210. package/server/client/dist/assets/Note-PEevDKBh.css +0 -1
  211. package/server/client/dist/assets/Reminders-jFhljND4.js +0 -1
  212. package/server/client/dist/assets/Search-X6QIR_m2.js +0 -1
  213. package/server/client/dist/assets/Tag-Ba2Dw4gH.js +0 -1
  214. package/server/client/dist/assets/TagNotes-BRJv6sDI.js +0 -1
  215. package/server/client/dist/assets/index-BglnLSet.js +0 -205
  216. package/server/client/dist/assets/index-DpqKngJz.js +0 -1
  217. package/server/client/dist/assets/manage-image-C6Y_0M5H.js +0 -1
  218. package/server/client/dist/assets/manage-image-detail-Dv3xofpe.js +0 -1
  219. package/server/client/dist/assets/mcp-BijQkpfY.js +0 -1
  220. package/server/client/dist/assets/trash-CiFJm_PK.js +0 -1
  221. package/server/dist/modules/auth.js +0 -25
  222. package/server/dist/modules/auth.js.map +0 -1
  223. package/server/dist/modules/image-upload.js.map +0 -1
  224. package/server/dist/modules/mcp-admin.js.map +0 -1
  225. package/server/dist/modules/note-authoring.js.map +0 -1
  226. package/server/dist/modules/note-cleanup.js.map +0 -1
  227. package/server/dist/modules/note-snapshot.js.map +0 -1
  228. package/server/dist/modules/note-trash.js.map +0 -1
  229. package/server/dist/modules/remote-image.js.map +0 -1
  230. package/server/dist/modules/tag-organization.js.map +0 -1
  231. package/server/dist/schema/cache/index.js +0 -58
  232. package/server/dist/schema/cache/index.js.map +0 -1
  233. package/server/dist/schema/image/index.js +0 -88
  234. package/server/dist/schema/image/index.js.map +0 -1
  235. package/server/dist/schema/note/index.js +0 -551
  236. package/server/dist/schema/note/index.js.map +0 -1
  237. package/server/dist/schema/placeholder/index.js +0 -105
  238. package/server/dist/schema/placeholder/index.js.map +0 -1
  239. package/server/dist/schema/reminder/index.js +0 -161
  240. package/server/dist/schema/reminder/index.js.map +0 -1
  241. package/server/dist/schema/tag/index.js +0 -81
  242. package/server/dist/schema/tag/index.js.map +0 -1
  243. package/server/dist/urls.js +0 -9
  244. package/server/dist/urls.js.map +0 -1
  245. package/server/dist/views/auth.js +0 -305
  246. package/server/dist/views/auth.js.map +0 -1
  247. package/server/dist/views/image.js +0 -44
  248. package/server/dist/views/image.js.map +0 -1
  249. package/server/dist/views/index.js +0 -6
  250. package/server/dist/views/index.js.map +0 -1
  251. package/server/dist/views/mcp-admin.js.map +0 -1
  252. package/server/dist/views/note.js.map +0 -1
  253. package/server/dist/views/tag.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ import { placeholderFieldResolvers } from "./placeholder.field.resolver.js";
2
+ import {
3
+ createCreatePlaceholderMutationResolver,
4
+ createDeletePlaceholderMutationResolver,
5
+ createUpdatePlaceholderMutationResolver,
6
+ placeholderMutationResolvers
7
+ } from "./placeholder.mutation.resolver.js";
8
+ import {
9
+ createAllPlaceholdersQueryResolver,
10
+ createPlaceholderQueryResolver,
11
+ placeholderQueryResolvers
12
+ } from "./placeholder.query.resolver.js";
13
+ import { placeholderResolvers } from "./placeholder.resolver.js";
14
+ import { placeholderTypeDefs } from "./placeholder.type-defs.js";
15
+ export {
16
+ createAllPlaceholdersQueryResolver,
17
+ createCreatePlaceholderMutationResolver,
18
+ createDeletePlaceholderMutationResolver,
19
+ createPlaceholderQueryResolver,
20
+ createUpdatePlaceholderMutationResolver,
21
+ placeholderFieldResolvers,
22
+ placeholderMutationResolvers,
23
+ placeholderQueryResolvers,
24
+ placeholderResolvers,
25
+ placeholderTypeDefs
26
+ };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/placeholder/graphql/index.ts"],"sourcesContent":["export { placeholderFieldResolvers } from './placeholder.field.resolver.js';\nexport {\n createCreatePlaceholderMutationResolver,\n createDeletePlaceholderMutationResolver,\n createUpdatePlaceholderMutationResolver,\n placeholderMutationResolvers,\n} from './placeholder.mutation.resolver.js';\nexport {\n createAllPlaceholdersQueryResolver,\n createPlaceholderQueryResolver,\n placeholderQueryResolvers,\n} from './placeholder.query.resolver.js';\nexport { placeholderResolvers } from './placeholder.resolver.js';\nexport { placeholderTypeDefs } from './placeholder.type-defs.js';\n"],"mappings":"AAAA,SAAS,iCAAiC;AAC1C;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,4BAA4B;AACrC,SAAS,2BAA2B;","names":[]}
@@ -0,0 +1,5 @@
1
+ const placeholderFieldResolvers = {};
2
+ export {
3
+ placeholderFieldResolvers
4
+ };
5
+ //# sourceMappingURL=placeholder.field.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.field.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\n\ntype PlaceholderFieldResolvers = NonNullable<IResolvers['Placeholder']>;\n\nexport const placeholderFieldResolvers: PlaceholderFieldResolvers = {};\n"],"mappings":"AAIO,MAAM,4BAAuD,CAAC;","names":[]}
@@ -0,0 +1,72 @@
1
+ import models from "../../../models.js";
2
+ const createCreatePlaceholderMutationResolver = (deps = {
3
+ createPlaceholder: async (input) => models.placeholder.create({
4
+ data: {
5
+ name: input.name,
6
+ template: input.template,
7
+ replacement: input.replacement
8
+ }
9
+ })
10
+ }) => {
11
+ return async (_, { name, template, replacement }) => {
12
+ return deps.createPlaceholder({
13
+ name,
14
+ template,
15
+ replacement
16
+ });
17
+ };
18
+ };
19
+ const createUpdatePlaceholderMutationResolver = (deps = {
20
+ findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),
21
+ updatePlaceholder: async (input) => {
22
+ await models.placeholder.update({
23
+ where: { id: input.id },
24
+ data: {
25
+ name: input.name,
26
+ template: input.template,
27
+ replacement: input.replacement
28
+ }
29
+ });
30
+ }
31
+ }) => {
32
+ return async (_, { id, name, template, replacement }) => {
33
+ const placeholder = await deps.findPlaceholderById(Number(id));
34
+ if (!placeholder) {
35
+ throw new Error("Placeholder not found");
36
+ }
37
+ await deps.updatePlaceholder({
38
+ id: Number(id),
39
+ name,
40
+ template,
41
+ replacement
42
+ });
43
+ return placeholder;
44
+ };
45
+ };
46
+ const createDeletePlaceholderMutationResolver = (deps = {
47
+ findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),
48
+ deletePlaceholder: async (id) => {
49
+ await models.placeholder.delete({ where: { id } });
50
+ }
51
+ }) => {
52
+ return async (_, { id }) => {
53
+ const placeholder = await deps.findPlaceholderById(Number(id));
54
+ if (!placeholder) {
55
+ return false;
56
+ }
57
+ await deps.deletePlaceholder(Number(id));
58
+ return true;
59
+ };
60
+ };
61
+ const placeholderMutationResolvers = {
62
+ createPlaceholder: createCreatePlaceholderMutationResolver(),
63
+ updatePlaceholder: createUpdatePlaceholderMutationResolver(),
64
+ deletePlaceholder: createDeletePlaceholderMutationResolver()
65
+ };
66
+ export {
67
+ createCreatePlaceholderMutationResolver,
68
+ createDeletePlaceholderMutationResolver,
69
+ createUpdatePlaceholderMutationResolver,
70
+ placeholderMutationResolvers
71
+ };
72
+ //# sourceMappingURL=placeholder.mutation.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.mutation.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport models from '~/models.js';\n\ntype PlaceholderMutationResolvers = NonNullable<IResolvers['Mutation']>;\ntype PlaceholderRecord = Awaited<ReturnType<typeof models.placeholder.findFirst>>;\n\ninterface CreatePlaceholderArgs {\n name: string;\n template: string;\n replacement?: string;\n}\n\ninterface UpdatePlaceholderArgs {\n id: string | number;\n name?: string;\n template?: string;\n replacement?: string;\n}\n\ninterface PlaceholderMutationDeps {\n createPlaceholder: (input: CreatePlaceholderArgs) => Promise<unknown>;\n deletePlaceholder: (id: number) => Promise<void>;\n findPlaceholderById: (id: number) => Promise<PlaceholderRecord>;\n updatePlaceholder: (input: { id: number; name?: string; template?: string; replacement?: string }) => Promise<void>;\n}\n\nexport const createCreatePlaceholderMutationResolver = (\n deps: Pick<PlaceholderMutationDeps, 'createPlaceholder'> = {\n createPlaceholder: async (input) =>\n models.placeholder.create({\n data: {\n name: input.name,\n template: input.template,\n replacement: input.replacement as string,\n },\n }),\n },\n) => {\n return async (_: unknown, { name, template, replacement }: CreatePlaceholderArgs) => {\n return deps.createPlaceholder({\n name,\n template,\n replacement,\n });\n };\n};\n\nexport const createUpdatePlaceholderMutationResolver = (\n deps: Pick<PlaceholderMutationDeps, 'findPlaceholderById' | 'updatePlaceholder'> = {\n findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),\n updatePlaceholder: async (input) => {\n await models.placeholder.update({\n where: { id: input.id },\n data: {\n name: input.name,\n template: input.template,\n replacement: input.replacement,\n },\n });\n },\n },\n) => {\n return async (_: unknown, { id, name, template, replacement }: UpdatePlaceholderArgs) => {\n const placeholder = await deps.findPlaceholderById(Number(id));\n\n if (!placeholder) {\n throw new Error('Placeholder not found');\n }\n\n await deps.updatePlaceholder({\n id: Number(id),\n name,\n template,\n replacement,\n });\n\n return placeholder;\n };\n};\n\nexport const createDeletePlaceholderMutationResolver = (\n deps: Pick<PlaceholderMutationDeps, 'findPlaceholderById' | 'deletePlaceholder'> = {\n findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),\n deletePlaceholder: async (id) => {\n await models.placeholder.delete({ where: { id } });\n },\n },\n) => {\n return async (_: unknown, { id }: { id: string | number }) => {\n const placeholder = await deps.findPlaceholderById(Number(id));\n\n if (!placeholder) {\n return false;\n }\n\n await deps.deletePlaceholder(Number(id));\n return true;\n };\n};\n\nexport const placeholderMutationResolvers: PlaceholderMutationResolvers = {\n createPlaceholder: createCreatePlaceholderMutationResolver(),\n updatePlaceholder: createUpdatePlaceholderMutationResolver(),\n deletePlaceholder: createDeletePlaceholderMutationResolver(),\n};\n"],"mappings":"AACA,OAAO,YAAY;AAyBZ,MAAM,0CAA0C,CACnD,OAA2D;AAAA,EACvD,mBAAmB,OAAO,UACtB,OAAO,YAAY,OAAO;AAAA,IACtB,MAAM;AAAA,MACF,MAAM,MAAM;AAAA,MACZ,UAAU,MAAM;AAAA,MAChB,aAAa,MAAM;AAAA,IACvB;AAAA,EACJ,CAAC;AACT,MACC;AACD,SAAO,OAAO,GAAY,EAAE,MAAM,UAAU,YAAY,MAA6B;AACjF,WAAO,KAAK,kBAAkB;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAEO,MAAM,0CAA0C,CACnD,OAAmF;AAAA,EAC/E,qBAAqB,OAAO,OAAO,OAAO,YAAY,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EACjF,mBAAmB,OAAO,UAAU;AAChC,UAAM,OAAO,YAAY,OAAO;AAAA,MAC5B,OAAO,EAAE,IAAI,MAAM,GAAG;AAAA,MACtB,MAAM;AAAA,QACF,MAAM,MAAM;AAAA,QACZ,UAAU,MAAM;AAAA,QAChB,aAAa,MAAM;AAAA,MACvB;AAAA,IACJ,CAAC;AAAA,EACL;AACJ,MACC;AACD,SAAO,OAAO,GAAY,EAAE,IAAI,MAAM,UAAU,YAAY,MAA6B;AACrF,UAAM,cAAc,MAAM,KAAK,oBAAoB,OAAO,EAAE,CAAC;AAE7D,QAAI,CAAC,aAAa;AACd,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AAEA,UAAM,KAAK,kBAAkB;AAAA,MACzB,IAAI,OAAO,EAAE;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO;AAAA,EACX;AACJ;AAEO,MAAM,0CAA0C,CACnD,OAAmF;AAAA,EAC/E,qBAAqB,OAAO,OAAO,OAAO,YAAY,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EACjF,mBAAmB,OAAO,OAAO;AAC7B,UAAM,OAAO,YAAY,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EACrD;AACJ,MACC;AACD,SAAO,OAAO,GAAY,EAAE,GAAG,MAA+B;AAC1D,UAAM,cAAc,MAAM,KAAK,oBAAoB,OAAO,EAAE,CAAC;AAE7D,QAAI,CAAC,aAAa;AACd,aAAO;AAAA,IACX;AAEA,UAAM,KAAK,kBAAkB,OAAO,EAAE,CAAC;AACvC,WAAO;AAAA,EACX;AACJ;AAEO,MAAM,+BAA6D;AAAA,EACtE,mBAAmB,wCAAwC;AAAA,EAC3D,mBAAmB,wCAAwC;AAAA,EAC3D,mBAAmB,wCAAwC;AAC/D;","names":[]}
@@ -0,0 +1,36 @@
1
+ import models from "../../../models.js";
2
+ const createAllPlaceholdersQueryResolver = (deps = {
3
+ countPlaceholders: async () => models.placeholder.count(),
4
+ findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),
5
+ findPlaceholders: async (input) => models.placeholder.findMany(input)
6
+ }) => {
7
+ return async (_, { searchFilter, pagination }) => {
8
+ const placeholders = await deps.findPlaceholders({
9
+ where: searchFilter?.query ? { name: { contains: searchFilter.query } } : void 0,
10
+ take: pagination?.limit,
11
+ skip: pagination?.offset
12
+ });
13
+ const totalCount = await deps.countPlaceholders();
14
+ return {
15
+ totalCount,
16
+ placeholders
17
+ };
18
+ };
19
+ };
20
+ const createPlaceholderQueryResolver = (deps = {
21
+ findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } })
22
+ }) => {
23
+ return async (_, { id }) => {
24
+ return deps.findPlaceholderById(Number(id));
25
+ };
26
+ };
27
+ const placeholderQueryResolvers = {
28
+ allPlaceholders: createAllPlaceholdersQueryResolver(),
29
+ placeholder: createPlaceholderQueryResolver()
30
+ };
31
+ export {
32
+ createAllPlaceholdersQueryResolver,
33
+ createPlaceholderQueryResolver,
34
+ placeholderQueryResolvers
35
+ };
36
+ //# sourceMappingURL=placeholder.query.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.query.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport models from '~/models.js';\nimport type { Pagination, SearchFilter } from '~/types/index.js';\n\ntype PlaceholderQueryResolvers = NonNullable<IResolvers['Query']>;\n\ninterface PlaceholderQueryDeps {\n countPlaceholders: () => Promise<number>;\n findPlaceholderById: (id: number) => Promise<unknown>;\n findPlaceholders: (input: {\n where?: { name: { contains: string } };\n take?: number;\n skip?: number;\n }) => Promise<unknown[]>;\n}\n\nexport const createAllPlaceholdersQueryResolver = (\n deps: PlaceholderQueryDeps = {\n countPlaceholders: async () => models.placeholder.count(),\n findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),\n findPlaceholders: async (input) => models.placeholder.findMany(input),\n },\n) => {\n return async (\n _: unknown,\n { searchFilter, pagination }: { searchFilter?: SearchFilter; pagination?: Pagination },\n ) => {\n const placeholders = await deps.findPlaceholders({\n where: searchFilter?.query ? { name: { contains: searchFilter.query } } : undefined,\n take: pagination?.limit,\n skip: pagination?.offset,\n });\n\n const totalCount = await deps.countPlaceholders();\n\n return {\n totalCount,\n placeholders,\n };\n };\n};\n\nexport const createPlaceholderQueryResolver = (\n deps: Pick<PlaceholderQueryDeps, 'findPlaceholderById'> = {\n findPlaceholderById: async (id) => models.placeholder.findFirst({ where: { id } }),\n },\n) => {\n return async (_: unknown, { id }: { id: string | number }) => {\n return deps.findPlaceholderById(Number(id));\n };\n};\n\nexport const placeholderQueryResolvers: PlaceholderQueryResolvers = {\n allPlaceholders: createAllPlaceholdersQueryResolver(),\n placeholder: createPlaceholderQueryResolver(),\n};\n"],"mappings":"AACA,OAAO,YAAY;AAeZ,MAAM,qCAAqC,CAC9C,OAA6B;AAAA,EACzB,mBAAmB,YAAY,OAAO,YAAY,MAAM;AAAA,EACxD,qBAAqB,OAAO,OAAO,OAAO,YAAY,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EACjF,kBAAkB,OAAO,UAAU,OAAO,YAAY,SAAS,KAAK;AACxE,MACC;AACD,SAAO,OACH,GACA,EAAE,cAAc,WAAW,MAC1B;AACD,UAAM,eAAe,MAAM,KAAK,iBAAiB;AAAA,MAC7C,OAAO,cAAc,QAAQ,EAAE,MAAM,EAAE,UAAU,aAAa,MAAM,EAAE,IAAI;AAAA,MAC1E,MAAM,YAAY;AAAA,MAClB,MAAM,YAAY;AAAA,IACtB,CAAC;AAED,UAAM,aAAa,MAAM,KAAK,kBAAkB;AAEhD,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,MAAM,iCAAiC,CAC1C,OAA0D;AAAA,EACtD,qBAAqB,OAAO,OAAO,OAAO,YAAY,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACrF,MACC;AACD,SAAO,OAAO,GAAY,EAAE,GAAG,MAA+B;AAC1D,WAAO,KAAK,oBAAoB,OAAO,EAAE,CAAC;AAAA,EAC9C;AACJ;AAEO,MAAM,4BAAuD;AAAA,EAChE,iBAAiB,mCAAmC;AAAA,EACpD,aAAa,+BAA+B;AAChD;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { placeholderFieldResolvers } from "./placeholder.field.resolver.js";
2
+ import { placeholderMutationResolvers } from "./placeholder.mutation.resolver.js";
3
+ import { placeholderQueryResolvers } from "./placeholder.query.resolver.js";
4
+ const placeholderResolvers = {
5
+ Query: placeholderQueryResolvers,
6
+ Mutation: placeholderMutationResolvers,
7
+ Placeholder: placeholderFieldResolvers
8
+ };
9
+ export {
10
+ placeholderResolvers
11
+ };
12
+ //# sourceMappingURL=placeholder.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport { placeholderFieldResolvers } from './placeholder.field.resolver.js';\nimport { placeholderMutationResolvers } from './placeholder.mutation.resolver.js';\nimport { placeholderQueryResolvers } from './placeholder.query.resolver.js';\n\nexport const placeholderResolvers: IResolvers = {\n Query: placeholderQueryResolvers,\n Mutation: placeholderMutationResolvers,\n Placeholder: placeholderFieldResolvers,\n};\n"],"mappings":"AACA,SAAS,iCAAiC;AAC1C,SAAS,oCAAoC;AAC7C,SAAS,iCAAiC;AAEnC,MAAM,uBAAmC;AAAA,EAC5C,OAAO;AAAA,EACP,UAAU;AAAA,EACV,aAAa;AACjB;","names":[]}
@@ -0,0 +1,50 @@
1
+ import { gql } from "../../../modules/graphql.js";
2
+ const placeholderType = gql`
3
+ input PaginationInput {
4
+ limit: Int!
5
+ offset: Int!
6
+ }
7
+
8
+ input SearchFilterInput {
9
+ query: String!
10
+ }
11
+
12
+ type Placeholder {
13
+ id: ID!
14
+ name: String!
15
+ template: String!
16
+ replacement: String!
17
+ createdAt: String!
18
+ updatedAt: String!
19
+ }
20
+
21
+ type Placeholders {
22
+ totalCount: Int!
23
+ placeholders: [Placeholder!]!
24
+ }
25
+ `;
26
+ const placeholderQuery = gql`
27
+ type Query {
28
+ allPlaceholders(searchFilter: SearchFilterInput, pagination: PaginationInput): Placeholders!
29
+ placeholder(id: ID!): Placeholder
30
+ }
31
+ `;
32
+ const placeholderMutation = gql`
33
+ type Mutation {
34
+ createPlaceholder(name: String!, template: String!, replacement: String): Placeholder!
35
+ updatePlaceholder(id: ID!, name: String, template: String, replacement: String): Placeholder!
36
+ deletePlaceholder(id: ID!): Boolean!
37
+ }
38
+ `;
39
+ const placeholderTypeDefs = `
40
+ ${placeholderType}
41
+ ${placeholderQuery}
42
+ ${placeholderMutation}
43
+ `;
44
+ export {
45
+ placeholderMutation,
46
+ placeholderQuery,
47
+ placeholderType,
48
+ placeholderTypeDefs
49
+ };
50
+ //# sourceMappingURL=placeholder.type-defs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/placeholder/graphql/placeholder.type-defs.ts"],"sourcesContent":["import { gql } from '~/modules/graphql.js';\n\nexport const placeholderType = gql`\n input PaginationInput {\n limit: Int!\n offset: Int!\n }\n\n input SearchFilterInput {\n query: String!\n }\n\n type Placeholder {\n id: ID!\n name: String!\n template: String!\n replacement: String!\n createdAt: String!\n updatedAt: String!\n }\n\n type Placeholders {\n totalCount: Int!\n placeholders: [Placeholder!]!\n }\n`;\n\nexport const placeholderQuery = gql`\n type Query {\n allPlaceholders(searchFilter: SearchFilterInput, pagination: PaginationInput): Placeholders!\n placeholder(id: ID!): Placeholder\n }\n`;\n\nexport const placeholderMutation = gql`\n type Mutation {\n createPlaceholder(name: String!, template: String!, replacement: String): Placeholder!\n updatePlaceholder(id: ID!, name: String, template: String, replacement: String): Placeholder!\n deletePlaceholder(id: ID!): Boolean!\n }\n`;\n\nexport const placeholderTypeDefs = `\n ${placeholderType}\n ${placeholderQuery}\n ${placeholderMutation}\n`;\n"],"mappings":"AAAA,SAAS,WAAW;AAEb,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBxB,MAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAOzB,MAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQ5B,MAAM,sBAAsB;AAAA,MAC7B,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,mBAAmB;AAAA;","names":[]}
@@ -0,0 +1,27 @@
1
+ import { reminderFieldResolvers } from "./reminder.field.resolver.js";
2
+ import {
3
+ createCreateReminderMutationResolver,
4
+ createDeleteReminderMutationResolver,
5
+ createUpdateReminderMutationResolver,
6
+ reminderMutationResolvers
7
+ } from "./reminder.mutation.resolver.js";
8
+ import {
9
+ createNoteRemindersQueryResolver,
10
+ createUpcomingRemindersQueryResolver,
11
+ reminderQueryResolvers
12
+ } from "./reminder.query.resolver.js";
13
+ import { reminderResolvers } from "./reminder.resolver.js";
14
+ import { reminderTypeDefs } from "./reminder.type-defs.js";
15
+ export {
16
+ createCreateReminderMutationResolver,
17
+ createDeleteReminderMutationResolver,
18
+ createNoteRemindersQueryResolver,
19
+ createUpcomingRemindersQueryResolver,
20
+ createUpdateReminderMutationResolver,
21
+ reminderFieldResolvers,
22
+ reminderMutationResolvers,
23
+ reminderQueryResolvers,
24
+ reminderResolvers,
25
+ reminderTypeDefs
26
+ };
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/reminder/graphql/index.ts"],"sourcesContent":["export { reminderFieldResolvers } from './reminder.field.resolver.js';\nexport {\n createCreateReminderMutationResolver,\n createDeleteReminderMutationResolver,\n createUpdateReminderMutationResolver,\n reminderMutationResolvers,\n} from './reminder.mutation.resolver.js';\nexport {\n createNoteRemindersQueryResolver,\n createUpcomingRemindersQueryResolver,\n reminderQueryResolvers,\n} from './reminder.query.resolver.js';\nexport { reminderResolvers } from './reminder.resolver.js';\nexport { reminderTypeDefs } from './reminder.type-defs.js';\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;","names":[]}
@@ -0,0 +1,10 @@
1
+ import models from "../../../models.js";
2
+ const reminderFieldResolvers = {
3
+ note: async (reminder) => {
4
+ return models.note.findUnique({ where: { id: reminder.noteId } });
5
+ }
6
+ };
7
+ export {
8
+ reminderFieldResolvers
9
+ };
10
+ //# sourceMappingURL=reminder.field.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.field.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport models from '~/models.js';\n\ntype ReminderFieldResolvers = NonNullable<IResolvers['Reminder']>;\n\nexport const reminderFieldResolvers: ReminderFieldResolvers = {\n note: async (reminder: { noteId: number }) => {\n return models.note.findUnique({ where: { id: reminder.noteId } });\n },\n};\n"],"mappings":"AACA,OAAO,YAAY;AAIZ,MAAM,yBAAiD;AAAA,EAC1D,MAAM,OAAO,aAAiC;AAC1C,WAAO,OAAO,KAAK,WAAW,EAAE,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,CAAC;AAAA,EACpE;AACJ;","names":[]}
@@ -0,0 +1,59 @@
1
+ import models from "../../../models.js";
2
+ const createCreateReminderMutationResolver = (deps = {
3
+ createReminder: async (data) => models.reminder.create({ data })
4
+ }) => {
5
+ return async (_, input) => {
6
+ return deps.createReminder({
7
+ noteId: Number(input.noteId),
8
+ reminderDate: new Date(input.reminderDate),
9
+ completed: false,
10
+ priority: input.priority || "medium",
11
+ content: input.content
12
+ });
13
+ };
14
+ };
15
+ const createUpdateReminderMutationResolver = (deps = {
16
+ updateReminder: async (id, data) => models.reminder.update({
17
+ where: { id },
18
+ data
19
+ })
20
+ }) => {
21
+ return async (_, input) => {
22
+ const data = {};
23
+ if (input.reminderDate) {
24
+ data.reminderDate = new Date(input.reminderDate);
25
+ }
26
+ if (input.completed !== void 0) {
27
+ data.completed = input.completed;
28
+ }
29
+ if (input.priority) {
30
+ data.priority = input.priority;
31
+ }
32
+ if (input.content !== void 0) {
33
+ data.content = input.content;
34
+ }
35
+ return deps.updateReminder(Number(input.id), data);
36
+ };
37
+ };
38
+ const createDeleteReminderMutationResolver = (deps = {
39
+ deleteReminder: async (id) => {
40
+ await models.reminder.delete({ where: { id } });
41
+ }
42
+ }) => {
43
+ return async (_, { id }) => {
44
+ await deps.deleteReminder(Number(id));
45
+ return true;
46
+ };
47
+ };
48
+ const reminderMutationResolvers = {
49
+ createReminder: createCreateReminderMutationResolver(),
50
+ updateReminder: createUpdateReminderMutationResolver(),
51
+ deleteReminder: createDeleteReminderMutationResolver()
52
+ };
53
+ export {
54
+ createCreateReminderMutationResolver,
55
+ createDeleteReminderMutationResolver,
56
+ createUpdateReminderMutationResolver,
57
+ reminderMutationResolvers
58
+ };
59
+ //# sourceMappingURL=reminder.mutation.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.mutation.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport type { Reminder } from '~/models.js';\nimport models from '~/models.js';\n\ntype ReminderPriority = 'low' | 'medium' | 'high';\n\ninterface ReminderCreateInput {\n noteId: string;\n reminderDate: string;\n priority?: ReminderPriority;\n content?: string;\n}\n\ninterface ReminderUpdateInput {\n id: string;\n reminderDate?: string;\n completed?: boolean;\n priority?: ReminderPriority;\n content?: string;\n}\n\ninterface ReminderMutationDeps {\n createReminder: (data: {\n noteId: number;\n reminderDate: Date;\n completed: boolean;\n priority: ReminderPriority;\n content?: string;\n }) => Promise<unknown>;\n updateReminder: (id: number, data: Partial<Reminder>) => Promise<unknown>;\n deleteReminder: (id: number) => Promise<void>;\n}\n\nexport const createCreateReminderMutationResolver = (\n deps: Pick<ReminderMutationDeps, 'createReminder'> = {\n createReminder: async (data) => models.reminder.create({ data }),\n },\n) => {\n return async (_: unknown, input: ReminderCreateInput) => {\n return deps.createReminder({\n noteId: Number(input.noteId),\n reminderDate: new Date(input.reminderDate),\n completed: false,\n priority: input.priority || 'medium',\n content: input.content,\n });\n };\n};\n\nexport const createUpdateReminderMutationResolver = (\n deps: Pick<ReminderMutationDeps, 'updateReminder'> = {\n updateReminder: async (id, data) =>\n models.reminder.update({\n where: { id },\n data,\n }),\n },\n) => {\n return async (_: unknown, input: ReminderUpdateInput) => {\n const data: Partial<Reminder> = {};\n\n if (input.reminderDate) {\n data.reminderDate = new Date(input.reminderDate);\n }\n\n if (input.completed !== undefined) {\n data.completed = input.completed;\n }\n\n if (input.priority) {\n data.priority = input.priority;\n }\n\n if (input.content !== undefined) {\n data.content = input.content;\n }\n\n return deps.updateReminder(Number(input.id), data);\n };\n};\n\nexport const createDeleteReminderMutationResolver = (\n deps: Pick<ReminderMutationDeps, 'deleteReminder'> = {\n deleteReminder: async (id) => {\n await models.reminder.delete({ where: { id } });\n },\n },\n) => {\n return async (_: unknown, { id }: { id: string }) => {\n await deps.deleteReminder(Number(id));\n return true;\n };\n};\n\ntype ReminderMutationResolvers = NonNullable<IResolvers['Mutation']>;\n\nexport const reminderMutationResolvers: ReminderMutationResolvers = {\n createReminder: createCreateReminderMutationResolver(),\n updateReminder: createUpdateReminderMutationResolver(),\n deleteReminder: createDeleteReminderMutationResolver(),\n};\n"],"mappings":"AAEA,OAAO,YAAY;AA+BZ,MAAM,uCAAuC,CAChD,OAAqD;AAAA,EACjD,gBAAgB,OAAO,SAAS,OAAO,SAAS,OAAO,EAAE,KAAK,CAAC;AACnE,MACC;AACD,SAAO,OAAO,GAAY,UAA+B;AACrD,WAAO,KAAK,eAAe;AAAA,MACvB,QAAQ,OAAO,MAAM,MAAM;AAAA,MAC3B,cAAc,IAAI,KAAK,MAAM,YAAY;AAAA,MACzC,WAAW;AAAA,MACX,UAAU,MAAM,YAAY;AAAA,MAC5B,SAAS,MAAM;AAAA,IACnB,CAAC;AAAA,EACL;AACJ;AAEO,MAAM,uCAAuC,CAChD,OAAqD;AAAA,EACjD,gBAAgB,OAAO,IAAI,SACvB,OAAO,SAAS,OAAO;AAAA,IACnB,OAAO,EAAE,GAAG;AAAA,IACZ;AAAA,EACJ,CAAC;AACT,MACC;AACD,SAAO,OAAO,GAAY,UAA+B;AACrD,UAAM,OAA0B,CAAC;AAEjC,QAAI,MAAM,cAAc;AACpB,WAAK,eAAe,IAAI,KAAK,MAAM,YAAY;AAAA,IACnD;AAEA,QAAI,MAAM,cAAc,QAAW;AAC/B,WAAK,YAAY,MAAM;AAAA,IAC3B;AAEA,QAAI,MAAM,UAAU;AAChB,WAAK,WAAW,MAAM;AAAA,IAC1B;AAEA,QAAI,MAAM,YAAY,QAAW;AAC7B,WAAK,UAAU,MAAM;AAAA,IACzB;AAEA,WAAO,KAAK,eAAe,OAAO,MAAM,EAAE,GAAG,IAAI;AAAA,EACrD;AACJ;AAEO,MAAM,uCAAuC,CAChD,OAAqD;AAAA,EACjD,gBAAgB,OAAO,OAAO;AAC1B,UAAM,OAAO,SAAS,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAAA,EAClD;AACJ,MACC;AACD,SAAO,OAAO,GAAY,EAAE,GAAG,MAAsB;AACjD,UAAM,KAAK,eAAe,OAAO,EAAE,CAAC;AACpC,WAAO;AAAA,EACX;AACJ;AAIO,MAAM,4BAAuD;AAAA,EAChE,gBAAgB,qCAAqC;AAAA,EACrD,gBAAgB,qCAAqC;AAAA,EACrD,gBAAgB,qCAAqC;AACzD;","names":[]}
@@ -0,0 +1,79 @@
1
+ import models from "../../../models.js";
2
+ const createNoteRemindersQueryResolver = (deps = {
3
+ countReminders: async (where) => models.reminder.count({ where }),
4
+ findReminders: async (args) => models.reminder.findMany(args)
5
+ }) => {
6
+ return async (_, {
7
+ noteId,
8
+ pagination = {
9
+ limit: 10,
10
+ offset: 0
11
+ }
12
+ }) => {
13
+ const where = { noteId: Number(noteId) };
14
+ const [totalCount, reminders] = await Promise.all([
15
+ deps.countReminders(where),
16
+ deps.findReminders({
17
+ where,
18
+ orderBy: { reminderDate: "asc" },
19
+ take: Number(pagination.limit),
20
+ skip: Number(pagination.offset)
21
+ })
22
+ ]);
23
+ return {
24
+ totalCount,
25
+ reminders
26
+ };
27
+ };
28
+ };
29
+ const createUpcomingRemindersQueryResolver = (deps = {
30
+ countReminders: async (where) => models.reminder.count({ where }),
31
+ findReminders: async (args) => models.reminder.findMany(args)
32
+ }) => {
33
+ return async (_, {
34
+ pagination = {
35
+ limit: 10,
36
+ offset: 0
37
+ }
38
+ }) => {
39
+ const where = { completed: false };
40
+ const [totalCount, reminders] = await Promise.all([
41
+ deps.countReminders(where),
42
+ deps.findReminders({
43
+ where,
44
+ orderBy: { reminderDate: "asc" },
45
+ take: Number(pagination.limit),
46
+ skip: Number(pagination.offset),
47
+ include: { note: true }
48
+ })
49
+ ]);
50
+ return {
51
+ totalCount,
52
+ reminders
53
+ };
54
+ };
55
+ };
56
+ const reminderQueryResolvers = {
57
+ noteReminders: createNoteRemindersQueryResolver(),
58
+ upcomingReminders: createUpcomingRemindersQueryResolver(),
59
+ remindersInDateRange: async (_, {
60
+ dateRange
61
+ }) => {
62
+ return models.reminder.findMany({
63
+ where: {
64
+ reminderDate: {
65
+ gte: new Date(dateRange.start),
66
+ lt: new Date(dateRange.end)
67
+ }
68
+ },
69
+ orderBy: { reminderDate: "asc" },
70
+ include: { note: true }
71
+ });
72
+ }
73
+ };
74
+ export {
75
+ createNoteRemindersQueryResolver,
76
+ createUpcomingRemindersQueryResolver,
77
+ reminderQueryResolvers
78
+ };
79
+ //# sourceMappingURL=reminder.query.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.query.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport models from '~/models.js';\nimport type { Pagination } from '~/types/index.js';\n\ninterface ReminderListDeps {\n countReminders: (where: object) => Promise<number>;\n findReminders: (args: {\n where: object;\n orderBy: { reminderDate: 'asc' };\n take?: number;\n skip?: number;\n include?: { note: true };\n }) => Promise<unknown[]>;\n}\n\ntype NoteRemindersResolverDeps = ReminderListDeps;\ntype UpcomingRemindersResolverDeps = ReminderListDeps;\n\nexport const createNoteRemindersQueryResolver = (\n deps: NoteRemindersResolverDeps = {\n countReminders: async (where) => models.reminder.count({ where }),\n findReminders: async (args) => models.reminder.findMany(args),\n },\n) => {\n return async (\n _: unknown,\n {\n noteId,\n pagination = {\n limit: 10,\n offset: 0,\n },\n }: {\n noteId: string;\n pagination: Pagination;\n },\n ) => {\n const where = { noteId: Number(noteId) };\n const [totalCount, reminders] = await Promise.all([\n deps.countReminders(where),\n deps.findReminders({\n where,\n orderBy: { reminderDate: 'asc' },\n take: Number(pagination.limit),\n skip: Number(pagination.offset),\n }),\n ]);\n\n return {\n totalCount,\n reminders,\n };\n };\n};\n\nexport const createUpcomingRemindersQueryResolver = (\n deps: UpcomingRemindersResolverDeps = {\n countReminders: async (where) => models.reminder.count({ where }),\n findReminders: async (args) => models.reminder.findMany(args),\n },\n) => {\n return async (\n _: unknown,\n {\n pagination = {\n limit: 10,\n offset: 0,\n },\n }: {\n pagination: Pagination;\n },\n ) => {\n const where = { completed: false };\n const [totalCount, reminders] = await Promise.all([\n deps.countReminders(where),\n deps.findReminders({\n where,\n orderBy: { reminderDate: 'asc' },\n take: Number(pagination.limit),\n skip: Number(pagination.offset),\n include: { note: true },\n }),\n ]);\n\n return {\n totalCount,\n reminders,\n };\n };\n};\n\ntype ReminderQueryResolvers = NonNullable<IResolvers['Query']>;\n\nexport const reminderQueryResolvers: ReminderQueryResolvers = {\n noteReminders: createNoteRemindersQueryResolver(),\n upcomingReminders: createUpcomingRemindersQueryResolver(),\n remindersInDateRange: async (\n _,\n {\n dateRange,\n }: {\n dateRange: {\n start: string;\n end: string;\n };\n },\n ) => {\n return models.reminder.findMany({\n where: {\n reminderDate: {\n gte: new Date(dateRange.start),\n lt: new Date(dateRange.end),\n },\n },\n orderBy: { reminderDate: 'asc' },\n include: { note: true },\n });\n },\n};\n"],"mappings":"AACA,OAAO,YAAY;AAiBZ,MAAM,mCAAmC,CAC5C,OAAkC;AAAA,EAC9B,gBAAgB,OAAO,UAAU,OAAO,SAAS,MAAM,EAAE,MAAM,CAAC;AAAA,EAChE,eAAe,OAAO,SAAS,OAAO,SAAS,SAAS,IAAI;AAChE,MACC;AACD,SAAO,OACH,GACA;AAAA,IACI;AAAA,IACA,aAAa;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,IACZ;AAAA,EACJ,MAIC;AACD,UAAM,QAAQ,EAAE,QAAQ,OAAO,MAAM,EAAE;AACvC,UAAM,CAAC,YAAY,SAAS,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC9C,KAAK,eAAe,KAAK;AAAA,MACzB,KAAK,cAAc;AAAA,QACf;AAAA,QACA,SAAS,EAAE,cAAc,MAAM;AAAA,QAC/B,MAAM,OAAO,WAAW,KAAK;AAAA,QAC7B,MAAM,OAAO,WAAW,MAAM;AAAA,MAClC,CAAC;AAAA,IACL,CAAC;AAED,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AAEO,MAAM,uCAAuC,CAChD,OAAsC;AAAA,EAClC,gBAAgB,OAAO,UAAU,OAAO,SAAS,MAAM,EAAE,MAAM,CAAC;AAAA,EAChE,eAAe,OAAO,SAAS,OAAO,SAAS,SAAS,IAAI;AAChE,MACC;AACD,SAAO,OACH,GACA;AAAA,IACI,aAAa;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,IACZ;AAAA,EACJ,MAGC;AACD,UAAM,QAAQ,EAAE,WAAW,MAAM;AACjC,UAAM,CAAC,YAAY,SAAS,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC9C,KAAK,eAAe,KAAK;AAAA,MACzB,KAAK,cAAc;AAAA,QACf;AAAA,QACA,SAAS,EAAE,cAAc,MAAM;AAAA,QAC/B,MAAM,OAAO,WAAW,KAAK;AAAA,QAC7B,MAAM,OAAO,WAAW,MAAM;AAAA,QAC9B,SAAS,EAAE,MAAM,KAAK;AAAA,MAC1B,CAAC;AAAA,IACL,CAAC;AAED,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AAIO,MAAM,yBAAiD;AAAA,EAC1D,eAAe,iCAAiC;AAAA,EAChD,mBAAmB,qCAAqC;AAAA,EACxD,sBAAsB,OAClB,GACA;AAAA,IACI;AAAA,EACJ,MAMC;AACD,WAAO,OAAO,SAAS,SAAS;AAAA,MAC5B,OAAO;AAAA,QACH,cAAc;AAAA,UACV,KAAK,IAAI,KAAK,UAAU,KAAK;AAAA,UAC7B,IAAI,IAAI,KAAK,UAAU,GAAG;AAAA,QAC9B;AAAA,MACJ;AAAA,MACA,SAAS,EAAE,cAAc,MAAM;AAAA,MAC/B,SAAS,EAAE,MAAM,KAAK;AAAA,IAC1B,CAAC;AAAA,EACL;AACJ;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { reminderFieldResolvers } from "./reminder.field.resolver.js";
2
+ import { reminderMutationResolvers } from "./reminder.mutation.resolver.js";
3
+ import { reminderQueryResolvers } from "./reminder.query.resolver.js";
4
+ const reminderResolvers = {
5
+ Query: reminderQueryResolvers,
6
+ Mutation: reminderMutationResolvers,
7
+ Reminder: reminderFieldResolvers
8
+ };
9
+ export {
10
+ reminderResolvers
11
+ };
12
+ //# sourceMappingURL=reminder.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport { reminderFieldResolvers } from './reminder.field.resolver.js';\nimport { reminderMutationResolvers } from './reminder.mutation.resolver.js';\nimport { reminderQueryResolvers } from './reminder.query.resolver.js';\n\nexport const reminderResolvers: IResolvers = {\n Query: reminderQueryResolvers,\n Mutation: reminderMutationResolvers,\n Reminder: reminderFieldResolvers,\n};\n"],"mappings":"AACA,SAAS,8BAA8B;AACvC,SAAS,iCAAiC;AAC1C,SAAS,8BAA8B;AAEhC,MAAM,oBAAgC;AAAA,EACzC,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AACd;","names":[]}
@@ -0,0 +1,51 @@
1
+ import { gql } from "../../../modules/graphql.js";
2
+ const reminderType = gql`
3
+ enum ReminderPriority {
4
+ low
5
+ medium
6
+ high
7
+ }
8
+
9
+ type Reminder {
10
+ id: ID!
11
+ noteId: Int!
12
+ reminderDate: String!
13
+ completed: Boolean!
14
+ priority: ReminderPriority
15
+ content: String
16
+ createdAt: String!
17
+ updatedAt: String!
18
+ note: Note
19
+ }
20
+
21
+ type Reminders {
22
+ totalCount: Int!
23
+ reminders: [Reminder!]!
24
+ }
25
+ `;
26
+ const reminderQuery = gql`
27
+ extend type Query {
28
+ noteReminders(noteId: ID!, pagination: PaginationInput): Reminders!
29
+ upcomingReminders(pagination: PaginationInput): Reminders!
30
+ remindersInDateRange(dateRange: DateRangeInput): [Reminder!]!
31
+ }
32
+ `;
33
+ const reminderMutation = gql`
34
+ extend type Mutation {
35
+ createReminder(noteId: ID!, reminderDate: String!, priority: ReminderPriority, content: String): Reminder!
36
+ updateReminder(id: ID!, reminderDate: String, completed: Boolean, priority: ReminderPriority, content: String): Reminder!
37
+ deleteReminder(id: ID!): Boolean!
38
+ }
39
+ `;
40
+ const reminderTypeDefs = `
41
+ ${reminderType}
42
+ ${reminderQuery}
43
+ ${reminderMutation}
44
+ `;
45
+ export {
46
+ reminderMutation,
47
+ reminderQuery,
48
+ reminderType,
49
+ reminderTypeDefs
50
+ };
51
+ //# sourceMappingURL=reminder.type-defs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/reminder/graphql/reminder.type-defs.ts"],"sourcesContent":["import { gql } from '~/modules/graphql.js';\n\nexport const reminderType = gql`\n enum ReminderPriority {\n low\n medium\n high\n }\n\n type Reminder {\n id: ID!\n noteId: Int!\n reminderDate: String!\n completed: Boolean!\n priority: ReminderPriority\n content: String\n createdAt: String!\n updatedAt: String!\n note: Note\n }\n\n type Reminders {\n totalCount: Int!\n reminders: [Reminder!]!\n }\n`;\n\nexport const reminderQuery = gql`\n extend type Query {\n noteReminders(noteId: ID!, pagination: PaginationInput): Reminders!\n upcomingReminders(pagination: PaginationInput): Reminders!\n remindersInDateRange(dateRange: DateRangeInput): [Reminder!]!\n }\n`;\n\nexport const reminderMutation = gql`\n extend type Mutation {\n createReminder(noteId: ID!, reminderDate: String!, priority: ReminderPriority, content: String): Reminder!\n updateReminder(id: ID!, reminderDate: String, completed: Boolean, priority: ReminderPriority, content: String): Reminder!\n deleteReminder(id: ID!): Boolean!\n }\n`;\n\nexport const reminderTypeDefs = `\n ${reminderType}\n ${reminderQuery}\n ${reminderMutation}\n`;\n"],"mappings":"AAAA,SAAS,WAAW;AAEb,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBrB,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQtB,MAAM,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQzB,MAAM,mBAAmB;AAAA,MAC1B,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,gBAAgB;AAAA;","names":[]}
@@ -0,0 +1,14 @@
1
+ import { tagFieldResolvers } from "./tag.field.resolver.js";
2
+ import { createTagMutationResolver, tagMutationResolvers } from "./tag.mutation.resolver.js";
3
+ import { tagQueryResolvers } from "./tag.query.resolver.js";
4
+ import { tagResolvers } from "./tag.resolver.js";
5
+ import { tagTypeDefs } from "./tag.type-defs.js";
6
+ export {
7
+ createTagMutationResolver,
8
+ tagFieldResolvers,
9
+ tagMutationResolvers,
10
+ tagQueryResolvers,
11
+ tagResolvers,
12
+ tagTypeDefs
13
+ };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/tag/graphql/index.ts"],"sourcesContent":["export { tagFieldResolvers } from './tag.field.resolver.js';\nexport { createTagMutationResolver, tagMutationResolvers } from './tag.mutation.resolver.js';\nexport { tagQueryResolvers } from './tag.query.resolver.js';\nexport { tagResolvers } from './tag.resolver.js';\nexport { tagTypeDefs } from './tag.type-defs.js';\n"],"mappings":"AAAA,SAAS,yBAAyB;AAClC,SAAS,2BAA2B,4BAA4B;AAChE,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;","names":[]}
@@ -0,0 +1,10 @@
1
+ import models from "../../../models.js";
2
+ const tagFieldResolvers = {
3
+ referenceCount: async (tag) => {
4
+ return models.note.count({ where: { tags: { some: { id: Number(tag.id) } } } });
5
+ }
6
+ };
7
+ export {
8
+ tagFieldResolvers
9
+ };
10
+ //# sourceMappingURL=tag.field.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/tag/graphql/tag.field.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport type { Tag } from '~/models.js';\nimport models from '~/models.js';\n\ntype TagReferenceCountSource =\n | Pick<Tag, 'id'>\n | {\n id: string;\n };\n\ntype TagFieldResolvers = NonNullable<IResolvers['Tag']>;\n\nexport const tagFieldResolvers: TagFieldResolvers = {\n referenceCount: async (tag: TagReferenceCountSource) => {\n return models.note.count({ where: { tags: { some: { id: Number(tag.id) } } } });\n },\n};\n"],"mappings":"AAEA,OAAO,YAAY;AAUZ,MAAM,oBAAuC;AAAA,EAChD,gBAAgB,OAAO,QAAiC;AACpD,WAAO,OAAO,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAAA,EAClF;AACJ;","names":[]}
@@ -0,0 +1,15 @@
1
+ import { ensureTagByName } from "../../../features/tag/services/organization.js";
2
+ const createTagMutationResolver = (ensureTag = ensureTagByName) => {
3
+ return async (_, { name }) => {
4
+ const result = await ensureTag(name);
5
+ return result.tag;
6
+ };
7
+ };
8
+ const tagMutationResolvers = {
9
+ createTag: createTagMutationResolver()
10
+ };
11
+ export {
12
+ createTagMutationResolver,
13
+ tagMutationResolvers
14
+ };
15
+ //# sourceMappingURL=tag.mutation.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/tag/graphql/tag.mutation.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport { ensureTagByName } from '~/features/tag/services/organization.js';\n\nexport const createTagMutationResolver = (ensureTag = ensureTagByName) => {\n return async (_: unknown, { name }: { name: string }) => {\n const result = await ensureTag(name);\n\n return result.tag;\n };\n};\n\ntype TagMutationResolvers = NonNullable<IResolvers['Mutation']>;\n\nexport const tagMutationResolvers: TagMutationResolvers = {\n createTag: createTagMutationResolver(),\n};\n"],"mappings":"AACA,SAAS,uBAAuB;AAEzB,MAAM,4BAA4B,CAAC,YAAY,oBAAoB;AACtE,SAAO,OAAO,GAAY,EAAE,KAAK,MAAwB;AACrD,UAAM,SAAS,MAAM,UAAU,IAAI;AAEnC,WAAO,OAAO;AAAA,EAClB;AACJ;AAIO,MAAM,uBAA6C;AAAA,EACtD,WAAW,0BAA0B;AACzC;","names":[]}
@@ -0,0 +1,26 @@
1
+ import models from "../../../models.js";
2
+ const tagQueryResolvers = {
3
+ allTags: async (_, {
4
+ searchFilter,
5
+ pagination
6
+ }) => {
7
+ const where = {
8
+ name: { contains: searchFilter.query },
9
+ NOT: { notes: { none: {} } }
10
+ };
11
+ const tags = models.tag.findMany({
12
+ skip: pagination.offset,
13
+ take: pagination.limit,
14
+ where,
15
+ orderBy: { notes: { _count: "desc" } }
16
+ });
17
+ return {
18
+ totalCount: await models.tag.count({ where }),
19
+ tags: await tags
20
+ };
21
+ }
22
+ };
23
+ export {
24
+ tagQueryResolvers
25
+ };
26
+ //# sourceMappingURL=tag.query.resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/features/tag/graphql/tag.query.resolver.ts"],"sourcesContent":["import type { IResolvers } from '@graphql-tools/utils';\nimport type { Prisma } from '~/models.js';\nimport models from '~/models.js';\nimport type { Pagination, SearchFilter } from '~/types/index.js';\n\ntype TagQueryResolvers = NonNullable<IResolvers['Query']>;\n\nexport const tagQueryResolvers: TagQueryResolvers = {\n allTags: async (\n _,\n {\n searchFilter,\n pagination,\n }: {\n searchFilter: SearchFilter;\n pagination: Pagination;\n },\n ) => {\n const where: Prisma.TagWhereInput = {\n name: { contains: searchFilter.query },\n NOT: { notes: { none: {} } },\n };\n const tags = models.tag.findMany({\n skip: pagination.offset,\n take: pagination.limit,\n where,\n orderBy: { notes: { _count: 'desc' } },\n });\n\n return {\n totalCount: await models.tag.count({ where }),\n tags: await tags,\n };\n },\n};\n"],"mappings":"AAEA,OAAO,YAAY;AAKZ,MAAM,oBAAuC;AAAA,EAChD,SAAS,OACL,GACA;AAAA,IACI;AAAA,IACA;AAAA,EACJ,MAIC;AACD,UAAM,QAA8B;AAAA,MAChC,MAAM,EAAE,UAAU,aAAa,MAAM;AAAA,MACrC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE;AAAA,IAC/B;AACA,UAAM,OAAO,OAAO,IAAI,SAAS;AAAA,MAC7B,MAAM,WAAW;AAAA,MACjB,MAAM,WAAW;AAAA,MACjB;AAAA,MACA,SAAS,EAAE,OAAO,EAAE,QAAQ,OAAO,EAAE;AAAA,IACzC,CAAC;AAED,WAAO;AAAA,MACH,YAAY,MAAM,OAAO,IAAI,MAAM,EAAE,MAAM,CAAC;AAAA,MAC5C,MAAM,MAAM;AAAA,IAChB;AAAA,EACJ;AACJ;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { tagFieldResolvers } from "./tag.field.resolver.js";
2
+ import { tagMutationResolvers } from "./tag.mutation.resolver.js";
3
+ import { tagQueryResolvers } from "./tag.query.resolver.js";
4
+ const tagResolvers = {
5
+ Query: tagQueryResolvers,
6
+ Mutation: tagMutationResolvers,
7
+ Tag: tagFieldResolvers
8
+ };
9
+ export {
10
+ tagResolvers
11
+ };
12
+ //# sourceMappingURL=tag.resolver.js.map