@open-mercato/core 0.4.2-canary-07dbc98202 → 0.4.2-canary-1000cb714f

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 (235) hide show
  1. package/dist/generated/entities.ids.generated.js +59 -63
  2. package/dist/generated/entities.ids.generated.js.map +2 -2
  3. package/dist/generated/entity-fields-registry.js +0 -2
  4. package/dist/generated/entity-fields-registry.js.map +2 -2
  5. package/dist/modules/api_docs/frontend/docs/api/page.js +2 -3
  6. package/dist/modules/api_docs/frontend/docs/api/page.js.map +2 -2
  7. package/dist/modules/auth/api/admin/nav.js +3 -4
  8. package/dist/modules/auth/api/admin/nav.js.map +2 -2
  9. package/dist/modules/auth/api/reset/confirm.js +2 -25
  10. package/dist/modules/auth/api/reset/confirm.js.map +2 -2
  11. package/dist/modules/auth/api/reset.js +0 -23
  12. package/dist/modules/auth/api/reset.js.map +2 -2
  13. package/dist/modules/auth/api/sidebar/preferences/route.js +9 -14
  14. package/dist/modules/auth/api/sidebar/preferences/route.js.map +2 -2
  15. package/dist/modules/auth/commands/users.js +0 -55
  16. package/dist/modules/auth/commands/users.js.map +2 -2
  17. package/dist/modules/auth/lib/setup-app.js +0 -1
  18. package/dist/modules/auth/lib/setup-app.js.map +2 -2
  19. package/dist/modules/auth/services/authService.js +3 -3
  20. package/dist/modules/auth/services/authService.js.map +2 -2
  21. package/dist/modules/configs/cli.js +0 -6
  22. package/dist/modules/configs/cli.js.map +2 -2
  23. package/dist/modules/customers/commands/deals.js +0 -31
  24. package/dist/modules/customers/commands/deals.js.map +2 -2
  25. package/dist/modules/sales/commands/documents.js +0 -53
  26. package/dist/modules/sales/commands/documents.js.map +2 -2
  27. package/dist/modules/sales/commands/payments.js +0 -26
  28. package/dist/modules/sales/commands/payments.js.map +2 -2
  29. package/dist/modules/staff/commands/leave-requests.js +0 -79
  30. package/dist/modules/staff/commands/leave-requests.js.map +2 -2
  31. package/generated/entities.ids.generated.ts +59 -63
  32. package/generated/entity-fields-registry.ts +0 -2
  33. package/package.json +2 -2
  34. package/src/modules/api_docs/frontend/docs/api/page.tsx +2 -3
  35. package/src/modules/auth/api/admin/nav.ts +6 -10
  36. package/src/modules/auth/api/reset/confirm.ts +2 -25
  37. package/src/modules/auth/api/reset.ts +0 -23
  38. package/src/modules/auth/api/sidebar/preferences/route.ts +12 -21
  39. package/src/modules/auth/commands/users.ts +0 -68
  40. package/src/modules/auth/i18n/de.json +1 -29
  41. package/src/modules/auth/i18n/en.json +1 -29
  42. package/src/modules/auth/i18n/es.json +1 -29
  43. package/src/modules/auth/i18n/pl.json +1 -29
  44. package/src/modules/auth/lib/setup-app.ts +0 -1
  45. package/src/modules/auth/services/authService.ts +4 -4
  46. package/src/modules/business_rules/i18n/en.json +1 -3
  47. package/src/modules/catalog/i18n/en.json +1 -3
  48. package/src/modules/configs/cli.ts +0 -6
  49. package/src/modules/customers/commands/deals.ts +0 -39
  50. package/src/modules/customers/i18n/en.json +1 -5
  51. package/src/modules/sales/commands/documents.ts +0 -65
  52. package/src/modules/sales/commands/payments.ts +0 -33
  53. package/src/modules/sales/i18n/de.json +0 -20
  54. package/src/modules/sales/i18n/en.json +1 -25
  55. package/src/modules/sales/i18n/es.json +0 -20
  56. package/src/modules/sales/i18n/pl.json +0 -20
  57. package/src/modules/staff/commands/leave-requests.ts +0 -94
  58. package/src/modules/staff/i18n/de.json +0 -4
  59. package/src/modules/staff/i18n/en.json +1 -9
  60. package/src/modules/staff/i18n/es.json +0 -4
  61. package/src/modules/staff/i18n/pl.json +0 -4
  62. package/src/modules/workflows/i18n/en.json +1 -3
  63. package/dist/generated/entities/notification/index.js +0 -57
  64. package/dist/generated/entities/notification/index.js.map +0 -7
  65. package/dist/modules/auth/api/profile/route.js +0 -155
  66. package/dist/modules/auth/api/profile/route.js.map +0 -7
  67. package/dist/modules/auth/backend/auth/profile/page.js +0 -99
  68. package/dist/modules/auth/backend/auth/profile/page.js.map +0 -7
  69. package/dist/modules/auth/backend/auth/profile/page.meta.js +0 -12
  70. package/dist/modules/auth/backend/auth/profile/page.meta.js.map +0 -7
  71. package/dist/modules/auth/notifications.js +0 -112
  72. package/dist/modules/auth/notifications.js.map +0 -7
  73. package/dist/modules/business_rules/notifications.js +0 -28
  74. package/dist/modules/business_rules/notifications.js.map +0 -7
  75. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js +0 -37
  76. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js.map +0 -7
  77. package/dist/modules/catalog/notifications.js +0 -28
  78. package/dist/modules/catalog/notifications.js.map +0 -7
  79. package/dist/modules/catalog/subscribers/low-stock-notification.js +0 -38
  80. package/dist/modules/catalog/subscribers/low-stock-notification.js.map +0 -7
  81. package/dist/modules/customers/notifications.js +0 -48
  82. package/dist/modules/customers/notifications.js.map +0 -7
  83. package/dist/modules/notifications/acl.js +0 -11
  84. package/dist/modules/notifications/acl.js.map +0 -7
  85. package/dist/modules/notifications/api/[id]/action/route.js +0 -74
  86. package/dist/modules/notifications/api/[id]/action/route.js.map +0 -7
  87. package/dist/modules/notifications/api/[id]/dismiss/route.js +0 -15
  88. package/dist/modules/notifications/api/[id]/dismiss/route.js.map +0 -7
  89. package/dist/modules/notifications/api/[id]/read/route.js +0 -15
  90. package/dist/modules/notifications/api/[id]/read/route.js.map +0 -7
  91. package/dist/modules/notifications/api/[id]/restore/route.js +0 -53
  92. package/dist/modules/notifications/api/[id]/restore/route.js.map +0 -7
  93. package/dist/modules/notifications/api/batch/route.js +0 -17
  94. package/dist/modules/notifications/api/batch/route.js.map +0 -7
  95. package/dist/modules/notifications/api/feature/route.js +0 -17
  96. package/dist/modules/notifications/api/feature/route.js.map +0 -7
  97. package/dist/modules/notifications/api/mark-all-read/route.js +0 -35
  98. package/dist/modules/notifications/api/mark-all-read/route.js.map +0 -7
  99. package/dist/modules/notifications/api/openapi.js +0 -76
  100. package/dist/modules/notifications/api/openapi.js.map +0 -7
  101. package/dist/modules/notifications/api/role/route.js +0 -17
  102. package/dist/modules/notifications/api/role/route.js.map +0 -7
  103. package/dist/modules/notifications/api/route.js +0 -85
  104. package/dist/modules/notifications/api/route.js.map +0 -7
  105. package/dist/modules/notifications/api/settings/route.js +0 -155
  106. package/dist/modules/notifications/api/settings/route.js.map +0 -7
  107. package/dist/modules/notifications/api/unread-count/route.js +0 -38
  108. package/dist/modules/notifications/api/unread-count/route.js.map +0 -7
  109. package/dist/modules/notifications/backend/config/notifications/page.js +0 -10
  110. package/dist/modules/notifications/backend/config/notifications/page.js.map +0 -7
  111. package/dist/modules/notifications/backend/config/notifications/page.meta.js +0 -24
  112. package/dist/modules/notifications/backend/config/notifications/page.meta.js.map +0 -7
  113. package/dist/modules/notifications/cli.js +0 -16
  114. package/dist/modules/notifications/cli.js.map +0 -7
  115. package/dist/modules/notifications/data/entities.js +0 -112
  116. package/dist/modules/notifications/data/entities.js.map +0 -7
  117. package/dist/modules/notifications/data/validators.js +0 -94
  118. package/dist/modules/notifications/data/validators.js.map +0 -7
  119. package/dist/modules/notifications/di.js +0 -13
  120. package/dist/modules/notifications/di.js.map +0 -7
  121. package/dist/modules/notifications/emails/NotificationEmail.js +0 -58
  122. package/dist/modules/notifications/emails/NotificationEmail.js.map +0 -7
  123. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js +0 -44
  124. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js.map +0 -7
  125. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js +0 -219
  126. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js.map +0 -7
  127. package/dist/modules/notifications/index.js +0 -14
  128. package/dist/modules/notifications/index.js.map +0 -7
  129. package/dist/modules/notifications/lib/deliveryConfig.js +0 -105
  130. package/dist/modules/notifications/lib/deliveryConfig.js.map +0 -7
  131. package/dist/modules/notifications/lib/events.js +0 -12
  132. package/dist/modules/notifications/lib/events.js.map +0 -7
  133. package/dist/modules/notifications/lib/notificationBuilder.js +0 -66
  134. package/dist/modules/notifications/lib/notificationBuilder.js.map +0 -7
  135. package/dist/modules/notifications/lib/notificationFactory.js +0 -54
  136. package/dist/modules/notifications/lib/notificationFactory.js.map +0 -7
  137. package/dist/modules/notifications/lib/notificationMapper.js +0 -34
  138. package/dist/modules/notifications/lib/notificationMapper.js.map +0 -7
  139. package/dist/modules/notifications/lib/notificationRecipients.js +0 -35
  140. package/dist/modules/notifications/lib/notificationRecipients.js.map +0 -7
  141. package/dist/modules/notifications/lib/notificationService.js +0 -279
  142. package/dist/modules/notifications/lib/notificationService.js.map +0 -7
  143. package/dist/modules/notifications/lib/routeHelpers.js +0 -101
  144. package/dist/modules/notifications/lib/routeHelpers.js.map +0 -7
  145. package/dist/modules/notifications/lib/safeHref.js +0 -24
  146. package/dist/modules/notifications/lib/safeHref.js.map +0 -7
  147. package/dist/modules/notifications/migrations/Migration20260123000001.js +0 -70
  148. package/dist/modules/notifications/migrations/Migration20260123000001.js.map +0 -7
  149. package/dist/modules/notifications/migrations/Migration20260126150000.js +0 -37
  150. package/dist/modules/notifications/migrations/Migration20260126150000.js.map +0 -7
  151. package/dist/modules/notifications/subscribers/deliver-notification.js +0 -139
  152. package/dist/modules/notifications/subscribers/deliver-notification.js.map +0 -7
  153. package/dist/modules/notifications/workers/create-notification.worker.js +0 -70
  154. package/dist/modules/notifications/workers/create-notification.worker.js.map +0 -7
  155. package/dist/modules/sales/notifications.client.js +0 -51
  156. package/dist/modules/sales/notifications.client.js.map +0 -7
  157. package/dist/modules/sales/notifications.js +0 -88
  158. package/dist/modules/sales/notifications.js.map +0 -7
  159. package/dist/modules/sales/subscribers/quote-expiring-notification.js +0 -38
  160. package/dist/modules/sales/subscribers/quote-expiring-notification.js.map +0 -7
  161. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js +0 -137
  162. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js.map +0 -7
  163. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js +0 -137
  164. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js.map +0 -7
  165. package/dist/modules/sales/widgets/notifications/index.js +0 -7
  166. package/dist/modules/sales/widgets/notifications/index.js.map +0 -7
  167. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js +0 -60
  168. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js.map +0 -7
  169. package/dist/modules/staff/notifications.js +0 -75
  170. package/dist/modules/staff/notifications.js.map +0 -7
  171. package/dist/modules/workflows/notifications.js +0 -28
  172. package/dist/modules/workflows/notifications.js.map +0 -7
  173. package/dist/modules/workflows/subscribers/task-assigned-notification.js +0 -38
  174. package/dist/modules/workflows/subscribers/task-assigned-notification.js.map +0 -7
  175. package/generated/entities/notification/index.ts +0 -27
  176. package/src/modules/auth/api/profile/route.ts +0 -160
  177. package/src/modules/auth/backend/auth/profile/page.meta.ts +0 -8
  178. package/src/modules/auth/backend/auth/profile/page.tsx +0 -127
  179. package/src/modules/auth/notifications.ts +0 -109
  180. package/src/modules/business_rules/notifications.ts +0 -25
  181. package/src/modules/business_rules/subscribers/rule-execution-failed-notification.ts +0 -50
  182. package/src/modules/catalog/notifications.ts +0 -25
  183. package/src/modules/catalog/subscribers/low-stock-notification.ts +0 -52
  184. package/src/modules/customers/notifications.ts +0 -44
  185. package/src/modules/notifications/acl.ts +0 -7
  186. package/src/modules/notifications/api/[id]/action/route.ts +0 -75
  187. package/src/modules/notifications/api/[id]/dismiss/route.ts +0 -12
  188. package/src/modules/notifications/api/[id]/read/route.ts +0 -12
  189. package/src/modules/notifications/api/[id]/restore/route.ts +0 -53
  190. package/src/modules/notifications/api/batch/route.ts +0 -14
  191. package/src/modules/notifications/api/feature/route.ts +0 -14
  192. package/src/modules/notifications/api/mark-all-read/route.ts +0 -34
  193. package/src/modules/notifications/api/openapi.ts +0 -76
  194. package/src/modules/notifications/api/role/route.ts +0 -14
  195. package/src/modules/notifications/api/route.ts +0 -92
  196. package/src/modules/notifications/api/settings/route.ts +0 -157
  197. package/src/modules/notifications/api/unread-count/route.ts +0 -38
  198. package/src/modules/notifications/backend/config/notifications/page.meta.ts +0 -22
  199. package/src/modules/notifications/backend/config/notifications/page.tsx +0 -12
  200. package/src/modules/notifications/cli.ts +0 -18
  201. package/src/modules/notifications/data/entities.ts +0 -99
  202. package/src/modules/notifications/data/validators.ts +0 -110
  203. package/src/modules/notifications/di.ts +0 -11
  204. package/src/modules/notifications/emails/NotificationEmail.tsx +0 -98
  205. package/src/modules/notifications/frontend/NotificationInboxPageClient.tsx +0 -42
  206. package/src/modules/notifications/frontend/NotificationSettingsPageClient.tsx +0 -231
  207. package/src/modules/notifications/i18n/de.json +0 -50
  208. package/src/modules/notifications/i18n/en.json +0 -50
  209. package/src/modules/notifications/i18n/es.json +0 -50
  210. package/src/modules/notifications/i18n/pl.json +0 -50
  211. package/src/modules/notifications/index.ts +0 -12
  212. package/src/modules/notifications/lib/deliveryConfig.ts +0 -145
  213. package/src/modules/notifications/lib/events.ts +0 -48
  214. package/src/modules/notifications/lib/notificationBuilder.ts +0 -121
  215. package/src/modules/notifications/lib/notificationFactory.ts +0 -76
  216. package/src/modules/notifications/lib/notificationMapper.ts +0 -33
  217. package/src/modules/notifications/lib/notificationRecipients.ts +0 -83
  218. package/src/modules/notifications/lib/notificationService.ts +0 -414
  219. package/src/modules/notifications/lib/routeHelpers.ts +0 -151
  220. package/src/modules/notifications/lib/safeHref.ts +0 -29
  221. package/src/modules/notifications/migrations/.snapshot-open-mercato.json +0 -300
  222. package/src/modules/notifications/migrations/Migration20260123000001.ts +0 -73
  223. package/src/modules/notifications/migrations/Migration20260126150000.ts +0 -39
  224. package/src/modules/notifications/subscribers/deliver-notification.ts +0 -175
  225. package/src/modules/notifications/workers/create-notification.worker.ts +0 -122
  226. package/src/modules/sales/notifications.client.ts +0 -65
  227. package/src/modules/sales/notifications.ts +0 -82
  228. package/src/modules/sales/subscribers/quote-expiring-notification.ts +0 -53
  229. package/src/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.tsx +0 -156
  230. package/src/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.tsx +0 -156
  231. package/src/modules/sales/widgets/notifications/index.ts +0 -2
  232. package/src/modules/sales/widgets/notifications/useSalesDocumentTotals.ts +0 -81
  233. package/src/modules/staff/notifications.ts +0 -71
  234. package/src/modules/workflows/notifications.ts +0 -25
  235. package/src/modules/workflows/subscribers/task-assigned-notification.ts +0 -53
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/modules/notifications/api/%5Bid%5D/restore/route.ts"],
4
- "sourcesContent": ["import { z } from 'zod'\nimport { restoreNotificationSchema } from '../../../data/validators'\nimport { resolveNotificationContext } from '../../../lib/routeHelpers'\n\nexport const metadata = {\n PUT: { requireAuth: true },\n}\n\nexport async function PUT(req: Request, { params }: { params: Promise<{ id: string }> }) {\n const { id } = await params\n const { service, scope } = await resolveNotificationContext(req)\n\n const body = await req.json().catch(() => ({}))\n const input = restoreNotificationSchema.parse(body)\n\n await service.restoreDismissed(id, input.status, scope)\n\n return Response.json({ ok: true })\n}\n\nexport const openApi = {\n PUT: {\n summary: 'Restore dismissed notification',\n description: 'Undo a dismissal and restore a notification to read or unread.',\n tags: ['Notifications'],\n parameters: [\n {\n name: 'id',\n in: 'path',\n required: true,\n schema: { type: 'string', format: 'uuid' },\n },\n ],\n requestBody: {\n required: false,\n content: {\n 'application/json': {\n schema: restoreNotificationSchema,\n },\n },\n },\n responses: {\n 200: {\n description: 'Notification restored',\n content: {\n 'application/json': {\n schema: z.object({ ok: z.boolean() }),\n },\n },\n },\n },\n },\n}\n"],
5
- "mappings": "AAAA,SAAS,SAAS;AAClB,SAAS,iCAAiC;AAC1C,SAAS,kCAAkC;AAEpC,MAAM,WAAW;AAAA,EACtB,KAAK,EAAE,aAAa,KAAK;AAC3B;AAEA,eAAsB,IAAI,KAAc,EAAE,OAAO,GAAwC;AACvF,QAAM,EAAE,GAAG,IAAI,MAAM;AACrB,QAAM,EAAE,SAAS,MAAM,IAAI,MAAM,2BAA2B,GAAG;AAE/D,QAAM,OAAO,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAC9C,QAAM,QAAQ,0BAA0B,MAAM,IAAI;AAElD,QAAM,QAAQ,iBAAiB,IAAI,MAAM,QAAQ,KAAK;AAEtD,SAAO,SAAS,KAAK,EAAE,IAAI,KAAK,CAAC;AACnC;AAEO,MAAM,UAAU;AAAA,EACrB,KAAK;AAAA,IACH,SAAS;AAAA,IACT,aAAa;AAAA,IACb,MAAM,CAAC,eAAe;AAAA,IACtB,YAAY;AAAA,MACV;AAAA,QACE,MAAM;AAAA,QACN,IAAI;AAAA,QACJ,UAAU;AAAA,QACV,QAAQ,EAAE,MAAM,UAAU,QAAQ,OAAO;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,aAAa;AAAA,MACX,UAAU;AAAA,MACV,SAAS;AAAA,QACP,oBAAoB;AAAA,UAClB,QAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,IACA,WAAW;AAAA,MACT,KAAK;AAAA,QACH,aAAa;AAAA,QACb,SAAS;AAAA,UACP,oBAAoB;AAAA,YAClB,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAAA,UACtC;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,17 +0,0 @@
1
- import { createBatchNotificationSchema } from "../../data/validators.js";
2
- import { createBulkNotificationRoute, createBulkNotificationOpenApi } from "../../lib/routeHelpers.js";
3
- const metadata = {
4
- POST: { requireAuth: true, requireFeatures: ["notifications.create"] }
5
- };
6
- const POST = createBulkNotificationRoute(createBatchNotificationSchema, "createBatch");
7
- const openApi = createBulkNotificationOpenApi(
8
- createBatchNotificationSchema,
9
- "Create batch notifications",
10
- "Send the same notification to multiple users"
11
- );
12
- export {
13
- POST,
14
- metadata,
15
- openApi
16
- };
17
- //# sourceMappingURL=route.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/notifications/api/batch/route.ts"],
4
- "sourcesContent": ["import { createBatchNotificationSchema } from '../../data/validators'\nimport { createBulkNotificationRoute, createBulkNotificationOpenApi } from '../../lib/routeHelpers'\n\nexport const metadata = {\n POST: { requireAuth: true, requireFeatures: ['notifications.create'] },\n}\n\nexport const POST = createBulkNotificationRoute(createBatchNotificationSchema, 'createBatch')\n\nexport const openApi = createBulkNotificationOpenApi(\n createBatchNotificationSchema,\n 'Create batch notifications',\n 'Send the same notification to multiple users'\n)\n"],
5
- "mappings": "AAAA,SAAS,qCAAqC;AAC9C,SAAS,6BAA6B,qCAAqC;AAEpE,MAAM,WAAW;AAAA,EACtB,MAAM,EAAE,aAAa,MAAM,iBAAiB,CAAC,sBAAsB,EAAE;AACvE;AAEO,MAAM,OAAO,4BAA4B,+BAA+B,aAAa;AAErF,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF;",
6
- "names": []
7
- }
@@ -1,17 +0,0 @@
1
- import { createFeatureNotificationSchema } from "../../data/validators.js";
2
- import { createBulkNotificationRoute, createBulkNotificationOpenApi } from "../../lib/routeHelpers.js";
3
- const metadata = {
4
- POST: { requireAuth: true, requireFeatures: ["notifications.create"] }
5
- };
6
- const POST = createBulkNotificationRoute(createFeatureNotificationSchema, "createForFeature");
7
- const openApi = createBulkNotificationOpenApi(
8
- createFeatureNotificationSchema,
9
- "Create notifications for all users with a specific feature/permission",
10
- "Send the same notification to all users who have the specified feature permission (via role ACL or user ACL). Supports wildcard matching."
11
- );
12
- export {
13
- POST,
14
- metadata,
15
- openApi
16
- };
17
- //# sourceMappingURL=route.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/notifications/api/feature/route.ts"],
4
- "sourcesContent": ["import { createFeatureNotificationSchema } from '../../data/validators'\nimport { createBulkNotificationRoute, createBulkNotificationOpenApi } from '../../lib/routeHelpers'\n\nexport const metadata = {\n POST: { requireAuth: true, requireFeatures: ['notifications.create'] },\n}\n\nexport const POST = createBulkNotificationRoute(createFeatureNotificationSchema, 'createForFeature')\n\nexport const openApi = createBulkNotificationOpenApi(\n createFeatureNotificationSchema,\n 'Create notifications for all users with a specific feature/permission',\n 'Send the same notification to all users who have the specified feature permission (via role ACL or user ACL). Supports wildcard matching.'\n)\n"],
5
- "mappings": "AAAA,SAAS,uCAAuC;AAChD,SAAS,6BAA6B,qCAAqC;AAEpE,MAAM,WAAW;AAAA,EACtB,MAAM,EAAE,aAAa,MAAM,iBAAiB,CAAC,sBAAsB,EAAE;AACvE;AAEO,MAAM,OAAO,4BAA4B,iCAAiC,kBAAkB;AAE5F,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF;",
6
- "names": []
7
- }
@@ -1,35 +0,0 @@
1
- import { z } from "zod";
2
- import { resolveNotificationContext } from "../../lib/routeHelpers.js";
3
- const metadata = {
4
- PUT: { requireAuth: true }
5
- };
6
- async function PUT(req) {
7
- const { service, scope } = await resolveNotificationContext(req);
8
- const count = await service.markAllAsRead(scope);
9
- return Response.json({ ok: true, count });
10
- }
11
- const openApi = {
12
- PUT: {
13
- summary: "Mark all notifications as read",
14
- tags: ["Notifications"],
15
- responses: {
16
- 200: {
17
- description: "All notifications marked as read",
18
- content: {
19
- "application/json": {
20
- schema: z.object({
21
- ok: z.boolean(),
22
- count: z.number()
23
- })
24
- }
25
- }
26
- }
27
- }
28
- }
29
- };
30
- export {
31
- PUT,
32
- metadata,
33
- openApi
34
- };
35
- //# sourceMappingURL=route.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/notifications/api/mark-all-read/route.ts"],
4
- "sourcesContent": ["import { z } from 'zod'\nimport { resolveNotificationContext } from '../../lib/routeHelpers'\n\nexport const metadata = {\n PUT: { requireAuth: true },\n}\n\nexport async function PUT(req: Request) {\n const { service, scope } = await resolveNotificationContext(req)\n\n const count = await service.markAllAsRead(scope)\n\n return Response.json({ ok: true, count })\n}\n\nexport const openApi = {\n PUT: {\n summary: 'Mark all notifications as read',\n tags: ['Notifications'],\n responses: {\n 200: {\n description: 'All notifications marked as read',\n content: {\n 'application/json': {\n schema: z.object({\n ok: z.boolean(),\n count: z.number(),\n }),\n },\n },\n },\n },\n },\n}\n"],
5
- "mappings": "AAAA,SAAS,SAAS;AAClB,SAAS,kCAAkC;AAEpC,MAAM,WAAW;AAAA,EACtB,KAAK,EAAE,aAAa,KAAK;AAC3B;AAEA,eAAsB,IAAI,KAAc;AACtC,QAAM,EAAE,SAAS,MAAM,IAAI,MAAM,2BAA2B,GAAG;AAE/D,QAAM,QAAQ,MAAM,QAAQ,cAAc,KAAK;AAE/C,SAAO,SAAS,KAAK,EAAE,IAAI,MAAM,MAAM,CAAC;AAC1C;AAEO,MAAM,UAAU;AAAA,EACrB,KAAK;AAAA,IACH,SAAS;AAAA,IACT,MAAM,CAAC,eAAe;AAAA,IACtB,WAAW;AAAA,MACT,KAAK;AAAA,QACH,aAAa;AAAA,QACb,SAAS;AAAA,UACP,oBAAoB;AAAA,YAClB,QAAQ,EAAE,OAAO;AAAA,cACf,IAAI,EAAE,QAAQ;AAAA,cACd,OAAO,EAAE,OAAO;AAAA,YAClB,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,76 +0,0 @@
1
- import { z } from "zod";
2
- import { createCrudOpenApiFactory, createPagedListResponseSchema } from "@open-mercato/shared/lib/openapi/crud";
3
- import {
4
- listNotificationsSchema,
5
- createNotificationSchema,
6
- executeActionSchema,
7
- notificationDeliveryConfigSchema
8
- } from "../data/validators.js";
9
- const buildNotificationsCrudOpenApi = createCrudOpenApiFactory({
10
- defaultTag: "Notifications"
11
- });
12
- const notificationItemSchema = z.object({
13
- id: z.string().uuid(),
14
- type: z.string(),
15
- title: z.string(),
16
- body: z.string().nullable().optional(),
17
- titleKey: z.string().nullable().optional(),
18
- bodyKey: z.string().nullable().optional(),
19
- titleVariables: z.record(z.string(), z.string()).nullable().optional(),
20
- bodyVariables: z.record(z.string(), z.string()).nullable().optional(),
21
- icon: z.string().nullable().optional(),
22
- severity: z.string(),
23
- status: z.string(),
24
- actions: z.array(z.object({
25
- id: z.string(),
26
- label: z.string(),
27
- labelKey: z.string().optional(),
28
- variant: z.string().optional(),
29
- icon: z.string().optional()
30
- })),
31
- primaryActionId: z.string().optional(),
32
- sourceModule: z.string().nullable().optional(),
33
- sourceEntityType: z.string().nullable().optional(),
34
- sourceEntityId: z.string().uuid().nullable().optional(),
35
- linkHref: z.string().nullable().optional(),
36
- createdAt: z.string(),
37
- readAt: z.string().nullable().optional(),
38
- actionTaken: z.string().nullable().optional()
39
- });
40
- const okResponseSchema = z.object({
41
- ok: z.boolean()
42
- });
43
- const errorResponseSchema = z.object({
44
- error: z.string()
45
- });
46
- const unreadCountResponseSchema = z.object({
47
- unreadCount: z.number()
48
- });
49
- const actionResultResponseSchema = z.object({
50
- ok: z.boolean(),
51
- result: z.unknown().optional(),
52
- href: z.string().optional()
53
- });
54
- const notificationSettingsResponseSchema = z.object({
55
- settings: notificationDeliveryConfigSchema
56
- });
57
- const notificationSettingsUpdateResponseSchema = z.object({
58
- ok: z.boolean(),
59
- settings: notificationDeliveryConfigSchema
60
- });
61
- export {
62
- actionResultResponseSchema,
63
- buildNotificationsCrudOpenApi,
64
- createNotificationSchema,
65
- createPagedListResponseSchema,
66
- errorResponseSchema,
67
- executeActionSchema,
68
- listNotificationsSchema,
69
- notificationDeliveryConfigSchema,
70
- notificationItemSchema,
71
- notificationSettingsResponseSchema,
72
- notificationSettingsUpdateResponseSchema,
73
- okResponseSchema,
74
- unreadCountResponseSchema
75
- };
76
- //# sourceMappingURL=openapi.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/modules/notifications/api/openapi.ts"],
4
- "sourcesContent": ["import { z } from 'zod'\nimport { createCrudOpenApiFactory, createPagedListResponseSchema } from '@open-mercato/shared/lib/openapi/crud'\nimport {\n listNotificationsSchema,\n createNotificationSchema,\n executeActionSchema,\n notificationDeliveryConfigSchema,\n} from '../data/validators'\n\nexport const buildNotificationsCrudOpenApi = createCrudOpenApiFactory({\n defaultTag: 'Notifications',\n})\n\nexport const notificationItemSchema = z.object({\n id: z.string().uuid(),\n type: z.string(),\n title: z.string(),\n body: z.string().nullable().optional(),\n titleKey: z.string().nullable().optional(),\n bodyKey: z.string().nullable().optional(),\n titleVariables: z.record(z.string(), z.string()).nullable().optional(),\n bodyVariables: z.record(z.string(), z.string()).nullable().optional(),\n icon: z.string().nullable().optional(),\n severity: z.string(),\n status: z.string(),\n actions: z.array(z.object({\n id: z.string(),\n label: z.string(),\n labelKey: z.string().optional(),\n variant: z.string().optional(),\n icon: z.string().optional(),\n })),\n primaryActionId: z.string().optional(),\n sourceModule: z.string().nullable().optional(),\n sourceEntityType: z.string().nullable().optional(),\n sourceEntityId: z.string().uuid().nullable().optional(),\n linkHref: z.string().nullable().optional(),\n createdAt: z.string(),\n readAt: z.string().nullable().optional(),\n actionTaken: z.string().nullable().optional(),\n})\n\nexport const okResponseSchema = z.object({\n ok: z.boolean(),\n})\n\nexport const errorResponseSchema = z.object({\n error: z.string(),\n})\n\nexport const unreadCountResponseSchema = z.object({\n unreadCount: z.number(),\n})\n\nexport const actionResultResponseSchema = z.object({\n ok: z.boolean(),\n result: z.unknown().optional(),\n href: z.string().optional(),\n})\n\nexport const notificationSettingsResponseSchema = z.object({\n settings: notificationDeliveryConfigSchema,\n})\n\nexport const notificationSettingsUpdateResponseSchema = z.object({\n ok: z.boolean(),\n settings: notificationDeliveryConfigSchema,\n})\n\nexport {\n createPagedListResponseSchema,\n listNotificationsSchema,\n createNotificationSchema,\n executeActionSchema,\n notificationDeliveryConfigSchema,\n}\n"],
5
- "mappings": "AAAA,SAAS,SAAS;AAClB,SAAS,0BAA0B,qCAAqC;AACxE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,gCAAgC,yBAAyB;AAAA,EACpE,YAAY;AACd,CAAC;AAEM,MAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,IAAI,EAAE,OAAO,EAAE,KAAK;AAAA,EACpB,MAAM,EAAE,OAAO;AAAA,EACf,OAAO,EAAE,OAAO;AAAA,EAChB,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACrC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACzC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACxC,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS;AAAA,EACrE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS;AAAA,EACpE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACrC,UAAU,EAAE,OAAO;AAAA,EACnB,QAAQ,EAAE,OAAO;AAAA,EACjB,SAAS,EAAE,MAAM,EAAE,OAAO;AAAA,IACxB,IAAI,EAAE,OAAO;AAAA,IACb,OAAO,EAAE,OAAO;AAAA,IAChB,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,IAC9B,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,IAC7B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,CAAC,CAAC;AAAA,EACF,iBAAiB,EAAE,OAAO,EAAE,SAAS;AAAA,EACrC,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EAC7C,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACjD,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACzC,WAAW,EAAE,OAAO;AAAA,EACpB,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAAA,EACvC,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;AAC9C,CAAC;AAEM,MAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,IAAI,EAAE,QAAQ;AAChB,CAAC;AAEM,MAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,OAAO,EAAE,OAAO;AAClB,CAAC;AAEM,MAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,aAAa,EAAE,OAAO;AACxB,CAAC;AAEM,MAAM,6BAA6B,EAAE,OAAO;AAAA,EACjD,IAAI,EAAE,QAAQ;AAAA,EACd,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,MAAM,EAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAEM,MAAM,qCAAqC,EAAE,OAAO;AAAA,EACzD,UAAU;AACZ,CAAC;AAEM,MAAM,2CAA2C,EAAE,OAAO;AAAA,EAC/D,IAAI,EAAE,QAAQ;AAAA,EACd,UAAU;AACZ,CAAC;",
6
- "names": []
7
- }
@@ -1,17 +0,0 @@
1
- import { createRoleNotificationSchema } from "../../data/validators.js";
2
- import { createBulkNotificationRoute, createBulkNotificationOpenApi } from "../../lib/routeHelpers.js";
3
- const metadata = {
4
- POST: { requireAuth: true, requireFeatures: ["notifications.create"] }
5
- };
6
- const POST = createBulkNotificationRoute(createRoleNotificationSchema, "createForRole");
7
- const openApi = createBulkNotificationOpenApi(
8
- createRoleNotificationSchema,
9
- "Create notifications for all users in a role",
10
- "Send the same notification to all users who have the specified role within the organization"
11
- );
12
- export {
13
- POST,
14
- metadata,
15
- openApi
16
- };
17
- //# sourceMappingURL=route.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/notifications/api/role/route.ts"],
4
- "sourcesContent": ["import { createRoleNotificationSchema } from '../../data/validators'\nimport { createBulkNotificationRoute, createBulkNotificationOpenApi } from '../../lib/routeHelpers'\n\nexport const metadata = {\n POST: { requireAuth: true, requireFeatures: ['notifications.create'] },\n}\n\nexport const POST = createBulkNotificationRoute(createRoleNotificationSchema, 'createForRole')\n\nexport const openApi = createBulkNotificationOpenApi(\n createRoleNotificationSchema,\n 'Create notifications for all users in a role',\n 'Send the same notification to all users who have the specified role within the organization'\n)\n"],
5
- "mappings": "AAAA,SAAS,oCAAoC;AAC7C,SAAS,6BAA6B,qCAAqC;AAEpE,MAAM,WAAW;AAAA,EACtB,MAAM,EAAE,aAAa,MAAM,iBAAiB,CAAC,sBAAsB,EAAE;AACvE;AAEO,MAAM,OAAO,4BAA4B,8BAA8B,eAAe;AAEtF,MAAM,UAAU;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AACF;",
6
- "names": []
7
- }
@@ -1,85 +0,0 @@
1
- import { z } from "zod";
2
- import { Notification } from "../data/entities.js";
3
- import { listNotificationsSchema, createNotificationSchema } from "../data/validators.js";
4
- import { toNotificationDto } from "../lib/notificationMapper.js";
5
- import { resolveNotificationContext } from "../lib/routeHelpers.js";
6
- import {
7
- buildNotificationsCrudOpenApi,
8
- createPagedListResponseSchema,
9
- notificationItemSchema
10
- } from "./openapi.js";
11
- const metadata = {
12
- GET: { requireAuth: true },
13
- POST: { requireAuth: true, requireFeatures: ["notifications.create"] }
14
- };
15
- async function GET(req) {
16
- const { ctx, scope } = await resolveNotificationContext(req);
17
- const em = ctx.container.resolve("em");
18
- const url = new URL(req.url);
19
- const queryParams = Object.fromEntries(url.searchParams.entries());
20
- const input = listNotificationsSchema.parse(queryParams);
21
- const filters = {
22
- recipientUserId: scope.userId,
23
- tenantId: scope.tenantId
24
- };
25
- if (input.status) {
26
- filters.status = Array.isArray(input.status) ? { $in: input.status } : input.status;
27
- } else {
28
- filters.status = { $ne: "dismissed" };
29
- }
30
- if (input.type) {
31
- filters.type = input.type;
32
- }
33
- if (input.severity) {
34
- filters.severity = input.severity;
35
- }
36
- if (input.sourceEntityType) {
37
- filters.sourceEntityType = input.sourceEntityType;
38
- }
39
- if (input.sourceEntityId) {
40
- filters.sourceEntityId = input.sourceEntityId;
41
- }
42
- if (input.since) {
43
- filters.createdAt = { $gt: new Date(input.since) };
44
- }
45
- const [notifications, total] = await Promise.all([
46
- em.find(Notification, filters, {
47
- orderBy: { createdAt: "desc" },
48
- limit: input.pageSize,
49
- offset: (input.page - 1) * input.pageSize
50
- }),
51
- em.count(Notification, filters)
52
- ]);
53
- const items = notifications.map(toNotificationDto);
54
- return Response.json({
55
- items,
56
- total,
57
- page: input.page,
58
- pageSize: input.pageSize,
59
- totalPages: Math.ceil(total / input.pageSize)
60
- });
61
- }
62
- async function POST(req) {
63
- const { service, scope } = await resolveNotificationContext(req);
64
- const body = await req.json().catch(() => ({}));
65
- const input = createNotificationSchema.parse(body);
66
- const notification = await service.create(input, scope);
67
- return Response.json({ id: notification.id }, { status: 201 });
68
- }
69
- const openApi = buildNotificationsCrudOpenApi({
70
- resourceName: "Notification",
71
- querySchema: listNotificationsSchema,
72
- listResponseSchema: createPagedListResponseSchema(notificationItemSchema),
73
- create: {
74
- schema: createNotificationSchema,
75
- responseSchema: z.object({ id: z.string().uuid() }),
76
- description: "Creates a notification for a user."
77
- }
78
- });
79
- export {
80
- GET,
81
- POST,
82
- metadata,
83
- openApi
84
- };
85
- //# sourceMappingURL=route.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/modules/notifications/api/route.ts"],
4
- "sourcesContent": ["import { z } from 'zod'\nimport type { EntityManager } from '@mikro-orm/core'\nimport { Notification } from '../data/entities'\nimport { listNotificationsSchema, createNotificationSchema } from '../data/validators'\nimport { toNotificationDto } from '../lib/notificationMapper'\nimport { resolveNotificationContext } from '../lib/routeHelpers'\nimport {\n buildNotificationsCrudOpenApi,\n createPagedListResponseSchema,\n notificationItemSchema,\n} from './openapi'\n\nexport const metadata = {\n GET: { requireAuth: true },\n POST: { requireAuth: true, requireFeatures: ['notifications.create'] },\n}\n\nexport async function GET(req: Request) {\n const { ctx, scope } = await resolveNotificationContext(req)\n const em = ctx.container.resolve('em') as EntityManager\n\n const url = new URL(req.url)\n const queryParams = Object.fromEntries(url.searchParams.entries())\n const input = listNotificationsSchema.parse(queryParams)\n\n const filters: Record<string, unknown> = {\n recipientUserId: scope.userId,\n tenantId: scope.tenantId,\n }\n\n if (input.status) {\n filters.status = Array.isArray(input.status) ? { $in: input.status } : input.status\n } else {\n filters.status = { $ne: 'dismissed' }\n }\n if (input.type) {\n filters.type = input.type\n }\n if (input.severity) {\n filters.severity = input.severity\n }\n if (input.sourceEntityType) {\n filters.sourceEntityType = input.sourceEntityType\n }\n if (input.sourceEntityId) {\n filters.sourceEntityId = input.sourceEntityId\n }\n if (input.since) {\n filters.createdAt = { $gt: new Date(input.since) }\n }\n\n const [notifications, total] = await Promise.all([\n em.find(Notification, filters, {\n orderBy: { createdAt: 'desc' },\n limit: input.pageSize,\n offset: (input.page - 1) * input.pageSize,\n }),\n em.count(Notification, filters),\n ])\n\n const items = notifications.map(toNotificationDto)\n\n return Response.json({\n items,\n total,\n page: input.page,\n pageSize: input.pageSize,\n totalPages: Math.ceil(total / input.pageSize),\n })\n}\n\nexport async function POST(req: Request) {\n const { service, scope } = await resolveNotificationContext(req)\n\n const body = await req.json().catch(() => ({}))\n const input = createNotificationSchema.parse(body)\n\n const notification = await service.create(input, scope)\n\n return Response.json({ id: notification.id }, { status: 201 })\n}\n\nexport const openApi = buildNotificationsCrudOpenApi({\n resourceName: 'Notification',\n querySchema: listNotificationsSchema,\n listResponseSchema: createPagedListResponseSchema(notificationItemSchema),\n create: {\n schema: createNotificationSchema,\n responseSchema: z.object({ id: z.string().uuid() }),\n description: 'Creates a notification for a user.',\n },\n})\n"],
5
- "mappings": "AAAA,SAAS,SAAS;AAElB,SAAS,oBAAoB;AAC7B,SAAS,yBAAyB,gCAAgC;AAClE,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,MAAM,WAAW;AAAA,EACtB,KAAK,EAAE,aAAa,KAAK;AAAA,EACzB,MAAM,EAAE,aAAa,MAAM,iBAAiB,CAAC,sBAAsB,EAAE;AACvE;AAEA,eAAsB,IAAI,KAAc;AACtC,QAAM,EAAE,KAAK,MAAM,IAAI,MAAM,2BAA2B,GAAG;AAC3D,QAAM,KAAK,IAAI,UAAU,QAAQ,IAAI;AAErC,QAAM,MAAM,IAAI,IAAI,IAAI,GAAG;AAC3B,QAAM,cAAc,OAAO,YAAY,IAAI,aAAa,QAAQ,CAAC;AACjE,QAAM,QAAQ,wBAAwB,MAAM,WAAW;AAEvD,QAAM,UAAmC;AAAA,IACvC,iBAAiB,MAAM;AAAA,IACvB,UAAU,MAAM;AAAA,EAClB;AAEA,MAAI,MAAM,QAAQ;AAChB,YAAQ,SAAS,MAAM,QAAQ,MAAM,MAAM,IAAI,EAAE,KAAK,MAAM,OAAO,IAAI,MAAM;AAAA,EAC/E,OAAO;AACL,YAAQ,SAAS,EAAE,KAAK,YAAY;AAAA,EACtC;AACA,MAAI,MAAM,MAAM;AACd,YAAQ,OAAO,MAAM;AAAA,EACvB;AACA,MAAI,MAAM,UAAU;AAClB,YAAQ,WAAW,MAAM;AAAA,EAC3B;AACA,MAAI,MAAM,kBAAkB;AAC1B,YAAQ,mBAAmB,MAAM;AAAA,EACnC;AACA,MAAI,MAAM,gBAAgB;AACxB,YAAQ,iBAAiB,MAAM;AAAA,EACjC;AACA,MAAI,MAAM,OAAO;AACf,YAAQ,YAAY,EAAE,KAAK,IAAI,KAAK,MAAM,KAAK,EAAE;AAAA,EACnD;AAEA,QAAM,CAAC,eAAe,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,IAC/C,GAAG,KAAK,cAAc,SAAS;AAAA,MAC7B,SAAS,EAAE,WAAW,OAAO;AAAA,MAC7B,OAAO,MAAM;AAAA,MACb,SAAS,MAAM,OAAO,KAAK,MAAM;AAAA,IACnC,CAAC;AAAA,IACD,GAAG,MAAM,cAAc,OAAO;AAAA,EAChC,CAAC;AAED,QAAM,QAAQ,cAAc,IAAI,iBAAiB;AAEjD,SAAO,SAAS,KAAK;AAAA,IACnB;AAAA,IACA;AAAA,IACA,MAAM,MAAM;AAAA,IACZ,UAAU,MAAM;AAAA,IAChB,YAAY,KAAK,KAAK,QAAQ,MAAM,QAAQ;AAAA,EAC9C,CAAC;AACH;AAEA,eAAsB,KAAK,KAAc;AACvC,QAAM,EAAE,SAAS,MAAM,IAAI,MAAM,2BAA2B,GAAG;AAE/D,QAAM,OAAO,MAAM,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAC9C,QAAM,QAAQ,yBAAyB,MAAM,IAAI;AAEjD,QAAM,eAAe,MAAM,QAAQ,OAAO,OAAO,KAAK;AAEtD,SAAO,SAAS,KAAK,EAAE,IAAI,aAAa,GAAG,GAAG,EAAE,QAAQ,IAAI,CAAC;AAC/D;AAEO,MAAM,UAAU,8BAA8B;AAAA,EACnD,cAAc;AAAA,EACd,aAAa;AAAA,EACb,oBAAoB,8BAA8B,sBAAsB;AAAA,EACxE,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAAA,IAClD,aAAa;AAAA,EACf;AACF,CAAC;",
6
- "names": []
7
- }
@@ -1,155 +0,0 @@
1
- import { NextResponse } from "next/server";
2
- import { createRequestContainer } from "@open-mercato/shared/lib/di/container";
3
- import { getAuthFromRequest } from "@open-mercato/shared/lib/auth/server";
4
- import { resolveTranslations } from "@open-mercato/shared/lib/i18n/server";
5
- import { notificationDeliveryConfigSchema } from "../../data/validators.js";
6
- import {
7
- errorResponseSchema,
8
- notificationSettingsResponseSchema,
9
- notificationSettingsUpdateResponseSchema
10
- } from "../openapi.js";
11
- import {
12
- DEFAULT_NOTIFICATION_DELIVERY_CONFIG,
13
- resolveNotificationDeliveryConfig,
14
- saveNotificationDeliveryConfig
15
- } from "../../lib/deliveryConfig.js";
16
- const metadata = {
17
- GET: { requireAuth: true, requireFeatures: ["notifications.manage"] },
18
- POST: { requireAuth: true, requireFeatures: ["notifications.manage"] }
19
- };
20
- const unauthorized = async () => {
21
- const { t } = await resolveTranslations();
22
- return NextResponse.json({ error: t("api.errors.unauthorized", "Unauthorized") }, { status: 401 });
23
- };
24
- async function GET(req) {
25
- const auth = await getAuthFromRequest(req);
26
- if (!auth?.sub) return await unauthorized();
27
- const container = await createRequestContainer();
28
- try {
29
- const settings = await resolveNotificationDeliveryConfig(container, {
30
- defaultValue: DEFAULT_NOTIFICATION_DELIVERY_CONFIG
31
- });
32
- return NextResponse.json({ settings });
33
- } finally {
34
- const disposable = container;
35
- if (typeof disposable.dispose === "function") {
36
- await disposable.dispose();
37
- }
38
- }
39
- }
40
- async function POST(req) {
41
- const { t } = await resolveTranslations();
42
- const auth = await getAuthFromRequest(req);
43
- if (!auth?.sub) return await unauthorized();
44
- let body;
45
- try {
46
- body = await req.json();
47
- } catch {
48
- return NextResponse.json(
49
- { error: t("api.errors.invalidPayload", "Invalid request body") },
50
- { status: 400 }
51
- );
52
- }
53
- const parsed = notificationDeliveryConfigSchema.safeParse(body);
54
- if (!parsed.success) {
55
- return NextResponse.json(
56
- { error: t("notifications.delivery.settings.invalid", "Invalid delivery settings") },
57
- { status: 400 }
58
- );
59
- }
60
- const container = await createRequestContainer();
61
- try {
62
- await saveNotificationDeliveryConfig(container, parsed.data);
63
- const settings = await resolveNotificationDeliveryConfig(container, {
64
- defaultValue: DEFAULT_NOTIFICATION_DELIVERY_CONFIG
65
- });
66
- return NextResponse.json({ ok: true, settings });
67
- } catch (error) {
68
- return NextResponse.json(
69
- { error: error instanceof Error ? error.message : t("api.errors.internal", "Internal error") },
70
- { status: 500 }
71
- );
72
- } finally {
73
- const disposable = container;
74
- if (typeof disposable.dispose === "function") {
75
- await disposable.dispose();
76
- }
77
- }
78
- }
79
- const openApi = {
80
- GET: {
81
- summary: "Get notification delivery settings",
82
- tags: ["Notifications"],
83
- responses: {
84
- 200: {
85
- description: "Current delivery settings",
86
- content: {
87
- "application/json": {
88
- schema: notificationSettingsResponseSchema
89
- }
90
- }
91
- },
92
- 401: {
93
- description: "Unauthorized",
94
- content: {
95
- "application/json": {
96
- schema: errorResponseSchema
97
- }
98
- }
99
- }
100
- }
101
- },
102
- POST: {
103
- summary: "Update notification delivery settings",
104
- tags: ["Notifications"],
105
- requestBody: {
106
- required: true,
107
- content: {
108
- "application/json": {
109
- schema: notificationDeliveryConfigSchema
110
- }
111
- }
112
- },
113
- responses: {
114
- 200: {
115
- description: "Delivery settings updated",
116
- content: {
117
- "application/json": {
118
- schema: notificationSettingsUpdateResponseSchema
119
- }
120
- }
121
- },
122
- 400: {
123
- description: "Invalid request body",
124
- content: {
125
- "application/json": {
126
- schema: errorResponseSchema
127
- }
128
- }
129
- },
130
- 401: {
131
- description: "Unauthorized",
132
- content: {
133
- "application/json": {
134
- schema: errorResponseSchema
135
- }
136
- }
137
- },
138
- 500: {
139
- description: "Internal error",
140
- content: {
141
- "application/json": {
142
- schema: errorResponseSchema
143
- }
144
- }
145
- }
146
- }
147
- }
148
- };
149
- export {
150
- GET,
151
- POST,
152
- metadata,
153
- openApi
154
- };
155
- //# sourceMappingURL=route.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/notifications/api/settings/route.ts"],
4
- "sourcesContent": ["import { NextResponse } from 'next/server'\nimport { createRequestContainer } from '@open-mercato/shared/lib/di/container'\nimport { getAuthFromRequest } from '@open-mercato/shared/lib/auth/server'\nimport { resolveTranslations } from '@open-mercato/shared/lib/i18n/server'\nimport { notificationDeliveryConfigSchema } from '../../data/validators'\nimport {\n errorResponseSchema,\n notificationSettingsResponseSchema,\n notificationSettingsUpdateResponseSchema,\n} from '../openapi'\nimport {\n DEFAULT_NOTIFICATION_DELIVERY_CONFIG,\n resolveNotificationDeliveryConfig,\n saveNotificationDeliveryConfig,\n} from '../../lib/deliveryConfig'\n\nexport const metadata = {\n GET: { requireAuth: true, requireFeatures: ['notifications.manage'] },\n POST: { requireAuth: true, requireFeatures: ['notifications.manage'] },\n}\n\nconst unauthorized = async () => {\n const { t } = await resolveTranslations()\n return NextResponse.json({ error: t('api.errors.unauthorized', 'Unauthorized') }, { status: 401 })\n}\n\nexport async function GET(req: Request) {\n const auth = await getAuthFromRequest(req)\n if (!auth?.sub) return await unauthorized()\n\n const container = await createRequestContainer()\n try {\n const settings = await resolveNotificationDeliveryConfig(container, {\n defaultValue: DEFAULT_NOTIFICATION_DELIVERY_CONFIG,\n })\n return NextResponse.json({ settings })\n } finally {\n const disposable = container as unknown as { dispose?: () => Promise<void> }\n if (typeof disposable.dispose === 'function') {\n await disposable.dispose()\n }\n }\n}\n\nexport async function POST(req: Request) {\n const { t } = await resolveTranslations()\n const auth = await getAuthFromRequest(req)\n if (!auth?.sub) return await unauthorized()\n\n let body: unknown\n try {\n body = await req.json()\n } catch {\n return NextResponse.json(\n { error: t('api.errors.invalidPayload', 'Invalid request body') },\n { status: 400 }\n )\n }\n\n const parsed = notificationDeliveryConfigSchema.safeParse(body)\n if (!parsed.success) {\n return NextResponse.json(\n { error: t('notifications.delivery.settings.invalid', 'Invalid delivery settings') },\n { status: 400 }\n )\n }\n\n const container = await createRequestContainer()\n try {\n await saveNotificationDeliveryConfig(container, parsed.data)\n const settings = await resolveNotificationDeliveryConfig(container, {\n defaultValue: DEFAULT_NOTIFICATION_DELIVERY_CONFIG,\n })\n return NextResponse.json({ ok: true, settings })\n } catch (error) {\n return NextResponse.json(\n { error: error instanceof Error ? error.message : t('api.errors.internal', 'Internal error') },\n { status: 500 }\n )\n } finally {\n const disposable = container as unknown as { dispose?: () => Promise<void> }\n if (typeof disposable.dispose === 'function') {\n await disposable.dispose()\n }\n }\n}\n\nexport const openApi = {\n GET: {\n summary: 'Get notification delivery settings',\n tags: ['Notifications'],\n responses: {\n 200: {\n description: 'Current delivery settings',\n content: {\n 'application/json': {\n schema: notificationSettingsResponseSchema,\n },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: {\n 'application/json': {\n schema: errorResponseSchema,\n },\n },\n },\n },\n },\n POST: {\n summary: 'Update notification delivery settings',\n tags: ['Notifications'],\n requestBody: {\n required: true,\n content: {\n 'application/json': {\n schema: notificationDeliveryConfigSchema,\n },\n },\n },\n responses: {\n 200: {\n description: 'Delivery settings updated',\n content: {\n 'application/json': {\n schema: notificationSettingsUpdateResponseSchema,\n },\n },\n },\n 400: {\n description: 'Invalid request body',\n content: {\n 'application/json': {\n schema: errorResponseSchema,\n },\n },\n },\n 401: {\n description: 'Unauthorized',\n content: {\n 'application/json': {\n schema: errorResponseSchema,\n },\n },\n },\n 500: {\n description: 'Internal error',\n content: {\n 'application/json': {\n schema: errorResponseSchema,\n },\n },\n },\n },\n },\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,38 +0,0 @@
1
- import { Notification } from "../../data/entities.js";
2
- import { unreadCountResponseSchema } from "../openapi.js";
3
- import { resolveNotificationContext } from "../../lib/routeHelpers.js";
4
- const metadata = {
5
- GET: { requireAuth: true }
6
- };
7
- async function GET(req) {
8
- const { scope, ctx } = await resolveNotificationContext(req);
9
- const em = ctx.container.resolve("em");
10
- const count = await em.count(Notification, {
11
- recipientUserId: scope.userId,
12
- tenantId: scope.tenantId,
13
- status: "unread"
14
- });
15
- return Response.json({ unreadCount: count });
16
- }
17
- const openApi = {
18
- GET: {
19
- summary: "Get unread notification count",
20
- tags: ["Notifications"],
21
- responses: {
22
- 200: {
23
- description: "Unread count",
24
- content: {
25
- "application/json": {
26
- schema: unreadCountResponseSchema
27
- }
28
- }
29
- }
30
- }
31
- }
32
- };
33
- export {
34
- GET,
35
- metadata,
36
- openApi
37
- };
38
- //# sourceMappingURL=route.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/modules/notifications/api/unread-count/route.ts"],
4
- "sourcesContent": ["import type { EntityManager } from '@mikro-orm/core'\nimport { Notification } from '../../data/entities'\nimport { unreadCountResponseSchema } from '../openapi'\nimport { resolveNotificationContext } from '../../lib/routeHelpers'\n\nexport const metadata = {\n GET: { requireAuth: true },\n}\n\nexport async function GET(req: Request) {\n const { scope, ctx } = await resolveNotificationContext(req)\n const em = ctx.container.resolve('em') as EntityManager\n\n const count = await em.count(Notification, {\n recipientUserId: scope.userId,\n tenantId: scope.tenantId,\n status: 'unread',\n })\n\n return Response.json({ unreadCount: count })\n}\n\nexport const openApi = {\n GET: {\n summary: 'Get unread notification count',\n tags: ['Notifications'],\n responses: {\n 200: {\n description: 'Unread count',\n content: {\n 'application/json': {\n schema: unreadCountResponseSchema,\n },\n },\n },\n },\n },\n}\n"],
5
- "mappings": "AACA,SAAS,oBAAoB;AAC7B,SAAS,iCAAiC;AAC1C,SAAS,kCAAkC;AAEpC,MAAM,WAAW;AAAA,EACtB,KAAK,EAAE,aAAa,KAAK;AAC3B;AAEA,eAAsB,IAAI,KAAc;AACtC,QAAM,EAAE,OAAO,IAAI,IAAI,MAAM,2BAA2B,GAAG;AAC3D,QAAM,KAAK,IAAI,UAAU,QAAQ,IAAI;AAErC,QAAM,QAAQ,MAAM,GAAG,MAAM,cAAc;AAAA,IACzC,iBAAiB,MAAM;AAAA,IACvB,UAAU,MAAM;AAAA,IAChB,QAAQ;AAAA,EACV,CAAC;AAED,SAAO,SAAS,KAAK,EAAE,aAAa,MAAM,CAAC;AAC7C;AAEO,MAAM,UAAU;AAAA,EACrB,KAAK;AAAA,IACH,SAAS;AAAA,IACT,MAAM,CAAC,eAAe;AAAA,IACtB,WAAW;AAAA,MACT,KAAK;AAAA,QACH,aAAa;AAAA,QACb,SAAS;AAAA,UACP,oBAAoB;AAAA,YAClB,QAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
6
- "names": []
7
- }
@@ -1,10 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Page, PageBody } from "@open-mercato/ui/backend/Page";
3
- import { NotificationSettingsPageClient } from "../../../frontend/NotificationSettingsPageClient.js";
4
- async function NotificationSettingsPage() {
5
- return /* @__PURE__ */ jsx(Page, { children: /* @__PURE__ */ jsx(PageBody, { children: /* @__PURE__ */ jsx(NotificationSettingsPageClient, {}) }) });
6
- }
7
- export {
8
- NotificationSettingsPage as default
9
- };
10
- //# sourceMappingURL=page.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/modules/notifications/backend/config/notifications/page.tsx"],
4
- "sourcesContent": ["import { Page, PageBody } from '@open-mercato/ui/backend/Page'\nimport { NotificationSettingsPageClient } from '../../../frontend/NotificationSettingsPageClient'\n\nexport default async function NotificationSettingsPage() {\n return (\n <Page>\n <PageBody>\n <NotificationSettingsPageClient />\n </PageBody>\n </Page>\n )\n}\n"],
5
- "mappings": "AAOQ;AAPR,SAAS,MAAM,gBAAgB;AAC/B,SAAS,sCAAsC;AAE/C,eAAO,2BAAkD;AACvD,SACE,oBAAC,QACC,8BAAC,YACC,8BAAC,kCAA+B,GAClC,GACF;AAEJ;",
6
- "names": []
7
- }
@@ -1,24 +0,0 @@
1
- import React from "react";
2
- const bellIcon = React.createElement(
3
- "svg",
4
- { width: 16, height: 16, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round" },
5
- React.createElement("path", { d: "M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9" }),
6
- React.createElement("path", { d: "M13.73 21a2 2 0 0 1-3.46 0" })
7
- );
8
- const metadata = {
9
- requireAuth: true,
10
- requireFeatures: ["notifications.manage"],
11
- pageTitle: "Notification Delivery",
12
- pageTitleKey: "notifications.settings.pageTitle",
13
- pageGroup: "Configuration",
14
- pageGroupKey: "backend.nav.configuration",
15
- pageOrder: 435,
16
- icon: bellIcon,
17
- breadcrumb: [
18
- { label: "Notification Delivery", labelKey: "notifications.settings.pageTitle" }
19
- ]
20
- };
21
- export {
22
- metadata
23
- };
24
- //# sourceMappingURL=page.meta.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../src/modules/notifications/backend/config/notifications/page.meta.ts"],
4
- "sourcesContent": ["import React from 'react'\n\nconst bellIcon = React.createElement(\n 'svg',\n { width: 16, height: 16, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: 2, strokeLinecap: 'round', strokeLinejoin: 'round' },\n React.createElement('path', { d: 'M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9' }),\n React.createElement('path', { d: 'M13.73 21a2 2 0 0 1-3.46 0' }),\n)\n\nexport const metadata = {\n requireAuth: true,\n requireFeatures: ['notifications.manage'],\n pageTitle: 'Notification Delivery',\n pageTitleKey: 'notifications.settings.pageTitle',\n pageGroup: 'Configuration',\n pageGroupKey: 'backend.nav.configuration',\n pageOrder: 435,\n icon: bellIcon,\n breadcrumb: [\n { label: 'Notification Delivery', labelKey: 'notifications.settings.pageTitle' },\n ],\n} as const\n"],
5
- "mappings": "AAAA,OAAO,WAAW;AAElB,MAAM,WAAW,MAAM;AAAA,EACrB;AAAA,EACA,EAAE,OAAO,IAAI,QAAQ,IAAI,SAAS,aAAa,MAAM,QAAQ,QAAQ,gBAAgB,aAAa,GAAG,eAAe,SAAS,gBAAgB,QAAQ;AAAA,EACrJ,MAAM,cAAc,QAAQ,EAAE,GAAG,+CAA+C,CAAC;AAAA,EACjF,MAAM,cAAc,QAAQ,EAAE,GAAG,6BAA6B,CAAC;AACjE;AAEO,MAAM,WAAW;AAAA,EACtB,aAAa;AAAA,EACb,iBAAiB,CAAC,sBAAsB;AAAA,EACxC,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,YAAY;AAAA,IACV,EAAE,OAAO,yBAAyB,UAAU,mCAAmC;AAAA,EACjF;AACF;",
6
- "names": []
7
- }
@@ -1,16 +0,0 @@
1
- import { createQueue } from "@open-mercato/queue";
2
- const cleanupExpiredCommand = {
3
- command: "cleanup-expired",
4
- async run() {
5
- const queue = createQueue("notifications", "async");
6
- await queue.enqueue({
7
- type: "cleanup-expired"
8
- });
9
- console.log("\u2713 Cleanup job enqueued");
10
- }
11
- };
12
- var cli_default = [cleanupExpiredCommand];
13
- export {
14
- cli_default as default
15
- };
16
- //# sourceMappingURL=cli.js.map