| 1 | /** |
| 2 | * alchemy/Git — a Git hosting service on Cloudflare Workers, |
| 3 | * Durable Objects, and R2, built with Alchemy Effect-native Workers. |
| 4 | * |
| 5 | * Public surface: |
| 6 | * - The HTTP contract ({@link GitApi}, aliased {@link Api}): every plane as |
| 7 | * one `HttpApi`, each endpoint an `HttpApiEndpoint`, each group a |
| 8 | * class, with the schemas and tagged errors. |
| 9 | * - {@link Handlers} and {@link ApiHandlersLive}: shared handler implementations. |
| 10 | * {@link ApiLive} registers public routes; merge it beside application routes. |
| 11 | * {@link GroupsLive} exposes native group implementations for overrides. |
| 12 | * - {@link Engine}: transport-independent operations, with scoped prepare/commit |
| 13 | * for application authorization and validation. HTTP codecs live in `alchemy/Git/Http`. |
| 14 | * - The deployable pieces: {@link ApiLive} + {@link InternalApiLive}, the |
| 15 | * {@link GitRepo} / {@link Registry} Durable Objects, and the storage and |
| 16 | * hasher blocks. |
| 17 | * |
| 18 | * Internals (wire-protocol codecs under `Protocol/`, storage under `Store/`, |
| 19 | * alarm jobs under `Jobs/`) are deliberately not re-exported here — deep |
| 20 | * import them via `alchemy/Git/Protocol/Pkt.ts` style paths when |
| 21 | * needed. |
| 22 | */ |
| 23 | export * from "./Api.ts"; |
| 24 | export { GitApi as Api } from "./Api.ts"; |
| 25 | export { Engine, EngineLive } from "./Engine.ts"; |
| 26 | export type { PushInput, PreparedPush, RefUpdate } from "./Push.ts"; |
| 27 | export * as Http from "./Http.ts"; |
| 28 | export * as Push from "./PushInput.ts"; |
| 29 | export * from "./Server.ts"; |
| 30 | export { |
| 31 | parseCommit, |
| 32 | parseTree, |
| 33 | ZERO_OID, |
| 34 | ObjectType, |
| 35 | } from "./Protocol/ObjectCodec.ts"; |
| 36 | export { StoreError } from "./Protocol/Store.ts"; |
| 37 | export { WireProtocolError, PackIngestError } from "./RepoObject.ts"; |
| 38 | export { |
| 39 | BlobStore, |
| 40 | BlobStoreR2, |
| 41 | BlobStoreError, |
| 42 | type BlobBody, |
| 43 | type BlobMeta, |
| 44 | type BlobMultipart, |
| 45 | type BlobStoreShape, |
| 46 | } from "./BlobStore.ts"; |
| 47 | export { BlobStoreS3 } from "./BlobStoreS3.ts"; |
| 48 | export { RegistryD1 } from "./RegistryD1.ts"; |
| 49 | export { |
| 50 | GitRepo, |
| 51 | GitRepoLive, |
| 52 | MAX_PACK_BYTES, |
| 53 | type CommitPushInput, |
| 54 | type CommitPushResult, |
| 55 | type GitRepoShape, |
| 56 | type RepoMetaData, |
| 57 | RepoStore, |
| 58 | type RepoStoreShape, |
| 59 | type RepoStub, |
| 60 | } from "./RepoObject.ts"; |
| 61 | export { |
| 62 | Registry, |
| 63 | RegistryDurableObject, |
| 64 | RegistryLive, |
| 65 | RegistryStore, |
| 66 | REGISTRY_DO_NAME, |
| 67 | RESERVED_OWNERS, |
| 68 | } from "./RegistryObject.ts"; |
| 69 | |
| 70 | export { |
| 71 | Hasher, |
| 72 | HasherInline, |
| 73 | HasherSelf, |
| 74 | HASHER_BINDING, |
| 75 | } from "./Hasher/Hasher.ts"; |