···7272// path: Path to the file within the repository
7373// raw: Return raw file content instead of JSON response
7474// ref: Git reference (branch, tag, or commit SHA)
7575-// repo: DID of the repository
7575+// repo: AT-URI of the sh.tangled.repo record
7676func RepoBlob(ctx context.Context, c util.LexClient, path string, raw bool, ref string, repo string) (*RepoBlob_Output, error) {
7777 var out RepoBlob_Output
7878
···11import type { BobbinContext, QueryValue, XrpcRequestInit } from "./client";
22-import { jsonGet, rawGet } from "./_request";
22+import { buildUrl, jsonGet, rawGet } from "./_request";
33import type * as Archive from "./lexicons/types/sh/tangled/repo/archive";
44import type * as Blob_ from "./lexicons/types/sh/tangled/repo/blob";
55import type * as Branch from "./lexicons/types/sh/tangled/repo/branch";
···92929393export const archive = (ctx: BobbinContext, params: Archive.$params, init?: XrpcRequestInit) =>
9494 rawGet(ctx, "sh.tangled.repo.archive", asParams(params), init);
9595+9696+// the knot picks the content type and only serves images, video and text, so a
9797+// reader can go straight here instead of us proxying it
9898+export const blobRawUrl = (
9999+ serviceUrl: string,
100100+ // not `Blob_.$params`, the record wrappers hand back plain strings and
101101+ // nothing here would satisfy the generated at-uri brand
102102+ params: { repo: string; ref: string; path: string }
103103+): string => buildUrl(serviceUrl, "sh.tangled.repo.blob", { ...params, raw: true }).toString();