fork of indigo with slightly nicer lexgen

allow non-leading digits in NSID 'name' segment

+1 -1
atproto/syntax/nsid.go
··· 6 6 "strings" 7 7 ) 8 8 9 - var nsidRegex = regexp.MustCompile(`^[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\.[a-zA-Z]([a-zA-Z]{0,61}[a-zA-Z])?)$`) 9 + var nsidRegex = regexp.MustCompile(`^[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\.[a-zA-Z]([a-zA-Z0-9]{0,62})?)$`) 10 10 11 11 // String type which represents a syntaxtually valid Namespace Identifier (NSID), as would pass Lexicon syntax validation. 12 12 //
+1
atproto/syntax/testdata/aturi_syntax_valid.txt
··· 32 32 at://did:abc:123/io.nsid.someFunc/_ 33 33 at://did:abc:123/io.nsid.someFunc/~ 34 34 at://did:abc:123/io.nsid.someFunc/... 35 + at://did:plc:asdf123/com.atproto.feed.postV2
+2 -4
atproto/syntax/testdata/nsid_syntax_invalid.txt
··· 3 3 com.example.oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo 4 4 com.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.middle.foo 5 5 6 - # invliad examples 6 + # invalid examples 7 7 com.example.foo.* 8 8 com.example.foo.blah* 9 9 com.example.foo.*blah 10 - com.example.f00 11 10 com.exa💩ple.thing 12 11 a-0.b-1.c-3 13 12 a-0.b-1.c-o 14 - a0.b1.c3 15 13 1.0.0.127.record 16 14 0two.example.foo 17 15 example.com ··· 29 27 com.atproto.feed.po#t 30 28 com.atproto.feed.p!ot 31 29 com.example-.foo 32 - 30 + com.example.fooBar.2
+3
atproto/syntax/testdata/nsid_syntax_valid.txt
··· 5 5 6 6 # valid examples 7 7 com.example.fooBar 8 + com.example.fooBarV2 8 9 net.users.bob.ping 9 10 a.b.c 10 11 m.xn--masekowski-d0b.pl ··· 18 19 a01.thing.record 19 20 a.0.c 20 21 xn--fiqs8s.xn--fiqa61au8b7zsevnm8ak20mc4a87e.record.two 22 + a0.b1.c3 23 + com.example.f00 21 24 22 25 # allows onion (Tor) NSIDs 23 26 onion.expyuzz4wqqyqhjn.spec.getThing