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 */
23export * from "./Api.ts";
24export { GitApi as Api } from "./Api.ts";
25export { Engine, EngineLive } from "./Engine.ts";
26export type { PushInput, PreparedPush, RefUpdate } from "./Push.ts";
27export * as Http from "./Http.ts";
28export * as Push from "./PushInput.ts";
29export * from "./Server.ts";
30export {
31 parseCommit,
32 parseTree,
33 ZERO_OID,
34 ObjectType,
35} from "./Protocol/ObjectCodec.ts";
36export { StoreError } from "./Protocol/Store.ts";
37export { WireProtocolError, PackIngestError } from "./RepoObject.ts";
38export {
39 BlobStore,
40 BlobStoreR2,
41 BlobStoreError,
42 type BlobBody,
43 type BlobMeta,
44 type BlobMultipart,
45 type BlobStoreShape,
46} from "./BlobStore.ts";
47export { BlobStoreS3 } from "./BlobStoreS3.ts";
48export { RegistryD1 } from "./RegistryD1.ts";
49export {
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";
61export {
62 Registry,
63 RegistryDurableObject,
64 RegistryLive,
65 RegistryStore,
66 REGISTRY_DO_NAME,
67 RESERVED_OWNERS,
68} from "./RegistryObject.ts";
69
70export {
71 Hasher,
72 HasherInline,
73 HasherSelf,
74 HASHER_BINDING,
75} from "./Hasher/Hasher.ts";