+1
-1
atproto/syntax/nsid.go
+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
+1
atproto/syntax/testdata/aturi_syntax_valid.txt
+2
-4
atproto/syntax/testdata/nsid_syntax_invalid.txt
+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
+3
atproto/syntax/testdata/nsid_syntax_valid.txt
···
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