@atproto/ozone 0.1.150 → 0.1.151

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 (110) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/api/moderation/queryEvents.d.ts.map +1 -1
  3. package/dist/api/moderation/queryEvents.js +2 -1
  4. package/dist/api/moderation/queryEvents.js.map +1 -1
  5. package/dist/context.d.ts +3 -0
  6. package/dist/context.d.ts.map +1 -1
  7. package/dist/context.js +7 -1
  8. package/dist/context.js.map +1 -1
  9. package/dist/daemon/context.d.ts +3 -0
  10. package/dist/daemon/context.d.ts.map +1 -1
  11. package/dist/daemon/context.js +11 -1
  12. package/dist/daemon/context.js.map +1 -1
  13. package/dist/daemon/index.d.ts +1 -0
  14. package/dist/daemon/index.d.ts.map +1 -1
  15. package/dist/daemon/index.js +3 -1
  16. package/dist/daemon/index.js.map +1 -1
  17. package/dist/daemon/strike-expiry-processor.d.ts +18 -0
  18. package/dist/daemon/strike-expiry-processor.d.ts.map +1 -0
  19. package/dist/daemon/strike-expiry-processor.js +111 -0
  20. package/dist/daemon/strike-expiry-processor.js.map +1 -0
  21. package/dist/db/migrations/20251008T120000000Z-add-strike-system.d.ts +4 -0
  22. package/dist/db/migrations/20251008T120000000Z-add-strike-system.d.ts.map +1 -0
  23. package/dist/db/migrations/20251008T120000000Z-add-strike-system.js +75 -0
  24. package/dist/db/migrations/20251008T120000000Z-add-strike-system.js.map +1 -0
  25. package/dist/db/migrations/index.d.ts +1 -0
  26. package/dist/db/migrations/index.d.ts.map +1 -1
  27. package/dist/db/migrations/index.js +2 -1
  28. package/dist/db/migrations/index.js.map +1 -1
  29. package/dist/db/schema/account_strike.d.ts +12 -0
  30. package/dist/db/schema/account_strike.d.ts.map +1 -0
  31. package/dist/db/schema/account_strike.js +5 -0
  32. package/dist/db/schema/account_strike.js.map +1 -0
  33. package/dist/db/schema/index.d.ts +3 -1
  34. package/dist/db/schema/index.d.ts.map +1 -1
  35. package/dist/db/schema/index.js.map +1 -1
  36. package/dist/db/schema/job_cursor.d.ts +11 -0
  37. package/dist/db/schema/job_cursor.d.ts.map +1 -0
  38. package/dist/db/schema/job_cursor.js +5 -0
  39. package/dist/db/schema/job_cursor.js.map +1 -0
  40. package/dist/db/schema/moderation_event.d.ts +3 -0
  41. package/dist/db/schema/moderation_event.d.ts.map +1 -1
  42. package/dist/db/schema/moderation_event.js.map +1 -1
  43. package/dist/lexicon/lexicons.d.ts +176 -0
  44. package/dist/lexicon/lexicons.d.ts.map +1 -1
  45. package/dist/lexicon/lexicons.js +88 -0
  46. package/dist/lexicon/lexicons.js.map +1 -1
  47. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +35 -0
  48. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  49. package/dist/lexicon/types/tools/ozone/moderation/defs.js +9 -0
  50. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  51. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.d.ts +2 -0
  52. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.d.ts.map +1 -1
  53. package/dist/lexicon/types/tools/ozone/moderation/queryEvents.js.map +1 -1
  54. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +2 -0
  55. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
  56. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.js.map +1 -1
  57. package/dist/mod-service/index.d.ts +9 -3
  58. package/dist/mod-service/index.d.ts.map +1 -1
  59. package/dist/mod-service/index.js +58 -5
  60. package/dist/mod-service/index.js.map +1 -1
  61. package/dist/mod-service/status.d.ts +44 -2
  62. package/dist/mod-service/status.d.ts.map +1 -1
  63. package/dist/mod-service/status.js +7 -0
  64. package/dist/mod-service/status.js.map +1 -1
  65. package/dist/mod-service/strike.d.ts +19 -0
  66. package/dist/mod-service/strike.d.ts.map +1 -0
  67. package/dist/mod-service/strike.js +86 -0
  68. package/dist/mod-service/strike.js.map +1 -0
  69. package/dist/mod-service/types.d.ts +4 -0
  70. package/dist/mod-service/types.d.ts.map +1 -1
  71. package/dist/mod-service/types.js.map +1 -1
  72. package/dist/mod-service/views.d.ts.map +1 -1
  73. package/dist/mod-service/views.js +20 -4
  74. package/dist/mod-service/views.js.map +1 -1
  75. package/dist/setting/constants.d.ts +1 -0
  76. package/dist/setting/constants.d.ts.map +1 -1
  77. package/dist/setting/constants.js +2 -1
  78. package/dist/setting/constants.js.map +1 -1
  79. package/dist/setting/validators.d.ts.map +1 -1
  80. package/dist/setting/validators.js +179 -0
  81. package/dist/setting/validators.js.map +1 -1
  82. package/package.json +3 -3
  83. package/src/api/moderation/queryEvents.ts +2 -0
  84. package/src/context.ts +20 -11
  85. package/src/daemon/context.ts +15 -1
  86. package/src/daemon/index.ts +1 -0
  87. package/src/daemon/strike-expiry-processor.ts +111 -0
  88. package/src/db/migrations/20251008T120000000Z-add-strike-system.ts +87 -0
  89. package/src/db/migrations/index.ts +1 -0
  90. package/src/db/schema/account_strike.ts +13 -0
  91. package/src/db/schema/index.ts +4 -0
  92. package/src/db/schema/job_cursor.ts +13 -0
  93. package/src/db/schema/moderation_event.ts +3 -0
  94. package/src/lexicon/lexicons.ts +103 -0
  95. package/src/lexicon/types/tools/ozone/moderation/defs.ts +44 -0
  96. package/src/lexicon/types/tools/ozone/moderation/queryEvents.ts +2 -0
  97. package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +2 -0
  98. package/src/mod-service/index.ts +69 -2
  99. package/src/mod-service/status.ts +9 -0
  100. package/src/mod-service/strike.ts +96 -0
  101. package/src/mod-service/types.ts +6 -0
  102. package/src/mod-service/views.ts +25 -4
  103. package/src/setting/constants.ts +1 -0
  104. package/src/setting/validators.ts +231 -1
  105. package/tests/__snapshots__/account-strikes.test.ts.snap +159 -0
  106. package/tests/account-strikes.test.ts +184 -0
  107. package/tests/query-labels.test.ts +1 -0
  108. package/tests/strike-expiry-processor.test.ts +299 -0
  109. package/tsconfig.build.tsbuildinfo +1 -1
  110. package/tsconfig.tests.tsbuildinfo +1 -1
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.up = up;
4
+ exports.down = down;
5
+ const kysely_1 = require("kysely");
6
+ async function up(db) {
7
+ await db.schema
8
+ .alterTable('moderation_event')
9
+ .addColumn('severityLevel', 'varchar')
10
+ .execute();
11
+ await db.schema
12
+ .alterTable('moderation_event')
13
+ .addColumn('strikeCount', 'integer')
14
+ .execute();
15
+ await db.schema
16
+ .alterTable('moderation_event')
17
+ .addColumn('strikeExpiresAt', 'varchar')
18
+ .execute();
19
+ await db.schema
20
+ .createTable('account_strike')
21
+ .addColumn('did', 'text', (col) => col.primaryKey())
22
+ .addColumn('firstStrikeAt', 'varchar')
23
+ .addColumn('lastStrikeAt', 'varchar')
24
+ .addColumn('activeStrikeCount', 'integer', (col) => col.notNull().defaultTo(0))
25
+ .addColumn('totalStrikeCount', 'integer', (col) => col.notNull().defaultTo(0))
26
+ .execute();
27
+ await db.schema
28
+ .createTable('job_cursor')
29
+ .addColumn('job', 'text', (col) => col.primaryKey())
30
+ .addColumn('cursor', 'text')
31
+ .addColumn('updatedAt', 'text', (col) => col.defaultTo((0, kysely_1.sql) `now()`).notNull())
32
+ .execute();
33
+ // This supports fast look up for background job that aggregates strike data per subjectDid
34
+ await db.schema
35
+ .createIndex('moderation_event_subject_did_strike_count_idx')
36
+ .on('moderation_event')
37
+ .columns(['subjectDid', 'strikeCount'])
38
+ .execute();
39
+ // This supports fast lookup in the background job that needs to find strikes that have expired
40
+ await (0, kysely_1.sql) `
41
+ CREATE INDEX moderation_event_strike_expires_at_strike_count_idx
42
+ ON moderation_event ("strikeExpiresAt", "strikeCount")
43
+ WHERE "strikeExpiresAt" IS NOT NULL AND "strikeCount" IS NOT NULL
44
+ `.execute(db);
45
+ // for sorting and filtering by active strike count
46
+ await db.schema
47
+ .createIndex('account_strike_active_count_idx')
48
+ .on('account_strike')
49
+ .column('activeStrikeCount')
50
+ .execute();
51
+ }
52
+ async function down(db) {
53
+ await db.schema
54
+ .dropIndex('moderation_event_subject_did_strike_count_idx')
55
+ .execute();
56
+ await db.schema
57
+ .dropIndex('moderation_event_strike_expires_at_strike_count_idx')
58
+ .execute();
59
+ await db.schema.dropIndex('account_strike_active_count_idx').execute();
60
+ await db.schema.dropTable('account_strike').execute();
61
+ await db.schema.dropTable('job_cursor').execute();
62
+ await db.schema
63
+ .alterTable('moderation_event')
64
+ .dropColumn('severityLevel')
65
+ .execute();
66
+ await db.schema
67
+ .alterTable('moderation_event')
68
+ .dropColumn('strikeCount')
69
+ .execute();
70
+ await db.schema
71
+ .alterTable('moderation_event')
72
+ .dropColumn('strikeExpiresAt')
73
+ .execute();
74
+ }
75
+ //# sourceMappingURL=20251008T120000000Z-add-strike-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251008T120000000Z-add-strike-system.js","sourceRoot":"","sources":["../../../src/db/migrations/20251008T120000000Z-add-strike-system.ts"],"names":[],"mappings":";;AAEA,gBAwDC;AAED,oBA0BC;AAtFD,mCAAoC;AAE7B,KAAK,UAAU,EAAE,CAAC,EAAmB;IAC1C,MAAM,EAAE,CAAC,MAAM;SACZ,UAAU,CAAC,kBAAkB,CAAC;SAC9B,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;SACrC,OAAO,EAAE,CAAA;IACZ,MAAM,EAAE,CAAC,MAAM;SACZ,UAAU,CAAC,kBAAkB,CAAC;SAC9B,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC;SACnC,OAAO,EAAE,CAAA;IACZ,MAAM,EAAE,CAAC,MAAM;SACZ,UAAU,CAAC,kBAAkB,CAAC;SAC9B,SAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC;SACvC,OAAO,EAAE,CAAA;IAEZ,MAAM,EAAE,CAAC,MAAM;SACZ,WAAW,CAAC,gBAAgB,CAAC;SAC7B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;SACnD,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC;SACrC,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC;SACpC,SAAS,CAAC,mBAAmB,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CACjD,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAC3B;SACA,SAAS,CAAC,kBAAkB,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAChD,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAC3B;SACA,OAAO,EAAE,CAAA;IAEZ,MAAM,EAAE,CAAC,MAAM;SACZ,WAAW,CAAC,YAAY,CAAC;SACzB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;SACnD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;SAC3B,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CACtC,GAAG,CAAC,SAAS,CAAC,IAAA,YAAG,EAAA,OAAO,CAAC,CAAC,OAAO,EAAE,CACpC;SACA,OAAO,EAAE,CAAA;IAEZ,2FAA2F;IAC3F,MAAM,EAAE,CAAC,MAAM;SACZ,WAAW,CAAC,+CAA+C,CAAC;SAC5D,EAAE,CAAC,kBAAkB,CAAC;SACtB,OAAO,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;SACtC,OAAO,EAAE,CAAA;IAEZ,+FAA+F;IAC/F,MAAM,IAAA,YAAG,EAAA;;;;GAIR,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAEb,mDAAmD;IACnD,MAAM,EAAE,CAAC,MAAM;SACZ,WAAW,CAAC,iCAAiC,CAAC;SAC9C,EAAE,CAAC,gBAAgB,CAAC;SACpB,MAAM,CAAC,mBAAmB,CAAC;SAC3B,OAAO,EAAE,CAAA;AACd,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,EAAmB;IAC5C,MAAM,EAAE,CAAC,MAAM;SACZ,SAAS,CAAC,+CAA+C,CAAC;SAC1D,OAAO,EAAE,CAAA;IACZ,MAAM,EAAE,CAAC,MAAM;SACZ,SAAS,CAAC,qDAAqD,CAAC;SAChE,OAAO,EAAE,CAAA;IACZ,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC,OAAO,EAAE,CAAA;IAEtE,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAA;IACrD,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAA;IAEjD,MAAM,EAAE,CAAC,MAAM;SACZ,UAAU,CAAC,kBAAkB,CAAC;SAC9B,UAAU,CAAC,eAAe,CAAC;SAC3B,OAAO,EAAE,CAAA;IAEZ,MAAM,EAAE,CAAC,MAAM;SACZ,UAAU,CAAC,kBAAkB,CAAC;SAC9B,UAAU,CAAC,aAAa,CAAC;SACzB,OAAO,EAAE,CAAA;IAEZ,MAAM,EAAE,CAAC,MAAM;SACZ,UAAU,CAAC,kBAAkB,CAAC;SAC9B,UAAU,CAAC,iBAAiB,CAAC;SAC7B,OAAO,EAAE,CAAA;AACd,CAAC","sourcesContent":["import { Kysely, sql } from 'kysely'\n\nexport async function up(db: Kysely<unknown>): Promise<void> {\n await db.schema\n .alterTable('moderation_event')\n .addColumn('severityLevel', 'varchar')\n .execute()\n await db.schema\n .alterTable('moderation_event')\n .addColumn('strikeCount', 'integer')\n .execute()\n await db.schema\n .alterTable('moderation_event')\n .addColumn('strikeExpiresAt', 'varchar')\n .execute()\n\n await db.schema\n .createTable('account_strike')\n .addColumn('did', 'text', (col) => col.primaryKey())\n .addColumn('firstStrikeAt', 'varchar')\n .addColumn('lastStrikeAt', 'varchar')\n .addColumn('activeStrikeCount', 'integer', (col) =>\n col.notNull().defaultTo(0),\n )\n .addColumn('totalStrikeCount', 'integer', (col) =>\n col.notNull().defaultTo(0),\n )\n .execute()\n\n await db.schema\n .createTable('job_cursor')\n .addColumn('job', 'text', (col) => col.primaryKey())\n .addColumn('cursor', 'text')\n .addColumn('updatedAt', 'text', (col) =>\n col.defaultTo(sql`now()`).notNull(),\n )\n .execute()\n\n // This supports fast look up for background job that aggregates strike data per subjectDid\n await db.schema\n .createIndex('moderation_event_subject_did_strike_count_idx')\n .on('moderation_event')\n .columns(['subjectDid', 'strikeCount'])\n .execute()\n\n // This supports fast lookup in the background job that needs to find strikes that have expired\n await sql`\n CREATE INDEX moderation_event_strike_expires_at_strike_count_idx\n ON moderation_event (\"strikeExpiresAt\", \"strikeCount\")\n WHERE \"strikeExpiresAt\" IS NOT NULL AND \"strikeCount\" IS NOT NULL\n `.execute(db)\n\n // for sorting and filtering by active strike count\n await db.schema\n .createIndex('account_strike_active_count_idx')\n .on('account_strike')\n .column('activeStrikeCount')\n .execute()\n}\n\nexport async function down(db: Kysely<unknown>): Promise<void> {\n await db.schema\n .dropIndex('moderation_event_subject_did_strike_count_idx')\n .execute()\n await db.schema\n .dropIndex('moderation_event_strike_expires_at_strike_count_idx')\n .execute()\n await db.schema.dropIndex('account_strike_active_count_idx').execute()\n\n await db.schema.dropTable('account_strike').execute()\n await db.schema.dropTable('job_cursor').execute()\n\n await db.schema\n .alterTable('moderation_event')\n .dropColumn('severityLevel')\n .execute()\n\n await db.schema\n .alterTable('moderation_event')\n .dropColumn('strikeCount')\n .execute()\n\n await db.schema\n .alterTable('moderation_event')\n .dropColumn('strikeExpiresAt')\n .execute()\n}\n"]}
@@ -28,4 +28,5 @@ export * as _20250715T000000000Z from './20250715T000000000Z-add-mod-event-exter
28
28
  export * as _20250718T150931000Z from './20250718T150931000Z-update-appeal-reason-stats';
29
29
  export * as _20250813T000000000Z from './20250813T000000000Z-mod-tool-batch-id-index';
30
30
  export * as _20250923T000000000Z from './20250923T000000000Z-scheduled-actions';
31
+ export * as _20251008T120000000Z from './20251008T120000000Z-add-strike-system';
31
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,oBAAoB,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,6DAA6D,CAAA;AACnG,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,oBAAoB,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,oBAAoB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,KAAK,oBAAoB,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,oBAAoB,MAAM,yDAAyD,CAAA;AAC/F,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,oBAAoB,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,oBAAoB,MAAM,4DAA4D,CAAA;AAClG,OAAO,KAAK,oBAAoB,MAAM,gDAAgD,CAAA;AACtF,OAAO,KAAK,oBAAoB,MAAM,kDAAkD,CAAA;AACxF,OAAO,KAAK,oBAAoB,MAAM,gDAAgD,CAAA;AACtF,OAAO,KAAK,oBAAoB,MAAM,4DAA4D,CAAA;AAClG,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,gDAAgD,CAAA;AACtF,OAAO,KAAK,oBAAoB,MAAM,oCAAoC,CAAA;AAC1E,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,oBAAoB,MAAM,wDAAwD,CAAA;AAC9F,OAAO,KAAK,oBAAoB,MAAM,+CAA+C,CAAA;AACrF,OAAO,KAAK,oBAAoB,MAAM,iDAAiD,CAAA;AACvF,OAAO,KAAK,oBAAoB,MAAM,kDAAkD,CAAA;AACxF,OAAO,KAAK,oBAAoB,MAAM,+CAA+C,CAAA;AACrF,OAAO,KAAK,oBAAoB,MAAM,yCAAyC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,oBAAoB,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,6DAA6D,CAAA;AACnG,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AACpE,OAAO,KAAK,oBAAoB,MAAM,8CAA8C,CAAA;AACpF,OAAO,KAAK,oBAAoB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,KAAK,oBAAoB,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,oBAAoB,MAAM,yDAAyD,CAAA;AAC/F,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAA;AAClE,OAAO,KAAK,oBAAoB,MAAM,+BAA+B,CAAA;AACrE,OAAO,KAAK,oBAAoB,MAAM,4DAA4D,CAAA;AAClG,OAAO,KAAK,oBAAoB,MAAM,gDAAgD,CAAA;AACtF,OAAO,KAAK,oBAAoB,MAAM,kDAAkD,CAAA;AACxF,OAAO,KAAK,oBAAoB,MAAM,gDAAgD,CAAA;AACtF,OAAO,KAAK,oBAAoB,MAAM,4DAA4D,CAAA;AAClG,OAAO,KAAK,oBAAoB,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,oBAAoB,MAAM,gDAAgD,CAAA;AACtF,OAAO,KAAK,oBAAoB,MAAM,oCAAoC,CAAA;AAC1E,OAAO,KAAK,oBAAoB,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,oBAAoB,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,oBAAoB,MAAM,wDAAwD,CAAA;AAC9F,OAAO,KAAK,oBAAoB,MAAM,+CAA+C,CAAA;AACrF,OAAO,KAAK,oBAAoB,MAAM,iDAAiD,CAAA;AACvF,OAAO,KAAK,oBAAoB,MAAM,kDAAkD,CAAA;AACxF,OAAO,KAAK,oBAAoB,MAAM,+CAA+C,CAAA;AACrF,OAAO,KAAK,oBAAoB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,KAAK,oBAAoB,MAAM,yCAAyC,CAAA"}
@@ -36,7 +36,7 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  };
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports._20250923T000000000Z = exports._20250813T000000000Z = exports._20250718T150931000Z = exports._20250715T000000000Z = exports._20250701T000000000Z = exports._20250618T180246000Z = exports._20250609T110704000Z = exports._20250417T201720309Z = exports._20250415T201720309Z = exports._20250404T201720309Z = exports._20250221T132135150Z = exports._20250211T132135150Z = exports._20250211T003647759Z = exports._20250204T003647759Z = exports._20241220T144630860Z = exports._20241026T205730722Z = exports._20241018T205730722Z = exports._20241008T205730722Z = exports._20241001T205730722Z = exports._20240904T205730722Z = exports._20240903T205730722Z = exports._20240814T003647759Z = exports._20240430T211332580Z = exports._20240506T225055595Z = exports._20240408T192432676Z = exports._20240228T003647759Z = exports._20240208T213404429Z = exports._20240201T051104136Z = exports._20240116T085607200Z = exports._20231219T205730722Z = void 0;
39
+ exports._20251008T120000000Z = exports._20250923T000000000Z = exports._20250813T000000000Z = exports._20250718T150931000Z = exports._20250715T000000000Z = exports._20250701T000000000Z = exports._20250618T180246000Z = exports._20250609T110704000Z = exports._20250417T201720309Z = exports._20250415T201720309Z = exports._20250404T201720309Z = exports._20250221T132135150Z = exports._20250211T132135150Z = exports._20250211T003647759Z = exports._20250204T003647759Z = exports._20241220T144630860Z = exports._20241026T205730722Z = exports._20241018T205730722Z = exports._20241008T205730722Z = exports._20241001T205730722Z = exports._20240904T205730722Z = exports._20240903T205730722Z = exports._20240814T003647759Z = exports._20240430T211332580Z = exports._20240506T225055595Z = exports._20240408T192432676Z = exports._20240228T003647759Z = exports._20240208T213404429Z = exports._20240201T051104136Z = exports._20240116T085607200Z = exports._20231219T205730722Z = void 0;
40
40
  exports._20231219T205730722Z = __importStar(require("./20231219T205730722Z-init"));
41
41
  exports._20240116T085607200Z = __importStar(require("./20240116T085607200Z-communication-template"));
42
42
  exports._20240201T051104136Z = __importStar(require("./20240201T051104136Z-mod-event-blobs"));
@@ -67,4 +67,5 @@ exports._20250715T000000000Z = __importStar(require("./20250715T000000000Z-add-m
67
67
  exports._20250718T150931000Z = __importStar(require("./20250718T150931000Z-update-appeal-reason-stats"));
68
68
  exports._20250813T000000000Z = __importStar(require("./20250813T000000000Z-mod-tool-batch-id-index"));
69
69
  exports._20250923T000000000Z = __importStar(require("./20250923T000000000Z-scheduled-actions"));
70
+ exports._20251008T120000000Z = __importStar(require("./20251008T120000000Z-add-strike-system"));
70
71
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":";AAAA,oGAAoG;AACpG,gGAAgG;AAChG,+FAA+F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/F,mFAAkE;AAClE,qGAAoF;AACpF,8FAA6E;AAC7E,oHAAmG;AACnG,6FAA4E;AAC5E,6FAA4E;AAC5E,8FAA6E;AAC7E,qFAAoE;AACpE,qGAAoF;AACpF,gGAA+E;AAC/E,oGAAmF;AACnF,gHAA+F;AAC/F,mFAAkE;AAClE,sFAAqE;AACrE,mHAAkG;AAClG,uGAAsF;AACtF,yGAAwF;AACxF,uGAAsF;AACtF,mHAAkG;AAClG,6FAA4E;AAC5E,uGAAsF;AACtF,2FAA0E;AAC1E,8FAA6E;AAC7E,uFAAsE;AACtE,+GAA8F;AAC9F,sGAAqF;AACrF,wGAAuF;AACvF,yGAAwF;AACxF,sGAAqF;AACrF,gGAA+E","sourcesContent":["// NOTE this file can be edited by hand, but it is also appended to by the migration:create command.\n// It's important that every migration is exported from here with the proper name. We'd simplify\n// this with kysely's FileMigrationProvider, but it doesn't play nicely with the build process.\n\nexport * as _20231219T205730722Z from './20231219T205730722Z-init'\nexport * as _20240116T085607200Z from './20240116T085607200Z-communication-template'\nexport * as _20240201T051104136Z from './20240201T051104136Z-mod-event-blobs'\nexport * as _20240208T213404429Z from './20240208T213404429Z-add-tags-column-to-moderation-subject'\nexport * as _20240228T003647759Z from './20240228T003647759Z-add-label-sigs'\nexport * as _20240408T192432676Z from './20240408T192432676Z-mute-reporting'\nexport * as _20240506T225055595Z from './20240506T225055595Z-message-subject'\nexport * as _20240430T211332580Z from './20240521T211332580Z-member'\nexport * as _20240814T003647759Z from './20240814T003647759Z-event-created-at-index'\nexport * as _20240903T205730722Z from './20240903T205730722Z-add-template-lang'\nexport * as _20240904T205730722Z from './20240904T205730722Z-add-subject-did-index'\nexport * as _20241001T205730722Z from './20241001T205730722Z-subject-status-review-state-index'\nexport * as _20241008T205730722Z from './20241008T205730722Z-sets'\nexport * as _20241018T205730722Z from './20241018T205730722Z-setting'\nexport * as _20241026T205730722Z from './20241026T205730722Z-add-hosting-status-to-subject-status'\nexport * as _20241220T144630860Z from './20241220T144630860Z-stats-materialized-views'\nexport * as _20250204T003647759Z from './20250204T003647759Z-add-subject-priority-score'\nexport * as _20250211T003647759Z from './20250211T003647759Z-add-reporter-stats-index'\nexport * as _20250211T132135150Z from './20250211T132135150Z-moderation-event-message-partial-idx'\nexport * as _20250221T132135150Z from './20250221T132135150Z-member-details'\nexport * as _20250404T201720309Z from './20250404T201720309Z-subject-status-sort-idxs'\nexport * as _20250415T201720309Z from './20250415T201720309Z-verification'\nexport * as _20250417T201720309Z from './20250417T201720309Z-firehose-cursor'\nexport * as _20250609T110704000Z from './20250609T110704000Z-safelink'\nexport * as _20250618T180246000Z from './20250618T180246000Z-add-mod-tool-to-moderation-event'\nexport * as _20250701T000000000Z from './20250701T000000000Z-add-age-assurance-state'\nexport * as _20250715T000000000Z from './20250715T000000000Z-add-mod-event-external-id'\nexport * as _20250718T150931000Z from './20250718T150931000Z-update-appeal-reason-stats'\nexport * as _20250813T000000000Z from './20250813T000000000Z-mod-tool-batch-id-index'\nexport * as _20250923T000000000Z from './20250923T000000000Z-scheduled-actions'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":";AAAA,oGAAoG;AACpG,gGAAgG;AAChG,+FAA+F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE/F,mFAAkE;AAClE,qGAAoF;AACpF,8FAA6E;AAC7E,oHAAmG;AACnG,6FAA4E;AAC5E,6FAA4E;AAC5E,8FAA6E;AAC7E,qFAAoE;AACpE,qGAAoF;AACpF,gGAA+E;AAC/E,oGAAmF;AACnF,gHAA+F;AAC/F,mFAAkE;AAClE,sFAAqE;AACrE,mHAAkG;AAClG,uGAAsF;AACtF,yGAAwF;AACxF,uGAAsF;AACtF,mHAAkG;AAClG,6FAA4E;AAC5E,uGAAsF;AACtF,2FAA0E;AAC1E,8FAA6E;AAC7E,uFAAsE;AACtE,+GAA8F;AAC9F,sGAAqF;AACrF,wGAAuF;AACvF,yGAAwF;AACxF,sGAAqF;AACrF,gGAA+E;AAC/E,gGAA+E","sourcesContent":["// NOTE this file can be edited by hand, but it is also appended to by the migration:create command.\n// It's important that every migration is exported from here with the proper name. We'd simplify\n// this with kysely's FileMigrationProvider, but it doesn't play nicely with the build process.\n\nexport * as _20231219T205730722Z from './20231219T205730722Z-init'\nexport * as _20240116T085607200Z from './20240116T085607200Z-communication-template'\nexport * as _20240201T051104136Z from './20240201T051104136Z-mod-event-blobs'\nexport * as _20240208T213404429Z from './20240208T213404429Z-add-tags-column-to-moderation-subject'\nexport * as _20240228T003647759Z from './20240228T003647759Z-add-label-sigs'\nexport * as _20240408T192432676Z from './20240408T192432676Z-mute-reporting'\nexport * as _20240506T225055595Z from './20240506T225055595Z-message-subject'\nexport * as _20240430T211332580Z from './20240521T211332580Z-member'\nexport * as _20240814T003647759Z from './20240814T003647759Z-event-created-at-index'\nexport * as _20240903T205730722Z from './20240903T205730722Z-add-template-lang'\nexport * as _20240904T205730722Z from './20240904T205730722Z-add-subject-did-index'\nexport * as _20241001T205730722Z from './20241001T205730722Z-subject-status-review-state-index'\nexport * as _20241008T205730722Z from './20241008T205730722Z-sets'\nexport * as _20241018T205730722Z from './20241018T205730722Z-setting'\nexport * as _20241026T205730722Z from './20241026T205730722Z-add-hosting-status-to-subject-status'\nexport * as _20241220T144630860Z from './20241220T144630860Z-stats-materialized-views'\nexport * as _20250204T003647759Z from './20250204T003647759Z-add-subject-priority-score'\nexport * as _20250211T003647759Z from './20250211T003647759Z-add-reporter-stats-index'\nexport * as _20250211T132135150Z from './20250211T132135150Z-moderation-event-message-partial-idx'\nexport * as _20250221T132135150Z from './20250221T132135150Z-member-details'\nexport * as _20250404T201720309Z from './20250404T201720309Z-subject-status-sort-idxs'\nexport * as _20250415T201720309Z from './20250415T201720309Z-verification'\nexport * as _20250417T201720309Z from './20250417T201720309Z-firehose-cursor'\nexport * as _20250609T110704000Z from './20250609T110704000Z-safelink'\nexport * as _20250618T180246000Z from './20250618T180246000Z-add-mod-tool-to-moderation-event'\nexport * as _20250701T000000000Z from './20250701T000000000Z-add-age-assurance-state'\nexport * as _20250715T000000000Z from './20250715T000000000Z-add-mod-event-external-id'\nexport * as _20250718T150931000Z from './20250718T150931000Z-update-appeal-reason-stats'\nexport * as _20250813T000000000Z from './20250813T000000000Z-mod-tool-batch-id-index'\nexport * as _20250923T000000000Z from './20250923T000000000Z-scheduled-actions'\nexport * as _20251008T120000000Z from './20251008T120000000Z-add-strike-system'\n"]}
@@ -0,0 +1,12 @@
1
+ export declare const accountStrikeTableName = "account_strike";
2
+ export interface AccountStrike {
3
+ did: string;
4
+ firstStrikeAt: string | null;
5
+ lastStrikeAt: string | null;
6
+ activeStrikeCount: number;
7
+ totalStrikeCount: number;
8
+ }
9
+ export type PartialDB = {
10
+ [accountStrikeTableName]: AccountStrike;
11
+ };
12
+ //# sourceMappingURL=account_strike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_strike.d.ts","sourceRoot":"","sources":["../../../src/db/schema/account_strike.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,mBAAmB,CAAA;AAEtD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,sBAAsB,CAAC,EAAE,aAAa,CAAA;CACxC,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accountStrikeTableName = void 0;
4
+ exports.accountStrikeTableName = 'account_strike';
5
+ //# sourceMappingURL=account_strike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account_strike.js","sourceRoot":"","sources":["../../../src/db/schema/account_strike.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,gBAAgB,CAAA","sourcesContent":["export const accountStrikeTableName = 'account_strike'\n\nexport interface AccountStrike {\n did: string // Primary key\n firstStrikeAt: string | null\n lastStrikeAt: string | null\n activeStrikeCount: number\n totalStrikeCount: number\n}\n\nexport type PartialDB = {\n [accountStrikeTableName]: AccountStrike\n}\n"]}
@@ -2,9 +2,11 @@ import { Kysely } from 'kysely';
2
2
  import * as accountEventsStats from './account_events_stats';
3
3
  import * as accountRecordEventsStats from './account_record_events_stats';
4
4
  import * as accountRecordStatusStats from './account_record_status_stats';
5
+ import * as accountStrike from './account_strike';
5
6
  import * as blobPushEvent from './blob_push_event';
6
7
  import * as communicationTemplate from './communication_template';
7
8
  import * as firehoseCursor from './firehose_cursor';
9
+ import * as jobCursor from './job_cursor';
8
10
  import * as label from './label';
9
11
  import * as member from './member';
10
12
  import * as modEvent from './moderation_event';
@@ -18,7 +20,7 @@ import * as scheduledAction from './scheduled-action';
18
20
  import * as setting from './setting';
19
21
  import * as signingKey from './signing_key';
20
22
  import * as verification from './verification';
21
- export type DatabaseSchemaType = modEvent.PartialDB & modSubjectStatus.PartialDB & label.PartialDB & signingKey.PartialDB & repoPushEvent.PartialDB & recordPushEvent.PartialDB & blobPushEvent.PartialDB & communicationTemplate.PartialDB & set.PartialDB & member.PartialDB & setting.PartialDB & accountEventsStats.PartialDB & recordEventsStats.PartialDB & accountRecordEventsStats.PartialDB & accountRecordStatusStats.PartialDB & verification.PartialDB & firehoseCursor.PartialDB & safelink.PartialDB & scheduledAction.PartialDB;
23
+ export type DatabaseSchemaType = modEvent.PartialDB & modSubjectStatus.PartialDB & label.PartialDB & signingKey.PartialDB & repoPushEvent.PartialDB & recordPushEvent.PartialDB & blobPushEvent.PartialDB & communicationTemplate.PartialDB & set.PartialDB & member.PartialDB & setting.PartialDB & accountEventsStats.PartialDB & recordEventsStats.PartialDB & accountRecordEventsStats.PartialDB & accountRecordStatusStats.PartialDB & accountStrike.PartialDB & verification.PartialDB & firehoseCursor.PartialDB & jobCursor.PartialDB & safelink.PartialDB & scheduledAction.PartialDB;
22
24
  export type DatabaseSchema = Kysely<DatabaseSchemaType>;
23
25
  export default DatabaseSchema;
24
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,eAAe,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAA;AAE9C,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,GACjD,gBAAgB,CAAC,SAAS,GAC1B,KAAK,CAAC,SAAS,GACf,UAAU,CAAC,SAAS,GACpB,aAAa,CAAC,SAAS,GACvB,eAAe,CAAC,SAAS,GACzB,aAAa,CAAC,SAAS,GACvB,qBAAqB,CAAC,SAAS,GAC/B,GAAG,CAAC,SAAS,GACb,MAAM,CAAC,SAAS,GAChB,OAAO,CAAC,SAAS,GACjB,kBAAkB,CAAC,SAAS,GAC5B,iBAAiB,CAAC,SAAS,GAC3B,wBAAwB,CAAC,SAAS,GAClC,wBAAwB,CAAC,SAAS,GAClC,YAAY,CAAC,SAAS,GACtB,cAAc,CAAC,SAAS,GACxB,QAAQ,CAAC,SAAS,GAClB,eAAe,CAAC,SAAS,CAAA;AAE3B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEvD,eAAe,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,kBAAkB,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,qBAAqB,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;AAClC,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,gBAAgB,MAAM,6BAA6B,CAAA;AAC/D,OAAO,KAAK,GAAG,MAAM,aAAa,CAAA;AAClC,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAA;AAC1D,OAAO,KAAK,eAAe,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,aAAa,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAA;AAE9C,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC,SAAS,GACjD,gBAAgB,CAAC,SAAS,GAC1B,KAAK,CAAC,SAAS,GACf,UAAU,CAAC,SAAS,GACpB,aAAa,CAAC,SAAS,GACvB,eAAe,CAAC,SAAS,GACzB,aAAa,CAAC,SAAS,GACvB,qBAAqB,CAAC,SAAS,GAC/B,GAAG,CAAC,SAAS,GACb,MAAM,CAAC,SAAS,GAChB,OAAO,CAAC,SAAS,GACjB,kBAAkB,CAAC,SAAS,GAC5B,iBAAiB,CAAC,SAAS,GAC3B,wBAAwB,CAAC,SAAS,GAClC,wBAAwB,CAAC,SAAS,GAClC,aAAa,CAAC,SAAS,GACvB,YAAY,CAAC,SAAS,GACtB,cAAc,CAAC,SAAS,GACxB,SAAS,CAAC,SAAS,GACnB,QAAQ,CAAC,SAAS,GAClB,eAAe,CAAC,SAAS,CAAA;AAE3B,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEvD,eAAe,cAAc,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"","sourcesContent":["import { Kysely } from 'kysely'\nimport * as accountEventsStats from './account_events_stats'\nimport * as accountRecordEventsStats from './account_record_events_stats'\nimport * as accountRecordStatusStats from './account_record_status_stats'\nimport * as blobPushEvent from './blob_push_event'\nimport * as communicationTemplate from './communication_template'\nimport * as firehoseCursor from './firehose_cursor'\nimport * as label from './label'\nimport * as member from './member'\nimport * as modEvent from './moderation_event'\nimport * as modSubjectStatus from './moderation_subject_status'\nimport * as set from './ozone_set'\nimport * as recordEventsStats from './record_events_stats'\nimport * as recordPushEvent from './record_push_event'\nimport * as repoPushEvent from './repo_push_event'\nimport * as safelink from './safelink'\nimport * as scheduledAction from './scheduled-action'\nimport * as setting from './setting'\nimport * as signingKey from './signing_key'\nimport * as verification from './verification'\n\nexport type DatabaseSchemaType = modEvent.PartialDB &\n modSubjectStatus.PartialDB &\n label.PartialDB &\n signingKey.PartialDB &\n repoPushEvent.PartialDB &\n recordPushEvent.PartialDB &\n blobPushEvent.PartialDB &\n communicationTemplate.PartialDB &\n set.PartialDB &\n member.PartialDB &\n setting.PartialDB &\n accountEventsStats.PartialDB &\n recordEventsStats.PartialDB &\n accountRecordEventsStats.PartialDB &\n accountRecordStatusStats.PartialDB &\n verification.PartialDB &\n firehoseCursor.PartialDB &\n safelink.PartialDB &\n scheduledAction.PartialDB\n\nexport type DatabaseSchema = Kysely<DatabaseSchemaType>\n\nexport default DatabaseSchema\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/schema/index.ts"],"names":[],"mappings":"","sourcesContent":["import { Kysely } from 'kysely'\nimport * as accountEventsStats from './account_events_stats'\nimport * as accountRecordEventsStats from './account_record_events_stats'\nimport * as accountRecordStatusStats from './account_record_status_stats'\nimport * as accountStrike from './account_strike'\nimport * as blobPushEvent from './blob_push_event'\nimport * as communicationTemplate from './communication_template'\nimport * as firehoseCursor from './firehose_cursor'\nimport * as jobCursor from './job_cursor'\nimport * as label from './label'\nimport * as member from './member'\nimport * as modEvent from './moderation_event'\nimport * as modSubjectStatus from './moderation_subject_status'\nimport * as set from './ozone_set'\nimport * as recordEventsStats from './record_events_stats'\nimport * as recordPushEvent from './record_push_event'\nimport * as repoPushEvent from './repo_push_event'\nimport * as safelink from './safelink'\nimport * as scheduledAction from './scheduled-action'\nimport * as setting from './setting'\nimport * as signingKey from './signing_key'\nimport * as verification from './verification'\n\nexport type DatabaseSchemaType = modEvent.PartialDB &\n modSubjectStatus.PartialDB &\n label.PartialDB &\n signingKey.PartialDB &\n repoPushEvent.PartialDB &\n recordPushEvent.PartialDB &\n blobPushEvent.PartialDB &\n communicationTemplate.PartialDB &\n set.PartialDB &\n member.PartialDB &\n setting.PartialDB &\n accountEventsStats.PartialDB &\n recordEventsStats.PartialDB &\n accountRecordEventsStats.PartialDB &\n accountRecordStatusStats.PartialDB &\n accountStrike.PartialDB &\n verification.PartialDB &\n firehoseCursor.PartialDB &\n jobCursor.PartialDB &\n safelink.PartialDB &\n scheduledAction.PartialDB\n\nexport type DatabaseSchema = Kysely<DatabaseSchemaType>\n\nexport default DatabaseSchema\n"]}
@@ -0,0 +1,11 @@
1
+ import { Generated } from 'kysely';
2
+ export declare const jobCursorTableName = "job_cursor";
3
+ export interface JobCursor {
4
+ job: string;
5
+ cursor: string | null;
6
+ updatedAt: Generated<string>;
7
+ }
8
+ export type PartialDB = {
9
+ [jobCursorTableName]: JobCursor;
10
+ };
11
+ //# sourceMappingURL=job_cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job_cursor.d.ts","sourceRoot":"","sources":["../../../src/db/schema/job_cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,eAAO,MAAM,kBAAkB,eAAe,CAAA;AAE9C,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;CAC7B;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAA;CAChC,CAAA"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jobCursorTableName = void 0;
4
+ exports.jobCursorTableName = 'job_cursor';
5
+ //# sourceMappingURL=job_cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job_cursor.js","sourceRoot":"","sources":["../../../src/db/schema/job_cursor.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAG,YAAY,CAAA","sourcesContent":["import { Generated } from 'kysely'\n\nexport const jobCursorTableName = 'job_cursor'\n\nexport interface JobCursor {\n job: string\n cursor: string | null\n updatedAt: Generated<string>\n}\n\nexport type PartialDB = {\n [jobCursorTableName]: JobCursor\n}\n"]}
@@ -27,6 +27,9 @@ export interface ModerationEvent {
27
27
  };
28
28
  } | null;
29
29
  externalId: string | null;
30
+ severityLevel: string | null;
31
+ strikeCount: number | null;
32
+ strikeExpiresAt: string | null;
30
33
  }
31
34
  export type PartialDB = {
32
35
  [eventTableName]: ModerationEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"moderation_event.d.ts","sourceRoot":"","sources":["../../../src/db/schema/moderation_event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,eAAO,MAAM,cAAc,qBAAqB,CAAA;AAEhD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACrB,MAAM,EACF,8CAA8C,GAC9C,iDAAiD,GACjD,8CAA8C,GAC9C,6CAA6C,GAC7C,2CAA2C,GAC3C,4CAA4C,GAC5C,0CAA0C,GAC1C,4CAA4C,GAC5C,kDAAkD,GAClD,oDAAoD,GACpD,qDAAqD,GACrD,2CAA2C,GAC3C,mDAAmD,GACnD,yCAAyC,GACzC,0CAA0C,GAC1C,2CAA2C,GAC3C,yCAAyC,GACzC,mDAAmD,GACnD,+CAA+C,GAC/C,uDAAuD,GACvD,2DAA2D,CAAA;IAC/D,WAAW,EACP,gCAAgC,GAChC,4BAA4B,GAC5B,iCAAiC,CAAA;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;IACtD,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE;aAAG,CAAC,IAAI,MAAM,GAAG,OAAO;SAAE,CAAA;KAAE,GAAG,IAAI,CAAA;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,cAAc,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA"}
1
+ {"version":3,"file":"moderation_event.d.ts","sourceRoot":"","sources":["../../../src/db/schema/moderation_event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,eAAO,MAAM,cAAc,qBAAqB,CAAA;AAEhD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;IACrB,MAAM,EACF,8CAA8C,GAC9C,iDAAiD,GACjD,8CAA8C,GAC9C,6CAA6C,GAC7C,2CAA2C,GAC3C,4CAA4C,GAC5C,0CAA0C,GAC1C,4CAA4C,GAC5C,kDAAkD,GAClD,oDAAoD,GACpD,qDAAqD,GACrD,2CAA2C,GAC3C,mDAAmD,GACnD,yCAAyC,GACzC,0CAA0C,GAC1C,2CAA2C,GAC3C,yCAAyC,GACzC,mDAAmD,GACnD,+CAA+C,GAC/C,uDAAuD,GACvD,2DAA2D,CAAA;IAC/D,WAAW,EACP,gCAAgC,GAChC,4BAA4B,GAC5B,iCAAiC,CAAA;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAChC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;IACtD,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE;aAAG,CAAC,IAAI,MAAM,GAAG,OAAO;SAAE,CAAA;KAAE,GAAG,IAAI,CAAA;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,cAAc,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"moderation_event.js","sourceRoot":"","sources":["../../../src/db/schema/moderation_event.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAG,kBAAkB,CAAA","sourcesContent":["import { Generated } from 'kysely'\n\nexport const eventTableName = 'moderation_event'\n\nexport interface ModerationEvent {\n id: Generated<number>\n action:\n | 'tools.ozone.moderation.defs#modEventTakedown'\n | 'tools.ozone.moderation.defs#modEventAcknowledge'\n | 'tools.ozone.moderation.defs#modEventEscalate'\n | 'tools.ozone.moderation.defs#modEventComment'\n | 'tools.ozone.moderation.defs#modEventLabel'\n | 'tools.ozone.moderation.defs#modEventReport'\n | 'tools.ozone.moderation.defs#modEventMute'\n | 'tools.ozone.moderation.defs#modEventUnmute'\n | 'tools.ozone.moderation.defs#modEventMuteReporter'\n | 'tools.ozone.moderation.defs#modEventUnmuteReporter'\n | 'tools.ozone.moderation.defs#modEventReverseTakedown'\n | 'tools.ozone.moderation.defs#modEventEmail'\n | 'tools.ozone.moderation.defs#modEventResolveAppeal'\n | 'tools.ozone.moderation.defs#modEventTag'\n | 'tools.ozone.moderation.defs#accountEvent'\n | 'tools.ozone.moderation.defs#identityEvent'\n | 'tools.ozone.moderation.defs#recordEvent'\n | 'tools.ozone.moderation.defs#modEventPriorityScore'\n | 'tools.ozone.moderation.defs#ageAssuranceEvent'\n | 'tools.ozone.moderation.defs#ageAssuranceOverrideEvent'\n | 'tools.ozone.moderation.defs#revokeAccountCredentialsEvent'\n subjectType:\n | 'com.atproto.admin.defs#repoRef'\n | 'com.atproto.repo.strongRef'\n | 'chat.bsky.convo.defs#messageRef'\n subjectDid: string\n subjectUri: string | null\n subjectCid: string | null\n subjectBlobCids: string[] | null\n subjectMessageId: string | null\n createLabelVals: string | null\n negateLabelVals: string | null\n comment: string | null\n createdAt: string\n createdBy: string\n durationInHours: number | null\n expiresAt: string | null\n meta: Record<string, string | boolean | number> | null\n addedTags: string[] | null\n removedTags: string[] | null\n legacyRefId: number | null\n modTool: { name: string; meta?: { [_ in string]: unknown } } | null\n externalId: string | null\n}\n\nexport type PartialDB = {\n [eventTableName]: ModerationEvent\n}\n"]}
1
+ {"version":3,"file":"moderation_event.js","sourceRoot":"","sources":["../../../src/db/schema/moderation_event.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAG,kBAAkB,CAAA","sourcesContent":["import { Generated } from 'kysely'\n\nexport const eventTableName = 'moderation_event'\n\nexport interface ModerationEvent {\n id: Generated<number>\n action:\n | 'tools.ozone.moderation.defs#modEventTakedown'\n | 'tools.ozone.moderation.defs#modEventAcknowledge'\n | 'tools.ozone.moderation.defs#modEventEscalate'\n | 'tools.ozone.moderation.defs#modEventComment'\n | 'tools.ozone.moderation.defs#modEventLabel'\n | 'tools.ozone.moderation.defs#modEventReport'\n | 'tools.ozone.moderation.defs#modEventMute'\n | 'tools.ozone.moderation.defs#modEventUnmute'\n | 'tools.ozone.moderation.defs#modEventMuteReporter'\n | 'tools.ozone.moderation.defs#modEventUnmuteReporter'\n | 'tools.ozone.moderation.defs#modEventReverseTakedown'\n | 'tools.ozone.moderation.defs#modEventEmail'\n | 'tools.ozone.moderation.defs#modEventResolveAppeal'\n | 'tools.ozone.moderation.defs#modEventTag'\n | 'tools.ozone.moderation.defs#accountEvent'\n | 'tools.ozone.moderation.defs#identityEvent'\n | 'tools.ozone.moderation.defs#recordEvent'\n | 'tools.ozone.moderation.defs#modEventPriorityScore'\n | 'tools.ozone.moderation.defs#ageAssuranceEvent'\n | 'tools.ozone.moderation.defs#ageAssuranceOverrideEvent'\n | 'tools.ozone.moderation.defs#revokeAccountCredentialsEvent'\n subjectType:\n | 'com.atproto.admin.defs#repoRef'\n | 'com.atproto.repo.strongRef'\n | 'chat.bsky.convo.defs#messageRef'\n subjectDid: string\n subjectUri: string | null\n subjectCid: string | null\n subjectBlobCids: string[] | null\n subjectMessageId: string | null\n createLabelVals: string | null\n negateLabelVals: string | null\n comment: string | null\n createdAt: string\n createdBy: string\n durationInHours: number | null\n expiresAt: string | null\n meta: Record<string, string | boolean | number> | null\n addedTags: string[] | null\n removedTags: string[] | null\n legacyRefId: number | null\n modTool: { name: string; meta?: { [_ in string]: unknown } } | null\n externalId: string | null\n severityLevel: string | null\n strikeCount: number | null\n strikeExpiresAt: string | null\n}\n\nexport type PartialDB = {\n [eventTableName]: ModerationEvent\n}\n"]}
@@ -13508,6 +13508,11 @@ export declare const schemaDict: {
13508
13508
  readonly type: "ref";
13509
13509
  readonly ref: "lex:tools.ozone.moderation.defs#recordsStats";
13510
13510
  };
13511
+ readonly accountStrike: {
13512
+ readonly description: "Strike information for the account (account-level only)";
13513
+ readonly type: "ref";
13514
+ readonly ref: "lex:tools.ozone.moderation.defs#accountStrike";
13515
+ };
13511
13516
  readonly ageAssuranceState: {
13512
13517
  readonly type: "string";
13513
13518
  readonly description: "Current age assurance state of the subject.";
@@ -13614,6 +13619,30 @@ export declare const schemaDict: {
13614
13619
  };
13615
13620
  };
13616
13621
  };
13622
+ readonly accountStrike: {
13623
+ readonly description: "Strike information for an account";
13624
+ readonly type: "object";
13625
+ readonly properties: {
13626
+ readonly activeStrikeCount: {
13627
+ readonly description: "Current number of active strikes (excluding expired strikes)";
13628
+ readonly type: "integer";
13629
+ };
13630
+ readonly totalStrikeCount: {
13631
+ readonly description: "Total number of strikes ever received (including expired strikes)";
13632
+ readonly type: "integer";
13633
+ };
13634
+ readonly firstStrikeAt: {
13635
+ readonly description: "Timestamp of the first strike received";
13636
+ readonly type: "string";
13637
+ readonly format: "datetime";
13638
+ };
13639
+ readonly lastStrikeAt: {
13640
+ readonly description: "Timestamp of the most recent strike received";
13641
+ readonly type: "string";
13642
+ readonly format: "datetime";
13643
+ };
13644
+ };
13645
+ };
13617
13646
  readonly subjectReviewState: {
13618
13647
  readonly type: "string";
13619
13648
  readonly knownValues: ["lex:tools.ozone.moderation.defs#reviewOpen", "lex:tools.ozone.moderation.defs#reviewEscalated", "lex:tools.ozone.moderation.defs#reviewClosed", "lex:tools.ozone.moderation.defs#reviewNone"];
@@ -13657,6 +13686,19 @@ export declare const schemaDict: {
13657
13686
  };
13658
13687
  readonly description: "Names/Keywords of the policies that drove the decision.";
13659
13688
  };
13689
+ readonly severityLevel: {
13690
+ readonly type: "string";
13691
+ readonly description: "Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).";
13692
+ };
13693
+ readonly strikeCount: {
13694
+ readonly type: "integer";
13695
+ readonly description: "Number of strikes to assign to the user for this violation.";
13696
+ };
13697
+ readonly strikeExpiresAt: {
13698
+ readonly type: "string";
13699
+ readonly format: "datetime";
13700
+ readonly description: "When the strike should expire. If not provided, the strike never expires.";
13701
+ };
13660
13702
  };
13661
13703
  };
13662
13704
  readonly modEventReverseTakedown: {
@@ -13667,6 +13709,22 @@ export declare const schemaDict: {
13667
13709
  readonly type: "string";
13668
13710
  readonly description: "Describe reasoning behind the reversal.";
13669
13711
  };
13712
+ readonly policies: {
13713
+ readonly type: "array";
13714
+ readonly maxLength: 5;
13715
+ readonly items: {
13716
+ readonly type: "string";
13717
+ };
13718
+ readonly description: "Names/Keywords of the policy infraction for which takedown is being reversed.";
13719
+ };
13720
+ readonly severityLevel: {
13721
+ readonly type: "string";
13722
+ readonly description: "Severity level of the violation. Usually set from the last policy infraction's severity.";
13723
+ };
13724
+ readonly strikeCount: {
13725
+ readonly type: "integer";
13726
+ readonly description: "Number of strikes to subtract from the user's strike count. Usually set from the last policy infraction's severity.";
13727
+ };
13670
13728
  };
13671
13729
  };
13672
13730
  readonly modEventResolveAppeal: {
@@ -13899,6 +13957,27 @@ export declare const schemaDict: {
13899
13957
  readonly type: "string";
13900
13958
  readonly description: "Additional comment about the outgoing comm.";
13901
13959
  };
13960
+ readonly policies: {
13961
+ readonly type: "array";
13962
+ readonly maxLength: 5;
13963
+ readonly items: {
13964
+ readonly type: "string";
13965
+ };
13966
+ readonly description: "Names/Keywords of the policies that necessitated the email.";
13967
+ };
13968
+ readonly severityLevel: {
13969
+ readonly type: "string";
13970
+ readonly description: "Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense";
13971
+ };
13972
+ readonly strikeCount: {
13973
+ readonly type: "integer";
13974
+ readonly description: "Number of strikes to assign to the user for this violation. Normally 0 as an indicator of a warning and only added as a strike on a repeat offense.";
13975
+ };
13976
+ readonly strikeExpiresAt: {
13977
+ readonly type: "string";
13978
+ readonly format: "datetime";
13979
+ readonly description: "When the strike should expire. If not provided, the strike never expires.";
13980
+ };
13902
13981
  };
13903
13982
  };
13904
13983
  readonly modEventDivert: {
@@ -15118,6 +15197,10 @@ export declare const schemaDict: {
15118
15197
  readonly description: "If specified, only events where the age assurance state matches the given value are returned";
15119
15198
  readonly knownValues: ["pending", "assured", "unknown", "reset", "blocked"];
15120
15199
  };
15200
+ readonly withStrike: {
15201
+ readonly type: "boolean";
15202
+ readonly description: "If specified, only events where strikeCount value is set are returned.";
15203
+ };
15121
15204
  readonly cursor: {
15122
15205
  readonly type: "string";
15123
15206
  };
@@ -15324,6 +15407,11 @@ export declare const schemaDict: {
15324
15407
  readonly type: "integer";
15325
15408
  readonly description: "If specified, only subjects that have priority score value above the given value will be returned.";
15326
15409
  };
15410
+ readonly minStrikeCount: {
15411
+ readonly type: "integer";
15412
+ readonly minimum: 1;
15413
+ readonly description: "If specified, only subjects that belong to an account that has at least this many active strikes will be returned.";
15414
+ };
15327
15415
  readonly ageAssuranceState: {
15328
15416
  readonly type: "string";
15329
15417
  readonly description: "If specified, only subjects with the given age assurance state will be returned.";
@@ -30645,6 +30733,11 @@ export declare const schemas: ({
30645
30733
  readonly type: "ref";
30646
30734
  readonly ref: "lex:tools.ozone.moderation.defs#recordsStats";
30647
30735
  };
30736
+ readonly accountStrike: {
30737
+ readonly description: "Strike information for the account (account-level only)";
30738
+ readonly type: "ref";
30739
+ readonly ref: "lex:tools.ozone.moderation.defs#accountStrike";
30740
+ };
30648
30741
  readonly ageAssuranceState: {
30649
30742
  readonly type: "string";
30650
30743
  readonly description: "Current age assurance state of the subject.";
@@ -30751,6 +30844,30 @@ export declare const schemas: ({
30751
30844
  };
30752
30845
  };
30753
30846
  };
30847
+ readonly accountStrike: {
30848
+ readonly description: "Strike information for an account";
30849
+ readonly type: "object";
30850
+ readonly properties: {
30851
+ readonly activeStrikeCount: {
30852
+ readonly description: "Current number of active strikes (excluding expired strikes)";
30853
+ readonly type: "integer";
30854
+ };
30855
+ readonly totalStrikeCount: {
30856
+ readonly description: "Total number of strikes ever received (including expired strikes)";
30857
+ readonly type: "integer";
30858
+ };
30859
+ readonly firstStrikeAt: {
30860
+ readonly description: "Timestamp of the first strike received";
30861
+ readonly type: "string";
30862
+ readonly format: "datetime";
30863
+ };
30864
+ readonly lastStrikeAt: {
30865
+ readonly description: "Timestamp of the most recent strike received";
30866
+ readonly type: "string";
30867
+ readonly format: "datetime";
30868
+ };
30869
+ };
30870
+ };
30754
30871
  readonly subjectReviewState: {
30755
30872
  readonly type: "string";
30756
30873
  readonly knownValues: ["lex:tools.ozone.moderation.defs#reviewOpen", "lex:tools.ozone.moderation.defs#reviewEscalated", "lex:tools.ozone.moderation.defs#reviewClosed", "lex:tools.ozone.moderation.defs#reviewNone"];
@@ -30794,6 +30911,19 @@ export declare const schemas: ({
30794
30911
  };
30795
30912
  readonly description: "Names/Keywords of the policies that drove the decision.";
30796
30913
  };
30914
+ readonly severityLevel: {
30915
+ readonly type: "string";
30916
+ readonly description: "Severity level of the violation (e.g., 'sev-0', 'sev-1', 'sev-2', etc.).";
30917
+ };
30918
+ readonly strikeCount: {
30919
+ readonly type: "integer";
30920
+ readonly description: "Number of strikes to assign to the user for this violation.";
30921
+ };
30922
+ readonly strikeExpiresAt: {
30923
+ readonly type: "string";
30924
+ readonly format: "datetime";
30925
+ readonly description: "When the strike should expire. If not provided, the strike never expires.";
30926
+ };
30797
30927
  };
30798
30928
  };
30799
30929
  readonly modEventReverseTakedown: {
@@ -30804,6 +30934,22 @@ export declare const schemas: ({
30804
30934
  readonly type: "string";
30805
30935
  readonly description: "Describe reasoning behind the reversal.";
30806
30936
  };
30937
+ readonly policies: {
30938
+ readonly type: "array";
30939
+ readonly maxLength: 5;
30940
+ readonly items: {
30941
+ readonly type: "string";
30942
+ };
30943
+ readonly description: "Names/Keywords of the policy infraction for which takedown is being reversed.";
30944
+ };
30945
+ readonly severityLevel: {
30946
+ readonly type: "string";
30947
+ readonly description: "Severity level of the violation. Usually set from the last policy infraction's severity.";
30948
+ };
30949
+ readonly strikeCount: {
30950
+ readonly type: "integer";
30951
+ readonly description: "Number of strikes to subtract from the user's strike count. Usually set from the last policy infraction's severity.";
30952
+ };
30807
30953
  };
30808
30954
  };
30809
30955
  readonly modEventResolveAppeal: {
@@ -31036,6 +31182,27 @@ export declare const schemas: ({
31036
31182
  readonly type: "string";
31037
31183
  readonly description: "Additional comment about the outgoing comm.";
31038
31184
  };
31185
+ readonly policies: {
31186
+ readonly type: "array";
31187
+ readonly maxLength: 5;
31188
+ readonly items: {
31189
+ readonly type: "string";
31190
+ };
31191
+ readonly description: "Names/Keywords of the policies that necessitated the email.";
31192
+ };
31193
+ readonly severityLevel: {
31194
+ readonly type: "string";
31195
+ readonly description: "Severity level of the violation. Normally 'sev-1' that adds strike on repeat offense";
31196
+ };
31197
+ readonly strikeCount: {
31198
+ readonly type: "integer";
31199
+ readonly description: "Number of strikes to assign to the user for this violation. Normally 0 as an indicator of a warning and only added as a strike on a repeat offense.";
31200
+ };
31201
+ readonly strikeExpiresAt: {
31202
+ readonly type: "string";
31203
+ readonly format: "datetime";
31204
+ readonly description: "When the strike should expire. If not provided, the strike never expires.";
31205
+ };
31039
31206
  };
31040
31207
  };
31041
31208
  readonly modEventDivert: {
@@ -32244,6 +32411,10 @@ export declare const schemas: ({
32244
32411
  readonly description: "If specified, only events where the age assurance state matches the given value are returned";
32245
32412
  readonly knownValues: ["pending", "assured", "unknown", "reset", "blocked"];
32246
32413
  };
32414
+ readonly withStrike: {
32415
+ readonly type: "boolean";
32416
+ readonly description: "If specified, only events where strikeCount value is set are returned.";
32417
+ };
32247
32418
  readonly cursor: {
32248
32419
  readonly type: "string";
32249
32420
  };
@@ -32449,6 +32620,11 @@ export declare const schemas: ({
32449
32620
  readonly type: "integer";
32450
32621
  readonly description: "If specified, only subjects that have priority score value above the given value will be returned.";
32451
32622
  };
32623
+ readonly minStrikeCount: {
32624
+ readonly type: "integer";
32625
+ readonly minimum: 1;
32626
+ readonly description: "If specified, only subjects that belong to an account that has at least this many active strikes will be returned.";
32627
+ };
32452
32628
  readonly ageAssuranceState: {
32453
32629
  readonly type: "string";
32454
32630
  readonly description: "If specified, only subjects with the given age assurance state will be returned.";