[SDK] Add refreshSession and migrate the session-pinned infra (#11381)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,6 @@ import {app, com} from '#/lexicons'
|
||||
import * as bsky from '#/types/bsky'
|
||||
import {createGIFDescription} from '../gif-alt-text'
|
||||
import {computeCid} from './computeCid'
|
||||
import {fromLegacyBlobRef} from './legacy-blob'
|
||||
import {uploadBlob} from './upload-blob'
|
||||
|
||||
export {uploadBlob}
|
||||
@@ -410,10 +409,11 @@ async function resolveMedia(
|
||||
return {
|
||||
$type: 'app.bsky.embed.video',
|
||||
/*
|
||||
* The video pipeline still reads its blob off the legacy agent, so
|
||||
* normalize it to the lex shape before it reaches the lex write.
|
||||
* The video blob is a plain lex blob from the video pipeline
|
||||
* (getJobStatus, in composer state/video). Its structural shape matches
|
||||
* the lexicon blob field and the CID hasher (see computeCid).
|
||||
*/
|
||||
video: fromLegacyBlobRef(videoDraft.pendingPublish.blobRef),
|
||||
video: videoDraft.pendingPublish.blobRef,
|
||||
alt: videoDraft.altText || undefined,
|
||||
captions: captions.length === 0 ? undefined : captions,
|
||||
aspectRatio,
|
||||
|
||||
@@ -14,18 +14,3 @@ import {type BlobRef as LexBlobRef} from '@atproto/lex'
|
||||
export function toLegacyBlobRef(blob: LexBlobRef): BlobRef {
|
||||
return BlobRef.fromJsonRef(blob as Parameters<typeof BlobRef.fromJsonRef>[0])
|
||||
}
|
||||
|
||||
/**
|
||||
* Normalize a legacy `BlobRef` class instance to the plain-JSON lex blob shape.
|
||||
*
|
||||
* Required for any blob that reaches a lex write: the lex serializer walks
|
||||
* plain objects, so a class instance goes on the wire with its internal
|
||||
* `original` field and no `$type`. `ipld()` yields exactly the lex shape, and
|
||||
* hashes identically (see `computeCid.test.ts` case 2b).
|
||||
*
|
||||
* Only the video pipeline still needs this - it reads its blob off the legacy
|
||||
* agent (`app.bsky.video.getJobStatus`). Drop it when the video client moves.
|
||||
*/
|
||||
export function fromLegacyBlobRef(blob: BlobRef): LexBlobRef {
|
||||
return blob.ipld()
|
||||
}
|
||||
|
||||
@@ -184,7 +184,7 @@ export async function resolveLink(
|
||||
view: res.data.starterPack,
|
||||
}
|
||||
}
|
||||
return resolveExternal(agent, uri)
|
||||
return resolveExternal(uri)
|
||||
|
||||
// Forked from useGetPost. TODO: move into RQ.
|
||||
async function getPost({uri}: {uri: string}) {
|
||||
@@ -258,11 +258,8 @@ function getFileSlug(url: string | undefined): string | undefined {
|
||||
return dotIndex > 0 ? filename.slice(0, dotIndex) : undefined
|
||||
}
|
||||
|
||||
async function resolveExternal(
|
||||
agent: AtpAgent,
|
||||
uri: string,
|
||||
): Promise<ResolvedExternalLink> {
|
||||
const result = await getLinkMeta(agent, uri)
|
||||
async function resolveExternal(uri: string): Promise<ResolvedExternalLink> {
|
||||
const result = await getLinkMeta(uri)
|
||||
return {
|
||||
type: 'external',
|
||||
uri: result.url,
|
||||
|
||||
Reference in New Issue
Block a user