@atproto/pds 0.4.55 → 0.4.57

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 (123) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/api/com/atproto/repo/applyWrites.d.ts.map +1 -1
  3. package/dist/api/com/atproto/repo/applyWrites.js +43 -7
  4. package/dist/api/com/atproto/repo/applyWrites.js.map +1 -1
  5. package/dist/api/com/atproto/repo/createRecord.d.ts.map +1 -1
  6. package/dist/api/com/atproto/repo/createRecord.js +10 -2
  7. package/dist/api/com/atproto/repo/createRecord.js.map +1 -1
  8. package/dist/api/com/atproto/repo/deleteRecord.d.ts.map +1 -1
  9. package/dist/api/com/atproto/repo/deleteRecord.js +11 -0
  10. package/dist/api/com/atproto/repo/deleteRecord.js.map +1 -1
  11. package/dist/api/com/atproto/repo/putRecord.d.ts.map +1 -1
  12. package/dist/api/com/atproto/repo/putRecord.js +7 -0
  13. package/dist/api/com/atproto/repo/putRecord.js.map +1 -1
  14. package/dist/lexicon/index.d.ts +11 -0
  15. package/dist/lexicon/index.d.ts.map +1 -1
  16. package/dist/lexicon/index.js +32 -1
  17. package/dist/lexicon/index.js.map +1 -1
  18. package/dist/lexicon/lexicons.d.ts +367 -18
  19. package/dist/lexicon/lexicons.d.ts.map +1 -1
  20. package/dist/lexicon/lexicons.js +390 -24
  21. package/dist/lexicon/lexicons.js.map +1 -1
  22. package/dist/lexicon/types/app/bsky/embed/defs.d.ts +13 -0
  23. package/dist/lexicon/types/app/bsky/embed/defs.d.ts.map +1 -0
  24. package/dist/lexicon/types/app/bsky/embed/defs.js +16 -0
  25. package/dist/lexicon/types/app/bsky/embed/defs.js.map +1 -0
  26. package/dist/lexicon/types/app/bsky/embed/images.d.ts +3 -10
  27. package/dist/lexicon/types/app/bsky/embed/images.d.ts.map +1 -1
  28. package/dist/lexicon/types/app/bsky/embed/images.js +1 -11
  29. package/dist/lexicon/types/app/bsky/embed/images.js.map +1 -1
  30. package/dist/lexicon/types/app/bsky/embed/record.d.ts +2 -1
  31. package/dist/lexicon/types/app/bsky/embed/record.d.ts.map +1 -1
  32. package/dist/lexicon/types/app/bsky/embed/record.js.map +1 -1
  33. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.d.ts +3 -2
  34. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.d.ts.map +1 -1
  35. package/dist/lexicon/types/app/bsky/embed/recordWithMedia.js.map +1 -1
  36. package/dist/lexicon/types/app/bsky/embed/video.d.ts +33 -0
  37. package/dist/lexicon/types/app/bsky/embed/video.d.ts.map +1 -0
  38. package/dist/lexicon/types/app/bsky/embed/video.js +35 -0
  39. package/dist/lexicon/types/app/bsky/embed/video.js.map +1 -0
  40. package/dist/lexicon/types/app/bsky/feed/defs.d.ts +2 -1
  41. package/dist/lexicon/types/app/bsky/feed/defs.d.ts.map +1 -1
  42. package/dist/lexicon/types/app/bsky/feed/defs.js.map +1 -1
  43. package/dist/lexicon/types/app/bsky/feed/post.d.ts +2 -1
  44. package/dist/lexicon/types/app/bsky/feed/post.d.ts.map +1 -1
  45. package/dist/lexicon/types/app/bsky/feed/post.js.map +1 -1
  46. package/dist/lexicon/types/app/bsky/video/defs.d.ts +19 -0
  47. package/dist/lexicon/types/app/bsky/video/defs.d.ts.map +1 -0
  48. package/dist/lexicon/types/app/bsky/video/defs.js +16 -0
  49. package/dist/lexicon/types/app/bsky/video/defs.js.map +1 -0
  50. package/dist/lexicon/types/app/bsky/video/getJobStatus.d.ts +36 -0
  51. package/dist/lexicon/types/app/bsky/video/getJobStatus.d.ts.map +1 -0
  52. package/dist/lexicon/types/app/bsky/video/getJobStatus.js +3 -0
  53. package/dist/lexicon/types/app/bsky/video/getJobStatus.js.map +1 -0
  54. package/dist/lexicon/types/app/bsky/video/getUploadLimits.d.ts +38 -0
  55. package/dist/lexicon/types/app/bsky/video/getUploadLimits.d.ts.map +1 -0
  56. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js +3 -0
  57. package/dist/lexicon/types/app/bsky/video/getUploadLimits.js.map +1 -0
  58. package/dist/lexicon/types/app/bsky/video/uploadVideo.d.ts +41 -0
  59. package/dist/lexicon/types/app/bsky/video/uploadVideo.d.ts.map +1 -0
  60. package/dist/lexicon/types/app/bsky/video/uploadVideo.js +3 -0
  61. package/dist/lexicon/types/app/bsky/video/uploadVideo.js.map +1 -0
  62. package/dist/lexicon/types/com/atproto/repo/applyWrites.d.ts +38 -4
  63. package/dist/lexicon/types/com/atproto/repo/applyWrites.d.ts.map +1 -1
  64. package/dist/lexicon/types/com/atproto/repo/applyWrites.js +31 -1
  65. package/dist/lexicon/types/com/atproto/repo/applyWrites.js.map +1 -1
  66. package/dist/lexicon/types/com/atproto/repo/createRecord.d.ts +5 -2
  67. package/dist/lexicon/types/com/atproto/repo/createRecord.d.ts.map +1 -1
  68. package/dist/lexicon/types/com/atproto/repo/defs.d.ts +12 -0
  69. package/dist/lexicon/types/com/atproto/repo/defs.d.ts.map +1 -0
  70. package/dist/lexicon/types/com/atproto/repo/defs.js +16 -0
  71. package/dist/lexicon/types/com/atproto/repo/defs.js.map +1 -0
  72. package/dist/lexicon/types/com/atproto/repo/deleteRecord.d.ts +14 -2
  73. package/dist/lexicon/types/com/atproto/repo/deleteRecord.d.ts.map +1 -1
  74. package/dist/lexicon/types/com/atproto/repo/putRecord.d.ts +5 -2
  75. package/dist/lexicon/types/com/atproto/repo/putRecord.d.ts.map +1 -1
  76. package/dist/lexicon/types/tools/ozone/communication/createTemplate.d.ts +3 -0
  77. package/dist/lexicon/types/tools/ozone/communication/createTemplate.d.ts.map +1 -1
  78. package/dist/lexicon/types/tools/ozone/communication/defs.d.ts +2 -0
  79. package/dist/lexicon/types/tools/ozone/communication/defs.d.ts.map +1 -1
  80. package/dist/lexicon/types/tools/ozone/communication/defs.js.map +1 -1
  81. package/dist/lexicon/types/tools/ozone/communication/updateTemplate.d.ts +3 -0
  82. package/dist/lexicon/types/tools/ozone/communication/updateTemplate.d.ts.map +1 -1
  83. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts +1 -1
  84. package/dist/lexicon/types/tools/ozone/moderation/emitEvent.d.ts.map +1 -1
  85. package/dist/read-after-write/viewer.d.ts +4 -4
  86. package/dist/repo/prepare.d.ts +4 -2
  87. package/dist/repo/prepare.d.ts.map +1 -1
  88. package/dist/repo/prepare.js +30 -14
  89. package/dist/repo/prepare.js.map +1 -1
  90. package/dist/repo/types.d.ts +3 -0
  91. package/dist/repo/types.d.ts.map +1 -1
  92. package/dist/repo/types.js.map +1 -1
  93. package/dist/sequencer/events.d.ts +2 -2
  94. package/package.json +4 -4
  95. package/src/api/com/atproto/repo/applyWrites.ts +41 -0
  96. package/src/api/com/atproto/repo/createRecord.ts +16 -7
  97. package/src/api/com/atproto/repo/deleteRecord.ts +11 -0
  98. package/src/api/com/atproto/repo/putRecord.ts +7 -0
  99. package/src/lexicon/index.ts +46 -0
  100. package/src/lexicon/lexicons.ts +393 -25
  101. package/src/lexicon/types/app/bsky/embed/defs.ts +26 -0
  102. package/src/lexicon/types/app/bsky/embed/images.ts +3 -21
  103. package/src/lexicon/types/app/bsky/embed/record.ts +2 -0
  104. package/src/lexicon/types/app/bsky/embed/recordWithMedia.ts +3 -0
  105. package/src/lexicon/types/app/bsky/embed/video.ts +67 -0
  106. package/src/lexicon/types/app/bsky/feed/defs.ts +2 -0
  107. package/src/lexicon/types/app/bsky/feed/post.ts +2 -0
  108. package/src/lexicon/types/app/bsky/video/defs.ts +32 -0
  109. package/src/lexicon/types/app/bsky/video/getJobStatus.ts +46 -0
  110. package/src/lexicon/types/app/bsky/video/getUploadLimits.ts +47 -0
  111. package/src/lexicon/types/app/bsky/video/uploadVideo.ts +48 -0
  112. package/src/lexicon/types/com/atproto/repo/applyWrites.ts +70 -3
  113. package/src/lexicon/types/com/atproto/repo/createRecord.ts +5 -2
  114. package/src/lexicon/types/com/atproto/repo/defs.ts +25 -0
  115. package/src/lexicon/types/com/atproto/repo/deleteRecord.ts +13 -1
  116. package/src/lexicon/types/com/atproto/repo/putRecord.ts +5 -2
  117. package/src/lexicon/types/tools/ozone/communication/createTemplate.ts +3 -0
  118. package/src/lexicon/types/tools/ozone/communication/defs.ts +2 -0
  119. package/src/lexicon/types/tools/ozone/communication/updateTemplate.ts +3 -0
  120. package/src/lexicon/types/tools/ozone/moderation/emitEvent.ts +1 -0
  121. package/src/repo/prepare.ts +31 -13
  122. package/src/repo/types.ts +4 -0
  123. package/tests/crud.test.ts +131 -14
@@ -2,6 +2,7 @@ import { CID } from 'multiformats/cid';
2
2
  import { AtUri } from '@atproto/syntax';
3
3
  import { WriteOpAction } from '@atproto/repo';
4
4
  import { RepoRecord } from '@atproto/lexicon';
5
+ export type ValidationStatus = 'valid' | 'unknown' | undefined;
5
6
  export type BlobConstraint = {
6
7
  accept?: string[];
7
8
  maxSize?: number;
@@ -18,6 +19,7 @@ export type PreparedCreate = {
18
19
  swapCid?: CID | null;
19
20
  record: RepoRecord;
20
21
  blobs: PreparedBlobRef[];
22
+ validationStatus: ValidationStatus;
21
23
  };
22
24
  export type PreparedUpdate = {
23
25
  action: WriteOpAction.Update;
@@ -26,6 +28,7 @@ export type PreparedUpdate = {
26
28
  swapCid?: CID | null;
27
29
  record: RepoRecord;
28
30
  blobs: PreparedBlobRef[];
31
+ validationStatus: ValidationStatus;
29
32
  };
30
33
  export type PreparedDelete = {
31
34
  action: WriteOpAction.Delete;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/repo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,cAAc,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAA;IAC5B,GAAG,EAAE,KAAK,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,eAAe,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAA;IAC5B,GAAG,EAAE,KAAK,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,eAAe,EAAE,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAA;IAC5B,GAAG,EAAE,KAAK,CAAA;IACV,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAA;AAE5E,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,GAAG,EAAE,GAAG;gBAAR,GAAG,EAAE,GAAG;CAG5B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,GAAG,EAAE,GAAG,GAAG,IAAI;gBAAf,GAAG,EAAE,GAAG,GAAG,IAAI;CAGnC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/repo/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;AAE9D,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,cAAc,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAA;IAC5B,GAAG,EAAE,KAAK,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAA;IAC5B,GAAG,EAAE,KAAK,CAAA;IACV,GAAG,EAAE,GAAG,CAAA;IACR,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC,MAAM,CAAA;IAC5B,GAAG,EAAE,KAAK,CAAA;IACV,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAA;AAE5E,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,GAAG,EAAE,GAAG;gBAAR,GAAG,EAAE,GAAG;CAG5B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,GAAG,EAAE,GAAG,GAAG,IAAI;gBAAf,GAAG,EAAE,GAAG,GAAG,IAAI;CAGnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/repo/types.ts"],"names":[],"mappings":";;;AA0CA,MAAa,kBAAmB,SAAQ,KAAK;CAAG;AAAhD,gDAAgD;AAEhD,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,GAAQ;QACzB,KAAK,CAAC,iBAAiB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAD9B;;;;mBAAO,GAAG;WAAK;IAE3B,CAAC;CACF;AAJD,gDAIC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,GAAe;QAChC,KAAK,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC,CAAA;QADzC;;;;mBAAO,GAAG;WAAY;IAElC,CAAC;CACF;AAJD,gDAIC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/repo/types.ts"],"names":[],"mappings":";;;AA8CA,MAAa,kBAAmB,SAAQ,KAAK;CAAG;AAAhD,gDAAgD;AAEhD,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,GAAQ;QACzB,KAAK,CAAC,iBAAiB,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAD9B;;;;mBAAO,GAAG;WAAK;IAE3B,CAAC;CACF;AAJD,gDAIC;AAED,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAmB,GAAe;QAChC,KAAK,CAAC,iBAAiB,GAAG,EAAE,QAAQ,EAAE,IAAI,MAAM,EAAE,CAAC,CAAA;QADzC;;;;mBAAO,GAAG;WAAY;IAElC,CAAC;CACF;AAJD,gDAIC"}
@@ -48,8 +48,8 @@ export declare const commitEvt: z.ZodObject<{
48
48
  blobs: z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodAny, any, any>, CID, any>, "many">;
49
49
  }, "strip", z.ZodTypeAny, {
50
50
  repo: string;
51
- blobs: CID[];
52
51
  rev: string;
52
+ blobs: CID[];
53
53
  rebase: boolean;
54
54
  tooBig: boolean;
55
55
  commit: CID;
@@ -63,8 +63,8 @@ export declare const commitEvt: z.ZodObject<{
63
63
  prev: CID | null;
64
64
  }, {
65
65
  repo: string;
66
- blobs: any[];
67
66
  rev: string;
67
+ blobs: any[];
68
68
  rebase: boolean;
69
69
  tooBig: boolean;
70
70
  since: string | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atproto/pds",
3
- "version": "0.4.55",
3
+ "version": "0.4.57",
4
4
  "license": "MIT",
5
5
  "description": "Reference implementation of atproto Personal Data Server (PDS)",
6
6
  "keywords": [
@@ -44,7 +44,7 @@
44
44
  "uint8arrays": "3.0.0",
45
45
  "zod": "^3.23.8",
46
46
  "@atproto-labs/fetch-node": "0.1.0",
47
- "@atproto/api": "^0.13.4",
47
+ "@atproto/api": "^0.13.6",
48
48
  "@atproto/aws": "^0.2.3",
49
49
  "@atproto/common": "^0.4.1",
50
50
  "@atproto/crypto": "^0.4.1",
@@ -72,8 +72,8 @@
72
72
  "jest": "^28.1.2",
73
73
  "ts-node": "^10.8.2",
74
74
  "ws": "^8.12.0",
75
- "@atproto/api": "^0.13.4",
76
- "@atproto/bsky": "^0.0.79",
75
+ "@atproto/api": "^0.13.6",
76
+ "@atproto/bsky": "^0.0.81",
77
77
  "@atproto/lex-cli": "^0.5.0"
78
78
  },
79
79
  "scripts": {
@@ -1,5 +1,6 @@
1
1
  import { CID } from 'multiformats/cid'
2
2
  import { InvalidRequestError, AuthRequiredError } from '@atproto/xrpc-server'
3
+ import { WriteOpAction } from '@atproto/repo'
3
4
  import { prepareCreate, prepareDelete, prepareUpdate } from '../../../../repo'
4
5
  import { Server } from '../../../../lexicon'
5
6
  import {
@@ -7,6 +8,9 @@ import {
7
8
  isCreate,
8
9
  isUpdate,
9
10
  isDelete,
11
+ CreateResult,
12
+ UpdateResult,
13
+ DeleteResult,
10
14
  } from '../../../../lexicon/types/com/atproto/repo/applyWrites'
11
15
  import {
12
16
  BadCommitSwapError,
@@ -69,6 +73,7 @@ export default function (server: Server, ctx: AppContext) {
69
73
  throw new InvalidRequestError('Too many writes. Max: 200')
70
74
  }
71
75
 
76
+ // @NOTE should preserve order of ts.writes for final use in response
72
77
  let writes: PreparedWrite[]
73
78
  try {
74
79
  writes = await Promise.all(
@@ -125,6 +130,42 @@ export default function (server: Server, ctx: AppContext) {
125
130
 
126
131
  await ctx.sequencer.sequenceCommit(did, commit, writes)
127
132
  await ctx.accountManager.updateRepoRoot(did, commit.cid, commit.rev)
133
+
134
+ return {
135
+ encoding: 'application/json',
136
+ body: {
137
+ commit: {
138
+ cid: commit.cid.toString(),
139
+ rev: commit.rev,
140
+ },
141
+ results: writes.map(writeToOutputResult),
142
+ },
143
+ }
128
144
  },
129
145
  })
130
146
  }
147
+
148
+ const writeToOutputResult = (write: PreparedWrite) => {
149
+ switch (write.action) {
150
+ case WriteOpAction.Create:
151
+ return {
152
+ $type: 'com.atproto.repo.applyWrites#createResult',
153
+ cid: write.cid.toString(),
154
+ uri: write.uri.toString(),
155
+ validationStatus: write.validationStatus,
156
+ } satisfies CreateResult
157
+ case WriteOpAction.Update:
158
+ return {
159
+ $type: 'com.atproto.repo.applyWrites#updateResult',
160
+ cid: write.cid.toString(),
161
+ uri: write.uri.toString(),
162
+ validationStatus: write.validationStatus,
163
+ } satisfies UpdateResult
164
+ case WriteOpAction.Delete:
165
+ return {
166
+ $type: 'com.atproto.repo.applyWrites#deleteResult',
167
+ } satisfies DeleteResult
168
+ default:
169
+ throw new Error(`Unrecognized action: ${write}`)
170
+ }
171
+ }
@@ -68,12 +68,13 @@ export default function (server: Server, ctx: AppContext) {
68
68
  const { commit, writes } = await ctx.actorStore.transact(
69
69
  did,
70
70
  async (actorTxn) => {
71
- const backlinkConflicts = validate
72
- ? await actorTxn.record.getBacklinkConflicts(
73
- write.uri,
74
- write.record,
75
- )
76
- : []
71
+ const backlinkConflicts =
72
+ validate !== false
73
+ ? await actorTxn.record.getBacklinkConflicts(
74
+ write.uri,
75
+ write.record,
76
+ )
77
+ : []
77
78
  const backlinkDeletions = backlinkConflicts.map((uri) =>
78
79
  prepareDelete({
79
80
  did: uri.hostname,
@@ -102,7 +103,15 @@ export default function (server: Server, ctx: AppContext) {
102
103
 
103
104
  return {
104
105
  encoding: 'application/json',
105
- body: { uri: write.uri.toString(), cid: write.cid.toString() },
106
+ body: {
107
+ uri: write.uri.toString(),
108
+ cid: write.cid.toString(),
109
+ commit: {
110
+ cid: commit.cid.toString(),
111
+ rev: commit.rev,
112
+ },
113
+ validationStatus: write.validationStatus,
114
+ },
106
115
  }
107
116
  },
108
117
  })
@@ -71,6 +71,17 @@ export default function (server: Server, ctx: AppContext) {
71
71
  await ctx.sequencer.sequenceCommit(did, commit, [write])
72
72
  await ctx.accountManager.updateRepoRoot(did, commit.cid, commit.rev)
73
73
  }
74
+ return {
75
+ encoding: 'application/json',
76
+ body: {
77
+ commit: commit
78
+ ? {
79
+ cid: commit.cid.toString(),
80
+ rev: commit.rev,
81
+ }
82
+ : undefined,
83
+ },
84
+ }
74
85
  },
75
86
  })
76
87
  }
@@ -130,6 +130,13 @@ export default function (server: Server, ctx: AppContext) {
130
130
  body: {
131
131
  uri: write.uri.toString(),
132
132
  cid: write.cid.toString(),
133
+ commit: commit
134
+ ? {
135
+ cid: commit.cid.toString(),
136
+ rev: commit.rev,
137
+ }
138
+ : undefined,
139
+ validationStatus: write.validationStatus,
133
140
  },
134
141
  }
135
142
  },
@@ -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