diff --git a/.github/workflows/main.yml b/.github/workflows/build.yml
similarity index 99%
rename from .github/workflows/main.yml
rename to .github/workflows/build.yml
index dcbbeef3..3d1eafd2 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/build.yml
@@ -64,6 +64,6 @@ jobs:
- name: E2E tests
run: |
- docker run -d -p 9222:9222 ghcr.io/montferret/chromium:86.0.4240.0
+ docker run -d -p 9222:9222 ghcr.io/montferret/chromium:87.0.4272.0
make e2e
docker stop $(docker ps -q)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 00000000..cd5f3717
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,26 @@
+name: Release
+
+on:
+ release:
+ types:
+ - created
+
+jobs:
+ goreleaser:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Set up Go
+ uses: actions/setup-go@v2
+ with:
+ go-version: 1.15
+ - name: Run GoReleaser
+ uses: goreleaser/goreleaser-action@v2
+ with:
+ version: latest
+ args: release --rm-dist
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 2bdcf2ec..6b3241e4 100644
--- a/Makefile
+++ b/Makefile
@@ -30,7 +30,7 @@ cover:
curl -s https://codecov.io/bash | bash
e2e:
- lab --timeout=120 --times=5 --concurrency=1 --wait=http://127.0.0.1:9222/json/version --runtime=bin://./bin/ferret --files=file://./e2e/tests --cdn=./e2e/pages/dynamic:8080@dynamic --cdn=./e2e/pages/static:8081@static
+ lab --timeout=120 --times=5 --concurrency=1 --wait=http://127.0.0.1:9222/json/version --runtime=bin://./bin/ferret --files=./e2e/tests --cdn=./e2e/pages/dynamic --cdn=./e2e/pages/static
bench:
go test -run=XXX -bench=. ${DIR_PKG}/...
diff --git a/e2e/tests/dynamic/doc/inner_html/get.fql b/e2e/tests/dynamic/doc/inner_html/get.fql
index 8c4aedf8..58fc4bae 100644
--- a/e2e/tests/dynamic/doc/inner_html/get.fql
+++ b/e2e/tests/dynamic/doc/inner_html/get.fql
@@ -27,4 +27,4 @@ LET actual = INNER_HTML(doc)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/doc/inner_html/get_by_selector.fql b/e2e/tests/dynamic/doc/inner_html/get_by_selector.fql
index 86ad4bd6..5faa45fb 100644
--- a/e2e/tests/dynamic/doc/inner_html/get_by_selector.fql
+++ b/e2e/tests/dynamic/doc/inner_html/get_by_selector.fql
@@ -7,4 +7,4 @@ WAIT_ELEMENT(doc, "#layout")
LET expected = '
Welcome to Ferret E2E test page!
It has several pages for testing different possibilities of the library
'
LET actual = INNER_HTML(doc, selector)
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), '(\n|\s)', ''), REGEXP_REPLACE(expected, '\s', ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), '(\n|\s)', ''), REGEX_REPLACE(expected, '\s', ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/doc/inner_html/set.fql b/e2e/tests/dynamic/doc/inner_html/set.fql
index 16b97218..27025bb4 100644
--- a/e2e/tests/dynamic/doc/inner_html/set.fql
+++ b/e2e/tests/dynamic/doc/inner_html/set.fql
@@ -10,4 +10,4 @@ LET actual = INNER_HTML(doc, "body")
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-RETURN T::EQ(REGEXP_REPLACE(expected, r1, ''), REGEXP_REPLACE(TRIM(actual), r2, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(expected, r1, ''), REGEX_REPLACE(TRIM(actual), r2, ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/doc/inner_text/get.fql b/e2e/tests/dynamic/doc/inner_text/get.fql
index c0281811..c4fa4898 100644
--- a/e2e/tests/dynamic/doc/inner_text/get.fql
+++ b/e2e/tests/dynamic/doc/inner_text/get.fql
@@ -14,4 +14,4 @@ LET actual = INNER_TEXT(doc)
LET r1 = '(\n|\s)'
LET r2 = '(\n|\s)'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/doc/inner_text/get_by_selector.fql b/e2e/tests/dynamic/doc/inner_text/get_by_selector.fql
index 0afe0312..d673901a 100644
--- a/e2e/tests/dynamic/doc/inner_text/get_by_selector.fql
+++ b/e2e/tests/dynamic/doc/inner_text/get_by_selector.fql
@@ -7,4 +7,4 @@ WAIT_ELEMENT(doc, "#layout")
LET expected = 'Welcome to Ferret E2E test page!'
LET actual = INNER_TEXT(doc, selector)
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), '(\n|\s)', ''), REGEXP_REPLACE(expected, '\s', ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), '(\n|\s)', ''), REGEX_REPLACE(expected, '\s', ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/doc/inner_text/get_by_selector_all.fql b/e2e/tests/dynamic/doc/inner_text/get_by_selector_all.fql
index 58c0d33d..84604175 100644
--- a/e2e/tests/dynamic/doc/inner_text/get_by_selector_all.fql
+++ b/e2e/tests/dynamic/doc/inner_text/get_by_selector_all.fql
@@ -10,7 +10,7 @@ LET expected = [
]
LET actual = (
FOR str IN INNER_TEXT_ALL(doc, selector)
- RETURN REGEXP_REPLACE(TRIM(str), '\n', '')
+ RETURN REGEX_REPLACE(TRIM(str), '\n', '')
)
RETURN T::EQ(actual, expected)
\ No newline at end of file
diff --git a/e2e/tests/dynamic/doc/inner_text/set.fql b/e2e/tests/dynamic/doc/inner_text/set.fql
index 0a0031f2..e5ac7198 100644
--- a/e2e/tests/dynamic/doc/inner_text/set.fql
+++ b/e2e/tests/dynamic/doc/inner_text/set.fql
@@ -10,4 +10,4 @@ LET actual = INNER_TEXT(doc, "body")
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/element/inner_html/get.fql b/e2e/tests/dynamic/element/inner_html/get.fql
index 17089e4f..e4841631 100644
--- a/e2e/tests/dynamic/element/inner_html/get.fql
+++ b/e2e/tests/dynamic/element/inner_html/get.fql
@@ -8,4 +8,4 @@ LET actual = INNER_HTML(el)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/element/inner_html/set.fql b/e2e/tests/dynamic/element/inner_html/set.fql
index 1a57d9d2..d5e0debd 100644
--- a/e2e/tests/dynamic/element/inner_html/set.fql
+++ b/e2e/tests/dynamic/element/inner_html/set.fql
@@ -11,4 +11,4 @@ WAIT(100)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/element/inner_text/get.fql b/e2e/tests/dynamic/element/inner_text/get.fql
index 9578ec83..46e252d6 100644
--- a/e2e/tests/dynamic/element/inner_text/get.fql
+++ b/e2e/tests/dynamic/element/inner_text/get.fql
@@ -11,4 +11,4 @@ LET actual = INNER_TEXT(el)
LET r1 = '(\n|\s)'
LET r2 = '(\n|\s)'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/dynamic/element/inner_text/set.fql b/e2e/tests/dynamic/element/inner_text/set.fql
index 4c3de9c7..e1291121 100644
--- a/e2e/tests/dynamic/element/inner_text/set.fql
+++ b/e2e/tests/dynamic/element/inner_text/set.fql
@@ -10,4 +10,4 @@ LET actual = INNER_TEXT(el)
LET r1 = '(\n|\s)'
LET r2 = '(\n|\s)'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/examples/blank-page.yaml b/e2e/tests/examples/blank-page.yaml
index 0d447269..3db6dc08 100644
--- a/e2e/tests/examples/blank-page.yaml
+++ b/e2e/tests/examples/blank-page.yaml
@@ -1,5 +1,5 @@
query:
- ref: file://../../../examples/blank-page.fql
+ ref: ../../../examples/blank-page.fql
assert:
text: |
RETURN T::EQ(@lab.data.query.result, "https://www.google.com/")
diff --git a/e2e/tests/examples/click.yaml b/e2e/tests/examples/click.yaml
index 1cb6052e..ad50aab3 100644
--- a/e2e/tests/examples/click.yaml
+++ b/e2e/tests/examples/click.yaml
@@ -1,4 +1,4 @@
query:
- ref: file://../../../examples/click.fql
+ ref: ../../../examples/click.fql
assert:
text: RETURN T::NOT::EMPTY(@lab.data.query.result)
\ No newline at end of file
diff --git a/e2e/tests/examples/download.yaml b/e2e/tests/examples/download.yaml
index 5906ace0..d4cb434e 100644
--- a/e2e/tests/examples/download.yaml
+++ b/e2e/tests/examples/download.yaml
@@ -1,5 +1,5 @@
query:
- ref: file://../../../examples/download.fql
+ ref: ../../../examples/download.fql
assert:
text: |
LET result = @lab.data.query.result
diff --git a/e2e/tests/examples/dynamic-page.yaml b/e2e/tests/examples/dynamic-page.yaml
index bdcde59c..0a23e798 100644
--- a/e2e/tests/examples/dynamic-page.yaml
+++ b/e2e/tests/examples/dynamic-page.yaml
@@ -1,4 +1,4 @@
query:
- ref: file://../../../examples/dynamic-page.fql
+ ref: ../../../examples/dynamic-page.fql
assert:
text: RETURN T::NOT::EMPTY(@lab.data.query.result)
\ No newline at end of file
diff --git a/e2e/tests/examples/google-search.yaml b/e2e/tests/examples/google-search.yaml
index 4ee09da3..8253b48c 100644
--- a/e2e/tests/examples/google-search.yaml
+++ b/e2e/tests/examples/google-search.yaml
@@ -1,5 +1,5 @@
query:
- ref: file://../../../examples/google-search.fql
+ ref: ../../../examples/google-search.fql
params:
criteria: "ferret"
assert:
diff --git a/e2e/tests/examples/iframes.yaml b/e2e/tests/examples/iframes.yaml
index 993d5482..199e2c45 100644
--- a/e2e/tests/examples/iframes.yaml
+++ b/e2e/tests/examples/iframes.yaml
@@ -1,4 +1,4 @@
query:
- ref: file://../../../examples/iframes.fql
+ ref: ../../../examples/iframes.fql
assert:
text: RETURN T::NOT::EMPTY(@lab.data.query.result)
\ No newline at end of file
diff --git a/e2e/tests/examples/inner_text_all.yaml b/e2e/tests/examples/inner_text_all.yaml
index c7138bad..a4486acf 100644
--- a/e2e/tests/examples/inner_text_all.yaml
+++ b/e2e/tests/examples/inner_text_all.yaml
@@ -1,4 +1,4 @@
query:
- ref: file://../../../examples/inner_text_all.fql
+ ref: ../../../examples/inner_text_all.fql
assert:
text: RETURN T::NOT::EMPTY(@lab.data.query.result)
\ No newline at end of file
diff --git a/e2e/tests/examples/static-page.yaml b/e2e/tests/examples/static-page.yaml
index 71521116..5096037b 100644
--- a/e2e/tests/examples/static-page.yaml
+++ b/e2e/tests/examples/static-page.yaml
@@ -1,4 +1,4 @@
query:
- ref: file://../../../examples/static-page.fql
+ ref: ../../../examples/static-page.fql
assert:
text: RETURN T::NOT::EMPTY(@lab.data.query.result)
\ No newline at end of file
diff --git a/e2e/tests/examples/value.yaml b/e2e/tests/examples/value.yaml
index a71efc3f..1b6a0ffa 100644
--- a/e2e/tests/examples/value.yaml
+++ b/e2e/tests/examples/value.yaml
@@ -1,4 +1,4 @@
query:
- ref: file://../../../examples/value.fql
+ ref: ../../../examples/value.fql
assert:
text: RETURN T::NOT::EMPTY(@lab.data.query.result)
\ No newline at end of file
diff --git a/e2e/tests/static/doc/inner_html/get.fql b/e2e/tests/static/doc/inner_html/get.fql
index 87719fbf..4aff8284 100644
--- a/e2e/tests/static/doc/inner_html/get.fql
+++ b/e2e/tests/static/doc/inner_html/get.fql
@@ -16,4 +16,4 @@ LET actual = INNER_HTML(doc)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/static/doc/inner_html/get_by_selector.fql b/e2e/tests/static/doc/inner_html/get_by_selector.fql
index 34cbc3b1..81031c56 100644
--- a/e2e/tests/static/doc/inner_html/get_by_selector.fql
+++ b/e2e/tests/static/doc/inner_html/get_by_selector.fql
@@ -4,4 +4,4 @@ LET doc = DOCUMENT(url)
LET expected = 'ContainersResponsive breakpointsZ-index'
LET actual = INNER_HTML(doc, '.section-nav')
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), '(\n|\s)', ''), REGEXP_REPLACE(expected, '\s', ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), '(\n|\s)', ''), REGEX_REPLACE(expected, '\s', ''))
\ No newline at end of file
diff --git a/e2e/tests/static/doc/inner_text/get_by_selector.fql b/e2e/tests/static/doc/inner_text/get_by_selector.fql
index 5f61d84f..422a9356 100644
--- a/e2e/tests/static/doc/inner_text/get_by_selector.fql
+++ b/e2e/tests/static/doc/inner_text/get_by_selector.fql
@@ -7,4 +7,4 @@ LET actual = INNER_TEXT(doc)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-RETURN T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
\ No newline at end of file
+RETURN T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
\ No newline at end of file
diff --git a/e2e/tests/static/element/inner_html/get.fql b/e2e/tests/static/element/inner_html/get.fql
index f604660d..6d81e4ba 100644
--- a/e2e/tests/static/element/inner_html/get.fql
+++ b/e2e/tests/static/element/inner_html/get.fql
@@ -8,6 +8,6 @@ LET actual = INNER_HTML(el)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
+T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
RETURN NONE
\ No newline at end of file
diff --git a/e2e/tests/static/element/inner_html/set.fql b/e2e/tests/static/element/inner_html/set.fql
index 4c70ce45..83862550 100644
--- a/e2e/tests/static/element/inner_html/set.fql
+++ b/e2e/tests/static/element/inner_html/set.fql
@@ -11,6 +11,6 @@ LET actual = INNER_HTML(el)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
+T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
RETURN NONE
\ No newline at end of file
diff --git a/e2e/tests/static/element/inner_text/get.fql b/e2e/tests/static/element/inner_text/get.fql
index e196fb92..09432c23 100644
--- a/e2e/tests/static/element/inner_text/get.fql
+++ b/e2e/tests/static/element/inner_text/get.fql
@@ -8,6 +8,6 @@ LET actual = INNER_TEXT(el)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
+T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
RETURN NONE
\ No newline at end of file
diff --git a/e2e/tests/static/element/inner_text/set.fql b/e2e/tests/static/element/inner_text/set.fql
index 4b886bcd..4788ac13 100644
--- a/e2e/tests/static/element/inner_text/set.fql
+++ b/e2e/tests/static/element/inner_text/set.fql
@@ -11,6 +11,6 @@ LET actual = INNER_TEXT(el)
LET r1 = '(\s|\")'
LET r2 = '(\n|\s|\")'
-T::EQ(REGEXP_REPLACE(TRIM(actual), r2, ''), REGEXP_REPLACE(expected, r1, ''))
+T::EQ(REGEX_REPLACE(TRIM(actual), r2, ''), REGEX_REPLACE(expected, r1, ''))
RETURN NONE
\ No newline at end of file
diff --git a/go.sum b/go.sum
index e8bb02f7..b071c13e 100644
--- a/go.sum
+++ b/go.sum
@@ -1,10 +1,7 @@
-github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/Masterminds/glide v0.13.2/go.mod h1:STyF5vcenH/rUqTEv+/hBXlSTo7KYwg2oc2f4tzPWic=
github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/vcs v1.13.0/go.mod h1:N09YCmOQr6RLxC6UNHzuVwAdodYbbnycGHSmwVJjcKA=
-github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE=
-github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
github.com/PuerkitoBio/goquery v1.6.0 h1:j7taAbelrdcsOlGeMenZxc2AWXD5fieT1/znArdnx94=
github.com/PuerkitoBio/goquery v1.6.0/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
github.com/andybalholm/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5zzsLTo=
@@ -16,35 +13,27 @@ github.com/antchfx/xpath v1.1.10 h1:cJ0pOvEdN/WvYXxvRrzQH9x5QWKpzHacYO8qzCcDYAg=
github.com/antchfx/xpath v1.1.10/go.mod h1:Yee4kTMuNiPYJ7nSNorELQMr1J33uOpXDMByNYhvtNk=
github.com/antlr/antlr4 v0.0.0-20200417160354-8c50731894e0 h1:j7MyDjg6pb7A2ziow17FDZ2Oj5vGnJsLyDmjpN4Jkcg=
github.com/antlr/antlr4 v0.0.0-20200417160354-8c50731894e0/go.mod h1:T7PbCXFs94rrTttyxjbyT5+/1V8T2TYDejxUfHJjw1Y=
-github.com/chzyer/logex v1.1.10 h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=
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 h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/codegangsta/cli v1.20.0/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/corpix/uarand v0.1.1 h1:RMr1TWc9F4n5jiPDzFHtmaUXLKLNUFK0SgCLo4BhX/U=
github.com/corpix/uarand v0.1.1/go.mod h1:SFKZvkcRoLqVRFZ4u25xPmp6m9ktANfbpXZ7SJ0/FNU=
-github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9 h1:G765iDCq7bP5opdrPkXk+4V3yfkgV9iGFuheWZ/X/zY=
github.com/derekparker/trie v0.0.0-20200317170641-1fdf38b7b0e9/go.mod h1:D6ICZm05D9VN1n/8iOtBxLpXtoGp6HDFUJ1RNVieOSE=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/google/go-cmp v0.4.1 h1:/exdXoGamhu5ONeUJH0deniYLWYvQwW66yvlfiiKTu0=
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
-github.com/mafredri/cdp v0.29.2 h1:8lZnyx/A1yLmhkqMK3hJP0JgIjllF8edRsWUtMzu1cc=
-github.com/mafredri/cdp v0.29.2/go.mod h1:71D84qPmWUvBWYj24Zp+U69mrUof4o8qL2X1fQJ/lHc=
github.com/mafredri/cdp v0.30.0 h1:Lvcwjajq6wB6Uk8dYeCLrF26LG85rUdpMxgrwdEvU0o=
github.com/mafredri/cdp v0.30.0/go.mod h1:71D84qPmWUvBWYj24Zp+U69mrUof4o8qL2X1fQJ/lHc=
github.com/mafredri/go-lint v0.0.0-20180911205320-920981dfc79e/go.mod h1:k/zdyxI3q6dup24o8xpYjJKTCf2F7rfxLp6w/efTiWs=
@@ -55,20 +44,16 @@ github.com/ngdinhtoan/glide-cleanup v0.2.0/go.mod h1:UQzsmiDOb8YV3nOsCxK/c9zPpCZ
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
github.com/rs/zerolog v1.19.0 h1:hYz4ZVdUgjXTBUmrkrw55j1nHx68LfOKIQk5IYtyScg=
github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo=
github.com/sethgrid/pester v1.1.0 h1:IyEAVvwSUPjs2ACFZkBe5N59BBUpSIkQ71Hr6cM5A+w=
github.com/sethgrid/pester v1.1.0/go.mod h1:Ad7IjTpvzZO8Fl0vh9AzQ+j/jYZfyp2diGwI8m5q+ns=
-github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
-github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -101,11 +86,7 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/tools v0.0.0-20200601175630-2caf76543d99/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=