Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

*Under Construction*

`go get github.com/go-fed/apcore`
`go get github.com/WebP2P/apcore`

apcore is a powerful single server
[ActivityPub](https://www.w3.org/TR/activitypub)
Expand Down
8 changes: 4 additions & 4 deletions database.go
Original file line number Diff line number Diff line change
Expand Up @@ -732,13 +732,13 @@ func (d *database) UserPreferences(c context.Context, userId string) (u userPref
func (d *database) InsertPolicy(c context.Context, p policy) (err error) {
if p.IsInstancePolicy {
_, err = d.insertInstancePolicy.ExecContext(c,
p.Order,
p.OrderVal,
p.Description,
p.Subject,
p.Kind)
} else {
_, err = d.insertUserPolicy.ExecContext(c,
p.Order,
p.OrderVal,
p.UserId,
p.Description,
p.Subject,
Expand All @@ -751,14 +751,14 @@ func (d *database) UpdatePolicy(c context.Context, p policy) (err error) {
if p.IsInstancePolicy {
_, err = d.updateInstancePolicy.ExecContext(c,
p.Id,
p.Order,
p.OrderVal,
p.Description,
p.Subject,
p.Kind)
} else {
_, err = d.updateUserPolicy.ExecContext(c,
p.Id,
p.Order,
p.OrderVal,
p.UserId,
p.Description,
p.Subject,
Expand Down
58 changes: 34 additions & 24 deletions db_postgres.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ func newPgV0(schema string, log bool) *pgV0 {
func (p *pgV0) CreateTables(t *sql.Tx) (err error) {
InfoLogger.Info("Running Postgres create tables v0")

//Enable UUID
err = p.maybeLogExecute(t, p.uuidEnable())
if err != nil {
return
}

// Create tables
err = p.maybeLogExecute(t, p.fedDataTable())
if err != nil {
Expand Down Expand Up @@ -152,6 +158,10 @@ func (p *pgV0) maybeLogExecute(t *sql.Tx, s string) (err error) {
return
}

func (p *pgV0) uuidEnable() string {
return "CREATE EXTENSION IF NOT EXISTS pgcrypto;"
}

func (p *pgV0) fedDataTable() string {
return `
CREATE TABLE IF NOT EXISTS ` + p.schema + `fed_data
Expand Down Expand Up @@ -203,18 +213,18 @@ func (p *pgV0) usersInboxTable() string {
CREATE TABLE IF NOT EXISTS ` + p.schema + `users_inbox
(
id bigserial PRIMARY KEY,
user_id uuid REFERENCES ` + p.schema + `users (id) NOT NULL ON DELETE RESTRICT,
federated_id uuid REFERENCES ` + p.schema + `fed_data (id) NOT NULL ON DELETE CASCADE,
user_id uuid NOT NULL REFERENCES ` + p.schema + `users (id) ON DELETE RESTRICT,
federated_id uuid NOT NULL REFERENCES ` + p.schema + `fed_data (id) ON DELETE CASCADE
);`
}

func (p *pgV0) usersOutboxTable() string {
return `
CREATE TABLE IF NOT EXISTS ` + p.schema + `users_inbox
CREATE TABLE IF NOT EXISTS ` + p.schema + `users_outbox
(
id bigserial PRIMARY KEY,
user_id uuid REFERENCES ` + p.schema + `users (id) NOT NULL ON DELETE RESTRICT,
local_id uuid REFERENCES ` + p.schema + `local_data (id) NOT NULL ON DELETE CASCADE,
user_id uuid NOT NULL REFERENCES ` + p.schema + `users (id) ON DELETE RESTRICT,
local_id uuid NOT NULL REFERENCES ` + p.schema + `local_data (id) ON DELETE CASCADE
);`
}

Expand All @@ -223,7 +233,7 @@ func (p *pgV0) userPrivilegesTable() string {
CREATE TABLE IF NOT EXISTS ` + p.schema + `user_privileges
(
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
user_id uuid REFERENCES ` + p.schema + `users (id) NOT NULL ON DELETE CASCADE,
user_id uuid NOT NULL REFERENCES ` + p.schema + `users (id) ON DELETE CASCADE,
admin boolean NOT NULL
);`
}
Expand All @@ -233,7 +243,7 @@ func (p *pgV0) userPreferencesTable() string {
CREATE TABLE IF NOT EXISTS ` + p.schema + `user_preferences
(
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
user_id uuid REFERENCES ` + p.schema + `users (id) NOT NULL ON DELETE CASCADE,
user_id uuid NOT NULL REFERENCES ` + p.schema + `users (id) ON DELETE CASCADE,
on_follow text NOT NULL
);`
}
Expand All @@ -244,7 +254,7 @@ CREATE TABLE IF NOT EXISTS ` + p.schema + `instance_policies
(
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
create_time timestamp with time zone DEFAULT current_timestamp,
order integer NOT NULL CONSTRAINT unique_order UNIQUE DEFERRABLE INITIALLY DEFERRED,
order_val integer NOT NULL CONSTRAINT unique_order UNIQUE DEFERRABLE INITIALLY DEFERRED,
description text NOT NULL,
subject text NOT NULL,
kind text NOT NULL
Expand All @@ -257,12 +267,12 @@ CREATE TABLE IF NOT EXISTS ` + p.schema + `user_policies
(
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
create_time timestamp with time zone DEFAULT current_timestamp,
user_id uuid REFERENCES ` + p.schema + `users (id) NOT NULL ON DELETE CASCADE,
order integer NOT NULL,
user_id uuid NOT NULL REFERENCES ` + p.schema + `users (id) ON DELETE CASCADE,
order_val integer NOT NULL,
description text NOT NULL,
subject text NOT NULL,
kind text NOT NULL,
CONSTRAINT user_unique_order UNIQUE (user_id, order) DEFERRABLE INITIALLY DEFERRED
CONSTRAINT user_unique_order UNIQUE (user_id, order_val) DEFERRABLE INITIALLY DEFERRED
);`
}

Expand All @@ -272,31 +282,31 @@ CREATE TABLE IF NOT EXISTS ` + p.schema + `resolutions
(
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
create_time timestamp with time zone DEFAULT current_timestamp,
order integer NOT NULL,
user_id uuid REFERENCES ` + p.schema + `users (id) NOT NULL ON DELETE CASCADE,
permitted string NOT NULL,
order_val integer NOT NULL,
user_id uuid NOT NULL REFERENCES ` + p.schema + `users (id) ON DELETE CASCADE,
permitted TEXT NOT NULL,
activity_iri text NOT NULL,
is_public boolean NOT NULL,
reason text NOT NULL
CONSTRAINT activity_unique_order UNIQUE (activity_iri, order) DEFERRABLE INITIALLY DEFERRED
reason text NOT NULL,
CONSTRAINT activity_unique_order UNIQUE (activity_iri, order_val) DEFERRABLE INITIALLY DEFERRED
);`
}

func (p *pgV0) resolutionInstancePolicyJoinTable() string {
return `
CREATE TABLE IF NOT EXISTS ` + p.schema + `resolutions_instance_policies
(
resolution_id uuid REFERENCES ` + p.schema + `resolutions (id) NOT NULL ON DELETE CASCADE,
instance_policy_id uuid REFERENCES ` + p.schema + `instance_policies (id) NOT NULL ON DELETE CASCADE
resolution_id uuid NOT NULL REFERENCES ` + p.schema + `resolutions (id) ON DELETE CASCADE,
instance_policy_id uuid NOT NULL REFERENCES ` + p.schema + `instance_policies (id) ON DELETE CASCADE
);`
}

func (p *pgV0) resolutionUserPolicyJoinTable() string {
return `
CREATE TABLE IF NOT EXISTS ` + p.schema + `resolutions_user_policies
(
resolution_id uuid REFERENCES ` + p.schema + `resolutions (id) NOT NULL ON DELETE CASCADE,
user_policy_id uuid REFERENCES ` + p.schema + `user_policies (id) NOT NULL ON DELETE CASCADE
resolution_id uuid NOT NULL REFERENCES ` + p.schema + `resolutions (id) ON DELETE CASCADE,
user_policy_id uuid NOT NULL REFERENCES ` + p.schema + `user_policies (id) ON DELETE CASCADE
);`
}

Expand All @@ -306,8 +316,8 @@ CREATE TABLE IF NOT EXISTS ` + p.schema + `delivery_attempts
(
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
create_time timestamp with time zone DEFAULT current_timestamp,
from_id uuid REFERENCES ` + p.schema + `users (id) NOT NULL ON DELETE CASCADE,
to text NOT NULL,
from_id uuid NOT NULL REFERENCES ` + p.schema + `users (id) ON DELETE CASCADE,
to_id text NOT NULL,
payload bytea NOT NULL,
state text NOT NULL
);`
Expand All @@ -318,7 +328,7 @@ func (p *pgV0) privateKeyTable() string {
CREATE TABLE IF NOT EXISTS ` + p.schema + `private_keys
(
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
user_id uuid REFERENCES ` + p.schema + `users(id) NOT NULL ON DELETE CASCADE,
user_id uuid NOT NULL REFERENCES ` + p.schema + `users(id) ON DELETE CASCADE,
create_time timestamp with time zone DEFAULT current_timestamp,
priv_key bytea NOT NULL
);`
Expand Down Expand Up @@ -363,7 +373,7 @@ CREATE TABLE IF NOT EXISTS ` + p.schema + `oauth_clients
id text PRIMARY KEY,
secret text NOT NULL,
domain text NOT NULL,
user_id uuid REFERENCES ` + p.schema + `users(id) NOT NULL ON DELETE CASCADE
user_id uuid NOT NULL REFERENCES ` + p.schema + `users(id) ON DELETE CASCADE
);`
}

Expand Down
2 changes: 1 addition & 1 deletion example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ The steps are:

Build the example's binary:

`go install github.com/go-fed/apcore/example`
`go install github.com/WebP2P/apcore/example`

This binary will be referred to as `example`.

Expand Down
2 changes: 1 addition & 1 deletion example/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ import (
"net/url"
"time"

"github.com/WebP2P/apcore"
"github.com/go-fed/activity/pub"
"github.com/go-fed/activity/streams"
"github.com/go-fed/activity/streams/vocab"
"github.com/go-fed/apcore"
)

var _ apcore.Application = &App{}
Expand Down
2 changes: 1 addition & 1 deletion example/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package main

import (
"github.com/go-fed/apcore"
"github.com/WebP2P/apcore"
)

func main() {
Expand Down
2 changes: 1 addition & 1 deletion example/templates/footer.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
</div>
<footer>
<p><a href="https://github.com/go-fed/apcore">Example go-fed/apcore ActivityPub Application</a></p>
<p><a href="https://github.com/WebP2P/apcore">Example go-fed/apcore ActivityPub Application</a></p>
<p><a href="https://socialhub.activitypub.rocks/">ActivityPub Developer Community</a></p>
</footer>
</div>
Expand Down
2 changes: 1 addition & 1 deletion example/templates/nav.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<nav>
<p><a href="https://github.com/go-fed/apcore/example">Example apcore App</p>
<p><a href="https://github.com/WebP2P/apcore/example">Example apcore App</p>
<ul>
{{range .Nav}}
<li><a href="{{.Href}}">{{.Name}}</a></li>
Expand Down
7 changes: 5 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
module github.com/go-fed/apcore
module github.com/WebP2P/apcore

go 1.12

require (
github.com/go-fed/activity v0.4.1-0.20190914143548-d87793a58918
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect
github.com/go-fed/activity v0.4.1-0.20191110234352-e8a7301360fc
github.com/go-fed/apcore v0.0.0-20191116165354-16cb7ef82cc7 // indirect
github.com/go-fed/httpsig v0.1.1-0.20190924171022-f4c36041199d
github.com/google/logger v1.0.1
github.com/gorilla/mux v1.7.3
Expand All @@ -12,6 +14,7 @@ require (
github.com/manifoldco/promptui v0.3.2
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2
gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20191105091915-95d230a53780 // indirect
gopkg.in/ini.v1 v1.44.0
gopkg.in/oauth2.v3 v3.10.0
)
23 changes: 23 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,11 +1,16 @@
github.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
github.com/alecthomas/gometalinter v2.0.11+incompatible h1:ENdXMllZNSVDTJUUVIzBW9CSEpntTrQa76iRsEFLX/M=
github.com/alecthomas/gometalinter v2.0.11+incompatible/go.mod h1:qfIpQGGz3d+NmgyPBqv+LSh50emm1pt72EtcX2vKYQk=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/dave/jennifer v1.3.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
Expand All @@ -17,20 +22,28 @@ github.com/go-fed/activity v0.4.0 h1:1YOYLMT+x2hx+AtQZNQHOGBXWnn2CF/10jGxTjaOEsw
github.com/go-fed/activity v0.4.0/go.mod h1:QeFu271luhA2o47U3/DR6iWtxiB9Fw2dKGbvL8edM9E=
github.com/go-fed/activity v0.4.1-0.20190914143548-d87793a58918 h1:PEolP0SeBFBRLW7dBJBDoaYRdRwnGwGQUACy2uvxirk=
github.com/go-fed/activity v0.4.1-0.20190914143548-d87793a58918/go.mod h1:Y+/EmhXB6Gnzq4EkV8dGY8MxZ0hZ6pwP341dYeAic1I=
github.com/go-fed/activity v0.4.1-0.20191110234352-e8a7301360fc h1:4v4WuZMJQAK4xnjqtnYRYcgOtBIYa9kYd2kdfHBGvK8=
github.com/go-fed/activity v0.4.1-0.20191110234352-e8a7301360fc/go.mod h1:v4QoPaAzjWZ8zN2VFVGL5ep9C02mst0hQYHUpQwso4Q=
github.com/go-fed/apcore v0.0.0-20191116165354-16cb7ef82cc7 h1:q69BAqUd5jVxAFtVvZMhK8XuBvgJ+QA9bOdXswOQ2to=
github.com/go-fed/apcore v0.0.0-20191116165354-16cb7ef82cc7/go.mod h1:fJMELEnEWtn6VjO/VDog9KF+Okr38BDEPI32EIMWCI8=
github.com/go-fed/httpsig v0.1.0 h1:6F2OxRVnNTN4OPN+Mc2jxs2WEay9/qiHT/jphlvAwIY=
github.com/go-fed/httpsig v0.1.0/go.mod h1:T56HUNYZUQ1AGUzhAYPugZfp36sKApVnGBgKlIY+aIE=
github.com/go-fed/httpsig v0.1.1-0.20190914113940-c2de3672e5b5/go.mod h1:T56HUNYZUQ1AGUzhAYPugZfp36sKApVnGBgKlIY+aIE=
github.com/go-fed/httpsig v0.1.1-0.20190924171022-f4c36041199d h1:+uoOvOnNDgsYbWtAij4xP6Rgir3eJGjocFPxBJETU/U=
github.com/go-fed/httpsig v0.1.1-0.20190924171022-f4c36041199d/go.mod h1:T56HUNYZUQ1AGUzhAYPugZfp36sKApVnGBgKlIY+aIE=
github.com/go-session/session v3.1.2+incompatible/go.mod h1:8B3iivBQjrz/JtC68Np2T1yBBLxTan3mn/3OM0CyRt0=
github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
github.com/golang/lint v0.0.0-20181026193005-c67002cb31c3 h1:I4BOK3PBMjhWfQM2zPJKK7lOBGsrsvOB7kBELP33hiE=
github.com/golang/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:tluoj9z5200jBnyusfRPU2LqT6J+DAorxEvtC7LHB+E=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/logger v1.0.1 h1:Jtq7/44yDwUXMaLTYgXFC31zpm6Oku7OI/k4//yVANQ=
github.com/google/logger v1.0.1/go.mod h1:w7O8nrRr0xufejBlQMI83MXqRusvREoJdaAxV+CoAB4=
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf h1:7+FW5aGwISbqUtkfmIpZJGRgNFg2ioYPvFaUxdqpDsg=
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE=
github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gordonklaus/ineffassign v0.0.0-20180909121442-1003c8bd00dc h1:cJlkeAx1QYgO5N80aF5xRGstVsRQwgLR7uA2FnP1ZjY=
github.com/gordonklaus/ineffassign v0.0.0-20180909121442-1003c8bd00dc/go.mod h1:cuNKsD1zp2v6XfE/orVX2QE1LC+i254ceGcVeDT3pTU=
github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
Expand Down Expand Up @@ -60,21 +73,25 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO
github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ=
github.com/nicksnyder/go-i18n v2.0.3+incompatible h1:XCCaWsCoy4KlWkhOr+63dkv6oJmitJ573uJqDBAiFiQ=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/tidwall/btree v0.0.0-20170113224114-9876f1454cf0/go.mod h1:huei1BkDWJ3/sLXmO+bsCNELL+Bp2Kks9OLyQFkzvA8=
github.com/tidwall/buntdb v1.0.0/go.mod h1:Y39xhcDW10WlyYXeLgGftXVbjtM0QP+/kpz8xl9cbzE=
github.com/tidwall/gjson v1.1.3/go.mod h1:c/nTNbUr0E0OrXEhq1pwa8iEgc2DOt4ZZqAt1HtCkPA=
github.com/tidwall/grect v0.0.0-20161006141115-ba9a043346eb/go.mod h1:lKYYLFIr9OIgdgrtgkZ9zgRxRdvPYsExnYBsEAd8W5M=
github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
github.com/tidwall/rtree v0.0.0-20180113144539-6cd427091e0e/go.mod h1:/h+UnNGt0IhNNJLkGikcdcJqm66zGD/uJGMRxK/9+Ao=
github.com/tidwall/tinyqueue v0.0.0-20180302190814-1e39f5511563/go.mod h1:mLqSmt7Dv/CNneF2wfcChfN1rvapyQr01LGKnKex0DQ=
github.com/tsenart/deadcode v0.0.0-20160724212837-210d2dc333e9 h1:vY5WqiEon0ZSTGM3ayVVi+twaHKHDFUVloaQ/wug9/c=
github.com/tsenart/deadcode v0.0.0-20160724212837-210d2dc333e9/go.mod h1:q+QjxYvZ+fpjMXqs+XEriussHjSYqeXVnAdSV1tkMYk=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.0.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s=
Expand All @@ -90,10 +107,12 @@ golang.org/x/crypto v0.0.0-20180527072434-ab813273cd59/go.mod h1:6SG95UA2DQfeDnf
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc=
golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3 h1:x/bBzNauLQAlE3fLku/xy92Y8QwKX5HZymrMz2IiKFc=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181217023233-e147a9138326/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180525142821-c11f84a56e43/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
Expand All @@ -105,7 +124,10 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2 h1:+DCIGbF/swA92ohVg0//6X2IVY3KZs6p9mix0ziNYJM=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20181122213734-04b5d21e00f1 h1:bsEj/LXbv3BCtkp/rBj9Wi/0Nde4OMaraIZpndHAhdI=
golang.org/x/tools v0.0.0-20181122213734-04b5d21e00f1/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20191105091915-95d230a53780 h1:CEBpW6C191eozfEuWdUmIAHn7lwlLxJ7HVdr2e2Tsrw=
gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20191105091915-95d230a53780/go.mod h1:3HH7i1SgMqlzxCcBmUHW657sD4Kvv9sC3HpL3YukzwA=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
Expand All @@ -115,3 +137,4 @@ gopkg.in/oauth2.v3 v3.10.0 h1:yBiewwkAh1wHQNNBqWqLaEOsIxJKsTBeHRLxzTHIiwk=
gopkg.in/oauth2.v3 v3.10.0/go.mod h1:nTG+m2PRcHR9jzGNrGdxSsUKz7vvwkqSlhFrstgZcRU=
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
Loading