@openora/core 0.4.0 → 0.4.1-canary.11
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.
- package/LICENSE-COMMERCIAL.md +2 -2
- package/README.md +8 -2
- package/dist/.tsbuildinfo +1 -1
- package/dist/admin-console/__tests__/backoffice.service.test.js +1 -1
- package/dist/admin-console/__tests__/backoffice.service.test.js.map +1 -1
- package/dist/admin-console/contract/index.d.ts +14 -14
- package/dist/admin-console/contract/index.d.ts.map +1 -1
- package/dist/admin-console/contract/index.js +8 -8
- package/dist/admin-console/contract/index.js.map +1 -1
- package/dist/admin-console/router/index.d.ts +7 -7
- package/dist/admin-console/service/backoffice.service.d.ts +22 -49
- package/dist/admin-console/service/backoffice.service.d.ts.map +1 -1
- package/dist/admin-console/service/backoffice.service.js +16 -31
- package/dist/admin-console/service/backoffice.service.js.map +1 -1
- package/dist/audit/__tests__/audit.service.test.js +29 -2
- package/dist/audit/__tests__/audit.service.test.js.map +1 -1
- package/dist/audit/contract/index.d.ts.map +1 -1
- package/dist/audit/contract/index.js +2 -0
- package/dist/audit/contract/index.js.map +1 -1
- package/dist/audit/plugin.d.ts.map +1 -1
- package/dist/audit/plugin.js +54 -4
- package/dist/audit/plugin.js.map +1 -1
- package/dist/audit/service/audit.service.d.ts +1 -0
- package/dist/audit/service/audit.service.d.ts.map +1 -1
- package/dist/audit/service/audit.service.js +53 -25
- package/dist/audit/service/audit.service.js.map +1 -1
- package/dist/casino/gaming/contract/index.d.ts.map +1 -1
- package/dist/casino/gaming/contract/index.js +3 -3
- package/dist/casino/gaming/contract/index.js.map +1 -1
- package/dist/casino/gaming/drizzle/migrations/0001_easy_ben_grimm.sql +4 -0
- package/dist/casino/gaming/drizzle/migrations/meta/0001_snapshot.json +188 -0
- package/dist/casino/gaming/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/casino/gaming/schema/index.js +2 -2
- package/dist/casino/gaming/schema/index.js.map +1 -1
- package/dist/casino/gaming/service/gaming.service.d.ts +11 -11
- package/dist/casino/gaming/service/gaming.service.d.ts.map +1 -1
- package/dist/casino/gaming/service/gaming.service.js +4 -14
- package/dist/casino/gaming/service/gaming.service.js.map +1 -1
- package/dist/cms/__tests__/cms.cache.test.js +1 -1
- package/dist/cms/__tests__/cms.cache.test.js.map +1 -1
- package/dist/cms/__tests__/cms.router.test.d.ts +2 -0
- package/dist/cms/__tests__/cms.router.test.d.ts.map +1 -0
- package/dist/cms/__tests__/cms.router.test.js +51 -0
- package/dist/cms/__tests__/cms.router.test.js.map +1 -0
- package/dist/cms/router/index.d.ts.map +1 -1
- package/dist/cms/router/index.js +12 -12
- package/dist/cms/router/index.js.map +1 -1
- package/dist/cms/service/cms.service.d.ts +7 -7
- package/dist/cms/service/cms.service.d.ts.map +1 -1
- package/dist/cms/service/cms.service.js +39 -23
- package/dist/cms/service/cms.service.js.map +1 -1
- package/dist/compliance/__tests__/compliance.service.test.js +2 -1
- package/dist/compliance/__tests__/compliance.service.test.js.map +1 -1
- package/dist/compliance/__tests__/kyc.service.test.js +12 -10
- package/dist/compliance/__tests__/kyc.service.test.js.map +1 -1
- package/dist/compliance/__tests__/rg-monitoring.service.test.js +17 -6
- package/dist/compliance/__tests__/rg-monitoring.service.test.js.map +1 -1
- package/dist/compliance/__tests__/rg.contract.test.js +18 -10
- package/dist/compliance/__tests__/rg.contract.test.js.map +1 -1
- package/dist/compliance/__tests__/rg.router.test.js +5 -4
- package/dist/compliance/__tests__/rg.router.test.js.map +1 -1
- package/dist/compliance/__tests__/rg.service.test.js +18 -12
- package/dist/compliance/__tests__/rg.service.test.js.map +1 -1
- package/dist/compliance/contract/index.d.ts +20 -14
- package/dist/compliance/contract/index.d.ts.map +1 -1
- package/dist/compliance/contract/limits.d.ts +9 -2
- package/dist/compliance/contract/limits.d.ts.map +1 -1
- package/dist/compliance/contract/limits.js +21 -3
- package/dist/compliance/contract/limits.js.map +1 -1
- package/dist/compliance/contract/rg.d.ts +28 -23
- package/dist/compliance/contract/rg.d.ts.map +1 -1
- package/dist/compliance/contract/rg.js +14 -9
- package/dist/compliance/contract/rg.js.map +1 -1
- package/dist/compliance/drizzle/migrations/0001_funny_vance_astro.sql +5 -0
- package/dist/compliance/drizzle/migrations/meta/0001_snapshot.json +660 -0
- package/dist/compliance/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/compliance/plugin.d.ts.map +1 -1
- package/dist/compliance/plugin.js +26 -12
- package/dist/compliance/plugin.js.map +1 -1
- package/dist/compliance/router/index.d.ts +20 -14
- package/dist/compliance/router/index.d.ts.map +1 -1
- package/dist/compliance/router/index.js +2 -1
- package/dist/compliance/router/index.js.map +1 -1
- package/dist/compliance/schema/index.d.ts +31 -14
- package/dist/compliance/schema/index.d.ts.map +1 -1
- package/dist/compliance/schema/index.js +10 -7
- package/dist/compliance/schema/index.js.map +1 -1
- package/dist/compliance/service/compliance.service.d.ts +27 -22
- package/dist/compliance/service/compliance.service.d.ts.map +1 -1
- package/dist/compliance/service/compliance.service.js +9 -22
- package/dist/compliance/service/compliance.service.js.map +1 -1
- package/dist/compliance/service/kyc.service.d.ts +22 -19
- package/dist/compliance/service/kyc.service.d.ts.map +1 -1
- package/dist/compliance/service/kyc.service.js +19 -24
- package/dist/compliance/service/kyc.service.js.map +1 -1
- package/dist/compliance/service/re-kyc-trigger.d.ts +4 -4
- package/dist/compliance/service/re-kyc-trigger.d.ts.map +1 -1
- package/dist/compliance/service/re-kyc-trigger.js +10 -6
- package/dist/compliance/service/re-kyc-trigger.js.map +1 -1
- package/dist/compliance/service/rg-eval.d.ts.map +1 -1
- package/dist/compliance/service/rg-eval.js +4 -2
- package/dist/compliance/service/rg-eval.js.map +1 -1
- package/dist/compliance/service/rg-monitoring.service.d.ts +6 -5
- package/dist/compliance/service/rg-monitoring.service.d.ts.map +1 -1
- package/dist/compliance/service/rg-monitoring.service.js +62 -31
- package/dist/compliance/service/rg-monitoring.service.js.map +1 -1
- package/dist/compliance/service/rg.service.d.ts +28 -6
- package/dist/compliance/service/rg.service.d.ts.map +1 -1
- package/dist/compliance/service/rg.service.js +60 -34
- package/dist/compliance/service/rg.service.js.map +1 -1
- package/dist/contracts/adapters/admin-wallet-reporting.d.ts +5 -5
- package/dist/contracts/adapters/payment.d.ts +2 -2
- package/dist/contracts/adapters/wallet-commands.d.ts +5 -5
- package/dist/contracts/adapters/wallet-reader.d.ts +2 -2
- package/dist/contracts/adapters/wallet-reader.d.ts.map +1 -1
- package/dist/contracts/schemas/common.d.ts +2 -5
- package/dist/contracts/schemas/common.d.ts.map +1 -1
- package/dist/contracts/schemas/common.js +3 -4
- package/dist/contracts/schemas/common.js.map +1 -1
- package/dist/contracts/schemas/events.d.ts +35 -9
- package/dist/contracts/schemas/events.d.ts.map +1 -1
- package/dist/contracts/schemas/events.js +32 -7
- package/dist/contracts/schemas/events.js.map +1 -1
- package/dist/contracts/schemas/platform-config.d.ts +9 -9
- package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
- package/dist/contracts/schemas/platform-config.js +6 -5
- package/dist/contracts/schemas/platform-config.js.map +1 -1
- package/dist/contracts/schemas/player.d.ts +2 -2
- package/dist/contracts/schemas/player.js +3 -3
- package/dist/contracts/schemas/player.js.map +1 -1
- package/dist/contracts/schemas/tag.d.ts +2 -2
- package/dist/contracts/schemas/tag.js +3 -3
- package/dist/contracts/schemas/tag.js.map +1 -1
- package/dist/engagement/chat/moderation/moderate.d.ts.map +1 -1
- package/dist/engagement/chat/moderation/moderate.js +2 -1
- package/dist/engagement/chat/moderation/moderate.js.map +1 -1
- package/dist/engagement/chat/react/use-chat-stream.d.ts +2 -3
- package/dist/engagement/chat/react/use-chat-stream.d.ts.map +1 -1
- package/dist/engagement/chat/react/use-chat-stream.js +4 -2
- package/dist/engagement/chat/react/use-chat-stream.js.map +1 -1
- package/dist/engagement/chat/router/index.d.ts.map +1 -1
- package/dist/engagement/chat/router/index.js +2 -1
- package/dist/engagement/chat/router/index.js.map +1 -1
- package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
- package/dist/engagement/chat/service/chat.service.js +22 -11
- package/dist/engagement/chat/service/chat.service.js.map +1 -1
- package/dist/engagement/notifications/__tests__/notifications.service.test.js +4 -3
- package/dist/engagement/notifications/__tests__/notifications.service.test.js.map +1 -1
- package/dist/engagement/notifications/contract/index.d.ts +24 -2
- package/dist/engagement/notifications/contract/index.d.ts.map +1 -1
- package/dist/engagement/notifications/contract/index.js +10 -1
- package/dist/engagement/notifications/contract/index.js.map +1 -1
- package/dist/engagement/notifications/index.d.ts +1 -1
- package/dist/engagement/notifications/index.d.ts.map +1 -1
- package/dist/engagement/notifications/plugin.d.ts.map +1 -1
- package/dist/engagement/notifications/plugin.js +6 -3
- package/dist/engagement/notifications/plugin.js.map +1 -1
- package/dist/engagement/notifications/router/index.d.ts +4 -1
- package/dist/engagement/notifications/router/index.d.ts.map +1 -1
- package/dist/engagement/notifications/router/index.js +15 -6
- package/dist/engagement/notifications/router/index.js.map +1 -1
- package/dist/engagement/notifications/service/notifications.service.d.ts +6 -13
- package/dist/engagement/notifications/service/notifications.service.d.ts.map +1 -1
- package/dist/engagement/notifications/service/notifications.service.js +6 -14
- package/dist/engagement/notifications/service/notifications.service.js.map +1 -1
- package/dist/iam/__tests__/iam.service.test.js +14 -9
- package/dist/iam/__tests__/iam.service.test.js.map +1 -1
- package/dist/iam/plugin.d.ts.map +1 -1
- package/dist/iam/plugin.js +4 -2
- package/dist/iam/plugin.js.map +1 -1
- package/dist/iam/seed/seed-default-roles.d.ts.map +1 -1
- package/dist/iam/seed/seed-default-roles.js +2 -1
- package/dist/iam/seed/seed-default-roles.js.map +1 -1
- package/dist/iam/service/iam.service.d.ts +19 -17
- package/dist/iam/service/iam.service.d.ts.map +1 -1
- package/dist/iam/service/iam.service.js +68 -34
- package/dist/iam/service/iam.service.js.map +1 -1
- package/dist/pam/identity/admin-user-directory.d.ts.map +1 -1
- package/dist/pam/identity/admin-user-directory.js +18 -9
- package/dist/pam/identity/admin-user-directory.js.map +1 -1
- package/dist/pam/identity/router/index.d.ts.map +1 -1
- package/dist/pam/identity/router/index.js +4 -2
- package/dist/pam/identity/router/index.js.map +1 -1
- package/dist/pam/identity/service/identity.service.d.ts +24 -2
- package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
- package/dist/pam/identity/service/identity.service.js +51 -19
- package/dist/pam/identity/service/identity.service.js.map +1 -1
- package/dist/pam/identity/service/login-enforcement.service.d.ts +3 -3
- package/dist/pam/identity/service/login-enforcement.service.d.ts.map +1 -1
- package/dist/pam/identity/service/login-enforcement.service.js.map +1 -1
- package/dist/pam/identity/service/session.service.d.ts +5 -3
- package/dist/pam/identity/service/session.service.d.ts.map +1 -1
- package/dist/pam/identity/service/session.service.js +3 -3
- package/dist/pam/identity/service/session.service.js.map +1 -1
- package/dist/pam/player-management/__tests__/kyc-status-writer.test.js +2 -1
- package/dist/pam/player-management/__tests__/kyc-status-writer.test.js.map +1 -1
- package/dist/pam/player-management/__tests__/player.router.test.js +2 -2
- package/dist/pam/player-management/__tests__/player.router.test.js.map +1 -1
- package/dist/pam/player-management/__tests__/player.service.test.js +2 -1
- package/dist/pam/player-management/__tests__/player.service.test.js.map +1 -1
- package/dist/pam/player-management/contract/index.d.ts +10 -10
- package/dist/pam/player-management/router/index.d.ts +8 -8
- package/dist/pam/player-management/service/kyc-status-writer.d.ts.map +1 -1
- package/dist/pam/player-management/service/kyc-status-writer.js +2 -1
- package/dist/pam/player-management/service/kyc-status-writer.js.map +1 -1
- package/dist/pam/player-management/service/player.service.d.ts +15 -15
- package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
- package/dist/pam/player-management/service/player.service.js +15 -12
- package/dist/pam/player-management/service/player.service.js.map +1 -1
- package/dist/pam/player-note/schema/index.d.ts +4 -4
- package/dist/pam/player-note/schema/index.js +6 -6
- package/dist/pam/player-note/schema/index.js.map +1 -1
- package/dist/pam/player-note/service/player-note.service.d.ts +11 -3
- package/dist/pam/player-note/service/player-note.service.d.ts.map +1 -1
- package/dist/pam/player-note/service/player-note.service.js +1 -1
- package/dist/pam/player-note/service/player-note.service.js.map +1 -1
- package/dist/pam/profile/__tests__/profile.service.test.js +2 -1
- package/dist/pam/profile/__tests__/profile.service.test.js.map +1 -1
- package/dist/pam/profile/contract/index.d.ts +4 -4
- package/dist/pam/profile/react/profile.d.ts +6 -7
- package/dist/pam/profile/react/profile.d.ts.map +1 -1
- package/dist/pam/profile/react/profile.js.map +1 -1
- package/dist/pam/profile/router/index.d.ts +4 -4
- package/dist/pam/profile/service/profile.service.d.ts +4 -4
- package/dist/pam/profile/service/profile.service.d.ts.map +1 -1
- package/dist/pam/profile/service/profile.service.js +2 -1
- package/dist/pam/profile/service/profile.service.js.map +1 -1
- package/dist/pam/shared/headers-mapper.d.ts.map +1 -1
- package/dist/pam/shared/headers-mapper.js +2 -1
- package/dist/pam/shared/headers-mapper.js.map +1 -1
- package/dist/pam/shared/player-mapper.d.ts +17 -2
- package/dist/pam/shared/player-mapper.d.ts.map +1 -1
- package/dist/pam/shared/player-mapper.js +2 -2
- package/dist/pam/shared/player-mapper.js.map +1 -1
- package/dist/pam/tag/__tests__/get-active-tag-keys.test.js +2 -1
- package/dist/pam/tag/__tests__/get-active-tag-keys.test.js.map +1 -1
- package/dist/pam/tag/__tests__/tag-evaluation.service.test.js +19 -18
- package/dist/pam/tag/__tests__/tag-evaluation.service.test.js.map +1 -1
- package/dist/pam/tag/__tests__/tag-mappers.test.js +6 -6
- package/dist/pam/tag/__tests__/tag-mappers.test.js.map +1 -1
- package/dist/pam/tag/__tests__/tag-rule.service.test.js +14 -14
- package/dist/pam/tag/__tests__/tag-rule.service.test.js.map +1 -1
- package/dist/pam/tag/__tests__/tag.router.test.d.ts +2 -0
- package/dist/pam/tag/__tests__/tag.router.test.d.ts.map +1 -0
- package/dist/pam/tag/__tests__/tag.router.test.js +38 -0
- package/dist/pam/tag/__tests__/tag.router.test.js.map +1 -0
- package/dist/pam/tag/contract/index.d.ts +3 -3
- package/dist/pam/tag/drizzle/migrations/0001_neat_iron_monger.sql +2 -0
- package/dist/pam/tag/drizzle/migrations/meta/0001_snapshot.json +295 -0
- package/dist/pam/tag/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/pam/tag/router/index.d.ts +3 -3
- package/dist/pam/tag/schema/index.d.ts +16 -16
- package/dist/pam/tag/schema/index.d.ts.map +1 -1
- package/dist/pam/tag/schema/index.js +19 -19
- package/dist/pam/tag/schema/index.js.map +1 -1
- package/dist/pam/tag/seed/data/default-tag-rules.js +6 -6
- package/dist/pam/tag/seed/data/default-tag-rules.js.map +1 -1
- package/dist/pam/tag/seed/seed-default-tag-rules.d.ts.map +1 -1
- package/dist/pam/tag/seed/seed-default-tag-rules.js +5 -3
- package/dist/pam/tag/seed/seed-default-tag-rules.js.map +1 -1
- package/dist/pam/tag/service/tag-evaluation.service.d.ts.map +1 -1
- package/dist/pam/tag/service/tag-evaluation.service.js +32 -18
- package/dist/pam/tag/service/tag-evaluation.service.js.map +1 -1
- package/dist/pam/tag/service/tag-mappers.d.ts +8 -2
- package/dist/pam/tag/service/tag-mappers.d.ts.map +1 -1
- package/dist/pam/tag/service/tag-mappers.js +3 -8
- package/dist/pam/tag/service/tag-mappers.js.map +1 -1
- package/dist/pam/tag/service/tag-rule.service.d.ts +34 -4
- package/dist/pam/tag/service/tag-rule.service.d.ts.map +1 -1
- package/dist/pam/tag/service/tag-rule.service.js +9 -15
- package/dist/pam/tag/service/tag-rule.service.js.map +1 -1
- package/dist/pam/tag/service/tag.service.d.ts +51 -8
- package/dist/pam/tag/service/tag.service.d.ts.map +1 -1
- package/dist/pam/tag/service/tag.service.js +6 -11
- package/dist/pam/tag/service/tag.service.js.map +1 -1
- package/dist/react/context/api-client.d.ts.map +1 -1
- package/dist/react/context/api-client.js +14 -7
- package/dist/react/context/api-client.js.map +1 -1
- package/dist/react/hooks/use-event-stream.d.ts.map +1 -1
- package/dist/react/hooks/use-event-stream.js +6 -3
- package/dist/react/hooks/use-event-stream.js.map +1 -1
- package/dist/react/hooks/use-paginated-list.js +3 -3
- package/dist/react/hooks/use-paginated-list.js.map +1 -1
- package/dist/server/auth/admin-guard.d.ts +12 -0
- package/dist/server/auth/admin-guard.d.ts.map +1 -1
- package/dist/server/auth/admin-guard.js +14 -1
- package/dist/server/auth/admin-guard.js.map +1 -1
- package/dist/server/auth/auth.d.ts +9 -0
- package/dist/server/auth/auth.d.ts.map +1 -1
- package/dist/server/auth/auth.js +9 -1
- package/dist/server/auth/auth.js.map +1 -1
- package/dist/server/auth/permission-levels.d.ts.map +1 -1
- package/dist/server/auth/permission-levels.js +12 -6
- package/dist/server/auth/permission-levels.js.map +1 -1
- package/dist/server/db/drizzle.d.ts.map +1 -1
- package/dist/server/db/drizzle.js +2 -1
- package/dist/server/db/drizzle.js.map +1 -1
- package/dist/server/db/drizzle.service.d.ts.map +1 -1
- package/dist/server/db/drizzle.service.js +2 -1
- package/dist/server/db/drizzle.service.js.map +1 -1
- package/dist/server/db/index.d.ts +1 -1
- package/dist/server/db/index.d.ts.map +1 -1
- package/dist/server/db/index.js +1 -1
- package/dist/server/db/index.js.map +1 -1
- package/dist/server/db/migrate.d.ts.map +1 -1
- package/dist/server/db/migrate.js +2 -1
- package/dist/server/db/migrate.js.map +1 -1
- package/dist/server/db/outbox/__tests__/relay.test.js +4 -2
- package/dist/server/db/outbox/__tests__/relay.test.js.map +1 -1
- package/dist/server/db/outbox/relay.d.ts +15 -0
- package/dist/server/db/outbox/relay.d.ts.map +1 -1
- package/dist/server/db/outbox/relay.js +21 -14
- package/dist/server/db/outbox/relay.js.map +1 -1
- package/dist/server/db/query-helpers.d.ts +2 -0
- package/dist/server/db/query-helpers.d.ts.map +1 -1
- package/dist/server/db/query-helpers.js +28 -1
- package/dist/server/db/query-helpers.js.map +1 -1
- package/dist/server/kernel/__tests__/event-bus.test.js +10 -7
- package/dist/server/kernel/__tests__/event-bus.test.js.map +1 -1
- package/dist/server/kernel/__tests__/job-queue.test.js +5 -2
- package/dist/server/kernel/__tests__/job-queue.test.js.map +1 -1
- package/dist/server/kernel/__tests__/rate-limiter.test.js +10 -5
- package/dist/server/kernel/__tests__/rate-limiter.test.js.map +1 -1
- package/dist/server/kernel/__tests__/redis-cache.test.js +2 -1
- package/dist/server/kernel/__tests__/redis-cache.test.js.map +1 -1
- package/dist/server/kernel/bullmq-job-queue.d.ts +12 -0
- package/dist/server/kernel/bullmq-job-queue.d.ts.map +1 -1
- package/dist/server/kernel/bullmq-job-queue.js +21 -4
- package/dist/server/kernel/bullmq-job-queue.js.map +1 -1
- package/dist/server/kernel/cache.d.ts.map +1 -1
- package/dist/server/kernel/cache.js +14 -7
- package/dist/server/kernel/cache.js.map +1 -1
- package/dist/server/kernel/container.d.ts +10 -0
- package/dist/server/kernel/container.d.ts.map +1 -1
- package/dist/server/kernel/container.js +12 -1
- package/dist/server/kernel/container.js.map +1 -1
- package/dist/server/kernel/event-bus.d.ts +9 -0
- package/dist/server/kernel/event-bus.d.ts.map +1 -1
- package/dist/server/kernel/event-bus.js +9 -1
- package/dist/server/kernel/event-bus.js.map +1 -1
- package/dist/server/kernel/event-stream.d.ts.map +1 -1
- package/dist/server/kernel/event-stream.js +2 -1
- package/dist/server/kernel/event-stream.js.map +1 -1
- package/dist/server/kernel/job-queue.d.ts +12 -0
- package/dist/server/kernel/job-queue.d.ts.map +1 -1
- package/dist/server/kernel/job-queue.js +38 -15
- package/dist/server/kernel/job-queue.js.map +1 -1
- package/dist/server/kernel/ownership.d.ts.map +1 -1
- package/dist/server/kernel/ownership.js +2 -1
- package/dist/server/kernel/ownership.js.map +1 -1
- package/dist/server/kernel/platform-config-loader.d.ts.map +1 -1
- package/dist/server/kernel/platform-config-loader.js +34 -16
- package/dist/server/kernel/platform-config-loader.js.map +1 -1
- package/dist/server/kernel/rate-limiter.d.ts.map +1 -1
- package/dist/server/kernel/rate-limiter.js +6 -3
- package/dist/server/kernel/rate-limiter.js.map +1 -1
- package/dist/server/kernel/realtime-transport.d.ts.map +1 -1
- package/dist/server/kernel/realtime-transport.js +10 -5
- package/dist/server/kernel/realtime-transport.js.map +1 -1
- package/dist/server/kernel/redis-cache.d.ts.map +1 -1
- package/dist/server/kernel/redis-cache.js +10 -5
- package/dist/server/kernel/redis-cache.js.map +1 -1
- package/dist/server/kernel/redis-rate-limiter.d.ts +11 -0
- package/dist/server/kernel/redis-rate-limiter.d.ts.map +1 -1
- package/dist/server/kernel/redis-rate-limiter.js +13 -1
- package/dist/server/kernel/redis-rate-limiter.js.map +1 -1
- package/dist/server/kernel/serialize-row.d.ts.map +1 -1
- package/dist/server/kernel/serialize-row.js +4 -2
- package/dist/server/kernel/serialize-row.js.map +1 -1
- package/dist/server/plugin-host/load-extensions.js +2 -1
- package/dist/server/plugin-host/load-extensions.js.map +1 -1
- package/dist/server/plugin-host/load-plugins.d.ts.map +1 -1
- package/dist/server/plugin-host/load-plugins.js +4 -2
- package/dist/server/plugin-host/load-plugins.js.map +1 -1
- package/dist/server/plugin-host/service-manifest.d.ts.map +1 -1
- package/dist/server/plugin-host/service-manifest.js +4 -2
- package/dist/server/plugin-host/service-manifest.js.map +1 -1
- package/dist/server/runtime/create-app.d.ts +12 -0
- package/dist/server/runtime/create-app.d.ts.map +1 -1
- package/dist/server/runtime/create-app.js +27 -6
- package/dist/server/runtime/create-app.js.map +1 -1
- package/dist/wallet/__tests__/admin-reporting.test.js +2 -2
- package/dist/wallet/__tests__/admin-reporting.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-auto-rule.router.test.js +5 -5
- package/dist/wallet/__tests__/wallet-auto-rule.router.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-auto-withdrawal.test.js +45 -34
- package/dist/wallet/__tests__/wallet-auto-withdrawal.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-commands.service.test.js +54 -37
- package/dist/wallet/__tests__/wallet-commands.service.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet-kyc-gate.test.js +5 -5
- package/dist/wallet/__tests__/wallet-kyc-gate.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet.rate-limit.test.js +2 -2
- package/dist/wallet/__tests__/wallet.rate-limit.test.js.map +1 -1
- package/dist/wallet/__tests__/wallet.service.test.js +62 -34
- package/dist/wallet/__tests__/wallet.service.test.js.map +1 -1
- package/dist/wallet/adapters/mock/mock-payment-adapter.d.ts +2 -2
- package/dist/wallet/adapters/wallet-reader.service.d.ts +1 -1
- package/dist/wallet/adapters/wallet-reader.service.js +1 -1
- package/dist/wallet/adapters/wallet-reader.service.js.map +1 -1
- package/dist/wallet/admin-reporting.d.ts +4 -4
- package/dist/wallet/admin-reporting.d.ts.map +1 -1
- package/dist/wallet/admin-reporting.js +8 -8
- package/dist/wallet/admin-reporting.js.map +1 -1
- package/dist/wallet/contract/index.d.ts +20 -20
- package/dist/wallet/contract/index.d.ts.map +1 -1
- package/dist/wallet/contract/index.js +14 -10
- package/dist/wallet/contract/index.js.map +1 -1
- package/dist/wallet/drizzle/migrations/0001_redundant_micromacro.sql +4 -0
- package/dist/wallet/drizzle/migrations/meta/0001_snapshot.json +397 -0
- package/dist/wallet/drizzle/migrations/meta/_journal.json +7 -0
- package/dist/wallet/plugin.d.ts.map +1 -1
- package/dist/wallet/plugin.js +5 -1
- package/dist/wallet/plugin.js.map +1 -1
- package/dist/wallet/router/index.d.ts +11 -11
- package/dist/wallet/schema/index.js +3 -3
- package/dist/wallet/schema/index.js.map +1 -1
- package/dist/wallet/service/wallet-commands.service.d.ts +1 -0
- package/dist/wallet/service/wallet-commands.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet-commands.service.js +32 -24
- package/dist/wallet/service/wallet-commands.service.js.map +1 -1
- package/dist/wallet/service/wallet.service.d.ts +46 -18
- package/dist/wallet/service/wallet.service.d.ts.map +1 -1
- package/dist/wallet/service/wallet.service.js +152 -74
- package/dist/wallet/service/wallet.service.js.map +1 -1
- package/oxlint/oxlintrc.json +19 -3
- package/package.json +1 -1
- package/turbo-generators/src/config.ts +18 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/chat/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,SAAS,GAEV,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAEL,WAAW,EACX,qBAAqB,EACrB,wBAAwB,EACxB,yBAAyB,EACzB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,IAAI,GAAG,2BAA2B,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC;AAEtE,SAAS,eAAe,CAAC,OAAmB,EAAE,QAAQ,GAAG,WAAW;IAClE,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/chat/router/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat/service/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAGb,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGlE,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,UAExD;AAED,eAAO,MAAM,qBAAqB,2BAGjC,CAAC;AAEF,eAAO,MAAM,wBAAwB,2BAGpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,2BAGrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAGnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,iBAG9B,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat/service/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAGb,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGlE,wBAAgB,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,UAExD;AAED,eAAO,MAAM,qBAAqB,2BAGjC,CAAC;AAEF,eAAO,MAAM,wBAAwB,2BAGpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,2BAGrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,iBAGnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,iBAG9B,CAAC;AAkBF,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAFT,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,iBAAiB;IAG/C,iBAAiB,CACf,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,EAC7B,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,EACxC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;YA6BT,aAAa;YAQb,kBAAkB;IAS1B,SAAS;;;;;;;IAKT,eAAe,CAAC,EACpB,MAAM,EACN,KAAU,EACV,MAAM,EACN,QAAQ,GACT,EAAE;QACD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KACvB;;;;;;;;;YAea,iBAAiB;IAUzB,eAAe,CAAC,EACpB,MAAM,EACN,QAAQ,EACR,MAAM,EACN,OAAO,GACR,EAAE;QACD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB;;;;;;;;;IA6BK,aAAa,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;;IAevD,iBAAiB,CAAC,KAAK,SAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;;;;;;;;;IAYnD,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;IAwBvE,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;;;;IAStC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;;;IAkBtD,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC;;;CAW/D"}
|
|
@@ -13,8 +13,9 @@ export const ChatMessageBlockedError = createDomainError('ChatMessageBlockedErro
|
|
|
13
13
|
export const ChatSelfBlockError = createDomainError('ChatSelfBlockError', () => 'You cannot block yourself');
|
|
14
14
|
function gateContent(content) {
|
|
15
15
|
const result = moderateContent(content);
|
|
16
|
-
if (!result.ok)
|
|
16
|
+
if (!result.ok) {
|
|
17
17
|
throw new ChatMessageBlockedError();
|
|
18
|
+
}
|
|
18
19
|
return result.content;
|
|
19
20
|
}
|
|
20
21
|
function toRoom(record) {
|
|
@@ -36,24 +37,28 @@ export class ChatService {
|
|
|
36
37
|
let blocked = viewerId ? null : new Set();
|
|
37
38
|
const pending = [];
|
|
38
39
|
const deliver = (message) => {
|
|
39
|
-
if (!blocked.has(message.userId))
|
|
40
|
+
if (blocked && !blocked.has(message.userId)) {
|
|
40
41
|
listener(message);
|
|
42
|
+
}
|
|
41
43
|
};
|
|
42
44
|
if (viewerId) {
|
|
43
45
|
this.blockedIdsFor(viewerId)
|
|
44
46
|
.catch(() => new Set())
|
|
45
47
|
.then((ids) => {
|
|
46
48
|
blocked = ids;
|
|
47
|
-
for (const message of pending)
|
|
49
|
+
for (const message of pending) {
|
|
48
50
|
deliver(message);
|
|
51
|
+
}
|
|
49
52
|
pending.length = 0;
|
|
50
53
|
});
|
|
51
54
|
}
|
|
52
55
|
return this.transport.subscribe(chatChannel(roomId), (message) => {
|
|
53
|
-
if (blocked === null)
|
|
56
|
+
if (blocked === null) {
|
|
54
57
|
pending.push(message);
|
|
55
|
-
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
56
60
|
deliver(message);
|
|
61
|
+
}
|
|
57
62
|
});
|
|
58
63
|
}
|
|
59
64
|
async blockedIdsFor(viewerId) {
|
|
@@ -77,8 +82,9 @@ export class ChatService {
|
|
|
77
82
|
}
|
|
78
83
|
async getRoomMessages({ roomId, limit = 50, before, viewerId, }) {
|
|
79
84
|
const conditions = [eq(chatMessage.roomId, roomId), eq(chatMessage.isDeleted, false)];
|
|
80
|
-
if (before)
|
|
85
|
+
if (before) {
|
|
81
86
|
conditions.push(lt(chatMessage.createdAt, new Date(before)));
|
|
87
|
+
}
|
|
82
88
|
await this.appendBlockFilter(conditions, viewerId);
|
|
83
89
|
const messages = await this.drizzle.db
|
|
84
90
|
.select()
|
|
@@ -89,11 +95,13 @@ export class ChatService {
|
|
|
89
95
|
return messages.map(toMessage);
|
|
90
96
|
}
|
|
91
97
|
async appendBlockFilter(conditions, viewerId) {
|
|
92
|
-
if (!viewerId)
|
|
98
|
+
if (!viewerId) {
|
|
93
99
|
return;
|
|
100
|
+
}
|
|
94
101
|
const blocked = await this.blockedIdsFor(viewerId);
|
|
95
|
-
if (blocked.size > 0)
|
|
102
|
+
if (blocked.size > 0) {
|
|
96
103
|
conditions.push(notInArray(chatMessage.userId, [...blocked]));
|
|
104
|
+
}
|
|
97
105
|
}
|
|
98
106
|
async sendRoomMessage({ userId, username, roomId, content, }) {
|
|
99
107
|
findOneOrThrow(await this.drizzle.db.select().from(chatRoom).where(eq(chatRoom.id, roomId)), new ChatRoomNotFoundError(roomId));
|
|
@@ -167,16 +175,18 @@ export class ChatService {
|
|
|
167
175
|
return rows.map((r) => serializeRow(r, { dateFields: ['createdAt'] }));
|
|
168
176
|
}
|
|
169
177
|
async blockUser(blockerId, blockedId) {
|
|
170
|
-
if (blockerId === blockedId)
|
|
178
|
+
if (blockerId === blockedId) {
|
|
171
179
|
throw new ChatSelfBlockError();
|
|
180
|
+
}
|
|
172
181
|
// Idempotent: re-blocking is a no-op, so only the first block emits an event.
|
|
173
182
|
const inserted = await this.drizzle.db
|
|
174
183
|
.insert(chatUserBlock)
|
|
175
184
|
.values({ blockerId, blockedId })
|
|
176
185
|
.onConflictDoNothing({ target: [chatUserBlock.blockerId, chatUserBlock.blockedId] })
|
|
177
186
|
.returning();
|
|
178
|
-
if (inserted.length > 0)
|
|
187
|
+
if (inserted.length > 0) {
|
|
179
188
|
this.events.emit('chat.user.blocked', { blockerId, blockedId });
|
|
189
|
+
}
|
|
180
190
|
return { success: true };
|
|
181
191
|
}
|
|
182
192
|
async unblockUser(blockerId, blockedId) {
|
|
@@ -184,8 +194,9 @@ export class ChatService {
|
|
|
184
194
|
.delete(chatUserBlock)
|
|
185
195
|
.where(and(eq(chatUserBlock.blockerId, blockerId), eq(chatUserBlock.blockedId, blockedId)))
|
|
186
196
|
.returning();
|
|
187
|
-
if (removed.length > 0)
|
|
197
|
+
if (removed.length > 0) {
|
|
188
198
|
this.events.emit('chat.user.unblocked', { blockerId, blockedId });
|
|
199
|
+
}
|
|
189
200
|
return { success: true };
|
|
190
201
|
}
|
|
191
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../../../src/engagement/chat/service/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,eAAe,EAEf,cAAc,EACd,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,UAAU,WAAW,CAAC,MAA6B;IACvD,OAAO,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CACpD,uBAAuB,EACvB,CAAC,EAAU,EAAE,EAAE,CAAC,wBAAwB,EAAE,EAAE,CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,iBAAiB,CACvD,0BAA0B,EAC1B,CAAC,EAAU,EAAE,EAAE,CAAC,2BAA2B,EAAE,EAAE,CAChD,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,iBAAiB,CACxD,2BAA2B,EAC3B,CAAC,EAAU,EAAE,EAAE,CAAC,qCAAqC,EAAE,EAAE,CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CACtD,yBAAyB,EACzB,GAAG,EAAE,CAAC,kDAAkD,CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CACjD,oBAAoB,EACpB,GAAG,EAAE,CAAC,2BAA2B,CAClC,CAAC;AAEF,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../../../src/engagement/chat/service/chat.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,9 @@ import { NotificationsService, NotificationNotFoundError, NotificationOwnershipE
|
|
|
4
4
|
function chain(result) {
|
|
5
5
|
const proxy = new Proxy(function () { }, {
|
|
6
6
|
get(_t, prop) {
|
|
7
|
-
if (prop === 'then')
|
|
7
|
+
if (prop === 'then') {
|
|
8
8
|
return (res) => res(result);
|
|
9
|
+
}
|
|
9
10
|
return () => proxy;
|
|
10
11
|
},
|
|
11
12
|
apply: () => proxy,
|
|
@@ -35,7 +36,7 @@ describe('NotificationsService', () => {
|
|
|
35
36
|
{
|
|
36
37
|
id: 'n1',
|
|
37
38
|
userId: 'u1',
|
|
38
|
-
type: '
|
|
39
|
+
type: 'withdrawal.approved',
|
|
39
40
|
title: 'Hello',
|
|
40
41
|
body: 'World',
|
|
41
42
|
readAt: null,
|
|
@@ -46,7 +47,7 @@ describe('NotificationsService', () => {
|
|
|
46
47
|
const service = new NotificationsService(drizzle, events);
|
|
47
48
|
const result = await service.create({
|
|
48
49
|
userId: 'u1',
|
|
49
|
-
type: '
|
|
50
|
+
type: 'withdrawal.approved',
|
|
50
51
|
title: 'Hello',
|
|
51
52
|
body: 'World',
|
|
52
53
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.service.test.js","sourceRoot":"","sources":["../../../../src/engagement/notifications/__tests__/notifications.service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAE7C,SAAS,KAAK,CAAC,MAAe;IAC5B,MAAM,KAAK,GAAQ,IAAI,KAAK,CAAC,cAAa,CAAC,EAAE;QAC3C,GAAG,CAAC,EAAE,EAAE,IAAI;YACV,IAAI,IAAI,KAAK,MAAM;
|
|
1
|
+
{"version":3,"file":"notifications.service.test.js","sourceRoot":"","sources":["../../../../src/engagement/notifications/__tests__/notifications.service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,40 @@
|
|
|
1
1
|
import * as z from 'zod';
|
|
2
|
+
export declare const NOTIFICATION_TYPES: readonly ["withdrawal.approved", "withdrawal.rejected"];
|
|
3
|
+
export declare const NotificationTypeSchema: z.ZodEnum<{
|
|
4
|
+
"withdrawal.approved": "withdrawal.approved";
|
|
5
|
+
"withdrawal.rejected": "withdrawal.rejected";
|
|
6
|
+
}>;
|
|
7
|
+
export type NotificationType = z.infer<typeof NotificationTypeSchema>;
|
|
2
8
|
export declare const NotificationSchema: z.ZodObject<{
|
|
3
9
|
id: z.ZodUUID;
|
|
4
10
|
userId: z.ZodUUID;
|
|
5
|
-
type: z.
|
|
11
|
+
type: z.ZodEnum<{
|
|
12
|
+
"withdrawal.approved": "withdrawal.approved";
|
|
13
|
+
"withdrawal.rejected": "withdrawal.rejected";
|
|
14
|
+
}>;
|
|
6
15
|
title: z.ZodString;
|
|
7
16
|
body: z.ZodString;
|
|
8
17
|
readAt: z.ZodNullable<z.ZodString>;
|
|
9
18
|
createdAt: z.ZodISODateTime;
|
|
10
19
|
}, z.core.$strip>;
|
|
20
|
+
export declare const CreateNotificationInputSchema: z.ZodObject<{
|
|
21
|
+
userId: z.ZodUUID;
|
|
22
|
+
type: z.ZodEnum<{
|
|
23
|
+
"withdrawal.approved": "withdrawal.approved";
|
|
24
|
+
"withdrawal.rejected": "withdrawal.rejected";
|
|
25
|
+
}>;
|
|
26
|
+
title: z.ZodString;
|
|
27
|
+
body: z.ZodString;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
export type CreateNotificationInput = z.infer<typeof CreateNotificationInputSchema>;
|
|
11
30
|
export declare const notificationsContract: {
|
|
12
31
|
list: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, z.ZodArray<z.ZodObject<{
|
|
13
32
|
id: z.ZodUUID;
|
|
14
33
|
userId: z.ZodUUID;
|
|
15
|
-
type: z.
|
|
34
|
+
type: z.ZodEnum<{
|
|
35
|
+
"withdrawal.approved": "withdrawal.approved";
|
|
36
|
+
"withdrawal.rejected": "withdrawal.rejected";
|
|
37
|
+
}>;
|
|
16
38
|
title: z.ZodString;
|
|
17
39
|
body: z.ZodString;
|
|
18
40
|
readAt: z.ZodNullable<z.ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/notifications/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/notifications/contract/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAGzB,eAAO,MAAM,kBAAkB,yDAA0D,CAAC;AAC1F,eAAO,MAAM,sBAAsB;;;EAA6B,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,kBAAkB;;;;;;;;;;;iBAQ7B,CAAC;AAGH,eAAO,MAAM,6BAA6B;;;;;;;;iBAKxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;CAWjC,CAAC"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import { oc } from '@orpc/contract';
|
|
2
2
|
import * as z from 'zod';
|
|
3
3
|
import { IdInputSchema, TimestampSchema, UuidSchema } from '@openora/core/contracts';
|
|
4
|
+
export const NOTIFICATION_TYPES = ['withdrawal.approved', 'withdrawal.rejected'];
|
|
5
|
+
export const NotificationTypeSchema = z.enum(NOTIFICATION_TYPES);
|
|
4
6
|
export const NotificationSchema = z.object({
|
|
5
7
|
id: UuidSchema,
|
|
6
8
|
userId: UuidSchema,
|
|
7
|
-
type:
|
|
9
|
+
type: NotificationTypeSchema,
|
|
8
10
|
title: z.string(),
|
|
9
11
|
body: z.string(),
|
|
10
12
|
readAt: z.string().nullable(),
|
|
11
13
|
createdAt: TimestampSchema,
|
|
12
14
|
});
|
|
15
|
+
// Internal-only - fed by domain-event handlers in plugin.ts, not a wire route.
|
|
16
|
+
export const CreateNotificationInputSchema = z.object({
|
|
17
|
+
userId: UuidSchema,
|
|
18
|
+
type: NotificationTypeSchema,
|
|
19
|
+
title: z.string(),
|
|
20
|
+
body: z.string(),
|
|
21
|
+
});
|
|
13
22
|
export const notificationsContract = {
|
|
14
23
|
list: oc.route({ method: 'GET', path: '/notifications' }).output(z.array(NotificationSchema)),
|
|
15
24
|
markRead: oc
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/notifications/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,UAAU;IACd,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/notifications/contract/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,qBAAqB,EAAE,qBAAqB,CAAU,CAAC;AAC1F,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAGjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,UAAU;IACd,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,sBAAsB;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAE7F,QAAQ,EAAE,EAAE;SACT,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;SAC3D,KAAK,CAAC,aAAa,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEjD,WAAW,EAAE,EAAE;SACZ,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SAC1D,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC3C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { NotificationsService, NotificationNotFoundError, NotificationOwnershipError, } from './service/notifications.service.js';
|
|
2
|
-
export type { CreateNotificationInput } from './
|
|
2
|
+
export type { CreateNotificationInput } from './contract/index.js';
|
|
3
3
|
export { createNotificationsRouter } from './router/index.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engagement/notifications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engagement/notifications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/engagement/notifications/plugin.ts"],"names":[],"mappings":";AAYA,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/engagement/notifications/plugin.ts"],"names":[],"mappings":";AAYA,wBAwEG"}
|
|
@@ -19,8 +19,9 @@ export default definePlugin({
|
|
|
19
19
|
// Best-effort email alongside the in-app notification; a missing user or delivery
|
|
20
20
|
// failure is logged, never thrown - the in-app notification already landed.
|
|
21
21
|
const sendEmail = (userId, title, body) => {
|
|
22
|
-
if (!deliveryRef || !directoryRef)
|
|
22
|
+
if (!deliveryRef || !directoryRef) {
|
|
23
23
|
return;
|
|
24
|
+
}
|
|
24
25
|
const delivery = deliveryRef;
|
|
25
26
|
directoryRef
|
|
26
27
|
.get(userId)
|
|
@@ -35,8 +36,9 @@ export default definePlugin({
|
|
|
35
36
|
};
|
|
36
37
|
ctx.events.on('wallet.withdrawal.approved', (payload) => {
|
|
37
38
|
const parsed = domainEventSchemas['wallet.withdrawal.approved'].safeParse(payload);
|
|
38
|
-
if (!parsed.success || !svcRef)
|
|
39
|
+
if (!parsed.success || !svcRef) {
|
|
39
40
|
return;
|
|
41
|
+
}
|
|
40
42
|
const p = parsed.data;
|
|
41
43
|
const title = 'Withdrawal approved';
|
|
42
44
|
const body = `Your withdrawal of ${p.amount} ${p.currency} has been approved and is being processed.`;
|
|
@@ -47,8 +49,9 @@ export default definePlugin({
|
|
|
47
49
|
});
|
|
48
50
|
ctx.events.on('wallet.withdrawal.rejected', (payload) => {
|
|
49
51
|
const parsed = domainEventSchemas['wallet.withdrawal.rejected'].safeParse(payload);
|
|
50
|
-
if (!parsed.success || !svcRef)
|
|
52
|
+
if (!parsed.success || !svcRef) {
|
|
51
53
|
return;
|
|
54
|
+
}
|
|
52
55
|
const p = parsed.data;
|
|
53
56
|
const reason = p.reason ? ` Reason: ${p.reason}.` : '';
|
|
54
57
|
const title = 'Withdrawal rejected';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/engagement/notifications/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,kBAAkB,GAGnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,eAAe,YAAY,CAAC;IAC1B,EAAE,EAAE,eAAe;IACnB,+EAA+E;IAC/E,4FAA4F;IAC5F,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,CAAC,GAAG;QACV,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;QAExF,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QAE7C,sFAAsF;QACtF,sFAAsF;QACtF,IAAI,MAAM,GAAgC,IAAI,CAAC;QAC/C,IAAI,WAAW,GAAuC,IAAI,CAAC;QAC3D,IAAI,YAAY,GAA8B,IAAI,CAAC;QAEnD,kFAAkF;QAClF,4EAA4E;QAC5E,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;YAChE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/engagement/notifications/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,kBAAkB,GAGnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,eAAe,YAAY,CAAC;IAC1B,EAAE,EAAE,eAAe;IACnB,+EAA+E;IAC/E,4FAA4F;IAC5F,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,CAAC,GAAG;QACV,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;QAExF,MAAM,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;QAE7C,sFAAsF;QACtF,sFAAsF;QACtF,IAAI,MAAM,GAAgC,IAAI,CAAC;QAC/C,IAAI,WAAW,GAAuC,IAAI,CAAC;QAC3D,IAAI,YAAY,GAA8B,IAAI,CAAC;QAEnD,kFAAkF;QAClF,4EAA4E;QAC5E,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;YAChE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC;YAC7B,YAAY;iBACT,GAAG,CAAC,MAAM,CAAC;iBACX,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,6CAA6C,CAAC,CAAC;oBACvE,OAAO;gBACT,CAAC;gBACD,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC;QAEF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,EAAE;YACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,MAAM,KAAK,GAAG,qBAAqB,CAAC;YACpC,MAAM,IAAI,GAAG,sBAAsB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,4CAA4C,CAAC;YACtG,MAAM;iBACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;iBACtE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yCAAyC,CAAC,CAAC,CAAC;YACpF,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,4BAA4B,EAAE,CAAC,OAAO,EAAE,EAAE;YACtD,MAAM,MAAM,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnF,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;YACtB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,MAAM,KAAK,GAAG,qBAAqB,CAAC;YACpC,MAAM,IAAI,GAAG,sBAAsB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ,6DAA6D,MAAM,EAAE,CAAC;YAC/H,MAAM;iBACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;iBACtE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yCAAyC,CAAC,CAAC,CAAC;YACpF,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YACvE,MAAM,GAAG,GAAG,CAAC;YACb,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YACnD,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC3C,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -4,7 +4,10 @@ export declare function createNotificationsRouter(notifications: NotificationsSe
|
|
|
4
4
|
list: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("@orpc/server").Schema<unknown, unknown>, import("zod").ZodArray<import("zod").ZodObject<{
|
|
5
5
|
id: import("zod").ZodUUID;
|
|
6
6
|
userId: import("zod").ZodUUID;
|
|
7
|
-
type: import("zod").
|
|
7
|
+
type: import("zod").ZodEnum<{
|
|
8
|
+
"withdrawal.approved": "withdrawal.approved";
|
|
9
|
+
"withdrawal.rejected": "withdrawal.rejected";
|
|
10
|
+
}>;
|
|
8
11
|
title: import("zod").ZodString;
|
|
9
12
|
body: import("zod").ZodString;
|
|
10
13
|
readAt: import("zod").ZodNullable<import("zod").ZodString>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/notifications/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACL,oBAAoB,EAGrB,MAAM,qCAAqC,CAAC;AAE7C,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,oBAAoB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/notifications/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACL,oBAAoB,EAGrB,MAAM,qCAAqC,CAAC;AAE7C,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAmC5E"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import { implement } from '@orpc/server';
|
|
2
2
|
import { getUserId, mapErrors } from '@openora/core/server';
|
|
3
|
-
import { notificationsContract } from '../contract/index.js';
|
|
3
|
+
import { notificationsContract, NotificationTypeSchema } from '../contract/index.js';
|
|
4
4
|
import { NotificationNotFoundError, NotificationOwnershipError, } from '../service/notifications.service.js';
|
|
5
5
|
export function createNotificationsRouter(notifications) {
|
|
6
6
|
const os = implement(notificationsContract).$context();
|
|
7
7
|
return os.router({
|
|
8
|
-
list: os.list.handler(({ context }) => notifications.listForUser(getUserId(context)).then((items) => items.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
list: os.list.handler(({ context }) => notifications.listForUser(getUserId(context)).then((items) => items.flatMap((n) => {
|
|
9
|
+
const type = NotificationTypeSchema.safeParse(n.type);
|
|
10
|
+
if (!type.success) {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
return [
|
|
14
|
+
{
|
|
15
|
+
...n,
|
|
16
|
+
type: type.data,
|
|
17
|
+
readAt: n.readAt ? n.readAt.toISOString() : null,
|
|
18
|
+
createdAt: n.createdAt.toISOString(),
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
}))),
|
|
13
22
|
markRead: os.markRead.handler(async ({ input, context }) => {
|
|
14
23
|
await mapErrors({ NOT_FOUND: NotificationNotFoundError, FORBIDDEN: NotificationOwnershipError }, () => notifications.markRead(input.id, getUserId(context)));
|
|
15
24
|
return { success: true };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/notifications/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/notifications/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAmB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAEL,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAE7C,MAAM,UAAU,yBAAyB,CAAC,aAAmC;IAC3E,MAAM,EAAE,GAAG,SAAS,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAc,CAAC;IAEnE,OAAO,EAAE,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACpC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3D,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClB,MAAM,IAAI,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO;gBACL;oBACE,GAAG,CAAC;oBACJ,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;oBAChD,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE;iBACrC;aACF,CAAC;QACJ,CAAC,CAAC,CACH,CACF;QAED,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YACzD,MAAM,SAAS,CACb,EAAE,SAAS,EAAE,yBAAyB,EAAE,SAAS,EAAE,0BAA0B,EAAE,EAC/E,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAC3D,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,IAAa,EAAE,CAAC;QACpC,CAAC,CAAC;QAEF,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAClD,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAC9C;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { type EventBus, DrizzleService } from '@openora/core/server';
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
userId: z.ZodUUID;
|
|
5
|
-
type: z.ZodString;
|
|
6
|
-
title: z.ZodString;
|
|
7
|
-
body: z.ZodString;
|
|
8
|
-
}, z.core.$strip>;
|
|
9
|
-
export type CreateNotificationInput = z.infer<typeof CreateNotificationInputSchema>;
|
|
2
|
+
import type { User } from '@openora/core/contracts';
|
|
3
|
+
import type { CreateNotificationInput } from '../contract/index.js';
|
|
10
4
|
export declare const NotificationNotFoundError: new (id: string) => Error;
|
|
11
5
|
export declare const NotificationOwnershipError: new () => Error;
|
|
12
6
|
export declare class NotificationsService {
|
|
@@ -14,15 +8,15 @@ export declare class NotificationsService {
|
|
|
14
8
|
private readonly events;
|
|
15
9
|
constructor(drizzle: DrizzleService, events: EventBus);
|
|
16
10
|
create(input: CreateNotificationInput): Promise<{
|
|
17
|
-
type: string;
|
|
18
11
|
id: string;
|
|
19
12
|
userId: string;
|
|
13
|
+
type: string;
|
|
20
14
|
createdAt: Date;
|
|
21
15
|
title: string;
|
|
22
16
|
body: string;
|
|
23
17
|
readAt: Date | null;
|
|
24
18
|
}>;
|
|
25
|
-
listForUser(userId:
|
|
19
|
+
listForUser(userId: User['id']): Promise<{
|
|
26
20
|
id: string;
|
|
27
21
|
userId: string;
|
|
28
22
|
type: string;
|
|
@@ -31,7 +25,7 @@ export declare class NotificationsService {
|
|
|
31
25
|
readAt: Date | null;
|
|
32
26
|
createdAt: Date;
|
|
33
27
|
}[]>;
|
|
34
|
-
markRead(id: string, userId:
|
|
28
|
+
markRead(id: string, userId: User['id']): Promise<{
|
|
35
29
|
id: string;
|
|
36
30
|
userId: string;
|
|
37
31
|
type: string;
|
|
@@ -40,9 +34,8 @@ export declare class NotificationsService {
|
|
|
40
34
|
readAt: Date | null;
|
|
41
35
|
createdAt: Date;
|
|
42
36
|
}>;
|
|
43
|
-
markAllRead(userId:
|
|
37
|
+
markAllRead(userId: User['id']): Promise<{
|
|
44
38
|
count: number;
|
|
45
39
|
}>;
|
|
46
40
|
}
|
|
47
|
-
export {};
|
|
48
41
|
//# sourceMappingURL=notifications.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.service.d.ts","sourceRoot":"","sources":["../../../../src/engagement/notifications/service/notifications.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"notifications.service.d.ts","sourceRoot":"","sources":["../../../../src/engagement/notifications/service/notifications.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAKb,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,eAAO,MAAM,yBAAyB,2BAAoC,CAAC;AAE3E,eAAO,MAAM,0BAA0B,iBAAqC,CAAC;AAO7E,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,QAAQ;IAG7B,MAAM,CAAC,KAAK,EAAE,uBAAuB;;;;;;;;;IAerC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;;;;;;;;IAS9B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;;;;;;;;IAiBvC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;;;CAQrC"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import { makeNotFoundError, makeOwnershipError, assertOwnership, findOneOrThrow, } from '@openora/core/server';
|
|
1
|
+
import { makeNotFoundError, makeOwnershipError, createDomainError, assertOwnership, findOneOrThrow, } from '@openora/core/server';
|
|
2
2
|
import { eq, and, isNull, desc } from 'drizzle-orm';
|
|
3
|
-
import * as z from 'zod';
|
|
4
|
-
import { UuidSchema } from '@openora/core/contracts';
|
|
5
3
|
import { notification } from '../schema/index.js';
|
|
6
|
-
// Internal-only - fed by domain-event handlers in plugin.ts, not a wire route.
|
|
7
|
-
const CreateNotificationInputSchema = z.object({
|
|
8
|
-
userId: UuidSchema,
|
|
9
|
-
type: z.string(),
|
|
10
|
-
title: z.string(),
|
|
11
|
-
body: z.string(),
|
|
12
|
-
});
|
|
13
4
|
export const NotificationNotFoundError = makeNotFoundError('Notification');
|
|
14
5
|
export const NotificationOwnershipError = makeOwnershipError('Notification');
|
|
6
|
+
const NotificationInsertFailedError = createDomainError('NotificationInsertFailedError', () => 'Notification insert did not return a row');
|
|
15
7
|
export class NotificationsService {
|
|
16
8
|
drizzle;
|
|
17
9
|
events;
|
|
@@ -20,10 +12,10 @@ export class NotificationsService {
|
|
|
20
12
|
this.events = events;
|
|
21
13
|
}
|
|
22
14
|
async create(input) {
|
|
23
|
-
const
|
|
15
|
+
const record = findOneOrThrow(await this.drizzle.db
|
|
24
16
|
.insert(notification)
|
|
25
17
|
.values({ ...input })
|
|
26
|
-
.returning();
|
|
18
|
+
.returning(), new NotificationInsertFailedError());
|
|
27
19
|
this.events.emit('notifications.created', {
|
|
28
20
|
notificationId: record.id,
|
|
29
21
|
userId: input.userId,
|
|
@@ -41,11 +33,11 @@ export class NotificationsService {
|
|
|
41
33
|
async markRead(id, userId) {
|
|
42
34
|
const record = findOneOrThrow(await this.drizzle.db.select().from(notification).where(eq(notification.id, id)), new NotificationNotFoundError(id));
|
|
43
35
|
assertOwnership(record.userId, userId, new NotificationOwnershipError());
|
|
44
|
-
const
|
|
36
|
+
const updated = findOneOrThrow(await this.drizzle.db
|
|
45
37
|
.update(notification)
|
|
46
38
|
.set({ readAt: new Date() })
|
|
47
39
|
.where(eq(notification.id, id))
|
|
48
|
-
.returning();
|
|
40
|
+
.returning(), new NotificationNotFoundError(id));
|
|
49
41
|
return updated;
|
|
50
42
|
}
|
|
51
43
|
async markAllRead(userId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.service.js","sourceRoot":"","sources":["../../../../src/engagement/notifications/service/notifications.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EAEf,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"notifications.service.js","sourceRoot":"","sources":["../../../../src/engagement/notifications/service/notifications.service.ts"],"names":[],"mappings":"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"}
|