@openora/core 0.4.1-canary.131 → 0.4.1-canary.133

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 (52) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/compliance/schema/index.d.ts +15 -13
  3. package/dist/compliance/schema/index.d.ts.map +1 -1
  4. package/dist/compliance/schema/index.js +13 -3
  5. package/dist/compliance/schema/index.js.map +1 -1
  6. package/dist/compliance/service/kyc.service.d.ts +35 -5
  7. package/dist/compliance/service/kyc.service.d.ts.map +1 -1
  8. package/dist/engagement/chat/schema/index.d.ts +4 -13
  9. package/dist/engagement/chat/schema/index.d.ts.map +1 -1
  10. package/dist/engagement/chat/schema/index.js +5 -2
  11. package/dist/engagement/chat/schema/index.js.map +1 -1
  12. package/dist/engagement/chat/service/chat.service.d.ts.map +1 -1
  13. package/dist/engagement/chat/service/chat.service.js +36 -13
  14. package/dist/engagement/chat/service/chat.service.js.map +1 -1
  15. package/dist/engagement/chat-commands/__tests__/migration-upgrade.int.test.js +46 -0
  16. package/dist/engagement/chat-commands/__tests__/migration-upgrade.int.test.js.map +1 -1
  17. package/dist/engagement/chat-commands/contract/index.d.ts +48 -12
  18. package/dist/engagement/chat-commands/contract/index.d.ts.map +1 -1
  19. package/dist/engagement/chat-commands/contract/index.js +6 -3
  20. package/dist/engagement/chat-commands/contract/index.js.map +1 -1
  21. package/dist/engagement/chat-commands/drizzle/migrations/0002_single_currency_command_limits.sql +45 -0
  22. package/dist/engagement/chat-commands/drizzle/migrations/meta/0002_snapshot.json +83 -0
  23. package/dist/engagement/chat-commands/drizzle/migrations/meta/_journal.json +7 -0
  24. package/dist/engagement/chat-commands/router/index.d.ts +32 -8
  25. package/dist/engagement/chat-commands/router/index.d.ts.map +1 -1
  26. package/dist/engagement/chat-commands/schema/index.d.ts +12 -10
  27. package/dist/engagement/chat-commands/schema/index.d.ts.map +1 -1
  28. package/dist/engagement/chat-commands/schema/index.js +4 -2
  29. package/dist/engagement/chat-commands/schema/index.js.map +1 -1
  30. package/dist/engagement/chat-commands/seed/index.js +3 -3
  31. package/dist/engagement/chat-commands/seed/index.js.map +1 -1
  32. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js +11 -0
  33. package/dist/engagement/chat-commands/service/__tests__/chat-commands.service.test.js.map +1 -1
  34. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts +8 -2
  35. package/dist/engagement/chat-commands/service/chat-commands.service.d.ts.map +1 -1
  36. package/dist/pam/tag/schema/index.d.ts +4 -14
  37. package/dist/pam/tag/schema/index.d.ts.map +1 -1
  38. package/dist/pam/tag/schema/index.js +4 -2
  39. package/dist/pam/tag/schema/index.js.map +1 -1
  40. package/dist/server/db/__tests__/zod-jsonb.test.d.ts +2 -0
  41. package/dist/server/db/__tests__/zod-jsonb.test.d.ts.map +1 -0
  42. package/dist/server/db/__tests__/zod-jsonb.test.js +43 -0
  43. package/dist/server/db/__tests__/zod-jsonb.test.js.map +1 -0
  44. package/dist/server/db/index.d.ts +1 -0
  45. package/dist/server/db/index.d.ts.map +1 -1
  46. package/dist/server/db/index.js +1 -0
  47. package/dist/server/db/index.js.map +1 -1
  48. package/dist/server/db/zod-jsonb.d.ts +52 -0
  49. package/dist/server/db/zod-jsonb.d.ts.map +1 -0
  50. package/dist/server/db/zod-jsonb.js +52 -0
  51. package/dist/server/db/zod-jsonb.js.map +1 -0
  52. package/package.json +1 -1
@@ -0,0 +1,83 @@
1
+ {
2
+ "id": "49f9b886-c34f-4841-8218-9dbde1bcdd06",
3
+ "prevId": "87c4c011-02ca-4e04-a90d-f7f8f169cd28",
4
+ "version": "7",
5
+ "dialect": "postgresql",
6
+ "tables": {
7
+ "public.chat_command_config": {
8
+ "name": "chat_command_config",
9
+ "schema": "",
10
+ "columns": {
11
+ "id": {
12
+ "name": "id",
13
+ "type": "uuid",
14
+ "primaryKey": true,
15
+ "notNull": true,
16
+ "default": "gen_random_uuid()"
17
+ },
18
+ "key": {
19
+ "name": "key",
20
+ "type": "text",
21
+ "primaryKey": false,
22
+ "notNull": true
23
+ },
24
+ "enabled": {
25
+ "name": "enabled",
26
+ "type": "boolean",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "default": true
30
+ },
31
+ "label": {
32
+ "name": "label",
33
+ "type": "text",
34
+ "primaryKey": false,
35
+ "notNull": true
36
+ },
37
+ "description": {
38
+ "name": "description",
39
+ "type": "text",
40
+ "primaryKey": false,
41
+ "notNull": false
42
+ },
43
+ "config": {
44
+ "name": "config",
45
+ "type": "jsonb",
46
+ "primaryKey": false,
47
+ "notNull": false
48
+ },
49
+ "updated_at": {
50
+ "name": "updated_at",
51
+ "type": "timestamp with time zone",
52
+ "primaryKey": false,
53
+ "notNull": true,
54
+ "default": "now()"
55
+ }
56
+ },
57
+ "indexes": {},
58
+ "foreignKeys": {},
59
+ "compositePrimaryKeys": {},
60
+ "uniqueConstraints": {
61
+ "chat_command_config_key_unique": {
62
+ "name": "chat_command_config_key_unique",
63
+ "columns": ["key"],
64
+ "nullsNotDistinct": false
65
+ }
66
+ },
67
+ "policies": {},
68
+ "checkConstraints": {},
69
+ "isRLSEnabled": false
70
+ }
71
+ },
72
+ "enums": {},
73
+ "schemas": {},
74
+ "views": {},
75
+ "sequences": {},
76
+ "roles": {},
77
+ "policies": {},
78
+ "_meta": {
79
+ "columns": {},
80
+ "schemas": {},
81
+ "tables": {}
82
+ }
83
+ }
@@ -15,6 +15,13 @@
15
15
  "when": 1787009522084,
16
16
  "tag": "0001_sturdy_barracuda",
17
17
  "breakpoints": true
18
+ },
19
+ {
20
+ "idx": 2,
21
+ "version": "7",
22
+ "when": 1788717005097,
23
+ "tag": "0002_single_currency_command_limits",
24
+ "breakpoints": true
18
25
  }
19
26
  ]
20
27
  }
@@ -17,8 +17,14 @@ export declare function createChatCommandsRouter(svc: ChatCommandsService, admin
17
17
  label: import("zod").ZodString;
18
18
  description: import("zod").ZodNullable<import("zod").ZodString>;
19
19
  config: import("zod").ZodNullable<import("zod").ZodObject<{
20
- maxAmount: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
21
- minAmount: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
20
+ maxAmount: import("zod").ZodOptional<import("zod").ZodObject<{
21
+ currency: import("zod").ZodString;
22
+ amount: import("zod").ZodString;
23
+ }, import("zod/v4/core").$strip>>;
24
+ minAmount: import("zod").ZodOptional<import("zod").ZodObject<{
25
+ currency: import("zod").ZodString;
26
+ amount: import("zod").ZodString;
27
+ }, import("zod/v4/core").$strip>>;
22
28
  maxRecipients: import("zod").ZodOptional<import("zod").ZodNumber>;
23
29
  }, import("zod/v4/core").$strip>>;
24
30
  updatedAt: import("zod").ZodISODateTime;
@@ -51,8 +57,14 @@ export declare function createChatCommandsRouter(svc: ChatCommandsService, admin
51
57
  label: import("zod").ZodString;
52
58
  description: import("zod").ZodNullable<import("zod").ZodString>;
53
59
  config: import("zod").ZodNullable<import("zod").ZodObject<{
54
- maxAmount: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
55
- minAmount: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
60
+ maxAmount: import("zod").ZodOptional<import("zod").ZodObject<{
61
+ currency: import("zod").ZodString;
62
+ amount: import("zod").ZodString;
63
+ }, import("zod/v4/core").$strip>>;
64
+ minAmount: import("zod").ZodOptional<import("zod").ZodObject<{
65
+ currency: import("zod").ZodString;
66
+ amount: import("zod").ZodString;
67
+ }, import("zod/v4/core").$strip>>;
56
68
  maxRecipients: import("zod").ZodOptional<import("zod").ZodNumber>;
57
69
  }, import("zod/v4/core").$strip>>;
58
70
  updatedAt: import("zod").ZodISODateTime;
@@ -75,8 +87,14 @@ export declare function createChatCommandsRouter(svc: ChatCommandsService, admin
75
87
  }>;
76
88
  enabled: import("zod").ZodBoolean;
77
89
  config: import("zod").ZodOptional<import("zod").ZodObject<{
78
- maxAmount: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
79
- minAmount: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
90
+ maxAmount: import("zod").ZodOptional<import("zod").ZodObject<{
91
+ currency: import("zod").ZodString;
92
+ amount: import("zod").ZodString;
93
+ }, import("zod/v4/core").$strip>>;
94
+ minAmount: import("zod").ZodOptional<import("zod").ZodObject<{
95
+ currency: import("zod").ZodString;
96
+ amount: import("zod").ZodString;
97
+ }, import("zod/v4/core").$strip>>;
80
98
  maxRecipients: import("zod").ZodOptional<import("zod").ZodNumber>;
81
99
  }, import("zod/v4/core").$strip>>;
82
100
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
@@ -95,8 +113,14 @@ export declare function createChatCommandsRouter(svc: ChatCommandsService, admin
95
113
  label: import("zod").ZodString;
96
114
  description: import("zod").ZodNullable<import("zod").ZodString>;
97
115
  config: import("zod").ZodNullable<import("zod").ZodObject<{
98
- maxAmount: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
99
- minAmount: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodString>>;
116
+ maxAmount: import("zod").ZodOptional<import("zod").ZodObject<{
117
+ currency: import("zod").ZodString;
118
+ amount: import("zod").ZodString;
119
+ }, import("zod/v4/core").$strip>>;
120
+ minAmount: import("zod").ZodOptional<import("zod").ZodObject<{
121
+ currency: import("zod").ZodString;
122
+ amount: import("zod").ZodString;
123
+ }, import("zod/v4/core").$strip>>;
100
124
  maxRecipients: import("zod").ZodOptional<import("zod").ZodNumber>;
101
125
  }, import("zod/v4/core").$strip>>;
102
126
  updatedAt: import("zod").ZodISODateTime;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/router/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBxF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/router/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAI1E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBxF"}
@@ -90,14 +90,20 @@ export declare const chatCommandConfig: import("drizzle-orm/pg-core").PgTableWit
90
90
  config: import("drizzle-orm/pg-core").PgColumn<{
91
91
  name: "config";
92
92
  tableName: "chat_command_config";
93
- dataType: "json";
94
- columnType: "PgJsonb";
93
+ dataType: "custom";
94
+ columnType: "PgCustomColumn";
95
95
  data: {
96
- maxAmount?: Record<string, string> | undefined;
97
- minAmount?: Record<string, string> | undefined;
96
+ maxAmount?: {
97
+ currency: string;
98
+ amount: string;
99
+ } | undefined;
100
+ minAmount?: {
101
+ currency: string;
102
+ amount: string;
103
+ } | undefined;
98
104
  maxRecipients?: number | undefined;
99
105
  };
100
- driverParam: unknown;
106
+ driverParam: string;
101
107
  notNull: false;
102
108
  hasDefault: false;
103
109
  isPrimaryKey: false;
@@ -108,11 +114,7 @@ export declare const chatCommandConfig: import("drizzle-orm/pg-core").PgTableWit
108
114
  identity: undefined;
109
115
  generated: undefined;
110
116
  }, {}, {
111
- $type: {
112
- maxAmount?: Record<string, string> | undefined;
113
- minAmount?: Record<string, string> | undefined;
114
- maxRecipients?: number | undefined;
115
- };
117
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
116
118
  }>;
117
119
  updatedAt: import("drizzle-orm/pg-core").PgColumn<{
118
120
  name: "updatedAt";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/schema/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY7B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/schema/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY7B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,YAAY,CAAC"}
@@ -1,11 +1,13 @@
1
- import { pgTable, text, boolean, jsonb, timestamp, uuid, unique } from 'drizzle-orm/pg-core';
1
+ import { pgTable, text, boolean, timestamp, uuid, unique } from 'drizzle-orm/pg-core';
2
+ import { zodJsonb } from '@openora/core/server';
3
+ import { CommandConfigSchema } from '../contract/index.js';
2
4
  export const chatCommandConfig = pgTable('chat_command_config', {
3
5
  id: uuid().primaryKey().defaultRandom(),
4
6
  key: text().notNull(),
5
7
  enabled: boolean().notNull().default(true),
6
8
  label: text().notNull(),
7
9
  description: text(),
8
- config: jsonb().$type(),
10
+ config: zodJsonb(CommandConfigSchema, 'chat_command_config.config')(),
9
11
  updatedAt: timestamp({ withTimezone: true }).notNull().defaultNow(),
10
12
  }, (t) => [unique('chat_command_config_key_unique').on(t.key)]);
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7F,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CACtC,qBAAqB,EACrB;IACE,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IACvC,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACrB,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACvB,WAAW,EAAE,IAAI,EAAE;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,EAAiB;IACtC,SAAS,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CACpE,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAC5D,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CACtC,qBAAqB,EACrB;IACE,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE;IACvC,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACrB,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC1C,KAAK,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;IACvB,WAAW,EAAE,IAAI,EAAE;IACnB,MAAM,EAAE,QAAQ,CAAC,mBAAmB,EAAE,4BAA4B,CAAC,EAAE;IACrE,SAAS,EAAE,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE;CACpE,EACD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAC5D,CAAC"}
@@ -20,21 +20,21 @@ export async function seedChatCommands(db) {
20
20
  enabled: true,
21
21
  label: 'Gift',
22
22
  description: 'Send tokens to another player',
23
- config: { minAmount: { USD: '1.00000000' } },
23
+ config: { minAmount: { currency: 'USD', amount: '1.00000000' } },
24
24
  },
25
25
  {
26
26
  key: 'rain',
27
27
  enabled: true,
28
28
  label: 'Rain',
29
29
  description: 'Split tokens among online room members',
30
- config: { minAmount: { USD: '1.00000000' }, maxRecipients: 100 },
30
+ config: { minAmount: { currency: 'USD', amount: '1.00000000' }, maxRecipients: 100 },
31
31
  },
32
32
  {
33
33
  key: 'donate',
34
34
  enabled: true,
35
35
  label: 'Donate',
36
36
  description: 'Send a direct tip to a specific player',
37
- config: { minAmount: { USD: '1.00000000' } },
37
+ config: { minAmount: { currency: 'USD', amount: '1.00000000' } },
38
38
  },
39
39
  {
40
40
  key: 'block',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/seed/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAa;IAClD,MAAM,EAAE;SACL,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC;QACN;YACE,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,uCAAuC;SACrD;QACD;YACE,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,4BAA4B;SAC1C;QACD;YACE,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,+BAA+B;YAC5C,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE;SAC7C;QACD;YACE,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,wCAAwC;YACrD,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;SACjE;QACD;YACE,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,wCAAwC;YACrD,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE;SAC7C;QACD;YACE,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,yDAAyD;SACvE;QACD;YACE,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,gEAAgE;SAC9E;QACD;YACE,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,0DAA0D;SACxE;QACD;YACE,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,iEAAiE;SAC/E;KACF,CAAC;SACD,mBAAmB,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/seed/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAa;IAClD,MAAM,EAAE;SACL,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC;QACN;YACE,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,uCAAuC;SACrD;QACD;YACE,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,4BAA4B;SAC1C;QACD;YACE,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,+BAA+B;YAC5C,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;SACjE;QACD;YACE,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,wCAAwC;YACrD,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE;SACrF;QACD;YACE,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,wCAAwC;YACrD,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;SACjE;QACD;YACE,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,yDAAyD;SACvE;QACD;YACE,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,gEAAgE;SAC9E;QACD;YACE,GAAG,EAAE,QAAQ;YACb,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,0DAA0D;SACxE;QACD;YACE,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,iEAAiE;SAC/E;KACF,CAAC;SACD,mBAAmB,EAAE,CAAC;AAC3B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { describe, expect, it, vi } from 'vitest';
2
2
  import { mock, makeDrizzle } from '../../../../testing/mock.js';
3
3
  import { ChatCommandsService } from '../chat-commands.service.js';
4
+ import { ChatCommandDescriptorSchema } from '../../contract/index.js';
4
5
  const ENABLED_ROW = {
5
6
  key: 'gift',
6
7
  enabled: true,
@@ -52,6 +53,16 @@ describe('ChatCommandsService command registry', () => {
52
53
  expect(result.items).toHaveLength(2);
53
54
  expect(result.total).toBe(2);
54
55
  });
56
+ it('emits a descriptor the route contract accepts for a single-currency limit', async () => {
57
+ const config = { minAmount: { currency: 'USD', amount: '1.00000000' }, maxRecipients: 100 };
58
+ const result = await makeService([[{ ...ENABLED_ROW, config }], [{ n: 1 }]]).adminListCommands({
59
+ page: 1,
60
+ limit: 10,
61
+ sortBy: 'key',
62
+ sortOrder: 'asc',
63
+ });
64
+ expect(ChatCommandDescriptorSchema.parse(result.items[0]).config).toEqual(config);
65
+ });
55
66
  });
56
67
  describe('ChatCommandsService searchMentions', () => {
57
68
  it('matches a player who is not online for a typed query', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"chat-commands.service.test.js","sourceRoot":"","sources":["../../../../../src/engagement/chat-commands/service/__tests__/chat-commands.service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-commands.service.test.js","sourceRoot":"","sources":["../../../../../src/engagement/chat-commands/service/__tests__/chat-commands.service.test.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,14 @@ export declare class ChatCommandsService {
25
25
  label: string;
26
26
  description: string | null;
27
27
  config: {
28
- maxAmount?: Record<string, string> | undefined;
29
- minAmount?: Record<string, string> | undefined;
28
+ maxAmount?: {
29
+ currency: string;
30
+ amount: string;
31
+ } | undefined;
32
+ minAmount?: {
33
+ currency: string;
34
+ amount: string;
35
+ } | undefined;
30
36
  maxRecipients?: number | undefined;
31
37
  } | null;
32
38
  updatedAt: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-commands.service.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/service/chat-commands.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAIf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,oBAAoB;QAhB9B,CAAC;CAgBgE,CAAC;AAoBrE,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAJL,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,kBAAkB,EAC7B,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,cAAc;IAGlC,YAAY,CAAC,eAAe,UAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAQvE,iBAAiB,CAAC,EACtB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,GACV,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,kBAAkB,CAAC;QAC3B,SAAS,EAAE,SAAS,CAAC;KACtB;;;;;;;;;;;;;;;;;IAeK,kBAAkB,CACtB,KAAK,EAAE;QAAE,GAAG,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,aAAa,CAAA;KAAE,EACzE,OAAO,EAAE,IAAI,GACZ,OAAO,CAAC,qBAAqB,CAAC;IAgC3B,cAAc,CAAC,EACnB,CAAC,EACD,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE;QACD,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,IAAI,CAAC;KAChB;;;;YA+Da,gBAAgB;CAO/B"}
1
+ {"version":3,"file":"chat-commands.service.d.ts","sourceRoot":"","sources":["../../../../src/engagement/chat-commands/service/chat-commands.service.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAIf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,oBAAoB;QAhB9B,CAAC;CAgBgE,CAAC;AAoBrE,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAJL,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,kBAAkB,EAC7B,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAE,iBAAiB,EAC5B,KAAK,EAAE,cAAc;IAGlC,YAAY,CAAC,eAAe,UAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAQvE,iBAAiB,CAAC,EACtB,IAAI,EACJ,KAAK,EACL,MAAM,EACN,SAAS,GACV,EAAE;QACD,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,kBAAkB,CAAC;QAC3B,SAAS,EAAE,SAAS,CAAC;KACtB;;;;;;;;;;;;;;;;;;;;;;;IAeK,kBAAkB,CACtB,KAAK,EAAE;QAAE,GAAG,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,aAAa,CAAA;KAAE,EACzE,OAAO,EAAE,IAAI,GACZ,OAAO,CAAC,qBAAqB,CAAC;IAgC3B,cAAc,CAAC,EACnB,CAAC,EACD,KAAK,EACL,MAAM,EACN,QAAQ,GACT,EAAE;QACD,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;QACpB,QAAQ,EAAE,IAAI,CAAC;KAChB;;;;YA+Da,gBAAgB;CAO/B"}
@@ -201,8 +201,8 @@ export declare const playerTag: import("drizzle-orm/pg-core").PgTableWithColumns
201
201
  assignMetadata: import("drizzle-orm/pg-core").PgColumn<{
202
202
  name: "assignMetadata";
203
203
  tableName: "player_tag";
204
- dataType: "json";
205
- columnType: "PgJsonb";
204
+ dataType: "custom";
205
+ columnType: "PgCustomColumn";
206
206
  data: {
207
207
  amountBreach: {
208
208
  amount: string;
@@ -214,7 +214,7 @@ export declare const playerTag: import("drizzle-orm/pg-core").PgTableWithColumns
214
214
  thresholdDays: number;
215
215
  } | null;
216
216
  };
217
- driverParam: unknown;
217
+ driverParam: string;
218
218
  notNull: false;
219
219
  hasDefault: false;
220
220
  isPrimaryKey: false;
@@ -225,17 +225,7 @@ export declare const playerTag: import("drizzle-orm/pg-core").PgTableWithColumns
225
225
  identity: undefined;
226
226
  generated: undefined;
227
227
  }, {}, {
228
- $type: {
229
- amountBreach: {
230
- amount: string;
231
- threshold: string;
232
- } | null;
233
- countBreach: {
234
- count: number;
235
- thresholdCount: number;
236
- thresholdDays: number;
237
- } | null;
238
- };
228
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
239
229
  }>;
240
230
  removedAt: import("drizzle-orm/pg-core").PgColumn<{
241
231
  name: "removedAt";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pam/tag/schema/index.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,yBAAyB,+DAA4D,CAAC;AACnG,eAAO,MAAM,UAAU,2SAA6B,CAAC;AAErD,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQd,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCrB,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,YAAY,CAAC;AAC1C,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC;AAEtD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBlB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/pam/tag/schema/index.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,yBAAyB,+DAA4D,CAAC;AACnG,eAAO,MAAM,UAAU,2SAA6B,CAAC;AAErD,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQd,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCrB,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,YAAY,CAAC;AAC1C,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC;AAEtD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBlB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,YAAY,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { tagAssignRemoveSource, tagKeys } from '@openora/core/contracts';
2
2
  import { isNull } from 'drizzle-orm';
3
- import { pgTable, uuid, text, timestamp, index, uniqueIndex, boolean, pgEnum, integer, decimal, jsonb, } from 'drizzle-orm/pg-core';
3
+ import { pgTable, uuid, text, timestamp, index, uniqueIndex, boolean, pgEnum, integer, decimal, } from 'drizzle-orm/pg-core';
4
+ import { PlayerTagAssignMetadataSchema } from '../contract/player-tag-assign-metadata.js';
5
+ import { zodJsonb } from '@openora/core/server';
4
6
  export const tagAssignRemoveSourceEnum = pgEnum('tag_assign_remove_source', tagAssignRemoveSource);
5
7
  export const tagKeyEnum = pgEnum('tag_key', tagKeys);
6
8
  export const tag = pgTable('tag', {
@@ -24,7 +26,7 @@ export const playerTag = pgTable('player_tag', {
24
26
  assignReason: text().notNull(),
25
27
  assignActor: tagAssignRemoveSourceEnum().notNull(),
26
28
  assignActorUserId: uuid() /* Potential FKey - user; null = system actor */,
27
- assignMetadata: jsonb().$type(),
29
+ assignMetadata: zodJsonb(PlayerTagAssignMetadataSchema, 'player_tag.assign_metadata')(),
28
30
  /* Removal data */
29
31
  removedAt: timestamp({ withTimezone: true }),
30
32
  removalReason: text(),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pam/tag/schema/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/pam/tag/schema/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=zod-jsonb.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-jsonb.test.d.ts","sourceRoot":"","sources":["../../../../src/server/db/__tests__/zod-jsonb.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import * as z from 'zod';
3
+ import { pgTable, uuid } from 'drizzle-orm/pg-core';
4
+ import { zodJsonb } from '../zod-jsonb.js';
5
+ const ConfigSchema = z.object({ minAmount: z.record(z.string(), z.string()).optional() });
6
+ const table = pgTable('probe', {
7
+ id: uuid().primaryKey(),
8
+ config: zodJsonb(ConfigSchema, 'probe.config')(),
9
+ });
10
+ const column = table.config;
11
+ describe('zodJsonb', () => {
12
+ it('keeps the column a jsonb column', () => {
13
+ expect(column.getSQLType()).toBe('jsonb');
14
+ });
15
+ it('reads a value the schema accepts', () => {
16
+ expect(column.mapFromDriverValue({ minAmount: { USD: '1.00' } })).toEqual({
17
+ minAmount: { USD: '1.00' },
18
+ });
19
+ });
20
+ // A shape an earlier release wrote and this one no longer accepts. One such row must cost
21
+ // its own config, not the whole response it was selected into.
22
+ it('reads a value the schema rejects as null', () => {
23
+ expect(column.mapFromDriverValue({ minAmount: '1.00000000' })).toBeNull();
24
+ });
25
+ // A compliance column reads as absent on drift like any other, but the drift is reported
26
+ // rather than logged: an empty risk-signal field must not look like a clean player.
27
+ it('reports rather than warns for a column marked severity error', () => {
28
+ const loud = pgTable('loud_probe', {
29
+ id: uuid().primaryKey(),
30
+ signals: zodJsonb(z.object({ vpn: z.boolean() }), 'loud_probe.signals', {
31
+ severity: 'error',
32
+ })(),
33
+ });
34
+ expect(loud.signals.mapFromDriverValue({ vpn: 'yes' })).toBeNull();
35
+ });
36
+ it('writes a value the schema accepts as json the driver can bind', () => {
37
+ expect(column.mapToDriverValue({ minAmount: { USD: '1.00' } })).toBe('{"minAmount":{"USD":"1.00"}}');
38
+ });
39
+ it('refuses to write a value the schema rejects', () => {
40
+ expect(() => column.mapToDriverValue({ minAmount: '1.00000000' })).toThrow();
41
+ });
42
+ });
43
+ //# sourceMappingURL=zod-jsonb.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-jsonb.test.js","sourceRoot":"","sources":["../../../../src/server/db/__tests__/zod-jsonb.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAE1F,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE;IAC7B,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;IACvB,MAAM,EAAE,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE;CACjD,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAE5B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;YACxE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,0FAA0F;IAC1F,+DAA+D;IAC/D,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,yFAAyF;IACzF,oFAAoF;IACpF,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE;YACjC,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE;YACvB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,oBAAoB,EAAE;gBACtE,QAAQ,EAAE,OAAO;aAClB,CAAC,EAAE;SACL,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAClE,8BAA8B,CAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { DrizzleService, DRIZZLE } from './drizzle.service.js';
2
2
  export { createDrizzleDb, type DrizzleDb, type DrizzleTx } from './drizzle.js';
3
+ export { zodJsonb } from './zod-jsonb.js';
3
4
  export { findOneOrThrow, pageToOffset, withAdvisoryXactLock, moneyToNumber, moneyEquals, moneyCompare, moneyScaleBy, moneyDivide, moneyAdd, moneySubtract, moneyFloorToScale, moneyCeilToScale, mapConcurrent, } from './query-helpers.js';
4
5
  export { eventOutbox, type EventOutboxRow } from './outbox/schema.js';
5
6
  export { DrizzleOutboxWriter } from './outbox/writer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIzE,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIzE,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { DrizzleService, DRIZZLE } from './drizzle.service.js';
2
2
  export { createDrizzleDb } from './drizzle.js';
3
+ export { zodJsonb } from './zod-jsonb.js';
3
4
  export { findOneOrThrow, pageToOffset, withAdvisoryXactLock, moneyToNumber, moneyEquals, moneyCompare, moneyScaleBy, moneyDivide, moneyAdd, moneySubtract, moneyFloorToScale, moneyCeilToScale, mapConcurrent, } from './query-helpers.js';
4
5
  // Transactional outbox - writer binds atomically with the state change; relay publishes to MESSAGE_BROKER. See ADR-0016.
5
6
  export { eventOutbox } from './outbox/schema.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAkC,MAAM,cAAc,CAAC;AAC/E,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,yHAAyH;AACzH,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAEzE,8FAA8F;AAC9F,sGAAsG;AACtG,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAkC,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,yHAAyH;AACzH,OAAO,EAAE,WAAW,EAAuB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,WAAW,EAA2B,MAAM,mBAAmB,CAAC;AAEzE,8FAA8F;AAC9F,sGAAsG;AACtG,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type * as z from 'zod';
2
+ /**
3
+ * A jsonb column whose TypeScript type is inferred from its Zod schema and enforced at
4
+ * both ends of the driver, rather than asserted by `jsonb().$type<T>()`.
5
+ *
6
+ * `$type<T>()` is a cast Postgres never checks, so the column's declared shape and the
7
+ * shape actually stored drift apart silently: rows written by an earlier release outlive
8
+ * the contract that produced them, and the mismatch only surfaces when a route tries to
9
+ * serialize one and fails output validation - taking every other row in that response
10
+ * down with it.
11
+ *
12
+ * Writes parse and throw, because a value the current contract cannot express has no
13
+ * business entering the column - that is where the drift is cheap to fix. Reads degrade
14
+ * to `null` and log, because a row already in the table is a fact: refusing to serve it
15
+ * would trade one unreadable field for a dead endpoint.
16
+ *
17
+ * `severity: 'error'` is for a column whose absence changes a decision rather than a
18
+ * rendering - a compliance signal an operator reads before approving a player. The value
19
+ * still degrades to null, because failing the read would take an admin's whole queue down
20
+ * (and the player's own status page with it, which reads the same row), but the drift is
21
+ * logged at error level and so reaches the bound error tracker instead of sitting in a
22
+ * warn line nobody greps. An empty compliance field must never look like a quiet fact.
23
+ */
24
+ export declare function zodJsonb<S extends z.ZodType>(schema: S, columnName: string, { severity }?: {
25
+ severity?: 'warn' | 'error';
26
+ }): {
27
+ (): import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
28
+ name: "";
29
+ dataType: "custom";
30
+ columnType: "PgCustomColumn";
31
+ data: z.core.output<S>;
32
+ driverParam: string;
33
+ enumValues: undefined;
34
+ }>;
35
+ <TConfig extends Record<string, any>>(fieldConfig?: TConfig | undefined): import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
36
+ name: "";
37
+ dataType: "custom";
38
+ columnType: "PgCustomColumn";
39
+ data: z.core.output<S>;
40
+ driverParam: string;
41
+ enumValues: undefined;
42
+ }>;
43
+ <TName extends string>(dbName: TName, fieldConfig?: unknown): import("drizzle-orm/pg-core").PgCustomColumnBuilder<{
44
+ name: TName;
45
+ dataType: "custom";
46
+ columnType: "PgCustomColumn";
47
+ data: z.core.output<S>;
48
+ driverParam: string;
49
+ enumValues: undefined;
50
+ }>;
51
+ };
52
+ //# sourceMappingURL=zod-jsonb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-jsonb.d.ts","sourceRoot":"","sources":["../../../src/server/db/zod-jsonb.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC;AAK9B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAC1C,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,MAAM,EAClB,EAAE,QAAiB,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAO;;;;;;;;;;;;;;;;;;;;;;;;;EAyB5D"}