From caff093caa82e8787a214a8e4cb41e1ef77f6ead Mon Sep 17 00:00:00 2001 From: zzstoatzz Date: Thu, 26 Feb 2026 10:49:34 -0600 Subject: [PATCH] refactor: organize internal/ into domain subdirectories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit group modules by AT Protocol domain boundaries (following bluesky-social/indigo): syntax/ — string primitives (did, handle, nsid, tid, rkey, at_uri) crypto/ — jwt, multibase, multicodec identity/ — did_document, did_resolver, handle_resolver repo/ — cbor, car, mst xrpc/ — transport, xrpc client, json helpers streaming/ — firehose, jetstream, sync testing/ — interop tests Co-Authored-By: Claude Opus 4.6 --- src/internal/{ => crypto}/jwt.zig | 2 +- src/internal/{ => crypto}/multibase.zig | 0 src/internal/{ => crypto}/multicodec.zig | 0 src/internal/{ => identity}/did_document.zig | 2 +- src/internal/{ => identity}/did_resolver.zig | 4 +- .../{ => identity}/handle_resolver.zig | 6 +-- src/internal/{ => repo}/car.zig | 0 src/internal/{ => repo}/cbor.zig | 0 src/internal/{ => repo}/mst.zig | 2 +- src/internal/{ => streaming}/firehose.zig | 4 +- src/internal/{ => streaming}/jetstream.zig | 2 +- src/internal/{ => streaming}/sync.zig | 0 src/internal/{ => syntax}/at_uri.zig | 0 src/internal/{ => syntax}/did.zig | 0 src/internal/{ => syntax}/handle.zig | 0 src/internal/{ => syntax}/nsid.zig | 0 src/internal/{ => syntax}/rkey.zig | 0 src/internal/{ => syntax}/tid.zig | 0 src/internal/{ => testing}/interop_tests.zig | 24 ++++----- src/internal/{ => xrpc}/json.zig | 0 src/internal/{ => xrpc}/transport.zig | 0 src/internal/{ => xrpc}/xrpc.zig | 2 +- src/root.zig | 54 +++++++++---------- 23 files changed, 51 insertions(+), 51 deletions(-) rename src/internal/{ => crypto}/jwt.zig (99%) rename src/internal/{ => crypto}/multibase.zig (100%) rename src/internal/{ => crypto}/multicodec.zig (100%) rename src/internal/{ => identity}/did_document.zig (99%) rename src/internal/{ => identity}/did_resolver.zig (97%) rename src/internal/{ => identity}/handle_resolver.zig (97%) rename src/internal/{ => repo}/car.zig (100%) rename src/internal/{ => repo}/cbor.zig (100%) rename src/internal/{ => repo}/mst.zig (99%) rename src/internal/{ => streaming}/firehose.zig (99%) rename src/internal/{ => streaming}/jetstream.zig (99%) rename src/internal/{ => streaming}/sync.zig (100%) rename src/internal/{ => syntax}/at_uri.zig (100%) rename src/internal/{ => syntax}/did.zig (100%) rename src/internal/{ => syntax}/handle.zig (100%) rename src/internal/{ => syntax}/nsid.zig (100%) rename src/internal/{ => syntax}/rkey.zig (100%) rename src/internal/{ => syntax}/tid.zig (100%) rename src/internal/{ => testing}/interop_tests.zig (95%) rename src/internal/{ => xrpc}/json.zig (100%) rename src/internal/{ => xrpc}/transport.zig (100%) rename src/internal/{ => xrpc}/xrpc.zig (99%) diff --git a/src/internal/jwt.zig b/src/internal/crypto/jwt.zig similarity index 99% rename from src/internal/jwt.zig rename to src/internal/crypto/jwt.zig index 5c43af6..3a08059 100644 --- a/src/internal/jwt.zig +++ b/src/internal/crypto/jwt.zig @@ -7,7 +7,7 @@ const std = @import("std"); const crypto = std.crypto; -const json = @import("json.zig"); +const json = @import("../xrpc/json.zig"); const multibase = @import("multibase.zig"); const multicodec = @import("multicodec.zig"); diff --git a/src/internal/multibase.zig b/src/internal/crypto/multibase.zig similarity index 100% rename from src/internal/multibase.zig rename to src/internal/crypto/multibase.zig diff --git a/src/internal/multicodec.zig b/src/internal/crypto/multicodec.zig similarity index 100% rename from src/internal/multicodec.zig rename to src/internal/crypto/multicodec.zig diff --git a/src/internal/did_document.zig b/src/internal/identity/did_document.zig similarity index 99% rename from src/internal/did_document.zig rename to src/internal/identity/did_document.zig index d07d2e3..0afe271 100644 --- a/src/internal/did_document.zig +++ b/src/internal/identity/did_document.zig @@ -8,7 +8,7 @@ //! see: https://atproto.com/specs/did const std = @import("std"); -const Did = @import("did.zig").Did; +const Did = @import("../syntax/did.zig").Did; pub const DidDocument = struct { allocator: std.mem.Allocator, diff --git a/src/internal/did_resolver.zig b/src/internal/identity/did_resolver.zig similarity index 97% rename from src/internal/did_resolver.zig rename to src/internal/identity/did_resolver.zig index 73f0ac6..17b4cea 100644 --- a/src/internal/did_resolver.zig +++ b/src/internal/identity/did_resolver.zig @@ -5,9 +5,9 @@ //! see: https://atproto.com/specs/did const std = @import("std"); -const Did = @import("did.zig").Did; +const Did = @import("../syntax/did.zig").Did; const DidDocument = @import("did_document.zig").DidDocument; -const HttpTransport = @import("transport.zig").HttpTransport; +const HttpTransport = @import("../xrpc/transport.zig").HttpTransport; pub const DidResolver = struct { allocator: std.mem.Allocator, diff --git a/src/internal/handle_resolver.zig b/src/internal/identity/handle_resolver.zig similarity index 97% rename from src/internal/handle_resolver.zig rename to src/internal/identity/handle_resolver.zig index 2013899..674282e 100644 --- a/src/internal/handle_resolver.zig +++ b/src/internal/identity/handle_resolver.zig @@ -9,9 +9,9 @@ //! see: https://atproto.com/specs/handle const std = @import("std"); -const Handle = @import("handle.zig").Handle; -const Did = @import("did.zig").Did; -const HttpTransport = @import("transport.zig").HttpTransport; +const Handle = @import("../syntax/handle.zig").Handle; +const Did = @import("../syntax/did.zig").Did; +const HttpTransport = @import("../xrpc/transport.zig").HttpTransport; pub const HandleResolver = struct { allocator: std.mem.Allocator, diff --git a/src/internal/car.zig b/src/internal/repo/car.zig similarity index 100% rename from src/internal/car.zig rename to src/internal/repo/car.zig diff --git a/src/internal/cbor.zig b/src/internal/repo/cbor.zig similarity index 100% rename from src/internal/cbor.zig rename to src/internal/repo/cbor.zig diff --git a/src/internal/mst.zig b/src/internal/repo/mst.zig similarity index 99% rename from src/internal/mst.zig rename to src/internal/repo/mst.zig index 622cbcc..773676d 100644 --- a/src/internal/mst.zig +++ b/src/internal/repo/mst.zig @@ -9,7 +9,7 @@ const std = @import("std"); const cbor = @import("cbor.zig"); -const multibase = @import("multibase.zig"); +const multibase = @import("../crypto/multibase.zig"); const Allocator = std.mem.Allocator; /// compute MST tree layer for a key. diff --git a/src/internal/firehose.zig b/src/internal/streaming/firehose.zig similarity index 99% rename from src/internal/firehose.zig rename to src/internal/streaming/firehose.zig index a99138e..60d9487 100644 --- a/src/internal/firehose.zig +++ b/src/internal/streaming/firehose.zig @@ -11,8 +11,8 @@ const std = @import("std"); const websocket = @import("websocket"); -const cbor = @import("cbor.zig"); -const car = @import("car.zig"); +const cbor = @import("../repo/cbor.zig"); +const car = @import("../repo/car.zig"); const sync = @import("sync.zig"); const mem = std.mem; diff --git a/src/internal/jetstream.zig b/src/internal/streaming/jetstream.zig similarity index 99% rename from src/internal/jetstream.zig rename to src/internal/streaming/jetstream.zig index a102c11..f4e1cc9 100644 --- a/src/internal/jetstream.zig +++ b/src/internal/streaming/jetstream.zig @@ -7,7 +7,7 @@ const std = @import("std"); const websocket = @import("websocket"); -const json_helpers = @import("json.zig"); +const json_helpers = @import("../xrpc/json.zig"); const sync = @import("sync.zig"); const mem = std.mem; diff --git a/src/internal/sync.zig b/src/internal/streaming/sync.zig similarity index 100% rename from src/internal/sync.zig rename to src/internal/streaming/sync.zig diff --git a/src/internal/at_uri.zig b/src/internal/syntax/at_uri.zig similarity index 100% rename from src/internal/at_uri.zig rename to src/internal/syntax/at_uri.zig diff --git a/src/internal/did.zig b/src/internal/syntax/did.zig similarity index 100% rename from src/internal/did.zig rename to src/internal/syntax/did.zig diff --git a/src/internal/handle.zig b/src/internal/syntax/handle.zig similarity index 100% rename from src/internal/handle.zig rename to src/internal/syntax/handle.zig diff --git a/src/internal/nsid.zig b/src/internal/syntax/nsid.zig similarity index 100% rename from src/internal/nsid.zig rename to src/internal/syntax/nsid.zig diff --git a/src/internal/rkey.zig b/src/internal/syntax/rkey.zig similarity index 100% rename from src/internal/rkey.zig rename to src/internal/syntax/rkey.zig diff --git a/src/internal/tid.zig b/src/internal/syntax/tid.zig similarity index 100% rename from src/internal/tid.zig rename to src/internal/syntax/tid.zig diff --git a/src/internal/interop_tests.zig b/src/internal/testing/interop_tests.zig similarity index 95% rename from src/internal/interop_tests.zig rename to src/internal/testing/interop_tests.zig index feb8004..c648fe6 100644 --- a/src/internal/interop_tests.zig +++ b/src/internal/testing/interop_tests.zig @@ -5,21 +5,21 @@ const std = @import("std"); // types under test -const Tid = @import("tid.zig").Tid; -const Did = @import("did.zig").Did; -const Handle = @import("handle.zig").Handle; -const Nsid = @import("nsid.zig").Nsid; -const Rkey = @import("rkey.zig").Rkey; -const AtUri = @import("at_uri.zig").AtUri; +const Tid = @import("../syntax/tid.zig").Tid; +const Did = @import("../syntax/did.zig").Did; +const Handle = @import("../syntax/handle.zig").Handle; +const Nsid = @import("../syntax/nsid.zig").Nsid; +const Rkey = @import("../syntax/rkey.zig").Rkey; +const AtUri = @import("../syntax/at_uri.zig").AtUri; // crypto -const jwt = @import("jwt.zig"); -const multibase = @import("multibase.zig"); -const multicodec = @import("multicodec.zig"); +const jwt = @import("../crypto/jwt.zig"); +const multibase = @import("../crypto/multibase.zig"); +const multicodec = @import("../crypto/multicodec.zig"); -// mst -const mst = @import("mst.zig"); -const cbor = @import("cbor.zig"); +// repo +const mst = @import("../repo/mst.zig"); +const cbor = @import("../repo/cbor.zig"); // === helpers === diff --git a/src/internal/json.zig b/src/internal/xrpc/json.zig similarity index 100% rename from src/internal/json.zig rename to src/internal/xrpc/json.zig diff --git a/src/internal/transport.zig b/src/internal/xrpc/transport.zig similarity index 100% rename from src/internal/transport.zig rename to src/internal/xrpc/transport.zig diff --git a/src/internal/xrpc.zig b/src/internal/xrpc/xrpc.zig similarity index 99% rename from src/internal/xrpc.zig rename to src/internal/xrpc/xrpc.zig index 74e20fa..025d16a 100644 --- a/src/internal/xrpc.zig +++ b/src/internal/xrpc/xrpc.zig @@ -6,7 +6,7 @@ //! see: https://atproto.com/specs/xrpc const std = @import("std"); -const Nsid = @import("nsid.zig").Nsid; +const Nsid = @import("../syntax/nsid.zig").Nsid; const HttpTransport = @import("transport.zig").HttpTransport; pub const XrpcClient = struct { diff --git a/src/root.zig b/src/root.zig index 34207df..4855d75 100644 --- a/src/root.zig +++ b/src/root.zig @@ -3,54 +3,54 @@ //! parsing and validation for AT Protocol string formats. //! DID resolution for did:plc and did:web. -// string primitives -pub const Tid = @import("internal/tid.zig").Tid; -pub const Did = @import("internal/did.zig").Did; -pub const Handle = @import("internal/handle.zig").Handle; -pub const Nsid = @import("internal/nsid.zig").Nsid; -pub const Rkey = @import("internal/rkey.zig").Rkey; -pub const AtUri = @import("internal/at_uri.zig").AtUri; - -// did resolution -pub const DidDocument = @import("internal/did_document.zig").DidDocument; -pub const DidResolver = @import("internal/did_resolver.zig").DidResolver; -pub const HandleResolver = @import("internal/handle_resolver.zig").HandleResolver; +// syntax primitives +pub const Tid = @import("internal/syntax/tid.zig").Tid; +pub const Did = @import("internal/syntax/did.zig").Did; +pub const Handle = @import("internal/syntax/handle.zig").Handle; +pub const Nsid = @import("internal/syntax/nsid.zig").Nsid; +pub const Rkey = @import("internal/syntax/rkey.zig").Rkey; +pub const AtUri = @import("internal/syntax/at_uri.zig").AtUri; + +// identity resolution +pub const DidDocument = @import("internal/identity/did_document.zig").DidDocument; +pub const DidResolver = @import("internal/identity/did_resolver.zig").DidResolver; +pub const HandleResolver = @import("internal/identity/handle_resolver.zig").HandleResolver; // xrpc -pub const XrpcClient = @import("internal/xrpc.zig").XrpcClient; +pub const XrpcClient = @import("internal/xrpc/xrpc.zig").XrpcClient; // json helpers -pub const json = @import("internal/json.zig"); +pub const json = @import("internal/xrpc/json.zig"); -// service auth -pub const Jwt = @import("internal/jwt.zig").Jwt; -pub const multibase = @import("internal/multibase.zig"); -pub const multicodec = @import("internal/multicodec.zig"); +// crypto +pub const Jwt = @import("internal/crypto/jwt.zig").Jwt; +pub const multibase = @import("internal/crypto/multibase.zig"); +pub const multicodec = @import("internal/crypto/multicodec.zig"); -// mst -pub const mst = @import("internal/mst.zig"); +// repo +pub const mst = @import("internal/repo/mst.zig"); +pub const cbor = @import("internal/repo/cbor.zig"); +pub const car = @import("internal/repo/car.zig"); -// sync / firehose -const sync = @import("internal/sync.zig"); +// sync / streaming +const sync = @import("internal/streaming/sync.zig"); pub const CommitAction = sync.CommitAction; pub const EventKind = sync.EventKind; pub const AccountStatus = sync.AccountStatus; // jetstream -pub const jetstream = @import("internal/jetstream.zig"); +pub const jetstream = @import("internal/streaming/jetstream.zig"); pub const JetstreamClient = jetstream.JetstreamClient; pub const JetstreamEvent = jetstream.Event; // firehose (raw CBOR event stream) -pub const cbor = @import("internal/cbor.zig"); -pub const car = @import("internal/car.zig"); -pub const firehose = @import("internal/firehose.zig"); +pub const firehose = @import("internal/streaming/firehose.zig"); pub const FirehoseClient = firehose.FirehoseClient; pub const FirehoseEvent = firehose.Event; // interop tests (test-only, references resolved by build.zig lazy dependency) comptime { if (@import("builtin").is_test) { - _ = @import("internal/interop_tests.zig"); + _ = @import("internal/testing/interop_tests.zig"); } } -- 2.51.2