@atproto/ozone 0.1.41 → 0.1.42

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 (63) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/lexicon/index.d.ts +11 -0
  3. package/dist/lexicon/index.d.ts.map +1 -1
  4. package/dist/lexicon/index.js +32 -1
  5. package/dist/lexicon/index.js.map +1 -1
  6. package/dist/lexicon/lexicons.d.ts +236 -15
  7. package/dist/lexicon/lexicons.d.ts.map +1 -1
  8. package/dist/lexicon/lexicons.js +247 -18
  9. package/dist/lexicon/lexicons.js.map +1 -1
  10. package/dist/lexicon/types/app/bsky/embed/defs.d.ts +13 -0
  11. package/dist/lexicon/types/app/bsky/embed/defs.d.ts.map +1 -0
  12. package/dist/lexicon/types/app/bsky/embed/defs.js +16 -0
  13. package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -0
  14. package/dist/lexicon/types/app/bsky/embed/images.d.ts +3 -10
  15. package/dist/lexicon/types/app/bsky/embed/images.d.ts.map +1 -1
  16. package/dist/lexicon/types/app/bsky/embed/images.js +1 -11
  17. package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
  18. package/dist/lexicon/types/app/bsky/embed/record.d.ts +2 -1
  19. package/dist/lexicon/types/app/bsky/embed/record.d.ts.map +1 -1
  20. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  21. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.d.ts +3 -2
  22. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.d.ts.map +1 -1
  23. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
  24. package/dist/lexicon/types/app/bsky/embed/video.d.ts +33 -0
  25. package/dist/lexicon/types/app/bsky/embed/video.d.ts.map +1 -0
  26. package/dist/lexicon/types/app/bsky/embed/video.js +35 -0
  27. package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -0
  28. package/dist/lexicon/types/app/bsky/feed/defs.d.ts +2 -1
  29. package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
  30. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  31. package/dist/lexicon/types/app/bsky/feed/post.d.ts +2 -1
  32. package/dist/lexicon/types/app/bsky/feed/post.d.ts.map +1 -1
  33. package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
  34. package/dist/lexicon/types/app/bsky/video/defs.d.ts +19 -0
  35. package/dist/lexicon/types/app/bsky/video/defs.d.ts.map +1 -0
  36. package/dist/lexicon/types/app/bsky/video/defs.js +16 -0
  37. package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -0
  38. package/dist/lexicon/types/app/bsky/video/getJobStatus.d.ts +36 -0
  39. package/dist/lexicon/types/app/bsky/video/getJobStatus.d.ts.map +1 -0
  40. package/dist/lexicon/types/app/bsky/video/getJobStatus.js +3 -0
  41. package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -0
  42. package/dist/lexicon/types/app/bsky/video/getUploadLimits.d.ts +38 -0
  43. package/dist/lexicon/types/app/bsky/video/getUploadLimits.d.ts.map +1 -0
  44. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js +3 -0
  45. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -0
  46. package/dist/lexicon/types/app/bsky/video/uploadVideo.d.ts +41 -0
  47. package/dist/lexicon/types/app/bsky/video/uploadVideo.d.ts.map +1 -0
  48. package/dist/lexicon/types/app/bsky/video/uploadVideo.js +3 -0
  49. package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -0
  50. package/package.json +3 -3
  51. package/src/lexicon/index.ts +46 -0
  52. package/src/lexicon/lexicons.ts +250 -19
  53. package/src/lexicon/types/app/bsky/embed/defs.ts +26 -0
  54. package/src/lexicon/types/app/bsky/embed/images.ts +3 -21
  55. package/src/lexicon/types/app/bsky/embed/record.ts +2 -0
  56. package/src/lexicon/types/app/bsky/embed/recordWithMedia.ts +3 -0
  57. package/src/lexicon/types/app/bsky/embed/video.ts +67 -0
  58. package/src/lexicon/types/app/bsky/feed/defs.ts +2 -0
  59. package/src/lexicon/types/app/bsky/feed/post.ts +2 -0
  60. package/src/lexicon/types/app/bsky/video/defs.ts +32 -0
  61. package/src/lexicon/types/app/bsky/video/getJobStatus.ts +46 -0
  62. package/src/lexicon/types/app/bsky/video/getUploadLimits.ts +47 -0
  63. package/src/lexicon/types/app/bsky/video/uploadVideo.ts +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploadVideo.js","sourceRoot":"","sources":["../../../../../../src/lexicon/types/app/bsky/video/uploadVideo.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/ozone",
3
- "version": "0.1.41",
3
+ "version": "0.1.42",
4
4
  "license": "MIT",
5
5
  "description": "Backend service for moderating the Bluesky network.",
6
6
  "keywords": [
@@ -32,7 +32,7 @@
32
32
  "structured-headers": "^1.0.1",
33
33
  "typed-emitter": "^2.1.0",
34
34
  "uint8arrays": "3.0.0",
35
- "@atproto/api": "^0.13.4",
35
+ "@atproto/api": "^0.13.5",
36
36
  "@atproto/common": "^0.4.1",
37
37
  "@atproto/crypto": "^0.4.1",
38
38
  "@atproto/identity": "^0.4.1",
@@ -52,7 +52,7 @@
52
52
  "jest": "^28.1.2",
53
53
  "ts-node": "^10.8.2",
54
54
  "@atproto/lex-cli": "^0.5.0",
55
- "@atproto/pds": "^0.4.54"
55
+ "@atproto/pds": "^0.4.56"
56
56
  },
57
57
  "scripts": {
58
58
  "codegen": "lex gen-server --yes ./src/lexicon ../../lexicons/com/atproto/*/* ../../lexicons/app/bsky/*/* ../../lexicons/chat/bsky/*/* ../../lexicons/tools/ozone/*/*",
@@ -139,6 +139,9 @@ import * as AppBskyUnspeccedGetSuggestionsSkeleton from './types/app/bsky/unspec
139
139
  import * as AppBskyUnspeccedGetTaggedSuggestions from './types/app/bsky/unspecced/getTaggedSuggestions'
140
140
  import * as AppBskyUnspeccedSearchActorsSkeleton from './types/app/bsky/unspecced/searchActorsSkeleton'
141
141
  import * as AppBskyUnspeccedSearchPostsSkeleton from './types/app/bsky/unspecced/searchPostsSkeleton'
142
+ import * as AppBskyVideoGetJobStatus from './types/app/bsky/video/getJobStatus'
143
+ import * as AppBskyVideoGetUploadLimits from './types/app/bsky/video/getUploadLimits'
144
+ import * as AppBskyVideoUploadVideo from './types/app/bsky/video/uploadVideo'
142
145
  import * as ChatBskyActorDeleteAccount from './types/chat/bsky/actor/deleteAccount'
143
146
  import * as ChatBskyActorExportAccountData from './types/chat/bsky/actor/exportAccountData'
144
147
  import * as ChatBskyConvoDeleteMessageForSelf from './types/chat/bsky/convo/deleteMessageForSelf'
@@ -1169,6 +1172,7 @@ export class AppBskyNS {
1169
1172
  notification: AppBskyNotificationNS
1170
1173
  richtext: AppBskyRichtextNS
1171
1174
  unspecced: AppBskyUnspeccedNS
1175
+ video: AppBskyVideoNS
1172
1176
 
1173
1177
  constructor(server: Server) {
1174
1178
  this._server = server
@@ -1180,6 +1184,7 @@ export class AppBskyNS {
1180
1184
  this.notification = new AppBskyNotificationNS(server)
1181
1185
  this.richtext = new AppBskyRichtextNS(server)
1182
1186
  this.unspecced = new AppBskyUnspeccedNS(server)
1187
+ this.video = new AppBskyVideoNS(server)
1183
1188
  }
1184
1189
  }
1185
1190
 
@@ -1863,6 +1868,47 @@ export class AppBskyUnspeccedNS {
1863
1868
  }
1864
1869
  }
1865
1870
 
1871
+ export class AppBskyVideoNS {
1872
+ _server: Server
1873
+
1874
+ constructor(server: Server) {
1875
+ this._server = server
1876
+ }
1877
+
1878
+ getJobStatus<AV extends AuthVerifier>(
1879
+ cfg: ConfigOf<
1880
+ AV,
1881
+ AppBskyVideoGetJobStatus.Handler<ExtractAuth<AV>>,
1882
+ AppBskyVideoGetJobStatus.HandlerReqCtx<ExtractAuth<AV>>
1883
+ >,
1884
+ ) {
1885
+ const nsid = 'app.bsky.video.getJobStatus' // @ts-ignore
1886
+ return this._server.xrpc.method(nsid, cfg)
1887
+ }
1888
+
1889
+ getUploadLimits<AV extends AuthVerifier>(
1890
+ cfg: ConfigOf<
1891
+ AV,
1892
+ AppBskyVideoGetUploadLimits.Handler<ExtractAuth<AV>>,
1893
+ AppBskyVideoGetUploadLimits.HandlerReqCtx<ExtractAuth<AV>>
1894
+ >,
1895
+ ) {
1896
+ const nsid = 'app.bsky.video.getUploadLimits' // @ts-ignore
1897
+ return this._server.xrpc.method(nsid, cfg)
1898
+ }
1899
+
1900
+ uploadVideo<AV extends AuthVerifier>(
1901
+ cfg: ConfigOf<
1902
+ AV,
1903
+ AppBskyVideoUploadVideo.Handler<ExtractAuth<AV>>,
1904
+ AppBskyVideoUploadVideo.HandlerReqCtx<ExtractAuth<AV>>
1905
+ >,
1906
+ ) {
1907
+ const nsid = 'app.bsky.video.uploadVideo' // @ts-ignore
1908
+ return this._server.xrpc.method(nsid, cfg)
1909
+ }
1910
+ }
1911
+
1866
1912
  export class ChatNS {
1867
1913
  _server: Server
1868
1914
  bsky: ChatBskyNS
@@ -4796,6 +4796,28 @@ export const schemaDict = {
4796
4796
  },
4797
4797
  },
4798
4798
  },
4799
+ AppBskyEmbedDefs: {
4800
+ lexicon: 1,
4801
+ id: 'app.bsky.embed.defs',
4802
+ defs: {
4803
+ aspectRatio: {
4804
+ type: 'object',
4805
+ description:
4806
+ 'width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit.',
4807
+ required: ['width', 'height'],
4808
+ properties: {
4809
+ width: {
4810
+ type: 'integer',
4811
+ minimum: 1,
4812
+ },
4813
+ height: {
4814
+ type: 'integer',
4815
+ minimum: 1,
4816
+ },
4817
+ },
4818
+ },
4819
+ },
4820
+ },
4799
4821
  AppBskyEmbedExternal: {
4800
4822
  lexicon: 1,
4801
4823
  id: 'app.bsky.embed.external',
@@ -4900,23 +4922,7 @@ export const schemaDict = {
4900
4922
  },
4901
4923
  aspectRatio: {
4902
4924
  type: 'ref',
4903
- ref: 'lex:app.bsky.embed.images#aspectRatio',
4904
- },
4905
- },
4906
- },
4907
- aspectRatio: {
4908
- type: 'object',
4909
- description:
4910
- 'width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit.',
4911
- required: ['width', 'height'],
4912
- properties: {
4913
- width: {
4914
- type: 'integer',
4915
- minimum: 1,
4916
- },
4917
- height: {
4918
- type: 'integer',
4919
- minimum: 1,
4925
+ ref: 'lex:app.bsky.embed.defs#aspectRatio',
4920
4926
  },
4921
4927
  },
4922
4928
  },
@@ -4957,7 +4963,7 @@ export const schemaDict = {
4957
4963
  },
4958
4964
  aspectRatio: {
4959
4965
  type: 'ref',
4960
- ref: 'lex:app.bsky.embed.images#aspectRatio',
4966
+ ref: 'lex:app.bsky.embed.defs#aspectRatio',
4961
4967
  },
4962
4968
  },
4963
4969
  },
@@ -5043,6 +5049,7 @@ export const schemaDict = {
5043
5049
  type: 'union',
5044
5050
  refs: [
5045
5051
  'lex:app.bsky.embed.images#view',
5052
+ 'lex:app.bsky.embed.video#view',
5046
5053
  'lex:app.bsky.embed.external#view',
5047
5054
  'lex:app.bsky.embed.record#view',
5048
5055
  'lex:app.bsky.embed.recordWithMedia#view',
@@ -5119,7 +5126,11 @@ export const schemaDict = {
5119
5126
  },
5120
5127
  media: {
5121
5128
  type: 'union',
5122
- refs: ['lex:app.bsky.embed.images', 'lex:app.bsky.embed.external'],
5129
+ refs: [
5130
+ 'lex:app.bsky.embed.images',
5131
+ 'lex:app.bsky.embed.video',
5132
+ 'lex:app.bsky.embed.external',
5133
+ ],
5123
5134
  },
5124
5135
  },
5125
5136
  },
@@ -5135,6 +5146,7 @@ export const schemaDict = {
5135
5146
  type: 'union',
5136
5147
  refs: [
5137
5148
  'lex:app.bsky.embed.images#view',
5149
+ 'lex:app.bsky.embed.video#view',
5138
5150
  'lex:app.bsky.embed.external#view',
5139
5151
  ],
5140
5152
  },
@@ -5142,6 +5154,85 @@ export const schemaDict = {
5142
5154
  },
5143
5155
  },
5144
5156
  },
5157
+ AppBskyEmbedVideo: {
5158
+ lexicon: 1,
5159
+ id: 'app.bsky.embed.video',
5160
+ description: 'A video embedded in a Bluesky record (eg, a post).',
5161
+ defs: {
5162
+ main: {
5163
+ type: 'object',
5164
+ required: ['video'],
5165
+ properties: {
5166
+ video: {
5167
+ type: 'blob',
5168
+ accept: ['video/mp4'],
5169
+ maxSize: 50000000,
5170
+ },
5171
+ captions: {
5172
+ type: 'array',
5173
+ items: {
5174
+ type: 'ref',
5175
+ ref: 'lex:app.bsky.embed.video#caption',
5176
+ },
5177
+ maxLength: 20,
5178
+ },
5179
+ alt: {
5180
+ type: 'string',
5181
+ description:
5182
+ 'Alt text description of the video, for accessibility.',
5183
+ maxGraphemes: 1000,
5184
+ maxLength: 10000,
5185
+ },
5186
+ aspectRatio: {
5187
+ type: 'ref',
5188
+ ref: 'lex:app.bsky.embed.defs#aspectRatio',
5189
+ },
5190
+ },
5191
+ },
5192
+ caption: {
5193
+ type: 'object',
5194
+ required: ['lang', 'file'],
5195
+ properties: {
5196
+ lang: {
5197
+ type: 'string',
5198
+ format: 'language',
5199
+ },
5200
+ file: {
5201
+ type: 'blob',
5202
+ accept: ['text/vtt'],
5203
+ maxSize: 20000,
5204
+ },
5205
+ },
5206
+ },
5207
+ view: {
5208
+ type: 'object',
5209
+ required: ['cid', 'playlist'],
5210
+ properties: {
5211
+ cid: {
5212
+ type: 'string',
5213
+ format: 'cid',
5214
+ },
5215
+ playlist: {
5216
+ type: 'string',
5217
+ format: 'uri',
5218
+ },
5219
+ thumbnail: {
5220
+ type: 'string',
5221
+ format: 'uri',
5222
+ },
5223
+ alt: {
5224
+ type: 'string',
5225
+ maxGraphemes: 1000,
5226
+ maxLength: 10000,
5227
+ },
5228
+ aspectRatio: {
5229
+ type: 'ref',
5230
+ ref: 'lex:app.bsky.embed.defs#aspectRatio',
5231
+ },
5232
+ },
5233
+ },
5234
+ },
5235
+ },
5145
5236
  AppBskyFeedDefs: {
5146
5237
  lexicon: 1,
5147
5238
  id: 'app.bsky.feed.defs',
@@ -5169,6 +5260,7 @@ export const schemaDict = {
5169
5260
  type: 'union',
5170
5261
  refs: [
5171
5262
  'lex:app.bsky.embed.images#view',
5263
+ 'lex:app.bsky.embed.video#view',
5172
5264
  'lex:app.bsky.embed.external#view',
5173
5265
  'lex:app.bsky.embed.record#view',
5174
5266
  'lex:app.bsky.embed.recordWithMedia#view',
@@ -6596,6 +6688,7 @@ export const schemaDict = {
6596
6688
  type: 'union',
6597
6689
  refs: [
6598
6690
  'lex:app.bsky.embed.images',
6691
+ 'lex:app.bsky.embed.video',
6599
6692
  'lex:app.bsky.embed.external',
6600
6693
  'lex:app.bsky.embed.record',
6601
6694
  'lex:app.bsky.embed.recordWithMedia',
@@ -9199,6 +9292,138 @@ export const schemaDict = {
9199
9292
  },
9200
9293
  },
9201
9294
  },
9295
+ AppBskyVideoDefs: {
9296
+ lexicon: 1,
9297
+ id: 'app.bsky.video.defs',
9298
+ defs: {
9299
+ jobStatus: {
9300
+ type: 'object',
9301
+ required: ['jobId', 'did', 'state'],
9302
+ properties: {
9303
+ jobId: {
9304
+ type: 'string',
9305
+ },
9306
+ did: {
9307
+ type: 'string',
9308
+ format: 'did',
9309
+ },
9310
+ state: {
9311
+ type: 'string',
9312
+ description:
9313
+ 'The state of the video processing job. All values not listed as a known value indicate that the job is in process.',
9314
+ knownValues: ['JOB_STATE_COMPLETED', 'JOB_STATE_FAILED'],
9315
+ },
9316
+ progress: {
9317
+ type: 'integer',
9318
+ minimum: 0,
9319
+ maximum: 100,
9320
+ description: 'Progress within the current processing state.',
9321
+ },
9322
+ blob: {
9323
+ type: 'blob',
9324
+ },
9325
+ error: {
9326
+ type: 'string',
9327
+ },
9328
+ message: {
9329
+ type: 'string',
9330
+ },
9331
+ },
9332
+ },
9333
+ },
9334
+ },
9335
+ AppBskyVideoGetJobStatus: {
9336
+ lexicon: 1,
9337
+ id: 'app.bsky.video.getJobStatus',
9338
+ defs: {
9339
+ main: {
9340
+ type: 'query',
9341
+ description: 'Get status details for a video processing job.',
9342
+ parameters: {
9343
+ type: 'params',
9344
+ required: ['jobId'],
9345
+ properties: {
9346
+ jobId: {
9347
+ type: 'string',
9348
+ },
9349
+ },
9350
+ },
9351
+ output: {
9352
+ encoding: 'application/json',
9353
+ schema: {
9354
+ type: 'object',
9355
+ required: ['jobStatus'],
9356
+ properties: {
9357
+ jobStatus: {
9358
+ type: 'ref',
9359
+ ref: 'lex:app.bsky.video.defs#jobStatus',
9360
+ },
9361
+ },
9362
+ },
9363
+ },
9364
+ },
9365
+ },
9366
+ },
9367
+ AppBskyVideoGetUploadLimits: {
9368
+ lexicon: 1,
9369
+ id: 'app.bsky.video.getUploadLimits',
9370
+ defs: {
9371
+ main: {
9372
+ type: 'query',
9373
+ description: 'Get video upload limits for the authenticated user.',
9374
+ output: {
9375
+ encoding: 'application/json',
9376
+ schema: {
9377
+ type: 'object',
9378
+ required: ['canUpload'],
9379
+ properties: {
9380
+ canUpload: {
9381
+ type: 'boolean',
9382
+ },
9383
+ remainingDailyVideos: {
9384
+ type: 'integer',
9385
+ },
9386
+ remainingDailyBytes: {
9387
+ type: 'integer',
9388
+ },
9389
+ message: {
9390
+ type: 'string',
9391
+ },
9392
+ error: {
9393
+ type: 'string',
9394
+ },
9395
+ },
9396
+ },
9397
+ },
9398
+ },
9399
+ },
9400
+ },
9401
+ AppBskyVideoUploadVideo: {
9402
+ lexicon: 1,
9403
+ id: 'app.bsky.video.uploadVideo',
9404
+ defs: {
9405
+ main: {
9406
+ type: 'procedure',
9407
+ description: 'Upload a video to be processed then stored on the PDS.',
9408
+ input: {
9409
+ encoding: 'video/mp4',
9410
+ },
9411
+ output: {
9412
+ encoding: 'application/json',
9413
+ schema: {
9414
+ type: 'object',
9415
+ required: ['jobStatus'],
9416
+ properties: {
9417
+ jobStatus: {
9418
+ type: 'ref',
9419
+ ref: 'lex:app.bsky.video.defs#jobStatus',
9420
+ },
9421
+ },
9422
+ },
9423
+ },
9424
+ },
9425
+ },
9426
+ },
9202
9427
  ChatBskyActorDeclaration: {
9203
9428
  lexicon: 1,
9204
9429
  id: 'chat.bsky.actor.declaration',
@@ -11924,10 +12149,12 @@ export const ids = {
11924
12149
  AppBskyActorPutPreferences: 'app.bsky.actor.putPreferences',
11925
12150
  AppBskyActorSearchActors: 'app.bsky.actor.searchActors',
11926
12151
  AppBskyActorSearchActorsTypeahead: 'app.bsky.actor.searchActorsTypeahead',
12152
+ AppBskyEmbedDefs: 'app.bsky.embed.defs',
11927
12153
  AppBskyEmbedExternal: 'app.bsky.embed.external',
11928
12154
  AppBskyEmbedImages: 'app.bsky.embed.images',
11929
12155
  AppBskyEmbedRecord: 'app.bsky.embed.record',
11930
12156
  AppBskyEmbedRecordWithMedia: 'app.bsky.embed.recordWithMedia',
12157
+ AppBskyEmbedVideo: 'app.bsky.embed.video',
11931
12158
  AppBskyFeedDefs: 'app.bsky.feed.defs',
11932
12159
  AppBskyFeedDescribeFeedGenerator: 'app.bsky.feed.describeFeedGenerator',
11933
12160
  AppBskyFeedGenerator: 'app.bsky.feed.generator',
@@ -12001,6 +12228,10 @@ export const ids = {
12001
12228
  AppBskyUnspeccedSearchActorsSkeleton:
12002
12229
  'app.bsky.unspecced.searchActorsSkeleton',
12003
12230
  AppBskyUnspeccedSearchPostsSkeleton: 'app.bsky.unspecced.searchPostsSkeleton',
12231
+ AppBskyVideoDefs: 'app.bsky.video.defs',
12232
+ AppBskyVideoGetJobStatus: 'app.bsky.video.getJobStatus',
12233
+ AppBskyVideoGetUploadLimits: 'app.bsky.video.getUploadLimits',
12234
+ AppBskyVideoUploadVideo: 'app.bsky.video.uploadVideo',
12004
12235
  ChatBskyActorDeclaration: 'chat.bsky.actor.declaration',
12005
12236
  ChatBskyActorDefs: 'chat.bsky.actor.defs',
12006
12237
  ChatBskyActorDeleteAccount: 'chat.bsky.actor.deleteAccount',
@@ -0,0 +1,26 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { lexicons } from '../../../../lexicons'
6
+ import { isObj, hasProp } from '../../../../util'
7
+ import { CID } from 'multiformats/cid'
8
+
9
+ /** width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit. */
10
+ export interface AspectRatio {
11
+ width: number
12
+ height: number
13
+ [k: string]: unknown
14
+ }
15
+
16
+ export function isAspectRatio(v: unknown): v is AspectRatio {
17
+ return (
18
+ isObj(v) &&
19
+ hasProp(v, '$type') &&
20
+ v.$type === 'app.bsky.embed.defs#aspectRatio'
21
+ )
22
+ }
23
+
24
+ export function validateAspectRatio(v: unknown): ValidationResult {
25
+ return lexicons.validate('app.bsky.embed.defs#aspectRatio', v)
26
+ }
@@ -5,6 +5,7 @@ import { ValidationResult, BlobRef } from '@atproto/lexicon'
5
5
  import { lexicons } from '../../../../lexicons'
6
6
  import { isObj, hasProp } from '../../../../util'
7
7
  import { CID } from 'multiformats/cid'
8
+ import * as AppBskyEmbedDefs from './defs'
8
9
 
9
10
  export interface Main {
10
11
  images: Image[]
@@ -28,7 +29,7 @@ export interface Image {
28
29
  image: BlobRef
29
30
  /** Alt text description of the image, for accessibility. */
30
31
  alt: string
31
- aspectRatio?: AspectRatio
32
+ aspectRatio?: AppBskyEmbedDefs.AspectRatio
32
33
  [k: string]: unknown
33
34
  }
34
35
 
@@ -42,25 +43,6 @@ export function validateImage(v: unknown): ValidationResult {
42
43
  return lexicons.validate('app.bsky.embed.images#image', v)
43
44
  }
44
45
 
45
- /** width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit. */
46
- export interface AspectRatio {
47
- width: number
48
- height: number
49
- [k: string]: unknown
50
- }
51
-
52
- export function isAspectRatio(v: unknown): v is AspectRatio {
53
- return (
54
- isObj(v) &&
55
- hasProp(v, '$type') &&
56
- v.$type === 'app.bsky.embed.images#aspectRatio'
57
- )
58
- }
59
-
60
- export function validateAspectRatio(v: unknown): ValidationResult {
61
- return lexicons.validate('app.bsky.embed.images#aspectRatio', v)
62
- }
63
-
64
46
  export interface View {
65
47
  images: ViewImage[]
66
48
  [k: string]: unknown
@@ -83,7 +65,7 @@ export interface ViewImage {
83
65
  fullsize: string
84
66
  /** Alt text description of the image, for accessibility. */
85
67
  alt: string
86
- aspectRatio?: AspectRatio
68
+ aspectRatio?: AppBskyEmbedDefs.AspectRatio
87
69
  [k: string]: unknown
88
70
  }
89
71
 
@@ -12,6 +12,7 @@ import * as AppBskyLabelerDefs from '../labeler/defs'
12
12
  import * as AppBskyActorDefs from '../actor/defs'
13
13
  import * as ComAtprotoLabelDefs from '../../../com/atproto/label/defs'
14
14
  import * as AppBskyEmbedImages from './images'
15
+ import * as AppBskyEmbedVideo from './video'
15
16
  import * as AppBskyEmbedExternal from './external'
16
17
  import * as AppBskyEmbedRecordWithMedia from './recordWithMedia'
17
18
 
@@ -70,6 +71,7 @@ export interface ViewRecord {
70
71
  quoteCount?: number
71
72
  embeds?: (
72
73
  | AppBskyEmbedImages.View
74
+ | AppBskyEmbedVideo.View
73
75
  | AppBskyEmbedExternal.View
74
76
  | View
75
77
  | AppBskyEmbedRecordWithMedia.View
@@ -7,12 +7,14 @@ import { isObj, hasProp } from '../../../../util'
7
7
  import { CID } from 'multiformats/cid'
8
8
  import * as AppBskyEmbedRecord from './record'
9
9
  import * as AppBskyEmbedImages from './images'
10
+ import * as AppBskyEmbedVideo from './video'
10
11
  import * as AppBskyEmbedExternal from './external'
11
12
 
12
13
  export interface Main {
13
14
  record: AppBskyEmbedRecord.Main
14
15
  media:
15
16
  | AppBskyEmbedImages.Main
17
+ | AppBskyEmbedVideo.Main
16
18
  | AppBskyEmbedExternal.Main
17
19
  | { $type: string; [k: string]: unknown }
18
20
  [k: string]: unknown
@@ -35,6 +37,7 @@ export interface View {
35
37
  record: AppBskyEmbedRecord.View
36
38
  media:
37
39
  | AppBskyEmbedImages.View
40
+ | AppBskyEmbedVideo.View
38
41
  | AppBskyEmbedExternal.View
39
42
  | { $type: string; [k: string]: unknown }
40
43
  [k: string]: unknown
@@ -0,0 +1,67 @@
1
+ /**
2
+ * GENERATED CODE - DO NOT MODIFY
3
+ */
4
+ import { ValidationResult, BlobRef } from '@atproto/lexicon'
5
+ import { lexicons } from '../../../../lexicons'
6
+ import { isObj, hasProp } from '../../../../util'
7
+ import { CID } from 'multiformats/cid'
8
+ import * as AppBskyEmbedDefs from './defs'
9
+
10
+ export interface Main {
11
+ video: BlobRef
12
+ captions?: Caption[]
13
+ /** Alt text description of the video, for accessibility. */
14
+ alt?: string
15
+ aspectRatio?: AppBskyEmbedDefs.AspectRatio
16
+ [k: string]: unknown
17
+ }
18
+
19
+ export function isMain(v: unknown): v is Main {
20
+ return (
21
+ isObj(v) &&
22
+ hasProp(v, '$type') &&
23
+ (v.$type === 'app.bsky.embed.video#main' ||
24
+ v.$type === 'app.bsky.embed.video')
25
+ )
26
+ }
27
+
28
+ export function validateMain(v: unknown): ValidationResult {
29
+ return lexicons.validate('app.bsky.embed.video#main', v)
30
+ }
31
+
32
+ export interface Caption {
33
+ lang: string
34
+ file: BlobRef
35
+ [k: string]: unknown
36
+ }
37
+
38
+ export function isCaption(v: unknown): v is Caption {
39
+ return (
40
+ isObj(v) &&
41
+ hasProp(v, '$type') &&
42
+ v.$type === 'app.bsky.embed.video#caption'
43
+ )
44
+ }
45
+
46
+ export function validateCaption(v: unknown): ValidationResult {
47
+ return lexicons.validate('app.bsky.embed.video#caption', v)
48
+ }
49
+
50
+ export interface View {
51
+ cid: string
52
+ playlist: string
53
+ thumbnail?: string
54
+ alt?: string
55
+ aspectRatio?: AppBskyEmbedDefs.AspectRatio
56
+ [k: string]: unknown
57
+ }
58
+
59
+ export function isView(v: unknown): v is View {
60
+ return (
61
+ isObj(v) && hasProp(v, '$type') && v.$type === 'app.bsky.embed.video#view'
62
+ )
63
+ }
64
+
65
+ export function validateView(v: unknown): ValidationResult {
66
+ return lexicons.validate('app.bsky.embed.video#view', v)
67
+ }
@@ -7,6 +7,7 @@ import { isObj, hasProp } from '../../../../util'
7
7
  import { CID } from 'multiformats/cid'
8
8
  import * as AppBskyActorDefs from '../actor/defs'
9
9
  import * as AppBskyEmbedImages from '../embed/images'
10
+ import * as AppBskyEmbedVideo from '../embed/video'
10
11
  import * as AppBskyEmbedExternal from '../embed/external'
11
12
  import * as AppBskyEmbedRecord from '../embed/record'
12
13
  import * as AppBskyEmbedRecordWithMedia from '../embed/recordWithMedia'
@@ -21,6 +22,7 @@ export interface PostView {
21
22
  record: {}
22
23
  embed?:
23
24
  | AppBskyEmbedImages.View
25
+ | AppBskyEmbedVideo.View
24
26
  | AppBskyEmbedExternal.View
25
27
  | AppBskyEmbedRecord.View
26
28
  | AppBskyEmbedRecordWithMedia.View
@@ -7,6 +7,7 @@ import { isObj, hasProp } from '../../../../util'
7
7
  import { CID } from 'multiformats/cid'
8
8
  import * as AppBskyRichtextFacet from '../richtext/facet'
9
9
  import * as AppBskyEmbedImages from '../embed/images'
10
+ import * as AppBskyEmbedVideo from '../embed/video'
10
11
  import * as AppBskyEmbedExternal from '../embed/external'
11
12
  import * as AppBskyEmbedRecord from '../embed/record'
12
13
  import * as AppBskyEmbedRecordWithMedia from '../embed/recordWithMedia'
@@ -23,6 +24,7 @@ export interface Record {
23
24
  reply?: ReplyRef
24
25
  embed?:
25
26
  | AppBskyEmbedImages.Main
27
+ | AppBskyEmbedVideo.Main
26
28
  | AppBskyEmbedExternal.Main
27
29
  | AppBskyEmbedRecord.Main
28
30
  | AppBskyEmbedRecordWithMedia.Main