@atproto/pds 0.4.69 → 0.4.71

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/api/app/bsky/feed/getPostThread.d.ts.map +1 -1
  3. package/dist/api/app/bsky/feed/getPostThread.js +11 -6
  4. package/dist/api/app/bsky/feed/getPostThread.js.map +1 -1
  5. package/dist/config/config.d.ts +1 -0
  6. package/dist/config/config.d.ts.map +1 -1
  7. package/dist/config/config.js +3 -0
  8. package/dist/config/config.js.map +1 -1
  9. package/dist/config/env.d.ts +1 -0
  10. package/dist/config/env.d.ts.map +1 -1
  11. package/dist/config/env.js +1 -0
  12. package/dist/config/env.js.map +1 -1
  13. package/dist/context.d.ts +2 -2
  14. package/dist/context.d.ts.map +1 -1
  15. package/dist/context.js +8 -1
  16. package/dist/context.js.map +1 -1
  17. package/dist/lexicon/index.d.ts +11 -0
  18. package/dist/lexicon/index.d.ts.map +1 -1
  19. package/dist/lexicon/index.js +32 -1
  20. package/dist/lexicon/index.js.map +1 -1
  21. package/dist/lexicon/lexicons.d.ts +362 -1
  22. package/dist/lexicon/lexicons.d.ts.map +1 -1
  23. package/dist/lexicon/lexicons.js +406 -5
  24. package/dist/lexicon/lexicons.js.map +1 -1
  25. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts +1 -0
  26. package/dist/lexicon/types/chat/bsky/convo/defs.d.ts.map +1 -1
  27. package/dist/lexicon/types/chat/bsky/convo/defs.js.map +1 -1
  28. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts +60 -4
  29. package/dist/lexicon/types/tools/ozone/moderation/defs.d.ts.map +1 -1
  30. package/dist/lexicon/types/tools/ozone/moderation/defs.js +50 -0
  31. package/dist/lexicon/types/tools/ozone/moderation/defs.js.map +1 -1
  32. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
  33. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  34. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts +10 -0
  35. package/dist/lexicon/types/tools/ozone/moderation/queryStatuses.d.ts.map +1 -1
  36. package/dist/lexicon/types/tools/ozone/setting/defs.d.ts +20 -0
  37. package/dist/lexicon/types/tools/ozone/setting/defs.d.ts.map +1 -0
  38. package/dist/lexicon/types/tools/ozone/setting/defs.js +15 -0
  39. package/dist/lexicon/types/tools/ozone/setting/defs.js.map +1 -0
  40. package/dist/lexicon/types/tools/ozone/setting/listOptions.d.ts +43 -0
  41. package/dist/lexicon/types/tools/ozone/setting/listOptions.d.ts.map +1 -0
  42. package/dist/lexicon/types/tools/ozone/setting/listOptions.js +3 -0
  43. package/dist/lexicon/types/tools/ozone/setting/listOptions.js.map +1 -0
  44. package/dist/lexicon/types/tools/ozone/setting/removeOptions.d.ts +40 -0
  45. package/dist/lexicon/types/tools/ozone/setting/removeOptions.d.ts.map +1 -0
  46. package/dist/lexicon/types/tools/ozone/setting/removeOptions.js +3 -0
  47. package/dist/lexicon/types/tools/ozone/setting/removeOptions.js.map +1 -0
  48. package/dist/lexicon/types/tools/ozone/setting/upsertOption.d.ts +45 -0
  49. package/dist/lexicon/types/tools/ozone/setting/upsertOption.d.ts.map +1 -0
  50. package/dist/lexicon/types/tools/ozone/setting/upsertOption.js +3 -0
  51. package/dist/lexicon/types/tools/ozone/setting/upsertOption.js.map +1 -0
  52. package/dist/pipethrough.d.ts +0 -1
  53. package/dist/pipethrough.d.ts.map +1 -1
  54. package/dist/pipethrough.js +11 -10
  55. package/dist/pipethrough.js.map +1 -1
  56. package/dist/read-after-write/viewer.d.ts.map +1 -1
  57. package/dist/read-after-write/viewer.js +1 -0
  58. package/dist/read-after-write/viewer.js.map +1 -1
  59. package/example.env +1 -1
  60. package/package.json +15 -15
  61. package/src/api/app/bsky/feed/getPostThread.ts +15 -4
  62. package/src/config/config.ts +5 -0
  63. package/src/config/env.ts +2 -0
  64. package/src/context.ts +11 -3
  65. package/src/lexicon/index.ts +46 -0
  66. package/src/lexicon/lexicons.ts +417 -5
  67. package/src/lexicon/types/chat/bsky/convo/defs.ts +1 -0
  68. package/src/lexicon/types/tools/ozone/moderation/defs.ts +132 -2
  69. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +3 -0
  70. package/src/lexicon/types/tools/ozone/moderation/queryStatuses.ts +10 -0
  71. package/src/lexicon/types/tools/ozone/setting/defs.ts +37 -0
  72. package/src/lexicon/types/tools/ozone/setting/listOptions.ts +53 -0
  73. package/src/lexicon/types/tools/ozone/setting/removeOptions.ts +49 -0
  74. package/src/lexicon/types/tools/ozone/setting/upsertOption.ts +58 -0
  75. package/src/pipethrough.ts +13 -12
  76. package/src/read-after-write/viewer.ts +1 -0
  77. package/tests/proxied/__snapshots__/admin.test.ts.snap +12 -0
  78. package/tests/proxied/proxy-catchall.test.ts +1 -1
  79. package/tests/proxied/read-after-write.test.ts +20 -1
  80. package/tsconfig.build.tsbuildinfo +1 -1
@@ -1341,7 +1341,7 @@ export const schemaDict = {
1341
1341
  },
1342
1342
  rkey: {
1343
1343
  type: 'string',
1344
- maxLength: 15,
1344
+ maxLength: 512,
1345
1345
  },
1346
1346
  value: {
1347
1347
  type: 'unknown',
@@ -1450,7 +1450,7 @@ export const schemaDict = {
1450
1450
  rkey: {
1451
1451
  type: 'string',
1452
1452
  description: 'The Record Key.',
1453
- maxLength: 15,
1453
+ maxLength: 512,
1454
1454
  },
1455
1455
  validate: {
1456
1456
  type: 'boolean',
@@ -1901,7 +1901,7 @@ export const schemaDict = {
1901
1901
  rkey: {
1902
1902
  type: 'string',
1903
1903
  description: 'The Record Key.',
1904
- maxLength: 15,
1904
+ maxLength: 512,
1905
1905
  },
1906
1906
  validate: {
1907
1907
  type: 'boolean',
@@ -9893,6 +9893,9 @@ export const schemaDict = {
9893
9893
  muted: {
9894
9894
  type: 'boolean',
9895
9895
  },
9896
+ opened: {
9897
+ type: 'boolean',
9898
+ },
9896
9899
  unreadCount: {
9897
9900
  type: 'integer',
9898
9901
  },
@@ -10821,6 +10824,9 @@ export const schemaDict = {
10821
10824
  'lex:tools.ozone.moderation.defs#modEventResolveAppeal',
10822
10825
  'lex:tools.ozone.moderation.defs#modEventDivert',
10823
10826
  'lex:tools.ozone.moderation.defs#modEventTag',
10827
+ 'lex:tools.ozone.moderation.defs#accountEvent',
10828
+ 'lex:tools.ozone.moderation.defs#identityEvent',
10829
+ 'lex:tools.ozone.moderation.defs#recordEvent',
10824
10830
  ],
10825
10831
  },
10826
10832
  subject: {
@@ -10885,6 +10891,9 @@ export const schemaDict = {
10885
10891
  'lex:tools.ozone.moderation.defs#modEventResolveAppeal',
10886
10892
  'lex:tools.ozone.moderation.defs#modEventDivert',
10887
10893
  'lex:tools.ozone.moderation.defs#modEventTag',
10894
+ 'lex:tools.ozone.moderation.defs#accountEvent',
10895
+ 'lex:tools.ozone.moderation.defs#identityEvent',
10896
+ 'lex:tools.ozone.moderation.defs#recordEvent',
10888
10897
  ],
10889
10898
  },
10890
10899
  subject: {
@@ -10927,6 +10936,13 @@ export const schemaDict = {
10927
10936
  'lex:com.atproto.repo.strongRef',
10928
10937
  ],
10929
10938
  },
10939
+ hosting: {
10940
+ type: 'union',
10941
+ refs: [
10942
+ 'lex:tools.ozone.moderation.defs#accountHosting',
10943
+ 'lex:tools.ozone.moderation.defs#recordHosting',
10944
+ ],
10945
+ },
10930
10946
  subjectBlobCids: {
10931
10947
  type: 'array',
10932
10948
  items: {
@@ -11169,14 +11185,14 @@ export const schemaDict = {
11169
11185
  modEventMuteReporter: {
11170
11186
  type: 'object',
11171
11187
  description: 'Mute incoming reports from an account',
11172
- required: ['durationInHours'],
11173
11188
  properties: {
11174
11189
  comment: {
11175
11190
  type: 'string',
11176
11191
  },
11177
11192
  durationInHours: {
11178
11193
  type: 'integer',
11179
- description: 'Indicates how long the account should remain muted.',
11194
+ description:
11195
+ 'Indicates how long the account should remain muted. Falsy value here means a permanent mute.',
11180
11196
  },
11181
11197
  },
11182
11198
  },
@@ -11246,6 +11262,86 @@ export const schemaDict = {
11246
11262
  },
11247
11263
  },
11248
11264
  },
11265
+ accountEvent: {
11266
+ type: 'object',
11267
+ description:
11268
+ 'Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.',
11269
+ required: ['timestamp', 'active'],
11270
+ properties: {
11271
+ comment: {
11272
+ type: 'string',
11273
+ },
11274
+ active: {
11275
+ type: 'boolean',
11276
+ description:
11277
+ 'Indicates that the account has a repository which can be fetched from the host that emitted this event.',
11278
+ },
11279
+ status: {
11280
+ type: 'string',
11281
+ knownValues: [
11282
+ 'unknown',
11283
+ 'deactivated',
11284
+ 'deleted',
11285
+ 'takendown',
11286
+ 'suspended',
11287
+ 'tombstoned',
11288
+ ],
11289
+ },
11290
+ timestamp: {
11291
+ type: 'string',
11292
+ format: 'datetime',
11293
+ },
11294
+ },
11295
+ },
11296
+ identityEvent: {
11297
+ type: 'object',
11298
+ description:
11299
+ 'Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.',
11300
+ required: ['timestamp'],
11301
+ properties: {
11302
+ comment: {
11303
+ type: 'string',
11304
+ },
11305
+ handle: {
11306
+ type: 'string',
11307
+ format: 'handle',
11308
+ },
11309
+ pdsHost: {
11310
+ type: 'string',
11311
+ format: 'uri',
11312
+ },
11313
+ tombstone: {
11314
+ type: 'boolean',
11315
+ },
11316
+ timestamp: {
11317
+ type: 'string',
11318
+ format: 'datetime',
11319
+ },
11320
+ },
11321
+ },
11322
+ recordEvent: {
11323
+ type: 'object',
11324
+ description:
11325
+ 'Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking.',
11326
+ required: ['timestamp', 'op'],
11327
+ properties: {
11328
+ comment: {
11329
+ type: 'string',
11330
+ },
11331
+ op: {
11332
+ type: 'string',
11333
+ knownValues: ['create', 'update', 'delete'],
11334
+ },
11335
+ cid: {
11336
+ type: 'string',
11337
+ format: 'cid',
11338
+ },
11339
+ timestamp: {
11340
+ type: 'string',
11341
+ format: 'datetime',
11342
+ },
11343
+ },
11344
+ },
11249
11345
  repoView: {
11250
11346
  type: 'object',
11251
11347
  required: [
@@ -11571,6 +11667,64 @@ export const schemaDict = {
11571
11667
  },
11572
11668
  },
11573
11669
  },
11670
+ accountHosting: {
11671
+ type: 'object',
11672
+ required: ['status'],
11673
+ properties: {
11674
+ status: {
11675
+ type: 'string',
11676
+ knownValues: [
11677
+ 'takendown',
11678
+ 'suspended',
11679
+ 'deleted',
11680
+ 'deactivated',
11681
+ 'unknown',
11682
+ ],
11683
+ },
11684
+ updatedAt: {
11685
+ type: 'string',
11686
+ format: 'datetime',
11687
+ },
11688
+ createdAt: {
11689
+ type: 'string',
11690
+ format: 'datetime',
11691
+ },
11692
+ deletedAt: {
11693
+ type: 'string',
11694
+ format: 'datetime',
11695
+ },
11696
+ deactivatedAt: {
11697
+ type: 'string',
11698
+ format: 'datetime',
11699
+ },
11700
+ reactivatedAt: {
11701
+ type: 'string',
11702
+ format: 'datetime',
11703
+ },
11704
+ },
11705
+ },
11706
+ recordHosting: {
11707
+ type: 'object',
11708
+ required: ['status'],
11709
+ properties: {
11710
+ status: {
11711
+ type: 'string',
11712
+ knownValues: ['deleted', 'unknown'],
11713
+ },
11714
+ updatedAt: {
11715
+ type: 'string',
11716
+ format: 'datetime',
11717
+ },
11718
+ createdAt: {
11719
+ type: 'string',
11720
+ format: 'datetime',
11721
+ },
11722
+ deletedAt: {
11723
+ type: 'string',
11724
+ format: 'datetime',
11725
+ },
11726
+ },
11727
+ },
11574
11728
  },
11575
11729
  },
11576
11730
  ToolsOzoneModerationEmitEvent: {
@@ -11603,6 +11757,9 @@ export const schemaDict = {
11603
11757
  'lex:tools.ozone.moderation.defs#modEventResolveAppeal',
11604
11758
  'lex:tools.ozone.moderation.defs#modEventEmail',
11605
11759
  'lex:tools.ozone.moderation.defs#modEventTag',
11760
+ 'lex:tools.ozone.moderation.defs#accountEvent',
11761
+ 'lex:tools.ozone.moderation.defs#identityEvent',
11762
+ 'lex:tools.ozone.moderation.defs#recordEvent',
11606
11763
  ],
11607
11764
  },
11608
11765
  subject: {
@@ -12005,6 +12162,38 @@ export const schemaDict = {
12005
12162
  format: 'datetime',
12006
12163
  description: 'Search subjects reviewed after a given timestamp',
12007
12164
  },
12165
+ hostingDeletedAfter: {
12166
+ type: 'string',
12167
+ format: 'datetime',
12168
+ description:
12169
+ 'Search subjects where the associated record/account was deleted after a given timestamp',
12170
+ },
12171
+ hostingDeletedBefore: {
12172
+ type: 'string',
12173
+ format: 'datetime',
12174
+ description:
12175
+ 'Search subjects where the associated record/account was deleted before a given timestamp',
12176
+ },
12177
+ hostingUpdatedAfter: {
12178
+ type: 'string',
12179
+ format: 'datetime',
12180
+ description:
12181
+ 'Search subjects where the associated record/account was updated after a given timestamp',
12182
+ },
12183
+ hostingUpdatedBefore: {
12184
+ type: 'string',
12185
+ format: 'datetime',
12186
+ description:
12187
+ 'Search subjects where the associated record/account was updated before a given timestamp',
12188
+ },
12189
+ hostingStatuses: {
12190
+ type: 'array',
12191
+ items: {
12192
+ type: 'string',
12193
+ },
12194
+ description:
12195
+ 'Search subjects by the status of the associated record/account',
12196
+ },
12008
12197
  reviewedBefore: {
12009
12198
  type: 'string',
12010
12199
  format: 'datetime',
@@ -12520,6 +12709,225 @@ export const schemaDict = {
12520
12709
  },
12521
12710
  },
12522
12711
  },
12712
+ ToolsOzoneSettingDefs: {
12713
+ lexicon: 1,
12714
+ id: 'tools.ozone.setting.defs',
12715
+ defs: {
12716
+ option: {
12717
+ type: 'object',
12718
+ required: [
12719
+ 'key',
12720
+ 'value',
12721
+ 'did',
12722
+ 'scope',
12723
+ 'createdBy',
12724
+ 'lastUpdatedBy',
12725
+ ],
12726
+ properties: {
12727
+ key: {
12728
+ type: 'string',
12729
+ format: 'nsid',
12730
+ },
12731
+ did: {
12732
+ type: 'string',
12733
+ format: 'did',
12734
+ },
12735
+ value: {
12736
+ type: 'unknown',
12737
+ },
12738
+ description: {
12739
+ type: 'string',
12740
+ maxGraphemes: 1024,
12741
+ maxLength: 10240,
12742
+ },
12743
+ createdAt: {
12744
+ type: 'string',
12745
+ format: 'datetime',
12746
+ },
12747
+ updatedAt: {
12748
+ type: 'string',
12749
+ format: 'datetime',
12750
+ },
12751
+ managerRole: {
12752
+ type: 'string',
12753
+ knownValues: [
12754
+ 'tools.ozone.team.defs#roleModerator',
12755
+ 'tools.ozone.team.defs#roleTriage',
12756
+ 'tools.ozone.team.defs#roleAdmin',
12757
+ ],
12758
+ },
12759
+ scope: {
12760
+ type: 'string',
12761
+ knownValues: ['instance', 'personal'],
12762
+ },
12763
+ createdBy: {
12764
+ type: 'string',
12765
+ format: 'did',
12766
+ },
12767
+ lastUpdatedBy: {
12768
+ type: 'string',
12769
+ format: 'did',
12770
+ },
12771
+ },
12772
+ },
12773
+ },
12774
+ },
12775
+ ToolsOzoneSettingListOptions: {
12776
+ lexicon: 1,
12777
+ id: 'tools.ozone.setting.listOptions',
12778
+ defs: {
12779
+ main: {
12780
+ type: 'query',
12781
+ description: 'List settings with optional filtering',
12782
+ parameters: {
12783
+ type: 'params',
12784
+ properties: {
12785
+ limit: {
12786
+ type: 'integer',
12787
+ minimum: 1,
12788
+ maximum: 100,
12789
+ default: 50,
12790
+ },
12791
+ cursor: {
12792
+ type: 'string',
12793
+ },
12794
+ scope: {
12795
+ type: 'string',
12796
+ knownValues: ['instance', 'personal'],
12797
+ default: 'instance',
12798
+ },
12799
+ prefix: {
12800
+ type: 'string',
12801
+ description: 'Filter keys by prefix',
12802
+ },
12803
+ keys: {
12804
+ type: 'array',
12805
+ maxLength: 100,
12806
+ items: {
12807
+ type: 'string',
12808
+ format: 'nsid',
12809
+ },
12810
+ description:
12811
+ 'Filter for only the specified keys. Ignored if prefix is provided',
12812
+ },
12813
+ },
12814
+ },
12815
+ output: {
12816
+ encoding: 'application/json',
12817
+ schema: {
12818
+ type: 'object',
12819
+ required: ['options'],
12820
+ properties: {
12821
+ cursor: {
12822
+ type: 'string',
12823
+ },
12824
+ options: {
12825
+ type: 'array',
12826
+ items: {
12827
+ type: 'ref',
12828
+ ref: 'lex:tools.ozone.setting.defs#option',
12829
+ },
12830
+ },
12831
+ },
12832
+ },
12833
+ },
12834
+ },
12835
+ },
12836
+ },
12837
+ ToolsOzoneSettingRemoveOptions: {
12838
+ lexicon: 1,
12839
+ id: 'tools.ozone.setting.removeOptions',
12840
+ defs: {
12841
+ main: {
12842
+ type: 'procedure',
12843
+ description: 'Delete settings by key',
12844
+ input: {
12845
+ encoding: 'application/json',
12846
+ schema: {
12847
+ type: 'object',
12848
+ required: ['keys', 'scope'],
12849
+ properties: {
12850
+ keys: {
12851
+ type: 'array',
12852
+ minLength: 1,
12853
+ maxLength: 200,
12854
+ items: {
12855
+ type: 'string',
12856
+ format: 'nsid',
12857
+ },
12858
+ },
12859
+ scope: {
12860
+ type: 'string',
12861
+ knownValues: ['instance', 'personal'],
12862
+ },
12863
+ },
12864
+ },
12865
+ },
12866
+ output: {
12867
+ encoding: 'application/json',
12868
+ schema: {
12869
+ type: 'object',
12870
+ properties: {},
12871
+ },
12872
+ },
12873
+ },
12874
+ },
12875
+ },
12876
+ ToolsOzoneSettingUpsertOption: {
12877
+ lexicon: 1,
12878
+ id: 'tools.ozone.setting.upsertOption',
12879
+ defs: {
12880
+ main: {
12881
+ type: 'procedure',
12882
+ description: 'Create or update setting option',
12883
+ input: {
12884
+ encoding: 'application/json',
12885
+ schema: {
12886
+ type: 'object',
12887
+ required: ['key', 'scope', 'value'],
12888
+ properties: {
12889
+ key: {
12890
+ type: 'string',
12891
+ format: 'nsid',
12892
+ },
12893
+ scope: {
12894
+ type: 'string',
12895
+ knownValues: ['instance', 'personal'],
12896
+ },
12897
+ value: {
12898
+ type: 'unknown',
12899
+ },
12900
+ description: {
12901
+ type: 'string',
12902
+ maxLength: 2000,
12903
+ },
12904
+ managerRole: {
12905
+ type: 'string',
12906
+ knownValues: [
12907
+ 'tools.ozone.team.defs#roleModerator',
12908
+ 'tools.ozone.team.defs#roleTriage',
12909
+ 'tools.ozone.team.defs#roleAdmin',
12910
+ ],
12911
+ },
12912
+ },
12913
+ },
12914
+ },
12915
+ output: {
12916
+ encoding: 'application/json',
12917
+ schema: {
12918
+ type: 'object',
12919
+ required: ['option'],
12920
+ properties: {
12921
+ option: {
12922
+ type: 'ref',
12923
+ ref: 'lex:tools.ozone.setting.defs#option',
12924
+ },
12925
+ },
12926
+ },
12927
+ },
12928
+ },
12929
+ },
12930
+ },
12523
12931
  ToolsOzoneSignatureDefs: {
12524
12932
  lexicon: 1,
12525
12933
  id: 'tools.ozone.signature.defs',
@@ -13153,6 +13561,10 @@ export const ids = {
13153
13561
  ToolsOzoneSetGetValues: 'tools.ozone.set.getValues',
13154
13562
  ToolsOzoneSetQuerySets: 'tools.ozone.set.querySets',
13155
13563
  ToolsOzoneSetUpsertSet: 'tools.ozone.set.upsertSet',
13564
+ ToolsOzoneSettingDefs: 'tools.ozone.setting.defs',
13565
+ ToolsOzoneSettingListOptions: 'tools.ozone.setting.listOptions',
13566
+ ToolsOzoneSettingRemoveOptions: 'tools.ozone.setting.removeOptions',
13567
+ ToolsOzoneSettingUpsertOption: 'tools.ozone.setting.upsertOption',
13156
13568
  ToolsOzoneSignatureDefs: 'tools.ozone.signature.defs',
13157
13569
  ToolsOzoneSignatureFindCorrelation: 'tools.ozone.signature.findCorrelation',
13158
13570
  ToolsOzoneSignatureFindRelatedAccounts:
@@ -118,6 +118,7 @@ export interface ConvoView {
118
118
  | DeletedMessageView
119
119
  | { $type: string; [k: string]: unknown }
120
120
  muted: boolean
121
+ opened?: boolean
121
122
  unreadCount: number
122
123
  [k: string]: unknown
123
124
  }
@@ -30,6 +30,9 @@ export interface ModEventView {
30
30
  | ModEventResolveAppeal
31
31
  | ModEventDivert
32
32
  | ModEventTag
33
+ | AccountEvent
34
+ | IdentityEvent
35
+ | RecordEvent
33
36
  | { $type: string; [k: string]: unknown }
34
37
  subject:
35
38
  | ComAtprotoAdminDefs.RepoRef
@@ -74,6 +77,9 @@ export interface ModEventViewDetail {
74
77
  | ModEventResolveAppeal
75
78
  | ModEventDivert
76
79
  | ModEventTag
80
+ | AccountEvent
81
+ | IdentityEvent
82
+ | RecordEvent
77
83
  | { $type: string; [k: string]: unknown }
78
84
  subject:
79
85
  | RepoView
@@ -105,6 +111,10 @@ export interface SubjectStatusView {
105
111
  | ComAtprotoAdminDefs.RepoRef
106
112
  | ComAtprotoRepoStrongRef.Main
107
113
  | { $type: string; [k: string]: unknown }
114
+ hosting?:
115
+ | AccountHosting
116
+ | RecordHosting
117
+ | { $type: string; [k: string]: unknown }
108
118
  subjectBlobCids?: string[]
109
119
  subjectRepoHandle?: string
110
120
  /** Timestamp referencing when the last update was made to the moderation status of the subject */
@@ -364,8 +374,8 @@ export function validateModEventUnmute(v: unknown): ValidationResult {
364
374
  /** Mute incoming reports from an account */
365
375
  export interface ModEventMuteReporter {
366
376
  comment?: string
367
- /** Indicates how long the account should remain muted. */
368
- durationInHours: number
377
+ /** Indicates how long the account should remain muted. Falsy value here means a permanent mute. */
378
+ durationInHours?: number
369
379
  [k: string]: unknown
370
380
  }
371
381
 
@@ -472,6 +482,78 @@ export function validateModEventTag(v: unknown): ValidationResult {
472
482
  return lexicons.validate('tools.ozone.moderation.defs#modEventTag', v)
473
483
  }
474
484
 
485
+ /** Logs account status related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */
486
+ export interface AccountEvent {
487
+ comment?: string
488
+ /** Indicates that the account has a repository which can be fetched from the host that emitted this event. */
489
+ active: boolean
490
+ status?:
491
+ | 'unknown'
492
+ | 'deactivated'
493
+ | 'deleted'
494
+ | 'takendown'
495
+ | 'suspended'
496
+ | 'tombstoned'
497
+ | (string & {})
498
+ timestamp: string
499
+ [k: string]: unknown
500
+ }
501
+
502
+ export function isAccountEvent(v: unknown): v is AccountEvent {
503
+ return (
504
+ isObj(v) &&
505
+ hasProp(v, '$type') &&
506
+ v.$type === 'tools.ozone.moderation.defs#accountEvent'
507
+ )
508
+ }
509
+
510
+ export function validateAccountEvent(v: unknown): ValidationResult {
511
+ return lexicons.validate('tools.ozone.moderation.defs#accountEvent', v)
512
+ }
513
+
514
+ /** Logs identity related events on a repo subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */
515
+ export interface IdentityEvent {
516
+ comment?: string
517
+ handle?: string
518
+ pdsHost?: string
519
+ tombstone?: boolean
520
+ timestamp: string
521
+ [k: string]: unknown
522
+ }
523
+
524
+ export function isIdentityEvent(v: unknown): v is IdentityEvent {
525
+ return (
526
+ isObj(v) &&
527
+ hasProp(v, '$type') &&
528
+ v.$type === 'tools.ozone.moderation.defs#identityEvent'
529
+ )
530
+ }
531
+
532
+ export function validateIdentityEvent(v: unknown): ValidationResult {
533
+ return lexicons.validate('tools.ozone.moderation.defs#identityEvent', v)
534
+ }
535
+
536
+ /** Logs lifecycle event on a record subject. Normally captured by automod from the firehose and emitted to ozone for historical tracking. */
537
+ export interface RecordEvent {
538
+ comment?: string
539
+ op: 'create' | 'update' | 'delete' | (string & {})
540
+ cid?: string
541
+ timestamp: string
542
+ [k: string]: unknown
543
+ }
544
+
545
+ export function isRecordEvent(v: unknown): v is RecordEvent {
546
+ return (
547
+ isObj(v) &&
548
+ hasProp(v, '$type') &&
549
+ v.$type === 'tools.ozone.moderation.defs#recordEvent'
550
+ )
551
+ }
552
+
553
+ export function validateRecordEvent(v: unknown): ValidationResult {
554
+ return lexicons.validate('tools.ozone.moderation.defs#recordEvent', v)
555
+ }
556
+
475
557
  export interface RepoView {
476
558
  did: string
477
559
  handle: string
@@ -705,3 +787,51 @@ export function isVideoDetails(v: unknown): v is VideoDetails {
705
787
  export function validateVideoDetails(v: unknown): ValidationResult {
706
788
  return lexicons.validate('tools.ozone.moderation.defs#videoDetails', v)
707
789
  }
790
+
791
+ export interface AccountHosting {
792
+ status:
793
+ | 'takendown'
794
+ | 'suspended'
795
+ | 'deleted'
796
+ | 'deactivated'
797
+ | 'unknown'
798
+ | (string & {})
799
+ updatedAt?: string
800
+ createdAt?: string
801
+ deletedAt?: string
802
+ deactivatedAt?: string
803
+ reactivatedAt?: string
804
+ [k: string]: unknown
805
+ }
806
+
807
+ export function isAccountHosting(v: unknown): v is AccountHosting {
808
+ return (
809
+ isObj(v) &&
810
+ hasProp(v, '$type') &&
811
+ v.$type === 'tools.ozone.moderation.defs#accountHosting'
812
+ )
813
+ }
814
+
815
+ export function validateAccountHosting(v: unknown): ValidationResult {
816
+ return lexicons.validate('tools.ozone.moderation.defs#accountHosting', v)
817
+ }
818
+
819
+ export interface RecordHosting {
820
+ status: 'deleted' | 'unknown' | (string & {})
821
+ updatedAt?: string
822
+ createdAt?: string
823
+ deletedAt?: string
824
+ [k: string]: unknown
825
+ }
826
+
827
+ export function isRecordHosting(v: unknown): v is RecordHosting {
828
+ return (
829
+ isObj(v) &&
830
+ hasProp(v, '$type') &&
831
+ v.$type === 'tools.ozone.moderation.defs#recordHosting'
832
+ )
833
+ }
834
+
835
+ export function validateRecordHosting(v: unknown): ValidationResult {
836
+ return lexicons.validate('tools.ozone.moderation.defs#recordHosting', v)
837
+ }
@@ -29,6 +29,9 @@ export interface InputSchema {
29
29
  | ToolsOzoneModerationDefs.ModEventResolveAppeal
30
30
  | ToolsOzoneModerationDefs.ModEventEmail
31
31
  | ToolsOzoneModerationDefs.ModEventTag
32
+ | ToolsOzoneModerationDefs.AccountEvent
33
+ | ToolsOzoneModerationDefs.IdentityEvent
34
+ | ToolsOzoneModerationDefs.RecordEvent
32
35
  | { $type: string; [k: string]: unknown }
33
36
  subject:
34
37
  | ComAtprotoAdminDefs.RepoRef