feat: generate TypeScript view types via panproto Protolens The DB projection lens is now expressed as a chain of elementary Protolens transforms (drop_sort, add_sort, rename_sort), composed into a ProtolensChain, and applied to the Lexicon source schema via chain.instantiate() to produce the target schema. TypeScript interfaces are emitted by walking the target schema's vertices and kinds — no hand-written type mappings. All field types come from panproto's vertex kind system. - Upgrade panproto to v0.22.1 (fixes add_sort vertex kind propagation) - Add panproto-lens dependency to cospan-codegen - New emit_typescript_views.rs uses Protolens for schema transformation - Generated views.ts replaces hand-written types in API client files - Fix all undefined .length crashes (labels, artifacts, etc.) - Fix field name mismatches (creatorDid→did, ref→refName, etc.) - Remove dead fields (mergePreview, algebraicChecks on wrong types)
Author: Aaron Steven White
Commit
b4f15f0cef93e4d188e7cf50b359dd3c8df4395eParent: d7c80c19fb
Structural diff unavailable
These commits were pushed via plain git push, so no pre-parsed
schemas are available. Install git-remote-cospan and re-push via panproto:// to
see scope-level changes, breaking change detection, and semantic diffs.
brew install panproto/tap/git-remote-cospan23 files changed +1141 -370
@@ -255,16 +255,16 @@ dependencies = [
255255 256256 [[package]] 257257 name = "blake3" 258-version = "1.8.3" 258+version = "1.8.4" 259259 source = "registry+https://github.com/rust-lang/crates.io-index" 260-checksum = "2468ef7d57b3fb7e16b576e8377cdbde2320c60e1491e961d11da40fc4f02a2d" 260+checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e" 261261 dependencies = [ 262262 "arrayref", 263263 "arrayvec", 264264 "cc", 265265 "cfg-if", 266266 "constant_time_eq", 267- "cpufeatures", 267+ "cpufeatures 0.3.0", 268268 ] 269269 270270 [[package]]
@@ -306,9 +306,9 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
306306 307307 [[package]] 308308 name = "cc" 309-version = "1.2.57" 309+version = "1.2.58" 310310 source = "registry+https://github.com/rust-lang/crates.io-index" 311-checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" 311+checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" 312312 dependencies = [ 313313 "find-msvc-tools", 314314 "jobserver",
@@ -489,6 +489,7 @@ dependencies = [
489489 "panproto-expr", 490490 "panproto-gat", 491491 "panproto-inst", 492+ "panproto-lens", 492493 "panproto-mig", 493494 "panproto-protocols", 494495 "panproto-schema",
@@ -543,6 +544,15 @@ dependencies = [
543544 ] 544545 545546 [[package]] 547+name = "cpufeatures" 548+version = "0.3.0" 549+source = "registry+https://github.com/rust-lang/crates.io-index" 550+checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" 551+dependencies = [ 552+ "libc", 553+] 554+ 555+[[package]] 546556 name = "crc" 547557 version = "3.4.0" 548558 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -613,9 +623,9 @@ dependencies = [
613623 614624 [[package]] 615625 name = "crypto-common" 616-version = "0.1.7" 626+version = "0.1.6" 617627 source = "registry+https://github.com/rust-lang/crates.io-index" 618-checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 628+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 619629 dependencies = [ 620630 "generic-array", 621631 "typenum",
@@ -985,9 +995,9 @@ dependencies = [
985995 986996 [[package]] 987997 name = "generic-array" 988-version = "0.14.7" 998+version = "0.14.9" 989999 source = "registry+https://github.com/rust-lang/crates.io-index" 990-checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1000+checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" 9911001 dependencies = [ 9921002 "typenum", 9931003 "version_check",
@@ -1239,9 +1249,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
12391249 12401250 [[package]] 12411251 name = "hyper" 1242-version = "1.8.1" 1252+version = "1.9.0" 12431253 source = "registry+https://github.com/rust-lang/crates.io-index" 1244-checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" 1254+checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" 12451255 dependencies = [ 12461256 "atomic-waker", 12471257 "bytes",
@@ -1254,7 +1264,6 @@ dependencies = [
12541264 "httpdate", 12551265 "itoa", 12561266 "pin-project-lite", 1257- "pin-utils", 12581267 "smallvec 1.15.1", 12591268 "tokio", 12601269 "want",
@@ -1310,7 +1319,7 @@ dependencies = [
13101319 "libc", 13111320 "percent-encoding", 13121321 "pin-project-lite", 1313- "socket2 0.5.10", 1322+ "socket2 0.6.3", 13141323 "system-configuration", 13151324 "tokio", 13161325 "tower-service",
@@ -1470,9 +1479,9 @@ checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2"
14701479 14711480 [[package]] 14721481 name = "iri-string" 1473-version = "0.7.11" 1482+version = "0.7.12" 14741483 source = "registry+https://github.com/rust-lang/crates.io-index" 1475-checksum = "d8e7418f59cc01c88316161279a7f665217ae316b388e58a0d10e29f54f1e5eb" 1484+checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" 14761485 dependencies = [ 14771486 "memchr", 14781487 "serde",
@@ -1511,10 +1520,12 @@ dependencies = [
15111520 15121521 [[package]] 15131522 name = "js-sys" 1514-version = "0.3.91" 1523+version = "0.3.93" 15151524 source = "registry+https://github.com/rust-lang/crates.io-index" 1516-checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" 1525+checksum = "797146bb2677299a1eb6b7b50a890f4c361b29ef967addf5b2fa45dae1bb6d7d" 15171526 dependencies = [ 1527+ "cfg-if", 1528+ "futures-util", 15181529 "once_cell", 15191530 "wasm-bindgen", 15201531 ]
@@ -1767,9 +1778,9 @@ dependencies = [
17671778 17681779 [[package]] 17691780 name = "mio" 1770-version = "1.1.1" 1781+version = "1.2.0" 17711782 source = "registry+https://github.com/rust-lang/crates.io-index" 1772-checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" 1783+checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" 17731784 dependencies = [ 17741785 "libc", 17751786 "wasi",
@@ -2001,8 +2012,8 @@ dependencies = [
20012012 20022013 [[package]] 20032014 name = "panproto-check" 2004-version = "0.22.0" 2005-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2015+version = "0.22.1" 2016+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 20062017 dependencies = [ 20072018 "panproto-gat", 20082019 "panproto-lens",
@@ -2016,8 +2027,8 @@ dependencies = [
20162027 20172028 [[package]] 20182029 name = "panproto-core" 2019-version = "0.22.0" 2020-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2030+version = "0.22.1" 2031+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 20212032 dependencies = [ 20222033 "panproto-check", 20232034 "panproto-gat",
@@ -2032,8 +2043,8 @@ dependencies = [
20322043 20332044 [[package]] 20342045 name = "panproto-expr" 2035-version = "0.22.0" 2036-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2046+version = "0.22.1" 2047+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 20372048 dependencies = [ 20382049 "rustc-hash", 20392050 "serde",
@@ -2042,8 +2053,8 @@ dependencies = [
20422053 20432054 [[package]] 20442055 name = "panproto-expr-parser" 2045-version = "0.22.0" 2046-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2056+version = "0.22.1" 2057+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 20472058 dependencies = [ 20482059 "chumsky", 20492060 "logos",
@@ -2052,8 +2063,8 @@ dependencies = [
20522063 20532064 [[package]] 20542065 name = "panproto-gat" 2055-version = "0.22.0" 2056-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2066+version = "0.22.1" 2067+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 20572068 dependencies = [ 20582069 "panproto-expr", 20592070 "rustc-hash",
@@ -2063,8 +2074,8 @@ dependencies = [
20632074 20642075 [[package]] 20652076 name = "panproto-git" 2066-version = "0.22.0" 2067-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2077+version = "0.22.1" 2078+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 20682079 dependencies = [ 20692080 "git2", 20702081 "miette",
@@ -2081,8 +2092,8 @@ dependencies = [
20812092 20822093 [[package]] 20832094 name = "panproto-grammars" 2084-version = "0.22.0" 2085-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2095+version = "0.22.1" 2096+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 20862097 dependencies = [ 20872098 "cc", 20882099 "serde",
@@ -2093,8 +2104,8 @@ dependencies = [
20932104 20942105 [[package]] 20952106 name = "panproto-inst" 2096-version = "0.22.0" 2097-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2107+version = "0.22.1" 2108+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 20982109 dependencies = [ 20992110 "bumpalo", 21002111 "panproto-expr",
@@ -2109,8 +2120,8 @@ dependencies = [
21092120 21102121 [[package]] 21112122 name = "panproto-io" 2112-version = "0.22.0" 2113-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2123+version = "0.22.1" 2124+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 21142125 dependencies = [ 21152126 "bumpalo", 21162127 "memchr",
@@ -2132,8 +2143,8 @@ dependencies = [
21322143 21332144 [[package]] 21342145 name = "panproto-lens" 2135-version = "0.22.0" 2136-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2146+version = "0.22.1" 2147+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 21372148 dependencies = [ 21382149 "panproto-expr", 21392150 "panproto-gat",
@@ -2149,8 +2160,8 @@ dependencies = [
21492160 21502161 [[package]] 21512162 name = "panproto-mig" 2152-version = "0.22.0" 2153-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2163+version = "0.22.1" 2164+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 21542165 dependencies = [ 21552166 "panproto-expr", 21562167 "panproto-gat",
@@ -2163,8 +2174,8 @@ dependencies = [
21632174 21642175 [[package]] 21652176 name = "panproto-parse" 2166-version = "0.22.0" 2167-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2177+version = "0.22.1" 2178+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 21682179 dependencies = [ 21692180 "memchr", 21702181 "miette",
@@ -2182,8 +2193,8 @@ dependencies = [
21822193 21832194 [[package]] 21842195 name = "panproto-project" 2185-version = "0.22.0" 2186-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2196+version = "0.22.1" 2197+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 21872198 dependencies = [ 21882199 "blake3", 21892200 "globset",
@@ -2202,8 +2213,8 @@ dependencies = [
22022213 22032214 [[package]] 22042215 name = "panproto-protocols" 2205-version = "0.22.0" 2206-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2216+version = "0.22.1" 2217+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 22072218 dependencies = [ 22082219 "blake3", 22092220 "panproto-gat",
@@ -2217,8 +2228,8 @@ dependencies = [
22172228 22182229 [[package]] 22192230 name = "panproto-schema" 2220-version = "0.22.0" 2221-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2231+version = "0.22.1" 2232+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 22222233 dependencies = [ 22232234 "panproto-expr", 22242235 "panproto-gat",
@@ -2230,8 +2241,8 @@ dependencies = [
22302241 22312242 [[package]] 22322243 name = "panproto-vcs" 2233-version = "0.22.0" 2234-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2244+version = "0.22.1" 2245+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 22352246 dependencies = [ 22362247 "blake3", 22372248 "panproto-check",
@@ -2251,8 +2262,8 @@ dependencies = [
22512262 22522263 [[package]] 22532264 name = "panproto-xrpc" 2254-version = "0.22.0" 2255-source = "git+https://github.com/panproto/panproto.git?tag=v0.22.0#9614c9e266727261af4b5a36896241469a30b15a" 2265+version = "0.22.1" 2266+source = "git+https://github.com/panproto/panproto.git?tag=v0.22.1#ee8b6e75fbb71b8b66a1932a5f031d3ff092c510" 22562267 dependencies = [ 22572268 "hex", 22582269 "miette",
@@ -2327,12 +2338,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
23272338 checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" 23282339 23292340 [[package]] 2330-name = "pin-utils" 2331-version = "0.1.0" 2332-source = "registry+https://github.com/rust-lang/crates.io-index" 2333-checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2334- 2335-[[package]] 23362341 name = "pkcs1" 23372342 version = "0.7.5" 23382343 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2500,7 +2505,7 @@ dependencies = [
25002505 "quinn-udp", 25012506 "rustc-hash", 25022507 "rustls", 2503- "socket2 0.5.10", 2508+ "socket2 0.6.3", 25042509 "thiserror", 25052510 "tokio", 25062511 "tracing",
@@ -2537,7 +2542,7 @@ dependencies = [
25372542 "cfg_aliases", 25382543 "libc", 25392544 "once_cell", 2540- "socket2 0.5.10", 2545+ "socket2 0.6.3", 25412546 "tracing", 25422547 "windows-sys 0.60.2", 25432548 ]
@@ -2856,9 +2861,9 @@ checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d"
28562861 28572862 [[package]] 28582863 name = "rustc-hash" 2859-version = "2.1.1" 2864+version = "2.1.2" 28602865 source = "registry+https://github.com/rust-lang/crates.io-index" 2861-checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" 2866+checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" 28622867 28632868 [[package]] 28642869 name = "rustix"
@@ -3072,7 +3077,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
30723077 checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 30733078 dependencies = [ 30743079 "cfg-if", 3075- "cpufeatures", 3080+ "cpufeatures 0.2.17", 30763081 "digest", 30773082 ] 30783083
@@ -3089,7 +3094,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
30893094 checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 30903095 dependencies = [ 30913096 "cfg-if", 3092- "cpufeatures", 3097+ "cpufeatures 0.2.17", 30933098 "digest", 30943099 ] 30953100
@@ -3130,9 +3135,9 @@ dependencies = [
31303135 31313136 [[package]] 31323137 name = "simd-adler32" 3133-version = "0.3.8" 3138+version = "0.3.9" 31343139 source = "registry+https://github.com/rust-lang/crates.io-index" 3135-checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" 3140+checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" 31363141 31373142 [[package]] 31383143 name = "simd-json"
@@ -4081,9 +4086,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
40814086 40824087 [[package]] 40834088 name = "uuid" 4084-version = "1.22.0" 4089+version = "1.23.0" 40854090 source = "registry+https://github.com/rust-lang/crates.io-index" 4086-checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" 4091+checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" 40874092 dependencies = [ 40884093 "getrandom 0.4.2", 40894094 "js-sys",
@@ -4161,9 +4166,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b"
41614166 41624167 [[package]] 41634168 name = "wasm-bindgen" 4164-version = "0.2.114" 4169+version = "0.2.116" 41654170 source = "registry+https://github.com/rust-lang/crates.io-index" 4166-checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" 4171+checksum = "7dc0882f7b5bb01ae8c5215a1230832694481c1a4be062fd410e12ea3da5b631" 41674172 dependencies = [ 41684173 "cfg-if", 41694174 "once_cell",
@@ -4174,23 +4179,19 @@ dependencies = [
41744179 41754180 [[package]] 41764181 name = "wasm-bindgen-futures" 4177-version = "0.4.64" 4182+version = "0.4.66" 41784183 source = "registry+https://github.com/rust-lang/crates.io-index" 4179-checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" 4184+checksum = "19280959e2844181895ef62f065c63e0ca07ece4771b53d89bfdb967d97cbf05" 41804185 dependencies = [ 4181- "cfg-if", 4182- "futures-util", 41834186 "js-sys", 4184- "once_cell", 41854187 "wasm-bindgen", 4186- "web-sys", 41874188 ] 41884189 41894190 [[package]] 41904191 name = "wasm-bindgen-macro" 4191-version = "0.2.114" 4192+version = "0.2.116" 41924193 source = "registry+https://github.com/rust-lang/crates.io-index" 4193-checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" 4194+checksum = "75973d3066e01d035dbedaad2864c398df42f8dd7b1ea057c35b8407c015b537" 41944195 dependencies = [ 41954196 "quote", 41964197 "wasm-bindgen-macro-support",
@@ -4198,9 +4199,9 @@ dependencies = [
41984199 41994200 [[package]] 42004201 name = "wasm-bindgen-macro-support" 4201-version = "0.2.114" 4202+version = "0.2.116" 42024203 source = "registry+https://github.com/rust-lang/crates.io-index" 4203-checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" 4204+checksum = "91af5e4be765819e0bcfee7322c14374dc821e35e72fa663a830bbc7dc199eac" 42044205 dependencies = [ 42054206 "bumpalo", 42064207 "proc-macro2",
@@ -4211,9 +4212,9 @@ dependencies = [
42114212 42124213 [[package]] 42134214 name = "wasm-bindgen-shared" 4214-version = "0.2.114" 4215+version = "0.2.116" 42154216 source = "registry+https://github.com/rust-lang/crates.io-index" 4216-checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" 4217+checksum = "c9bf0406a78f02f336bf1e451799cca198e8acde4ffa278f0fb20487b150a633" 42174218 dependencies = [ 42184219 "unicode-ident", 42194220 ]
@@ -4254,9 +4255,9 @@ dependencies = [
42544255 42554256 [[package]] 42564257 name = "web-sys" 4257-version = "0.3.91" 4258+version = "0.3.93" 42584259 source = "registry+https://github.com/rust-lang/crates.io-index" 4259-checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" 4260+checksum = "749466a37ee189057f54748b200186b59a03417a117267baf3fd89cecc9fb837" 42604261 dependencies = [ 42614262 "js-sys", 42624263 "wasm-bindgen",
@@ -4729,18 +4730,18 @@ dependencies = [
47294730 47304731 [[package]] 47314732 name = "zerocopy" 4732-version = "0.8.47" 4733+version = "0.8.48" 47334734 source = "registry+https://github.com/rust-lang/crates.io-index" 4734-checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" 4735+checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" 47354736 dependencies = [ 47364737 "zerocopy-derive", 47374738 ] 47384739 47394740 [[package]] 47404741 name = "zerocopy-derive" 4741-version = "0.8.47" 4742+version = "0.8.48" 47424743 source = "registry+https://github.com/rust-lang/crates.io-index" 4743-checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" 4744+checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" 47444745 dependencies = [ 47454746 "proc-macro2", 47464747 "quote",
@@ -16,22 +16,22 @@ repository = "https://github.com/cospan-dev/cospan"
1616 # panproto — all from git because panproto-grammars needs vendored C sources 1717 # (too large for crates.io). All crates must come from the same source to avoid 1818 # type mismatches between git and crates.io versions of panproto-schema etc. 19-panproto-core = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 20-panproto-vcs = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 21-panproto-schema = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 22-panproto-check = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 23-panproto-lens = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 24-panproto-protocols = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 25-panproto-io = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 26-panproto-inst = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 27-panproto-gat = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 28-panproto-mig = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 29-panproto-expr = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 30-panproto-expr-parser = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 31-panproto-xrpc = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 32-panproto-parse = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0", features = ["group-all"] } 33-panproto-git = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 34-panproto-project = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.0" } 19+panproto-core = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 20+panproto-vcs = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 21+panproto-schema = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 22+panproto-check = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 23+panproto-lens = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 24+panproto-protocols = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 25+panproto-io = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 26+panproto-inst = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 27+panproto-gat = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 28+panproto-mig = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 29+panproto-expr = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 30+panproto-expr-parser = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 31+panproto-xrpc = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 32+panproto-parse = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1", features = ["group-all"] } 33+panproto-git = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 34+panproto-project = { git = "https://github.com/panproto/panproto.git", tag = "v0.22.1" } 3535 git2 = "0.20" 3636 3737 # Web framework
@@ -1,10 +1,10 @@
11 import { xrpcQuery } from './client.js'; 2+import type { ActorProfileView } from '$lib/generated/views.js'; 23 3-export interface ActorProfile { 4- did: string; 4+// The getProfile endpoint returns an enriched view with counts and a resolved handle. 5+// These fields are not on the base ActorProfileView Row. 6+export interface ActorProfile extends ActorProfileView { 57 handle: string; 6- displayName: string | null; 7- description: string | null; 88 avatarUrl: string | null; 99 followerCount: number; 1010 followingCount: number;
@@ -1,50 +1,18 @@
11 import { xrpcQuery } from './client.js'; 2+import type { IssueView, IssueCommentView, IssueStateView, IssueListResponse as RawIssueListResponse } from '$lib/generated/views.js'; 23 3-export interface Issue { 4- rkey: string; 5- repo: string; 6- did: string; 7- title: string; 8- body: string | null; 9- state: 'open' | 'closed'; 10- labels: string[]; 11- commentCount: number; 12- creatorDid: string; 13- creatorHandle: string | null; 14- createdAt: string; 15- updatedAt: string; 16-} 4+export type Issue = IssueView; 5+export type IssueComment = IssueCommentView; 6+export type IssueStateChange = IssueStateView; 177 188 export interface IssueListResponse { 199 items: Issue[]; 2010 cursor: string | null; 2111 } 2212 23-export interface IssueComment { 24- rkey: string; 25- issue: string; 26- body: string; 27- creatorDid: string; 28- creatorHandle: string | null; 29- createdAt: string; 30-} 31- 32-export interface IssueStateChange { 33- rkey: string; 34- issue: string; 35- state: 'open' | 'closed'; 36- reason: string | null; 37- actorDid: string; 38- actorHandle: string | null; 39- createdAt: string; 40-} 41- 42-export type TimelineEvent = 43- | { type: 'comment'; data: IssueComment } 44- | { type: 'stateChange'; data: IssueStateChange }; 45- 13+// Timeline is a composite type — not directly generated from a single Row 4614 export interface IssueTimelineResponse { 47- events: TimelineEvent[]; 15+ timeline: Record<string, unknown>[]; 4816 cursor: string | null; 4917 } 5018
@@ -55,7 +23,7 @@ export async function listIssues(params: {
5523 limit?: number; 5624 cursor?: string; 5725 }): Promise<IssueListResponse> { 58- const raw = await xrpcQuery<{ issues: Issue[]; cursor: string | null }>( 26+ const raw = await xrpcQuery<RawIssueListResponse>( 5927 'dev.cospan.repo.issue.list', 6028 params 6129 );
@@ -1,14 +1,16 @@
11 import { xrpcQuery } from './client.js'; 2+import type { 3+ OrgView, 4+ OrgMemberView, 5+ OrgListResponse as RawOrgListResponse, 6+ OrgMemberListResponse as RawOrgMemberListResponse, 7+} from '$lib/generated/views.js'; 28 3-export interface OrgSummary { 4- did: string; 5- rkey: string; 6- name: string; 7- description: string | null; 9+// The list endpoint returns enriched orgs with counts and avatarUrl. 10+export interface OrgSummary extends OrgView { 811 avatarUrl: string | null; 912 memberCount: number; 1013 repoCount: number; 11- createdAt: string; 1214 } 1315 1416 export interface OrgListResponse {
@@ -16,11 +18,10 @@ export interface OrgListResponse {
1618 cursor: string | null; 1719 } 1820 19-export interface OrgMember { 20- did: string; 21+// The list endpoint returns enriched members with handle and displayName. 22+export interface OrgMember extends OrgMemberView { 2123 handle: string | null; 2224 displayName: string | null; 23- role: 'admin' | 'member'; 2425 joinedAt: string; 2526 } 2627
@@ -33,7 +34,7 @@ export async function listOrgs(params?: {
3334 limit?: number; 3435 cursor?: string; 3536 }): Promise<OrgListResponse> { 36- const raw = await xrpcQuery<{ orgs: OrgSummary[]; cursor: string | null }>('dev.cospan.org.list', params); 37+ const raw = await xrpcQuery<RawOrgListResponse & { orgs: OrgSummary[] }>('dev.cospan.org.list', params); 3738 return { items: raw.orgs ?? [], cursor: raw.cursor ?? null }; 3839 } 3940
@@ -47,6 +48,6 @@ export async function listOrgMembers(params: {
4748 limit?: number; 4849 cursor?: string; 4950 }): Promise<OrgMemberListResponse> { 50- const raw = await xrpcQuery<{ members: OrgMember[]; cursor: string | null }>('dev.cospan.org.member.list', params); 51+ const raw = await xrpcQuery<RawOrgMemberListResponse & { members: OrgMember[] }>('dev.cospan.org.member.list', params); 5152 return { items: raw.members ?? [], cursor: raw.cursor ?? null }; 5253 }