@openora/core 0.4.1-canary.60 → 0.4.1-canary.63

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 (217) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/admin-console/plugin.d.ts +2 -0
  3. package/dist/admin-console/plugin.d.ts.map +1 -1
  4. package/dist/analytics/plugin.d.ts +2 -0
  5. package/dist/analytics/plugin.d.ts.map +1 -1
  6. package/dist/audit/plugin.d.ts +2 -0
  7. package/dist/audit/plugin.d.ts.map +1 -1
  8. package/dist/audit/plugin.js +13 -0
  9. package/dist/audit/plugin.js.map +1 -1
  10. package/dist/casino/gaming/plugin.d.ts +2 -0
  11. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  12. package/dist/casino/lobby/plugin.d.ts +2 -0
  13. package/dist/casino/lobby/plugin.d.ts.map +1 -1
  14. package/dist/cms/plugin.d.ts +2 -0
  15. package/dist/cms/plugin.d.ts.map +1 -1
  16. package/dist/compliance/plugin.d.ts +2 -0
  17. package/dist/compliance/plugin.d.ts.map +1 -1
  18. package/dist/contracts/adapters/audit.d.ts +1 -1
  19. package/dist/contracts/adapters/audit.d.ts.map +1 -1
  20. package/dist/contracts/adapters/audit.js.map +1 -1
  21. package/dist/contracts/adapters/chat-system-writer.d.ts +7 -1
  22. package/dist/contracts/adapters/chat-system-writer.d.ts.map +1 -1
  23. package/dist/contracts/adapters/chat-system-writer.js.map +1 -1
  24. package/dist/contracts/adapters/gift-commands.d.ts +58 -0
  25. package/dist/contracts/adapters/gift-commands.d.ts.map +1 -0
  26. package/dist/contracts/adapters/gift-commands.js +11 -0
  27. package/dist/contracts/adapters/gift-commands.js.map +1 -0
  28. package/dist/contracts/adapters/index.d.ts +5 -1
  29. package/dist/contracts/adapters/index.d.ts.map +1 -1
  30. package/dist/contracts/adapters/index.js +2 -0
  31. package/dist/contracts/adapters/index.js.map +1 -1
  32. package/dist/contracts/adapters/rain-commands.d.ts +27 -0
  33. package/dist/contracts/adapters/rain-commands.d.ts.map +1 -0
  34. package/dist/contracts/adapters/rain-commands.js +12 -0
  35. package/dist/contracts/adapters/rain-commands.js.map +1 -0
  36. package/dist/contracts/schemas/chat-command-metadata.d.ts +26 -0
  37. package/dist/contracts/schemas/chat-command-metadata.d.ts.map +1 -1
  38. package/dist/contracts/schemas/chat-command-metadata.js +25 -0
  39. package/dist/contracts/schemas/chat-command-metadata.js.map +1 -1
  40. package/dist/contracts/schemas/chat-command.d.ts +126 -0
  41. package/dist/contracts/schemas/chat-command.d.ts.map +1 -1
  42. package/dist/contracts/schemas/chat-command.js +19 -1
  43. package/dist/contracts/schemas/chat-command.js.map +1 -1
  44. package/dist/contracts/schemas/events.d.ts +15 -3
  45. package/dist/contracts/schemas/events.d.ts.map +1 -1
  46. package/dist/contracts/schemas/events.js +17 -6
  47. package/dist/contracts/schemas/events.js.map +1 -1
  48. package/dist/contracts/schemas/identity.d.ts +2 -1
  49. package/dist/contracts/schemas/identity.d.ts.map +1 -1
  50. package/dist/contracts/schemas/identity.js +5 -1
  51. package/dist/contracts/schemas/identity.js.map +1 -1
  52. package/dist/engagement/chat/__tests__/chat.service.int.test.js +211 -8
  53. package/dist/engagement/chat/__tests__/chat.service.int.test.js.map +1 -1
  54. package/dist/engagement/chat/contract/index.d.ts +719 -40
  55. package/dist/engagement/chat/contract/index.d.ts.map +1 -1
  56. package/dist/engagement/chat/contract/index.js +51 -5
  57. package/dist/engagement/chat/contract/index.js.map +1 -1
  58. package/dist/engagement/chat/drizzle/migrations/0004_panoramic_robin_chapel.sql +6 -0
  59. package/dist/engagement/chat/drizzle/migrations/meta/0004_snapshot.json +666 -0
  60. package/dist/engagement/chat/drizzle/migrations/meta/_journal.json +7 -0
  61. package/dist/engagement/chat/plugin.d.ts +2 -0
  62. package/dist/engagement/chat/plugin.d.ts.map +1 -1
  63. package/dist/engagement/chat/router/index.d.ts +608 -34
  64. package/dist/engagement/chat/router/index.d.ts.map +1 -1
  65. package/dist/engagement/chat/router/index.js +10 -2
  66. package/dist/engagement/chat/router/index.js.map +1 -1
  67. package/dist/engagement/chat/schema/index.d.ts +72 -0
  68. package/dist/engagement/chat/schema/index.d.ts.map +1 -1
  69. package/dist/engagement/chat/schema/index.js +15 -3
  70. package/dist/engagement/chat/schema/index.js.map +1 -1
  71. package/dist/engagement/chat/service/chat.service.d.ts +421 -34
  72. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  73. package/dist/engagement/chat/service/chat.service.js +155 -40
  74. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  75. package/dist/engagement/chat-commands/contract/index.d.ts +181 -73
  76. package/dist/engagement/chat-commands/contract/index.d.ts.map +1 -1
  77. package/dist/engagement/chat-commands/contract/index.js +50 -72
  78. package/dist/engagement/chat-commands/contract/index.js.map +1 -1
  79. package/dist/engagement/chat-commands/plugin.d.ts +3 -1
  80. package/dist/engagement/chat-commands/plugin.d.ts.map +1 -1
  81. package/dist/engagement/chat-commands/plugin.js +4 -4
  82. package/dist/engagement/chat-commands/plugin.js.map +1 -1
  83. package/dist/engagement/chat-commands/router/index.d.ts +185 -83
  84. package/dist/engagement/chat-commands/router/index.d.ts.map +1 -1
  85. package/dist/engagement/chat-commands/router/index.js +35 -25
  86. package/dist/engagement/chat-commands/router/index.js.map +1 -1
  87. package/dist/engagement/chat-commands/seed/index.d.ts.map +1 -1
  88. package/dist/engagement/chat-commands/seed/index.js +12 -0
  89. package/dist/engagement/chat-commands/seed/index.js.map +1 -1
  90. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js +205 -733
  91. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js.map +1 -1
  92. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts +44 -68
  93. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts.map +1 -1
  94. package/dist/engagement/chat-commands/service/chat-commands.service.js +143 -571
  95. package/dist/engagement/chat-commands/service/chat-commands.service.js.map +1 -1
  96. package/dist/engagement/contracts.d.ts +1 -0
  97. package/dist/engagement/contracts.d.ts.map +1 -1
  98. package/dist/engagement/contracts.js +1 -0
  99. package/dist/engagement/contracts.js.map +1 -1
  100. package/dist/engagement/index.d.ts +1 -0
  101. package/dist/engagement/index.d.ts.map +1 -1
  102. package/dist/engagement/index.js +1 -0
  103. package/dist/engagement/index.js.map +1 -1
  104. package/dist/engagement/notifications/plugin.d.ts +2 -0
  105. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  106. package/dist/engagement/server.d.ts +1 -0
  107. package/dist/engagement/server.d.ts.map +1 -1
  108. package/dist/engagement/server.js +1 -0
  109. package/dist/engagement/server.js.map +1 -1
  110. package/dist/engagement/social-transfers/contract/index.d.ts +85 -0
  111. package/dist/engagement/social-transfers/contract/index.d.ts.map +1 -0
  112. package/dist/engagement/social-transfers/contract/index.js +21 -0
  113. package/dist/engagement/social-transfers/contract/index.js.map +1 -0
  114. package/dist/engagement/social-transfers/drizzle/migrations/0000_clammy_rattler.sql +46 -0
  115. package/dist/engagement/social-transfers/drizzle/migrations/meta/0000_snapshot.json +287 -0
  116. package/dist/engagement/social-transfers/drizzle/migrations/meta/_journal.json +13 -0
  117. package/dist/engagement/social-transfers/drizzle.config.d.ts +4 -0
  118. package/dist/engagement/social-transfers/drizzle.config.d.ts.map +1 -0
  119. package/dist/engagement/social-transfers/drizzle.config.js +21 -0
  120. package/dist/engagement/social-transfers/drizzle.config.js.map +1 -0
  121. package/dist/engagement/social-transfers/index.d.ts +3 -0
  122. package/dist/engagement/social-transfers/index.d.ts.map +1 -0
  123. package/dist/engagement/social-transfers/index.js +6 -0
  124. package/dist/engagement/social-transfers/index.js.map +1 -0
  125. package/dist/engagement/social-transfers/migrate.d.ts +5 -0
  126. package/dist/engagement/social-transfers/migrate.d.ts.map +1 -0
  127. package/dist/engagement/social-transfers/migrate.js +17 -0
  128. package/dist/engagement/social-transfers/migrate.js.map +1 -0
  129. package/dist/engagement/social-transfers/plugin.d.ts +111 -0
  130. package/dist/engagement/social-transfers/plugin.d.ts.map +1 -0
  131. package/dist/engagement/social-transfers/plugin.js +24 -0
  132. package/dist/engagement/social-transfers/plugin.js.map +1 -0
  133. package/dist/engagement/social-transfers/router/index.d.ts +77 -0
  134. package/dist/engagement/social-transfers/router/index.d.ts.map +1 -0
  135. package/dist/engagement/social-transfers/router/index.js +25 -0
  136. package/dist/engagement/social-transfers/router/index.js.map +1 -0
  137. package/dist/engagement/social-transfers/schema/index.d.ts +609 -0
  138. package/dist/engagement/social-transfers/schema/index.d.ts.map +1 -0
  139. package/dist/engagement/social-transfers/schema/index.js +61 -0
  140. package/dist/engagement/social-transfers/schema/index.js.map +1 -0
  141. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.d.ts +2 -0
  142. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.d.ts.map +1 -0
  143. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.js +757 -0
  144. package/dist/engagement/social-transfers/service/__tests__/social-transfers.service.test.js.map +1 -0
  145. package/dist/engagement/social-transfers/service/social-transfers.service.d.ts +75 -0
  146. package/dist/engagement/social-transfers/service/social-transfers.service.d.ts.map +1 -0
  147. package/dist/engagement/social-transfers/service/social-transfers.service.js +789 -0
  148. package/dist/engagement/social-transfers/service/social-transfers.service.js.map +1 -0
  149. package/dist/iam/plugin.d.ts +2 -0
  150. package/dist/iam/plugin.d.ts.map +1 -1
  151. package/dist/iam/service/iam.service.d.ts +1 -1
  152. package/dist/pam/identity/__tests__/identity.service.int.test.js +47 -2
  153. package/dist/pam/identity/__tests__/identity.service.int.test.js.map +1 -1
  154. package/dist/pam/identity/__tests__/phone-login.service.int.test.js +23 -2
  155. package/dist/pam/identity/__tests__/phone-login.service.int.test.js.map +1 -1
  156. package/dist/pam/identity/plugin.d.ts +2 -0
  157. package/dist/pam/identity/plugin.d.ts.map +1 -1
  158. package/dist/pam/identity/service/identity.service.d.ts.map +1 -1
  159. package/dist/pam/identity/service/identity.service.js +29 -1
  160. package/dist/pam/identity/service/identity.service.js.map +1 -1
  161. package/dist/pam/identity/service/phone-login.service.d.ts.map +1 -1
  162. package/dist/pam/identity/service/phone-login.service.js +23 -0
  163. package/dist/pam/identity/service/phone-login.service.js.map +1 -1
  164. package/dist/pam/player-management/__tests__/player.router.int.test.js +27 -4
  165. package/dist/pam/player-management/__tests__/player.router.int.test.js.map +1 -1
  166. package/dist/pam/player-management/__tests__/player.service.int.test.js +159 -6
  167. package/dist/pam/player-management/__tests__/player.service.int.test.js.map +1 -1
  168. package/dist/pam/player-management/contract/index.d.ts +39 -0
  169. package/dist/pam/player-management/contract/index.d.ts.map +1 -1
  170. package/dist/pam/player-management/contract/index.js +33 -1
  171. package/dist/pam/player-management/contract/index.js.map +1 -1
  172. package/dist/pam/player-management/plugin.d.ts +3 -1
  173. package/dist/pam/player-management/plugin.d.ts.map +1 -1
  174. package/dist/pam/player-management/plugin.js +3 -3
  175. package/dist/pam/player-management/plugin.js.map +1 -1
  176. package/dist/pam/player-management/router/index.d.ts +21 -0
  177. package/dist/pam/player-management/router/index.d.ts.map +1 -1
  178. package/dist/pam/player-management/router/index.js +12 -2
  179. package/dist/pam/player-management/router/index.js.map +1 -1
  180. package/dist/pam/player-management/service/player.service.d.ts +10 -3
  181. package/dist/pam/player-management/service/player.service.d.ts.map +1 -1
  182. package/dist/pam/player-management/service/player.service.js +66 -3
  183. package/dist/pam/player-management/service/player.service.js.map +1 -1
  184. package/dist/pam/player-note/__tests__/player-note.router.int.test.d.ts +2 -0
  185. package/dist/pam/player-note/__tests__/player-note.router.int.test.d.ts.map +1 -0
  186. package/dist/pam/player-note/__tests__/player-note.router.int.test.js +52 -0
  187. package/dist/pam/player-note/__tests__/player-note.router.int.test.js.map +1 -0
  188. package/dist/pam/player-note/plugin.d.ts +49 -46
  189. package/dist/pam/player-note/plugin.d.ts.map +1 -1
  190. package/dist/pam/player-note/plugin.js +3 -1
  191. package/dist/pam/player-note/plugin.js.map +1 -1
  192. package/dist/pam/player-note/router/index.d.ts +2 -1
  193. package/dist/pam/player-note/router/index.d.ts.map +1 -1
  194. package/dist/pam/player-note/router/index.js +13 -2
  195. package/dist/pam/player-note/router/index.js.map +1 -1
  196. package/dist/pam/profile/plugin.d.ts +2 -0
  197. package/dist/pam/profile/plugin.d.ts.map +1 -1
  198. package/dist/pam/tag/plugin.d.ts +2 -0
  199. package/dist/pam/tag/plugin.d.ts.map +1 -1
  200. package/dist/server/auth/permissions.d.ts +24 -0
  201. package/dist/server/auth/permissions.d.ts.map +1 -1
  202. package/dist/server/auth/permissions.js +4 -0
  203. package/dist/server/auth/permissions.js.map +1 -1
  204. package/dist/server/runtime/core-token-catalog.d.ts +2 -0
  205. package/dist/server/runtime/core-token-catalog.d.ts.map +1 -1
  206. package/dist/server/runtime/core-token-catalog.js +3 -1
  207. package/dist/server/runtime/core-token-catalog.js.map +1 -1
  208. package/dist/wallet/__tests__/wallet.service.int.test.js +7 -0
  209. package/dist/wallet/__tests__/wallet.service.int.test.js.map +1 -1
  210. package/dist/wallet/plugin.d.ts +2 -0
  211. package/dist/wallet/plugin.d.ts.map +1 -1
  212. package/dist/wallet/router/index.js +1 -1
  213. package/dist/wallet/router/index.js.map +1 -1
  214. package/dist/wallet/service/wallet.service.d.ts.map +1 -1
  215. package/dist/wallet/service/wallet.service.js +16 -0
  216. package/dist/wallet/service/wallet.service.js.map +1 -1
  217. package/package.json +21 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.config.d.ts","sourceRoot":"","sources":["../../../src/engagement/social-transfers/drizzle.config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;;AAMvB,wBAeG"}
@@ -0,0 +1,21 @@
1
+ import 'dotenv/config';
2
+ import { defineConfig } from 'drizzle-kit';
3
+ // Own migration history + tracking table, co-located with the module's schema.
4
+ // One DB shared with sibling modules, but one journal per module so a module can
5
+ // be extracted to its own package without history surgery. See ADR-0020/0027.
6
+ export default defineConfig({
7
+ dialect: 'postgresql',
8
+ casing: 'snake_case',
9
+ schema: ['./schema/index.ts'],
10
+ out: './drizzle/migrations',
11
+ migrations: {
12
+ table: '__drizzle_migrations_social_transfers',
13
+ schema: 'drizzle',
14
+ },
15
+ dbCredentials: {
16
+ url: process.env['DATABASE_ADMIN_URL'] ??
17
+ process.env['DATABASE_URL'] ??
18
+ 'postgresql://postgres:postgres@localhost:5432/oss_igaming',
19
+ },
20
+ });
21
+ //# sourceMappingURL=drizzle.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.config.js","sourceRoot":"","sources":["../../../src/engagement/social-transfers/drizzle.config.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,+EAA+E;AAC/E,iFAAiF;AACjF,8EAA8E;AAC9E,eAAe,YAAY,CAAC;IAC1B,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,CAAC,mBAAmB,CAAC;IAC7B,GAAG,EAAE,sBAAsB;IAC3B,UAAU,EAAE;QACV,KAAK,EAAE,uCAAuC;QAC9C,MAAM,EAAE,SAAS;KAClB;IACD,aAAa,EAAE;QACb,GAAG,EACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAC3B,2DAA2D;KAC9D;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { SocialTransfersService } from './service/social-transfers.service.js';
2
+ export { createSocialTransfersRouter } from './router/index.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engagement/social-transfers/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Internal barrel of the SocialTransfers module. The public consumer surface is the
2
+ // domain barrel (@openora/core/engagement), which re-exports this module's
3
+ // contract/ slice; cross-domain table reads go through @openora/core/engagement/schema/social-transfers.
4
+ export { SocialTransfersService } from './service/social-transfers.service.js';
5
+ export { createSocialTransfersRouter } from './router/index.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engagement/social-transfers/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,2EAA2E;AAC3E,yGAAyG;AACzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Apply the social-transfers module migrations (idempotent: drizzle skips already-recorded ones).
3
+ */
4
+ export declare function migrate(databaseUrl?: string): Promise<void>;
5
+ //# sourceMappingURL=migrate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/engagement/social-transfers/migrate.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,iBAO3C"}
@@ -0,0 +1,17 @@
1
+ // Applies this module's own migration set against its own tracking table, so it
2
+ // never collides with sibling modules that share the database. SQL ships in the
3
+ // tarball ('files') and loads via an import.meta.url-relative path. See ADR-0020/0027.
4
+ import { fileURLToPath } from 'node:url';
5
+ import { runMigrations } from '@openora/core/server/migrate';
6
+ /**
7
+ * Apply the social-transfers module migrations (idempotent: drizzle skips already-recorded ones).
8
+ */
9
+ export function migrate(databaseUrl) {
10
+ return runMigrations({
11
+ migrationsFolder: fileURLToPath(new URL('./drizzle/migrations', import.meta.url)),
12
+ migrationsTable: '__drizzle_migrations_social_transfers',
13
+ migrationsSchema: 'drizzle',
14
+ ...(databaseUrl ? { databaseUrl } : {}),
15
+ });
16
+ }
17
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/engagement/social-transfers/migrate.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,uFAAuF;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,WAAoB;IAC1C,OAAO,aAAa,CAAC;QACnB,gBAAgB,EAAE,aAAa,CAAC,IAAI,GAAG,CAAC,sBAAsB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjF,eAAe,EAAE,uCAAuC;QACxD,gBAAgB,EAAE,SAAS;QAC3B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,111 @@
1
+ declare const _default: {
2
+ readonly id: "social-transfers";
3
+ readonly dependsOn: readonly ["chat", "wallet", "iam", "audit"];
4
+ readonly register: (ctx: import("@openora/core/server").PluginContext<{
5
+ ADMIN_GAME_REPORTING: import("@openora/core/contracts").Token<import("@openora/core/contracts").AdminGameReporting>;
6
+ ADMIN_GUARD: import("@openora/core/contracts").Token<import("@openora/core/server").AdminGuard>;
7
+ ADMIN_PERMISSION_RESOLVER: import("@openora/core/contracts").Token<import("@openora/core/contracts").AdminPermissionResolver>;
8
+ ADMIN_PLAYER_ACTIVITY: import("@openora/core/contracts").Token<import("@openora/core/contracts").AdminPlayerActivity>;
9
+ ADMIN_USER_DIRECTORY: import("@openora/core/contracts").Token<import("@openora/core/contracts").AdminUserDirectory>;
10
+ ADMIN_WALLET_REPORTING: import("@openora/core/contracts").Token<import("@openora/core/contracts").AdminWalletReporting>;
11
+ AUDIT_WRITER: import("@openora/core/contracts").SealedToken<import("@openora/core/contracts").AuditWritePort>;
12
+ AUTH_SESSION: import("@openora/core/contracts").Token<import("@openora/core/server").SessionResolver>;
13
+ CACHE: import("@openora/core/contracts").Token<import("@openora/core/contracts").CacheAdapter>;
14
+ CHAT_BLOCK_WRITER: import("@openora/core/contracts").Token<import("@openora/core/contracts").ChatBlockWriter>;
15
+ CHAT_REALTIME_CLIENT_AUTHORIZER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RealtimeClientAuthorizer>;
16
+ CHAT_REALTIME_TRANSPORT: import("@openora/core/contracts").Token<import("@openora/core/contracts").RealtimeTransport>;
17
+ CHAT_ROOM_ACCESS: import("@openora/core/contracts").Token<import("@openora/core/contracts").ChatRoomAccess>;
18
+ CHAT_SYSTEM_WRITER: import("@openora/core/contracts").Token<import("@openora/core/contracts").ChatSystemWriter, string>;
19
+ DRIZZLE: import("@openora/core/contracts").Token<import("@openora/core/server").DrizzleService>;
20
+ EMAIL_TEMPLATE_RENDERER: import("@openora/core/contracts").Token<import("@openora/core/contracts").EmailTemplateRenderer>;
21
+ ERROR_TRACKING: import("@openora/core/contracts").Token<import("@openora/core/contracts").ErrorTrackingAdapter>;
22
+ EVENT_BUS: import("@openora/core/contracts").Token<import("@openora/core/server").EventBus>;
23
+ GAME_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").GameAdapter>;
24
+ GEO_IP_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").GeoIpAdapter>;
25
+ GIFT_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").GiftCommands>;
26
+ IDENTITY_OPTIONS: import("@openora/core/contracts").Token<import("@openora/core/contracts").IdentityServiceOptions>;
27
+ IDENTITY_READER: import("@openora/core/contracts").Token<import("@openora/core/contracts").IdentityReader, string>;
28
+ IGAMING_CONFIG: import("@openora/core/contracts").Token<{
29
+ branding: {
30
+ name: string;
31
+ themePreset?: string | undefined;
32
+ supportEmail?: string | undefined;
33
+ };
34
+ currencies: string[];
35
+ jurisdictions: string[];
36
+ blockedCountries: string[];
37
+ limits: {
38
+ maxDepositPerDay?: number | undefined;
39
+ maxDepositPerMonth?: number | undefined;
40
+ maxLossPerDay?: number | undefined;
41
+ maxStakePerBet?: number | undefined;
42
+ sessionReminderMinutes?: number | undefined;
43
+ };
44
+ providers: {
45
+ payment?: string | undefined;
46
+ kyc?: string | undefined;
47
+ geoIp?: string | undefined;
48
+ aggregator?: string | undefined;
49
+ notification?: string | undefined;
50
+ };
51
+ enabledModules?: string[] | undefined;
52
+ }, string>;
53
+ JOB_QUEUE: import("@openora/core/contracts").Token<import("@openora/core/contracts").JobQueueAdapter>;
54
+ KYC_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").KycAdapter>;
55
+ KYC_STATUS_WRITER: import("@openora/core/contracts").Token<import("@openora/core/contracts").KycStatusWriter>;
56
+ KYC_WEBHOOK_VERIFIER: import("@openora/core/contracts").Token<import("@openora/core/contracts").KycWebhookVerifier>;
57
+ LOGIN_ENFORCEMENT: import("@openora/core/contracts").Token<import("@openora/core/contracts").LoginEnforcementPort>;
58
+ MESSAGE_BROKER: import("@openora/core/contracts").Token<import("@openora/core/contracts").MessageBrokerAdapter>;
59
+ NOTIFICATION_DELIVERY_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").NotificationDeliveryAdapter>;
60
+ OUTBOX: import("@openora/core/contracts").Token<import("@openora/core/contracts").OutboxWriter>;
61
+ PAYMENT_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").PaymentAdapter>;
62
+ PAYMENT_WEBHOOK_VERIFIER: import("@openora/core/contracts").Token<import("@openora/core/contracts").PaymentWebhookVerifier>;
63
+ PLATFORM_CONFIG: import("@openora/core/contracts").Token<{
64
+ features: Record<string, boolean>;
65
+ brands: {
66
+ id: string;
67
+ name: string;
68
+ themePreset?: string | undefined;
69
+ themeOverrides?: Record<string, string> | undefined;
70
+ }[];
71
+ rgLimits: Record<string, {
72
+ maxDepositPerDay?: number | undefined;
73
+ maxDepositPerMonth?: number | undefined;
74
+ maxLossPerDay?: number | undefined;
75
+ maxStakePerBet?: number | undefined;
76
+ sessionReminderMinutes?: number | undefined;
77
+ }>;
78
+ activeBrand?: string | undefined;
79
+ kyc?: {
80
+ gateWithdrawals: boolean;
81
+ provider?: string | undefined;
82
+ webhookSecretEnv?: string | undefined;
83
+ reverifyThresholds?: Record<string, string> | undefined;
84
+ } | undefined;
85
+ autoWithdrawal?: {
86
+ enabled: boolean;
87
+ dailyCapAmount?: string | undefined;
88
+ dailyCapCount?: number | undefined;
89
+ } | undefined;
90
+ wallet?: {
91
+ cryptoCurrencies?: string[] | undefined;
92
+ } | undefined;
93
+ supportedLanguages?: string[] | undefined;
94
+ }, string>;
95
+ PLAYER_TAGS: import("@openora/core/contracts").Token<import("@openora/core/contracts").PlayerTags>;
96
+ PLAY_ELIGIBILITY: import("@openora/core/contracts").Token<import("@openora/core/contracts").PlayEligibilityPort>;
97
+ RAIN_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").RainCommands>;
98
+ RATE_LIMITER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RateLimiterAdapter<`register:${string}` | `login:${string}` | `enable2fa:${string}` | `verify2fa:${string}` | `disable2fa:${string}` | `pwreset-req:${string}` | `pwreset-verify:${string}` | `pwreset:${string}` | `change-password:${string}` | `email-verify:${string}` | `verify-email:${string}` | `wallet-mutation:${string}` | `chat-room-join:${string}` | `chat-send:${string}` | `report-access-denied:${string}`>>;
99
+ REALTIME_CLIENT_AUTHORIZER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RealtimeClientAuthorizer>;
100
+ REALTIME_TRANSPORT: import("@openora/core/contracts").Token<import("@openora/core/contracts").RealtimeTransport>;
101
+ RNG_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").RngAdapter>;
102
+ SEND_EMAIL: import("@openora/core/contracts").Token<import("@openora/core/contracts").SendEmailPort>;
103
+ SESSION_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").SessionCommands>;
104
+ SMS_ADAPTER: import("@openora/core/contracts").Token<import("@openora/core/contracts").SmsAdapter>;
105
+ TAG_EVALUATION_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").TagEvaluationCommands>;
106
+ WALLET_COMMANDS: import("@openora/core/contracts").Token<import("@openora/core/contracts").WalletCommands>;
107
+ WALLET_READER: import("@openora/core/contracts").Token<import("@openora/core/contracts").WalletReader, string>;
108
+ }>) => void;
109
+ };
110
+ export default _default;
111
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/engagement/social-transfers/plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,wBA0B8C"}
@@ -0,0 +1,24 @@
1
+ import { EVENT_BUS, DRIZZLE } from '@openora/core/server';
2
+ import { CHAT_SYSTEM_WRITER, WALLET_COMMANDS, ADMIN_USER_DIRECTORY, AUDIT_WRITER, CHAT_REALTIME_TRANSPORT, CHAT_ROOM_ACCESS, CACHE, GIFT_COMMANDS, RAIN_COMMANDS, createToken, } from '@openora/core/contracts';
3
+ import { SocialTransfersService } from './service/social-transfers.service.js';
4
+ import { createSocialTransfersRouter } from './router/index.js';
5
+ const SOCIAL_TRANSFERS_SERVICE = createToken('_SocialTransfersService');
6
+ // Owns donate/gift/rain money movement for the chat command surface. Binds
7
+ // GIFT_COMMANDS and RAIN_COMMANDS so chat-commands can post/claim gifts and
8
+ // send rain without reimplementing the wallet/idempotency/limit logic - see
9
+ // this module's AGENTS.md. This module still depends on `chat` for
10
+ // CHAT_SYSTEM_WRITER/CHAT_ROOM_ACCESS/CHAT_REALTIME_TRANSPORT.publish (all
11
+ // threaded through its own db.transaction, so it must own them directly) -
12
+ // but it never queries chat's presence tracking: chat-commands resolves
13
+ // online recipients and passes them into RAIN_COMMANDS.sendRain.
14
+ export default {
15
+ id: 'social-transfers',
16
+ dependsOn: ['chat', 'wallet', 'iam', 'audit'],
17
+ register(ctx) {
18
+ ctx.provide(SOCIAL_TRANSFERS_SERVICE, (c) => new SocialTransfersService(c.get(DRIZZLE), c.get(CHAT_SYSTEM_WRITER), c.get(WALLET_COMMANDS), c.get(ADMIN_USER_DIRECTORY), c.get(AUDIT_WRITER), c.get(CHAT_REALTIME_TRANSPORT), c.get(EVENT_BUS), c.get(CHAT_ROOM_ACCESS), c.get(CACHE)));
19
+ ctx.provide(GIFT_COMMANDS, (c) => c.get(SOCIAL_TRANSFERS_SERVICE));
20
+ ctx.provide(RAIN_COMMANDS, (c) => c.get(SOCIAL_TRANSFERS_SERVICE));
21
+ ctx.routers.add('socialTransfers', (c) => createSocialTransfersRouter(c.get(SOCIAL_TRANSFERS_SERVICE)));
22
+ },
23
+ };
24
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/engagement/social-transfers/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,EACL,aAAa,EACb,aAAa,EACb,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,MAAM,wBAAwB,GAAG,WAAW,CAAyB,yBAAyB,CAAC,CAAC;AAEhG,2EAA2E;AAC3E,4EAA4E;AAC5E,4EAA4E;AAC5E,mEAAmE;AACnE,2EAA2E;AAC3E,2EAA2E;AAC3E,wEAAwE;AACxE,iEAAiE;AACjE,eAAe;IACb,EAAE,EAAE,kBAAkB;IACtB,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;IAC7C,QAAQ,CAAC,GAAG;QACV,GAAG,CAAC,OAAO,CACT,wBAAwB,EACxB,CAAC,CAAC,EAAE,EAAE,CACJ,IAAI,sBAAsB,CACxB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EACd,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACzB,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,EACtB,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAC3B,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,EACnB,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,EAC9B,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAChB,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,EACvB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CACb,CACJ,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAEnE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CACvC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAC7D,CAAC;IACJ,CAAC;CAC0C,CAAC"}
@@ -0,0 +1,77 @@
1
+ import { type OssContext } from '@openora/core/server';
2
+ import { SocialTransfersService } from '../service/social-transfers.service.js';
3
+ export declare function createSocialTransfersRouter(svc: SocialTransfersService): {
4
+ sendDonate: import("@orpc/server").Procedure<import("@orpc/server").MergedInitialContext<OssContext & Record<never, never>, OssContext & Record<never, never>, OssContext>, OssContext, import("zod").ZodObject<{
5
+ targetUsername: import("zod").ZodString;
6
+ amount: import("zod").ZodString;
7
+ roomId: import("zod").ZodPipe<import("zod").ZodUnion<readonly [import("zod").ZodUUID, import("zod").ZodLiteral<"__global">]>, import("zod").ZodTransform<string | null, string>>;
8
+ idempotencyKey: import("zod").ZodUUID;
9
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
10
+ id: import("zod").ZodUUID;
11
+ roomId: import("zod").ZodNullable<import("zod").ZodUUID>;
12
+ actorId: import("zod").ZodUUID;
13
+ userId: import("zod").ZodUUID;
14
+ username: import("zod").ZodString;
15
+ content: import("zod").ZodString;
16
+ type: import("zod").ZodLiteral<"system">;
17
+ metadata: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
18
+ command: import("zod").ZodLiteral<"profile">;
19
+ targetUserId: import("zod").ZodUUID;
20
+ displayName: import("zod").ZodString;
21
+ level: import("zod").ZodNumber;
22
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
23
+ command: import("zod").ZodLiteral<"gift">;
24
+ giftId: import("zod").ZodUUID;
25
+ senderId: import("zod").ZodUUID;
26
+ senderUsername: import("zod").ZodString;
27
+ amount: import("zod").ZodString;
28
+ currency: import("zod").ZodString;
29
+ status: import("zod").ZodOptional<import("zod").ZodEnum<{
30
+ available: "available";
31
+ claimed: "claimed";
32
+ }>>;
33
+ claimedBy: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodUUID>>;
34
+ claimedByUsername: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
35
+ claimedAt: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
36
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
37
+ command: import("zod").ZodLiteral<"rain">;
38
+ fromUserId: import("zod").ZodUUID;
39
+ fromUsername: import("zod").ZodOptional<import("zod").ZodString>;
40
+ amount: import("zod").ZodString;
41
+ currency: import("zod").ZodString;
42
+ recipientCount: import("zod").ZodNumber;
43
+ perRecipient: import("zod").ZodString;
44
+ recipients: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
45
+ userId: import("zod").ZodUUID;
46
+ username: import("zod").ZodString;
47
+ }, import("zod/v4/core").$strip>>>;
48
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
49
+ command: import("zod").ZodLiteral<"block">;
50
+ targetUserId: import("zod").ZodUUID;
51
+ displayName: import("zod").ZodString;
52
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
53
+ command: import("zod").ZodLiteral<"unblock">;
54
+ targetUserId: import("zod").ZodUUID;
55
+ displayName: import("zod").ZodString;
56
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
57
+ command: import("zod").ZodLiteral<"ignore">;
58
+ targetUserId: import("zod").ZodUUID;
59
+ displayName: import("zod").ZodString;
60
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
61
+ command: import("zod").ZodLiteral<"unignore">;
62
+ targetUserId: import("zod").ZodUUID;
63
+ displayName: import("zod").ZodString;
64
+ }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
65
+ command: import("zod").ZodLiteral<"donate">;
66
+ senderId: import("zod").ZodOptional<import("zod").ZodUUID>;
67
+ senderUsername: import("zod").ZodOptional<import("zod").ZodString>;
68
+ recipientId: import("zod").ZodUUID;
69
+ recipientUsername: import("zod").ZodString;
70
+ amount: import("zod").ZodString;
71
+ currency: import("zod").ZodString;
72
+ }, import("zod/v4/core").$strip>], "command">;
73
+ isDeleted: import("zod").ZodBoolean;
74
+ createdAt: import("zod").ZodString;
75
+ }, import("zod/v4/core").$strip>, import("@orpc/server").MergedErrorMap<Record<never, never>, Record<never, never>>, Record<never, never>>;
76
+ };
77
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/social-transfers/router/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EACL,sBAAsB,EAUvB,MAAM,wCAAwC,CAAC;AAEhD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBtE"}
@@ -0,0 +1,25 @@
1
+ import { implement } from '@orpc/server';
2
+ import { mapErrors, getUserId } from '@openora/core/server';
3
+ import { socialTransfersContract } from '../contract/index.js';
4
+ import { CommandDisabledError, InsufficientBalanceError, ExceedsLimitError, BelowMinimumError, DonateSelfError, ChatPlayerNotFoundError, ChatCommandIdempotencyKeyReuseError, ConcurrentCommandReplayError, ChatRoomNotMemberError, } from '../service/social-transfers.service.js';
5
+ export function createSocialTransfersRouter(svc) {
6
+ const os = implement(socialTransfersContract).$context();
7
+ return os.router({
8
+ sendDonate: os.sendDonate.handler(({ input, context }) => {
9
+ const actorId = getUserId(context);
10
+ return mapErrors({
11
+ NOT_FOUND: [CommandDisabledError, ChatPlayerNotFoundError],
12
+ CONFLICT: [
13
+ InsufficientBalanceError,
14
+ ExceedsLimitError,
15
+ BelowMinimumError,
16
+ DonateSelfError,
17
+ ChatCommandIdempotencyKeyReuseError,
18
+ ConcurrentCommandReplayError,
19
+ ],
20
+ FORBIDDEN: [ChatRoomNotMemberError],
21
+ }, () => svc.sendDonate(input, actorId));
22
+ }),
23
+ });
24
+ }
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/social-transfers/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,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAEL,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,mCAAmC,EACnC,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,UAAU,2BAA2B,CAAC,GAA2B;IACrE,MAAM,EAAE,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAc,CAAC;IAErE,OAAO,EAAE,CAAC,MAAM,CAAC;QACf,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YACvD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,SAAS,CACd;gBACE,SAAS,EAAE,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;gBAC1D,QAAQ,EAAE;oBACR,wBAAwB;oBACxB,iBAAiB;oBACjB,iBAAiB;oBACjB,eAAe;oBACf,mCAAmC;oBACnC,4BAA4B;iBAC7B;gBACD,SAAS,EAAE,CAAC,sBAAsB,CAAC;aACpC,EACD,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CACrC,CAAC;QACJ,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}