+8
-6
appview/state/userutil/userutil.go
+8
-6
appview/state/userutil/userutil.go
···
5
5
"strings"
6
6
)
7
7
8
+
var (
9
+
handleRegex = regexp.MustCompile(`^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$`)
10
+
didRegex = regexp.MustCompile(`^did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]$`)
11
+
)
12
+
8
13
func IsHandleNoAt(s string) bool {
9
14
// ref: https://atproto.com/specs/handle
10
-
re := regexp.MustCompile(`^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$`)
11
-
return re.MatchString(s)
15
+
return handleRegex.MatchString(s)
12
16
}
13
17
14
18
func UnflattenDid(s string) string {
···
29
33
// Reconstruct as a standard DID format using Replace
30
34
// Example: "did-plc-xyz-abc" becomes "did:plc:xyz-abc"
31
35
reconstructed := strings.Replace(s, "-", ":", 2)
32
-
re := regexp.MustCompile(`^did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]$`)
33
36
34
-
return re.MatchString(reconstructed)
37
+
return didRegex.MatchString(reconstructed)
35
38
}
36
39
37
40
// FlattenDid converts a DID to a flattened format.
···
46
49
47
50
// IsDid checks if the given string is a standard DID.
48
51
func IsDid(s string) bool {
49
-
re := regexp.MustCompile(`^did:[a-z]+:[a-zA-Z0-9._:%-]*[a-zA-Z0-9._-]$`)
50
-
return re.MatchString(s)
52
+
return didRegex.MatchString(s)
51
53
}
+2
-1
flake.nix
+2
-1
flake.nix
···
150
150
''
151
151
${pkgs.air}/bin/air -c /dev/null \
152
152
-build.cmd "${pkgs.go}/bin/go build -o ./out/${name}.out ./cmd/${name}/main.go" \
153
-
-build.bin "./out/${name}.out ${arg}" \
153
+
-build.bin "./out/${name}.out" \
154
+
-build.args_bin "${arg}"
154
155
-build.stop_on_error "true" \
155
156
-build.include_ext "go"
156
157
'';