fork of indigo with slightly nicer lexgen

allow non-leading digits in NSID 'name' segment

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